:root{--p-ivory:#fffaeb;--p-cream:#fff0c2;--p-yellow:#ffd900;--p-gold-100:#ffe295;--p-gold-300:#ffd06a;--p-gold-500:#ffb83e;--p-amber:#ffa110;--p-amber-deep:#ff8a00;--p-orange:#ff8105;--p-flame:#fb6424;--p-brand:#fa520f;--p-brand-ink:#a63a00;--p-black:#1f1f1f;--p-ember-900:#17120e;--p-ember-800:#1e1813;--p-ember-700:#241c17;--p-ember-600:#382c24;--p-ember-500:#4a3c31;--font-sans:Arial, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-display:clamp(2.25rem, 7.4vw, 5.125rem);--fs-h1:clamp(1.875rem, 4.4vw, 3.5rem);--fs-h2:clamp(1.625rem, 3.4vw, 3rem);--fs-h3:clamp(1.375rem, 2.4vw, 2rem);--fs-h4:clamp(1.25rem, 1.9vw, 1.875rem);--fs-h5:clamp(1.125rem, 1.5vw, 1.5rem);--fs-body:1rem;--fs-sm:.875rem;--fs-xs:.8125rem;--fw:400;--fw-em:400;--lh-display:1;--lh-tight:.95;--lh-heading:1.2;--lh-ui:1.5;--lh-body:1.8;--ls-display:-.025em;--ls-label:.14em;--ls-zh:0;--sp-2:2px;--sp-4:4px;--sp-8:8px;--sp-10:10px;--sp-12:12px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--sp-32:32px;--sp-40:40px;--sp-48:48px;--sp-64:64px;--sp-80:80px;--sp-98:98px;--sp-100:100px;--section-y:clamp(64px, 9vw, 100px);--r:0;--r-sm:0;--r-pill:0;--w-container:1280px;--w-reading:40rem;--w-toc:200px;--gutter:clamp(20px, 5vw, 48px);--header-h:64px;--rule:1px}:root,:root[data-theme=light]{color-scheme:light;--bg:var(--p-ivory);--bg-alt:#fff6dd;--surface:var(--p-cream);--surface-strong:#fff;--border:#e8d7ae;--border-strong:#d3b980;--text:var(--p-black);--text-soft:#5c5245;--text-mute:#6b5f50;--text-faint:#8a7a6a;--brand:var(--p-brand);--brand-ink:var(--p-brand-ink);--accent:var(--p-amber);--gold:#ffd900;--link:var(--p-brand-ink);--link-hover:var(--p-brand);--focus:var(--p-brand);--on-brand:var(--p-black);--on-solid:#fff;--selection:var(--p-gold-100);--shadow-focus:#7f63151f -8px 16px 39px, #7f63151a -33px 64px 72px, #7f63150f -73px 144px 97px;--shadow-soft:#7f631524 0 2px 10px;--glow:radial-gradient(62% 58% at 12% 4%, #ffb83e57 0%, #ffa11024 42%, #fffaeb00 74%)}:root[data-theme=dark]{color-scheme:dark;--bg:var(--p-ember-900);--bg-alt:var(--p-ember-800);--surface:var(--p-ember-700);--surface-strong:#2b221b;--border:var(--p-ember-600);--border-strong:var(--p-ember-500);--text:#f5ece0;--text-soft:#b8a894;--text-mute:#94826f;--text-faint:#7a6b5c;--brand:var(--p-brand);--brand-ink:var(--p-amber);--accent:var(--p-amber);--gold:var(--p-gold-300);--link:var(--p-amber);--link-hover:var(--p-gold-300);--focus:var(--p-amber);--on-brand:var(--p-black);--on-solid:var(--p-ember-900);--selection:#4a3520;--shadow-focus:none;--shadow-soft:none;--elev-ring:inset 0 0 0 1px #ffa1101f;--glow:radial-gradient(62% 58% at 12% 4%, #ff810533 0%, #fa520f14 44%, #17120e00 76%)}:root{--elev-ring:none;--code-bg:#1a1613;--code-border:#382c24;--code-text:#e8ded1;--code-comment:#a3947f;--code-keyword:#fb6424;--code-string:#ffd06a;--code-number:#ffb83e;--code-macro:#c9a27a;--code-function:#74b6f0;--code-type:#57c9b8;--code-punct:#8f8172;--code-line:#fffaeb0f;--dur-1:.14s;--dur-2:.32s;--dur-3:.62s;--dur-loop:2.2s;--ease-spring:cubic-bezier(.34, 1.4, .5, 1);--ease-land:cubic-bezier(.16, 1, .3, 1);--ease-loop:cubic-bezier(.45, 0, .55, 1);--slide-sm:24px;--slide-md:40px;--slide-lg:64px;--stagger:70ms}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--bg);min-height:100svh;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;display:flex}img,svg,video,canvas{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}ul,ol{padding-left:1.25em}a{color:var(--link);text-decoration:none}::selection{background:var(--selection);color:var(--text)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--gutter);z-index:100;padding:var(--sp-12) var(--sp-20);background:var(--text);color:var(--on-solid);font-size:var(--fs-sm);position:absolute;top:-100px}.skip-link:focus-visible{top:var(--sp-12)}.container{width:100%;max-width:var(--w-container);padding-inline:var(--gutter);margin-inline:auto}main{flex:1 0 auto}.section+.section{border-top:var(--rule) solid var(--border)}.section{padding-block:var(--section-y);scroll-margin-top:calc(var(--header-h) + var(--sp-24))}.section-head{justify-content:space-between;align-items:baseline;gap:var(--sp-24);margin-bottom:var(--sp-40);flex-wrap:wrap;display:flex}.section-head__more{font-size:var(--fs-sm);color:var(--brand-ink)}.display{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-zh);font-weight:var(--fw);text-wrap:balance}.h1,.h2,.h3,.h4{font-weight:var(--fw);letter-spacing:var(--ls-zh);text-wrap:balance}.h1{font-size:var(--fs-h1);line-height:var(--lh-tight)}.h2{font-size:var(--fs-h2);line-height:var(--lh-tight)}.h3{font-size:var(--fs-h3);line-height:var(--lh-heading)}.h4{font-size:var(--fs-h5);line-height:var(--lh-heading)}.label{font-size:var(--fs-xs);line-height:var(--lh-ui);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-mute)}.lede{color:var(--text-soft);text-wrap:pretty;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.7}.meta{font-size:var(--fs-sm);color:var(--text-mute);font-variant-numeric:tabular-nums}.text-soft{color:var(--text-soft)}.btn{justify-content:center;align-items:center;gap:var(--sp-8);padding:var(--sp-12) var(--sp-24);font-size:var(--fs-sm);line-height:var(--lh-ui);border-radius:var(--r);border:var(--rule) solid transparent;text-align:center;display:inline-flex}.btn--solid{background:var(--text);color:var(--on-solid)}.btn--cream{background:var(--surface);color:var(--text)}.btn--outline{border-color:var(--border-strong);color:var(--text)}.btn--brand{background:var(--brand);color:var(--on-brand)}.btn--text{padding:0 0 var(--sp-4);border-bottom:var(--rule) solid var(--border-strong);color:var(--text)}.btn-row{gap:var(--sp-12);flex-wrap:wrap;display:flex}.tag{padding:var(--sp-4) var(--sp-10);border:var(--rule) solid var(--border);font-size:var(--fs-xs);line-height:var(--lh-ui);color:var(--text-mute);white-space:nowrap;display:inline-block}.tag-row{gap:var(--sp-8);flex-wrap:wrap;padding:0;list-style:none;display:flex}.band{width:100%;height:8px;display:flex}.band>span{flex:1 1 0}.band--tall{height:14px}.band--chip{width:46px;height:10px}.card{padding:var(--sp-24);background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--r);box-shadow:var(--elev-ring);color:inherit;display:block}.card--focus{background:var(--surface-strong);box-shadow:var(--shadow-focus), var(--elev-ring);border-color:#0000}.card--plain{border-color:var(--border);background:0 0}.card-title{font-size:var(--fs-h5);line-height:var(--lh-heading);font-weight:var(--fw);color:var(--text);text-wrap:pretty}.card-summary{margin-top:var(--sp-12);font-size:var(--fs-sm);color:var(--text-soft);text-wrap:pretty;line-height:1.75}.card-foot{justify-content:space-between;align-items:center;gap:var(--sp-16);margin-top:var(--sp-20);flex-wrap:wrap;display:flex}.rule-list{padding:0;list-style:none}.rule-list>li+li{border-top:var(--rule) solid var(--border)}.year-group+.year-group{margin-top:var(--sp-64)}.year-group__title{font-size:var(--fs-h2);line-height:var(--lh-tight);color:var(--text-faint);margin-bottom:var(--sp-16);font-variant-numeric:tabular-nums}.grid-2{gap:var(--sp-20);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));display:grid}.prose{max-width:var(--w-reading);font-size:1.0625rem;line-height:var(--lh-body);color:var(--text)}.prose>*+*{margin-top:var(--sp-24)}.prose h2{margin-top:var(--sp-64);font-size:var(--fs-h3);line-height:var(--lh-heading);letter-spacing:var(--ls-zh);scroll-margin-top:calc(var(--header-h) + var(--sp-24))}.prose h3{margin-top:var(--sp-48);font-size:var(--fs-h5);line-height:var(--lh-heading);letter-spacing:var(--ls-zh);scroll-margin-top:calc(var(--header-h) + var(--sp-24))}.prose p,.prose li{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:var(--sp-8)}.prose strong{font-weight:var(--fw);color:var(--brand-ink)}.prose blockquote{padding:var(--sp-4) 0 var(--sp-4) var(--sp-24);border-left:2px solid var(--accent);color:var(--text-soft)}.prose blockquote>*+*{margin-top:var(--sp-16)}.prose hr{height:var(--rule);background:var(--border);margin-block:var(--sp-48);border:0}.prose a{color:var(--brand-ink);border-bottom:var(--rule) solid var(--border-strong)}.prose a.anchor{color:var(--text-faint);border-bottom:0}.prose img{border:var(--rule) solid var(--border);width:100%}.prose table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.prose th,.prose td{padding:var(--sp-10) var(--sp-12);border:var(--rule) solid var(--border);text-align:left}.prose th{background:var(--bg-alt);font-weight:var(--fw)}.prose pre{padding:var(--sp-20) var(--sp-24);background:var(--code-bg);border:var(--rule) solid var(--code-border);border-radius:var(--r);max-width:100%;font-family:var(--font-mono);font-size:var(--fs-sm);tab-size:2;line-height:1.7;overflow-x:auto}.prose pre code{font-family:inherit;font-size:inherit}.prose :not(pre)>code{padding:2px var(--sp-8);background:var(--bg-alt);border:var(--rule) solid var(--border);color:var(--brand-ink);font-family:var(--font-mono);font-size:.875em}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(10px);border-bottom:var(--rule) solid var(--border);position:sticky;top:0}.site-header__inner{align-items:center;gap:var(--sp-24);min-height:var(--header-h);display:flex}.brand{align-items:center;gap:var(--sp-10);color:var(--text);margin-right:auto;display:inline-flex}.brand__name{font-size:var(--fs-sm);letter-spacing:var(--ls-label);text-transform:uppercase}.site-nav{align-items:center;gap:var(--sp-24);display:flex}.site-nav a{font-size:var(--fs-sm);color:var(--text-soft)}.theme-toggle{border:var(--rule) solid var(--border);width:34px;height:34px;color:var(--text-soft);justify-content:center;align-items:center;display:inline-flex}.hero{min-height:calc(100svh - var(--header-h));padding-block:var(--sp-80) var(--sp-100);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background-image:var(--glow);pointer-events:none;position:absolute;inset:0}.hero__inner{max-width:100%;position:relative}.hero__eyebrow{margin-bottom:var(--sp-24)}.hero__title{font-size:var(--fs-hero,var(--fs-display));margin-bottom:var(--sp-32)}.hero__credit{font-size:var(--fs-xs);line-height:var(--lh-ui);color:var(--text-mute);margin-top:calc(-1 * var(--sp-16));margin-bottom:var(--sp-40)}.hero__credit i{font-style:italic}.hero__lede{max-width:46ch;margin-bottom:var(--sp-40)}.hero__band{max-width:260px;margin-bottom:var(--sp-40);position:relative}.scroll-cue{align-items:center;gap:var(--sp-10);color:var(--text-mute);flex-direction:column;display:flex;position:absolute;bottom:clamp(24px,6vh,64px);left:50%;transform:translate(-50%)}.scroll-cue__icon{width:22px;height:40px}.scroll-cue__label{letter-spacing:var(--ls-label);text-transform:uppercase;font-size:11px}.doc{grid-template-columns:var(--w-toc) minmax(0, 1fr);padding-block:var(--sp-48) var(--section-y);align-items:start;gap:clamp(32px,4vw,72px);display:grid}.doc__body>.section:first-child{padding-top:0}.doc__aside{top:calc(var(--header-h) + var(--sp-32));position:sticky}.toc__title{margin-bottom:var(--sp-16)}.toc__list{flex-direction:column;padding:0;list-style:none;display:flex}.toc__link{padding:var(--sp-8) 0 var(--sp-8) var(--sp-16);border-left:var(--rule) solid var(--border);color:var(--text-mute);font-size:var(--fs-sm);line-height:var(--lh-ui);display:block;position:relative}.toc__link[aria-current=true]{color:var(--text)}.toc__link[aria-current=true]:before{content:"";background:var(--brand);width:2px;position:absolute;top:0;bottom:0;left:-1px}.toc-launcher,.toc-drawer[hidden]{display:none}.toc-drawer{inset:var(--header-h) 0 0 auto;z-index:60;width:min(78vw,300px);padding:var(--sp-24) var(--sp-20);background:var(--bg);border-left:var(--rule) solid var(--border);position:fixed;overflow-y:auto}.toc-drawer__head{justify-content:space-between;align-items:center;gap:var(--sp-16);margin-bottom:var(--sp-16);display:flex}.toc-scrim{z-index:55;background:color-mix(in srgb, var(--text) 32%, transparent);position:fixed;inset:0}.toc-scrim[hidden]{display:none}.site-footer{margin-top:var(--section-y);background:linear-gradient(180deg, #3a2113 0%, #241811 42%, var(--p-black) 100%);color:#f0e7dc;flex-shrink:0}.site-footer__inner{gap:var(--sp-40);padding-block:var(--sp-64) var(--sp-40);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));display:grid}.site-footer h2{font-size:var(--fs-xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:#f0e7dc8c;margin-bottom:var(--sp-16)}.site-footer a{color:#f0e7dc}.site-footer ul{gap:var(--sp-10);font-size:var(--fs-sm);flex-direction:column;padding:0;list-style:none;display:flex}.site-footer__bottom{justify-content:space-between;align-items:center;gap:var(--sp-16);padding-block:var(--sp-24);border-top:var(--rule) solid #f0e7dc29;font-size:var(--fs-xs);color:#f0e7dcad;flex-wrap:wrap;display:flex}.site-footer__bottom a{color:#f0e7dcad}.page-head{padding-block:var(--sp-80) var(--sp-48)}.page-head__title{margin-bottom:var(--sp-16)}.page-head__lede{max-width:52ch}.empty-state{padding-block:var(--sp-80);max-width:46ch}.empty-state__blocks{height:10px;margin-bottom:var(--sp-24);gap:5px;display:flex}.empty-state__blocks i{width:30px;height:100%;display:block}.empty-state__blocks i:first-child{background:var(--p-yellow)}.empty-state__blocks i:nth-child(2){background:var(--p-amber)}.empty-state__blocks i:nth-child(3){background:var(--p-orange)}.empty-state__blocks i:nth-child(4){background:var(--p-flame)}.empty-state__blocks i:nth-child(5){background:var(--p-brand)}.empty-state__title{font-size:var(--fs-h3);color:var(--text);margin-bottom:var(--sp-12);line-height:1.3}.empty-state__note{color:var(--text-mute)}@media (width<=900px){:root{--header-h:56px;--w-toc:100%}.doc{grid-template-columns:minmax(0,1fr)}.doc__aside{display:none}.toc-launcher{display:inline-flex}.site-nav{gap:var(--sp-16)}.hero__inner{max-width:100%}}@media (width<=560px){.site-nav a:not(:first-child){display:none}.hero{padding-block:var(--sp-48) var(--sp-80)}.card{padding:var(--sp-20)}}.js [data-enter]{animation:slide-in-left var(--dur-3) var(--ease-land) both;animation-delay:calc(var(--i,0) * var(--stagger))}@keyframes slide-in-left{0%{opacity:0;transform:translate3d(calc(-1 * var(--slide-lg)), 0, 0)}to{opacity:1;transform:none}}.js .scroll-cue{animation:cue-appear var(--dur-3) var(--ease-land) both;animation-delay:calc(5 * var(--stagger))}@keyframes cue-appear{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.js [data-reveal]{opacity:0;transform:translate3d(calc(-1 * var(--slide-md)), 0, 0)}.js [data-reveal].is-in{opacity:1;transition:opacity var(--dur-2) var(--ease-land), transform var(--dur-2) var(--ease-spring);transition-delay:calc(var(--i,0) * var(--stagger));transform:none}.js [data-reveal=sm]{transform:translate3d(calc(-1 * var(--slide-sm)), 0, 0)}.js .scroll-cue__icon{animation:cue-bob var(--dur-loop) var(--ease-loop) infinite}@keyframes cue-bob{0%,to{transform:translate(0,0)}50%{transform:translateY(7px)}}.toc__indicator{display:none}.js .toc__inner{position:relative}.js .toc__indicator{width:2px;height:var(--toc-h,0px);background:var(--brand);transform:translate3d(0, var(--toc-y,0px), 0);transition:transform var(--dur-2) var(--ease-spring), height var(--dur-2) var(--ease-spring), opacity var(--dur-1) var(--ease-land);will-change:transform;display:block;position:absolute;top:0;left:0}.js .toc__link[aria-current=true]:before{opacity:0}.js .toc-drawer{transition:transform var(--dur-2) var(--ease-spring);will-change:transform;transform:translate(100%)}.js .toc-drawer.is-open{transform:none}.js .toc-scrim{opacity:0;transition:opacity var(--dur-2) var(--ease-land)}.js .toc-scrim.is-open{opacity:1}.js .card,.js .post-item__link{transition:transform var(--dur-1) var(--ease-spring), border-color var(--dur-1) var(--ease-land), background-color var(--dur-1) var(--ease-land)}.js .card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.js .post-item__link:hover{transform:translate(3px)}.js .btn{transition:transform var(--dur-1) var(--ease-spring), background-color var(--dur-1) var(--ease-land), border-color var(--dur-1) var(--ease-land), color var(--dur-1) var(--ease-land)}.js .btn:hover{transform:translateY(-1px)}.js .btn:active{transform:translate(0,0)scale(.985)}.js .site-nav a,.js .site-footer a,.js .section-head__more,.js .contact-list__value,.js .brand{transition:background-size var(--dur-1) var(--ease-land);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px}.js .site-nav a:hover,.js .site-footer a:hover,.js .section-head__more:hover,.js .contact-list__value:hover,.js .brand:hover{background-size:100% 1px}.js .tag{transition:border-color var(--dur-1) var(--ease-land), color var(--dur-1) var(--ease-land), background-color var(--dur-1) var(--ease-land)}.js .tag:hover{border-color:var(--brand);color:var(--brand-ink)}.js .theme-toggle{transition:transform var(--dur-1) var(--ease-spring), border-color var(--dur-1) var(--ease-land)}.js .theme-toggle:hover{border-color:var(--border-strong);transform:rotate(12deg)}.js .theme-toggle:active{transform:rotate(12deg)scale(.94)}.js .article-nav__item{transition:transform var(--dur-1) var(--ease-spring), border-color var(--dur-1) var(--ease-land)}.js .article-nav__item:hover{border-color:var(--border-strong);transform:translateY(-2px)}.js [data-enter],.js [data-reveal].is-in{backface-visibility:hidden;animation-fill-mode:both}:root[data-theme=light] .theme-toggle__sun[data-astro-cid-nen7h5rs],:root[data-theme=dark] .theme-toggle__moon[data-astro-cid-nen7h5rs]{display:none}
