:root{--bg:#121216;--panel:#1c1b22;--panel-raised:#26242d;--gold:#c9a24b;--ivory:#efe8d6;--grey:#9a97a1;--crimson:#8b1e2d;--arcane:#6a5acd;--amber:#d9962b;--touch:3rem;font-size:16px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ivory);margin:0}body{-webkit-text-size-adjust:100%;overscroll-behavior:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body:before{content:"";z-index:0;pointer-events:none;background:var(--art-brand-title_background) center top / cover no-repeat;opacity:.16;position:fixed;inset:0}#app{z-index:1;max-width:600px;height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));flex-direction:column;gap:8px;margin:0 auto;display:flex;position:relative}h1,h2{color:var(--gold);margin:0;font-family:Georgia,Times New Roman,serif;font-weight:600}h2{font-size:1.4rem}p{margin:0;line-height:1.35}.muted{color:var(--grey)}.small{font-size:.85rem}.warn{color:var(--amber)}button{font:inherit;color:var(--ivory);background:var(--panel);border:1px solid var(--panel-raised);min-height:var(--touch);cursor:pointer;border-radius:8px;padding:0 14px}button:hover{background:var(--panel-raised)}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button[aria-pressed=true]{border:3px solid var(--gold);color:var(--gold);background:var(--panel-raised)}.panel{background:var(--panel);border:1px solid var(--panel-raised);border-radius:10px;padding:8px 12px}.title-screen:before{content:"";z-index:1;background:var(--art-brand-title_background) center top / cover no-repeat;pointer-events:none;position:fixed;inset:0}.title-screen>*{z-index:2;position:relative}.title-screen{flex-direction:column;flex:1;justify-content:center;gap:22px;padding:0 12px;display:flex}.title-screen h1{text-align:center;font-size:2.4rem}.title-screen h1.logo{background:var(--art-brand-logo) center / contain no-repeat;height:30vh;min-height:140px;font-size:0}.title-screen .subtitle{background:#0e0d12a6;border-radius:8px;align-self:center;padding:4px 12px}.title-screen .stack button,.title-screen button{border-color:var(--gold);background:#1c1b22e0}.title-screen .subtitle{text-align:center}.stack{flex-direction:column;gap:14px;display:flex}[hidden]{display:none!important}.header .row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.header .core-title{color:var(--gold);font-weight:600}.resources{color:var(--grey);flex-wrap:wrap;gap:2px 12px;margin-top:2px;font-size:.78rem;display:flex}.header.panel{padding:6px 10px}.header button{min-height:2.2rem;padding:0 10px}.header .ico:before{width:1.1em;height:1.1em;margin-right:.2em}.page-holder{flex:1;min-height:0;position:relative}.page{flex-direction:column;gap:10px;padding:4px 2px 12px;display:flex;position:absolute;inset:0;overflow-y:auto}.page>*{flex-shrink:0}.page[hidden]{display:none}.res-row{flex-direction:column;gap:4px;display:flex}.res-row .top{justify-content:space-between;display:flex}.bar{background:var(--panel-raised);border-radius:7px;height:14px;overflow:hidden}.bar>div{background:var(--arcane);height:100%;transition:width .4s linear}.bar.full>div{background:var(--amber)}.save-row{align-items:center;gap:12px;display:flex}.save-row .small{flex:1}.nav{gap:4px;padding:4px;display:flex}.nav button{text-overflow:ellipsis;white-space:nowrap;flex:1;min-height:3.4rem;padding:0 2px;font-size:.72rem;overflow:hidden}@media (prefers-reduced-motion:reduce){.bar>div{transition:none}}.ico:before{content:"";vertical-align:-.28em;background-position:50%;background-repeat:no-repeat;background-size:contain;width:1.25em;height:1.25em;margin-right:.35em;display:inline-block}.nav button.ico:before{width:1.7em;height:1.7em;margin:0 auto 1px;display:block}.res-gold:before{background-image:var(--art-icon-res_gold)}.res-mana:before{background-image:var(--art-icon-res_mana)}.res-stone:before{background-image:var(--art-icon-res_stone)}.res-iron:before{background-image:var(--art-icon-res_iron)}.res-knowledge:before{background-image:var(--art-icon-res_knowledge)}.nav-domain:before{background-image:var(--art-icon-nav_domain)}.nav-dungeon:before{background-image:var(--art-icon-nav_dungeon)}.nav-creatures:before{background-image:var(--art-icon-nav_creatures)}.nav-defense:before{background-image:var(--art-icon-nav_defense)}.nav-knowledge:before{background-image:var(--art-icon-nav_knowledge)}.mode-select:before{background-image:var(--art-icon-act_select)}.mode-excavate:before{background-image:var(--art-icon-act_excavate)}.mode-corridor:before{background-image:var(--art-icon-act_corridor)}.mode-build:before{background-image:var(--art-icon-act_build)}.mode-trap:before{background-image:var(--art-icon-act_trap)}.thumb:before{background-image:var(--thumb);width:1.8em;height:1.8em}.portrait{background:var(--portrait) center / contain no-repeat;filter:drop-shadow(0 4px 6px #000);height:120px}.nav-defense.ico,.nav button{line-height:1.1}.toolbar{flex-wrap:wrap;gap:6px;display:flex}.toolbar button{flex:auto;min-width:5rem}.toolbar.modes{flex-wrap:nowrap;gap:4px}.toolbar.modes button{flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:3.1rem;padding:0 2px;font-size:.68rem;line-height:1.1;display:flex;overflow:hidden}.toolbar.modes button:before{width:1.7em;height:1.7em;margin:0 0 1px}.toolbar.picker{flex-wrap:nowrap;gap:4px;overflow-x:auto}.toolbar.picker button{flex:none;min-width:0;min-height:2.4rem;padding:0 8px;font-size:.78rem}.toolbar.zoom{flex-wrap:nowrap;align-items:center}.toolbar.zoom button{flex:none;min-width:2.8rem;min-height:2.2rem;padding:0 8px}.toolbar.zoom p{flex:1;min-width:0}.page.dungeon{overflow:hidden}.page.dungeon .map-scroll{flex:1 1 0;height:auto;min-height:140px}.page.dungeon .panel{flex-shrink:1;max-height:30%;overflow-y:auto}.page.dungeon>.map-scroll{flex-shrink:1}.status{min-height:1.3em;font-size:.9rem}.status.ok{color:#7fcf8a}.status.bad{color:var(--amber)}button.primary{background:var(--gold);color:#1a1408;border-color:var(--gold);width:100%;margin-bottom:6px;font-weight:700}button.primary[disabled]{background:var(--panel-raised);color:var(--grey)}.map-scroll{border:1px solid var(--panel-raised);touch-action:pan-x pan-y;background:#0c0c10;border-radius:8px;height:52dvh;min-height:240px;overflow:auto}.map{grid-template-columns:repeat(var(--cols), var(--cell));width:max-content;display:grid}.cell{width:var(--cell);height:var(--cell);min-height:0;color:var(--ivory);text-shadow:0 1px 3px #000;background:#17161c 50%/cover;border:1px solid #0c0c10;border-radius:0;padding:0;font-size:.8rem;font-weight:600}.cell.st-ROCK{background-color:#0f0f13;background-image:var(--art-tile-rock);color:var(--grey)}.cell.st-EXCAVATED{background-color:#2a2630;background-image:var(--art-tile-excavated);color:var(--grey)}.cell.st-CORRIDOR{background-color:#3a3340;background-image:var(--art-tile-corridor);color:var(--ivory)}.cell.st-ENTRANCE{background-color:var(--crimson);background-image:var(--art-tile-entrance);color:var(--ivory)}.cell.st-ROOM_OCCUPIED{background-color:#3d3a52;background-image:var(--art-tile-room_floor);color:var(--gold)}.cell.cat-SPECIAL{background-color:#4a2430}.cell.sel{outline:3px solid var(--gold);outline-offset:-3px}.cell.pv-ok{box-shadow:inset 0 0 0 3px #5fa86a,inset 0 0 14px #5fa86a}.cell.pv-bad{box-shadow:inset 0 0 0 3px var(--amber)}button[disabled]{opacity:.5;cursor:not-allowed}.attr-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attr-row>span:first-child{min-width:7rem}select{font:inherit;color:var(--ivory);background:var(--panel);border:1px solid var(--panel-raised);min-height:var(--touch);border-radius:8px;padding:0 10px}.log{background:#0c0c10;border-radius:6px;flex-direction:column;gap:2px;max-height:40vh;padding:6px;display:flex;overflow-y:auto}.overlay{z-index:10;background:var(--bg);padding:16px;position:fixed;inset:0;overflow-y:auto}.overlay textarea{width:100%;min-height:6rem;color:var(--ivory);border:1px solid var(--panel-raised);background:#17161c;border-radius:8px;font-family:monospace;font-size:.75rem}.overlay label{flex-direction:column;gap:4px;display:flex}.overlay select{min-height:var(--touch);font-size:1rem}.tutorial{background:#0e0d12fc;align-items:center;display:flex}.tutorial .stack{gap:16px;width:100%;max-width:560px;margin:0 auto}.tutorial h2{font-size:1.7rem}.tutorial p[data-test=tutorial-body]{font-size:1.05rem;line-height:1.55}.objective{border-color:var(--gold);align-items:center;gap:8px;padding:6px 10px;display:flex}.objective strong{color:var(--gold);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.objective .objective-text{flex:1;font-size:.88rem;line-height:1.25}.objective button{width:auto;min-height:2.2rem;margin:0;padding:0 12px}.cell{position:relative}.tok{border:2px solid var(--gold);background:#1e1b27 var(--portrait) center 20% / 130% no-repeat;pointer-events:none;border-radius:50%;width:58%;height:58%;position:absolute;bottom:2%;right:2%;box-shadow:0 1px 4px #000}.tok+.tok{width:50%;height:50%;bottom:2%;left:2%;right:auto}.tok+.tok+.tok{width:40%;height:40%;top:2%;bottom:auto;left:2%}.tok.st-TRAINING{border-color:var(--amber)}.tok.st-INJURED,.tok.st-RECOVERING{border-color:var(--crimson);filter:grayscale(.6)}.room-actions{flex-direction:column;gap:6px;margin:4px 0;display:flex}.room-actions button.small{text-align:left;min-height:2.4rem;font-size:.85rem}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip{background:var(--panel-raised);min-height:2.2rem;padding:0 8px 0 2.1rem;font-size:.78rem;position:relative}.chip:before{content:"";border:1px solid var(--gold);background:#1e1b27 var(--portrait) center 20% / 130% no-repeat;border-radius:50%;width:1.6rem;height:1.6rem;margin-top:-.8rem;position:absolute;top:50%;left:4px}details>summary{cursor:pointer;color:var(--grey);padding:4px 0;font-size:.85rem}.page.dungeon .panel{flex:none;max-height:48%}.page.dungeon .panel:empty{display:none}.nav-army:before{background-image:var(--art-icon-nav_defense)}.seg{gap:4px;display:flex}.seg button{flex:1;min-height:2.4rem;font-size:.9rem}.header .row{align-items:center}.header .row button{margin-left:4px}
