:root{--ink: #f6e6cf;--ink-dim: #cbb59a;--ink-faint: #9c8a76;--ember: #e8a05a;--ember-hot: #ffcf95;--danger: #e2664a;--panel: rgba(22, 13, 17, .82);--panel-solid: #1b1015;--edge: rgba(246, 230, 207, .16);--edge-strong: rgba(246, 230, 207, .34);--shadow: 0 18px 44px rgba(8, 4, 7, .55);--sans: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#120a10;color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0}#stage{position:absolute;inset:0;width:100%;height:100%;display:block}#grain{position:absolute;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:radial-gradient(circle at 30% 20%,rgba(255,220,180,.5) 0 1px,transparent 1px);background-size:3px 3px}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ember-hot);outline-offset:2px}b{font-weight:600}#hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:max(14px,env(safe-area-inset-top)) clamp(14px,3vw,30px) 10px;pointer-events:none}.hud-group{display:flex;flex-direction:column;gap:3px}.hud-group--end{align-items:flex-end}.hud-label{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);text-shadow:0 1px 6px rgba(10,4,6,.9)}.hud-label b{color:var(--ink);letter-spacing:.06em}.hud-label--score b{color:var(--ember-hot);font-size:13px}.hud-buttons{display:flex;gap:6px;pointer-events:auto}.hud-buttons button,.settings button{width:38px;height:34px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:8px;background:var(--panel);color:var(--ink-dim);font-size:13px;backdrop-filter:blur(6px);transition:color .14s ease,border-color .14s ease,background .14s ease}.hud-buttons button:hover,.settings button:hover{color:var(--ink);border-color:var(--edge-strong)}.hud-buttons button[aria-pressed=true]{color:var(--ember);border-color:#e8a05a80}#status{position:absolute;top:max(74px,calc(env(safe-area-inset-top) + 62px));left:50%;transform:translate(-50%);margin:0;padding:7px 16px;max-width:min(78vw,460px);text-align:center;font-size:14px;line-height:1.4;color:var(--ink);background:var(--panel);border:1px solid var(--edge);border-radius:999px;box-shadow:var(--shadow);opacity:0;transition:opacity .24s ease;pointer-events:none}#status[data-shown=true]{opacity:1}#readout{position:absolute;left:clamp(14px,3vw,30px);top:50%;transform:translateY(-50%);width:178px;display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--edge);border-radius:12px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}.gauge{display:flex;flex-direction:column;gap:5px}.gauge-label{margin:0;display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.gauge-label b{color:var(--ink);letter-spacing:.04em;text-transform:none;font-size:11px}.gauge-track{height:6px;border-radius:3px;background:#f6e6cf1a;overflow:hidden}.gauge-track i{display:block;height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,#7fb0c8,var(--ember) 62%,var(--danger));transition:width .12s linear}#dial{display:grid;place-items:center;margin-top:2px}#dial svg{width:54px;height:54px}#dial circle{fill:#0c070a80;stroke:var(--edge);stroke-width:1.4}#dial path{fill:var(--ember)}#dial-needle{transform-origin:24px 24px}#hand{position:absolute;right:clamp(14px,3vw,30px);top:50%;transform:translateY(-50%);width:210px;display:flex;flex-direction:column;gap:8px}.card{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:10px;padding:9px 11px;text-align:left;background:var(--panel);border:1px solid var(--edge);border-radius:10px;box-shadow:var(--shadow);backdrop-filter:blur(8px);transition:border-color .14s ease,background .14s ease,transform .14s ease}.card:hover{border-color:var(--edge-strong)}.card[aria-pressed=true]{border-color:var(--ember);background:#301c16e6;transform:translate(-4px)}.card-art{display:block;width:40px;height:30px}.card-art path{fill:#b9a68c}.card[aria-pressed=true] .card-art path{fill:var(--ember-hot)}.card[data-wet=true] .card-art path{fill:#7d97b0}.card[data-wet=true][aria-pressed=true] .card-art path{fill:#a9c6de}.card-name{display:block;font-size:13px;color:var(--ink);line-height:1.2}.card-note{display:block;margin-top:2px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.card[data-wet=true] .card-note{color:#9dbdd6}#touch{display:none;position:absolute;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 clamp(12px,3vw,30px)}.pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}.pad button{display:grid;place-items:center;font-size:13px;color:var(--ink-dim);background:var(--panel);border:1px solid var(--edge);border-radius:9px;backdrop-filter:blur(6px)}.pad button[data-hold=up]{grid-area:1 / 2}.pad button[data-hold=left]{grid-area:2 / 1}.pad button[data-hold=down]{grid-area:2 / 2}.pad button[data-hold=right]{grid-area:2 / 3}.pad button[data-hold=left],.pad button[data-hold=right]{align-self:center}.pad button[data-hold=down]{grid-row:2}.acts{display:grid;grid-template-columns:repeat(2,minmax(58px,auto));gap:5px}.acts button{min-height:42px;padding:0 12px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);background:var(--panel);border:1px solid var(--edge);border-radius:9px;backdrop-filter:blur(6px)}.acts .act-set{color:#22150f;background:var(--ember);border-color:var(--ember-hot);font-weight:700}.screen{position:absolute;inset:0;display:grid;place-items:center;padding:clamp(16px,4vw,40px);background:radial-gradient(120% 90% at 50% 10%,#12090e8c,#090508ed);backdrop-filter:blur(3px);overflow-y:auto;z-index:5}.screen[hidden]{display:none}.sheet{width:min(640px,100%);max-height:100%;overflow-y:auto;padding:clamp(20px,4vw,34px);background:var(--panel-solid);border:1px solid var(--edge);border-radius:16px;box-shadow:var(--shadow)}.eyebrow{margin:0 0 8px;font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ember)}h1{margin:0 0 10px;font-size:clamp(38px,8vw,64px);line-height:.95;letter-spacing:.02em;font-weight:500}h2{margin:0 0 10px;font-size:clamp(24px,4.4vw,34px);line-height:1.05;font-weight:500}.lede{margin:0 0 16px;font-size:clamp(15px,2.1vw,18px);line-height:1.5;color:var(--ink);max-width:46em}.rules{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:7px}.rules li{position:relative;padding-left:18px;font-size:14px;line-height:1.45;color:var(--ink-dim)}.rules li:before{content:"";position:absolute;left:0;top:8px;width:8px;height:2px;background:var(--ember)}.hint,.fine{margin:12px 0 0;font-family:var(--mono);font-size:11px;line-height:1.7;letter-spacing:.04em;color:var(--ink-faint)}.fine{font-family:var(--sans);font-size:13px;letter-spacing:0}.primary{display:inline-block;margin-top:4px;padding:13px 26px;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#24150d;background-color:var(--ember);background-image:linear-gradient(180deg,var(--ember-hot),var(--ember));border-radius:10px;box-shadow:0 10px 26px #e8a05a3d;transition:transform .14s ease,box-shadow .14s ease}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px #e8a05a52}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.row button:not(.primary){padding:13px 20px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--edge);border-radius:10px}.row button:not(.primary):hover{color:var(--ink);border-color:var(--edge-strong)}.settings{display:flex;gap:8px;flex-wrap:wrap}.settings button{width:auto;padding:0 14px;height:38px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.settings button[aria-pressed=true]{color:var(--ember);border-color:#e8a05a80}.keys{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:6px 16px;margin:0 0 4px;font-size:14px}.keys dt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--ember);padding-top:2px}.keys dd{margin:0;color:var(--ink-dim);line-height:1.4}.stats{display:grid;grid-template-columns:1fr auto;gap:7px 18px;margin:0;font-size:14px}.stats dt{color:var(--ink-faint)}.stats dd{margin:0;text-align:right;color:var(--ink);font-family:var(--mono);font-size:13px}@media(max-width:900px),(max-width:1100px)and (hover:none)and (pointer:coarse){#touch{display:flex}}@media(max-width:900px){#readout{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 108px);left:clamp(12px,3vw,20px);right:clamp(12px,3vw,20px);width:auto;transform:none;flex-direction:row;align-items:center;gap:14px;padding:10px 12px}.gauge{flex:1}#dial svg{width:40px;height:40px}#hand{top:auto;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 190px);left:clamp(12px,3vw,20px);right:clamp(12px,3vw,20px);width:auto;transform:none;flex-direction:row;gap:6px}.card{flex:1;grid-template-columns:30px 1fr;padding:7px 8px;gap:7px}.card-art{width:30px;height:24px}.card-name{font-size:12px}.card-note{font-size:9px}#status{top:max(66px,calc(env(safe-area-inset-top) + 54px));font-size:13px}}@media(max-width:560px){#touch{gap:8px}.acts{grid-template-columns:repeat(2,minmax(52px,auto))}.acts button{min-height:38px;padding:0 9px;font-size:10px}.pad{grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px)}.hud-label{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition-duration:1ms!important}}@media(prefers-reduced-motion:no-preference){.screen{animation:rise .32s ease both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
