@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#100f14;--surface:#18171d;--surface-2:#211f28;--border:#2d2b36;--text:#f1eee8;--muted:#8d8999;--neutral:#dcdae2;--neutral-strong:#fff;--on-neutral:#15141a;--token:#e8b04a;--token-strong:#f3c36a;--on-token:#1a1306;--counter:#5b9cff;--counter-strong:#82b3ff;--on-counter:#06142e;--counter-neg:#d9782f;--counter-neg-strong:#ea8e45;--on-counter-neg:#1a0d04;--combat:#ff6b57;--combat-soft:#ffb3a8;--danger:#d6402f;--danger-strong:#e5564a;--sick:#b79cff;--radius:4px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:Hanken Grotesk Variable,system-ui,sans-serif}*{box-sizing:border-box}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;border-radius:var(--radius);cursor:pointer;touch-action:manipulation;border:none;min-height:48px;padding:.7rem 1.1rem}button:disabled{opacity:.4;cursor:default}button{transition:transform 80ms ease-out,background-color .12s}button:active:not(:disabled){transform:scale(.97)}button.primary{background:var(--neutral);color:var(--on-neutral);font-weight:700}button.primary:active:not(:disabled){background:var(--neutral-strong)}button.token{background:var(--token);color:var(--on-token);font-weight:700}button.token:active:not(:disabled){background:var(--token-strong)}button.counter{background:var(--counter);color:var(--on-counter);font-weight:700}button.counter:active:not(:disabled){background:var(--counter-strong)}button.counter.negative{background:var(--counter-neg);color:var(--on-counter-neg)}button.counter.negative:active:not(:disabled){background:var(--counter-neg-strong)}button.secondary{background:var(--surface-2);font-weight:500}button.danger{background:var(--danger);color:#fff;font-weight:700}button.danger:active:not(:disabled){background:var(--danger-strong)}button.full{width:100%}.icon-button{background:0 0;place-items:center;min-width:48px;padding:0;font-size:1.6rem;line-height:1;display:inline-grid}.muted{color:var(--muted)}.small{font-size:.85rem}.app{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left);flex-direction:column;display:flex}.top-bar{z-index:1;background:var(--bg);justify-content:space-between;align-items:center;padding:.5rem 1rem;transition:background-color .2s;display:flex;position:sticky;top:0}.app.in-combat .top-bar{background:color-mix(in srgb, var(--combat) 14%, var(--bg))}.top-bar h1{line-height:1;display:grid}.top-bar h1 span{text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:600}.app.in-combat .top-bar h1 span{color:var(--combat-soft)}.top-bar h1 strong{font-variant-numeric:tabular-nums;font-size:2.75rem;font-weight:800}.top-bar-actions{align-items:center;gap:.5rem;display:flex}.board{flex:1;grid-template-columns:repeat(auto-fill,minmax(16rem,20rem));place-content:start center;align-items:start;gap:1rem;padding:1rem;display:grid}.empty{color:var(--muted);grid-column:1/-1;justify-items:center;gap:1rem;padding:4rem 1rem;display:grid}.token-card{background:var(--surface);border-radius:var(--radius);overflow:hidden}.token-card-header{align-items:center;gap:.75rem;padding:.6rem;display:flex}.token-card-header .token-art{border-radius:2px;width:56px;height:56px}.token-art{object-fit:cover;background:var(--border);display:block}.token-art.placeholder{color:var(--muted);place-items:center;font-size:1.5rem;font-weight:700;display:grid}.token-card-title{text-align:left;background:0 0;flex:1;align-self:stretch;min-width:0;padding:0}.token-card-title h3{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.token-card-title span{color:var(--muted);font-size:.8rem}.add-one{background:var(--token);color:var(--on-token);min-width:56px;min-height:56px;padding:0;font-size:1.5rem;font-weight:800}.add-one:active{background:var(--token-strong)}.stack-rows{margin:0;padding:0;list-style:none}.stack-row{border-top:1px solid var(--border);text-align:left;background:0 0;border-radius:0;align-items:center;gap:.6rem;width:100%;min-height:56px;padding:.35rem .75rem;display:flex}.stack-row.tapped{opacity:.5}.stack-count{min-width:2.25rem;color:var(--muted);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:600}.stack-pt{font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:800;line-height:1.4}.stack-pt i{color:var(--muted);margin:0 .05em;font-style:normal;font-weight:400}.stack-counters{color:var(--counter);font-size:.95rem;font-weight:700}.stack-badges{flex-direction:column;align-self:center;align-items:center;gap:.4rem;margin-left:auto;display:flex}.badge{text-transform:uppercase;white-space:nowrap;color:var(--muted);font-size:.75rem;font-weight:700}.badge.sick{color:var(--sick)}.action-bar{padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:var(--surface);gap:.75rem;display:flex;position:sticky;bottom:0}.combat-dock{position:sticky;bottom:0}.combat-dock .action-bar{position:static}.targets-bar{background:var(--surface);gap:.5rem;padding:.5rem 1rem;display:flex;overflow-x:auto}.target-tab{background:var(--surface-2);flex:1;justify-items:center;min-width:110px;line-height:1.2;display:grid}.target-name{text-transform:uppercase;font-size:.7rem;font-weight:700}.target-power{font-variant-numeric:tabular-nums;color:var(--combat-soft);font-size:2.1rem;font-weight:800}.target-detail{color:var(--muted);white-space:nowrap;font-size:.75rem}.target-tab.active{background:color-mix(in srgb, var(--combat) 22%, var(--surface));box-shadow:inset 0 -3px var(--combat)}.targets-bar .combat-step{width:44px;min-height:44px}.amount-group{flex:1;gap:.35rem;min-width:0;display:flex}.amount-group>.secondary{width:60px;min-height:60px;padding:0;font-size:1.3rem}.action-bar .big,.amount-group>.counter{flex:1;min-height:60px;font-size:1.3rem}.enter-bar{background:var(--surface);justify-content:center;padding:.5rem 1rem;display:flex}.enter-bar .stepper{grid-auto-flow:column;align-items:center;gap:.75rem}.enter-bar .stepper-label{font-size:1rem}.enter-bar .stepper-value{min-width:5rem}.action-bar .small{font-size:.9rem}.combat-row{align-items:center;gap:.35rem;min-width:0;display:flex}.combat-row .stack-row{flex:1;align-self:stretch;min-width:0}.combat-row .combat-step{width:44px;min-height:44px}.stack-row.attacking{background:color-mix(in srgb, var(--combat) 16%, transparent);box-shadow:inset 3px 0 var(--combat)}.stack-row.dying{background:color-mix(in srgb, var(--muted) 16%, transparent);box-shadow:inset 3px 0 var(--muted)}.stack-row.dying .stack-pt{text-decoration:line-through}.stack-row.held{opacity:.55}.badge.dying{color:var(--text)}.badge.attack{color:var(--combat-soft)}.combat-value-stepper{padding-right:.5rem}.combat-step{background:var(--surface-2);flex-shrink:0;width:56px;padding:0;font-size:1.3rem}.combat-total{white-space:nowrap;justify-items:center;line-height:1.1;display:grid}.combat-total strong{font-variant-numeric:tabular-nums;color:var(--combat-soft);font-size:2.4rem;font-weight:800}.combat-total span{font-variant-numeric:tabular-nums;text-align:center;min-width:20ch;font-size:.8rem}.overlay{z-index:10;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:min(440px,100%);max-height:90dvh;display:flex}.modal.wide{width:min(760px,100%)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.5rem .5rem .5rem 1rem;display:flex}.modal-header h2{font-size:1.15rem}.modal-body{flex-direction:column;gap:.9rem;padding:1rem;display:flex;overflow-y:auto}.modal-body>*{flex-shrink:0}.sheet-section{gap:.75rem;display:grid}.sheet-actions{border-top:1px solid var(--border);padding-top:1rem}.sheet-actions .amount-group>.secondary{box-shadow:inset 0 0 0 1px var(--border)}.sheet-pair{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.75rem;display:grid}.sheet-pair>button{min-height:56px}.row-inline{align-items:flex-end;gap:.75rem;display:flex}.row-inline>.stepper,.row-inline>.text-input{flex:1;min-width:0}.row-inline>button{white-space:nowrap}.row-inline.end{justify-content:flex-end}.stepper{gap:.35rem;display:grid}.stepper-label{color:var(--muted);font-size:.9rem}.stepper-controls{gap:.4rem;display:flex}.stepper-controls button:not(.secondary){background:var(--surface-2);width:52px;min-height:52px;padding:0;font-size:1.3rem}.stepper-controls input{text-align:center;width:0;min-width:3rem;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);-moz-appearance:textfield;flex:1;font-size:1.2rem;font-weight:600}.stepper-controls input::-webkit-inner-spin-button{-webkit-appearance:none}.stepper-controls input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper-value{white-space:nowrap;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex:1;place-items:center;min-width:4.5rem;font-size:1.2rem;font-weight:600;display:grid}.text-input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);-webkit-user-select:text;user-select:text;min-height:48px;padding:.75rem}.text-input.full{width:100%}textarea.text-input{resize:vertical;font-family:ui-monospace,monospace;font-size:.9rem}.tabs{gap:.4rem;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--border);white-space:nowrap;background:0 0}.tabs button.active{background:var(--surface-2);border-color:var(--neutral)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;display:grid}.token-tile{position:relative}.token-tile-main{background:var(--surface-2);border:1px solid var(--border);text-align:left;gap:.25rem;width:100%;padding:.4rem .4rem .6rem;display:grid}.token-tile .token-art{aspect-ratio:4/3;border-radius:8px;width:100%}.token-tile-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.token-tile-pt{color:var(--muted);font-size:.85rem}.token-tile-remove{background:var(--danger);color:#fff;border-radius:50%;min-width:36px;min-height:36px;padding:0;font-size:1.2rem;position:absolute;top:-8px;right:-8px}.toggle{align-items:center;gap:.6rem;min-height:48px;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--neutral)}.message{color:var(--muted);background:var(--bg);border-radius:var(--radius);-webkit-user-select:text;user-select:text;padding:.75rem}@media (width<=720px){.action-bar{grid-template-columns:repeat(3,1fr);gap:.5rem;padding-inline:.75rem;display:grid}.action-bar>button{min-width:0;padding-inline:.25rem}.action-bar>.amount-group{grid-column:1/-1}.combat-dock .action-bar{grid-template-columns:repeat(4,1fr)}.combat-dock .action-bar>.primary{grid-area:1/3/auto/5}.targets-bar{padding-inline:.75rem}.target-tab{min-width:max-content}.overlay{grid-template-columns:minmax(0,1fr)}.combat-total{grid-column:span 2}.combat-total span{min-width:0}}@media (width<=480px){.board{grid-template-columns:minmax(0,1fr);padding:.75rem}.top-bar{padding-inline:.75rem}}@media (width<=360px){.top-bar-actions{gap:.25rem}.top-bar-actions button.token{white-space:nowrap;padding-inline:.8rem}.combat-dock .action-bar>.secondary{font-size:.85rem}}
