@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../fonts/archivo.woff2)format("woff2-variations")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/plex-mono-400.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../fonts/plex-mono-500.woff2)format("woff2")}:root{--bp:#0c3a78;--bp-deep:#082b5c;--bp-raise:#11478f;--ink:#f2f7fd;--muted:#a9c4e8;--line:#c4dcff47;--line-strong:#e2eeff9e;--grid-minor:#96c0ff13;--grid-major:#96c0ff29;--accent:#ffb547;--accent-ink:#0a2a55;--shadow:2, 10, 28;--font:"Archivo", ui-sans-serif, system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--step-tag:.8125rem;--step-small:clamp(.875rem, .85rem + .1vw, .9375rem);--step-body:clamp(1.0625rem, 1.02rem + .2vw, 1.1875rem);--step-lead:clamp(1.25rem, 1.1rem + .6vw, 1.625rem);--step-head:clamp(2.25rem, 1.5rem + 3vw, 4.25rem);--step-display:clamp(3.25rem, 1.6rem + 6.4vw, 7.5rem);--m:clamp(16px, 3vw, 48px);--gap-section:clamp(96px, 11vw, 176px);--max:1520px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-plot:cubic-bezier(.65, 0, .35, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{background-color:var(--bp);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:var(--line-strong) var(--bp-deep);-webkit-tap-highlight-color:transparent;caret-color:var(--accent);scroll-padding-top:88px}body{font-size:var(--step-body);-webkit-font-smoothing:antialiased;line-height:1.55}img,picture,canvas,svg{max-width:100%;display:block}img{height:auto}h1,h2,h3,h4,p,li{overflow-wrap:break-word}h1,h2,h3{text-wrap:balance;font-weight:600;font-stretch:112%}p{text-wrap:pretty}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}button{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:var(--m);z-index:20;background:var(--ink);color:var(--bp);padding:10px 16px;position:absolute;top:-100px}.skip:focus{top:12px}.table,.bar{background-color:var(--bp);background-image:linear-gradient(var(--grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--grid-major) 1px, transparent 1px), linear-gradient(var(--grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px);background-position:-1px -1px;background-size:120px 120px,120px 120px,24px 24px,24px 24px}.tag,.sec-note,.readout,.rev-dates,.title-block td>span,.plate-meta dt,.readouts dt,.spec dt,.callout dt,.bom-table thead th,.bom-table .num,.bom-table .qty,.next-label,.viewer-hint,.viewer-status,.imprint,figcaption{font-family:var(--mono);font-variant-numeric:tabular-nums}.tag{color:var(--accent);font-size:var(--step-tag);letter-spacing:.04em;text-transform:uppercase;margin-right:10px;display:inline-block}.btn{background:var(--ink);min-height:48px;color:var(--accent-ink);font-size:var(--step-body);transition:transform .16s var(--ease-out), background-color .2s ease, color .2s ease;justify-content:center;align-items:center;gap:.5em;padding:0 22px;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn:active{transform:scale(.97)}.btn.small{min-height:44px;font-size:var(--step-small);padding:0 16px}.btn.wide{width:100%;min-height:54px}.btn.ghost{color:var(--ink);border:1px solid var(--line-strong);background:0 0}.btn.ghost:before,.btn.ghost:after{content:"";border:solid var(--ink);pointer-events:none;width:8px;height:8px;transition:transform .2s var(--ease-out);position:absolute}.btn.ghost:before{border-width:1px 0 0 1px;top:-3px;left:-3px}.btn.ghost:after{border-width:0 1px 1px 0;bottom:-3px;right:-3px}@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--accent);color:var(--accent-ink)}.btn.ghost:hover{color:var(--ink);background:#ffffff12}.btn.ghost:hover:before{transform:translate(-3px,-3px)}.btn.ghost:hover:after{transform:translate(3px,3px)}}.text-link{text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);transition:color .16s,text-decoration-color .16s}@media (hover:hover) and (pointer:fine){.text-link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.bar{z-index:10;padding:14px var(--m);box-shadow:0 1px 0 var(--line);font-size:var(--step-small);justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.01em;align-items:center;gap:12px;font-weight:600;text-decoration:none;display:inline-flex}.mark{width:34px;height:34px;box-shadow:inset 0 0 0 1px var(--line-strong);font-family:var(--mono);place-items:center;font-size:.8125rem;font-weight:500;display:grid}.bar nav{gap:clamp(16px,2.6vw,36px);display:flex}.bar nav a{color:var(--muted);padding:10px 0;text-decoration:none;transition:color .16s;position:relative}.bar nav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .24s var(--ease-out);position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0)}.bar nav a[aria-current]{color:var(--ink)}@media (hover:hover) and (pointer:fine){.bar nav a:hover{color:var(--ink)}.bar nav a:hover:after{transform:scaleX(1)}}.table{z-index:1;padding:0 var(--m) var(--gap-section);position:relative}.table>*{max-width:var(--max);margin-left:auto;margin-right:auto}.sec{margin-top:var(--gap-section)}h2{font-size:var(--step-head);letter-spacing:-.035em;line-height:1}.sec-head{align-items:baseline;gap:20px;margin-bottom:clamp(36px,4.5vw,64px);display:flex}.sec-head h2{flex:0 auto;min-width:0}.sec-rule{background:var(--line-strong);transform-origin:0;flex:1;align-self:center;height:1px;margin-top:.3em}.sec-note{color:var(--muted);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.06em;flex:none}.title-block{border-collapse:collapse;width:100%;font-size:var(--step-small);font-variant-numeric:tabular-nums}.title-block td{border:1px solid var(--line-strong);vertical-align:top;padding:10px 14px 12px}.title-block td>span{color:var(--muted);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;display:block}.title-block td b{font-weight:500;font-size:var(--step-body);line-height:1.3;display:block}.pop{--lx:-12px;--ly:-14px;margin:0}.pop-stage{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease-out);position:relative}.pop-frame{box-shadow:inset 0 0 0 1px var(--line-strong);pointer-events:none;position:absolute;inset:0}.pop-frame:before,.pop-frame:after{content:"";border:solid var(--ink);width:14px;height:14px;position:absolute}.pop-frame:before{border-width:1px 0 0 1px;top:-6px;left:-6px}.pop-frame:after{border-width:0 1px 1px 0;bottom:-6px;right:-6px}.pop-img{transform:translate(var(--lx), var(--ly));box-shadow:0 28px 50px -18px rgba(var(--shadow), .75), 0 0 0 1px #ffffff14;transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);position:relative}.pop-img picture{background:var(--ph,var(--bp-raise));aspect-ratio:var(--ratio,auto);overflow:hidden}.pop-img img{object-fit:cover;width:100%;height:100%}.pop figcaption{font-size:var(--step-tag);color:var(--muted);margin-top:18px}.pop.cutout .pop-img{box-shadow:none;filter:drop-shadow(18px 26px 18px rgba(var(--shadow), .55))}.pop.cutout .pop-img picture{background:0 0}.pop.cutout .pop-img img{object-fit:contain}@media (hover:hover) and (pointer:fine){a:hover .pop,.pop[data-tilt]:hover{--lx:-18px;--ly:-22px}a:hover .pop .pop-img,.pop[data-tilt]:hover .pop-img{box-shadow:0 40px 64px -20px rgba(var(--shadow), .85), 0 0 0 1px #ffffff1f}a:hover .pop.cutout .pop-img,.pop.cutout[data-tilt]:hover .pop-img{box-shadow:none}}.hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(24px,4vw,72px);min-height:calc(100svh - 64px);padding:clamp(32px,5vw,72px) 0 clamp(24px,3vw,48px);display:grid}.hero-title{z-index:2;position:relative}.headshot{width:96px;height:96px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%;margin-bottom:28px;overflow:hidden}.headshot img{object-fit:cover;height:100%}h1{font-size:var(--step-display);letter-spacing:-.035em;font-weight:700;font-stretch:118%;line-height:.92}.role{font-size:var(--step-lead);color:var(--ink);max-width:30ch;margin-top:22px;font-weight:400;line-height:1.3}.hook{color:var(--muted);max-width:40ch;margin-top:18px}.actions{flex-wrap:wrap;gap:14px;margin-top:32px;display:flex}.readouts{grid-template-columns:repeat(3,auto);justify-content:start;gap:8px clamp(24px,3vw,48px);margin-top:clamp(36px,5vw,64px);display:grid}.readouts div{flex-direction:column;display:flex}.readouts dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;order:1;font-size:clamp(1.75rem,1.2rem + 1.6vw,2.5rem);font-weight:600;line-height:1}.readouts dt{color:var(--muted);font-size:var(--step-tag);order:2;max-width:18ch;margin-top:8px;line-height:1.4}.hero-fig{margin:0}.hero-fig figcaption{max-width:72ch;font-size:var(--step-tag);color:var(--muted);margin-top:18px}.hero-fig figcaption a{color:var(--ink)}.drawing{padding:clamp(16px,2.4vw,36px);position:relative}.drawing-frame{box-shadow:inset 0 0 0 1px var(--line);pointer-events:none;position:absolute;inset:0}.drawing-frame:before,.drawing-frame:after{content:"";opacity:.8;position:absolute}.drawing-frame:before{background-image:linear-gradient(90deg, var(--line-strong) 1px, transparent 1px);background-repeat:repeat-x;background-size:24px 8px;height:8px;top:0;left:0;right:0}.drawing-frame:after{background-image:linear-gradient(var(--line-strong) 1px, transparent 1px);background-repeat:repeat-y;background-size:8px 24px;width:8px;top:0;bottom:0;left:0}.drawing-frame span:before,.drawing-frame span:after{content:"";border:solid var(--ink);width:18px;height:18px;position:absolute}.drawing-frame span:before{border-width:1px 1px 0 0;top:-8px;right:-8px}.drawing-frame span:after{border-width:0 0 1px 1px;bottom:-8px;left:-8px}.drawing-art{aspect-ratio:var(--ar);position:relative}.layer{position:absolute;inset:0}.layer picture,.layer img{width:100%;height:100%}.layer img{object-fit:contain}.layer.lines{z-index:1;translate:calc(var(--px,0) * 12px) calc(var(--py,0) * 12px)}.layer.lines picture{filter:drop-shadow(10px 14px 8px rgba(var(--shadow), .55));transform:translate(-10px,-12px)}.layer.solid{z-index:0;opacity:.075;filter:brightness(0)invert();translate:calc(var(--px,0) * 4px) calc(var(--py,0) * 4px)}.layer.notes{z-index:2;translate:calc(var(--px,0) * 7px) calc(var(--py,0) * 7px);overflow:visible}.layer{transition:translate .7s var(--ease-out)}.notes path{fill:none;stroke:var(--ink);stroke-width:1.6px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}.notes .dim-line{stroke:var(--accent)}.notes circle{fill:none;stroke:var(--accent);stroke-width:1.6px;vector-effect:non-scaling-stroke}.notes text{fill:var(--ink);font-family:var(--mono);letter-spacing:.02em;font-size:30px}.notes text .sub{fill:var(--muted);font-size:24px}.notes .dim text,.notes .ratio{fill:var(--accent);font-size:32px}.notes .force path{stroke:var(--accent)}.notes .force text{fill:var(--accent)}.readout{font-size:var(--step-tag);color:var(--muted);white-space:nowrap;position:absolute;bottom:10px;right:clamp(16px,2.4vw,36px)}.readout.live{color:var(--accent)}@media (prefers-reduced-motion:no-preference){.drawing-frame{animation:frame-in .9s var(--ease-plot) both}.layer.lines img{animation:plot 1.7s var(--ease-plot) .2s both}.layer.lines picture{animation:lift-lines 1s var(--ease-out) 1.75s both}.layer.solid picture{animation:fade .9s var(--ease-out) 1.5s both}.notes path,.notes circle{animation:draw .7s var(--ease-plot) both;animation-delay:calc(2.3s + var(--i,0) * .14s)}.notes text{animation:fade .5s var(--ease-out) both;animation-delay:calc(2.5s + var(--i,0) * .14s)}.notes .dim{--i:0}.notes .force,.notes .ratio{--i:1}.notes .note:first-of-type{--i:2}.notes .note:nth-of-type(2){--i:3}.notes .note:nth-of-type(3){--i:4}.hero-title>*{animation:rise .9s var(--ease-out) both}.hero-title>:nth-child(2){animation-delay:80ms}.hero-title>:nth-child(3){animation-delay:.16s}.hero-title>:nth-child(4){animation-delay:.24s}.hero-title>:nth-child(5){animation-delay:.32s}.readout{animation:.6s 2.6s both fade}}@keyframes frame-in{0%{clip-path:inset(0 100% 100% 0)}to{clip-path:inset(0)}}@keyframes plot{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes lift-lines{0%{filter:drop-shadow(0 0 0 rgba(var(--shadow), 0));transform:none}to{filter:drop-shadow(10px 14px 8px rgba(var(--shadow), .55));transform:translate(-10px,-12px)}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.plates{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,5vw,88px);display:grid}.plates-aux{align-content:space-between;gap:clamp(48px,5vw,72px);display:grid}.plate-link{text-decoration:none;display:block}.plate .pop{--ratio:16 / 11}.plate.main .pop{--ratio:4 / 3}.plate h3{letter-spacing:-.03em;margin-top:28px;font-size:clamp(1.5rem,1.2rem + 1vw,2.25rem);line-height:1.1}.plate:not(.main) h3{font-size:var(--step-lead)}.arrow{color:var(--accent);transition:transform .3s var(--ease-out);margin-left:.3em;display:inline-block}@media (hover:hover) and (pointer:fine){.plate-link:hover .arrow,.next-link:hover .arrow{transform:translate(8px)}}.plate-sum{color:var(--muted);max-width:54ch;margin-top:12px}.plate-meta{font-size:var(--step-small);flex-wrap:wrap;gap:10px 36px;margin-top:18px;display:flex}.plate-meta dt{color:var(--muted);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.05em}.plate-meta dd b{font-weight:600;font-size:var(--step-lead);letter-spacing:-.02em}@media (width>=1081px){.plates-aux .plate{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:32px;display:grid}.plates-aux .plate-link{display:contents}.plates-aux .plate .pop{--ratio:4 / 5;grid-row:1/4}.plates-aux .plate h3{margin-top:0}}.revs{padding:0;list-style:none}.rev{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px clamp(32px,4vw,72px);padding:clamp(28px,3vw,44px) 0;display:grid;position:relative}.rev:last-child{box-shadow:0 1px 0 var(--line)}.rev:before{content:"";background:var(--line-strong);width:100%;height:1px;transform:scaleX(var(--drawn,1));transform-origin:0;transition:transform 1s var(--ease-plot);position:absolute;top:0;left:0}.rev-dates{color:var(--accent);font-size:var(--step-small)}.rev-org{font-size:var(--step-lead);letter-spacing:-.015em;margin-top:10px;font-weight:500;line-height:1.25}.rev h3{font-size:var(--step-lead);color:var(--muted);font-weight:400;line-height:1.25}.rev ul{gap:12px;max-width:66ch;margin-top:18px;padding:0;list-style:none;display:grid}.rev ul li{padding-left:26px;position:relative}.rev ul li:before{content:"";background:var(--accent);width:12px;height:1px;position:absolute;top:.78em;left:2px}.rev .text-link{margin-top:18px;display:inline-block}.skills-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(32px,5vw,88px);display:grid}.bom-table{border-collapse:collapse;width:100%;font-size:var(--step-small)}.bom-table thead th{text-align:left;color:var(--muted);font-weight:400;font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line-strong);padding:0 12px 12px}.bom-table thead th:last-child,.bom-table .qty{text-align:right}.bom-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 12px;transition:background-color .16s}.bom-table .grp th{text-align:left;font-weight:600;font-size:var(--step-body);letter-spacing:-.01em;border-bottom:1px solid var(--line);padding:26px 12px 10px}.bom-table td b{font-weight:500;font-size:var(--step-body);display:block}.bom-table td small{color:var(--muted);font-size:var(--step-small);margin-top:2px;display:block}.bom-table .num{color:var(--muted);width:3.5em}.bom-table .qty{color:var(--accent);white-space:nowrap}@media (hover:hover) and (pointer:fine){.bom-table tbody tr:not(.grp):hover td{background:#ffffff0d}}.contact-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:clamp(36px,5vw,88px);display:grid}.contact-pop{--ratio:16 / 10}.contact-pop .pop-img img{object-position:50% 62%}.card{box-shadow:inset 0 0 0 1px var(--line-strong);padding:clamp(28px,3vw,44px);position:relative}.card:before{content:"";border:solid var(--accent);border-width:1px 0 0 1px;width:14px;height:14px;position:absolute;top:-6px;left:-6px}.card-lead{color:var(--muted);max-width:34ch}.big-mail{letter-spacing:-.035em;overflow-wrap:anywhere;margin-top:18px;font-size:clamp(1.625rem,1.1rem + 1.8vw,2.75rem);font-weight:600;line-height:1.05;text-decoration:none;transition:color .2s;display:block}@media (hover:hover) and (pointer:fine){.big-mail:hover{color:var(--accent)}}.card-rows{gap:12px;margin:26px 0 30px;padding:0;list-style:none;display:grid}.card-rows li{grid-template-columns:6em 1fr;align-items:baseline;gap:12px;display:grid}.card-rows span{color:var(--muted);font-family:var(--mono);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.05em}.card-rows a{overflow-wrap:anywhere}.curtain{z-index:0;color:var(--ink);background-color:var(--bp-deep);background-image:linear-gradient(var(--grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px);background-size:24px 24px;position:sticky;bottom:0}.curtain-inner{padding:clamp(64px, 9vw, 128px) var(--m) 28px;max-width:calc(var(--max) + 2 * var(--m));grid-template-columns:minmax(0,1fr);gap:36px;margin:0 auto;display:grid;container-type:inline-size}.sign{letter-spacing:-.05em;white-space:nowrap;font-size:16.129cqi;font-weight:700;line-height:.9}.sign span{color:#0000;-webkit-text-stroke:1.5px var(--ink);transition:color .6s var(--ease-out)}@media (hover:hover) and (pointer:fine){.sign:hover span{color:var(--ink)}}.foot-row{box-shadow:0 -1px 0 var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;padding-top:24px;display:flex}.foot-links{flex-wrap:wrap;gap:8px 32px;padding:0;list-style:none;display:flex}.foot-links a{padding:8px 0;display:inline-block}.imprint{font-size:var(--step-tag);color:var(--muted)}.p-hero{grid-template-rows:1fr auto;grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center;gap:40px clamp(32px,5vw,88px);min-height:calc(100svh - 64px);padding-top:clamp(40px,6vw,88px);display:grid}.p-title{grid-area:1/1}.p-title h1{font-size:clamp(3rem,1.6rem + 3.9vw,5.5rem)}.p-title .hook{color:var(--muted)}.p-headline{flex-direction:column;gap:6px;margin-top:36px;display:flex}.p-headline b{font-size:var(--step-head);letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.p-headline>span{color:var(--muted);font-family:var(--mono);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.05em}.p-cover{--ratio:4 / 3;grid-area:1/2/3}.p-hero .title-block{grid-area:2/1;align-self:end}.viewer-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(28px,3vw,56px);display:grid}.viewer{background:#082b5c59;min-height:max(480px,min(78svh,780px));display:grid;position:relative}.viewer>*{grid-area:1/1}.viewer-canvas{position:relative}.viewer-canvas canvas{touch-action:none;outline:none;width:100%;height:100%;position:absolute;inset:0}.viewer-status,.viewer-reset,.viewer-label,.viewer-hint{z-index:1;position:relative}.viewer-status{font-size:var(--step-tag);color:var(--muted);pointer-events:none;text-transform:uppercase;letter-spacing:.05em;place-self:center;justify-items:center;gap:12px;transition:opacity .3s;display:grid}.viewer-track{background:var(--line);width:200px;height:2px;overflow:hidden}.viewer-fill{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .2s linear;display:block;transform:scaleX(0)}.viewer.ready .viewer-status{opacity:0}.viewer.failed .viewer-track{display:none}.viewer-reset{background:var(--bp);place-self:end start;margin:18px}.viewer-hint{font-size:var(--step-tag);color:var(--muted);pointer-events:none;place-self:end;margin:18px}.viewer-label{background:var(--bp-deep);max-width:min(36ch,100% - 36px);box-shadow:inset 0 0 0 1px var(--accent);font-size:var(--step-small);opacity:0;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out);pointer-events:none;place-self:start;margin:18px;padding:12px 16px;transform:translateY(6px)}.viewer-label.on{opacity:1;transform:none}.viewer-label b{font-size:var(--step-body);color:var(--accent);font-weight:600;display:block}.bom-help{color:var(--muted);font-size:var(--step-small)}.bom-list{counter-reset:item;box-shadow:0 -1px 0 var(--line-strong);margin-top:18px;padding:0;list-style:none}.bom-list li{counter-increment:item;box-shadow:0 1px 0 var(--line)}.bom-list button{text-align:left;cursor:pointer;width:100%;min-height:44px;transition:background-color .16s ease, color .16s ease, transform .16s var(--ease-out);background:0 0;border:0;grid-template-columns:2.4em 1fr;column-gap:8px;padding:12px 10px;display:grid}.bom-list button:before{content:counter(item, decimal-leading-zero);font-family:var(--mono);font-size:var(--step-tag);color:var(--muted);grid-row:1/3;padding-top:3px}.bom-list button b{font-weight:500;font-size:var(--step-small)}.bom-list button small{font-size:var(--step-tag);color:var(--muted);grid-column:2;line-height:1.45}.bom-list button:active{transform:scale(.99)}@media (hover:hover) and (pointer:fine){.bom-list button:hover{background:#ffffff0d}}.bom-list button[aria-pressed=true]{background:#ffb54724}.bom-list button[aria-pressed=true] b,.bom-list button[aria-pressed=true]:before{color:var(--accent)}.p-cols{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(32px,5vw,88px);display:grid}.p-text p{max-width:60ch}.p-text p+p{margin-top:16px}.p-text p:first-child{font-size:var(--step-lead);letter-spacing:-.01em;line-height:1.4}.p-figs{grid-template-columns:1fr 1fr;gap:48px 32px;padding-top:14px;display:grid}.p-figs .pop{--ratio:4 / 3}.p-figs.count-1{grid-template-columns:1fr}.p-figs.count-1 .pop{--ratio:auto}.p-figs.count-1 .pop img{object-fit:contain;max-height:72svh}.p-figs.count-3>.pop:first-child{--ratio:16 / 9;grid-column:1/-1}.callout{align-content:start;gap:28px;display:grid}.callout div{box-shadow:inset 0 0 0 1px var(--line-strong);flex-direction:column;padding:clamp(22px,3vw,36px);display:flex}.callout dd{font-size:var(--step-head);letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.05}.callout dt{font-size:var(--step-tag);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-top:12px}.callout dd.note{font-family:var(--mono);font-size:var(--step-tag);color:var(--muted);letter-spacing:0;order:3;margin-top:6px;font-weight:400;line-height:1.5}.spec{box-shadow:inset 0 0 0 1px var(--line-strong);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.spec div{box-shadow:1px 0 0 var(--line), 0 1px 0 var(--line);flex-direction:column;padding:clamp(22px,2.6vw,36px);display:flex}.spec dd{font-size:var(--step-head);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.spec dt{color:var(--muted);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.05em;margin-top:14px}.results-note{max-width:62ch;font-size:var(--step-lead);color:var(--muted);margin-top:clamp(32px,4vw,56px);line-height:1.45}.next{margin-top:var(--gap-section);gap:20px;display:grid}.next-link{box-shadow:inset 0 0 0 1px var(--line-strong);padding:clamp(28px,4vw,56px);text-decoration:none;transition:background-color .3s;display:block}@media (hover:hover) and (pointer:fine){.next-link:hover{background:#ffffff0a}}.next-label{color:var(--accent);font-size:var(--step-tag);text-transform:uppercase;letter-spacing:.06em;display:block}.next-title{font-size:var(--step-head);letter-spacing:-.04em;margin-top:10px;font-weight:600;line-height:1.02;display:block}.next .all{justify-self:start;padding:8px 0}@media (width<=1080px){.hero{grid-template-columns:1fr;min-height:0}.plates{grid-template-columns:1fr}.plates-aux{grid-template-columns:1fr 1fr;gap:40px}.skills-grid,.contact-grid,.p-cols,.viewer-grid{grid-template-columns:1fr}.bom-list{grid-template-columns:1fr 1fr;column-gap:24px;display:grid}.p-hero{grid-template-rows:auto;grid-template-columns:1fr;min-height:0}.p-title,.p-cover,.p-hero .title-block{grid-area:auto/1}}@media (width<=820px){.bar{padding-top:12px;padding-bottom:12px}.bar nav{display:none}.hero{gap:40px;padding-top:36px}.readouts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 16px}.readouts dt{font-size:var(--step-tag)}.drawing{padding:12px}.notes .note,.notes .ratio,.notes .force text{display:none}.notes .dim text{font-size:60px}.readout{display:none}.plates-aux{grid-template-columns:1fr;gap:64px}.sec-head{flex-wrap:wrap;gap:12px 16px}.sec-rule{flex-basis:100%;order:3}.rev,.bom-list{grid-template-columns:1fr}.bom-table .num{display:none}.bom-table td,.bom-table thead th{padding-left:4px;padding-right:4px}.viewer{min-height:max(380px,62svh)}.viewer-hint{display:none}.p-figs{grid-template-columns:1fr;gap:44px}.p-figs.count-3>.pop:first-child{--ratio:4 / 3;grid-column:auto}.pop{--lx:-8px;--ly:-10px}.card-rows li{grid-template-columns:1fr;gap:2px}.title-block tbody{grid-template-columns:1fr 1fr;grid-auto-flow:dense;display:grid}.title-block tr{display:contents}.title-block td{margin:0 -1px -1px 0;padding:8px 12px 10px;display:block}.title-block td[colspan]{grid-column:span 2}.title-block{border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}}.pending{opacity:0;transform:translateY(28px)}.revealing{transition:opacity .8s var(--ease-out), transform .8s var(--ease-out)}.sec-head.pending{opacity:1;transform:none}.sec-head.pending h2{opacity:0;transform:translateY(20px)}.sec-head.pending .sec-rule{transform:scaleX(0)}.sec-head.pending .sec-note{opacity:0}.sec-head h2,.sec-head .sec-note{transition:opacity .7s var(--ease-out), transform .7s var(--ease-out)}.sec-head .sec-rule{transition:transform 1.1s var(--ease-plot) .15s}.sec-head .sec-note{transition-delay:.7s}.rev.pending{opacity:1;--drawn:0;transform:none}.rev.pending>*{opacity:0;transform:translateY(16px)}.rev>*{transition:opacity .7s var(--ease-out) .25s, transform .7s var(--ease-out) .25s}.pop.pending{opacity:1;transform:none}.pop.pending .pop-frame{clip-path:inset(0 100% 100% 0)}.pop.pending .pop-img{opacity:0;box-shadow:0 0 0 rgba(var(--shadow), 0);transform:translate(0)scale(.985)}.pop.revealing .pop-frame{transition:clip-path .8s var(--ease-plot)}.pop.revealing .pop-img{transition:opacity .7s var(--ease-out) .45s, transform .9s var(--ease-out) .45s, box-shadow .9s var(--ease-out) .45s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pending,.pop.pending .pop-img,.rev.pending>*,.sec-head.pending h2{transform:none!important}.pop.pending .pop-frame{clip-path:none}.sec-head.pending .sec-rule{transform:none}.revealing,.revealing *{transition-property:opacity!important;transition-duration:.4s!important}.pop-stage,.layer{transition:none}.curtain{position:relative}}
