@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Unbounded:wght@400;500;600;700&display=swap');
.codex-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:10px 16px;border:1px solid var(--gold);border-radius:4px;background:#dfb77b12;color:var(--gold);font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}.codex-button:hover{background:var(--gold);color:var(--bg)}@media(max-width:760px){.codex-button{padding:9px 12px}}
:root{color-scheme:dark;--bg:#101515;--panel:#171e1e;--line:#303938;--text:#ebe8dc;--muted:#909f98;--gold:#dfb77b;--teal:#9fc8b5;--red:#d1716b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px 'DM Sans',sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}header{height:100px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{color:var(--text);text-decoration:none;font:600 23px Unbounded,sans-serif;letter-spacing:1px;display:flex;align-items:center;gap:12px}.sigil{font-size:39px;color:var(--gold)}.edition{font:11px 'DM Sans',sans-serif;letter-spacing:3px;border-left:1px solid #53605a;padding-left:16px;margin-left:8px;max-width:100px;line-height:1.6}.header-right{display:flex;align-items:center;gap:24px;font-size:13px;color:var(--muted)}button{border-radius:4px;border:1px solid var(--line);padding:10px 16px;transition:background .15s,color .15s}.quiet,.icon-button{background:transparent;color:var(--text)}.quiet:hover,.icon-button:hover{background:#29332e}.primary{background:var(--gold);border-color:var(--gold);color:#25241e;font-weight:700;padding:15px 25px;box-shadow:0 4px 0 #6b5337}.primary:hover{background:#ecc997;transform:translateY(-1px)}main{max-width:1550px;margin:0 auto;padding:35px 5% 24px;display:grid;grid-template-columns:minmax(0,1fr) 266px;gap:32px}.run-bar{height:78px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.eyebrow{font-size:11px;letter-spacing:2.1px;color:var(--gold);font-weight:700}h1{font:500 clamp(18px,2vw,27px) Unbounded,sans-serif;margin:10px 0 0;line-height:1.3}.badge{padding:7px 10px;border:1px solid #3d4b42;color:var(--teal);font-size:12px;white-space:nowrap;margin-top:5px}.arena-shell{position:relative;background:#131916;border:1px solid #4a5145;box-shadow:0 20px 80px #0004;overflow:hidden}.arena-top{display:flex;justify-content:space-between;align-items:center;gap:10px;height:46px;padding:0 22px;background:#1c2420;border-bottom:1px solid #3b453b;font-size:12px;letter-spacing:1.5px}#health{font-size:20px;color:var(--red);letter-spacing:3px}#room-label{color:#c4c8b2}#timer{color:var(--gold);font-variant-numeric:tabular-nums}#game{display:block;width:100%;aspect-ratio:1.6;outline:0;touch-action:none;background:#29302b}.overlay{position:absolute;inset:46px 0 0;display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#0c1214e8,#10201c8c,#0c1214e8);backdrop-filter:blur(2px);text-align:center}.overlay[hidden]{display:none}.overlay-card{padding:28px}.overlay h2{font:500 clamp(28px,4.5vw,57px)/1.12 Unbounded,sans-serif;letter-spacing:-2px;margin:23px 0;color:#f1ead9}.overlay p{color:#afbeb1;line-height:1.7;margin:20px 0 26px}.small{font-size:13px;line-height:1.6}.overlay .small{display:block;margin-top:20px;color:#81938b}.controls{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;flex-wrap:wrap;padding:18px 0}kbd{color:#c4cbbd;font:11px 'DM Sans',sans-serif;border:1px solid #435048;border-bottom-width:2px;padding:3px 5px;border-radius:3px;margin-right:4px;display:inline-block}aside{border-left:1px solid var(--line);padding-left:28px;padding-top:5px}.side-section{padding:0 0 24px;margin-bottom:25px;border-bottom:1px solid var(--line)}.side-heading{display:flex;justify-content:space-between;align-items:center}.side-heading h2{font-size:11px;letter-spacing:1.7px;font-weight:600}.side-heading>span{font-size:12px;color:var(--muted)}#minimap{width:100%;display:block;margin:12px 0}.map-key{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.legend{display:inline-block;width:7px;height:7px;border:1px solid;margin-right:5px}.current{background:var(--gold);color:var(--gold)}.treasure{color:var(--teal)}.boss{color:var(--red)}.muted{color:var(--muted)}.empty{font-size:14px;line-height:1.8;padding:10px 0}.dossier h3{font:500 19px/1.4 Unbounded,sans-serif;margin:16px 0 10px}.dossier>p{font-size:14px;color:var(--muted);line-height:1.8;margin:0}.daily-note{margin-top:25px;display:flex;gap:14px;align-items:flex-start}.daily-note p{font-size:11px;line-height:1.8;color:#a7b3a9;margin:0}.daily-note span{color:#6f8378}.tiny-moon{font-size:25px;color:var(--gold)!important}.wide{width:100%}#restart{font-size:12px}footer{max-width:1550px;margin:auto;padding:0 5% 28px;display:flex;justify-content:space-between;color:#697970;font-size:10px;letter-spacing:1px}footer b{color:var(--gold);padding:0 8px}#toast{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);text-align:center;padding:10px 20px;background:#101815ee;color:var(--gold);border:1px solid #59614c;font-size:14px;pointer-events:none;opacity:0;transition:opacity .2s;width:max-content;max-width:90%}#toast.show{opacity:1}.relic{display:flex;gap:12px;margin-top:18px;align-items:center}.relic-icon{color:var(--gold);border:1px solid #4d5744;background:#252d23;flex-shrink:0;width:38px;height:38px;display:grid;place-items:center;font-size:22px}.relic strong{font-size:13px;font-weight:500}.relic p{font-size:12px;color:var(--muted);line-height:1.5;margin:4px 0 0}dialog{background:var(--panel);color:var(--text);border:1px solid #4c5a51;max-width:530px;width:calc(100% - 30px);padding:28px;border-radius:6px;max-height:90vh}dialog::backdrop{background:#000b;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}dialog h2{font:500 24px/1.4 Unbounded,sans-serif}dialog p{color:#aebbb1;line-height:1.7;font-size:14px}label{font-size:14px;display:block;margin:19px 0 8px}select,input{width:100%;background:#101815;color:var(--text);padding:12px;border:1px solid #465449;border-radius:4px}select{margin-bottom:18px}.notice{background:#26302a;border-left:2px solid var(--gold);padding:12px;font-size:13px;line-height:1.6}.dialog-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.dialog-actions button{font-size:13px}hr{border:0;border-top:1px solid var(--line);margin-top:22px}.touch-controls{display:none}
@media(max-width:1050px){header{padding:0 4%;height:80px}.edition{display:none}main{padding:28px 4%;gap:20px;grid-template-columns:minmax(0,1fr) 220px}aside{padding-left:20px}.header-right{gap:10px}.header-right>span{display:none}.arena-top{padding:0 12px}#health{font-size:17px;letter-spacing:1px}}
@media(max-width:760px){header{height:72px}.brand{font-size:17px;gap:7px}.sigil{font-size:28px}.header-right button{font-size:12px;padding:9px}.run-bar{height:auto;min-height:76px}.badge{font-size:10px}main{display:block;padding:20px 3%}.arena-top{height:38px;font-size:10px;letter-spacing:.5px}#health{font-size:14px}.overlay{top:38px}.overlay-card{padding:14px}.overlay h2{font-size:30px;margin:12px 0;letter-spacing:-1px}.overlay p{font-size:13px;margin:10px 0}.overlay .small{display:none}.overlay .primary{padding:11px 18px;font-size:14px}aside{border-left:0;padding:18px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.side-section{margin:0;padding-bottom:14px}.dossier{grid-column:1/-1}.dossier h3{font-size:17px}.daily-note{margin-top:14px}#restart{grid-column:1/-1}.controls{gap:8px;font-size:10px;padding:12px 0}.controls kbd{font-size:10px}footer{padding:0 4% 20px}footer span:last-child{display:none}#toast{font-size:12px;padding:8px;bottom:8px}}
@media(pointer:coarse){.touch-controls{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);touch-action:none;margin:10px 0}.touch-controls button{background:#29372f;color:var(--text);padding:15px;border-color:#536455;touch-action:none;user-select:none}.dpad{display:grid;grid-template-columns:repeat(3,45px);gap:3px}.dpad button{padding:11px}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.controls{display:none}}

.dungeon-toolbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:0 0 18px}.test-dungeon-link{font-size:13px;color:var(--muted);text-decoration:none}.test-dungeon-link:hover{color:var(--gold);text-decoration:underline}

/* Shared navigation across all five views. */
.site-header{height:auto;min-height:88px;flex-wrap:wrap;padding-block:18px;gap:14px 28px}.app-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.app-nav a{display:block;padding:10px 15px;border:1px solid transparent;border-radius:4px;color:var(--muted);font-size:14px;font-weight:500;text-decoration:none}.app-nav a:hover{color:var(--text);background:#25302a}.app-nav a[aria-current=page]{color:var(--gold);border-color:#736045;background:#dfb77b12}.model-catalog{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-6px 0 18px}.model-catalog p{flex:1;margin:0;min-width:150px;font-size:12px;color:var(--muted);line-height:1.6}.model-catalog button{font-size:11px;padding:8px 10px}
.play-surface{min-width:0}.play-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:10px}.play-actions button{font-size:12px}.arena-viewport{position:relative;width:100%;margin:auto}.arena-viewport .overlay{inset:0}.arena-space{min-width:0}.play-surface:fullscreen,.play-surface.is-expanded{background:var(--bg);width:100%;height:100%;padding:12px;display:flex;flex-direction:column;gap:8px}.play-surface:fullscreen .arena-shell,.play-surface.is-expanded .arena-shell{flex:1;min-height:0;display:flex;flex-direction:column;box-shadow:none}.play-surface:fullscreen .arena-top,.play-surface.is-expanded .arena-top{flex-shrink:0}.play-surface:fullscreen .arena-space,.play-surface.is-expanded .arena-space{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.play-surface:fullscreen .play-actions,.play-surface.is-expanded .play-actions{margin:0;flex-shrink:0}.play-surface:fullscreen .controls,.play-surface.is-expanded .controls{padding:4px 0;justify-content:center;gap:20px;flex-shrink:0}.play-surface:fullscreen .touch-controls,.play-surface.is-expanded .touch-controls{margin:0;flex-shrink:0}.play-surface.is-expanded{position:fixed;inset:0;z-index:1000;height:100dvh}body.game-expanded{overflow:hidden}
@media(max-width:760px){.site-header{padding:12px 3%;gap:8px}.site-header .brand{font-size:17px}.app-nav{width:100%;justify-content:space-between;gap:2px}.app-nav a{padding:9px 10px;font-size:12px}.play-actions button{padding:8px 12px}.play-surface:fullscreen,.play-surface.is-expanded{padding:6px;gap:4px}}
@media(max-height:500px){.play-surface:fullscreen .controls,.play-surface.is-expanded .controls{display:none}.play-surface:fullscreen .overlay h2,.play-surface.is-expanded .overlay h2{font-size:24px;margin:8px 0;letter-spacing:-.5px}.play-surface:fullscreen .overlay p,.play-surface.is-expanded .overlay p{font-size:12px;margin:6px 0}.play-surface:fullscreen .overlay .small,.play-surface.is-expanded .overlay .small{display:none}}

.play-surface:fullscreen .overlay-card,.play-surface.is-expanded .overlay-card{max-height:100%;overflow:auto}
