:root{--c-black:#000;--c-ink:#0b0b0b;--c-white:#fff;--c-grey:#8f8f8f;--c-line:#1c1c1c;--c-line-strong:#5e5e5e;--c-teal:#7cc0cf;--c-bone:#cfcfcb;color-scheme:dark;--surface:var(--c-black);--surface-raised:var(--c-ink);--text-primary:var(--c-white);--text-secondary:var(--c-grey);--border-subtle:var(--c-line);--border-strong:var(--c-line-strong);--accent:var(--c-white);--accent-text:var(--c-black);--focus-ring:var(--c-white);--data-tension:var(--c-teal);--data-compression:var(--c-bone);--glass-bg:#141414d1;--glass-border:#ffffff1a;--glass-hover:#ffffff14;--glass-bg-strong:#0c0c0ced;--shade:1;--glass-blur:blur(64px) saturate(180%);--mark-face:#0e0e0e;--mark-ink:#262626;--mark-highlight:#ffffff57;--mark-shadow:#000;--ring-face:#ffffff17;--ring-face-active:#ffffff26;--ring-edge:#ffffff21}:root[data-theme=light]{color-scheme:light;--surface:#fff;--surface-raised:#f5f5f5;--text-primary:#000;--text-secondary:#555;--border-subtle:#e2e2e2;--border-strong:#8a8a8a;--accent:#000;--accent-text:#fff;--focus-ring:#000;--data-tension:#1e5866;--data-compression:#000;--glass-bg:#ffffffe0;--glass-border:#0000001a;--glass-hover:#0000000f;--glass-bg-strong:#fffffff0;--shade:.16;--mark-face:#ededed;--mark-ink:#d6d6d6;--mark-highlight:#fffffff2;--mark-shadow:#00000047;--ring-face:#0000000a;--ring-face-active:#0000001a;--ring-edge:#0000001f}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--surface:#fff;--surface-raised:#f5f5f5;--text-primary:#000;--text-secondary:#555;--border-subtle:#e2e2e2;--border-strong:#8a8a8a;--accent:#000;--accent-text:#fff;--focus-ring:#000;--data-tension:#1e5866;--data-compression:#000;--glass-bg:#ffffffe0;--glass-border:#0000001a;--glass-hover:#0000000f;--glass-bg-strong:#fffffff0;--shade:.16;--mark-face:#ededed;--mark-ink:#d6d6d6;--mark-highlight:#fffffff2;--mark-shadow:#00000047;--ring-face:#0000000a;--ring-face-active:#0000001a;--ring-edge:#0000001f}}:root{--print-surface:#fff;--print-text:#101214;--print-rule:#9aa09b}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Fallback Menlo;src:local(Menlo);size-adjust:99.7%}@font-face{font-family:Plex Fallback Consolas;src:local(Consolas);size-adjust:109%}:root{--font-display:var(--font-sans);--font-serif:ui-serif, "New York", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", "Plex Fallback Menlo", "Plex Fallback Consolas", ui-monospace, monospace;--t-hero:clamp(2.6rem, 1.6rem + 5vw, 5.25rem);--t-xl:1.953rem;--t-lg:1.563rem;--t-md:1.25rem;--t-base:1.0625rem;--t-sm:.9375rem;--leading-tight:1.05;--leading-body:1.55;--measure:68ch;--numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-6:1.5rem;--s-8:2rem;--s-12:3rem;--s-16:4rem;--s-24:6rem;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--ease-spring:cubic-bezier(.34, 1.26, .64, 1);--ease-press:cubic-bezier(.25, .46, .45, .94);--d-press:.12s;--d-popover:.16s;--d-menu:.2s;--d-tray:.24s;--d-exit:.14s;--d-theme:.14s;--stagger:45ms}@media (prefers-reduced-motion:reduce){:root{--d-tray:.18s;--stagger:0s}}:root{--col:calc(70rem + 2 * var(--s-8));--gutter:var(--s-8)}@media (width<=767px){:root{--gutter:var(--s-4)}}*,:before,:after{box-sizing:border-box}.col{width:min(100%, var(--col));padding-inline:var(--gutter);margin-inline:auto}html{background:var(--surface);@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth}-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--surface);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--t-base);font-weight:400;line-height:var(--leading-body);font-variant-numeric:var(--numeric);-webkit-font-smoothing:antialiased;margin:0}body,.surface{transition:background-color var(--d-theme) var(--ease-out), color var(--d-theme) var(--ease-out)}[id]{scroll-margin-top:84px}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal view();animation-range:entry entry 35%}}}@keyframes reveal{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:no-preference){.enter{animation:enter .42s var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms)}}@keyframes enter{0%{opacity:0;transform:translateY(8px)}}@supports selector(::details-content){:root{interpolate-size:allow-keywords}details::details-content{block-size:0;transition:block-size .3s var(--ease-drawer), content-visibility .3s allow-discrete;overflow:clip}details[open]::details-content{block-size:auto}}.theme-switching *,.theme-switching :before,.theme-switching :after{transition:none!important}.rule{height:1px;margin:var(--s-8) 0;background:var(--border-subtle);transform-origin:0;border:0}[data-power=boot] .rule{animation:rule-draw .24s var(--ease-out) both;animation-delay:calc(var(--i,0) * var(--stagger))}@keyframes rule-draw{0%{transform:scaleX(0)}}.lamp{background:var(--border-strong);vertical-align:.05em;border-radius:50%;width:.5em;height:.5em;margin-right:.5em;display:inline-block;position:relative}.lamp:after{content:"";border-radius:inherit;background:var(--accent);position:absolute;inset:0}[data-power=boot] .lamp:after{animation:.12s steps(2,jump-none) .24s both lamp-on}@keyframes lamp-on{0%{opacity:0}}.term-cursor{animation:1.06s step-end infinite blink}[data-power=boot] .term-cursor{animation-delay:.3s;animation-fill-mode:backwards}@keyframes blink{0%{opacity:0}50%{opacity:1}}@media (prefers-reduced-motion:reduce){[data-power=boot] .rule{animation-name:rule-fade}@keyframes rule-fade{0%{opacity:0}}.term-cursor{animation:none}}.dock-hint[data-astro-cid-4pg35wjo]{z-index:39;text-align:center;width:max-content;max-width:min(92vw,34rem);color:var(--text-secondary);background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);opacity:0;transition:opacity .16s var(--ease-out), transform .16s var(--ease-out);pointer-events:none;border-radius:12px;margin:0;padding:9px 14px;font-size:13px;line-height:1.4;position:fixed;bottom:68px;left:50%;transform:translate(-50%,6px)}.dock-hint--show[data-astro-cid-4pg35wjo]{opacity:1;transition:opacity .24s var(--ease-out), transform .24s var(--ease-out);transform:translate(-50%)}.dock-hint[data-astro-cid-4pg35wjo] b[data-astro-cid-4pg35wjo]{color:var(--text-primary);font-weight:500}.dock-hint[data-astro-cid-4pg35wjo] kbd[data-astro-cid-4pg35wjo]{font:11px var(--font-mono);border:1px solid var(--glass-border);color:var(--text-primary);border-radius:4px;padding:1px 5px}.hint-touch[data-astro-cid-4pg35wjo]{display:none}@media (hover:none){.hint-fine[data-astro-cid-4pg35wjo]{display:none}.hint-touch[data-astro-cid-4pg35wjo]{display:inline}}@media (prefers-reduced-motion:reduce){.dock-hint[data-astro-cid-4pg35wjo],.dock-hint--show[data-astro-cid-4pg35wjo]{transform:translate(-50%)}}.dock-bar[data-astro-cid-4pg35wjo]{z-index:40;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.dock-pill[data-astro-cid-4pg35wjo]{min-height:40px;font:500 13px/1 var(--font-sans);color:var(--text-primary);background:var(--glass-bg-strong);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);cursor:pointer;transition:scale .15s var(--ease-press);border-radius:999px;align-items:center;gap:8px;padding:0 14px;display:flex}.dock-pill[data-astro-cid-4pg35wjo] svg[data-astro-cid-4pg35wjo]{width:14px;height:14px;color:var(--text-secondary)}.dock-pill[data-astro-cid-4pg35wjo]:active{scale:.96}[data-ring=open] .dock-bar[data-astro-cid-4pg35wjo]{opacity:0;pointer-events:none}.dock-bar[data-astro-cid-4pg35wjo]{transition:opacity .15s var(--ease-out)}@keyframes pill-shove{0%{translate:39px}60%{translate:-3px}}@keyframes pill-return{0%{translate:-39px}60%{translate:3px}}.dock-bar.is-shoved .dock-pill[data-astro-cid-4pg35wjo]{animation:pill-shove .46s var(--ease-spring) both}.dock-bar.is-returning .dock-pill[data-astro-cid-4pg35wjo]{animation:pill-return .46s var(--ease-spring) both}@media (prefers-reduced-motion:reduce){.dock-bar.is-shoved .dock-pill[data-astro-cid-4pg35wjo],.dock-bar.is-returning .dock-pill[data-astro-cid-4pg35wjo]{animation:none}}html.is-holding,html.is-holding *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dial{z-index:61;pointer-events:none;opacity:0;width:32px;height:32px;transition:opacity .12s var(--ease-out), transform .12s var(--ease-out);margin:-16px 0 0 -16px;position:fixed;transform:scale(.9)}.dial.is-on{opacity:1;transform:none}.dial svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.dial circle{fill:none;stroke:var(--text-primary);stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}@media (hover:none){.dial{width:54px;height:54px;margin:-27px 0 0 -27px}}.dock-pill-hint[data-astro-cid-4pg35wjo]{color:var(--text-secondary);font-weight:400}.dock-pill[data-astro-cid-4pg35wjo][aria-expanded=true]{opacity:0;pointer-events:none}body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}@media (width<=767px){body{padding-bottom:env(safe-area-inset-bottom)}.dock-bar[data-astro-cid-4pg35wjo]{bottom:calc(12px + env(safe-area-inset-bottom))}.dock-pill[data-astro-cid-4pg35wjo]{min-height:44px;padding:0 18px}.dock-pill-hint[data-astro-cid-4pg35wjo]{display:none}.dock-hint[data-astro-cid-4pg35wjo]{bottom:calc(64px + env(safe-area-inset-bottom))}}.site-head[data-astro-cid-nen7h5rs]{z-index:20;padding-block:var(--s-6);justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.site-head-end[data-astro-cid-nen7h5rs]{align-items:center;gap:12px;display:flex}.mark[data-astro-cid-nen7h5rs]{font:400 21px/1 var(--font-serif);letter-spacing:.04em;color:var(--text-primary);transition:scale .15s var(--ease-press), color .15s ease;text-decoration:none}.mark-photo[data-astro-cid-nen7h5rs]{transition:scale .2s var(--ease-spring);display:none}.mark-photo[data-astro-cid-nen7h5rs] img[data-astro-cid-nen7h5rs]{object-fit:cover;background:var(--surface-raised);border-radius:50%;width:28px;height:28px;display:block}.mark-photo[data-astro-cid-nen7h5rs]:active{scale:.94}@media (width<=767px){.mark-photo[data-astro-cid-nen7h5rs]{display:block}}.mark[data-astro-cid-nen7h5rs]:active{scale:.96}@media (hover:hover) and (pointer:fine){.mark[data-astro-cid-nen7h5rs]:hover{color:var(--text-secondary)}}.site-btn[data-astro-cid-nen7h5rs]{color:var(--accent-text);background:var(--accent);transition:scale .15s var(--ease-press);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none}.site-btn[data-astro-cid-nen7h5rs]:active{scale:.96}.site-foot[data-astro-cid-hkbrpulz]{padding-block:var(--s-8) var(--s-6);font:11px var(--font-mono);color:var(--text-secondary);flex-wrap:wrap;gap:8px 20px;display:flex}@media (width<=767px){.site-foot[data-astro-cid-hkbrpulz]{padding-block:var(--s-6) 2rem}}.site-foot-links[data-astro-cid-hkbrpulz]{gap:20px;margin-left:auto;display:flex}.site-foot[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--text-secondary)}@media (hover:hover) and (pointer:fine){.site-foot[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--text-primary)}}
