@font-face{font-family:Scoutie Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/scoutie-sans-vietnamese-wght-normal.BErLAt6c.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Scoutie Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/scoutie-sans-latin-ext-wght-normal.ByraGxuo.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Scoutie Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/scoutie-sans-latin-wght-normal.Da_Gm1x4.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#eef0f2;--ink:#000;--soft:#0000009e;--faint:#0006;--primary:#70506a;--backdrop:#70506ac7;--blue:#b8c9db;--pale:#dee5ec;--rule:#b8c9db;--sans:"Scoutie Sans Variable", system-ui, -apple-system, Helvetica, Arial, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding-inline:24px;overflow-x:clip}h1,h2{letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:400}p{margin:0}a{color:inherit}:focus-visible{outline:1.5px solid var(--ink);outline-offset:4px;border-radius:4px}#field{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.wrap{z-index:1;max-width:1180px;margin-inline:auto;position:relative}.label{font:400 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}.brand{top:calc(28px + env(safe-area-inset-top,0px));align-items:center;gap:.38em;font-size:20px;font-weight:500;line-height:1;text-decoration:none;display:flex;position:absolute;left:max(24px,50vw - 590px)}.brand svg{aspect-ratio:146/172;height:1.18em}.hero{isolation:isolate;align-content:center;gap:20px;min-height:92vh;margin-inline:calc(50% - 50vw);padding-block:120px 80px;padding-inline:max(24px,50vw - 590px);display:grid;position:relative}#hero-img{z-index:-1;width:100%;height:100%;display:block;position:absolute;inset:0}.hero h1{max-width:9ch;font-size:clamp(40px,5.4vw,78px);font-weight:300;line-height:1}.hero p{color:var(--soft);max-width:22em;font-size:19px}.hero-mail{font:400 14px/1 var(--mono);color:var(--ink);text-underline-offset:5px;text-decoration:underline 1px;text-decoration-color:var(--primary);justify-self:start}.hero-mail:hover{color:var(--primary)}.block{grid-template-columns:220px 1fr;gap:24px;padding-block:96px;display:grid}.block h2{max-width:16ch;font-size:clamp(30px,4.6vw,58px);font-weight:300;line-height:1.05}.block .body{grid-column:2;gap:22px;display:grid}.block .body>p{color:var(--soft);max-width:34em;font-size:18px}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:18px;display:grid}.steps.three{grid-template-columns:repeat(3,minmax(0,1fr))}.step{border-top:1px solid var(--rule);gap:8px;padding-top:16px;display:grid}.step .label{color:var(--faint)}.step b{font-size:17px;font-weight:500}.step span{color:var(--soft);font-size:15px}#try{height:280vh;position:relative}.stage{height:100vh;margin-inline:calc(50% - 50vw);position:sticky;top:0}#map{width:100%;height:100%;display:block;position:absolute;inset:0}.stage-copy{pointer-events:none;gap:18px;width:min(34vw,400px);display:grid;position:absolute;top:50%;left:max(24px,50vw - 590px);transform:translateY(-50%)}.stage-copy h2{font-size:clamp(30px,4.2vw,54px);font-weight:300;line-height:1.05}.stage-copy p{color:var(--soft)}.readout{font:400 13px/1.4 var(--mono);color:var(--soft);font-variant-numeric:tabular-nums;gap:6px;min-height:5.6em;display:grid}.readout b{color:var(--ink);font-weight:400}.credit{font:10px/1 var(--sans);color:var(--faint);opacity:0;transition:opacity .4s;position:absolute;bottom:10px;right:12px}.credit.on{opacity:1}.layers{margin-top:8px;display:grid}.layer{border-top:1px solid var(--rule)}.layer:last-child{border-bottom:1px solid var(--rule)}.layer summary{cursor:pointer;grid-template-columns:120px 1fr 24px;align-items:baseline;gap:20px;padding:22px 0;list-style:none;display:grid}.layer summary::-webkit-details-marker{display:none}.layer summary:hover b{text-underline-offset:5px;text-decoration:underline 1px;text-decoration-color:var(--primary)}.toggle{align-self:center;width:14px;height:14px;position:relative}.toggle:before,.toggle:after{content:"";background:var(--ink);height:1px;transition:transform .25s;position:absolute;top:50%;left:0;right:0}.toggle:after{transform:rotate(90deg)}.layer[open] .toggle:after{transform:rotate(0)}.layer-detail{gap:22px;padding:4px 0 36px 140px;display:grid}.note{color:var(--soft);font-size:15px}.diagram-wrap{overflow-x:auto}.diagram{width:100%;min-width:680px;height:auto;font-family:var(--sans);display:block}.d-box{fill:#ffffff8c;stroke:var(--rule);stroke-width:1px}.d-box.hi{fill:var(--pale);stroke:var(--primary)}.d-title{fill:var(--ink);letter-spacing:-.01em;font-size:17px}.d-item{fill:var(--soft);font-size:13.5px}.d-label{font-family:var(--mono);letter-spacing:.08em;fill:var(--faint);font-size:10.5px}.d-hex{fill:none;stroke:var(--faint);stroke-width:1px}.d-hex.hi{fill:var(--blue);stroke:var(--ink)}.d-link{stroke:var(--ink);stroke-width:1px;stroke-dasharray:3 4}.d-arrow{fill:var(--ink)}.photos{grid-template-rows:auto auto;grid-template-columns:2fr 1fr;gap:14px;display:grid}.photo{gap:8px;margin:0;display:grid}.photo.main{grid-row:span 2}.photo img{aspect-ratio:4/3;object-fit:cover;background:var(--primary);border-radius:4px;width:100%;height:100%;display:block}.photo .ph{aspect-ratio:4/3;border:1px dashed var(--rule);font:400 12px/1 var(--mono);color:var(--faint);background:repeating-linear-gradient(135deg,#0000 0 10px,#70506a0f 10px 11px);border-radius:4px;place-items:center;display:grid}.photo figcaption{font:400 12px/1.4 var(--mono);color:var(--faint)}.layer-body{gap:4px;display:grid}.layer-body b{letter-spacing:-.02em;font-size:22px;font-weight:400}.layer-body span{color:var(--soft);font-size:16px}.airframe{gap:14px;margin-top:28px;display:grid}#airframe{aspect-ratio:16/9;cursor:grab;touch-action:pan-y;opacity:0;border-radius:4px;width:100%;transition:opacity .6s;display:block}#airframe.ready{opacity:1}#airframe.dragging{cursor:grabbing}.airframe-bar{flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}.airframe-bar>.label{margin-right:auto}.airframe-explode{align-items:center;gap:12px;display:flex}.airframe-explode input{appearance:none;cursor:pointer;background:0 0;width:160px;height:16px;margin:0}.airframe-explode input::-webkit-slider-runnable-track{background:var(--rule);height:1px}.airframe-explode input::-moz-range-track{background:var(--rule);height:1px}.airframe-explode input::-webkit-slider-thumb{appearance:none;background:var(--primary);border:0;border-radius:50%;width:12px;height:12px;margin-top:-5.5px}.airframe-explode input::-moz-range-thumb{background:var(--primary);border:0;border-radius:50%;width:12px;height:12px}.airframe-legend{flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;list-style:none;display:flex}.airframe-legend button{font:400 12px/1 var(--mono);color:var(--soft);cursor:default;text-underline-offset:4px;background:0 0;border:0;padding:0;text-decoration:underline #0000;transition:text-decoration-color .2s}.airframe-legend button:hover,.airframe-legend button:focus-visible{color:var(--ink);text-decoration-color:var(--primary);outline:none}.cad{grid-template-columns:1fr 1fr;align-items:center;gap:40px;margin-top:12px;display:grid}.code{border-left:1px solid var(--primary);gap:10px;padding-left:18px;display:grid}#cad-src{resize:none;width:100%;min-height:230px;font:400 14px/1.75 var(--mono);color:var(--ink);field-sizing:content;background:0 0;border:0;padding:0}#cad-src:focus{outline:none}#cad-msg{font:400 12px/1.4 var(--mono);color:var(--faint);min-height:1.4em}#cad-view{aspect-ratio:1;justify-self:center;width:100%;max-width:440px;overflow:visible}.cad-stats{font:400 13px/1.4 var(--mono);color:var(--soft);font-variant-numeric:tabular-nums;justify-content:center;gap:28px;margin-top:8px;display:flex}.cad-stats b{color:var(--ink);font-weight:400}.posts{margin:6px 0 0;padding:0;list-style:none;display:grid}.posts li{border-top:1px solid var(--rule)}.posts li:last-child{border-bottom:1px solid var(--rule)}.posts a,.posts .soon{grid-template-columns:110px 1fr auto;align-items:baseline;gap:20px;padding:20px 0;text-decoration:none;display:grid}.posts b{letter-spacing:-.02em;font-size:22px;font-weight:400}.posts .arrow{font:400 13px/1 var(--mono);color:var(--soft)}.posts a:hover b{text-underline-offset:5px;text-decoration:underline 1px;text-decoration-color:var(--primary)}.posts .soon{color:var(--faint)}.article{gap:22px;max-width:680px;padding-block:150px 40px;display:grid}.article h1{letter-spacing:-.04em;font-size:clamp(40px,6.4vw,84px);font-weight:300;line-height:1}.article .meta{font:400 13px/1 var(--mono);color:var(--faint)}.article.solo{padding-bottom:220px}.article.solo p{color:var(--soft);max-width:34em;font-size:18px}.prose{gap:20px;padding-block:24px;display:grid}.prose>*{max-width:680px}.prose>#try{max-width:none}.prose h2{margin-top:18px;font-size:clamp(24px,3vw,34px);font-weight:400;line-height:1.15}.prose p,.prose li{color:#000c;font-size:18px}.prose ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.prose li{padding-left:22px;position:relative}.prose li:before{content:"";background:var(--primary);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);width:10px;height:11.5px;position:absolute;top:9px;left:0}.prose strong{color:var(--ink);font-weight:500}.prose a{text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:var(--primary)}.back{font:400 13px/1 var(--mono);color:var(--soft);text-decoration:none}.back:hover{color:var(--ink)}.contact{gap:18px;padding-block:96px 120px;display:grid}.contact h2{font-size:clamp(36px,6vw,80px);font-weight:300;line-height:1}.contact-for{color:var(--soft);font-size:18px}.mail{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.mail span{user-select:all;font-size:20px}.mail button{font:400 13px/1 var(--mono);border:1px solid var(--rule);background:var(--bg);color:var(--soft);cursor:pointer;border-radius:999px;padding:9px 12px}.mail button:hover{color:var(--ink);border-color:var(--primary)}footer{border-top:1px solid var(--rule);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:24px 40px;font-size:13px;display:flex}@media (width<=820px){.hero{padding-top:calc(96px + env(safe-area-inset-top,0px));align-content:start}.block{grid-template-columns:1fr;gap:14px}.block .body{grid-column:1}.steps,.steps.three{grid-template-columns:1fr 1fr}.cad{grid-template-columns:1fr}#airframe{aspect-ratio:4/3}.layer summary{grid-template-columns:1fr 24px;gap:8px 16px}.layer summary .label{grid-column:1/-1}.layer-detail{padding-left:0}.photos{grid-template-columns:1fr 1fr}.photo.main{grid-area:auto/1/auto/-1}.stage-copy{top:calc(24px + env(safe-area-inset-top,0px));gap:10px;width:auto;right:24px;transform:none}.stage-copy h2{font-size:32px}.readout{min-height:0}}@media (width<=520px){body{padding-inline:16px}.stage-copy{left:16px;right:16px}.steps,.steps.three{grid-template-columns:1fr}.posts a,.posts .soon{grid-template-columns:1fr;gap:6px}.posts .arrow{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.list-page{max-width:680px;padding-bottom:180px}
