@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.bunny.net/geist/files/geist-latin-400-normal.woff2) format("woff2");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:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.bunny.net/geist/files/geist-latin-500-normal.woff2) format("woff2");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:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.bunny.net/geist/files/geist-latin-600-normal.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.bunny.net/geist-mono/files/geist-mono-latin-400-normal.woff2) format("woff2");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:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.bunny.net/geist-mono/files/geist-mono-latin-500-normal.woff2) format("woff2");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}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{color-scheme:light;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh}img,picture,svg,video,canvas{display:block;max-width:100%}input,button,textarea,select{font:inherit}:root{--primary: #171717;--secondary: #4d4d4d;--tertiary: #006bff;--neutral: #f2f2f2;--background-100: #ffffff;--background-200: #fafafa;--gray-100: #f2f2f2;--gray-200: #ebebeb;--gray-300: #e6e6e6;--gray-400: #eaeaea;--gray-500: #c9c9c9;--gray-600: #a8a8a8;--gray-700: #8f8f8f;--gray-800: #7d7d7d;--gray-900: #4d4d4d;--gray-1000: #171717;--gray-alpha-100: #0000000d;--gray-alpha-200: #00000015;--gray-alpha-300: #0000001a;--gray-alpha-400: #00000014;--gray-alpha-500: #00000036;--gray-alpha-600: #0000003d;--gray-alpha-700: #00000070;--gray-alpha-800: #00000082;--gray-alpha-900: #000000b3;--gray-alpha-1000: #000000e8;--blue-100: #f0f7ff;--blue-200: #e9f4ff;--blue-300: #dfefff;--blue-400: #cae7ff;--blue-500: #94ccff;--blue-600: #48aeff;--blue-700: #006bff;--blue-800: #0059ec;--blue-900: #005ff2;--blue-1000: #002359;--red-100: #ffeeef;--red-200: #ffe8ea;--red-300: #ffe3e4;--red-400: #ffd7d6;--red-500: #ffb1b3;--red-600: #ff676d;--red-700: #fc0035;--red-800: #ea001d;--red-900: #d8001b;--red-1000: #47000c;--amber-100: #fff6de;--amber-200: #fff4cf;--amber-300: #fff1c1;--amber-400: #ffdc73;--amber-500: #ffc543;--amber-600: #ffa600;--amber-700: #ffae00;--amber-800: #ff9300;--amber-900: #aa4d00;--amber-1000: #561900;--green-100: #ecfdec;--green-200: #e5fce7;--green-300: #d3fad1;--green-400: #b9f5bc;--green-500: #82eb8d;--green-600: #4ce15e;--green-700: #28a948;--green-800: #279141;--green-900: #107d32;--green-1000: #003a00;--teal-100: #defffb;--teal-200: #ddfef6;--teal-300: #ccf9f1;--teal-400: #b1f7ec;--teal-500: #52f0db;--teal-600: #00e3c4;--teal-700: #00ac96;--teal-800: #00927f;--teal-900: #007f70;--teal-1000: #003f34;--purple-100: #faf0ff;--purple-200: #f9f0ff;--purple-300: #f6e8ff;--purple-400: #f2d9ff;--purple-500: #dfa7ff;--purple-600: #c979ff;--purple-700: #a000f8;--purple-800: #8500d1;--purple-900: #7d00cc;--purple-1000: #2f004e;--pink-100: #ffe8f6;--pink-200: #ffe8f3;--pink-300: #ffdfeb;--pink-400: #ffd3e1;--pink-500: #fdb3cc;--pink-600: #f97ea7;--pink-700: #f22782;--pink-800: #e4106e;--pink-900: #c41562;--pink-1000: #460523;--font-sans: "Geist", "Geist Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--heading-72-size: 72px;--heading-72-line: 72px;--heading-72-tracking: -4.32px;--heading-64-size: 64px;--heading-64-line: 64px;--heading-64-tracking: -3.84px;--heading-56-size: 56px;--heading-56-line: 56px;--heading-56-tracking: -3.36px;--heading-48-size: 48px;--heading-48-line: 56px;--heading-48-tracking: -2.88px;--heading-40-size: 40px;--heading-40-line: 48px;--heading-40-tracking: -2.4px;--heading-32-size: 32px;--heading-32-line: 40px;--heading-32-tracking: -1.28px;--heading-24-size: 24px;--heading-24-line: 32px;--heading-24-tracking: -.96px;--heading-20-size: 20px;--heading-20-line: 26px;--heading-20-tracking: -.4px;--heading-16-size: 16px;--heading-16-line: 24px;--heading-16-tracking: -.32px;--heading-14-size: 14px;--heading-14-line: 20px;--heading-14-tracking: -.28px;--button-16-size: 16px;--button-16-line: 20px;--button-14-size: 14px;--button-14-line: 20px;--button-12-size: 12px;--button-12-line: 16px;--label-20-size: 20px;--label-20-line: 32px;--label-18-size: 18px;--label-18-line: 20px;--label-16-size: 16px;--label-16-line: 20px;--copy-24-size: 24px;--copy-24-line: 36px;--copy-20-size: 20px;--copy-20-line: 36px;--copy-18-size: 18px;--copy-18-line: 28px;--copy-16-size: 16px;--copy-16-line: 24px;--copy-14-size: 14px;--copy-14-line: 20px;--copy-13-size: 13px;--copy-13-line: 18px;--label-14-size: 14px;--label-14-line: 20px;--label-13-size: 13px;--label-13-line: 16px;--label-12-size: 12px;--label-12-line: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-16: 64px;--space-24: 96px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--focus-ring: 0 0 0 2px var(--background-100), 0 0 0 4px var(--blue-700);--shadow-raised: 0 2px 2px rgba(0, 0, 0, .04);--motion-ease: cubic-bezier(.175, .885, .32, 1.1);--bg: var(--background-100);--bg-alt: var(--background-200);--text: var(--gray-1000);--text-muted: var(--gray-900);--accent: var(--blue-700);--accent-hover: var(--blue-800);--border: var(--gray-alpha-400);--font-size-sm: var(--label-13-size);--font-size-base: var(--copy-14-size);--font-size-lg: var(--copy-16-size);--font-size-xl: var(--heading-24-size);--line-height: var(--copy-16-line);--letter-spacing: 0;--letter-spacing-wide: 0;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-10);--space-3xl: var(--space-16);--max-width: 680px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--primary: #ededed;--secondary: #a0a0a0;--tertiary: #006efe;--neutral: #1a1a1a;--background-100: #000000;--background-200: #000000;--gray-100: #1a1a1a;--gray-200: #1f1f1f;--gray-300: #292929;--gray-400: #2e2e2e;--gray-500: #454545;--gray-600: #878787;--gray-700: #8f8f8f;--gray-800: #7d7d7d;--gray-900: #a0a0a0;--gray-1000: #ededed;--gray-alpha-100: #ffffff12;--gray-alpha-200: #ffffff17;--gray-alpha-300: #ffffff21;--gray-alpha-400: #ffffff24;--gray-alpha-500: #ffffff3d;--gray-alpha-600: #ffffff82;--gray-alpha-700: #ffffff8a;--gray-alpha-800: #ffffff78;--gray-alpha-900: #ffffff9c;--gray-alpha-1000: #ffffffeb;--blue-100: #06193a;--blue-200: #022248;--blue-300: #002f62;--blue-400: #003674;--blue-500: #00418b;--blue-600: #0090ff;--blue-700: #006efe;--blue-800: #005be7;--blue-900: #47a8ff;--blue-1000: #eaf6ff;--red-100: #330a11;--red-200: #440d13;--red-300: #5d0e17;--red-400: #6f101b;--red-500: #88151f;--red-600: #f32e40;--red-700: #f13242;--red-800: #e2162a;--red-900: #ff565f;--red-1000: #ffe9ed;--amber-100: #2a1700;--amber-200: #361900;--amber-300: #502800;--amber-400: #5b3000;--amber-500: #703e00;--amber-600: #ed9a00;--amber-700: #ffae00;--amber-800: #ff9300;--amber-900: #ff9300;--amber-1000: #fff3d5;--green-100: #002608;--green-200: #00320b;--green-300: #003a0e;--green-400: #004615;--green-500: #006717;--green-600: #00952d;--green-700: #00ac3a;--green-800: #009432;--green-900: #00ca50;--green-1000: #d8ffe4;--teal-100: #00231b;--teal-200: #002b22;--teal-300: #003d34;--teal-400: #004035;--teal-500: #006354;--teal-600: #009e86;--teal-700: #00aa95;--teal-800: #00927f;--teal-900: #00cfb7;--teal-1000: #cbfff5;--purple-100: #290c33;--purple-200: #341142;--purple-300: #47185e;--purple-400: #541a76;--purple-500: #642290;--purple-600: #9440d5;--purple-700: #9440d5;--purple-800: #7d2bba;--purple-900: #c472fb;--purple-1000: #fbecff;--pink-100: #310d1e;--pink-200: #420c25;--pink-300: #571032;--pink-400: #5d0c34;--pink-500: #76063f;--pink-600: #ba0056;--pink-700: #f12b82;--pink-800: #e7006d;--pink-900: #ff4d8d;--pink-1000: #ffe9f4;--bg: var(--background-100);--bg-alt: var(--gray-100);--text: var(--gray-1000);--text-muted: var(--gray-900);--accent: var(--blue-700);--accent-hover: var(--blue-900);--border: var(--gray-alpha-400);--focus-ring: 0 0 0 2px #000000, 0 0 0 4px var(--blue-900);--shadow-raised: 0 1px 2px rgba(0, 0, 0, .16)}@media(color-gamut:p3){:root{--blue-700: oklch(57.61% .2508 258.23);--blue-800: oklch(51.51% .2399 257.85)}}@media(color-gamut:p3){:root[data-theme=dark]{--blue-700: oklch(57.61% .2321 258.23);--blue-900: oklch(71.7% .1648 250.79360374054167)}}body{font-family:var(--font-sans);font-size:var(--copy-16-size);line-height:var(--copy-16-line);color:var(--text);background:var(--background-100)}::selection{color:var(--background-100);background:var(--gray-1000)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}.container--wide{max-width:1200px}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:100;transform:translateY(-150%);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--background-100);background:var(--gray-1000);font-size:var(--label-13-size)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:none;box-shadow:var(--focus-ring)}h1,h2,h3,h4,h5,h6{color:var(--text);font-weight:600;text-wrap:balance}h1{font-size:var(--heading-32-size);line-height:var(--heading-32-line);letter-spacing:var(--heading-32-tracking)}h2{font-size:var(--heading-24-size);line-height:var(--heading-24-line);letter-spacing:var(--heading-24-tracking)}h3{font-size:var(--heading-20-size);line-height:var(--heading-20-line);letter-spacing:var(--heading-20-tracking)}p{margin-bottom:var(--space-4)}a{color:inherit;text-decoration:none;transition:color .15s ease,border-color .15s ease,background-color .15s ease}a:hover{color:var(--accent)}main a:not([class]){color:var(--accent);text-decoration:underline;text-underline-offset:3px}code,pre,kbd,samp{font-family:var(--font-mono)}main{min-height:50vh}.section{margin-bottom:var(--space-16)}.section-header{display:block;margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);color:var(--text);font-size:var(--heading-20-size);font-weight:600;line-height:var(--heading-20-line);letter-spacing:var(--heading-20-tracking)}.header{padding:var(--space-8) 0 var(--space-10)}.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.header__logo{color:var(--text);border:0;font-size:var(--heading-16-size);font-weight:600;line-height:var(--heading-16-line);letter-spacing:var(--heading-16-tracking)}.header__nav{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.header__nav a{color:var(--text-muted);border:0;font-size:var(--label-14-size);line-height:var(--label-14-line)}.header__nav a:hover,.header__nav a.active{color:var(--text)}.theme-toggle{position:relative;display:inline-grid;place-items:center;width:32px;height:32px;min-width:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-full);color:var(--text-muted);background:transparent;cursor:pointer;transition:color .16s ease,border-color .16s ease,background-color .16s ease,transform .16s ease}.theme-toggle:hover{color:var(--text);border-color:var(--gray-alpha-300);background:var(--gray-alpha-100)}.theme-toggle:active{transform:scale(.96)}.theme-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring)}.theme-toggle__icon-wrap{position:relative;display:block;width:18px;height:18px}.theme-toggle__icon{position:absolute;inset:0;width:18px;height:18px;color:currentColor;transition:opacity .18s ease,transform .22s var(--motion-ease)}.theme-toggle__icon--moon{opacity:0;transform:rotate(-35deg) scale(.68)}:root[data-theme=dark] .theme-toggle__icon--sun,.theme-toggle[data-active-theme=dark] .theme-toggle__icon--sun{opacity:0;transform:rotate(35deg) scale(.68)}:root[data-theme=dark] .theme-toggle__icon--moon,.theme-toggle[data-active-theme=dark] .theme-toggle__icon--moon{opacity:1;transform:rotate(0) scale(1)}.info-tooltip{position:relative;display:inline-flex;vertical-align:middle;cursor:help}.info-icon{color:var(--text-muted)}.info-tooltip:hover .info-icon,.info-tooltip:focus .info-icon{color:var(--accent)}.info-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + var(--space-2));left:50%;z-index:1000;width:max-content;max-width:min(280px,90vw);transform:translate(-50%);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--background-100);background:var(--gray-1000);font-size:var(--label-12-size);line-height:var(--label-12-line);opacity:0;pointer-events:none;transition:opacity .15s ease}.info-tooltip:hover:after,.info-tooltip:focus:after{opacity:1}.post-list{list-style:none;padding:0}.post-item{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);padding:var(--space-4) 0;border-bottom:1px solid var(--gray-alpha-200)}.post-item:first-child{padding-top:0}.post-item__main{display:grid;gap:var(--space-2);min-width:0}.post-item__title{color:var(--text);border:0;font-size:var(--copy-16-size);font-weight:500;line-height:var(--copy-16-line)}.post-item__description{margin:0;color:var(--text-muted);font-size:var(--copy-14-size);line-height:var(--copy-14-line)}.post-item__date{flex-shrink:0;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--label-13-size);line-height:var(--label-13-line);white-space:nowrap}.post-item__tags{display:flex;gap:var(--space-2);flex-wrap:wrap}.feed-container{display:grid;gap:var(--space-6)}.feed-list{display:grid;list-style:none;padding:0}.feed-item{position:relative;display:grid;gap:var(--space-2);padding:var(--space-6) 0;border-bottom:1px solid var(--gray-alpha-200);cursor:pointer}.feed-item:first-child{padding-top:0}.feed-item__date{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--label-13-size);line-height:var(--label-13-line)}.feed-item__content-link{display:block;border:0;color:var(--text)}.feed-item__content{display:block;font-size:var(--copy-16-size);line-height:var(--copy-16-line)}.feed-item__content p{margin-bottom:var(--space-3)}.feed-item__content p:last-child{margin-bottom:0}.feed-item__content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.feed-item__external-link{width:fit-content;color:var(--text-muted);border:0;font-family:var(--font-mono)}.feed-item__external-link:hover{color:var(--accent)}.feed-item__link-arrow{display:inline-block;transition:transform .15s var(--motion-ease)}.feed-item__external-link:hover .feed-item__link-arrow{transform:translate(2px)}.feed-show-more{justify-self:center;height:40px;padding:0 var(--space-4);border:1px solid var(--gray-alpha-400);border-radius:var(--radius-sm);color:var(--text);background:var(--background-100);cursor:pointer;font-size:var(--label-14-size);font-weight:500;line-height:var(--label-14-line)}.feed-show-more:hover{background:var(--gray-alpha-100);border-color:var(--gray-alpha-500)}.feed-sentinel{display:flex;justify-content:center;padding:var(--space-8) 0}.feed-loading{display:flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--label-13-size)}.feed-loading__spinner,.comments__spinner{width:16px;height:16px;border:2px solid var(--gray-alpha-300);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.feed-end{padding:var(--space-6) 0;color:var(--text-muted);text-align:center;font-size:var(--label-13-size)}.post{max-width:var(--max-width)}.post__header{margin-bottom:var(--space-10)}.post__title{margin-bottom:var(--space-4);font-size:var(--heading-40-size);line-height:var(--heading-40-line);letter-spacing:var(--heading-40-tracking)}.post__meta{display:flex;gap:var(--space-3);flex-wrap:wrap;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--label-13-size);line-height:var(--label-13-line)}.post__content{font-size:var(--copy-16-size);line-height:var(--copy-16-line)}.post__content h2{margin-top:var(--space-10);margin-bottom:var(--space-4);font-size:var(--heading-24-size);line-height:var(--heading-24-line);letter-spacing:var(--heading-24-tracking)}.post__content h3{margin-top:var(--space-8);margin-bottom:var(--space-3);font-size:var(--heading-20-size);line-height:var(--heading-20-line);letter-spacing:var(--heading-20-tracking)}.post__content p,.post__content ul,.post__content ol,.post__content pre,.post__content blockquote{margin-bottom:var(--space-4)}.post__content ul,.post__content ol{padding-left:var(--space-6)}.post__content li{margin-bottom:var(--space-2)}.post__content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.post__content pre,.feed-detail__body pre{padding:var(--space-4);overflow-x:auto;border:1px solid var(--gray-alpha-400);border-radius:var(--radius-sm);background:var(--gray-100);font-size:var(--copy-14-size);line-height:var(--copy-14-line)}.post__content p code,.feed-detail__body p code{padding:.12em .35em;border-radius:var(--radius-sm);background:var(--gray-100);font-size:.9em}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.post__content blockquote,.feed-detail__body blockquote{padding-left:var(--space-4);border-left:2px solid var(--gray-alpha-500);color:var(--text-muted)}.post__content img,.post__content picture,.feed-item__content img,.feed-item__content picture{height:auto;margin:var(--space-4) 0;border-radius:var(--radius-sm)}.post__content picture img,.feed-item__content picture img{margin:0}img[loading=lazy]{background-color:var(--gray-100)}.expandable-image-container{position:relative;display:inline-block;max-width:100%;margin:var(--space-3) 0;cursor:pointer}.expandable-image{width:100%;height:auto;border-radius:var(--radius-sm);transition:max-width .15s ease}.expand-indicator{position:absolute;right:var(--space-2);bottom:var(--space-2);display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-full);color:#fff;background:#000000a3;opacity:0;pointer-events:none;transition:opacity .15s ease}.expandable-image-container:hover .expand-indicator,.expandable-image-container:focus .expand-indicator{opacity:1}.expand-indicator svg{width:16px;height:16px}.expandable-image-container[data-expanded=true]{display:block}.expandable-image-container[data-expanded=true] .expand-indicator svg{transform:rotate(180deg)}.image-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin:var(--space-3) 0}.image-grid .expandable-image-container{width:100%;margin:0}.image-grid .expandable-image{width:100%;max-width:100%!important;object-fit:cover;aspect-ratio:4 / 3}.image-grid .expandable-image-container[data-expanded=true]{grid-column:1 / -1}.image-grid .expandable-image-container[data-expanded=true] .expandable-image{object-fit:contain;aspect-ratio:auto}.newsletter{margin:var(--space-16) 0;padding-top:var(--space-8);border-top:1px solid var(--border)}.newsletter--compact{margin:var(--space-10) 0}.newsletter__description{margin-bottom:var(--space-4);color:var(--text-muted)}.newsletter__form{margin-bottom:var(--space-2)}.newsletter__input-group{display:flex;gap:var(--space-2)}.newsletter__input,.comments__textarea{width:100%;min-height:40px;padding:0 var(--space-3);border:1px solid var(--gray-alpha-400);border-radius:var(--radius-sm);color:var(--text);background:var(--background-100);font-size:var(--label-14-size);line-height:var(--label-14-line)}.newsletter__input::placeholder,.comments__textarea::placeholder{color:var(--gray-700)}.newsletter__input:focus,.comments__textarea:focus{outline:none;border-color:var(--blue-700);box-shadow:var(--focus-ring)}.newsletter__button,.comments__submit{position:relative;min-height:40px;padding:0 var(--space-4);border:1px solid var(--gray-1000);border-radius:var(--radius-sm);color:var(--background-100);background:var(--gray-1000);cursor:pointer;font-size:var(--label-14-size);font-weight:500;line-height:var(--label-14-line)}.newsletter__button:hover,.comments__submit:not(:disabled):hover{background:var(--gray-900);border-color:var(--gray-900)}.newsletter__button:disabled,.comments__submit:disabled{opacity:.5;cursor:not-allowed}.newsletter__button-loading{display:none}.newsletter__button.is-loading .newsletter__button-text{visibility:hidden}.newsletter__button.is-loading .newsletter__button-loading{display:inline;position:absolute;left:50%;transform:translate(-50%)}.newsletter__message{display:none;margin-top:var(--space-2);margin-bottom:0;font-size:var(--label-13-size);line-height:var(--label-13-line)}.newsletter__message--success{color:var(--green-900)}.newsletter__message--error{color:var(--red-900)}.newsletter__message.is-visible{display:block}.newsletter__note{margin-bottom:0;color:var(--text-muted);font-size:var(--label-13-size);line-height:var(--label-13-line)}.app-icon-bar{margin-bottom:var(--space-16)}.app-icon-bar__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3)}.app-icon-bar__item{display:flex;align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-2) var(--space-3);border:1px solid var(--store-border, var(--border));border-radius:var(--radius-md);color:var(--text);background:var(--store-surface-raised, var(--background-100));box-shadow:var(--store-shadow, var(--shadow-raised));font-size:var(--label-14-size);line-height:var(--label-14-line)}.app-icon-bar__item:hover{color:var(--text);border-color:var(--store-border-hover, var(--gray-alpha-500));background:var(--gray-alpha-100)}.app-icon-bar__item img{width:48px;height:48px;flex:none;border-radius:var(--radius-md);box-shadow:var(--store-shadow, var(--shadow-raised))}.info p{margin-bottom:var(--space-4)}.footer{margin-top:var(--space-16);padding:var(--space-8) 0;border-top:1px solid var(--border)}.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);color:var(--text-muted);font-size:var(--label-13-size);line-height:var(--label-13-line)}.footer nav{display:flex;gap:var(--space-4)}.footer a{color:var(--text-muted);border:0}.footer a:hover{color:var(--text)}.tags,.feed-detail__tags{display:flex;gap:var(--space-2);flex-wrap:wrap}.tag{color:var(--text-muted);border:0;font-family:var(--font-mono);font-size:var(--label-12-size);line-height:var(--label-12-line)}.tag:before{content:"#";color:var(--gray-700)}.tag:hover,.tag:hover:before{color:var(--accent)}.tag-section{margin-bottom:var(--space-10)}.tag-section__title{margin-bottom:var(--space-4);color:var(--text-muted);font-size:var(--heading-16-size);font-weight:600;line-height:var(--heading-16-line);letter-spacing:var(--heading-16-tracking)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-md{margin-top:var(--space-4)}.mb-md{margin-bottom:var(--space-4)}.mt-lg{margin-top:var(--space-6)}.mb-lg{margin-bottom:var(--space-6)}@media(max-width:640px){.container{padding:0 var(--space-4)}.header{padding:var(--space-6) 0 var(--space-8)}.header__inner,.post-item,.footer__inner{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.post__title{font-size:var(--heading-32-size);line-height:var(--heading-32-line);letter-spacing:var(--heading-32-tracking)}.newsletter__input-group{flex-direction:column}.newsletter__button{width:100%}.image-grid{grid-template-columns:repeat(2,1fr)}}@media(hover:none)and (pointer:coarse){.expand-indicator{opacity:.82}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
