/* Choreography layer: existing scene colors and untouched official artwork. */
.stage,.backdrop{transition:none}
.scene-content>*,.character{animation:none}
.stage[data-playing=true] .character,.stage[data-playing=true] .backdrop{will-change:transform,opacity}
.motion-field{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;color:var(--accent)}
.motion-field svg{width:100%;height:100%;overflow:visible}
.motion-trail{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;opacity:0}
.motion-trail.soft{stroke-width:5;opacity:0}
.motion-ring{position:absolute;width:200px;height:200px;border:1px solid var(--accent);border-radius:50%;opacity:0;transform:translate(-50%,-50%)}
.element-seal{position:absolute;width:108px;height:113px;object-fit:contain;opacity:0;transform:translate(-50%,-50%)}
.motion-mote{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:0}
.transition-cover{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;z-index:9!important;pointer-events:none!important;overflow:hidden!important}
.transition-cover *{pointer-events:none!important}
.character-cue{padding:10px 15px;font-size:12px;border-color:var(--accent)}
.stage[data-playing=true] .character-cue{opacity:.65}
.journey-footer{position:relative}
.journey-footer:before{content:'';position:absolute;top:-1px;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(var(--motion-progress,0));transform-origin:left;pointer-events:none}
.journey-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px}
.journey-nav button img{width:19px;height:20px;object-fit:contain;opacity:.55}
.journey-nav button[aria-current=true] img{opacity:1}
.journey-nav button[aria-current=true]:before{top:0}
.journey-nav button:not(:has(img)){padding-top:21px}
.review-tools{gap:17px}
.review-tools button{font-size:12px;padding-left:17px}
#motion-toggle[aria-pressed=true]{color:var(--gold)}
.companion-cameo{width:158px;height:180px;right:25px;bottom:65px;border:0;background:none}
.companion-cameo img{height:185px;bottom:15px;right:-75px}
.reverse .companion-cameo{left:34%;right:auto;bottom:42px}
.companion-cameo figcaption{border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);font-size:10px;padding:6px 8px}
.slime-friend{position:absolute;right:12%;bottom:85px;width:125px;z-index:4;padding:0;transform-origin:50% 90%}
.slime-friend img{display:block;width:100%;height:auto}
.slime-friend:after{content:'一起想想';display:block;font-size:11px;letter-spacing:2px;color:var(--accent);margin-top:7px}
.slime-note{position:absolute;right:10%;bottom:205px;z-index:4;width:180px;padding:12px 16px;background:var(--scene);border:1px solid var(--accent);font-size:13px;line-height:1.8}
.slime-note:empty{display:none}
.directory details{position:relative}
.directory details[open] summary{color:var(--accent)}
.directory details[open]:before{content:'';position:absolute;left:-13px;top:25px;width:4px;height:4px;background:var(--accent);transform:rotate(45deg)}
.path div:before{content:'';position:absolute;left:0;right:-25px;top:-24px;height:2px;background:var(--accent);transform:scaleX(var(--step-progress,0));transform-origin:left}
.path div:last-child:before{right:0}
.path div:after{content:'';position:absolute;top:-27px;left:0;width:7px;height:7px;border:1px solid var(--accent);background:var(--scene);transform:rotate(45deg)}
.path div[data-active=true]:after{background:var(--accent)}
.path div[data-active=true] b{color:var(--ink)}
.interest{padding-right:8px}
.interest[aria-pressed=true] b{color:var(--ink)}
.interest[aria-pressed=true]:after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent)}
.mora-token{position:absolute;width:48px;height:48px;object-fit:contain;right:0;top:8px}
.interest:has(.mora-token){padding-right:49px}
.gate-beam{position:absolute;left:50%;top:18%;width:2px;height:44%;z-index:1;opacity:0;background:var(--ink);box-shadow:0 0 35px 12px var(--ink);pointer-events:none;transform-origin:center}
.stage .character[hidden]{display:none}
.scene-content:focus{outline:none}
.home .candidate{display:table;padding:11px 18px;border:1px solid var(--gold);background:var(--scene);transform-origin:right center;position:relative;box-shadow:0 8px 24px #0002}
.home .candidate:after{content:'';position:absolute;right:-4px;top:50%;width:7px;height:7px;border:1px solid var(--gold);border-radius:50%;background:var(--scene)}
.kite-flight{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.kite-flight svg{width:100%;height:100%;position:absolute;inset:0}
.kite-rope{fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round}
.real-kite{position:absolute;left:0;top:0;max-width:none;object-fit:contain;transform-origin:50% 62%;clip-path:polygon(19% 18%,41% 23%,48% 31%,59% 29%,89% 28%,88% 46%,72% 59%,64% 72%,59% 86%,49% 82%,40% 87%,31% 82%,37% 67%,25% 64%,21% 47%)}
.resume{position:relative;isolation:isolate;overflow:hidden}
.theatre-front{position:absolute;inset:-1px;z-index:3;pointer-events:none;overflow:hidden;opacity:0}
.theatre-curtain{position:absolute;top:0;bottom:0;width:50.5%;border-bottom:2px solid var(--gold);background:repeating-linear-gradient(90deg,var(--scene) 0px,color-mix(in srgb,var(--scene) 72%,var(--accent)) 18px,var(--scene) 36px);box-shadow:3px 2px 14px #0006}
.curtain-left{left:0;border-radius:0 0 22px 0;transform-origin:left center}.curtain-right{right:0;border-radius:0 0 0 22px;transform-origin:right center}
.theatre-curtain img{position:absolute;width:50px;height:53px;right:18px;top:30%;opacity:.65}
.directory{position:relative;perspective:1000px;isolation:isolate;padding:0 20px;border-left:3px double var(--accent)}
.book-cover{position:absolute;inset:0;z-index:3;pointer-events:none;background:var(--scene);border:1px solid var(--accent);border-left:9px double var(--accent);transform-origin:left center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;box-shadow:8px 4px 24px #0005}
.book-cover img{width:78px;height:82px;object-fit:contain}.book-cover span{font:20px var(--serif);letter-spacing:5px;color:var(--accent)}
.outgoing{position:relative;display:inline-block;perspective:650px}
.personality-flap{position:absolute;inset:0;z-index:2;transform-origin:center top;display:flex;align-items:center;justify-content:center;gap:14px;background:var(--scene);border-bottom:1px solid var(--accent);font:22px var(--serif);opacity:0;backface-visibility:hidden;pointer-events:none}
.personality-flap img{width:33px;height:35px;object-fit:contain}
.path{perspective:750px}.path div{transform-style:preserve-3d}
body.simple-motion .theatre-front,body.simple-motion .book-cover,body.simple-motion .personality-flap,body.simple-motion .kite-flight{display:none}
@media(min-width:1101px) and (max-width:1200px){.identity small,.version{display:none}.review-tools{gap:12px}.reverse .companion-cameo{left:26%}.scene-content{width:54%}.reverse .scene-content{width:48%}}
@media(min-width:1101px) and (max-height:810px){.slime-friend{width:105px;bottom:60px}.slime-note{bottom:165px}.companion-cameo{height:145px;bottom:56px}.companion-cameo img{height:154px}}
@media(max-width:1100px){
 .topbar{height:100px;flex-wrap:wrap;align-content:center;gap:13px;padding:14px 20px}
 .identity{font-size:20px}.review-tools{width:100%;gap:0;justify-content:space-between}
 .review-tools button{padding:0;font-size:11px;min-height:22px;border:0}.version{display:none}
 .character-cue{top:231px!important;right:20px;font-size:11px;max-width:64%}
 .scene-shade,.reverse .scene-shade{background:linear-gradient(180deg,transparent 125px,var(--scene) 315px)}
 .companion-cameo,.reverse .companion-cameo{left:16px;right:auto;top:139px;bottom:auto;width:113px;height:102px}
 .companion-cameo img,.reverse .companion-cameo img{height:126px;right:-46px;bottom:5px}
 .companion-cameo figcaption{font-size:9px;padding:5px}
 .slime-friend{top:181px;bottom:auto;left:22px;right:auto;width:86px}
 .slime-note{top:12px;left:22px;right:auto;bottom:auto;width:174px;padding:8px 11px;font-size:12px}
 .mora-token{width:41px;height:41px;top:9px}.interest:has(.mora-token){padding-right:43px}
 .element-seal{width:66px;height:70px}.motion-ring{width:110px;height:110px}
 .journey-nav{gap:12px}.journey-nav button{font-size:13px;min-width:33px}
 .journey-footer{grid-template-columns:38px 1fr 74px;gap:10px}
 .path{border:0;gap:27px 18px}.path div{border-top:1px solid var(--accent);padding-top:16px}
 .path div:before{top:-1px;right:0}.path div:after{top:-4px}
 .scene-content,.reverse .scene-content{padding-left:23px;padding-right:23px}
 .hero-title br{display:block}.hero-title{font-size:56px;letter-spacing:2px;text-wrap:initial}
 h1,.reverse h1{font-size:clamp(30px,8vw,42px)}.stage[data-scene=natlan] h1{font-size:clamp(29px,7.4vw,35px)}
 .gate{min-height:510px}.gate .scene-content{bottom:35px}.gate-beam{top:16%;height:43%}
 .ending .scene-content{padding:30px 25px}.ending{min-height:730px}.ending .backdrop{height:250px;bottom:38px}
}
@media(prefers-reduced-motion:reduce){.motion-field,.gate-beam,.transition-cover{display:none!important}}
body.simple-motion .motion-field,body.simple-motion .gate-beam,body.simple-motion .transition-cover{display:none!important}
