@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,figure,blockquote,ul,ol{margin:0}ul[role=list],ol[role=list]{padding:0;list-style:none}img,svg{max-width:100%;display:block}button,input{font:inherit;color:inherit}}@layer tokens{:root{--rv-void:#140c22;--rv-panel:#22163a;--rv-hairline:#4a3770;--rv-ink:#fff5fa;--rv-ink-muted:#c7b6e2;--rv-pink:#ff3d9a;--rv-tangerine:#ff8f2e;--rv-lime:#c8ff3c;--rv-cyan:#33e3e8;--rv-violet:#a77bff;--font-display:"Unbounded", "Arial Black", system-ui, sans-serif;--font-body:"Atkinson Hyperlegible", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--type-display-xl-family:var(--font-display);--type-display-xl-size:72px;--type-display-xl-line:.95;--type-display-xl-weight:900;--type-display-xl-tracking:-.02em;--type-display-family:var(--font-display);--type-display-size:44px;--type-display-line:1;--type-display-weight:900;--type-display-tracking:-.01em;--type-title-family:var(--font-display);--type-title-size:24px;--type-title-line:30px;--type-title-weight:700;--type-body-family:var(--font-body);--type-body-size:17px;--type-body-line:26px;--type-body-weight:400;--type-body-strong-family:var(--font-body);--type-body-strong-size:17px;--type-body-strong-line:26px;--type-body-strong-weight:700;--type-caption-family:var(--font-body);--type-caption-size:14px;--type-caption-line:20px;--type-caption-weight:400;--type-hud-family:var(--font-mono);--type-hud-size:12px;--type-hud-line:16px;--type-hud-weight:700;--type-hud-tracking:.14em;--type-h2-family:var(--font-display);--type-h2-size:28px;--type-h2-line:36px;--type-h2-weight:700;--type-h3-family:var(--font-body);--type-h3-size:20px;--type-h3-line:28px;--type-h3-weight:700;--type-lede-family:var(--font-body);--type-lede-size:21px;--type-lede-line:32px;--type-lede-weight:400;--type-code-family:var(--font-mono);--type-code-size:15px;--type-code-line:22px;--type-code-weight:500;--space-8:8px;--space-16:16px;--space-24:24px;--space-40:40px;--radius-sm:4px;--radius-md:12px;--radius-pill:999px;--color-bg:#f6f4fa;--color-panel:#fff;--color-panel-sunk:#ebe5f5;--color-hairline:#e3ddee;--color-ink:var(--rv-void);--color-ink-muted:#5a4d73;--color-link:#00707a;--color-focus:#6438d0;--color-pop:var(--rv-void);--color-pop-on-pink:var(--rv-void);--color-hud:#3f6e00;--color-accent-billing:#3f6e00;--color-accent-web:#00707a;--color-accent-fin:#6438d0;--color-success:#3f6e00;--color-warning:#a34a00;--color-code-bg:#f1edf8;--color-table-row-alt:#f6f4fa;color-scheme:light}:root[data-theme=dark],.theme-dark{--color-bg:var(--rv-void);--color-panel:var(--rv-panel);--color-panel-sunk:#2b1d47;--color-hairline:var(--rv-hairline);--color-ink:var(--rv-ink);--color-ink-muted:var(--rv-ink-muted);--color-link:var(--rv-cyan);--color-focus:var(--rv-lime);--color-pop:var(--rv-pink);--color-pop-on-pink:var(--rv-lime);--color-hud:var(--rv-lime);--color-accent-billing:var(--rv-lime);--color-accent-web:var(--rv-cyan);--color-accent-fin:var(--rv-violet);--color-success:var(--rv-lime);--color-warning:var(--rv-tangerine);--color-code-bg:#0d0718;--color-table-row-alt:#1b1230;color-scheme:dark}}@layer base{html{background:var(--color-bg)}body{background:var(--color-bg);min-height:100vh;color:var(--color-ink);font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-line);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:var(--color-link);text-underline-offset:3px}a:hover{color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}::selection{background:var(--rv-pink);color:var(--rv-void)}}@layer components{.hud{font-family:var(--font-mono);font-size:var(--type-hud-size);line-height:var(--type-hud-line);font-weight:var(--type-hud-weight);letter-spacing:var(--type-hud-tracking);text-transform:uppercase}.title{font-family:var(--font-display);font-weight:var(--type-title-weight);font-size:var(--type-title-size);line-height:var(--type-title-line)}.caption{font-size:var(--type-caption-size);line-height:var(--type-caption-line);color:var(--color-ink-muted)}.muted{color:var(--color-ink-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-8);min-height:48px;padding:0 var(--space-24);border-radius:var(--radius-pill);white-space:nowrap;font-weight:700;text-decoration:none;transition:transform .16s cubic-bezier(.3,1.5,.6,1);display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--rv-pink);color:var(--rv-void);box-shadow:4px 4px 0 0 var(--color-pop-on-pink)}.btn-primary:hover{color:var(--rv-void)}.btn-ghost{color:var(--color-ink);border:2px solid var(--color-ink-muted)}.btn-ghost:hover{color:var(--color-ink)}.btn-sm{min-height:44px;padding:0 20px}.icon-btn{justify-content:center;align-items:center;gap:var(--space-8);min-width:44px;min-height:44px;color:var(--color-ink-muted);border:2px solid var(--color-ink-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:0 12px;display:inline-flex}.icon-btn:hover{color:var(--color-ink);border-color:var(--color-ink)}.chip{padding:4px var(--space-8);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);display:inline-flex}.tile{height:100%;padding:var(--space-24);background:var(--color-panel);border:1px solid var(--color-hairline);border-radius:var(--radius-md);color:var(--color-ink);flex-direction:column;justify-content:space-between;gap:12px;text-decoration:none;transition:transform .16s cubic-bezier(.3,1.5,.6,1),box-shadow .16s,border-color .16s;display:flex;position:relative}a.tile:hover,a.tile:focus-visible{color:var(--color-ink);box-shadow:4px 4px 0 0 var(--color-pop);transform:translateY(-2px)}[data-theme=light] a.tile:hover,[data-theme=light] a.tile:focus-visible{border-color:var(--color-ink)}.tile-stack{flex-direction:column;gap:4px;display:flex}.tile-label{color:var(--color-hud)}.tile-label.neutral{color:var(--color-ink-muted)}.tile-name{font-family:var(--font-display);font-size:clamp(13px,9cqi,17px);font-weight:700;line-height:22px}.astro-code{--astro-code-foreground:var(--color-ink);--astro-code-background:var(--color-code-bg);--astro-code-token-keyword:var(--color-accent-fin);--astro-code-token-string:var(--color-accent-billing);--astro-code-token-string-expression:var(--color-accent-billing);--astro-code-token-function:var(--color-link);--astro-code-token-constant:var(--color-warning);--astro-code-token-parameter:var(--color-ink);--astro-code-token-punctuation:var(--color-ink-muted);--astro-code-token-comment:var(--color-ink-muted);--astro-code-token-link:var(--color-link)}.skip-link{left:var(--space-16);z-index:100;padding:var(--space-8) var(--space-16);background:var(--color-focus);color:var(--color-bg);border-radius:var(--radius-sm);font-weight:700;position:absolute;top:-80px}.skip-link:focus{top:var(--space-16);color:var(--color-bg)}.spectrum{height:8px;display:flex}.spectrum>span{flex:1}}@layer utilities{.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.theme-fading,.theme-fading *,.theme-fading :before,.theme-fading :after{transition:background-color var(--theme-fade) var(--theme-ease), color var(--theme-fade) var(--theme-ease), border-color var(--theme-fade) var(--theme-ease), box-shadow var(--theme-fade) var(--theme-ease), fill var(--theme-fade) var(--theme-ease), stroke var(--theme-fade) var(--theme-ease)!important}}@font-face{font-family:Atkinson Hyperlegible;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-weight:400;font-style:italic;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-400-italic.woff2)format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Unbounded;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/unbounded-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Unbounded;font-weight:900;font-style:normal;font-display:swap;src:url(/fonts/unbounded-latin-900-normal.woff2)format("woff2")}:root[data-theme-to=light]{--theme-fade:.6s;--theme-ease:cubic-bezier(.55, 0, .75, .2)}:root[data-theme-to=dark]{--theme-fade:.25s;--theme-ease:cubic-bezier(.25, .6, .4, 1)}:root[data-theme-to]::view-transition-group(*){animation:none}:root[data-theme-to]::view-transition-old(*){animation:none;display:block}:root[data-theme-to]::view-transition-new(*){animation:theme-fade-in var(--theme-fade,.3s) var(--theme-ease,ease) both;mix-blend-mode:normal}@keyframes theme-fade-in{0%{opacity:0}}:root[data-theme-to]::view-transition-old(site-stripe){display:none}:root[data-theme-to]::view-transition-new(site-stripe){animation:none}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}.spectrum{view-transition-name:site-stripe}.site-header{view-transition-name:site-header}::view-transition-group(site-stripe),::view-transition-group(site-header){animation:none}::view-transition-old(site-stripe),::view-transition-old(site-header){display:none}::view-transition-new(site-stripe),::view-transition-new(site-header){animation:none}::view-transition-old(root){animation:.14s cubic-bezier(.4,0,1,1) both page-out}::view-transition-new(root){animation:.26s cubic-bezier(.3,1.3,.6,1) 60ms both page-in}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0;translate:0 8px}}::view-transition-group(*.case){border-radius:var(--radius-md);animation-duration:.32s;animation-timing-function:cubic-bezier(.3,1.15,.6,1);overflow:hidden}::view-transition-old(*.case),::view-transition-new(*.case){object-fit:none;object-position:left top;height:100%}::view-transition-old(*.case):only-child{animation:.14s cubic-bezier(.4,0,1,1) both page-out}::view-transition-new(*.case):only-child{animation:.26s cubic-bezier(.3,1.3,.6,1) 60ms both page-in}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
