:root{
--primary:#A51CA8;--primary-hover:#8E1592;--accent:#E5487F;--dark:#1A0E17;--light:#FBF8F6;--paper:#FBF8F6;--surface:#FFFFFF;
--apricot:#FDF1E4;--apricot-ink:#5A2E0A;--mint:#E6F2EE;--mint-ink:#14453A;--ice:#EAEFFB;--ice-ink:#1F3366;--cream:#F8EFD9;--cream-ink:#4F3A05;
--ink:#1A0E17;--text:#33252F;--muted:#655761;--soft:#F4EFEB;--hair:rgba(26,14,23,.10);--line:rgba(26,14,23,.12);--dark-line:rgba(251,248,246,.14);--input-line:#978B93;
--on-dark:#FBF8F6;--on-dark-muted:#B8A7B3;--magenta-lit:#D65BD9;
--ice-heading:#132248;--ice-muted:#4A5C89;--mint-heading:#0C2E26;--mint-muted:#3F6B60;--cream-heading:#352603;--cream-muted:#6E5A2A;--apricot-heading:#3B1D04;--apricot-muted:#7A5233;
--board-paper:#F7F3F0;--board-stage:#F1EBE5;--board-muted:#6E6069;--board-label:#4A3B45;--board-dim:#75656F;--board-track:#EEE6EB;--board-dot:rgba(26,14,23,.11);--code-bg:#120A10;--code-ink:#E9DDE6;--code-key:#F0C9EE;--code-string:#F8E3C0;--code-value:#BFE3D8;--code-comment:#AB96A5;--code-number:#94818F;--highlight:rgba(214,91,217,.07);
--fh:"Outfit","Avenir Next","Century Gothic",-apple-system,"Segoe UI","PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Microsoft YaHei","Malgun Gothic",sans-serif;
--fb:"Inter",-apple-system,"Segoe UI","Roboto","Helvetica Neue","PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Microsoft YaHei","Malgun Gothic",sans-serif;
--fm:"SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",-apple-system,"PingFang SC","PingFang TC","Hiragino Sans GB","Microsoft YaHei","Malgun Gothic",monospace;
--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-card:1.35rem;--text-reading:1.5rem;--text-section:2.5rem;--text-display:3.5rem;
--lh-tight:1.2;--lh-card:1.4;--lh-body:1.65;--lh-reading:1.8;--lh-display:1.215;
--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:2.5rem;--space-7:3rem;--space-8:3.5rem;--space-9:4rem;--space-10:5rem;--space-11:7rem;
--field-gap:.5rem;--space-close:7rem;--section-space:7rem;--hero-top:5.5rem;--hero-crumb-top:3rem;--hero-bottom:7.5rem;--crumb-gap:1.5rem;
--r-s:.5rem;--r-m:1rem;--r-l:1.5rem;--radius-sm:.5rem;--pill:999px;--gutter:1.5rem;--w:80rem;--w-wide:90rem;--w-reading:48rem;
--card-padding:2rem;--control-height:3rem;--header-height:4.25rem;--header-font:.875rem;--lang-height:1.875rem;--stage-min:35rem;
--shadow:0 34px 64px -28px rgba(26,14,23,.32),0 2px 6px rgba(26,14,23,.06);--shadow-menu:0 18px 40px -16px rgba(26,14,23,.3);--shadow-card:0 24px 48px -28px rgba(20,69,58,.30);--focus:0 0 0 3px rgba(165,28,168,.25);
--ease:cubic-bezier(.2,.65,.3,1);--speed:180ms;--z-header:100;--z-menu:110;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:8rem;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--light);color:var(--text);font:400 var(--text-base)/var(--lh-body) var(--fb);-webkit-font-smoothing:antialiased}
main{overflow-x:clip}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}
h1,h2,h3,h4,h5,h6{font-family:var(--fh);font-weight:700;color:inherit;overflow-wrap:break-word}
h1{font-size:var(--text-display);line-height:var(--lh-display);letter-spacing:normal}
h2{font-size:var(--text-section);line-height:var(--lh-tight);letter-spacing:-.01em}
h3{font-size:var(--text-card);line-height:var(--lh-card)}
h4{font-size:var(--text-base);line-height:var(--lh-card)}
h5,h6{font-size:var(--text-sm);line-height:var(--lh-card)}
p,li,blockquote,dt,dd,label{font-size:var(--text-base);line-height:var(--lh-body)}
small,figcaption{font-size:var(--text-xs);line-height:var(--lh-body)}
th,td{font-size:var(--text-sm);line-height:var(--lh-body)}
code,kbd,samp,pre{font-family:var(--fm);font-size:var(--text-sm);line-height:var(--lh-reading);font-variant-numeric:tabular-nums}
pre{margin:0;max-width:100%;overflow-x:auto;padding:var(--space-4);background:var(--code-bg);color:var(--code-ink);border-radius:var(--r-m);tab-size:2}
code{overflow-wrap:anywhere}
pre code{display:block;overflow-x:auto;white-space:pre;overflow-wrap:normal}
a{color:inherit;text-decoration:none;text-underline-offset:.2em}
button,input,textarea,select{font:400 var(--text-base)/var(--lh-body) var(--fb)}
button{cursor:pointer}
button,select,input,textarea{max-width:100%}
button{color:inherit}
img,svg,video{max-width:100%;vertical-align:middle}
img,video{display:block}
svg{flex-shrink:0}
fieldset{min-width:0;margin:0;padding:0;border:0}
legend{padding:0;font-size:var(--text-base);line-height:var(--lh-body)}
ul,ol{padding-inline-start:var(--space-4)}
table{display:table;width:100%;border-collapse:collapse}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
::selection{background:var(--primary);color:var(--surface)}
.wrap,.container,.container-wide,.container-reading{width:min(calc(100% - var(--gutter)*2),var(--w));margin-inline:auto}
.container-wide{max-width:var(--w-wide);width:calc(100% - var(--gutter)*2)}
.container-reading{max-width:var(--w-reading);width:calc(100% - var(--gutter)*2)}
.grid{display:grid;gap:var(--space-4);align-items:stretch}
.grid>*{min-width:0}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}
.cluster{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.min-0{min-width:0}
.num{font-family:var(--fm);font-variant-numeric:tabular-nums}
.text-muted{color:var(--muted)}
.text-xs{font-size:var(--text-xs);line-height:var(--lh-body)}
.text-sm{font-size:var(--text-sm);line-height:var(--lh-body)}
.text-base{font-size:var(--text-base);line-height:var(--lh-body)}
.mt-2{margin-top:var(--space-2)}
.mt-3{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-5{margin-top:var(--space-5)}
.mt-7{margin-top:var(--space-7)}
.gap-2{gap:var(--space-2)}
.gap-3{gap:var(--space-3)}
.gap-4{gap:var(--space-4)}
.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(1rem);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.reveal-left.is-pending{transform:translate(-1rem,0)}
.reveal.reveal-right.is-pending{transform:translate(1rem,0)}
.reveal.is-visible{opacity:1;transform:none}
@media(max-width:64rem){
:root{--section-space:5rem;--space-close:5rem;--hero-bottom:5rem}
.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
:root{--gutter:1rem;--section-space:4rem;--space-close:4rem;--hero-top:5.5rem;--hero-bottom:4rem;--text-display:2.5rem;--text-section:2rem;--card-padding:1.5rem}
.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
.reveal.is-pending,.reveal.reveal-left.is-pending,.reveal.reveal-right.is-pending{opacity:1;transform:none}
}
