@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #ffffff;--paper-2: #f4f7f7;--paper-3: #e9efef;--teal: #00979d;--teal-deep: #006f73;--teal-bright: #14c3ca;--teal-bright-2: #2ad4db;--on-teal: #04262a;--teal-ink: #04363a;--teal-ink-2: #0a4a4f;--teal-wash: #e8f5f5;--ink: #0c1b1c;--ink-2: #4a5c5d;--ink-3: #7c8c8d;--on-ink: #eef6f6;--on-ink-2: #9fbcbd;--hair: rgba(12, 27, 28, .1);--rule: rgba(12, 27, 28, .16);--rule-strong: rgba(12, 27, 28, .3);--hair-on-ink: rgba(238, 246, 246, .16);--go: #00979d;--go-deep: #006f73;--near: #b56a00;--near-wash: #fdf3e3;--far: #7c8c8d;--stop: #b4364c;--stop-wash: #fdeef1;--beginner: #1e7f4f;--intermediate: #6a5aa6;--advanced: #b4364c;--lift-1: 0 1px 2px rgba(12, 27, 28, .05), 0 2px 6px -2px rgba(12, 27, 28, .07);--lift-2: 0 2px 4px rgba(12, 27, 28, .06), 0 8px 20px -6px rgba(12, 27, 28, .11);--lift-3: 0 4px 10px rgba(12, 27, 28, .07), 0 22px 44px -14px rgba(12, 27, 28, .18);--ring-teal: 0 0 0 3px rgba(0, 151, 157, .16);--r-sm: 4px;--r: 8px;--r-lg: 14px;--font-display: "Bricolage Grotesque Variable", "Instrument Sans Variable", system-ui, sans-serif;--font-sans: "Instrument Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "Cascadia Code", Consolas, monospace;--maxw: 77.5rem;--gutter: clamp(1rem, 4vw, 3rem);color-scheme:light}*{box-sizing:border-box}html{scrollbar-gutter:stable;scroll-behavior:smooth}html{font-size:clamp(.9rem,.5rem + .45vw,1rem)}#catalog,.kitsection{scroll-margin-top:4.125rem}html,body{margin:0;padding:0}body{overflow-x:clip}body{min-height:100vh;background:var(--paper-2);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}button{font:inherit;color:inherit}a{color:var(--teal-deep)}:where(button,a,input,select,[tabindex]):focus-visible{outline:2px solid var(--teal-deep);outline-offset:2px;border-radius:var(--r-sm)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-9999px;z-index:100;padding:.75rem 1.1rem;background:var(--teal-ink);color:var(--on-ink);border-radius:var(--r)}.skip-link:focus{left:1rem;top:1rem}.shell{width:min(var(--maxw),100%);margin-inline:auto;padding-inline:var(--gutter)}.siteheader{position:sticky;top:0;z-index:40;background:#ffffffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}@media (prefers-reduced-transparency: reduce){.siteheader{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}}.siteheader__in{display:flex;align-items:center;gap:clamp(.6rem,1.7vw,1.4rem);min-height:3.125rem}.brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);flex:none}.brand__mark{width:1.5rem;height:1.5rem;border-radius:var(--r-sm)}.brand__name{font-family:var(--font-display);font-size:1.02rem;font-weight:800;letter-spacing:-.035em}.sitenav{display:flex;align-items:center;gap:.15rem;margin-left:.3rem}.sitenav__link{position:relative;padding:.35rem .6rem;border-radius:var(--r-sm);font-size:.88rem;font-weight:500;color:var(--ink-2);text-decoration:none;transition:color .15s,background .15s}.sitenav__link:hover{color:var(--ink);background:var(--paper-2)}.sitenav__link.is-active{color:var(--teal-deep);font-weight:600}.sitenav__link.is-active:after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:-1px;height:2px;background:var(--teal)}.siteheader__spacer{flex:1}.curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;background:linear-gradient(115deg,var(--teal-ink) 0%,var(--teal-ink-2) 100%);pointer-events:none;will-change:clip-path}.curtain__clip{position:absolute;width:0;height:0}.curtain__mark{display:inline-flex;align-items:center;gap:.7rem}.curtain__mark img{width:2.6rem;height:2.6rem}.curtain__mark span{font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:-.03em;color:var(--on-ink)}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--paper);color:var(--ink-2);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.iconbtn:hover{color:var(--teal-deep);border-color:var(--teal);background:var(--teal-wash)}.kitpill{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .7rem;border-radius:999px;border:1px solid var(--rule);background:var(--paper);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;white-space:nowrap;flex:none;transition:border-color .15s,background .15s,color .15s}.kitpill:hover{border-color:var(--teal);color:var(--teal-deep);background:var(--teal-wash)}.kitpill.is-set{border-color:var(--teal);background:var(--teal-wash);color:var(--teal-deep)}.kitpill__dot{width:7px;height:7px;border-radius:50%;background:var(--ink-3);flex:none}.kitpill.is-set .kitpill__dot{background:var(--teal);box-shadow:var(--ring-teal)}.kitpill__n{color:var(--teal-deep);font-weight:700}.kitpill__board{overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.kitpill__parts{display:none}}@media (max-width: 700px){.kitpill__build{display:none}}@media (max-width: 620px){.sitenav{display:none}}@media (max-width: 420px){.kitpill{padding-inline:.6rem}.siteheader__in{gap:.6rem}.brand__name{font-size:1rem}}.hero{background:var(--teal-ink);color:var(--on-ink);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(70% 90% at 88% 0%,rgba(20,195,202,.16),transparent 62%);pointer-events:none;z-index:0}.herofx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.herofx__glow{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(38% 46% at 72% 18%,rgba(20,195,202,.22),transparent 60%),radial-gradient(34% 40% at 30% 86%,rgba(0,151,157,.16),transparent 62%);transform:translate3d(calc(var(--px, 0) * 26px),calc(var(--py, 0) * 22px),0);transition:transform .5s cubic-bezier(.22,.61,.36,1)}.herofx__layer{position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;transform:translate3d(calc(var(--px, 0) * -18px),calc(var(--py, 0) * -14px),0);transition:transform .4s cubic-bezier(.22,.61,.36,1)}.herofx__pcb{width:100%;height:100%}.herofx__trace{fill:none;stroke:var(--teal-bright);stroke-opacity:.12;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}.herofx__via{fill:var(--teal-bright);opacity:.22}.herofx__pulse{fill:none;stroke:var(--teal-bright);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 96;filter:drop-shadow(0 0 4px rgba(20,195,202,.9));opacity:0}@media (prefers-reduced-motion: no-preference){.herofx__glow{animation:herofx-drift 22s ease-in-out infinite alternate}.herofx__pulse{opacity:1;animation:herofx-flow var(--dur, 5s) linear var(--delay, 0s) infinite}.herofx__via--live{animation:herofx-blink 3.2s ease-in-out infinite}}@keyframes herofx-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes herofx-blink{0%,to{opacity:.2}50%{opacity:.85}}@keyframes herofx-drift{0%{transform:translate3d(calc(var(--px, 0) * 26px),calc(var(--py, 0) * 22px),0) scale(1)}to{transform:translate3d(calc(var(--px, 0) * 26px + 3%),calc(var(--py, 0) * 22px - 2%),0) scale(1.08)}}.hero__stage{position:relative;z-index:1}.hero__in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.95fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding-block:clamp(2.4rem,5.5vw,4rem) clamp(1.6rem,3vw,2.4rem)}.hero__eyebrow{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 1.1rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal-bright)}.hero__eyebrow:before{content:"";width:26px;height:1px;background:var(--teal-bright)}.hero__title{margin:0 0 1.1rem;font-family:var(--font-display);font-size:clamp(2.7rem,6.6vw,5.4rem);font-weight:800;letter-spacing:-.04em;line-height:.96;text-wrap:balance}.hero__word{display:inline-block;margin-right:.24em;background-image:linear-gradient(176deg,#fff,#fff 62%,#d7ecec);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;text-shadow:0 2px 22px rgba(0,0,0,.28);will-change:transform,opacity}.hero__word--accent{background-image:linear-gradient(105deg,transparent 34%,rgba(226,255,255,.72) 50%,transparent 66%),linear-gradient(176deg,var(--teal-bright) 0%,var(--teal) 100%);background-size:240% 100%,100% 100%;background-position:120% 0,0 0;-webkit-text-fill-color:transparent;color:transparent;text-shadow:0 0 26px rgba(20,195,202,.45)}@media (prefers-reduced-motion: no-preference){.hero__word--accent{animation:title-current 3.4s linear infinite,accent-glow 2.6s ease-in-out infinite;animation-delay:var(--sheen-delay, 0s)}}@keyframes title-current{0%{background-position:120% 0,0 0}to{background-position:-80% 0,0 0}}@keyframes accent-glow{0%,to{text-shadow:0 0 20px rgba(20,195,202,.32)}50%{text-shadow:0 0 42px rgba(20,195,202,.72),0 0 14px rgba(20,195,202,.5)}}.hero__sub{margin:0 0 1.9rem;max-width:48ch;font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.6;color:var(--on-ink-2)}.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem}.hero__actions .btn{position:relative;overflow:hidden}.hero__actions .btn--primary{background:linear-gradient(176deg,var(--teal-bright) 0%,var(--teal) 100%);color:var(--on-teal);box-shadow:inset 0 1px #ffffff80,0 10px 26px -8px #14c3ca8c,0 2px 6px #00000047}.hero__actions .btn--primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:linear-gradient(105deg,transparent 36%,rgba(255,255,255,.5) 50%,transparent 64%);background-size:240% 100%;background-position:130% 0;mix-blend-mode:overlay}.hero__actions .btn--primary>*{position:relative;z-index:1}@media (prefers-reduced-motion: no-preference){.hero__actions .btn--primary:after{animation:btn-sheen 3.4s linear infinite}}.hero__actions .btn--primary:hover{background:linear-gradient(176deg,var(--teal-bright-2) 0%,var(--teal-bright) 100%);box-shadow:inset 0 1px #fff9,0 14px 34px -8px #14c3cab8,0 2px 6px #00000047}.hero__actions .btn--ghost-ink{background:linear-gradient(176deg,#14c3ca24,#04363a47);border-color:#14c3ca6b;color:var(--on-ink);box-shadow:inset 0 1px #ffffff1a,0 8px 20px -10px #0000008c}.hero__actions .btn--ghost-ink:hover{border-color:var(--teal-bright);color:var(--teal-bright);background:linear-gradient(176deg,#14c3ca38,#04363a52);box-shadow:inset 0 1px #ffffff29,0 10px 24px -10px #14c3ca66}@keyframes btn-sheen{0%{background-position:130% 0}to{background-position:-90% 0}}.hero__side{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.hero__board{position:relative;margin:0;width:min(100%,440px);text-align:center;filter:drop-shadow(0 26px 44px rgba(0,0,0,.45))}.hero__board-link{display:block;position:relative;border-radius:var(--r-lg);cursor:pointer;transition:transform .28s ease;-webkit-tap-highlight-color:transparent}.hero__board-link:hover{transform:translateY(-5px)}.hero__board-link:focus-visible{outline:2px solid var(--teal-bright);outline-offset:8px}.hero__board-edit{position:absolute;top:0;left:50%;transform:translate(-50%,-.3rem);padding:.32rem .72rem;border-radius:999px;background:var(--teal-bright);color:var(--on-teal);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 6px 16px -4px #00000080;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;z-index:3}.hero__board-link:hover .hero__board-edit,.hero__board-link:focus-visible .hero__board-edit{opacity:1;transform:translate(-50%,-.7rem)}.hero__board-led{position:absolute;top:8%;right:6%;z-index:2;width:9px;height:9px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 8px 1px var(--teal-bright)}@media (prefers-reduced-motion: no-preference){.hero__board-led{animation:herofx-blink 2.4s ease-in-out infinite}}.hero__board:before{content:"";position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;z-index:-1;background:radial-gradient(50% 48% at 50% 46%,rgba(20,195,202,.3),transparent 68%);opacity:.6}@media (prefers-reduced-motion: no-preference){.hero__board:before{animation:herofx-breathe 4.8s ease-in-out infinite}}@keyframes herofx-breathe{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:.9;transform:scale(1.06)}}.hero__board .board-glyph{width:100%;position:relative}.hero__spec{position:relative;display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:.05rem .5rem;margin-top:1.5rem;padding:.6rem .95rem .62rem .85rem;background:#fff;border-radius:var(--r);box-shadow:0 14px 30px -12px #0000008c,0 2px 6px #0003;text-align:left}.hero__spec:before{content:"";position:absolute;left:50%;top:-1.5rem;width:1.5px;height:1.5rem;background:linear-gradient(to top,var(--teal),rgba(20,195,202,.15))}.hero__spec:after{content:"";position:absolute;left:50%;top:calc(-1.5rem - 3px);width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 7px var(--teal-bright)}.hero__spec-live{grid-row:span 2;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:var(--ring-teal)}.hero__spec-name{font-family:var(--font-display);font-weight:700;font-size:.98rem;letter-spacing:-.02em;color:var(--ink);line-height:1.1}.hero__spec-meta{grid-column:2;font-size:.64rem;letter-spacing:.05em;color:var(--ink-3)}@media (prefers-reduced-motion: no-preference){.hero__spec-live{animation:herofx-blink 2.4s ease-in-out infinite .6s}}@media (max-width: 880px){.hero__board{display:none}}.hero__readout{display:flex;flex-wrap:wrap;align-items:flex-end;gap:clamp(1.6rem,5vw,4.5rem);margin-block:0;padding-top:clamp(1.1rem,2vw,1.6rem);padding-bottom:clamp(2rem,4vw,3.2rem);border-top:1px solid var(--hair-on-ink)}.hero__stat{min-width:0}.hero__stat dt{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-2)}.hero__stat dd{margin:.3rem 0 0;font-family:var(--font-display);font-size:clamp(2rem,3.4vw,3rem);font-weight:800;line-height:1;letter-spacing:-.03em;color:var(--teal-bright);font-variant-numeric:tabular-nums}.hero__readout-note{align-self:flex-end;margin:0 0 .45rem;max-width:18ch;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink-2)}.hero__scroll{align-self:flex-end;margin-left:auto;display:inline-flex;align-items:center;gap:.6rem;padding-bottom:.4rem;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-2);text-decoration:none;transition:color .16s}.hero__scroll:hover{color:var(--teal-bright)}.hero__scroll-chev{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--hair-on-ink);border-radius:50%;font-size:.85rem;transition:border-color .16s,background .16s}.hero__scroll:hover .hero__scroll-chev{border-color:var(--teal-bright);background:#14c3ca1f}@media (prefers-reduced-motion: no-preference){.hero__scroll-chev{animation:nudge 1.9s ease-in-out infinite}}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@media (max-width: 620px){.hero__readout-note{display:none}}@media (max-width: 880px){.hero__in{grid-template-columns:1fr;align-items:start;padding-bottom:clamp(1rem,3vw,1.6rem)}}.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.82rem 1.4rem;border-radius:var(--r);border:1px solid transparent;font-family:var(--font-sans);font-size:.98rem;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .14s,background .16s,border-color .16s,color .16s}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--teal-bright);color:var(--on-teal);font-weight:700}.btn--primary:hover{background:var(--teal-bright-2)}.btn--ghost-ink{background:transparent;border-color:var(--hair-on-ink);color:var(--on-ink)}.btn--ghost-ink:hover{border-color:var(--teal-bright);color:var(--teal-bright)}.btn--outline{background:var(--paper);border-color:var(--rule);color:var(--ink)}.btn--outline:hover{border-color:var(--teal);color:var(--teal-deep);background:var(--teal-wash)}.btn--solid{background:var(--teal-ink);color:var(--on-ink)}.btn--solid:hover{background:var(--teal-ink-2)}.btn--sm{padding:.5rem .85rem;font-size:.86rem}.linkbtn{background:none;border:none;padding:0;color:var(--teal-deep);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.band{background:var(--paper);border-block:1px solid var(--hair)}.sectionhead{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.4rem}.sectionhead__title{margin:0;font-family:var(--font-display);font-size:clamp(1.3rem,2.2vw,1.75rem);font-weight:700;letter-spacing:-.025em}.sectionhead__rule{flex:1;height:1px;background:var(--rule)}.sectionhead__count{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;color:var(--ink-3)}.kitstrip{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding-block:.9rem}.kitstrip__label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-right:.2rem}.kitstrip__sep{flex:1}.tally{display:inline-flex;align-items:center;gap:.5rem;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--rule);background:var(--paper);font-size:.84rem;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.tally:hover{border-color:var(--rule-strong)}.tally__n{font-family:var(--font-mono);font-weight:700;color:var(--ink)}.tally__dot{width:8px;height:8px;border-radius:50%;flex:none}.tally--go .tally__dot{background:var(--go)}.tally--near .tally__dot{background:var(--near)}.tally--far .tally__dot{background:var(--far)}.tally--stop .tally__dot{background:var(--stop)}.tally.is-on{border-color:currentColor}.tally--go.is-on{color:var(--go-deep);background:var(--teal-wash)}.tally--near.is-on{color:var(--near);background:var(--near-wash)}.tally--far.is-on{color:var(--ink-2);background:var(--paper-3)}.tally--stop.is-on{color:var(--stop);background:var(--stop-wash)}.tally.is-on .tally__n{color:inherit}.filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding-block:1rem;border-bottom:1px solid var(--hair)}.searchbox{position:relative;flex:1 1 260px;min-width:200px;max-width:380px}.searchbox__icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.searchbox input{width:100%;padding:.62rem .7rem .62rem 2.3rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper);font:inherit;font-size:.92rem;color:var(--ink)}.searchbox input::placeholder{color:var(--ink-3)}.searchbox input:focus{border-color:var(--teal);outline:none;box-shadow:var(--ring-teal)}.facets{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.facet{padding:.45rem .75rem;border-radius:999px;border:1px solid var(--rule);background:var(--paper);font-size:.83rem;font-weight:500;color:var(--ink-2);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.facet:hover{border-color:var(--rule-strong);color:var(--ink)}.facet.is-on{background:var(--teal-ink);border-color:var(--teal-ink);color:var(--on-ink);font-weight:600}.facet__group-label{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-right:.15rem}.filterbar__right{margin-left:auto;display:flex;align-items:center;gap:.7rem}.select{padding:.55rem .6rem;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--paper);font:inherit;font-size:.86rem;color:var(--ink-2);cursor:pointer}.resultcount{font-family:var(--font-mono);font-size:.76rem;color:var(--ink-3);white-space:nowrap}.projectgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(1rem,1.8vw,1.6rem);padding-block:clamp(1.4rem,3vw,2.4rem);list-style:none;margin:0;padding-inline:0}@media (min-width: 1080px){.projectgrid>li:first-child{grid-column:span 2}.projectgrid>li:first-child .pcard{flex-direction:row}.projectgrid>li:first-child .pcard__figure{flex:0 0 46%;border-bottom:none;border-right:1px solid var(--hair)}.projectgrid>li:first-child .pcard__title{font-size:1.7rem}.projectgrid>li:first-child .pcard__body{justify-content:center}.projectgrid>li:first-child .pcard__meta{margin-top:1.2rem}.projectgrid>li:first-child .pcard__intro{-webkit-line-clamp:3}}.pcard{position:relative;display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--lift-1);overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .22s,border-color .18s}.pcard:hover{transform:translateY(-3px);box-shadow:var(--lift-3);border-color:var(--rule)}.pcard:focus-visible{outline:2px solid var(--teal-deep);outline-offset:3px}.pcard__figure{position:relative;display:grid;place-items:center;min-height:178px;padding:1.5rem 1.35rem;background:var(--teal-ink);border-bottom:1px solid var(--hair);overflow:hidden}.pcard__figure:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(75% 85% at 82% 6%,rgba(20,195,202,.14),transparent 60%)}.pcard__num{position:absolute;left:.9rem;top:.6rem;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.06em;color:#9fbcbdbf}.pcard .project-diagram{position:relative;width:100%;max-height:120px;color:var(--teal-bright)}.pcard:hover .project-diagram{color:var(--teal-bright-2)}.pcard__body{display:flex;flex-direction:column;gap:.55rem;padding:1.1rem 1.2rem 1.25rem;flex:1}.pcard__title{margin:0;font-family:var(--font-display);font-size:1.24rem;font-weight:700;letter-spacing:-.025em;line-height:1.18;color:var(--ink)}.pcard:hover .pcard__title{color:var(--teal-deep)}.pcard__intro{margin:0;font-size:.9rem;line-height:1.55;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pcard__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--hair);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.pcard__meta b{color:var(--ink-2);font-weight:600}.pcard__meta-sep{color:var(--rule-strong)}.level{display:inline-flex;align-items:center;gap:.35rem}.level__gauge{display:inline-flex;gap:2px}.level__gauge i{width:5px;height:5px;background:var(--rule);border-radius:1px}.level--beginner{color:var(--beginner)}.level--intermediate{color:var(--intermediate)}.level--advanced{color:var(--advanced)}.level--beginner .level__gauge i:nth-child(-n+1),.level--intermediate .level__gauge i:nth-child(-n+2),.level--advanced .level__gauge i:nth-child(-n+3){background:currentColor}.badge{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:999px;font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge--go{color:var(--go-deep);background:var(--teal-wash)}.badge--near{color:var(--near);background:var(--near-wash)}.badge--far{color:var(--ink-2);background:var(--paper-3)}.badge--stop{color:var(--stop);background:var(--stop-wash)}.pcard__figure .badge{position:absolute;right:.75rem;top:.6rem;z-index:1}.pcard__figure .badge--go{color:var(--on-teal);background:var(--teal-bright)}.pcard__figure .badge--near{color:#2a1c00;background:#e8a33a}.pcard__figure .badge--far{color:var(--on-ink-2);background:#eef6f61a}.pcard__figure .badge--stop{color:#ffe9ed;background:#b4364cd9}.catalog__empty{padding-block:2.5rem}.catalog__clear{padding-bottom:2rem}.notfound{padding-block:clamp(3rem,8vw,6rem)}.empty{display:grid;place-items:center;gap:.6rem;padding:clamp(3rem,8vw,5.5rem) 1rem;text-align:center;border:1px dashed var(--rule);border-radius:var(--r-lg);background:var(--paper)}.empty__stamp{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-deep)}.empty__body{margin:0;max-width:44ch;color:var(--ink-2)}.sitefooter{margin-top:clamp(3rem,7vw,6rem);background:var(--teal-ink);color:var(--on-ink-2)}.sitefooter__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-block:2.2rem;font-size:.84rem}.sitefooter__in p{margin:0}.sitefooter a{color:var(--on-ink);text-decoration:none;border-bottom:1px solid var(--hair-on-ink)}.sitefooter a:hover{color:var(--teal-bright);border-color:var(--teal-bright)}.sitefooter__brand{font-family:var(--font-display);font-weight:700;color:var(--on-ink);letter-spacing:-.02em}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.pagehead{padding-block:clamp(2rem,4.5vw,3.4rem) clamp(1rem,2vw,1.6rem);max-width:62ch}.pagehead__eyebrow{margin:0 0 .8rem;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal-deep)}.pagehead__title{margin:0 0 .7rem;font-family:var(--font-display);font-size:clamp(1.9rem,4vw,3rem);font-weight:800;letter-spacing:-.035em;line-height:1.02}.pagehead__sub{margin:0;font-size:1.02rem;line-height:1.6;color:var(--ink-2)}.kitsection{padding-block:clamp(1.4rem,3vw,2.4rem)}.kitpage{padding-bottom:2rem}.kitpage__result{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.3rem;background:var(--teal-ink);color:var(--on-ink);border-radius:var(--r-lg);box-shadow:var(--lift-2)}.kitpage__resulttext{margin:0;max-width:60ch;color:var(--on-ink-2)}.kitpage__resulttext b{color:var(--teal-bright);font-size:1.15em;font-weight:800}.kitpage__share{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;padding-block:1.6rem .5rem;border-top:1px solid var(--hair)}.boardchoose{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}.boardcard{position:relative;display:flex;flex-direction:column;gap:.75rem;padding:0;text-align:left;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--lift-1);cursor:pointer;overflow:hidden;transition:transform .16s,box-shadow .2s,border-color .16s}.boardcard:hover{transform:translateY(-2px);box-shadow:var(--lift-2);border-color:var(--rule)}.boardcard.is-selected{border-color:var(--teal);box-shadow:var(--lift-2),0 0 0 1px var(--teal)}.boardcard__screen{display:grid;place-items:center;padding:1.3rem 1rem;background:var(--teal-ink);border-bottom:1px solid var(--hair)}.boardcard__screen .board-glyph{width:100%;max-width:210px}.boardcard__id{display:flex;flex-direction:column;gap:.2rem;padding:0 1rem 1.05rem}.boardcard__name{font-weight:700;font-size:1rem;letter-spacing:-.015em;color:var(--ink)}.boardcard__meta{font-size:.66rem;letter-spacing:.05em;color:var(--ink-3)}.boardcard.is-selected .boardcard__name{color:var(--teal-deep)}.boardcard__check{position:absolute;right:.7rem;top:.7rem;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef6f61f;color:transparent;font-size:.72rem;font-weight:700;transition:background .16s,color .16s}.boardcard.is-selected .boardcard__check{background:var(--teal-bright);color:var(--on-teal)}.parts__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding-bottom:1.1rem;margin-bottom:1.2rem;border-bottom:1px solid var(--hair)}.parts__count{margin:0;font-size:.8rem;color:var(--ink-3);letter-spacing:.04em}.parts__count b{color:var(--teal-deep);font-size:1.35rem;font-weight:700}.parts__actions{display:flex;gap:.5rem}.btn:disabled{opacity:.45;cursor:not-allowed}.parts__group{margin-bottom:1.5rem}.parts__group[data-category=sensor]{--cat: #2f6aa8}.parts__group[data-category=actuator]{--cat: #b5523a}.parts__group[data-category=display]{--cat: #6a5aa6}.parts__group[data-category=input]{--cat: #2b8686}.parts__group[data-category=passive]{--cat: #6f7a72}.parts__group[data-category=infrastructure]{--cat: #9a7422}.parts__grouphead{display:flex;align-items:center;gap:.55rem;margin:0 0 .75rem;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}.parts__dot{width:8px;height:8px;border-radius:2px;background:var(--cat);flex:none}.parts__rule{flex:1;height:1px;background:var(--hair)}.parts__n{color:var(--ink-3);letter-spacing:.04em}.parts__chips{display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .6rem .5rem .55rem;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r);cursor:pointer;box-shadow:var(--lift-1);transition:transform .12s,border-color .16s,background .16s,box-shadow .16s}.chip:hover{transform:translateY(-1px);border-color:var(--rule-strong);box-shadow:var(--lift-2)}.chip:active{transform:translateY(0)}.chip__icon{display:grid;place-items:center;width:20px;height:20px;color:var(--cat, var(--ink-3))}.chip__name{font-size:.88rem;font-weight:500;color:var(--ink)}.chip__check{display:grid;place-items:center;width:18px;height:18px;border-radius:var(--r-sm);background:var(--paper-2);color:var(--ink-3);font-size:.72rem;font-weight:700}.chip.is-owned{border-color:var(--teal);background:var(--teal-wash)}.chip.is-owned .chip__name{color:var(--teal-deep);font-weight:600}.chip.is-owned .chip__check{background:var(--teal);color:var(--paper)}.unlock{padding:clamp(1.3rem,2.4vw,1.9rem);background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-lg);margin-block:1rem}.unlock__title{margin:0 0 .3rem;font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.025em}.unlock__sub{margin:0 0 1.2rem;max-width:62ch;color:var(--ink-2);font-size:.94rem}.unlock__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.unlock__row{display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;background:var(--paper-2);border:1px solid var(--hair);border-radius:var(--r)}.unlock__icon{display:grid;place-items:center;width:34px;height:34px;flex:none;color:var(--teal-deep);background:var(--teal-wash);border-radius:var(--r-sm)}.unlock__detail{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.unlock__name{font-weight:600;color:var(--ink)}.unlock__effect{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-deep)}.unlock__names{font-size:.8rem;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.projectpage{padding-bottom:2rem}.crumbs{display:flex;align-items:center;gap:.5rem;padding-block:1.4rem .4rem;font-size:.82rem;color:var(--ink-3)}.crumbs a{color:var(--teal-deep);text-decoration:none}.crumbs a:hover{text-decoration:underline}.projecthead{display:flex;gap:clamp(.9rem,2vw,1.8rem);padding-block:.8rem 1.6rem}.projecthead__num{flex:none;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;line-height:.9;color:var(--rule);letter-spacing:-.04em;margin:0}.projecthead__main{min-width:0}.projecthead__titlerow{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem}.projecthead__title{margin:0;font-family:var(--font-display);font-size:clamp(1.9rem,4.2vw,3rem);font-weight:800;letter-spacing:-.035em;line-height:1}.projecthead__intro{margin:.7rem 0 0;max-width:68ch;font-size:1.04rem;line-height:1.6;color:var(--ink-2)}.specstrip{display:grid;grid-template-columns:repeat(3,auto) 1fr;gap:0;margin:0 0 1.6rem;border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);overflow:hidden}.specstrip__cell{padding:.85rem 1.1rem;border-left:1px solid var(--hair)}.specstrip__cell:first-child{border-left:none}.specstrip__cell dt{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.specstrip__cell dd{margin:.25rem 0 0;font-size:.94rem;font-weight:600;color:var(--ink)}.specstrip__cell--wide dd{font-weight:500;color:var(--ink-2);font-size:.82rem}@media (max-width: 700px){.specstrip{grid-template-columns:repeat(2,1fr)}.specstrip__cell{border-top:1px solid var(--hair)}.specstrip__cell:nth-child(-n+2){border-top:none}.specstrip__cell:nth-child(odd){border-left:none}.specstrip__cell--wide{grid-column:span 2}}.notice{padding:1rem 1.2rem;border-radius:var(--r);margin-bottom:1.6rem;border:1px solid}.notice--stop{background:var(--stop-wash);border-color:#b4364c4d;color:#7d2333}.notice__title{margin:0 0 .4rem;font-weight:700}.notice__list{margin:0 0 .6rem;padding-left:1.1rem;font-size:.92rem}.notice .linkbtn{color:#7d2333}.projectfig{margin:0 0 clamp(1.6rem,3vw,2.6rem)}.projectfig__tile{position:relative;display:grid;place-items:center;min-height:clamp(220px,30vw,340px);padding:clamp(1.6rem,4vw,3.4rem);background:var(--teal-ink);border-radius:var(--r-lg);box-shadow:var(--lift-2);overflow:hidden}.projectfig__tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(60% 80% at 85% 4%,rgba(20,195,202,.15),transparent 62%)}.projectfig__tag{position:absolute;left:1.1rem;top:.9rem;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#9fbcbdcc}.projectfig .project-diagram{position:relative;width:100%;max-height:clamp(150px,22vw,240px);color:var(--teal-bright)}.bbfig{margin:0 0 clamp(1.4rem,3vw,2.2rem)}.bbfig__tile{position:relative;padding:clamp(1.4rem,3vw,2rem) clamp(.8rem,2.5vw,1.6rem) clamp(.7rem,2vw,1rem);background:var(--teal-ink);border-radius:var(--r-lg);box-shadow:var(--lift-2);overflow:hidden}.bbfig__tag{position:absolute;left:1.1rem;top:.9rem;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:#9fbcbdcc;z-index:1}.breadboard{display:block;width:100%;height:auto}.bbfig__cap{margin:.7rem 0 0;font-size:.68rem;letter-spacing:.02em;color:var(--ink-3)}.bb-ard-title{fill:#bfeceb;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.08em}.bb-ard-pin{fill:#d7e6e6;font-family:var(--font-mono);font-size:10px;font-weight:600}.bb-module-name{fill:#eaf6f6;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.04em}.bb-pin-label{fill:#cfe0e0;font-family:var(--font-mono);font-size:7.5px;font-weight:600}.bb-part-label{fill:#4a3a1e;font-family:var(--font-mono);font-size:9px;font-weight:700}.bb-plus{fill:#dbe1e7;font-family:var(--font-mono);font-size:11px;font-weight:700}.bb-leg{stroke:#9aa0a8;stroke-width:2;stroke-linecap:round}.projectbody{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:clamp(1.5rem,3vw,3rem);align-items:start}@media (max-width: 940px){.projectbody{grid-template-columns:1fr}}.projectbody__side{display:flex;flex-direction:column;gap:1rem;position:sticky;top:4.375rem}@media (max-width: 940px){.projectbody__side{position:static}}.blockhead{margin:0 0 .9rem;padding-bottom:.5rem;border-bottom:2px solid var(--teal-ink);font-family:var(--font-display);font-size:1.35rem;font-weight:700;letter-spacing:-.025em}.projectbody__main>.blockhead:not(:first-child){margin-top:2.4rem}.wiring{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:var(--r);overflow:hidden}.wiring__row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--hair);background:var(--paper)}.wiring__row:first-child{border-top:none}.wiring__row:nth-child(2n){background:var(--paper-2)}.wiring__from{font-size:.92rem;color:var(--ink)}.wiring__arrow{color:var(--teal);font-weight:700}.wiring__to{font-size:.86rem;font-weight:600;color:var(--teal-deep)}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.steps__row{display:flex;gap:.9rem;align-items:baseline;line-height:1.6;color:var(--ink-2)}.steps__n{flex:none;font-size:.8rem;font-weight:700;color:var(--teal)}.codeblock{border-radius:var(--r);overflow:hidden;box-shadow:var(--lift-2)}.codeblock__bar{display:flex;align-items:center;justify-content:space-between;padding:.55rem .9rem;background:var(--teal-ink-2);color:var(--on-ink-2);font-size:.7rem;letter-spacing:.06em}.codeblock__copy{background:none;border:1px solid var(--hair-on-ink);border-radius:var(--r-sm);padding:.25rem .6rem;color:var(--on-ink);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.codeblock__copy:hover{border-color:var(--teal-bright);color:var(--teal-bright)}.codeblock__pre{margin:0;padding:1.1rem 1.2rem;background:var(--teal-ink);color:#cfe6e6;font-family:var(--font-mono);font-size:.82rem;line-height:1.65;overflow-x:auto}.sidecard{padding:1.2rem;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--lift-1)}.sidecard__title{margin:0 0 .9rem;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.checklist__summary{margin:-.35rem 0 .8rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.checklist__row{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-top:1px solid var(--hair)}.checklist__row:first-child{border-top:none}.checklist__icon{display:grid;place-items:center;width:26px;height:26px;flex:none;color:var(--ink-3)}.checklist__row.is-have .checklist__icon{color:var(--teal)}.checklist__name{flex:1;font-size:.92rem;color:var(--ink)}.checklist__state{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.checklist__state.is-have{color:var(--teal-deep);font-weight:700}.parts-none{margin:0;font-size:.92rem;color:var(--ink-2)}.taglist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.tag{padding:.3rem .55rem;border-radius:var(--r-sm);background:var(--paper-2);border:1px solid var(--hair);font-size:.74rem;color:var(--ink-2)}.related{padding-top:clamp(2rem,4vw,3.4rem)}.related__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.related__card{display:flex;flex-direction:column;gap:.55rem;padding:0;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--lift-1);overflow:hidden;text-decoration:none;color:inherit;transition:transform .16s,box-shadow .2s}.related__card:hover{transform:translateY(-2px);box-shadow:var(--lift-2)}.related__tile{display:grid;place-items:center;min-height:110px;padding:.9rem;background:var(--teal-ink)}.related__tile .project-diagram{width:100%;max-height:74px;color:var(--teal-bright)}.related__name{padding:0 .9rem;font-weight:700;letter-spacing:-.015em}.related__meta{padding:0 .9rem .95rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:start center;padding:clamp(1rem,8vh,6rem) 1rem 1rem;background:#04363a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:min(620px,100%);background:var(--paper);border-radius:var(--r-lg);box-shadow:var(--lift-3);overflow:hidden}.searchoverlay__field{display:flex;align-items:center;gap:.7rem;padding:.95rem 1.1rem;border-bottom:1px solid var(--hair);color:var(--ink-3)}.searchoverlay__field input{flex:1;border:none;outline:none;font:inherit;font-size:1.02rem;color:var(--ink);background:none}.searchoverlay__field kbd{padding:.2rem .4rem;border:1px solid var(--rule);border-radius:var(--r-sm);font-size:.66rem;color:var(--ink-3)}.searchoverlay__list{list-style:none;margin:0;padding:.4rem;max-height:60vh;overflow-y:auto}.searchoverlay__hint{padding:.5rem .7rem .3rem;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.searchoverlay__row{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:.7rem .75rem;background:none;border:none;border-radius:var(--r);text-align:left;cursor:pointer}.searchoverlay__row:hover{background:var(--teal-wash)}.searchoverlay__title{font-weight:600;color:var(--ink)}.searchoverlay__meta{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.searchoverlay__none{padding:1.6rem 1.2rem;margin:0;color:var(--ink-2)}@media (prefers-reduced-motion: no-preference){.projectgrid>li{animation:rise .5s cubic-bezier(.22,.61,.36,1) both}.projectgrid>li:nth-child(1){animation-delay:.02s}.projectgrid>li:nth-child(2){animation-delay:.06s}.projectgrid>li:nth-child(3){animation-delay:.1s}.projectgrid>li:nth-child(4){animation-delay:.14s}.projectgrid>li:nth-child(5){animation-delay:.18s}.projectgrid>li:nth-child(6){animation-delay:.22s}.projectgrid>li:nth-child(n+7){animation-delay:.26s}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.part-icon{width:100%;height:100%}.project-diagram{width:100%;height:auto;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.project-diagram .pd-fill{fill:currentColor;stroke:none}.project-diagram text{fill:currentColor;stroke:none;font-family:var(--font-mono);font-size:9px;font-weight:600}.project-diagram__more{fill:currentColor;stroke:none;font-family:var(--font-mono);font-size:11px;font-weight:700;opacity:.75}.board-glyph{width:100%;height:auto}.board-glyph__plate{stroke-width:1.4}.board-glyph__label{fill:#b9c4cd;stroke:none;font-family:var(--font-mono);font-size:5.6px;font-weight:500;letter-spacing:.02em;opacity:.82}.board-glyph__shield-label{fill:#262d35;stroke:none;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.06em}.board-glyph__silk{fill:currentColor;stroke:none;font-family:var(--font-mono);font-size:7px;font-weight:600;letter-spacing:.14em;opacity:.72}.specstrip .level{display:inline-flex;align-items:center;gap:.4rem}.shiny-text{display:inline-block}
