:root{--paper: #F4EFE4;--ink: #14110D;--signal: #FF5836;--signal-2: #F2C200;--ghost: #E4E4E4;--paper-dim: #ECE6D8;--font-serif: "Fraunces", Georgia, serif;--font-serif-text: "Newsreader", Georgia, serif;--font-mono: "Geist Mono", "IBM Plex Mono", monospace;--font-pixel: "Pixelify Sans", monospace;--hairline: 1px solid var(--ink);--track-chrome: .14em}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink)}body{font-family:var(--font-serif-text);font-size:16px;line-height:1.45}.sheet{max-width:1280px;margin:0 auto;padding:18px 22px 30px;min-height:100vh;display:flex;flex-direction:column;gap:14px}.chrome{font-family:var(--font-mono);font-size:10px;line-height:1.5;letter-spacing:var(--track-chrome);text-transform:uppercase}.chrome-sm{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.numeral{font-family:var(--font-mono);font-size:11px;letter-spacing:0}.pixel{font-family:var(--font-pixel)}.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;border-bottom:var(--hairline);padding-bottom:12px}.brand h1{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1;font-weight:560;font-size:54px;line-height:.95;margin:2px 0 0;letter-spacing:-.01em}.brand .eyebrow{color:var(--ink)}.cluster{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.chip{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--track-chrome);text-transform:uppercase;border:var(--hairline);background:var(--paper);color:var(--ink);padding:6px 12px;cursor:pointer;border-radius:0;user-select:none}.chip:hover{background:var(--ink);color:var(--paper);transition:none}.chip.on{background:var(--ink);color:var(--paper)}.chip:disabled{opacity:1;color:var(--ink);background:var(--ghost);cursor:default}.chip-quiet{border-color:var(--ghost)}.seed-panel{border:var(--hairline);padding:4px 10px;display:flex;flex-direction:column;justify-content:center;min-width:148px}.seed-num{font-family:var(--font-pixel);font-size:20px;line-height:1.05;letter-spacing:.06em}.seed-num .cursor{animation:blink 1.1s steps(1) infinite}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:0}}.seed-name{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.roll-wrap{position:relative;border:var(--hairline);background:var(--paper)}.roll-wrap canvas{display:block;width:100%;height:320px;touch-action:none}.reg-mark{position:absolute;width:9px;height:9px;pointer-events:none}.reg-mark:before,.reg-mark:after{content:"";position:absolute;background:var(--ink)}.reg-mark:before{left:4px;top:0;width:1px;height:9px}.reg-mark:after{top:4px;left:0;height:1px;width:9px}.roll-legend{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 2px 0}.legend-set{display:flex;gap:12px;flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.feed-label{color:var(--ink)}.deck{display:grid;grid-template-columns:minmax(300px,5fr) minmax(200px,4fr) minmax(220px,3fr);gap:14px;align-items:stretch}.panel{border:var(--hairline);padding:8px 10px;background:var(--paper)}.panel-title{border-bottom:1px solid var(--ghost);padding-bottom:4px;margin-bottom:6px;display:flex;justify-content:space-between}.panel-title .chrome{font-size:9px}.loom-canvas{display:block;width:100%;height:96px}.form-rail{display:flex;gap:3px;flex-wrap:wrap}.form-seg{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);padding:3px 7px}.form-seg.now{background:var(--ink);color:var(--paper);animation:slam .12s steps(2)}.form-seg.past{border-color:var(--ghost);color:var(--ink);background:var(--ghost)}@keyframes slam{0%{transform:scale(1.06)}to{transform:scale(1)}}.kv{display:grid;grid-template-columns:1fr auto;border-top:var(--hairline)}.kv>div{padding:3px 0;border-bottom:1px solid var(--ghost);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.kv>div:nth-child(2n){text-align:right;letter-spacing:0}.console{display:flex;gap:14px;flex-wrap:wrap;justify-content:space-between}.group{border:var(--hairline);padding:8px 10px 6px;display:flex;gap:2px;flex:1;min-width:240px}.group-label{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;border-left:1px solid var(--ghost);padding-left:4px;margin-right:6px}.sliders{display:flex;gap:4px;flex:1;justify-content:space-around}.vslider{display:flex;flex-direction:column;align-items:center;width:44px;user-select:none}.vslider .lbl{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;white-space:nowrap}.vslider .track{position:relative;width:100%;height:84px;cursor:ns-resize;touch-action:none}.vslider .track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--ink)}.vslider .thumb{position:absolute;left:50%;width:9px;height:9px;transform:translate(-50%,-50%);background:var(--ink)}.vslider .val{font-family:var(--font-mono);font-size:9px;margin-top:4px}.hslider{display:flex;align-items:center;gap:6px;user-select:none}.hslider .lbl{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;width:52px;flex-shrink:0}.hslider .track{position:relative;height:18px;flex:1;cursor:ew-resize;touch-action:none}.hslider .track:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--ink)}.hslider .thumb{position:absolute;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);background:var(--ink)}.hslider .val{font-family:var(--font-mono);font-size:8.5px;width:34px;text-align:right;flex-shrink:0}.keyrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.keyrow .set,.set{display:flex;gap:2px;align-items:center;flex-wrap:wrap}.set-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;margin-right:4px;text-transform:uppercase}.tab-chip{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ghost);background:var(--paper);color:var(--ink);padding:3px 6px;cursor:pointer;border-radius:0}.tab-chip.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.tab-chip:hover{border-color:var(--ink)}.hood{border:var(--hairline)}.hood-tabs{display:flex;border-bottom:var(--hairline)}.hood-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 4px;cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-right:1px solid var(--ghost);background:var(--paper)}.hood-tab:last-child{border-right:none}.hood-tab.on{background:var(--ink);color:var(--paper)}.hood-tab.muted{color:var(--ink);opacity:1;background:var(--ghost)}.hood-tab .glyph{width:10px;height:10px;flex-shrink:0}.hood-body{padding:12px;display:flex;flex-wrap:wrap;gap:16px}.hood-col{flex:1;min-width:210px}.hood-col .col-title{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;border-bottom:1px solid var(--ghost);margin-bottom:6px;padding-bottom:3px}.hood-col .rows{display:flex;flex-direction:column;gap:3px}.sel-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sel-row .lbl{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;width:52px;flex-shrink:0}.sel-row .opts{display:flex;gap:2px;flex-wrap:wrap}.dropdown{position:relative}.menu{position:absolute;top:calc(100% + 4px);right:0;z-index:50;background:var(--paper);border:var(--hairline);padding:8px;min-width:280px;max-height:380px;overflow-y:auto}.menu .cat{font-family:var(--font-mono);font-size:8px;letter-spacing:.2em;margin:6px 0 3px}.menu .items{display:flex;flex-wrap:wrap;gap:3px}.backdrop{position:fixed;inset:0;z-index:40}.foot{margin-top:auto;border-top:var(--hairline);padding-top:8px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.foot a{color:var(--ink);font-family:var(--font-serif-text);font-size:13px;text-decoration:none;border-bottom:1px solid var(--ghost)}.foot a:hover{border-bottom-color:var(--ink)}.type-in{overflow:hidden;white-space:nowrap;animation:typein .5s steps(18)}@keyframes typein{0%{max-width:0}to{max-width:100%}}@media(max-width:900px){.deck{grid-template-columns:1fr}.brand h1{font-size:40px}.roll-wrap canvas{height:220px}}
