.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}:root{--bg:#0d0d12;--bg-soft:#14141c;--surface:#191922;--border:#262633;--text:#e9e9f0;--text-muted:#9a9ab0;--accent:#8b7bff;--accent-2:#ff7bab;--radius:14px;--maxw:720px;--font:"Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}:root[data-theme=light]{--bg:#fbfbfd;--bg-soft:#f2f2f6;--surface:#fff;--border:#e6e6ee;--text:#1a1a22;--text-muted:#6b6b80;--accent:#6b5bff;--accent-2:#e0447f}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.75;transition:background .3s,color .3s}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-2)}.site-header{z-index:20;backdrop-filter:saturate(180%)blur(12px);background:color-mix(in srgb, var(--bg) 80%, transparent);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .wrap{justify-content:space-between;align-items:center;height:60px;display:flex}.brand{color:var(--text);letter-spacing:-.01em;font-size:1.15rem;font-weight:800}.brand:hover{color:var(--text)}.nav{align-items:center;gap:20px;display:flex}.nav a{color:var(--text-muted);font-size:.92rem;font-weight:500}.nav a:hover{color:var(--text)}.theme-toggle{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:999px;place-items:center;width:34px;height:34px;font-size:1rem;transition:transform .15s;display:grid}.theme-toggle:hover{transform:scale(1.08)}.hero{padding:72px 0 40px}.hero h1{letter-spacing:-.03em;background:linear-gradient(135deg, var(--text), var(--accent));-webkit-text-fill-color:transparent;background-clip:text;font-size:clamp(2rem,6vw,3rem);font-weight:800;line-height:1.15}.hero p{color:var(--text-muted);max-width:34em;margin-top:16px;font-size:1.1rem}.section-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:48px 0 8px;font-size:.8rem}.post-list{flex-direction:column;list-style:none;display:flex}.post-item{border-bottom:1px solid var(--border)}.post-item a{color:var(--text);padding:22px 4px;display:block}.post-item a:hover{color:var(--text)}.post-item a:hover .post-title{color:var(--accent)}.post-meta{color:var(--text-muted);font-size:.78rem;font-family:var(--mono)}.post-title{letter-spacing:-.01em;margin:4px 0 6px;font-size:1.25rem;font-weight:700;transition:color .15s}.post-desc{color:var(--text-muted);font-size:.95rem}.tags{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.tag{font-size:.72rem;font-family:var(--mono);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 9px}.article{padding:56px 0 40px}.article-header{margin-bottom:40px}.article-header h1{letter-spacing:-.02em;margin:10px 0 14px;font-size:clamp(1.7rem,5vw,2.4rem);line-height:1.2}.prose{font-size:1.05rem}.prose>*+*{margin-top:1.4em}.prose h2{letter-spacing:-.01em;margin-top:2em;font-size:1.5rem}.prose h3{margin-top:1.6em;font-size:1.2rem}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose img{border-radius:var(--radius);border:1px solid var(--border);max-width:100%}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-muted);padding-left:1em;font-style:italic}.prose code{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.88em}.prose pre{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;font-size:.9rem;overflow-x:auto;background:var(--bg-soft)!important}.prose pre code{background:0 0;border:none;padding:0}.prose hr{border:none;border-top:1px solid var(--border)}.back-link{font-family:var(--mono);color:var(--text-muted);font-size:.85rem}.site-footer{border-top:1px solid var(--border);margin-top:80px;padding:32px 0}.site-footer .wrap{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.site-footer .links{gap:16px;display:flex}@media (width<=520px){.nav{gap:14px}.nav a{font-size:.85rem}}.wrap-wide{max-width:1080px;margin:0 auto;padding:0 20px}body:after{content:"";z-index:1;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body>*{z-index:2;position:relative}.landing-hero{isolation:isolate;padding:84px 0 44px;position:relative}.aurora{z-index:-1;filter:blur(70px);opacity:.6;pointer-events:none;height:520px;position:absolute;inset:-20% -10% auto}.aurora span{mix-blend-mode:screen;border-radius:50%;animation:18s ease-in-out infinite alternate drift;display:block;position:absolute}.aurora span:first-child{aspect-ratio:1;background:radial-gradient(circle,#8b7bff,#0000 70%);width:42vw;max-width:460px;top:0;left:2%}.aurora span:nth-child(2){aspect-ratio:1;background:radial-gradient(circle,#ff7bab,#0000 70%);width:38vw;max-width:420px;animation-delay:-6s;top:-6%;right:4%}.aurora span:nth-child(3){aspect-ratio:1;background:radial-gradient(circle,#4ad6ff,#0000 70%);width:30vw;max-width:360px;animation-delay:-11s;top:10%;left:36%}:root[data-theme=light] .aurora{opacity:.5}@keyframes drift{0%{transform:translate(0)scale(1)}50%{transform:translate(4%,6%)scale(1.12)}to{transform:translate(-3%,-4%)scale(.96)}}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;font-size:.78rem;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.landing-hero h1{letter-spacing:-.04em;font-variation-settings:"wght" 800;margin:18px 0 0;font-size:clamp(2.6rem,8vw,5rem);font-weight:800;line-height:1.02}.landing-hero h1 .grad{background:linear-gradient(110deg, var(--accent), var(--accent-2) 60%, #4ad6ff);-webkit-text-fill-color:transparent;background-size:200%;background-clip:text;animation:8s linear infinite shine}@keyframes shine{to{background-position:200%}}.landing-hero .lead{color:var(--text-muted);max-width:30em;margin-top:20px;font-size:clamp(1rem,2.4vw,1.2rem)}.bento{grid-template-columns:repeat(6,1fr);gap:14px;margin-top:40px;display:grid}.cell{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:22px;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s;position:relative;overflow:hidden}.cell:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border));transform:translateY(-4px)}.cell .cell-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem}.cell.feature{min-height:240px;color:var(--text);flex-direction:column;grid-area:span 2/span 4;justify-content:space-between;display:flex}.cell.feature:before{content:"";background:radial-gradient(120% 120% at 100% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 55%);pointer-events:none;position:absolute;inset:0}.cell.feature .f-title{letter-spacing:-.02em;margin:12px 0 8px;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;line-height:1.18}.cell.feature .f-desc{color:var(--text-muted);font-size:.98rem}.cell.feature .f-go{font-family:var(--mono);color:var(--accent);margin-top:18px;font-size:.85rem}.cell.topic{min-height:112px;color:var(--text);flex-direction:column;grid-column:span 2;gap:6px;display:flex}.cell.topic .t-emoji{font-size:1.5rem}.cell.topic .t-name{letter-spacing:-.01em;font-weight:700}.cell.topic .t-count{font-family:var(--mono);color:var(--text-muted);margin-top:auto;font-size:.72rem}.cell.recent{grid-column:span 3}.cell.recent ul{margin-top:12px;list-style:none}.cell.recent li+li{margin-top:2px}.cell.recent a{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;gap:10px;padding:9px 0;font-size:.92rem;display:flex}.cell.recent li:last-child a{border-bottom:none}.cell.recent a:hover{color:var(--accent)}.cell.recent .r-date{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;font-size:.72rem}.cell.intro{flex-direction:column;grid-column:span 3;gap:10px;display:flex}.cell.intro p{color:var(--text-muted);font-size:.95rem}.cell.cta{background:linear-gradient(100deg, color-mix(in srgb, var(--accent) 16%, var(--surface)), var(--surface));flex-wrap:wrap;grid-column:span 6;justify-content:space-between;align-items:center;gap:14px;display:flex}.cell.cta .cta-btn{color:var(--text);border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:10px 18px;font-weight:700;transition:transform .2s}.cell.cta .cta-btn:hover{color:var(--accent);transform:translate(4px)}.marquee{margin:34px 0 0;overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee ul{gap:34px;width:max-content;list-style:none;animation:26s linear infinite scroll-x;display:flex}.marquee li{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;align-items:center;gap:34px;font-size:.85rem;display:flex}.marquee li:after{content:"✦";color:var(--accent)}@keyframes scroll-x{to{transform:translate(-50%)}}@supports (animation-timeline:view()){.reveal{animation:linear both reveal-in view();animation-range:entry cover 26%}}@keyframes reveal-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.aurora span,.eyebrow:before,.landing-hero h1 .grad,.marquee ul,.reveal{animation:none!important}}@media (width<=760px){.bento{grid-template-columns:repeat(2,1fr)}.cell.feature{grid-column:span 2}.cell.topic{grid-column:span 1}.cell.recent,.cell.intro,.cell.cta{grid-column:span 2}}
