/* Motion tied to real page structure: character encounter, app frames and active chapter. */
@media (prefers-reduced-motion:no-preference) {
  .topbar {animation:gw-enter-down .55s both}
  .product-hero-copy>.eyebrow {animation:gw-enter-up .55s .08s both}
  .product-hero-copy h1 {animation:gw-enter-up .8s .16s both}
  .product-hero-copy>p {animation:gw-enter-up .7s .28s both}
  .product-hero-copy .actions {animation:gw-enter-up .7s .39s both}
  .product-hero-copy .release,
  .product-hero-copy .download-choices,
  .hero-scroll-cue {animation:gw-enter-up .6s .5s both}
  .product-hero-art>img:first-child {animation:gw-enter-art 1.05s .2s both}
  .product-art-label {animation:gw-enter-down .55s .68s both}
  .motion-ready .tour-tabs.reveal {transition-delay:.08s}
  .motion-ready .tour-panel.reveal {transition-delay:.14s}
  .motion-ready .tour-panel.reveal .tour-media {clip-path:inset(0 7% 0 0);transition:clip-path .85s .18s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .tour-panel.reveal.visible .tour-media {clip-path:inset(0)}
  .motion-ready .tour-panel.reveal .tour-copy {opacity:0;translate:20px 0;transition:opacity .65s .3s ease,translate .75s .3s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .tour-panel.reveal.visible .tour-copy {opacity:1;translate:0}
  .motion-ready .showcase-nav.reveal {transition-delay:.07s}
  .motion-ready .duality-stage.reveal {transform:translateY(18px) scale(.985)}
  .motion-ready .duality-stage.reveal.visible {transform:none}
  .motion-ready .duality-stage .duality-half--silver img {translate:-72px 0;transition-delay:.12s}
  .motion-ready .duality-stage .duality-half--crimson img {translate:72px 0;transition-delay:.24s}
  .motion-ready .duality-stage.visible .duality-half img {translate:0}
  .motion-ready .duality-stage .duality-label {opacity:0;translate:0 -12px;transition:opacity .55s ease,translate .65s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .duality-stage.visible .duality-label {opacity:1;translate:0;transition-delay:.42s}
  .motion-ready .duality-stage .duality-seal {opacity:0;scale:.8;transition:opacity .45s ease,scale .7s cubic-bezier(.18,.85,.26,1.15)}
  .motion-ready .duality-stage.visible .duality-seal {opacity:1;scale:1;transition-delay:.5s}
  .motion-ready .real-product-frame.reveal {transform:translateX(24px);transition-duration:.85s}
  .motion-ready .real-product-frame.reveal.visible {transform:none}
  .motion-ready .real-product-copy.reveal {transform:translateX(-18px)}
  .motion-ready .real-product-copy.reveal.visible {transform:none}
  .motion-ready .real-product-frame.reveal>img:not(.real-product-koa) {clip-path:inset(0 100% 0 0 round 9px);transition:clip-path .95s .18s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .real-product-frame.reveal.visible>img:not(.real-product-koa) {clip-path:inset(0 round 9px)}
  .motion-ready .real-product-frame.reveal .real-product-label {opacity:0;translate:0 10px;transition:opacity .5s .75s ease,translate .5s .75s ease}
  .motion-ready .real-product-frame.reveal.visible .real-product-label {opacity:1;translate:0}
  .motion-ready .proof-stage.visible .proof-stage-top {animation:gw-enter-down .5s .12s both}
  .motion-ready .proof-stage.visible .proof-mascot {animation:gw-mascot-arrive .7s .45s both,proof-float 5s 1.15s ease-in-out infinite}
  .motion-ready .proof-stage .product-cutout-display {clip-path:inset(0 0 12% 0 round 16px);transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1),clip-path .8s .15s cubic-bezier(.2,.7,.2,1)}
  .motion-ready .proof-stage.visible .product-cutout-display {clip-path:inset(0 round 16px)}
  .motion-ready .proof-stage.visible .proof-arcade-card:nth-child(1) {animation:gw-card-deal-left .7s .25s backwards}
  .motion-ready .proof-stage.visible .proof-arcade-card:nth-child(2) {animation:gw-enter-up .6s .36s backwards}
  .motion-ready .proof-stage.visible .proof-arcade-card:nth-child(3) {animation:gw-card-deal-right .7s .47s backwards}
  .motion-ready .proof-stage.visible .proof-progress-crop--rank {animation:gw-enter-up .65s .24s backwards}
  .motion-ready .proof-stage.visible .proof-progress-crop--missions {animation:gw-enter-left .65s .35s backwards}
  .motion-ready .proof-stage.visible .proof-progress-crop--checklist {animation:gw-enter-right .65s .45s backwards}
  .motion-ready .proof-stage.visible .product-cutout-display::after {animation:gw-lightpass 1.05s .55s both}
  .motion-ready .proof-stage.visible .proof-arcade-card::after {animation:gw-lightpass 1.05s .6s both}
  .motion-ready .proof-stage.visible .proof-progress-crop::after {animation:gw-lightpass 1.05s .65s both}
  .steps-grid {position:relative}
  .steps-grid::before {content:"";position:absolute;z-index:0;top:50%;left:0;right:0;height:3px;background:linear-gradient(90deg,#74233a,#d74862,#74233a);box-shadow:0 0 17px #c42e4a80;transform:scaleX(0);transform-origin:left;transition:transform 1.15s .12s cubic-bezier(.2,.7,.2,1)}
  .steps-wrap.ambient-active .steps-grid::before {transform:scaleX(1)}
  .steps-grid .step {z-index:1}
  .final-koa {animation:koa-float 5s ease-in-out infinite}
  .motion-ready .final.visible .eyebrow,.motion-ready .final.visible h2,.motion-ready .final.visible p,.motion-ready .final.visible .button {animation:gw-enter-up .7s both}
  .motion-ready .final.visible h2 {animation-delay:.08s}
  .motion-ready .final.visible p {animation-delay:.16s}
  .motion-ready .final.visible .button {animation-delay:.24s}
  .product-hero-koa,.proof-mascot,.real-product-koa,.final-koa {animation-play-state:paused}
  .product-hero.ambient-active .product-hero-koa {animation:gw-koa-intro .6s .9s backwards,gw-koa-greet 11s 1.5s ease-in-out infinite;animation-play-state:running}
  .duality-stage.ambient-active .duality-seal {animation:gw-seal-breathe 12s ease-in-out infinite}
  .tour-panel.ambient-active .tour-copy .gw-badge {animation:gw-badge-glow 13s ease-in-out infinite}
  .proof-stage.ambient-active .proof-mascot {animation-play-state:running}
  .proof-stage.ambient-active.is-current .proof-status i {animation:gw-status-beat 10s ease-in-out infinite}
  .real-product.ambient-active .real-product-koa {animation:gw-koa-peek 12s ease-in-out infinite;animation-play-state:running}
  .final.ambient-active .final-koa {animation:gw-koa-greet 13s ease-in-out infinite;animation-play-state:running}
  .page-idle .product-hero-koa,.page-idle .duality-seal,.page-idle .tour-copy .gw-badge,.page-idle .proof-mascot,.page-idle .proof-status i,.page-idle .real-product-koa,.page-idle .final-koa {animation-play-state:paused!important}
}
@keyframes gw-enter-up {from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes gw-enter-left {from{opacity:0;transform:translateX(-25px)}to{opacity:1;transform:none}}
@keyframes gw-enter-right {from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:none}}
@keyframes gw-enter-down {from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes gw-enter-art {from{opacity:0;clip-path:inset(0 100% 0 0);transform:translate(28px,16px) scale(.97)}to{opacity:1;clip-path:inset(0);transform:translate(0,0) scale(1)}}
@keyframes gw-mascot-arrive {from{opacity:0;translate:16px 12px;scale:.92}to{opacity:1;translate:0;scale:1}}
@keyframes gw-koa-intro {from{opacity:0;scale:.8}to{opacity:1;scale:1}}
@keyframes gw-card-deal-left {from{opacity:0;transform:translate(18px,18px) rotate(5deg)}to{opacity:1;transform:none}}
@keyframes gw-card-deal-right {from{opacity:0;transform:translate(-18px,18px) rotate(-5deg)}to{opacity:1;transform:none}}
@keyframes gw-lightpass {from{transform:translateX(-150%)}to{transform:translateX(150%)}}
@keyframes gw-koa-greet {0%,70%,100%{transform:translateY(0) rotate(-1deg)}73%,79%{transform:translateY(-8px) rotate(2deg)}76%,82%{transform:translateY(-4px) rotate(-2deg)}}
@keyframes gw-koa-peek {0%,72%,100%{transform:translateY(0) rotate(0)}76%{transform:translateY(-7px) rotate(-4deg)}81%{transform:translateY(-3px) rotate(3deg)}}
@keyframes gw-seal-breathe {0%,70%,100%{box-shadow:0 0 0 7px #171216aa,0 12px 28px #000a}76%{box-shadow:0 0 0 12px #b72d4828,0 12px 28px #000a}82%{box-shadow:0 0 0 7px #171216aa,0 12px 28px #000a}}
@keyframes gw-badge-glow {0%,72%,100%{box-shadow:none}78%{box-shadow:0 0 0 4px #b7244328,0 0 22px #b724433b}}
@keyframes gw-status-beat {0%,70%,100%{scale:1}76%,82%{scale:1.38}79%{scale:1}}
.hero-koa-note {position:absolute;z-index:4;right:7%;bottom:30%;max-width:190px;padding:10px 14px;border:1px solid #d26375;border-radius:12px 12px 3px 12px;background:#21151de8;color:#f2e8e0;box-shadow:0 12px 30px #0008;font-size:12px;font-weight:800;letter-spacing:.01em;opacity:0;transform:translateY(9px) rotate(2deg);pointer-events:none;transition:opacity .3s ease,transform .35s cubic-bezier(.2,.7,.2,1)}
.product-hero.download-invitation .hero-koa-note {opacity:1;transform:translateY(0) rotate(0)}
.product-hero-koa {transition:scale .35s cubic-bezier(.2,.7,.2,1)}
.product-hero.download-invitation .product-hero-koa {scale:1.09}
@media (min-width:761px) and (prefers-reduced-motion:no-preference) {
  .product-hero-art {translate:0 var(--scene-drift,0px)}
  .duality-half img {transform:translateX(-50%) translateY(var(--scene-drift,0px))}
}
.product-cutout-display::after,.proof-arcade-card::after,.proof-progress-crop::after {content:"";position:absolute;z-index:5;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,#f2e8e017 50%,transparent 62%);transform:translateX(-150%)}
.proof-arcade-card,.proof-progress-crop {position:relative;overflow:hidden}
@media (hover:hover) and (pointer:fine) {
  .product-hero-art {isolation:isolate}
  .product-hero-art::before {content:"";position:absolute;z-index:0;inset:4% 2%;pointer-events:none;background:radial-gradient(340px circle at var(--light-x,60%) var(--light-y,50%),#b62c4d57,transparent 75%);filter:blur(26px);opacity:.7}
  .product-hero-art>img:first-child {position:relative;z-index:1}
  .duality-half::before,
  .product-cutout-display::before,
  .real-product-frame::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    opacity:0;
    background:radial-gradient(360px circle at var(--light-x,50%) var(--light-y,50%),#e5a7af20,transparent 72%);
    transition:opacity .35s ease;
  }
  .duality-half:hover::before,
  .product-cutout-display:hover::before,
  .real-product-frame:hover::after {opacity:1}
  .duality-half img {transition:translate .8s cubic-bezier(.2,.7,.2,1),opacity .8s ease,scale .55s cubic-bezier(.2,.7,.2,1)}
  .duality-half:hover img {scale:1.035}
  .product-cutout-display::before {z-index:3;background:radial-gradient(460px circle at var(--light-x,50%) var(--light-y,50%),#d6536b13,transparent 72%)}
  .real-product-frame::after {z-index:2;border-radius:inherit;background:radial-gradient(420px circle at var(--light-x,50%) var(--light-y,50%),#f2e8e01c,transparent 72%)}
  .button.primary::after,
  .nav .nav-cta::after {content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#ffffff24 47%,transparent 70%);transform:translateX(-140%);transition:transform .55s ease}
  .button.primary::before,.tour-tab::before {content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(140px circle at var(--light-x,50%) var(--light-y,50%),#ffffff2e,transparent 75%);opacity:0;transition:opacity .25s ease}
  .button.primary:hover::before,.button.primary:focus-visible::before,.tour-tab:hover::before,.tour-tab:focus-visible::before {opacity:1}
  .button.primary:hover::after,
  .nav .nav-cta:hover::after {transform:translateX(140%)}
}
.proof-stage::after {transition:right .7s cubic-bezier(.2,.7,.2,1),opacity .45s ease;opacity:.45}
.proof-stage.is-current::after {right:calc(100% - 160px);opacity:1}
.tour-tab {position:relative;overflow:hidden}
.tour-tab::after {content:"";position:absolute;left:10px;right:10px;bottom:2px;height:2px;border-radius:2px;background:#f2e8e0;box-shadow:0 0 9px #f2e8e0a0;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.tour-tab.active::after {transform:scaleX(1)}
.showcase-nav a {position:relative}
.showcase-nav::after {content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#a31938,#dc526b,#f2e8e0);box-shadow:0 0 12px #c7344c7d;transform:scaleX(var(--chapter-progress,0));transform-origin:left;pointer-events:none}
.showcase-nav a::after {content:"";position:absolute;left:11px;right:11px;bottom:4px;height:1px;background:#f2e8e0;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.showcase-nav a.active::after {transform:scaleX(1)}
.duality-label strong {position:relative;width:max-content;max-width:100%}
.duality-label strong::after {content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:#d35369;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.duality-half--crimson .duality-label strong::after {transform-origin:right}
@media (hover:hover) and (pointer:fine) {
  .duality-half:hover .duality-label strong::after {transform:scaleX(1)}
}
.proof-status i {transition:box-shadow .35s,background .35s}
.proof-stage.is-current .proof-status i {background:#ee6478;box-shadow:0 0 0 4px #c7385230,0 0 13px #e84a64}
.motion-ready .steps-grid .step:nth-child(2) {transition-delay:.1s}
.motion-ready .steps-grid .step:nth-child(3) {transition-delay:.2s}
@media (max-width:760px) {
  .proof-stage.is-current::after {right:18px}
  .steps-grid::before {top:0;bottom:0;left:50%;right:auto;width:3px;height:auto;transform:scaleY(0);transform-origin:top}
  .steps-wrap.ambient-active .steps-grid::before {transform:scaleY(1)}
  .hero-koa-note {right:1%;bottom:28%;font-size:10px;padding:7px 9px}
}
@media (max-width:520px) {
  .hero-koa-note {display:none}
}
@media (prefers-reduced-motion:reduce) {
  .duality-half img,
  .proof-stage::after,
  .proof-status i,
  .motion-ready .steps-grid .step {transition:none!important}
  .motion-ready .steps-grid .step {transition-delay:0s}
  .tour-tab::after,.showcase-nav a::after {transition:none}
  .duality-label strong::after {transition:none}
  .hero-koa-note {display:none}
  .steps-grid::before {display:none}
  .duality-half::before,
  .product-cutout-display::before,
  .real-product-frame::after,
  .product-cutout-display::after,.proof-arcade-card::after,.proof-progress-crop::after,
  .product-hero-art::before,.button.primary::before,.tour-tab::before,
  .button.primary::after,
  .nav .nav-cta::after {display:none}
}
