:root{color-scheme:light;--bg:#faf7ff;--bg-elevated:#fff;--bg-muted:#f1eefb;--bg-sunken:#f6f4fc;--border:#e4defa;--border-strong:#cfc4f5;--text:#1e1b4b;--text-secondary:#4b4870;--text-muted:#6b6890;--primary:#7c3aed;--primary-hover:#6d28d9;--primary-soft:#ede5ff;--on-primary:#fff;--accent:#0e7490;--accent-soft:#e0f5fa;--success:#047857;--success-soft:#dcfce7;--danger:#b91c1c;--danger-soft:#fef2f2;--gradient:linear-gradient(135deg,#7c3aed,#0891b2);--font-display:"Space Grotesk",system-ui,sans-serif;--font-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--radius-sm:8px;--radius:12px;--radius-lg:20px;--shadow-sm:0 1px 2px rgba(30,27,75,.06);--shadow:0 8px 24px -8px rgba(30,27,75,.12);--ease:cubic-bezier(0.16,1,0.3,1)}:root[data-theme=dark]{color-scheme:dark;--bg:#0d0b1a;--bg-elevated:#161328;--bg-muted:#1f1b36;--bg-sunken:#110f21;--border:#2c2748;--border-strong:#3d3663;--text:#f1eefe;--text-secondary:#c4bfe3;--text-muted:#9a94c2;--primary:#a78bfa;--primary-hover:#c4b5fd;--primary-soft:#2a2150;--on-primary:#160f33;--accent:#22d3ee;--accent-soft:#0f2e38;--success:#34d399;--success-soft:#0f2a22;--danger:#f87171;--danger-soft:#2d1418;--gradient:linear-gradient(135deg,#a78bfa,#22d3ee);--shadow:0 8px 24px -8px rgba(0,0,0,.5)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-size:16px;line-height:1.55;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;line-height:1.15}a{color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::view-transition-new(root),::view-transition-old(root){animation-duration:.2s}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;top:.5rem;left:.5rem;z-index:100;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--primary);color:var(--on-primary);font-weight:600;text-decoration:none;transform:translateY(-150%)}.skip-link:focus{transform:none}.text-gradient{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.65rem 1.25rem;border-radius:999px;border:1px solid transparent;font:600 .95rem/1 var(--font-sans);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 6px 18px -6px rgba(124,58,237,.55)}.btn-primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--primary)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-sm{min-height:44px;padding:.45rem .85rem;font-size:.85rem}.btn-block{width:100%;white-space:normal;line-height:1.2}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:border-color .2s var(--ease),color .2s var(--ease)}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.badge-accent{background:var(--accent-soft);color:var(--accent)}.landing-section,.site-footer,.site-header{width:100%;max-width:1120px;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.25rem;padding-bottom:1.25rem}.brand{display:inline-flex;align-items:center;gap:.6rem;font:700 1.25rem var(--font-display);text-decoration:none;color:var(--text)}.brand img{width:32px;height:32px;border-radius:9px}.site-nav{display:flex;align-items:center;gap:.25rem}.site-nav a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding:0 .75rem;color:var(--text-secondary);text-decoration:none;font-weight:500}.site-nav a:not(.btn):hover{color:var(--text)}.hero{padding-top:clamp(2.5rem,8vw,6rem);padding-bottom:clamp(2.5rem,6vw,4.5rem);text-align:center}.hero h1{font-size:clamp(2.4rem,6vw,4.25rem);max-width:15ch;margin:1.25rem auto;text-wrap:balance}.hero p{max-width:60ch;margin:0 auto 2rem;font-size:clamp(1.05rem,1.8vw,1.2rem);color:var(--text-secondary)}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.landing-section+.landing-section{margin-top:clamp(3rem,7vw,4.5rem)}.section-head{margin-bottom:1.5rem}.section-head h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:.4rem}.section-head p{color:var(--text-secondary)}.lab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));grid-gap:1.25rem;gap:1.25rem}.lab-card{display:flex;flex-direction:column;gap:.9rem;padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text);transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}a.lab-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.lab-card h3,.lab-card h4{font-size:1.35rem}.lab-card p{color:var(--text-secondary)}.lab-card-muted{background:var(--bg-sunken);border-style:dashed;box-shadow:none}.lab-meta{gap:.4rem}.lab-meta,.subject-nav{display:flex;flex-wrap:wrap}.subject-nav{gap:.5rem;margin-top:1rem}.subject-nav a{min-height:44px;padding-inline:1rem;font-size:.85rem;text-decoration:none;border:1px solid transparent}.subject-nav a:hover{border-color:var(--primary)}.subject-count{margin-left:.15rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.subject{scroll-margin-top:5rem}.subject+.subject{margin-top:2.5rem}.subject-head{margin-bottom:1rem}.subject-head h3{font-size:1.25rem;margin-bottom:.25rem}.subject-head p{color:var(--text-secondary)}.lab-cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--primary)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-gap:1rem;gap:1rem;list-style:none;counter-reset:step}.steps li{padding:1.25rem;border-radius:var(--radius);background:var(--bg-muted);counter-increment:step}.steps li:before{content:counter(step,decimal-leading-zero);display:block;margin-bottom:.5rem;font:600 .85rem var(--font-mono);color:var(--primary)}.steps h3{font-size:1.1rem;margin-bottom:.35rem}.steps p{color:var(--text-secondary);font-size:.95rem}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:clamp(3rem,8vw,5rem);padding-top:1.5rem;padding-bottom:2rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.9rem}.site-footer a{display:inline-block;padding:.15rem 0;text-decoration:none}.site-footer a:hover{color:var(--text)}.pg{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.pg-header{justify-content:space-between;height:60px;padding:0 1rem;border-bottom:1px solid var(--border);background:var(--bg-elevated);flex-shrink:0}.pg-header,.pg-header-left{display:flex;align-items:center;gap:.75rem}.pg-header-left{min-width:0}.crumbs{display:flex;align-items:center;gap:.4rem;flex-shrink:0;font-size:.9rem;color:var(--text-muted);white-space:nowrap}.crumbs a{padding:.2rem 0;font:700 1.05rem var(--font-display);color:var(--text);text-decoration:none}.crumbs a.crumb-lab{padding:.25rem 0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px}.crumbs a.crumb-lab:hover,.pg-title{color:var(--text)}.pg-title{min-width:0;font:600 .9rem var(--font-sans);letter-spacing:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pg-body{flex:1 1;display:flex;min-height:0}.pg-sidebar{width:min(20rem,45vw);flex-shrink:0;display:flex;flex-direction:column;gap:1.5rem;padding:1.25rem;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-sunken)}.panel-title{margin-bottom:.65rem;font:600 .75rem var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.segmented{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;padding:4px;border-radius:var(--radius);background:var(--bg-muted)}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.25rem .5rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:600 .9rem/1.2 var(--font-sans);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-sm)}.segmented button:disabled{cursor:not-allowed}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}.field-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.field-label output{font-family:var(--font-mono);color:var(--primary)}.field-hint{font-size:.8rem;color:var(--text-muted)}.field-hint-after{margin:-.55rem 0 .9rem}.select{width:100%;min-height:44px;padding:.55rem 2.25rem .55rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background-color:var(--bg-elevated);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238b84b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;color:var(--text);font:500 .9rem var(--font-sans);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.select:hover:not(:disabled){border-color:var(--primary)}.select:disabled{opacity:.6;cursor:not-allowed}input[type=range]{width:100%;accent-color:var(--primary);cursor:pointer}.status-card{display:flex;flex-direction:column;gap:.5rem;padding:.85rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated);font-size:.85rem}.status-row{display:flex;justify-content:space-between;gap:.75rem}.status-row span:first-child{color:var(--text-muted)}.status-row span:last-child{font-family:var(--font-mono);font-size:.8rem;text-align:right}.status-line{padding-top:.5rem;border-top:1px solid var(--border);color:var(--text-secondary);font-weight:500}.progress{height:6px;margin-top:.6rem;border-radius:999px;background:var(--bg-muted);overflow:hidden}.progress>div{height:100%;background:var(--gradient);transition:width .25s var(--ease)}.engine-ready{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;border-radius:999px;background:var(--success-soft);color:var(--success);font-weight:600;font-size:.9rem}.explainer{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elevated)}.explainer summary{display:flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .9rem;font-weight:600;font-size:.9rem;cursor:pointer}.explainer ol{display:flex;flex-direction:column;gap:.6rem;padding:0 .9rem .9rem 2rem;font-size:.85rem;color:var(--text-secondary)}.explainer strong{color:var(--text)}.glossary{display:flex;flex-direction:column;gap:.6rem;padding:0 .9rem .9rem;font-size:.85rem}.glossary dt{font-weight:600;color:var(--text)}.glossary dd{color:var(--text-secondary)}.pg-main{flex:1 1;display:flex;flex-direction:column;min-width:0;container-type:inline-size}.messages{flex:1 1;overflow-y:auto;padding:1.5rem 1rem}.messages-inner{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.msg{display:flex;gap:.75rem}.msg-user{flex-direction:row-reverse}.avatar{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--gradient);color:#fff}.msg-user .avatar{background:var(--bg-muted);color:var(--text-secondary)}.msg-body{display:flex;flex-direction:column;gap:.35rem;max-width:min(85%,640px);min-width:0}.msg-user .msg-body{align-items:flex-end}.bubble{padding:.8rem 1rem;border-radius:16px;border:1px solid var(--border);background:var(--bg-elevated);white-space:pre-wrap;word-break:break-word;font-size:.95rem}.msg-user .bubble{border-color:transparent;background:var(--primary);color:var(--on-primary)}.bubble audio{display:block;width:100%;min-width:220px;max-width:320px;height:36px;margin-top:.6rem}.cursor{display:inline-block;width:7px;height:1em;margin-left:3px;vertical-align:text-bottom;border-radius:2px;background:var(--primary);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.msg-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;font:500 .75rem var(--font-mono);color:var(--text-muted)}.msg-actions button{display:inline-flex;align-items:center;gap:.3rem;min-height:28px;padding:0 .6rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font:inherit;cursor:pointer}.msg-actions button:hover{color:var(--text);border-color:var(--border-strong)}.msg-actions strong{color:var(--text);font-weight:600}.composer{max-width:780px;width:100%;margin:0 auto;padding:0 1rem 1rem}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem}.chip{min-height:44px;padding:0 .9rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);font:500 .85rem var(--font-sans);cursor:pointer;transition:border-color .2s var(--ease),color .2s var(--ease)}.chip:hover:not(:disabled){border-color:var(--primary);color:var(--text)}.chip:disabled{opacity:.5;cursor:not-allowed}.composer-form{display:flex;align-items:center;gap:.5rem;padding:.4rem .4rem .4rem 1.1rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elevated);box-shadow:var(--shadow-sm);transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.composer-form:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.composer-form input{flex:1 1;min-width:0;min-height:40px;border:0;outline:none;background:transparent;color:var(--text);font:400 1rem var(--font-sans)}.composer-hint{flex:1 1;min-width:0;color:var(--text-muted);font-size:.95rem}.composer-form input:disabled{opacity:.6}.round-btn{width:44px;height:44px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--bg-muted);color:var(--text-muted);cursor:not-allowed;transition:background-color .2s var(--ease),color .2s var(--ease)}.round-btn.is-active{background:var(--primary);color:var(--on-primary);cursor:pointer}.round-btn.mic.is-active{background:var(--accent-soft);color:var(--accent)}.round-btn.mic-recording{background:var(--danger);color:#fff;cursor:pointer;animation:mic-pulse 1.4s ease-out infinite}@keyframes mic-pulse{0%{box-shadow:0 0 0 0 rgba(220,38,38,.45)}70%{box-shadow:0 0 0 10px rgba(220,38,38,0)}to{box-shadow:0 0 0 0 rgba(220,38,38,0)}}.composer-note{margin-top:.5rem;text-align:center;font-size:.75rem;color:var(--text-muted)}@container (max-width: 600px){.msg-body{max-width:92%}}@media (max-height:480px){.chips{display:none}}@media (max-width:560px){.site-nav .btn,.site-nav a:not(.btn){display:none}.pg-header .btn-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pg-header .btn-sm{min-width:44px;justify-content:center}.pg-title{position:absolute;width:1px;height:1px;clip:rect(0 0 0 0)}}@media (max-width:768px){.pg-body{flex-direction:column;overflow-y:auto}.pg-sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border);overflow:visible}.pg-main{min-height:calc(100vh - 60px);min-height:calc(100dvh - 60px)}.crumb-lab{display:none}}@media (pointer:coarse){.select{font-size:1rem}}.theme-switch{display:inline-flex;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);overflow:hidden}.theme-switch button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .2s var(--ease),background-color .2s var(--ease)}.theme-switch button+button{border-left:1px solid var(--border)}.theme-switch button:hover{color:var(--text)}.theme-switch button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}@media (forced-colors:active){.theme-switch button[aria-pressed=true]{background:Highlight;color:HighlightText}}.theme-switch button:focus-visible{outline-offset:-2px}.theme-cycle{display:none}@media (max-width:560px){.theme-switch{display:none}.theme-cycle{display:inline-flex}}.pg-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.lab2{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.lab2 main:focus{outline:none}.lab2-settings{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;padding:.85rem 1rem;background:var(--bg-muted);border-bottom:1px solid var(--border)}.lab2-settings .field{min-width:0;flex:1 1 11rem;max-width:17rem}.lab2-play{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.lab2-counter{display:grid;font-size:.8rem;color:var(--text-muted);line-height:1.2}.lab2-counter output{font-size:1.05rem;color:var(--text)}.lab2-alert{margin:.75rem 1rem 0;padding:.6rem .85rem;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-weight:600}.lab2-flow{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr) minmax(0,20rem);flex:1 1}.lab2-col{display:grid;align-content:start;grid-gap:.85rem;gap:.85rem;min-width:0;padding:1rem}.lab2-col+.lab2-col{border-left:1px solid var(--border)}.lab2-label{font:700 .75rem var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.lab2-col h3{font-size:1rem}.lab2-muted{color:var(--text-muted);font-size:.875rem}.lab2-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lab2-chips{display:flex;flex-wrap:wrap;gap:.4rem}.lab2-chip{min-height:44px;padding:0 .9rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font:500 .875rem var(--font-sans);cursor:pointer}.lab2-chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.lab2-example{display:grid;grid-gap:.15rem;gap:.15rem;padding:.6rem .75rem;border-radius:var(--radius-sm);background:var(--bg-muted);font-size:.875rem}.lab2-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem}.lab2-stat{display:grid;grid-gap:.2rem;gap:.2rem;padding:.6rem .75rem;border-radius:var(--radius-sm);background:var(--bg-muted)}.lab2-big{font-size:1.35rem;color:var(--text)}.lab2-chart figcaption{font:600 .95rem var(--font-display);margin-bottom:.35rem}.lab2-chart svg{display:block;width:100%;height:auto}.lab2-grid{stroke:var(--border)}.lab2-tick{fill:var(--text-muted);font:9px var(--font-mono)}.lab2-line{stroke-width:2}.lab2-line-0{stroke:var(--primary)}.lab2-line-1{stroke:var(--accent)}.lab2-line-2{stroke:var(--success)}.lab2-line-3{stroke:var(--danger)}.lab2-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;font-size:.8rem;color:var(--text-secondary)}.lab2-legend li{display:inline-flex;white-space:nowrap;align-items:center;gap:.4rem}.lab2-answers{display:grid;grid-gap:.2rem;gap:.2rem;font-size:.875rem}.lab2-answers h3{margin-bottom:.2rem}.lab2-tok-bad,.lab2-tok-ok{display:inline-block;margin-right:.3rem;padding:0 .15rem;border-radius:3px}.lab2-tok-ok{background:var(--success-soft);color:var(--success)}.lab2-tok-bad{background:var(--danger-soft);color:var(--danger);-webkit-text-decoration:underline wavy;text-decoration:underline wavy}@media (max-width:1080px){.lab2-flow{grid-template-columns:minmax(0,1fr)}.lab2-col+.lab2-col{border-left:0;border-top:1px solid var(--border)}}.lab2-net-head{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.lab2-stepper{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--text-secondary)}.lab2-stepper button{width:44px;height:44px;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font:700 1.1rem var(--font-sans);cursor:pointer}.lab2-stepper button:disabled{opacity:.45;cursor:not-allowed}.lab2-stepper .lab2-mono{min-width:1.4ch;text-align:center;color:var(--text)}.lab2-diagram{overflow-x:auto;padding-bottom:.25rem}.lab2-diagram svg{display:block;max-width:none}.lab2-diagram text{font-family:var(--font-sans)}.lab2-col-label{fill:var(--text-secondary);font-size:10px;font-weight:600}.lab2-node-note{fill:var(--text-muted);font-size:9px}.lab2-link{fill:none;stroke:var(--primary);stroke-opacity:.7}.lab2-link-hot{stroke:var(--accent);stroke-opacity:1}.lab2-band{fill:var(--accent);fill-opacity:.3}.lab2-drop{stroke:var(--accent);stroke-dasharray:2 3;stroke-opacity:.7}.lab2-norm-dot{fill:var(--bg-elevated);stroke:var(--accent);stroke-width:2}.lab2-norm-text{fill:var(--accent);font-size:9px;font-weight:700}.lab2-node{fill:var(--bg-elevated);stroke:var(--text-muted)}.lab2-node-sel{stroke:var(--accent);stroke-width:2.5}.lab2-head{cursor:pointer;outline:none}.lab2-head:focus-visible .lab2-node{stroke:var(--text);stroke-width:3;stroke-dasharray:4 2}.lab2-fill-accent{fill:var(--accent)}.lab2-act{fill:none;stroke:var(--primary);stroke-width:1.8}.kv-group{fill:none;stroke:var(--text-muted);stroke-dasharray:4 3}.lab2-token{fill:var(--bg-muted);stroke:var(--text-muted)}.lab2-token-text{fill:var(--text);font:12px var(--font-mono)}.lab2-token.lab2-token-ok{fill:var(--success-soft)}.lab2-token.lab2-token-bad{fill:var(--danger-soft)}.lab2-token-text.lab2-token-ok{fill:var(--success)}.lab2-token-text.lab2-token-bad{fill:var(--danger)}.lab2-key{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;list-style:none;font-size:.8rem;color:var(--text-muted)}.lab2-attn{display:grid;grid-gap:.4rem;gap:.4rem}.lab2-attn-grid{display:grid;grid-gap:2px;gap:2px;font:.7rem var(--font-mono);color:var(--text-muted)}.lab2-attn-axis{display:flex;align-items:center;justify-content:center}.lab2-attn-cell{aspect-ratio:1;border-radius:2px}.lab2-field-changed .select{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.lab2-new{color:var(--primary);font-size:.75rem;font-weight:700}.lab2-timeline{display:grid;grid-gap:.5rem;gap:.5rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.lab2-eras{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.2rem}.lab2-era{display:grid;flex:0 0 auto;min-width:8rem;min-height:44px;padding:.4rem .7rem;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);font:600 .875rem var(--font-sans);cursor:pointer}.lab2-era .lab2-mono{font-size:.75rem;font-weight:500;color:var(--text-muted)}.lab2-era[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft)}.lab2-era[aria-pressed=true] .lab2-mono{color:var(--primary)}.lab2-era-note{max-width:75ch;font-size:.925rem;color:var(--text-secondary)}.lab2-chapter,.lab2-compare{display:grid;grid-gap:.75rem;gap:.75rem;margin:1rem;padding:1rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated)}.lab2-chapter-head{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between}.lab2-chapter h2,.lab2-compare h2{font-size:1.1rem}.lab2-beats{display:grid;grid-gap:.6rem;gap:.6rem;max-width:80ch;padding-left:1.25rem}.lab2-beats .btn{margin-top:.3rem}.lab2-chapter-nav{display:flex;gap:.5rem}.lab2-chapter-reopen{margin:.75rem 1rem 0}.lab2-compare-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:start}.lab2-table-wrap{overflow-x:auto}.lab2-table{width:100%;border-collapse:collapse;font-size:.875rem}.lab2-table td,.lab2-table th{padding:.4rem .5rem;border-bottom:1px solid var(--border);text-align:left}.lab2-table td:nth-child(n+4),.lab2-table th:nth-child(n+4){text-align:right}.lab2-glossary{margin:0 1rem 2rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.lab2-glossary summary{min-height:44px;display:flex;align-items:center;font:600 1rem var(--font-display);cursor:pointer}.lab2-glossary dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));grid-gap:.75rem 1.5rem;gap:.75rem 1.5rem;margin-top:.5rem}.lab2-glossary dt{font-weight:700}.lab2-glossary dd{color:var(--text-secondary);font-size:.9rem}@media (max-width:1080px){.lab2-compare-body{grid-template-columns:minmax(0,1fr)}}.lab3,.lab4,.lab5{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.lab3-main,.lab4-main,.lab5-main{width:100%;max-width:920px;margin:0 auto;padding:1.25rem 1rem 3rem;display:grid;grid-gap:1.25rem;gap:1.25rem}.lab5-main>*{min-width:0}.lab3-main:focus,.lab4-main:focus,.lab5-main:focus{outline:none}.lab3-intro h2,.lab4-intro h2,.lab5-intro h2{font-size:clamp(1.4rem,3vw,1.8rem);margin-bottom:.5rem}.lab3-intro>p,.lab4-intro>p,.lab5-intro>p{color:var(--text-secondary)}.lab3-first,.lab3-glossary,.lab4-first,.lab4-glossary,.lab5-first,.lab5-glossary{margin-top:.75rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.lab3-first summary,.lab3-glossary summary,.lab4-aside summary,.lab4-first summary,.lab4-glossary summary,.lab5-first summary,.lab5-glossary summary{min-height:44px;display:flex;align-items:center;font:600 1rem var(--font-display);cursor:pointer}.lab3-first ol,.lab4-first ol,.lab5-first ol{display:grid;grid-gap:.4rem;gap:.4rem;padding-left:1.25rem;color:var(--text-secondary)}.lab3-glossary dl,.lab4-glossary dl,.lab5-glossary dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));grid-gap:.75rem 1.5rem;gap:.75rem 1.5rem;margin-top:.5rem}.lab3-glossary dt,.lab4-glossary dt,.lab5-glossary dt{font-weight:700}.lab3-glossary dd,.lab3-glossary p,.lab4-glossary dd,.lab5-glossary dd,.lab5-glossary p{color:var(--text-secondary);font-size:.9rem}.lab3-corpus{margin-top:.5rem;padding-left:1.25rem;font-family:var(--font-mono);font-size:.85rem}.lab3-follow{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:grid;grid-gap:.4rem;gap:.4rem;padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow)}html:has(.lab3-follow){scroll-padding-top:9rem}.lab3-input{display:grid;grid-gap:.6rem;gap:.6rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);box-shadow:var(--shadow-sm)}.lab3-label,.lab5-label{font:700 .75rem var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.lab3-chips,.lab3-edit,.lab3-sentence,.lab5-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.lab3-chip,.lab3-word,.lab5-chip{touch-action:manipulation;min-height:44px;padding:0 .9rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);font:500 .875rem var(--font-sans);cursor:pointer}.lab3-word{display:grid;justify-items:center;padding:.25rem .85rem;border-radius:var(--radius-sm);font-size:1rem;line-height:1.2}.lab3-word-pos{font-size:.7rem;color:var(--text-muted)}.lab3-chip[aria-current=true],.lab3-word[aria-current=true],.lab5-chip[aria-current=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.lab3-word[aria-current=true] .lab3-word-pos{color:inherit}.lab3-edit .field-label{margin:0}.lab3-edit .select{width:auto;min-width:10rem}.lab3-status{font-size:.95rem}.lab3-muted,.lab4-muted,.lab5-muted{color:var(--text-muted);font-size:.875rem}.lab3-mono,.lab4-mono,.lab5-mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lab3-steps{list-style:none;display:grid;grid-gap:1rem;gap:1rem;padding:0}.lab3-step{scroll-margin-top:9rem;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.lab3-step section{display:grid;grid-gap:.6rem;gap:.6rem}.lab3-step h2{display:flex;align-items:center;gap:.6rem;font-size:1.15rem}.lab3-step-n,.lab5-step-n{display:inline-grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);font:700 .95rem var(--font-mono)}.lab3-step>section>p{color:var(--text-secondary)}.lab3-formula{padding:.5rem .75rem;border-left:3px solid var(--primary);border-radius:var(--radius-sm);background:var(--bg-sunken);font:500 .875rem var(--font-mono);color:var(--text);overflow-wrap:anywhere}.lab3-numbers{display:grid;grid-gap:.55rem;gap:.55rem;min-width:0}.lab3-row{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);align-items:center;grid-gap:.25rem .75rem;gap:.25rem .75rem}.lab3-row-name{font-size:.875rem}.lab3-vec{list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,4rem));grid-gap:3px;gap:3px;padding:0}.lab3-vec span{padding:.3rem .35rem;border-radius:6px;text-align:center;font:500 .8rem var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.lab3-pos{background:color-mix(in srgb,var(--primary) calc(var(--w) * 40%),var(--bg-sunken))}.lab3-neg{background:color-mix(in srgb,var(--accent) calc(var(--w) * 40%),var(--bg-sunken))}.lab3-sum{padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--bg-sunken);font-size:.8rem;line-height:1.7;overflow-wrap:anywhere}.lab3-facts{font-size:.85rem}.lab3-list,.lab3-tokens{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0}.lab3-token{display:grid;justify-items:center;min-width:3.5rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.lab3-token-on{border-color:var(--primary);background:var(--primary-soft)}.lab3-list{flex-direction:column;flex-wrap:nowrap}.lab3-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--bg-sunken);font-size:.875rem}.lab3-hidden{opacity:.7}.lab3-logits{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,9rem),1fr))}.lab3-bars{list-style:none;display:grid;grid-gap:.4rem;gap:.4rem;padding:0}.lab3-bar{display:grid;grid-template-columns:minmax(0,7rem) minmax(4rem,1fr) auto;align-items:center;grid-gap:.6rem;gap:.6rem;font-size:.875rem}.lab3-bar-track{height:.7rem;border-radius:999px;background:var(--bg-sunken);overflow:hidden}.lab3-bar-track span{display:block;height:100%;border-radius:inherit;background:var(--border-strong);transition:width .2s var(--ease)}.lab3-bar-top .lab3-bar-track span{background:var(--primary)}.lab3-bar-top .lab3-bar-label{font-weight:700}.lab3-temp{max-width:24rem}.lab3-answer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);background:var(--success-soft)}.lab3-unseen{color:var(--danger);font-weight:600}.lab3-unseen-note{display:block;margin-top:.35rem;color:var(--text-secondary);font-size:.9rem}.lab3-waves{width:100%;max-width:420px;height:auto}.lab3-axis{stroke:var(--border-strong);stroke-width:1}.lab3-wave{fill:none;stroke-width:2}.lab3-wave-0{stroke:var(--primary)}.lab3-wave-1{stroke:var(--accent);stroke-dasharray:2 3}.lab3-wave-2{stroke:var(--primary);stroke-dasharray:7 4}.lab3-wave-3{stroke:var(--accent);stroke-dasharray:9 3 2 3}.lab3-now{stroke:var(--text);stroke-width:1.5}.lab3-wave-key{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:0;font-size:.8rem;color:var(--text-muted)}.lab3-wave-key li{display:inline-flex;align-items:center;gap:.4rem}.lab3-now-key{display:inline-block;height:.9rem;border-left:2px solid var(--text)}.lab3-temp-head{display:flex;justify-content:space-between;align-items:baseline}.lab3-temp-value{color:var(--primary);font-weight:600}@media (max-height:700px),(max-width:640px){.lab3-follow{position:static}html:has(.lab3-follow){scroll-padding-top:0}}@media (max-width:640px){.lab3-row{grid-template-columns:minmax(0,1fr)}.lab3-vec{grid-template-columns:repeat(4,minmax(0,1fr))}.lab3-bar{grid-template-columns:minmax(0,5.5rem) minmax(3rem,1fr) auto}}@media (prefers-reduced-motion:reduce){.lab3-bar-track span{transition:none}}.lab4-chapter{display:grid;grid-gap:.75rem;gap:.75rem;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text-secondary);scroll-margin-top:1rem}.lab4-chapter h2{color:var(--text);font:700 1.3rem var(--font-display)}.lab4-chapter h3{color:var(--text);font-size:1rem}.lab4-locked{padding:.6rem .85rem;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-sunken)}.lab4-steps{display:grid;grid-gap:.3rem;gap:.3rem;padding-left:1.25rem}.lab4-progress{display:grid;grid-gap:.35rem;gap:.35rem}.lab4-progress progress{width:100%;height:.75rem;accent-color:var(--primary)}.lab4-alert{display:grid;grid-gap:.35rem;gap:.35rem;padding:.6rem .85rem;border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-weight:600}.lab4-alert .lab4-muted{color:var(--danger);font-weight:400}.lab4-stats{display:flex;flex-wrap:wrap;gap:.75rem 2rem}.lab4-stats dt{color:var(--text-muted);font-size:.85rem}.lab4-stats dd{color:var(--text);font-size:1.4rem}.lab4-tokens,.lab4-words{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0}.lab4-words li{padding:.25rem .6rem;border-radius:var(--radius-sm);background:var(--bg-sunken);font-size:.875rem}.lab4-token{display:grid;justify-items:center;min-width:3rem;padding:.35rem .6rem;border:1px solid var(--border)}.lab4-story,.lab4-token{border-radius:var(--radius-sm)}.lab4-story{margin:0;padding:.75rem 1rem;border-left:3px solid var(--primary);background:var(--bg-sunken);color:var(--text);white-space:pre-line}.lab4-aside{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius)}.lab4-aside>p,.lab4-merges{margin:.5rem 0}.lab4-merges{display:grid;grid-gap:.25rem;gap:.25rem;padding-left:1.25rem}.lab4-chapter a{color:var(--text);text-underline-offset:2px}.lab4-credit a{display:inline-block;min-height:24px}.program-banner{flex-shrink:0;padding:.4rem 1rem;border-bottom:1px solid var(--border);background:var(--primary-soft);color:var(--text);font-size:.85rem}.program-banner p{margin:0}.program-banner a{display:inline-flex;align-items:center;min-height:44px;padding:0 .25rem;color:var(--text);text-underline-offset:2px}.program-main{max-width:46rem;margin:0 auto;padding:2rem 1rem 4rem;color:var(--text-secondary)}.program-main h1{margin:0 0 .5rem;color:var(--text);font:700 clamp(1.6rem,5vw,2.2rem) var(--font-display)}.program-goal{color:var(--text);font-weight:600}.program-meta{color:var(--text-muted);font-size:.9rem}.program-warn{padding:.6rem .9rem;border:1px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger)}.program-continue{min-height:44px;margin:1.25rem 0}.program-main .btn{height:auto;white-space:normal;text-align:left;line-height:1.3}.program-finished{margin:0;color:var(--success);font-weight:700}.program-steps{display:grid;grid-gap:1rem;gap:1rem;margin:0;padding:0;list-style:none}.program-step{padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated)}.program-step.is-done{border-color:var(--success)}.program-step.is-soon{border-style:dashed}.badge-soon{background:transparent;color:var(--text-muted);border:1px solid var(--border-strong)}.program-step h2{margin:0 0 .4rem;color:var(--text);font:700 1.15rem var(--font-display)}.program-num{color:var(--text-muted);font-size:.85rem}.program-checks{margin:.9rem 0 0;padding:0;border:0}.program-checks legend{padding:0;color:var(--text-muted);font-size:.85rem}.program-check{display:flex;align-items:flex-start;gap:.6rem;min-width:0;overflow-wrap:anywhere;min-height:44px;padding:.5rem 0;cursor:pointer}.program-check span{min-width:0}.program-check input{width:1.25rem;height:1.25rem;margin-top:.1rem;flex-shrink:0;accent-color:var(--primary)}.lab5-tech{scroll-margin-top:1rem;display:grid;grid-gap:.75rem;gap:.75rem;padding:1.1rem 1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.lab5-tech h2{display:flex;align-items:center;gap:.6rem;font-size:1.15rem}.lab5-tech h3{font-size:.95rem}.lab5-notes,.lab5-tech>p{color:var(--text-secondary)}.lab5-notes,.lab5-passages{display:grid;grid-gap:.4rem;gap:.4rem;padding-left:1.25rem}.lab5-passages li{padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--bg-sunken)}.lab5-question{display:grid;grid-gap:.35rem;gap:.35rem}.lab5-question input{width:100%;min-height:44px;padding:0 .75rem;border:1px solid var(--border-strong);background:var(--bg-elevated);font:1rem var(--font-sans)}.lab5-question input,.lab5-watch{border-radius:var(--radius-sm);color:var(--text)}.lab5-watch{padding:.5rem .75rem;border-left:3px solid var(--primary)}.lab5-prompt,.lab5-watch{background:var(--bg-sunken)}.lab5-prompt{margin-top:.5rem;padding:.75rem;font:.8rem/1.5 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere}.lab5-answer,.lab5-prompt{border-radius:var(--radius-sm)}.lab5-answer{padding:.6rem .75rem;border-left:3px solid var(--primary);background:var(--primary-soft)}.lab5-error{color:var(--danger)}.lab6-sliders{display:grid;grid-gap:.35rem;gap:.35rem}.lab6-sliders input{touch-action:manipulation;width:100%;min-height:44px;accent-color:var(--primary)}.lab6-compare{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.lab6-compare>p{grid-column:1/-1}@media (min-width:48rem){.lab6-scroll-hint{display:none}}.lab8-actions{display:flex;flex-wrap:wrap;gap:.5rem}.lab8-progress{width:100%;accent-color:var(--primary)}.lab9-kinds{display:grid;grid-gap:.25rem;gap:.25rem;margin:0 0 1rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm)}.lab9-kinds label{display:flex;align-items:center;gap:.5rem;min-height:44px}.lc-start fieldset{display:grid;grid-gap:.25rem;gap:.25rem;min-width:0;margin:0;padding:0;border:0}.lc-option label{display:flex;align-items:flex-start;gap:.6rem;min-height:44px;padding:.6rem 0;cursor:pointer}.lc-option input{flex-shrink:0;width:1.1rem;height:1.1rem;margin-top:.15rem;accent-color:var(--primary)}.lc-btn-wrap{height:auto;white-space:normal;line-height:1.3}.lc-warning{margin-left:1.7rem;padding:.4rem .75rem;border-left:3px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--text);font-size:.875rem}.lc-labeler,.lc-probes li,.lc-scorecard{display:grid;grid-gap:.5rem;gap:.5rem}.lc-probes{display:grid;grid-gap:1rem;gap:1rem;padding:0;list-style:none}.lc-probe-pair{display:grid;grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}.lc-tok{padding:.25rem .5rem;border:1px dashed var(--border);border-radius:var(--radius-sm);font:.85rem/1.4 var(--font-mono)}.lc-tok-prompt{background:var(--bg-sunken)}.lc-tok-answer{background:var(--primary-soft)}.lc-tok-counted{border:2px solid var(--primary)}