@font-face{font-family:pretendard;src:url(../media/PretendardVariable-s.p.0a.~5ku~863u1.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:pretendard Fallback;src:local(Arial);ascent-override:93.76%;descent-override:23.75%;line-gap-override:0.0%;size-adjust:101.55%}.pretendard_f399749d-module__Vu0-vG__className{font-family:pretendard,pretendard Fallback}.pretendard_f399749d-module__Vu0-vG__variable{--font-pretendard:"pretendard", "pretendard Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.08hd0g.321csk.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.0x08jh8vondwt.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.0~wrfy7sm-h4g.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.0k_.i63k_i_qa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.16-z~2sp29ex6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ff74e33ebd7bca3-s.0_n_qwbzcushi.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a69062cfe6f77f8-s.07r2ragk8ph~z.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9a4838fcda0d1bca-s.0787d67~10694.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2e95a7d252b9825a-s.0dgq8lqrj3gc_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/23b7a97ae3b5c134-s.p.0o14nraug8u5s.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_dad2fa2-module__MHKZcq__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_dad2fa2-module__MHKZcq__variable{--font-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:var(--font-pretendard), "Pretendard Variable", Pretendard, system-ui, sans-serif;--font-mono:var(--font-plex-mono), "IBM Plex Mono", ui-monospace, monospace;--color-gray-100:#f3f4f6;--spacing:.25rem;--font-weight-medium:500;--tracking-tighter:-.035em;--tracking-tight:-.02em;--tracking-widest:.1em;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--ease-out:cubic-bezier(.2, 0, 0, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-canvas:#0a0a0b;--color-bg:#0c0c0d;--color-bg-sticky:#0e0e10;--color-surface:#101012;--color-line:#1a1a1d;--color-line-strong:#232327;--color-line-hover:#2a2a2e;--color-fg-strong:#fff;--color-fg:#e6e6e8;--color-fg-body:#c9c9cf;--color-fg-muted:#9a9aa2;--color-fg-subtle:#8d8d95;--color-fg-faint:#7d7d85;--color-accent:#5ec386;--color-accent-text:#8ed8a8;--color-cat-news:#62c689;--color-cat-dev:#6ab3fd;--color-cat-retro:#d4a73e;--color-cat-release:#d292e1;--color-cat-etc:#a7aebb;--color-warn:#e1b75c;--color-code-bg:#0f1011;--color-code-fg:#d6d6da;--color-code-key:#7fd0a3;--color-code-str:#9fc6d8;--color-code-num:#d8c08f;--color-code-comment:#7d7d85;--text-display:4rem;--text-display--line-height:1.14;--text-h1:2.75rem;--text-h1--line-height:1.22;--text-h2:1.75rem;--text-h2--line-height:1.35;--text-h3:1.3125rem;--text-h3--line-height:1.45;--text-lead:1.1875rem;--text-lead--line-height:1.75;--text-prose:1.0625rem;--text-prose--line-height:1.85;--text-card:1.125rem;--text-card--line-height:1.45;--text-ui:.9375rem;--text-ui--line-height:1.5;--text-meta:.8125rem;--text-meta--line-height:1.6;--radius-full:9999px;--shadow-overlay:0 10px 28px #0000008c;--dur-fast:.12s;--dur-base:.18s;--dur-slow:.26s;--container-prose:820px;--container-rail:264px}@supports (color:lab(0% 0 0)){:root,:host{--color-gray-100:lab(96.1596% -.0823438 -1.13575);--color-accent:lab(71.5402% -41.2165 21.2208);--color-accent-text:lab(80.4438% -31.4023 16.1318);--color-cat-news:lab(72.7011% -41.1983 21.2091);--color-cat-dev:lab(70.5454% -7.46357 -44.2057);--color-cat-retro:lab(71.194% 9.34911 58.0221);--color-cat-release:lab(69.1289% 34.7646 -30.4598);--color-cat-etc:lab(70.9304% -.939012 -7.41826);--color-warn:lab(77.0192% 7.95284 51.5616)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-8{top:calc(var(--spacing) * 8)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.min-h-screen{min-height:100vh}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#C8FF00\]{background-color:#c8ff00}.bg-accent{background-color:var(--color-accent)}.bg-gray-100{background-color:var(--color-gray-100)}.p-4{padding:calc(var(--spacing) * 4)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.font-mono{font-family:var(--font-mono)}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--color-canvas)}body{background-color:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);font-size:var(--text-ui);word-break:keep-all;min-height:100vh;font-weight:400;line-height:1.6}::selection{background-color:var(--color-accent);color:var(--color-canvas)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-xs)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-line-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-line-hover)}a{color:inherit;text-decoration:none}.frame{width:100%;padding-inline:40px}@media (max-width:900px){.frame{padding-inline:28px}}@media (max-width:600px){.frame{padding-inline:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scan-line{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}.animate-fade-up{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) forwards fade-up}.animate-fade-in{opacity:0;animation:.5s forwards fade-in}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}.delay-5{animation-delay:.4s}.delay-6{animation-delay:.48s}@media (prefers-reduced-motion:reduce){.animate-fade-up,.animate-fade-in{opacity:1;animation:none;transform:none}}.small{color:var(--color-text-2);font-size:13.5px;line-height:1.55}.stats-iframe{width:100%;height:600px}@media (max-width:600px){.stats-iframe{height:420px}}.btn{border:1px solid var(--color-border-2);height:44px;color:var(--color-text);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;transition:background .2s var(--ease-out), border-color .2s var(--ease-out), color .2s;background:var(--btn-bg,#ffffff03);cursor:pointer;white-space:nowrap;border-radius:2px;align-items:center;gap:10px;padding:0 18px;font-size:12px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--color-border-3);background:var(--btn-hover-bg,#ffffff08)}.btn-primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-ghost{border-color:var(--color-border);background:0 0}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.hairline{background:var(--color-border);height:1px}.link{color:var(--color-text-2);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:none;transition:color .15s}.link:hover{color:var(--color-text)}@media (prefers-reduced-motion:reduce){.link{transition:none}}.hdr{z-index:50;background:var(--color-bg);border-bottom:1px solid var(--color-line);transition:background var(--dur-base) var(--ease-out);position:sticky;top:0}.hdr[data-scrolled=true]{background:var(--color-bg-sticky)}.hdr-inner{justify-content:space-between;align-items:center;height:68px;display:flex}.hdr-mark{align-items:baseline;gap:12px;min-width:0;display:flex}.hdr-mark-name{letter-spacing:var(--tracking-tight);color:var(--color-fg);white-space:nowrap;font-size:17px;font-weight:700}.hdr-tagline{font-size:var(--text-meta);color:var(--color-fg-subtle);white-space:nowrap}.hdr-right,.hdr-nav{align-items:center;gap:8px;display:flex}.hdr-nav-item{font-size:var(--text-ui);color:var(--color-fg-subtle);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);padding:8px 12px}.hdr-nav-item:hover{color:var(--color-fg-body)}.hdr-nav-item[aria-current=page]{color:var(--color-fg);box-shadow:inset 0 -2px 0 var(--color-accent)}.hdr-cta{font-size:var(--text-ui);border:1px solid var(--color-line-hover);border-radius:var(--radius-sm);color:var(--color-fg);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out);margin-left:12px;padding:9px 16px}.hdr-cta:hover{background:var(--color-surface)}.hdr-burger{cursor:pointer;width:44px;height:44px;color:var(--color-fg);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;margin-right:-10px;display:none}.hdr-burger span:not(.hdr-burger-x){background:var(--color-fg-body);width:20px;height:1.5px;display:block}.hdr-burger-x{color:var(--color-fg);font-size:18px;line-height:1}.hdr-menu{background:var(--color-bg-sticky);border-bottom:1px solid var(--color-line);box-shadow:var(--shadow-overlay);flex-direction:column;padding-block:8px 24px;display:flex}.hdr-menu-item{border-bottom:1px solid var(--color-line);letter-spacing:var(--tracking-tight);color:var(--color-fg);justify-content:space-between;align-items:center;padding:18px 0;font-size:20px;font-weight:600;display:flex}.hdr-menu-dot{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hdr-menu-cta{border-radius:var(--radius-sm);background:var(--color-fg);color:var(--color-canvas);font-size:var(--text-ui);text-align:center;margin-top:20px;padding:14px;font-weight:600}.hdr-menu-links{color:var(--color-fg-subtle);gap:16px;padding-top:22px;font-size:13px;display:flex}@media (min-width:601px){.hdr-menu{display:none}}@media (max-width:900px){.hdr-inner{height:60px}.hdr-cta{display:none}.hdr-nav{gap:6px}.hdr-nav-item{padding:8px 10px}}@media (max-width:600px){.hdr-inner{height:56px}.hdr-tagline,.hdr-nav{display:none}.hdr-burger{display:flex}.hdr-mark-name{font-size:16px}}.ft{border-top:1px solid var(--color-line);grid-template-columns:2fr 1fr 1fr 1fr;align-items:start;gap:32px;padding-block:44px;display:grid}.ft-brand{flex-direction:column;gap:8px;display:flex}.ft-brand-name{color:var(--color-fg);font-size:16px;font-weight:700}.ft-brand-desc{color:var(--color-fg-faint);max-width:40ch;font-size:13px;line-height:1.6}.ft-col{color:var(--color-fg-subtle);flex-direction:column;gap:9px;font-size:13px;display:flex}.ft-col-head{color:var(--color-fg-faint)}.ft-col a{transition:color var(--dur-fast) var(--ease-out);width:fit-content}.ft-col a:hover{color:var(--color-fg)}.ft-bottom{border-top:1px solid var(--color-line);font-family:var(--font-mono);color:var(--color-fg-faint);grid-column:1/-1;padding-top:20px;font-size:12px}@media (max-width:900px){.ft{grid-template-columns:1fr 1fr;gap:28px 32px}.ft-brand{grid-column:1/-1}}@media (max-width:600px){.ft{grid-template-columns:1fr;gap:28px;padding-block:36px}.hero-grid{grid-template-columns:1fr!important;gap:32px!important}.hero-grid .display-hero{font-size:clamp(56px,14vw,96px)}.hero-grid>div:last-child{align-items:flex-start!important;padding-bottom:0!important}.hero-grid pre[aria-hidden]{display:none}.hero-grid .lede{text-align:left!important;max-width:100%!important}}@media (min-width:601px) and (max-width:900px){.hero-grid{gap:40px!important}.hero-grid .display-hero{font-size:clamp(56px,10vw,120px)}}.prose{counter-reset:h2;font-family:var(--font-body);color:var(--color-text);word-break:keep-all;font-size:17.5px;line-height:1.75}.prose>*+*{margin-top:1.25em}.prose h2{font-family:var(--font-serif);letter-spacing:-.015em;color:var(--color-text);border-top:1px solid var(--color-border-2);margin:2.2em 0 .7em;padding-top:24px;font-size:clamp(28px,2.6vw,36px);font-weight:380;line-height:1.15;position:relative}.prose h2:before{content:counter(h2, decimal-leading-zero);counter-increment:h2;font-family:var(--font-mono);letter-spacing:.14em;color:var(--color-text-3);font-size:11px;position:absolute;top:28px;right:0}.prose h3{font-family:var(--font-sans);letter-spacing:-.005em;color:var(--color-text);margin:2em 0 .4em;font-size:20px;font-weight:600}.prose h4{font-family:var(--font-sans);color:var(--color-text);margin:1.5em 0 .3em;font-size:16px;font-weight:600}.prose h2 .anchor,.prose h3 .anchor{opacity:0;font-family:var(--font-mono);color:var(--color-text-3);border-bottom:none;margin-left:.4em;font-size:.6em;text-decoration:none;transition:opacity .2s}.prose h2:hover .anchor,.prose h3:hover .anchor{opacity:1}.prose p{color:var(--color-text);text-wrap:pretty}.prose a{color:var(--color-text);border-bottom:1px solid var(--color-accent-line);transition:border-color .2s,color .2s}.prose a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.prose strong{color:var(--color-text);font-weight:600}.prose em{color:var(--color-text);font-style:italic}.prose blockquote{border-left:2px solid var(--color-accent);font-family:var(--font-serif);letter-spacing:-.005em;color:var(--color-text);margin:1.8em 0;padding:8px 0 8px 24px;font-size:22px;font-style:italic;line-height:1.45}.prose blockquote p{color:var(--color-text);margin:0;font-style:italic}.prose code{font-family:var(--font-mono);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-accent);border-radius:4px;padding:1.5px 6px;font-size:.86em}.prose pre{margin:0}.prose pre code{color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.codeblock{border:1px solid var(--color-border-2);border-radius:var(--r-sm);background:var(--color-surface);margin:1.8em 0;overflow:hidden}.codeblock-head{border-bottom:1px solid var(--color-border-2);background:linear-gradient(#ffffff05,#0000);justify-content:space-between;align-items:center;padding:8px 12px 8px 14px;display:flex}.codeblock-head .filename{font-family:var(--font-mono);color:var(--color-text-2);letter-spacing:0;font-size:12px}.codeblock-head .lang{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-3);font-size:10px}.codeblock-head-actions{align-items:center;gap:6px;display:flex}.copy-btn{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-2);border:1px solid var(--color-border-2);border-radius:var(--r-xs);cursor:pointer;background:0 0;padding:4px 8px;font-size:10px;transition:color .15s,border-color .15s,background .15s}@media (prefers-reduced-motion:reduce){.copy-btn{transition:none}}.copy-btn:hover{color:var(--color-text);border-color:var(--color-border-3);background:#ffffff05}.copy-btn.ok{color:var(--color-accent);border-color:var(--color-accent-line)}.copy-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.codeblock pre{font-family:var(--font-mono);color:var(--color-text);margin:0;padding:16px 0;font-size:13.5px;line-height:1.65;overflow-x:auto;background:0 0!important;border:none!important}.codeblock pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0;display:block}.codeblock .line{padding:0 16px;display:block}.codeblock .line:hover{background:#ffffff05}.prose ul,.prose ol{padding-left:1.6em}.prose ul li::marker{color:var(--color-accent)}.prose ol li::marker{color:var(--color-text-3);font-family:var(--font-mono);font-size:.85em}.prose li+li{margin-top:.35em}.prose hr{background:var(--color-border-2);border:none;height:1px;margin:3em 0}.prose img{border:1px solid var(--color-border-2);border-radius:4px;max-width:100%;margin:1.6em 0}.prose table{border-collapse:collapse;width:100%;font-size:14.5px;font-family:var(--font-body)}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--color-border-2);padding:12px 14px}.prose th{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-2);border-bottom-color:var(--color-border-3);font-size:11px;font-weight:500}.prose td{color:var(--color-text-2)}.prose tr:hover td{background:var(--color-surface)}@media (max-width:600px){.prose{font-size:16px}.prose blockquote{padding-left:16px;font-size:18px}.prose h2{font-size:26px}}#reading-progress{background:var(--color-accent);z-index:60;height:2px;box-shadow:0 0 8px var(--color-accent);transition:width 60ms linear;position:fixed;top:0;left:0}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 32px}.container-narrow{width:100%;max-width:var(--container-narrow);padding:0 var(--s-6);margin:0 auto}@media (max-width:1100px){.container,.container-narrow{padding:0 28px}}@media (max-width:900px){.container,.container-narrow{padding:0 20px}}@media (max-width:600px){.container,.container-narrow{padding:0 16px}}.sec-head{grid-template-columns:auto 1fr auto;align-items:end;gap:24px;padding-bottom:24px;display:grid}@media (max-width:900px){.sec-head{grid-template-columns:auto 1fr}.sec-head>div:last-child{grid-column:1/-1;place-self:start}}.card{border-top:1px solid var(--color-border-2);padding:var(--s-6) 0;flex-direction:column;display:flex;position:relative}.card .post-title{font-family:var(--font-serif);letter-spacing:-.012em;color:var(--color-text);transition:color .2s var(--ease-out);font-size:clamp(22px,1.9vw,26px);font-weight:400;line-height:1.18}.card:hover .post-title{color:var(--color-accent)}.card .post-desc{color:var(--color-text-2);text-wrap:pretty;margin-top:8px;font-size:14.5px;line-height:1.55}.featured-card:hover .featured-title{color:var(--color-accent)}.recent-grid{border-bottom:1px solid var(--color-border-2);grid-template-columns:repeat(3,1fr);gap:8px 40px;display:grid}@media (max-width:900px){.recent-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.recent-grid{grid-template-columns:1fr}}.pull-quote-grid{grid-template-columns:1fr 2fr;align-items:start;gap:56px;display:grid}@media (max-width:600px){.pull-quote-grid{grid-template-columns:1fr;gap:32px}}.pull-quote{font-family:var(--font-serif);letter-spacing:-.018em;color:var(--color-text);margin:0;font-size:clamp(28px,3.4vw,52px);font-weight:360;line-height:1.18}.tag-index{border-top:1px solid var(--color-border-2);border-bottom:1px solid var(--color-border-2);flex-wrap:wrap;gap:8px;padding:16px 0;display:flex}.arrow-link{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text);align-items:center;gap:10px;font-size:12px;text-decoration:none;display:inline-flex}.arrow-link .arrow{width:22px;height:1px;transition:width .25s var(--ease-out);background:currentColor;position:relative}.arrow-link .arrow:after{content:"";border-top:1px solid;border-right:1px solid;width:7px;height:7px;position:absolute;top:-3px;right:0;transform:rotate(45deg)}.arrow-link:hover{color:var(--color-accent)}.arrow-link:hover .arrow{width:36px}.arrow-link-back .arrow{transform:scaleX(-1)}@media (max-width:900px){.featured-card{grid-template-columns:1fr!important}}@media (max-width:600px){.featured-card>div:last-child{display:none}}@media (prefers-reduced-motion:reduce){.arrow-link .arrow,.featured-card .featured-title,.card .post-title{transition:none}}.cat-grid{border-top:1px solid var(--color-border-2);border-bottom:1px solid var(--color-border-2);grid-template-columns:repeat(6,1fr);display:grid}.cat-cell{text-align:left;color:inherit;cursor:pointer;border-left:1px solid var(--color-border-2);transition:background .2s var(--ease-out);background:0 0;flex-direction:column;align-items:flex-start;gap:12px;padding:28px 24px;text-decoration:none;display:flex}.cat-cell:first-child{border-left:none}.cat-cell:hover{background:var(--color-text)}@supports (color:color-mix(in lab, red, red)){.cat-cell:hover{background:color-mix(in srgb, var(--color-text) 4%, transparent)}}.cat-cell-count{font-family:var(--font-serif);color:var(--color-text);letter-spacing:-.02em;align-items:baseline;gap:8px;font-size:44px;line-height:1;display:flex}.cat-cell-dot{border-radius:var(--r-full);flex-shrink:0;align-self:center;width:8px;height:8px}@media (prefers-reduced-motion:reduce){.cat-cell{transition:none}}@media (max-width:1100px){.cat-grid{grid-template-columns:repeat(3,1fr)}.cat-grid>a:nth-child(n+4){border-top:1px solid var(--color-border-2)}.cat-grid>a:nth-child(3n+1){border-left:none}}@media (max-width:600px){.cat-grid{grid-template-columns:repeat(2,1fr)}.cat-grid>a:nth-child(n+4){border-top:none}.cat-grid>a:nth-child(3n+1){border-left:1px solid var(--color-border-2)}.cat-grid>a:nth-child(odd){border-left:none}.cat-grid>a:nth-child(n+3){border-top:1px solid var(--color-border-2)}}.badge{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-2);border:1px solid var(--color-border-2);background:var(--badge-bg,#ffffff03);white-space:nowrap;border-radius:2px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:inline-flex}.badge:before{content:"";background:var(--badge-dot,var(--color-text-3));border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge.badge-tag:before{display:none}.badge[data-cat=news]{--badge-dot:var(--cat-news)}.badge[data-cat=dev]{--badge-dot:var(--cat-dev)}.badge[data-cat=retrospective]{--badge-dot:var(--cat-retrospective)}.badge[data-cat=release]{--badge-dot:var(--cat-release)}.badge[data-cat=etc]{--badge-dot:var(--cat-etc)}.empty-card{text-align:center;border:1px dashed var(--color-border-2);flex-direction:column;align-items:center;gap:18px;padding:80px 40px;display:flex}@media (max-width:600px){.empty-card{padding:var(--s-12) var(--s-6)}}.detail-grid{padding-top:var(--s-8);padding-bottom:var(--s-32);grid-template-columns:1fr min(720px,100%) 1fr;align-items:start;gap:56px;display:grid}.toc-aside{justify-self:end;width:100%;max-width:220px;position:sticky;top:110px}.toc{font-family:var(--font-body)}.toc-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-3);margin-bottom:12px;font-size:11px}.toc-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.toc-item{color:var(--color-text-2);border-left:1px solid var(--color-border-2);transition:color .15s, border-color .15s, padding-left .2s var(--ease-out);cursor:pointer;text-align:left;align-items:baseline;gap:10px;padding:6px 0 6px 12px;font-size:13px;line-height:1.45;text-decoration:none;display:flex}.toc-item:hover{color:var(--color-text)}.toc-item.active{color:var(--color-text);border-left-color:var(--color-accent);padding-left:14px}.toc-item .num{font-family:var(--font-mono);color:var(--color-text-3);letter-spacing:.1em;font-size:10px}.toc-item.h3{padding-left:28px;font-size:12.5px}.toc-item.h3.active{padding-left:30px}@media (prefers-reduced-motion:reduce){.toc-item{transition:color .15s,border-color .15s}}@media (max-width:900px){.detail-grid{grid-template-columns:1fr!important;gap:0!important}.detail-grid>aside{border-bottom:1px solid var(--color-border-2);margin-bottom:32px;padding-bottom:24px;justify-self:start!important;width:100%!important;max-width:none!important;position:static!important}.detail-grid>aside:last-child{display:none}.detail-grid>.toc-aside{top:auto;width:100%!important;max-width:none!important;position:static!important}}@media (prefers-reduced-motion:reduce){#reading-progress{transition:none}}.pnc-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pnc-card{border:1px solid var(--color-border-2);background:0 0;flex-direction:column;gap:8px;padding:24px;text-decoration:none;transition:border-color .2s;display:flex}.pnc-card:hover{border-color:var(--color-accent-line)}.pnc-card--next{text-align:right;align-items:flex-end}.pnc-label{color:var(--color-text-3)}.pnc-title{font-family:var(--font-serif);color:var(--color-text);font-size:20px;line-height:1.2}.pnc-meta{color:var(--color-text-3)}@media (max-width:600px){.pnc-grid{grid-template-columns:1fr}.pnc-card--next{text-align:left;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.pnc-card{transition:none}}.link-card{border:1px solid var(--color-border-2);border-radius:var(--r-md);color:inherit;background:var(--color-surface);transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);gap:0;margin:1.6em 0;text-decoration:none;display:flex;overflow:hidden;border-bottom:1px solid var(--color-border-2)!important}.link-card:hover{box-shadow:var(--sh-2);border-color:var(--color-accent-line)!important}.link-card-img{background:var(--color-surface-3);flex-shrink:0;width:140px;min-height:108px;position:relative;overflow:hidden}.link-card-body{flex-direction:column;flex:1;gap:6px;min-width:0;padding:16px 18px;display:flex}.link-card-meta{align-items:center;gap:5px;display:flex}.link-card-domain{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.link-card-title{font-family:var(--font-body);color:var(--color-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.link-card:hover .link-card-title{color:var(--color-accent)}.link-card-desc{font-family:var(--font-body);color:var(--color-text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.link-card-footer{font-family:var(--font-mono);color:var(--color-text-3);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:11px;overflow:hidden}@media (max-width:600px){.link-card-img{display:none}.link-card-body{padding:14px 16px}}@media (prefers-reduced-motion:reduce){.link-card{transition:none}}.nf-grid{grid-template-columns:1.2fr 1fr;align-items:center;gap:80px;display:grid}.nf-grid-3{border-bottom:1px solid var(--color-border-2);grid-template-columns:repeat(3,1fr);gap:0 40px;display:grid}@media (max-width:900px){.nf-grid{gap:40px}.nf-grid-3{grid-template-columns:1fr}}@media (max-width:600px){.nf-grid{grid-template-columns:1fr;gap:32px}.nf-grid-3{grid-template-columns:1fr}}.about-hero-grid{grid-template-columns:1.4fr 1fr;align-items:end;gap:56px;display:grid}@media (max-width:900px){.about-hero-grid{grid-template-columns:1fr;gap:32px}}.about-intro-grid{grid-template-columns:minmax(280px,380px) 1fr;align-items:start;gap:80px;display:grid}@media (max-width:900px){.about-intro-grid{grid-template-columns:1fr;gap:48px}}.profile-sticky{position:sticky;top:110px}@media (max-width:600px){.profile-sticky{position:static;top:auto}}.now-grid{border-top:1px solid var(--color-border-2);border-bottom:1px solid var(--color-border-2);grid-template-columns:minmax(180px,220px) 1fr;display:grid}@media (max-width:600px){.now-grid{grid-template-columns:1fr}}.interest-grid{border-top:1px solid var(--color-border-2);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:900px){.interest-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.interest-grid{grid-template-columns:1fr}}.stack-grid{border-top:1px solid var(--color-border-2);grid-template-columns:repeat(2,1fr);gap:48px;padding-top:28px;display:grid}@media (max-width:600px){.stack-grid{grid-template-columns:1fr;gap:36px}}.about-writing-list{border-top:1px solid var(--color-border-2)}.quote-colophon-grid{border-top:1px solid var(--color-border-2);grid-template-columns:1.3fr 1fr;align-items:start;gap:64px;padding-top:56px;display:grid}@media (max-width:900px){.quote-colophon-grid{grid-template-columns:1fr;gap:40px}}.elsewhere-grid{border:1px solid var(--color-border-2);grid-template-columns:repeat(2,1fr);display:grid}@media (max-width:600px){.elsewhere-grid{grid-template-columns:1fr}.elsewhere-grid>a{border-left:none!important}.elsewhere-grid>a:nth-child(n+2){border-top:1px solid var(--color-border-2)}}.elsewhere-card{border-left:1px solid var(--color-border-2);transition:background .2s var(--ease-out);color:inherit;flex-direction:column;gap:12px;padding:32px 24px;text-decoration:none;display:flex;position:relative}.elsewhere-card:first-child{border-left:none}.elsewhere-card:hover{background:var(--color-accent-soft)}@media (prefers-reduced-motion:reduce){.elsewhere-card{transition:none}}.about-writing-row{border-top:1px solid var(--color-border);color:inherit;transition:padding-left .25s var(--ease-out);grid-template-columns:92px auto 1fr auto;align-items:baseline;gap:20px;padding:18px 12px 18px 0;text-decoration:none;display:grid;position:relative}.about-writing-row:before{content:"";background:var(--color-accent);border-radius:var(--r-full);opacity:0;width:6px;height:6px;transition:opacity .2s, transform .25s var(--ease-out);position:absolute;top:50%;left:-16px;transform:translate(-100%,-50%)}.about-writing-row:hover{padding-left:14px}.about-writing-row:hover:before{opacity:1;transform:translateY(-50%)}.about-writing-row:hover .about-writing-title{color:var(--color-accent)}.about-writing-title{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--color-text);font-size:22px;font-weight:400;line-height:1.2;transition:color .2s}@media (max-width:600px){.about-writing-row{grid-template-columns:1fr;gap:6px;padding:16px 0}.about-writing-row:before{display:none}.about-writing-row:hover{padding-left:0}}@media (prefers-reduced-motion:reduce){.about-writing-row,.about-writing-row:before,.about-writing-title{transition:none}}.home-hero{border-bottom:1px solid var(--color-line);padding:88px 0 56px}.home-hero-inner{max-width:var(--container-prose);flex-direction:column;gap:22px;display:flex}.home-hero-title{font-size:var(--text-display);line-height:var(--text-display--line-height);letter-spacing:var(--tracking-tighter);color:var(--color-fg-strong);text-wrap:pretty;font-weight:700}.home-hero-lead{font-size:var(--text-lead);line-height:var(--text-lead--line-height);color:var(--color-fg-muted);text-wrap:pretty;max-width:600px}.home-hero-em{color:var(--color-fg);box-shadow:inset 0 -1px 0 var(--color-accent)}.home-hero-actions{gap:10px;padding-top:6px;display:flex}.home-cta{border-radius:var(--radius-sm);background:var(--color-fg);color:var(--color-canvas);transition:background var(--dur-fast) var(--ease-out);padding:12px 20px;font-size:15px;font-weight:600}.home-cta:hover{background:var(--color-fg-body)}.home-cta-ghost{border:1px solid var(--color-line-hover);border-radius:var(--radius-sm);color:var(--color-fg-body);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);padding:12px 20px;font-size:15px}.home-cta-ghost:hover{background:var(--color-surface);border-color:var(--color-line-strong)}@media (max-width:900px){.home-hero{padding:56px 0 40px}.home-hero-title{font-size:44px;line-height:1.18}}@media (max-width:600px){.home-hero{padding:40px 0 28px}.home-hero-title{font-size:32px;line-height:1.25}.home-hero-lead{max-width:none}.home-hero-actions{flex-direction:column}.home-cta,.home-cta-ghost{text-align:center;padding:14px}}@media (prefers-reduced-motion:reduce){.home-cta,.home-cta-ghost{transition:none}}.home-body{grid-template-columns:var(--container-rail) 1fr;display:grid}@media (max-width:900px){.home-body{grid-template-columns:1fr}}.home-column{flex-direction:column;gap:56px;padding:36px 40px 72px;display:flex}@media (max-width:900px){.home-column{gap:40px;padding:32px 28px}}@media (max-width:600px){.home-column{gap:32px;padding:24px 18px}}.home-section-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.home-section-label{color:var(--color-fg-muted);font-size:14px;font-weight:600}.home-meta-date{font-family:var(--font-mono);color:var(--color-fg-faint);white-space:nowrap;font-size:13px}.home-empty{text-align:center;border:1px dashed var(--color-line-strong);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:64px 32px;display:flex}.home-empty-title{color:var(--color-fg);font-size:20px;font-weight:600}.home-empty-desc{font-family:var(--font-mono);color:var(--color-fg-faint);font-size:13px}.idx-rail-desktop{border-right:1px solid var(--color-line);font-family:var(--font-mono);flex-direction:column;gap:36px;padding:36px 32px 64px;display:flex}.idx-rail-tablet,.idx-rail-mobile{display:none}.idx-rail-block{flex-direction:column;gap:12px;display:flex}.idx-rail-label{color:var(--color-fg-subtle);font-size:11px}.idx-rail-total{font-family:var(--font-sans);color:var(--color-fg);letter-spacing:-.02em;font-size:38px;font-weight:500;line-height:1}.idx-rail-list{flex-direction:column;gap:10px;display:flex}.idx-rail-row{color:var(--color-fg-muted);box-shadow:inset 0 -1px 0 var(--color-line);transition:color var(--dur-fast) var(--ease-out);justify-content:space-between;padding:5px 0;font-size:14px;text-decoration:none;display:flex}.idx-rail-row:hover{color:var(--color-fg)}.idx-rail-row--top{color:var(--color-fg);box-shadow:inset 0 -1px 0 var(--color-line-strong)}.idx-rail-row--top .idx-rail-row-count{color:var(--color-accent)}.idx-rail-row--plain{box-shadow:none;padding:4px 0}.idx-rail-row--active{color:var(--color-fg)}.idx-rail-row--active .idx-rail-row-count{color:var(--color-accent)}button.idx-rail-row,button.idx-rail-tablet-item,button.tag-chip{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0}button.idx-rail-row{width:100%}.idx-rail-row--disabled{color:var(--color-fg-faint);justify-content:space-between;padding:4px 0;font-size:14px;display:flex}.idx-rail-tablet{border-bottom:1px solid var(--color-line);background:var(--color-bg-sticky);font-family:var(--font-mono);color:var(--color-fg-subtle);-webkit-overflow-scrolling:touch;align-items:center;gap:20px;padding:14px 28px;font-size:12px;overflow-x:auto}.idx-rail-tablet-total{font-family:var(--font-sans);color:var(--color-fg);white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:600}.idx-rail-tablet-sep{background:var(--color-line-strong);flex-shrink:0;width:1px;height:16px}.idx-rail-tablet-item{white-space:nowrap;color:var(--color-fg-subtle);transition:color var(--dur-fast) var(--ease-out);flex-shrink:0}.idx-rail-tablet-item:hover{color:var(--color-fg)}.idx-rail-tablet-accent{color:var(--color-accent-text)}.idx-rail-tablet-disabled{white-space:nowrap;color:var(--color-fg-faint);flex-shrink:0}.idx-rail-mobile{border-bottom:1px solid var(--color-line)}.idx-rail-summary{min-height:44px;color:var(--color-fg);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:14px;font-weight:600;list-style:none;display:flex}.idx-rail-summary::-webkit-details-marker{display:none}.idx-rail-summary-icon{font-family:var(--font-mono);color:var(--color-fg-subtle);transition:transform var(--dur-fast) var(--ease-out)}.idx-rail-mobile[open] .idx-rail-summary-icon{transform:rotate(180deg)}.idx-rail-mobile-body{font-family:var(--font-mono);flex-direction:column;gap:28px;padding:4px 18px 24px;display:flex}@media (max-width:900px){.idx-rail-desktop{display:none}.idx-rail-tablet{display:flex}}@media (max-width:600px){.idx-rail-tablet{display:none}.idx-rail-mobile{display:block}}@media (prefers-reduced-motion:reduce){.idx-rail-row,.idx-rail-tablet-item,.idx-rail-summary-icon{transition:none}}.home-featured-card{border:1px solid var(--color-line-strong);border-radius:var(--radius-lg);background:var(--color-surface);transition:border-color var(--dur-fast) var(--ease-out);grid-template-columns:1fr 300px;grid-template-areas:"meta cover""title cover""desc cover""tags cover";align-items:start;gap:14px 32px;padding:28px;text-decoration:none;display:grid}.home-featured-card:hover{border-color:var(--color-line-hover)}.home-featured-meta{font-family:var(--font-mono);color:var(--color-fg-faint);grid-area:meta;align-items:center;gap:10px;font-size:12px;display:flex}.home-featured-title{letter-spacing:-.03em;color:var(--color-fg);text-wrap:pretty;transition:color var(--dur-fast) var(--ease-out);grid-area:title;font-size:34px;font-weight:700;line-height:1.3}.home-featured-card:hover .home-featured-title{color:var(--color-accent-text)}.home-featured-desc{color:var(--color-fg-muted);text-wrap:pretty;grid-area:desc;font-size:15px;line-height:1.7}.home-featured-tags{flex-wrap:wrap;grid-area:tags;gap:6px;padding-top:4px;display:flex}.home-featured-tag{color:var(--color-fg-subtle);border:1px solid var(--color-line-strong);border-radius:var(--radius-xs);padding:4px 8px;font-size:12px}.home-featured-cover{border-radius:var(--radius-sm);background:var(--color-line);grid-area:cover;height:180px;position:relative;overflow:hidden}.home-featured-cover img{filter:grayscale()contrast(.92)}.home-featured-cover-fallback{font-family:var(--font-mono);color:var(--color-fg-subtle);background:repeating-linear-gradient(135deg, var(--color-surface) 0 8px, var(--color-bg) 8px 16px);align-items:flex-end;padding:10px;font-size:11px;display:flex;position:absolute;inset:0}@media (max-width:900px){.home-featured-card{grid-template-columns:1fr;grid-template-areas:"meta""cover""title""desc""tags";gap:12px;padding:22px}.home-featured-cover{border-radius:var(--radius-md);height:230px}.home-featured-title{font-size:28px;line-height:1.32}}@media (max-width:600px){.home-featured-card{padding:18px}.home-featured-cover{height:170px}.home-featured-title{letter-spacing:-.025em;font-size:22px;line-height:1.38}.home-featured-desc{font-size:14px;line-height:1.65}}@media (prefers-reduced-motion:reduce){.home-featured-card,.home-featured-title{transition:none}}.post-row-list{flex-direction:column;display:flex}.post-row{border-top:1px solid var(--color-line);color:inherit;transition:background var(--dur-fast) var(--ease-out);grid-template-columns:96px 44px 1fr auto;grid-template-areas:"date thumb body read";align-items:start;gap:24px;padding:20px 8px;text-decoration:none;display:grid}.post-row:hover,.post-row:focus-visible{background:var(--color-surface)}.post-row-date{font-family:var(--font-mono);color:var(--color-fg-subtle);grid-area:date;padding-top:3px;font-size:13px}.post-row-thumb{border-radius:var(--radius-xs);background:var(--color-line);grid-area:thumb;width:44px;height:44px;display:block;position:relative;overflow:hidden}.post-row-thumb img{filter:grayscale()contrast(.92)}.post-row-body{flex-direction:column;grid-area:body;gap:7px;min-width:0;display:flex}.post-row-title{letter-spacing:-.02em;color:var(--color-fg);text-wrap:pretty;font-size:19px;font-weight:600;line-height:1.45}.post-row:hover .post-row-title{color:var(--color-accent-text)}.post-row-desc{color:var(--color-fg-subtle);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.post-row-read{font-family:var(--font-mono);color:var(--color-fg-subtle);white-space:nowrap;grid-area:read;padding-top:4px;font-size:12px}.home-more-row{justify-content:flex-end;padding-top:22px;display:flex}.home-more-link{border:1px solid var(--color-line-hover);border-radius:var(--radius-sm);color:var(--color-fg);transition:background var(--dur-fast) var(--ease-out);padding:11px 18px;font-size:14px;font-weight:600}.home-more-link:hover{background:var(--color-surface)}@media (max-width:900px){.post-row{grid-template-columns:88px 1fr auto;grid-template-areas:"date body read";gap:18px}.post-row-thumb{display:none}}@media (max-width:600px){.post-row{flex-wrap:wrap;align-items:baseline;gap:6px;padding:16px 0;display:flex}.post-row-date{order:1;padding-top:0}.post-row-date:after{content:" · ";color:var(--color-fg-faint)}.post-row-read{order:2;padding-top:0}.post-row-body{flex-basis:100%;order:3}.post-row-desc{display:none}.post-row-title{font-size:17px}.home-more-row{justify-content:stretch}.home-more-link{text-align:center;width:100%}}@media (prefers-reduced-motion:reduce){.post-row,.post-row-title,.home-more-link{transition:none}}.home-principle{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);grid-template-columns:180px 1fr;gap:32px;padding:36px 0;display:grid}.home-principle-label{color:var(--color-fg-subtle);font-size:13px;line-height:1.6}.home-principle-text{color:var(--color-fg-body);letter-spacing:-.02em;text-wrap:pretty;max-width:720px;font-size:24px;font-weight:500;line-height:1.6}@media (max-width:900px){.home-principle{grid-template-columns:1fr;gap:14px;padding:28px 0}}@media (max-width:600px){.home-principle-text{font-size:19px}}.home-tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag-chip{border:1px solid var(--color-line-strong);border-radius:var(--radius-full);color:var(--color-fg-body);transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:baseline;gap:7px;padding:8px 12px;font-size:14px;text-decoration:none;display:inline-flex}.tag-chip:hover{border-color:var(--color-line-hover);color:var(--color-fg-strong)}.tag-chip-count{font-family:var(--font-mono);color:var(--color-fg-subtle);font-size:12px}.tag-chip--active{background:var(--color-fg);border-color:var(--color-fg);color:var(--color-canvas);gap:8px}.tag-chip--active:hover{border-color:var(--color-fg);color:var(--color-canvas)}.tag-chip--active .tag-chip-count{color:var(--color-canvas);opacity:.65}@media (prefers-reduced-motion:reduce){.tag-chip{transition:none}}.blog-head{border-bottom:1px solid var(--color-line);padding:56px 0 36px}.blog-head-inner{flex-direction:column;gap:18px;display:flex}.blog-head-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.blog-crumb{font-family:var(--font-mono);color:var(--color-fg-subtle);align-items:center;gap:8px;font-size:12px;display:flex}.blog-crumb-current{color:var(--color-fg)}.blog-head-title{letter-spacing:var(--tracking-tighter);color:var(--color-fg-strong);font-size:48px;font-weight:700;line-height:1.2}.blog-head-lede{color:var(--color-fg-muted);text-wrap:pretty;max-width:720px;font-size:16px;line-height:1.75}@media (max-width:900px){.blog-head{padding:40px 0 28px}.blog-head-inner{gap:14px}.blog-head-title{font-size:38px}.blog-head-lede{max-width:560px;font-size:15px}}@media (max-width:600px){.blog-head{padding:32px 0 20px}.blog-head-inner{gap:12px}.blog-head-title{font-size:32px}}.blog-body{grid-template-columns:var(--container-rail) 1fr;display:grid}@media (max-width:900px){.blog-body{grid-template-columns:1fr}}.blog-content{flex-direction:column;min-width:0;display:flex}.idx-rail-tablet-sheet{border-bottom:1px solid var(--color-line);background:var(--color-bg-sticky);font-family:var(--font-mono);flex-direction:column;gap:28px;padding:20px 28px 28px;display:flex}.blog-tag-list{flex-wrap:wrap;gap:8px;display:flex}.blog-controls{z-index:40;background:var(--color-bg-sticky);border-bottom:1px solid var(--color-line);position:sticky;top:68px}.blog-controls-inner{flex-wrap:wrap;align-items:center;gap:12px;padding-block:16px;display:flex}@media (max-width:900px){.blog-controls{top:60px}}@media (max-width:600px){.blog-controls{top:56px}}.blog-search{border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface);flex:220px;align-items:center;gap:10px;min-width:200px;padding:10px 14px;display:flex}.blog-search:focus-within{border-color:var(--color-line-hover)}.blog-search-icon{border:1.5px solid var(--color-fg-subtle);border-radius:50%;flex-shrink:0;width:13px;height:13px}.blog-search input{min-width:0;color:var(--color-fg);font-family:var(--font-sans);background:0 0;border:0;outline:0;flex:1;font-size:14px}.blog-search input::placeholder{color:var(--color-fg-subtle)}.blog-search-hint{font-family:var(--font-mono);color:var(--color-fg-subtle);border:1px solid var(--color-line-strong);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px}@media (max-width:600px){.blog-search{flex-basis:100%}}.blog-seg{border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);flex-shrink:0;align-items:center;gap:2px;padding:3px;display:flex}.blog-seg button{font-family:var(--font-sans);color:var(--color-fg-muted);cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:4px;padding:7px 12px;font-size:13px}.blog-seg button:hover:not([aria-pressed=true]){color:var(--color-fg-body)}.blog-seg button[aria-pressed=true]{background:var(--color-line-strong);color:var(--color-fg)}@media (prefers-reduced-motion:reduce){.blog-seg button{transition:none}}.blog-count-row{border-bottom:1px solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-block:18px;display:flex}.blog-count-text{color:var(--color-fg-muted);font-size:14px}.blog-count-text strong{color:var(--color-fg-strong);font-weight:600}.blog-reset-btn{font-family:var(--font-sans);color:var(--color-fg-muted);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;padding:7px 12px;font-size:13px}.blog-reset-btn:hover{color:var(--color-fg);border-color:var(--color-line-hover)}@media (prefers-reduced-motion:reduce){.blog-reset-btn{transition:none}}.blog-results{padding-block:32px}@media (max-width:900px){.blog-results{padding-block:28px}}@media (max-width:600px){.blog-results{padding-block:20px}}.blog-grid{grid-template-columns:repeat(3,1fr);gap:28px 24px;display:grid}@media (max-width:900px){.blog-grid{grid-template-columns:repeat(2,1fr);gap:26px 20px}}@media (max-width:600px){.blog-grid{grid-template-columns:1fr;gap:26px}}.blog-card{color:inherit;flex-direction:column;gap:12px;text-decoration:none;display:flex}.blog-card-cover{border-radius:var(--radius-md);background:var(--color-surface);height:158px;display:block;position:relative;overflow:hidden}.blog-card-cover img{filter:grayscale()contrast(.92)}.blog-card-cover-fallback{background:repeating-linear-gradient(135deg, var(--color-surface) 0 8px, var(--color-bg) 8px 16px);position:absolute;inset:0}.blog-card-meta{font-family:var(--font-mono);color:var(--color-fg-subtle);align-items:center;gap:8px;font-size:11px;display:flex}.blog-card-title{-webkit-line-clamp:2;letter-spacing:-.02em;color:var(--color-fg);text-wrap:pretty;transition:color var(--dur-fast) var(--ease-out);-webkit-box-orient:vertical;font-size:18px;font-weight:600;line-height:1.45;display:-webkit-box;overflow:hidden}.blog-card:hover .blog-card-title{color:var(--color-accent-text)}.blog-card-desc{-webkit-line-clamp:2;color:var(--color-fg-subtle);text-wrap:pretty;-webkit-box-orient:vertical;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.blog-card-footer{border-top:1px solid var(--color-line);font-family:var(--font-mono);color:var(--color-fg-subtle);justify-content:space-between;align-items:baseline;padding-top:8px;font-size:11px;display:flex}@media (prefers-reduced-motion:reduce){.blog-card-title{transition:none}}.blog-index{flex-direction:column;gap:36px;display:flex}.blog-index-group{grid-template-columns:140px 1fr;align-items:start;gap:32px;display:grid}.blog-index-group+.blog-index-group{border-top:1px solid var(--color-line);padding-top:36px}.blog-index-year{flex-direction:column;gap:6px;display:flex;position:sticky;top:190px}.blog-index-year-num{letter-spacing:-.03em;color:var(--color-fg-strong);font-size:30px;font-weight:700}.blog-index-year-count{font-family:var(--font-mono);color:var(--color-fg-subtle);font-size:12px}.blog-index-rows{flex-direction:column;display:flex}.blog-index-row{border-top:1px solid var(--color-line);color:inherit;transition:background var(--dur-fast) var(--ease-out);grid-template-columns:64px 1fr 56px;align-items:start;gap:20px;padding:16px 6px;text-decoration:none;display:grid}.blog-index-row:hover{background:var(--color-surface)}.blog-index-row-date{font-family:var(--font-mono);color:var(--color-fg-subtle);white-space:nowrap;padding-top:2px;font-size:13px}.blog-index-row-body{flex-direction:column;gap:5px;min-width:0;display:flex}.blog-index-row-title{letter-spacing:-.02em;color:var(--color-fg);text-wrap:pretty;font-size:17px;font-weight:600;line-height:1.45}.blog-index-row-desc{color:var(--color-fg-subtle);text-wrap:pretty;font-size:13px;line-height:1.6}.blog-index-row-read{font-family:var(--font-mono);color:var(--color-fg-subtle);text-align:right;white-space:nowrap;padding-top:3px;font-size:12px}@media (max-width:900px){.blog-index-year{position:static;top:auto}}@media (max-width:600px){.blog-index-group{grid-template-columns:1fr;gap:12px}.blog-index-row{grid-template-columns:1fr;gap:6px}.blog-index-row-read{text-align:left}}@media (prefers-reduced-motion:reduce){.blog-index-row{transition:none}}.blog-empty{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;align-items:flex-start;gap:14px;padding:40px;display:flex}.blog-empty-title{letter-spacing:-.02em;color:var(--color-fg);font-size:20px;font-weight:600}.blog-empty-desc{color:var(--color-fg-muted);text-wrap:pretty;max-width:460px;font-size:14px;line-height:1.7}.blog-empty-actions{flex-wrap:wrap;gap:8px;padding-top:6px;display:flex}.blog-empty-btn{font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);padding:10px 16px;font-size:14px}.blog-empty-btn--primary{background:var(--color-fg);color:var(--color-canvas);border:1px solid var(--color-fg);font-weight:600}.blog-empty-btn--primary:hover{background:var(--color-fg-body)}.blog-empty-btn--ghost{color:var(--color-fg-body);border:1px solid var(--color-line-hover);background:0 0}.blog-empty-btn--ghost:hover{background:var(--color-surface);border-color:var(--color-line-strong)}@media (max-width:600px){.blog-empty{padding:28px}}@media (prefers-reduced-motion:reduce){.blog-empty-btn{transition:none}}.blog-end{font-family:var(--font-mono);color:var(--color-fg-subtle);align-items:center;gap:14px;padding-block:24px;font-size:11px;display:flex}.blog-end-line{background:var(--color-line);flex:1;height:1px}.blog-pagination{border-top:1px solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:28px 0 40px;display:flex}.blog-pagination-nav{font-family:var(--font-sans);color:var(--color-fg-body);border:1px solid var(--color-line-hover);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);background:0 0;padding:9px 14px;font-size:13px}.blog-pagination-nav:hover:not(:disabled){color:var(--color-fg);border-color:var(--color-fg-faint)}.blog-pagination-nav:disabled{color:var(--color-fg-faint);border-color:var(--color-line);cursor:not-allowed}.blog-pagination-numbers{font-family:var(--font-mono);align-items:center;gap:4px;font-size:13px;display:flex}.blog-pagination-numbers--compact{display:none}.blog-pagination-num{border-radius:var(--radius-sm);color:var(--color-fg-muted);cursor:pointer;background:0 0;border:0;padding:8px 12px}.blog-pagination-num:hover:not([aria-current=page]){color:var(--color-fg)}.blog-pagination-num[aria-current=page]{background:var(--color-fg);color:var(--color-canvas);cursor:default;font-weight:600}.blog-pagination-ellipsis{color:var(--color-fg-subtle);padding:8px 6px}.blog-pagination-size{font-family:var(--font-mono);color:var(--color-fg-subtle);white-space:nowrap;margin-left:12px;font-size:12px}@media (max-width:900px){.blog-pagination-size{display:none}}@media (max-width:600px){.blog-pagination-numbers--wide{display:none}.blog-pagination-numbers--compact{display:flex}}@media (prefers-reduced-motion:reduce){.blog-pagination-nav{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
