:root{color-scheme:dark;--bg:#101814;--panel:#1a261f;--line:#354238;--ink:#f0e4ca;--muted:#a8b1a0;--gold:#eac080;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 52% 20%,#253128 0%,var(--bg) 67%);color:var(--ink);font:15px system-ui,sans-serif;min-height:100vh}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid #fff0b7;outline-offset:3px}button[hidden],[hidden]{display:none!important}.mast{max-width:1340px;margin:auto;height:84px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font:700 20px Georgia,serif;letter-spacing:.09em}.brand small{display:block;margin-top:4px;color:var(--muted);font:9px var(--mono);letter-spacing:.18em}.sigil{color:var(--gold);font-size:33px}.edition,.eyebrow,.status,.bezel,.field-head,.meter,.inventory,.controls,.notice,footer{font:10px var(--mono);letter-spacing:.13em}.edition{color:var(--muted)}i{display:inline-block;width:6px;height:6px;background:var(--gold);transform:rotate(45deg);margin:0 7px}.quiet{border:1px solid var(--line);background:#19231d;border-radius:4px;padding:7px 10px;color:var(--muted);font:11px var(--mono)}.quiet:hover{color:var(--ink);border-color:var(--gold)}main{max-width:1270px;padding:32px 40px 16px;margin:auto}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px;gap:8px}.eyebrow{color:var(--gold);margin:0 0 9px}h1,h2,h3,p{margin:0}h1{font:400 clamp(27px,4vw,45px)/1.04 Georgia,serif}.status{padding:8px 10px;border:1px solid var(--line);white-space:nowrap;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:18px;align-items:start}.cabinet,.field{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 18px 48px #060b0770}.bezel{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:var(--muted)}.bezel span:first-child{color:var(--gold)}.bottom{height:39px;justify-content:flex-start;gap:8px}.bottom .quiet:last-child{margin-left:auto}.bottom i,.status i{background:#a9c688}.screen{position:relative;isolation:isolate;background:#101b18;overflow:hidden;container-type:inline-size}.screen:fullscreen{display:grid;place-items:center}.screen canvas{width:100%;display:block;image-rendering:pixelated}.screen:fullscreen canvas{width:auto;max-width:100vw;max-height:100vh;aspect-ratio:480/304}.overlay{position:absolute;inset:0}.title{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(ellipse at center,#101918de 1%,#101a1a9e 47%,#101a1a24 85%),linear-gradient(0deg,#0b161bda,#14242813 65%);padding:12px}.title h2{font:700 clamp(36px,10cqw,108px)/.98 Georgia,serif;letter-spacing:-.055em;color:#ffe6ab;text-shadow:0 3px #502e27,0 6px 18px #090b0a}.crest{color:#f0be73;font-size:clamp(18px,5cqw,45px);line-height:1;margin-bottom:2cqw;text-shadow:0 0 18px #ff9c4a}.title .eyebrow,.subtitle,.title-note{font:clamp(7px,1.45cqw,13px) var(--mono);letter-spacing:.23em}.subtitle{color:#f3d3a2;margin-top:1.9cqw}.menu{margin:3.4cqw 0 2.1cqw;display:flex;gap:8px}.primary,.secondary{padding:1.3cqw 2.2cqw;border:1px solid #f5cf8d;border-radius:3px;font:700 clamp(11px,1.8cqw,16px) var(--mono)}.primary{background:#eac080;color:#221910;box-shadow:0 3px #734b30}.primary:hover{background:#ffdc9e}.primary span{margin-left:9px}.secondary{background:#202d25}.secondary:hover,.actions button:hover{background:#41483a}.title-note{color:#c2c8aa}.title-note b{color:var(--gold)}#result-copy{max-width:38ch;margin:2cqw 0;color:#f0e4ca;font-size:clamp(11px,2cqw,16px)}.field{padding:17px}.field-head{display:flex;justify-content:space-between;color:#a6b2a0;padding-bottom:14px;border-bottom:1px solid var(--line)}.field-head .eyebrow{margin:0}.profile{display:flex;gap:10px;align-items:center;margin:16px 0}.profile canvas{width:52px;height:52px;image-rendering:pixelated;border:1px solid #74624a;border-radius:4px}.profile h2{font:700 22px Georgia,serif}.profile p{font-size:11px;color:var(--muted);margin-top:3px}.level{margin-left:auto;color:var(--gold);font:10px var(--mono);white-space:nowrap}.meter{display:grid;grid-template-columns:1fr auto;gap:8px;color:var(--muted)}.track{grid-column:span 2;background:#111a14;height:6px;border-radius:4px;overflow:hidden}.track div{height:100%;background:#a9c688}.inventory{display:flex;justify-content:space-between;margin-top:13px;color:#d3c9ac}.quest{background:#232f24;border:1px solid #3f4b36;border-left:2px solid var(--gold);margin:20px 0;padding:13px 11px}.quest h3{font:700 19px Georgia,serif;margin-bottom:5px}.quest p:last-child{color:#c1c7b5;font-size:13px;line-height:1.45}.controls div{display:flex;gap:4px;align-items:center;margin-top:7px}.controls div span{margin-left:auto;color:var(--muted);letter-spacing:0}kbd{min-width:21px;text-align:center;border:1px solid #495547;border-bottom-width:2px;border-radius:3px;padding:3px;color:#e5dbc0;font:11px var(--mono)}.dialogue,.battle-menu{position:absolute;bottom:3%;left:3%;right:3%;border:2px solid #bd9965;box-shadow:0 0 0 2px #1b221b;background:#17231ff5;padding:2cqw 2.5cqw;border-radius:4px}.dialogue{display:flex;justify-content:space-between;align-items:end;gap:10px}.dialogue strong,.battle-top{color:var(--gold);font:700 clamp(11px,1.9cqw,16px) var(--mono)}.dialogue p,.battle-menu p{font-size:clamp(11px,2.2cqw,17px);margin-top:4px}.dialogue button,.actions button,.touch button{background:#26382c;border:1px solid #68765c;border-radius:3px;padding:5px 8px}.battle-top{display:flex;justify-content:space-between;padding:3cqw;text-shadow:0 2px #111}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:8px}.actions button{font:clamp(10px,1.85cqw,14px) var(--mono);padding:4px 1px}.touch{display:none;justify-content:space-between;margin:12px 0;gap:8px}.dpad{display:flex;gap:5px}.touch button{min-height:44px;min-width:42px;touch-action:none}.notice{margin-top:10px;color:var(--gold)}.notice:empty{display:none}footer{display:flex;justify-content:space-between;gap:8px;color:var(--muted);border-top:1px solid var(--line);padding-top:13px;margin-top:18px;letter-spacing:.08em}footer b{color:var(--gold)}
@media(max-width:950px){.layout{grid-template-columns:minmax(0,1fr) 230px}.mast,main{padding-left:22px;padding-right:22px}.field{padding:13px}}
@media(max-width:740px){.layout{display:flex;flex-direction:column}.cabinet,.field{width:100%}.mast{height:65px}.edition{display:none}main{padding-top:22px}.status{font-size:8px}.touch{display:flex}footer{flex-wrap:wrap}}
@media(pointer:coarse){.touch{display:flex}}
@media(max-width:420px){.mast,main{padding-left:11px;padding-right:11px}.section-head{align-items:start}.bezel{height:29px;font-size:9px}.bottom{height:33px}.title .crest{margin-bottom:1cqw}.title .menu{margin-top:2.5cqw}}
.touch{padding:0 10px}.cabinet:has(#title:not([hidden])) .touch{display:none}
.cabinet:has(#battle:not([hidden]),#result:not([hidden])) .touch{display:none}
#speaker-art{width:clamp(38px,9cqw,70px);flex:none;align-self:center;image-rendering:pixelated;border:1px solid #9a7955}.dialogue>div:first-of-type{flex:1}.battle-menu{padding:1.2cqw 2cqw}#intent{color:#ffd59e;font:clamp(9px,1.6cqw,14px) var(--mono)}#actors,#targets,#choices{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}#tactics button,#choices button{background:#24382c;border:1px solid #68765c;padding:3px 7px;border-radius:3px;font:clamp(9px,1.6cqw,14px) var(--mono)}#tactics button[aria-pressed=true]{border-color:#eac080;color:#ffe3ae;background:#384332}#tactics button:disabled{opacity:.52}#battle-log{min-height:1.25em}#choice{z-index:2}#choices button:focus-visible{outline-offset:0}
.transition{display:grid;place-items:center;background:#101814;color:var(--gold);font:clamp(17px,5cqw,38px) Georgia,serif;animation:travel-fade .52s ease both;z-index:4}@keyframes travel-fade{0%,100%{opacity:.15}35%,75%{opacity:1}}
.cinematic{display:flex;align-items:end;justify-content:center;background:linear-gradient(0deg,#090f11 0%,#0e1519b5 40%,transparent 75%);padding:5cqw;text-align:center}.cinematic>div{max-width:50ch}.cinematic #caption{font:clamp(13px,3cqw,23px)/1.35 Georgia,serif}.scene-buttons{display:flex;justify-content:center;gap:8px;margin-top:2cqw}
.game-panel{background:#16261fec;padding:4cqw;overflow:auto;z-index:3;font-size:clamp(11px,2.2cqw,16px)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2cqw}.panel-head h2{font:clamp(18px,4.7cqw,35px) Georgia,serif}.route{display:flex;justify-content:space-around;align-items:center;position:relative;min-height:24cqw;margin-bottom:2cqw;background:repeating-linear-gradient(145deg,#263a2e,#263a2e 12px,#2c4233 12px,#2c4233 14px);border:1px solid #617051;border-radius:4px}.route:before{content:'';position:absolute;left:13%;right:13%;top:50%;border-top:2px dashed #d1ad75}.route button{position:relative;background:#19241e;border:1px solid var(--gold);border-radius:4px;padding:1.5cqw 1cqw;color:var(--ink)}.route button:after{content:attr(data-state);display:block;font:9px var(--mono);margin-top:4px;color:var(--gold)}.route button:disabled{border-color:#6b795e}.route button[data-state=Locked]{opacity:.75}#stats{display:flex;flex-wrap:wrap;gap:8px}#stats section{background:#263a2e;border:1px solid #617051;padding:6px;flex:1;min-width:140px}#stats p{margin-top:4px}#items{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}#items button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}#pack-message{margin-top:4px}.bottom .quiet{padding:4px 5px}.cabinet:has(.game-panel:not([hidden]),.cinematic:not([hidden]),.transition:not([hidden])) .touch{display:none}
@media(max-width:420px){.bottom{gap:3px;padding:0 4px}.bottom .quiet{font-size:9px}.bottom i{margin:0 3px}}
@media(prefers-reduced-motion:reduce){.transition{animation:none}}
#map{z-index:8;background:#17271f}#atlas{display:block;width:min(100%,56cqw);height:auto;margin:0 auto 2cqw;border:1px solid #6b795e;image-rendering:pixelated}#map-key{color:var(--gold);margin-bottom:4px}.cabinet:has(#map:not([hidden])) .touch{display:none}
#atlas{width:min(100%,68cqw)}
#world-time{color:var(--gold);margin-left:6px}.section-head{flex-wrap:wrap}
.dev-toolbar{position:fixed;z-index:20;left:0;top:90px;max-width:calc(100vw - 12px);border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:var(--panel);font:12px var(--mono);box-shadow:0 8px 26px #060b0770}
.dev-toolbar[open]{width:310px;animation:dev-slide-in .2s ease-out}
@keyframes dev-slide-in{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.dev-toolbar>summary{cursor:pointer;padding:10px 14px;color:var(--gold)}
.dev-toolbar summary:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.dev-controls{display:grid;gap:8px;padding:4px 12px 12px;max-height:calc(100dvh - 140px);overflow:auto}
.dev-group{border:1px solid var(--line);border-radius:5px}
.dev-group>summary{cursor:pointer;padding:9px 10px;color:var(--ink)}
.dev-group-content{display:grid;justify-items:start;gap:9px;padding:2px 10px 10px}
@media(max-width:740px){.dev-toolbar{top:68px}.dev-controls{max-height:calc(100dvh - 118px)}}
@media(prefers-reduced-motion:reduce){.dev-toolbar[open]{animation:none}}
.dev-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.dev-controls label{display:flex;align-items:center;gap:6px;color:var(--ink)}
.dev-controls label input[type=checkbox]{margin:0;accent-color:#a9c688}
.dev-controls button:disabled{opacity:.5;cursor:default}
.dev-controls input[type=time],.dev-controls select{font:inherit;color:var(--ink);background:#19231d;border:1px solid var(--line);border-radius:4px;padding:5px}
