.intro { display: none; }
.intro.is-active { position: fixed; inset: 0; z-index: 80; background: var(--black); color: var(--paper); display: grid; place-content: center; pointer-events: none; font: 700 clamp(3rem,9vw,8rem) Arial,sans-serif; letter-spacing: -.08em; animation: intro-exit .95s both; }
.intro i { height: 2px; background: var(--accent); margin-top: 15px; transform-origin: left; animation: intro-line .65s both; }
@keyframes intro-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes intro-exit { 0%,60% { clip-path: inset(0); } 100% { clip-path: inset(0 0 100%); visibility: hidden; } }
.orbit.is-running { animation: orbit-turn var(--orbit-duration,40s) linear infinite; }
.orbit-two { --orbit-duration: 57s; }
.orbit-two.is-running { animation-direction: reverse; }
.orbit-three { --orbit-duration: 73s; }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@media (max-width: 759px) {
    .orbit-one { --orbit-duration: 12s; }
    .orbit-two { --orbit-duration: 18s; }
    .orbit-three { --orbit-duration: 24s; }
}
.signal-core.is-near { box-shadow: 0 0 0 10px rgba(213,255,56,.3),0 0 50px rgba(213,255,56,.2); }
.hero.is-pinned { height: 100svh; }
.hero.is-pinned .hero-stage { height: 100%; min-height: 0; }
.hero.is-pinned .hero-kinetic { position: absolute; inset: 0; display: flex; align-items: center; padding-block: 30px; background: transparent; z-index: 4; visibility: hidden; pointer-events: none; }
.hero.is-pinned .hero-kinetic::before { display: none; }
.hero.is-pinned .kinetic-line { font-size: min(11vw,19vh); }
.hero.is-pinned .kinetic-note { margin-top: 20px; }
.story.is-pinned .story-stage { height: 100svh; min-height: 520px; padding-block: 55px; display: flex; flex-direction: column; }
.story.is-pinned .scene-words { display: grid; flex: 1; align-items: center; position: relative; }
.story.is-pinned .scene-word { grid-area: 1/1; font-size: clamp(4rem,11vw,11rem); line-height: .9; letter-spacing: -.065em; }
.scene-word > span { display: block; font: .85rem/1.5 Arial,sans-serif; color: #b6b3a8; letter-spacing: 0; margin-top: 32px; }
.story.is-pinned .capabilities { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.story.is-pinned .scene-rule { display: block; height: 1px; background: var(--line-dark); }
.scene-rule i { display: block; height: 100%; background: var(--accent); transform-origin: left; }
.context-cursor { position: fixed; top: 0; left: 0; z-index: 60; display: grid; place-items: center; width: 80px; height: 80px; background: var(--accent); color: var(--ink); border-radius: 50%; font: 600 .58rem Arial,sans-serif; letter-spacing: .07em; pointer-events: none; visibility: hidden; }
.project-preview { position: fixed; top: 0; left: 0; width: clamp(240px,30vw,440px); aspect-ratio: 1.5; z-index: 40; pointer-events: none; visibility: hidden; overflow: hidden; background: var(--paper-soft); border: 8px solid var(--paper-soft); box-shadow: 0 18px 60px #0003; }
.project-preview img { width: 100%; height: 100%; object-fit: contain; }
@media (hover:hover) and (pointer:fine) and (min-width:760px) {
    .previews-ready .project-image { display: none; }
    .previews-ready .project-link:focus-visible .project-image { display: block; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .intro,.context-cursor,.project-preview { display: none !important; }
}

.story.is-pinned .scene-word-long { font-size: clamp(3rem,7.5vw,8rem); }
