:root{
--primary:#B5493A;--primary-hover:#9E3D30;--primary-active:#843326;--accent:#F2B6CB;--ink:#1A1714;--paper:#FAF8F5;--surface:#FFFFFF;--muted:#5E574F;--muted-2:#655D55;
--s-mint:#E8EEEC;--s-mint-ink:#1F2A27;--s-lav:#EEEAF3;--s-lav-ink:#2A2238;--s-pink:#F6E9EE;--s-pink-ink:#3A1F2A;--s-blue:#E6ECF2;--s-blue-ink:#1C2733;
--line:rgba(26,23,20,.12);--line-on-dark:rgba(250,248,245,.25);--input-line:#888077;--focus:#843326;--chrome:#756E66;--chrome-ink:#FAF8F5;--neutral-fill:#EFECE7;--terminal:#F4F1EC;--terminal-ink:#1A1714;--icon-well:#E6ECF2;
--f-head:"Sora",-apple-system,"Avenir Next","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK JP","Malgun Gothic",sans-serif;
--f-body:"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;
--f-mono:"JetBrains Mono","SF Mono","Menlo","Consolas","PingFang SC","Microsoft YaHei",monospace;
--text-xs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-card:1.3125rem;--text-section:2.75rem;--text-display:4rem;
--lh-body:1.6;--lh-small:1.55;--lh-heading:1.2;--lh-display:1.15;--lh-code:1.62;
--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:5rem;--space-9:6rem;--space-10:8rem;--space-close:6rem;
--field-gap:.5rem;--gutter:2rem;--width-narrow:48rem;--width-standard:80rem;--width-wide:90rem;--hero-pad:6rem;--hero-crumb-pad:3rem;--crumb-gap:1.5rem;--stage-min:30rem;--header-height:4rem;
--r-pill:999px;--r-lg:28px;--r-md:16px;--r-sm:8px;--radius-sm:8px;
--shadow-stage:0 50px 90px -40px rgba(18,14,10,.45);--shadow-menu:0 16px 40px -20px rgba(26,23,20,.3);--ease:cubic-bezier(.4,.1,.2,1);--duration:200ms;
}
*{box-sizing:border-box}
html{background:var(--paper);scroll-padding-top:calc(var(--header-height) + var(--space-3))}
body{margin:0;font-family:var(--f-body);font-size:var(--text-base);line-height:var(--lh-body);color:var(--ink);background:var(--paper);-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(--f-head);font-weight:400;overflow-wrap:break-word}
h1{font-size:var(--text-display);line-height:var(--lh-display)}
h2{font-size:var(--text-section);line-height:var(--lh-heading)}
h3{font-size:var(--text-card);line-height:var(--lh-heading)}
h4{font-size:var(--text-lg);line-height:var(--lh-heading)}
h5,h6{font-size:var(--text-base);line-height:var(--lh-heading)}
p,li,blockquote,dt,dd,label{font-size:var(--text-base);line-height:var(--lh-body)}
small{font-size:var(--text-xs);line-height:var(--lh-small)}
figcaption,th,td{font-size:var(--text-sm);line-height:var(--lh-small)}
code{font-family:var(--f-mono);font-size:var(--text-sm);line-height:var(--lh-code)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,input,select,textarea{min-width:0}
button{color:inherit}
img{display:block;max-width:100%;height:auto}
svg{flex-shrink:0;vertical-align:middle}
a,button{-webkit-tap-highlight-color:transparent}
button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.6}
:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
::selection{background:var(--s-pink);color:var(--s-pink-ink)}
.container,.wrap{width:min(calc(100% - var(--gutter)*2),var(--width-standard));margin-inline:auto}
.container-narrow{width:min(calc(100% - var(--gutter)*2),var(--width-narrow));margin-inline:auto}
.container-wide{width:min(calc(100% - var(--gutter)*2),var(--width-wide));margin-inline:auto}
.grid{display:grid;gap:var(--space-3);align-items:stretch}
.grid>* , .container>* , .wrap>*{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))}
.stack{display:flex;flex-direction:column;gap:var(--space-3)}
.stack-sm{display:flex;flex-direction:column;gap:var(--space-1)}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.h-display{font-family:var(--f-head);font-weight:400;font-size:var(--text-display);line-height:var(--lh-display);letter-spacing:-.01em}
.h2{font-family:var(--f-head);font-weight:400;font-size:var(--text-section);line-height:var(--lh-heading);letter-spacing:-.01em}
.h3{font-family:var(--f-head);font-weight:400;font-size:var(--text-card);line-height:var(--lh-heading)}
.lead{font-size:var(--text-lg);line-height:1.5}
.small{font-size:var(--text-sm);line-height:var(--lh-small)}
.mini{font-size:var(--text-xs);line-height:1.5}
.muted{color:var(--muted)}
.mt-2{margin-top:var(--space-2)}
.mt-3{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-6{margin-top:var(--space-6)}
.mt-7{margin-top:var(--space-7)}
.text-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{max-width:100%;overflow-x:auto;padding:var(--space-3);border-radius:var(--r-md);background:var(--terminal);color:var(--terminal-ink);font-family:var(--f-mono);font-size:var(--text-sm);line-height:var(--lh-code)}
pre code{display:block;width:max-content;min-width:100%;overflow-x:auto}
:not(pre)>code{overflow-wrap:anywhere}
.reveal{opacity:1;transform:none}
.reveal.is-reveal-pending{opacity:0;transform:translateY(16px);transition:opacity 500ms var(--ease),transform 500ms var(--ease)}
.reveal.reveal-left.is-reveal-pending{transform:translate(-16px,0)}
.reveal.reveal-right.is-reveal-pending{transform:translate(16px,0)}
.reveal.is-revealed{opacity:1;transform:none}
@media(max-width:64rem){
:root{--gutter:1.5rem;--text-display:3.25rem;--text-section:2.25rem;--space-10:6rem}
.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
:root{--gutter:1.25rem;--text-display:2.5rem;--text-section:2rem;--space-10:4rem;--space-close:4rem;--hero-pad:4rem}
.grid-2,.grid-3,.grid-4{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}
.reveal.is-reveal-pending{opacity:1;transform:none}
}
