:root{--paper: #f2f1ec;--panel: #f8f7f4;--ink: #16161a;--ink-2: #55554f;--ink-3: #8b8b83;--rule: #16161a;--hair: #d5d4cc;--accent: #e8500f;--accent-soft: #fbe4d8;--green: #1f6b47;--green-soft: #dfeae3;--blue: #23408e;--blue-soft: #dee3f2;--pink: #b0407a;--pink-soft: #f6e0eb;--violet: #5b3fa8;--violet-soft: #e7e1f7;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, "Roboto Mono", monospace;--sans: "Helvetica Neue", Helvetica, Inter, Arial, sans-serif}:root[data-theme=dark]{--paper: #121214;--panel: #191919;--ink: #eceae4;--ink-2: #a9a89f;--ink-3: #74736c;--rule: #eceae4;--hair: #33332f;--accent: #ff6a2b;--accent-soft: #3a1c0c;--green: #5fb98a;--green-soft: #12281d;--blue: #7c9bee;--blue-soft: #131c33;--pink: #e086b5;--pink-soft: #2e1622;--violet: #a690ea;--violet-soft: #1e1830}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.03em;line-height:1.02}h1{font-size:clamp(2.4rem,8vw,5rem);text-transform:uppercase}h2{font-size:1.05rem;letter-spacing:-.01em}h3{font-size:.9rem}p{margin:0 0 .9em}a{color:var(--ink);text-underline-offset:3px}a:hover{color:var(--accent)}.lab{font:600 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:7px}.lab:before{content:"";width:9px;height:9px;border-left:1px solid var(--hair);border-top:1px solid var(--hair);flex:none}.mono{font-family:var(--mono)}.muted{color:var(--ink-2)}.tiny{font-size:.78rem}.shell{max-width:1180px;margin:0 auto;padding:0 22px 96px}.shell.narrow{max-width:520px}.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 22px;border-bottom:1px solid var(--rule);font:600 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;position:sticky;top:0;background:var(--paper);z-index:20}.topbar .spacer{flex:1}.topbar a{text-decoration:none;color:var(--ink-2)}.topbar a:hover{color:var(--accent)}.hero{padding:44px 0 26px;border-bottom:1px solid var(--rule);margin-bottom:26px}.hero .sub{font:.8rem/1.4 var(--mono);color:var(--ink-2);max-width:46ch;margin-top:14px}.block{border-top:1px solid var(--rule);padding:22px 0}.block:last-child{border-bottom:1px solid var(--rule)}.block-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;flex-wrap:wrap}.block-head .spacer{flex:1}.panel{border:1px solid var(--hair);background:var(--panel);padding:18px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}@media (max-width: 760px){.cols{grid-template-columns:1fr}}label{display:block;font:600 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:7px}input[type=text],input[type=number],input[type=password],textarea,select{width:100%;padding:9px 11px;font:.9rem var(--mono);color:var(--ink);background:transparent;border:1px solid var(--hair);border-radius:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:30px;background-repeat:no-repeat;background-position:right 10px center;background-size:9px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M0 0l4.5 5L9 0' fill='none' stroke='%2316161a' stroke-width='1.4'/%3E%3C/svg%3E")}:root[data-theme=dark] select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M0 0l4.5 5L9 0' fill='none' stroke='%23eceae4' stroke-width='1.4'/%3E%3C/svg%3E")}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}textarea{min-height:116px;resize:vertical;font-size:.84rem}.field{margin-bottom:16px}.hint{font:.74rem/1.45 var(--mono);color:var(--ink-3);margin-top:6px}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1;min-width:0}button{font:600 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:11px 18px;border:1px solid var(--rule);background:var(--ink);color:var(--paper);border-radius:0;cursor:pointer}button:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.35;cursor:not-allowed}button.ghost{background:transparent;color:var(--ink)}button.ghost:hover:not(:disabled){background:var(--ink);color:var(--paper)}button.quiet{border-color:transparent;background:transparent;color:var(--ink-3);padding:7px 9px}button.quiet:hover:not(:disabled){background:transparent;color:var(--accent)}button.danger{background:transparent;color:var(--accent);border-color:var(--accent)}button.danger:hover:not(:disabled){background:var(--accent);color:#fff}button.small{padding:7px 12px;font-size:.66rem}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.actions .spacer{flex:1}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font:600 .66rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid currentColor;color:var(--ink-2)}.tag.on{color:var(--green)}.tag.off{color:var(--accent)}.tag.hid{color:var(--violet)}.tag.solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}.note{border-left:2px solid var(--accent);background:var(--accent-soft);padding:12px 14px;font-size:.86rem;margin-bottom:14px}.note.info{border-color:var(--blue);background:var(--blue-soft)}.note.hid{border-color:var(--violet);background:var(--violet-soft)}.note ul{margin:6px 0 0;padding-left:17px}.note code{font-family:var(--mono)}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font:.8rem/1.4 var(--mono)}th{text-align:left;padding:8px 12px 8px 0;border-bottom:1px solid var(--rule);font:600 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;position:sticky;top:0;background:var(--paper)}td{padding:7px 12px 7px 0;border-bottom:1px solid var(--hair);white-space:nowrap}tbody tr:hover td{background:var(--panel)}td.num,th.num{text-align:right;padding-right:18px;font-variant-numeric:tabular-nums}td.wide{white-space:normal;min-width:22ch}.rowlink{cursor:pointer}.rowlink:hover td{color:var(--accent)}.tally{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--hair)}.tally>div{flex:1;min-width:96px;padding:12px 14px 12px 0;border-right:1px solid var(--hair)}.tally>div:last-child{border-right:none}.tally b{display:block;font:700 1.5rem/1 var(--sans);letter-spacing:-.03em}.tally span{font:.66rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.steps{display:flex;gap:0;margin-bottom:26px;border-top:1px solid var(--rule)}.steps button{flex:1;background:transparent;border:none;border-right:1px solid var(--hair);padding:9px 10px 12px 0;text-align:left;color:var(--ink-3);letter-spacing:.1em}.steps button:last-child{border-right:none}.steps button:hover:not(:disabled){background:transparent;color:var(--accent)}.steps .on{color:var(--ink);box-shadow:inset 0 2px 0 var(--accent)}.steps .done{color:var(--ink-2);box-shadow:inset 0 2px 0 var(--hair)}.stack{display:grid;gap:0}.wingrow{display:grid;gap:12px;align-items:end;grid-template-columns:1.2fr .7fr .7fr .9fr auto;padding:14px 0;border-bottom:1px solid var(--hair)}.wingrow .field{margin-bottom:0}@media (max-width: 680px){.wingrow{grid-template-columns:1fr 1fr}}.ccard{padding:20px 0;border-bottom:1px solid var(--hair)}.ccard:last-child{border-bottom:none}.ccard .card-head{margin-bottom:16px}.ccard .field{margin-bottom:18px}.ccard .row{gap:18px;row-gap:4px;margin-top:4px}.ccard .row>.field{margin-bottom:0}.ccard .hint{margin-top:8px}.ccard .picker{margin-top:10px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 9px;border:1px solid var(--hair);font:.74rem var(--mono)}.chip button{border:none;background:none;color:var(--ink-3);padding:0 2px;font-size:.95rem}.picker{border:1px solid var(--hair);max-height:210px;overflow-y:auto}.picker div{padding:8px 11px;cursor:pointer;border-bottom:1px solid var(--hair);font:.8rem var(--mono)}.picker div:last-child{border-bottom:none}.picker div:hover{background:var(--accent-soft);color:var(--accent)}.picker .no{color:var(--ink-3);cursor:default}.drop{border:1px dashed var(--hair);padding:34px 18px;text-align:center;cursor:pointer;font:.78rem/1.5 var(--mono);letter-spacing:.06em;color:var(--ink-2);text-transform:uppercase}.drop:hover,.drop.over{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.mode{text-align:left;padding:22px 18px;border:1px solid var(--hair);background:transparent;color:var(--ink);text-transform:none;letter-spacing:0;font:400 .9rem/1.5 var(--sans);cursor:pointer;width:100%}.mode:hover{border-color:var(--accent);background:transparent;color:var(--ink)}.mode b{display:block;margin-bottom:6px;font:600 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.mode span{color:var(--ink-2);font-size:.84rem}.seed{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.seed .val{font:700 2.6rem/1 var(--mono);letter-spacing:-.03em}.checks{list-style:none;margin:0;padding:0;font:.8rem/1.45 var(--mono)}.checks li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--hair)}.checks li:last-child{border-bottom:none}.viewport{position:relative;border:1px solid var(--hair);background:var(--panel)}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.viewport .readout{position:absolute;left:0;bottom:0;padding:10px 14px;font:.74rem/1.5 var(--mono);background:var(--paper);border-top:1px solid var(--hair);border-right:1px solid var(--hair);pointer-events:none;min-width:200px}.viewport .hud{position:absolute;right:0;top:0;padding:8px 12px;font:.66rem/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:right;pointer-events:none;background:var(--paper);border-left:1px solid var(--hair);border-bottom:1px solid var(--hair)}@media (max-width: 640px){.viewport .hud{display:none}}button.theme{display:inline-flex;align-items:center;gap:7px}button.theme .swatch{width:10px;height:10px;border:1px solid currentColor;flex:none;background:linear-gradient(to right,currentColor 50%,transparent 50%)}.legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font:.68rem var(--mono);letter-spacing:.08em;text-transform:uppercase}.legend span{display:flex;align-items:center;gap:7px;color:var(--ink-2)}.legend i{width:11px;height:11px;border:1px solid var(--ink);display:block}.legend i.void{border-style:dashed;opacity:.5}.pinrow input{text-align:center;letter-spacing:.7em;font-size:1.2rem;padding-left:.7em}.spread{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
