@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+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: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+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: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+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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-normal.BNOj0Qhp.woff2) format("woff2"),url(/_astro/space-mono-vietnamese-400-normal.B0PMp_xB.woff) format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-normal.DTLbW2xa.woff2) format("woff2"),url(/_astro/space-mono-latin-ext-400-normal.D4cJI_B-.woff) format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-normal.Rg4St2Dn.woff2) format("woff2"),url(/_astro/space-mono-latin-400-normal._3DlpgIW.woff) format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-vietnamese-700-normal.DWQgDHuA.woff2) format("woff2"),url(/_astro/space-mono-vietnamese-700-normal.D-KrLuLr.woff) format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-ext-700-normal.B2s3bDs2.woff2) format("woff2"),url(/_astro/space-mono-latin-ext-700-normal.B_E7P90g.woff) format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-700-normal.mWgeinG7.woff2) format("woff2"),url(/_astro/space-mono-latin-700-normal.D7A851RN.woff) format("woff");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{--blue: #0a84ff;--blue-deep: #0b6ad1;--blue-ink: #0b57b4;--blue-tint: rgba(10, 132, 255, .12);--blue-brd: rgba(10, 132, 255, .3);--text-1: #1d1d1f;--text-2: rgba(60, 60, 67, .75);--text-3: rgba(60, 60, 67, .58);--text-4: rgba(60, 60, 67, .26);--ghost-bright: rgba(60, 60, 67, .6);--grn: #34c759;--grn-deep: #157a35;--red: #ff3b30;--orange: #ff9500;--sep: rgba(20, 35, 70, .1);--sep-2: rgba(20, 35, 70, .17);--navy: #0a1122;--navy-light: #15233f;--sheet-ink: rgba(255, 255, 255, .94);--sheet-ink-2: rgba(255, 255, 255, .64);--sheet-ink-3: rgba(255, 255, 255, .5);--sheet-line: rgba(255, 255, 255, .1);--sheet-line-2: rgba(255, 255, 255, .17);--sheet-blue: #6fb2ff;--sheet-green: #5fd98a;--glass: rgba(255, 255, 255, .68);--card-solid: #ffffff;--glass-hi: inset 0 1.5px .5px -.5px rgba(255, 255, 255, .98), inset 0 -1.5px 1.5px -1px rgba(255, 255, 255, .62), inset 1.5px 0 1.5px -1.5px rgba(255, 255, 255, .55), inset -1.5px 0 1.5px -1.5px rgba(255, 255, 255, .55), inset 0 0 0 1px rgba(255, 255, 255, .3), inset 0 0 24px -16px rgba(120, 170, 255, .85);--e1: 0 1px 3px rgba(18, 30, 75, .08);--e2: 0 10px 28px rgba(18, 30, 75, .1);--e3: 0 22px 58px rgba(18, 30, 75, .16);--win: 0 44px 100px rgba(18, 30, 75, .22);--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--font-display: "Space Grotesk Variable", system-ui, sans-serif;--font-mono-face: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--bg: #eef1f7;--surface: rgba(255, 255, 255, .45);--card: rgba(255, 255, 255, .78);--line: var(--sep);--line-strong: var(--sep-2);--line-soft: rgba(20, 35, 70, .06);--ink: var(--text-1);--ink-hover: #000;--muted: var(--text-2);--faint: var(--text-3);--ghost: rgba(60, 60, 67, .32);--amber: var(--blue);--green: var(--grn-deep);--on-ink: #ffffff;--font-body: var(--font-ui);--font-mono: var(--font-mono-face);--container: 1120px;--container-narrow: 880px;--gutter: clamp(20px, 4vw, 32px);--ease: var(--ease-out);--paper: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='c' filterUnits='userSpaceOnUse' x='0' y='0' width='180' height='180'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.015' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cfilter id='f' filterUnits='userSpaceOnUse' x='0' y='0' width='180' height='180'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.03 0.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cfilter id='g' filterUnits='userSpaceOnUse' x='0' y='0' width='180' height='180'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpattern id='h' width='6' height='6' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='1.5' cy='1.5' r='0.75'/%3E%3Ccircle cx='4.5' cy='4.5' r='0.75'/%3E%3C/pattern%3E%3Crect width='180' height='180' filter='url(%23c)' opacity='0.5'/%3E%3Crect width='180' height='180' filter='url(%23f)' opacity='0.28'/%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='0.6'/%3E%3Crect width='180' height='180' fill='url(%23h)' opacity='0.18'/%3E%3C/svg%3E");color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:60px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip;counter-reset:sec;position:relative;display:flex;flex-direction:column;min-height:100dvh}body>footer{margin-top:auto}body:before{content:"";position:fixed;inset:-12%;pointer-events:none;z-index:0;background:radial-gradient(58% 44% at 16% 6%,rgba(10,132,255,.11),transparent 70%),radial-gradient(52% 40% at 88% 22%,rgba(120,180,255,.16),transparent 72%),radial-gradient(74% 52% at 52% 104%,rgba(11,87,180,.09),transparent 70%);transform:translate3d(calc(var(--mx, 0) * -12px),calc(var(--my, 0) * -9px),0);transition:transform .7s var(--ease-out)}body:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background-image:var(--paper);background-size:180px 180px;opacity:.7}body>*{position:relative;z-index:1}img{max-width:100%;height:auto;display:block}a{color:var(--muted);text-decoration:none;transition:color .12s ease-out}a:hover{color:var(--blue-deep)}button{font:inherit;color:inherit;cursor:pointer}::selection{background:#0a84ff3d}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;box-shadow:0 0 0 7px #ffffffd9}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--blue);color:#fff;font-family:var(--font-mono);font-size:12.5px;text-decoration:none;transform:translateY(-160%);transition:transform .18s var(--ease)}.skip-link:focus-visible{transform:none}@keyframes blink{0%,48%{opacity:1}52%,to{opacity:0}}@keyframes popIn{0%{transform:scale(.55);opacity:0}to{transform:scale(1);opacity:1}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes ringPulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}@keyframes fogDrift{0%{transform:translate3d(-16px,0,0) scale(1)}to{transform:translate3d(18px,0,0) scale(1.08)}}@keyframes chevPulse{0%,to{transform:translate(0);opacity:.75}50%{transform:translate(5px);opacity:1}}@keyframes chevGlow{0%,to{opacity:.75}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.mono-label:not(.wire-label):before{animation:none}body:before{transition:none}[class*=fog]{animation:none!important}}.anim-sleep,.anim-sleep *,.anim-sleep *:before,.anim-sleep *:after{animation-play-state:paused!important}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.container--narrow{max-width:var(--container-narrow)}.section{counter-increment:sec}.section--raised{background:linear-gradient(180deg,transparent 0,var(--surface) 110px,var(--surface) calc(100% - 110px),transparent 100%)}.section>.container{padding-block:clamp(64px,9vw,96px) clamp(56px,8vw,88px)}.section--dark{position:relative;isolation:isolate;background:var(--navy);border-bottom:none;--sep: var(--sheet-line);--sep-2: var(--sheet-line-2);--line: var(--sheet-line);--line-strong: var(--sheet-line-2);--line-soft: rgba(255, 255, 255, .06);--text-1: var(--sheet-ink);--text-2: var(--sheet-ink-2);--text-3: var(--sheet-ink-3);--text-4: rgba(255, 255, 255, .26);--ink: var(--sheet-ink);--ink-hover: #fff;--muted: var(--sheet-ink-2);--faint: var(--sheet-ink-3);--ghost: rgba(255, 255, 255, .3);--ghost-bright: rgba(255, 255, 255, .56);--card: rgba(255, 255, 255, .055);--card-solid: #17253f;--surface: rgba(255, 255, 255, .035);--glass: rgba(255, 255, 255, .05);--glass-hi: inset 0 1.5px .5px -.5px rgba(255, 255, 255, .55), inset 0 -1.5px 1.5px -1px rgba(255, 255, 255, .22), inset 1.5px 0 1.5px -1.5px rgba(255, 255, 255, .24), inset -1.5px 0 1.5px -1.5px rgba(255, 255, 255, .24), inset 0 0 0 1px rgba(255, 255, 255, .13), inset 0 0 20px -14px rgba(180, 214, 255, .7);--e1: 0 1px 3px rgba(0, 0, 0, .3);--e2: 0 12px 30px rgba(0, 0, 0, .36);--e3: 0 22px 58px rgba(0, 0, 0, .45);--blue-deep: var(--sheet-blue);--blue-ink: #9fd0ff;--amber: var(--sheet-blue);--grn-deep: var(--sheet-green);--green: var(--sheet-green);color:var(--ink)}.section--dark:before,.section--dark:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}.section--dark:before{background-image:var(--paper);background-size:180px 180px;opacity:.3}.section--dark:after{background:radial-gradient(900px 480px at 14% 6%,rgba(111,178,255,.15),transparent 68%),radial-gradient(1200px 700px at 88% 88%,rgba(58,108,200,.2),transparent 72%);mask-image:linear-gradient(#0000,#000 22% 78%,#0000);-webkit-mask-image:linear-gradient(#0000,#000 22%,#000 78%,#0000)}.section--dark .btn--dark{background:linear-gradient(180deg,#2f9bff,#0b6ad1);box-shadow:inset 0 1px #ffffff4d,0 10px 30px #0a84ff57}.section--dark .btn--light{color:var(--sheet-ink)}.section--dark .btn--light:hover{color:#fff}.section--dark .kbd{box-shadow:none}.section--dark ::selection{background:#6fb2ff4d}.section:has(+.seam){border-bottom:none}.section--raised:has(+.seam){background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.mono-label{display:flex;align-items:baseline;gap:12px;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.mono-label:not(.wire-label):not(.mono-label--sub):before{content:"›› " counter(sec,decimal-leading-zero);font-family:var(--font-display);font-weight:700;letter-spacing:.08em;color:var(--blue-deep);animation:chevGlow 4s ease-in-out infinite;will-change:opacity}.mono-label:after{content:"";flex:1;height:1px;background:var(--sep-2);align-self:center}.statement{margin:26px 0 0;font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1.32;text-wrap:balance;font-size:clamp(24px,3.2vw,34px)}.card{position:relative;background:var(--card);backdrop-filter:blur(30px) saturate(200%);-webkit-backdrop-filter:blur(30px) saturate(200%);border:1px solid var(--sep);border-radius:var(--r-xl);box-shadow:var(--glass-hi),var(--e2)}.kbd{display:inline-grid;place-items:center;height:1.7em;padding:0 .62em;border-radius:6px;background:var(--card-solid);border:1px solid var(--line-strong);border-bottom-width:2px;box-shadow:var(--e1);font-family:var(--font-mono);font-size:.78em;line-height:1;color:var(--ink);vertical-align:-.28em;white-space:nowrap;transition:border-color .18s var(--ease-spring),box-shadow .18s var(--ease-spring),transform .18s var(--ease-spring)}.kbd.is-hot{border-color:var(--blue);box-shadow:0 0 0 5px #0a84ff40;transform:translateY(2px) scale(.94)}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:12px;font-family:var(--font-mono);font-size:13.5px;transition:filter .15s,transform .2s var(--ease-out),border-color .15s,background-color .15s}.btn svg{flex-shrink:0}.btn--dark{background:linear-gradient(180deg,#2f9bff,var(--blue-deep));color:#fff;font-weight:500;letter-spacing:.02em;box-shadow:inset 0 1px #ffffff40,0 10px 26px #0a84ff5c}.btn--dark:hover{color:#fff;filter:brightness(1.07);transform:translateY(-2px)}.btn--light{color:var(--ink);--glass-fill: rgba(255, 255, 255, .6)}.btn--light:hover{color:var(--ink)}.glass{--glass-blur: 16px;background:var(--glass-fill, rgba(255, 255, 255, .55));border:none;backdrop-filter:blur(var(--glass-blur)) saturate(185%);backdrop-filter:blur(var(--glass-blur)) url(#pt-lens) saturate(185%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(185%);box-shadow:var(--glass-hi),var(--e2);transition:background-color .18s var(--ease)}.hero .glass{backdrop-filter:blur(var(--glass-blur)) saturate(185%)}.glass:hover{background:var(--glass-fill-hi, rgba(255, 255, 255, .72))}.section--dark .glass{--glass-fill: rgba(255, 255, 255, .08);--glass-fill-hi: rgba(255, 255, 255, .14)}.appicon{position:relative;border-radius:23%;box-shadow:inset 0 0 0 .5px #0a1a3c1c,0 1px 2px #0c1e462e,0 7px 16px -5px #0c1e4652}@supports (corner-shape: squircle){.appicon{corner-shape:squircle;border-radius:30%}}.appicon>svg{filter:drop-shadow(0 .5px .75px rgba(6,18,45,.16))}.btn:active{transform:scale(.96)}.ghost-caret{display:inline-block;width:2px;height:1.05em;background:var(--blue);box-shadow:0 0 8px #0a84ff73;vertical-align:-.18em;margin:0 1px;animation:blink 1.1s steps(1) infinite}@media(prefers-reduced-motion:reduce){.ghost-caret{animation:none}}.mini-win{border-radius:var(--r-lg);background:#ffffffdb;backdrop-filter:blur(30px) saturate(190%);-webkit-backdrop-filter:blur(30px) saturate(190%);border:1px solid rgba(255,255,255,.75);box-shadow:var(--glass-hi),var(--e2);overflow:hidden;contain:layout paint}.mini-win__bar{display:flex;align-items:center;height:34px;padding:0 12px;background:linear-gradient(180deg,#ffffffd9,#fff9);border-bottom:1px solid var(--line);position:relative}.mini-win__lights{display:inline-flex;gap:6px}.mini-win__lights i{width:10px;height:10px;border-radius:50%}.mini-win__lights i:nth-child(1){background:#ff5f57}.mini-win__lights i:nth-child(2){background:#febc2e}.mini-win__lights i:nth-child(3){background:#28c840}.mini-win__title{position:absolute;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:-.01em}.chev{font-family:var(--font-display);font-weight:700;color:var(--blue-deep)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
