:root{
  --ink:#20232E;--text:#3A3F4D;--muted:#5D6270;--faint:#777C89;
  --line:#E8EAF0;--primary:#4A4FA3;--primary-hover:#3E4391;--accent:#2D8FC4;
  --white:#FFFFFF;--surface:#F4F5F8;
  --s1:#F3EFE8;--i1:#3B3326;--m1:#665B4B;
  --s2:#EAF3EF;--i2:#1F3B30;--m2:#496356;
  --s3:#F6ECEE;--i3:#4A2830;--m3:#73505A;
  --s4:#EEF1F6;--i4:#283445;--m4:#506075;
  --fh:"Outfit","Avenir Next",-apple-system,"PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Apple SD Gothic Neo","Microsoft YaHei",sans-serif;
  --fb:var(--fh);
  --fm:"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --wide:1360px;--wrap:1240px;--reading:760px;--gutter:24px;
  --space-1:8px;--space-2:16px;--space-3:24px;--space-4:40px;--space-5:64px;--space-6:96px;--space-7:160px;
  --r-s:5px;--r-m:14px;--r-l:22px;
  --shadow:0 30px 60px -32px rgba(32,35,46,.28),0 2px 8px rgba(32,35,46,.05);
  --fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:1rem;--fs-lead:1.1875rem;
  --fs-card:1.25rem;--fs-section:clamp(2rem,3.4vw,2.875rem);--fs-display:clamp(2.75rem,4.72vw,4.25rem);
  --lh-tight:1.3;--lh-body:1.75;--lh-code:1.55;
  --hero-pad:96px;--hero-crumb-pad:48px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--white);color:var(--text);font:var(--fs-base)/var(--lh-body) var(--fb);-webkit-font-smoothing:antialiased}
main{overflow-x:clip}
img,svg,video{max-width:100%}
img{display:block}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,h4,h5,h6{font-family:var(--fh);color:var(--ink);letter-spacing:.24px;margin:0;font-weight:600}
h1{font-size:var(--fs-display);line-height:1.36;font-weight:700}
h2{font-size:var(--fs-section);line-height:var(--lh-tight);font-weight:700}
h3{font-size:var(--fs-card);line-height:1.4}
h4,h5,h6{font-size:var(--fs-base);line-height:1.5}
p{font-size:var(--fs-base);line-height:var(--lh-body);margin:0}
li{font-size:var(--fs-base);line-height:var(--lh-body)}
small{font-size:var(--fs-sm);line-height:1.5}
figcaption{font-size:var(--fs-sm);line-height:1.5}
blockquote{font-size:var(--fs-lead);line-height:1.65;margin:0}
code,pre,kbd{font:var(--fs-sm)/var(--lh-code) var(--fm)}
th,td{font-size:var(--fs-base);line-height:1.6}
dt,dd,label{font-size:var(--fs-base);line-height:1.6}
figure{margin:0}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
[hidden]{display:none!important}
.wrap,.container{width:min(calc(100% - var(--gutter)*2),var(--wrap));margin-inline:auto}
.container-wide{width:min(calc(100% - var(--gutter)*2),var(--wide));margin-inline:auto}
.container-reading{width:min(calc(100% - var(--gutter)*2),var(--reading));margin-inline:auto}
.mono{font-family:var(--fm);font-variant-numeric:tabular-nums}
.grid-two,.grid-three,.grid-four{display:grid;gap:var(--space-3);align-items:stretch}
.grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-two>*,.grid-three>*,.grid-four>*{min-width:0}
.stack-2>*+*{margin-top:var(--space-2)}
.stack-3>*+*{margin-top:var(--space-3)}
.mt-4{margin-top:var(--space-4)}
.mt-5{margin-top:var(--space-5)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:64rem){
  :root{--gutter:22px;--space-7:112px}
  .grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-three{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
  :root{--gutter:18px;--space-7:80px;--hero-pad:64px;--hero-crumb-pad:48px}
  .grid-two,.grid-three,.grid-four{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
  .reveal.reveal-left{transform:translate(-18px,0)}
  .reveal.reveal-right{transform:translate(18px,0)}
  .reveal.is-visible{opacity:1;transform:none}
}
