:root{--paper: #e9e5dd;--ink: #141210;--mid: #4a443d;--rule: rgba(20, 18, 16, .2);--red: #ff4c1f;--sans: "Archivo", "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--m: clamp(16px, 2.2vw, 32px);--col-gap: clamp(12px, 1.6vw, 24px)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;opacity:.22;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}::selection{background:var(--red);color:var(--paper)}a{color:inherit;text-decoration:none}h1,h2,p,figure,dl{margin:0}.fill{position:absolute;top:0;right:0;bottom:0;left:0}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);padding:0 var(--m)}.c1{grid-column:1 / span 2}.c3{grid-column:3 / span 6}.c5{grid-column:5 / span 4}.c9{grid-column:9 / span 4}.c11{grid-column:11 / span 2}.label{font-family:var(--mono);font-size:11px;line-height:1.5;letter-spacing:.02em;color:var(--mid);font-weight:400}.bar{position:sticky;top:0;z-index:20;padding-top:12px;padding-bottom:12px;font-family:var(--mono);font-size:11px;background:#e9e5dd8c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:var(--col-gap);padding-left:var(--m);padding-right:var(--m)}.bar-mid{text-align:center;white-space:nowrap}.bar-sep{margin:0 10px;color:var(--mid)}.bar .name{font-weight:500}.bar nav{display:flex;justify-content:flex-end;gap:18px}.bar a:hover,.contact-links a:hover{color:var(--red)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--paper)}.hero{position:relative;height:calc(100svh - 41px);min-height:460px;padding:var(--m)}.hero h1{position:absolute;left:var(--m);bottom:var(--m);font-weight:800;font-stretch:62%;font-size:clamp(88px,21vw,360px);line-height:.8;letter-spacing:-.02em;text-transform:uppercase}.hero-tag{position:absolute;top:var(--m);left:var(--m);max-width:19ch;font-size:clamp(22px,2.6vw,38px);font-weight:500;line-height:1.08;letter-spacing:-.015em;text-wrap:balance}.scroll-cue{position:absolute;right:var(--m);bottom:var(--m);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;transition:opacity .4s ease,color .2s}.scroll-cue span{display:grid;place-items:center;width:84px;height:84px;border:1.5px solid var(--ink);border-radius:50%;font-family:var(--sans);font-size:40px;text-transform:none;animation:bob 1.8s ease-in-out infinite;transition:background .2s,color .2s}.scroll-cue:hover span{background:var(--ink);color:var(--paper)}.scroll-cue.gone{opacity:0;pointer-events:none}@keyframes bob{50%{transform:translateY(10px)}}.hero-count{position:absolute;top:var(--m);right:var(--m);font-family:var(--mono);font-size:11px;text-align:right}.intro{padding-top:clamp(64px,10vw,140px);padding-bottom:clamp(64px,10vw,140px)}.intro-text{grid-column:3 / span 8;font-size:clamp(24px,3vw,44px);line-height:1.12;letter-spacing:-.015em;font-weight:400;text-indent:2.4em}.index{padding-bottom:clamp(80px,12vw,180px)}.index .table{grid-column:3 / span 10}.row{display:grid;grid-template-columns:.6fr 3.4fr 1.2fr 2fr 1fr;gap:var(--col-gap);padding:10px 0;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12px;align-items:baseline}.row.head{color:var(--mid);font-size:11px}.table>.row:last-child{border-bottom:1px solid var(--rule)}a.row .row-title{font-family:var(--sans);font-size:clamp(17px,1.5vw,21px);font-weight:500;letter-spacing:-.01em}a.row:hover{color:var(--red)}.peek{position:fixed;top:0;left:0;pointer-events:none;z-index:30;opacity:0;transition:opacity .15s}.peek img{display:block;width:auto;height:auto;max-width:135px;max-height:105px;transform:translateY(-50%)}.peek img.on-plate{padding:8px;max-width:151px;max-height:121px}.peek img.wide{width:165px;max-width:165px}.peek.on{opacity:1}@media(hover:none){.peek{display:none}}.project{padding-bottom:clamp(96px,14vw,220px);scroll-margin-top:41px}.project-head{border-top:1px solid var(--ink);padding-top:12px;margin-bottom:clamp(20px,2.5vw,36px)}.project-head h2{grid-column:3 / span 10;font-weight:800;font-stretch:62%;font-size:clamp(56px,10vw,168px);line-height:.82;letter-spacing:-.015em;text-transform:uppercase}.project-head,.project-body{margin-left:var(--m);margin-right:var(--m);padding-left:0;padding-right:0}.plate-wrap{grid-column:1 / -1}.word{white-space:nowrap}.layout-left .plate-wrap{grid-column:1 / span 8}.layout-right .plate-wrap{grid-column:5 / span 8}.plate{position:relative;aspect-ratio:16 / 9;overflow:hidden}.layout-left .plate,.layout-right .plate{aspect-ratio:4 / 3}.plate-img{all:unset;position:absolute;top:8%;right:10%;bottom:8%;left:10%;display:flex;align-items:center;justify-content:center;cursor:zoom-in}.plate-img:focus-visible{outline:2px solid var(--paper);outline-offset:4px}.plate-img img{max-width:100%;max-height:100%;object-fit:contain;display:block;box-shadow:0 1px #0003,0 30px 50px -30px #0009}.plate-img.cut{top:5%;right:7%;bottom:5%;left:7%}.plate-img.cut img{box-shadow:none;filter:drop-shadow(0 28px 28px rgba(0,0,0,.35)) drop-shadow(0 4px 6px rgba(0,0,0,.25));animation:float 7s ease-in-out infinite}@keyframes float{50%{transform:translateY(-8px) rotate(-.4deg)}}.thumbs button.cut{background:#1412101a}.thumbs button.cut img{object-fit:contain}.plate-img.pair{gap:6%}.plate-img.pair img{min-width:0;flex:1 1 0}.pcb-viewer{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.pcb-viewer:active{cursor:grabbing}.pcb-viewer canvas{display:block;width:100%;height:100%}.hint{position:absolute;left:12px;top:12px;padding:6px 10px;background:var(--paper);font-family:var(--mono);font-size:11px;pointer-events:none}.thumb-3d{display:grid;place-items:center;width:100%;height:100%;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:800;font-stretch:62%;font-size:22px}.plate-diagram{all:unset;position:absolute;top:6%;right:5%;bottom:6%;left:5%;display:flex;align-items:center;justify-content:center;cursor:zoom-in}.plate-diagram:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.inline-svg{width:100%;max-height:100%;display:flex}.inline-svg svg{width:100%;height:auto;max-height:100%;display:block;box-shadow:0 1px #00000026,0 30px 50px -30px #00000080}.lightbox-diagram{width:100%;max-height:calc(100% - 30px);overflow:auto;cursor:default}.lightbox-diagram .inline-svg svg{min-width:1100px;box-shadow:none}.wip{position:relative}.wip-badge i,.wip-dot i{flex:none;width:9px;height:9px;border-radius:50%;background:currentColor;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.2}}.wip-badge{position:absolute;left:12px;top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:10px 16px;background:var(--red);color:var(--paper);font-family:var(--mono);font-size:12px;box-shadow:0 8px 24px -8px #00000073}.wip-badge b{font-family:var(--sans);font-weight:800;font-stretch:62%;font-size:20px;line-height:1;text-transform:uppercase}.due{color:var(--red);font-weight:500}.wip-row{background:#ff4c1f1a}.wip-row>span:first-child,.wip-row>span:last-child{color:var(--red);font-weight:500}.wip-dot{display:flex;align-items:center;gap:6px}.wip-dot i{width:7px;height:7px}.pager{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;background:var(--paper);color:var(--ink);font-family:var(--mono);font-size:12px;box-shadow:0 6px 18px -6px #0006}.pager span{padding:0 10px;min-width:52px;text-align:center}.pager button{all:unset;cursor:pointer;width:40px;height:36px;display:grid;place-items:center;font-size:16px;transition:background .15s,color .15s}.pager button:hover{background:var(--ink);color:var(--paper)}.pager button:focus-visible{outline:2px solid var(--red);outline-offset:-2px}figcaption{display:flex;align-items:flex-start;gap:20px;padding-top:8px;font-family:var(--mono);font-size:11px;color:var(--mid)}figcaption>span:first-child{color:var(--ink);min-width:56px}.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.thumbs button{all:unset;cursor:pointer;position:relative;width:clamp(72px,9vw,120px);aspect-ratio:4 / 3;outline:1px solid var(--rule);outline-offset:3px;opacity:.6;transition:opacity .15s,outline-color .15s,transform .15s}.thumbs button:hover{opacity:1;transform:translateY(-2px)}.thumbs button.on{opacity:1;outline:2px solid var(--ink)}.thumbs button:focus-visible{outline:2px solid var(--red)}.thumbs img{width:100%;height:100%;object-fit:cover;display:block}.thumbs button.pair{display:flex;gap:2px}.thumbs button.pair img{min-width:0;flex:1}.project-body{margin-top:clamp(28px,4vw,56px)}.spec-sheet{grid-column:3 / span 10;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--col-gap);row-gap:clamp(18px,2vw,28px);margin:0}.spec-sheet div{border-top:1px solid var(--ink);padding-top:8px}.spec-sheet dt{font-family:var(--mono);font-size:11px;color:var(--mid);margin-bottom:6px}.spec-sheet dd{margin:0;font-size:clamp(17px,1.45vw,22px);font-weight:500;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}@media(max-width:1100px){.spec-sheet{grid-template-columns:repeat(3,minmax(0,1fr))}}.contact{border-top:1px solid var(--ink);margin:0 var(--m);padding:12px 0 var(--m);row-gap:clamp(80px,12vw,180px)}.contact-links{grid-column:3 / span 10;display:flex;flex-direction:column}.contact-links a{font-weight:800;font-stretch:62%;font-size:clamp(48px,9vw,150px);line-height:.88;letter-spacing:-.015em;text-transform:uppercase;width:fit-content}.heart{display:inline-block;transform-origin:50% 60%;animation:heartbeat 1.3s ease-in-out infinite}@keyframes heartbeat{0%,40%,to{transform:scale(1)}10%,30%{transform:scale(1.25)}20%{transform:scale(1.05)}}.colophon{align-self:end}.colophon.c9{text-align:right}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:5vmin;background:var(--paper);cursor:zoom-out}.lightbox-imgs{display:flex;gap:4vmin;justify-content:center;min-height:0;max-width:100%;max-height:calc(100% - 30px)}.lightbox-imgs img{min-width:0;max-width:100%;max-height:100%;object-fit:contain}@media(max-width:760px){.c1,.c3,.c5,.c9,.intro-text,.index .table,.project-head h2,.contact-links,.plate-wrap,.layout-left .plate-wrap,.layout-right .plate-wrap{grid-column:1 / -1}.c11{grid-column:7 / -1}.hide-s{display:none}.label.c1{margin-bottom:14px}.project-head .label{margin-bottom:6px}.row{grid-template-columns:2.4em 1fr auto}.plate,.layout-left .plate,.layout-right .plate{aspect-ratio:4 / 3.4}.plate-img{top:7%;right:7%;bottom:7%;left:7%}.spec-sheet{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}figcaption{flex-wrap:wrap;gap:6px 14px}.intro-text{text-indent:0}.colophon.c9{margin-top:-60px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wip-badge i,.wip-dot i,.heart,.scroll-cue span,.plate-img.cut img{animation:none}}@media(max-width:760px){.bar{grid-template-columns:1fr auto}}.content-error{max-width:760px;margin:15vh auto;padding:0 var(--m)}.content-error pre{white-space:pre-wrap;font-family:var(--mono);font-size:13px;background:#1412100f;padding:16px;border-left:3px solid var(--red)}@media(max-width:760px){.wip-badge span{display:none}}@media(max-width:760px){.scroll-cue{bottom:auto;top:52%}.scroll-cue span{width:64px;height:64px;font-size:30px}}
