:root{--ink:#fff;--paper:#333;--paper-dim:#6b6459;--hairline:#3333331a;--panel:#3333330a;--panel-hover:#33333312;--signal:#2e6f9e;--serif:ui-serif, Georgia, "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--tk-comment:#8a8578;--tk-string:#5f7a3d;--tk-number:#9c7a1f;--tk-keyword:var(--signal);--tk-call:#2f6b82;--tk-type:#a3641f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}a{color:inherit;text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}.label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--signal);margin:0 0 14px;font-size:.76rem}.hint{color:var(--paper-dim);margin:0 0 32px;font-size:.92rem}.backdrop{z-index:-1;position:fixed;inset:0;overflow:hidden}.backdrop__base{background:radial-gradient(circle at 18% 25%, #2e6f9e24, transparent 45%), radial-gradient(circle at 85% 75%, #2e6f9e14, transparent 55%), var(--ink);position:absolute;inset:0}.backdrop__frame{opacity:0;background-position:50%;background-size:cover;transition:opacity 1s,transform 1.3s;position:absolute;inset:0;transform:scale(1.04)}.backdrop__frame.is-live{opacity:1;animation:16s ease-in-out infinite alternate backdrop-pan;transform:scale(1)}@keyframes backdrop-pan{0%{background-position:50%}to{background-position:55% 45%}}.backdrop__frame--stl{background:0 0}.backdrop__stl{position:absolute;inset:0}.backdrop__stl canvas{display:block}.backdrop__vignette{background:radial-gradient(at 50% 40%,#0000 30%,#fffc 100%),linear-gradient(#fff9,#ffffffe6);position:absolute;inset:0}.backdrop__grain{opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.sidebar{border-right:1px solid var(--hairline);-webkit-backdrop-filter:blur(8px);z-index:10;background:#ffffff8c;flex-direction:column;justify-content:space-between;width:260px;padding:48px 32px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar__name{font-family:var(--serif);margin-bottom:4px;font-size:1.3rem;display:block}.sidebar__role{font-family:var(--mono);color:var(--signal);margin:0;font-size:.8rem}.sidebar__progress{width:2px;height:calc(var(--progress,0) * 100%);background:var(--signal);transition:height .15s linear;position:absolute;top:0;right:0}.sidebar__nav{flex-direction:column;gap:14px;display:flex}.sidebar__nav a{color:var(--paper-dim);align-items:baseline;gap:10px;font-size:.92rem;transition:color .2s;display:flex}.sidebar__nav a span{font-family:var(--mono);color:var(--signal);font-size:.72rem}.sidebar__nav a:hover{color:var(--paper)}.sidebar__nav a.is-active{color:var(--paper);font-weight:600}.sidebar__contact{font-family:var(--mono);color:var(--paper-dim);flex-direction:column;gap:8px;font-size:.78rem;display:flex}.sidebar__contact a:hover{color:var(--signal)}.content{background:#fff0;max-width:760px;margin-left:260px;padding:96px 56px 64px;transition:background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s}.content.has-backdrop{-webkit-backdrop-filter:blur(7px);background:#ffffffd1;border-radius:18px}section{border-bottom:1px solid var(--hairline);margin-bottom:96px;padding-bottom:96px}section:last-child{border-bottom:none;margin-bottom:0}@media (width<=860px){.sidebar{border-right:none;border-bottom:1px solid var(--hairline);background:var(--ink);z-index:20;flex-direction:column;align-items:stretch;gap:10px;width:auto;height:auto;padding:14px 20px 10px;position:sticky;top:0}.sidebar__identity{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.sidebar__nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;gap:18px;padding-bottom:2px;overflow-x:auto}.sidebar__nav::-webkit-scrollbar{display:none}.sidebar__nav a{white-space:nowrap;flex:none}.sidebar__contact{display:none}.sidebar__progress{height:2px;width:calc(var(--progress,0) * 100%);transition:width .15s linear;inset:auto auto 0 0}.content{margin-left:0;padding:32px 20px 48px}}.intro__text{font-family:var(--serif);max-width:42ch;color:var(--paper);font-size:1.4rem;line-height:1.55}.intro__line{opacity:0;filter:blur(6px);animation:.7s forwards reveal-line}.intro__tag{font-family:var(--mono,monospace);letter-spacing:.02em;color:var(--accent,var(--paper));margin-top:8px;font-size:.9rem}@keyframes reveal-line{to{opacity:1;filter:blur()}}.directory{flex-direction:column;display:flex}.directory__entry{cursor:pointer;border:1px solid #0000;border-radius:10px;gap:20px;padding:26px 20px;transition:background .25s,border-color .25s;display:flex;position:relative}.directory__stl-handle{border:1px solid var(--accent,var(--signal));color:var(--accent,var(--signal));font-family:var(--mono);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffffd9;border-radius:999px;padding:8px 14px;font-size:.72rem;position:absolute;top:14px;right:14px}.directory__stl-handle:active{cursor:grabbing;background:#fffffffa}.directory__entry:hover,.directory__entry:focus-visible,.directory__entry.is-live{background:var(--panel);border-color:var(--accent,var(--hairline));outline:none}.directory__index-logo{object-fit:contain;opacity:.85;border-radius:10px;flex-shrink:0;width:auto;max-width:72px;height:44px}.directory__heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.directory__heading h3{margin:0;font-size:1.1rem;font-weight:600}.directory__meta{align-items:baseline;gap:10px;display:flex}.directory__num{font-family:var(--mono);color:var(--accent,var(--paper-dim));font-size:.76rem}.directory__span{font-family:var(--mono);color:var(--paper-dim);white-space:nowrap;font-size:.76rem}.directory__org{color:var(--accent,var(--signal));margin:3px 0 12px;font-size:.9rem}.directory__notes{flex-direction:column;gap:6px;display:flex}.directory__notes li{color:var(--paper-dim);padding-left:16px;font-size:.92rem;line-height:1.55;position:relative}.directory__notes li:before{content:"";background:var(--accent,var(--signal));border-radius:50%;width:5px;height:5px;position:absolute;top:.6em;left:0}.chip-group{margin-bottom:20px}.chip-group__label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 8px;font-size:.7rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--hairline);background:var(--panel);color:var(--paper);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;gap:2px;padding:10px 14px;font-family:inherit;display:flex}.chip__name{font-size:.86rem;font-weight:500}.chip__note{color:var(--paper-dim);font-size:.72rem}.chip:hover,.chip:focus-visible,.chip.is-active{border-color:var(--signal);background:var(--panel-hover);outline:none}.chip.is-active .chip__name{color:var(--signal)}.terminal{border:1px solid var(--hairline);background:#f6f6f4;border-radius:10px;overflow:hidden;box-shadow:0 24px 60px #0000001f}.chip-group .terminal{margin-top:14px;animation:.28s terminal-in}@keyframes terminal-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.terminal__bar{border-bottom:1px solid var(--hairline);font-family:var(--mono);background:#0c0b0908;gap:6px;padding:12px 16px;font-size:.78rem;display:flex}.terminal__prompt{color:var(--signal)}.terminal__sep{color:var(--paper-dim)}.terminal__cmd{color:var(--paper)}.terminal__cmd:after{content:"";background:var(--signal);vertical-align:-2px;width:7px;height:1em;margin-left:4px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.code{font-family:var(--mono);color:var(--paper);margin:0;padding:20px;font-size:.85rem;line-height:1.6;overflow-x:auto}.skill-stl{cursor:grab;height:320px}.skill-stl:active{cursor:grabbing}.skill-image{cursor:crosshair;height:320px;position:relative;overflow:hidden}.skill-image__img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .25s;display:block}.skill-image__caption{font-family:var(--mono);color:var(--ink);background:linear-gradient(#0000,#0c0b09a6);padding:10px 14px;font-size:.72rem;position:absolute;bottom:0;left:0;right:0}.dxf-viewer{flex-direction:column;height:320px;display:flex}.dxf-viewer--loading{font-family:var(--mono);color:var(--paper-dim);justify-content:center;align-items:center;font-size:.8rem}.dxf-viewer__svg{flex:1;width:100%;padding:12px}.dxf-entity{fill:none;stroke:var(--paper-dim);stroke-width:.6px;vector-effect:non-scaling-stroke;cursor:pointer;transition:stroke .15s,stroke-width .15s}.dxf-entity:hover,.dxf-entity.is-hovered{stroke:var(--signal);stroke-width:1.4px}.dxf-viewer__readout{border-top:1px solid var(--hairline);font-family:var(--mono);color:var(--paper-dim);padding:10px 16px;font-size:.72rem}.mixer{padding:24px 20px;overflow-x:auto}.mixer__strips{gap:18px;min-width:min-content;display:flex}.mixer__strip{flex-direction:column;flex-shrink:0;align-items:center;gap:10px;width:52px;display:flex}.mixer__strip--master{border-left:1px solid var(--hairline);margin-left:8px;padding-left:18px}.mixer__meter{border:1px solid var(--hairline);background:#33333314;border-radius:4px;align-items:flex-end;width:10px;height:90px;display:flex;overflow:hidden}.mixer__meterFill{background:linear-gradient(to top, var(--signal), #7fb2d6);width:100%;transition:height .12s,opacity .2s}.mixer__meterFill.is-live{animation:1.4s ease-in-out infinite meter-pulse}@keyframes meter-pulse{0%,to{opacity:.85}50%{opacity:1}}.mixer__faderTrack{justify-content:center;align-items:center;width:36px;height:120px;display:flex}.mixer__fader{appearance:none;cursor:grab;background:0 0;width:120px;height:22px;margin:0;transform:rotate(-90deg)}.mixer__fader:active{cursor:grabbing}.mixer__fader::-webkit-slider-runnable-track{background:var(--hairline);border-radius:2px;height:4px}.mixer__fader::-webkit-slider-thumb{-webkit-appearance:none;background:var(--paper);border:1px solid var(--paper);border-radius:3px;width:30px;height:16px;margin-top:-6px}.mixer__fader::-moz-range-track{background:var(--hairline);border-radius:2px;height:4px}.mixer__fader::-moz-range-thumb{background:var(--paper);border:1px solid var(--paper);border-radius:3px;width:30px;height:16px}.mixer__fader--master::-webkit-slider-thumb{background:var(--signal);border-color:var(--signal)}.mixer__fader--master::-moz-range-thumb{background:var(--signal);border-color:var(--signal)}.mixer__buttons{gap:4px;display:flex}.mixer__btn{border:1px solid var(--hairline);background:var(--panel);width:22px;height:20px;color:var(--paper-dim);font-family:var(--mono);cursor:pointer;border-radius:4px;font-size:.66rem;line-height:1}.mixer__btn--mute.is-active{color:var(--ink);background:#b8483f;border-color:#b8483f}.mixer__btn--solo.is-active{background:var(--signal);border-color:var(--signal);color:var(--ink)}.mixer__label{font-family:var(--mono);color:var(--paper-dim);text-align:center;font-size:.66rem;line-height:1.2}.mixer__strip.is-silenced .mixer__label{color:var(--paper-dim);opacity:.5}.switcher{flex-direction:column;gap:18px;padding:22px 20px;display:flex}.switcher__sources{flex-wrap:wrap;gap:8px;display:flex}.switcher__src{border:1px solid var(--hairline);background:var(--panel);color:var(--paper);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:.8rem;display:flex}.switcher__src:hover,.switcher__src:focus-visible{border-color:var(--accent,var(--signal));outline:none}.switcher__srcSwatch{background:var(--accent);border-radius:50%;flex-shrink:0;width:10px;height:10px}.switcher__srcTags{gap:4px;display:flex}.switcher__tag{font-family:var(--mono);letter-spacing:.04em;color:var(--ink);border-radius:3px;padding:1px 5px;font-size:.6rem}.switcher__tag--pgm{background:#b8483f}.switcher__tag--pvw{background:#5f8f4f}.switcher__buses{gap:14px;display:flex}.switcher__bus{flex-direction:column;flex:1;gap:6px;display:flex}.switcher__busLabel{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.switcher__busLabel--pgm{color:#b8483f}.switcher__busLabel--pvw{color:#5f8f4f}.switcher__busFeed{height:96px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;font-size:.82rem;font-weight:500;transition:background-color .45s;display:flex}.switcher__controls{gap:8px;display:flex}.switcher__ctrl{border:1px solid var(--hairline);background:var(--panel);color:var(--paper);font-family:var(--mono);cursor:pointer;border-radius:6px;padding:8px 18px;font-size:.76rem}.switcher__ctrl:hover{border-color:var(--signal)}.switcher__ctrl--auto{color:var(--signal);border-color:var(--signal)}.pi-board{flex-wrap:wrap;align-items:center;gap:28px;padding:24px 20px;display:flex}.pi-board__panel{flex-direction:column;align-items:center;gap:8px;display:flex}.pi-board__pin{font-family:var(--mono);align-items:center;gap:6px;font-size:.7rem;display:flex}.pi-board__pinLabel{color:var(--paper-dim)}.pi-board__pinState{color:var(--signal);font-weight:600}.pi-board__pinState.is-low{color:#b8483f}.pi-board__button{border:2px solid var(--paper);background:var(--panel);cursor:pointer;touch-action:none;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.pi-board__button.is-pressed{background:var(--panel-hover);transform:scale(.96)}.pi-board__led{background:var(--hairline);border-radius:50%;width:14px;height:14px}.pi-board__led[data-on=true]{background:#5f8f4f;box-shadow:0 0 10px #5f8f4f}.pi-board__buttonCaption{font-family:var(--mono);color:var(--paper-dim);font-size:.62rem}.pi-board__screen{min-width:200px;min-height:120px;color:var(--ink);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;transition:background-color .3s;display:flex}.pi-board__screenEyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.8;font-size:.62rem}.pi-board__screenLabel{font-size:1.1rem;font-weight:500}.pi-board__screenIndex{font-family:var(--mono);opacity:.8;font-size:.66rem}.qsys{flex-direction:column;gap:20px;padding:22px 20px;display:flex}.qsys__zones{flex-wrap:wrap;gap:10px;display:flex}.qsys__zone{border:1px solid var(--hairline);background:var(--panel);min-width:130px;color:var(--paper);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;flex:1;gap:4px;padding:12px 14px;font-family:inherit;display:flex}.qsys__zone:hover{border-color:var(--signal)}.qsys__zone.is-active{border-color:var(--signal);background:var(--panel-hover)}.qsys__zoneName{font-size:.86rem;font-weight:500}.qsys__zoneStatus{font-family:var(--mono);color:var(--paper-dim);font-size:.66rem}.qsys__zone.is-active .qsys__zoneStatus{color:var(--signal)}.qsys__gains{flex-direction:column;gap:8px;display:flex}.qsys__gainRow{grid-template-columns:80px 1fr 56px;align-items:center;gap:10px;display:grid}.qsys__gainLabel{font-family:var(--mono);color:var(--paper-dim);font-size:.72rem}.qsys__gainTrack{background:var(--hairline);border-radius:3px;height:6px;overflow:hidden}.qsys__gainFill{background:var(--signal);height:100%;transition:width .4s}.qsys__gainValue{font-family:var(--mono);color:var(--paper-dim);text-align:right;font-size:.7rem}.stream{flex-direction:column;gap:18px;padding:22px 20px;display:flex}.stream__status{align-items:center;gap:8px;display:flex}.stream__dot{background:var(--paper-dim);border-radius:50%;width:9px;height:9px}.stream__dot.is-live{background:#b8483f;animation:1.4s ease-in-out infinite stream-dot-blink}@keyframes stream-dot-blink{50%{opacity:.35}}.stream__statusText{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper);font-size:.78rem}.stream__timer{font-family:var(--mono);color:var(--paper-dim);margin-left:auto;font-size:.78rem}.stream__stats{flex-wrap:wrap;gap:18px;display:flex}.stream__stat{flex-direction:column;gap:2px;display:flex}.stream__statLabel{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);font-size:.62rem}.stream__statValue{font-family:var(--mono);color:var(--paper);font-size:.82rem}.stream__statValue--url{font-size:.7rem}.stream__meter{align-items:flex-end;gap:3px;height:36px;display:flex}.stream__bar{background:var(--hairline);border-radius:2px;flex:1;width:4px;max-width:6px;height:15%;animation:1.1s ease-in-out infinite paused stream-bar}.stream__meter.is-live .stream__bar{background:var(--signal);animation-play-state:running}.stream__bar:nth-child(3n){animation-duration:.8s;animation-delay:-.2s}.stream__bar:nth-child(4n){animation-duration:1.4s;animation-delay:-.6s}.stream__bar:nth-child(5n){animation-duration:1s;animation-delay:-.4s}@keyframes stream-bar{0%,to{height:12%}50%{height:90%}}.stream__toggle{border:1px solid var(--signal);background:var(--signal);color:var(--ink);font-family:var(--mono);cursor:pointer;border-radius:6px;align-self:flex-start;padding:9px 20px;font-size:.78rem}.stream__toggle.is-live{color:#b8483f;background:0 0;border-color:#b8483f}.kanban{gap:14px;padding:20px;display:flex;overflow-x:auto}.kanban__column{flex-direction:column;flex:1;gap:10px;min-width:160px;display:flex}.kanban__columnHeader{border-bottom:1px solid var(--hairline);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim);justify-content:space-between;align-items:center;padding-bottom:6px;font-size:.68rem;display:flex}.kanban__columnCount{background:var(--panel);color:var(--paper);border-radius:10px;padding:1px 7px;font-size:.66rem}.kanban__cards{flex-direction:column;gap:8px;min-height:44px;display:flex}.kanban__card{border:1px solid var(--hairline);border-left:3px solid var(--accent);background:var(--panel);color:var(--paper);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;font-family:inherit;display:flex}.kanban__card:hover,.kanban__card:focus-visible{border-color:var(--accent);background:var(--panel-hover);outline:none}.kanban__cardTag{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent);font-size:.6rem}.kanban__cardTitle{font-size:.82rem;line-height:1.3}.kanban__empty{font-family:var(--mono);color:var(--paper-dim);text-align:center;padding:10px 0;font-size:.7rem}.wiring{flex-direction:column;gap:16px;padding:22px 20px;display:flex}.wiring__status{font-family:var(--mono);color:var(--paper-dim);font-size:.76rem}.wiring__columns{gap:24px;display:flex}.wiring__column{flex-direction:column;flex:1;gap:8px;display:flex}.wiring__columnLabel{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:2px;font-size:.66rem}.wiring__terminal{border:1px solid var(--hairline);background:var(--panel);color:var(--paper);text-align:left;cursor:pointer;border-radius:7px;align-items:center;gap:8px;padding:9px 12px;font-family:inherit;font-size:.8rem;display:flex}.wiring__terminal:hover{border-color:var(--accent)}.wiring__dot{border:2px solid var(--accent);border-radius:50%;flex-shrink:0;width:9px;height:9px}.wiring__terminal.is-selected{border-color:var(--accent);background:var(--panel-hover)}.wiring__terminal.is-connected{border-color:var(--accent);color:var(--paper-dim);cursor:default}.wiring__terminal.is-connected .wiring__dot{background:var(--accent)}.wiring__terminal.is-wrong{border-color:#b8483f;animation:.3s wiring-shake}@keyframes wiring-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.wiring__reset{border:1px solid var(--hairline);background:var(--panel);color:var(--paper-dim);font-family:var(--mono);cursor:pointer;border-radius:6px;align-self:flex-start;padding:7px 16px;font-size:.72rem}.wiring__reset:hover{border-color:var(--signal);color:var(--signal)}.solder{flex-direction:column;gap:16px;padding:22px 20px;display:flex}.solder__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.solder__iron{border:1px solid var(--hairline);background:var(--panel);color:var(--paper);font-family:var(--mono);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:.76rem}.solder__iron.is-heating{color:#9e6f2f;border-color:#9e6f2f;animation:.9s ease-in-out infinite solder-heat-pulse}.solder__iron.is-ready{color:#5f8f4f;background:#5f8f4f14;border-color:#5f8f4f}@keyframes solder-heat-pulse{50%{opacity:.5}}.solder__progress{font-family:var(--mono);color:var(--paper-dim);font-size:.72rem}.solder__board{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.solder__pad{border:1px solid var(--hairline);background:var(--panel);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;display:flex}.solder__pad.is-locked{opacity:.5;cursor:not-allowed}.solder__blob{background:var(--hairline);border-radius:50%;width:18px;height:18px}.solder__pad.is-soldered .solder__blob{background:radial-gradient(circle at 35% 30%,#f0f0f0,#9a9a9a 60%,#6b6b6b);box-shadow:0 0 6px #00000040}.solder__padLabel{font-family:var(--mono);color:var(--paper-dim);text-align:center;font-size:.62rem}.solder__footer{align-items:center;gap:14px;display:flex}.solder__done{font-family:var(--mono);color:#5f8f4f;font-size:.74rem}.solder__reset{border:1px solid var(--hairline);background:var(--panel);color:var(--paper-dim);font-family:var(--mono);cursor:pointer;border-radius:6px;padding:7px 16px;font-size:.72rem}.solder__reset:hover{border-color:var(--signal);color:var(--signal)}.netswitch{flex-direction:column;gap:18px;padding:22px 20px;display:flex}.netswitch__chassis{background:#1e1c19;border:1px solid #0006;border-radius:10px;padding:18px;overflow-x:auto}.netswitch__ports{align-items:flex-end;gap:8px;width:max-content;display:flex}.netswitch__port{cursor:pointer;background:#0f0e0c;border:1px solid #ffffff14;border-radius:4px;flex-direction:column;align-items:center;gap:6px;width:44px;padding:10px 4px 8px;display:flex}.netswitch__port:hover{border-color:#ffffff4d}.netswitch__portLed{background:#ffffff26;border-radius:50%;width:8px;height:8px}.netswitch__port.is-up .netswitch__portLed{background:var(--accent);box-shadow:0 0 6px var(--accent);animation:1.6s steps(2,end) infinite netswitch-blink}.netswitch__port:nth-child(3n) .netswitch__portLed{animation-duration:2.1s;animation-delay:-.4s}.netswitch__port:nth-child(4n) .netswitch__portLed{animation-duration:1.1s;animation-delay:-.7s}.netswitch__port:nth-child(5n) .netswitch__portLed{animation-duration:1.8s;animation-delay:-1s}@keyframes netswitch-blink{50%{opacity:.25}}.netswitch__portNum{font-family:var(--mono);color:#f5f0e88c;font-size:.62rem}.netswitch__uplink{background:#0f0e0c;border:1px solid #ffffff1f;border-radius:4px;flex-direction:column;align-items:center;gap:6px;width:60px;margin-left:10px;padding:10px 6px 8px;display:flex}.netswitch__uplinkLed{background:conic-gradient(#2f6f9e 0 33%, #9e6f2f 33% 66%, #5f8f4f 66% 100%);border-radius:50%;width:10px;height:10px;animation:1.3s steps(2,end) infinite netswitch-blink}.netswitch__uplink .netswitch__portNum{color:#f5f0e8b3;font-size:.58rem}.netswitch__legend{flex-wrap:wrap;gap:14px;display:flex}.netswitch__legendItem{align-items:center;gap:6px;display:flex}.netswitch__legendSwatch{border:2px solid;border-radius:50%;width:10px;height:10px}.netswitch__legendLabel{font-family:var(--mono);color:var(--paper-dim);font-size:.72rem}.netswitch__legendCount{font-family:var(--mono);color:var(--paper);background:var(--panel);border-radius:8px;padding:1px 6px;font-size:.7rem}.code__cursor{background:var(--signal);vertical-align:-2px;width:7px;height:1em;margin-left:1px;animation:1.1s step-end infinite blink;display:inline-block}.tk-comment{color:var(--tk-comment);font-style:italic}.tk-string{color:var(--tk-string)}.tk-number{color:var(--tk-number)}.tk-keyword{color:var(--tk-keyword)}.tk-call{color:var(--tk-call)}.tk-type{color:var(--tk-type)}.project-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--hairline);background:var(--panel);will-change:transform;border-radius:10px;padding:20px;transition:transform .15s,box-shadow .2s,border-color .2s}.project-card:hover{border-color:var(--signal);box-shadow:0 20px 44px #00000024}.project-card h3{margin:0 0 8px;font-size:1rem}.project-card p{color:var(--paper-dim);margin:0 0 14px;font-size:.88rem;line-height:1.55}.chip-tags{flex-wrap:wrap;gap:6px;display:flex}.chip-tags span{font-family:var(--mono);border:1px solid var(--hairline);color:var(--paper-dim);border-radius:999px;padding:3px 9px;font-size:.7rem}.patent-card{border:1px solid var(--hairline);background:var(--panel);border-radius:10px;padding:24px}.patent-card__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.patent-card__head h3{margin:0;font-size:1.1rem}.patent-card__status{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--signal);white-space:nowrap;font-size:.72rem}.patent-card__number{font-family:var(--mono);color:var(--paper-dim);margin:6px 0 14px;font-size:.8rem}.patent-card__desc{color:var(--paper-dim);max-width:60ch;margin:0 0 16px;font-size:.92rem;line-height:1.55}.patent-card__link{font-size:.9rem;display:inline-block;position:relative}.patent-card__link:after{content:"";background:var(--signal);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.patent-card__link:hover,.patent-card__link:focus-visible{color:var(--signal)}.patent-card__link:hover:after,.patent-card__link:focus-visible:after{transform:scaleX(1)}.patent-card__arrow{transition:transform .25s;display:inline-block}.patent-card__link:hover .patent-card__arrow,.patent-card__link:focus-visible .patent-card__arrow{transform:translate(2px,-2px)}.contact__lead{font-family:var(--serif);max-width:30ch;margin:0 0 24px;font-size:1.6rem;font-weight:400}.contact__links{flex-direction:column;align-items:flex-start;gap:10px;font-size:1rem;display:flex}.contact__links a{position:relative}.contact__links a:after{content:"";background:var(--signal);transform-origin:0;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.contact__links a:hover,.contact__links a:focus-visible{color:var(--signal)}.contact__links a:hover:after,.contact__links a:focus-visible:after{transform:scaleX(1)}.contact__arrow{transition:transform .25s;display:inline-block}.contact__links a:hover .contact__arrow,.contact__links a:focus-visible .contact__arrow{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.backdrop__frame{transition:opacity .3s}.backdrop__frame.is-live,.terminal__cmd:after,.code__cursor{animation:none}.intro__line{opacity:1;filter:none;animation:none}.project-card,.content{transition:none}.chip-group .terminal,.wiring__terminal.is-wrong,.solder__iron.is-heating,.netswitch__port.is-up .netswitch__portLed,.netswitch__uplinkLed{animation:none}}
