:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14161a;--plate:#1f232a;--post:#5b6472;--ink:#e8eaee;--muted:#9aa3b2;--ghost:#6fb3ff;--part:#2f3743;--part-edge:#8b96a8;--wire:#3d4a5c;--snap:#c9cfd8;--lamp:#ffd166;--sel:#6fb3ff;--warn:#ff6b5b;--button:#2a303a;--run:#2e9e62;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}main{max-width:960px;padding:16px 16px calc(96px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);gap:12px;margin:0 auto;display:grid}button{font:inherit;color:var(--ink);background:var(--button);border:1px solid #0000;border-radius:10px;min-width:44px;min-height:44px;padding:0 14px}button[aria-pressed=true]{border-color:var(--sel);color:var(--sel)}button:disabled{opacity:.4}.ticket{background:var(--plate);border-radius:12px;padding:12px 16px}.ticket h1{margin:4px 0;font-size:1.25rem}.ticket p{color:var(--muted);margin:0}.ticket-no{color:var(--ghost);font-weight:600}.board-wrap{position:relative}.board{width:min(100%, calc((100dvh - var(--board-reserve,330px)) * 438 / 318));background:var(--plate);touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:12px;height:auto;margin:0 auto;display:block}.board.zoomed{touch-action:none}.board .post{fill:var(--post)}.board .label{fill:var(--muted);font-size:12px}.board .hit{fill:#0000;cursor:crosshair}.board .hit:focus-visible{fill:color-mix(in srgb, var(--sel) 25%, transparent);outline:none}.board.placing .part{pointer-events:none}.ghost rect{fill:none;stroke:var(--ghost);stroke-dasharray:4 3;stroke-width:1.5px}.part{cursor:pointer}.part.kind-wire .body{fill:var(--wire)}.part:focus-visible{outline:none}.part:focus-visible .body{stroke:var(--sel);stroke-dasharray:3 2}.part .snap{fill:var(--snap)}.part .pole{fill:var(--bg);pointer-events:none;font-size:12px;font-weight:700}.part .name{fill:var(--ink);pointer-events:none;font-size:8px;font-weight:600}.bulb{fill:var(--lamp);stroke:var(--lamp);pointer-events:none;transition:fill-opacity 60ms linear}.status{gap:6px;min-height:0;display:grid}.chip{background:var(--plate);color:var(--muted);border-radius:10px;margin:0;padding:10px 14px}.chip.warn{color:var(--warn);border:1px solid var(--warn)}.actions,.tray{align-items:center;gap:8px;display:flex}.actions span{color:var(--muted);margin-right:auto}.tray{scrollbar-width:thin;padding-bottom:4px;overflow-x:auto}.tray button{flex:none}.controls{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);border-top:1px solid var(--plate);justify-content:flex-end;gap:8px;display:flex;position:fixed;inset:auto 0 0}.controls button{padding:0 12px}.controls .run{background:var(--run);min-width:80px;font-weight:600}.controls .run[aria-pressed=true]{background:var(--warn);color:var(--bg);border-color:#0000}@media (prefers-reduced-motion:reduce){.bulb{transition:none}}:root{--good:#2e9e62}.ticket{position:relative}.ticket .back{color:var(--muted);background:0 0;position:absolute;top:8px;right:8px}.primary{background:var(--ghost);color:var(--bg);font-weight:600}.picker-top{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.picker-top .primary{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pack-list h2{color:var(--muted);margin:8px 0;font-size:.95rem;font-weight:600}.pack-list ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pack-list button{text-align:left;align-items:center;gap:10px;width:100%;display:flex}.lab-no{color:var(--ghost);font-variant-numeric:tabular-nums;min-width:2.5ch}.lab-title{flex:1}.lab-mark{color:var(--good)}.later{color:var(--muted)}.later summary{cursor:pointer;align-items:center;min-height:44px;display:flex}.chip.progress.good{color:var(--good);border:1px solid var(--good)}.observe{background:var(--plate);border-radius:12px;gap:10px;padding:12px 16px;display:grid}.observe label{align-items:flex-start;gap:12px;min-height:44px;display:flex}.observe input{width:24px;height:24px;accent-color:var(--good);flex:none;margin:2px 0 0}.observe label.waiting{color:var(--muted)}.observe small{color:var(--muted);margin-top:4px;display:block}.observe .seen{color:var(--good);margin:0}.observe .why{color:var(--muted);margin:0}.observe-actions{justify-content:flex-end;gap:8px;display:flex}.observe-actions:empty{display:none}.lesson{background:var(--plate);border-radius:12px;padding:0 16px}.lesson summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.lesson h2{color:var(--muted);margin:12px 0 4px;font-size:.9rem}.lesson p,.lesson ul,.lesson ol{margin:0 0 8px;line-height:1.45}.lesson ul,.lesson ol{padding-left:20px}.lesson section:last-child{padding-bottom:8px}.part.kind-motor .blade{fill:var(--sel);fill-opacity:.55;stroke:var(--sel);stroke-width:1px}.part.kind-switch{touch-action:none}.mark{fill:var(--warn);letter-spacing:.08em;pointer-events:none;font-size:10px;font-weight:700}.chip button{margin-left:6px}.part{touch-action:none}.tray button{touch-action:pan-x;-webkit-user-select:none;user-select:none}.drop rect{fill:none;stroke-width:2.5px;stroke-dasharray:5 3}.drop.ok rect{stroke:var(--good);fill:color-mix(in srgb, var(--good) 18%, transparent)}.drop.bad rect{stroke:var(--warn);fill:color-mix(in srgb, var(--warn) 18%, transparent)}.drop{pointer-events:none}.zoom{gap:4px;display:flex;position:absolute;bottom:6px;right:6px}.zoom button{background:color-mix(in srgb, var(--button) 85%, transparent);min-width:36px;min-height:36px;padding:0 10px}.zoom button:disabled{display:none}@media (pointer:coarse){.zoom button[aria-label]{display:none}}@media (width>=1024px),(width>=640px) and (orientation:landscape){main.bench{--board-reserve:104px;grid-template:"board ticket""board side"1fr/minmax(0,1fr) minmax(280px,360px);align-items:start;max-width:1400px}.bench>.ticket{grid-area:ticket}.bench>.board-wrap{grid-area:board;position:sticky;top:16px}.bench>.side{grid-area:side}.bench .tray{flex-wrap:wrap;overflow:visible}}.side{gap:12px;min-width:0;display:grid}:root{--led:#ff5a4f}.bulb.led{fill:var(--led);stroke:var(--led)}.part.kind-resistor .body{fill:#4a3f35}.probe-post{fill:none;stroke:var(--ghost);stroke-width:2px;stroke-dasharray:3 3}.sample{stroke-width:8px;stroke-linecap:round}.sample-metal{stroke:var(--snap)}.sample-plastic{stroke:#e6e1d3;stroke-opacity:.85}.sample-finger{stroke:#d9a47e}.samples{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.samples span{color:var(--muted);margin-right:4px}.part.kind-melody .body,.part.kind-alarm .body{fill:#243b36}.part .note.on{fill:var(--good)}.part.kind-speaker .cone{fill:#1b1f25;stroke:var(--part-edge)}.part.kind-speaker .cap{fill:var(--part-edge)}.part.kind-speaker .waves{fill:none;stroke:var(--good);stroke-width:1.5px}.part.kind-piezo .disc{fill:#b9a36a;stroke:#e0cf9c;stroke-width:1.5px}.part.kind-piezo .disc.knock{fill:#e0cf9c}.ticket .safety{color:var(--lamp);margin-top:6px;font-size:.9rem}.chip.good{color:var(--good);border:1px solid var(--good)}.controls .run.nudge{animation:1.2s ease-in-out infinite nudge}@keyframes nudge{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--run) 70%, transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--run) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.controls .run.nudge{outline:3px solid var(--good);outline-offset:2px;animation:none}}.ticket{z-index:5;padding:0 8px 0 14px;position:sticky;top:0}.ticket-line{align-items:center;gap:6px;min-height:48px;display:flex}.ticket-line h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:1.05rem;overflow:hidden}.ticket .back{padding:0 8px;position:static}.ticket .icon{color:var(--muted);background:0 0;padding:0;font-size:1.15rem}.ticket .warn-icon{color:var(--lamp)}.ticket-details{padding:0 0 12px;display:none}.ticket-details p{margin:0 0 6px}.ticket .win{color:var(--ink)}.ticket.open .ticket-details{background:var(--plate);border:1px solid var(--part-edge);border-radius:12px;margin-top:4px;padding:12px 14px;display:block;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 24px #00000073}main.bench{--board-reserve:270px;padding-top:8px}@media (width>=1024px),(width>=640px) and (orientation:landscape){main.bench{--board-reserve:104px}.ticket{padding:12px 16px;position:static}.ticket .icon{display:none}.ticket-details,.ticket.open .ticket-details{box-shadow:none;background:0 0;border:0;margin:0;padding:6px 0 0;display:block;position:static}}.board .held{filter:drop-shadow(3px 6px 4px #0000008c);transform:translate(-4px,-6px)}.board.placing .held .part{pointer-events:auto;cursor:grab}.board .held .part .body{stroke:var(--sel);stroke-width:2.5px}.part.lifted{opacity:.3}.held-bar{gap:8px;display:flex}.held-bar button{min-width:52px;min-height:52px;font-size:1.15rem;font-weight:700}.held-bar .place{background:var(--good);color:var(--bg);flex:1}.held-bar .place:disabled{background:var(--button);color:var(--muted);opacity:1}@media (prefers-reduced-motion:reduce){.board .held{transform:none}}:root{--plus:#c62828;--minus:#111316;--minus-rim:#c9cfd8;--pole-ink:#fff}.part .snap.plus{fill:var(--plus);stroke:#ffb4ab;stroke-width:1.5px}.part .snap.minus{fill:var(--minus);stroke:var(--minus-rim);stroke-width:1.5px}.part .pole{fill:var(--pole-ink);font-size:13px}.ghost .ghost-pole circle{stroke-width:1.5px;stroke-dasharray:none;fill-opacity:.35}.ghost .ghost-pole.plus circle{fill:var(--plus);stroke:var(--plus)}.ghost .ghost-pole.minus circle{fill:var(--minus);stroke:var(--minus-rim)}.ghost .ghost-pole text{fill:var(--ink);font-size:11px;font-weight:700}.drop .ghost-pole{display:none}.poles{pointer-events:none}.poles .badge circle{stroke-width:1.2px}.poles .badge.plus circle{fill:var(--plus);stroke:#ffb4ab}.poles .badge.minus circle{fill:var(--minus);stroke:var(--minus-rim)}.poles .badge text{fill:var(--pole-ink);font-size:10px;font-weight:800}.part .body{fill:#3a4250;stroke:#8b96a8;stroke-width:1.5px}.part .snap{fill:#d5dae1;stroke:#7d8795;stroke-width:1.2px}.part .art-label{fill:var(--ink);pointer-events:none;font-size:9px;font-weight:700}.part .art-label.small{fill:var(--muted);font-size:7px}.part .art-label.on-dark{fill:#fff;font-size:11px}.part .pin{fill:#cfe8d8;pointer-events:none;font-size:7.5px;font-weight:700}.part .note{fill:var(--good);pointer-events:none;font-size:12px}.part.kind-wire .body{fill:#2d6fd8;stroke:#8fbaff}.part.kind-wire .strip-shine{fill:#fff;opacity:.18}.part.kind-battery .body{fill:#23272e}.part .cell{fill:#16181c;stroke:#8e97a4;stroke-width:1px}.part .cell-band,.part .cell-nub{fill:#c9cfd8}.part .slot{fill:#121418}.part .slider{fill:#e8eaee;stroke:#9aa3b2;transition:x .12s}.part .button-ring{fill:#121418}.part .button-cap{fill:#f2c14e;stroke:#fff1c2;stroke-width:1px}.part .button-cap.down{fill:#b8902f}.part .socket{fill:#8e97a4}.part .glass{fill:#ffffff14;stroke:#dfe5ee;stroke-width:1.2px}.part .filament{fill:none;stroke:#9a7a44;stroke-width:1.4px;stroke-linejoin:round}.part .can{fill:#b9c0ca;stroke:#6b7380;stroke-width:1.2px}.part .can-rim{fill:#8f97a3}.part.kind-motor .hub{fill:#f0f2f5}.part.kind-motor .tab{fill:#2a2f37}.part .lead{stroke:#c9cfd8;stroke-width:2px}.part .resistor{fill:#dcc79c;stroke:#a8925f;stroke-width:1px}.part .dome{fill:var(--led);fill-opacity:.55;stroke:#ffb3ad;stroke-width:1.2px}.part .dome-flat{stroke:#ffb3ad;stroke-width:2px}.part .cone-ring{fill:none;stroke:#4a525f;stroke-width:1px}.part .disc-inner{fill:#d9c690}.part.kind-melody .body,.part.kind-alarm .body{fill:#1f5b3a;stroke:#5fae7f}.room-light{min-height:44px;color:var(--muted);align-items:center;gap:12px;padding:0 4px;display:flex}.room-light input{accent-color:var(--lamp);flex:1;min-height:32px}.room-light-word{text-align:right;min-width:4.5ch}.part.kind-effects .body{fill:#3a2f5c;stroke:#9a86d6}.part .chip{fill:#101214}.part .ldr-window{fill:#f0c24b;stroke:#8a6a1c;stroke-width:1.2px}.part .ldr-track{stroke:#7a2e1c;stroke-width:2px;fill:none}.part .ldr-cover{fill:#c89878;fill-opacity:.92;stroke:#8a6048;stroke-width:1.5px}.part .chip-dot{fill:#555b63}.part.selected .body{stroke:var(--sel);stroke-width:3px}.part.shorted .body{stroke:var(--warn);stroke-width:3px}.tray button{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:60px;padding:4px 10px;display:flex}.tray .tray-art{pointer-events:none;width:auto;max-width:110px;height:30px}.tray .tray-name{color:var(--muted);font-size:.72rem;line-height:1}.tray button[aria-pressed=true] .tray-name{color:var(--sel)}@media (prefers-reduced-motion:reduce){.part .slider{transition:none}}.step-card{background:var(--plate);border:1px solid var(--ghost);border-radius:12px;gap:6px;padding:8px 10px;display:grid}.step-card.built{border-color:var(--good)}.step-head{color:var(--ghost);justify-content:space-between;align-items:center;font-size:.9rem;font-weight:600;display:flex}.step-card.built .step-head{color:var(--good)}.step-head .link{color:var(--muted);background:0 0;min-height:36px;padding:0 4px;text-decoration:underline}.step-body{grid-template-columns:44px 1fr 44px;align-items:center;gap:6px;display:grid}.step-body p{margin:0;line-height:1.35}.step-body button{padding:0;font-size:1.4rem}.ghost.dim rect{stroke-opacity:.25}.ghost.dim .ghost-pole{opacity:.3}.ghost.focus rect{stroke:var(--ghost);stroke-width:3px;stroke-dasharray:6 3;fill:color-mix(in srgb, var(--ghost) 14%, transparent)}@media (prefers-reduced-motion:no-preference){.ghost.focus rect{animation:1.2s linear infinite focus-dash}@keyframes focus-dash{to{stroke-dashoffset:-18px}}}.sheet-backdrop{z-index:20;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:min(100%,720px);max-height:85dvh;padding:8px 16px calc(16px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;overflow-y:auto}.sheet-head{background:var(--bg);justify-content:space-between;align-items:center;padding:4px 0;display:flex;position:sticky;top:0}.sheet .lesson summary,.side.has-steps>.lesson{display:none}@media (width>=1024px),(width>=640px) and (orientation:landscape){.side.has-steps>.lesson{display:block}}.hints{pointer-events:none}.hint-open{fill:none;stroke:#e8eaee;stroke-opacity:.45;stroke-width:1.5px;stroke-dasharray:3 3}.hint-dead{fill:var(--warn);stroke:var(--bg);stroke-width:1.5px}.hint-connect{fill:none;stroke:var(--good);stroke-width:3px;pointer-events:none}.part.linked .body{stroke:var(--good);stroke-width:1.5px;stroke-dasharray:4 3}.controls .icon-btn{min-width:44px;padding:0;font-size:1.25rem}.tray .count{color:var(--ghost);font-weight:700}.tray button.done .count{color:var(--good)}.tray button.done{opacity:.65}.tray button.extra{opacity:.8}.tray button.more{min-height:60px;color:var(--muted);font-size:.85rem}.settle{transform-box:fill-box;transform-origin:50%;animation:.24s cubic-bezier(.3,1.6,.5,1) settle}@keyframes settle{0%{transform:translate(-3px,-6px)scale(1.05)}to{transform:none}}@media (prefers-reduced-motion:reduce){.settle{animation:none}}.picker-top .primary{white-space:normal;flex-direction:column;justify-content:center;align-items:flex-start;padding:8px 14px;line-height:1.2;display:flex}.picker-top .primary small{opacity:.8;font-size:.78rem;font-weight:600}.pack-list h2{justify-content:space-between;align-items:baseline;display:flex}.pack-count{color:var(--muted);font-size:.8rem;font-weight:500}.lab-mark.skipped{color:var(--muted);font-size:.85rem}.lab-mark.later{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.tray.wrap{flex-wrap:wrap;overflow:visible}.tray.wrap button{flex:88px;max-width:120px;min-height:56px}.tray.wrap .tray-art{max-width:84px;height:24px}.part.kind-jumper .lead-wire{fill:none;stroke:#e0662e;stroke-width:4px;stroke-linecap:round;pointer-events:none}.part.kind-jumper .lead-shadow{fill:none;stroke:#00000059;stroke-width:7px;stroke-linecap:round;pointer-events:none;transform:translate(1.5px,2.5px)}.part.kind-jumper .clip-body{fill:#3a4250;stroke:#e0662e;stroke-width:2px}.part.kind-jumper.selected .clip-body{stroke:var(--sel);stroke-width:3px}.part.kind-jumper.shorted .clip-body{stroke:var(--warn);stroke-width:3px}.part.kind-jumper:focus-visible .clip-body{stroke:var(--sel);stroke-dasharray:3 2}.board .held .part.kind-jumper,.board.placing .held .part.kind-jumper{pointer-events:none}.board .held .part.kind-jumper .clip-body{stroke:var(--sel)}.drop line,.ghost line{stroke-width:2.5px;stroke-dasharray:5 3;fill:none}.drop circle.end,.ghost circle.end{fill:none;stroke-width:2.5px;stroke-dasharray:4 3}.drop.ok line,.drop.ok circle.end{stroke:var(--good)}.drop.bad line,.drop.bad circle.end{stroke:var(--warn)}.ghost line,.ghost circle.end{stroke:var(--ghost)}.hint-anchor{fill:none;stroke:var(--sel);stroke-width:3px;pointer-events:none}.guide-link,.about-link{min-height:0;color:var(--sel);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:.95rem;text-decoration:underline}.sheet.guide h2{margin:16px 0 6px;font-size:1rem}.sheet.guide p,.sheet.guide li{line-height:1.45}.sheet.guide ol,.sheet.guide ul{padding-left:1.3em}.picker-top .tutorial-link{text-align:left;border-color:var(--ghost);flex-direction:column;justify-content:center;align-items:flex-start;padding:8px 14px;line-height:1.2;display:flex}.picker-top .tutorial-link small{color:var(--muted);font-size:.78rem;font-weight:600}.free-build{text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:8px;display:flex}.free-build small{color:var(--muted);font-size:.85rem}main.tutorial{max-width:720px;line-height:1.5}.tutorial-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.tutorial-head h1{margin:0;font-size:1.4rem}.tutorial-head .back{color:var(--muted);background:0 0}.tutorial-toc{background:var(--plate);border-radius:12px;padding:8px 12px}.tutorial-toc summary{cursor:pointer;min-height:44px;color:var(--muted);align-items:center;font-weight:600;display:flex}.tutorial-toc ol{columns:2 200px;column-gap:16px;margin:0 0 8px;padding-left:2em}.tutorial-toc li{color:var(--muted)}.tutorial-toc .link{min-width:0;min-height:36px;color:var(--sel);text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.tutorial section{scroll-margin-top:12px}.tutorial h2{margin:12px 0 4px;font-size:1.1rem}.tutorial p{margin:6px 0}.tutorial ol,.tutorial ul{margin:6px 0;padding-left:1.3em}.tutorial li{margin:4px 0}.tutorial ul:has(.part-item){gap:8px;padding:0;list-style:none;display:grid}.part-item{align-items:center;gap:12px;margin:0;display:flex}.part-pic{background:var(--plate);border-radius:8px;flex:none;justify-content:center;align-items:center;width:96px;height:44px;display:flex}.part-pic .tray-art{width:auto;max-width:88px;height:30px}.tutorial-end{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px;display:grid}.picker-top .tutorial-link.pulse{animation:1.8s ease-in-out infinite tut-pulse}@keyframes tut-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--ghost) 55%, transparent)}60%{box-shadow:0 0 0 10px color-mix(in srgb, var(--ghost) 0%, transparent)}}.tut-figure{gap:6px;margin:10px 0 14px;display:grid}.tut-figure figcaption{color:var(--muted);font-size:.9rem}.tut-anim{width:100%;max-width:420px;height:auto;display:block}.tut-plate{fill:var(--plate)}.tut-post{fill:var(--post)}.tut-say{fill:var(--ink);text-anchor:middle;font-size:12px;font-weight:600}.tut-say.warn{fill:var(--warn)}.tut-flow{fill:none;stroke:var(--lamp);stroke-width:3px;stroke-linecap:round;stroke-dasharray:1 11;opacity:0;pointer-events:none;transition:opacity .2s}.tut-flow.on{opacity:1;animation:.9s linear infinite tut-flow}.tut-flow.fast{stroke:var(--warn)}.tut-flow.on.fast{animation-duration:.25s}@keyframes tut-flow{to{stroke-dashoffset:-12px}}.tut-ring{fill:none;stroke-width:2.5px;transition:stroke .3s}.tut-ring.bad{stroke:var(--warn);stroke-dasharray:4 4}.tut-ring.good{stroke:var(--good)}.tut-drop{transition:transform .6s,opacity .4s}.tut-drop.step-0{opacity:0;transform:translate(-10px,-34px)}.tut-drop.step-1{opacity:1;transform:translate(-10px,-14px)}.tut-tray{fill:var(--bg);stroke:var(--button)}.tut-tile{fill:var(--button)}.tut-tile.on{stroke:var(--sel);stroke-width:2px}.tut-place-btn{fill:var(--good);transition:opacity .2s}.tut-place-btn.pressed{opacity:.7}.tut-btn-text{fill:var(--bg);text-anchor:middle;font-size:13px;font-weight:700}.tut-btn-text.muted{fill:var(--ink)}.tut-move,.tut-finger{transition:transform .7s,opacity .3s}.tut-move.jump{transition:none}.tut-shadow{fill:color-mix(in srgb, var(--good) 18%, transparent);stroke:var(--good);stroke-width:2.5px;stroke-dasharray:5 3}.tut-lamp.lifted{filter:drop-shadow(3px 6px 4px #0000008c)}.tut-lamp.lifted .part .body{stroke:var(--sel);stroke-width:2.5px}.tut-finger{fill:#ffffff8c;stroke:var(--ink);stroke-width:1.5px}@media (prefers-reduced-motion:reduce){.picker-top .tutorial-link.pulse{box-shadow:0 0 0 3px color-mix(in srgb, var(--ghost) 55%, transparent);animation:none}.tut-flow.on{stroke-dasharray:none;stroke-width:2px;animation:none}.tut-drop,.tut-move,.tut-finger,.tut-ring{transition:none}}.test-bar{background:color-mix(in srgb, var(--lamp) 16%, var(--plate));border:1px solid var(--lamp);color:var(--ink);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:6px 6px 6px 14px;font-size:.9rem;display:flex}.test-bar button{flex:none}.grown-ups-link{min-height:44px;color:var(--sel);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:.95rem;text-decoration:underline}.light-controls{gap:6px;display:grid}.stripe-card{justify-self:start}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (width>=640px) and (orientation:landscape) and (height<=500px){main.bench{--board-reserve:calc(24px + var(--band,0px));height:calc(100dvh - var(--band,0px));padding:8px max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));grid-template:"board ticket""board side"minmax(0,1fr)"board controls"/minmax(0,1fr) minmax(260px,320px);align-items:stretch;gap:8px;overflow:hidden}.bench>.board-wrap{align-self:center;position:static}.bench>.side{overscroll-behavior:contain;align-content:start;overflow-y:auto}.bench>.controls{background:0 0;border:0;grid-area:controls;padding:0;position:static}.ticket{padding:0 8px 0 14px;position:relative}.ticket .icon{display:inline-block}.ticket-details{display:none}.ticket.open .ticket-details{background:var(--plate);border:1px solid var(--part-edge);border-radius:12px;margin-top:4px;padding:12px 14px;display:block;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 24px #00000073}}.part.kind-motor .blade-blur{fill:var(--sel);stroke:var(--sel);stroke-opacity:.35;pointer-events:none}html[data-theme=tt]{--band:6px;--flag-red:#da1a35;--bg:#0b0b0b;--plate:#1a1a1a;--post:#6a6a6a;--ink:#fff;--muted:#b5b5b5;--ghost:#ff4d63;--part:#2b2b2b;--part-edge:#d9d9d9;--wire:#3a3a3a;--sel:#fff;--warn:#ff9a3c;--button:#262626}html[data-theme=tt] body{border-top:var(--band) solid;border-image:linear-gradient(90deg, var(--flag-red) 0 42%, #fff 42% 44.5%, #000 44.5% 55.5%, #fff 55.5% 58%, var(--flag-red) 58%) 1}.theme-note{display:none}html[data-theme=tt] .picker .ticket{border-left:4px solid var(--flag-red)}html[data-theme=tt] .theme-note{color:var(--ink);margin:6px 0 0;font-weight:600;display:block}.about-link{margin-left:16px}.credits{gap:2px;margin:12px 0;display:grid}.credits p{margin:0}.credits-label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:600;margin-bottom:4px!important}.credits-names{color:var(--ink);font-weight:600}.credits-with{color:var(--muted)}.credits-links{flex-wrap:wrap;gap:4px 14px;font-size:.85rem;display:flex;margin-top:6px!important}.credits-links a{color:var(--muted)}.welcome-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.welcome{background:var(--plate);border:1px solid var(--part-edge);border-radius:16px;gap:8px;width:min(100%,340px);padding:22px;display:grid;box-shadow:0 16px 40px #0009}.welcome-id{align-items:center;gap:12px;display:flex}.welcome-id h2{margin:0;font-size:1.1rem}.welcome-id p{color:var(--muted);margin:0;font-size:.85rem}.welcome-note{border-top:1px solid var(--part);color:var(--muted);margin:0 0 8px;padding-top:12px;font-size:.85rem;line-height:1.45}.welcome-dismiss{color:var(--muted);background:0 0;font-size:.85rem}.seo{max-width:720px;color:var(--ink);margin:0 auto;padding:24px 16px;line-height:1.5}.seo a{color:var(--sel)}.seo dt{margin-top:10px;font-weight:600}.seo dd{color:var(--muted);margin:2px 0 0}.feedback-fab{left:max(12px, env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));z-index:15;width:40px;min-width:40px;height:40px;min-height:40px;color:var(--muted);background:color-mix(in srgb, var(--plate) 85%, transparent);border:1px solid var(--part);opacity:.6;border-radius:50%;place-items:center;padding:0;transition:opacity .15s;display:grid;position:fixed}.feedback-fab:hover,.feedback-fab:focus-visible{opacity:1;color:var(--ink)}.feedback-backdrop{z-index:25}.sheet.feedback form{gap:6px;padding-top:8px;display:grid}.sheet.feedback label{margin-top:6px;font-weight:600}.sheet.feedback .req,.sheet.feedback .opt{color:var(--muted);font-size:.9rem;font-weight:400}.sheet.feedback textarea,.sheet.feedback input{font:inherit;color:var(--ink);background:var(--plate);border:1px solid var(--part-edge);border-radius:10px;width:100%;padding:10px 12px}.sheet.feedback textarea{resize:vertical;min-height:110px}.fb-hint{color:var(--muted);margin:0;font-size:.85rem}.fb-trap{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.fb-details{color:var(--muted);margin:6px 0;font-size:.85rem}.fb-details summary{cursor:pointer;align-items:center;min-height:36px;display:flex}.fb-details dl{gap:2px;margin:4px 0 0;display:grid}.fb-details dl div{grid-template-columns:9em 1fr;gap:8px;display:grid}.fb-details dt{color:var(--ink)}.fb-details dd{overflow-wrap:anywhere;margin:0}.fb-error{color:var(--warn);margin:0}.feedback-thanks{gap:8px;padding:12px 0 4px;display:grid}.feedback-thanks p{margin:0}.feedback-link{min-width:0;min-height:0;color:var(--sel);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:.95rem;text-decoration:underline}.page-links{flex-wrap:wrap;align-items:center;gap:4px 18px;display:flex}.sheet.guide>.feedback-link{margin:4px 0 8px}
