:root{--brand-color-primary:#3b82f6;--brand-color-primary-hover:#2563eb;--brand-color-primary-active:#1d4ed8;--brand-color-primary-bg:#eff6ff;--brand-color-primary-text:#1e40af;--brand-color-success:#16c784;--brand-color-warning:#f59e0b;--brand-color-error:#ea3943;--brand-color-info:#3b82f6;--brand-color-link:#3b82f6;--brand-color-link-hover:#2563eb;--brand-color-link-active:#1d4ed8;--brand-color-text:#111827;--brand-color-text-secondary:#6b7280;--brand-color-text-tertiary:#9ca3af;--brand-color-text-quaternary:#d1d5db;--brand-color-fill:#e5e7eb;--brand-color-fill-secondary:#f3f4f6;--brand-color-fill-tertiary:#f9fafb;--brand-color-fill-quaternary:#fff;--brand-color-bg-layout:#f9fafb;--brand-color-bg-container:#fff;--brand-color-bg-elevated:#fff;--brand-color-border:#e5e7eb;--brand-color-border-secondary:#f3f4f6;--accent:var(--brand-color-primary);--accent-ink:#fff;--bg:#fff;--surface:#f9fafb;--ink:#111827;--ink-soft:#6b7280;--muted:#9ca3af;--line:#e5e7eb;--topbar-bg:#1a1a2e;--topbar-ink:#e5e7eb;--nav-bg:#1a1a2e;--nav-ink:#fff;--up:#16c784;--down:#ea3943;--font-head:"Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--wrap:1280px;--radius-xs:4px;--radius:8px;--radius-sm:6px;--radius-lg:12px;--card-shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--card-hover-shadow:0 4px 6px #0000001a, 0 2px 4px #0000000f;--overlay-gradient:linear-gradient(to top, #000c 0%, #0000004d 50%, transparent 100%);--sidebar-w:340px;--pill-bg:var(--accent);--pill-ink:var(--accent-ink);--motion-fast:.15s;--motion-mid:.2s;--motion-slow:.3s;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--fs-h1:clamp(1.75rem, 1rem + 2.5vw, 2.5rem);--fs-h2:clamp(1.4rem, .9rem + 1.5vw, 1.875rem);--fs-h3:clamp(1.15rem, .85rem + 1vw, 1.5rem);--fs-h4:1.25rem;--lh-tight:1.2;--lh-snug:1.35;--tracking-tight:-.01em}@media (prefers-color-scheme:dark){:root{--brand-color-primary:#60a5fa;--brand-color-primary-hover:#93bbfd;--brand-color-primary-active:#3b82f6;--brand-color-primary-bg:#1e3a5f;--brand-color-primary-text:#bfdbfe;--brand-color-success:#34d399;--brand-color-warning:#fbbf24;--brand-color-error:#f87171;--brand-color-info:#60a5fa;--brand-color-link:#60a5fa;--brand-color-link-hover:#93bbfd;--brand-color-link-active:#3b82f6;--brand-color-text:#f9fafb;--brand-color-text-secondary:#d1d5db;--brand-color-text-tertiary:#9ca3af;--brand-color-text-quaternary:#6b7280;--brand-color-fill:#374151;--brand-color-fill-secondary:#1f2937;--brand-color-fill-tertiary:#111827;--brand-color-fill-quaternary:#030712;--brand-color-bg-layout:#111827;--brand-color-bg-container:#1f2937;--brand-color-bg-elevated:#374151;--brand-color-border:#374151;--brand-color-border-secondary:#1f2937;--bg:#111827;--surface:#1f2937;--ink:#f9fafb;--ink-soft:#d1d5db;--muted:#9ca3af;--line:#374151;--topbar-bg:#0f172a;--nav-bg:#1e293b}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:color .15s}a:hover{color:var(--accent)}::selection{background:var(--accent);color:var(--accent-ink)}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:1rem}.section-title{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem;line-height:var(--lh-snug);border-bottom:2px solid var(--ink);margin:2rem 0 1.2rem;padding-bottom:.5rem;display:inline-block;position:relative}.section-title:after{content:"";bottom:-2px;background:var(--accent);width:40px;height:2px;position:absolute;inset-inline-start:0}.badge{background:var(--accent);color:var(--accent-ink);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.06em;border-radius:4px;padding:4px 10px;font-size:.7rem;font-weight:600;line-height:1.3;display:inline-block}.card{background:var(--bg);border-radius:var(--radius);transition:transform var(--motion-mid) ease, box-shadow var(--motion-mid) ease;flex-direction:column;min-width:0;display:flex;overflow:hidden}.card:hover{box-shadow:var(--card-hover-shadow);transform:translateY(-2px)}.card__media{aspect-ratio:16/9;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;display:block;position:relative;overflow:hidden}.card__media>*{position:absolute;inset:0}.card__media img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .5s}.card:hover .card__media img{transform:scale(1.05)}.card__cover{background:linear-gradient(135deg, hsl(var(--cat-h,222) 58% 44%), hsl(calc(var(--cat-h,222) + 28) 54% 26%));place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.card__cover-mark{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;color:#fff;opacity:.2;text-align:center;padding:0 .8rem;font-size:clamp(1rem,.8rem + 1.5vw,1.5rem);font-weight:700}.card__title{font-family:var(--font-head);font-weight:600;font-size:var(--fs-h4);line-height:var(--lh-snug);letter-spacing:var(--tracking-tight);overflow-wrap:break-word;margin:0;padding:0}.card__title a{transition:color .15s}.card__title a:hover{color:var(--accent)}.card__meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:.8rem;display:flex}.card__meta .author{color:var(--accent);font-weight:600}.post-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1.5rem;display:grid}.featured{grid-template-columns:1.5fr 1fr;align-items:start;gap:1.5rem;margin-bottom:2rem;display:grid}.featured__hero{min-width:0}.featured__side{border-left:1px solid var(--line);flex-direction:column;gap:1rem;padding-left:1.5rem;display:flex}.featured__side .card{background:var(--surface);border-radius:var(--radius);flex-direction:row;gap:1rem;padding:.75rem;transition:background .2s}.featured__side .card:hover{background:var(--brand-color-fill-secondary);transform:none}.featured__side .card__media{aspect-ratio:16/10;border-radius:var(--radius-sm);flex:0 0 120px;width:120px}.featured__side .card__title{font-size:.9rem;line-height:1.35}.home-grid{grid-template-columns:1fr 340px;align-items:start;gap:2rem;display:grid}.sidebar .card{border-bottom:1px solid var(--line);background:0 0;border-radius:0;flex-direction:row;gap:.75rem;padding:.5rem}.sidebar .card:last-child{border-bottom:none}.sidebar .card:hover{background:var(--surface);transform:none}.sidebar .card__media{aspect-ratio:1;border-radius:var(--radius-sm);flex:0 0 80px;width:80px}.sidebar .card__title{font-size:.85rem;line-height:1.3}.article{max-width:720px;margin:2rem auto}.article h1{font-family:var(--font-head);font-size:var(--fs-h1);letter-spacing:-.02em;margin:.5rem 0;font-weight:700;line-height:1.15}.article__meta{color:var(--ink-soft);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;font-size:.85rem;display:flex}.article__reading-time{color:var(--accent);font-weight:600}.article__hero{aspect-ratio:16/9;border-radius:var(--radius-lg);background:var(--surface);margin:0 0 2rem;position:relative;overflow:hidden}.article__hero img{object-fit:cover;width:100%;height:100%}.article__body{color:var(--ink);font-size:1.05rem;line-height:1.8}.article__body p{margin:1.25rem 0}.article__body a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.article__body a:hover{text-decoration-thickness:2px}.article__body h2{font-family:var(--font-head);letter-spacing:-.01em;margin:2rem 0 .75rem;font-size:1.4rem;font-weight:600}.article__body h3{font-family:var(--font-head);margin:1.5rem 0 .5rem;font-size:1.2rem;font-weight:600}.article__body blockquote{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-soft);margin:1.5rem 0;padding:1rem 1.25rem;font-style:italic}.article__body pre{color:#e2e8f0;border-radius:var(--radius-sm);background:#1e293b;margin:1.5rem 0;padding:1rem 1.25rem;font-size:.9rem;line-height:1.6;overflow-x:auto}.article__body code{background:var(--surface);border-radius:var(--radius-xs);padding:.15rem .4rem;font-size:.9em}.article__body pre code{background:0 0;border-radius:0;padding:0}.article__body table{border-collapse:collapse;width:100%;margin:1.5rem 0;font-size:.95rem}.article__body th,.article__body td{border:1px solid var(--line);text-align:left;padding:.6rem .8rem}.article__body th{background:var(--surface);font-weight:600;font-family:var(--font-head);text-transform:uppercase;font-size:.85rem}.related{border-top:2px solid var(--line);margin-top:3rem;padding-top:2rem}.related__title{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;margin-bottom:1.25rem;font-size:1.1rem;display:inline-block;position:relative}.related__title:after{content:"";bottom:-4px;background:var(--accent);width:30px;height:2px;position:absolute;inset-inline-start:0}.related__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;display:grid}.pagination{justify-content:center;align-items:center;gap:.75rem;margin:2rem 0;padding:1rem;display:flex}.pagination__link{border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.03em;transition:all var(--motion-mid) var(--ease-in-out);align-items:center;gap:.3rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex}.pagination__link:hover{background:var(--brand-color-primary-hover);color:var(--accent-ink)}.pagination__info{color:var(--ink-soft);font-size:.85rem;font-weight:500}.footer{background:var(--topbar-bg);color:var(--topbar-ink);margin-top:3rem}@media (max-width:1024px){.home-grid,.featured{grid-template-columns:1fr}.featured__side{border-left:none;border-top:1px solid var(--line);padding-top:1rem;padding-left:0}}@media (max-width:768px){.post-grid,.related__grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.post-grid,.related__grid{grid-template-columns:1fr}}
