.stem-site{--sheet:#f3f2ee;--ink:#282828;--ink-2:#282828b8;--ink-3:#b4b4b0;--rule:#2828282e;--rule-strong:#2828286b;--plate:#ebeae5;--arm:#fa3600;--arm-hover:#d92f00;--arm-ink:#fff;--arm-soft:#fa360014;--copper:#fa3600;--grain-opacity:.35;--font-sans:var(--font-geist);--font-display:var(--font-geist);background-color:var(--sheet);color:var(--ink);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em;isolation:isolate;min-height:100dvh;font-size:16px;font-weight:500;line-height:1.45;position:relative}.stem-site:before{content:"";z-index:-1;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.16 0 0 0 0 0.16 0 0 0 0 0.16 0 0 0 0.09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.dark .stem-site{--sheet:#161616;--ink:#ecebe6;--ink-2:#ecebe6b3;--ink-3:#5c5c58;--rule:#ecebe624;--rule-strong:#ecebe65c;--plate:#1e1e1e;--arm:#ff4a1a;--arm-hover:#ff6a40;--arm-soft:#ff4a1a1a;--grain-opacity:.5}.stem-site .stem-display,.stem-site .font-display{font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;text-transform:uppercase;letter-spacing:-.02em;text-wrap:balance;font-weight:700;line-height:1}.stem-site .stem-label{font-family:var(--font-geist-mono),ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);font-size:12px;font-weight:400;line-height:1.4}.stem-site .stem-eyebrow{font-family:var(--font-geist-mono),ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--arm);font-size:12px}.stem-site .stem-num{font-variant-numeric:tabular-nums}.stem-site a:focus-visible,.stem-site button:focus-visible,.stem-site summary:focus-visible{outline:2px solid var(--arm);outline-offset:3px}.stem-site .stem-btn{border:1px solid var(--rule-strong);background:var(--sheet);min-height:44px;font-family:var(--font-geist-mono),ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);align-items:stretch;font-size:13px;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.stem-site .stem-btn>.stem-btn-text{align-items:center;padding:0 1rem;display:inline-flex}.stem-site .stem-btn>.stem-btn-arrow{border-left:1px dashed var(--rule-strong);align-items:center;padding:0 .85rem;display:inline-flex}.stem-site .stem-btn:hover{border-color:var(--ink)}.stem-site .stem-btn-primary{background:var(--arm);border-color:var(--arm);color:var(--arm-ink)}.stem-site .stem-btn-primary>.stem-btn-arrow{border-left-color:#ffffff80}.stem-site .stem-btn-primary:hover{background:var(--arm-hover);border-color:var(--arm-hover)}.stem-site .stem-btn-quiet{background:0 0}.stem-site .stem-plate{background:var(--plate)}.stem-site .stem-table{border-collapse:collapse;width:100%}.stem-site .stem-table th,.stem-site .stem-table td{text-align:left;vertical-align:top;border-top:1px solid var(--rule);padding:.9rem 1rem .9rem 0}.stem-site .stem-table th{font-family:var(--font-geist-mono),ui-monospace,monospace;text-transform:uppercase;letter-spacing:.04em;width:34%;font-size:13px;font-weight:400}.stem-site .stem-plus{pointer-events:none;width:11px;height:11px;color:var(--ink-3);position:absolute}.stem-site .stem-plus:before,.stem-site .stem-plus:after{content:"";background:currentColor;position:absolute}.stem-site .stem-plus:before{width:1px;height:11px;top:0;left:5px}.stem-site .stem-plus:after{width:11px;height:1px;top:5px;left:0}@keyframes stem-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.stem-site .stem-marquee-track{width:max-content;animation:40s linear infinite stem-marquee;display:flex}.stem-site .stem-marquee:hover .stem-marquee-track{animation-play-state:paused}@keyframes stem-reveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@supports (animation-timeline:view()){.stem-site .stem-reveal{animation:linear both stem-reveal;animation-timeline:view();animation-range:entry entry 40%}}.stem-site .stem-drawing{color:var(--ink)}.stem-site .stem-drawing .stem-dot{fill:var(--arm)}@media (prefers-reduced-motion:reduce){.stem-site .stem-marquee-track,.stem-site .stem-reveal{animation:none!important}}.stem-site .stem-cursor{will-change:transform;transition:transform .4s cubic-bezier(.22,1,.36,1)}.stem-site .stem-cursor-dot{background:var(--arm);border:1px solid #0000;border-radius:9999px;width:6px;height:6px;margin:-3px 0 0 -3px;transition:width .25s,height .25s,margin .25s,background-color .25s,border-color .25s,opacity .2s;position:absolute;top:0;left:0}.stem-site .stem-cursor[data-state=active] .stem-cursor-dot{border-color:var(--arm);background:0 0;width:30px;height:30px;margin:-15px 0 0 -15px}.stem-site .stem-cursor[data-state=hidden] .stem-cursor-dot{opacity:0}@keyframes stem-drift-left{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.stem-site .stem-drift-track{animation:70s linear infinite stem-drift-left}.stem-site .stem-drift:hover .stem-drift-track,.stem-site .stem-drift:focus-within .stem-drift-track,.stem-site .stem-drift:focus .stem-drift-track{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.stem-site .stem-drift{overflow-x:auto}.stem-site .stem-drift-track{animation:none}.stem-site .stem-drift-copy{display:none}}.stem-site .stem-spark{background:linear-gradient(to bottom,#fff3c4,#ffb000 35%,var(--arm));opacity:0;border-radius:1px;width:1.5px;height:7px;margin:-3.5px 0 0 -.75px;position:absolute;top:0;left:0;box-shadow:0 0 3px #ff9628b3}.dark .stem-site .stem-spark{background:linear-gradient(to bottom,#fff,#ffe08a 30%,#ff8a2a 70%,var(--arm));width:2px;height:10px;margin:-5px 0 0 -1px;box-shadow:0 0 4px 1px #ffbe5af2,0 0 12px 2px #ff641e8c}@keyframes stem-chapter-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stem-site .stem-chapter-in{animation:.45s cubic-bezier(.22,1,.36,1) both stem-chapter-in}.stem-site .mill-spin{transform-box:fill-box;transform-origin:50%;animation:.3s linear infinite mill-spin}@keyframes mill-spin{to{transform:rotate(360deg)}}@keyframes stem-rover-spin{to{transform:rotate(360deg)}}@keyframes stem-rover-track{to{transform:translate(-12px)}}@keyframes stem-rover-pulse{0%,to{opacity:.15}40%{opacity:1;stroke:var(--arm)}}.stem-site .stem-rover-wheel{transform-box:fill-box;transform-origin:50%;animation:8.8s linear infinite stem-rover-spin}.stem-site .stem-rover-ground{animation:.4s linear infinite stem-rover-track}.stem-site .stem-rover-signal path{opacity:.15;animation:2.4s ease-in-out infinite stem-rover-pulse}.stem-site .stem-rover-signal path:nth-child(2){animation-delay:.3s}.stem-site .stem-rover-signal path:nth-child(3){animation-delay:.6s}@keyframes stem-iot-fade{0%,to{opacity:.15}40%{opacity:1}}@keyframes stem-iot-blink{0%,55%,to{opacity:1}60%,95%{opacity:.15}}@keyframes stem-iot-drift{0%{transform:translate(30px)}to{transform:translate(-40px)}}@keyframes stem-iot-dash{to{stroke-dashoffset:-16px}}@keyframes stem-iot-swap-a{0%,45%{opacity:1}50%,95%{opacity:0}to{opacity:1}}@keyframes stem-iot-swap-b{0%,45%{opacity:0}50%,95%{opacity:1}to{opacity:0}}@keyframes stem-iot-fall{0%{opacity:0;transform:translateY(0)}15%{opacity:1}to{opacity:0;transform:translateY(56px)}}@keyframes stem-iot-fill{0%,20%{opacity:.08}60%,to{opacity:.45}}@keyframes stem-iot-walk{0%{transform:translate(0)}to{transform:translate(240px)}}@keyframes stem-iot-back{0%,to{transform:translate(40px)}50%{transform:translate(-30px)}}@keyframes stem-iot-sweep{0%,to{transform:rotate(-25deg)}50%{transform:rotate(25deg)}}@keyframes stem-iot-swing{0%,to{transform:rotate(-45deg)}50%{transform:rotate(45deg)}}.stem-site .stem-iot-spin{transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite stem-rover-spin}.stem-site .stem-iot-track{animation:.4s linear infinite stem-rover-track}.stem-site .stem-iot-rays{transform-box:view-box;animation:24s linear infinite stem-rover-spin}.stem-site .stem-iot-cloud{animation:9s ease-in-out infinite alternate stem-iot-drift}.stem-site .stem-iot-flow{animation:.8s linear infinite stem-iot-dash}.stem-site .stem-iot-read-a{animation:6s step-end infinite stem-iot-swap-a}.stem-site .stem-iot-read-b{opacity:0;animation:6s step-end infinite stem-iot-swap-b}.stem-site .stem-iot-blink{animation:2s linear infinite stem-iot-blink}.stem-site .stem-iot-blink-fast{animation:.5s linear infinite stem-iot-blink}.stem-site .stem-iot-drop{animation:1.4s ease-in infinite stem-iot-fall}.stem-site .stem-iot-level{animation:4s ease-in-out infinite alternate stem-iot-fill}.stem-site .stem-iot-field path,.stem-site .stem-iot-sound path,.stem-site .stem-iot-ping path,.stem-site .stem-iot-ping-fwd path{opacity:.15;animation:1.6s ease-in-out infinite stem-iot-fade}.stem-site :is(.stem-iot-field,.stem-iot-sound,.stem-iot-ping,.stem-iot-ping-fwd) path:nth-child(2){animation-delay:.2s}.stem-site :is(.stem-iot-field,.stem-iot-sound,.stem-iot-ping,.stem-iot-ping-fwd) path:nth-child(3){animation-delay:.4s}.stem-site :is(.stem-iot-field,.stem-iot-sound,.stem-iot-ping,.stem-iot-ping-fwd) path:nth-child(4){animation-delay:.6s}.stem-site .stem-iot-walk{animation:7s linear infinite stem-iot-walk}.stem-site .stem-iot-reverse{animation:6s ease-in-out infinite stem-iot-back}.stem-site .stem-iot-sweep{transform-box:view-box;animation:2.4s ease-in-out infinite stem-iot-sweep}.stem-site .stem-iot-swing{transform-box:view-box;animation:10s ease-in-out infinite stem-iot-swing}@media (prefers-reduced-motion:reduce){.stem-site [class*=stem-iot-],.stem-site [class*=stem-iot-] path{animation:none!important}.stem-site .stem-iot-read-b{opacity:0}}@keyframes stem-art-step{0%,50%,to{transform:translateY(0)}25%{transform:translateY(-14px)}}@keyframes stem-art-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes stem-art-hover{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(4px,-3px)rotate(1.2deg)}50%{transform:translate(-1px,3px)rotate(-.6deg)}75%{transform:translate(-4px,-1px)rotate(.9deg)}}@keyframes stem-art-rocks{to{transform:translate(-165px)}}@keyframes stem-art-buck{0%,9%,17%,42%,51%,70%,72%,85%,87%,to{transform:translateY(0)rotate(0)}12%{transform:translateY(-5px)rotate(-1.4deg)}15%{transform:translateY(-1px)rotate(.4deg)}45.5%{transform:translateY(-5px)rotate(1.4deg)}49%{transform:translateY(-1px)rotate(-.4deg)}71%{transform:translateY(-.8px)}86%{transform:translateY(-.6px)}}@keyframes stem-art-route{0%,to{transform:translate(-100px)}8%{transform:translate(-100px,8px)}42%{transform:translate(100px,8px)}50%{transform:translate(100px)}58%{transform:translate(100px,8px)}92%{transform:translate(-100px,8px)}}@keyframes stem-art-blink{0%,50%{opacity:1}55%,95%{opacity:.08}}@keyframes stem-art-wave{0%,to{d:path("M300 34 C312 30 324 38 336 34 L336 54 C324 58 312 50 300 54 Z")}50%{d:path("M300 34 C312 38 324 30 336 36 L336 56 C324 50 312 58 300 54 Z")}}.stem-site .stem-drawing{--led:#00d94a}.dark .stem-site .stem-drawing{--led:#3dff70}.stem-site .stem-art-led{fill:var(--led)}.stem-site .stem-art-led-stop{stop-color:var(--led)}.stem-site .stem-art-stage{content-visibility:auto}.stem-site .stem-art-prop{transform-box:fill-box;transform-origin:50%;animation:.45s linear infinite stem-rover-spin}.stem-site .stem-art-prop-ccw{animation-direction:reverse}.stem-site .stem-art-hover{transform-box:view-box;transform-origin:200px 200px;animation:5s ease-in-out infinite stem-art-hover}.stem-site .stem-art-buck{transform-box:view-box;transform-origin:300px 226px;animation:5.5s linear infinite stem-art-buck}.stem-site .stem-art-rocks{animation:5.5s linear infinite stem-art-rocks}.stem-site .stem-art-step{animation:1.2s ease-in-out infinite stem-art-step}.stem-site .stem-art-step-r{animation-delay:-.6s}.stem-site .stem-art-hand{animation:1.2s ease-in-out -.6s infinite stem-art-step}.stem-site .stem-art-hand-r{animation-delay:0s}.stem-site .stem-art-arm{transform-box:view-box;animation:1.2s ease-in-out infinite stem-art-sway}.stem-site .stem-art-drill{animation:7s ease-in-out infinite stem-art-route}.stem-site .stem-art-blink{animation:1.2s linear infinite stem-art-blink}.stem-site .stem-art-flag{animation:3.6s ease-in-out infinite stem-art-wave}@media (prefers-reduced-motion:reduce){.stem-site [class*=stem-art-]{animation:none!important}.stem-site .stem-rover-wheel,.stem-site .stem-rover-ground,.stem-site .stem-rover-signal path{opacity:.8;animation:none!important}}
