@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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:Doto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAA88ABEAAAABffQAAA7VAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYGYD9TVEFUgTQnFgCDbC9sEQgKg6Agg8U1C4FkADCCvzgBNgIkA4FmBCAFhhwHh20MB1t8jlExjlkBGwcYfPuzj0i1uSaKWi0WxYD/vyWocdjHriLGQ/DBi8h0Ki1W7I7iLKN7DYBy4loonRKa1l7a9X6ppcwr4di23+oZbioHCwfdwnNjPMf5YNo2pKAIpL+cj7EGP6/siWOUe3ie/z/f1j43fpRKpERK+W+cIVLZw8PTDd/v8jCrACuSsCwMw7AwDIfD2UBHU70AQBncVwAQkFaN/4tzXsnKM6gBoKNsx3Z4Wpxzp5SV/6VMEUZaX6Pb/A58opFdggMfYeDJRA8seGuA3aL8Os7QJbZqRKB+fzvfffKSiDZ63W0WfMBR4IFn1d5+9kO2ZAvlo7DvyBKnUnhGUP4kQk69a9L+IUoKhcd4jA3JYymEO41SyOsewgZilgKCp/tUdykbimiETwpaMFTCgt4XiBULAP+YHPt6cs3q//9ay7P/vjNpTaq9uKGvx2zyZ9WzI6LJGoeQIHVIlEAKRFIhpI6NpQa7VgZOLkSJfbY6Vpbr3K82YiUE77YhgDMAoBCEIQSdarsz6EHNK34BC97TlquGUCaLcrKYldJMyhgOg42eyPS+Nos/6JoXmj0bQJsRyYAXQF6qX0A4EAQTCvBmAaKpFtekWoDRW98RIggzjDFAV81Uy5csnDdBAI80AwgCYtbCl9eZ1C/rjMq6wiAvF2g3VyhZgrDrdJJ8UmMvrVL03BiUOMHzGgTtDz8A5coBCtAAbxoCeNPJWahUTo8iXIUt/uQvRvGSIImSOEmSdMmTUqmnudY66KaX/iZNkMpTjuJSEk2nmUJnhm4KffF/6dwJxCK+EiqxkiipkisFUqGZVqw666mfQeM/rEDTFkxZ8Pwp+/zH73Ll4tHe/4+c8ufaz0mfBn3qBfCpI1xzAJDDXchXy6q7AQYZAoaZYJ4FFllhnQ02obHdD7gt+ON/Q08mHekMZDGSzUweE7ks5HOigCvFXCjiRglnCrkr5aFMG215quCtio9qXnzVaK8DP7X81QlQT0edBKovSAPBGgrRSKjGwjUVpokIzUVpJUYfkVqK1lscm0QDJEkxSJohUg1WLkMLPSToL1Zf8fpJNpAA7hSCNzMmbV1PT2gH6bEBEVFAT4gG7IXoQJJB9CBLIAaQlxAjKGuICdQvEDNo4SAW0PBH/n+2ZMBQgOuGhf6/DZ4LgLsBSr7+EtCl5vfvsoE6juNw6nVUn1coj5cbU/blkH+/DwfoOEOummrrBQ7igemK+ltP5MI5cOmR4pGlfYcFdiuXZLirsjQrhANuDGHJ0uOwgD3kOEHevwdLncfoGYyYi6m7i9m5i8yzKRHzx5i61eWjE53xXqGcQfjC7WBnGIcvC7/rbCIVL3CamF2L35QBOvgwhrIFsSs3cRXk8Kzxq6K70YJAv4D49Vt2tl3+ikm/BYoPxa94eAjyZ8LbSQCuYUfNdrF2BRgkpQe8Bujf2XQj8dt1+iEo0bWdpC6x/KM07mQStHUaBSzRpZ15lcAbejWIxA0HAb2ddXcIKa1Ui1gp/B3VwUctMRSnrqhC21fHT3A9CzaMhHvj8yy3HRLz7Yh+TNxNmiBArXCxvd/ZUcDWSaus3wbBVwiaDowEsOsib/jWeu1tzb7V1pIAqa2hVpUXavo3RDozDl84fGnrpIHCzMcQdU97EUqQYgcB//pQIzGC+L1y0xrGBhqL9evg+cnd7oYFpDrbHnxv3s5olEi5bz0LIwSIS9/YrQHCaS3nC3KFCKR2GotrTc32hCseRsKIUzOyDibN8FcF2Xnta+CNYsHgV1NnzsLvn/JzZHjGWIseX6vwGd8U4gL2AD+IH4KQK5D1DwC8yE6kPaIFpfjQYJwgqPVc6O5d6aTKe+eG/zmiFx283PxFAwQK2F78etm0IImc/YPxX1UgZ7vsmMeLh1E4Jvw6I7jFYTlcoI5e+0tPsW9VGnvwFsc22y9SPh3/2V/4DybKQIrMZ37C3P1Z6yRE8dDfVpA9A20HVXvNr45PWqYDq8AtWDPsLEx4DwgLBA1ni/NVeWHRvQmO2NKcDMuPGn+2X8yzH/EoaidLPMUz6cslX3ZaJTdK5pAd5J5eMj24Z9Xx7A7Wee3w493kf8pnYDP0kWihkgiwHQyORB26fDcIr6ggxUuNFNHSzWujR9B9R7tBCflywzNhPJvTMcSzubGB+KSOqUcTh4uvquyNsr0Exp6dvwJS94hb5SNIXCvz12HXHTa7bZC4YPmuDHZzACiOclWc994k8SrvMJnhq7PFjCV8eBu1hQ3wR6Z/sdKPXjLzisTurS1o4mqEIhNRPxa23eOgtMHo2T1q8I46fLAZ1CJ7F3fy3LkwNJFVpaQfgM1eaCIx8P0ggC0PJyu/iRyN+1Xb7NkDWnwCQRE9df7sA0hcShDTjlfq9ra3ufAbLlaRayzjg9mEezNM+UlFvt2nzZUhxm2UAcVHdfAsRGr9aOP7htzLjfsoRecDtNkfVEIxuP2paXyC/fnMbAc+ZXYs7XjvH2q5TnBMYluMnZzTxuIZ5I3jZSydqp0w5vd+7S8DVPT3dTfC68N3tcZxoGXO9Hhs4gffm50apNtpx+wN+f9I+6OQXkr7d3MwSnhPyP4oq1qltQQXXhOlHwtWUcgOdiwuwG8nkD6A9+S/wbDZEf28sT22myZVoQhH4SWp0d+qH7HPi0N2s/qA1Wqy4hh/Ekj+rYR3l/zsB0SGXRI0ingo8IFxqaO7wA4k4icE/Ujg917hwqrqj+3GV13uU4ZSH/kT0UK8r4knWjbBkVrOKH4vYQt4RCQjZrERfYI1BiUSxw8y2r+ROJGfR76P93/qZUPsQSJDkZ5pwvAODh8TXEu5xOQRwwIvDK+Vo7SAxwY+pCvVMCRhzC/tJYiOBgiLzwfbY6vshrM7Pj7Db3EIxMkAR9XwBaEEuH7Rs/vOww7y+4KDROu0OPgAnxNh+zQhZbbwyvoM99yIApK2hliIrh76XG8ApIDW1IsOfyI/0nY8AcPP+C0Odp6IXkr78I70C4P+52zwlkc053PUaPUo8ZXg2Dqe82QcaixUbZxifBN/CBmPV0sCvRQkOdf+TrzXmyPDtwWKF7d/u7VeCk8oLWQSdm35YSh4kc+HDHt67vBBic+s1Y/F55/Nbvibler2MzijFTpHEdkdaTscIQPQju/qynQkSYWNHzifW4fshntHv/ifBSAQwNsa4P0A2Ct/Qtu0X/fpX8NheIAvMpXdXOJyTnPJdo1wvcj/6i66P+jI4jrPEs+r8mjvRj4pvq6+T/SLxo6AAYEVgTftzcF9QuqFhoR+DjsRfBuxMtI7cnmUZ9T55IuYfrFtY0fGNYgPi/+reFiuT8xMfFTvSZ6Ykp/qknq9vzP8kn5+XJlxYGqT+Wgek61lr8upn6vLPbi3zXt8bCywFhrH4/bCh/e3xYPfR0leaXTpu7I//0MqvCqp/DIz2Kzq09xM3r22sNZaF153RFwt1TaQBq90adSocUrju/qXRpc/BgSTzO6Ycp2ilRrV2wdloS5fP5fbOf+QYz58ZvW86xpok3y/7ncJLqzRgvNb9Vb+tWr1/FPdTwnGrZWD4a9r+VYcKlX3pwQZN+EGmc/MF/IPnnY85+N1v0pQfq0flN7an7F666Y2f+qQXTa9dfWb3Ln64xFOg0Zjjk5Fus7dpRjsZ458Ki19ty6sC8g3BVZ0e37Xxi1XgnXcbj6zY2C8fHxeTHL9lda5dpV7/9mhs1cweG0ADCsAJFPsr+66li4gos6ZR8rb6r5LEMaYfBB4DP4zEd/j4vNS8LUiyig2Je0+pTZBttsHwAWAicRQmvnxeS3I1u4tOuPN3oxZeP2rmk137UiUV4+AJU8XmZ8EhpkzGfksZD/pXt0dtQ3Cxy4hW+P6f/yu0Ggp//okyRhwTrbph8prVfFpMP4Hsv3LRtsYMTabKT5pxdi4PRM2E9HuvtDzVeHt3enc7ol+jzwfRAHz0s/6Ueci42x0wThhBww3QymbaSvNWgVj/+UC4UawSN72dBtgno1JdT6y6KMltsfFvhtAloLKtRvGDGRMkyVjLPTBXEFX/9mn/0Vdzz8/9dwz+YmdRwNjD0lJmQOjx4OJk8Ho1zAQRhlTtHdmrpgVfWPKa3grENC9+J5d3IpfmZR2F7i+nm0B3Ij8aS3955OepBnAgAJAAPGDLxxS1vRkhnjirpE3V/KSkW74ELbY60uHKFKbYrs6nw7EDuShbCX8FQGGRq98AAijz7y9JiE6M7Ajpi2z4B2DWOEqXVkjP+JZR3ToWE+g+2wg0l6fK7mW+Ql4msKCMyNYYWIAa3izsg4LTViPq3RlA85UshF3mWzCRCKb8eTPFiy4frcTrsB4LBRJ/+zoZ5I9uG/XJDR55vN7HXjdeIqm5NP+pdKb8tqlcZ5fcOf23nAA5LZJ38vxxdq2f7er2vNiQSrABcHd85YBbmFOmpIlHZHi6MyGsud+tfGhaW8Eo9V8Oc7Gv48uIdD5GPIy1+M3SzfL+RLO1blJRsrJr8Glh9Zubb2dLUmE4EtA6fTMhuZ3yGJOqb57SSLr62iI56C8hZr26dwNyAvlJK7KWzYlS04neOF+fhSVAoD/N8jcfv6nQ0G0JfaJEk10fCKLXgxiFJOYxSJOPO8tRlx4jxM3cSd2nSeZQqXRu9kHBpPF5nB5fIGwn0XibouWyuSKPncNUqqAkqTR6nqnNxi7ItNssXZDrt3hdLm71cc0sNjr8/NHoTFYHJ5AJJEpVBqdwWSxOVweXyAUdQDEQOnd3Y5QDc0+OqFGGN0VzthxojGun8Aa3EcH1uwDT+A4Hc6FaREuOnGqYHqLukUkgnQcVDTX6UBNWtM5Qv9QGfHqAferVbxOsP01OzQcuEFei3j5wDvy8fbUAwSxnovgB8jO/tFr3rPAJvdXIYgHcIUd74CoARG7AXHUJzyGQSZASea3w4ymSZInkic8C6/lJdYAqwAgIFBLyfJOJl5/X1GjG93wxBMYOJigQYNWdHPWpWozeq56/KiP8+fpu6SW8/bVeo2NfrOnA9Fg9Nud2NvXqyOdiAKdSWu0WW5Jd3T9uBOXWY+ixyfwo37wCfzhh7/63/x35pcOAAAA)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:Doto Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/doto-latin-wght-normal.DtlIPefW.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}@font-face{font-family:DotPunct;font-weight:100 900;font-display:swap;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+2C,U+2E,U+25}:root{color-scheme:light;--bg:#f3f3f1;--surface:#fff;--surface-2:#f8f8f6;--surface-3:#e9e9e5;--ink:#191a23;--text:var(--ink);--text-2:#4a4c57;--muted:#6c6e79;--line:#191a231f;--line-strong:#191a2347;--accent:#b9ff66;--accent-ink:var(--ink);--accent-soft:#f1ffdc;--warn:#8a5a00;--danger:#b42318;--s1:#7fb41b;--s2:#5f9413;--s3:#44740f;--s4:#2d540c;--s5:#183608;--font:"Space Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SF Mono", monospace;--dot:"DotPunct", "Doto Variable", var(--mono);--r-sm:14px;--r:24px;--r-lg:40px;--hard:0 5px 0 var(--ink);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--header-h:68px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{min-height:100dvh;font:400 17px/1.55 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;display:flex;position:relative}dither-art{pointer-events:none;color:var(--ink);display:block}.page-dither{z-index:-1;opacity:.26;height:min(760px,100vh);position:absolute;inset:0 0 auto;mask-image:radial-gradient(75% 100% at 88% 0,#000 10%,#0000 72%)}::selection{background:var(--accent);color:var(--ink)}a{color:inherit;text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:background .2s,text-decoration-color .2s}:where(p,li,td,th,dd,small,.lede,.breadcrumbs)>a:hover{background:var(--accent);text-decoration-color:var(--ink);border-radius:4px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}img,svg{max-width:100%;display:block}h1,h2,h3{letter-spacing:-.03em;text-wrap:balance;margin:0 0 .5em;font-weight:500;line-height:1.08}h1{letter-spacing:-.045em;font-size:clamp(2.2rem,1.4rem + 3.4vw,3.9rem)}h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.5rem)}h3{letter-spacing:-.02em;font-size:1.25rem}p{text-wrap:pretty;margin:0 0 1em}.muted{color:var(--muted)}.text-2{color:var(--text-2)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.dot{font-family:var(--dot);letter-spacing:.01em;text-transform:uppercase;font-variant-numeric:tabular-nums;font-weight:900}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hl{background:linear-gradient(var(--accent), var(--accent)) no-repeat 0 0 / 100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:7px;padding:0 .28em}.eyebrow{font:500 .68rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;margin:0 0 18px;padding:6px 12px 6px 10px;display:inline-flex}.eyebrow:before{content:attr(data-n);color:var(--muted)}.eyebrow:after{content:"";background:var(--ink);border-radius:50%;order:-1;width:6px;height:6px}.eyebrow[data-n]:before{order:-2}.wrap{width:min(1200px,100% - 40px);margin-inline:auto}main{flex:1}section.block{padding-block:clamp(56px,8vw,110px)}.lede{color:var(--text-2);max-width:60ch;font-size:clamp(1.05rem,1rem + .35vw,1.22rem)}.sec-head{flex-wrap:wrap;align-items:center;gap:14px 40px;margin-bottom:clamp(24px,4vw,44px);display:flex}.sec-head h2{margin:0}.sec-head p{max-width:54ch;color:var(--text-2);margin:0;font-size:1rem}.sec-head .btn{margin-left:auto}.site-header{z-index:50;height:var(--header-h);backdrop-filter:blur(14px)saturate(1.3);background:#f3f3f1d1;position:sticky;top:0}.site-header:after{content:"";background:var(--ink);transform-origin:0;height:2px;position:absolute;inset:auto 0 0;scale:0 1}@supports (animation-timeline:scroll()){.site-header:after{animation:linear both progress scroll(root)}}@keyframes progress{to{scale:1}}.site-header .wrap{justify-content:space-between;align-items:center;gap:16px;height:100%;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:10px;font-size:1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.nav{align-items:center;gap:2px;display:flex}.nav a:not(.btn){color:var(--text-2);border-radius:999px;padding:8px 13px;font-size:.95rem;text-decoration:none;transition:background .2s,color .2s}.nav a:not(.btn):hover{color:var(--ink);background:var(--surface-3)}.nav a:not(.btn)[aria-current=page]{color:var(--ink);background:var(--surface);box-shadow:0 0 0 1px var(--line-strong)}.nav .btn{margin-left:10px}.nav .btn .narrow{display:none}@media (width<=560px){.bar{display:none}th,td{padding:13px 10px}th:first-child,td:first-child{padding-left:16px}.lede{font-size:1rem}.seg span{font-size:.76rem}.brand span{display:none}.nav a:not(.btn){padding:8px 9px;font-size:.88rem}.nav .btn{margin-left:4px}.nav .btn .wide{display:none}.nav .btn .narrow{display:inline}}.site-footer{background:var(--ink);color:#c9cad2;border-radius:var(--r-lg) var(--r-lg) 0 0;margin-top:clamp(56px,8vw,110px);padding:124px 0 44px;font-size:.95rem;position:relative;overflow:hidden}.site-footer .wrap{gap:28px;display:grid;position:relative}.foot-dither{height:96px;color:var(--accent);opacity:.55;position:absolute;inset:0 0 auto}.site-footer .top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 32px;display:flex}.site-footer .brand{color:#fff}.site-footer nav{flex-wrap:wrap;gap:8px 26px;display:flex}.site-footer nav a{color:#fff}.site-footer nav a:hover{color:var(--accent);text-decoration-color:var(--accent)}.site-footer .bottom{border-top:1px solid #ffffff29;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding-top:26px;display:flex}.site-footer .bottom p{margin:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(20px,3vw,30px)}.pop{border:1px solid var(--ink);border-radius:var(--r-lg);box-shadow:var(--hard)}.pop.lift{transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-spring)}.pop.lift:hover{box-shadow:0 9px 0 var(--ink);transform:translateY(-4px)}.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--lift,0px));transition:transform .35s var(--ease-out), box-shadow .3s var(--ease-spring);will-change:transform}.tilt:hover{--lift:-5px;box-shadow:0 10px 0 var(--ink);transition-duration:.12s,.3s}.card.lime{background:var(--accent)}.card.dark{background:var(--ink);color:#fff}.card.dark p{color:#c9cad2}.card.soft{background:var(--surface-3);border-color:#0000}.grid{gap:20px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.btn{font:500 1rem/1 var(--font);letter-spacing:-.01em;white-space:nowrap;border-radius:var(--r-sm);border:1px solid var(--ink);background:var(--surface);color:var(--ink);cursor:pointer;transition:transform .25s var(--ease-spring), background .2s, color .2s;justify-content:center;align-items:center;gap:9px;padding:15px 22px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent)}.btn:active{transform:translateY(2px)scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;background:var(--surface);transform:none}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:var(--accent);color:var(--ink)}.btn-primary:disabled{background:var(--ink);color:#fff}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-3)}.btn-sm{border-radius:11px;padding:10px 15px;font-size:.88rem}.btn svg,.badge svg,.saved svg{flex:none;width:18px;height:18px}.badge svg{width:13px;height:13px}.arrow{background:var(--ink);width:38px;height:38px;color:var(--accent);transition:transform .4s var(--ease-spring);border-radius:50%;flex:none;place-items:center;display:inline-grid}.arrow svg{width:18px;height:18px;rotate:-45deg}.pop:hover .arrow,a:hover>.arrow{transform:rotate(45deg)}.card.dark .arrow{color:var(--ink);background:#fff}.field{gap:8px;display:grid}.field-note{align-content:start;gap:8px;min-height:44px;display:grid}legend.label{margin-bottom:8px;padding:0}.field>.label{color:var(--ink);justify-content:space-between;align-items:baseline;gap:8px;font-size:.88rem;font-weight:500;display:flex}.input{width:100%;font:400 1rem var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:14px 15px;transition:border-color .2s,box-shadow .2s}.input::placeholder{color:var(--muted)}.input:hover{border-color:var(--ink)}.input:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--accent);outline:none}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 15px) 55%;background-repeat:no-repeat;background-size:5px 5px;padding-right:40px}textarea.input{resize:vertical;min-height:96px;line-height:1.5}.seg{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.seg label,.chips label{cursor:pointer;position:relative}.seg input,.chips input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.seg span{text-align:center;color:var(--text-2);transition:background .25s var(--ease-out), color .2s;border-radius:10px;place-items:center;gap:3px;padding:10px 4px;font-size:.84rem;font-weight:500;display:grid}.seg span svg{width:18px;height:18px}.seg label:hover span{background:var(--surface-3)}.seg input:checked+span{background:var(--ink);color:#fff}.pick{background:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--ink), 0 2px 0 var(--ink);font:500 .68rem var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:999px;margin-block:-5px;padding:4px 10px;animation:.6s ease-in-out infinite alternate pick}@keyframes pick{to{translate:0 4px}}.seg input:focus-visible+span,.chips input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}@media (width<=350px){#f-connection{grid-template-columns:1fr 1fr;grid-auto-flow:row}}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips span{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);transition:background .2s, border-color .2s, transform .25s var(--ease-spring);border-radius:999px;padding:9px 14px;font-size:.88rem;display:inline-block}.chips label:hover span,.chips a:hover span{border-color:var(--ink);background:var(--accent);transform:translateY(-2px)}.chips input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}.combo{position:relative}.combo-list{z-index:30;background:var(--surface);border:1px solid var(--ink);max-height:300px;box-shadow:var(--hard);animation:pop .18s var(--ease-out);border-radius:18px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto}.combo-list li{cursor:pointer;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.combo-list li small{color:var(--muted);font-size:.78rem}.combo-list li[aria-selected=true]{background:var(--accent)}.combo-list li.add{font-weight:500}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.table-wrap{border:1px solid var(--ink);border-radius:var(--r);background:var(--surface);box-shadow:var(--hard);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);padding:15px 16px;font-weight:400}th:first-child,td:first-child{text-align:left;white-space:normal;padding-left:22px}th:last-child,td:last-child{padding-right:22px}thead th{font:500 .7rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom-color:var(--ink)}tbody tr{animation:rise .5s var(--ease-out) both;animation-delay:calc(var(--i,0) * 35ms);transition:background .15s}tbody tr:hover{background:var(--accent-soft)}tbody tr:last-child :is(td,th){border-bottom:0}td.num{font-family:var(--mono);font-variant-numeric:tabular-nums}td a,th a{font-weight:500;text-decoration:none}td a:hover,th a:hover{text-decoration:underline 2px;text-decoration-color:var(--s1)}tr.few :is(td,th){color:var(--muted)}.rank{background:var(--ink);width:26px;height:26px;font:500 .74rem var(--mono);color:#fff;border-radius:8px;place-items:center;margin-right:12px;display:inline-grid}tr:first-child:not(.few) .rank{background:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--ink)}tr.few .rank{background:var(--surface-3);color:var(--muted)}.bar{vertical-align:middle;background:var(--ink);transform-origin:0;min-width:2px;height:8px;animation:grow .9s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms + .15s);border-radius:0 4px 4px 0;margin-right:10px;display:inline-block}@keyframes grow{0%{scale:0 1}}tr.few .bar{background:var(--line-strong)}.stat-row{background:var(--surface-3);border-radius:var(--r);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px;margin:0;padding:6px;display:grid}.stat{background:var(--surface);border-radius:19px;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:18px 20px 16px;display:flex}.stat dt{color:var(--muted);font-size:.82rem}.stat dd{font:900 clamp(1.9rem, 1.5rem + 1.4vw, 2.7rem)/1 var(--dot);font-variant-numeric:tabular-nums;margin:0}.stat dd small{font:500 .8rem var(--font);color:var(--muted);margin-left:5px}.badge{background:var(--accent);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.76rem;font-weight:500;display:inline-flex}.notice{border-radius:var(--r-sm);color:#5c3d00;background:#fff6d8;border:1px solid #e6c15a;gap:12px;padding:15px 18px;font-size:.95rem;display:flex}.notice.info{border-color:var(--line);background:var(--surface);color:var(--text-2)}.notice svg{width:20px;height:20px;color:var(--warn);flex:none;margin-top:2px}.notice.info svg{color:var(--ink)}.stars-static{color:var(--ink);letter-spacing:1px}.stars-static .off{color:#d4d4cf}.breadcrumbs{color:var(--muted);margin-bottom:20px;font-size:.88rem}.breadcrumbs a{color:var(--text-2);text-decoration:none}.breadcrumbs span[aria-hidden]{opacity:.5;margin:0 8px}.legend{align-items:center;gap:2px;display:flex}.legend i{min-width:20px;height:10px;display:block}.legend i:first-of-type{border-radius:5px 0 0 5px}.legend i:last-of-type{border-radius:0 5px 5px 0}.legend-labels{font:500 .66rem var(--mono);color:var(--muted);gap:2px;margin-top:5px;display:flex}.legend-labels span{text-align:center;flex:1}.faq-list{counter-reset:faq;gap:18px;display:grid}details.faq{counter-increment:faq;background:var(--surface);border:1px solid var(--ink);box-shadow:var(--hard);border-radius:30px;padding:0 clamp(20px,3vw,36px);transition:background .3s}details.faq[open]{background:var(--accent)}details.faq summary{cursor:pointer;align-items:center;gap:20px;padding:24px 0;font-size:clamp(1.05rem,1rem + .4vw,1.3rem);font-weight:500;list-style:none;display:flex}details.faq summary::-webkit-details-marker{display:none}details.faq summary:before{content:counter(faq, decimal-leading-zero);font:900 clamp(1.6rem, 1.3rem + 1.2vw, 2.4rem)/1 var(--dot);flex:none}details.faq summary:after{content:"+";border:1px solid var(--ink);background:var(--surface);width:42px;height:42px;font:400 1.5rem/1 var(--mono);transition:transform .35s var(--ease-spring);border-radius:50%;flex:none;place-items:center;margin-left:auto;display:grid}details.faq[open] summary:after{transform:rotate(45deg)}@supports (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}details.faq::details-content{block-size:0;transition:block-size .45s var(--ease-out), content-visibility .45s allow-discrete;overflow:clip}details.faq[open]::details-content{block-size:auto}}details.faq>div{border-top:1px solid var(--ink);color:var(--ink);max-width:76ch;padding:22px 0 28px}.small{font-size:.84rem}.error{color:var(--danger);margin:0;font-size:.88rem}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.hero h1{font:900 clamp(1.8rem, 1rem + 3vw, 3.4rem)/.98 "Doto Variable", var(--mono);letter-spacing:-.02em;word-spacing:-.28em;text-transform:uppercase;margin:0 0 .3em}.hero h1 span{animation:.7s step-end both boot;animation-delay:calc(var(--i,0) * .11s + 80ms);display:inline-block}@keyframes boot{0%{opacity:0}8%{opacity:1}16%{opacity:.15}26%{opacity:1}38%{opacity:.5}50%,to{opacity:1}}.band{background:var(--surface);border-radius:var(--r);text-align:left;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr);margin-top:26px;display:grid;overflow:hidden}.band>div{border-right:1px solid var(--line);flex-direction:column;justify-content:flex-end;gap:4px;min-height:150px;padding:24px 26px;display:flex}.band>div:last-child{border-right:0;justify-content:space-between;align-items:flex-start;gap:14px}.band strong{font:900 clamp(2.2rem, 1.4rem + 2.4vw, 3.4rem)/1 var(--dot)}.band span{color:var(--text-2);font-size:.92rem}.band p{color:var(--text-2);margin:0;font-size:.95rem}@media (width<=860px){.band{grid-template-columns:repeat(3,1fr)}.band>div{min-height:0;padding:18px 14px}.band>div:nth-child(3){border-right:0}.band>div:last-child{border-top:1px solid var(--line);grid-column:1/-1}}.feature{flex-direction:column;justify-content:space-between;gap:28px;min-height:290px;padding:clamp(26px,3.4vw,44px);display:flex}.feature .top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.feature h3{margin:0;font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);line-height:1.3}.feature h3 span{background:var(--accent);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:7px;padding:0 .28em}.feature.lime h3 span,.feature.dark h3 span{color:var(--ink);background:#fff}.feature p{max-width:34ch;margin:0}.feature .glyph{flex:none;width:104px;height:104px;overflow:visible}.glyph .orbit{transform-origin:50%;transform-box:fill-box;transition:rotate 1.2s var(--ease-out)}.feature:hover .orbit{rotate:180deg}.feature:hover .a-down{animation:nudge .7s var(--ease-out) infinite alternate}.feature:hover .a-up{animation:nudge .7s var(--ease-out) infinite alternate-reverse}@keyframes nudge{0%{translate:0 -4px}to{translate:0 5px}}.glyph .wave{stroke-dasharray:1}.feature:hover .wave{animation:draw 1.4s var(--ease-out) infinite}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.glyph .eq{transform-origin:50% 100%;transform-box:fill-box}.feature:hover .eq{animation:.55s ease-in-out infinite alternate eq;animation-delay:calc(var(--i) * -130ms)}@keyframes eq{to{scale:1 .45}}.glyph .moon{transform-origin:50%;transform-box:fill-box;transition:rotate .8s var(--ease-spring), scale .8s var(--ease-spring)}.feature:hover .moon{rotate:-20deg;scale:1.15}.cta{background:var(--surface-3);border-radius:var(--r-lg);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:24px;padding:clamp(28px,5vw,60px);display:grid;overflow:hidden}.cta h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem)}.cta p{color:var(--text-2);max-width:46ch;margin-bottom:26px}.cta .art{justify-self:end;width:min(100%,340px);overflow:visible}@media (width<=760px){.cta{grid-template-columns:1fr}.cta .art{display:none}}.tester{text-align:left}.tester-hero{min-height:calc(100dvh - var(--header-h));border-block:1px solid var(--ink);display:grid;position:relative;overflow:hidden}.tmap.tmap{position:absolute;inset:0}.tester-hero:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#f3f3f1eb 0,#f3f3f199 34%,#0000 58%);transition:opacity .8s;position:absolute;inset:0}.tester:not(.is-setup) .tester-hero:before{opacity:.4}.tester-grid{z-index:2;pointer-events:none;grid-template-columns:minmax(0,440px) minmax(0,1fr);align-items:center;gap:clamp(16px,3vw,44px);width:min(1200px,100% - 40px);margin-inline:auto;padding-block:clamp(24px,4vw,56px);display:grid;position:relative}.tester-grid>*>*{pointer-events:auto}.tester-col{gap:22px;display:grid}.tester-intro .lede{max-width:40ch;margin:0}.tester-side{background:var(--surface);border:1px solid var(--ink);box-shadow:var(--hard);border-radius:32px;padding:clamp(20px,2.4vw,30px)}.setup,.extras{gap:22px;display:grid}.area-row{grid-template-columns:1fr auto;gap:8px;display:grid}.map-btn{padding-inline:16px}.go-mobile,.m-only,.sheet-scrim{display:none}.extras-head h2{margin:0 0 4px;font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem)}.extras-head p{margin:0}.extras .eyebrow{justify-self:start;margin-bottom:0}.done-actions{justify-items:start;gap:12px;display:grid}.done-actions .review,.done-actions .review-done{border-top:1px solid var(--line);justify-self:stretch;padding-top:14px}.done-links{border-top:1px solid var(--line);flex-wrap:wrap;justify-self:stretch;gap:8px;padding-top:14px;display:flex}.saved{background:var(--accent);border-radius:999px;align-items:center;gap:8px;margin:0 0 6px;padding:6px 12px 6px 9px;font-size:.92rem;font-weight:500;display:inline-flex}.tester-stage{width:min(100%,400px);transition:width .7s var(--ease-out);justify-self:end;justify-items:center;gap:10px;display:grid;position:relative}.tester:is(.is-running,.is-saving,.is-done) .tester-stage{align-self:end;width:min(100%,330px)}.tester-stage .gauge{background:radial-gradient(closest-side,#fffffff0 78%,#fff9 92%,#0000);border-radius:50%}.tester-stage .steps{background:#ffffffd9;border-radius:999px;padding:4px}.stream{opacity:.2;animation:.6s ease-out fade;position:absolute;inset:-6% -4% 12%;mask-image:radial-gradient(closest-side,#0000 52%,#000 62%,#0000 100%)}.tester-stage>:not(.stream){position:relative}.tester-stage.done .g-value{animation:land .7s var(--ease-spring)}.tester-stage.done .g-knob{animation:land .7s var(--ease-spring);transform-origin:50%;transform-box:fill-box}@keyframes land{0%{scale:.8}55%{scale:1.12}}.tier{background:var(--accent);color:var(--ink);box-shadow:0 0 0 1px var(--ink), 0 3px 0 var(--ink);font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;animation:rise .5s var(--ease-out) .25s both;border-radius:999px;margin-top:8px;padding:5px 13px;display:inline-block}.thanks{color:var(--text-2);max-width:34ch;margin:0;font-size:.95rem}.gauge{aspect-ratio:320/300;width:min(100%,430px);position:relative}.gauge svg{width:100%;height:100%;overflow:visible}.g-track,.g-fill{fill:none;stroke-width:15px;stroke-linecap:round}.g-track{stroke:var(--surface-3)}.g-fill{stroke:var(--ink)}.g-knob{fill:var(--accent);stroke:var(--ink);stroke-width:2.5px}.tick line{stroke:var(--line-strong);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}.tick text{fill:var(--muted);font:500 11px var(--mono);transition:fill .3s}.tick.on line{stroke:var(--ink)}.tick.on text{fill:var(--ink)}.gauge-center{text-align:center;place-content:center;justify-items:center;padding-top:4%;display:grid;position:absolute;inset:0}.g-label{font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);min-height:1.2em}.g-value{font:900 clamp(3.4rem, 2rem + 7vw, 6rem)/1 var(--dot);font-variant-numeric:tabular-nums;margin:4px 0 0}.g-unit{color:var(--muted);font-weight:500}.gauge.is-active .g-label:before{content:"";background:var(--ink);width:7px;height:7px;box-shadow:0 0 0 3px var(--accent);vertical-align:middle;border-radius:50%;margin-right:8px;animation:1s ease-in-out infinite blink;display:inline-block}@keyframes blink{50%{opacity:.2}}.gauge-center:has(.go){--go:clamp(124px, 34vw, 160px);padding-top:6.25%}.go{width:var(--go);aspect-ratio:1;cursor:pointer;border:1px dashed var(--line-strong);background:var(--surface-2);color:var(--muted);font:900 clamp(2rem, 6vw, 2.7rem)/1 var(--dot);letter-spacing:.04em;transition:transform .3s var(--ease-spring), box-shadow .3s var(--ease-spring), background .3s, color .3s;border-radius:50%;position:relative}.go.ready{background:var(--accent);color:var(--ink);border:1.5px solid var(--ink);box-shadow:0 7px 0 var(--ink)}.go.ready:hover{box-shadow:0 10px 0 var(--ink);transform:translateY(-3px)}.go.ready:active{box-shadow:0 2px 0 var(--ink);transform:translateY(5px)}.go.ready:before,.go.ready:after{content:"";border:1.5px solid var(--ink);animation:ring 2.6s var(--ease-out) infinite;pointer-events:none;border-radius:50%;position:absolute;inset:-1.5px}.go.ready:after{animation-delay:1.3s}@keyframes ring{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.go-hint{inset:calc(53.33% + var(--go) / 2 + 18px) 0 auto;color:var(--muted);font-size:.84rem;position:absolute}.steps{grid-template-columns:repeat(3,1fr);gap:6px;width:min(100%,330px);display:grid}.step{text-align:center;font:500 .72rem var(--mono);letter-spacing:.04em;text-transform:uppercase;background:var(--surface);color:var(--muted);border:1px solid var(--line-strong);transition:all .35s var(--ease-out);border-radius:999px;padding:8px 4px}.step.active{color:var(--ink);border-color:var(--ink);background:var(--accent)}.step.done{color:#fff;background:var(--ink);border-color:var(--ink)}.results{gap:20px;margin-top:24px;display:grid}.result{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,2.5vw,26px)}.result header{flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:16px;display:flex}.result h3{margin:0}.result header span{font-size:.88rem}.peer{color:var(--text-2);margin:16px 0 0;font-size:.95rem}.review{gap:12px;display:grid}.review h3,.review p{margin:0}.review h3 .muted{margin-left:6px;font-size:.8rem;font-weight:400}.review textarea.input{min-height:68px}.review .chips span{padding:7px 12px;font-size:.84rem}.review-submit{background:var(--accent);width:100%;box-shadow:0 4px 0 var(--ink);padding:17px 22px;font-size:1.05rem;font-weight:600}.review-submit:hover{background:var(--ink);color:#fff}.review-submit:active{box-shadow:none;transform:translateY(4px)}.review-submit:disabled{background:var(--surface-3);box-shadow:none;opacity:.6}.review-note{text-align:center}.alias{align-items:center;gap:14px;margin-bottom:14px;display:flex}.alias p{gap:2px;min-width:0;margin:0;display:grid}.alias strong{font:900 1.5rem/1.1 var(--dot);overflow-wrap:anywhere}.alias.rolling strong{color:var(--muted)}.alias.set strong{animation:land .7s var(--ease-spring);transform-origin:0}.die{background:var(--accent);width:46px;height:46px;box-shadow:0 0 0 1px var(--ink), 0 4px 0 var(--ink);border-radius:11px;flex:none;grid-template-columns:repeat(3,1fr);gap:3px;padding:8px;animation:1.1s cubic-bezier(.2,.7,.3,1) both roll;display:grid}.die i{border-radius:50%}.die i.on{background:var(--ink)}.alias.set .die{animation:roll 1.1s cubic-bezier(.2, .7, .3, 1) both, thud .45s var(--ease-spring)}@keyframes roll{0%{opacity:0;translate:-180px;rotate:-720deg}20%{opacity:1}55%{translate:0 -14px}75%{translate:0}87%{translate:0 -5px}to{translate:0;rotate:0deg}}@keyframes thud{40%{scale:1.18 .86}}.star-input{align-items:center;gap:2px;display:flex}.star-input button{cursor:pointer;transition:transform .25s var(--ease-spring);background:0 0;border:0;border-radius:8px;padding:4px}.star-input button:hover{transform:scale(1.2)rotate(-8deg)}.star-input svg{width:36px;height:36px;fill:var(--surface);stroke:var(--ink);stroke-width:1.2px;stroke-linejoin:round;transition:fill .15s}.star-input .on svg{fill:var(--accent);animation:star .4s var(--ease-spring) both}.star-input button:nth-child(2) svg{animation-delay:40ms}.star-input button:nth-child(3) svg{animation-delay:80ms}.star-input button:nth-child(4) svg{animation-delay:.12s}.star-input button:nth-child(5) svg{animation-delay:.16s}@keyframes star{0%{rotate:-40deg;scale:.4}}.star-word{min-width:6ch;margin-left:14px;font-weight:500}.tm-edge{justify-items:center;gap:6px;display:grid}.tm-edge b{background:var(--ink);border:2px solid var(--accent);border-radius:4px;width:14px;height:14px;rotate:45deg}.tm-edge span,.tm-me span{font:500 .62rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);background:var(--surface);white-space:nowrap;border-radius:999px;padding:5px 9px}.tester.is-setup .tm-edge{visibility:hidden}.tm-me{--pin:var(--accent);width:18px;height:18px;position:relative}.tm-me b{background:var(--pin);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);transition:background .4s, scale .4s var(--ease-spring);border-radius:50%;position:absolute;inset:0}.tm-me i{border:1.5px solid var(--ink);opacity:0;border-radius:50%;position:absolute;inset:0}.tm-me.busy i{animation:sonar var(--beat,2s) var(--ease-out) infinite}.tm-me.busy i:nth-child(2){animation-delay:calc(var(--beat,2s) / -3)}.tm-me.busy i:nth-child(3){animation-delay:calc(var(--beat,2s) / -1.5)}@keyframes sonar{0%{opacity:.7;scale:1}to{opacity:0;scale:7}}.tm-me span{font:900 1.05rem/1 var(--dot);box-shadow:0 3px 0 var(--ink);opacity:0;padding:7px 11px;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50%}.tm-me.landed b{scale:1.5}.tm-me.landed span:not(:empty){opacity:1;animation:land .7s var(--ease-spring) .9s both}@media (width<=820px){.tester-hero{border-top:0;min-height:0;display:block}.tester-hero:before{display:none}.tmap.tmap{border-bottom:1px solid var(--ink);height:46dvh;min-height:300px;position:relative}.tester-grid{grid-template-columns:1fr;margin-top:-56px;padding-top:0}.tester-intro{background:var(--bg);border:1px solid var(--ink);border-radius:24px;padding:18px}.tester-stage,.tester:is(.is-running,.is-saving,.is-done) .tester-stage{justify-self:center;width:min(100%,360px)}.tester-stage{order:-1}.tester.is-setup .tester-hero{min-height:calc(100dvh - var(--header-h));display:grid}.tester.is-setup .tmap.tmap{border-bottom:0;height:auto;min-height:0;position:absolute;inset:0}.tester.is-setup .tester-hero:before{background:linear-gradient(#f3f3f1f0 0,#f3f3f18c 32%,#0000 60%);display:block}.tester.is-setup .tester-grid{grid-template-rows:auto 1fr;margin-top:0;padding-block:22px 28px}.tester.is-setup .tester-intro{background:0 0;border:0;padding:0}.tester.is-setup .tester-stage{order:0;align-self:center}.tester.is-setup .tester-side:not(.open){display:none}.tester-side.open{z-index:31;padding:24px 20px calc(20px + env(safe-area-inset-bottom));animation:sheet .35s var(--ease-out);border-width:1px 0 0;border-radius:28px 28px 0 0;position:fixed;inset:auto 0 0;box-shadow:0 -12px 40px #191a2333}.tester-side.open:has([aria-expanded=true]){top:calc(var(--header-h) + 8px);border-radius:28px}.tester-side.open:focus{outline:none}.sheet-scrim{z-index:30;background:#191a2373;border:0;padding:0;animation:.3s ease-out fade;display:block;position:fixed;inset:0}.go:not(.ready){background:var(--accent);color:var(--ink);border:1.5px solid var(--ink);box-shadow:0 7px 0 var(--ink)}.d-only{display:none}.m-only{display:inline}.go-mobile{padding:18px;font-size:1.1rem;display:inline-flex}.done-actions{justify-items:stretch}.tester.is-done .tmap.tmap{height:22dvh;min-height:150px}.tester.is-done .tester-stage{width:min(100%,210px)}.tester.is-done .steps{display:none}}.map-msg{z-index:2;text-align:center;color:var(--text-2);background:var(--bg);place-content:center;padding:24px;display:grid;position:absolute;inset:0}.maplibregl-map{font-family:var(--font);background:var(--bg)}:is(.tmap,.dmap-canvas) .maplibregl-canvas{opacity:0;transition:opacity .5s ease-out}:is(.tmap,.dmap-canvas).is-ready .maplibregl-canvas{opacity:1}.maplibregl-ctrl-group{border:1px solid var(--ink);overflow:hidden;background:var(--surface)!important;box-shadow:0 3px 0 var(--ink)!important;border-radius:12px!important}.maplibregl-ctrl-group button{width:36px;height:36px}.maplibregl-ctrl-group button+button{border-top:1px solid var(--line)!important}.maplibregl-ctrl-attrib{font-size:10px}.map-tip .maplibregl-popup-content{background:var(--surface);color:var(--ink);border:1px solid var(--ink);box-shadow:0 4px 0 var(--ink);pointer-events:none;border-radius:14px;gap:2px;padding:10px 13px;font-size:.88rem;display:grid}.map-tip .maplibregl-popup-tip{display:none}.map-tip small{color:var(--muted);font-size:.76rem}.map-tip .tip-v{font:900 1.6rem/1.1 var(--dot)}.map-tip .tip-v small{font:500 .76rem var(--font)}.maplibregl-cooperative-gesture-screen{font-family:var(--font);background:#191a2399;font-size:1rem}.pin{background:var(--ink);width:28px;height:36px;clip-path:path("M14 36C14 36 0 22 0 14a14 14 0 0 1 28 0c0 8-14 22-14 22z");cursor:grab;animation:drop .45s var(--ease-spring)}.pin:after{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:8px;left:8px}@keyframes drop{0%{opacity:0;translate:0 -24px}}dialog.picker{border:1px solid var(--ink);background:var(--surface);width:min(780px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);box-shadow:0 8px 0 var(--ink);border-radius:34px;padding:0;overflow:hidden}dialog.picker::backdrop{backdrop-filter:blur(5px);background:#191a238c}dialog.picker[open]{animation:sheet .4s var(--ease-out)}dialog.picker[open]::backdrop{animation:.3s ease-out fade}@keyframes sheet{0%{opacity:0;transform:translateY(28px)scale(.97)}}@keyframes fade{0%{opacity:0}}.picker-inner{grid-template-rows:auto minmax(0,1fr) auto;height:min(690px,100dvh - 32px);display:grid}.picker-inner>header{justify-content:space-between;gap:12px;padding:24px 24px 16px;display:flex}.picker-inner h2{margin:0 0 4px;font-size:1.4rem}.picker-inner header p{margin:0;font-size:.92rem}.picker-map{border-block:1px solid var(--ink);min-height:0;position:relative}.picker-map .locate{z-index:3;box-shadow:0 3px 0 var(--ink);position:absolute;top:12px;left:12px}.picker-inner>footer{padding:16px 24px calc(18px + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:12px;display:flex}.picker-inner>footer>div{min-width:0;font-size:.9rem;display:grid}.picker-inner>footer strong{font-size:1.15rem;font-weight:500}@media (width<=560px){dialog.picker{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;box-shadow:none;border:0;border-radius:0;margin:0}.picker-inner{height:100dvh}}.dmap{height:calc(100dvh - var(--header-h));border-top:1px solid var(--ink);grid-template-columns:350px minmax(0,1fr);display:grid;position:relative}.dmap-canvas{grid-area:1/2;min-height:0;position:relative}.dmap-panel{background:var(--surface);border-right:1px solid var(--ink);text-align:left;grid-area:1/1;align-content:start;gap:22px;padding:22px;display:grid;overflow-y:auto}.dmap-legend{gap:4px;display:grid}.dmap-legend .label-row{justify-content:space-between;margin-bottom:5px;font-size:.86rem;font-weight:500;display:flex}.dmap-legend .label-row .muted{font-weight:400}.dmap-legend p{margin:8px 0 0}.dmap-detail{border-top:1px solid var(--line);animation:rise .4s var(--ease-out);gap:10px;padding-top:20px;display:grid}.dmap-detail h3,.dmap-detail p{margin:0}.dmap-list{counter-reset:n;margin:0;padding:0;list-style:none}.dmap-list li{counter-increment:n;border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;display:flex}.dmap-list li:last-child{border-bottom:0}.dmap-list li:before{content:counter(n, decimal-leading-zero);font:500 .7rem var(--mono);color:var(--muted);flex:none;width:20px}.dmap-list a,.dmap-list button{text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;padding:0;text-decoration:none}.dmap-list a:hover,.dmap-list button:hover{text-decoration:underline 2px;text-decoration-color:var(--s1);text-underline-offset:4px}.dmap-list .num{font-weight:500}.dmap-list small{color:var(--muted);font:400 .72rem var(--font)}.dmap.compact{border:1px solid var(--ink);border-radius:var(--r-lg);height:auto;box-shadow:var(--hard);grid-template-columns:minmax(0,1fr) 330px;overflow:hidden}.dmap.compact .dmap-canvas{grid-column:1;height:540px}.dmap.compact .dmap-panel{border-right:0;border-left:1px solid var(--ink);grid-column:2}@media (width<=860px){.dmap,.dmap.compact{grid-template-columns:1fr;height:auto}.dmap-canvas,.dmap.compact .dmap-canvas{grid-area:1/1;height:62dvh;min-height:360px}.dmap.compact .dmap-canvas{height:380px}.dmap-panel,.dmap.compact .dmap-panel{border:0;border-top:1px solid var(--ink);grid-area:2/1;overflow:visible}.dmap.compact{border-radius:30px}}@view-transition{navigation:auto}::view-transition-old(root){animation:.16s var(--ease-out) both vt-out}::view-transition-new(root){animation:.34s var(--ease-out) both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(10px)}}.site-header{view-transition-name:header}.rise{animation:rise .7s var(--ease-out) both;animation-delay:calc(var(--i,0) * 80ms)}@keyframes rise{0%{opacity:0;translate:0 16px}}@supports (animation-timeline:view()){.reveal{animation:linear both rise view();animation-range:entry entry 45%}.hl{animation:linear both marker view();animation-range:entry 20% entry 90%}}@keyframes marker{0%{background-size:0% 100%}}.nosignal{border:1px solid var(--ink);border-radius:var(--r-lg);height:clamp(200px,34vw,340px);box-shadow:var(--hard);background:var(--surface);max-width:640px;margin:0 auto 36px;position:relative;overflow:hidden}.nosignal dither-art{opacity:.8;position:absolute;inset:0}.nosignal p{place-content:center;margin:0;display:grid;position:absolute;inset:0}.nosignal span{background:var(--accent);border:1px solid var(--ink);border-radius:12px;padding:4px 18px;font-size:clamp(3.4rem,12vw,6rem);line-height:1.05}.spin{transform-origin:50%;transform-box:fill-box;animation:26s linear infinite spin}.bob{animation:5s ease-in-out infinite bob}@keyframes spin{to{rotate:360deg}}@keyframes bob{50%{translate:0 -8px}}@media (prefers-reduced-motion:reduce){*,:before,:after,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.btn,.pop{border:2px solid buttontext}}
