:root{--bg:#0b0b26;--bg-deep:#06061a;--bg-2:#0d0e2c;--panel:#14163c;--panel-2:#1d2050;--card-black:#07081c;--edge:#04040f;--frame:#5560b8;--frame-dim:#343a7e;--border:#343a7e;--border-light:#4a52a399;--text:#efe6d0;--text-dim:#97a0d0;--gold:#f2c64b;--gold-bright:#ffd86b;--gold-dim:#b07f24;--green:#57b25b;--green-d:#2f7a37;--red:#e2554a;--red-d:#a32c25;--cyan:#5bc8e6;--blue:#5bc8e6;--torch:#ff9f43;--glow-a:.12;--tile:#c49a66;--tile-2:#bb9160;--tile-3:#cda36f;--grout:#2a1c0e;--stone:#6a7188;--stone-dark:#4d5370;--hl-move:#57b25b57;--hl-move-border:#62d56c;--hl-attack:#e2554a57;--hl-attack-border:#ff6a5e;--font-display:"Press Start 2P", monospace;--font-body:"VT323", monospace;--fs-body:19px;--fs-hint:18px;--fs-h1:28px;--fs-h2:17px;--fs-h3:11px;--fs-btn:11px;--fs-num:15px;--fs-label:9px;--fs-pill:13px;--lh-body:1.4;--sp:1;--notch:4px;--px-corners:polygon(var(--notch) 0, calc(100% - var(--notch)) 0, calc(100% - var(--notch)) var(--notch), 100% var(--notch), 100% calc(100% - var(--notch)), calc(100% - var(--notch)) calc(100% - var(--notch)), calc(100% - var(--notch)) 100%, var(--notch) 100%, var(--notch) calc(100% - var(--notch)), 0 calc(100% - var(--notch)), 0 var(--notch), var(--notch) var(--notch));font-family:var(--font-body);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;image-rendering:pixelated}html[data-palette=crypt]{--bg:#050514;--bg-deep:#02020a;--bg-2:#08081e;--panel:#0c0d28;--panel-2:#13153a;--card-black:#030310;--frame:#424c9c;--frame-dim:#272c66;--text-dim:#7d86b8;--glow-a:.06;--tile:#ab8554;--tile-2:#a07c4e;--tile-3:#b38c5b;--grout:#1c1208;--stone:#565c75;--stone-dark:#3d4360}html[data-palette=torchlit]{--bg:#14143a;--bg-deep:#0c0c2a;--bg-2:#181a44;--panel:#1d2050;--panel-2:#282c66;--card-black:#0b0c26;--frame:#6b77d4;--frame-dim:#424a96;--text-dim:#a8b1e0;--glow-a:.22;--tile:#d2a873;--tile-2:#c89e6a;--tile-3:#dcb37e;--grout:#33220f;--stone:#767d96;--stone-dark:#585e7c}html[data-type=bitmap]{--font-display:"Silkscreen", monospace;--font-body:"Pixelify Sans", monospace;--fs-body:17px;--fs-hint:16px;--fs-h1:34px;--fs-h2:20px;--fs-h3:14px;--fs-btn:13px;--fs-num:16px;--fs-label:11px;--fs-pill:14px;--lh-body:1.45}html[data-type=terminal]{--font-display:"VT323", monospace;--font-body:"VT323", monospace;--fs-body:20px;--fs-hint:19px;--fs-h1:46px;--fs-h2:28px;--fs-h3:19px;--fs-btn:19px;--fs-num:22px;--fs-label:14px;--fs-pill:17px;--lh-body:1.3}html[data-density=compact]{--sp:.65}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);background:radial-gradient(720px 380px at 50% -6%, rgba(255, 159, 67, var(--glow-a)), transparent 70%), radial-gradient(circle at 50% 0%, var(--bg), var(--bg-deep) 78%);-webkit-font-smoothing:none;margin:0}html[data-decor=standard] body:before,html[data-decor=ornate] body:before{content:"";pointer-events:none;background-image:conic-gradient(#ffffff06 25%, transparent 0 50%, #ffffff06 0 75%, transparent 0);z-index:0;background-size:4px 4px;position:fixed;inset:0}html[data-decor=ornate] body:after{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,#00000024 0 1px,#0000 1px 4px);position:fixed;inset:0}#root{flex-direction:column;align-items:center;min-height:100vh;display:flex}button{font-family:var(--font-display);font-size:var(--fs-btn);text-transform:uppercase;letter-spacing:1px;cursor:pointer;color:var(--text);background:var(--panel-2);border:2px solid var(--frame-dim);padding:calc(10px * var(--sp)) calc(14px * var(--sp));clip-path:var(--px-corners);border-radius:0;transition:background .1s,border-color .1s;box-shadow:inset 2px 2px #ffffff17,inset -2px -3px #00000073}@media (hover:hover) and (pointer:fine){button:hover:not(:disabled){background:var(--frame-dim);border-color:var(--gold-dim);color:#fff}}button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 100px #00000026}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(180deg, var(--gold-bright) 0 48%, var(--gold-dim) 48%);border-color:var(--gold);color:#2a1d08;text-shadow:0 1px #ffffff59;box-shadow:inset 2px 2px #ffffff4d,inset -2px -3px #00000040}@media (hover:hover) and (pointer:fine){button.primary:hover:not(:disabled){filter:brightness(1.08);background:linear-gradient(180deg, var(--gold-bright) 0 48%, var(--gold-dim) 48%);color:#2a1d08}}h1,h2,h3{font-family:var(--font-display);color:var(--gold);letter-spacing:1px;margin:0}.app{width:100%;max-width:1080px;padding:calc(16px * var(--sp));gap:calc(14px * var(--sp));z-index:1;flex-direction:column;display:flex;position:relative}.topbar{justify-content:space-between;align-items:center;gap:calc(12px * var(--sp));padding:calc(10px * var(--sp)) calc(14px * var(--sp));background:var(--panel);border:2px solid var(--frame);box-shadow:0 0 0 3px var(--edge);display:flex}.topbar .title{font-family:var(--font-display);font-size:var(--fs-h2);color:var(--text);text-shadow:2px 2px 0 var(--edge);letter-spacing:1px}.topbar .level-pill{font-size:var(--fs-pill);font-family:var(--font-display);color:var(--gold);letter-spacing:1px}.topbar .spacer{flex:1}.game-layout{gap:calc(16px * var(--sp));grid-template-columns:minmax(0,1fr) minmax(300px,340px);align-items:start;display:grid}.side-col{gap:calc(16px * var(--sp));flex-direction:column;display:flex}@media (width<=860px){.game-layout{grid-template-columns:minmax(0,1fr)}}.board-wrap{aspect-ratio:1;border:3px solid var(--frame);width:100%;box-shadow:0 0 0 6px var(--card-black), 0 0 0 8px var(--frame-dim), 0 14px 40px #0000008c;-webkit-user-select:none;user-select:none;background:var(--grout);border-radius:0;position:relative;overflow:hidden}.board-bg{background-color:var(--grout);position:absolute;inset:0}.board-bg img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;display:block}.board-grid{grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;display:grid;position:absolute;inset:0}.tile{clip-path:none;background:var(--tile);border:0;border-radius:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;box-shadow:inset 0 3px #fffaeb47,inset 3px 0 #fffaeb1f,inset 0 -4px #3c1e0547,inset -3px 0 #3c1e0529;container-type:size}.board-grid .tile:nth-child(3n){background:var(--tile-2)}.board-grid .tile:nth-child(7n+2){background:var(--tile-3)}@media (hover:hover) and (pointer:fine){.tile:hover:not(:disabled){filter:brightness(1.06)}}.tile.wall{background:var(--stone);cursor:default;box-shadow:inset 0 5px #ffffff38,inset 5px 0 #ffffff1a,inset 0 -7px #00000a66,inset -5px 0 #00000a38}.tile.wall:after{content:"";background:var(--stone-dark);position:absolute;inset:24%;box-shadow:inset 0 4px #00000a73,inset 0 -3px #ffffff1f}.tile.hl-move{background:var(--tile);box-shadow:inset 0 0 0 100cqmin var(--hl-move), inset 0 0 0 3px var(--hl-move-border);cursor:pointer}.tile.hl-attack{box-shadow:inset 0 0 0 100cqmin var(--hl-attack), inset 0 0 0 3px var(--hl-attack-border);cursor:crosshair}.tile:disabled{cursor:default;opacity:1}.board-wrap[data-boss-palette=red]{--tile:#7e2c1d;--tile-2:#6d2417;--tile-3:#8c3826;--grout:#e2611c;--stone:#6f5f86;--stone-dark:#463a5e}.board-wrap[data-boss-palette=blue]{--tile:#3a6aa4;--tile-2:#336097;--tile-3:#4577b3;--grout:#14304f;--stone:#5688c0;--stone-dark:#355d86}.board-wrap[data-boss-palette]{--hl-move:#62d56c80;--hl-move-border:#b6ffbe;--hl-attack:#ff785c8c;--hl-attack-border:#ffe1b0}.board-wrap[data-boss-palette] .tile:not(.hl-move):not(.hl-attack){box-shadow:inset 0 3px #ffffff3d,inset 3px 0 #ffffff1f,inset 0 -4px #0000004d,inset -3px 0 #0000002e}.die{font-family:var(--font-display);clip-path:var(--px-corners);border-radius:0;justify-content:center;align-items:center;font-weight:400;line-height:1;display:inline-flex;position:relative;box-shadow:inset 3px 3px #ffffff38,inset -3px -4px #0000004d}.die.green{background:linear-gradient(180deg, #6cc46f 0 46%, var(--green-d) 46%);color:#eafaea;border:2px solid #1d4a23}.die.red{background:linear-gradient(180deg, #ea6a58 0 46%, var(--red-d) 46%);color:#fdeceb;border:2px solid #5e1a16}.die.black{color:#fff;background:linear-gradient(#2e3066 0 46%,#15163a 46%);border:2px solid #05060f}.die.white{color:#222;background:linear-gradient(#f1ead9 0 46%,#cdc3ab 46%);border:2px solid #968b73}.die.yellow{color:#3a2a05;background:linear-gradient(#f4cf52 0 46%,#d2a51f 46%);border:2px solid #7a5c11}.die .num{font-size:1.1em}.die .badge{filter:drop-shadow(0 1px #000);font-size:18cqmin;line-height:1;position:absolute;top:-4px;right:-4px}.tile .die{width:62%;height:62%;font-size:clamp(14px,4.4vw,30px);animation:.18s steps(3,end) diePop}@keyframes diePop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tile .die{animation:none}}.die.pips{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:8%;padding:16%;display:grid}.die.pips .pip{background:currentColor;border-radius:0;place-self:center;width:100%;height:100%;box-shadow:inset -1px -1px #00000059}.die.pips .pip.empty{box-shadow:none;background:0 0}.die.selectable{cursor:pointer}.die.selected{box-shadow:inset 0 0 0 3px var(--gold), inset 3px 3px 0 #ffffff38}.die.d12{--dodeca:polygon(50% 0%, 75% 6.7%, 93.3% 25%, 100% 50%, 93.3% 75%, 75% 93.3%, 50% 100%, 25% 93.3%, 6.7% 75%, 0% 50%, 6.7% 25%, 25% 6.7%);clip-path:var(--dodeca);box-shadow:inset 0 0 0 2px #ffdc788c,inset 3px 3px #ffffff2e,inset -3px -4px #00000052}.die.d12 .num{font-size:.95em}html[data-skin=modern] .die.d12{clip-path:var(--dodeca);border-radius:0}.tile.void{box-shadow:none;pointer-events:none;background:0 0}.tile.void:after{content:"";background:var(--edge,#00000073);opacity:.32;clip-path:polygon(50% 4%,70% 14%,86% 30%,96% 50%,86% 70%,70% 86%,50% 96%,30% 86%,14% 70%,4% 50%,14% 30%,30% 14%);position:absolute;inset:14%}.panel{background:var(--panel);border:2px solid var(--frame);box-shadow:0 0 0 3px var(--edge), inset 0 0 0 2px #0000004d;padding:calc(14px * var(--sp));gap:calc(12px * var(--sp));border-radius:0;flex-direction:column;display:flex}.panel h3{font-size:var(--fs-h3);color:var(--gold);text-shadow:1px 1px 0 var(--edge);border-bottom:2px dotted var(--frame-dim);padding-bottom:calc(8px * var(--sp));text-transform:uppercase}.row{gap:calc(8px * var(--sp));flex-wrap:wrap;align-items:center;display:flex}.hint{font-size:var(--fs-hint);color:var(--text-dim);line-height:var(--lh-body);margin:0}.stats{gap:calc(8px * var(--sp));grid-template-columns:repeat(2,1fr);display:grid}.stat{background:var(--card-black);border:2px solid var(--frame-dim);padding:calc(7px * var(--sp)) calc(10px * var(--sp));font-size:var(--fs-label);border-radius:0;justify-content:space-between;align-items:center;display:flex}.stat .label{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:1px;color:var(--cyan)}.stat .value{font-family:var(--font-display);font-size:var(--fs-num);color:#fff;text-shadow:1px 1px #000}.stat .value .left{color:var(--green)}.stat.health .value{color:var(--red)}.compare-head{justify-content:space-between;align-items:baseline;gap:calc(8px * var(--sp));border-bottom:2px dotted var(--frame-dim);padding-bottom:calc(8px * var(--sp));display:flex}.compare-you,.compare-foe{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--gold);text-transform:uppercase;text-shadow:1px 1px 0 var(--edge);min-width:0}.compare-foe{text-align:right}.compare-grid{gap:calc(6px * var(--sp));flex-direction:column;display:flex}.compare-row{align-items:center;gap:calc(8px * var(--sp));background:var(--card-black);border:2px solid var(--frame-dim);padding:calc(6px * var(--sp)) calc(10px * var(--sp));grid-template-columns:1fr auto 1fr;display:grid}.compare-row .ck{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:1px;color:var(--cyan);text-align:center;white-space:nowrap}.compare-row .cv{font-family:var(--font-display);font-size:var(--fs-num);color:#fff;text-shadow:1px 1px #000}.compare-row .cv.you{text-align:right}.compare-row .cv.foe{text-align:left}.compare-row .cv.hp{color:var(--red)}.compare-row .cv .left{color:var(--green)}.dice-tray{gap:calc(10px * var(--sp));justify-content:center;display:flex}.dice-tray .die{width:50px;height:50px}.slots{gap:calc(8px * var(--sp));grid-template-columns:repeat(2,1fr);display:grid}.slot{background:var(--card-black);border:2px dashed var(--border-light);padding:calc(6px * var(--sp)) calc(10px * var(--sp));cursor:pointer;font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);border-radius:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.slot strong{color:#fff;font-size:var(--fs-num);margin-left:4px}.slot.filled{border-style:solid;border-color:var(--gold-dim);color:var(--text)}@media (hover:hover) and (pointer:fine){.slot.assignable:hover{border-color:var(--gold)}}.slot .slot-die{flex:none;gap:3px;width:auto;height:30px;display:inline-flex}.slot .slot-die .die{width:30px;height:30px;font-size:14px}.chest-spend{gap:calc(6px * var(--sp));margin:calc(6px * var(--sp)) 0;flex-direction:column;display:flex}.chest-spend .row{gap:calc(6px * var(--sp));flex-wrap:wrap}.slot .empty-die{border:2px dashed var(--border-light);width:30px;height:30px}.log{height:150px;font-size:calc(var(--fs-hint) * .92);color:var(--text-dim);background:var(--card-black);border:2px solid var(--frame-dim);border-radius:0;flex-direction:column-reverse;padding:8px 10px;line-height:1.45;display:flex;overflow-y:auto}.log .entry.level{color:var(--gold)}.modal-backdrop{z-index:20;background:#03030ec7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:2px solid var(--frame);padding:calc(24px * var(--sp));width:100%;max-width:470px;box-shadow:0 0 0 4px var(--card-black), 0 0 0 6px var(--frame-dim), 0 20px 60px #000000b3;gap:calc(16px * var(--sp));text-align:center;border-radius:0;flex-direction:column;display:flex}.modal h2{font-size:var(--fs-h2);color:var(--gold);text-shadow:2px 2px 0 var(--edge);line-height:1.5}.modal h3{font-size:var(--fs-h3);color:var(--text);text-transform:uppercase}.choice-grid{gap:calc(10px * var(--sp));grid-template-columns:repeat(2,1fr);display:grid}.choice-grid button small{font-family:var(--font-body);font-size:var(--fs-hint);text-transform:none;letter-spacing:0;color:var(--text-dim);margin-top:6px;display:block}.mode-toggle{align-items:center;gap:calc(6px * var(--sp));margin-bottom:calc(4px * var(--sp));flex-direction:column;display:flex}.mode-toggle .mode-label{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--gold);text-transform:uppercase}.mode-toggle .hint{text-align:center;max-width:460px}.d12-tag{font-size:var(--fs-hint);color:var(--gold);vertical-align:super}.boss-portrait{align-items:center;gap:calc(6px * var(--sp));flex-direction:column;display:flex}.boss-portrait .die{width:64px;height:64px;font-size:30px}.boss-portrait .boss-name{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--red);text-transform:uppercase}.boss-stats{justify-content:center}.classes{gap:calc(14px * var(--sp));grid-template-columns:repeat(2,1fr);display:grid}.carousel-dots,.side-dots{display:none}.carousel-dots .dot,.side-dots .dot{border:2px solid var(--frame);background:var(--card-black);clip-path:none;width:10px;height:10px;padding:0;transition:width .15s,background .15s;box-shadow:inset 0 0 0 1px #00000080}.carousel-dots .dot.active,.side-dots .dot.active{background:var(--gold);border-color:var(--gold);width:22px}@media (width<=640px){.center-screen{align-self:stretch;width:100%}.classes{scroll-snap-type:x mandatory;gap:calc(12px * var(--sp));scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-template-columns:none;width:100%;min-width:0;padding:14px 9%;scroll-padding:0;display:flex;overflow-x:auto}.classes::-webkit-scrollbar{display:none}.classes .class-card{scroll-snap-align:center;flex:0 0 82%}.classes .class-card.no-class{flex-direction:column;grid-column:auto;justify-content:center;min-height:130px}.carousel-dots{margin-top:calc(-8px * var(--sp));justify-content:center;gap:8px;display:flex}}.class-card{text-align:center;padding:calc(16px * var(--sp));gap:calc(8px * var(--sp));background:var(--card-black);border:2px solid var(--frame);clip-path:none;min-height:130px;box-shadow:0 0 0 3px var(--edge), inset 0 0 0 2px #00000080, inset 0 0 0 3px var(--frame-dim);flex-direction:column;align-items:center;display:flex}.class-card.no-class{justify-content:center;gap:calc(18px * var(--sp));flex-flow:wrap;grid-column:1/-1;min-height:0}@media (hover:hover) and (pointer:fine){.class-card:hover:not(:disabled){background:var(--bg-2);border-color:var(--frame);color:var(--text)}}.class-card.selected{border-color:var(--gold);background:var(--bg-2);box-shadow:0 0 0 3px var(--gold-dim), 0 0 24px #f2c64b38, inset 0 0 0 2px #00000080, inset 0 0 0 3px var(--frame-dim)}.class-card .cname{font-family:var(--font-display);font-size:var(--fs-h3);color:var(--gold);text-shadow:1px 1px #000;text-transform:uppercase;letter-spacing:2px}.class-card .cability{font-family:var(--font-body);font-size:var(--fs-hint);text-transform:none;letter-spacing:0;color:var(--text);line-height:1.3}.class-card .cblurb{font-family:var(--font-body);font-size:calc(var(--fs-hint) * .9);text-transform:none;letter-spacing:0;color:var(--cyan);font-style:normal}.class-card image-slot{width:84px;height:104px}.center-screen{gap:calc(20px * var(--sp));text-align:center;z-index:1;flex-direction:column;min-width:0;max-width:780px;margin:4vh auto;padding:16px;display:flex;position:relative}.center-screen h1{font-size:var(--fs-h1);color:var(--text);text-shadow:3px 3px 0 var(--edge), 6px 6px 0 #00000059;line-height:1.45}.center-screen .lede{color:var(--text-dim);line-height:var(--lh-body);font-size:var(--fs-body);text-wrap:pretty;margin:0}.tag{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:1px;border:2px solid var(--cyan);color:var(--cyan);background:#5bc8e614;border-radius:0;padding:4px 8px}.banner{font-size:var(--fs-hint);color:var(--text-dim);background:var(--card-black);border:2px dashed var(--border-light);padding:calc(8px * var(--sp)) calc(12px * var(--sp));text-align:center;border-radius:0;margin:0}.sword-divider{justify-content:center;align-items:center;width:min(420px,80%);height:18px;margin:0 auto;display:flex}.sword-divider .pommel{background:var(--red);width:8px;height:8px;box-shadow:-4px 0 0 -2px var(--gold-dim);flex:none}.sword-divider .grip{background:var(--red-d);flex:none;width:22px;height:6px}.sword-divider .guard{background:var(--gold);width:8px;height:18px;box-shadow:inset -2px -2px 0 var(--gold-dim);flex:none}.sword-divider .blade{clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);background:linear-gradient(#f4f2ea 0 50%,#b9bdcf 50%);flex:1;height:8px}.px-heart{width:7em;height:6em;color:var(--red);font-size:3px;display:inline-block;position:relative}.px-heart:before{content:"";background:0 0;width:1em;height:1em;position:absolute;top:0;left:0;box-shadow:1em 0,2em 0,4em 0,5em 0,0 1em,1em 1em,2em 1em,3em 1em,4em 1em,5em 1em,6em 1em,0 2em,1em 2em,2em 2em,3em 2em,4em 2em,5em 2em,6em 2em,1em 3em,2em 3em,3em 3em,4em 3em,5em 3em,2em 4em,3em 4em,4em 4em,3em 5em}.monster-bar{align-items:center;gap:calc(10px * var(--sp));background:var(--card-black);border:2px solid var(--frame);box-shadow:0 0 0 3px var(--edge), inset 0 0 0 2px #00000080;padding:calc(8px * var(--sp)) calc(10px * var(--sp));display:flex}.monster-bar image-slot{flex:none;width:44px;height:44px}.monster-bar .mname{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.monster-bar .mname .n{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:1px;color:var(--red)}.monster-bar .mname .hp{font-size:calc(var(--fs-hint) * .85);color:var(--text-dim)}.monster-bar .mstats{gap:calc(8px * var(--sp));display:flex}.monster-bar .mstat{flex-direction:column;align-items:center;gap:3px;display:flex}.monster-bar .mstat .k{font-family:var(--font-display);letter-spacing:1px;color:var(--cyan);font-size:8px}.monster-bar .mstat .v{font-family:var(--font-display);font-size:var(--fs-num);color:#fff;text-shadow:1px 1px #000}html[data-decor=minimal] .topbar,html[data-decor=minimal] .panel,html[data-decor=minimal] .monster-bar{box-shadow:none;border-color:var(--frame-dim)}html[data-decor=minimal] .board-wrap{border-color:var(--frame-dim);box-shadow:0 10px 30px #00000080}html[data-decor=minimal] .modal{box-shadow:0 20px 60px #000000b3}html[data-decor=minimal] .class-card{box-shadow:none}html[data-decor=minimal] .class-card.selected{box-shadow:0 0 0 2px var(--gold-dim)}html[data-decor=minimal] .sword-divider{display:none}html[data-decor=minimal] button{clip-path:none;box-shadow:none}html[data-decor=minimal] .die{clip-path:none;box-shadow:inset 2px 2px #ffffff26}html[data-decor=minimal] .tile{box-shadow:inset 0 2px #fffaeb2e,inset 0 -2px #3c1e0533}html[data-decor=minimal] .tile.hl-move{box-shadow:inset 0 0 0 100cqmin var(--hl-move), inset 0 0 0 2px var(--hl-move-border)}html[data-decor=minimal] .tile.hl-attack{box-shadow:inset 0 0 0 100cqmin var(--hl-attack), inset 0 0 0 2px var(--hl-attack-border)}html[data-decor=ornate] .panel,html[data-decor=ornate] .topbar{box-shadow:0 0 0 3px var(--edge), 0 0 0 4px var(--frame-dim), inset 0 0 0 2px #0000004d}html[data-decor=ornate] .board-wrap{box-shadow:0 0 0 6px var(--card-black), 0 0 0 8px var(--frame-dim), 0 0 0 11px var(--card-black), 0 14px 40px #0009}html[data-decor=ornate] .panel h3{border-bottom-style:dashed}html[data-decor=ornate] .center-screen h1{color:var(--text);text-shadow:3px 3px 0 var(--edge), 6px 6px 0 #00000059, 0 0 28px #ff9f4359}.panel h3 .enemy-emoji{vertical-align:-.12em;font-size:1.6em}.settings-fab{z-index:15;padding:8px 10px;font-size:18px;line-height:1;position:fixed;top:14px;right:14px}.drawer-scrim{z-index:30;background:0 0;position:fixed;inset:0}.drawer{z-index:31;background:var(--panel);border-left:3px solid var(--frame);width:min(380px,92vw);box-shadow:-10px 0 40px #0000008c, inset 3px 0 0 var(--edge);padding:calc(20px * var(--sp));gap:calc(16px * var(--sp));text-align:left;flex-direction:column;animation:.18s ease-out drawerIn;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.drawer{animation:none}}.drawer-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.drawer-close{padding:calc(6px * var(--sp)) calc(10px * var(--sp));flex:none;line-height:1}html[data-skin=modern] .drawer{border-left-width:1px;border-radius:16px 0 0 16px;box-shadow:-12px 0 40px #00000059}html[data-skin=modern]{--font-display:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-body:15px;--fs-hint:13px;--fs-h1:40px;--fs-h2:22px;--fs-h3:14px;--fs-btn:14px;--fs-num:17px;--fs-label:11px;--fs-pill:13px;--lh-body:1.5;image-rendering:auto}html[data-skin=modern] body{-webkit-font-smoothing:antialiased}html[data-skin=modern] body:before,html[data-skin=modern] body:after{content:none}html[data-skin=modern] .topbar,html[data-skin=modern] .panel,html[data-skin=modern] .monster-bar{border-width:1px;border-radius:12px;box-shadow:0 4px 16px #00000047}html[data-skin=modern] .board-wrap{border-width:2px;border-radius:16px;box-shadow:0 10px 30px #0006}html[data-skin=modern] .modal{border-width:1px;border-radius:16px;box-shadow:0 24px 60px #00000080}html[data-skin=modern] .stat,html[data-skin=modern] .slot,html[data-skin=modern] .banner,html[data-skin=modern] .log{border-radius:8px}html[data-skin=modern] .tag{border-width:1px;border-radius:999px}html[data-skin=modern] button{clip-path:none;text-transform:none;letter-spacing:0;border-width:1px;border-radius:9px;font-weight:600;box-shadow:0 1px 2px #0003}html[data-skin=modern] button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 2px #0003}html[data-skin=modern] button.primary{background:linear-gradient(135deg, var(--gold-bright), var(--gold-dim));text-shadow:none;box-shadow:0 2px 8px #00000040}html[data-skin=modern] h1,html[data-skin=modern] h2,html[data-skin=modern] h3{letter-spacing:0;font-weight:700}html[data-skin=modern] .topbar .title{text-shadow:none}html[data-skin=modern] .panel h3{text-shadow:none;border-bottom-style:solid}html[data-skin=modern] .center-screen h1{text-shadow:0 2px 12px #0006}html[data-skin=modern] .class-card .cname{letter-spacing:.5px;text-shadow:none}html[data-skin=modern] .die{clip-path:none;border-radius:22%;box-shadow:0 2px 6px #00000059,inset 0 0 0 1px #ffffff24}html[data-skin=modern] .die.pips .pip{box-shadow:none;border-radius:50%}html[data-skin=modern] .die.green{background:linear-gradient(160deg, #6cc46f, var(--green-d))}html[data-skin=modern] .die.red{background:linear-gradient(160deg, #ea6a58, var(--red-d))}html[data-skin=modern] .die.black{background:linear-gradient(160deg,#2e3066,#15163a)}html[data-skin=modern] .die.white{background:linear-gradient(160deg,#f1ead9,#cdc3ab)}html[data-skin=modern] .die.selected{box-shadow:0 0 0 3px var(--gold), 0 2px 6px #00000059}html[data-skin=modern] .tile{border-radius:8px}html[data-skin=modern] .tile.wall:after{border-radius:5px}html[data-skin=modern] .sword-divider{display:none}html[data-mode=light]{--bg:#ece4d2;--bg-deep:#ddd3bb;--bg-2:#f4eede;--panel:#fcf8ee;--panel-2:#efe7d3;--card-black:#fffdf7;--edge:#cfc6ad;--frame:#8b93c6;--frame-dim:#aab0d4;--border:#c4c8e0;--border-light:#b6bad6;--text:#2a2742;--text-dim:#5d6286;--gold:#b9881f;--gold-bright:#d8a534;--gold-dim:#8f6916;--green:#2f8a3a;--green-d:#246b2c;--red:#cf4439;--red-d:#a32c25;--cyan:#1f7fa0;--blue:#1f7fa0;--torch:#e08a30;--glow-a:.05;--tile:#ddc9a0;--tile-2:#d4be92;--tile-3:#e6d2a8;--grout:#b3a07e;--stone:#b3b7cb;--stone-dark:#9296b2;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-mode=light] .stat .value,html[data-mode=light] .monster-bar .mstat .v,html[data-mode=light] .slot strong{color:var(--text);text-shadow:none}html[data-mode=light] .stat.health .value{color:var(--red)}html[data-mode=light] .class-card .cname{text-shadow:none}html[data-mode=light] .center-screen h1{text-shadow:2px 2px 0 var(--edge)}button:not(.tile):focus-visible,.slot:focus-visible{clip-path:none;outline:2px solid var(--gold);outline-offset:2px}.tile:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}button,.tile,.die,.slot,.settings-fab,.drawer-close{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:contain}@supports (min-height:100dvh){body,#root{min-height:100dvh}}.log,.drawer,.modal{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media (hover:none){.slot.assignable:not(.filled){border-color:var(--gold-dim)}}.settings-fab{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right))}.drawer{padding-top:max(calc(20px * var(--sp)), env(safe-area-inset-top));padding-right:max(calc(20px * var(--sp)), calc(env(safe-area-inset-right) + 4px));padding-bottom:max(calc(20px * var(--sp)), calc(env(safe-area-inset-bottom) + 8px))}.app{padding-top:max(calc(16px * var(--sp)), env(safe-area-inset-top));padding-right:max(calc(16px * var(--sp)), env(safe-area-inset-right));padding-bottom:max(calc(16px * var(--sp)), env(safe-area-inset-bottom));padding-left:max(calc(16px * var(--sp)), env(safe-area-inset-left))}.modal{max-height:calc(100vh - 32px);overflow-y:auto}@supports (max-height:100dvh){.modal{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}.modal-backdrop{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));align-items:safe center;overflow-y:auto}@media (width<=860px){.app{gap:calc(10px * var(--sp));padding-top:max(calc(12px * var(--sp)), env(safe-area-inset-top));padding-right:max(calc(12px * var(--sp)), env(safe-area-inset-right));padding-bottom:max(calc(12px * var(--sp)), calc(env(safe-area-inset-bottom) + 8px));padding-left:max(calc(12px * var(--sp)), env(safe-area-inset-left))}.board-wrap{width:min(100%,52dvh);margin-inline:auto}.side-col{gap:calc(12px * var(--sp))}.side-col>:nth-child(2){order:0}.side-col>:first-child{order:1}.side-col>:nth-child(3){order:2}.side-col>:nth-child(2) .primary{width:100%}.log{height:96px}html[data-layout=carousel] .side-col{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-flow:row;align-items:start;min-width:0;scroll-padding:0;overflow-x:auto}html[data-layout=carousel] .side-col::-webkit-scrollbar{display:none}html[data-layout=carousel] .side-col>.panel{scroll-snap-align:center;flex:0 0 100%;min-width:0}html[data-layout=carousel] .side-dots{justify-content:center;gap:8px;display:flex}.app{gap:calc(8px * var(--sp))}.panel{padding:calc(10px * var(--sp));gap:calc(8px * var(--sp))}.panel h3{padding-bottom:calc(5px * var(--sp))}.slots{grid-template-columns:repeat(2,1fr)}button:not(.tile){min-height:44px}button.primary{padding:calc(12px * var(--sp)) calc(16px * var(--sp))}.settings-fab,.drawer-close{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:8px;display:inline-flex}.dice-tray{flex-wrap:wrap;gap:12px}.dice-tray .die{width:56px;height:56px;min-height:56px}.slots{gap:calc(8px * var(--sp))}.slot{min-height:48px;padding:10px calc(12px * var(--sp))}.tile.hl-move{box-shadow:inset 0 0 0 100cqmin var(--hl-move), inset 0 0 0 5px var(--hl-move-border)}.tile.hl-attack{box-shadow:inset 0 0 0 100cqmin var(--hl-attack), inset 0 0 0 5px var(--hl-attack-border)}html[data-decor=minimal] .tile.hl-move{box-shadow:inset 0 0 0 100cqmin var(--hl-move), inset 0 0 0 4px var(--hl-move-border)}html[data-decor=minimal] .tile.hl-attack{box-shadow:inset 0 0 0 100cqmin var(--hl-attack), inset 0 0 0 4px var(--hl-attack-border)}.tile.hl-move:active:not(:disabled),.tile.hl-attack:active:not(:disabled){filter:brightness(1.15)}}@media (width<=600px){.topbar{gap:calc(8px * var(--sp));padding:calc(8px * var(--sp)) calc(10px * var(--sp));flex-wrap:wrap}.topbar .title{flex:100%;min-width:0;font-size:clamp(12px,4.2vw,17px);line-height:1.3}html[data-type=terminal] .topbar .title{font-size:clamp(16px,6vw,28px)}html[data-skin=modern] .topbar .title{font-size:clamp(15px,5vw,22px)}.topbar .spacer{display:none}.topbar .level-pill{font-size:calc(var(--fs-pill) * .92)}:root{--fs-h1:clamp(20px, 7.5vw, 28px);--fs-btn:13px;--fs-label:11px}html[data-type=bitmap]{--fs-h1:clamp(22px, 8vw, 34px);--fs-btn:14px;--fs-label:12px}html[data-type=terminal]{--fs-h1:clamp(30px, 11vw, 46px);--fs-btn:19px;--fs-label:15px}html[data-skin=modern]{--fs-h1:clamp(26px, 9vw, 40px);--fs-btn:15px;--fs-label:12px;--fs-body:16px;--fs-hint:14px}.center-screen h1{word-break:break-word;line-height:1.3}button{white-space:normal;line-height:1.3}.monster-bar .mstat .k{font-size:10px}.tile .die{font-size:clamp(16px,5vw,30px)}.slot .slot-die .die{font-size:16px}.lede,.hint,.banner{line-height:1.5}.lede{max-width:38ch;margin-inline:auto}.banner{max-width:44ch;margin-inline:auto}.drawer{width:min(420px,100vw)}.drawer .row button{flex:auto;min-width:0}.choice-grid{grid-template-columns:1fr}}@media (orientation:landscape) and (height<=540px) and (pointer:coarse){.game-layout{grid-template-columns:minmax(0,auto) minmax(260px,1fr);align-items:start}.board-wrap{aspect-ratio:1;width:auto;height:calc(100dvh - 110px);margin-inline:auto}button:not(.tile){min-height:44px}}
