:root{--void: #02030a;--panel: #0b0e15;--line: rgba(199,205,214,.12);--text: #e8ecf4;--dim: #8a93a6;--faint: #4a5366;--accent: #00f0ff;--warm: #ff1e56;--font-display: "Geist Variable", system-ui, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, monospace;--ease-expo: cubic-bezier(.19, 1, .22, 1);--ease-quint: cubic-bezier(.23, 1, .32, 1);--ease-quart: cubic-bezier(.165, .84, .44, 1);--ease: var(--ease-expo);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--gutter: clamp(1.25rem, 6vw, 8rem)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;color-scheme:dark;scrollbar-width:thin;scrollbar-color:rgba(138,147,166,.45) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#8a93a659;border:2px solid transparent;border-radius:8px;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#e8ecf480;background-clip:padding-box}body{background:var(--void);color:var(--text);font-family:var(--font-display);font-weight:400;line-height:1.5;overflow-x:hidden;-webkit-font-smoothing:antialiased}@media (hover: hover) and (pointer: fine){body,a,button{cursor:none}}::selection{background:var(--accent);color:var(--void)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.global-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;opacity:0;transition:opacity .6s ease-in-out}.global-canvas.is-warm{opacity:1}@media (prefers-reduced-motion: reduce){.global-canvas{transition:none}}.global-canvas canvas{display:block}.dom-layer{position:relative;min-height:100vh;min-height:100dvh;z-index:10;pointer-events:none}.dom-layer>*{pointer-events:auto}.display{font-family:var(--font-display);font-weight:300;line-height:1;letter-spacing:-.035em}.page-layout{display:contents}.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;padding:16vh var(--gutter) 12vh;-webkit-overflow-scrolling:touch}.page-inner{max-width:1320px;margin:0 auto}.page-inner.left{margin-left:0}.page-title{font-size:clamp(2.125rem,4.6vw,4rem);max-width:16ch}.btn,.btn-download{display:inline-flex;align-items:baseline;justify-content:center;gap:.55em;padding:.75em 1.4em;border:1px solid transparent;border-radius:999px;background:var(--text);color:var(--void);font-family:var(--font-display);font-size:.9375rem;font-weight:500;letter-spacing:-.005em;line-height:1;white-space:nowrap;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background-color .4s var(--ease)}.btn:hover,.btn-download:not(:disabled):hover{background:#fff;transform:translateY(-1px);box-shadow:0 10px 36px -12px #00f0ff73}.btn:active,.btn-download:not(:disabled):active{transform:none;box-shadow:none}.btn-download small{font-size:.8em;font-weight:400;opacity:.6}.btn-download:disabled{background:transparent;border-color:var(--line);color:var(--dim)}.btn-download--sm{padding:.55em 1.1em;font-size:.8125rem}.btn-download--lg{padding:.9em 1.75em;font-size:1.0625rem}.download-line{display:block;margin-top:.7rem;color:var(--dim);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.02em}.download-notice{position:fixed;right:24px;bottom:24px;z-index:80;max-width:360px;padding:16px 18px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font-size:.875rem;line-height:1.5;pointer-events:auto;box-shadow:0 12px 40px #00000073}.download-notice ol{margin:8px 0 12px;padding-left:1.2em;color:var(--dim)}.download-notice li+li{margin-top:4px}.download-notice button{padding:.4em 1em;border:1px solid var(--faint);border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:.8125rem}.download-notice button:hover{border-color:var(--dim)}.badge{display:inline-block;margin-left:.35rem;padding:.15em .65em;border:1px solid var(--faint);border-radius:999px;font-family:var(--font-mono);font-size:.66rem;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--dim);white-space:nowrap;vertical-align:2px}.badge--today{border-color:#00f0ff66;color:var(--accent)}.badge--coming{border-style:dashed}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:1rem 2rem;padding:max(1.375rem,var(--safe-top)) max(var(--gutter),var(--safe-right)) 1.375rem max(var(--gutter),var(--safe-left));font-size:.8125rem;pointer-events:none}.nav>*{pointer-events:auto}.nav:before{content:"";position:absolute;top:0;right:0;bottom:-1.25rem;left:0;z-index:-1;background:linear-gradient(to bottom,#02030ac7,#02030a00);pointer-events:none}.wordmark{color:var(--text);font-size:.875rem;font-weight:500;letter-spacing:.02em}.nav-links{display:flex;gap:clamp(1rem,2.4vw,1.625rem);margin-left:auto}.nav-link{position:relative;padding:.35rem 0;color:var(--dim);transition:color .3s var(--ease)}.nav-link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--text);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link:hover:after,.nav-link.active:after{transform:scaleX(1);transform-origin:left}@media (max-width: 50em){.nav{flex-wrap:wrap;gap:.6rem 1rem;padding-bottom:1rem}.nav .btn-download{margin-left:auto}.nav .btn-download small{display:none}.nav-links{order:3;flex:1 0 100%;justify-content:space-between;margin-left:0}}.footer{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:1.25rem 2.5rem;margin-top:clamp(4rem,14vh,9rem);padding:1.75rem 0 max(1.75rem,var(--safe-bottom));border-top:1px solid var(--line);font-size:.8125rem;color:var(--dim)}.footer-about{display:flex;flex-direction:column;gap:.35rem}.footer-brand{color:var(--text);font-weight:500;letter-spacing:.02em}.footer-links{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem}.footer-links a{transition:color .3s var(--ease)}.footer-links a:hover,.footer-links a[aria-current=page]{color:var(--text)}.rail{position:fixed;z-index:40;top:50%;right:max(1.5rem,var(--safe-right));transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-end;gap:14px;pointer-events:none}.rail-item{display:flex;align-items:center;gap:12px;height:8px}.rail-label{font-size:.75rem;color:var(--text);opacity:0;transform:translate(6px);transition:opacity .4s var(--ease),transform .4s var(--ease)}.rail-dot{display:block;width:5px;height:5px;border-radius:50%;background:var(--faint);transition:background-color .4s var(--ease),transform .4s var(--ease)}.rail-item.on .rail-label{opacity:1;transform:none}.rail-item.on .rail-dot{background:var(--text);transform:scale(1.4)}@media (max-width: 50em){.rail{display:none}}.dom-layer .home{pointer-events:none}.home a,.home button,.home .code{pointer-events:auto}.home-foot{padding:0 var(--gutter);pointer-events:auto}.copy{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:0 var(--gutter) 13vh}.copy.right{align-items:flex-end;text-align:right}.copy.top{justify-content:flex-start;padding-top:16vh}.copy h1,.copy h2{margin-bottom:16px;text-wrap:balance}.copy h1{font-size:clamp(44px,6.2vw,92px)}.copy h2{font-size:clamp(34px,4.6vw,64px)}@media (max-height: 1000px){.copy{padding-bottom:8vh}.copy h1{font-size:clamp(44px,min(6.2vw,9.2vh),92px)}.copy h2{font-size:clamp(34px,min(4.6vw,6.4vh),64px)}}.copy p{max-width:440px;color:#98a1b1;font-size:16px;line-height:1.6}.copy p+p{margin-top:12px}.copy p.fine{margin-top:14px;color:var(--dim);font-size:12.5px}.copy a.more{margin-top:14px;color:var(--text);font-size:14px;text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:4px;transition:text-decoration-color .3s var(--ease)}.copy a.more:hover{text-decoration-color:var(--text)}.copy .actions{margin-top:26px}.features,.requirements{display:flex;flex-direction:column;gap:8px;list-style:none}.features{margin-top:18px}.requirements{max-width:520px;margin-top:22px}.features li,.requirements li{color:#98a1b1;font-size:14px;line-height:1.5}.features .badge{margin-left:calc(.35rem - 3.5px)}.code{max-width:640px;margin-top:26px;padding:14px 20px 16px;background:#0d0f14db;border:1px solid #252a33;border-radius:14px;box-shadow:0 30px 80px #00000073}.code-file{margin-bottom:10px;color:#6c7484;font-family:var(--font-mono);font-size:11.5px}.code pre{overflow-x:auto;color:#c9cfd9;font:13px/1.7 var(--font-mono);white-space:pre}.code code{font:inherit}.copy.intro>*{opacity:0;transform:translateY(14px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}.copy.intro.in>*{opacity:1;transform:none}.copy.intro.in>:nth-child(2){transition-delay:.12s}.copy.intro.in>:nth-child(3){transition-delay:.24s}.copy.intro:not(.in) a,.copy.intro:not(.in) button{pointer-events:none}@media (prefers-reduced-motion: reduce){.copy.intro>*{opacity:1;transform:none;transition:none}.copy.intro:not(.in) a,.copy.intro:not(.in) button{pointer-events:auto}}.tag,.callout{position:fixed;top:0;left:0;z-index:4;opacity:0;visibility:hidden;pointer-events:none;will-change:transform,opacity}.tag{translate:-50% 0;text-align:center;white-space:nowrap}.tag b{display:block;margin-bottom:3px;color:var(--text);font-size:14px;font-weight:500}.tag small{color:var(--dim);font-size:12.5px}.tag.slow small{color:#d9a07e}.callout{width:0;height:0}.callout-dot{position:absolute;top:-3.5px;left:-3.5px;width:7px;height:7px;border-radius:50%;background:#c8ecff;box-shadow:0 0 0 3px #7fd6ff29,0 0 14px #38c8ffcc}.callout-line{position:absolute;top:0;left:0;height:1px;background:linear-gradient(90deg,#9fd8ffd9,#9fd8ff33);transform-origin:0 0}.callout-words{position:absolute;color:var(--dim);font-size:12.5px;white-space:nowrap;transform:translateY(-50%)}.callout-words b{display:block;margin-bottom:2px;color:var(--text);font-size:13.5px;font-weight:500}.callout.left .callout-words{text-align:right;transform:translate(-100%,-50%)}.plain-page{max-width:1120px;margin:0 auto;padding:clamp(7rem,16vh,9rem) var(--gutter) 0}.plain-chapter{scroll-margin-top:7rem}.plain-chapter+.plain-chapter{margin-top:clamp(4.5rem,13vh,8rem)}.plain-words h1,.plain-words h2{margin-bottom:16px;text-wrap:balance}.plain-words h1{font-size:clamp(2.5rem,9.5vw,5.75rem)}.plain-words h2{font-size:clamp(2rem,7vw,4rem)}.plain-words p{max-width:540px;color:#98a1b1;font-size:16px;line-height:1.6}.plain-words p+p{margin-top:12px}.plain-words p.fine{margin-top:14px;color:var(--dim);font-size:12.5px}.plain-words a.more{display:inline-block;margin-top:14px;color:var(--text);font-size:14px;text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:4px;transition:text-decoration-color .3s var(--ease)}.plain-words a.more:hover{text-decoration-color:var(--text)}.plain-words .actions{margin-top:26px}.plain-list{display:flex;flex-direction:column;gap:8px;margin-top:18px;list-style:none}.plain-list li{color:#98a1b1;font-size:14px;line-height:1.5}.plain-list b{color:var(--text);font-weight:500}.plain-phone{margin-top:22px}.plain-phone .btn{margin-top:16px;padding:.9em 1.75em;font-size:1.0625rem}.plain-poster{display:block;width:100%;height:auto;aspect-ratio:16 / 10;margin-top:clamp(1.75rem,5vh,3rem);background:var(--panel);border:1px solid var(--line);border-radius:14px}.doc-lede{max-width:44rem;margin-top:1.5rem;color:#98a1b1;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.6}.doc-lede+.doc-lede{margin-top:1rem}.doc-empty{max-width:44rem;margin-top:clamp(2.5rem,7vh,4rem);color:var(--dim);font-size:1.0625rem}.doc-section{margin-top:clamp(2.75rem,8vh,5rem)}.doc-section h2{margin-bottom:1rem;font-size:clamp(1.5rem,2.4vw,2rem);text-wrap:balance}.doc-section p,.doc-facts dd,.doc-list li{max-width:44rem;color:#98a1b1;font-size:1rem;line-height:1.65}.doc-section p+p{margin-top:.85rem}.doc-section .doc-note{margin-top:1rem;color:var(--dim);font-size:.8125rem}.doc-lede a,.doc-section a{color:var(--text);text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:4px;transition:text-decoration-color .3s var(--ease)}.doc-lede a:hover,.doc-section a:hover{text-decoration-color:var(--text)}.doc-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.9rem 2.5rem;max-width:56rem}.doc-facts dt{color:var(--dim);font-size:.875rem;line-height:1.65}.doc-list,.doc-links{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;list-style:none}.doc-list li{position:relative;padding-left:1.25rem}.doc-list li:before{content:"";position:absolute;top:.75em;left:0;width:5px;height:5px;border-radius:50%;background:var(--faint)}.table-wrap{margin-top:1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--panel);border:1px solid var(--line);border-radius:14px}.doc-table{width:100%;min-width:46rem;border-collapse:collapse;font-size:.875rem}.doc-table th,.doc-table td{padding:.85rem 1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline}.doc-table thead th{color:var(--dim);font-size:.75rem;font-weight:400;line-height:1.35;vertical-align:bottom}.doc-table tbody th,.doc-table td{color:var(--text);font-weight:400}.doc-table tbody tr:last-child th,.doc-table tbody tr:last-child td{border-bottom:0}.doc-table .num{text-align:right;font-variant-numeric:tabular-nums}.doc-table td.num,.doc-table tbody th.num{font-family:var(--font-mono);white-space:nowrap}.doc-table td.lead{font-weight:500}.releases{margin-top:clamp(2.5rem,7vh,4rem);border-bottom:1px solid var(--line);list-style:none}.release{display:grid;grid-template-columns:minmax(9rem,15rem) minmax(0,1fr);gap:1rem 2.5rem;padding:2rem 0;border-top:1px solid var(--line)}.release h2{font-size:clamp(1.375rem,2.2vw,1.75rem)}.release time{display:block;margin-top:.5rem;color:var(--dim);font-family:var(--font-mono);font-size:.8125rem}.release .doc-list{margin-top:0}@media (max-width: 40em){.doc-facts{grid-template-columns:minmax(0,1fr);gap:.25rem}.doc-facts dd{margin-bottom:.9rem}.release{grid-template-columns:minmax(0,1fr)}}.cursor{position:fixed;top:0;left:0;z-index:90;pointer-events:none;mix-blend-mode:difference;will-change:transform}.cursor .dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);will-change:transform}.cursor .ring{position:absolute;width:38px;height:38px;border:1.5px solid rgba(255,255,255,.85);border-radius:50%;transform:translate(-50%,-50%);will-change:transform;transition:width .3s var(--ease),height .3s var(--ease),opacity .3s var(--ease)}@media (hover: none),(pointer: coarse){.cursor{display:none}}body.plain,body.plain a,body.plain button{cursor:auto}body.plain a,body.plain button:not(:disabled){cursor:pointer}body.poster .dom-layer,body.poster .nav,body.poster .cursor{display:none}.errbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--void);display:grid;place-content:center;padding:var(--gutter);cursor:auto}.errbox-in{max-width:40ch;display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start}.errbox-in h1{font-size:clamp(2rem,6vw,3.4rem)}.errbox-in p{color:var(--dim)}.errbox .btn{cursor:pointer}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
