:root{
  --primary:#2C7A6E;--primary-hover:#246A5F;--primary-active:#205E54;--primary-ink:#FFFFFF;--accent:#1B8FB0;--dark:#1C2526;--ink:#1C2526;--muted:#5B6670;--faint:#69747D;--bg:#F7F8FA;--paper:#FFFFFF;--surface:#FFFFFF;--chrome:#F1F3F5;--hair:#ECEEF1;--line:#ECEEF1;--line-dark:rgba(255,255,255,.18);--control-line:#9AA5AD;--neutral-dot:#C9CED3;
  --lav:#ECEAF7;--lav-ink:#2E2A55;--lav-muted:#5F5A86;--sand:#F6F1E1;--sand-ink:#4A3B12;--sand-muted:#716139;--rose:#F7E9EC;--rose-ink:#5A2333;--rose-muted:#81505E;--sky:#E6F0F8;--sky-ink:#1E3A52;--sky-muted:#4E6A82;
  --f-head:"Sora","Avenir Next",-apple-system,"Segoe UI Variable Display","Segoe UI","PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic","Microsoft YaHei",sans-serif;
  --f-body:"Albert Sans","Helvetica Neue",-apple-system,"Segoe UI","PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Malgun Gothic","Microsoft YaHei",sans-serif;
  --f-mono:"SF Mono","JetBrains Mono","Menlo","Consolas","Liberation Mono",-apple-system,"PingFang SC","PingFang TC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lead:1.0625rem;--text-card:1.35rem;--text-section:2.25rem;--text-display:clamp(2rem,4.2vw,3.375rem);--text-reading:1.5rem;
  --lh-body:1.65;--lh-heading:1.2;--lh-display:1.15;--lh-code:1.85;--weight-normal:400;--weight-medium:500;--weight-bold:600;--tracking-heading:-.03em;
  --space-1:8px;--space-2:16px;--space-3:24px;--space-4:40px;--space-5:64px;--space-6:120px;--space-action:32px;--space-field:8px;--hero-top:96px;--hero-crumb-top:64px;--gutter:24px;--card-pad:32px;
  --radius-sm:10px;--radius-card:20px;--radius-band:32px;--radius-pill:999px;--radius-nav:16px;--radius-window:18px;
  --shadow:0 1px 2px rgba(28,37,38,.04),0 12px 32px -12px rgba(28,37,38,.12);--shadow-nav:0 1px 2px rgba(28,37,38,.04),0 6px 18px -10px rgba(28,37,38,.10);--shadow-stage:0 1px 2px rgba(28,37,38,.05),0 30px 60px -28px rgba(28,37,38,.28),0 12px 24px -16px rgba(28,37,38,.10);
  --width-narrow:760px;--width-standard:1200px;--width-wide:1360px;--width-art:920px;--width-plans:1000px;--stage-min:360px;
  --duration:180ms;--ease:cubic-bezier(.2,.7,.2,1);--focus:#2C7A6E;--header-type:var(--text-sm);--button-height:44px;--button-small-height:38px;--language-height:30px;--icon-size:22px;--icon-stroke:1.6;--sticky-top:140px;
}
*{box-sizing:border-box}
html{background:var(--bg);text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-padding-top:var(--sticky-top)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-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,figure,blockquote,dl,dd,pre{margin:0}
h1,h2,h3,h4,h5,h6{font-family:var(--f-head);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);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-lead);line-height:var(--lh-heading)}
h5{font-size:var(--text-base);line-height:var(--lh-heading)}
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{font-size:var(--text-sm);line-height:var(--lh-body)}
figcaption{font-size:var(--text-sm);line-height:var(--lh-body)}
code{font-family:var(--f-mono);font-size:var(--text-sm);line-height:var(--lh-code);overflow-wrap:anywhere}
th,td{font-size:var(--text-base);line-height:var(--lh-body)}
button,input,select,textarea{font-family:var(--f-body);font-size:var(--text-base);line-height:var(--lh-body)}
button{cursor:pointer}
input,select,textarea{min-width:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
svg{flex:none;vertical-align:middle}
button,select{touch-action:manipulation}
a,button,input,select,textarea,summary{ -webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
::selection{background:var(--lav);color:var(--lav-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-narrow)}
.container-wide{max-width:var(--width-wide)}
.mono,.numeric{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.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)}
.text-lead{font-size:var(--text-lead);line-height:var(--lh-body)}
.text-center{text-align:center}
.grid{display:grid;gap:var(--space-3);align-items:stretch}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:stretch}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-items:stretch}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);align-items:stretch}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-3);align-items:stretch}
.grid>*,.grid-2>*,.grid-3>*,.grid-4>*,.grid-auto>*,.flex>*{min-width:0}
.stack{display:flex;flex-direction:column;gap:var(--space-3)}
.flex{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.gap-1{gap:var(--space-1)}
.gap-2{gap:var(--space-2)}
.gap-3{gap:var(--space-3)}
.gap-4{gap:var(--space-4)}
.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-5{margin-top:var(--space-5)}
.mb-3{margin-bottom:var(--space-3)}
.mb-5{margin-bottom:var(--space-5)}
.pt-0{padding-top:0!important}
.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);background:var(--chrome);color:var(--ink);border-radius:var(--radius-sm);font-family:var(--f-mono);font-size:var(--text-sm);line-height:var(--lh-code);tab-size:2}
pre code{display:block;font-size:var(--text-sm);line-height:var(--lh-code);white-space:pre;overflow-wrap:normal}
p code,li code{background:var(--chrome);color:var(--ink);border-radius:var(--radius-sm);padding:.1em .4em}
.c-reading{background:var(--paper);color:#1C2526;padding:var(--card-pad);border-radius:var(--radius-card)}
.c-reading h2,.c-reading h3{font-size:var(--text-reading);line-height:var(--lh-heading)}
.c-reading>*+*{margin-top:var(--space-3)}
.c-reading section+section{margin-top:var(--space-5)}
.reveal{opacity:1;transform:none}
.reveal.is-pending{opacity:0;transform:translateY(14px);transition:opacity 600ms var(--ease),transform 600ms var(--ease)}
.reveal.reveal-left.is-pending{transform:translate(-14px,0)}
.reveal.reveal-right.is-pending{transform:translate(14px,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:16px;--space-6:72px;--space-5:40px;--hero-top:64px;--hero-crumb-top:48px;--card-pad:24px;--text-section:1.75rem;--sticky-top:150px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal.is-pending,.reveal.reveal-left.is-pending,.reveal.reveal-right.is-pending{opacity:1;transform:none}
}
