:root{color-scheme:dark;--bg:#171918;--panel:#222624;--panel2:#2a302c;--ink:#f2eee3;--muted:#b1b4a9;--line:#414943;--gold:#e1b968;--rust:#bd7552;--green:#9bae83;--danger:#d87767;font:16px/1.5 'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -20%,#333b35 0,#1b201d 48%,var(--bg) 78%);color:var(--ink);min-height:100svh}button,input,select{font:inherit}button{min-height:48px;border:1px solid var(--line);border-radius:9px;padding:.7rem 1rem;color:var(--ink);background:#303632;cursor:pointer;touch-action:manipulation}button:hover{border-color:var(--gold);background:#39413b}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button.primary{background:#725337;border-color:#b68d54;font-weight:700}button.primary:hover{background:#876441}button.quiet{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}.shell{width:min(100%,1040px);margin:auto;padding:clamp(1rem,4vw,2.5rem);padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.title-screen{min-height:100svh;display:grid;place-items:center;text-align:center;padding:1.5rem}.title-card{width:min(100%,620px);padding:clamp(1.2rem,5vw,3rem);border:1px solid #454c46;background:#1c211eec;border-radius:18px;box-shadow:0 24px 90px #0007}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;color:var(--gold);font-weight:700}.game-title,h1,h2,h3{font-family:Literata,Georgia,serif;line-height:1.15}.game-title{font-size:clamp(2.25rem,8vw,4.2rem);margin:.6rem 0 1rem}.subtle{color:var(--muted)}.button-stack{display:grid;gap:.7rem;margin:1.5rem auto 0;width:min(100%,340px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.25rem}.brand{font-family:Literata,Georgia,serif;color:var(--gold);font-weight:700}.top-actions{display:flex;gap:.5rem}.top-actions button{min-height:42px;padding:.45rem .8rem}.panel{background:linear-gradient(140deg,#252b27,#202421);border:1px solid var(--line);border-radius:13px;padding:clamp(1rem,3vw,1.4rem);margin:0 0 1rem}.panel h2,.panel h3{margin:.1rem 0 .7rem}.section-title{font-size:clamp(1.55rem,5vw,2.2rem);margin:0 0 .35rem}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem}.location{min-height:112px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;background:var(--panel);font-weight:700}.location span{font-size:.87rem;font-weight:400;color:var(--muted)}.stats{display:flex;flex-wrap:wrap;gap:.5rem}.pill{border:1px solid var(--line);border-radius:999px;padding:.3rem .65rem;font-size:.85rem;color:var(--muted)}label{display:grid;gap:.35rem;margin:.8rem 0;color:var(--muted)}input,select{min-height:48px;width:100%;padding:.65rem .8rem;border:1px solid var(--line);border-radius:8px;background:#171b19;color:var(--ink)}.row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.quest{display:flex;justify-content:space-between;gap:1rem;align-items:center}.quest+.quest{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.quest p{margin:.25rem 0;color:var(--muted)}.dungeon-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.8fr);gap:1rem}.scene{min-height:235px;display:grid;place-items:center;position:relative;overflow:hidden;border:1px solid #565c4e;border-radius:12px;background:linear-gradient(#313a34 0 28%,#202521 28% 76%,#111513 76%);perspective:400px}.scene:before,.scene:after{content:'';position:absolute;inset:18% 12%;border:2px solid #666a59;transform:perspective(500px) rotateX(-8deg);background:linear-gradient(90deg,#252b26 0 12%,transparent 12% 88%,#252b26 88%),linear-gradient(#171c19 0 15%,transparent 15% 85%,#171c19 85%)}.scene:after{inset:40% 37%;background:#141815;border:1px solid #4f594b}.scene p{z-index:1;padding:.5rem .8rem;background:#151916d9;border-radius:6px;color:#e0d5b9}.map{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;max-width:260px}.cell{aspect-ratio:1;border-radius:3px;background:#121614;border:1px solid #333a35}.cell.seen{background:#505b4b}.cell.player{background:var(--gold);box-shadow:0 0 0 2px #171918 inset}.cell.stairs{background:var(--rust)}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:350px;margin:1rem auto}.controls .up{grid-column:2}.controls .left{grid-column:1;grid-row:2}.controls .down{grid-column:2;grid-row:2}.controls .right{grid-column:3;grid-row:2}.controls button{min-height:56px}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.actions button{padding:.5rem;font-size:.9rem}.health{height:10px;background:#121614;border-radius:99px;overflow:hidden}.health i{display:block;height:100%;background:#aa6355}.enemy{font-size:3.5rem;text-align:center}.log{color:var(--muted);min-height:3em}.footer{margin-top:2rem;color:#858b81;font-size:.8rem;text-align:center}.notice{border-left:3px solid var(--gold);padding:.4rem .8rem;color:var(--muted)}.qa{border-color:#a45d51}.hidden{display:none!important}@media(max-width:680px){.dungeon-layout{grid-template-columns:1fr}.scene{min-height:190px}.topbar{align-items:flex-start}.brand{max-width:55%}.actions{grid-template-columns:repeat(2,1fr)}.quest{align-items:flex-start}.quest button{flex:0 0 auto}}@media(min-width:800px){.dungeon-layout .panel{margin:0}}
