:root{--ink: #120c10;--panel: rgba(24, 16, 18, .95);--edge: rgba(224, 178, 92, .3);--edge-soft: rgba(224, 178, 92, .15);--brass: #e0b25c;--brass-deep: #a97a2c;--paper: #efe4cb;--felt: #c0504f;--muted: #bda887;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-data: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow: 0 18px 44px rgba(6, 3, 4, .6)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#120c10;color:var(--paper);font-family:var(--font-ui);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}#app{position:fixed;inset:0;overflow:hidden}#stage{position:fixed;inset:0;display:block;width:100%;height:100%;touch-action:manipulation}#vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(124% 86% at 50% 24%,#0000 42%,#0a050670 76%,#060304c2),linear-gradient(to bottom,#0e080966,#0e080900 24%)}#hud{position:fixed;z-index:4;left:0;right:0;top:0;display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:10px max(12px,env(safe-area-inset-left)) 8px max(12px,env(safe-area-inset-right));background:linear-gradient(to bottom,#0b0708e0,#0b070885 68%,#0b070800)}.brand{display:flex;align-items:center;gap:8px}.brand .mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(160deg,#f0d79a,#b98a34);box-shadow:inset 0 0 0 2px #120c10b3;flex:0 0 auto}.wordmark{display:flex;flex-direction:column;font-family:var(--font-display);font-size:15px;letter-spacing:.16em;color:#f6e6c2;line-height:1.1}.wordmark small{font-family:var(--font-data);font-size:9px;letter-spacing:.18em;color:#b09a72;margin-top:2px}.meters{display:flex;gap:6px;align-items:stretch;flex-wrap:wrap}.meter{display:flex;flex-direction:column;gap:1px;min-width:54px;padding:4px 9px;border:1px solid var(--edge-soft);border-radius:8px;background:#140d0fb8}.meter .label{font-family:var(--font-data);font-size:8.5px;letter-spacing:.16em;color:var(--muted)}.meter b{font-family:var(--font-data);font-size:13px;color:#fbeccb}.hud-actions{display:flex;gap:6px;margin-left:auto}.hud-actions button{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--edge-soft);border-radius:10px;background:#140d0fc7;color:#e8d5ac;cursor:pointer}.hud-actions button svg{width:19px;height:19px}.hud-actions button:hover{border-color:var(--edge);color:#fff6e2}.hud-actions button[aria-pressed=true]{color:#8c7a63}.hud-actions button[aria-pressed=true] #mute-wave{display:none}#status{position:fixed;z-index:3;top:calc(max(10px,env(safe-area-inset-top)) + 58px);left:50%;transform:translate(-50%);max-width:min(94vw,640px);margin:0;padding:6px 14px;border:1px solid var(--edge-soft);border-radius:999px;background:#100a0ce6;color:#eddfc3;font-family:var(--font-display);font-size:13.5px;text-align:center;box-shadow:0 8px 20px #05030480;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#console{position:fixed;z-index:4;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px max(10px,env(safe-area-inset-bottom));background:linear-gradient(to top,#0a0607f5,#0a0607b3 62%,#0a060700)}#roll{display:block;width:min(100%,980px);height:132px;border-radius:9px;touch-action:manipulation;cursor:crosshair}#strip{display:block;width:min(100%,980px);height:86px;border-radius:9px}.plate{display:flex;align-items:center;gap:10px;width:min(100%,980px);padding:4px 10px;border:1px solid var(--edge-soft);border-radius:999px;background:#120c0ed1}.plate-label{font-family:var(--font-data);font-size:8.5px;letter-spacing:.18em;color:var(--muted)}.plate-marks{display:flex;gap:8px;flex-wrap:wrap;font-family:var(--font-data);font-size:10.5px;color:#e9d8b4}.plate-marks span.on{color:#120c10;background:var(--brass);border-radius:5px;padding:1px 6px}#tools{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:min(100%,980px)}.group{display:flex;gap:6px}.tool{min-height:40px;min-width:44px;padding:8px 13px;border:1px solid var(--edge-soft);border-radius:10px;background:#1e1414e6;color:#f0e0bd;font-family:var(--font-display);font-size:14px;cursor:pointer}.tool:hover:not(:disabled){border-color:var(--edge);color:#fff6e2}.tool:disabled{opacity:.42;cursor:default}.tool.tiny{min-height:34px;min-width:38px;padding:4px 10px;font-size:16px}.tool.primary{border:1px solid #f0d79a;background:linear-gradient(180deg,#ecc871,#b98a34);color:#2a1a10;font-weight:600}.tool.primary:hover:not(:disabled){background:linear-gradient(180deg,#f5d98d,#c8963c)}#quadrant{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:min(100%,980px)}.dial{display:flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--edge-soft);border-radius:10px;background:#140d0fdb}.dial-label{font-family:var(--font-data);font-size:8.5px;letter-spacing:.16em;color:var(--muted)}.dial-row{display:flex;align-items:center;gap:6px}.dial-row b{min-width:78px;text-align:center;font-family:var(--font-data);font-size:12px;color:#fbeccb}.screen{position:fixed;inset:0;z-index:6;display:grid;place-items:center;padding:16px;background:radial-gradient(122% 92% at 50% 28%,#0c070885,#070405db);overflow:auto}.panel{width:min(100%,640px);max-height:calc(100vh - 32px);overflow-y:auto;padding:22px 22px 20px;border:1px solid var(--edge);border-radius:16px;background:var(--panel);box-shadow:var(--shadow);color:#f0e5cd}.tool.primary.ready{border-color:#fff0c8;background:linear-gradient(180deg,#ffe9a8,#d3a441);box-shadow:0 0 0 2px #ffe2a047,0 8px 20px #b88a3452}.title-panel{text-align:left}.eyebrow{margin:0 0 6px;font-family:var(--font-data);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#b09a72}h1{margin:0 0 10px;font-family:var(--font-display);font-size:clamp(34px,7vw,54px);font-weight:500;letter-spacing:.02em;color:#f8ead0}h2{margin:0 0 8px;font-family:var(--font-display);font-size:25px;font-weight:500;color:#f8ead0}h3{margin:16px 0 6px;font-family:var(--font-data);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#b09a72}.lede{margin:0 0 12px;font-size:14.5px;line-height:1.55;color:#e4d6bb}.lede b{color:#f8ead0;font-weight:600}.rules{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}.rules li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.5;color:#d9c8ac}.rules li:before{content:"";position:absolute;left:3px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--brass)}.rules b{color:#f6e6c2;font-weight:600}.keys{display:grid;grid-template-columns:108px 1fr;gap:6px 14px;margin:0 0 4px}.keys dt{font-family:var(--font-data);font-size:12px;color:var(--brass)}.keys dd{margin:0;font-size:13px;line-height:1.45;color:#cdb894}.tally{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px}.tally li{display:flex;justify-content:space-between;gap:12px;padding:5px 10px;border:1px solid var(--edge-soft);border-radius:8px;font-family:var(--font-data);font-size:12px;color:#c6b28c}.tally b{color:#fdf1d8;font-weight:500}.screen-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}button.primary,button.ghost{min-height:46px;padding:10px 20px;border-radius:12px;font-family:var(--font-display);font-size:15.5px;cursor:pointer}button.primary{border:1px solid #f0d79a;background:linear-gradient(180deg,#ecc871,#b98a34);color:#2a1a10;box-shadow:0 8px 20px #b88a3442}button.ghost{border:1px solid var(--edge-soft);background:#e0b25c1a;color:#f0e2c0}button.primary:hover{background:linear-gradient(180deg,#f5d98d,#c8963c)}button.ghost:hover{border-color:var(--edge);color:#fff4dd}button:focus-visible{outline:2px solid #ffe7b6;outline-offset:2px}.foot{margin:14px 0 0;font-family:var(--font-data);font-size:10.5px;letter-spacing:.07em;color:#9d8a6c}@media(min-width:760px){#hud{padding:12px 20px;gap:10px 18px}.meters{flex:1 1 auto;order:0;justify-content:flex-end;max-width:480px;margin-left:auto}#status{top:calc(max(12px,env(safe-area-inset-top)) + 56px);font-size:14.5px}#roll{height:146px}#strip{height:94px}}@media(prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}@media(max-width:759px){#hud{padding:8px 10px 6px;gap:6px 8px}.wordmark{font-size:13px}.meter{min-width:46px;padding:3px 7px}.meter b{font-size:12px}.hud-actions button{width:34px;height:34px}#status{top:calc(max(8px,env(safe-area-inset-top)) + 92px);font-size:12.5px;white-space:normal}#console{gap:5px;padding:6px 8px max(8px,env(safe-area-inset-bottom))}#roll{height:116px}#strip{height:78px}.plate{gap:6px;padding:3px 9px}.plate-marks{font-size:9.5px;gap:5px}#tools{gap:6px}.tool{min-height:42px;min-width:42px;padding:8px 11px;font-size:13.5px}.dial{padding:3px 8px;gap:6px}.dial-row b{min-width:66px;font-size:11px}.screen{padding:12px}.panel{padding:18px 16px 16px;border-radius:14px}h1{font-size:clamp(30px,9vw,40px);margin-bottom:8px}h2{font-size:22px}.lede{font-size:13.5px;line-height:1.5;margin-bottom:10px}.rules{gap:6px;margin-bottom:12px}.rules li{font-size:12.5px;line-height:1.45}button.primary,button.ghost{min-height:44px;font-size:15px;padding:9px 16px}.foot{margin-top:10px;font-size:9.5px}.keys{grid-template-columns:1fr;gap:2px 0}.keys dt{margin-top:7px}}
