:root{--ink:#1c120c;--panel:#2a1c14;--line:#6a4a2a;--paper:#f4ecd8;--muted:#b8a488;--sun:#c8412f;--gold:#f2b84b;--mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--disp:"Bricolage Grotesque", system-ui, sans-serif;--sans:"Instrument Sans", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--paper);font-family:var(--sans);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}canvas{touch-action:none;display:block}.menu{padding:max(28px, env(safe-area-inset-top)) 16px 32px;background:#1c120cf2;justify-content:center;display:flex;position:fixed;inset:0;overflow-y:auto}.menu[hidden]{display:none}.card{flex-direction:column;gap:14px;width:100%;max-width:400px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand h1{font:800 32px/1 var(--disp);letter-spacing:.16em;margin:0}.logo{background:radial-gradient(circle at 62% 42%, var(--sun) 0 11px, transparent 12px), var(--panel);border-radius:9px;width:34px;height:34px}.motto{font:800 44px/1 var(--disp);margin:0}.tag{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.card button{font:inherit;cursor:pointer;border:1.5px solid var(--line);background:var(--panel);color:var(--paper);font:800 20px var(--disp);border-radius:16px;padding:16px}.card button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.card button.primary{background:var(--paper);border-color:var(--paper);color:var(--ink)}.how{color:var(--muted);margin:0;padding-left:20px;font-size:14px;line-height:1.55}.how li{margin:4px 0}.eyebrow{font:700 12px var(--mono);letter-spacing:.18em;color:var(--sun)}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat{background:var(--panel);text-align:center;border-radius:12px;padding:12px 8px}.stat .v{font:700 20px var(--mono)}.stat .l{color:var(--muted);margin-top:2px;font-size:12px}.best{color:var(--gold);margin:0;font-weight:700}.keys{font:500 12px var(--mono);color:var(--muted)}.lives{justify-content:space-between;align-items:center;margin-top:-6px;display:flex}.lives .hearts{color:var(--sun);letter-spacing:4px;font-size:22px}.lives .wait{color:var(--muted);font:500 13px var(--mono)}.note{border:1px solid var(--line);color:var(--paper);border-radius:10px;margin:0;padding:10px 12px;font-size:14px}.card button:disabled{opacity:.55;cursor:default}.tower{flex-direction:column;gap:10px;display:flex}.tower-map{width:100%;height:auto}.tower-map .stair{stroke:var(--line);stroke-width:3px;stroke-dasharray:2 6;stroke-linecap:round}.tower-map .stair.yours{stroke:var(--gold);stroke-dasharray:none;opacity:.8}.tower-map .floor-no{fill:var(--muted);font:600 10px var(--mono)}.tower-map .floor-no.boss{fill:var(--gold)}.tower-map .room circle{fill:var(--panel);stroke-width:2px;opacity:.45}.tower-map .room text{font:700 18px var(--sans);opacity:.45;pointer-events:none}.tower-map .room.past circle,.tower-map .room.past text{opacity:.25}.tower-map .room.here circle,.tower-map .room.here text{opacity:1}.tower-map .room.choice{cursor:pointer}.tower-map .room.choice circle{opacity:1;stroke-width:3px;animation:1.4s ease-in-out infinite room-pulse}.tower-map .room.choice text{opacity:1}.tower-map .room.choice.picked circle{fill:#2a241c;stroke-width:4px;animation:none}@keyframes room-pulse{50%{stroke-opacity:.45}}.room-panel{min-height:96px}.room-info{flex-direction:column;gap:4px;display:flex}.room-kind{font:700 11px var(--mono);letter-spacing:.08em}.room-name{font:800 22px/1.1 var(--disp);margin:0}.room-tell{color:var(--muted);margin:0;font-size:14px}.room-traits{color:#ff8fb0;font:600 12px var(--mono);margin:0}.room-reward{color:var(--gold);font:600 12px var(--mono);margin:0}.forge{flex-direction:column;gap:12px;display:flex}.forge-cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.forge-card{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.forge-card .n{font:800 16px var(--disp)}.forge-card .c{color:var(--muted);font:600 12px var(--mono)}.forge-card .t{color:var(--muted);font-size:12px;line-height:1.3}.tabs{gap:8px;display:flex}.tabs .tab{flex:1}.tabs .tab.on{border-color:var(--gold);color:var(--gold)}.board{flex-direction:column;gap:4px;display:flex}.board-row{background:var(--panel);border-radius:10px;grid-template-rows:auto auto;grid-template-columns:34px 1fr auto;column-gap:10px;padding:8px 10px;display:grid}.board-row.mine{outline:1.5px solid var(--gold)}.board-row .rank{font:700 14px var(--mono);color:var(--muted);grid-row:1/3;align-self:center}.board-row .name{font:700 15px var(--disp);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-row .value{font:700 14px var(--mono);color:var(--gold);text-align:right}.board-row .sub{font:500 11px var(--mono);color:var(--muted);grid-column:2/4}.board-gap{text-align:center;color:var(--muted)}.store-items{flex-direction:column;gap:8px;display:flex}.store-item{justify-content:space-between;align-items:center;display:flex}.store-item .p{font:700 15px var(--mono);color:var(--gold)}.name-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.card button.small{width:auto;padding:6px 12px;font-size:13px}.name-input{border:1px solid var(--line);background:var(--panel);color:var(--paper);font:600 15px var(--sans);border-radius:8px;flex:1;padding:8px 10px}.boon-list{flex-direction:column;gap:8px;display:flex}.card button.boon{text-align:left;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 14px;display:grid}.card button.boon .n{font:800 18px var(--disp)}.card button.boon .r{font:700 10px var(--mono);color:var(--muted);align-self:center}.card button.boon .t{color:var(--muted);grid-column:1/3;font-size:13px}.card button.boon.rare{border-color:#2c6f69}.card button.boon.legendary{border-color:var(--gold);box-shadow:0 0 18px #f2b84b40}.room-info{min-height:96px;padding-right:104px;position:relative}.room-info .portrait{object-fit:cover;border:1px solid var(--line);border-radius:12px;width:96px;height:96px;position:absolute;top:0;right:0}.lineup{flex-direction:column;gap:6px;display:flex}.lineup .chips{flex-wrap:wrap;gap:6px;display:flex}.card .lineup button.chip{opacity:.55;flex-direction:column;flex:30%;align-items:flex-start;gap:2px;width:auto;padding:8px 10px;display:flex}.card .lineup button.chip.on{opacity:1;border-color:var(--gold)}.card .lineup button.chip.strong .r{color:var(--gold)}.lineup .chip .n{font:800 14px var(--disp)}.lineup .chip .r{font:600 10px var(--mono);color:var(--muted)}.bestiary{flex-direction:column;gap:10px;display:flex}.beast{background:var(--panel);border-radius:12px;align-items:center;gap:12px;padding:8px;display:flex}.beast.unmet{opacity:.5}.beast .portrait{object-fit:cover;border-radius:10px;flex:none;width:72px;height:72px}.beast.unmet .portrait{filter:brightness(.15)}.beast-text{flex-direction:column;gap:2px;display:flex}.beast-text .room-name{font-size:18px}.ach-list{flex-direction:column;gap:8px;display:flex}.ach{background:var(--panel);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.ach.locked{opacity:.55}.ach-text{flex-direction:column;gap:2px;display:flex}.ach-state{color:var(--muted);white-space:nowrap;font-size:13px}.toast{z-index:50;background:var(--panel);max-width:min(360px,100vw - 32px);color:var(--paper);text-align:center;border:1px solid #f2b84b;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 18px;transition:opacity .4s;animation:.25s ease-out toast-in;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast.out{opacity:0}.toast-eyebrow{color:#f2b84b;letter-spacing:.14em;font-size:11px}.toast-text{color:var(--muted);font-size:13px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)}}.coins-row{color:var(--gold);font:700 13px var(--mono);align-items:center;gap:6px;display:flex}.coins-row .coin{width:20px;height:20px}.coins-row .tonic{color:#8fdc8a;font-weight:500}.shop{flex-direction:column;gap:10px;display:flex}.shop-items{flex-direction:column;gap:8px;display:flex}.shop-cell{flex-direction:column;gap:4px;display:flex}.shop-item{text-align:left;background:var(--panel);color:var(--paper);border:2px solid var(--line);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.shop-item.on{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.shop-item:disabled{opacity:.5}.shop-art{flex:none;width:44px;height:44px}.shop-body{flex-direction:column;flex:1;gap:2px;display:flex}.shop-body .n{font:800 15px var(--disp)}.shop-body .t{font:500 12px var(--sans);color:var(--muted)}.shop-item .price{font:800 15px var(--mono);color:var(--gold);white-space:nowrap}.shop-item .price:before{content:"◉ ";color:#c99a3c}.shop-item .why{font:600 11px var(--mono);color:var(--muted)}.shop-target{background:var(--panel);color:var(--paper);border:1px solid var(--line);border-radius:6px;margin-left:56px;padding:4px}.shop-total{color:var(--muted);font:600 13px var(--mono);margin:0}.wheel-holder{justify-content:center;display:flex}.wheel{width:min(300px,80vw);height:auto}.wheel g{transform-origin:0 0}.wheel-label{font:800 13px var(--disp);fill:#fff8e8;paint-order:stroke;stroke:#1c120c;stroke-width:3px}.wheel-result{text-align:center;color:var(--paper);font:700 15px var(--sans);margin:0}
