.departure-replay{border:0;padding:.6em 1.2em;border-radius:999px;background:transparent;color:#78584d;font:inherit;font-size:clamp(14px,.95vw,18px);cursor:pointer}
.story-mirror{position:absolute;z-index:85;right:max(2.5%,env(safe-area-inset-right));top:auto;bottom:max(3.2%,env(safe-area-inset-bottom));width:clamp(70px,6.5vw,92px);color:#6f5145;font:inherit;text-align:center}
.story-mirror[hidden]{display:none}
.mirror-face{display:block;width:100%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;perspective:900px}
.mirror-face-inner{position:relative;display:block;width:100%;height:100%;transform-origin:center;transition:transform .22s ease,opacity .22s ease}
.story-mirror.turning .mirror-face-inner{transform:scaleX(.035);opacity:.5}
.story-mirror .mirror-face img{position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:1;object-fit:contain;transition:opacity .18s ease}
.story-mirror[data-face="garden"] .mirror-face-garden,.story-mirror[data-face="grass"] .mirror-face-grass{opacity:1}
.story-mirror[data-face="garden"] .mirror-face-grass,.story-mirror[data-face="grass"] .mirror-face-garden{opacity:0}
.story-mirror span{display:block;white-space:nowrap;font-size:clamp(11px,.82vw,14px);letter-spacing:.08em;text-shadow:0 1px 5px #fff,0 0 10px #fff}
.story-mirror.inviting{animation:mirrorInvitation 2.8s ease-in-out infinite}
.story-mirror .mirror-face:focus-visible{outline:2px solid #a66e59;outline-offset:4px}
.opening .story-mirror,.quiz-open .story-mirror{visibility:hidden}
.orientation-note{display:none}
.opening-cover .opening-enter{top:82%;border-color:#87664d;background:rgba(250,246,228,.87);color:#77553e;box-shadow:none}
.opening-cover .opening-enter:hover,.opening-cover .opening-enter:focus-visible{background:#87664d;color:#fff9ed;box-shadow:none}
.opening-mist{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.garden-explore{position:absolute;inset:0;z-index:8;pointer-events:none}
.garden-explore[hidden],.garden-place[hidden]{display:none}
.garden-hotspots{position:absolute;inset:0;pointer-events:none}
.garden-building{position:absolute;min-width:44px;min-height:44px;transform:translate(-50%,-50%);border:1px solid transparent;border-radius:16%;padding:0;background:transparent;color:#795c4d;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.garden-building>i{position:absolute;left:50%;top:50%;width:9px;height:9px;transform:translate(-50%,-50%);border:1px solid #8e6954;border-radius:50%;background:rgba(255,250,232,.7)}
.garden-building>span{display:none;position:absolute;left:50%;top:62%;transform:translateX(-50%);white-space:nowrap;padding:.35em .75em;border:1px solid #b79e7c;border-radius:2px;background:rgba(255,250,232,.96);font:inherit;font-size:clamp(12px,1vw,18px);letter-spacing:.12em}
.garden-building:hover,.garden-building:focus-visible,.garden-building.selected{border-color:rgba(133,102,77,.55);background:rgba(255,249,226,.1);outline:none}
.garden-building:hover>span,.garden-building:focus-visible>span,.garden-building.selected>span{display:block}
.garden-building.garden-reading-place{z-index:1}
.garden-building.garden-reading-place>span{display:none;top:75%}
.garden-building.garden-reading-place.selected>span{display:block}
.garden-explore-hint{position:absolute;left:3%;top:2%;margin:0;padding:.4em .7em;color:#705c4a;background:rgba(251,248,233,.88);font-size:clamp(11px,.9vw,16px);letter-spacing:.12em}
.garden-place{position:absolute;z-index:3;top:22%;left:4%;width:31%;max-height:67%;overflow-y:auto;padding:clamp(16px,2.2vw,36px);border:1px solid rgba(150,124,98,.45);background:rgba(251,248,235,.97);color:#665748;pointer-events:auto;overscroll-behavior:contain;animation:gardenPlaceIn .45s ease both}
.garden-place[data-side="right"]{left:auto;right:4%}
.garden-place-close{position:absolute;right:4px;top:2px;width:44px;height:44px;padding:0;border:0;background:transparent;color:#826d5b;font:inherit;font-size:26px;cursor:pointer}
.garden-place-close:focus-visible{outline:1px solid #8c7561;outline-offset:-5px}
.garden-place-kicker{display:block;margin-right:22px;font-size:clamp(10px,.8vw,14px);letter-spacing:.18em;color:#9a8067}
.garden-place h3{margin:.7em 0 .6em;font-size:clamp(20px,2.2vw,36px);font-weight:400;letter-spacing:.16em}
.garden-place-resident{margin:0 0 1em;color:#92705c;font-size:clamp(12px,1vw,17px);line-height:1.65}
.garden-place-description{margin:0;font-size:clamp(13px,1.1vw,19px);line-height:1.9;letter-spacing:.05em}
.garden-map-active .family-scene>.story-heading,.garden-map-active>.guide{display:none}
.stage.garden-map-active .scene-nav{right:calc(4% + clamp(88px,8vw,120px))}
.family-intro-active .garden-explore{visibility:hidden}
@keyframes gardenPlaceIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:900px){.garden-place{width:40%;top:13%;max-height:75%;padding:17px 19px}.garden-place h3{font-size:21px;margin:.5em 0}.garden-place-description{font-size:13px;line-height:1.7}.garden-place-resident{font-size:12px;margin-bottom:.6em}}
@media(prefers-reduced-motion:reduce){.garden-place{animation:none}}
.cloud-curtain{position:absolute;inset:0;z-index:110;overflow:clip;background:transparent;isolation:isolate}
.cloud-curtain[hidden]{display:none}
.cloud-veil{position:absolute;inset:0;background:#fbf5e9}
.opening-cloud{position:absolute;width:88%;height:135%;top:-18%;object-fit:fill;pointer-events:none;will-change:transform,opacity;filter:drop-shadow(0 0 20px #fff9ed)}
.cloud-left{left:-18%}
.cloud-right{right:-18%;transform:scaleX(-1)}
.cloud-lower{left:8%;top:44%;height:75%;width:84%;opacity:.94}
.cloud-skip{position:absolute;z-index:5;right:4%;bottom:5%;min-height:44px;padding:.65em 1.15em;border:1px solid #b79779;border-radius:999px;background:#fff9eddf;color:#7a5748;font:inherit;font-size:clamp(15px,1.1vw,22px);letter-spacing:.12em;cursor:pointer}
.stage.cloud-opening .cloud-left{animation:openCloudLeft 3.2s cubic-bezier(.32,.02,.22,1) both}
.stage.cloud-opening .cloud-right{animation:openCloudRight 3.2s cubic-bezier(.32,.02,.22,1) both}
.stage.cloud-opening .cloud-lower{animation:openCloudLower 3s ease-in-out both}
.stage.cloud-opening .cloud-veil{animation:openCloudVeil 2.8s ease-in-out both}
.stage.cloud-opening>:is(.guide,.scene-nav,.restart,.story-mirror){visibility:hidden}
.stage.cloud-opening .first-scene{pointer-events:none}
@keyframes openCloudLeft{0%,10%{transform:translateX(0) rotate(0);opacity:1}75%{opacity:.9}100%{transform:translateX(-105%) rotate(-6deg);opacity:0}}
@keyframes openCloudRight{0%,10%{transform:translateX(0) scaleX(-1);opacity:1}75%{opacity:.9}100%{transform:translateX(105%) scaleX(-1) rotate(-6deg);opacity:0}}
@keyframes openCloudLower{0%,8%{transform:translateY(0);opacity:.94}100%{transform:translateY(85%);opacity:0}}
@keyframes openCloudVeil{0%,12%{opacity:1}65%,100%{opacity:0}}
.stage:not([data-view="sequence"]):not([data-view="departure"])>.quiz-launch{display:none}
.stage .scene-nav{right:max(3.5%,env(safe-area-inset-right));bottom:max(4.2%,env(safe-area-inset-bottom));padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none}
.stage .scene-nav>.scene-next{width:auto;height:auto;min-height:44px;min-width:132px;padding:.65em 1.35em;border:1px solid #b88b72;border-radius:999px;background:rgba(255,249,237,.94);color:#805442;font:inherit;font-size:clamp(16px,1.2vw,24px);letter-spacing:.14em;box-shadow:0 3px 12px #5d3b2320}
.stage .scene-next:disabled{opacity:.38;cursor:default}
.stage .guide-label{font-size:clamp(13px,.85vw,18px);letter-spacing:.14em}
.stage .guide p{font-size:clamp(15px,1vw,22px);line-height:1.5;letter-spacing:.04em}
.ambient-petals{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none;contain:strict}
.ambient-petals i{position:absolute;left:var(--x);top:-8%;width:var(--size);height:calc(var(--size)*1.6);border-radius:85% 15% 80% 25%;background:linear-gradient(135deg,#fff9f5,#e9a9b8);box-shadow:0 0 3px #fff8;opacity:0;animation:ambientPetalFall var(--duration) var(--delay) linear infinite}
.ambient-petals i:nth-child(3n){background:linear-gradient(135deg,#fff,#ffe4eb)}
.ambient-petals.red i{background:linear-gradient(135deg,#ed858d,#b62f47);box-shadow:none;filter:saturate(1.12)}
.ambient-petals.red i:nth-child(3n){background:linear-gradient(135deg,#efa2a4,#ca4658)}
.stage .west-dialogue{left:31%;top:15%;max-width:36%;height:64%;display:flex;flex-direction:row-reverse;align-items:flex-start;gap:1.1em;padding:0;border:0;background:none;color:#794d47;font-size:clamp(19px,1.65vw,32px);line-height:1.5;letter-spacing:.08em;text-shadow:0 1px 3px #fff9ed,0 0 14px #fff9ed;transform:none}
.stage .west-dialogue p{display:block;margin:0;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap}
.stage .west-dialogue p:last-child{padding-top:1.5em}
.west-char{display:inline-block;opacity:0;filter:blur(3px);transform:translateY(5px);line-height:1.23;height:1.23em}
.stage[data-west="4"] .west-char{animation:westCharReveal .85s ease forwards;animation-delay:var(--char-delay)}
@keyframes westCharReveal{to{opacity:1;filter:none;transform:none}}
.stage .burial-poem{left:47%;width:38%}
.stage .burial-stanza{display:flex;flex-direction:row-reverse;align-items:flex-start;justify-content:space-evenly;gap:clamp(10px,1.8vw,30px);padding:0 .3%;overflow:hidden}
.stage .burial-stanza .poem-line{display:block;flex:0 0 1.2em;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;font-size:clamp(16px,1.3vw,24px);line-height:1.23;letter-spacing:0}
.stage .burial-stanza .poem-char{display:inline;line-height:1.23em;height:auto}
.stage .burial-stanza .poem-emphasis{font-weight:600;color:#914452}
@keyframes ambientPetalFall{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}12%{opacity:.65}50%{transform:translate3d(calc(var(--drift)*-.3),30vh,0) rotate(calc(var(--turn)*.5))}88%{opacity:.6}100%{opacity:0;transform:translate3d(var(--drift),65vh,0) rotate(var(--turn))}}
@keyframes mirrorInvitation{50%{transform:translateY(-5px);filter:drop-shadow(0 0 10px #e8c881)}}
/* Each chapter owns its visual layers; wedding frames must not sit under other scenes. */
.stage>.first-scene,.stage>.west-scene,.stage>.burial-scene{display:none;transition:none}
.stage[data-view="first"]>.first-scene,.stage[data-view="west"]>.west-scene,.stage[data-view="burial"]>.burial-scene{display:block;opacity:1;pointer-events:auto}
.stage:not([data-view="sequence"])>:is(.frame,.vignette,.title,.hotspot,.narration,.original-verse){display:none}
.stage:not([data-step="7"])>.original-verse{display:none}
.family-scene,.departure-scene{display:none;position:absolute;inset:0;z-index:60;overflow:clip;overflow-anchor:none;background:#f4eee3}
.family-active .family-scene,.departure-active .departure-scene{display:block}
.wither-scene{display:none;position:absolute;inset:0;z-index:60;overflow:clip;background:#87969e}
.stage[data-view="wither"]>.wither-scene{display:block}
.wither-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.wither-base{z-index:1}.wither-moon{z-index:2;opacity:0;transition:opacity 3s ease-in-out}.wither-spirit{z-index:3;opacity:0;transition:opacity 3s ease-in-out}
.wither-scene:not([data-phase="0"]) .wither-moon{opacity:1}
.wither-scene[data-phase="3"] .wither-spirit,.wither-scene[data-phase="4"] .wither-spirit{opacity:1}
.wither-title{position:absolute;z-index:5;left:4.2%;top:5%;color:#fff5e3;text-shadow:0 1px 10px #374b55}
.wither-title small{font-size:clamp(13px,.85vw,18px);letter-spacing:.2em}
.wither-title h2{font-size:clamp(25px,2.3vw,44px);font-weight:400;letter-spacing:.2em;margin:.35em 0}
.wither-hit{display:none;position:absolute;z-index:6;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:#fff7e5;cursor:pointer}
.wither-water-hit{left:59%;top:27%;width:24%;height:30%}
.wither-lotus-hit{left:23%;top:16%;width:19%;height:31%}
.wither-spirit-hit{left:53%;top:13%;width:18%;height:37%}
.wither-scene[data-phase="4"] .wither-spirit-hit{display:block}
.wither-verse{position:absolute;z-index:5;left:60%;top:20%;display:flex;flex-direction:row-reverse;gap:1.35em;margin:0;color:#fff5df;text-shadow:0 1px 4px #43515c,0 0 16px #72808a;opacity:0;transform:translateY(10px);transition:opacity 1.6s ease,transform 1.6s ease;pointer-events:none}
.wither-verse p{margin:0;writing-mode:vertical-rl;text-orientation:upright;font-size:clamp(24px,2.3vw,42px);letter-spacing:.22em;line-height:1.5}
.wither-verse p:last-child{padding-top:1.6em}
.wither-scene[data-phase="6"] .wither-verse,.wither-scene[data-phase="7"] .wither-verse{opacity:1;transform:none}
@media(max-width:1024px),(pointer:coarse){.wither-verse{left:59%;top:18%;gap:.9em}.wither-verse p{font-size:22px}}
.wither-scene[data-phase="0"] .wither-water-hit,.wither-scene[data-phase="2"] .wither-lotus-hit{display:block}
.wither-hit i{position:absolute;left:50%;top:50%;width:34px;height:34px;border:1px solid #fff0cb;border-radius:50%;transform:translate(-50%,-50%);animation:pulse 1.9s ease-out infinite}
.wither-hit span{position:absolute;left:50%;top:calc(50% + 26px);transform:translateX(-50%);white-space:nowrap;border:1px solid #e5d4af77;border-radius:999px;padding:.55em .9em;background:#3b4c59c9;font:inherit;font-size:clamp(14px,1vw,20px)}
.wither-active .guide,.wither-active .restart{z-index:80}
.wither-active .story-mirror{filter:drop-shadow(0 1px 5px #fff9e9)}
.quiz-open .wither-scene{visibility:hidden}
@media(prefers-reduced-motion:reduce){.wither-moon,.wither-spirit,.wither-verse{transition-duration:.01ms}.wither-hit i{animation:none}}
.family-image,.departure-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story-heading{position:absolute;left:4.2%;top:5%;color:#78564d;text-shadow:0 1px 8px #fff}
.story-heading small{letter-spacing:.35em;font-size:clamp(10px,.7vw,16px)}
.story-heading h2{font-size:clamp(23px,2.3vw,44px);font-weight:400;letter-spacing:.16em;margin:.4em 0}
.departure-person{position:absolute;left:42.4%;top:62.5%;width:10%;height:23.5%;object-fit:contain;transform-origin:50% 100%;pointer-events:none}
.departure-hit{position:absolute;left:40%;top:61%;width:15%;height:25%;border:0;background:transparent;cursor:pointer;color:#88574d}
.departure-hit span{position:absolute;bottom:-12%;left:50%;transform:translateX(-50%);white-space:nowrap;padding:.6em 1em;border:1px solid #bd8e7c;border-radius:999px;background:rgba(255,250,241,.86);font:inherit;font-size:clamp(12px,1vw,20px)}
.departure-scene.walking .departure-person{animation:walkIntoSnow 9s ease-in-out forwards}
.departure-scene.walking .departure-hit{display:none}
.departure-snow{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(ellipse,rgba(255,255,255,.85) 0 1.5px,transparent 3px),radial-gradient(ellipse,rgba(255,255,255,.75) 0 1px,transparent 3px);background-size:117px 139px,83px 107px;animation:snowFall 9s linear infinite;opacity:.55}
.departure-ending{position:absolute;left:50%;top:54%;transform:translateX(-50%);color:#78584d;letter-spacing:.22em;font-size:clamp(17px,1.5vw,28px);opacity:0;transition:opacity 1.5s}
.departure-replay{display:none;position:absolute;left:50%;bottom:18%;transform:translateX(-50%);border:1px solid #b58d7e;background:#fff9ed}
.departure-scene.departed .departure-ending{opacity:1}
.departure-scene.departed .departure-replay{display:block}
.family-active>.frame,.family-active>.hotspot,.family-active>.narration,.family-active>.original-verse,.family-active>.title,.family-active>.vignette,.departure-active>.frame,.departure-active>.hotspot,.departure-active>.narration,.departure-active>.original-verse,.departure-active>.title,.departure-active>.vignette{visibility:hidden}
.family-active .guide,.departure-active .guide,.family-active .restart,.departure-active .restart{z-index:80}
.stage.family-active .quiz-launch{display:none}
.stage.departure-active:not(.quiz-open) .quiz-launch{display:block;z-index:81}
.quiz-open .family-scene,.quiz-open .departure-scene{visibility:hidden}
@keyframes walkIntoSnow{0%{transform:translate(0,0) scale(1);opacity:1}25%{transform:translate(18%,-19%) scale(.76);opacity:1}50%{transform:translate(32%,-37%) scale(.5);opacity:.9}75%{transform:translate(45%,-52%) scale(.25);opacity:.5}100%{transform:translate(57%,-64%) scale(.05);opacity:0}}
@keyframes snowFall{to{background-position:58px 139px,-35px 107px}}
/* Touch-screen typography uses readable pixel floors instead of tiny vw text. */
@media(max-width:1024px),(pointer:coarse){
  html,body{font-size:16px;-webkit-text-size-adjust:100%}
  .stage .guide{max-width:62%;padding:.55em .75em;gap:.65em}
  .stage .guide-label{font-size:13px;letter-spacing:.14em}
  .stage .guide p{font-size:15px;line-height:1.5;letter-spacing:.04em}
  .stage .guide-number{font-size:28px}
  .stage .restart{font-size:14px;min-height:44px;opacity:.9}
  .stage :is(.first-title,.west-title,.burial-title,.story-heading) small,.stage .title span{font-size:13px;letter-spacing:.15em}
  .stage :is(.first-title,.west-title,.burial-title,.story-heading) h2,.stage .title h1{font-size:25px}
  .stage :is(.first-hit,.west-hotspot,.hotspot,.burial-pick,.burial-baoyu-hit) span{font-size:14px;letter-spacing:.04em}
  .stage :is(.burial-bag span,.burial-poem-hint,.burial-revisit){font-size:14px}
  .stage .west-dialogue{left:30%;top:8%;height:71%;font-size:18px;max-width:36%;gap:1em;line-height:1.23}
  .stage .west-dialogue p:last-child{padding-top:.3em}
  .stage .original-verse{max-width:90%;gap:.42em}
  .stage .original-verse p{font-size:16px;line-height:1.25}
  .stage .story-mirror{width:128px;right:2.5%;top:18%}
  .stage .quiz-launch{min-height:44px;font-size:15px;padding:.65em 1em}
  .stage .departure-hit span{font-size:15px}
  .stage .burial-poem{top:26%;height:51%;width:33%;left:49%}
  .stage .burial-stanza{display:flex;justify-content:space-evenly;gap:7px;padding:0 3px;overflow-x:auto;overflow-y:hidden;touch-action:pan-x}
  .stage .burial-stanza .poem-line{display:block;writing-mode:vertical-rl;font-size:16px;line-height:1.23;letter-spacing:0}
  .stage .burial-stanza .poem-char{display:inline;height:auto;line-height:1.23em}
  .stage .burial-poem-hint{bottom:15%;right:6%}
  .stage .burial-poem-scroll{touch-action:pan-x pan-y}
  .ambient-petals i:nth-child(n+15){display:none}
  .quiz-panel .quiz-copy{justify-content:flex-start;overflow-y:auto;min-height:0;max-height:100%;padding:22px 24px;overscroll-behavior:contain}
  .quiz-panel .quiz-kicker,.quiz-panel small{font-size:14px}
  .quiz-screen{grid-template-columns:70% 30%}
  .quiz-screen .quiz-brand b{font-size:28px}
  .quiz-screen .quiz-brand span,.quiz-screen .quiz-section-label,.quiz-screen .quiz-chapter{font-size:15px}
  .quiz-screen .quiz-section-label{margin-top:.8em}
  .quiz-screen h2{font-size:22px;line-height:1.45}
  .quiz-screen .quiz-options button{font-size:16px;min-height:48px}
  .quiz-screen footer .quiz-primary,.quiz-screen footer .quiz-secondary{min-height:44px;font-size:16px;min-width:120px}
  .quiz-result .result-label{font-size:15px;margin-top:1em}
  .quiz-result h3{width:min(100%,330px);padding:0 10%;font-size:23px}
  .quiz-result .quiz-traits span{font-size:16px;flex-basis:108px}
  .quiz-result .quiz-description{font-size:16px;line-height:1.8}
  .quiz-result .quiz-actions{flex-wrap:wrap;gap:8px}
  .quiz-result .quiz-actions button{font-size:16px;height:48px;min-height:48px;min-width:170px}
  .fate-panel .quiz-copy>p,.fate-panel .fate-verse p{font-size:16px;line-height:1.7}
  .fate-panel .fate-verse blockquote{font-size:20px}
}
@media(prefers-reduced-motion:reduce){.departure-snow,.ambient-petals i,.story-mirror.inviting{animation:none}.mirror-face-inner,.story-mirror .mirror-face img{transition-duration:.01ms}.departure-scene.walking .departure-person{animation-duration:1s}.departure-ending{transition:none}}
@media(max-width:600px) and (orientation:portrait){.orientation-note{display:block;position:fixed;left:8%;right:8%;top:max(24px,env(safe-area-inset-top));z-index:250;margin:0;text-align:center;font-size:16px;line-height:1.8;letter-spacing:.1em;color:#e8d3b3}}
@media(prefers-reduced-motion:reduce){.stage.cloud-opening :is(.cloud-left,.cloud-right,.cloud-lower,.cloud-veil){animation-duration:.3s}}

/* A single story line surrounds the mirror on a true, viewport-bounded circle. */
.chapter-navigation{position:absolute;inset:0;z-index:130;container-type:size;--orbit-size:min(360px,calc(100cqh - 220px),calc(100cqw - 220px));--nav-accent:#a66c64;--nav-fill:#eddcd5;overflow:hidden;background:#f8f6ed;color:#62594e;isolation:isolate}
.chapter-navigation[hidden]{display:none}
.chapter-navigation[data-line="family"]{--nav-accent:#788c78;--nav-fill:#dde5d8}
.chapter-nav-heading{position:absolute;left:5%;top:6%;text-align:left}
.chapter-nav-heading>span{font-size:14px;letter-spacing:.28em;color:#94816b}
.chapter-nav-heading h2{margin:.4em 0 0;font-size:26px;letter-spacing:.18em;font-weight:400}
.chapter-nav-close{position:absolute;z-index:5;top:max(5%,env(safe-area-inset-top));right:max(4%,env(safe-area-inset-right));min-width:108px;min-height:44px;padding:9px 18px;border:1px solid #b8b1a3;border-radius:999px;background:transparent;color:#6d6559;font:inherit;font-size:15px;cursor:pointer}
.chapter-nav-close:hover,.chapter-nav-close:focus-visible{background:#eeeadf;outline:1px solid #aaa18f}
.chapter-nav-wheel{position:absolute;left:50%;top:45%;width:var(--orbit-size);height:var(--orbit-size);transform:translate(-50%,-50%)}
.chapter-orbit{position:absolute;inset:0;border:1px solid #c7c4b7;border-radius:50%;pointer-events:none}
.chapter-nav-center{position:absolute;z-index:3;left:50%;top:50%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%);text-align:center}
.chapter-mirror-face{display:block;width:100%;aspect-ratio:1;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;perspective:900px;transform-origin:center}
.chapter-mirror-inner{position:relative;display:block;width:100%;height:100%;transform-origin:center;transition:transform .22s ease,opacity .22s ease}
.chapter-nav-center.turning .chapter-mirror-inner{transform:scaleX(.035);opacity:.5}
.chapter-mirror-inner img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .18s ease}
.chapter-nav-center[data-face="garden"] .mirror-face-garden,.chapter-nav-center[data-face="grass"] .mirror-face-grass{opacity:1}
.chapter-nav-center[data-face="garden"] .mirror-face-grass,.chapter-nav-center[data-face="grass"] .mirror-face-garden{opacity:0}
.chapter-nav-side,.chapter-flip-hint{position:absolute;left:50%;width:220px;transform:translateX(-50%);white-space:nowrap;line-height:1.5}
.chapter-nav-side{top:calc(100% + 5px);font-size:14px;letter-spacing:.05em;color:var(--nav-accent)}
.chapter-flip-hint{top:calc(100% + 29px);font-size:12px;color:#948a7c}
.chapter-mirror-face:focus-visible{outline:2px solid var(--nav-accent);outline-offset:3px}
.chapter-nav-list{position:absolute;inset:0;z-index:4;pointer-events:none}
.chapter-link{position:absolute;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--nav-accent);transform:translate(-50%,-50%);cursor:pointer;pointer-events:auto}
.chapter-link i{position:absolute;left:50%;top:50%;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;background:#f8f6ed;transform:translate(-50%,-50%);transition:background .2s}
.chapter-link[data-selected="true"] i{background:var(--nav-fill);border-width:2px}
.chapter-link[data-state="current"] i{outline:1px solid currentColor;outline-offset:4px}
.chapter-link[data-state="complete"] i:after{content:"";position:absolute;inset:7px;border-radius:50%;background:currentColor}
.chapter-link[data-state="locked"] i{border-style:dashed;color:#a69e90}
.chapter-link[data-state="locked"] span{color:#92897a}
.chapter-link span{position:absolute;left:50%;top:50%;width:90px;transform:translate(calc(-50% + var(--label-x)),calc(-50% + var(--label-y)));font-size:15px;line-height:1.4;letter-spacing:.06em;white-space:nowrap;color:#635b50}
.chapter-node-number{display:none}
.chapter-link:focus-visible{outline:none}.chapter-link:focus-visible i{outline:2px solid var(--nav-accent);outline-offset:6px}
.chapter-nav-selection{position:absolute;left:50%;top:calc(45% + var(--orbit-size)/2 + 60px);display:flex;align-items:center;justify-content:space-between;gap:22px;width:min(440px,84cqw);transform:translateX(-50%)}
.chapter-selected-state{display:block;font-size:13px;color:var(--nav-accent);line-height:1.5}
.chapter-selected-title{font-weight:400;font-size:21px;letter-spacing:.08em;line-height:1.4;margin:2px 0 0}
.chapter-nav-enter{flex-shrink:0;min-width:100px;min-height:44px;padding:9px 16px;border:1px solid var(--nav-accent);border-radius:999px;background:var(--nav-fill);color:#655b4f;font:inherit;font-size:15px;cursor:pointer}
.chapter-nav-enter:disabled{background:transparent;border-color:#c9c2b5;color:#a0988a;cursor:default}
.chapter-nav-enter:focus-visible{outline:2px solid var(--nav-accent);outline-offset:3px}
.chapter-nav-message{position:absolute;left:50%;top:calc(45% + var(--orbit-size)/2 + 123px);margin:0;width:min(620px,88cqw);transform:translateX(-50%);font-size:13px;line-height:1.5;text-align:center;color:#938676}
.chapter-nav-legend{position:absolute;left:50%;bottom:3%;transform:translateX(-50%);font-size:12px;letter-spacing:.05em;color:#948b7e}
.legend-state{display:flex;gap:7px;align-items:center;white-space:nowrap}
.legend-state i{width:8px;height:8px;border:1px solid #a49b8d;border-radius:50%;font-style:normal}
.legend-state i:first-child{outline:1px solid #a49b8d;outline-offset:2px}
.legend-state i:nth-of-type(2){background:#8f9b89}
.legend-state i:nth-of-type(3){border-style:dashed}
.stage .story-mirror{right:max(2.5%,env(safe-area-inset-right));top:auto;bottom:max(4.2%,env(safe-area-inset-bottom));width:60px;animation:none;filter:none}
.stage .story-mirror .mirror-face{min-width:44px;min-height:44px}
.stage .scene-nav{right:calc(3.5% + 78px)}
.chapter-navigation.is-open{animation:chapterNavIn .25s ease both}
.chapter-navigation.is-open .chapter-orbit,.chapter-navigation.is-open .chapter-nav-list{animation:chapterNodesIn .4s .22s ease both}
@keyframes chapterNavIn{from{background:rgba(248,246,237,0)}to{background:#f8f6ed}}
@keyframes chapterNodesIn{from{opacity:0}to{opacity:1}}
@media(max-height:550px),(max-width:950px){
  .chapter-navigation{--orbit-size:min(260px,calc(100cqh - 155px),calc(100cqw - 130px))}
  .chapter-nav-heading{top:4%;left:4%}.chapter-nav-heading h2{display:none}
  .chapter-nav-close{top:3%;right:3%;font-size:14px}
  .chapter-nav-center{width:40%}
  .chapter-nav-side{font-size:13px}.chapter-flip-hint{font-size:12px;top:calc(100% + 25px)}
  .chapter-link i{width:32px;height:32px}
  .chapter-link[data-state="complete"] i:after{inset:auto;width:5px;height:5px;left:50%;bottom:2px;transform:translateX(-50%)}
  .chapter-link span{display:none}
  .chapter-node-number{display:block;position:relative;z-index:1;line-height:44px;font-size:13px;font-weight:400;font-variant-numeric:tabular-nums}
  .chapter-nav-selection{top:calc(45% + var(--orbit-size)/2 + 28px);gap:16px;width:min(390px,86cqw)}
  .chapter-selected-title{font-size:16px;letter-spacing:.03em}.chapter-selected-state{font-size:12px}
  .chapter-nav-enter{min-width:96px;font-size:14px}
  .chapter-nav-message,.chapter-nav-legend{display:none}
  .chapter-navigation[data-selection-state="locked"] .chapter-nav-message{display:block;top:auto;bottom:3px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.chapter-navigation.is-open,.chapter-navigation.is-open .chapter-orbit,.chapter-navigation.is-open .chapter-nav-list{animation:none}.chapter-mirror-inner,.chapter-mirror-inner img,.chapter-link i{transition-duration:.01ms}}
@media(prefers-reduced-motion:reduce){.stage[data-west="4"] .west-char{animation-delay:0s;animation-duration:.01ms}}
