:root{ --bg:#111; --panel:#1a1a1a; --ink:#f2f2f2; --muted:#9a9a9a; --accent:#ffd400; --line:#2a2a2a; --danger:#ff6b6b; --stage:#2b2b2b; }
@font-face{ font-family:"Archivo Black"; src:url("/fonts/ArchivoBlack-Regular.ttf") format("truetype"); font-weight:400 900; font-display:swap; }
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 -apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
a{color:var(--accent)}
header{padding:16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
header h1{margin:0;font-size:18px;letter-spacing:.14em;text-transform:uppercase;font-family:"Archivo Black",Arial,sans-serif;font-weight:400}
header p{margin:0;color:var(--muted);font-size:14px}
main{display:grid;grid-template-columns:1fr}
@media(min-width:900px){main{grid-template-columns:minmax(0,1fr) 440px;min-height:calc(100vh - 55px)}}
.stage{display:flex;align-items:center;justify-content:center;padding:16px;position:sticky;top:0;background:var(--stage)}
@media(min-width:900px){.stage{align-self:start;height:calc(100vh - 92px)} .stage svg{max-height:calc(100vh - 132px)}}
@media(max-width:899px){.stage{z-index:2;padding:8px 16px;border-bottom:1px solid var(--line)} .stage svg{max-height:38vh}}
.stage svg{width:min(100%,560px);height:auto}
.controls{background:var(--panel);border-left:1px solid var(--line);padding:16px;overflow:auto}
fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}
legend{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.row{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer;font-size:14px;user-select:none}
.chip input{display:none}
.chip:has(input:checked){background:var(--accent);color:#111;border-color:var(--accent);font-weight:700}
.group{margin-bottom:14px}
.group h3{margin:0 0 6px;font-size:13px;font-weight:600}
.count{color:var(--muted);font-size:13px;margin:6px 0 0}
.count b{color:var(--ink)}
select,input[type=number]{background:#222;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:15px;min-width:96px}
.buy{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
button{background:var(--accent);color:#111;border:0;border-radius:8px;padding:14px 16px;font-weight:800;font-size:15px;cursor:pointer;width:100%}
button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}
button[disabled]{opacity:.5;cursor:default}
.stack{display:grid;gap:8px}
.note{font-size:13px;color:var(--muted);margin-top:12px}
.error{color:var(--danger);font-size:14px;margin-top:8px}
.hidden{display:none}
.page{max-width:640px;margin:0 auto;padding:40px 16px}
.page h2{font-family:"Archivo Black",Arial,sans-serif;font-weight:400;font-size:26px;margin:0 0 12px}
.row.gap{margin-top:8px}
.chart{margin-top:4px}
.chart summary{cursor:pointer;color:var(--accent);font-size:14px;padding:6px 0}
.chart table{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}
.chart th,.chart td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.chart th{font-size:12px;font-weight:600;color:var(--muted)}
.chart tr.on td{color:var(--accent);font-weight:700}
.stage svg{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media print{.stage svg{visibility:hidden}}
.tip{position:fixed;z-index:20;background:#000;color:#fff;border:1px solid #444;border-radius:6px;padding:5px 9px;font-size:13px;pointer-events:none;max-width:260px}
#glossary{margin:6px 0 12px;font-size:14px}
#glossary div{display:flex;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}
#glossary dt{min-width:64px;font-weight:700}
#glossary dd{margin:0;color:var(--muted)}
.banner{margin:0;padding:8px 16px;background:var(--accent);color:#111;font-size:14px;font-weight:700;text-align:center}
.suggestrow{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
.suggestrow input{background:#222;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:15px;min-width:0}
.suggestrow button{width:auto;padding:10px 18px}
#suggestbox{margin-top:10px}
