/* ASTROMER — monochrome motion kit adapted from IDA Studio's writing and edge animation */
.ast-typewriter{position:relative!important;display:block;isolation:isolate;min-width:0}
.ast-type-measure{display:block;visibility:hidden;pointer-events:none}
.ast-type-live{position:absolute;inset:0;white-space:normal}
.ast-type-live::after{content:"";display:inline-block;width:1px;height:.85em;margin-left:.25em;vertical-align:-.1em;background:#eef2f3;box-shadow:0 0 9px #ffffff50;animation:ast-caret 1s steps(1) infinite}
.ast-typewriter[data-ast-static="true"] .ast-type-live::after{display:none}
@keyframes ast-caret{0%,49%{opacity:1}50%,100%{opacity:0}}
/* Long, restrained glints across display words */
body :is(#about,#shows,#music,#motion,#gallery,#networks,#booking) h2 em{
 background:linear-gradient(109deg,#848b8f 5%,#aeb4b8 35%,#f9fbfb 49%,#c4ccd0 55%,#868e91 87%);
 background-size:280% 100%;-webkit-background-clip:text;background-clip:text;
 -webkit-text-fill-color:transparent;
 animation:ast-ink-glint 11.8s cubic-bezier(.3,.03,.25,.98) infinite;
}
@keyframes ast-ink-glint{0%,12%,100%{background-position:105% 0}61%,72%{background-position:-13% 0}}
/* Two travelling threads on dark panels. These are not image filters. */
.astromer-live :is(.radio-desk,.artist-portrait,.cinema-feature-card,.cinema-tile,.gallery-item,.release-card,.social-signal,.button){
 position:relative;isolation:isolate
}
.astromer-live :is(.radio-desk,.artist-portrait,.cinema-feature-card,.cinema-tile,.gallery-item,.release-card,.social-signal,.button)::after{
 content:"";position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:inherit;
 background:linear-gradient(90deg,transparent,rgba(255,255,255,.73),transparent) 0 0/230% 1px no-repeat,linear-gradient(270deg,transparent,rgba(221,228,231,.51),transparent) 100% 100%/230% 1px no-repeat;
 opacity:.43;animation:ast-border-trace 8.9s cubic-bezier(.48,.03,.32,1) infinite
}
@keyframes ast-border-trace{0%,8%{opacity:.08;background-position:220% 0,-220% 100%}42%,68%{opacity:.8}91%,100%{opacity:.07;background-position:-220% 0,220% 100%}}
.astromer-live .section-header i{position:relative;overflow:hidden}
.astromer-live .section-header i::after{content:"";position:absolute;inset:0;width:25%;background:linear-gradient(90deg,transparent,#fff8,transparent);animation:ast-divider 9.4s ease-in-out infinite}
@keyframes ast-divider{0%,14%{transform:translateX(-140%);opacity:0}24%,73%{opacity:1}91%,100%{transform:translateX(470%);opacity:0}}
.astromer-motion-paused :is(.ast-type-live::after,.section-header i::after){animation-play-state:paused!important}
.astromer-motion-paused :is(.radio-desk,.artist-portrait,.cinema-feature-card,.cinema-tile,.gallery-item,.release-card,.social-signal,.button)::after{animation-play-state:paused!important;opacity:.13}
.astromer-motion-paused :is(#about,#shows,#music,#motion,#gallery,#networks,#booking) h2 em{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
 .ast-type-live::after{display:none!important}
 body :is(#about,#shows,#music,#motion,#gallery,#networks,#booking) h2 em{animation:none!important;background:none!important;-webkit-text-fill-color:currentColor}
 .astromer-live :is(.radio-desk,.artist-portrait,.cinema-feature-card,.cinema-tile,.gallery-item,.release-card,.social-signal,.button)::after,.astromer-live .section-header i::after{animation:none!important;opacity:.09}
}
