@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}/*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:var(--stack-sans);--font-mono:var(--stack-mono)}}@layer base{:root{color-scheme:dark;--bg:#0b0d11;--panel:#12151b;--bar:#171b22;--raised:#1c212a;--fg:#e7e9ee;--text-2:#b4bbc8;--muted:#8c95a5;--faint:#6b7485;--accent:#7be0a4;--accent-ink:#08130d;--accent-hover:#a0ebbe;--path:#8ab4ff;--danger:#ff8a8a;--border:#252b36;--border-strong:#343c4b;--input-border:#667084;--syn-keyword:#e8a0d0;--syn-string:#8fd19e;--syn-constant:#e5b567;--syn-comment:#8c95a5;--pill-bg:#12151bb8;--glow:#7be0a412;--grain:.05;--grain-filter:none;--diagram-filter:invert(1)hue-rotate(180deg);--selection:#7be0a447;--shadow-1:0 1px 0 #ffffff0a inset,0 8px 24px -10px #0000008c;--shadow-2:0 1px 0 #ffffff0f inset,0 16px 40px -12px #0009;--shadow-win:0 1px 0 #ffffff12 inset,0 2px 6px #00000059,0 28px 56px -18px #000000bf,0 0 0 1px #00000080;--shadow-hero:var(--shadow-win),0 70px 110px -50px #000000b3;--moon-display:block;--sun-display:none;--font-sans:"Geist Variable","Geist Fallback","Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono Variable","JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--r-win:12px;--r-btn:8px;--r-chip:6px;--r-kbd:5px;--r-code:4px;--frame:1120px;--measure:62ch;--measure-prose:66ch;--gutter:16px;--sec-gap:72px;--date-col:168px;--tap:44px;--pill-w:760px;--ease:cubic-bezier(.2,.7,.2,1);--fs-display:clamp(2.75rem,1.6rem + 5vw,5rem);--fs-h1-post:clamp(2rem,1.4rem + 2.6vw,3rem);--fs-lead:clamp(1.125rem,1.02rem + .5vw,1.375rem);--hairline:var(--border);--code-bg:var(--raised);--focus:var(--accent);--stack-sans:var(--font-sans);--stack-mono:var(--font-mono)}@media (width>=640px){:root{--gutter:32px}}@media (width>=768px){:root{--sec-gap:112px}}@media (width>=1024px){:root{--gutter:48px}}:root[data-theme=light]{color-scheme:light;--bg:#f4f4f1;--panel:#fff;--bar:#edede8;--raised:#f0f0eb;--fg:#14171c;--text-2:#3b424e;--muted:#596270;--faint:#7a8291;--accent:#0b7a45;--accent-ink:#fff;--accent-hover:#085f36;--path:#1f5fbf;--danger:#b3261e;--border:#d9d9d2;--border-strong:#c6c6bd;--input-border:#7a8291;--syn-keyword:#8a1c5c;--syn-string:#1a6b2e;--syn-constant:#7d4300;--syn-comment:#596270;--pill-bg:#ffffffb8;--glow:transparent;--grain:.035;--grain-filter:invert(1);--diagram-filter:none;--selection:#0b7a4538;--shadow-1:0 1px 2px #14171c0f,0 8px 20px -12px #14171c2e;--shadow-2:0 1px 2px #14171c14,0 16px 32px -14px #14171c3d;--shadow-win:0 1px 2px #14171c14,0 28px 56px -22px #14171c47;--shadow-hero:var(--shadow-win),0 60px 90px -50px #14171c40;--moon-display:none;--sun-display:block}@media (prefers-color-scheme:light){:root:not([data-theme=dark]):not([data-theme=light]){color-scheme:light;--bg:#f4f4f1;--panel:#fff;--bar:#edede8;--raised:#f0f0eb;--fg:#14171c;--text-2:#3b424e;--muted:#596270;--faint:#7a8291;--accent:#0b7a45;--accent-ink:#fff;--accent-hover:#085f36;--path:#1f5fbf;--danger:#b3261e;--border:#d9d9d2;--border-strong:#c6c6bd;--input-border:#7a8291;--syn-keyword:#8a1c5c;--syn-string:#1a6b2e;--syn-constant:#7d4300;--syn-comment:#596270;--pill-bg:#ffffffb8;--glow:transparent;--grain:.035;--grain-filter:invert(1);--diagram-filter:none;--selection:#0b7a4538;--shadow-1:0 1px 2px #14171c0f,0 8px 20px -12px #14171c2e;--shadow-2:0 1px 2px #14171c14,0 16px 32px -14px #14171c3d;--shadow-win:0 1px 2px #14171c14,0 28px 56px -22px #14171c47;--shadow-hero:var(--shadow-win),0 60px 90px -50px #14171c40;--moon-display:none;--sun-display:block}}@font-face{font-family:Geist Fallback;src:local(Arial);size-adjust:103%;ascent-override:97.5%;descent-override:28.6%;line-gap-override:0%}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);min-height:100dvh;color:var(--text-2);font:400 1rem/1.65 var(--font-sans);font-feature-settings:"ss01" 0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0;position:relative}body:before{content:"";z-index:0;pointer-events:none;opacity:var(--grain);filter:var(--grain-filter);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;top:0;right:0;bottom:0;left:0}main,.status{z-index:1;position:relative}main{display:flow-root}img,svg,video{max-width:100%;display:block}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}[hidden]{display:none!important}::selection{background:var(--selection);color:var(--fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pill :focus-visible,.win :focus-visible{outline-offset:3px}main:focus{outline:none}.frame{width:min(100% - 2*var(--gutter),var(--frame));z-index:1;margin-inline:auto;position:relative}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;border-radius:var(--r-btn);border:1px solid var(--border-strong);background:var(--panel);color:var(--fg);font:500 .9375rem/1 var(--font-sans);padding:10px 16px;text-decoration:none;position:fixed;top:16px;left:16px;transform:translateY(-200%)}.skip:focus{transform:none}h1,h2,h3,h4,p,ul,ol,figure,dl,dd,blockquote{margin:0}ul,ol{padding:0;list-style:none}.mono{font-family:var(--font-mono);font-variant-ligatures:none}.display{font:600 var(--fs-display)/1.02 var(--font-sans);letter-spacing:-.035em;color:var(--fg);text-wrap:balance}.lead{font:400 var(--fs-lead)/1.5 var(--font-sans);letter-spacing:-.005em;color:var(--fg);text-wrap:balance}h2.h2,.h2{font:600 1.75rem/1.2 var(--font-sans);letter-spacing:-.02em;color:var(--fg)}h3.h3,.h3{font:600 1.375rem/1.25 var(--font-sans);letter-spacing:-.015em;color:var(--fg)}.small{color:var(--muted);font-size:.875rem;line-height:1.55}.mono-s{font:400 .8125rem/1.5 var(--font-mono);font-variant-ligatures:none}.measure{max-width:var(--measure)}code,kbd,samp{font-family:var(--font-mono);font-variant-ligatures:none}.link{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;transition:color .16s var(--ease);text-decoration-thickness:1px}.link:hover{color:var(--accent)}.ext{vertical-align:-1px;flex:none;width:11px;height:11px;margin-left:4px;display:inline-block}.win{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-win);box-shadow:var(--shadow-1);position:relative;overflow:hidden}.win__bar{background:var(--bar);border-bottom:1px solid var(--border);height:32px;font:500 .75rem/1 var(--font-mono);letter-spacing:.02em;color:var(--muted);align-items:center;gap:12px;padding:0 14px;display:flex}.win--tall>.win__bar,.win__bar--tall{height:36px}.win__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.win__slot{white-space:nowrap;margin-left:auto}.dots{flex:none;gap:7px;display:inline-flex}.dots i{background:var(--faint);opacity:.55;border-radius:50%;width:9px;height:9px}.btn{border-radius:var(--r-btn);height:44px;font:500 .9375rem/1 var(--font-sans);cursor:pointer;white-space:nowrap;transition:background-color .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease),transform .16s var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:2px;padding:0 20px;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:var(--accent-ink);box-shadow:inset 0 1px #ffffff59,0 1px 2px #00000059}.btn--primary:hover{background:var(--accent-hover)}.btn--ghost{border-color:var(--border-strong);color:var(--fg);background:0 0}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}kbd,.kbd{border-radius:var(--r-kbd);font:500 .75rem/1.4 var(--font-mono);color:var(--text-2);background:var(--raised);border:1px solid var(--border-strong);border-bottom-width:2px;padding:1px 6px;display:inline-block}.tag{border-radius:var(--r-chip);font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);background:var(--raised);padding:2px 8px;display:inline-block}.chip{border-radius:var(--r-chip);font:400 .8125rem/1.5 var(--font-mono);color:var(--text-2);border:1px solid var(--border-strong);background:0 0;padding:5px 10px;display:inline-block}.badge{border-radius:var(--r-chip);white-space:nowrap;font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);border:1px solid var(--border);padding:1px 8px;display:inline-block}.pillbar{z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;inset:16px 0 auto}.pill{pointer-events:auto;width:min(100% - 32px,var(--pill-w));border:1px solid var(--border);background:var(--pill-bg);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);height:48px;box-shadow:var(--shadow-2);border-radius:999px;align-items:center;gap:8px;padding:0 6px 0 20px;display:flex}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.pill{background:var(--panel)}}.mark{font:500 .9375rem/1 var(--font-mono);letter-spacing:-.01em;color:var(--fg);border-radius:6px;justify-self:start;text-decoration:none}.mark span{color:var(--accent)}.pill__links{gap:2px;margin-inline:auto;display:flex}.pill__links a{height:40px;font:500 .875rem/1 var(--font-sans);color:var(--text-2);transition:color .16s var(--ease);border-radius:999px;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex;position:relative}.pill__links a:hover,.pill__links a[aria-current]{color:var(--fg)}.pill__links a[aria-current]:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:2px;left:50%}.pill__end{justify-self:end;align-items:center;gap:2px;display:flex}@media (width>=640px){.pill{grid-template-columns:1fr auto 1fr;display:grid}.pill__links{margin-inline:0}}.pill__blog{height:40px;font:500 .875rem/1 var(--font-sans);color:var(--text-2);transition:color .16s var(--ease);border-radius:999px;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.pill__blog:hover{color:var(--fg)}.icon-btn{width:40px;height:40px;color:var(--text-2);cursor:pointer;transition:background-color .16s var(--ease),color .16s var(--ease);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--raised);color:var(--fg)}.icon-btn svg{width:18px;height:18px}.icon-btn .i-sun{display:var(--sun-display)}.icon-btn .i-moon{display:var(--moon-display)}.pill__menu{cursor:pointer;min-width:44px;height:44px;color:var(--fg);font:500 .875rem/1 var(--font-sans);background:0 0;border:0;border-radius:999px;margin-left:auto;padding:0 14px;display:none;position:relative}.pill__menu:before{content:"";border:1px solid var(--border-strong);pointer-events:none;border-radius:999px;position:absolute;top:2px;right:0;bottom:2px;left:0}.pill__menu:hover{color:var(--accent)}.pill__menu:hover:before{border-color:var(--accent)}.pill__menu:focus-visible{outline-offset:0}.menu{pointer-events:auto;width:min(100% - 32px,var(--pill-w));box-shadow:var(--shadow-2)}.menu ul{padding:6px}.menu a{min-height:48px;font:500 1rem/1 var(--font-sans);color:var(--fg);border-radius:8px;justify-content:space-between;align-items:center;padding:0 12px;text-decoration:none;display:flex}.menu a:hover{background:var(--raised)}.menu a[aria-current]:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px}.stage{padding:124px 0 0;position:relative;overflow-x:clip}.stage:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(60% 55% at 50% 0%,var(--glow),transparent 70%);height:900px;position:absolute;inset:0 0 auto}.rig{width:min(100%,880px);transform-style:preserve-3d;transform-origin:30% 40%;transform:perspective(1600px)rotateX(calc(2.5deg - var(--py,0)*2.5deg))rotateY(calc(-4deg + var(--px,0)*2.5deg));margin:0;position:relative}.ghost{pointer-events:none;box-shadow:var(--shadow-1);border-color:var(--border-strong);position:absolute;top:0;right:0;bottom:0;left:0}.ghost .win__bar{height:36px}.ghost .dots{visibility:hidden}.ghost--1{opacity:.78;transform:translate3d(calc(26px + var(--px,0)*-4px),calc(-18px + var(--py,0)*-3px),-40px)}.ghost--2{opacity:.48;transform:translate3d(calc(52px + var(--px,0)*-9px),calc(-36px + var(--py,0)*-6px),-80px)}.win--hero{box-shadow:var(--shadow-hero)}.win--hero>.win__bar{height:36px}.term{font:400 .84375rem/1.6 var(--font-mono);font-variant-ligatures:none;color:var(--text-2);padding:24px 24px 22px}.prompt{white-space:pre-wrap;overflow-wrap:anywhere}.prompt .u{color:var(--accent);font-weight:500}.prompt .p{color:var(--muted)}.prompt .d{color:var(--text-2)}.prompt .cmd{color:var(--fg)}.cursor{vertical-align:-.2em;background:var(--accent);width:.6em;height:1.12em;margin-left:1px;animation:1.06s step-end 6s infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.term .display{margin:4px 0 10px}.term .lead{max-width:36em;margin-bottom:14px}.ctx{text-wrap:balance;font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);margin:0 0 24px}.ls{grid-template-columns:repeat(2,max-content);gap:0 4ch;margin:2px 0 8px;display:grid}.ls a{color:var(--path);transition:color .16s var(--ease);border-radius:3px;text-decoration:none}.ls a:hover{color:var(--accent-hover);text-underline-offset:3px;text-decoration:underline}.toolbar{background:var(--bar);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 24px;display:flex}@keyframes rise{0%{opacity:0;translate:0 10px}}.rig>*{animation:rise .42s var(--ease)backwards}.rig>.ghost--2{animation-delay:0s}.rig>.ghost--1{animation-delay:70ms}.rig>.win--hero{animation-delay:.14s}.sec{z-index:1;margin-top:var(--sec-gap);position:relative}.secbar{height:32px;font:500 .75rem/1 var(--font-mono);letter-spacing:.02em;color:var(--muted);align-items:center;gap:12px;margin-bottom:24px;display:flex}.secbar__rule{background:var(--border);flex:1;height:1px}.sec>.h2{margin-bottom:24px}.now p{max-width:var(--measure)}.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;display:grid}.card{flex-direction:column;grid-column:1/-1;display:flex}.card--link{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.card--link:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}@media (width>=768px){.card--6{grid-column:span 6}}@media (width>=1024px){.card--5{grid-column:span 5}.card--7{grid-column:span 7}}.card__body{flex-direction:column;flex:1;gap:14px;padding:24px;display:flex}.card .h3{margin:0}.card__head{flex-direction:column;gap:8px;display:flex}.mine{color:var(--fg)}.meta{flex-wrap:wrap;gap:6px;display:flex}.note{border-left:2px solid var(--border-strong);color:var(--fg);gap:10px;padding-left:12px;display:flex}.note__sl{font:400 .875rem/1.65 var(--font-mono);color:var(--muted);flex:none}.install{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 10px 10px 14px;display:flex}.install code{min-width:0;font:400 .75rem/1.55 var(--font-mono);color:var(--fg);overflow-wrap:anywhere;text-indent:-2ch;flex:1;padding-top:3px;padding-left:2ch}.install .d{color:var(--muted)}.copy{cursor:pointer;min-width:58px;font:500 .75rem/1.4 var(--font-mono);color:var(--text-2);background:var(--raised);border:1px solid var(--border-strong);transition:border-color .16s var(--ease),color .16s var(--ease);border-radius:6px;flex:none;padding:5px 10px}.copy:hover{border-color:var(--accent);color:var(--accent)}.card__links{gap:20px;margin-top:auto;padding-top:6px;display:flex}.rows{border-top:1px solid var(--border)}.row{grid-template-columns:var(--date-col)minmax(0,1fr);border-bottom:1px solid var(--border);gap:0 24px;padding:20px 0;display:grid}.row__date{font:400 .8125rem/1.8 var(--font-mono);color:var(--muted);padding-top:2px}.row__top{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.row__title{font:500 1.125rem/1.4 var(--font-sans);letter-spacing:-.005em;color:var(--fg)}.row__title a{text-decoration:none}.row__title a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}.row__line{max-width:var(--measure);margin-top:4px}.row__line.small{color:var(--text-2)}.more{justify-content:flex-end;padding-top:16px;font-size:.9375rem;display:flex}.yearhead{font:500 .8125rem/1.5 var(--font-mono);letter-spacing:.02em;color:var(--muted);margin:32px 0 12px}.xrow{grid-template-columns:var(--date-col)minmax(0,1fr);border-bottom:1px solid var(--border);align-items:baseline;gap:0 24px;padding:16px 0;display:grid}.xrow__date{font:400 .8125rem/1.5 var(--font-mono);color:var(--muted)}.xrow__role{color:var(--fg)}.xrow__org{color:var(--text-2)}.srow{grid-template-columns:var(--date-col)minmax(0,1fr);border-bottom:1px solid var(--border);gap:0 24px;padding:18px 0;display:grid}.sg__label{font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);padding-top:6px}.chips{flex-wrap:wrap;gap:8px;display:flex}.srow .small{margin-top:10px}.nw{white-space:nowrap}.contact__body{grid-template-columns:5fr 7fr;gap:48px;padding:32px;display:grid}.contact__body .h2{margin-bottom:16px}.form{gap:20px;max-width:520px;display:grid}.field{gap:8px;display:grid}.field label{font:500 .875rem/1.4 var(--font-sans);color:var(--fg)}.field input,.field textarea{border:1px solid var(--input-border);background:var(--bg);width:100%;height:44px;color:var(--fg);font:400 1rem/1.4 var(--font-sans);border-radius:8px;padding:0 14px}.field textarea{resize:vertical;height:auto;min-height:132px;padding:11px 14px;line-height:1.55}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field [aria-invalid=true]{border-color:var(--danger)}.err{font:400 .875rem/1.4 var(--font-sans);color:var(--danger)}.form__foot{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.status-msg{color:var(--text-2);font-size:.875rem}.status{margin-top:var(--sec-gap);background:var(--bar);border-top:1px solid var(--border);font:400 .8125rem/1.5 var(--font-mono);color:var(--muted)}.status__in{width:min(100% - 2*var(--gutter),var(--frame));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;min-height:40px;margin-inline:auto;padding:8px 0;display:flex}@media (width>=1200px){.status__in{grid-template-columns:auto 1fr auto;display:grid}.status__links{justify-self:center}.status__right{flex-wrap:nowrap;justify-self:end}}.status a{color:var(--text-2);text-decoration:none}.status a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.status__links{white-space:nowrap;flex-wrap:wrap;gap:8px;display:inline-flex}.status__right{flex-wrap:wrap;align-items:center;gap:8px 24px;display:inline-flex}.keys{flex-wrap:wrap;align-items:center;gap:4px 12px;display:inline-flex}.keys kbd{margin-right:4px;padding:0 5px;font-size:.6875rem}.keys__set,.theme{align-items:center;gap:4px;display:inline-flex}.theme button,.keys__set button{cursor:pointer;min-height:24px;font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);background:0 0;border:1px solid #0000;border-radius:5px;padding:0 8px}.theme button:hover,.keys__set button:hover{color:var(--fg)}.theme button[aria-pressed=true],.keys__set button[aria-pressed=true]{color:var(--fg);background:var(--raised);border-color:var(--border-strong)}:root{--astro-code-color-text:var(--text-2);--astro-code-color-background:var(--panel);--astro-code-token-keyword:var(--syn-keyword);--astro-code-token-string:var(--syn-string);--astro-code-token-string-expression:var(--syn-string);--astro-code-token-constant:var(--syn-constant);--astro-code-token-comment:var(--syn-comment);--astro-code-token-punctuation:var(--muted);--astro-code-token-function:var(--path);--astro-code-token-parameter:var(--text-2);--astro-code-token-link:var(--accent)}.post,.col{z-index:1;width:min(100% - 2*var(--gutter),720px);margin:96px auto 0;position:relative}.col{--date-col:112px}.post .secbar,.col .secbar{margin-bottom:28px}.post__title{font:600 var(--fs-h1-post)/1.1 var(--font-sans);letter-spacing:-.025em;color:var(--fg);text-wrap:balance}.post__meta{font:400 .8125rem/1.5 var(--font-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:18px 0 32px;display:flex}.correction{margin-bottom:48px}.correction .win__bar{height:36px}.correction p{color:var(--fg);padding:18px 20px 20px;font-size:1rem;line-height:1.65}.correction p+p{padding-top:0}.prose{max-width:var(--measure-prose);font-size:1.0625rem;line-height:1.72}.prose>*+*{margin-top:1.1em}.prose h2{font:600 1.75rem/1.2 var(--font-sans);letter-spacing:-.02em;color:var(--fg);margin-top:56px;position:relative}.prose h3{font:600 1.375rem/1.25 var(--font-sans);letter-spacing:-.015em;color:var(--fg);margin-top:40px;position:relative}.prose h4{font:600 1.0625rem/1.4 var(--font-sans);color:var(--fg);margin-top:32px}.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose h2 .anchor,.prose h3 .anchor{color:var(--muted);opacity:0;transition:opacity .16s var(--ease);text-decoration:none;position:absolute;left:-1.1em}.prose h2:hover .anchor,.prose h3:hover .anchor,.prose .anchor:focus-visible{opacity:1}.prose ul,.prose ol{padding-left:1.5em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li::marker{color:var(--muted);font-family:var(--font-mono);font-size:.9em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.25em}.prose strong{color:var(--fg);font-weight:600}.prose em{font-style:italic}.prose a{color:var(--fg);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}.prose a:hover{color:var(--accent)}.prose blockquote{border-left:2px solid var(--border-strong);color:var(--text-2);padding-left:16px}.prose hr{border:0;border-top:1px solid var(--border);margin-block:48px}.prose img{border-radius:var(--r-btn);height:auto}.prose figcaption{color:var(--muted);margin-top:8px;font-size:.875rem;line-height:1.55}p code,li code,td code,th code,h2 code,h3 code,figcaption code,.code-inline{border-radius:var(--r-code);background:var(--raised);color:var(--fg);overflow-wrap:break-word;padding:.1em .26em;font-size:.9em}.prose a code{color:inherit}.code{box-shadow:none;margin-block:1.6em}.code .win__bar{justify-content:flex-start}.code .copy{margin-left:auto;padding:3px 8px}.code pre,.prose pre{background:var(--panel);font:400 .875rem/1.65 var(--font-mono);font-variant-ligatures:none;color:var(--text-2);-moz-tab-size:4;tab-size:4;margin:0;padding:16px 20px;overflow-x:auto}.prose>pre{border:1px solid var(--border);border-radius:var(--r-win);margin-block:1.6em}.code pre code,.prose pre code{color:inherit;font-size:inherit;background:0 0;border-radius:0;padding:0}.code pre .c{color:var(--muted)}.code pre .a{color:var(--faint)}.code pre .v{color:var(--path)}.scroll{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-win);margin-block:1.6em;overflow-x:auto}.scroll table{border-collapse:collapse;width:100%;font:400 .8125rem/1.5 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-2)}.scroll th{text-align:left;color:var(--fg);background:var(--bar);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-weight:500}.scroll td{border-bottom:1px solid var(--border);padding:10px 14px}.scroll tr:last-child td{border-bottom:0}.scroll th[align=center],.scroll td[align=center]{text-align:center}.scroll th[align=right],.scroll td[align=right]{text-align:right}.scroll td:first-child{white-space:nowrap}.scroll svg{max-width:none;height:auto}.scroll svg[id^=mermaid]{filter:var(--diagram-filter);background:0 0!important}.cut{max-width:var(--measure-prose);border:1px dashed var(--border-strong);font:400 .8125rem/1.6 var(--font-mono);color:var(--muted);border-radius:8px;margin-top:32px;padding:12px 16px}.cut a{color:var(--text-2);overflow-wrap:anywhere}.cut a:hover{color:var(--accent)}.post__end{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:16px;margin-top:72px;padding-top:24px;display:grid}.pn{border-radius:var(--r-win);background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-1);transition:transform .2s var(--ease),box-shadow .2s var(--ease);flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;display:flex}.pn:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}.pn--next{text-align:right;grid-column:2}.pn__k{font:400 .75rem/1 var(--font-mono);color:var(--muted)}.pn__t{font:500 1rem/1.4 var(--font-sans);color:var(--fg)}.pn__d{font:400 .8125rem/1.4 var(--font-mono);color:var(--muted)}@media (width<=767px){.stage{padding-top:88px}.rig{width:100%;transform:none}.ghost{display:none}.win--hero{box-shadow:var(--shadow-1)}.win__bar,.win--hero>.win__bar,.win__bar--tall{height:32px}.term{padding:16px}.toolbar{gap:8px;padding:12px 16px 16px}.card__body{padding:16px}.grid{gap:16px}.contact__body{grid-template-columns:1fr;gap:24px;padding:16px}.srow{grid-template-columns:1fr;gap:8px}.row{grid-template-columns:1fr;gap:6px}.xrow{grid-template-columns:1fr;gap:4px}.post__end{grid-template-columns:1fr}.pn--next{grid-column:1}.post,.col{margin-top:84px}.correction p{padding:16px}.prose h2 .anchor,.prose h3 .anchor{display:none}}@media (width<=639px){.ls{grid-template-columns:1fr;gap:0}.pill{padding-left:18px}.pill__links,.pill__end{display:none}.pill__menu{justify-content:center;align-items:center;display:inline-flex}.toolbar .btn{padding:0 8px}.toolbar .btn--primary{flex:100%}.toolbar .btn--ghost{flex:1 1 0;min-width:0}.status__in{flex-direction:column;align-items:flex-start;gap:6px}.status__links{order:-1;align-items:center;gap:0 4px;margin-left:-6px}.status__right{gap:6px 16px}.keys{display:none}.install{flex-wrap:wrap}.install code{flex-basis:100%}}@media (width<=767px),(pointer:coarse){.card__links a,.more a{align-items:center;min-height:44px;display:inline-flex}.ls a{align-items:center;width:fit-content;min-height:44px;display:flex}.mark{justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-inline:-8px;padding-inline:8px;display:inline-flex}}@media (width<=639px),(pointer:coarse){.status__links{align-items:center}.status__links a{justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 6px;display:inline-flex}.theme button{min-width:44px;min-height:44px;padding:0 10px}.copy{min-width:76px;min-height:44px}.code .win__bar{height:var(--tap)}}@media (pointer:coarse){.pill__links a,.pill__blog,.icon-btn{min-height:44px}.icon-btn{min-width:44px}.row__title a{padding-block:11px}.prose h2 .anchor,.prose h3 .anchor,.keys,.kbd-hint{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.rig{transform:none}.ghost--1{transform:translate(26px,-18px)}.ghost--2{transform:translate(52px,-36px)}.card--link:hover,.pn:hover{transform:none}}@media (forced-colors:active){.win,.pill,.btn--ghost,.chip,.badge,.install,.scroll{border:1px solid canvastext}.dots i{background:canvastext}}@media print{.pillbar,.ghost,body:before,.stage:before,.status__right{display:none!important}.win{border:1px solid #000;box-shadow:none!important}.rig{transform:none}}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.btn:disabled{cursor:default;background:var(--raised);color:var(--muted);border-color:var(--border-strong);box-shadow:none;transform:none}.status-msg.is-error{color:var(--danger)}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-dvh{height:100dvh}.h-svh{height:100svh}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.resize{resize:both}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}
