.flame-bottle__body{fill:var(--sim-surface);fill-opacity:.55;stroke:var(--sim-line-strong);stroke-width:2px}.flame-bottle__cap{fill:var(--sim-ink-faint);stroke:var(--sim-ink-soft);stroke-width:1.5px}.flame-bottle__salt{stroke:var(--sim-line-strong);stroke-width:1px}.flame-bottle__label{fill:var(--sim-ink-soft);text-anchor:middle;font-size:26px;font-weight:800}.flame-bottle{transition:transform var(--sim-motion-control) ease;transform-box:fill-box;transform-origin:bottom}.flame-bottle[data-active=true]{transform:translateY(-8px)}.flame-bottle[data-active=true] .flame-bottle__body{stroke:var(--sim-accent);stroke-width:3px}.flame-bottle[data-active=true] .flame-bottle__label{fill:var(--sim-accent-ink)}.flame-scene__caption{fill:var(--sim-ink-soft);text-anchor:middle;font-size:20px;font-weight:800}.flame-scene__loop{transition:transform var(--sim-motion-substance) cubic-bezier(.3, .7, .3, 1)}.flame-answers{gap:var(--sim-space-1);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.flame-answers:empty{display:none}.flame-answers .sim-button{justify-content:center}@media (prefers-reduced-motion:reduce){.flame-bottle,.flame-scene__loop{transition:none}}.ph-scene__bench-line{stroke:var(--sim-line);stroke-width:2px}.ph-scene__ph-mark line{stroke:var(--sim-ink);stroke-width:2px}.ph-scene__ph-mark text{fill:var(--sim-ink);text-anchor:end;font-size:22px;font-weight:650}.ph-scene__ph-mark--neutral text{font-size:29px;font-weight:900}.ph-scene__scale-word{fill:var(--sim-ink);letter-spacing:.04em;text-anchor:middle;transform-origin:202px 294px;font-size:30px;font-weight:850;transform:rotate(-90deg)}.ph-scene__scale-word+.ph-scene__scale-word{transform-origin:202px 570px}.ph-scene__caption{fill:var(--sim-ink-soft);letter-spacing:.08em;text-anchor:middle;text-transform:uppercase;font-size:15px;font-weight:800}.ph-scene__ph-marker{transform:translateY(var(--ph-marker-y,412px));transition:transform var(--sim-motion-readout) linear}.ph-scene__meter-title{fill:var(--sim-ink);text-anchor:middle;font-size:13px;font-weight:900}.ph-scene__meter-readout{fill:var(--sim-ink);font-family:var(--sim-font-mono);letter-spacing:-.08em;text-anchor:middle;font-size:25px;font-weight:850}.ph-scene__meter-state{fill:var(--sim-ink-soft);text-anchor:middle;font-size:9px;font-weight:850}.ph-scene__cable-socket{fill:var(--sim-ink);stroke:var(--sim-line-strong);stroke-width:2px}.ph-scene__probe{outline:none}.ph-scene__probe:focus-visible .ph-scene__probe-tip{stroke:var(--sim-accent);stroke-width:5px}.ph-scene__probe-tip{fill:var(--sim-accent);fill-opacity:.18;stroke:var(--sim-accent-ink);stroke-width:2px;transition:fill-opacity var(--sim-motion-control) ease}.sim-shell[data-probe-submerged=true] .ph-scene__probe-tip{fill-opacity:.8}.ph-scene__probe-cable-shadow{stroke:#ffffff9e;stroke-linecap:round;stroke-width:12px}.ph-scene__probe-cable{stroke:var(--sim-ink);stroke-linecap:round;stroke-width:7px}.ph-scene__dispenser-control{transform-box:fill-box;transform-origin:50%;transition:filter var(--sim-motion-control) ease, transform var(--sim-motion-control) ease}.sim-shell[data-solution-dispensing=true] .ph-scene__dispenser-control{filter:brightness(1.15);transform:translateY(4px)}.ph-scene__dispenser-label{fill:var(--sim-ink-soft);text-anchor:middle;font-size:16px;font-weight:800}.ph-scene__volume-pointer{transition:transform var(--sim-motion-readout) linear}.ph-scene__volume-reading{fill:var(--sim-ink);text-anchor:middle;font-size:20px;font-weight:850}.ph-scene__vessel-label{fill:var(--sim-ink);text-anchor:middle;font-size:25px;font-weight:800}@media (prefers-reduced-motion:reduce){.ph-scene__ph-marker,.ph-scene__volume-pointer,.ph-scene__dispenser-control,.ph-scene__probe-tip{transition:none}}.titration-scene{border-radius:var(--sim-radius-panel);background:var(--sim-surface-sunken);width:100%;height:auto;box-shadow:var(--sim-elevation-panel);touch-action:none;display:block}.titration-bench-line{stroke:var(--sim-line-strong);stroke-width:2px;opacity:.6}.titration-stand__pole,.titration-stand__arm,.titration-stand__clamp{fill:#9aa3ab;stroke:#5c646b;stroke-width:1.5px}.titration-stand__base{fill:#7b838b;stroke:#5c646b;stroke-width:1.5px}.titration-stopcock__body{fill:#a7b0b5;stroke:#5c646b;stroke-width:1.5px}.titration-stopcock__handle{fill:var(--sim-warm);stroke:var(--sim-warm-ink);stroke-width:1.5px;transform-box:fill-box;transform-origin:bottom;transition:transform var(--sim-motion-control) ease}.titration-stopcock__handle[data-open=true]{transform:rotate(45deg)}.titration-stream{stroke-width:4px;stroke-linecap:round}.titration-stream[data-flowing=false]{visibility:hidden}.titration-white-tile{fill:var(--sim-surface);stroke:var(--sim-line);stroke-width:1.5px}.titration-flask__liquid{stroke:#12222f2e;stroke-width:1.5px;transition:fill var(--sim-motion-substance) ease}.titration-flask__label{font:700 13px var(--sim-font);fill:var(--sim-ink-soft)}.titration-burette__reading{font:700 13px var(--sim-font-mono);fill:var(--sim-ink)}.titration-equation{margin:var(--sim-space-2) 0;padding:var(--sim-space-2);border-radius:var(--sim-radius-control);background:var(--sim-surface-muted);color:var(--sim-ink);font-family:var(--sim-font-mono);font-size:var(--sim-text-eyebrow);text-align:center}.titration-blurb{color:var(--sim-ink-soft);font-size:var(--sim-text-small);margin:0;line-height:1.4}.titration-run-buttons{gap:var(--sim-space-2);margin-top:var(--sim-space-3);display:flex}.titration-table__empty{color:var(--sim-ink-soft);font-size:var(--sim-text-small);margin:0}.titration-table__rows{gap:var(--sim-space-1);flex-direction:column;display:flex}.titration-table__row{align-items:center;gap:var(--sim-space-2);padding:var(--sim-space-1) var(--sim-space-2);border-radius:var(--sim-radius-control);background:var(--sim-surface-muted);font-size:var(--sim-text-small);grid-template-columns:auto 1fr auto;display:grid}.titration-table__row[data-kind=rough]{color:var(--sim-ink-soft);font-style:italic}.titration-table__row[data-concordant=true]{background:var(--sim-success-soft);color:var(--sim-success);font-weight:800}.titration-table__kind{text-transform:uppercase;font-size:var(--sim-text-eyebrow);font-weight:800}.titration-table__titre{font-family:var(--sim-font-mono);text-align:right;font-weight:800}.titration-concordance{margin:var(--sim-space-2) 0 0;font-size:var(--sim-text-small);color:var(--sim-ink-soft);font-weight:700}.titration-formula{margin:var(--sim-space-2) 0 0;font-family:var(--sim-font-mono);font-size:var(--sim-text-small);color:var(--sim-ink)}.titration-formula strong{color:var(--sim-accent-ink)}.osmosis-board{stroke-width:2px;opacity:.9}.osmosis-cylinder{cursor:grab;transition:transform var(--sim-motion-substance) cubic-bezier(.3, .7, .3, 1)}.osmosis-cylinder[data-held=true]{cursor:grabbing;filter:drop-shadow(0 8px 12px #0000004d);transition:none}.osmosis-cylinder:focus,.osmosis-cylinder:focus-visible{outline:none}.osmosis-cylinder:focus-visible .osmosis-cylinder__body{stroke:var(--sim-accent,#1769d1);stroke-width:6px}.osmosis-cylinder__body{stroke-width:3px}.osmosis-beaker__target{fill:var(--sim-accent-soft,#e9f3ff);stroke:var(--sim-accent,#1769d1);stroke-width:3px;stroke-dasharray:10 8;opacity:0;pointer-events:none;transition:opacity var(--sim-motion-control) ease}.osmosis-beaker__target[data-open=true]{opacity:.35}.osmosis-beaker__target[data-active=true]{opacity:.75}.osmosis-beaker__concentration{fill:var(--sim-ink);text-anchor:middle;font-size:22px;font-weight:800}.osmosis-beaker__change{fill:var(--sim-ink-faint);font-family:var(--sim-font-mono);text-anchor:middle;font-size:22px;font-weight:800}.osmosis-beaker__change[data-direction=gain]{fill:var(--sim-success)}.osmosis-beaker__change[data-direction=loss]{fill:var(--sim-danger)}@media (prefers-reduced-motion:reduce){.osmosis-cylinder,.osmosis-beaker__target{transition:none}}.food-scene{color:#30494b;width:100%;height:100%;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px;display:block}.food-scene text{fill:#f2f7f4;letter-spacing:.08em;font-size:12px;font-weight:800}.food-sample-tray rect{fill:#355e5d;stroke:#d5ede7;stroke-width:2px;cursor:pointer}.food-sample-tray circle{fill:#d9aa68}.food-sample-tray g{transform-box:fill-box;transform-origin:50%;transition:transform .2s}.food-sample-tray g:hover{transform:translateY(-5px)}.food-bottle__body{fill:#eff8f4;fill-opacity:.7;stroke:#54777b;stroke-width:3px}.food-bottle__cap{fill:#506266}.food-bottle text{fill:#345457;text-anchor:middle;font-size:14px}.food-working-tube{filter:drop-shadow(0 8px 5px #3048442e)}.food-working-tube [data-liquid]{transition:fill .35s}.food-samples,.food-reagents,.food-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.food-apparatus{flex-wrap:wrap;gap:.4rem;display:flex}.food-apparatus__item{border:1px solid var(--sim-line);color:var(--sim-ink-soft);padding:.35rem .5rem;font-size:.7rem}.food-reagents .sim-button{min-height:3.1rem;font-size:.7rem}.food-observation{border:1px solid var(--sim-line);background:var(--sim-surface-sunken);color:var(--sim-ink-soft);padding:.75rem;font-size:.78rem;line-height:1.45}.food-report{gap:.4rem;margin-top:.6rem;display:grid}.food-report__entry{border-left:3px solid var(--sim-accent);background:var(--sim-surface-sunken);padding:.55rem;font-size:.7rem;line-height:1.4}@media (width<=720px){.food-scene{min-height:18rem}.food-reagents,.food-actions{grid-template-columns:1fr}}.photo-scene{border-radius:var(--sim-radius-panel);background:var(--sim-surface-sunken);width:100%;height:auto;box-shadow:var(--sim-elevation-panel);display:block}.photo-pondweed{fill:none;stroke:#2f7d3a;stroke-width:5px;stroke-linecap:round}.photo-tube-label{font:700 13px var(--sim-font);fill:var(--sim-ink-soft)}.photo-distance-label{font:700 13px var(--sim-font-mono);fill:var(--sim-ink)}.photo-bubble{fill:#ffffffbf;stroke:#78bedcb3;stroke-width:1px}[data-photo-lamp-beam]{stroke-linecap:round}.photo-leaf-outline{fill:none;stroke:#2f6b2f;stroke-width:3px}.photo-leaf-zone{stroke:#2f6b2f;stroke-width:2px;transition:fill var(--sim-motion-substance) ease}.photo-leaf-foil{fill:#b9bec4;fill-opacity:.92;stroke:#7c8288;stroke-width:1.5px;transition:opacity var(--sim-motion-control) ease}.photo-leaf-vein{stroke:#2f6b2f;stroke-width:2px;opacity:.5}.photo-leaf-caption{font:700 14px var(--sim-font);fill:var(--sim-ink)}.photo-indicator-reading{font:600 11px var(--sim-font-mono);fill:var(--sim-ink-soft)}.photo-run-buttons{gap:var(--sim-space-2);margin-bottom:var(--sim-space-3);flex-wrap:wrap;display:flex}.photo-step-description{margin:0 0 var(--sim-space-2);padding:var(--sim-space-2);border-radius:var(--sim-radius-control);background:var(--sim-surface-muted);color:var(--sim-ink);font-size:var(--sim-text-small);line-height:1.4}.volumetric-scene{width:100%;height:100%;font-family:ui-sans-serif,system-ui,sans-serif;display:block}.volumetric-scene text{fill:#30494b;letter-spacing:.06em;font-size:12px;font-weight:800}.volumetric-scene .volumetric-scale text{letter-spacing:0;font-size:10px;font-weight:600}.volumetric-interactive{cursor:pointer;outline:none;transition:filter .2s,transform .2s}.volumetric-interactive:hover,.volumetric-interactive:focus-visible{filter:drop-shadow(0 8px 6px #2a514e47);transform:translateY(-3px)}.volumetric-interactive:focus-visible{stroke:#1769d1;stroke-width:4px}.volumetric-burette [data-burette-liquid],.volumetric-flask [data-flask-liquid]{transition:fill .35s,y .2s,height .2s}.volumetric-drop circle{animation:.55s ease-in infinite volumetric-drop}.volumetric-selected{border-left:3px solid var(--sim-accent);background:var(--sim-surface-sunken);color:var(--sim-ink-soft);margin:0;padding:.7rem;font-size:.78rem;line-height:1.45}.volumetric-task{border-left:3px solid var(--sim-accent);background:var(--sim-surface-sunken);padding:.7rem;font-size:.78rem;line-height:1.45}.volumetric-results{gap:.35rem;max-height:9rem;margin-top:.5rem;font-size:.7rem;display:grid;overflow:auto}.volumetric-results__row{background:var(--sim-surface-sunken);border-left:3px solid var(--sim-accent);grid-template-columns:1fr 1fr 1fr 1fr;gap:.25rem;padding:.4rem;display:grid}.volumetric-calculation{color:var(--sim-ink-soft);margin-top:.55rem;font-size:.74rem;line-height:1.45}.sim-button[data-volumetric-mode][aria-pressed=true]{outline:2px solid var(--sim-accent)}@keyframes volumetric-drop{0%{opacity:0;transform:translateY(-20px)}45%{opacity:1}to{opacity:0;transform:translateY(55px)}}@media (width<=720px){.volumetric-scene{min-height:20rem}.volumetric-results__row{grid-template-columns:1fr 1fr}.sim-segmented{grid-template-columns:repeat(2,minmax(0,1fr))}}.buoyancy-canvas{border-radius:var(--sim-radius-panel);background:var(--sim-surface-sunken);cursor:grab;touch-action:none;width:100%;height:100%;display:block}.buoyancy-canvas[data-grabbing=true]{cursor:grabbing}.buoyancy-tray{gap:var(--sim-space-2);display:grid}.buoyancy-tray__list{border:1px dashed var(--sim-line-strong);border-radius:var(--sim-radius-control);flex-wrap:wrap;align-content:center;gap:.25rem;min-height:1.7rem;margin:0;padding:.2rem .3rem;list-style:none;display:flex}.buoyancy-tray__list li{background:var(--sim-warm-soft);color:var(--sim-warm-ink);font-size:var(--sim-text-eyebrow);border-radius:999px;padding:.14rem .42rem;font-weight:750}.buoyancy-subject{font-size:var(--sim-text-body);align-items:center;gap:.4rem;margin:0;font-weight:800;display:flex}.buoyancy-verdict{background:var(--sim-surface-sunken);color:var(--sim-ink-soft);font-size:var(--sim-text-eyebrow);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.14rem .5rem;font-weight:850}.buoyancy-verdict[data-outcome=floats]{background:var(--sim-success-soft);color:var(--sim-success)}.buoyancy-verdict[data-outcome=sinks]{background:var(--sim-danger-soft);color:var(--sim-danger)}.buoyancy-verdict[data-outcome=neutral]{background:var(--sim-warm-soft);color:var(--sim-warm-ink)}.buoyancy-density-bar{gap:var(--sim-space-1);display:grid}.buoyancy-density-bar__track{border:1px solid var(--sim-line);background:var(--sim-surface-muted);border-radius:999px;height:.85rem;display:block;position:relative;overflow:hidden}.buoyancy-density-bar__fluid,.buoyancy-density-bar__solid{height:100%;transition:width var(--sim-motion-substance) cubic-bezier(.2, .8, .3, 1);border-radius:999px;position:absolute;top:0;left:0}.buoyancy-density-bar__fluid{background:#1769d173}.buoyancy-density-bar__solid{background:var(--sim-ink);height:45%;top:27.5%}@media (prefers-reduced-motion:reduce){.buoyancy-density-bar__fluid,.buoyancy-density-bar__solid{transition:none}}.circuit-scene{width:100%;height:100%}[data-switch]{cursor:pointer}.circuit-parallel-load{transition:opacity var(--sim-motion-readout) ease}.sim-shell[data-circuit-mode=series] .circuit-parallel-load{opacity:0;pointer-events:none}.sim-shell[data-circuit-mode=parallel] [data-series-load]{opacity:0}.circuit-meter__letter{fill:var(--sim-ink-soft);text-anchor:middle;font-size:26px;font-weight:800}.circuit-meter__reading{fill:var(--sim-ink);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.circuit-meter__needle{stroke:var(--sim-danger);stroke-width:4px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;transition:transform var(--sim-motion-readout) ease}.circuit-label{fill:var(--sim-ink-soft);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.circuit-voltage-labels{fill:var(--sim-warm-ink);font-variant-numeric:tabular-nums;transition:opacity var(--sim-motion-readout) ease;font-size:19px;font-weight:800}.sim-shell[data-show-voltage-labels=false] .circuit-voltage-labels{opacity:0}.circuit-current{pointer-events:none}.circuit-current__dot{fill:var(--sim-accent);opacity:.86;stroke:var(--sim-surface);stroke-width:2px}.circuit-current__dot--lamp{fill:var(--sim-warm)}.circuit-current__dot--resistor{fill:var(--sim-accent)}.circuit-playground__tools{flex-wrap:wrap;gap:8px;display:flex}.circuit-playground__tools .btn,.circuit-playground__tools button{background:var(--sim-surface);border:1px solid var(--sim-ink-soft);color:var(--sim-ink);cursor:pointer;border-radius:6px;padding:6px 10px;font-weight:700}.circuit-playground__list{border:1px dashed var(--sim-ink-soft);background:linear-gradient(#ffffff05,#00000005);border-radius:6px;min-height:48px;margin-top:10px;padding:8px}.circuit-playground__item{border-bottom:1px solid #00000008;align-items:center;gap:8px;padding:6px 4px;display:flex}.circuit-playground__item .small{color:var(--sim-ink-soft);margin-left:6px;font-size:12px}.circuit-playground__item input[type=range]{width:140px}.circuit-playground__icon circle{cursor:grab}.circuit-playground__icon:active circle{cursor:grabbing}.circuit-playground__wire{stroke-dasharray:6 4}.circuit-playground__ghost-line{transition:stroke-opacity .12s linear}.circuit-playground__ghost-anchor{transition:transform .12s,opacity .12s}.circuit-playground__icon{transition:transform .12s cubic-bezier(.22,.9,.3,1)}.circuit-playground__icon--snapping{transition:transform .18s cubic-bezier(.15,.9,.3,1)}@keyframes filament-pulse{0%{stroke-opacity:.6}50%{stroke-opacity:1}to{stroke-opacity:.6}}.circuit-playground__component [data-part=lamp-filament]{transform-origin:50%;animation:.8s linear infinite filament-pulse}.circuit-playground__node-hint{fill:#2563eb;fill-opacity:.12;stroke:#2563eb;stroke-width:1.5px}[data-part=lamp-glow]{transition:fill-opacity var(--sim-motion-readout) ease}@media (prefers-reduced-motion:reduce){.circuit-parallel-load,.circuit-meter__needle,.circuit-voltage-labels,[data-part=lamp-glow]{transition:none}}.density-stage{gap:var(--sim-space-3);flex-direction:column;width:100%;height:100%;display:flex}.density-number-line,.density-scene{border-radius:var(--sim-radius-panel);background:var(--sim-surface-sunken);width:100%;height:auto;box-shadow:var(--sim-elevation-panel);display:block}.density-scene{touch-action:none;flex:1}.density-number-line__title{font:700 12px var(--sim-font);fill:var(--sim-ink)}.density-number-line__track{stroke:#6c5ce7;stroke-width:3px}.density-number-line__tick{stroke:#6c5ce7;stroke-width:2px}.density-number-line__tick-label,.density-number-line__bound{font:10px var(--sim-font);fill:var(--sim-ink-soft)}.density-number-line__marker circle{stroke:var(--sim-surface);stroke-width:2px}.density-number-line__marker--a circle{fill:var(--sim-warm)}.density-number-line__marker--b circle{fill:var(--sim-accent)}.density-readout-row text{font:700 11px var(--sim-font-mono)}.density-readout-row .density-readout--a{fill:var(--sim-warm-ink)}.density-readout-row .density-readout--b{fill:var(--sim-accent-ink)}.density-contact-shadow{fill:#140c0538}.density-water-body{fill:#0ea5e9}.density-water-ripple{fill:#c9f1ff;stroke:var(--sim-surface);stroke-width:1.5px;opacity:.9}.density-water-pointer{fill:#6c5ce7}.density-water-label-bg{fill:var(--sim-surface);stroke:#6c5ce7;stroke-width:1.5px}.density-water-label{font:700 11px var(--sim-font-mono);fill:var(--sim-ink);text-anchor:middle;dominant-baseline:middle}.density-balance-screen{fill:#111827}.density-balance-text{font:700 13px var(--sim-font-mono);fill:#86efac;text-anchor:middle;dominant-baseline:middle}.density-float-hint{font:700 12px var(--sim-font);fill:var(--sim-accent-ink);text-anchor:middle}.density-object{cursor:grab}.density-object[data-held=true]{cursor:grabbing}.density-object-tint{fill:#0ea5e966}.density-object-slider__track{stroke:var(--sim-line-strong);stroke-width:4px;stroke-linecap:round}.density-object-slider__thumb{fill:#6c5ce7;stroke:var(--sim-surface);stroke-width:2px;cursor:pointer}.density-push-under{cursor:pointer}.density-push-under__disc{fill:var(--sim-accent);stroke:var(--sim-surface);stroke-width:2px}.density-push-under__arrow{stroke:var(--sim-surface);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none}.density-formula{margin:var(--sim-space-2) 0 0;font:12px var(--sim-font-mono);color:var(--sim-ink)}.density-formula strong{color:var(--sim-accent-ink)}.density-identity{margin:var(--sim-space-1) 0 0;min-height:1rem;font-size:var(--sim-text-small);color:var(--sim-ink);font-weight:700}.density-record-buttons{gap:var(--sim-space-2);display:flex}.density-record-log{margin-top:var(--sim-space-3)}.density-record-log__empty{font-size:var(--sim-text-small);color:var(--sim-ink-soft);margin:0}.density-record-log__list{gap:var(--sim-space-1);flex-direction:column;max-height:12rem;display:flex;overflow-y:auto}.density-record-log__row{align-items:center;gap:var(--sim-space-2);padding:var(--sim-space-1) var(--sim-space-2);border-radius:var(--sim-radius-control);background:var(--sim-surface-muted);font-size:var(--sim-text-small);display:flex}.density-record-log__slot{width:1.1rem;height:1.1rem;color:var(--sim-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:800;display:flex}.density-record-log__slot--a{background:var(--sim-warm)}.density-record-log__slot--b{background:var(--sim-accent)}.density-record-log__label{color:var(--sim-ink);flex-shrink:0;font-weight:700}.density-record-log__stats{color:var(--sim-ink-soft);font-family:var(--sim-font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gravity-scene{width:100%;height:100%}.gravity-stars{fill:var(--sim-surface);opacity:0;transition:opacity var(--sim-motion-substance) ease}.sim-shell[data-night=true] .gravity-stars{opacity:.72}.gravity-field-lines{opacity:.24;stroke:var(--sim-ink-faint);stroke-width:2px;stroke-dasharray:14 14}.sim-shell[data-night=true] .gravity-field-lines{stroke:var(--sim-surface);opacity:.18}.gravity-release{transition:transform var(--sim-motion-readout) ease}.gravity-mass{transition:transform var(--sim-motion-readout) linear}[data-mass-body]{transition:transform var(--sim-motion-readout) ease}.sim-shell[data-running=true] .gravity-mass{transition:none}.gravity-ground__edge{stroke:var(--sim-line-strong);stroke-width:3px;opacity:.5}.gravity-height__track{fill:#0000;cursor:ns-resize;pointer-events:all}.gravity-height__handle{cursor:ns-resize;transition:transform var(--sim-motion-readout) ease;outline:none}.gravity-height__knob{fill:var(--sim-accent);stroke:var(--sim-surface);stroke-width:4px}.gravity-height__handle:hover .gravity-height__knob,.gravity-height__handle:focus-visible .gravity-height__knob,.gravity-height__handle[data-dragging=true] .gravity-height__knob{fill:var(--sim-warm)}.gravity-guide{stroke:var(--sim-ink-soft);stroke-width:2px;stroke-dasharray:8 8;opacity:.7}.gravity-guide__cap{stroke:var(--sim-ink-soft);stroke-width:3px}.gravity-guide__label{fill:var(--sim-ink-soft);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.gravity-mass__label{fill:var(--sim-ink-soft);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.gravity-trail{pointer-events:none}.gravity-trail circle{fill:var(--sim-accent);opacity:.5}.gravity-trail[data-trail=b] circle{fill:var(--sim-warm)}.gravity-graph[hidden]{display:none}.gravity-graph__panel{fill:var(--sim-surface);fill-opacity:.9;stroke:var(--sim-line-strong);stroke-width:2px}.gravity-graph__title{fill:var(--sim-ink-soft);letter-spacing:0;text-transform:uppercase;font-size:18px;font-weight:800}.gravity-graph__axis{stroke:var(--sim-line-strong);stroke-width:2px}.gravity-graph__label{fill:var(--sim-ink-faint);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.gravity-graph__path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.gravity-graph__path--a,.gravity-graph__dot--a{stroke:var(--sim-accent);fill:var(--sim-accent)}.gravity-graph__path--b,.gravity-graph__dot--b{stroke:var(--sim-warm);fill:var(--sim-warm)}.sim-shell[data-night=true] .gravity-guide,.sim-shell[data-night=true] .gravity-guide__cap{stroke:#ffffffb3}.sim-shell[data-night=true] .gravity-guide__label,.sim-shell[data-night=true] .gravity-mass__label{fill:#ffffffe0}@media (prefers-reduced-motion:reduce){.gravity-release,.gravity-mass,[data-mass-body],.gravity-height__handle,.gravity-stars{transition:none}}.hooke-scene{touch-action:none;width:100%;height:100%}.hooke-mass{cursor:grab;transition:transform var(--sim-motion-substance) cubic-bezier(.3, .7, .3, 1)}.hooke-mass[data-held=true]{cursor:grabbing;filter:drop-shadow(0 6px 10px #00000047);transition:none}.hooke-mass:focus,.hooke-mass:focus-visible{outline:none}.hooke-mass:focus-visible [data-part=mass-body]{stroke:var(--sim-accent,#1769d1);stroke-width:4px}.hooke-mass__label{fill:var(--sim-ink);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:19px;font-weight:700}.hooke-hanger__target{fill:var(--sim-accent-soft,#e9f3ff);stroke:var(--sim-accent,#1769d1);stroke-width:3px;stroke-dasharray:8 7;opacity:0;transition:opacity var(--sim-motion-control) ease}.hooke-hanger[data-active=true] .hooke-hanger__target{opacity:.9}[data-spring][data-overstretched=true] [data-part=spring-coil]{stroke:var(--sim-danger,#b8372c)}.hooke-datum{stroke:var(--sim-accent,#1769d1);stroke-width:2px;stroke-dasharray:10 8;opacity:.75}.hooke-datum__label,.hooke-scale__label,.hooke-tray__label{fill:var(--sim-ink-soft);font-size:20px;font-weight:700}.hooke-tray__label{text-anchor:middle;font-size:22px}.hooke-extension{fill:var(--sim-accent-ink,#0f4c96);font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.hooke-graph__panel{fill:var(--sim-surface-muted,#f7fafc);stroke:var(--sim-line,#d4dde3);stroke-width:2px}.hooke-graph__axis{stroke:var(--sim-ink-soft);stroke-width:2px}.hooke-graph__title{fill:var(--sim-ink);text-anchor:middle;font-size:19px;font-weight:800}.hooke-graph__axis-label{fill:var(--sim-ink-soft);text-anchor:middle;font-size:16px;font-weight:600}.hooke-graph__line{fill:none;stroke:var(--sim-accent,#1769d1);stroke-width:3px;stroke-linejoin:round}.hooke-graph__point{fill:var(--sim-accent,#1769d1)}.hooke-graph__live{fill:var(--sim-warm,#c0761c);stroke:#fff;stroke-width:2px;transition:cx var(--sim-motion-readout) ease, cy var(--sim-motion-readout) ease}@media (prefers-reduced-motion:reduce){.hooke-mass,.hooke-graph__live,.hooke-hanger__target{transition:none}}.magnet-scene{touch-action:none;width:100%;height:100%}.magnet-board{fill:var(--sim-surface-sunken,#eaf1f7);stroke:var(--sim-line,#d4dde3);stroke-width:2px}.magnet-filings__band{fill:none;stroke:var(--sim-ink);stroke-linecap:round}.magnet-filings__band[data-filing-band=weak]{stroke-width:2px;opacity:.3}.magnet-filings__band[data-filing-band=medium]{stroke-width:2.6px;opacity:.55}.magnet-filings__band[data-filing-band=strong]{stroke-width:3.4px;opacity:.82}.magnet-needle{transition:transform var(--sim-motion-readout) ease}.sim-shell[data-compasses=false] .magnet-needles{display:none}.magnet-bar{cursor:grab}.magnet-bar:active{cursor:grabbing}.magnet-bar:focus,.magnet-bar:focus-visible{outline:none}.magnet-bar:focus-visible [data-part=magnet-body]{stroke:var(--sim-accent,#1769d1);stroke-width:4px}.magnet-pole{fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:34px;font-weight:800}.magnet-sample{transition:transform var(--sim-motion-substance) cubic-bezier(.3, .7, .3, 1)}@media (prefers-reduced-motion:reduce){.magnet-needle,.magnet-sample{transition:none}}.metre-rule-stage{isolation:isolate;background:linear-gradient(90deg, #14559208 1px, transparent 1px) 0 0 / 2.25rem 2.25rem, linear-gradient(var(--sim-surface), var(--sim-surface-muted));width:100%;height:100%;position:relative;overflow:hidden}.metre-rule-stage__surface{z-index:-1;border-top:1px solid var(--sim-line);background:repeating-linear-gradient(90deg, transparent 0 3.5rem, #17365508 3.5rem 3.6rem), linear-gradient(var(--sim-surface-sunken), var(--sim-line));position:absolute;inset:56% 0 0;box-shadow:inset 0 1rem 1.5rem #324c6212}.metre-rule-stage__object-label{color:var(--sim-ink-soft);font-size:var(--sim-text-small);margin:0;font-weight:700;position:absolute;top:12%;left:1.15rem}.block-object{z-index:2;pointer-events:none;position:absolute;top:19%}.block-object svg{filter:drop-shadow(0 .6rem .55rem #3f2a0e2e);width:100%;height:auto;display:block}.block-edge{z-index:3;pointer-events:none;border-left:2px dashed #0000;width:2px;height:42%;position:absolute;top:18%;transform:translate(-1px)}.zero-target{z-index:5;border-left:2px dashed var(--sim-accent);pointer-events:none;width:2px;height:17%;position:absolute;top:53%;transform:translate(-1px)}.zero-target span{background:var(--sim-accent-soft);color:var(--sim-accent-ink);font-size:var(--sim-text-eyebrow);white-space:nowrap;border-radius:.2rem;padding:.14rem .3rem;font-weight:800;position:absolute;top:-1.4rem;left:.3rem}.ruler-drag-layer{z-index:4;-webkit-user-select:none;user-select:none;position:absolute;top:58%}.ruler-drag-layer svg{pointer-events:none;width:100%;height:auto;display:block}.eye-indicator{--eye-angle:0deg;z-index:6;color:var(--sim-accent-ink);pointer-events:none;justify-items:center;display:grid;position:absolute;top:5%;transform:translate(-50%)}.eye-indicator__marker{border:2px solid var(--sim-accent);background:var(--sim-accent-soft);width:2rem;height:2rem;box-shadow:var(--sim-elevation-panel);transition:border-color var(--sim-motion-control) ease, background var(--sim-motion-control) ease;border-radius:999px;place-items:center;font-size:.82rem;display:grid}.eye-indicator__label{font-size:var(--sim-text-eyebrow);white-space:nowrap;background:#ffffffe0;border-radius:.25rem;margin-top:.25rem;padding:.18rem .34rem;font-weight:800}.eye-indicator__line{background:repeating-linear-gradient(var(--sim-accent) 0 .35rem, transparent .35rem .65rem);width:2px;height:clamp(10rem,29vh,17rem);transform:rotate(var(--eye-angle));transform-origin:top;transition:transform var(--sim-motion-control) ease;position:absolute;top:2rem}.zoom-inspector,.parallax-guide{z-index:8;border:1px solid var(--sim-line-strong);border-radius:var(--sim-radius-panel);width:min(19rem,42%);box-shadow:var(--sim-elevation-raised);background:#fffffff5;position:absolute;right:1rem;overflow:hidden}.zoom-inspector{top:1rem}.zoom-inspector__heading{justify-content:space-between;gap:var(--sim-space-2);border-bottom:1px solid var(--sim-line);background:var(--sim-accent-soft);color:var(--sim-accent-ink);font-size:var(--sim-text-eyebrow);padding:.45rem .65rem;font-weight:800;display:flex}.zoom-inspector__heading p,.zoom-inspector__heading span{margin:0}.zoom-inspector__viewport{background:var(--sim-surface);height:7.25rem;padding:.3rem}.zoom-ruler-svg{width:100%;height:100%;display:block}.zoom-ruler-svg__marker{stroke:var(--sim-warm);stroke-dasharray:5 4;stroke-width:2.5px}.parallax-guide{padding:.45rem;top:1rem}.parallax-guide svg{width:100%;height:auto;display:block}.parallax-guide p{color:var(--sim-ink-soft);font-size:var(--sim-text-eyebrow);text-align:center;margin:.35rem .15rem .05rem;font-weight:700}.zoom-inspector:not([hidden])~.parallax-guide{top:10.1rem}.sim-shell[data-highlight=alignment] .zero-target,.sim-shell[data-highlight=alignment] .block-edge--left{border-color:var(--sim-warm);filter:drop-shadow(0 0 .25rem #c0761c80)}.sim-shell[data-highlight=alignment] .block-edge--left,.sim-shell[data-highlight=reading] .block-edge--right{border-left-style:solid}.sim-shell[data-highlight=eye] .eye-indicator__marker{border-color:var(--sim-warm);background:var(--sim-warm-soft)}.sim-shell[data-highlight=reading] .block-edge--right{border-color:var(--sim-warm)}.sim-shell[data-status=correct] .block-edge--left,.sim-shell[data-status=correct] .block-edge--right{border-color:var(--sim-success);border-left-style:solid}@media (width<=38rem){.metre-rule-stage{min-height:27rem}.metre-rule-stage__object-label{top:9%}.block-object{top:20%}.ruler-drag-layer{top:61%}.eye-indicator{top:4%}.eye-indicator__line{height:12.5rem}.zoom-inspector,.parallax-guide{width:min(15.5rem,52%);right:.65rem}.zoom-inspector__viewport{height:5.9rem}.parallax-guide p{display:none}.zoom-inspector:not([hidden])~.parallax-guide{top:8.55rem}}:root{--sim-ink:#12222f;--sim-ink-soft:#4d6577;--sim-ink-faint:#7d8f9d;--sim-surface:#fff;--sim-surface-muted:#f7fafc;--sim-surface-sunken:#eaf1f7;--sim-line:#d4dde3;--sim-line-strong:#b3c3cf;--sim-accent:#1769d1;--sim-accent-soft:#e9f3ff;--sim-accent-ink:#0f4c96;--sim-warm:#c0761c;--sim-warm-soft:#fdf3e6;--sim-warm-ink:#8a5210;--sim-success:#16724a;--sim-success-soft:#e8f8ee;--sim-danger:#b8372c;--sim-danger-soft:#fdecea;--sim-space-1:.25rem;--sim-space-2:.5rem;--sim-space-3:.75rem;--sim-space-4:1rem;--sim-space-5:1.5rem;--sim-space-6:2rem;--sim-text-eyebrow:.66rem;--sim-text-small:.72rem;--sim-text-body:.82rem;--sim-text-title:clamp(.95rem, 1.6vw, 1.15rem);--sim-text-readout:1.05rem;--sim-font:Inter, ui-sans-serif, system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", sans-serif;--sim-font-mono:ui-monospace, sfmono-regular, consolas, monospace;--sim-radius-control:.5rem;--sim-radius-panel:.65rem;--sim-motion-readout:.13s;--sim-motion-control:.18s;--sim-motion-substance:.42s;--sim-motion-flow-cycle:.65s;--sim-motion-ripple-cycle:.9s;--sim-elevation-panel:0 .35rem .8rem #16314614;--sim-elevation-raised:0 .8rem 2rem #2f4d4b1a;--sim-panel-width:clamp(17rem, 21vw, 21.5rem);--sim-toolbar-height:3.4rem;--sim-feedback-height:2.75rem}@media (prefers-reduced-motion:reduce){:root{--sim-motion-readout:0s;--sim-motion-control:0s;--sim-motion-substance:0s}}.sim-loading{place-content:center;justify-items:center;gap:var(--sim-space-4);background:var(--sim-surface);min-height:100svh;color:var(--sim-ink-soft);display:grid}.sim-loading__spinner{border:3px solid var(--sim-line);border-top-color:var(--sim-accent);border-radius:50%;width:2.75rem;height:2.75rem;animation:.72s linear infinite sim-spin}.sim-loading__message{font-size:var(--sim-text-small);letter-spacing:.08em;text-transform:uppercase;margin:0;font-weight:800}@keyframes sim-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sim-loading__spinner{animation-duration:2s}}.sim-shell{background:var(--sim-surface);height:100svh;color:var(--sim-ink);font-family:var(--sim-font);grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.sim-shell[data-embedded=true] .sim-toolbar{display:none}.sim-toolbar{align-items:center;gap:var(--sim-space-3);min-height:var(--sim-toolbar-height);padding:var(--sim-space-2) clamp(var(--sim-space-4), 3vw, var(--sim-space-6));border-bottom:1px solid var(--sim-line);background:var(--sim-surface);display:flex}.sim-toolbar__brand{color:var(--sim-accent);font-size:var(--sim-text-eyebrow);letter-spacing:.12em;text-transform:uppercase;margin:0;font-weight:800}.sim-toolbar__title{font-size:var(--sim-text-title);margin:0;font-weight:800}.sim-toolbar__title span{color:var(--sim-ink-faint)}.sim-toolbar__directory{color:var(--sim-accent);font-size:var(--sim-text-eyebrow);letter-spacing:.08em;text-transform:uppercase;font-weight:800;text-decoration:none}.sim-toolbar__directory:hover,.sim-toolbar__directory:focus-visible{color:var(--sim-warm-ink);text-underline-offset:.2rem;text-decoration:underline}.sim-shell[data-standalone=true] .sim-toolbar__directory{display:none}.sim-toolbar__badge{color:var(--sim-ink-faint);font-size:var(--sim-text-eyebrow);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.sim-toolbar__actions{gap:var(--sim-space-2);margin-left:auto;display:flex}.sim-layout{grid-template-columns:minmax(0, 1fr) var(--sim-panel-width);min-height:0;display:grid}.sim-stage{background:linear-gradient(to bottom, var(--sim-surface) 0 74%, var(--sim-surface-sunken) 74% 100%);place-items:safe center center;min-width:0;min-height:0;display:grid;overflow:hidden auto}.sim-stage__frame{width:min(100%, calc((100svh - var(--sim-toolbar-height) - var(--sim-feedback-height)) * 16 / 9));max-height:100%;position:relative}.sim-stage__frame>svg,.sim-stage__frame>canvas{width:100%;height:100%;display:block}.sim-stage__frame svg text{font-family:var(--sim-font)}.sim-panel{align-content:start;gap:var(--sim-space-3);min-height:0;padding:clamp(var(--sim-space-4), 2vw, var(--sim-space-5));border-left:1px solid var(--sim-line);background:var(--sim-surface-muted);display:grid;overflow-y:auto}.sim-section{gap:var(--sim-space-2);padding-top:var(--sim-space-3);border-top:1px solid var(--sim-line);display:grid}.sim-section:first-child{border-top:0;padding-top:0}.sim-section__kicker{color:var(--sim-accent);font-size:var(--sim-text-eyebrow);letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:850}.sim-section__title{font-size:var(--sim-text-body);margin:0;font-weight:800}.sim-control{gap:var(--sim-space-1);display:grid}.sim-control__header{justify-content:space-between;align-items:baseline;gap:var(--sim-space-2);display:flex}.sim-control__label{color:var(--sim-ink-soft);font-size:var(--sim-text-small);font-weight:800}.sim-control__reading{color:var(--sim-ink);font-family:var(--sim-font-mono);font-size:var(--sim-text-small);font-variant-numeric:tabular-nums}.sim-control__hint{color:var(--sim-ink-faint);font-size:var(--sim-text-eyebrow);margin:0;line-height:1.4}.sim-control__hint span{color:var(--sim-ink-soft);font-weight:800}.sim-slider{width:100%;accent-color:var(--sim-accent);cursor:pointer}.sim-slider--warm{accent-color:var(--sim-warm)}.sim-select{border:1px solid var(--sim-line-strong);border-radius:var(--sim-radius-control);background:var(--sim-surface);min-height:2.3rem;box-shadow:var(--sim-elevation-panel);align-items:center;display:flex}.sim-select__swatch{width:.9rem;height:.9rem;margin-left:var(--sim-space-2);border:1px solid var(--sim-line-strong);background:var(--sim-substance-colour,var(--sim-surface-sunken));border-radius:.15rem;flex:none}.sim-select select{width:100%;min-width:0;height:2.2rem;padding:0 var(--sim-space-2);color:var(--sim-ink);font:inherit;font-size:var(--sim-text-body);background:0 0;border:0;outline:0;font-weight:700}.sim-number{min-height:2.3rem;padding-right:var(--sim-space-2);border:1px solid var(--sim-line-strong);border-radius:var(--sim-radius-control);background:var(--sim-surface);box-shadow:var(--sim-elevation-panel);align-items:center;display:flex}.sim-number input{width:100%;min-width:0;height:2.2rem;padding:0 var(--sim-space-2);color:var(--sim-ink);font:inherit;font-family:var(--sim-font-mono);font-size:var(--sim-text-body);background:0 0;border:0;outline:0;font-weight:700}.sim-number__unit{color:var(--sim-ink-faint);font-size:var(--sim-text-small);font-weight:800}.sim-segmented{border:1px solid var(--sim-line);border-radius:var(--sim-radius-control);background:var(--sim-surface);flex-wrap:wrap;gap:.2rem;padding:.2rem;display:flex}.sim-segmented__option{border-radius:calc(var(--sim-radius-control) - .15rem);color:var(--sim-ink-soft);font:inherit;font-size:var(--sim-text-small);cursor:pointer;transition:background var(--sim-motion-control) ease;background:0 0;border:0;flex:auto;padding:.35rem .5rem;font-weight:700}.sim-segmented__option:hover{background:var(--sim-accent-soft)}.sim-segmented__option[aria-pressed=true]{background:var(--sim-accent);color:var(--sim-surface)}.sim-toggles{gap:var(--sim-space-1);display:grid}.sim-toggle{align-items:center;gap:var(--sim-space-2);color:var(--sim-ink-soft);font-size:var(--sim-text-small);cursor:pointer;font-weight:700;display:flex}.sim-toggle input{accent-color:var(--sim-accent);cursor:pointer}.sim-toggle span{align-items:center;gap:.35rem;display:flex}.sim-legend{gap:var(--sim-space-1);color:var(--sim-ink-faint);font-size:var(--sim-text-eyebrow);margin:0;padding:0;font-weight:700;list-style:none;display:grid}.sim-legend li{align-items:center;gap:.35rem;display:flex}.sim-key{border-radius:.15rem;flex:none;width:.7rem;height:.7rem}.sim-button{border-radius:var(--sim-radius-control);min-height:2.1rem;font:inherit;font-size:var(--sim-text-small);cursor:pointer;transition:background var(--sim-motion-control) ease, border-color var(--sim-motion-control) ease;border:1px solid #0000;align-items:center;gap:.3rem;padding:.35rem .8rem;font-weight:800;display:inline-flex}.sim-button--primary{background:var(--sim-accent);color:var(--sim-surface)}.sim-button--primary:hover{background:var(--sim-accent-ink)}.sim-button--ghost{border-color:var(--sim-line-strong);background:var(--sim-surface);color:var(--sim-ink-soft)}.sim-button--ghost:hover{border-color:var(--sim-accent);background:var(--sim-accent-soft);color:var(--sim-accent-ink)}.sim-button--ghost[data-sound-toggle][aria-pressed=false]{color:var(--sim-ink-faint);text-decoration:line-through}.sim-button--ghost[aria-pressed=true]{border-color:var(--sim-accent);background:var(--sim-accent-soft);color:var(--sim-accent-ink)}.sim-button--warm{border-color:var(--sim-warm);background:var(--sim-warm-soft);color:var(--sim-warm-ink)}.sim-button--warm:hover{background:var(--sim-surface)}.sim-readings{gap:var(--sim-space-2);margin:0;display:grid}.sim-reading{justify-content:space-between;align-items:baseline;gap:var(--sim-space-3);display:flex}.sim-reading dt,.sim-reading dd{font-size:var(--sim-text-small);margin:0}.sim-reading dt{color:var(--sim-ink-soft)}.sim-reading dt small{color:var(--sim-ink-faint);font-size:var(--sim-text-eyebrow);font-weight:500;display:block}.sim-reading dd{color:var(--sim-ink);font-family:var(--sim-font-mono);font-variant-numeric:tabular-nums;text-align:right;font-weight:800}.sim-challenge__objective{margin:0 0 var(--sim-space-2);color:var(--sim-ink-soft);font-size:var(--sim-text-small);line-height:1.4}.sim-challenge__score-row{margin-bottom:var(--sim-space-3);font-size:var(--sim-text-small);justify-content:space-between;font-weight:800;display:flex}.sim-challenge__score{color:var(--sim-accent-ink)}.sim-challenge__streak{color:var(--sim-warm-ink)}.sim-challenge__result{margin-top:var(--sim-space-3);padding:var(--sim-space-3);border-radius:var(--sim-radius-panel);background:var(--sim-surface-muted);text-align:center}.sim-challenge__result[data-tone=success]{background:var(--sim-success-soft)}.sim-challenge__result[data-tone=warning]{background:var(--sim-warm-soft)}.sim-challenge__stars{margin:0 0 var(--sim-space-1);color:var(--sim-warm);letter-spacing:.15em;font-size:1.2rem}.sim-challenge__message{margin:0 0 var(--sim-space-3);color:var(--sim-ink);font-size:var(--sim-text-small);font-weight:700}.sim-hit{z-index:2;border-radius:var(--sim-radius-control);cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.sim-hit--circle{border-radius:50%}.sim-hit:hover{box-shadow:inset 0 0 0 3px #1769d173}.sim-hit span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sim-feedback{min-height:var(--sim-feedback-height);padding:var(--sim-space-1) clamp(var(--sim-space-4), 3vw, var(--sim-space-6));border-top:1px solid var(--sim-line);background:var(--sim-surface);place-items:center;display:grid}.sim-feedback p{width:min(100%,68rem);padding-left:var(--sim-space-3);border-left:3px solid var(--sim-line-strong);color:var(--sim-ink-soft);font-size:var(--sim-text-small);text-align:center;margin:0;font-weight:700;line-height:1.4}.sim-feedback p[data-tone=success]{border-color:var(--sim-success);color:var(--sim-success)}.sim-feedback p[data-tone=warning]{border-color:var(--sim-warm);color:var(--sim-warm-ink)}.sim-hit:focus-visible,.sim-button:focus-visible,.sim-slider:focus-visible,.sim-select select:focus-visible,.sim-number input:focus-visible,.sim-segmented__option:focus-visible,.sim-stage__frame [tabindex]:focus-visible{outline-offset:3px;outline:3px solid #1769d18c}@media (width<=60rem){.sim-shell{height:auto;min-height:100svh;overflow:visible}.sim-layout{grid-template-columns:1fr}.sim-stage{background:var(--sim-surface);min-height:auto}.sim-stage__frame{width:100%;max-height:none}.sim-panel{border-top:1px solid var(--sim-line);border-left:0;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.sim-panel>.sim-section:first-child{grid-column:1/-1}}@media (width<=34rem){.sim-toolbar__badge{display:none}.sim-panel{grid-template-columns:1fr}.sim-panel>.sim-section:first-child{grid-column:auto}}[data-part=stream]{opacity:0;transition:opacity var(--sim-motion-control) ease}.sim-shell[data-flowing=true] [data-part=stream],[data-part=stream][data-flowing=true]{opacity:.94;animation:sim-stream-flow var(--sim-motion-flow-cycle) linear infinite}@keyframes sim-stream-flow{to{stroke-dashoffset:-22px}}[data-part=liquid-fill]{transition:y var(--sim-motion-readout) linear, height var(--sim-motion-readout) linear, fill var(--sim-motion-substance) ease}[data-part=liquid-ripple]{opacity:.5}[data-part=liquid-ripple][data-disturbed=true],[data-part=disturbance-inner],[data-part=disturbance-outer]{transform-origin:50%;animation:sim-ripple var(--sim-motion-ripple-cycle) ease-in-out infinite alternate}@keyframes sim-ripple{0%{opacity:.42;transform:scaleX(.92)}to{opacity:.92;transform:scaleX(1.06)}}[data-part=tap-handle],[data-part=drain-handle]{transform-box:fill-box;transform-origin:50%;transition:transform var(--sim-motion-control) ease}.sim-shell[data-water-open=true] [data-part=tap-handle],.sim-shell[data-drain-open=true] [data-part=drain-handle]{transform:rotate(45deg)}[data-part=flame-outer],[data-part=flame-inner]{transform-box:fill-box;transform-origin:bottom;transition:opacity var(--sim-motion-substance) ease}.sim-shell[data-burning=true] [data-part=flame-outer]{animation:1.15s ease-in-out infinite alternate sim-flame-flicker}.sim-shell[data-burning=true] [data-part=flame-inner]{animation:.78s ease-in-out infinite alternate sim-flame-flicker}.sim-shell[data-burning=false] [data-part=flame-outer],.sim-shell[data-burning=false] [data-part=flame-inner]{opacity:0}@keyframes sim-flame-flicker{0%{transform:scale(.97,.94)skew(-1.5deg)}to{transform:scale(1.03,1.06)skew(1.5deg)}}.sim-draggable{cursor:grab;touch-action:none}.sim-draggable:active,.sim-draggable[data-dragging=true]{cursor:grabbing}.sim-draggable[data-dragging=true]{filter:drop-shadow(0 .5rem .7rem #12222f47)}@media (prefers-reduced-motion:reduce){[data-part=stream],[data-part=liquid-fill],[data-part=liquid-ripple],[data-part=disturbance-inner],[data-part=disturbance-outer],[data-part=tap-handle],[data-part=drain-handle],[data-part=flame-outer],[data-part=flame-inner]{transition:none;animation:none}}.lab-detail{--detail-accent:var(--sim-accent);min-height:100svh;padding-bottom:var(--sim-space-6);background:var(--sim-surface-muted);color:var(--sim-ink);font-family:var(--sim-font)}.lab-detail--physics{--detail-accent:var(--sim-warm)}.lab-detail--biology{--detail-accent:var(--sim-success)}.lab-detail__header{width:min(100% - 2rem,60rem);padding:clamp(1.5rem, 4vw, 3rem) 0 var(--sim-space-5);margin:0 auto}.lab-detail__back{margin-bottom:var(--sim-space-4);color:var(--sim-ink-soft);font-size:var(--sim-text-small);letter-spacing:.04em;font-weight:800;text-decoration:none;display:inline-block}.lab-detail__back:hover,.lab-detail__back:focus-visible{color:var(--sim-accent-ink)}.lab-detail__eyebrow{margin:0 0 var(--sim-space-2);color:var(--detail-accent);font-size:var(--sim-text-eyebrow);letter-spacing:.12em;text-transform:uppercase;font-weight:850}.lab-detail__header h1{letter-spacing:-.02em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:500}.lab-detail__summary{max-width:46ch;margin:var(--sim-space-3) 0 0;color:var(--sim-ink-soft);font-size:1.05rem;line-height:1.5}.lab-detail__actions{gap:var(--sim-space-2);margin-top:var(--sim-space-4);flex-wrap:wrap;display:flex}.lab-detail__actions .sim-button{min-height:2.6rem;font-size:var(--sim-text-body);padding:0 1.1rem}.lab-detail__offline-hint{margin-top:var(--sim-space-2);max-width:46rem;color:var(--sim-ink-faint);font-size:var(--sim-text-small)}.lab-detail__embed{gap:var(--sim-space-3);margin-top:var(--sim-space-4);padding:var(--sim-space-4);border:1px solid var(--sim-line);border-radius:var(--sim-radius-panel);background:var(--sim-surface);display:grid}.lab-detail__embed-field{gap:var(--sim-space-1);display:grid}.lab-detail__embed-field>span:first-child{color:var(--sim-ink-soft);font-size:var(--sim-text-eyebrow);letter-spacing:.08em;text-transform:uppercase;font-weight:850}.lab-detail__copy-row{gap:var(--sim-space-2);display:flex}.lab-detail__copy-row input,.lab-detail__copy-row textarea{border:1px solid var(--sim-line-strong);border-radius:var(--sim-radius-control);background:var(--sim-surface-muted);width:100%;min-width:0;color:var(--sim-ink);font-family:var(--sim-font-mono);font-size:var(--sim-text-small);resize:vertical;padding:.5rem .6rem}.lab-detail__copy-row .sim-button{flex:none}.lab-detail__embed-hint{min-height:1rem;color:var(--sim-success);font-size:var(--sim-text-eyebrow);margin:0;font-weight:800}.lab-detail__body{gap:var(--sim-space-5);width:min(100% - 2rem,60rem);margin:0 auto;display:grid}.lab-detail__section{border:1px solid var(--sim-line);border-radius:var(--sim-radius-panel);background:var(--sim-surface);padding:clamp(1.25rem,3vw,1.75rem)}.lab-detail__section h2{margin:0 0 var(--sim-space-3);font-size:1.15rem;font-weight:800}.lab-detail__section p{color:var(--sim-ink-soft);margin:0;font-size:.95rem;line-height:1.6}.lab-detail__section-head{justify-content:space-between;align-items:center;gap:var(--sim-space-3);margin-bottom:var(--sim-space-3);display:flex}.lab-detail__section-head h2{margin:0}.lab-detail__section-lead{margin-bottom:var(--sim-space-3)!important}.lab-detail__note{padding-left:var(--sim-space-3);border-left:3px solid var(--sim-line-strong);margin-top:var(--sim-space-3)!important;font-size:.88rem!important}.lab-detail__download{border:1px solid var(--sim-line-strong);border-radius:var(--sim-radius-control);background:var(--sim-surface);color:var(--sim-accent-ink);font:inherit;font-size:var(--sim-text-eyebrow);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;flex:none;padding:.3rem .7rem;font-weight:800}.lab-detail__download:hover{border-color:var(--sim-accent);background:var(--sim-accent-soft)}.lab-detail__items{gap:var(--sim-space-2);margin:0;padding:0;list-style:none;display:grid}.lab-detail__item{align-items:baseline;gap:.3rem var(--sim-space-3);padding-bottom:var(--sim-space-2);border-bottom:1px solid var(--sim-line);flex-wrap:wrap;display:flex}.lab-detail__item-name{min-width:9rem;font-weight:800}.lab-detail__item-role{color:var(--sim-ink-soft);font-size:.9rem}.lab-detail__steps{gap:var(--sim-space-3);counter-reset:step;margin:0;padding:0;list-style:none;display:grid}.lab-detail__step{gap:var(--sim-space-3);display:flex}.lab-detail__step-number{background:var(--detail-accent);width:1.9rem;height:1.9rem;color:var(--sim-surface);font-size:var(--sim-text-small);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.lab-detail__step strong{margin-bottom:.15rem;display:block}.lab-detail__step span span{color:var(--sim-ink-soft);font-size:.92rem;line-height:1.5}.lab-detail__table-wrap{overflow-x:auto}.lab-detail__table{border-collapse:collapse;width:100%;font-size:.9rem}.lab-detail__table th,.lab-detail__table td{border-bottom:1px solid var(--sim-line);text-align:left;vertical-align:top;padding:.55rem .7rem}.lab-detail__table thead th{color:var(--sim-ink-soft);font-size:var(--sim-text-eyebrow);letter-spacing:.06em;text-transform:uppercase;font-weight:850}.lab-detail__table tbody th{font-weight:800}.lab-detail__table td{color:var(--sim-ink-soft)}.lab-detail__symbol{font-family:var(--sim-font-mono);font-weight:700}.lab-detail__section--downloads{background:var(--sim-surface-sunken)}.lab-detail__download-row{gap:var(--sim-space-2);margin-top:var(--sim-space-3);flex-wrap:wrap;display:flex}.lab-detail__download-row .sim-button{min-height:2.5rem;padding:0 1rem}.lab-detail__back:focus-visible,.lab-detail__download:focus-visible,.lab-detail__copy-row input:focus-visible,.lab-detail__copy-row textarea:focus-visible{outline-offset:2px;outline:3px solid #1769d18c}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#12233a;font-synthesis:none;background:#eef3f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{min-width:0;min-height:100%;margin:0}body{min-height:100svh}button,input{font:inherit}button{cursor:pointer}.simulation-header__directory-link,.buoyancy-toolbar__directory-link{color:#3b7772;letter-spacing:.08em;text-transform:uppercase;margin-left:auto;font-size:.7rem;font-weight:800;text-decoration:none}.simulation-header__directory-link:hover,.simulation-header__directory-link:focus-visible,.buoyancy-toolbar__directory-link:hover,.buoyancy-toolbar__directory-link:focus-visible{color:#b16b27;text-underline-offset:.2rem;text-decoration:underline}.simulation-header__directory-link+.simulation-header__activity,.buoyancy-toolbar__directory-link+.buoyancy-toolbar__actions{margin-left:1rem}.route-unavailable{text-align:center;place-content:center;gap:.75rem;min-height:100svh;padding:2rem;display:grid}.route-unavailable h1,.route-unavailable p{margin:0}.route-unavailable__eyebrow{color:#1769d1;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:800}.route-unavailable a{color:#0c5fc6;font-weight:700}.lab-directory{--ink:#17252c;--muted:#64747a;--line:#d7e0de;min-height:100svh;color:var(--ink);background:linear-gradient(135deg,#ffffffd1,#0000 42%),#f3f6f1}.lab-directory__header,.lab-directory__main,.lab-directory__footer{width:min(100% - 2rem,76rem);margin:0 auto}.lab-directory__header{justify-content:space-between;align-items:end;gap:2rem;padding:clamp(3rem,9vw,7rem) 0 clamp(2.5rem,6vw,5rem);display:flex}.lab-directory__eyebrow,.lab-directory__card-subject,.lab-directory__subject-heading>span:last-child,.lab-directory__footer{letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:800}.lab-directory__eyebrow{color:#3b7772;margin:0 0 1.2rem}.lab-directory__eyebrow span{color:#c58a3b;padding:0 .45rem}.lab-directory h1,.lab-directory h2,.lab-directory p{margin:0}.lab-directory h1{letter-spacing:-.03em;max-width:12ch;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.7rem,7vw,5.8rem);font-weight:500;line-height:.95}.lab-directory__intro{color:var(--muted);font-size:1rem;margin-top:1.25rem!important}.lab-directory__count{color:#3b7772;justify-items:end;display:grid}.lab-directory__count strong{font-family:Georgia,Times New Roman,serif;font-size:3.6rem;font-weight:500;line-height:.8}.lab-directory__count span{letter-spacing:.1em;text-transform:uppercase;margin-top:.6rem;font-size:.7rem}.lab-directory__subject{border-top:1px solid var(--line);padding:1.7rem 0 2.8rem}.lab-directory__subject-heading{align-items:center;gap:.7rem;margin-bottom:1.15rem;display:flex}.lab-directory__subject-heading h2{letter-spacing:.08em;text-transform:uppercase;font-size:.95rem}.lab-directory__subject-heading>span:last-child{color:#91a09e;margin-left:auto;font-size:.62rem}.lab-directory__subject-marker{border-radius:50%;width:.65rem;height:.65rem}.lab-directory__subject-marker--physics{background:#d18432}.lab-directory__subject-marker--chemistry{background:#3b7772}.lab-directory__subject-marker--biology{background:#4a8a3f}.lab-directory__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.lab-directory__card{border:1px solid var(--line);min-height:12rem;color:var(--ink);background:#ffffffc7;border-radius:.35rem;flex-direction:column;padding:1.5rem;text-decoration:none;transition:border-color .16s,transform .16s,box-shadow .16s;display:flex}.lab-directory__card:hover,.lab-directory__card:focus-visible{border-color:#719794;transform:translateY(-3px);box-shadow:0 .8rem 2rem #2f4d4b1a}.lab-directory__card-subject{color:#b16b27;font-size:.62rem}.lab-directory__card--chemistry .lab-directory__card-subject{color:#3b7772}.lab-directory__card--biology .lab-directory__card-subject{color:#4a8a3f}.lab-directory__card-title{margin-top:.9rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.6rem,3vw,2.4rem)}.lab-directory__card-description{max-width:33ch;color:var(--muted);margin-top:.65rem;font-size:.9rem;line-height:1.5}.lab-directory__card-footer{color:#84928f;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.5rem;font-size:.68rem;display:flex}.lab-directory__card-footer span:last-child{color:#3b7772;font-size:1.1rem}.lab-directory__footer{color:#3b7772;padding:1.5rem 0 2.5rem}.lab-directory__footer span{color:#9ba7a4;margin-left:.75rem}@media (width<=620px){.lab-directory__header{flex-direction:column;align-items:start}.lab-directory__count{justify-items:start}.lab-directory__grid{grid-template-columns:1fr}.lab-directory__footer span{margin:.45rem 0 0;display:block}}
