@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) 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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-vietnamese-wght-normal.CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-ext-wght-normal.Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.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,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) 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(/_astro/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(/_astro/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(/_astro/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(/_astro/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(/_astro/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{--bg: #f3f6f5;--surface: #ffffff;--text: #0f1a17;--muted: #4c5d58;--line: #d6dfdb;--brand: #0b7a6e;--brand-ink: #ffffff;--brand-soft: #dff0ed;--ok: #137a4b;--panel: #0c1512;--panel-2: #14211d;--panel-line: #25352f;--panel-text: #e9f1ee;--panel-muted: #a3b8b1;--panel-accent: #3fd6c1;--radius: 8px;--max: 1080px;--f-display: "Archivo Variable", "Archivo", system-ui, sans-serif;--f-body: "Hanken Grotesk Variable", "Hanken Grotesk", system-ui, sans-serif;--f-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;font-family:var(--f-body);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0a1110;--surface: #111b18;--text: #e8efec;--muted: #9db0aa;--line: #23302c;--brand: #3fd6c1;--brand-ink: #04211c;--brand-soft: #123029;--ok: #53d397}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);line-height:1.65;font-size:17px;font-family:var(--f-body)}a{color:var(--brand);text-underline-offset:3px}img{max-width:100%;height:auto}.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}.narrow{max-width:760px}h1,h2,h3{font-family:var(--f-display);font-stretch:112%;line-height:1.12;letter-spacing:-.02em;text-wrap:balance;font-weight:700}h1{font-size:clamp(2.2rem,5.4vw,3.5rem);margin:0 0 .45em;font-weight:800}h2{font-size:clamp(1.45rem,3vw,2rem);margin:2.2em 0 .6em}h3{font-size:1.1rem;margin:1.4em 0 .3em;letter-spacing:-.01em}.lead{font-size:1.2rem;color:var(--muted);max-width:38em}.muted{color:var(--muted)}.small{font-size:.88rem}.eyebrow,.badge{font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase}header.site{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}header.site .wrap{display:flex;align-items:center;gap:22px;min-height:60px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-stretch:112%;font-weight:750;letter-spacing:-.01em;color:var(--text);text-decoration:none}.brand img{width:28px;height:28px;border-radius:6px}nav.main{display:flex;gap:22px;margin-left:auto;flex-wrap:wrap;font-size:.95rem}nav.main a{color:var(--muted);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}nav.main a:hover{color:var(--text)}nav.main a[aria-current]{color:var(--text);border-bottom-color:var(--brand)}details.menu{display:none;margin-left:auto;position:relative}details.menu summary{list-style:none;cursor:pointer;width:40px;height:40px;border-radius:6px;border:1px solid var(--line);display:grid;place-items:center}details.menu summary::-webkit-details-marker{display:none}details.menu summary span,details.menu summary span:before,details.menu summary span:after{display:block;width:18px;height:2px;background:var(--text);transition:transform .2s,opacity .2s}details.menu summary span{position:relative}details.menu summary span:before,details.menu summary span:after{content:"";position:absolute;left:0}details.menu summary span:before{top:-6px}details.menu summary span:after{top:6px}details.menu[open] summary span{background:transparent}details.menu[open] summary span:before{top:0;transform:rotate(45deg)}details.menu[open] summary span:after{top:0;transform:rotate(-45deg)}details.menu nav{position:absolute;right:0;top:48px;min-width:240px;display:grid;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 40px -18px #05141073;padding:6px}details.menu nav a{padding:12px 14px;border-radius:4px;color:var(--text);text-decoration:none}details.menu nav a:hover,details.menu nav a[aria-current]{background:var(--brand-soft)}.hdr-install{margin-left:4px;white-space:nowrap}.hdr-install .short{display:none}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:6px;background:var(--brand);color:var(--brand-ink);font-family:var(--f-display);font-stretch:105%;font-weight:650;text-decoration:none;border:1.5px solid var(--brand);cursor:pointer;font-size:1rem;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:none}.btn.ghost{background:transparent;color:var(--brand)}.btn.small{padding:8px 16px;font-size:.9rem}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin:1.4em 0 .6em}.hero{position:relative;overflow:hidden;padding:64px 0 56px;background:var(--panel);color:var(--panel-text);--text: var(--panel-text);--muted: var(--panel-muted);--brand: var(--panel-accent);--brand-ink: #04211c;--brand-soft: rgba(63,214,193,.14);--line: var(--panel-line)}.hero a:not(.btn){color:#bdf2e9}.hero-grid{display:grid;gap:48px;align-items:center}@media(min-width:940px){.hero-grid{grid-template-columns:1fr 1.05fr}}.badge{display:inline-block;padding:4px 10px;border-radius:4px;background:var(--brand-soft);color:var(--brand);font-weight:600;margin-bottom:18px}.hero h1{margin-top:0;font-size:clamp(2.1rem,4.4vw,3.2rem)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.rows{margin:0;display:grid;border-top:2px solid var(--text)}.rows>div{display:grid;gap:4px 32px;padding:20px 0;border-bottom:1px solid var(--line)}@media(min-width:760px){.rows>div{grid-template-columns:15rem 1fr}}.rows dt{font-family:var(--f-display);font-stretch:108%;font-weight:700;font-size:1.1rem;letter-spacing:-.01em}.rows dd{margin:0;color:var(--muted)}.who{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:0;margin:0;list-style:none}.who li{padding-top:14px;border-top:2px solid var(--text);color:var(--muted)}.who li b{display:block;color:var(--text);font-family:var(--f-display);font-stretch:108%;margin-bottom:4px}.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:16px}.steps li{counter-increment:s;position:relative;padding-left:52px}.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:6px;border:1.5px solid var(--text);display:grid;place-items:center;font-family:var(--f-mono);font-weight:600;font-size:.95rem}kbd{font:.85em var(--f-mono);padding:1px 7px;border:1px solid var(--line);border-bottom-width:3px;border-radius:4px;background:var(--surface)}code{font:.9em var(--f-mono);background:var(--brand-soft);padding:1px 6px;border-radius:4px}.note{border-left:3px solid var(--brand);padding:8px 16px;background:var(--brand-soft)}.xp{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}.xp img{width:52px;height:52px;border-radius:10px;flex:none}.xp b{display:block;color:var(--text);font-family:var(--f-display)}.xp span{color:var(--muted);font-size:.92rem;display:block}.xp em{font-style:normal;color:var(--brand);font-size:.88rem}.xp:hover{border-color:var(--brand);transform:translateY(-3px)}:root{interpolate-size:allow-keywords}.faq-sec details.faq:first-of-type{border-top:2px solid var(--text)}details.faq{border-bottom:1px solid var(--line)}details.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 2px;font-family:var(--f-display);font-stretch:105%;font-weight:650;font-size:1.05rem}details.faq summary::-webkit-details-marker{display:none}details.faq summary:after{content:"+";flex:none;font:400 1.6rem/1 var(--f-mono);color:var(--brand);transition:transform .3s ease}details.faq[open] summary:after{transform:rotate(45deg)}details.faq summary:hover{color:var(--brand)}details.faq p{margin:0;padding:0 2px 20px;color:var(--muted);max-width:40em}details.faq::details-content{block-size:0;overflow:clip;transition:block-size .3s ease,content-visibility .3s allow-discrete}details.faq[open]::details-content{block-size:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-family:var(--f-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.table-wrap{overflow-x:auto}footer.site{border-top:1px solid var(--line);margin-top:72px;padding:32px 0 36px;color:var(--muted);font-size:.92rem}footer.site .foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}footer.site .cols{display:flex;gap:48px;flex-wrap:wrap;min-width:0}footer.site .use ul{grid-template-columns:repeat(2,auto);column-gap:40px}footer.site .small{margin:18px 0 0;max-width:78ch;font-size:.84rem}footer.site .foot-top+.small{margin-top:24px}footer.site h4{margin:0 0 8px;color:var(--text);font-family:var(--f-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:0}footer.site li a{display:inline-block;padding:4px 0;color:var(--muted)}.crumbs{font-size:.88rem;color:var(--muted);margin-top:20px;font-family:var(--f-mono)}.crumbs a{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:10px;margin:1em 0}.chip{padding:11px 16px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;font-size:1rem}.chip:hover,.chip[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}main>.wrap>h2,main>.wrap>section>h2{margin-top:3.4em}main li>a:only-child{display:inline-block;padding:4px 0}.big404{margin:0;font:800 clamp(5rem,18vw,10rem)/1 var(--f-display);font-stretch:125%;color:var(--brand);letter-spacing:-.04em}.skip{position:absolute;left:12px;top:-60px;z-index:20;background:var(--brand);color:var(--brand-ink);padding:10px 16px;border-radius:6px;font-weight:650;text-decoration:none;transition:top .15s}.skip:focus{top:10px}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}.hero :focus-visible{outline-color:var(--panel-accent)}@media(max-width:900px){nav.main{display:none}details.menu{display:block;margin-left:auto}.hdr-install+details.menu{margin-left:0}header.site .wrap{flex-wrap:nowrap;min-height:56px;gap:12px}.hdr-install{margin-left:auto}}@media(max-width:640px){.brand{font-size:.9rem;white-space:nowrap;gap:8px;min-width:0}.brand img{width:24px;height:24px}.hdr-install{padding:8px 14px}.hdr-install .long{display:none}.hdr-install .short{display:inline}.hero{padding:40px 0}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero .badge,.hero h1,.hero .lead,.hero .cta-row,.hero .muted{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation-delay:.06s}.hero .lead{animation-delay:.12s}.hero .cta-row{animation-delay:.18s}.hero .muted{animation-delay:.24s}.js .rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}.js .rv.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero *,.hero .btn{animation:none!important}.js .rv{opacity:1;transform:none;transition:none}details.faq::details-content,details.faq summary:after,.btn,.xp{transition:none}}.stat{margin:4px 0 0;font:.82rem var(--f-mono);color:var(--muted)}.stat b{color:var(--text);font-weight:600}.stat span{opacity:.5}.rows dt{background:linear-gradient(var(--brand),var(--brand)) 0 100% / 0 2px no-repeat;transition:background-size .3s ease;width:fit-content}.rows>div:hover dt{background-size:100% 2px}.btn:after{content:""}.cta-row .btn:not(.ghost):after{content:"->";font-family:var(--f-mono);display:inline-block;transition:transform .2s}.cta-row .btn:not(.ghost):hover:after{transform:translate(4px)}@media(prefers-reduced-motion:reduce){.rows dt,.cta-row .btn:after{transition:none}}.hero-logo{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;max-width:920px}.hero-logo>div:first-child{flex:1 1 340px;max-width:540px;min-width:0}.hero-logo .ascii.logo{flex:none}@media(max-width:640px){.hero-logo .ascii.logo{font-size:8px;line-height:8px}}.foot-logo{flex:none;margin-left:auto}@media(max-width:640px){footer.site .use ul{grid-template-columns:1fr}.foot-logo{margin-left:0}}.ascii.feature.tight{margin-top:-1px}main .wrap>.crumbs,main .wrap>h1,main .wrap>.lead,main .wrap>.cta-row{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}main .wrap>h1{animation-delay:.06s}main .wrap>.lead{animation-delay:.12s}main .wrap>.cta-row{animation-delay:.18s}@media(prefers-reduced-motion:reduce){main .wrap>.crumbs,main .wrap>h1,main .wrap>.lead,main .wrap>.cta-row{animation:none}}.guide{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;margin-top:8px}.guide-rail{position:sticky;top:56px;z-index:4;background:var(--bg);padding:10px 0;margin:0 -20px;padding-inline:20px;border-bottom:1px solid var(--line)}@media(min-width:960px){.guide{grid-template-columns:210px minmax(0,1fr);gap:56px}.guide-rail{position:sticky;top:84px;align-self:start;margin:0;padding:40px 0 0;border:0;background:none}.guide-rail .rail ol{flex-direction:column;overflow:visible}}.guide-body{max-width:760px}.gsec{padding-top:48px;scroll-margin-top:130px}.gsec h2{margin-top:.1em}.gsec ul{padding-left:1.2em;display:grid;gap:8px}.deeper{margin-top:1.2em;font-family:var(--f-mono);font-size:.85rem}.ascii.feature.inline{margin-top:18px}.guide-body .faq-sec{margin-top:3em}.ascii.feature.inline.tight{margin-top:-1px}.back-guide{margin:1.6em 0 0;font-family:var(--f-mono);font-size:.85rem}.guide-track{margin:22px 0 4px}.guide-track .eyebrow{margin-bottom:8px;color:var(--muted)}.guide-track .rail ol{flex-wrap:wrap}main .rail li>a{display:inline-flex;padding:8px 12px}#fbform{display:grid;gap:6px;margin-top:8px}#fbform>label,.tech .check{font-family:var(--f-display);font-stretch:105%;font-weight:650;margin-top:14px}#fbform .req{color:var(--brand)}.hint{margin:0 0 2px;color:var(--muted);font-size:.9rem}#fbform textarea,#fbform input[type=text]{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--line);border-radius:6px;padding:12px 14px}#fbform textarea:focus,#fbform input[type=text]:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}.hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}.tech{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.tech .check{display:flex;gap:10px;align-items:center;margin-top:0;cursor:pointer}.tech .check input{width:18px;height:18px;accent-color:var(--brand)}#techbox{margin:8px 0 0;padding:12px 14px;background:var(--surface);border:1px dashed var(--line);border-radius:6px;font:.8rem/1.6 var(--f-mono);color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.err{color:#b3261e;margin:8px 0 0;font-weight:600}@media(prefers-color-scheme:dark){.err{color:#ff8a80}}#send{justify-self:start;margin-top:12px}#send:disabled{opacity:.6;cursor:progress;transform:none}#sent,#fail{margin-top:24px}#sent p,#fail p{margin:6px 0 12px}.note.warn{border-left-color:#b3261e}.langs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:1em 0}.langs figure{margin:0;text-align:center}.langs img{width:100%;border-radius:10px;border:1px solid var(--line)}@media(max-width:480px){.langs{gap:8px}}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.two .shot-fig{margin:1em 0;max-width:100%}@media(max-width:560px){.two{gap:8px}}.ascii{position:relative;overflow:hidden;font:500 12px/16px var(--f-mono);user-select:none;pointer-events:none}.ascii pre{margin:0;white-space:pre;font:inherit}.ascii.urls{position:absolute;inset:0;z-index:0;color:var(--panel-accent);mask-image:linear-gradient(90deg,transparent 40%,#000 72%);-webkit-mask-image:linear-gradient(90deg,transparent 40%,#000 72%)}.ascii.urls .base{opacity:.13}.ascii.urls .lit{position:absolute;inset:0;opacity:.5}.ascii.strip{height:34px;margin:72px 0 0;border-block:1px solid var(--line);color:var(--muted);display:flex;align-items:center}.ascii.strip .base{opacity:.8}.ascii.glitch{overflow:visible;font:800 clamp(5rem,18vw,10rem)/1 var(--f-mono);color:var(--brand);letter-spacing:-.04em}.ascii.tabs{font-size:14px;line-height:22px;color:var(--muted);height:22px;margin-bottom:18px}.ascii.logo{font:600 11px/11px var(--f-mono);color:var(--brand);width:max-content;max-width:100%}.ascii.logo .base{opacity:.55}.ascii.logo .lit{position:absolute;inset:0;color:var(--text)}.ascii.logo.small{font-size:7px;line-height:7px;opacity:.8}.ascii.feature{display:flex;gap:24px;align-items:flex-start;margin:56px 0 0;padding:16px 0;border-block:1px solid var(--line);color:var(--muted);font-size:13px;line-height:18px}.ascii.feature .lbl{flex:none;width:10rem;padding-top:1px;font:700 .7rem/18px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--brand)}.ascii.feature .base{min-width:0;overflow:hidden;color:var(--text)}.hero>.wrap{position:relative;z-index:1}@media(max-width:939px){.ascii.urls{mask-image:linear-gradient(0deg,#000 0%,transparent 38%);-webkit-mask-image:linear-gradient(0deg,#000 0%,transparent 38%)}}@media(max-width:640px){.ascii.urls .base{opacity:.1}.ascii.strip{margin-top:48px}.ascii.feature{flex-direction:column;gap:6px}.ascii.feature .lbl{width:auto}}
