@font-face{font-family:ForestSerif;src:url('/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');font-display:swap}@font-face{font-family:ForestSans;src:url('/fonts/inter-latin-400-normal.woff2') format('woff2');font-display:swap}
:root{color-scheme:dark;font-family:ForestSans,system-ui,sans-serif;color:#ecf8ed;background:#08251f;--mint:#a9f5d7;--gold:#e7cf9b;--panel:#08251feb}*{box-sizing:border-box}body{margin:0;overflow:hidden;min-height:100dvh;isolation:isolate}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #b7e6c733;background:#08251f99;border-radius:7px;padding:10px 14px;transition:background .2s,border-color .2s;min-height:44px}button:hover{background:#174938;border-color:var(--mint)}button:active{transform:scale(.98)}button:disabled{opacity:.36;cursor:default}button[aria-pressed=true]{color:var(--mint);border-color:#a9f5d76b}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.es-help{display:none!important}body.assist .es-help{display:block!important;font-family:ForestSans,system-ui,sans-serif;font-size:.78em;line-height:1.5;letter-spacing:0;font-weight:400;color:#cbd9ce;margin-top:5px;text-transform:none}body.assist button .es-help{font-size:10px;margin-top:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;left:12px;top:-100px;z-index:60;background:#08251f;padding:12px}.skip:focus{top:12px}
.forest-backdrop{position:fixed;inset:0;background-image:var(--forest-art);background-size:cover;background-position:center;filter:brightness(.72) saturate(.98);z-index:-3;transition:background-image .8s,filter 1s}.intro .forest-backdrop{filter:brightness(.75)}.vignette{position:fixed;inset:0;background:linear-gradient(0deg,#032319bb,transparent 65%,#031a1f65),radial-gradient(ellipse at 60% 45%,transparent,#051c1980);pointer-events:none;z-index:-2}.game-header{height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 26px;border-bottom:1px solid #dfffe319;background:linear-gradient(180deg,#052319d9,#05231930);position:relative;z-index:8}.back{font-size:12px;white-space:nowrap}.brand{font-family:ForestSerif,Georgia,serif;font-size:25px;white-space:nowrap}.brand em{font-style:normal;color:var(--gold)}.game-header nav{display:flex;gap:3px}.game-header button{background:transparent;border:0;border-radius:4px;padding:8px 11px;font-size:17px}.game-header button span{font-size:10px;margin-left:5px;letter-spacing:.025em}.game-header #assist{font-size:13px;border:1px solid #a9f5d740}.intro #view,.intro #quality{display:none}.game-header .es-help{font-size:9px!important}
.experience{height:calc(100dvh - 66px);min-height:400px;position:relative}.stage{position:absolute;inset:0 308px 0 0;overflow:hidden}.stage>canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.intro .stage{inset:0;opacity:.15;pointer-events:none}.chapter-title{position:absolute;left:30px;top:24px;max-width:66%;pointer-events:none;text-shadow:0 1px 12px #051e19}.chapter-title p{font-size:9px;letter-spacing:.19em;color:var(--gold);margin:0 0 10px}.chapter-title h1{font-family:ForestSerif,Georgia,serif;font-size:clamp(26px,3vw,40px);font-weight:400;margin:0;line-height:1.05}.chapter-title .es-help{font-size:12px!important}.mini-route{position:absolute;left:24px;bottom:240px;display:flex;flex-direction:column;align-items:center;gap:6px}.mini-route canvas{width:98px;height:98px;border:1px solid #cbf4c74d;border-radius:50%;background:#09251ccc;opacity:.9;cursor:pointer;touch-action:none}.mini-route>span{font-size:8px;letter-spacing:.2em;color:#d5dec8}.mini-route .es-help{font-size:8px!important;margin-top:2px!important;text-align:center}.intro .chapter-title,.intro .mini-route,.intro .journal,.intro .controls{display:none}
.welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:36px 7vw 36px 9vw;overflow:auto;z-index:4;background:linear-gradient(90deg,#031e19bd,transparent 90%)}.eyebrow{font-size:9px;font-weight:400;letter-spacing:.2em;color:var(--gold);text-transform:uppercase;line-height:1.7;margin:0 0 12px}.welcome-symbol{color:var(--gold);font-size:28px;margin:0 0 6px}.welcome h1{font-family:ForestSerif,Georgia,serif;font-size:clamp(58px,7.5vw,96px);font-weight:400;letter-spacing:.025em;line-height:.86;margin:0 0 24px;text-shadow:0 3px 20px #031d1b50}.welcome h1 em{font-style:normal;color:var(--mint)}.subtitle{font-family:ForestSerif,Georgia,serif;font-size:27px;margin:0 0 14px;color:var(--gold)}.intro-text{max-width:440px;font-size:13px;line-height:1.8;color:#e1eade;margin:0 0 22px}.welcome-actions{display:flex;gap:10px;flex-wrap:wrap}.welcome-actions button{min-height:48px}.primary{background:var(--mint);color:#08251f;border-color:var(--mint)}.primary:hover{background:#cfffe8;border-color:#cfffe8}.primary .es-help{color:#284a3b!important}.welcome-facts{font-size:9px;letter-spacing:.12em;color:var(--gold);margin:24px 0 10px}.welcome-note{font-size:10px;color:#c7d5c7;margin:0 0 10px}.text-button{background:transparent;border:0;padding:9px 0;border-radius:0;color:var(--mint);font-size:11px;text-align:left}.text-button:hover{background:transparent;color:#fff}
.journal{position:absolute;right:0;top:0;bottom:0;width:308px;display:flex;flex-direction:column;background:linear-gradient(180deg,#07251fe8,#052319f5);border-left:1px solid #e2ffe321;padding:22px 23px 18px;overflow:hidden;gap:0}.journal-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.journal-top>span{font-size:9px;color:var(--gold);letter-spacing:.08em}.journal-top button{font-size:11px;padding:5px 8px;background:transparent;border:0}.mission{flex-shrink:0;padding:16px 0 12px;border-bottom:1px solid #d9ffe220}.mission .eyebrow{margin-bottom:6px}.mission #objective{font-size:12px;line-height:1.65;margin:0 0 12px}.mission #progress{font-size:10px;line-height:1.6;margin:0 0 7px;color:var(--mint)}progress{display:block;width:100%;height:3px;border:0;background:#b8eacc20;accent-color:var(--mint)}progress::-webkit-progress-bar{background:#b8eacc20}progress::-webkit-progress-value{background:var(--mint)}.mission #goal-note{font-size:10px;color:var(--gold);line-height:1.5;margin:10px 0 0}.wisdom{min-height:80px;flex:1;overflow:auto;padding:19px 0 10px;scrollbar-width:thin}.wisdom .eyebrow{margin-bottom:5px}.wisdom h2{font-family:ForestSerif,Georgia,serif;font-size:27px;font-weight:400;line-height:1.12;margin:0 0 12px}.wisdom>p:not(.eyebrow):not(.reference){font-size:12px;line-height:1.7;margin:0 0 10px}.reference{font-size:9px;line-height:1.6;color:#c4cdb8;margin-top:15px}.guidance{font-size:11px;line-height:1.6;color:#d9dfba;padding:12px 0 0;border-top:1px solid #d9ffe220;margin:0 0 12px;flex-shrink:0}.journal-actions{display:flex;gap:6px;flex-shrink:0}.journal-actions button{font-size:10px;padding:8px;flex:1}.save-info{font-size:9px;color:#99b8a8;margin:12px 0 0;flex-shrink:0}.journal .es-help{font-size:10px!important;line-height:1.55!important}
.controls{position:absolute;left:26px;bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;width:calc(100% - 360px);gap:30px;pointer-events:none}.controls>div{pointer-events:auto}.movement{text-align:center}.control-caption{display:block;font-size:8px;letter-spacing:.16em;color:#dfebd8;margin-bottom:8px}.dpad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:5px}.dpad button{padding:0;font-size:23px;background:#07251ed9;backdrop-filter:blur(8px);box-shadow:0 5px 14px #02151030}.up{grid-area:1/2}.left{grid-area:2/1}.right{grid-area:2/3}.down{grid-area:3/2}.dpad-center{grid-area:2/2;align-self:center;font-size:18px;color:var(--gold)}.key-caption{display:block;font-size:9px;color:#c0d9c4;text-align:center;margin-top:7px}.action-group{width:205px}.action{width:100%;min-height:56px;display:flex;gap:12px;align-items:center;justify-content:center;color:var(--gold);background:#18372ddd;backdrop-filter:blur(10px)}.action>span:first-child{font-size:22px}.action #action-label{font-size:13px}.utility{display:flex;gap:6px;margin-top:14px}.utility button{font-size:10px;flex:1;padding:9px 8px;min-height:40px}.controls .es-help{font-size:9px!important}
dialog{max-width:790px;width:calc(100% - 40px);max-height:88dvh;overflow:auto;background:#09291ff7;color:#eaf5e9;border:1px solid #9fdac366;border-radius:14px;padding:26px 32px 28px;box-shadow:0 30px 100px #0009;scrollbar-width:thin}dialog::backdrop{background:#021813aa;backdrop-filter:blur(10px)}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dialog-head .eyebrow{margin-top:7px}#dialog-close{font-size:26px;width:44px;padding:0;background:transparent;border:0}dialog h2{font-family:ForestSerif,Georgia,serif;font-size:42px;line-height:1.1;font-weight:400;margin:12px 0 24px}dialog h2 .es-help{font-size:18px!important}#dialog-body{font-size:13px;line-height:1.9}#dialog-body p{margin:0 0 18px}.reading{border-top:1px solid #abdeba33;padding-top:21px;margin-top:22px}.reading h3{font-family:ForestSerif,Georgia,serif;font-size:29px;font-weight:400;line-height:1.2;margin:0 0 14px}.reading .reference{font-size:10px;line-height:1.6}.reading h3 .es-help{font-size:14px!important}#dialog-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #b6e9bb33;padding-top:20px;margin-top:24px}#dialog-actions button{min-height:48px;font-size:12px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 30px}.help-grid article{border-bottom:1px solid #b6e9bb22}.help-grid b{color:var(--gold);letter-spacing:.04em;font-size:12px}.help-grid p{font-size:12px}.sources{padding-left:18px;font-size:11px;color:#d3dfd0}.sources li{margin-bottom:18px}.sources+ p{font-size:11px}.level-map{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:22px 0}.level-map button{min-height:52px;font-size:14px}.level-map button.complete{color:var(--mint);background:#20564170}.level-map button.current{border-color:var(--gold)}.noscript{position:fixed;inset:20%;background:#06261f;padding:30px;z-index:70;font:16px system-ui;overflow:auto}.noscript a{text-decoration:underline}
@media(max-width:1050px) and (min-width:761px){.brand{font-size:22px}.game-header button{padding:8px}.game-header button span{display:none}.chapter-title{left:20px}.controls{left:20px;width:calc(100% - 346px);gap:12px}.action-group{width:170px}}
@media(max-width:760px){.game-header{height:60px;padding:0 13px;gap:8px}.brand{font-size:20px}.back{font-size:10px}.game-header nav{gap:0}.game-header button{padding:6px;font-size:16px;min-width:32px}.game-header button span{display:none}.game-header #assist{font-size:10px;min-width:30px;padding:5px}.experience{height:calc(100dvh - 60px);min-height:390px}.stage{inset:0 0 202px}.chapter-title{top:17px;left:18px;max-width:82%}.chapter-title p{font-size:7px}.chapter-title h1{font-size:28px}.mini-route{left:auto;right:15px;bottom:170px}.mini-route canvas{width:65px;height:65px}.mini-route>span{font-size:7px}.controls{width:calc(100% - 32px);left:16px;bottom:220px;gap:16px}.action-group{width:156px}.action{min-height:50px;padding:9px}.action #action-label{font-size:11px}.action>span:first-child{font-size:17px}.utility{margin-top:8px;gap:5px}.utility button{font-size:9px;min-height:38px;padding:6px}.key-caption{display:none}.control-caption{font-size:7px}.controls .es-help{font-size:8px!important}.journal{top:auto;bottom:0;left:0;right:0;width:auto;height:202px;border-left:0;border-top:1px solid #dcffce44;padding:12px 16px 13px;display:grid;grid-template-columns:1fr 130px;grid-template-rows:32px 1fr;gap:0 14px;overflow:hidden}.journal-top{grid-column:1/3;grid-row:1;align-items:flex-start}.journal-top button{min-height:28px;padding:2px 7px}.mission{grid-column:1;grid-row:2;border:0;padding:0;min-height:0;overflow:auto;scrollbar-width:thin}.mission .eyebrow{display:none}.mission #objective{font-size:11px;line-height:1.5;margin:0 0 8px}.mission #progress,.mission #goal-note{font-size:9px;line-height:1.5;margin:6px 0}.journal .wisdom,.journal .guidance,.journal .save-info{display:none}.journal-actions{grid-column:2;grid-row:2;flex-direction:column;gap:7px;align-self:start}.journal-actions button{min-height:45px;flex:none;padding:7px;font-size:10px}.journal .es-help{font-size:9px!important}.welcome{align-items:center;text-align:center;padding:24px 25px 22px;justify-content:center;background:linear-gradient(0deg,#031e19de,transparent)}.welcome .eyebrow{font-size:8px;margin-bottom:10px}.welcome-symbol{font-size:24px;margin-bottom:12px}.welcome h1{font-size:65px;margin-bottom:20px}.subtitle{font-size:24px;margin-bottom:10px}.intro-text{font-size:12px;line-height:1.7;max-width:330px;margin-bottom:18px}.welcome-actions{justify-content:center}.welcome-facts{margin:21px 0 8px;font-size:8px;letter-spacing:.07em}.welcome-note{font-size:9px;line-height:1.6}.welcome .text-button{text-align:center}.intro .stage{inset:0}.intro .game-header #sound span{display:none}dialog{width:calc(100% - 24px);padding:20px 20px 24px;border-radius:12px;max-height:90dvh}dialog h2{font-size:34px;margin-bottom:20px}.help-grid{grid-template-columns:1fr;gap:12px}.level-map{grid-template-columns:repeat(5,1fr);gap:8px}.level-map button{min-height:45px}.reading h3{font-size:27px}#dialog-actions{flex-direction:column}#dialog-actions button{text-align:center}}
@media(max-width:760px) and (max-height:730px){.welcome h1{font-size:50px;margin-bottom:15px}.welcome-symbol{display:none}.welcome-facts{margin-top:12px}.welcome .eyebrow{margin-bottom:10px}.intro-text{font-size:11px;line-height:1.6;margin-bottom:14px}.subtitle{font-size:21px}.welcome{justify-content:flex-start;padding-top:26px}.mini-route{bottom:165px}.chapter-title h1{font-size:24px}}
@media(max-height:550px) and (min-width:761px){.game-header{height:52px}.experience{height:calc(100dvh - 52px);min-height:0}.journal{width:270px;padding:12px 16px}.stage{right:270px}.wisdom{min-height:0}.wisdom>p:not(.eyebrow){display:none}.wisdom{padding-top:10px}.wisdom h2{font-size:22px;margin-bottom:0}.mission{padding-top:6px}.guidance{display:none}.controls{width:calc(100% - 308px);bottom:12px;left:16px}.dpad{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,38px)}.dpad button{min-height:38px}.mini-route{bottom:165px}.mini-route canvas{width:60px;height:60px}.welcome{justify-content:flex-start;padding-top:24px}.welcome h1{font-size:52px}.welcome-symbol{display:none}.welcome-facts{margin-top:12px}.intro-text{margin-bottom:12px}.subtitle{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
