:root{
--bg:#F8F6F3;--paper:#F8F6F3;--nav:#FCFBF9;--surface:#FFFFFF;--ink:#1C1726;--muted:#625C6B;--soft:#81798D;--line:#ECE6DF;--line-dark:rgba(255,255,255,.14);--input-line:#9A93A4;
--primary:#8A1670;--primary-hover:#72105C;--accent:#E0457B;--ok:#2F8F5B;
--yellow:#F6EDC8;--yellow-ink:#3D3313;--yellow-muted:#5E5130;
--green:#E3EEE6;--green-ink:#1F3A2A;--green-muted:#3C5847;
--blue:#E4ECF5;--blue-ink:#1E3350;--blue-muted:#3E5370;
--peach:#F6E6DA;--peach-ink:#4A2A17;--peach-muted:#6E4A33;
--neutral:#EFEBE6;--neutral-ink:#4A4352;
--canvas:#1C1726;--panel:#231D2F;--panel-deep:#1A1522;--panel-raised:#2A2335;--panel-tab:#2E2639;--panel-track:#3A3147;
--canvas-ink:#F4EFF8;--canvas-body:#CFC7DB;--canvas-muted:#AAA1BB;--canvas-accent:#F5A9C6;--canvas-current:#FFD6E5;--canvas-current-bg:rgba(224,69,123,.16);--canvas-grid:rgba(255,255,255,.07);--memory:#9FD0B4;
--footer-ink:#EDE8F2;--footer-body:#D8D1E2;--footer-muted:#A79FB5;
--font-heading:"Outfit","Avenir Next","Futura","Segoe UI",-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK TC","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic",sans-serif;
--font-body:"IBM Plex Sans","Helvetica Neue","Segoe UI",-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK TC","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic",sans-serif;
--font-mono:"IBM Plex Mono","SF Mono","JetBrains Mono",Menlo,Consolas,-apple-system,"PingFang SC","Microsoft YaHei",monospace;
--text-xs:.8125rem;--text-sm:.9375rem;--text-base:1.0625rem;--text-lg:1.3125rem;--text-xl:1.5rem;--text-section:2.5rem;--text-display:4rem;
--text-nav:var(--text-xs);--text-button:1rem;--text-lead:1.125rem;--text-data:2.5rem;--text-meter:7rem;
--lh-body:1.65;--lh-heading:1.3;--lh-display:1.32;--lh-tight:1.2;--lh-code:1.6;
--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-strong:600;
--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:2.5rem;--space-6:3.5rem;--space-7:4rem;--space-8:5rem;--space-9:6rem;--space-section:7.5rem;--space-close:8.75rem;
--field-gap:.5rem;--action-gap:1rem;--action-floor:1.5rem;--kicker-gap:1.5rem;--crumb-gap:1.5rem;--hero-top:4rem;--hero-top-crumb:3rem;
--gutter:1.5rem;--width-narrow:48rem;--width-standard:75rem;--width-wide:80rem;--width-frame:60rem;
--radius-sm:.5rem;--radius-md:1rem;--radius-lg:1.75rem;--radius-pill:999px;
--shadow-card:0 18px 40px -26px rgba(28,23,38,.35);--shadow-canvas:0 50px 90px -50px rgba(28,23,38,.55);--shadow-artifact:0 30px 60px -30px rgba(0,0,0,.7);--shadow-popover:0 12px 30px -12px rgba(28,23,38,.25);
--motion-fast:180ms;--motion-reveal:600ms;--ease:cubic-bezier(.2,.7,.2,1);--reveal-distance:1.5rem;
--header-height:4.75rem;--z-header:100;--z-menu:110;--stage-min:33.75rem;--stage-side-left:15.5rem;--stage-side-right:17.5rem;--split-right-min:26rem;
--icon-sm:1rem;--icon-base:1.5rem;--icon-large:2.75rem;--logo-size:2rem;--lang-height:1.875rem;--lang-icon:.8125rem;--chevron-size:.5625rem;
--table-min:44rem;--focus-ring:0 0 0 3px rgba(138,22,112,.22);--hairline:1px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);scroll-padding-top:calc(var(--header-height) + var(--space-3))}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
main{overflow-x:clip}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote,pre{margin:0}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-normal);overflow-wrap:break-word}
h1{font-size:clamp(2.25rem,4.45vw,var(--text-display));line-height:var(--lh-display);font-weight:var(--weight-light)}
h2{font-size:clamp(1.75rem,3vw,var(--text-section));line-height:var(--lh-heading);font-weight:var(--weight-light)}
h3{font-size:var(--text-lg);line-height:var(--lh-heading)}
h4{font-size:var(--text-base);line-height:var(--lh-heading)}
h5,h6{font-size:var(--text-sm);line-height:var(--lh-heading)}
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)}
code{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--lh-code);font-variant-numeric:tabular-nums}
th,td{font-size:var(--text-sm);line-height:var(--lh-body)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img,svg{vertical-align:middle}
img{max-width:100%;height:auto}
svg{flex-shrink:0}
button svg,a svg{width:var(--icon-sm);height:var(--icon-sm)}
ul,ol{padding-inline-start:var(--space-3)}
button,input,textarea,select{max-width:100%}
a,button,input,select,textarea,summary{touch-action:manipulation}
:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
[hidden]{display:none!important}
::selection{background:var(--yellow);color:var(--yellow-ink)}
.container,.wrap,.container-wide,.container-narrow{width:calc(100% - var(--gutter)*2);margin-inline:auto}
.container,.wrap{max-width:var(--width-standard)}
.container-wide{max-width:var(--width-wide)}
.container-narrow{max-width:var(--width-narrow)}
.mono,.data{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.lead{font-size:var(--text-lead);line-height:var(--lh-body)}
.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)}
.text-lg{font-size:var(--text-lg);line-height:var(--lh-heading)}
.grid{display:grid;gap:var(--space-3);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-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.stack{display:flex;flex-direction:column;gap:var(--space-3)}
.row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.mt-1{margin-top:var(--space-1)}
.mt-2{margin-top:var(--space-2)}
.mt-3{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-7{margin-top:var(--space-7)}
.gap-1{gap:var(--space-1)}
.gap-3{gap:var(--space-3)}
.center{text-align:center}
.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}
pre{position:relative;max-width:100%;overflow-x:auto;padding:var(--space-3);background:var(--canvas);color:var(--canvas-ink);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--lh-code)}
pre code{display:block;min-width:max-content;color:var(--canvas-ink)}
code:not(pre code){overflow-wrap:anywhere}
.article-body{max-width:var(--width-narrow);padding:var(--space-3);background:var(--surface);color:var(--ink);border-radius:var(--radius-md)}
.article-body h2,.article-body h3{font-size:var(--text-xl);line-height:var(--lh-heading);margin-block:var(--space-5) var(--space-2)}
.article-body p,.article-body ul,.article-body ol{margin-bottom:var(--space-3)}
@media(max-width:64rem){
.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
:root{--gutter:1rem;--space-section:4rem;--space-close:5rem;--hero-top:2.5rem}
.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
