@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/barlow-vietnamese-400-normal.Dpl4UHAZ.woff2)format("woff2"),url(/_astro/barlow-vietnamese-400-normal.BFeobeCK.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/barlow-latin-ext-400-normal.HxX4XjxC.woff2)format("woff2"),url(/_astro/barlow-latin-ext-400-normal.CvBsJvxq.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/barlow-latin-400-normal.qiz4-Cze.woff2)format("woff2"),url(/_astro/barlow-latin-400-normal.fsAxiSwU.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-vietnamese-500-normal.zTViEIzf.woff2)format("woff2"),url(/_astro/barlow-vietnamese-500-normal.GNfB7rCE.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-latin-ext-500-normal.DOaysfXq.woff2)format("woff2"),url(/_astro/barlow-latin-ext-500-normal.CJPcKP2Q.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-latin-500-normal.BPAOfeC8.woff2)format("woff2"),url(/_astro/barlow-latin-500-normal.C1h8hMer.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-vietnamese-600-normal.DcjprdFV.woff2)format("woff2"),url(/_astro/barlow-vietnamese-600-normal.CA_GiK2e.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-latin-ext-600-normal.B8NK_A3D.woff2)format("woff2"),url(/_astro/barlow-latin-ext-600-normal.DMVRjfRT.woff)format("woff");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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-latin-600-normal.DILqtrty.woff2)format("woff2"),url(/_astro/barlow-latin-600-normal.CNwfPWQD.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-condensed-vietnamese-500-normal.DjeaNLFD.woff2)format("woff2"),url(/_astro/barlow-condensed-vietnamese-500-normal.CsrJDWc5.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-condensed-latin-ext-500-normal.yA5ONLQ9.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-ext-500-normal.B1RE8WP7.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/barlow-condensed-latin-500-normal.BgYH2mbd.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-500-normal.HIEiP5Ov.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-vietnamese-600-normal.A5AYRdjN.woff2)format("woff2"),url(/_astro/barlow-condensed-vietnamese-600-normal.CNlPk46_.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-latin-ext-600-normal.18ESti3H.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-ext-600-normal.Clv9cIcR.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/barlow-condensed-latin-600-normal.DepVgxBB.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-600-normal.BFJEwTuo.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-vietnamese-700-normal.DYeBwlKR.woff2)format("woff2"),url(/_astro/barlow-condensed-vietnamese-700-normal.DhIzd8Tb.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-latin-ext-700-normal.CwuXbfVR.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-ext-700-normal.BIHFfxf0.woff)format("woff");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:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/barlow-condensed-latin-700-normal.v1xN8_Wq.woff2)format("woff2"),url(/_astro/barlow-condensed-latin-700-normal.Dmwat-ge.woff)format("woff");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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--flap:#f4b73a;--flap-ink:#18202c;--flap-line:#18202c47;--flap-accent:#18202c;--plate:#f7e6b5;--plate-ink:#1a212b;--plate-line:#1a212b1f;--amber:#f4b73a;--amber-hover:#ffc955;--on-amber:#18202c;--panel:#f3f4f1;--panel-2:#e9ebe6;--ink:#1a212b;--muted:#4d5866;--rule:#1a212b24;--accent-ink:#875800;--placeholder-board:#6a7480;--paper:#e2e6df;--graphite:#23282d;--graphite-2:#4a525a;--chalk:#2a5c9e;--chalk-soft:#2a5c9e59;--pencil:#23282d38;--field:#fff;--placeholder:#646c74;--gutter:clamp(1rem, 4vw, 3rem);--maxw:1240px;--inline:max(var(--gutter), calc((100% - var(--maxw)) / 2));--card:#f7f8f5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--panel:#18202c;--panel-2:#1f2937;--ink:#f3efe3;--muted:#9aa6b8;--rule:#f3efe31f;--accent-ink:#f4b73a;--placeholder-board:#8d99ab;--paper:#202b38;--graphite:#e6e9e3;--graphite-2:#aab4bf;--chalk:#8ab8f0;--chalk-soft:#8ab8f059;--pencil:#e6e9e32e;--field:#121923;--placeholder:#8d99ab;--card:#18212c;--flap:#2a3546;--flap-ink:#f3efe3;--flap-line:#0000008c;--flap-accent:#f4b73a;--plate:#2a3546;--plate-ink:#f3efe3;--plate-line:#0006}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--panel:#18202c;--panel-2:#1f2937;--ink:#f3efe3;--muted:#9aa6b8;--rule:#f3efe31f;--accent-ink:#f4b73a;--placeholder-board:#8d99ab;--paper:#202b38;--graphite:#e6e9e3;--graphite-2:#aab4bf;--chalk:#8ab8f0;--chalk-soft:#8ab8f059;--pencil:#e6e9e32e;--field:#121923;--placeholder:#8d99ab;--card:#18212c;--flap:#2a3546;--flap-ink:#f3efe3;--flap-line:#0000008c;--flap-accent:#f4b73a;--plate:#2a3546;--plate-ink:#f3efe3;--plate-line:#0006}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--panel);color:var(--ink);margin:0;font:400 1.0625rem/1.6 Barlow,system-ui,sans-serif}::selection{background:var(--amber);color:var(--panel)}a{color:inherit;text-underline-offset:.2em}:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}.cond{font-family:Barlow Condensed,sans-serif}.bar{padding:1.25rem var(--inline);letter-spacing:.04em;justify-content:space-between;align-items:center;font:600 1rem/1 Barlow Condensed,sans-serif;display:flex}.bar nav{align-items:center;gap:1.5rem;display:flex}.bar nav a{color:var(--muted);text-decoration:none}.bar nav a:hover{color:var(--ink)}.bar nav .nav-cta{color:var(--on-amber);background:var(--amber);border-radius:6px;padding:.45rem .8rem}.bar nav .nav-cta:hover{color:var(--on-amber);background:var(--amber-hover)}.brand{letter-spacing:.01em;align-items:center;gap:.55rem;font-size:1.15rem;text-decoration:none;display:inline-flex}.brand svg{fill:none;width:1.7rem;height:auto;stroke:var(--ink);stroke-width:2.4px;stroke-linecap:square}.brand svg .ridge{stroke:var(--accent-ink);stroke-width:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cell{background:var(--flap);height:1.25em;color:var(--flap-ink);border-radius:.08em;place-items:center;font-family:Barlow Condensed,sans-serif;font-weight:600;line-height:1;display:inline-grid;position:relative;overflow:hidden}.cell:after{content:"";background:var(--flap-line);height:1px;position:absolute;top:50%;left:0;right:0}.cell.space{background:0 0}.cell.space:after{display:none}.board{padding:1rem var(--inline) clamp(3.5rem, 8vw, 6rem)}.sign{flex-wrap:wrap;gap:.35rem;margin:0 0 1.5rem;display:flex}.sign .cell{width:.78em;font-size:clamp(2.2rem,7.5vw,6rem)}.sign .cell.accent{color:var(--amber)}h1{text-wrap:balance;max-width:34ch;margin:0 0 2.75rem;font:500 clamp(1.4rem,2.6vw,2.1rem)/1.25 Barlow,sans-serif}h1 span{color:var(--muted)}table{border-collapse:collapse;width:100%}.board-h2{letter-spacing:.01em;margin:0 0 .5rem;font:700 clamp(1.5rem,2.6vw,2rem)/1.1 Barlow Condensed}th{text-align:left;color:var(--muted);letter-spacing:.03em;border-bottom:1px solid var(--rule);padding:0 1rem .6rem 0;font:500 .95rem Barlow Condensed}td{border-bottom:1px solid var(--rule);vertical-align:middle;padding:.65rem 1rem .65rem 0}.t-desc{color:var(--muted);max-width:52ch}tr.group th{color:var(--accent-ink);letter-spacing:.02em;border-bottom:1px solid #f4b73a59;padding:2rem 0 .7rem;font:700 1.2rem/1 Barlow Condensed}tbody:first-of-type tr.group th{padding-top:1.25rem}tbody tr:hover .t-desc{color:var(--ink)}.ticket{flex-wrap:wrap;gap:.75rem;max-width:46rem;margin-top:2.5rem;display:flex}.ticket label{color:var(--muted);letter-spacing:.03em;flex:18rem;gap:.35rem;font:500 .95rem Barlow Condensed;display:grid}.ticket input{color:var(--ink);background:var(--panel-2);border:1px solid var(--rule);border-radius:6px;padding:.8rem .9rem;font:400 1.05rem Barlow,sans-serif}.ticket input::placeholder{color:var(--placeholder-board)}.ticket button{letter-spacing:.04em;background:var(--amber);color:var(--on-amber);cursor:pointer;border:0;border-radius:6px;align-self:end;padding:.85rem 1.4rem;font:700 1.15rem Barlow Condensed}.ticket button:hover{background:var(--amber-hover)}.method,.contact{border-top:1px solid var(--rule)}.method{background:var(--paper);color:var(--graphite);padding:clamp(3.5rem, 8vw, 6rem) var(--inline)}.method ::selection{background:var(--chalk);color:var(--paper)}.method :focus-visible{outline-color:var(--chalk)}.method h2{letter-spacing:-.01em;text-wrap:balance;max-width:20ch;margin:0 0 1rem;font:700 clamp(2.2rem,5vw,4rem)/1 Barlow Condensed}.method .lead{max-width:60ch;color:var(--graphite-2);margin:0 0 2rem}.truss{width:100%;height:auto;max-height:60vh;margin:0 auto 2.5rem;display:block}.truss .construct{stroke:var(--chalk-soft);stroke-width:1px;fill:none;stroke-dasharray:4 6}.truss .member{stroke:var(--graphite);stroke-width:2.4px;fill:none;stroke-linecap:square}.truss .ridge{stroke:var(--chalk);stroke-width:3.5px}.truss text{fill:var(--graphite-2);letter-spacing:.02em;font:500 16px Barlow Condensed,sans-serif}.truss text.hot{fill:var(--chalk);font-size:18px;font-weight:700}.truss .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}.truss .lbl{opacity:0}.truss.on .draw{animation:1.1s cubic-bezier(.16,1,.3,1) forwards draw;animation-delay:var(--d,0s)}.truss.on .lbl{animation:.6s ease-out forwards fade;animation-delay:var(--d,0s)}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}.truss .member,.truss text{transition:stroke .25s,fill .25s,opacity .25s,stroke-width .25s}.truss.focus .member{opacity:.28}.truss.focus .member.lit{opacity:1}.truss.focus text{fill:color-mix(in srgb, var(--graphite-2) 35%, transparent)}.truss .member.lit{stroke:var(--chalk);stroke-width:4.5px}.truss text.lit,.truss.focus text.lit{fill:var(--chalk);font-weight:700}dl.pieces{border-top:1.5px solid var(--graphite);grid-template-columns:repeat(5,minmax(0,1fr));margin:0;display:grid}.pieces div{border-bottom:1px solid var(--pencil);cursor:default;padding:1.4rem 1.25rem 1.6rem .75rem;transition:background .2s}.pieces div:hover,.pieces div:focus-visible,.pieces div.lit{background:color-mix(in srgb, var(--chalk) 10%, transparent)}.pieces div:focus-visible{outline:2px solid var(--chalk);outline-offset:-2px}.hint{color:var(--graphite-2);margin:1rem 0 0;font-size:.95rem}@media (width<=1100px){dl.pieces{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}}@media (hover:none){.hint{display:none}}.pieces dt{font:700 1.5rem/1.1 Barlow Condensed}.pieces dt small{color:var(--chalk);margin-top:.2rem;font:500 .95rem Barlow;display:block}.pieces dd{color:var(--graphite-2);max-width:36ch;margin:.5rem 0 0}.press{background:var(--panel-2);padding:clamp(3.5rem, 8vw, 6rem) var(--inline)}.press-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 3rem;margin-bottom:2.5rem;display:flex}.press h2{margin:0;font:700 clamp(2rem,4.5vw,3.4rem)/1 Barlow Condensed}.press-head p{color:var(--muted);max-width:40ch;margin:0}.press-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2.5rem 4rem;display:grid}.press a{text-decoration:none}.tags{margin-bottom:.9rem;display:block}.feature a{background:var(--panel);border:1px solid var(--rule);border-radius:12px;height:100%;padding:2rem;transition:border-color .2s;display:block}.feature a:hover{border-color:var(--accent-ink)}.feature h3{text-wrap:balance;margin:0 0 1rem;font:700 clamp(1.8rem,3.2vw,2.6rem)/1.05 Barlow Condensed}.feature p{color:var(--muted);max-width:46ch;margin:0 0 1.75rem}.meta{color:var(--muted);letter-spacing:.02em;font-variant-numeric:tabular-nums;gap:1.25rem;font:500 1rem Barlow Condensed;display:flex}.others{margin:0;padding:0;list-style:none}.others li+li{border-top:1px solid var(--rule)}.others a{padding:1.25rem 0;display:block}.others li:first-child a{padding-top:0}.others strong{margin-bottom:.4rem;font-size:1.2rem;font-weight:500;line-height:1.35;display:block}.others a:hover strong,.feature a:hover h3{color:var(--accent-ink)}.press .more{color:var(--accent-ink);margin-top:2.5rem;font-weight:600;display:inline-block}.contact{background:var(--paper);color:var(--graphite);padding:clamp(3.5rem, 8vw, 6rem) var(--inline);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:3rem clamp(2rem,5vw,5rem);display:grid}.contact ::selection{background:var(--chalk);color:var(--paper)}.contact :focus-visible{outline-color:var(--chalk)}.contact h2{text-wrap:balance;margin:0 0 1.25rem;font:700 clamp(2.4rem,5.5vw,4.5rem)/.98 Barlow Condensed}.contact-intro p{color:var(--graphite-2);max-width:40ch;margin:0 0 1rem}.contact .direct a{color:var(--chalk);font-weight:600;text-decoration-thickness:2px}.brief{background:var(--card);border-radius:14px;grid-template-columns:1fr 1fr;align-content:start;gap:1.25rem;padding:clamp(1.25rem,3vw,2.25rem);display:grid;box-shadow:0 1px 2px #141c260f,0 24px 48px -28px #141c2659}.brief .wide{grid-column:1/-1}.brief label{letter-spacing:.02em;gap:.4rem;font:600 1rem Barlow Condensed;display:grid}.brief input,.brief textarea{color:var(--graphite);background:var(--field);border:1.5px solid var(--pencil);border-radius:8px;width:100%;min-height:3.1rem;padding:.8rem .9rem;font:400 1.05rem Barlow,sans-serif;transition:border-color .15s,box-shadow .15s}.brief input:hover,.brief textarea:hover{border-color:color-mix(in srgb, var(--graphite) 40%, transparent)}.brief textarea{resize:vertical;min-height:8rem}.brief input:focus,.brief textarea:focus{border-color:var(--chalk);box-shadow:0 0 0 3px color-mix(in srgb, var(--chalk) 25%, transparent);outline:none}.brief ::placeholder{color:var(--placeholder)}.brief button{letter-spacing:.03em;background:var(--amber);color:var(--on-amber);cursor:pointer;border:0;border-radius:8px;padding:.95rem 1.8rem;font:700 1.25rem Barlow Condensed;transition:background .15s,transform .15s}.brief button:hover{background:var(--amber-hover)}.brief button:active{transform:translateY(1px)}.types{border:0;min-width:0;margin:0;padding:0}.types legend{letter-spacing:.02em;margin-bottom:.55rem;padding:0;font:600 1rem Barlow Condensed}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{font:inherit;display:inline-flex;position:relative}.chip input{opacity:0;width:1px;height:1px;position:absolute}.chip span{border:1.5px solid var(--pencil);background:var(--field);letter-spacing:.02em;min-height:2.6rem;color:var(--graphite-2);cursor:pointer;border-radius:6px;align-items:center;padding:.5rem .95rem;font:600 1rem/1.1 Barlow Condensed,sans-serif;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.chip span:hover{border-color:color-mix(in srgb, var(--graphite) 40%, transparent);color:var(--graphite)}.chip input:checked+span{border-color:var(--chalk);background:color-mix(in srgb, var(--chalk) 12%, var(--field));color:var(--chalk)}.chip input:focus-visible+span{outline:2px solid var(--chalk);outline-offset:2px}.contact-intro{position:sticky;top:2rem}footer{padding:2.5rem var(--inline);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 2rem;font-size:.95rem;display:flex}footer nav{flex-wrap:wrap;gap:1.5rem;display:flex}footer nav a{text-decoration:none}footer nav a:hover{color:var(--ink)}@media (width<=640px){.bar nav a:not(.nav-cta){display:none}.bar-right{gap:.75rem}.truss text{display:none}.truss{margin-bottom:1.5rem}thead{display:none}tr{border-bottom:1px solid var(--rule);gap:.4rem;padding:.85rem 0;display:grid}td,tr.group{border:0;padding:0}}@media (width<=860px){.press-grid,.contact,.brief{grid-template-columns:1fr}.feature a{padding:1.5rem}.truss text{font-size:24px}.truss text.hot{font-size:26px}}@media (prefers-reduced-motion:reduce){.truss .draw{stroke-dashoffset:0;animation:none!important}.truss .lbl{opacity:1;animation:none!important}}.flaps{flex-wrap:wrap;gap:.35rem;display:inline-flex}.plate{white-space:nowrap;text-align:center;background:var(--plate);color:var(--plate-ink);letter-spacing:.08em;border-radius:4px;padding:.32em .55em .28em;font:700 1em/1 Barlow Condensed,sans-serif;display:inline-block;position:relative}.plate:after{content:"";background:var(--plate-line);height:1px;position:absolute;top:50%;left:0;right:0}td .plate{font-size:clamp(1.05rem,1.7vw,1.4rem)}.tags .plate{font-size:.85rem}footer .sig .plate{font-size:1rem}.bar-right{align-items:center;gap:1.5rem;display:flex}.theme{border:1px solid var(--rule);width:2.2rem;height:2.2rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:6px;place-items:center;display:inline-grid}.theme:hover{border-color:var(--accent-ink)}.theme svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:1.15rem;height:1.15rem}.theme .moon,:root[data-theme=dark] .theme .sun{display:none}:root[data-theme=dark] .theme .moon{display:block}.langs{gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.langs a{color:var(--muted);letter-spacing:.04em;border-radius:6px;padding:.35rem .45rem;font:600 .95rem/1 Barlow Condensed,sans-serif;text-decoration:none;display:inline-block}.langs a:hover{color:var(--ink)}.langs a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent-ink);border-radius:0}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.submit-row{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.brief button:disabled{opacity:.6;cursor:progress}.brief [aria-invalid=true],.brief [aria-invalid=true]:focus{border-color:#c2412d}.brief .hint{color:var(--muted);font-size:.85rem}.brief label:has([aria-invalid=true]) .hint{color:#c2412d}.status{margin:0;font-weight:500}.status[data-state=success]{color:var(--chalk)}.status[data-state=error]{color:#c2412d}:root[data-theme=dark] .status[data-state=error],:root[data-theme=dark] .brief [aria-invalid=true],:root[data-theme=dark] .brief label:has([aria-invalid=true]) .hint{color:#ff8a73;border-color:#ff8a73}.not-found{padding:clamp(4rem, 10vw, 8rem) var(--inline);min-height:60vh}.not-found h1{margin:0 0 1rem;font:700 clamp(2.4rem,6vw,4.5rem)/1 Barlow Condensed,sans-serif}.not-found p{color:var(--muted);margin:0 0 2rem}.not-found ul{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.not-found a{color:var(--accent-ink);font-weight:600}@media (width<=640px){.langs a{padding:.35rem .3rem}}.github{color:inherit;align-items:center;gap:.45rem;text-decoration:none;display:inline-flex}.github svg{fill:currentColor;flex:none;width:1.15rem;height:1.15rem}.icon-btn{border:1px solid var(--rule);width:2.2rem;height:2.2rem;color:var(--ink);border-radius:6px;place-items:center;display:inline-grid}.icon-btn:hover{border-color:var(--accent-ink)}footer .github:hover{color:var(--ink)}.method{background-color:var(--method-bg);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:160px 160px,160px 160px,32px 32px,32px 32px}.method .pieces div{background:color-mix(in srgb, var(--method-bg) 70%, transparent)}.press{--ink:#f3efe3;--muted:#a7b2c2;--rule:#f3efe321;--accent-ink:#f4b73a;--panel:#243042;--plate:#2f3b4e;--plate-ink:#f3efe3;--plate-line:#00000059;color:var(--ink);background:#19222e}:root[data-theme=dark] .press{--panel:#19222e;background:#222c3a}.press ::selection{background:var(--accent-ink);color:#19222e}.press :focus-visible{outline-color:var(--accent-ink)}.press-live{transition:opacity .3s ease-out}.press-live[data-state=loading]{opacity:.6}::view-transition-old(root){animation-duration:.25s}::view-transition-new(root){animation-duration:.25s}:root[data-theme=dark] .contact{background:#1a2330}.id-card{background:var(--card);border-radius:14px;max-width:26rem;margin-top:2.25rem;overflow:hidden;box-shadow:0 1px 2px #141c260f,0 24px 48px -28px #141c2659}.id-head{border-bottom:1px solid var(--pencil);align-items:center;gap:1rem;padding:1.25rem 1.4rem;display:flex}.id-mark{fill:none;width:3.5rem;height:auto;stroke:var(--graphite);stroke-width:3px;stroke-linecap:square;flex:none}.id-mark .ridge{stroke:var(--amber);stroke-width:5px}.id-mark .post,.id-mark .tie{stroke-width:1.75px}.contact-intro .id-title{max-width:none;color:var(--graphite);letter-spacing:.01em;margin:0;font:700 1.2rem/1.2 Barlow Condensed,sans-serif}.id-links{margin:0;padding:.4rem 0;list-style:none}.id-links a,.id-row{color:var(--graphite);grid-template-columns:1.25rem 4.5rem 1fr;align-items:center;gap:.75rem;padding:.6rem 1.4rem;text-decoration:none;display:grid}.id-links a{transition:background .15s}.id-links a:hover{background:color-mix(in srgb, var(--chalk) 8%, transparent)}.id-links a:hover .id-value{color:var(--chalk)}.id-links svg{fill:none;width:1.2rem;height:1.2rem;stroke:var(--graphite-2);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.id-label{color:var(--graphite-2);letter-spacing:.02em;font:600 .95rem Barlow Condensed,sans-serif}.id-value{overflow-wrap:anywhere;font-weight:500;transition:color .15s}@media (width<=860px){.contact-intro{position:static}}@media (width<=420px){.id-links a,.id-row{grid-template-columns:1.25rem 1fr}.id-label{display:none}}:root{--method-bg:#eceee8;--grid-minor:#23282d0f;--grid-major:#c48a1438}:root[data-theme=dark]{--method-bg:#151d28;--grid-minor:#f3efe30b;--grid-major:#f4b73a24}.hero-row{grid-template-columns:minmax(0,1fr) minmax(0,34rem);align-items:center;gap:2.5rem 3.5rem;margin-bottom:3rem;display:grid}.hero-row h1{margin:0}.code-switch{justify-content:flex-end;gap:.35rem;margin-bottom:.9rem;display:flex}.code-switch button{letter-spacing:.04em;color:var(--muted);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .9rem;font:600 1rem Barlow Condensed,sans-serif;transition:background .2s,color .2s,border-color .2s}.code-switch button:hover{color:var(--ink)}.code-switch button[aria-selected=true]{background:var(--amber);border-color:var(--amber);color:var(--on-amber)}.code-switch button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.code-stack{--off:1.6rem;padding-bottom:calc(var(--off) * 2);display:grid}.code-stack>.code-card{width:calc(100% - var(--off) * 2);grid-area:1/1}.code-card{--code-bg:#fffdf8;--code-ink:#1f2630;--code-muted:#6a7480;--code-rule:#1f26301a;--code-accent:#8a5a00;--astro-code-foreground:var(--code-ink);--astro-code-background:transparent;--astro-code-token-keyword:#9a5b00;--astro-code-token-string:#3d7a2a;--astro-code-token-string-expression:#3d7a2a;--astro-code-token-function:#2a5c9e;--astro-code-token-constant:#b0482a;--astro-code-token-parameter:var(--code-ink);--astro-code-token-comment:var(--code-muted);--astro-code-token-punctuation:#5a6573;--astro-code-token-link:#2a5c9e;cursor:pointer;background:var(--code-bg);color:var(--code-ink);transform:translate(calc(var(--off,0px) * 2), 0) scale(.96);transform-origin:100% 0;z-index:1;opacity:.7;border-radius:12px;margin:0;transition:transform .7s cubic-bezier(.16,1,.3,1),opacity .5s ease-out,z-index 0s .18s;overflow:hidden;box-shadow:0 1px 2px #141c2614,0 20px 40px -24px #141c2659}:root[data-theme=dark] .code-card{--code-bg:#0f151e;--code-ink:#e8e4d8;--code-muted:#7d8899;--code-rule:#f3efe31a;--code-accent:#f4b73a;--astro-code-token-keyword:#f4b73a;--astro-code-token-string:#a8d08d;--astro-code-token-string-expression:#a8d08d;--astro-code-token-function:#8ab8f0;--astro-code-token-constant:#f0a37a;--astro-code-token-punctuation:#a7b2c2;--astro-code-token-link:#8ab8f0;box-shadow:0 0 0 1px #f3efe314,0 20px 40px -24px #000000b3}.code-card[data-depth="0"]{z-index:3;opacity:1;cursor:default;transform:translate(0, calc(var(--off,0px) * 2))}.code-card[data-depth="1"]{z-index:2;opacity:.8;transform:translate(var(--off,0px), var(--off,0px)) scale(.98)}.code-card[data-depth="2"]{z-index:1;opacity:.6}.code-card:not([data-front]):hover{opacity:1}.code-card:focus-visible{outline:3px solid var(--accent-ink);outline-offset:3px}.code-card figcaption{border-bottom:1px solid var(--code-rule);letter-spacing:.02em;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 1rem;font:600 .95rem Barlow Condensed,sans-serif;display:flex}.code-lang{color:var(--code-ink)}.code-file{color:var(--code-accent)}.code-card pre{tab-size:4;margin:0;padding:.85rem 1rem 1rem;font:400 .78rem/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto}.code-card pre::-webkit-scrollbar{height:6px}.code-card pre::-webkit-scrollbar-thumb{background:var(--code-rule);border-radius:3px}@media (width<=1080px){.hero-row{grid-template-columns:1fr}.code-stack{max-width:38rem}}@media (width<=520px){.code-stack{--off:.9rem}}@media (prefers-reduced-motion:reduce){.code-card{transition:none}}@media (width>=861px){.contact{align-items:stretch}.contact-intro{flex-direction:column;display:flex;position:static}.contact-intro .id-card{margin-top:auto}}.contact-intro>p:last-of-type{margin-bottom:1.75rem}.id-head{padding:1rem 1.4rem}.id-links{padding:.25rem 0}.id-links a,.id-row{padding:.5rem 1.4rem}
