:root{--ink-0:#050510;--ink-1:#0d0b1a;--ink-2:#15122a;--ink-3:#1d1838;--surface-1:#ffffff08;--surface-2:#ffffff0d;--surface-panel:linear-gradient(135deg, #14102e99, #0a081899);--surface-panel-strong:radial-gradient(circle, #14102eb3 0%, #0a0818b3 60%);--surface-overlay:#0d0b1ab8;--blur-overlay:blur(16px) saturate(140%);--fg-1:#f4f2fa;--fg-2:#c9c7da;--fg-3:#a09eb8;--fg-4:#7f7d99;--fg-on-accent:#fff;--violet:#8b5cf6;--violet-deep:#7c3aed;--magenta:#d946ef;--pink:#ec4899;--blue:#3b82f6;--cyan:#22d3ee;--signal:#b69cff;--spectrum:linear-gradient(135deg, #6d28d9 0%, #7c3aed 45%, #a21caf 100%);--spectrum-line:linear-gradient(90deg, #7c3aed, #d946ef);--accent-gradient:linear-gradient(135deg, #8b5cf6 0%, #d946ef 55%, #fb7185 100%);--line-1:#ffffff0f;--line-2:#ffffff1a;--line-3:#ffffff29;--line-accent:#8b5cf63d;--line-control:#6e6a8c;--state-hover:#8b5cf614;--state-pressed:#8b5cf624;--state-selected:#8b5cf629;--state-hover-text:#c4b5fd;--state-disabled-opacity:.55;--focus:#c4b5fd;--focus-ring:2px solid var(--focus);--focus-offset:3px;--elevation-1:0 1px 0 #ffffff0a inset;--elevation-2:0 24px 64px -24px #0009;--elevation-3:0 24px 80px #00000075;--elevation-accent:0 8px 24px #8b5cf652;--radius-control:12px;--radius-surface:20px;--radius-feature:28px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--section-space:clamp(64px, calc(64px + 64 * (100vw - 390px) / 1050), 128px);--section-space-pair:clamp(32px, calc(32px + 32 * (100vw - 390px) / 1050), 64px);--section-space-major:clamp(96px, calc(96px + 64 * (100vw - 390px) / 1050), 160px);--stack-heading:var(--space-4);--stack-intro:clamp(32px, calc(32px + 16 * (100vw - 390px) / 1050), 48px);--grid-gap:clamp(16px, calc(16px + 8 * (100vw - 390px) / 1050), 24px);--container-max:1280px;--container-content:1200px;--container-text:68ch;--gutter:16px;--header-height:56px;--dur-press:.12s;--dur-hover:.2s;--dur-panel:.24s;--dur-state:.32s;--ease:cubic-bezier(.2, .8, .2, 1);--ease-ambient:cubic-bezier(.45, 0, .55, 1);--bg-0:var(--ink-0);--surface-glass:var(--surface-panel);--surface-glass-strong:var(--surface-panel-strong);--border-1:var(--line-1);--border-2:var(--line-2);--border-3:var(--line-3);--violet-2:var(--violet-deep);--text-1:var(--fg-1);--text-2:var(--fg-2);--text-3:var(--fg-3);--text-4:var(--fg-4);--grad-violet:linear-gradient(135deg, #7c3aed 0%, #8b5cf6 50%, #d946ef 100%);--shadow-glass:0 20px 40px #0000004d;--blur-glass:var(--blur-overlay);--radius-sm:8px;--radius-md:var(--radius-control);--radius-lg:var(--radius-surface);--radius-xl:var(--radius-surface);--radius-2xl:var(--radius-feature);--space-section:var(--section-space);--space-section-tight:var(--section-space);--space-section-mobile:var(--section-space);--space-card:clamp(24px, calc(24px + 12 * (100vw - 390px) / 1050), 36px);--space-card-sm:var(--space-5);--space-grid:var(--grid-gap);--duration-fast:var(--dur-hover);--duration-standard:var(--dur-panel);--duration-slow:var(--dur-state);--ease-standard:var(--ease);--ease-out:var(--ease)}@media (width>=600px){:root{--gutter:24px}}@media (width>=1024px){:root{--gutter:40px;--header-height:64px}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2");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 Fallback;src:local(Arial),local(ArialMT);size-adjust:101.59%;ascent-override:96.47%;descent-override:28.55%;line-gap-override:0%}@font-face{font-family:Inter Fallback;src:local(Arial),local(ArialMT);size-adjust:106.68%;ascent-override:90.92%;descent-override:22.5%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local(Courier New),local(CourierNewPSMT);size-adjust:99.98%;ascent-override:102.02%;descent-override:30.01%;line-gap-override:0%}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}html,body{color:var(--fg-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(ellipse 1200px 800px at 50% -200px, #8b5cf62e, transparent 60%), radial-gradient(ellipse 800px 600px at 90% 240px, #d946ef14, transparent 60%), var(--ink-0);background-repeat:no-repeat;overflow-x:clip}html{scroll-padding-top:calc(var(--header-height) + var(--space-4))}html.has-open-menu{padding-inline-end:var(--scrollbar-compensation,0px);overflow:hidden}.skip-link{top:max(12px, env(safe-area-inset-top));left:max(12px, env(safe-area-inset-left));z-index:1000;background:var(--text-1);color:var(--bg-0);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);border-radius:999px;padding:12px 16px;font-weight:600;position:fixed;transform:translateY(-12px)}.skip-link:focus-visible{opacity:1;pointer-events:auto;transform:translateY(0)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:var(--tracking-h2);font-weight:600;line-height:var(--leading-h2);color:var(--text-1)}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.container{width:100%;max-width:var(--container-max);margin:0 auto}.section{padding-top:var(--section-space);position:relative}.section--pair{padding-top:var(--section-space-pair)}.section--major{padding-top:var(--section-space-major)}.section-intro{margin-bottom:var(--stack-intro)}.container--text{max-width:var(--container-text)}.stack{gap:var(--stack-gap,var(--space-4));flex-direction:column;display:flex}.stack--tight{--stack-gap:var(--space-2)}.stack--loose{--stack-gap:var(--space-6)}.section-desc{margin-bottom:var(--stack-intro);justify-content:space-between;align-items:flex-end;gap:var(--space-5) var(--space-6);flex-wrap:wrap;display:flex}.section-header{gap:var(--stack-heading);flex-direction:column;display:flex}.content-state{min-height:120px;color:var(--text-3);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex}.content-state--compact{justify-content:flex-start;min-height:96px;padding:0}.content-state p{color:var(--text-3)}.menu-item{font-size:var(--text-body);color:#fff;padding:8px 14px;font-weight:500}.bubble{content:"";background:var(--violet);width:6px;height:6px;box-shadow:0 0 10px var(--violet);border-radius:50%;display:inline-block}.capabilities__tag{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.main-section-title{font-size:var(--text-h1);letter-spacing:var(--tracking-h1);font-weight:600;line-height:var(--leading-h1);margin:16px 0}.section-title{font-size:var(--text-h2);letter-spacing:var(--tracking-h2);font-weight:600;line-height:var(--leading-h2);margin:40px 0 20px}.section-header>.main-section-title,.section-header>.section-title,.section-header>.small-section-title{margin-top:0}.small-section-title{font-size:var(--text-h3);letter-spacing:var(--tracking-h3);font-weight:600;line-height:var(--leading-h3);margin:16px 0}.title-accent{-webkit-box-decoration-break:clone;box-decoration-break:clone;font-synthesis:style;letter-spacing:-.04em;color:#0000;font-style:italic;font-family:var(--font-display);background:linear-gradient(135deg,#8b5cf6 0%,#d946ef 55%,#fb7185 100%);-webkit-background-clip:text;background-clip:text;padding:.04em .1em .06em 0}.section-subtitle{color:var(--fg-3);font-size:var(--text-body-lg);line-height:var(--leading-body-lg)}.glass{background:var(--surface-1);-webkit-backdrop-filter:var(--blur-glass);border:1px solid var(--line-1);border-radius:var(--radius-surface)}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);min-height:48px;font-family:var(--font-body);font-weight:500;font-size:var(--text-button);line-height:var(--leading-button);letter-spacing:-.005em;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease), filter var(--dur-hover) var(--ease), transform var(--dur-press) var(--ease);border:1px solid #0000;padding:0 22px;text-decoration:none;display:inline-flex;position:relative}@media (width>=1024px){.btn{min-height:44px;padding-inline:20px}}.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:var(--state-disabled-opacity);transform:none}.btn-primary{background:var(--spectrum);color:var(--fg-on-accent);box-shadow:0 1px 0 #ffffff2e inset, var(--elevation-accent)}.btn-secondary{color:var(--fg-1);border-color:var(--line-3);background:0 0}.btn-text{min-height:44px;padding-inline:var(--space-1);border-radius:var(--space-1);color:var(--signal);text-underline-offset:.25em;background:0 0;-webkit-text-decoration:underline #b69cff66;text-decoration:underline #b69cff66}.btn-icon{width:48px;min-width:48px;padding:0}@media (width>=1024px){.btn-icon{width:44px;min-width:44px}}.btn-arrow svg{transition:transform var(--dur-hover) var(--ease);flex:none}@media (hover:hover) and (pointer:fine){.btn-primary:not(:disabled):not([aria-disabled=true]):hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff38,0 12px 32px #8b5cf66b}.btn-secondary:not(:disabled):not([aria-disabled=true]):hover{background:var(--state-hover);border-color:#c4b5fd6b;transform:translateY(-1px)}.btn-text:not(:disabled):not([aria-disabled=true]):hover{color:var(--state-hover-text);text-decoration-color:currentColor}.btn-arrow:not(:disabled):not([aria-disabled=true]):hover svg{transform:translate(2px)}}.btn-primary:not(:disabled):not([aria-disabled=true]):active{filter:brightness(.94);transform:translateY(0)}.btn-secondary:not(:disabled):not([aria-disabled=true]):active{background:var(--state-pressed);transform:translateY(0)}.btn-text:not(:disabled):not([aria-disabled=true]):active{color:var(--fg-1)}.actions,.hero-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.hero-actions{margin-top:var(--space-5)}.actions--center{justify-content:center}.actions--stack{flex-direction:column;align-items:stretch}.label{font-size:var(--text-label);line-height:var(--leading-label);color:var(--fg-2);font-weight:500}.meta{font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta);color:var(--fg-3)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta-caps);text-transform:uppercase;color:var(--signal)}.note{font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta);color:var(--fg-3);flex-wrap:wrap;align-items:baseline;display:flex}.note>*+:before{content:"·";color:var(--fg-4);margin-inline:.6em}.tag{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line-2);font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta);color:var(--fg-2);transition:border-color var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease);align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.tag-list{flex-flow:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.tag-glow{color:#e5dbff;background:linear-gradient(135deg,#8b5cf61f,#d946ef14);border-color:#8b5cf640}.project-category{font-size:var(--text-meta);color:var(--text-3);font-family:var(--font-mono);letter-spacing:.05em;margin-bottom:10px}.glass-card{border-radius:var(--radius-surface);background:var(--surface-panel-strong);border:1px solid var(--line-accent);height:100%;transition:background var(--duration-slow) var(--ease-standard), border-color var(--duration-slow) var(--ease-standard), box-shadow var(--duration-slow) var(--ease-standard), transform var(--duration-slow) var(--ease-standard);box-shadow:var(--elevation-1);position:relative;overflow:hidden}.glass-card--interactive:hover{box-shadow:var(--elevation-2);background:var(--surface-panel);border-color:#c4b5fd6b;transform:translateY(-2px)}.view-case-title{font-size:var(--text-label);color:var(--text-2);font-weight:500;transition:color .3s}.glass-card--interactive:hover .view-case-title{color:var(--violet)}.text-link{width:fit-content;color:inherit;transition:color var(--dur-hover) var(--ease);text-decoration:none;display:inline-flex;position:relative}.text-link:after{content:"";background:var(--spectrum-line);transform-origin:0;height:1px;transition:transform var(--dur-hover) var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.text-link:hover,.text-link:focus-visible{color:var(--state-hover-text)}.text-link:hover:after,.text-link:focus-visible:after,.text-link[aria-current=page]:after{transform:scaleX(1)}.text-link:active{color:var(--fg-1)}.link{color:var(--signal);text-underline-offset:.22em;transition:color var(--dur-hover) var(--ease), text-decoration-color var(--dur-hover) var(--ease);align-items:baseline;gap:.35em;-webkit-text-decoration:underline #b69cff73;text-decoration:underline #b69cff73;text-decoration-thickness:1px;display:inline-flex}.link:hover,.link:focus-visible{color:var(--state-hover-text);text-decoration-color:currentColor}.link:active{color:var(--fg-1)}.link-arrow{transition:transform var(--dur-hover) var(--ease);flex:none;align-self:center}@media (hover:hover) and (pointer:fine){.link:hover .link-arrow{transform:translate(2px)}}.cards{gap:var(--grid-gap);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=1024px){.cards{grid-template-columns:repeat(6,minmax(0,1fr))}.card-item:nth-child(-n+2){grid-column:span 3}.card-item:nth-child(n+3){grid-column:span 2}}.card-content{height:100%;padding:var(--space-card);flex-direction:column;justify-content:center;display:flex}.cards-icons-container{color:#c4b5fd;background:linear-gradient(135deg,#8b5cf633,#d946ef1a);border:1px solid #8b5cf64d;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.cards-title-container{flex-direction:row;align-items:center;gap:20px;display:flex}.cards-title{font-family:var(--font-display);font-size:var(--text-h4);line-height:var(--leading-h4);letter-spacing:var(--tracking-h4);margin-bottom:4px;font-weight:600}.cards-desc{font-size:var(--text-body);line-height:var(--leading-body);opacity:.6;margin-top:12px;font-weight:400}.badges{flex-wrap:wrap;align-items:flex-start;gap:6px;margin:24px 0;display:flex}.badge{border-radius:var(--radius-pill);background:var(--surface-1);border:1px solid var(--line-2);font-size:var(--text-meta);color:var(--fg-2);align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.grad-text{background:linear-gradient(135deg,#fff 0%,#c4b5fd 50%,#f0abfc 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.divider{background:linear-gradient(90deg, transparent, var(--border-2), transparent);border:none;height:1px}.row{display:flex}.col{flex-direction:column;display:flex}.center{justify-content:center;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn:hover,.btn:hover svg,.link:hover .link-arrow,.glass-card--interactive:hover,.project-card-link:hover .project-card-mockup{transform:none!important}}@media (width>=600px){.badges{align-items:center}}:root{--font-display:"Space Grotesk", "Space Grotesk Fallback", system-ui, sans-serif;--font-body:"Inter", "Inter Fallback", system-ui, sans-serif;--font-mono:"JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, monospace;--text-display:clamp(44px, calc(44px + 44 * (100vw - 390px) / 1050), 88px);--leading-display:.98;--tracking-display:-.035em;--text-h1:clamp(40px, calc(40px + 32 * (100vw - 390px) / 1050), 72px);--leading-h1:1;--tracking-h1:-.03em;--text-h2:clamp(30px, calc(30px + 18 * (100vw - 390px) / 1050), 48px);--leading-h2:1.05;--tracking-h2:-.025em;--text-h3:clamp(22px, calc(22px + 6 * (100vw - 390px) / 1050), 28px);--leading-h3:1.15;--tracking-h3:-.02em;--text-h4:clamp(18px, calc(18px + 2 * (100vw - 390px) / 1050), 20px);--leading-h4:1.25;--tracking-h4:-.01em;--text-body-lg:clamp(18px, calc(18px + 2 * (100vw - 390px) / 1050), 20px);--leading-body-lg:1.5;--text-body:clamp(16px, calc(16px + 1 * (100vw - 390px) / 1050), 17px);--leading-body:1.6;--text-body-sm:clamp(14px, calc(14px + 1 * (100vw - 390px) / 1050), 15px);--leading-body-sm:1.5;--text-label:14px;--leading-label:1.3;--text-meta:12px;--leading-meta:1.4;--tracking-meta:.04em;--tracking-meta-caps:.08em;--text-button:15px;--leading-button:1.2;--text-numeral:clamp(32px, calc(32px + 16 * (100vw - 390px) / 1050), 48px)}html{font-size:16px}body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);letter-spacing:0;font-optical-sizing:auto;text-rendering:optimizelegibility}h1,h2,h3,h4,h5,h6{text-wrap:balance}p,li,dd{text-wrap:pretty}.tabular-nums{font-variant-numeric:tabular-nums}#app{width:100%;max-width:var(--container-max);min-height:100dvh;padding-inline:var(--gutter);margin:0 auto;font-weight:400}.logo-container[data-v-9d499be4]{min-height:44px;transition:color var(--duration-fast) var(--ease-standard);border-radius:999px;flex-direction:row;align-items:center;gap:16px;padding:8px 14px;display:flex}.logo[data-v-9d499be4]{transform-origin:50%;width:50px;height:auto;transition:transform var(--duration-fast) var(--ease-standard)}.logo-title[data-v-9d499be4]{font-family:var(--font-display);color:#fff;opacity:.8;transform-origin:0;transition:opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);font-size:16px;font-weight:600;text-decoration:none}.logo-container[data-v-9d499be4]:hover{color:#fff}.logo-container:hover .logo[data-v-9d499be4]{transform:scale(1.08)}.logo-container:hover .logo-title[data-v-9d499be4]{opacity:1;transform:scale(1.03)}@media (prefers-reduced-motion:reduce){.logo-container:hover .logo[data-v-9d499be4],.logo-container:hover .logo-title[data-v-9d499be4]{transform:none}}.mobile-nav-scrim[data-v-796a7fdd]{inset:calc(var(--header-height) + env(safe-area-inset-top)) 0 0;z-index:-3;touch-action:none;background:#050510a3;position:fixed}.mobile-menu[data-v-796a7fdd]{top:calc(var(--header-height) + env(safe-area-inset-top));z-index:-2;max-height:calc(100dvh - var(--header-height) - env(safe-area-inset-top));padding:var(--space-2) max(var(--gutter), env(safe-area-inset-right)) calc(var(--space-5) + env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));overscroll-behavior:contain;border-bottom:1px solid var(--line-2);background:var(--ink-1);box-shadow:var(--elevation-3);flex-direction:column;display:flex;position:fixed;left:0;right:0;overflow-y:auto}.mobile-menu-list[data-v-796a7fdd]{margin:0;padding:0;list-style:none}.mobile-menu-list li+li[data-v-796a7fdd]{border-top:1px solid var(--line-1)}.mobile-menu-item[data-v-796a7fdd]{border-radius:var(--radius-control);min-height:52px;color:var(--fg-2);font-family:var(--font-display);font-size:var(--text-h4);letter-spacing:var(--tracking-h4);font-weight:500;line-height:var(--leading-h4);-webkit-tap-highlight-color:transparent;transition:background var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease);align-items:center;margin-inline:-12px;padding-inline:12px;text-decoration:none;display:flex;position:relative}.mobile-menu-item[data-v-796a7fdd]:focus-visible{outline-offset:-2px}.mobile-menu-item[data-v-796a7fdd]:active{background:var(--state-pressed)}.mobile-menu-item-active[data-v-796a7fdd]{color:var(--fg-1)}.mobile-menu-item-active[data-v-796a7fdd]:before{content:"";background:linear-gradient(#7c3aed,#d946ef);border-radius:2px;width:2px;position:absolute;top:16px;bottom:16px;left:0}.mobile-menu-cta[data-v-796a7fdd]{width:100%;margin-top:var(--space-4)}.mobile-menu-channels[data-v-796a7fdd]{gap:0 var(--space-5);margin:var(--space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.mobile-menu-channel[data-v-796a7fdd]{min-height:44px;color:var(--fg-3);font-size:var(--text-label);font-weight:500;line-height:var(--leading-label);align-items:center}.mobile-menu-channel[data-v-796a7fdd]:after{bottom:11px}@media (hover:hover) and (pointer:fine){.mobile-menu-item[data-v-796a7fdd]:hover{background:var(--state-hover);color:var(--fg-1)}}@media (width>=600px){.mobile-menu[data-v-796a7fdd]{top:calc(var(--header-height) + env(safe-area-inset-top) + var(--space-2));right:var(--gutter);width:360px;max-height:calc(100dvh - var(--header-height) - env(safe-area-inset-top) - var(--space-2) * 2);padding:var(--space-2) var(--space-5) var(--space-4);border:1px solid var(--line-2);border-radius:var(--radius-surface);left:auto}}@media (width>=1024px){.mobile-nav-scrim[data-v-796a7fdd],.mobile-menu[data-v-796a7fdd]{display:none!important}}.mobile-nav-enter-active[data-v-796a7fdd],.mobile-nav-scrim-enter-active[data-v-796a7fdd]{transition:opacity var(--dur-panel) var(--ease), transform var(--dur-panel) var(--ease)}.mobile-nav-leave-active[data-v-796a7fdd],.mobile-nav-scrim-leave-active[data-v-796a7fdd]{transition:opacity .16s var(--ease), transform .16s var(--ease)}.mobile-nav-enter-from[data-v-796a7fdd],.mobile-nav-leave-to[data-v-796a7fdd]{opacity:0;transform:translateY(-8px)}.mobile-nav-scrim-enter-from[data-v-796a7fdd],.mobile-nav-scrim-leave-to[data-v-796a7fdd]{opacity:0}@media (prefers-reduced-motion:reduce){.mobile-nav-enter-active[data-v-796a7fdd],.mobile-nav-leave-active[data-v-796a7fdd],.mobile-nav-scrim-enter-active[data-v-796a7fdd],.mobile-nav-scrim-leave-active[data-v-796a7fdd],.mobile-menu-item[data-v-796a7fdd]{transition:none}.mobile-nav-enter-from[data-v-796a7fdd],.mobile-nav-leave-to[data-v-796a7fdd]{transform:none}}.site-header[data-v-ef30ad65]{z-index:100;height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) calc(50vw - 50%) 0;margin-inline:calc(50% - 50vw);position:sticky;top:0}.site-header[data-v-ef30ad65] :is(a,button){scroll-margin-top:calc(-1 * (var(--header-height) + var(--space-4)))}.site-header[data-v-ef30ad65]:before{content:"";z-index:-1;border-bottom:1px solid var(--line-2);background:var(--surface-overlay);-webkit-backdrop-filter:var(--blur-overlay);pointer-events:none;position:absolute;inset:0}.header-bar[data-v-ef30ad65]{justify-content:space-between;align-items:center;gap:var(--space-4);height:100%;display:flex}.site-header[data-v-ef30ad65] .header-logo{min-height:44px;padding:0 var(--space-2) 0 0;border-radius:var(--radius-control);gap:10px;margin-inline-start:0}.site-header[data-v-ef30ad65] .logo{width:auto;height:22px}.site-header[data-v-ef30ad65] .logo-title{color:var(--fg-1);letter-spacing:-.01em;opacity:1;font-size:17px}.site-header[data-v-ef30ad65] .header-logo:hover .logo,.site-header[data-v-ef30ad65] .header-logo:hover .logo-title{transform:none}.header-nav[data-v-ef30ad65],.header-cta[data-v-ef30ad65]{display:none}.header-actions[data-v-ef30ad65]{align-items:center;gap:var(--space-3);display:flex}.mobile-menu-toggle[data-v-ef30ad65]{border:1px solid var(--line-2);border-radius:var(--radius-pill);background:var(--surface-1);width:44px;height:44px;color:var(--fg-1);-webkit-tap-highlight-color:transparent;transition:background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease);justify-content:center;align-items:center;margin-inline-end:-2px;display:inline-flex}.mobile-menu-toggle[data-v-ef30ad65]:active{background:var(--state-pressed)}.mobile-menu-toggle[aria-expanded=true][data-v-ef30ad65]{border-color:var(--line-3);background:var(--surface-2)}.toggle-lines[data-v-ef30ad65],.toggle-lines[data-v-ef30ad65]:before,.toggle-lines[data-v-ef30ad65]:after{border-radius:1px;width:18px;height:1.5px;display:block}.toggle-lines[data-v-ef30ad65]{position:relative}.toggle-lines[data-v-ef30ad65]:before,.toggle-lines[data-v-ef30ad65]:after{content:"";transition:transform var(--dur-panel) var(--ease);background:currentColor;position:absolute;left:0}.toggle-lines[data-v-ef30ad65]:before{transform:translateY(-3.5px)}.toggle-lines[data-v-ef30ad65]:after{transform:translateY(3.5px)}[aria-expanded=true]>.toggle-lines[data-v-ef30ad65]:before{transform:rotate(45deg)}[aria-expanded=true]>.toggle-lines[data-v-ef30ad65]:after{transform:rotate(-45deg)}.nojs-menu-link[data-v-ef30ad65]{border:1px solid var(--line-2);border-radius:var(--radius-pill);width:44px;height:44px;color:var(--fg-1);justify-content:center;align-items:center;display:none}.site-header.is-menu-open[data-v-ef30ad65]:before{background:var(--ink-1)}@media (hover:hover) and (pointer:fine){.mobile-menu-toggle[data-v-ef30ad65]:hover{background:var(--state-hover);border-color:var(--line-3);color:var(--state-hover-text)}}.scroll-progress-track[data-v-ef30ad65]{pointer-events:none;height:2px;position:absolute;inset:auto 0 -1px;overflow:hidden}.scroll-progress-line[data-v-ef30ad65]{background:var(--spectrum-line);transform-origin:0;will-change:transform;width:100%;height:100%;transform:scaleX(0)}@media (width>=1024px){.site-header[data-v-ef30ad65]{margin-bottom:calc(-1 * var(--header-height))}.header-bar[data-v-ef30ad65]{gap:var(--space-5);grid-template-columns:1fr auto 1fr;display:grid}.site-header[data-v-ef30ad65] .header-logo{justify-self:start;gap:var(--space-3)}.site-header[data-v-ef30ad65] .logo{height:26px}.site-header[data-v-ef30ad65] .logo-title{font-size:18px}.header-nav[data-v-ef30ad65]{align-self:stretch;align-items:stretch;gap:var(--space-1);display:flex}.header-item[data-v-ef30ad65]{color:var(--fg-3);font-family:var(--font-body);font-size:var(--text-label);font-weight:500;line-height:var(--leading-label);transition:color var(--dur-hover) var(--ease);align-items:center;padding-inline:14px;text-decoration:none;display:inline-flex;position:relative}.header-item[data-v-ef30ad65]:focus-visible{outline-offset:-10px;border-radius:var(--radius-control)}.header-item[data-v-ef30ad65]:after{content:"";background:var(--spectrum-line);opacity:0;height:2px;transition:opacity var(--dur-hover) var(--ease);border-radius:2px 2px 0 0;position:absolute;inset:auto 14px -1px}.header-item-active[data-v-ef30ad65]{color:var(--fg-1)}.header-item-active[data-v-ef30ad65]:after{opacity:1}.header-actions[data-v-ef30ad65]{justify-self:end}.header-cta[data-v-ef30ad65]{padding-inline:18px;display:inline-flex;box-shadow:inset 0 1px #ffffff2e}.mobile-menu-toggle[data-v-ef30ad65],.nojs-menu-link[data-v-ef30ad65]{display:none!important}}@media (width>=1024px) and (hover:hover) and (pointer:fine){.header-item[data-v-ef30ad65]:hover{color:var(--fg-1)}}@media (prefers-reduced-motion:reduce){.header-item[data-v-ef30ad65],.header-item[data-v-ef30ad65]:after,.mobile-menu-toggle[data-v-ef30ad65],.toggle-lines[data-v-ef30ad65]:before,.toggle-lines[data-v-ef30ad65]:after{transition:none}.scroll-progress-track[data-v-ef30ad65]{display:none}}.site-footer[data-v-ff736171]{margin-top:var(--space-8);padding:var(--space-7) calc(50vw - 50%) calc(var(--space-5) + env(safe-area-inset-bottom));border-top:1px solid var(--line-1);background:var(--ink-1);margin-inline:calc(50% - 50vw)}.footer-main[data-v-ff736171]{gap:var(--space-6);display:grid}.footer-brand[data-v-ff736171]{align-content:start;gap:var(--space-3);justify-items:start;display:grid}.site-footer[data-v-ff736171] .footer-logo{padding:0 var(--space-2) 0 0;border-radius:var(--radius-control);gap:10px}.site-footer[data-v-ff736171] .logo{width:auto;height:22px}.site-footer[data-v-ff736171] .logo-title{color:var(--fg-1);letter-spacing:-.01em;opacity:1;font-size:17px}.site-footer[data-v-ff736171] .footer-logo:hover .logo,.site-footer[data-v-ff736171] .footer-logo:hover .logo-title{transform:none}.footer-positioning[data-v-ff736171]{max-width:34ch;color:var(--fg-3);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);text-wrap:pretty}.footer-group[data-v-ff736171]{align-content:start;gap:var(--space-2);display:grid}.footer-label[data-v-ff736171]{color:var(--fg-3);font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta-caps);text-transform:uppercase}.footer-links[data-v-ff736171]{margin:0;padding:0;list-style:none}.footer-links--columns[data-v-ff736171]{column-gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.footer-links--inline[data-v-ff736171]{column-gap:var(--space-5);flex-wrap:wrap;display:flex}.footer-link[data-v-ff736171]{min-width:44px;min-height:44px;color:var(--fg-2);font-size:var(--text-body-sm);font-weight:500;line-height:var(--leading-body-sm);align-items:center;gap:var(--space-1)}.footer-link[data-v-ff736171]:after{bottom:11px}.footer-link--quiet[data-v-ff736171]{color:var(--fg-3);font-size:var(--text-label)}.footer-email[data-v-ff736171]{max-width:100%;min-height:44px;color:var(--fg-1);font-family:var(--font-display);font-size:var(--text-h3);letter-spacing:var(--tracking-h3);font-weight:500;line-height:var(--leading-h3);overflow-wrap:anywhere;text-decoration:underline;-webkit-text-decoration-color:var(--line-3);text-decoration-color:var(--line-3);text-underline-offset:.2em;transition:color var(--dur-hover) var(--ease), text-decoration-color var(--dur-hover) var(--ease);justify-self:start;align-items:center;text-decoration-thickness:1px;display:inline-flex}.footer-email[data-v-ff736171]:hover,.footer-email[data-v-ff736171]:focus-visible{color:var(--state-hover-text);text-decoration-color:currentColor}.footer-legal[data-v-ff736171]{justify-content:space-between;align-items:center;gap:0 var(--space-5);margin-top:var(--space-5);padding-top:var(--space-2);border-top:1px solid var(--line-1);flex-wrap:wrap;display:flex}.footer-copyright[data-v-ff736171]{padding-block:var(--space-3);color:var(--fg-3);font-family:var(--font-mono);font-size:var(--text-meta);line-height:var(--leading-meta);letter-spacing:var(--tracking-meta)}@media (width>=768px){.footer-main[data-v-ff736171]{column-gap:var(--space-5);row-gap:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand[data-v-ff736171]{grid-column:1/-1}}@media (width>=1024px){.site-footer[data-v-ff736171]{padding-top:var(--space-7);padding-bottom:var(--space-5)}.footer-main[data-v-ff736171]{column-gap:var(--space-6);grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,4fr)}.footer-brand[data-v-ff736171]{grid-column:auto}.footer-links--columns[data-v-ff736171]{grid-template-columns:minmax(0,1fr)}.footer-link[data-v-ff736171]{min-height:32px}.footer-link[data-v-ff736171]:after{bottom:5px}.footer-legal[data-v-ff736171]{margin-top:var(--space-7)}}@media (prefers-reduced-motion:reduce){.footer-email[data-v-ff736171]{transition:none}}.root{flex-direction:column;display:flex}.page:focus{outline:none}
