:root{color-scheme:dark;--bg:#112822;--panel:#1b342c;--panel-light:#254236;--ink:#f0ead9;--muted:#a7b3a2;--gold:#d7bd80;--line:rgba(207,211,177,.15);--green:#a5c78a;--font:Georgia,'Times New Roman',serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 48% 0%,#294c39 0,transparent 56%),var(--bg);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:14px;line-height:1.5}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{background:none;border:0}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:hover:not(:disabled){color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}[hidden]{display:none!important}.app-shell{max-width:1550px;margin:auto;padding:0 4%}.topbar{height:99px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;gap:14px;align-items:center}.brand-mark{display:grid;place-items:center;width:42px;height:49px;border:1px solid #a38c56;border-radius:50% 50% 44% 44%;color:var(--gold);transform:rotate(-9deg)}.brand-mark .icon{width:28px;height:28px}.brand b{font-family:var(--font);font-size:31px;letter-spacing:6px;font-weight:400;line-height:1}.brand small{display:block;font-size:8px;letter-spacing:2.7px;color:var(--gold);margin-top:7px}.topbar nav{display:flex;gap:32px;align-self:stretch}.topbar nav button{padding:0 0;display:flex;align-items:center;gap:9px;color:#b1bbab;font-size:13px;position:relative}.topbar nav .nav-active{color:var(--gold)}.nav-active:after{content:'';position:absolute;bottom:-1px;height:2px;background:var(--gold);left:0;right:0}.top-actions{display:flex;gap:12px}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--muted)}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:34px 0 27px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--gold);margin:0 0 9px}h1{font:29px/1.25 var(--font);margin:0;letter-spacing:-.6px}h1 em{font-weight:400;color:#bbc8ae}h2{font:28px/1.2 var(--font);margin:0 0 14px;letter-spacing:-.3px}h3{margin:0;font-weight:500;font-size:14px}.save-state{font-size:10px;color:#a9b8a3;display:flex;align-items:center;gap:8px}.save-state>span{height:5px;width:5px;border-radius:50%;background:#acc991;box-shadow:0 0 8px #a9c97955}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}.adventure{min-width:0;border:1px solid #73835d55;border-radius:12px;overflow:hidden;background:#1b322a;box-shadow:0 18px 70px #06171133}.scene{position:relative;aspect-ratio:1.85;min-height:360px;overflow:hidden;background:#526d40;isolation:isolate}.scene-background{position:absolute;inset:0;background-image:url('assets/garden.png');background-position:center;background-size:cover;transition:filter .5s;z-index:-3}.scene-background.atlas{background-image:url('assets/scenes.png');background-size:200% 200%}.scene-background.door{background-position:0 0}.scene-background.life{background-position:100% 0}.scene-background.knowledge{background-position:0 100%}.scene-background.water,.scene-background.bridge{background-position:100% 100%}.scene-background.youth{filter:hue-rotate(8deg) saturate(.92);background-position:35% center}.scene-background.elder{background-position:80% center;filter:sepia(.15)}.scene-background.ruin,.scene-background.exit{background-position:right center;filter:sepia(.22) brightness(1.08)}.scene-shade{position:absolute;inset:0;background:linear-gradient(180deg,#092a2444,transparent 30%,transparent 62%,#122b27e8);z-index:-1}.scene-top{position:absolute;top:20px;left:22px;right:22px;display:flex;justify-content:space-between;gap:10px}.location-chip,.turn-chip{display:flex;gap:8px;align-items:center;font-size:10px;background:#18372aca;backdrop-filter:blur(8px);border:1px solid #e0ddae33;border-radius:30px;padding:7px 12px;color:#ede9d5}.location-chip .icon,.turn-chip .icon{width:14px;height:14px;color:#dac38a}.turn-chip{font-size:9px;letter-spacing:1px}.scene-caption{position:absolute;left:25px;bottom:20px}.scene-chapter{font-size:8px;letter-spacing:2.5px;color:#d4c398}.scene-caption p{font:italic 20px var(--font);margin:6px 0 0;text-shadow:0 2px 4px #132b25}.scene-map{position:absolute;right:20px;bottom:20px;font-size:10px;display:flex;gap:8px;align-items:center;color:#e1e4ce;border:1px solid #b5c39744;border-radius:6px;background:#143528c9;padding:9px 10px}.scene-map .icon{width:15px;height:15px}kbd{font:9px 'Segoe UI',sans-serif;color:#b3bfab;border:1px solid #99a69055;border-radius:3px;padding:0px 4px;margin-left:5px}.actor{position:absolute;bottom:21%;width:26%;height:62%;filter:drop-shadow(0 9px 5px #183b2933);animation:sway 5s ease-in-out infinite}.actor.player{left:23%;z-index:2}.actor.npc{left:53%;width:25%;z-index:1;animation-delay:-2s}.actor.pair{left:66%;width:29%;height:49%;bottom:23%;animation-delay:-1s}.actor-label{display:block;position:absolute;bottom:-11px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#112d26d9;border:1px solid #b0b28a55;border-radius:20px;font-size:7px;letter-spacing:1.4px;color:#f0ead9;padding:4px 10px}.actor-label span{color:var(--gold);margin-left:4px}.sprite{width:100%;height:100%;background-image:url('assets/cast.png');background-repeat:no-repeat;background-size:400% 100%;background-position:0 50%}.sprite-elder{background-position:33.333333% 50%}.sprite-youth{background-position:66.666667% 50%}.sprite-pair{background-position:100% 50%}.scene-detail{position:absolute;inset:0}.scroll-glint{position:absolute;top:43%;right:30%;display:grid;place-items:center;width:38px;height:38px;background:#d3b36d33;border:1px solid #ffdd8a88;border-radius:50%;box-shadow:0 0 30px #ebc772;animation:glow 3s infinite;color:#ffe0a3}.scroll-glint svg{width:23px;height:23px}.story-panel{padding:25px 28px 28px}.story-title-row{display:flex;justify-content:space-between;align-items:center}.story-title-row .eyebrow{font-size:8px;margin-bottom:7px}.story-title-row h2{margin-bottom:0}.ornament{font-size:40px;color:#b1a875;margin-left:20px}.story-text{font-size:13px;color:#c7ccba;line-height:1.85;margin:13px 0 17px;max-width:760px}.notice{border-left:2px solid #b69d62;padding:9px 12px;margin:12px 0 20px;font-size:11px;line-height:1.7;background:#d0ba7010;color:#d9d7bd;border-radius:0 5px 5px 0}.encounter-dialogue{border:1px solid #c1b07c33;border-radius:7px;padding:14px 16px;margin:14px 0;background:#132b22}.encounter-dialogue small{color:var(--gold);font-size:8px;letter-spacing:1.8px;display:block;margin-bottom:7px}.encounter-dialogue p{font:italic 17px/1.6 var(--font);color:#e4dfcb;margin:0}.choice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:1.5px;color:#9ba994;margin:18px 0 12px}.choice-heading>span:last-child{font-size:10px;letter-spacing:0;color:#879882}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice{display:flex;text-align:left;gap:12px;align-items:center;padding:13px 14px;border:1px solid #a9b48d33;border-radius:7px;background:linear-gradient(120deg,#354c3433,#1b332a);position:relative;min-height:64px}.choice .choice-icon{width:33px;height:33px;background:#92ac6820;border:1px solid #bfc29120;border-radius:7px;display:grid;place-items:center;flex-shrink:0;color:#c2c998}.choice.primary{border-color:#b59b6266;background:linear-gradient(110deg,#7d814b33,#4c603028)}.choice.primary .choice-icon{color:var(--gold);background:#ceb57516}.choice b{font-size:12px;font-weight:500;display:block}.choice small{font-size:9px;line-height:1.5;color:#a1b095;display:block;margin-top:3px}.choice .choice-arrow{margin-left:auto;color:#abb88c;font-size:18px}.choice:hover:not(:disabled){border-color:#c8b674;background:#4c61304d;box-shadow:0 4px 20px #0e201820}.sidebar{display:flex;flex-direction:column;gap:16px}.panel{border:1px solid var(--line);border-radius:10px;background:linear-gradient(140deg,#29443266,#1a322acc);padding:21px}.panel-eyebrow{display:flex;gap:9px;align-items:center;font-size:9px;letter-spacing:1.8px;color:var(--gold);margin:0 0 16px}.panel-eyebrow .icon{width:17px;height:17px}.quest-panel h2{font-size:25px;margin-bottom:9px}.quest-panel>p{font-size:11px;line-height:1.8;color:#b0bda6;margin:0}.scroll-count{display:flex;justify-content:space-between;align-items:center;margin:19px 0 8px}.scroll-count strong{font:29px var(--font);color:var(--gold)}.scroll-count strong small{font-size:18px;color:#728670}.scroll-count>span{font-size:8px;letter-spacing:1.2px;color:#a2b397}.progress-track{height:4px;border-radius:3px;background:#09261b;margin-bottom:18px}.progress-track div{background:linear-gradient(90deg,#94aa66,#d4bb77);height:100%;width:0;transition:width .5s;border-radius:3px;box-shadow:0 0 10px #d4bb7722}.scroll-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.scroll-list li{display:flex;gap:11px;align-items:center;color:#a4b09a;font-size:10px}.scroll-list .scroll-badge{width:24px;height:25px;display:grid;place-items:center;border:1px solid #8c9f7155;background:#0c2d2022;color:#93a27c;border-radius:4px;font:12px var(--font)}.scroll-list .found{color:#e6d39d}.scroll-list .found .scroll-badge{color:#e4c783;background:#c7ad5420;border-color:#c9ad6966}.scroll-list .captured{color:#e6b392}.scroll-list li>span:last-child{margin-left:auto;font-size:8px}.player-panel{padding:17px 20px}.player-summary{display:flex;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.portrait{width:47px;height:47px;overflow:hidden;background:#70835055;border:1px solid #b5b38166;border-radius:50%;flex-shrink:0}.portrait .sprite{width:68px;height:95px;margin-left:-11px;margin-top:-1px}.player-summary h3{font-size:12px}.player-summary p{font-size:9px;color:#9ead95;margin:4px 0 0}.resources{margin-top:13px;display:flex;flex-direction:column;gap:9px}.resources>div{display:flex;justify-content:space-between;align-items:center}.resources span{font-size:10px;color:#a7b79d}.resources b{font-size:12px;font-weight:500;color:#dbcc98}.resources #wit{letter-spacing:3px;font-size:12px}.rival-heading{display:flex;gap:7px;align-items:center}.rival-heading .icon{width:18px;height:18px;color:#c0ab78}.rival-heading h3{font-size:11px}.status-dot{width:5px;height:5px;background:#bcaa69;border-radius:50%;margin-left:auto}.rivals-panel{padding:17px 19px}.rivals-panel>p{font-size:10px;line-height:1.8;color:#b1bca7;margin:11px 0 8px}.rival-location{font-size:9px;color:#d1c093}.tactics{display:flex;flex-direction:column;gap:7px;margin-top:15px}.tactics button{display:flex;align-items:center;gap:8px;border:1px solid #a9b48d33;background:#20392b;padding:9px;border-radius:5px;font-size:10px;text-align:left}.tactics .icon{width:14px;height:14px}.tactics small{margin-left:auto;font-size:8px;color:#a9b794}.bonus-panel{padding:5px 6px}.bonus-panel .panel-eyebrow{font-size:8px;margin:0 0 13px;letter-spacing:1px}.bonus-row{display:flex;gap:8px;font-size:10px;align-items:start;margin:11px 0;color:#a9b59e}.bonus-row .check{width:13px;height:13px;border:1px solid #7e94745c;border-radius:50%;margin-top:2px;flex-shrink:0}.bonus-row.done{color:var(--gold)}.bonus-row.done .check{background:#bba46c;color:#18342b;font-size:9px;text-align:center}.bonus-row .points{font-size:8px;color:#c0ad78;margin-left:auto;white-space:nowrap}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 30px;color:#90a18a;font-size:10px}footer button{font-size:10px;color:#a6b399;padding:8px 0}.tiny-leaf{color:#b2bc89;font-size:22px;vertical-align:middle;margin-right:6px}footer button span{font-size:16px;margin-left:9px}dialog{background:linear-gradient(130deg,#284630,#132e26);border:1px solid #a09d6266;border-radius:13px;color:var(--ink);padding:26px;width:min(700px,94vw);max-height:90vh;box-shadow:0 25px 120px #0009}dialog::backdrop{background:#031a14cc;backdrop-filter:blur(6px)}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.modal-top .eyebrow{margin:0;font-size:8px}.modal-top .icon-button{font-size:25px;width:30px;height:30px}dialog h2{font-size:30px;margin-bottom:18px}dialog p{font-size:13px;line-height:1.8;color:#c6cfb9}.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.pill-button{padding:10px 17px;border-radius:6px;border:1px solid #b5ab7377;background:#d6bd7c;color:#203526;font-weight:600;font-size:12px}.pill-button:hover{color:#152a20!important;background:#e5ce97}.pill-button.secondary{color:#d4d9bd;background:#36523c}.pill-button.secondary:hover{color:#fff!important}.guide-list{display:grid;gap:14px;padding-left:20px;font-size:13px;color:#c7d0b8}.guide-list strong{color:#e0d5ad;font-weight:500}.guide-note{padding:11px 14px;border-left:2px solid var(--gold);background:#c5b17011}.riddle-text{font:italic 22px/1.6 var(--font)!important;color:#e8dfbf!important}.riddle-answers{display:grid;gap:9px}.riddle-answers button{text-align:left;padding:14px 16px;border:1px solid #bdc69844;border-radius:6px;background:#acc47311}.hint{color:#d2ba80!important;font-size:11px!important}.riddle-wrong{color:#eac39c!important}.map-legend{display:flex;gap:20px;font-size:10px;color:#b9c7a9;margin:12px 0}.map-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:4px}.map-legend .pair-dot{background:#df9577}.garden-map{width:100%;background:radial-gradient(ellipse,#436b393b,transparent);border:1px solid #80936933;border-radius:10px;overflow:visible}.map-node{cursor:pointer}.map-node text{font:8px 'Segoe UI',sans-serif;fill:#c0ceb1}.map-node circle{stroke:#93aa72;stroke-width:1.5;fill:#203b2a}.map-node.current circle{fill:#cbb66f;stroke:#f7dd89;stroke-width:2}.map-node.neighbor circle{stroke:#ddcb8c;fill:#526b3c}.map-node.locked circle{stroke:#80917166}.map-node:hover circle{fill:#829960}.map-node:focus{outline:none}.map-node:focus circle{stroke:#fff;stroke-width:3}.map-node.rivals circle{stroke:#e7a68b;stroke-width:2.5}.map-detail{font-size:11px!important}.map-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.map-buttons button{padding:7px 10px;font-size:10px;border:1px solid var(--line);border-radius:5px}.journal-entry{border-left:1px solid #7c8f6555;padding:0 0 17px 17px;margin:0 0 0 4px}.journal-entry small{font-size:8px;letter-spacing:1.2px;color:#bdac77}.journal-entry p{margin:4px 0 0;font-size:12px}.wisdom-entry{padding:15px;border:1px solid var(--line);border-radius:7px;margin-bottom:12px}.wisdom-entry h3{font-family:var(--font);font-size:19px;color:var(--gold)}.wisdom-entry p{margin:6px 0 0;font-size:12px}.result-score{font:64px var(--font);color:var(--gold);text-align:center;margin:25px 0 0}.result-subtitle{text-align:center;font-size:9px;letter-spacing:3px;color:#bdcaac}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.result-grid div{border:1px solid var(--line);padding:15px;text-align:center;border-radius:7px;font-size:11px;color:#b7c7a8}.result-grid b{display:block;color:#e2d1a1;font:24px var(--font);margin-bottom:5px}.fireflies{position:absolute;inset:0;pointer-events:none}.fireflies i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff5a5;box-shadow:0 0 9px #fff19d;animation:float 7s infinite;left:15%;top:40%;opacity:0}.fireflies i:nth-child(2){left:68%;top:24%;animation-delay:1s}.fireflies i:nth-child(3){left:83%;top:65%;animation-delay:2s}.fireflies i:nth-child(4){left:40%;top:35%;animation-delay:3s}.fireflies i:nth-child(5){left:55%;top:62%;animation-delay:4s}.fireflies i:nth-child(6){left:9%;top:70%;animation-delay:5s}.fireflies i:nth-child(7){left:74%;top:49%;animation-delay:6s}.noscript{position:fixed;bottom:0;left:0;right:0;padding:20px;background:#eedc9e;color:#132b22;text-align:center}@keyframes float{0%,100%{opacity:0;transform:translate(0,0)}40%{opacity:.8}70%{opacity:.4;transform:translate(13px,-22px)}}@keyframes sway{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes glow{0%,100%{box-shadow:0 0 15px #ebc77288}50%{box-shadow:0 0 35px #ebc772cc}}@media(min-width:1450px){.scene{min-height:480px}.story-text{font-size:14px}.choice b{font-size:13px}.choice small{font-size:10px}.game-layout{grid-template-columns:minmax(0,1fr) 310px}.panel{padding:23px}}@media(max-width:1100px){.app-shell{padding:0 3%}.game-layout{grid-template-columns:minmax(0,1fr) 255px;gap:17px}.scene{min-height:330px}.story-panel{padding:20px}.topbar nav{gap:20px}.save-state{display:none}.panel{padding:17px}.choice{padding:11px 10px;gap:8px}.choice .choice-icon{width:27px;height:29px}.choice small{font-size:8px}.scene-caption p{font-size:17px}.scene-map{font-size:9px}.actor{height:56%;bottom:25%}.actor.pair{height:45%;bottom:27%}}@media(max-width:800px){.topbar{height:80px;gap:18px}.brand b{font-size:26px}.brand small{font-size:6px}.brand-mark{width:34px;height:41px}.topbar nav{gap:20px}.topbar nav button{font-size:11px}.topbar nav button .icon{display:none}.top-actions{gap:5px}.icon-button{width:30px;height:30px}.journey-heading{padding:26px 0 23px}h1{font-size:25px}.journey-heading .eyebrow{font-size:8px}.game-layout{grid-template-columns:1fr}.scene{aspect-ratio:1.8;min-height:320px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:15px}.quest-panel{grid-row:span 2}.bonus-panel{grid-column:1 / -1;display:flex;align-items:start;gap:25px;padding:15px 5px}.bonus-panel .panel-eyebrow{margin-top:11px}.bonus-panel #bonus-list{display:flex;gap:25px}.bonus-row{max-width:175px}.scene-caption p{font-size:20px}.actor{height:65%;bottom:20%}.actor.pair{height:54%;bottom:22%}.choice small{font-size:10px}.story-text{font-size:14px}.choice b{font-size:13px}}@media(max-width:520px){.app-shell{padding:0 15px}.topbar{gap:10px;height:78px}.brand-mark{display:none}.brand b{font-size:24px;letter-spacing:4px}.brand small{font-size:5px;letter-spacing:1.6px}.topbar nav{gap:17px}.topbar nav button span:last-child{display:none}.topbar nav button .icon{display:block;width:18px;height:18px}.topbar nav button{min-width:28px}.top-actions{gap:5px}.top-actions .icon-button{width:28px;height:28px}.journey-heading{padding:24px 0 20px}h1{font-size:23px;line-height:1.3}h1 em{display:block}.eyebrow{font-size:7px!important;letter-spacing:1.5px}.scene{min-height:300px;aspect-ratio:1.2}.scene-top{left:12px;right:12px;top:13px}.location-chip{font-size:9px;padding:6px 9px}.turn-chip{font-size:7px;padding:6px 8px}.scene-caption{left:16px;bottom:15px}.scene-caption p{font-size:17px}.scene-chapter{font-size:6px;letter-spacing:1.8px}.scene-map{right:12px;bottom:16px;padding:7px;font-size:0;gap:0}.scene-map .icon{width:18px;height:18px}.scene-map kbd{display:none}.actor.player{left:12%;width:36%;height:53%;bottom:24%}.actor.npc{left:47%;width:32%;height:52%;bottom:24%}.actor.pair{left:64%;width:35%;height:42%;bottom:25%}.actor-label{font-size:5px;padding:3px 6px;letter-spacing:.6px}.story-panel{padding:19px 16px}.story-title-row h2{font-size:25px}.story-text{font-size:12px}.choices{grid-template-columns:1fr}.choice{padding:13px;min-height:60px}.choice small{font-size:10px}.choice-heading{font-size:7px;letter-spacing:1px}.choice-heading>span:last-child{font-size:8px}.sidebar{grid-template-columns:1fr 1fr;gap:11px}.quest-panel{grid-column:1 / -1;grid-row:auto;padding:20px}.quest-panel h2{font-size:25px}.quest-panel .scroll-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 20px}.quest-panel>p{font-size:12px}.scroll-count{margin-top:10px}.player-panel,.rivals-panel{padding:13px}.player-summary{gap:8px;align-items:start}.player-summary h3{font-size:10px}.player-summary p{font-size:8px}.portrait{width:34px;height:34px}.portrait .sprite{width:48px;height:69px;margin-left:-7px}.resources span{font-size:9px}.resources #wit{letter-spacing:1px;font-size:10px}.rival-heading h3{font-size:10px}.rival-heading .icon{display:none}.rivals-panel>p{font-size:9px}.tactics button{font-size:9px;gap:5px;flex-wrap:wrap}.tactics small{font-size:7px}.tactics .icon{width:12px}.bonus-panel{display:block;grid-column:1 / -1}.bonus-panel #bonus-list{display:block}.bonus-row{max-width:none;font-size:11px}.bonus-panel .panel-eyebrow{font-size:9px}footer{font-size:8px;align-items:start;margin-top:15px}footer>span{max-width:55%}footer button{font-size:8px;white-space:nowrap}.map-legend{gap:10px;font-size:9px}dialog{padding:20px}dialog h2{font-size:25px}.riddle-text{font-size:20px!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Give map locations a continuous pointer target, including the gap above labels. */
.map-node{pointer-events:bounding-box}
