:root{--lab-r1:#d26a14;--lab-r2:#17866a;--lab-r3:#5a48d4;--lab-glass:#6298d638;--lab-glass-line:#4c7fb8;--lab-object:#273469;--lab-image:#c2410c;--lab-grid:#2426290f;--lab-glow:#e789362e;--lab-live:#c0262d;--lab-hero-a:#fff7ec;--lab-hero-b:#eef1ff;--lab-bar:#273469;--lab-hot:#e78936}:root[data-theme=dark]{--lab-r1:#f3a35d;--lab-r2:#5fd3b1;--lab-r3:#ab9fff;--lab-glass:#8cbeff2e;--lab-glass-line:#8fb9ef;--lab-object:#b9c5ff;--lab-image:#ffb27a;--lab-grid:#f4f1eb0f;--lab-glow:#efab6b24;--lab-live:#ff8a8f;--lab-hero-a:#1d1e21;--lab-hero-b:#1b1f2e;--lab-bar:#b9c5ff;--lab-hot:#efab6b}.lab-hi{letter-spacing:0;color:var(--muted);margin-top:.2em;font-family:Noto Sans Devanagari,Mangal,Nirmala UI,DM Sans,sans-serif;font-size:.5em;font-weight:400;line-height:1.3;display:block}h1 .lab-hi{font-size:.42em}button .lab-hi,.lab-tab-text .lab-hi,.lab-card .lab-hi{margin-top:1px;font-size:12px}.lab-note{color:var(--muted);font-size:13px}.lab-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lab-error{color:var(--error);font-size:14px}.lab-small{min-height:36px;padding:6px 12px;font-size:13px}.lab-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.lab-actions button{flex:0 auto}.lab-field{gap:4px;min-width:0;font-size:14px;font-weight:500;display:grid}.lab-field input,.lab-field select{width:100%;font-size:16px}.lab-field output{color:var(--brand);margin-left:6px;font-family:Space Mono,monospace}.lab-optics :focus-visible,.lab-pocket :focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lab-heading{padding-top:28px;padding-bottom:20px}.lab-heading h1{margin:8px 0 10px;font-size:clamp(32px,6vw,54px)}.lab-heading p{max-width:760px}.lab-app{padding-bottom:40px}.lab-links{margin:0;padding:0;list-style:none}.lab-links li{border-bottom:1px solid var(--line);padding:8px 0}.lab-faqs details{padding:12px 0}.lab-faqs summary{cursor:pointer;font-weight:600}.lab-hero{background:radial-gradient(1200px 400px at 85% -10%, var(--lab-glow), transparent 60%), linear-gradient(135deg, var(--lab-hero-a), var(--lab-hero-b));border-bottom:1px solid var(--line);overflow:hidden}.lab-hero-inner{align-items:center;gap:24px;padding-top:28px;padding-bottom:36px;display:grid}.lab-hero h1{margin:10px 0 14px;font-size:clamp(42px,9vw,76px)}.lab-lede{max-width:620px;font-size:17px}.lab-hero-actions{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:22px;display:flex}.lab-ghost{text-underline-offset:5px;font-weight:600;text-decoration:underline}.lab-hero-art{justify-self:center;width:100%;max-width:460px}.lab-hero-axis{stroke:var(--line);stroke-dasharray:4 6}.lab-hero-lens{fill:var(--lab-glass);stroke:var(--lab-glass-line);stroke-width:2px}.lab-hero-obj,.lab-hero-img{stroke-width:4px;stroke-linecap:round}.lab-hero-obj{stroke:var(--lab-object)}.lab-hero-img{stroke:var(--lab-image);opacity:0;animation:4s ease-in-out 1.6s infinite lab-fade}.lab-hero-ray{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:400;stroke-dashoffset:400px;animation:4s ease-in-out infinite lab-draw}.lab-hero-ray.r1{stroke:var(--lab-r1)}.lab-hero-ray.r2{stroke:var(--lab-r2);animation-delay:.25s}.lab-hero-ray.r3{stroke:var(--lab-r3);animation-delay:.5s}@keyframes lab-draw{0%{stroke-dashoffset:400px}45%,85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes lab-fade{0%,10%{opacity:0}30%,70%{opacity:1}to{opacity:0}}.lab-section{padding-top:36px}.lab-section>h2{font-size:clamp(28px,5vw,40px)}.lab-section-sub{max-width:680px;margin:6px 0 18px}.lab-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:14px;display:grid}.lab-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;gap:6px;min-width:0;padding:20px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative}a.lab-card:hover{border-color:var(--brand);transform:translateY(-3px);box-shadow:0 14px 30px -18px #27346973}.lab-card h3{font-size:19px;font-weight:600}.lab-card p{flex:1;font-size:14px}.lab-card-icon{background:var(--soft);width:44px;height:44px;color:var(--brand);border-radius:14px;place-items:center;font-size:22px;display:grid}.lab-card-meta,.lab-card-sensor{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font:11px/1.5 Space Mono,monospace}.lab-card-cta{color:var(--brand);margin-top:6px;font-weight:600}.lab-card.is-planned{opacity:.65;border-style:dashed}.lab-card.is-planned .lab-card-cta{color:var(--muted)}.lab-why-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:18px;display:grid}.lab-why-grid h3{margin-bottom:4px;font-size:17px;font-weight:600}.lab-why-grid p{font-size:14px}.lab-kinds{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.lab-kinds button{text-align:left;border-radius:14px;align-items:center;gap:10px;min-width:0;padding:10px 12px;font-size:14px;font-weight:600;line-height:1.25;display:flex}.lab-kinds button.is-active{border-color:var(--brand);background:var(--soft);box-shadow:inset 0 0 0 1px var(--brand)}.lab-kind-icon{flex:none;width:18px;height:30px}.lab-kind-icon path{fill:var(--lab-glass);stroke:var(--lab-glass-line);stroke-width:2.5px}.lab-optics-grid{gap:16px;display:grid}.lab-stage-wrap,.lab-readout,.lab-explain,.lab-observations,.lab-exp,.lab-notebook{background:var(--surface);border:1px solid var(--line);border-radius:20px;min-width:0;padding:14px}.lab-stage{touch-action:none;user-select:none;background:radial-gradient(circle at 50% 50%, var(--lab-glow), transparent 55%), var(--bg);border-radius:14px;width:100%;height:auto;display:block}.lab-grid line{stroke:var(--lab-grid);stroke-width:1px}.lab-axis{stroke:var(--muted);stroke-width:1.2px;stroke-dasharray:6 6}.lab-behind{fill:var(--lab-grid)}.lab-mark circle{fill:var(--ink)}.lab-mark text,.lab-el-label{fill:var(--muted);font:600 14px DM Sans,sans-serif}.lab-element{fill:var(--lab-glass);stroke:var(--lab-glass-line);stroke-width:2px}.lab-mirror{fill:none;stroke:var(--lab-glass-line);stroke-width:4px;stroke-linecap:round}.lab-mirror-back{fill:none;stroke:var(--muted);stroke-width:7px;stroke-dasharray:2 6;opacity:.6}.lab-ray polyline,.lab-ray line{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.lab-ray-1 polyline,.lab-ray-1 line{stroke:var(--lab-r1)}.lab-ray-2 polyline,.lab-ray-2 line{stroke:var(--lab-r2)}.lab-ray-3 polyline,.lab-ray-3 line{stroke:var(--lab-r3)}.lab-ray-1-fill{fill:var(--lab-r1)}.lab-ray-2-fill{fill:var(--lab-r2)}.lab-ray-3-fill{fill:var(--lab-r3)}.lab-ray .lab-ray-out{animation:.5s ease-out lab-ray-in}.lab-ray .lab-ray-virtual{stroke-width:1.6px;stroke-dasharray:5 6;opacity:.85}@keyframes lab-ray-in{0%{opacity:0}}.lab-object-arrow line,.lab-object-arrow path{stroke:var(--lab-object);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.lab-image line,.lab-image path{stroke:var(--lab-image);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.lab-image.is-virtual line,.lab-image.is-virtual path{opacity:.85}.lab-image{animation:.6s ease-out lab-ray-in}.lab-object,.lab-focus{cursor:grab;outline:none}.lab-object:active,.lab-focus:active{cursor:grabbing}.lab-hit{fill:#0000}.lab-handle{fill:var(--surface);stroke:var(--lab-object);stroke-width:3px}.lab-handle-label{fill:var(--lab-object);font:600 13px DM Sans,sans-serif}.lab-focus-handle{fill:var(--accent);stroke:var(--surface);stroke-width:2.5px}.lab-object:focus-visible .lab-handle,.lab-focus:focus-visible .lab-focus-handle{stroke:var(--accent);stroke-width:5px}.lab-object:hover .lab-handle,.lab-focus:hover .lab-focus-handle{filter:drop-shadow(0 0 6px var(--accent))}.lab-offscreen,.lab-hidden-note{fill:var(--muted);font:600 14px DM Sans,sans-serif}.lab-hidden-note{font-style:italic}.lab-legend{flex-wrap:wrap;gap:4px 14px;margin:8px 2px 0;font-size:12px;display:flex}.lab-key:before{content:"";vertical-align:middle;background:currentColor;border-radius:2px;width:18px;height:3px;margin-right:6px;display:inline-block}.lab-key.lab-ray-1{color:var(--lab-r1)}.lab-key.lab-ray-2{color:var(--lab-r2)}.lab-key.lab-ray-3{color:var(--lab-r3)}.lab-key-virtual{color:var(--muted)}.lab-key-virtual:before{background:repeating-linear-gradient(90deg,currentColor 0 4px,#0000 4px 8px)}.lab-sliders{gap:12px;margin-top:14px;display:grid}.lab-sliders label,.lab-meter label{gap:4px;font-size:14px;font-weight:500;display:grid}.lab-sliders output{color:var(--brand);margin-left:6px;font-family:Space Mono,monospace}input[type=range]{width:100%;min-height:36px;accent-color:var(--brand);background:0 0;border:0;padding:0}.lab-presets{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.lab-presets button{border-radius:999px;min-height:36px;padding:6px 12px;font-size:13px}.lab-presets button.is-active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.lab-readout h2,.lab-explain h2,.lab-observations h2{margin-bottom:10px;font-size:26px}.lab-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.lab-values div{background:var(--soft);border-radius:12px;min-width:0;padding:8px 12px}.lab-values dt{color:var(--muted);font-size:12px;font-style:italic}.lab-values dd{overflow-wrap:anywhere;margin:0;font:700 18px Space Mono,monospace}.lab-values .is-hidden dd{color:var(--muted)}.lab-formula{margin:10px 0;font-family:Space Mono,monospace;font-size:13px}.lab-predict{border:1px dashed var(--brand);border-radius:14px;min-width:0;margin:0;padding:12px}.lab-predict legend{padding:0 6px;font-weight:700}.lab-predict legend .lab-hi{margin-left:6px;font-size:13px;display:inline}.lab-choices{gap:6px;margin:8px 0 12px;display:grid}.lab-choices label{border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:10px;min-height:44px;padding:6px 12px;font-size:14px;display:flex}.lab-choices label.is-selected{border-color:var(--brand);background:var(--soft);font-weight:600}.lab-choices input{min-height:0;accent-color:var(--brand);margin:0}.lab-predict .primary{width:100%}.lab-result{background:var(--soft);border-radius:14px;padding:12px;animation:.4s ease-out lab-ray-in}.lab-result.is-right{box-shadow:inset 4px 0 0 var(--success)}.lab-result.is-wrong{box-shadow:inset 4px 0 0 var(--error)}.lab-result p{color:var(--ink);margin:6px 0;font-size:14px}.lab-verdict{font-weight:700}.is-right .lab-verdict{color:var(--success)!important}.is-wrong .lab-verdict{color:var(--error)!important}.lab-chips{flex-wrap:wrap;gap:6px;display:flex}.lab-chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}.lab-chip.is-real{border-color:var(--lab-image);color:var(--lab-image)}.lab-chip.is-virtual{border-style:dashed}.lab-working code{overflow-wrap:anywhere;font-size:12.5px}.lab-toggle-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.lab-switch{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex}.lab-switch input{width:20px;height:20px;min-height:0;accent-color:var(--brand)}.lab-score{color:var(--accent);font-weight:700}.lab-explain,.lab-observations{margin-top:16px}.lab-explain-grid{gap:14px;margin-bottom:14px;display:grid}.lab-explain-grid h3{margin-bottom:4px;font-size:16px;font-weight:600}.lab-explain-grid p{font-size:14px}.lab-table-wrap{border:1px solid var(--line);border-radius:14px;margin:12px 0;overflow-x:auto}.lab-table{border-collapse:collapse;width:100%;font-size:13.5px}.lab-table caption{text-align:left;padding:10px 12px 4px;font-weight:600}.lab-table th,.lab-table td{text-align:left;border-top:1px solid var(--line);white-space:nowrap;padding:8px 12px}.lab-table th{background:var(--soft);font-size:12px}.lab-table td{font-variant-numeric:tabular-nums}.lab-empty{color:var(--muted);font-size:13px;white-space:normal!important}.lab-practical{background:var(--soft);border-radius:14px;gap:10px;margin-top:14px;padding:14px;display:grid}.lab-practical label{gap:4px;font-size:13px;display:grid}.lab-practical input{font-size:16px}.lab-notebook-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lab-notebook h2{font-size:24px}.lab-notebook-list{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.lab-notebook-list li{background:var(--soft);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:10px;animation:.35s ease-out lab-ray-in;display:grid}.lab-notebook-list strong{font-size:14px;display:block}.lab-notebook-list .lab-note{font-size:12px}.lab-dot{background:var(--brand);border-radius:50%;width:10px;height:10px;margin-top:6px}.lab-dot-sound{background:var(--lab-r2)}.lab-dot-compass{background:var(--lab-r3)}.lab-dot-pulse{background:var(--lab-live)}.lab-dot-pendulum{background:var(--lab-r1)}.lab-x{border-radius:50%;width:32px;min-height:32px;padding:0;font-size:18px;line-height:1}.lab-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:14px;display:grid}.lab-tabs button{text-align:center;border-radius:16px;justify-items:center;gap:2px;min-width:0;padding:10px 4px;font-size:13px;font-weight:600;line-height:1.2;display:grid}.lab-tabs button.is-active{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.lab-tabs button.is-active .lab-hi,.lab-tabs button.is-active .lab-tab-sensor{color:inherit;opacity:.8}.lab-tab-icon{font-size:22px;line-height:1}.lab-tab-sensor{color:var(--muted);font:10px Space Mono,monospace;display:none}.lab-pocket-grid{align-items:start;gap:16px;display:grid}.lab-pocket-grid>*,.lab-exp-grid>*,.lab-panel{min-width:0}.lab-exp-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lab-exp-head h2{font-size:clamp(24px,5vw,32px)}.lab-exp-head p{margin-top:6px;font-size:14px}.lab-mode{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.lab-mode-live{color:var(--lab-live);background:color-mix(in srgb, var(--lab-live) 12%, transparent);animation:1.4s ease-in-out infinite lab-pulse-dot}.lab-mode-demo{color:var(--brand);background:var(--soft)}@keyframes lab-pulse-dot{50%{opacity:.55}}.lab-exp-grid{gap:16px;margin:12px 0;display:grid}.lab-controls{gap:10px;min-width:0;display:grid}.lab-steps{color:var(--muted);margin:0;padding-left:20px;font-size:13.5px}.lab-steps li{margin:3px 0}.lab-unsupported{border:1px dashed var(--accent);border-radius:14px;gap:10px;padding:12px;display:grid}.lab-unsupported p{font-size:14px}.lab-disclaimer{border-left:4px solid var(--error);background:var(--soft);color:var(--ink);border-radius:10px;margin:12px 0;padding:10px 12px;font-size:14px}.lab-live{color:var(--ink);min-height:1.6em;font-size:14px}.lab-spark{background:var(--bg);border:1px solid var(--line);border-radius:12px;width:100%;height:70px;display:block}.lab-spark-axis{stroke:var(--line);stroke-dasharray:4 4}.lab-spark-line{fill:none;stroke:var(--brand);stroke-width:2px;stroke-linejoin:round}.lab-spark.is-live .lab-spark-line,.lab-spark-pulse .lab-spark-line{stroke:var(--lab-live)}.lab-spark-mark{stroke:var(--accent)}.lab-pendulum-art{justify-items:center;gap:4px;display:grid}.lab-pendulum-art svg{width:150px;height:auto}.lab-support{stroke:var(--ink);stroke-width:4px;stroke-linecap:round}.lab-string{stroke:var(--muted);stroke-width:1.5px}.lab-phone{fill:var(--ink)}.lab-phone-screen{fill:var(--lab-r3);opacity:.85}.lab-art-label{fill:var(--muted);font:italic 600 14px DM Sans,sans-serif}.lab-swing{transform-origin:80px 8px;animation:lab-swing var(--period,2s) ease-in-out infinite alternate;animation-delay:calc(var(--period,2s) / -4)}@keyframes lab-swing{0%{transform:rotate(14deg)}to{transform:rotate(-14deg)}}.lab-pendulum-art .lab-swing{animation-duration:calc(var(--period,2s) / 2)}.lab-stopwatch{gap:10px;display:grid}.lab-tap{background:var(--soft);border:2px solid var(--brand);touch-action:manipulation;border-radius:20px;place-items:center;gap:4px;min-height:120px;font-size:16px;font-weight:600;display:grid}.lab-tap strong{color:var(--brand);font:700 40px Space Mono,monospace}.lab-tap:active{background:var(--surface);transform:scale(.98)}.lab-big-result{text-align:center;background:linear-gradient(135deg, var(--lab-hero-a), var(--lab-hero-b));border:1px solid var(--line);border-radius:18px;justify-items:center;gap:2px;margin:12px 0;padding:18px;display:grid}.lab-big-result strong{color:var(--brand);font:700 clamp(34px,9vw,48px) Space Mono,monospace}.lab-big-result span{color:var(--muted);font-size:14px}.lab-big-result button{margin-top:8px}.lab-why{margin:12px 0;font-size:14px}.lab-why summary{cursor:pointer;min-height:32px;font-weight:600}.lab-why p,.lab-why ul{margin-top:6px}.lab-why li{color:var(--muted);margin:4px 0}.lab-meters{gap:12px;margin:12px 0;display:grid}.lab-meter{background:var(--soft);border-radius:16px;align-content:start;gap:8px;min-width:0;padding:14px;display:grid}.lab-meter-label{color:var(--muted);font-size:13px;font-weight:600}.lab-meter-value{color:var(--ink);font:700 clamp(34px,10vw,46px)/1 Space Mono,monospace}.lab-meter-value small{color:var(--muted);font-size:15px}.lab-note-name{color:var(--brand);font-weight:600}.lab-bar{background:var(--surface);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.lab-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--lab-r2), var(--accent), var(--error));height:100%;transition:width .1s linear;display:block}.lab-hold span{background:var(--success)}.lab-spectrum{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;height:90px;display:block}.lab-challenge{border:1px dashed var(--brand);border-radius:16px;margin:12px 0;padding:14px}.lab-challenge h3{margin-bottom:6px;font-size:18px;font-weight:600}.lab-challenge h3 .lab-hi{margin-left:6px;font-size:13px;display:inline}.lab-challenge p{color:var(--ink);margin:6px 0;font-size:14px}.lab-tuner{background:linear-gradient(90deg, var(--soft), var(--surface) 40%, var(--surface) 60%, var(--soft));border:1px solid var(--line);border-radius:999px;height:28px;margin:8px 0;position:relative}.lab-tuner-zone{background:color-mix(in srgb, var(--success) 22%, transparent);border-radius:999px;position:absolute;inset:4px 15%}.lab-tuner-needle{background:var(--accent);border-radius:2px;width:4px;margin-left:-2px;transition:left 80ms linear;position:absolute;top:-4px;bottom:-4px}.lab-win{font-weight:700;animation:.5s ease-out lab-pop;color:var(--success)!important}@keyframes lab-pop{0%{opacity:0;transform:scale(.9)}}.lab-record{align-items:end;gap:8px;margin:12px 0;display:grid}.lab-compass{justify-items:center;gap:6px;display:grid}.lab-compass svg{width:min(240px,70vw);height:auto}.lab-dial{fill:var(--surface);stroke:var(--line);stroke-width:3px}.lab-rose{transition:transform .25s ease-out}.lab-tick{stroke:var(--muted);stroke-width:1.5px}.lab-rose-n,.lab-rose-l{fill:var(--ink);font:700 16px DM Sans,sans-serif}.lab-rose-n,.lab-needle-n{fill:var(--error)}.lab-needle-s{fill:var(--muted)}.lab-lubber{fill:var(--accent)}.lab-compass-heading{font-size:16px}.lab-compass-heading strong{margin-right:6px;font:700 28px Space Mono,monospace}.lab-compass-heading .lab-hi{margin-left:6px;font-size:14px;display:inline}.lab-gauge{background:var(--surface);border:1px solid var(--line);border-radius:999px;height:16px;position:relative;overflow:hidden}.lab-gauge-earth{background:color-mix(in srgb, var(--success) 30%, transparent);position:absolute;top:0;bottom:0}.lab-gauge-fill{background:var(--lab-r3);border-radius:999px;transition:width .15s linear;position:absolute;top:5px;bottom:5px;left:0}.lab-pulse-view{text-align:center;justify-items:center;gap:8px;display:grid}.lab-pulse-ring{border:6px solid var(--soft);background:radial-gradient(circle,#7a1d1d,#2a0b0b);border-radius:50%;place-items:center;width:170px;height:170px;display:grid;position:relative;overflow:hidden}.lab-pulse-ring video{object-fit:cover;opacity:.55;width:100%;height:100%;position:absolute;inset:0}.lab-pulse-ring.is-on{border-color:var(--lab-live);animation:lab-beat var(--beat,1s) ease-out infinite}@keyframes lab-beat{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--lab-live) 55%, transparent)}70%{box-shadow:0 0 0 18px #0000}to{box-shadow:0 0 #0000}}.lab-pulse-bpm{color:#fff;text-shadow:0 1px 6px #0009;justify-items:center;display:grid;position:relative}.lab-pulse-bpm strong{font:700 46px/1 Space Mono,monospace}.lab-pulse-bpm small{letter-spacing:.1em;text-transform:uppercase;font-size:13px}@media (width>=560px){.lab-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}.lab-tab-sensor{display:block}.lab-sliders,.lab-meters{grid-template-columns:1fr 1fr}.lab-record{grid-template-columns:1fr auto}.lab-practical{grid-template-columns:1fr auto;align-items:end}.lab-stage-wrap,.lab-readout,.lab-explain,.lab-observations,.lab-exp,.lab-notebook{padding:20px}}@media (width>=760px){.lab-exp-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}.lab-explain-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-hero-inner{grid-template-columns:1.2fr 1fr;padding-top:40px;padding-bottom:56px}}@media (width>=1000px){.lab-optics-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);align-items:start}.lab-readout{position:sticky;top:88px}.lab-pocket-grid{grid-template-columns:minmax(0,1fr) 320px}.lab-notebook{position:sticky;top:88px}}@media (width<=400px){.lab-tabs button{padding:8px 2px;font-size:12px}.lab-values dd{font-size:16px}}@media (prefers-reduced-motion:reduce){.lab-swing,.lab-hero-ray,.lab-hero-img,.lab-pulse-ring.is-on,.lab-mode-live{animation:none!important}.lab-hero-ray{stroke-dashoffset:0}.lab-hero-img{opacity:1}}@media print{.lab-tabs,.lab-actions,.lab-practical,.lab-notebook{display:none}}@media (width<=600px){.lab-mark text,.lab-el-label,.lab-handle-label{font-size:24px}.lab-offscreen,.lab-hidden-note{font-size:22px}.lab-ray polyline,.lab-ray line{stroke-width:4px}.lab-object-arrow line,.lab-object-arrow path,.lab-image line,.lab-image path{stroke-width:6px}.lab-mark circle{r:6px}.lab-handle,.lab-focus-handle{r:13px}}:root{--lab-bulb:#ffd23f;--lab-bulb-glow:#ffc4288c;--lab-proton:#d9483b;--lab-neutron:#8b9099;--lab-electron:#2f6fd6;--lab-slab-fill:#78bee638;--lab-flow:#e0661b;--lab-paper:#fffdf7}:root[data-theme=dark]{--lab-bulb:#ffe27a;--lab-bulb-glow:#ffd65a80;--lab-proton:#ff7b6e;--lab-neutron:#a3a8b1;--lab-electron:#7fb0ff;--lab-slab-fill:#8cc8ff29;--lab-flow:#ffa25e;--lab-paper:#1f2124}.lab-circuit :focus-visible,.lab-atom :focus-visible,.lab-practical-app :focus-visible{outline:3px solid var(--accent);outline-offset:2px}.lab-small-h{margin:14px 0 8px;font-size:17px;font-weight:600}.lab-link{border-radius:999px;min-height:32px;padding:2px 10px;font-size:13px}.lab-circuit-presets{margin:0 0 12px}.lab-circuit-grid{gap:16px;display:grid}.lab-palette{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.lab-palette button{touch-action:none;user-select:none;border-radius:12px;justify-items:center;gap:2px;min-width:0;min-height:56px;padding:6px 2px;font-size:11.5px;font-weight:600;line-height:1.15;display:grid}.lab-palette button.is-active{border-color:var(--brand);background:var(--soft);box-shadow:inset 0 0 0 1px var(--brand)}.lab-palette-icon{width:100%;max-width:54px;height:28px}.lab-pal-fill{fill:var(--ink)}.lab-pal-x{stroke:var(--error);stroke-width:4px;stroke-linecap:round;fill:none}.lab-circuit-help{margin:4px 0 8px}.lab-board{cursor:crosshair}.lab-board.tool-select{cursor:pointer}.lab-part line,.lab-part polyline,.lab-part path{stroke:var(--ink);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;fill:none}.lab-cell-pos,.lab-part .lab-cell-pos{stroke:var(--ink);stroke-width:3px}.lab-cell-neg,.lab-part .lab-cell-neg{stroke:var(--ink);stroke-width:6px}.lab-part .lab-bulb{fill:var(--lab-bulb);stroke:var(--ink);stroke-width:2.5px}.lab-part .lab-bulb.is-over{stroke:var(--error);stroke-width:4px}.lab-glow{fill:var(--lab-bulb-glow);stroke:none;filter:blur(6px);transition:opacity .25s}.lab-term,.lab-part .lab-term{fill:var(--surface);stroke:var(--ink);stroke-width:2px}.lab-lever,.lab-part .lab-lever{stroke:var(--brand);stroke-width:4px;stroke-linecap:round}.lab-meter-body,.lab-part .lab-meter-body{fill:var(--surface);stroke:var(--ink);stroke-width:2.5px}.lab-meter-letter{fill:var(--ink);font:700 20px DM Sans,sans-serif}.lab-part .lab-fuse{fill:var(--soft);stroke-width:2px}.lab-part .is-blown line,.lab-part .is-blown .lab-fuse{stroke:var(--error)}.lab-slot{stroke:var(--line);stroke-width:2px;stroke-dasharray:3 7}.lab-slot.is-hot{stroke:var(--accent);stroke-width:6px;stroke-dasharray:none;opacity:.6}.lab-part .lab-sel-halo{stroke:var(--accent);stroke-width:22px;stroke-linecap:round;opacity:.22}.lab-part .lab-flow{stroke:var(--lab-flow);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:5 15;fill:none;pointer-events:none;animation:1s linear infinite lab-flow}.lab-part .lab-flow.is-danger{stroke:var(--error);stroke-width:5px}@keyframes lab-flow{0%{stroke-dashoffset:20px}to{stroke-dashoffset:0}}.lab-flow-arrow,.lab-part .lab-flow-arrow{stroke:var(--lab-flow);stroke-width:3px;fill:none}.lab-plus{fill:var(--error);font:700 16px DM Sans,sans-serif}.lab-part-label{fill:var(--muted);paint-order:stroke;stroke:var(--bg);stroke-width:4px;pointer-events:none;font:600 13px DM Sans,sans-serif}.lab-part-label.is-reading{fill:var(--brand);font-weight:700}.lab-part.is-bypassed>g line,.lab-part.is-bypassed>g polyline{stroke:var(--muted)}.lab-part.is-shorted .lab-cell-pos,.lab-part.is-shorted .lab-cell-neg{stroke:var(--error)}.lab-dot-node{fill:var(--muted);pointer-events:none}.lab-kb-cursor{stroke:var(--accent);stroke-width:10px;stroke-linecap:round;stroke-dasharray:2 8;pointer-events:none}.lab-ghost{opacity:.55;pointer-events:none}.lab-circuit-warn p{margin:2px 0}.lab-inspector .lab-exp-head h2{font-size:22px}.lab-time{margin-top:14px}.lab-practical .lab-switch{display:inline-flex}.lab-table-wrap{position:relative}.lab-table tr.is-selected{background:var(--soft)}.lab-table th[scope=row]{background:0 0;font-size:13px;font-weight:600}.lab-tabs-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-atom-svg{width:100%;max-width:380px;margin:0 auto;display:block}.lab-shell{fill:none;stroke:var(--line);stroke-width:1.5px;stroke-dasharray:3 5}.lab-shell.is-used{stroke:var(--muted);stroke-dasharray:none;opacity:.6}.lab-shell-name{fill:var(--muted);font:600 12px Space Mono,monospace}.lab-proton{fill:var(--lab-proton);stroke:var(--surface);stroke-width:1px}.lab-neutron{fill:var(--lab-neutron);stroke:var(--surface);stroke-width:1px}.lab-electron{fill:var(--lab-electron)}.lab-orbit{transform-origin:0 0;animation:20s linear infinite lab-spin}@keyframes lab-spin{to{transform:rotate(360deg)}}.lab-counters{gap:6px;margin:12px 0;display:grid}.lab-counter{background:var(--soft);border-radius:14px;justify-content:space-between;align-items:center;gap:6px;min-width:0;padding:6px 8px 6px 14px;display:flex}.lab-counter .lab-hi{margin-left:6px;font-size:12px;display:inline}.lab-counter-label{font-size:13px;font-weight:600}.lab-counter.is-p .lab-counter-label{color:var(--lab-proton)}.lab-counter.is-e .lab-counter-label{color:var(--lab-electron)}.lab-counter-row{justify-content:center;align-items:center;gap:4px;display:flex}.lab-counter-row button{border-radius:50%;width:40px;min-height:40px;padding:0;font-size:20px;line-height:1}.lab-counter-row output{min-width:2ch;font:700 22px Space Mono,monospace}.lab-ptable{grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;margin-top:6px;display:grid}.lab-pt-cell{border-radius:8px;min-width:0;min-height:40px;padding:10px 0 2px;font-size:14px;font-weight:700;position:relative}.lab-pt-z{color:var(--muted);font-size:9px;font-weight:400;position:absolute;top:1px;left:3px}.lab-pt-cell.is-metal{background:color-mix(in srgb, var(--lab-r1) 14%, var(--surface))}.lab-pt-cell.is-non-metal{background:color-mix(in srgb, var(--lab-r2) 14%, var(--surface))}.lab-pt-cell.is-metalloid{background:color-mix(in srgb, var(--lab-r3) 14%, var(--surface))}.lab-pt-cell.is-noble-gas{background:color-mix(in srgb, var(--lab-electron) 14%, var(--surface))}.lab-pt-cell.is-active{outline:3px solid var(--brand);outline-offset:-2px}.lab-notation{color:var(--brand);margin:4px 0 10px;font:700 clamp(34px,9vw,46px) DM Serif Display,serif}.lab-values dd.lab-dd-text{text-transform:capitalize;font-family:DM Sans,sans-serif;font-size:15px}.lab-atom-notes{margin:12px 0;padding-left:18px;font-size:14px}.lab-atom-notes li{margin:4px 0}.lab-challenges{padding:0;list-style:none}.lab-challenges li.is-done{color:var(--success);font-weight:600}.lab-atom-picks{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.lab-pick{border-radius:12px;justify-items:center;min-width:0;min-height:52px;padding:6px 2px;display:grid}.lab-pick strong{font-size:18px}.lab-pick span{color:var(--muted);font-size:11px}.lab-pick.is-metal{background:color-mix(in srgb, var(--lab-r1) 12%, var(--surface))}.lab-tray{border:1px dashed var(--line);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px;min-height:52px;margin:12px 0;padding:8px;display:flex}.lab-tray-chip{background:var(--soft);border-radius:999px;align-items:center;gap:6px;padding:2px 4px 2px 12px;font-weight:700;display:inline-flex}.lab-mol-views{gap:12px;margin-top:14px;display:grid}.lab-mol-views figure{background:var(--bg);border:1px solid var(--line);border-radius:14px;min-width:0;margin:0;padding:10px}.lab-mol-views figcaption{color:var(--muted);text-align:center;font-size:13px}.lab-mol-svg{width:100%;max-height:260px;display:block}.lab-bond line{stroke:var(--ink);stroke-width:3px;stroke-linecap:round}.lab-mol-atom circle{fill:var(--surface);stroke:var(--muted);stroke-width:2px}.lab-mol-atom text,.lab-lewis-sym{fill:var(--ink);font:700 18px DM Sans,sans-serif}.lab-lewis-sym{font-size:24px}.lab-mol-atom.is-o circle{stroke:#d9483b;fill:color-mix(in srgb, #d9483b 14%, var(--surface))}.lab-mol-atom.is-n circle{stroke:#3b6fd9;fill:color-mix(in srgb, #3b6fd9 14%, var(--surface))}.lab-mol-atom.is-c circle{stroke:var(--ink);fill:color-mix(in srgb, var(--ink) 12%, var(--surface))}.lab-mol-atom.is-cl circle,.lab-mol-atom.is-f circle{stroke:#1f9d55;fill:color-mix(in srgb, #1f9d55 14%, var(--surface))}.lab-mol-atom.is-s circle{stroke:#c79a00;fill:color-mix(in srgb, #c79a00 16%, var(--surface))}.lab-e{fill:var(--ink)}.lab-e-alt,.lab-e-moved{fill:var(--lab-flow)}.lab-bracket{fill:var(--muted);font:300 40px DM Sans,sans-serif}.lab-ion-charge{fill:var(--brand);font:700 18px DM Sans,sans-serif}.lab-arrow-text{fill:var(--muted);font:600 12px DM Sans,sans-serif}.lab-theory{padding-bottom:16px}.lab-theory-grid{gap:12px;display:grid}.lab-theory-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0;padding:14px 16px}.lab-theory-card h2{margin-bottom:6px;font-size:20px}.lab-theory-card summary{cursor:pointer}.lab-theory-card summary h2{display:inline}.lab-theory-card ul,.lab-theory-card ol{margin:6px 0 0;padding-left:20px;font-size:14.5px}.lab-theory-card li{margin:4px 0}.lab-theory-card p{font-size:14.5px}.lab-practical-app .lab-observations{margin-top:16px}.lab-schematic{background:var(--bg);border:1px solid var(--line);border-radius:14px;width:100%;max-width:360px;display:block}.lab-wire{fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linejoin:round}.lab-wire-v{stroke:var(--muted)}.lab-gap{fill:var(--bg);stroke:none}.lab-sch-t{fill:var(--ink);font:600 12px DM Sans,sans-serif}.lab-zig{fill:none;stroke:var(--ink);stroke-width:2.5px;stroke-linejoin:round}.lab-rheo{fill:var(--soft);stroke:var(--ink);stroke-width:2px}.lab-analog{background:var(--soft);text-align:center;border-radius:14px;min-width:0;margin:0;padding:8px}.lab-analog svg{width:100%;max-width:260px;margin:0 auto;display:block}.lab-analog figcaption{font-size:13px;font-weight:600}.lab-dial-face{fill:var(--lab-paper);stroke:var(--line);stroke-width:2px}.lab-tick-major{stroke:var(--ink);stroke-width:1.6px}.lab-tick-minor{stroke:var(--ink);stroke-width:.7px}.lab-dial-num{fill:var(--ink);font:600 9px Space Mono,monospace}.lab-dial-unit{fill:var(--muted);font:700 13px DM Sans,sans-serif}.lab-needle{stroke:var(--error);stroke-width:2px;stroke-linecap:round}.lab-needle-hub{fill:var(--ink)}.lab-graph{background:var(--lab-paper);border:1px solid var(--line);border-radius:14px;width:100%;max-width:520px;margin:8px 0 12px;display:block}.lab-graph-grid{stroke:color-mix(in srgb, var(--lab-electron) 22%, transparent);stroke-width:.8px}.lab-graph-axis{stroke:var(--ink);stroke-width:1.6px}.lab-graph-num{fill:var(--muted);font:9px Space Mono,monospace}.lab-graph-label{fill:var(--ink);font:600 11px DM Sans,sans-serif}.lab-graph-fit{stroke:var(--lab-flow);stroke-width:2px}.lab-graph-pt{fill:var(--brand)}.lab-check{margin-left:4px;font-weight:700;display:inline-block}.lab-check.is-ok{color:var(--success)}.lab-check.is-bad{color:var(--error)}.lab-num{width:5.5em;min-height:38px;padding:4px 6px;font-size:16px}.lab-entry td{vertical-align:middle}.lab-stage.lab-slab-svg,.lab-stage.lab-bench-svg{touch-action:auto}.lab-slab{fill:var(--lab-slab-fill);stroke:var(--lab-glass-line);stroke-width:2px}.lab-normal{stroke:var(--muted);stroke-width:1.2px;stroke-dasharray:5 4}.lab-ray-main{stroke:var(--lab-r1);stroke-width:2.6px;stroke-linecap:round;fill:none}.lab-ray-ext{stroke:var(--lab-r1);stroke-width:1.4px;stroke-dasharray:4 5;opacity:.7}.lab-angle-arc{fill:none;stroke:var(--lab-r3);stroke-width:1.8px}.lab-angle-t{fill:var(--lab-r3);font:italic 700 15px DM Sans,sans-serif}.lab-disp{stroke:var(--lab-r2);stroke-width:2.4px}.lab-pin{fill:var(--ink)}.lab-protractor-face{fill:color-mix(in srgb, var(--surface) 55%, transparent);stroke:var(--muted);stroke-width:1px}.lab-screen-view{width:100%;max-width:220px;margin:4px auto;display:block}.lab-screen-face{fill:#f6f3ea;stroke:var(--line)}.lab-img-trunk{fill:#7a5232}.lab-img-leaf{fill:#2f8a4a}.lab-img-house{fill:#b5523a}.lab-img-candle{fill:#e9e2cf;stroke:#b9ad8c}.lab-img-flame{fill:#ffb21a}.lab-bench-rail{fill:var(--soft)}.lab-screen-stand{fill:var(--muted)}.lab-screen-stand.is-sharp{fill:var(--success)}.lab-ray-par{stroke-dasharray:8 6}.lab-samples button.is-done{border-color:var(--success)}.lab-tube-wrap{grid-template-columns:110px 1fr;align-items:start;gap:12px}.lab-tube{width:100%;max-width:110px}.lab-tube-rim{fill:var(--soft);stroke:var(--muted)}.lab-tube-glass{fill:color-mix(in srgb, var(--surface) 70%, transparent);stroke:var(--muted);stroke-width:2.5px}.lab-tube-liquid{fill:#f2efe3;transition:fill .9s}.lab-drop{animation:.9s ease-in forwards lab-drop}@keyframes lab-drop{0%{opacity:1;transform:translateY(-40px)}to{opacity:0;transform:translateY(26px)}}.lab-ph-chart{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:8px 0 4px;display:grid}.lab-ph-chip{color:#fff;text-shadow:0 1px 2px #0000008c;border:2px solid #0000;border-radius:10px;min-height:44px;padding:0;font-weight:700}.lab-ph-chip.is-active{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset;transform:scale(1.06)}.lab-ph-scale{color:var(--muted);justify-content:space-between;margin-bottom:10px;font-size:11px;display:flex}.lab-swatch{vertical-align:-2px;border:1px solid var(--line);border-radius:4px;width:14px;height:14px;display:inline-block}@media (width>=560px){.lab-counters{grid-template-columns:repeat(3,minmax(0,1fr))}.lab-counter{text-align:center;justify-items:center;padding:10px 6px;display:grid}.lab-counter .lab-hi{margin-left:0;display:block}.lab-palette{grid-template-columns:repeat(10,minmax(0,1fr))}.lab-mol-views{grid-template-columns:1fr 1fr}.lab-ph-chart{grid-template-columns:repeat(8,minmax(0,1fr))}.lab-theory-grid{grid-template-columns:1fr 1fr}.lab-theory-card:last-child:nth-child(odd){grid-column:1/-1}}@media (width>=1000px){.lab-circuit-grid{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:start}.lab-ph-chart{grid-template-columns:repeat(15,minmax(0,1fr))}}@media (width<=600px){.lab-part-label{font-size:17px}.lab-meter-letter{font-size:22px}}@media (prefers-reduced-motion:reduce){.lab-part .lab-flow,.lab-orbit,.lab-drop,.lab-tube-liquid,.lab-glow{transition:none!important;animation:none!important}.lab-part .lab-flow{stroke-dasharray:none;opacity:.35}}@media print{.lab-palette,.lab-circuit-presets{display:none}}
