:root{--bg: #0e0e11;--bg-raise: #16161b;--bg-sunk: #09090b;--surface: #1c1c23;--ink: #f3f2f6;--ink-soft: #c8c7d1;--muted: #85848f;--line: rgb(255 255 255 / .09);--line-strong: rgb(255 255 255 / .18);--violet: #8f55f2;--violet-hi: #b597ff;--violet-deep: #2c1c52;--magenta: #cc3d93;--blush: #f5d3ec;--tab: #d9d9de;--tab-ink: #16161b;--plum: #1c1728;--plum-deep: #3a2766;--dot: #6b6480;--term: #0b0b0e;--ok: #5ee29a;--danger: #ff5d6e;--card-shadow: 0 50px 100px -50px rgb(143 85 242 / .4), 0 30px 60px -30px rgb(0 0 0 / .9);--font-display: "League Spartan", "Avenir Next", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1);--gutter: clamp(20px, 6vw, 96px);--radius: 22px;--nav-h: 76px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{min-height:100svh;background:var(--bg);color:var(--ink-soft);font:400 16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:clip}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}ul,ol{padding:0;list-style:none}h1,h2,h3,h4{color:var(--ink);font-family:var(--font-display);font-weight:700;line-height:1.05}::selection{background:var(--violet);color:#fff}:focus-visible{outline:2px solid var(--violet-hi);outline-offset:3px;border-radius:4px}[id]{scroll-margin-top:0}.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}.eyebrow{font:500 12px/1.4 var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.section-title{font-size:clamp(40px,6vw,92px);letter-spacing:.02em;line-height:.98}.tracked{font-family:var(--font-display);font-weight:300;letter-spacing:.38em;text-transform:uppercase}.accent{color:var(--violet-hi)}.btn{display:inline-flex;align-items:center;gap:14px;padding:16px 26px;border-radius:999px;font:600 14px/1 var(--font-body);letter-spacing:.02em;transition:transform .24s var(--ease),background .24s,color .24s,border-color .24s}.btn svg{width:18px;height:18px;transition:transform .24s var(--ease)}.btn:hover svg{transform:translate(2px,-2px)}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--violet-hi)}.btn-violet{background:var(--violet);color:#fff}.btn-violet:hover{background:var(--violet-hi);color:var(--bg)}.btn-ghost{border:1px solid var(--line-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink)}@media(prefers-reduced-motion:no-preference){.btn:hover{transform:translateY(-2px)}}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--violet) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--bg-sunk) 82%,transparent);backdrop-filter:blur(8px);color:var(--ink);font:600 11px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:background .2s,border-color .2s}.pill svg{width:13px;height:13px}.pill:hover{background:var(--violet);border-color:var(--violet)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 11px;border:1px solid var(--line-strong);border-radius:999px;font:500 12px/1.2 var(--font-mono);color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--violet) 88%,transparent);backdrop-filter:blur(8px);color:#fff;font:600 10px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.badge svg{width:12px;height:12px;fill:currentColor;stroke:none}.link-arrow{display:inline-flex;align-items:center;gap:28px;padding-bottom:10px;border-bottom:1px solid currentColor;color:var(--ink);font-weight:500}.link-arrow svg{width:20px;height:20px;transition:transform .24s var(--ease)}.link-arrow:hover svg{transform:translate(3px,-3px)}.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.reading-progress{position:fixed;inset:0 0 auto;z-index:101;height:2px;background:linear-gradient(90deg,var(--violet),var(--magenta));transform:scaleX(var(--reading, 0));transform-origin:left;pointer-events:none}html:not(.scenes) .reading-progress{display:none}html.scenes [data-reveal]{transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d, 0ms)}html.scenes [data-reveal].is-waiting{opacity:0;transform:translateY(36px)}html.scenes [data-reveal]:focus-within{opacity:1;transform:none}.sketch{filter:url(#sketch)}@view-transition{navigation:auto}.grain{view-transition-name:grain}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:page-out .18s ease-in both}::view-transition-new(root){animation:page-in .52s var(--ease) .15s both}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@keyframes page-out{to{opacity:0;transform:translateY(-12px)}}@keyframes page-in{0%{opacity:0;transform:translateY(24px)}}
