.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Geist Sans;src:url(/geist-font/Geist/webfonts/Geist-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Sans;src:url(/geist-font/Geist/webfonts/Geist-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Geist Sans;src:url(/geist-font/Geist/webfonts/Geist-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/geist-font/GeistMono/webfonts/GeistMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Pixel;src:url(/geist-font/GeistPixel/webfonts/GeistPixel-Line.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Pixel Square;src:url(/geist-font/GeistPixel/webfonts/GeistPixel-Square.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Pixel Circle;src:url(/geist-font/GeistPixel/webfonts/GeistPixel-Circle.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Pixel Grid;src:url(/geist-font/GeistPixel/webfonts/GeistPixel-Grid.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist Pixel Triangle;src:url(/geist-font/GeistPixel/webfonts/GeistPixel-Triangle.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #0a0a0a;--bg-elevated: #141414;--text: #f5f5f5;--text-muted: #c0c0c0;--accent: #ffffff;--border: rgba(255, 255, 255, .1);--dot-color: rgba(255, 255, 255, .08);--max-width: 720px;--card-glow: rgba(255, 255, 255, .08)}[data-theme=light]{--bg: #fafafa;--bg-elevated: #ffffff;--text: #1a1a1a;--text-muted: #444444;--accent: #000000;--border: rgba(0, 0, 0, .1);--dot-color: rgba(0, 0, 0, .06);--card-glow: rgba(0, 0, 0, .06)}*{box-sizing:border-box;margin:0;padding:0}html{font-family:Geist Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.6;background:var(--bg);color:var(--text);transition:background-color .5s ease,color .5s ease;overflow-x:hidden}body{transition:background-color .5s ease;min-height:100vh}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(var(--dot-color) 1px,transparent 1px);background-size:24px 24px;opacity:.5;pointer-events:none;z-index:-1;transition:opacity .5s ease}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}header{padding:32px 0;border-bottom:1px solid var(--border)}header .container{display:flex;justify-content:space-between;align-items:center;gap:24px}.logo{font-family:Geist Pixel Circle,monospace;font-size:1.1rem;min-height:44px;display:flex;align-items:center}.logo:not(:has(.logo-arrow)) .logo-text{border-bottom:1px solid var(--text-muted);padding-bottom:2px}.nav-main{display:flex;gap:24px;font-family:Geist Pixel,monospace;font-size:.9rem;margin-left:auto}.nav-main a{color:var(--text-muted);font-weight:500;transition:color .2s;min-height:44px;display:flex;align-items:center;padding:0 12px}.nav-main a:hover,.nav-main a.active{color:var(--text)}.nav-main a.active{border-bottom:1px solid var(--text)}.theme-toggle{background:transparent;border:1px solid var(--border);border-radius:50%;width:44px;height:44px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);touch-action:manipulation;flex-shrink:0}.theme-toggle:hover{border-color:var(--text)}.theme-icon{width:20px;height:20px}main{padding:48px 0}.section{margin-bottom:64px}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:24px}.card{background:var(--bg-elevated);border-radius:12px;padding:32px;margin-bottom:24px;transition:transform .3s ease,box-shadow .3s ease,background-color .5s ease;box-shadow:0 0 0 1px var(--border);display:block}.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 8px 32px var(--card-glow),0 0 0 1px var(--border)}.card-featured{box-shadow:-3px 0 0 0 var(--accent),0 0 0 1px var(--border)}.card-featured:hover{box-shadow:-3px 0 0 0 var(--accent),0 8px 32px var(--card-glow),0 0 0 1px var(--border)}.card h2{font-family:Geist Pixel Square,monospace;font-size:1.5rem;margin-bottom:8px}.card h3{font-family:Geist Pixel Square,monospace;font-size:1.25rem;margin-bottom:8px}.card p{color:var(--text);margin-bottom:16px}.meta{font-size:.85rem;color:var(--text-muted)}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.tag{font-family:Geist Pixel Grid,monospace;font-size:.875rem;padding:6px 12px;background:var(--border);border-radius:4px;color:var(--text-muted);min-height:36px;display:inline-flex;align-items:center;white-space:nowrap;flex-shrink:0}.item-list{display:flex;flex-direction:column;gap:16px}.item-list a{display:block;padding:16px 0;border-bottom:1px solid var(--border);min-height:44px}.item-list a:hover h3{color:var(--accent)}.item-list h3{font-family:Geist Pixel Square,monospace;font-size:1.1rem;margin-bottom:4px}.item-list .meta{font-size:.9rem}.empty-state{padding:48px;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:12px}article{max-width:65ch;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}article h1{font-family:Geist Pixel Square,monospace;font-size:2.5rem;line-height:1.2;margin-bottom:16px}article h2{font-family:Geist Pixel Square,monospace;font-size:1.5rem;margin:48px 0 16px}article h3{font-family:Geist Pixel Square,monospace;font-size:1.25rem;margin:32px 0 12px}article p{margin-bottom:20px;color:var(--text)}article>p:first-of-type{font-size:1.125rem;color:var(--text);margin-bottom:32px}.breadcrumb{font-size:.85rem;color:var(--text-muted);margin-bottom:32px}.breadcrumb a:hover{color:var(--text)}.chapter-nav{display:flex;justify-content:space-between;padding:32px 0;border-top:1px solid var(--border);margin-top:48px;gap:16px}.chapter-nav a{color:var(--text-muted);min-height:44px;display:flex;align-items:center;padding:8px 0}.chapter-nav a:hover{color:var(--text)}.related{margin-top:48px;padding:24px;background:var(--bg-elevated);border-radius:8px}.related h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:16px}footer{padding:32px 0;border-top:1px solid var(--border);font-size:.9rem;color:var(--text-muted)}footer .container{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.footer-copyright{justify-self:start}.footer-logo{justify-self:center}.footer-logo svg{width:28px;height:28px;display:block}.footer-logo .pixel-text{font-family:Geist Pixel,monospace;font-size:48px;fill:var(--text);text-anchor:middle}.footer-links{justify-self:end;display:flex;gap:24px}.footer-links a{min-height:44px;display:flex;align-items:center}.footer-links a:hover{color:var(--text)}.now-tag{font-family:Geist Pixel,monospace;font-size:.9rem;font-weight:600;color:#fbbf24;margin-bottom:16px;letter-spacing:.02em}[data-theme=light] .now-tag{color:#be185d}.buggy-tag{font-family:Geist Pixel,monospace;font-size:1.25rem;font-weight:500;color:#fbbf24;display:block;margin-bottom:8px}[data-theme=light] .buggy-tag{color:#be185d}.outline-card{border:2px solid var(--border);border-radius:8px;padding:24px;background:transparent}.outline-card .explore-title{font-family:Geist Pixel,monospace;font-size:1.1rem;font-weight:600;color:var(--text-muted);margin-bottom:16px;letter-spacing:.02em}.outline-card a{display:block;margin-top:12px;font-weight:500;min-height:44px;display:flex;align-items:center}.outline-card a:hover{color:var(--text)}.logo-text{display:inline-block;opacity:0;transform:translateY(4px);animation:logoFadeIn .8s ease forwards}.logo-arrow{display:inline-block;margin-right:4px;opacity:0;transform:translate(-8px);transition:transform .3s ease,opacity .3s ease;animation:arrowFadeIn .8s ease forwards}@keyframes logoFadeIn{to{opacity:1;transform:translateY(0)}}@keyframes arrowFadeIn{to{opacity:1;transform:translate(0)}}.logo:hover .logo-arrow{transform:translate(-4px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:640px){header .container{flex-wrap:wrap;gap:16px}.theme-toggle{order:2;margin-left:auto}.nav-main{order:3;width:100%;justify-content:center;gap:32px;margin:16px 0 0;padding-top:16px;border-top:1px solid var(--border)}.nav-main a{font-size:.95rem;font-weight:500;color:var(--text);padding:0 12px}article h1{font-size:1.75rem}.card{padding:24px}}@media(max-width:480px){.nav-main{gap:24px}.nav-main a{font-size:.9rem;min-height:40px;padding:0 12px}.logo{font-size:1rem}header .container{flex-wrap:wrap}.section-title{font-size:.75rem}.tag{font-size:.8rem;padding:6px 10px;min-height:36px}}@media(max-width:360px){.container{padding:0 16px}.chapter-nav{flex-direction:column;align-items:stretch;text-align:center;gap:8px}footer .container{grid-template-columns:1fr;text-align:center}.footer-copyright,.footer-logo,.footer-links{justify-self:center}.footer-links{width:100%;gap:16px;justify-content:center}}@media(hover:none){.card:hover{transform:none;box-shadow:0 0 0 1px var(--border)}.card-featured:hover{box-shadow:-3px 0 0 0 var(--accent),0 0 0 1px var(--border)}}
