:root{
--primary:#A3177F;--primary-hover:#8C1269;--accent:#D06BD6;--dark:#1F1D24;--light:#FCFCFD;--paper:#FEFEFF;--surface:#FEFEFF;
--s-cool:#EEF1F4;--ink-cool:#23272E;--mute-cool:#59616D;
--s-sage:#E6F0EC;--ink-sage:#1E3A30;--mute-sage:#4F6B60;
--s-oat:#F3EEE4;--ink-oat:#3D2F17;--mute-oat:#716044;
--s-mist:#E8ECF6;--ink-mist:#232B48;--mute-mist:#535D7D;
--ink:#16151A;--muted:#5E626B;--ink-dark:#F2F1F5;--muted-dark:#B7B4C1;
--line:#E0E3E8;--line-dark:rgba(255,255,255,.16);--control-line:#9298A3;
--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Hiragino Kaku Gothic ProN","Yu Gothic","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
--heading:var(--sans);--mono:"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
--text-xs:.8125rem;--text-sm:.875rem;--text-base:.9375rem;--text-lg:1.0625rem;--text-card:1.3125rem;--text-section:2.5rem;--text-display:4rem;
--lh-body:1.6;--lh-reading:1.75;--lh-heading:1.18;--lh-display:1.15;
--weight-body:400;--weight-title:300;--weight-strong:500;
--tracking-body:-.005em;--tracking-title:-.035em;--tracking-display:-.04em;
--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:2.5rem;--space-6:3rem;--space-7:4rem;--space-8:5.5rem;--space-9:7rem;--space-10:8rem;
--space-section:8rem;--space-close:8.5rem;--hero-top:6.5rem;--hero-crumb-top:3rem;--crumb-gap:1.5rem;--field-gap:.5rem;
--gutter:1.5rem;--wrap:77.5rem;--wrap-wide:88rem;--wrap-narrow:46rem;
--radius-sm:.875rem;--radius-md:1rem;--radius-lg:1.25rem;--radius-pill:999px;
--shadow:none;--overlay-shadow:0 12px 32px rgba(31,29,36,.1);
--nav-height:4.5rem;--nav-font:var(--text-xs);--button-height:2.625rem;--button-small:2.375rem;--button-large:3rem;--lang-height:1.875rem;
--icon:1.5rem;--icon-tile:1.875rem;--brand-size:1.75rem;--stroke:1.5;
--ease:cubic-bezier(.2,.7,.2,1);--duration:200ms;--stage-min:26rem;
--dot:#D8DAE0;--dot-step:28px;--dot-offset:14px;
--terminal-bg:#1F1D24;--terminal-bar:#27252D;--terminal-ink:#DAD8E1;--terminal-muted:#B7B4C1;--terminal-prompt:#E3A3E7;--terminal-success:#9FD8BE;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--nav-height) + var(--space-2));-webkit-text-size-adjust:100%}
html,body{margin:0}
body{background:var(--light);color:var(--ink);font-family:var(--sans);font-size:var(--text-base);line-height:var(--lh-body);font-weight:var(--weight-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased}
main{overflow-x:clip}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote{margin:0}
h1{font-family:var(--heading);font-size:var(--text-display);line-height:var(--lh-display);font-weight:var(--weight-title);letter-spacing:var(--tracking-display)}
h2{font-family:var(--heading);font-size:var(--text-section);line-height:var(--lh-heading);font-weight:var(--weight-title);letter-spacing:var(--tracking-title)}
h3{font-family:var(--heading);font-size:var(--text-card);line-height:var(--lh-heading);font-weight:var(--weight-strong);letter-spacing:-.02em}
h4{font-size:var(--text-lg);line-height:var(--lh-body);font-weight:var(--weight-strong)}
h5,h6{font-size:var(--text-base);line-height:var(--lh-body);font-weight:var(--weight-strong)}
p{font-size:var(--text-base);line-height:var(--lh-body)}
li{font-size:var(--text-base);line-height:var(--lh-body)}
small{font-size:var(--text-xs);line-height:var(--lh-body)}
figcaption{font-size:var(--text-xs);line-height:var(--lh-body)}
blockquote{font-size:var(--text-lg);line-height:var(--lh-reading)}
code{font-family:var(--mono);font-size:var(--text-sm);line-height:var(--lh-reading);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
pre{font-family:var(--mono);font-size:var(--text-xs);line-height:var(--lh-reading);max-width:100%;overflow-x:auto;tab-size:2}
pre code{font-size:inherit;line-height:inherit;overflow-wrap:normal}
th{font-size:var(--text-sm);line-height:var(--lh-body);font-weight:var(--weight-strong)}
td{font-size:var(--text-sm);line-height:var(--lh-body)}
dt{font-size:var(--text-base);line-height:var(--lh-body);font-weight:var(--weight-strong)}
dd{font-size:var(--text-base);line-height:var(--lh-body)}
label{font-size:var(--text-sm);line-height:var(--lh-body)}
button,input,select,textarea{font-family:var(--sans);font-size:var(--text-base);line-height:var(--lh-body);letter-spacing:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
svg{display:block;width:var(--icon);height:var(--icon);flex-shrink:0}
button,a,input,select,textarea,summary{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
[hidden]{display:none!important}
::selection{background:var(--primary);color:var(--paper)}
.container,.wrap,.container-wide,.container-narrow{width:min(calc(100% - var(--gutter)*2),var(--wrap));margin-inline:auto}
.container-wide{max-width:var(--wrap-wide);width:calc(100% - var(--gutter)*2)}
.container-narrow{max-width:var(--wrap-narrow);width:calc(100% - var(--gutter)*2)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.u-muted{color:var(--muted)}
.u-center{text-align:center}
.u-stack{display:flex;flex-direction:column;gap:var(--space-3)}
.u-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-3);align-items:stretch}
.u-grid>*{min-width:0}
.u-mt-3{margin-top:var(--space-3)}
.u-mt-6{margin-top:var(--space-6)}
.u-mt-7{margin-top:var(--space-7)}
.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}
.reveal{opacity:1;transform:none}
.reveal.is-pending{opacity:0;transform:translateY(var(--space-3));transition:opacity 500ms var(--ease),transform 500ms var(--ease)}
.reveal.reveal-left.is-pending{transform:translateX(calc(var(--space-3)*-1))}
.reveal.reveal-right.is-pending{transform:translateX(var(--space-3))}
@media(max-width:64rem){:root{--space-section:6rem;--space-close:6rem;--hero-top:5rem;--text-display:3.5rem;--text-section:2.25rem}}
@media(max-width:42rem){:root{--gutter:1.25rem;--text-display:2.625rem;--text-section:2rem;--space-section:4rem;--space-close:4rem;--hero-top:4rem;--stage-min:0rem}h1,h2,h3{overflow-wrap:break-word}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal.is-pending{opacity:1;transform:none}}
