/* Recording-led refinements: keep the work and letters stationary. */
.hero h1>span:after{display:none}
.hero h1>span:first-of-type,.section-heading h2 em,.about h2 em,.finale-copy h2 em{
  background:linear-gradient(110deg,var(--accent) 25%,#f5ffe5 48%,var(--accent) 70%);
  background-size:280% 100%;background-clip:text;-webkit-background-clip:text;color:transparent!important;
  animation:headline-wave 10s linear infinite;
}
.contact h2 em{background:linear-gradient(110deg,#17200f 25%,#4b5a30 48%,#17200f 70%);background-size:280% 100%;background-clip:text;-webkit-background-clip:text;color:transparent!important;animation:headline-wave 10s linear infinite}
html{scrollbar-color:var(--accent) #10140f;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#10140f}::-webkit-scrollbar-thumb{background:var(--accent);border:3px solid #10140f;border-radius:12px}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:100;pointer-events:none}
.cursor-halo{position:fixed;left:0;top:0;width:32px;height:32px;border:1px solid var(--accent);border-radius:50%;pointer-events:none;z-index:110;opacity:0;transition:width .2s,height .2s,opacity .2s;box-shadow:0 0 16px var(--mood-glow,#d8fd6715)}
.cursor-halo.is-visible{opacity:.65}.cursor-halo.is-interactive{width:48px;height:48px}
.stage-orbit{rotate:var(--ring-angle,0deg);translate:var(--ring-x,0px) var(--ring-y,0px);transition:rotate .8s cubic-bezier(.2,.7,.2,1),translate .5s ease,border-color .4s}
.hero-stage:hover .stage-orbit{border-color:var(--accent)}
.stage-orbit.orbit-two{rotate:calc(var(--ring-angle,0deg) * -1)}
.inline-studio{grid-column:1/-1;position:relative;z-index:3;border-top:1px solid #ffffff26;padding-top:40px;margin-top:-30px;min-width:0}
.inline-studio .mood-dialog-head h2{font-size:32px}.inline-studio .mood-studio{grid-template-columns:1fr 1fr;gap:60px}
.inline-studio .mood-palette{margin:15px auto}.inline-studio .mood-options{max-width:470px;width:100%}
.intensity-control{margin-top:25px}.intensity-control label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#dce2d4;gap:12px}
.intensity-control output{color:var(--accent);font:12px monospace}
#particleIntensity{--intensity:50%;appearance:none;-webkit-appearance:none;display:block;width:100%;height:44px;margin:12px 0 0;background:transparent;cursor:pointer;accent-color:var(--accent)}
#particleIntensity::-webkit-slider-runnable-track{height:6px;border-radius:6px;background:linear-gradient(to right,var(--accent) var(--intensity),#ffffff24 var(--intensity))}
#particleIntensity::-webkit-slider-thumb{appearance:none;width:22px;height:22px;margin-top:-8px;border:4px solid #172013;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 18px var(--mood-glow,#d8fd6730)}
#particleIntensity::-moz-range-track{height:6px;border-radius:6px;background:#ffffff24}#particleIntensity::-moz-range-progress{height:6px;background:var(--accent)}#particleIntensity::-moz-range-thumb{width:16px;height:16px;border:3px solid #172013;border-radius:50%;background:var(--accent)}
#particleIntensity:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.intensity-scale{display:flex;justify-content:space-between;font:10px monospace;color:#aab4a2}.intensity-control p{font-size:12px;color:#b7beb2;line-height:1.6}
@media(max-width:760px){.inline-studio{margin-top:0;padding-top:28px}.inline-studio .mood-studio{grid-template-columns:1fr;gap:20px}.inline-studio .mood-options{max-width:none;border-left:0;padding:25px 0 0;border-top:1px solid #ffffff20}.inline-studio .mood-dialog-head h2{font-size:28px}.mood-finale{gap:20px}}
@media(hover:none),(prefers-reduced-motion:reduce){.cursor-halo{display:none}}
@media(prefers-reduced-motion:reduce){.hero h1>span:first-of-type,.section-heading h2 em,.about h2 em,.finale-copy h2 em,.contact h2 em{animation:none;background-position:50% 50%}.stage-orbit{transition:none;rotate:0deg;translate:none}}

.scroll-scene,.scroll-scene.motion-reveal{animation:none;opacity:var(--presence,1);translate:0 var(--arrival,0px)}
.scroll-scene:focus-within{opacity:1;translate:none}
@media(prefers-reduced-motion:reduce){.scroll-scene{opacity:1;translate:none}}

/* Initial arrival is time-based; subsequent fades follow scroll distance. */
.scroll-scene.page-arrival{animation:page-arrival 1.15s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--load-delay,0ms)}
@keyframes page-arrival{from{opacity:0;translate:0 34px}to{opacity:var(--presence,1);translate:0 var(--arrival,0px)}}
.scroll-scene.page-arrival:focus-within{animation:none;opacity:1;translate:none}
@media(prefers-reduced-motion:reduce){.scroll-scene.page-arrival{animation:none;opacity:1;translate:none}}
