.ui-arrow{vertical-align:-.12em;transform-origin:50%;transform-box:view-box;width:1em;max-width:none;height:1em;transition:rotate .4s var(--exp-ease,ease);flex-shrink:0;display:inline-block}:is(a:focus-visible,button:focus-visible) .ui-arrow[data-direction=up-right]{rotate:45deg}:is(a:focus-visible,button:focus-visible) .ui-arrow[data-direction=down-right]{rotate:-45deg}@media (hover:hover) and (pointer:fine){:is(a:hover,button:hover) .ui-arrow[data-direction=up-right],.ui-arrow[data-direction=up-right]:hover{rotate:45deg}:is(a:hover,button:hover) .ui-arrow[data-direction=down-right]{rotate:-45deg}}@media (prefers-reduced-motion:reduce){.ui-arrow{transition:none}}.nav-icon[data-astro-cid-3regpghj]{flex-shrink:0;width:1.1em;height:1.1em;display:block}:root{color-scheme:light;--paper:#f6f7f5;--panel:#fcfcfb;--panel-sunk:#eff1ee;--ink:#171c1a;--ink-soft:#39433f;--ink-muted:#667069;--ink-faint:#69736c;--line:#dfe3dd;--line-strong:#c4cbc3;--accent:#1b4b7f;--accent-soft:#4c7bae;--mark:#a33b22;--mark-wash:#f0e2dc;--code-bg:#f1f3f0;--code-line:#e4e7e2;--grid:color-mix(in srgb, var(--ink) 7%, transparent);--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--font-serif:"Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--measure:66ch;--page-max:1120px;--rail:8.5rem;--gutter:clamp(1.15rem, 4vw, 3.25rem);--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4.5rem;--s9:7rem;--ease:cubic-bezier(.22, .68, .35, 1)}[data-theme=dark]{color-scheme:dark;--paper:#0d1113;--panel:#131819;--panel-sunk:#191f20;--ink:#e6eae7;--ink-soft:#bac3bd;--ink-muted:#838e88;--ink-faint:#85918a;--line:#222a29;--line-strong:#303a38;--accent:#7fb2e0;--accent-soft:#5a8fc0;--mark:#e08a6e;--mark-wash:#2a1d18;--code-bg:#111617;--code-line:#1b2223}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"kern" 1, "liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:1rem;line-height:1.7;overflow-x:hidden}img,svg,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}::selection{background:color-mix(in srgb, var(--accent) 22%, transparent)}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);letter-spacing:-.012em;text-wrap:balance;margin:0;font-weight:600;line-height:1.24}p{margin:0 0 var(--s4)}strong{font-weight:650}:where(p,li,h1,h2,h3,h4,blockquote,td,dd){text-spacing-trim:trim-start}.mono-meta{font-family:var(--font-mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--ink-muted);font-size:.72rem}.grid-field{background-image:repeating-linear-gradient(to right, var(--grid) 0 1px, transparent 1px 2rem), repeating-linear-gradient(to bottom, var(--grid) 0 1px, transparent 1px 2rem);background-position:50%}.shell{width:100%;max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.skip-link{left:var(--s4);z-index:100;padding:var(--s2) var(--s4);background:var(--ink);color:var(--paper);transition:top .2s var(--ease);font-size:.85rem;position:absolute;top:-100px}.skip-link:focus{top:var(--s4)}.rail-layout{gap:var(--s4);grid-template-columns:1fr;display:grid}@media (width>=62rem){.rail-layout{grid-template-columns:var(--rail) minmax(0, 1fr);gap:var(--s7)}}.rule{background:var(--line);border:0;height:1px;margin:0}@media (prefers-reduced-motion:no-preference){.stage-rule{transform-origin:0;animation:rule-draw .62s var(--ease) both}.stage-text{animation:stage-in .68s var(--ease) both;animation-delay:calc(90ms + var(--stage-i,0) * 70ms)}.stage-row{animation:stage-in .6s var(--ease) both;animation-delay:calc(.12s + var(--stage-i,0) * 55ms)}}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes stage-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.reveal[data-reveal-ready]{opacity:0;transition:opacity .62s var(--ease), transform .62s var(--ease);transform:translateY(16px)}.reveal.is-in{opacity:1;transform:none}}.theme-toggle{border:1px solid var(--line);color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.06em;transition:color .25s var(--ease), border-color .25s var(--ease);align-items:center;gap:.4rem;padding:.3rem .55rem;font-size:.68rem;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--line-strong)}.theme-toggle svg{width:.95rem;height:.95rem}.experimental{--paper:#090a0c;--panel:#14161a;--panel-sunk:#1c1e24;--ink:#f0f1e9;--ink-soft:#c6c8bf;--ink-muted:#9c9f96;--ink-faint:#999e93;--line:#30332e;--line-strong:#51564a;--accent:#d0ff45;--accent-soft:#b3dc3b;--font-serif:var(--font-sans);--exp-space:clamp(1.25rem, 5vw, 5rem);--exp-purple:#bfa9ff;--exp-ease:cubic-bezier(.16, 1, .3, 1);--brand-accent:#c4b5e5;--exp-nav-height:6.5rem;--mark:#bfa9ff;--mark-wash:#242031;--code-bg:#111318;--code-line:#30323d;color:var(--ink);background:var(--paper);font-family:var(--font-sans)}[data-theme=light] .experimental{--brand-accent:#65577d;--paper:#eeefe7;--panel:#f9faf4;--panel-sunk:#dfe1d6;--ink:#15170f;--ink-soft:#363b2a;--ink-muted:#626756;--ink-faint:#666a5d;--line:#c9ccbd;--line-strong:#9b9f8c;--accent:#5941bf;--accent-soft:#7660d0;--mark:#5941bf;--mark-wash:#e2dbee;--code-bg:#e3e5dc;--code-line:#c9ccbd}.experimental :is(a,button){-webkit-tap-highlight-color:transparent}.experimental :focus-visible{outline-color:var(--accent);outline-offset:5px}.exp-nav{z-index:20;margin-inline:var(--exp-space);height:var(--exp-nav-height);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:2rem;display:flex;position:relative}.exp-brand{align-items:center;gap:1rem;display:flex}.exp-brand__name{color:var(--ink);white-space:nowrap;font-size:clamp(1.25rem,1.8vw,1.7rem);font-weight:700;line-height:1.5}.exp-brand__accent{color:var(--brand-accent);font-weight:inherit;margin-inline:.15em}.exp-nav nav{gap:clamp(1rem,3vw,3rem);margin-left:auto;font-size:1.05rem;font-weight:500;display:flex}.exp-nav nav a{align-items:center;gap:.4rem;display:inline-flex;position:relative}.exp-nav nav a:after{content:"";background:var(--accent);transform-origin:100%;height:2px;transition:transform .35s var(--exp-ease);position:absolute;bottom:-.25rem;left:0;right:0;transform:scaleX(0)}.exp-nav nav a:hover:after{transform-origin:0;transform:scaleX(1)}.exp-nav nav a[aria-current=page]{color:var(--accent)}.exp-nav nav a[aria-current=page]:after{transform:scaleX(1)}.reading-progress{z-index:80;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.reading-progress i{background:linear-gradient(90deg, var(--exp-purple), var(--accent));transform-origin:0;height:100%;display:block;transform:scaleX(0)}@view-transition{navigation:auto}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}.exp-theme{width:2.5rem;height:2.5rem;transition:rotate .5s var(--exp-ease), color .3s;border:0;flex:0 0 2.5rem;place-items:center;padding:0;display:grid}.exp-theme__icon{background:linear-gradient(90deg,currentColor 50%,#0000 50%);border:1.5px solid;border-radius:50%;width:1.6rem;height:1.6rem}.exp-theme:hover{color:var(--accent);rotate:180deg}.exp-theme:disabled{opacity:.5;cursor:default}.exp-footer{padding:5rem var(--exp-space) 1.5rem}.experimental:has([data-exp-hero]) .exp-footer{overflow:clip}.exp-footer__lead{justify-content:space-between;align-items:end;gap:2rem;display:flex}.exp-footer__lead p{font-family:"Arial Black", var(--font-sans);letter-spacing:-.06em;margin:0;font-size:clamp(2.5rem,7vw,7rem);font-weight:900;line-height:.95}.exp-footer__lead p>span{color:var(--accent)}.footer-email{letter-spacing:.01em;align-items:center;gap:1.2rem;max-width:100%;padding-block:.5rem;font:400 clamp(1.1rem,1.6vw,1.65rem)/1.5 Segoe UI,Helvetica Neue,sans-serif;display:inline-flex}.footer-email__address{overflow-wrap:anywhere;min-width:0}.footer-email__name{font-weight:600}.footer-email__at{color:var(--accent);margin-inline:.06em}.footer-email__domain{color:var(--ink-muted);transition:color .3s}.footer-email__arrow{background:var(--accent);width:2.6rem;height:2.6rem;color:var(--paper);border-radius:50%;flex:0 0 2.6rem;place-items:center;font-size:1.35rem;display:grid}.footer-email:hover .footer-email__domain{color:var(--ink)}.exp-footer__links{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,8vw,8rem);margin-top:4rem;display:grid}.footer-directory{min-width:0;padding-top:1.25rem}.footer-directory h2{letter-spacing:-.04em;margin-bottom:1.5rem;font-size:clamp(1.4rem,2.5vw,2.2rem);font-weight:700;position:relative}.footer-directory a{color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0;font-size:1.125rem;display:flex}.footer-directory a>span{transition:translate .4s var(--exp-ease), color .3s}.footer-directory a i{color:var(--ink-faint);transition:translate .4s var(--exp-ease), color .3s;font-style:normal}.footer-directory a:hover>span{color:var(--accent);translate:.3rem}.footer-directory a:hover i{color:var(--accent);translate:.15rem -.15rem}.exp-footer__base{border-top:1px solid var(--line);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:1.2rem;font-size:.8rem;display:flex}.exp-cursor{z-index:100;border:2px solid var(--accent);pointer-events:none;will-change:transform;opacity:0;width:2.25rem;height:2.25rem;transition:width .3s var(--exp-ease), height .3s var(--exp-ease), background .3s, border-color .3s, opacity .2s;background:0 0;border-radius:50%;display:none;position:fixed;top:0;left:0}.exp-cursor.is-link{background:var(--accent);width:1rem;height:1rem}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.experimental[data-cursor-ready] .exp-cursor{display:flex}.experimental[data-cursor-ready],.experimental[data-cursor-ready] :is(a,button:not(:disabled),summary,[role=button]:not([aria-disabled=true])){cursor:none}}.experimental[data-page-hidden] *,.experimental[data-page-hidden] :before,.experimental[data-page-hidden] :after{animation-play-state:paused!important}html[data-exp-theme-transition]::view-transition-old(root){animation:none}html[data-exp-theme-transition]::view-transition-new(root){mix-blend-mode:normal;animation:.65s cubic-bezier(.16,1,.3,1) both exp-theme-iris}@keyframes exp-theme-iris{0%{clip-path:circle(0 at var(--theme-x) var(--theme-y))}to{clip-path:circle(160vmax at var(--theme-x) var(--theme-y))}}@media (width<=48rem){.experimental{--exp-nav-height:calc(6.5rem + 1px)}.exp-nav{grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding-block:1rem;display:grid}.exp-brand__name{font-size:1.2rem}.exp-nav nav{grid-area:2/1/auto/-1;justify-content:space-between;gap:1rem;margin-left:0;font-size:1rem;line-height:1.5}.exp-theme{flex-basis:2rem;grid-area:1/2;width:2rem;height:2rem;font-size:1rem}.exp-theme__icon{width:1.4rem;height:1.4rem}.exp-footer{padding-top:3rem}.exp-footer__lead{flex-direction:column;align-items:start}.exp-footer__links{gap:1.5rem;margin-top:3rem}.footer-directory h2{margin-bottom:.75rem;font-size:1.35rem}.footer-directory a{gap:.5rem;padding-block:.65rem;font-size:1rem}.exp-footer__base{margin-top:2.5rem}}@media (prefers-reduced-motion:reduce){.exp-cursor{display:none!important}.footer-email__domain,.footer-directory a :is(span,i){transition:none}.footer-directory a:hover :is(span,i){translate:none}}
