@font-face{font-family:'STIX Two Text';src:url('./fonts/stix-two-text-roman.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'STIX Two Text';src:url('./fonts/stix-two-text-italic.ttf') format('truetype');font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('./fonts/source-serif-4-roman.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('./fonts/source-serif-4-italic.ttf') format('truetype');font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:'Kalam';src:url('./fonts/kalam-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('./fonts/source-sans-3-400-normal.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('./fonts/source-sans-3-600-normal.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
:root{--paper:#fff;--ink:#22292a;--muted:#586468;--teal:#285d63;--teal-light:#eef5f5;--line:#dce3e1;--orange:#ad6949;--serif:'STIX Two Text','Times New Roman',serif;--notes:'Source Serif 4',var(--serif);--sans:Arial,Helvetica,sans-serif;--diagram-sans:'Source Sans 3',var(--sans);--mono:'SFMono-Regular',Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;padding:7px 12px;font-size:14px}button:hover{background:var(--teal-light);border-color:#a2b9bc}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible,svg:focus-visible{outline:2px solid var(--teal);outline-offset:3px}input{min-width:0;color:var(--ink)}[hidden]{display:none!important}.masthead{height:66px;padding:0 38px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:14px}.wordmark{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--ink)}.brand-mark{font:italic 27px var(--serif);letter-spacing:-2px}.brand-mark span{padding:0 4px;color:var(--teal)}.edition{font:italic 16px var(--serif);color:var(--muted)}.local-status{font-size:12px;display:flex;align-items:center;gap:8px}.local-status i{width:6px;height:6px;border-radius:50%;background:#527e70}main{max-width:1800px;margin:auto;padding:31px 38px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:600;color:var(--teal)}h1{font:normal 48px/1.12 var(--serif);letter-spacing:-1.6px;margin:8px 0}.title-dot{color:var(--teal)}.intro p{color:var(--muted);margin:9px 0 0;font:17px var(--serif)}.model-facts{display:flex;gap:32px;text-align:left}.model-facts strong{display:block;font:28px var(--serif)}.model-facts span{font-size:12px;color:var(--muted)}.workspace{border:1px solid var(--line);border-radius:5px;overflow:hidden}.toolbar{min-height:49px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}#breadcrumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:#9ca5a3}#breadcrumbs button{border:0;padding:3px 5px;border-radius:2px;color:var(--muted);font-size:13px}#breadcrumbs button:last-child{color:var(--teal);font-weight:600}.toolbar-actions{display:flex;gap:6px;flex-shrink:0}.toolbar-actions button{border:0;font-size:12px}.work-area{display:grid;grid-template-columns:minmax(0,1fr) 410px;min-height:530px}.canvas-wrap{position:relative;min-height:530px;overflow:hidden;background-image:radial-gradient(#d9e1df .65px,transparent .65px);background-size:18px 18px}.canvas-caption{position:absolute;left:25px;top:23px;display:flex;flex-direction:column;gap:5px;pointer-events:none;z-index:1}.canvas-caption span:first-child{color:var(--muted);font-size:10px;letter-spacing:1.5px}#canvas{width:100%;height:100%;position:absolute;inset:0;touch-action:auto;cursor:default;user-select:text;-webkit-user-select:text}.canvas-bottom{position:absolute;bottom:13px;left:22px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}.gesture-hint{font-size:11px;color:#818b88}.gesture-hint span{padding:0 5px}.zoom-controls{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:4px;pointer-events:auto}.zoom-controls button{border:0;background:transparent;font-size:18px;padding:1px 10px}.zoom-controls output{font:11px var(--mono);min-width:43px;text-align:center}#minimap{position:absolute;bottom:49px;right:18px;display:flex;gap:2px;padding:5px;background:#ffffffd9}#minimap button{padding:0;width:5px;height:15px;border-radius:0;border:1px solid #b3bdbb}#minimap button.active{background:var(--teal);border-color:var(--teal)}.inspector{border-left:1px solid var(--line);padding:28px 24px;display:flex;flex-direction:column;background:#fdfefd}.inspector h2{font:26px/1.2 var(--serif);margin:0 0 14px}.inspector>p,.inspector>#selection-description{font:16px/1.6 var(--serif);color:#586867;margin:0 0 20px}.detail-shape{padding:12px 0;border-top:1px solid var(--line);font:13px/1.6 var(--mono);overflow-wrap:anywhere}.detail-shape small{display:block;font:11px var(--sans);color:var(--muted);margin-bottom:4px}.detail-note{font-size:12px;color:var(--muted);line-height:1.6}.inspector button{width:100%;margin:5px 0;text-align:left;font-size:12px}.inspector .primary{color:var(--teal);border-color:#b7cccf;background:#f7fbfb}.legend{margin-top:auto;padding-top:28px}.legend h3{font:italic 15px var(--serif);margin:0 0 11px}.legend>div{font-size:11px;display:flex;align-items:center;gap:9px;margin:9px 0;color:#6b7876}.legend i{display:inline-block;width:20px;height:14px;border:1px solid #79817e;flex-shrink:0}.legend-grid{background:repeating-linear-gradient(90deg,transparent 0 4px,#a4afac 4px 5px),repeating-linear-gradient(0deg,transparent 0 4px,#a4afac 4px 5px)}.legend-grid.activation{border-color:#83aeb5;background:repeating-linear-gradient(90deg,#edf5f5 0 4px,#9cbfc5 4px 5px),repeating-linear-gradient(0deg,transparent 0 4px,#9cbfc5 4px 5px)}.legend p{font-size:10px;color:#8a9490;margin-top:15px}.context-bar{display:flex;align-items:center;gap:14px;min-height:66px;padding:13px 20px;border-top:1px solid var(--line);flex-wrap:wrap}.context-bar>label{font:italic 14px var(--serif);color:var(--muted)}#prompt-form{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}#prompt{border:0;padding:7px 10px;width:190px;font-size:12px;background:#fafcfb}#prompt-form button{border:0;border-left:1px solid var(--line);border-radius:0;font-size:11px;padding:6px 9px}.tokens{display:flex;gap:4px;flex-wrap:wrap;flex:1}.token{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #cbd9d9;background:#f5f9f8;color:var(--teal);font:14px var(--serif);border-radius:2px}.token small{font:9px var(--mono);color:#819491}.token.selected{background:#dcecee;border-color:var(--teal)}#token-count{font:11px var(--mono);color:var(--muted)}.code-drawer{border-top:1px solid var(--line)}.code-handle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:0;padding:13px 20px;font-size:12px;background:#f9fbfa}.code-glyph{color:var(--teal);font:14px var(--mono);margin-right:9px}#code-file{margin-left:20px;color:#8c9692;font:11px var(--mono)}.code-heading{display:flex;gap:14px;justify-content:space-between;padding:14px 22px;align-items:flex-start;border-top:1px solid var(--line);font-size:12px}.code-heading strong{font:13px var(--mono)}.code-heading p{margin:4px 0 0;color:var(--muted)}.code-heading label{white-space:nowrap;display:flex;align-items:center;gap:6px;font-size:11px}.code-heading button{padding:0 8px;border:0;font-size:21px}#source-code{max-height:290px;overflow:auto;margin:0;padding:10px 0 20px;background:#fafcfb;font:12px/1.9 var(--mono);tab-size:4}.code-line{display:block;padding:0 25px;min-width:max-content;min-height:22px;border-left:3px solid transparent}.code-line.highlight{background:#e8f2f2;border-left-color:var(--teal)}.line-number{display:inline-block;width:40px;color:#9ca9a4;user-select:none}.py-comment{color:#82948c;font-style:italic}.py-keyword{color:#945b72}.py-string{color:#3b7977}.py-number{color:#b27742}footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#87918d;padding:18px 0}footer span span{margin:0 10px;color:#b1bab6}.canvas-error{position:absolute;inset:140px 40px auto;padding:25px;background:white;border:1px solid #d5b5a5;color:#835438;font:16px var(--serif)}
/* Diagram typography stays crisp; only the housing outlines are irregular. */
.diagram-title{font-family:var(--serif);font-style:italic;fill:var(--ink)}.diagram-label{font-family:var(--sans);fill:var(--ink)}.diagram-note{font-family:var(--serif);font-style:italic;fill:#6a7d78}.diagram-shape{font-family:var(--mono);fill:#78908c}.diagram-arrow{fill:none;stroke:#7e928d;stroke-width:1.2;marker-end:url(#arrow)}.diagram-residual{fill:none;stroke:#7d9fa2;stroke-width:1.3;marker-end:url(#arrow)}.diagram-grid{fill:#fff;stroke:#8f9b94;stroke-width:1}.diagram-grid.act{fill:#f0f7f7;stroke:#91b2b5}.diagram-node{cursor:pointer}.diagram-node .housing{fill:#fff;stroke:#576e66;stroke-width:1.15}.diagram-node:hover .housing,.diagram-node:focus .housing{fill:#eff7f6;stroke:#347784;stroke-width:1.7}.diagram-node:focus{outline:none}.diagram-node.selected .housing{fill:#f0f7f6;stroke:var(--teal);stroke-width:1.7}.node-code{opacity:0;fill:var(--teal);font-family:var(--mono);cursor:pointer}.diagram-node:hover .node-code,.diagram-node:focus .node-code,.diagram-node.selected .node-code{opacity:1}.diagram-muted{fill:#9da9a3}.diagram-teal{fill:var(--teal)}
dialog{width:min(990px,calc(100vw - 36px));max-height:90vh;overflow:auto;border:1px solid #b8c9c5;border-radius:6px;padding:28px 32px;color:var(--ink);box-shadow:0 20px 100px #263e3829}dialog::backdrop{background:#23393355;backdrop-filter:blur(3px)}.weight-header{display:flex;justify-content:space-between;align-items:start}.weight-header h2{font:34px var(--serif);margin:8px 0}.icon-button{border:0;font-size:26px;padding:0 8px}#weight-description{font:15px/1.5 var(--mono);overflow-wrap:anywhere;color:var(--muted)}.weight-meta{display:flex;gap:22px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:12px var(--mono)}.weight-views{display:grid;grid-template-columns:1fr 1.25fr;gap:32px}.weight-views h3{font:19px var(--serif);margin:22px 0 14px}.weight-views h3 small{display:block;font:11px var(--sans);color:var(--muted);margin-top:5px}.weight-views canvas{display:block;width:100%;border:1px solid #cbdad6;image-rendering:pixelated;cursor:crosshair}#weight-overview{aspect-ratio:1}.patch-controls{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:12px}.patch-controls label{display:flex;gap:6px;align-items:center}.patch-controls input{width:70px;padding:5px;border:1px solid var(--line);border-radius:3px;font:12px var(--mono)}.patch-controls button{font-size:12px;white-space:nowrap}#cell-value{display:block;margin-top:9px;min-height:20px;color:var(--teal);font:12px var(--mono)}.small-note{font-size:11px;color:var(--muted);line-height:1.6}.weight-scale{display:flex;align-items:center;gap:7px;font:11px var(--mono);flex-wrap:wrap;margin:20px 0}.weight-scale>div{width:80px;height:9px;background:linear-gradient(90deg,#b87556,#fff)}.weight-scale>div:nth-of-type(2){background:linear-gradient(90deg,#fff,#2b7881)}.weight-scale p{margin:0 0 0 12px;color:var(--muted);font-size:11px}.weight-scale p span{margin:0 5px}#weight-status{font:16px var(--serif);color:var(--muted);padding:12px 0}
@media(min-width:1500px){.work-area,.canvas-wrap{min-height:600px}.inspector{padding:33px 28px}.work-area{grid-template-columns:minmax(0,1fr) 435px}}
@media(max-width:1000px){main{padding:24px 20px 0}.masthead{padding:0 20px}.model-facts{gap:20px}.work-area{grid-template-columns:minmax(0,1fr) 235px}.inspector{padding:25px 18px}.gesture-hint{max-width:200px;font-size:10px}.context-bar{gap:10px}.intro{margin-bottom:22px}.weight-views{gap:20px}}
@media(max-width:720px){.masthead{height:54px;padding:0 16px}.edition{display:none}main{padding:24px 12px 0}.intro{align-items:flex-start;padding:0 6px;gap:15px}h1{font-size:36px}.intro p{font-size:15px;max-width:200px}.model-facts{gap:12px;padding-top:26px}.model-facts strong{font-size:22px}.model-facts span{font-size:10px}.model-facts>div:last-child{display:none}.eyebrow{font-size:9px}.work-area{display:flex;flex-direction:column}.canvas-wrap{min-height:410px}.inspector{border-left:0;border-top:1px solid var(--line);padding:18px 22px}.inspector h2{font-size:24px;margin:0 0 8px}.inspector>p,.inspector>#selection-description{font-size:15px;margin-bottom:8px}.legend{display:none}.detail-shape{display:inline-block;border:0;padding:6px 16px 6px 0}.inspector button{width:auto;margin-right:8px}.toolbar{padding:8px}.toolbar-actions{gap:0}.toolbar-actions button{font-size:11px;padding:5px}#breadcrumbs{gap:1px}#breadcrumbs button{font-size:11px}.canvas-caption{left:18px}.gesture-hint{max-width:180px;font-size:9px}.context-bar{padding:13px}.context-bar>label{width:100%}#prompt-form{width:100%}#prompt{flex:1;width:100%}.tokens{min-width:75%;gap:4px}.code-heading{padding:12px;flex-wrap:wrap}#code-file{margin-left:10px}.code-heading label{font-size:10px}footer{font-size:10px;padding:14px 6px}footer>span:last-child{display:none}dialog{padding:22px 18px}.weight-views{grid-template-columns:1fr}.weight-views canvas{max-width:420px;margin:auto}.weight-meta{gap:12px;flex-wrap:wrap}.patch-controls{justify-content:space-between}.weight-scale p{margin:6px 0}.weight-header h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:root{--hand:'Kalam',cursive}
.housing{fill:#fff;stroke:#576e66;stroke-width:1.15}
.diagram-node:focus-within .node-code{opacity:1}
.node-action{opacity:0;fill:var(--teal);cursor:pointer}
.diagram-node[data-has-weight]>.node-action{opacity:.6}
.diagram-node:hover>.node-action,.diagram-node:focus-within>.node-action,.diagram-node.selected>.node-action{opacity:1}
.node-weight circle,.node-weight path{fill:none;stroke:var(--teal);stroke-width:1.8;stroke-linecap:round}
.node-action:focus{outline:none}
.node-action:focus-visible>rect{stroke:var(--teal);stroke-width:1}
.node-tooltip{position:fixed;z-index:9;pointer-events:none;padding:5px 9px;border:1px solid #aec5c4;border-radius:3px;background:#fff;color:var(--teal);box-shadow:0 3px 10px #263e3814;font:12px/1.4 var(--sans);white-space:pre-line;max-width:min(340px,calc(100vw - 16px))}
.connection-readout{position:absolute;z-index:3;right:22px;top:8px;width:330px;max-width:calc(100% - 44px);padding:10px 13px;border:1px solid #aec5c4;border-radius:3px;background:#fff;box-shadow:0 3px 10px #263e3814;font:13px/1.5 var(--sans);color:var(--ink);pointer-events:none}
.connection-readout-content>div{display:flex;align-items:baseline;gap:15px;flex-wrap:wrap}
.connection-readout [data-flow-name]{font-weight:600;color:var(--teal)}
.connection-readout [data-flow-shape]{font:13px var(--mono);color:var(--teal)}
.connection-readout p{margin:3px 0 0;color:var(--muted)}
.connection-readout[data-active="false"]{visibility:hidden}
/* A visible stroke is defined in the SVG for WebKit and older browsers.
   Where supported, match the arrowhead to its line's color. */
@supports (stroke:context-stroke){.diagram-arrowhead{stroke:context-stroke}}
.diagram-residual.return-direction{marker-end:url(#return-arrow)}
.tensor-flow{outline:none;cursor:help}
.flow-guide{fill:none;stroke:none;pointer-events:none}
.flow-highlight{fill:none;stroke:#236976;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none}
.flow-hit{fill:none;stroke:transparent;stroke-width:12;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:help}
.flow-focus-bounds{fill:transparent;stroke:none;pointer-events:none}
.flow-active>.flow-highlight{opacity:1}
.flow-bundle>.flow-highlight{stroke-width:1.2}
.flow-endpoint>.housing,.flow-endpoint>circle,.flow-endpoint .diagram-grid,.flow-endpoint .attention-cell rect{stroke:#236976;stroke-width:2;vector-effect:non-scaling-stroke}
.flow-boundary{outline:none;cursor:help}
.flow-boundary-label{font-family:var(--mono);fill:#637e80}
.flow-boundary:focus-visible .flow-boundary-label{text-decoration:underline;text-underline-offset:4px}
.dimension-label{cursor:help;outline:none}.dimension-label:focus-visible>rect{stroke:var(--teal);stroke-width:1}
.diagram-node[data-enter]{cursor:zoom-in}
.detail-axes{margin:5px 0 0;font:12px/1.45 var(--sans);color:var(--muted)}
.attention-preview .housing{stroke:#567c7c;stroke-width:1.35}
.attention-preview .diagram-wire,.attention-preview .diagram-arrow,.attention-preview .diagram-contribution{stroke:#668b89;stroke-width:1.25}
.work-area{height:clamp(490px,62vh,680px);min-height:0}.canvas-wrap{min-height:0}.inspector{min-height:0;overflow:auto}
@media(min-width:721px){.work-area.feedforward-view{height:clamp(600px,75vh,820px)}}
.diagram-title{font-family:var(--hand);font-style:normal}.diagram-note{font-family:var(--hand);font-style:normal}
.inspector button{font-size:14px}.inspector .detail-note{font-size:13px}.legend>div{font-size:12px}.legend p{font-size:11px}
.code-drawer.open{background:white}
.code-drawer.open #source-code{max-height:31vh}.code-drawer.open .code-heading{background:white}
@media(max-width:720px){.code-drawer.open #source-code{max-height:34vh}.inspector button{font-size:13px}}
@media(max-width:720px){.work-area{height:auto}.canvas-wrap{height:410px;flex-shrink:0}.inspector{overflow:visible}}

/* One residual stream stays aligned while a block unfolds around it. */
.axis-break{fill:none;stroke:#6f847f;stroke-width:1.4}
.residual-ribbon{pointer-events:none}
.stream-band{fill:none;stroke:#6aadb3;stroke-opacity:.2;stroke-width:13}
.stream-line{fill:none;stroke:var(--teal);stroke-width:2.3;marker-end:url(#arrow)}
.stream-tap{fill:var(--teal)}
.diagram-contribution{fill:none;stroke:var(--teal);stroke-width:1.8;marker-end:url(#arrow)}
#weight-overview{max-width:100%;height:auto;margin-inline:auto}
#weight-proportions{min-height:36px;margin-top:-4px}
.diagram-wire{fill:none;stroke:#9aaea9;stroke-width:1.2}
.diagram-bracket{fill:none;stroke:#7faaa9;stroke-width:1.2}
.gqa-kv-box{fill:#f7fbfa;stroke:#8ba9a7;stroke-width:1.4;stroke-dasharray:1 6;stroke-linecap:round}
.diagram-node:hover .gqa-kv-box,.diagram-node:focus .gqa-kv-box,.diagram-node.selected .gqa-kv-box{stroke:var(--teal);stroke-width:1.8}
.diagram-collection{fill:none;stroke:var(--teal);stroke-width:1.5}
.silu-sketch{pointer-events:none}.silu-axis{fill:none;stroke:#819193;stroke-width:.9;stroke-linecap:round}.silu-curve{fill:none;stroke:var(--teal);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.input-tap{fill:#78928c}
.diagram-math{font-family:var(--sans);font-style:normal;fill:var(--ink)}
.attention-cell rect{fill:#eef6f6;stroke:#99bbbe;stroke-width:1}
.attention-cell.masked rect{fill:#f1eeea;stroke:#c6beb5}
.attention-cell.masked .diagram-math{fill:#89796c}
.attention-cell:hover rect{stroke:var(--teal);stroke-width:2}
.activation-dot{fill:#527a7f}
.example-next{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.example-next .token{background:#eef6f6;border-color:#aac5c8}
@media(max-width:1100px){.toolbar{flex-wrap:wrap}}

/* Match the primer's pen lettering, precise mathematics, and marginal type. */
.diagram-label{font-family:var(--diagram-sans)}
.diagram-math{font-family:var(--serif);font-style:normal}
.diagram-delta{font-family:var(--serif);font-style:normal}
.diagram-shape{fill:#586f72}
.diagram-arrow,.diagram-wire{stroke:#737b7c;stroke-width:1.3}
.housing,.diagram-node .housing{stroke:#586468;stroke-width:1.3}
.diagram-grid{stroke:#737b7c}.diagram-grid.act{stroke:#86a7aa}
.attention-preview .housing{stroke:#465f62}
.attention-preview .diagram-wire,.attention-preview .diagram-arrow{stroke:#586f72}
.inspector .detail-note,.legend h3{font-family:var(--notes)}
.weight-plot{--plot-width:480px;width:min(100%,calc(var(--plot-width) + 65px));margin:0 auto;display:grid;grid-template-columns:18px 42px minmax(0,1fr);grid-template-rows:auto minmax(0,auto) auto;gap:5px 3px;align-items:stretch}
.plot-column-label{grid-column:3;grid-row:1;text-align:center;font:13px/1.4 var(--diagram-sans);color:var(--teal)}
.plot-row-label{grid-column:1;grid-row:2;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font:13px/1.4 var(--diagram-sans);color:var(--teal)}
.plot-row-ticks{grid-column:2;grid-row:2;display:flex;flex-direction:column;justify-content:space-between;text-align:right;padding-right:3px}
.plot-column-ticks{grid-column:3;grid-row:3;display:flex;justify-content:space-between}
.plot-row-ticks,.plot-column-ticks{color:var(--muted);font:9px/1.3 var(--mono)}
.weight-plot canvas{grid-column:3;grid-row:2;width:100%!important;max-width:100%;margin:0!important}
.weight-plot.single-row .plot-row-label{grid-column:1/-1;grid-row:4;writing-mode:horizontal-tb;transform:none;text-align:right}
#window-marker-note{min-height:34px;color:var(--ink)}

/* Captions belong to the view and remain visible when a node is selected. */
.token-card rect{fill:#f0f6f5;stroke:#9bb6b5;stroke-width:1.1}
.token-card .diagram-token-id{font:12px var(--diagram-sans);fill:#687f7e}
#canvas .block-prose{font:22px/1.35 var(--notes);color:var(--ink);white-space:pre-line;overflow-wrap:break-word}
@media(min-width:721px){.work-area.expanded-block-view{height:clamp(600px,75vh,820px)}}
.copy-empty{display:none!important}

.sidebar-note{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;font:13px/1.55 var(--diagram-sans);color:var(--muted)}
.sidebar-note summary{cursor:pointer;color:var(--teal)}
.sidebar-note p{margin:9px 0 0}.sidebar-note code{font:11px var(--mono);overflow-wrap:anywhere}
.ff-bundle{fill:none;stroke:#718f93;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.ff-bundle.inside-operation{stroke-opacity:.6}

.feedforward-preview .housing{stroke:#586f72}
.feedforward-preview .diagram-wire{stroke:#718f93;stroke-width:1.1}
.attention-cell[data-score-row]{cursor:zoom-in;outline:none}
.score-layer .attention-cell[data-score-row]{cursor:pointer}
.attention-cell.score-related rect{fill:#dcebec}
.attention-cell.score-selected rect{fill:#b9d5d8;stroke:#285d63;stroke-width:2}
.attention-cell[data-score-row]:focus-visible rect{stroke:#285d63;stroke-width:3}
.score-vector-highlight{fill:#8fb7bc;fill-opacity:.3;stroke:#285d63;stroke-width:1.8;pointer-events:none}
.detail-note code{font:11px var(--mono);overflow-wrap:anywhere}

.parameter-summary{border-top:1px solid var(--line);padding:13px 0}
.parameter-summary>small{display:block;font:11px var(--sans);text-transform:uppercase;letter-spacing:.35px;color:var(--muted)}
.parameter-summary>strong{display:block;margin:5px 0 10px;font:23px var(--serif);font-variant-numeric:tabular-nums}
.parameter-storage{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:0;font:12px var(--sans)}
.parameter-storage dd{margin:0;font-variant-numeric:tabular-nums}
.parameter-breakdown{margin-top:12px;font:12px var(--sans)}
.parameter-breakdown summary{cursor:pointer;color:var(--teal)}
.parameter-breakdown dl{margin:10px 0}
.parameter-breakdown dl>div{display:flex;justify-content:space-between;gap:12px;margin:8px 0}
.parameter-breakdown dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.parameter-breakdown p{font:13px/1.5 var(--notes);color:var(--muted)}

/* Text can be copied except on elements that open a deeper diagram view. */
#canvas text{user-select:text;-webkit-user-select:text;cursor:text;pointer-events:auto}
#canvas [data-enter],#canvas [data-enter] *,
#canvas .head-layer [data-score-row],#canvas .head-layer [data-score-row] *{user-select:none;-webkit-user-select:none;cursor:zoom-in}
#canvas [data-group-summary],#canvas [data-group-summary] *{user-select:none;-webkit-user-select:none;cursor:pointer}
#canvas [aria-hidden="true"],#canvas [aria-hidden="true"] *{user-select:none;-webkit-user-select:none;pointer-events:none}
#canvas .node-action,#canvas .node-action *{user-select:none;-webkit-user-select:none;cursor:pointer}
#canvas .explore-hint,#canvas .explore-hint *{user-select:none;-webkit-user-select:none;pointer-events:none}
.explore-hint{fill:var(--teal)}
.explore-hint-arrow,.explore-hint-arrowhead{fill:none;stroke:#527a7c;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}

/* Authoring controls appear only in the local text-editing mode. */
#text-save-status{max-width:320px;font:12px/1.4 var(--diagram-sans);color:var(--muted)}
#save-text{color:var(--teal);background:var(--teal-light)}
#edit-text[aria-pressed="true"]{color:var(--teal);background:var(--teal-light)}
[data-copy]{white-space:pre-line}
[data-copy-blocks]{white-space:normal}
[data-copy-blocks]>p{margin:0;white-space:pre-line}
[data-copy-blocks]>p+p{margin-top:1.6em}
[data-copy-blocks]>ol{margin:.8em 0;padding-left:1.5em}
[data-copy-blocks]>ol:first-child{margin-top:0}
[data-copy-blocks]>ol:last-child{margin-bottom:0}
[data-copy-blocks] li{padding-left:.2em;white-space:pre-line}
[data-copy-blocks] li+li{margin-top:.45em}
svg [data-copy]{white-space:normal}
.editing-text [data-copy-editable="true"]{cursor:text;outline-offset:4px}
.editing-text [data-copy-editable="true"]:hover,.editing-text [data-copy-editable="true"]:focus-visible{outline:1px dashed #799fa3}
#canvas [data-copy-editable="true"],#canvas [data-copy-editable="true"] *{cursor:text;pointer-events:auto}
#text-editor{position:fixed;z-index:20;padding:0;background:#fff;border:1px solid #779da2;border-radius:3px;box-shadow:0 5px 24px #263e3829;max-width:calc(100vw - 24px)}
#text-editor textarea{display:block;width:100%;min-height:44px;padding:6px;border:0;border-radius:3px;background:#f9fcfc;color:var(--ink);resize:none;outline:0}
#text-editor p{margin:5px 10px;font:12px/1.4 var(--diagram-sans);color:var(--muted)}
#text-editor p:empty{display:none}
#text-editor .error{color:#973e27}
.text-editor-actions{display:flex;flex-wrap:wrap;gap:6px;padding:8px}
.text-editor-actions button{font:12px var(--diagram-sans);padding:6px 8px}
.text-editor-actions button:first-child{color:var(--teal);background:var(--teal-light)}
.text-editor-actions button:last-child{margin-left:auto}

/* Each authored line starts a paragraph; spacing is separate from blank lines
   in the editable introduction. */
.intro{display:block;margin-bottom:30px}
.intro-copy{max-width:1260px;margin:18px 0 0;font:17.5px/1.55 var(--serif);color:var(--ink);overflow-wrap:break-word;white-space:normal}
.intro .intro-copy p{max-width:none;margin:0;font:inherit;color:inherit;white-space:pre-line}
.intro .intro-copy p+p{margin-top:4px}
.model-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 24px;padding:12px 20px;border-bottom:1px solid var(--line)}
.model-summary-name{font:22px var(--serif);white-space:nowrap}
.mobile-layout .model-summary-name{display:none}
.model-facts{display:flex;flex-wrap:wrap;gap:12px 36px;padding:0;align-items:baseline}
.model-facts>div{display:flex;flex:0 0 auto;align-items:baseline;gap:8px}
.model-facts strong{display:inline;font:22px var(--serif)}
.model-facts span{font:12px var(--diagram-sans);color:var(--muted);white-space:nowrap}
.matrix-size-note{margin:0 0 0 auto;text-align:right;font:12px/1.4 var(--diagram-sans);color:var(--muted)}
.canvas-wrap{display:flex;flex-direction:column}
.canvas-top{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;gap:10px 24px;padding:16px 22px}
.canvas-top .canvas-caption{position:static;flex-shrink:0}
.canvas-top .legend{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:0 0 0 auto;padding:0}
.canvas-top .legend::before{content:"";position:absolute;inset:-8px -11px;border:1px solid var(--line);border-radius:3px;pointer-events:none}
.canvas-top .legend>div{gap:7px;margin:0;font:12px var(--diagram-sans)}
.diagram-surface{position:relative;flex:1;min-height:0;overflow:hidden}
main{padding-bottom:24px}
#code-note:empty{display:none}
.copy-link{color:var(--teal);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.copy-link:hover{color:#163c40}
svg .copy-link{fill:var(--teal)}
.copy-code{display:inline-block;padding:0 4px;margin:0 2px;border:1px solid #c4d6d7;border-radius:3px;background:#f6fafa;color:var(--teal);font:14px/1.35 var(--mono);vertical-align:baseline;white-space:nowrap;cursor:pointer}
.inspector .copy-code{width:auto;margin:0 2px;font:13px/1.35 var(--mono)}
svg .copy-code{fill:var(--teal);font-family:var(--mono);font-size:1em}

.inline-note-trigger{display:inline;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;line-height:inherit;text-decoration:underline dotted #718f93;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.inline-note-trigger:hover,.inline-note-trigger[aria-expanded="true"]{background:none;color:var(--teal);text-decoration-color:var(--teal)}
.inline-note{position:fixed;z-index:12;width:360px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;padding:15px 18px;border:1px solid #aec5c4;border-radius:4px;background:var(--paper);color:var(--ink);box-shadow:0 4px 18px #263e381a;font:16px/1.5 var(--serif)}
.inline-note [data-copy]{margin:0}

/* The picker shares the page header, keeping the diagram controls local. */
.masthead{justify-content:space-between;gap:20px}
.model-picker{display:flex;align-items:center;gap:10px;font:15px "Source Sans 3",sans-serif}
.model-picker select{font:inherit;color:var(--ink,#243537);background:#fff;border:1px solid #bdcdca;border-radius:4px;padding:5px 28px 5px 9px;max-width:270px}
#model-switch-status{font-size:13px;max-width:240px}
:is(.hybrid-model,.kimi-model,.glm-model,.deepseek-model,.gemma-model) #minimap .delta-block{background:#e9dfca}
:is(.hybrid-model,.kimi-model,.glm-model,.deepseek-model,.gemma-model) #minimap .full-attention-block{background:#a9ceca}
:is(.hybrid-model,.kimi-model,.glm-model,.deepseek-model,.gemma-model) #minimap .active{outline:2px solid #356d70;outline-offset:2px}

.moe-control{fill:none;stroke:#8e9276;stroke-width:1.1;stroke-dasharray:4 3;marker-end:url(#arrow)}
.moe-control-label{display:flex;flex-direction:column;gap:5px;margin-top:10px;font:14px var(--sans)}
.moe-control-label select{font:inherit;padding:7px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px}
.moe-bank-cell .housing{stroke-width:.75}
.moe-bank-cell.routed .housing{stroke:#457b75;stroke-width:1.3}

@media(min-width:721px){:is(.kimi-model,.glm-model) .work-area{height:clamp(720px,82vh,950px)}:is(.kimi-model,.glm-model) .work-area:is(.kimi-routing-view,.kimi-depth-view){height:1000px}}
:is(.kimi-model,.glm-model) #minimap{bottom:15px}

.glm-model .residual-ribbon .stream-band{stroke-width:7px}

@media(min-width:721px){.gpt2-model .work-area{height:clamp(720px,82vh,950px)}}

@media(min-width:721px){.mamba-model .work-area{height:clamp(720px,82vh,950px)}}

.deepseek-model .work-area { height: clamp(720px, 82vh, 950px); }

.gemma-model .work-area { height: clamp(720px, 82vh, 950px); }
/* Larger stacks need enough vertical room for readable heads and routing labels. */
@media(min-width:721px){:is(.hybrid-model,.moe-model) .work-area{height:clamp(720px,82vh,950px)}}
.glm-selection-group{fill:none;stroke:#bccdca;stroke-width:1;stroke-dasharray:3 6;pointer-events:none}

#example-select,.sample-patch-picker select{font:12px var(--sans);color:var(--ink);background:#fafcfb;border:1px solid var(--line);border-radius:4px;padding:7px 10px;max-width:100%}
.sample-patch-picker{display:flex;align-items:center;gap:10px;font:12px var(--sans);margin:10px 0 16px}.sampled-weights #weight-overview{cursor:default}
#example-select:focus-visible,.sample-patch-picker select:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* The phone explorer keeps the original drawing and scrolls horizontally. */
body[data-app-state]:not([data-app-state="ready"])>main{visibility:hidden}
body[data-app-state]:not([data-app-state="ready"])>.masthead .model-picker{visibility:hidden}
#startup-status{position:absolute;margin:28px 38px;color:var(--muted);font:16px/1.5 var(--sans);max-width:calc(100% - 76px)}
body[data-app-state="ready"]>#startup-status{display:none}
@media(max-width:1000px),(max-height:550px) and (pointer:coarse){
  body[data-app-state]:not([data-app-state="ready"])>.masthead{height:auto;min-height:54px;padding:12px 16px}
  body[data-app-state]:not([data-app-state="ready"])>.masthead .model-picker{display:none}
  #startup-status{margin:24px 16px;max-width:calc(100% - 32px)}
}
#mobile-stage{display:contents}
.mobile-only{display:none}
/* All source rows share the longest line's width, including their highlights. */
#source-code{display:grid;grid-template-columns:minmax(max-content,1fr)}
#source-code.wrap{white-space:pre-wrap;overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr)}
/* Phone text inflation must not enlarge individual source lines independently. */
#source-code{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#source-code.wrap .code-line{min-width:0;padding-left:65px;position:relative}
#source-code.wrap .line-number{position:absolute;left:25px}
.mobile-layout{overflow-wrap:anywhere}
.mobile-layout main{padding:20px 12px 24px;max-width:100%}
.mobile-layout .masthead{height:auto;min-height:54px;padding:12px 16px;gap:8px}
.mobile-layout .wordmark{min-width:0}
.mobile-layout .intro{display:block;margin-bottom:24px;padding:0 4px}
.mobile-layout h1{font-size:36px;letter-spacing:-1px}
.mobile-layout .intro .intro-copy{width:100%;max-width:none;font-size:17px}
.mobile-layout .intro .intro-copy p{max-width:none;font-size:inherit}
.mobile-layout .mobile-only{display:block}
.mobile-layout button,.mobile-layout select{min-height:44px;touch-action:manipulation}
.mobile-layout .mobile-jump{margin:16px 0;width:100%;color:var(--teal);background:#f3f8f7}
.mobile-layout .mobile-intro-end{margin-top:24px}
.mobile-layout .workspace{overflow:visible;min-width:0}
.mobile-layout .toolbar,.mobile-layout .canvas-top,.mobile-layout .canvas-bottom,.mobile-layout #minimap{display:none}
.mobile-layout .work-area{display:flex;flex-direction:column;height:auto!important;min-height:0}
/* Keep fitting stable while phone browser controls expand or retract on scroll. */
.mobile-layout #mobile-stage{display:flex;flex-direction:column;height:calc(max(510px,100svh - 165px) - 57px);min-width:0;position:relative;scroll-margin-top:57px}
.mobile-layout .canvas-wrap{height:auto;flex:1;min-height:80px;border-radius:0;background:none}
.mobile-layout .diagram-surface{flex:1;min-height:80px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#94b5b0 #f3f7f5;touch-action:pan-x pan-y}
.mobile-layout #canvas{position:relative;inset:auto;display:block;height:100%;max-width:none;touch-action:pan-x pan-y}
.mobile-layout .node-action{display:none}
.mobile-layout .flow-hit{stroke-width:24}
.mobile-layout .canvas-wrap #connection-readout{display:none}
.mobile-layout .mobile-toolbar{display:flex;height:57px;min-height:57px;align-items:center;gap:5px;padding:6px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:white;box-shadow:0 2px 5px #263d3510}
.mobile-toolbar>button{padding:6px;min-width:44px;border:0;font-size:12px;flex-shrink:0}
.mobile-toolbar>[data-mobile-back]{font-size:13px}
.mobile-toolbar>[data-mobile-tools]{font-size:23px}
.mobile-toolbar .mobile-code{font:16px var(--mono);color:var(--teal);width:44px;padding-inline:0}
.mobile-location{flex:1;min-width:0;margin-left:6px;line-height:1.2}
.mobile-location small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px/1.5 var(--sans);color:var(--muted)}
.mobile-location strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:18px/1.2 var(--serif)}
.mobile-location[data-level="block"] strong{white-space:normal;font-size:14px;line-height:16px}
.mobile-menu{position:absolute;left:8px;right:8px;top:100%;max-height:70dvh;overflow:auto;background:white;border:1px solid #a9c2bc;padding:12px;border-radius:4px;box-shadow:0 6px 18px #243b3520}
.mobile-menu>strong{display:block;font:22px var(--serif);margin-bottom:12px}
.mobile-menu nav button,.mobile-menu>button{display:block;width:100%;text-align:left;margin:4px 0}
.mobile-menu label{display:flex;align-items:center;gap:10px;font-size:14px;min-width:0;margin:8px 0}
#mobile-path>label{display:block}
[data-mobile-block-label]{display:block;margin-bottom:6px}
.mobile-menu select{width:100%;min-width:0;max-width:100%;font-size:16px;padding:6px;border:1px solid var(--line);background:white;border-radius:4px}
.mobile-menu .model-picker{flex-wrap:wrap}
.mobile-menu .model-picker select{flex:1}
.mobile-menu #model-switch-status{max-width:100%}
.mobile-layout .mobile-menu .legend{display:flex;flex-direction:column;align-items:start;gap:7px;padding:12px 0 0;border:0;margin:0}
.mobile-layout .mobile-menu .legend>div{margin:0;font-size:12px}
.mobile-layout .mobile-menu .model-summary{display:block;padding:12px 0;border-top:1px solid var(--line);margin-top:12px}
.mobile-layout .mobile-menu .model-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
.mobile-layout .mobile-menu .model-facts>div{display:block}
.mobile-layout .mobile-menu .model-facts strong{display:block;font-size:24px}
.mobile-layout .mobile-menu .model-facts span{display:block;font-size:11px}
.mobile-layout .mobile-menu .matrix-size-note{text-align:left;max-width:none;margin-top:12px}
.mobile-layout .mobile-overview{padding:6px 10px;background:#f7faf9;border-bottom:1px solid var(--line);flex-shrink:0}
.mobile-overview-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font:11px/1.5 var(--diagram-sans);color:#647774;margin-bottom:3px}
.mobile-layout .mobile-intro-shortcut{border:0;background:transparent;padding:0 4px;min-height:22px;font:12px var(--diagram-sans);color:var(--teal);text-decoration:underline;text-underline-offset:3px}
#mobile-map{height:60px;overflow:hidden;border:1px solid #c0d0cc;background:white;touch-action:none;cursor:crosshair}
#mobile-map>svg{width:100%;height:100%;display:block;pointer-events:none}
#mobile-map .node-action{display:none}
.mobile-map-window{fill:#337e8517;stroke:#286e77;stroke-width:1.7;pointer-events:none}
#mobile-map:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.mobile-layout #mobile-readout{position:relative;padding:10px 44px 10px 14px;background:#f0f7f6;border-block:1px solid #a7c4be;flex-shrink:0;font:14px/1.45 var(--sans)}
#mobile-readout strong{font-weight:normal;color:var(--teal)}
#mobile-readout code{font:13px var(--mono);display:inline-block;margin-left:10px}
#mobile-readout p{white-space:pre-line;margin:5px 0 0}
#mobile-readout p:empty{display:none}
#mobile-readout>button{position:absolute;right:2px;top:2px;min-width:40px;border:0;background:transparent;font-size:22px}
.mobile-layout .inspector{border-left:0;border-top:1px solid var(--line);height:auto;overflow:visible;padding:20px 16px;display:block;min-width:0;scroll-margin-top:65px}
.mobile-layout .code-drawer{scroll-margin-top:65px}
.mobile-layout .inspector h2{font-size:24px;margin:0 0 16px}
.mobile-layout .inspector>p,.mobile-layout .inspector>#selection-description{font-size:17px;line-height:1.55}
.mobile-layout .inspector button{width:auto;margin-right:6px;font-size:14px}
.mobile-layout .mobile-return{margin:18px 0 0;color:var(--teal)}
.mobile-layout .detail-shape{display:block;border-top:1px solid var(--line);padding:12px 0}
.mobile-layout .code-drawer{width:100%;min-width:0}
.mobile-layout .code-drawer:not(.open){display:none}
.mobile-layout .code-drawer.open #source-code{max-height:340px;font-size:12px}
.mobile-layout .code-handle{gap:8px;padding:12px}
.mobile-layout #code-file{display:block;margin:4px 0 0;overflow-wrap:anywhere}
.mobile-layout .code-heading{padding:12px;flex-wrap:wrap;position:relative;gap:8px 16px}
.mobile-layout .code-heading>div{flex-basis:100%;padding-right:38px;min-width:0}
.mobile-layout .code-heading>button{position:absolute;right:4px;top:4px;min-width:44px}
.mobile-layout .code-heading label{min-height:44px;font-size:12px}
.mobile-layout .context-bar{padding:14px;gap:10px;align-items:start}
.mobile-layout .context-bar>label{width:100%}
.mobile-layout #prompt-form{max-width:100%;width:100%}
.mobile-layout #prompt{width:0;flex:1;min-width:0;font-size:16px}
.mobile-layout #example-select{max-width:100%;width:100%;font-size:16px}
.mobile-layout .tokens{flex-basis:100%;min-width:0}
.mobile-layout .token{min-height:36px}
.mobile-layout .example-next{margin:0}
.mobile-layout .inline-note{width:min(360px,calc(100vw - 24px));max-height:70dvh}
.mobile-layout #weight-dialog{width:calc(100% - 20px);max-width:640px;max-height:calc(100dvh - 20px);padding:16px;overscroll-behavior:contain}
.mobile-layout .weight-header{position:sticky;top:-16px;background:var(--paper);z-index:3;padding:8px 0;gap:8px}
.mobile-layout .weight-header>div{min-width:0}
.mobile-layout .weight-header h2{font-size:26px;overflow-wrap:anywhere}
.mobile-layout #weight-close{flex-shrink:0;min-width:44px}
.mobile-layout .weight-views{grid-template-columns:minmax(0,1fr);gap:18px}
.mobile-layout .weight-meta{gap:12px;flex-wrap:wrap}
.mobile-layout .weight-plot{max-width:100%;min-width:0}
.mobile-layout .patch-controls{flex-wrap:wrap;gap:8px}
.mobile-layout .sample-patch-picker{align-items:start;flex-direction:column}
.mobile-layout .sample-patch-picker select{max-width:100%;font-size:16px}
.mobile-layout #edit-text,.mobile-layout #save-text,.mobile-layout #text-editor{display:none!important}
.mobile-layout .workspace{margin-inline:-12px;border-inline:0;border-radius:0}
.mobile-layout :is(.inline-note-trigger,.copy-code){min-height:0}
@media(max-width:360px){.mobile-layout .mobile-toolbar{gap:3px}.mobile-back-text{display:none}}
