:root{--paper:#0a1b31;--sheet:#0e2440;--ink:#d9e7f5;--ink-strong:#f2f7fd;--ink-dim:#d9e7f599;--ink-faint:#d9e7f557;--line:#d9e7f529;--line-strong:#d9e7f566;--accent:#ffb454;--accent-soft:#ffb45424;--ice:#6fa8dc;--rose:#ff7a9c;--green:#7bd88f;--font-display:"Big Shoulders", "Arial Narrow", sans-serif;--font-body:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;font-family:var(--font-body);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);background-color:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(120% 90% at 50% 0%, #6fa8dc12, transparent 60%), var(--paper);min-width:320px;min-height:100vh}#root{min-height:100vh}.app-frame{grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(.8rem,1.6vh,1.4rem);max-width:1440px;height:100dvh;margin-inline:auto;padding:clamp(1rem,2.4vw,2rem);display:grid}.masthead{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding-bottom:clamp(.6rem,1.4vh,1rem);display:flex}.masthead-eyebrow{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem;font-size:.66rem;font-weight:500;display:block}h1{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-strong);font-size:clamp(1.9rem,4vw,3rem);font-weight:700;line-height:.95}.masthead-controls{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.picker-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);font-size:.62rem}.specimen-form{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.specimen-row{gap:.35rem;display:flex}.specimen-input{border:1px solid var(--line);width:min(280px,56vw);color:var(--ink);font-family:var(--font-mono);letter-spacing:.02em;background:#0e24408c;border-radius:2px;padding:.42rem .6rem;font-size:.78rem}.specimen-input::placeholder{color:var(--ink-faint)}.specimen-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.specimen-submit{border-color:var(--line);white-space:nowrap}.specimen-submit:hover{border-color:var(--accent);color:var(--accent)}.query-picker-group{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.token-picker{flex-wrap:wrap;gap:.35rem;display:flex}.token-picker-button{min-width:52px;font-family:var(--font-mono);letter-spacing:.02em;text-transform:none;border:1px solid var(--line);color:var(--ink-dim);background:0 0;justify-content:center;padding:.4rem .6rem;font-size:.76rem}.token-picker-button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink-strong)}.workspace{grid-template-columns:minmax(0,1fr) clamp(280px,26vw,350px);gap:clamp(1rem,2vw,1.6rem);min-height:0;display:grid}.drawing-area{justify-content:center;align-items:center;min-width:0;min-height:0;display:flex}.board-shell{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.transformer-board{width:100%;height:100%}.margin-notes{scrollbar-width:thin;flex-direction:column;gap:1rem;min-height:0;display:flex;overflow-y:auto}.note-card{border:1px solid var(--line);background:#0e24408c;padding:1.1rem 1.2rem}.note-kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.65rem;font-size:.64rem;font-weight:500}.note-card h2{letter-spacing:.01em;color:var(--ink-strong);margin-bottom:.55rem;font-size:1.08rem;font-weight:600}.note-card p{color:var(--ink-dim);font-size:.9rem;line-height:1.6}.readout-rows{gap:.5rem;display:grid}.readout-row{border-bottom:1px dashed var(--line);grid-template-columns:minmax(78px,.44fr) minmax(0,1fr);align-items:baseline;gap:.8rem;padding-bottom:.5rem;display:grid}.readout-row:last-child{border-bottom:0;padding-bottom:0}.readout-row span{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem}.readout-row strong{min-width:0;font-family:var(--font-mono);color:var(--ink);overflow-wrap:anywhere;font-size:.76rem;font-weight:500}.temp-control{border-top:1px solid var(--line);gap:.4rem;margin-top:.9rem;padding-top:.75rem;display:grid}.temp-control label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.68rem}.temp-control input[type=range]{width:100%;accent-color:var(--accent);cursor:ew-resize}.temp-control input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.temp-scale{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);justify-content:space-between;font-size:.6rem;display:flex}.legend-list{gap:.45rem;list-style:none;display:grid}.legend-list li{font-family:var(--font-mono);color:var(--ink-dim);align-items:center;gap:.55rem;font-size:.72rem;display:flex}.legend-head-button{letter-spacing:.02em;text-transform:none;color:var(--ink-dim);border:0;gap:.55rem;margin:-.1rem -.2rem;padding:.1rem .2rem;font-size:.72rem;transition:opacity .25s,color .2s}.legend-head-button.solo{color:var(--ink-strong)}.legend-head-button.dimmed{opacity:.35}.legend-hint{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-top:.6rem;font-size:.62rem}.legend-swatch{border-radius:1px;flex:none;width:14px;height:9px}.legend-swatch.positive{background:var(--accent)}.legend-swatch.negative{background:var(--ice)}.transport{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(.8rem,2vw,1.6rem);padding-top:clamp(.5rem,1.2vh,.9rem);display:grid}.timeline{grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;display:grid}.timeline-step{border:0;border-top:2px solid var(--line);font-family:var(--font-mono);letter-spacing:.03em;text-align:left;text-transform:uppercase;color:var(--ink-faint);background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.45rem .3rem .3rem;font-size:.62rem;line-height:1.1;display:flex}.timeline-step span{font-family:var(--font-display);letter-spacing:.06em;color:inherit;font-size:.86rem;font-weight:700}.timeline-step.complete{border-top-color:var(--line-strong);color:var(--ink-dim)}.timeline-step.active{border-top-color:var(--accent);color:var(--ink-strong)}.timeline-step.active span{color:var(--accent)}.timeline-step:hover{color:var(--ink)}button{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:2px;align-items:center;gap:.45rem;padding:.55em 1em;font-size:.78rem;font-weight:500;transition:color .2s,border-color .2s,background-color .2s;display:flex}button:hover{color:var(--ink-strong)}button:active{transform:translateY(1px)}button:disabled{opacity:.3;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.controls{align-items:center;gap:.5rem;display:flex}.colophon{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--ink-faint);grid-column:1/-1;margin-top:.15rem;font-size:.6rem}.colophon a{color:var(--ink-dim);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color .2s}.colophon a:hover,.colophon a:focus-visible{color:var(--accent)}.colophon a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.controls button{border-color:var(--line)}.controls button:hover:not(:disabled){border-color:var(--line-strong)}.controls button.primary{border-color:var(--accent);color:var(--accent);justify-content:center;min-width:108px}.controls button.primary:hover{background:var(--accent-soft);color:var(--ink-strong)}.board-sheet{fill:var(--sheet)}.board-grid-minor{stroke:#d9e7f50b;stroke-width:1px}.board-grid-major{stroke:#d9e7f517;stroke-width:1px}.board-frame{fill:none;stroke:var(--line-strong);stroke-width:1.5px}.board-titleblock .tb-frame{fill:#0a1b31d9;stroke:var(--line-strong);stroke-width:1.5px}.board-titleblock .tb-rule{stroke:var(--line);stroke-width:1px}.board-titleblock text{font-family:var(--font-mono);letter-spacing:.08em;font-size:10px}.board-titleblock .tb-fig{fill:var(--accent);font-weight:600}.board-titleblock .tb-stage{fill:var(--ink);font-weight:600}.board-titleblock .tb-meta{fill:var(--ink-dim)}.board-titleblock .tb-predict.resolved{fill:var(--accent);font-weight:600}.board-titleblock .tb-drawnby{fill:var(--ink-faint);letter-spacing:.12em;font-size:8px}.board-token rect{fill:#d9e7f514;stroke:var(--line-strong);stroke-width:1.2px;transition:fill .3s,stroke .3s}.board-token text{fill:var(--ink);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:middle;font-size:15px}.board-token.active rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.6px}.board-token.active text{fill:var(--ink-strong)}.board-token.masked rect{fill:#0000;stroke:var(--line);stroke-dasharray:3 4}.board-token.masked text{fill:var(--ink-faint)}.board-token .board-token-note{fill:var(--accent);letter-spacing:.06em;font-size:10px}.board-token .board-token-note.muted,.board-ghost .board-token-note.muted{fill:var(--ink-faint);letter-spacing:.06em;font-size:10px}.board-mask-note{fill:var(--ink-faint);font-family:var(--font-mono);text-anchor:middle;font-size:11px}.board-ghost rect{fill:#0000;stroke:var(--ink-faint);stroke-width:1.2px;stroke-dasharray:5 5}.board-ghost text{fill:var(--ink-faint);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:middle;font-size:15px}.board-ghost.resolved rect{fill:var(--accent-soft);stroke:var(--accent);stroke-dasharray:none}.board-ghost.resolved>text{fill:var(--accent)}.board-ghost.resolved{animation:.5s forwards token-activate}.board-token-pulse{fill:none;stroke:var(--accent);stroke-width:1.5px;opacity:0;animation:1.8s ease-out infinite pulse-ring}.board-notes-label{fill:var(--accent);font-family:var(--font-mono);letter-spacing:.18em;font-size:10px;font-weight:600}.board-notes-formula{fill:var(--ink-dim);font-family:var(--font-mono);letter-spacing:.04em;font-size:12px}.board-stack-note rect{fill:none;stroke:var(--ink-faint);stroke-width:1px}.board-stack-note text{fill:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.board-legend-item{cursor:pointer;transition:opacity .25s}.board-legend-item.dimmed{opacity:.3}.board-legend-hint{fill:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.head-dim{opacity:.1;transition:opacity .3s}.board-specimen-title{fill:var(--ink-strong);font-family:var(--font-display);letter-spacing:.05em;text-anchor:middle;text-transform:uppercase;font-weight:500}.board-specimen-sub{fill:var(--ink-dim);font-family:var(--font-mono);letter-spacing:.18em;text-anchor:middle;text-transform:uppercase;font-size:11px}.board-specimen-leader{stroke:var(--ink-faint);stroke-width:1px;stroke-dasharray:2 6}.board-vector-shell{fill:#0a1b31cc;stroke:var(--line)}.board-position-wave{fill:none;stroke:var(--accent);stroke-width:1.6px}.board-lane-label,.board-stage-caption,.board-head-label,.board-head-output,.board-merge-label{fill:var(--ink-dim);font-family:var(--font-mono);letter-spacing:.04em;font-size:11px}.board-lane-label{text-anchor:end;font-weight:600}.board-lane-label.query{fill:var(--accent)}.board-lane-label.key{fill:var(--ice)}.board-lane-label.value{fill:var(--rose)}.board-flow-line{fill:none;stroke:var(--line-strong);stroke-width:1.5px}.board-flow-line.subtle{stroke:var(--line);stroke-width:1px}.board-attention-path{fill:none;stroke-linecap:round;opacity:.8;transition:opacity .45s,stroke-width .45s;animation:.5s forwards fade-in}.board-attention-path.scoring{animation:1.4s linear infinite dash-flow}.board-attention-path.value-flow{opacity:.4}.board-attention-label{font-family:var(--font-mono);text-anchor:middle;opacity:0;font-size:11px;font-weight:600;animation:.5s .2s forwards fade-in-up}.board-value-particle{opacity:.9;stroke:#f2f7fd99;stroke-width:1px}.board-flow-lines{pointer-events:none}.board-flow-line.animated{fill:none;stroke:var(--ink-faint);stroke-width:1.5px;stroke-dasharray:8 12;opacity:.2;transition:opacity .4s,stroke .4s}.board-flow-line.animated.active{stroke:var(--accent);opacity:.9;animation:1.4s linear infinite flow-travel}.board-flow-line.animated.past{opacity:.08}.stage-group{animation:.5s cubic-bezier(.16,1,.3,1) forwards stage-in}.board-vocab-row text{fill:var(--ink);font-family:var(--font-mono);font-size:13px}.board-vocab-row rect{fill:#6fa8dc80;transition:width .4s}.board-vocab-row .board-vocab-value{fill:var(--ink-dim);font-size:11px}.board-vocab-row.winner text,.board-vocab-row.winner rect,.board-vocab-row.winner .board-vocab-value{fill:var(--accent)}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes stage-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes token-activate{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes pulse-ring{0%{opacity:.5;r:19px;stroke-width:1.5px}70%{opacity:0;r:32px;stroke-width:.5px}to{opacity:0;r:32px;stroke-width:.5px}}@keyframes dash-flow{to{stroke-dashoffset:-21px}}@keyframes flow-travel{0%{stroke-dashoffset:20px;opacity:.4}50%{opacity:1}to{stroke-dashoffset:-20px;opacity:.4}}.animate-fade-in{animation:.5s cubic-bezier(.16,1,.3,1) forwards fade-in}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=980px){.app-frame{height:auto;min-height:100dvh}.workspace{grid-template-columns:1fr}.margin-notes{grid-template-columns:1fr 1fr;align-items:start;display:grid;overflow:visible}.transport{grid-template-columns:1fr;justify-items:stretch}.controls{justify-content:center}.masthead-controls{align-items:flex-start}}@media (width<=640px){.margin-notes{grid-template-columns:1fr}.timeline{grid-template-columns:repeat(5,minmax(0,1fr))}.controls button{flex:auto;justify-content:center}}
