/* Presentation motion: one click changes one scene. No automatic advancing. */
#deck{perspective:1600px;perspective-origin:50% 50%;transform-style:preserve-3d}
.slide{backface-visibility:hidden;transform-origin:50% 50%}
.slide.leaving .reveal{opacity:1;transform:none;transition:none}
.is-transitioning .slide,.is-transitioning .reveal{transition:none!important}
.motion-word{display:inline-block;transform-origin:0 100%}
.motion-paused .motion-word{transform:none!important;filter:none!important;opacity:1!important}
.motion-paused .slide.active *{animation:none!important}
#transition-layer{position:fixed;inset:var(--header) 0 var(--footer);z-index:12;pointer-events:none;visibility:hidden;overflow:hidden;perspective:1200px}
#transition-layer.playing{visibility:visible}
.curtain-sheet{position:absolute;inset:0;width:100%;height:100%;transform:translateX(-140%);opacity:0}
.sheet-back{fill:#d8bcff}.sheet-front{fill:#8c46df}
.transition-type{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;color:#fff;opacity:0;text-align:center;padding:35px}
.transition-type>span{font-size:10px;letter-spacing:6px;font-weight:500}
.transition-type>strong{font-size:clamp(45px,8vw,135px);letter-spacing:-.065em;line-height:.95;font-weight:800;max-width:1100px;text-wrap:balance}
.transition-ring{position:absolute;left:65%;top:50%;width:130px;height:130px;margin:-65px;border:2px solid #b57bff;border-radius:50%;box-shadow:0 0 0 20px #ad73ff12,0 0 0 22px #ad73ff55,0 0 0 45px #ad73ff06;opacity:0}
.transition-streak{position:absolute;top:48%;left:-10%;width:120%;height:1px;background:linear-gradient(90deg,transparent,#c694ff,#fff,#c694ff,transparent);box-shadow:0 0 0 7px #b78cef13,0 0 40px #a365f3;opacity:0;transform:rotate(-18deg)}
.slide.beat-in .motion-word{animation:word-land 950ms var(--ease) both;animation-delay:calc(var(--word-index,0)*45ms + 130ms)}
.slide.active .hero-orb-wrap{animation:orb-arrive 1.7s var(--ease) both}
.slide.active .calendar-card{animation:calendar-land 1.3s var(--ease) both,calendar-float 10s ease-in-out 1.3s infinite}
.slide.active .chat-bubble{animation:bubble-land .8s var(--ease) both;animation-delay:calc(var(--order,0)*90ms + 200ms)}
.slide.active .client{animation:client-land .8s var(--ease) both;animation-delay:calc(var(--client-index,0)*65ms + 180ms)}
.slide.active .game-front{animation:game-front-land 1.5s var(--ease) both,screen-float 10s ease-in-out 1.5s infinite}
.slide.active .game-back{animation:game-back-land 1.5s var(--ease) both,screen-float-back 11s ease-in-out 1.5s infinite}
.slide.active .radar-grid{animation:radar-arrive 1.5s var(--ease) both}
.slide.active .life-step{animation:client-land .9s var(--ease) both;animation-delay:calc(var(--step-index,0)*130ms + 200ms)}
.svg-plane{filter:drop-shadow(0 0 12px #b991ff);fill:#eadbff}.motion-paused .svg-plane{display:none}
@keyframes word-land{from{opacity:0;transform:translate3d(0,65px,0) rotateX(-35deg) rotateZ(5deg);filter:blur(5px)}to{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateZ(0);filter:blur(0)}}
@keyframes orb-arrive{from{opacity:0;transform:translate3d(100px,40px,-200px) rotate(35deg) scale(.6)}to{opacity:1;transform:translate3d(calc(var(--mx,0)*10px),calc(var(--my,0)*10px),0) rotate(0) scale(1)}}
@keyframes calendar-land{from{opacity:0;transform:translateY(90px) rotate(18deg) scale(.85)}to{opacity:1;transform:translateY(0) rotate(4deg) scale(1)}}
@keyframes bubble-land{from{opacity:0;transform:translateX(-55px) scale(.92)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes client-land{from{opacity:0;transform:translateY(45px) rotateX(-22deg)}to{opacity:1;transform:translateY(0) rotateX(0)}}
@keyframes game-front-land{from{opacity:0;transform:translate(-100px,160px) rotate(-25deg) scale(.8)}to{opacity:1;transform:translate(0,0) rotate(-10deg) scale(1)}}
@keyframes game-back-land{from{opacity:0;transform:translate(100px,160px) rotate(25deg) scale(.8)}to{opacity:1;transform:translate(0,0) rotate(10deg) scale(1)}}
@keyframes radar-arrive{from{opacity:0;transform:scale(.4) rotate(-90deg);filter:blur(12px)}to{opacity:1;transform:scale(1) rotate(0);filter:blur(0)}}
@media(prefers-reduced-motion:reduce){#transition-layer{display:none!important}.motion-word{opacity:1!important;transform:none!important;filter:none!important}.svg-plane{display:none}}
@media print{#transition-layer{display:none!important}.motion-word{opacity:1!important;transform:none!important;filter:none!important}}
@media(max-width:800px){.slide{overflow-x:hidden}.hero,.travel,.ask,.problem,.rostics,.radar,.finale{overflow:hidden}}
@media(max-width:480px){.hero-art{bottom:-30px;right:-80px;width:310px;height:310px;opacity:.85}}
