@font-face{font-family:PaperCJK;src:url('../assets/fonts/noto-serif-regular.ttf') format('truetype');font-weight:400;font-display:block}
@font-face{font-family:PaperCJK;src:url('../assets/fonts/noto-serif-bold.ttf') format('truetype');font-weight:700;font-display:block}
@font-face{font-family:PaperFallback;src:url('../assets/fonts/ui-cjk.ttf') format('truetype');font-display:block}
:root{color-scheme:light;--ink:#203b31;--jade:#2c6853;--red:#a5342b;--paper:#f2e5cc;--gold:#ad8547}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;touch-action:manipulation;overscroll-behavior:none}
body{font-family:PaperCJK,PaperFallback,serif;color:var(--ink);background:#1f332e}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;border:0;background:none;touch-action:manipulation}button:focus-visible{outline:5px solid #b34729;outline-offset:3px}button:disabled{cursor:default;filter:grayscale(.9);opacity:.55}button:active:not(:disabled){transform:scale(.96)}
#viewport{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:radial-gradient(ellipse at 50% 35%,#426052,#182923 85%)}
#stage{width:780px;height:1080px;position:absolute;transform-origin:50% 50%;overflow:hidden;background:var(--paper) url('../assets/images/paper-texture.png') center/780px 1080px no-repeat;box-shadow:0 0 100px #0009;isolation:isolate}
#scenery{position:absolute;inset:0;background-position:center;background-size:cover;pointer-events:none;opacity:.38;z-index:-1}#scenery:after{content:'';position:absolute;inset:0;background:linear-gradient(#f2e5ccaa,transparent 32%,transparent 72%,#f2e5cc88)}
#screen{position:absolute;inset:0;pointer-events:none}#screen>*{pointer-events:auto}#board{position:absolute;left:26px;top:229px;width:728px;height:728px;display:none;touch-action:none;outline-offset:4px;border-radius:18px}#board.keyboard-active:focus-visible{outline:6px solid #f7df7a;box-shadow:0 0 0 10px #812e2799,0 0 24px 14px #f7df7a66}
#version{display:none;position:absolute;bottom:5px;left:0;width:100%;text-align:center;font-size:12px;opacity:.5;pointer-events:none}
.seal{font-size:26px;line-height:1.2;background:var(--red);color:var(--paper);width:76px;height:76px;display:grid;place-content:center;text-align:center;box-shadow:inset 0 0 0 4px var(--paper),0 0 0 2px var(--red);transform:rotate(-3deg)}
h1,h2,h3,p{margin:0}h1{font-weight:700;letter-spacing:10px}h2{font-size:48px;letter-spacing:4px}p{line-height:1.65}.muted{opacity:.74}.small{font-size:22px}.red{color:var(--red)}
.art-button{position:relative;display:flex;align-items:center;justify-content:center;background:center/100% 100% no-repeat;font-size:32px;font-weight:700;min-height:94px;padding:18px 34px;isolation:isolate}
.art-button.primary{background-image:url('../assets/images/button-primary.png');width:480px;height:160px;padding:0 80px 16px 26px;font-size:42px;letter-spacing:5px}
.art-button.secondary{background-image:url('../assets/images/button-secondary.png');min-width:265px;height:105px;font-size:29px}
.plain-button{font-size:26px;padding:14px 22px;border-bottom:2px solid #ad854777;min-height:62px}
.round-button{width:92px;height:92px;background:center/contain no-repeat url('../assets/images/tool-medallion.png');display:flex;align-items:center;justify-content:center;position:relative;font-size:29px;font-weight:700}.round-button img{width:52px;height:52px;object-fit:contain}
.home-seal{position:absolute;top:44px;left:352px}.home-title{position:absolute;top:126px;left:34px;width:712px;height:189px;background:center/contain no-repeat url('../assets/images/title-ink.png');mix-blend-mode:multiply;filter:brightness(1.18) contrast(1.08);font-size:0;text-align:center;color:#1d302a}.home-sub{position:absolute;top:292px;width:100%;font-size:26px;text-align:center;letter-spacing:4px}
.home-garden{position:absolute;top:322px;left:0;width:780px;height:492px;object-fit:cover;mask-image:linear-gradient(transparent,black 8%,black 88%,transparent);pointer-events:none!important}
.home-actions{position:absolute;top:775px;left:0;width:100%;display:flex;align-items:center;flex-direction:column}.home-tools{display:flex;gap:74px;margin-top:-4px}.home-note{font-size:22px;letter-spacing:3px;margin-top:10px}.continue-badge{position:absolute;top:757px;width:100%;text-align:center;font-size:23px;background:#f2e5ccdd;line-height:1.6}
.page-heading{position:absolute;top:45px;width:100%;text-align:center}.page-heading h1{font-size:70px}.page-heading p{font-size:24px;letter-spacing:4px;margin-top:7px}.map-route{position:absolute;top:155px;left:0;width:780px;height:625px;pointer-events:none!important}.map-node{position:absolute;width:158px;height:166px;display:flex;align-items:center;flex-direction:column;padding:0}.map-vignette{position:absolute;top:-50px;width:204px;height:164px;object-fit:cover;border-radius:50%;opacity:.78;mask-image:radial-gradient(ellipse,black 32%,transparent 74%);z-index:-1}.map-medal{width:102px;height:102px;display:grid;place-items:center;background:center/contain url('../assets/images/tool-medallion.png');font-size:39px}.map-node.locked .map-medal{filter:grayscale(.9)}.map-node.selected .map-medal{filter:drop-shadow(0 0 12px #d9b357)}.map-label{background:center/100% 100% url('../assets/images/title-plaque.png');padding:11px 17px;font-size:24px;white-space:nowrap}.map-lock{position:absolute;width:36px;height:36px;right:21px;top:58px;object-fit:contain}.map-check{position:absolute;right:17px;top:55px;background:var(--jade);border-radius:50%;color:white;width:31px;height:31px;font-size:24px}
.map-detail{position:absolute;left:52px;top:788px;width:676px;height:176px;padding:22px 35px;background:center/100% 100% url('../assets/images/scroll.png');display:flex;align-items:center;gap:20px}.map-detail .vignette{width:155px;height:126px;object-fit:cover;border-radius:8px}.map-detail h2{font-size:35px;letter-spacing:2px}.map-detail p{font-size:23px;line-height:1.5;max-width:390px}.map-enter{position:absolute;left:270px;top:950px}.map-enter .primary{width:430px;height:143px;font-size:36px}.map-back{position:absolute;left:63px;top:981px}
.hud-title{position:absolute;left:125px;top:21px;width:530px;height:76px;background:center/100% 100% url('../assets/images/title-plaque.png');display:grid;place-content:center;font-size:31px;letter-spacing:3px;font-weight:700}.hud-pause{position:absolute;left:676px;top:20px;width:78px;height:78px}.hud-pause img{width:78px;height:78px}.hud-home{position:absolute;left:26px;top:24px;width:75px;height:70px;font-size:34px}
.hud-strip{position:absolute;top:103px;left:26px;width:728px;height:117px;background:center/100% 100% url('../assets/images/hud-strip.png');display:flex;align-items:center;padding:18px 29px;gap:6px}.goals{display:flex;flex:1;gap:13px}.goal{display:flex;gap:8px;align-items:center;min-width:135px}.goal img{width:50px;height:54px;object-fit:contain}.goal-value{font-size:27px;white-space:nowrap}.goal-label{font-size:21px;opacity:.8}.goal.done{color:var(--jade)}.moves{border-left:1px solid #ad854766;padding-left:20px;width:130px;text-align:center}.moves strong{font-size:48px;font-weight:700;line-height:1}.moves span{font-size:24px}.moves.danger{color:var(--red)}
.hud-helper{position:absolute;top:963px;left:0;width:100%;font-size:24px;text-align:center;line-height:1.4}.tool-bar{position:absolute;top:1002px;left:180px;display:flex;gap:70px}.tool{position:relative;width:100px;height:66px;padding:0;display:flex;align-items:center;gap:5px}.tool img{width:51px;height:61px;object-fit:contain}.tool span{font-size:24px;white-space:nowrap}.tool b{position:absolute;top:-5px;left:40px;min-width:23px;height:23px;border-radius:50%;background:var(--paper);border:1px solid var(--gold);font-size:19px;line-height:22px}.tool.active{filter:drop-shadow(0 0 8px #b83f31);color:var(--red)}
#overlay{position:absolute;inset:0;pointer-events:none;z-index:20}#overlay:empty{display:none}.scrim{position:absolute;inset:0;background:#10231fcc;backdrop-filter:blur(2px);display:grid;place-items:center;pointer-events:auto}.modal{position:relative;width:650px;min-height:620px;max-height:998px;padding:64px 62px 45px;display:flex;align-items:center;flex-direction:column;isolation:isolate;color:var(--ink)}.modal:before{content:'';position:absolute;inset:0;z-index:-1;background:center/100% 100% url('../assets/images/panel.png')}.modal h2{margin-bottom:22px;text-align:center}.modal p{font-size:27px;text-align:center}.modal .close{position:absolute;right:17px;top:15px;width:62px;height:78px;padding:0;background:center/contain no-repeat url('../assets/images/close.png')}.modal-actions{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:25px;width:100%}.modal-actions .primary{width:430px;height:143px;font-size:35px}.modal-actions .secondary{min-width:225px;height:89px;font-size:25px}.modal-actions .plain-button{font-size:25px}.modal ul{font-size:25px;line-height:1.65;padding-left:27px;margin:12px 0}.modal .intro-hero{height:118px;width:260px;object-fit:cover;border-radius:40% 40% 10px 10px;margin:0 0 22px}.setting-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:93px;border-bottom:1px solid #ad854755;font-size:30px}.switch{height:60px;width:115px;background:center/100% 100% no-repeat url('../assets/images/toggle.png');filter:grayscale(1)}.switch[aria-checked=true]{filter:none}.switch[aria-checked=false]{transform:scaleX(-1)}
.help-gems{display:flex;gap:14px;justify-content:center;margin:20px 0}.help-gems img{width:68px;height:68px;object-fit:contain}.tip-note{font-size:23px!important;color:#6a6357;margin-top:10px}.progress-track{width:430px;height:14px;border:2px solid #bca477;background:#d6c4a6;border-radius:10px;margin:35px 0}.progress-track i{display:block;width:0%;height:100%;background:var(--jade);border-radius:8px}
.result-title{position:absolute;top:74px;left:0;width:100%;text-align:center;font-size:73px;font-weight:700;letter-spacing:8px}.result-sub{position:absolute;top:184px;width:100%;text-align:center;font-size:28px;color:var(--red)}.result-scroll{position:absolute;left:120px;top:265px;width:540px;height:620px;padding:34px 35px;background:center/100% 100% url('../assets/images/panel.png');display:flex;align-items:center;flex-direction:column}.result-lantern{height:190px;max-width:180px;object-fit:contain}.result-stars{display:flex;gap:18px;margin-top:6px}.result-stars img{width:88px;height:88px;object-fit:contain}.result-stats{width:100%;display:flex;justify-content:space-around;margin-top:27px;padding-top:19px;border-top:1px solid #ac854a77;text-align:center;font-size:23px}.result-stats b{display:block;font-size:46px;color:var(--jade)}.result-text{font-size:25px;text-align:center;margin-top:22px}.result-buttons{position:absolute;left:0;top:870px;width:100%;display:flex;align-items:center;flex-direction:column}.result-buttons .primary{width:440px;height:147px;font-size:36px}.result-buttons .plain-button{font-size:24px;margin-top:-6px}
#toast{position:absolute;top:466px;left:60px;width:660px;padding:22px 30px;text-align:center;font-size:30px;background:#f8efdbea;border:2px solid var(--gold);box-shadow:0 12px 30px #213d3444;border-radius:12px;opacity:0;pointer-events:none;z-index:30;transition:opacity .15s}#toast.show{opacity:1}
.loading-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.loading-screen h1{font-size:68px}.loading-screen p{font-size:27px}.loading-screen img{width:140px;height:180px;object-fit:contain}.error-detail{font-size:21px!important;max-height:170px;overflow:auto;overflow-wrap:anywhere;background:#eee2c9;padding:15px;width:100%}
.reduced *{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){#toast{transition:none}}

/* Reviewed layout overrides follow their base rules. */
#feedback{position:absolute;inset:0;width:780px;height:1080px;pointer-events:none;z-index:4;display:none}
.map-emblem{width:126px;height:112px;object-fit:contain}.map-number{position:absolute;left:11px;top:78px;background:var(--paper);border:1px solid var(--gold);border-radius:50%;font-size:24px;width:32px;height:32px;line-height:30px}.map-node.locked .map-emblem{filter:grayscale(.9);opacity:.75}.map-node.selected .map-emblem{filter:drop-shadow(0 0 10px #c59e52)}.map-complete{position:absolute;right:8px;top:73px;width:42px;height:42px;object-fit:contain}.map-node .map-label{margin-top:1px}.moves{position:relative}.moves-icon{position:absolute;left:1px;top:5px;width:31px;height:39px;object-fit:contain}.resume-icon{width:42px;height:42px;object-fit:contain;margin-right:9px}.intro-target{width:50px;height:50px;object-fit:contain;vertical-align:middle;margin-right:12px}.paused *{animation-play-state:paused!important}
/* Bound to the restoration's visible-time clock; modal pause still freezes play. */
#scenery.restored,.restoration-hero{clip-path:inset(0 var(--scene-reveal-right,0%) 0 0)}
.hud-strip{padding:18px 50px}.goal-value{line-height:1.25}.goal-label{line-height:1.15}.moves{display:flex;align-items:baseline;justify-content:center;gap:3px;flex-shrink:0}.moves strong{font-size:45px}.moves-icon{left:0;top:2px;width:27px;height:33px}.map-enter{top:932px}
.goal{gap:6px}.goal img{width:44px;height:50px}.goal-value{font-size:32px}.goal-label{font-size:28px;white-space:nowrap}.hud-pause{width:88px;height:88px;display:grid;place-items:center}.hud-home{width:88px;height:88px;top:18px}.hud-helper{top:959px;font-size:22px;line-height:1.1}.tool-bar{top:986px;left:155px;gap:44px}.tool{width:126px;height:88px}.tool img{width:58px;height:70px}.tool span{font-size:28px}.tool b{top:6px;left:43px}.modal .close{width:88px;height:88px;right:6px;top:6px;background-size:62px 78px}.switch{height:88px;background-size:115px 60px}.plain-button{min-height:88px}
.result-scroll{top:245px}.result-buttons{top:846px}.modal{overflow-y:auto}

.modal>p,.modal>ul{width:100%;min-width:0;overflow-wrap:anywhere}.modal{overflow-x:hidden}.modal ul{font-size:28px;line-height:1.5}.modal.intro{padding-top:56px;padding-bottom:40px}.modal.intro h2{margin-bottom:14px}.modal.intro>p{font-size:26px;line-height:1.4}.modal .intro-hero{height:84px;width:190px;margin-bottom:14px}.tool-bar{left:145px}.tool{width:134px}.tool span{font-size:32px}.tool b{font-size:24px;width:30px;height:30px;line-height:28px;top:1px}
.tip-note{font-size:28px!important;line-height:1.5}.hud-helper{font-size:26px}.plain-button{font-size:28px}.result-buttons .plain-button{font-size:28px}

/* Keep the painted dialog frame stationary; only long body content scrolls. */
.modal{overflow:visible;padding:78px 90px 68px}.modal:before{pointer-events:none}.modal h2{flex:none}.modal-body{display:flex;align-items:center;flex-direction:column;width:100%;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:0 8px;scrollbar-width:thin;scrollbar-color:#8c8a67 transparent}.modal-body>p,.modal-body>ul{flex:none;width:100%;min-width:0;overflow-wrap:anywhere}.modal-actions{flex:none;margin-top:20px}.modal.intro{padding:68px 90px 58px}.modal.intro .modal-body>p{font-size:26px;line-height:1.4}.modal.intro .modal-body .tip-note{font-size:28px!important}.modal .modal-actions .plain-button{font-size:28px}.modal-body .intro-hero{flex:none}

/* Reserve the lower paper interior for a two-line settlement message. */
.result-scroll{padding:34px 80px 80px}.result-lantern{height:145px}.result-stars{margin-top:6px}.result-stars img{width:70px;height:70px}.result-stats{margin-top:14px;padding-top:14px;font-size:26px;line-height:1.2}.result-stats b{font-size:40px;line-height:1.2}.result-stats small{font-size:21px;margin-left:3px;font-weight:400}.result-text{font-size:28px;line-height:1.35;margin-top:10px}
