:root{
--primary:#3D56A6;--primary-deep:#2F4486;--primary-light:#5A70C2;--accent:#C2712E;--accent-ink:#8A4A17;
--paper:#FFFFFF;--ink:#232733;--body:#3A3F4B;--muted:#656B7A;--line:#E4E4E0;--line-soft:#EEEEEB;--line-dark:#454B5A;--input-line:#9298A5;
--surface:#F7F7F5;--surface-ink:#232733;--surface-muted:#626877;
--sand:#F5EFE6;--sand-ink:#3B2E21;--sand-muted:#74604B;
--sage:#EDF2EC;--sage-ink:#23332A;--sage-muted:#56675B;
--clay:#F6ECE8;--clay-ink:#3D2722;--clay-muted:#775750;
--warm-btn:#F3E4D0;--warm-btn-hover:#EDD8BD;--warm-btn-ink:#4A3016;
--foot:#232733;--foot-ink:#FFFFFF;--foot-link:#CDD1DC;--foot-muted:#B2B7C5;
--stamp-bg:#FBF3EC;--success-bg:#EDF2EC;--success-ink:#2F5A3A;--danger-bg:#F6ECE8;--danger-ink:#883D32;
--sans:"Outfit",-apple-system,"Avenir Next","Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
--mono:"JetBrains Mono","SFMono-Regular","SF Mono","Menlo","Consolas",-apple-system,"PingFang SC","Microsoft YaHei",monospace;
--font-heading:var(--sans);--font-body:var(--sans);
--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1.0625rem;--fs-card:1.34375rem;--fs-reading:1.5rem;--fs-section:2rem;--fs-display:clamp(2rem,3.34vw,3rem);
--lh-tight:1.2;--lh-heading:1.3;--lh-body:1.65;--lh-code:1.75;
--weight-light:300;--weight-normal:400;--weight-medium:500;
--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:2.5rem;--space-7:3.5rem;--space-8:4rem;--space-9:4.5rem;--space-section:7.5rem;--space-close:4.5rem;
--hero-pad:3.5rem;--hero-crumb-pad:3rem;--crumb-gap:1.5rem;--field-gap:.5rem;--gutter:1.5rem;
--width-reading:48rem;--width-standard:75rem;--width-wide:87rem;
--radius-sm:3px;--radius-md:6px;--radius-lg:18px;--radius-pill:999px;
--shadow-card:0 1px 2px rgba(35,39,51,.05);--shadow-float:0 22px 44px -28px rgba(35,39,51,.45);--shadow-menu:0 12px 28px rgba(35,39,51,.1);
--duration:180ms;--ease:cubic-bezier(.2,.65,.3,1);--focus:0 0 0 3px rgba(61,86,166,.24);
--header-height:6rem;--header-font:var(--fs-xs);--stage-min:22rem;--control-height:3.25rem;--control-small:2.75rem;--icon-size:1.25rem;--icon-stroke:1.7;
}
:root:lang(zh-Hant){--sans:"Outfit",-apple-system,"PingFang TC","Microsoft JhengHei","Noto Sans CJK TC",sans-serif}
:root:lang(ja){--sans:"Outfit",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo","Noto Sans CJK JP",sans-serif}
:root:lang(ko){--sans:"Outfit",-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;scroll-padding-top:calc(var(--header-height) + var(--space-4));text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--font-body);font-size:var(--fs-base);font-weight:var(--weight-normal);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
main{display:block;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(--font-heading);color:var(--ink);font-weight:var(--weight-normal);overflow-wrap:break-word}
h1{font-size:var(--fs-display);line-height:var(--lh-tight);font-weight:var(--weight-light)}
h2{font-size:var(--fs-section);line-height:var(--lh-heading)}
h3{font-size:var(--fs-card);line-height:var(--lh-heading)}
h4{font-size:var(--fs-base);line-height:var(--lh-heading)}
h5{font-size:var(--fs-sm);line-height:var(--lh-heading)}
h6{font-size:var(--fs-xs);line-height:var(--lh-heading)}
p{font-size:var(--fs-base);line-height:var(--lh-body)}
li{font-size:var(--fs-base);line-height:var(--lh-body)}
small{font-size:var(--fs-xs);line-height:var(--lh-body)}
figcaption{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--muted)}
blockquote{font-size:var(--fs-base);line-height:var(--lh-body)}
code{font-family:var(--mono);font-size:var(--fs-sm);line-height:var(--lh-code);overflow-wrap:anywhere}
pre{max-width:100%;margin:0;overflow-x:auto;font-family:var(--mono);font-size:var(--fs-sm);line-height:var(--lh-code);tab-size:2}
pre code{display:block;min-width:0;overflow-x:auto;overflow-wrap:normal;white-space:pre}
th,td{font-size:var(--fs-sm);line-height:var(--lh-body);text-align:start}
dt,dd{font-size:var(--fs-sm);line-height:var(--lh-body)}
label{font-size:var(--fs-sm);line-height:var(--lh-body)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;font-size:var(--fs-sm);line-height:var(--lh-body)}
button{cursor:pointer}
button,input,select,textarea{max-width:100%}
button{color:inherit}
button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.6}
img,svg,video{max-width:100%;vertical-align:middle}
img,video{height:auto}
svg{flex-shrink:0}
button svg,a svg{pointer-events:none}
b,strong{font-weight:var(--weight-medium)}
hr{margin:0;border:0;border-top:1px solid var(--line)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--primary);outline-offset:4px}
::selection{background:var(--warm-btn);color:var(--warm-btn-ink)}
.container,.wrap,.container-narrow,.container-wide{width:min(calc(100% - var(--gutter)*2),var(--width-standard));margin-inline:auto}
.container-narrow{max-width:var(--width-reading)}
.container-wide{max-width:var(--width-wide)}
.grid{display:grid;gap:var(--space-4);align-items:stretch}
.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>* , .flex>*{min-width:0}
.grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.flex{display:flex;gap:var(--space-3)}
.stack{display:flex;flex-direction:column;gap:var(--space-4)}
.stack-sm{display:flex;flex-direction:column;gap:var(--space-3)}
.mono,.numeric{font-family:var(--mono);font-variant-numeric:tabular-nums}
.text-small{font-size:var(--fs-sm);line-height:var(--lh-body)}
.text-muted{color:var(--muted)}
.text-center{text-align:center}
.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)}
.mb-4{margin-bottom:var(--space-4)}
.gap-2{gap:var(--space-2)}
.gap-4{gap:var(--space-4)}
.gap-5{gap:var(--space-5)}
.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}
.prose{font-size:var(--fs-base);line-height:var(--lh-body);overflow-wrap:break-word}
.prose>*+*{margin-top:var(--space-4)}
.prose h2,.prose h3{font-size:var(--fs-reading);line-height:var(--lh-heading)}
.prose h2,.prose h3{margin-top:var(--space-7)}
.prose a{text-decoration:underline;text-underline-offset:.2em;color:var(--primary)}
.prose pre{padding:var(--space-4);background:var(--surface);color:var(--surface-ink);border-radius:var(--radius-md)}
.prose code:not(pre code){background:var(--surface);color:var(--surface-ink);padding:var(--space-1);border-radius:var(--radius-sm)}
.prose blockquote{padding:var(--space-4);background:var(--sand);color:var(--sand-ink);border-radius:var(--radius-md)}
.reveal{opacity:1;transform:none}
.reveal.is-pending{opacity:0;transform:translateY(12px);transition:opacity 600ms var(--ease),transform 600ms var(--ease)}
.reveal.reveal-left.is-pending{transform:translate(-12px,0)}
.reveal.reveal-right.is-pending{transform:translate(12px,0)}
.reveal.is-visible{opacity:1;transform:none}
@media(max-width:64rem){
.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
:root{--gutter:1.25rem;--space-section:4.5rem;--header-height:4.5rem}
.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
.reveal.is-pending{opacity:1;transform:none}
}
