:root{--bg:#ffffff;--surface:#f7f7f8;--surface-2:#ebebef;--border:rgba(0,0,0,0.07);--border-hi:rgba(0,0,0,0.13);--text:#0f0f11;--text-muted:#6b7280;--text-faint:#9ca3af;--cyan:#2563eb;--purple:#7c3aed;--pink:#db2777;--green:#16a34a;--yellow:#d97706;--orange:#ea580c;--header-bg:rgba(255,255,255,0.90);--card-shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.04);--card-shadow-hover:0 8px 28px rgba(0,0,0,0.10),0 2px 6px rgba(0,0,0,0.05);--cover-overlay:rgba(0,0,0,0.48);--code-bg:#f1f5f9;--code-border:rgba(0,0,0,0.08);--code-text:#1e293b;--inline-code-bg:#eff6ff;--inline-code-color:#1d4ed8;--mdx-body:rgba(15,15,17,0.84);--blockquote-border:#7c3aed;--h2-border:#2563eb;--r-xl:20px;--r-lg:14px;--r-md:10px;--r-sm:6px;--font-brand:"Orbitron",sans-serif;--font-body:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}[data-theme=dark]{--bg:#04041e;--surface:#09092b;--surface-2:#0f0f38;--border:rgba(255,255,255,0.06);--border-hi:rgba(255,255,255,0.13);--text:#ffffff;--text-muted:rgba(255,255,255,0.55);--text-faint:rgba(255,255,255,0.30);--cyan:#00c8ff;--purple:#a000ff;--pink:#ff0080;--green:#00ff88;--yellow:#ffe600;--orange:#ff7700;--header-bg:rgba(4,4,30,0.85);--card-shadow:none;--card-shadow-hover:0 24px 64px rgba(0,0,0,0.45);--cover-overlay:rgba(4,4,30,0.55);--code-bg:rgba(255,255,255,0.03);--code-border:rgba(255,255,255,0.08);--code-text:rgba(255,255,255,0.82);--inline-code-bg:rgba(0,200,255,0.07);--inline-code-color:#00c8ff;--mdx-body:rgba(255,255,255,0.86);--blockquote-border:#a000ff;--h2-border:#00c8ff}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color .2s ease,color .2s ease}a{color:inherit;text-decoration:none}img{max-width:100%}button{font-family:inherit;cursor:pointer}.container{max-width:1200px;margin:0 auto;padding:0 24px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:background-color .2s ease}.header-inner{display:flex;align-items:center;height:58px;gap:16px}.header-logo{font-family:var(--font-brand);font-size:13px;font-weight:900;letter-spacing:.5px;background:linear-gradient(90deg,var(--cyan) 0,var(--purple) 60%,var(--pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex-shrink:0}.header-right{gap:10px}.header-nav,.header-right{display:flex;align-items:center;margin-left:auto}.header-nav{gap:12px}.header-nav a{font-size:12px;font-weight:500;color:var(--text-muted);transition:color .15s;white-space:nowrap}.header-nav a:hover{color:var(--text)}.lang-toggle{display:flex;align-items:center;border:1px solid var(--border-hi);border-radius:8px;overflow:hidden}.lang-toggle button{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.5px;padding:5px 10px;border:none;background:transparent;color:var(--text-faint);transition:all .15s}.lang-toggle button:first-child{border-right:1px solid var(--border-hi)}.lang-toggle button.active{background:var(--text);color:var(--bg)}.lang-toggle button:not(.active):hover{color:var(--text-muted);background:var(--surface)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid var(--border-hi);background:transparent;color:var(--text-muted);transition:all .15s;flex-shrink:0}.theme-toggle:hover{background:var(--surface);color:var(--text)}.hero{padding:80px 0 56px;text-align:center;background-image:radial-gradient(circle,var(--border-hi) 1px,transparent 1px);background-size:24px 24px}.hero-eyebrow{font-family:var(--font-body);font-size:10px;letter-spacing:4px;color:var(--text-faint);margin-bottom:20px}.hero-title{font-family:var(--font-brand);font-size:clamp(34px,6.5vw,64px);font-weight:900;line-height:1.08;letter-spacing:-1px;background:linear-gradient(135deg,var(--text) 0,var(--cyan) 45%,var(--purple) 72%,var(--pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:16px}.hero-sub{font-size:15px;line-height:1.7;margin-bottom:32px;max-width:480px;margin-left:auto;margin-right:auto}.hero-cta,.hero-sub{color:var(--text-muted)}.hero-cta{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;border:1px solid var(--border-hi);border-radius:100px;padding:9px 20px;transition:all .18s;background:var(--bg)}.hero-cta:hover{color:var(--cyan);border-color:var(--cyan)}.filter-section{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--border);margin-bottom:36px}.filter-btn{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:1px;padding:6px 16px;border-radius:12px;border:1px solid var(--border-hi);background:transparent;color:var(--text-faint);transition:all .15s}.filter-btn:hover{color:var(--text);border-color:var(--border-hi);background:var(--surface)}.filter-btn.active{background:var(--text);border-color:var(--text);color:var(--bg)}[data-theme=dark] .filter-btn.active{background:var(--cyan);border-color:var(--cyan);color:#04041e}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px;padding-bottom:80px}@media (max-width:1024px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.post-grid{grid-template-columns:1fr;gap:12px}}.grid-empty{grid-column:1/-1;padding:60px 0;text-align:center;color:var(--text-faint);font-family:var(--font-body);font-size:13px}.post-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--card-shadow);transition:transform .22s ease,box-shadow .22s ease,border-color .22s,background-color .2s}.post-card:hover{transform:translateY(-4px);border-color:var(--border-hi);box-shadow:var(--card-shadow-hover)}.post-card.featured{grid-column:1/-1;flex-direction:row}.post-card.featured .post-cover{width:46%;min-height:280px;height:auto}.post-card.featured .post-cover-emoji{font-size:100px}.post-card.featured .post-body{padding:36px 40px;justify-content:center}.post-card.featured .post-title{font-size:24px;-webkit-line-clamp:3}.post-card.featured .post-desc{font-size:14px;-webkit-line-clamp:3}@media (max-width:768px){.post-card.featured{flex-direction:column}.post-card.featured .post-cover{width:100%;min-height:160px}.post-card.featured .post-body{padding:22px}.post-card.featured .post-title{font-size:18px}}.post-cover{height:154px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:14px;flex-shrink:0}.post-cover:after{content:"";inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.24))}.post-cover-emoji,.post-cover:after{position:absolute;pointer-events:none}.post-cover-emoji{top:50%;left:50%;transform:translate(-50%,-50%);font-size:56px;opacity:.2;filter:blur(1.5px);-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}.post-category{position:relative;z-index:1;font-family:var(--font-body);font-size:9px;font-weight:700;letter-spacing:2px;padding:5px 12px;border-radius:8px;background:var(--cover-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.15)}.post-body{padding:20px 20px 18px;flex:1 1;display:flex;flex-direction:column;gap:9px}.post-title{font-size:16px;font-weight:700;line-height:1.45;letter-spacing:-.2px;color:var(--text)}.post-desc,.post-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-desc{font-size:13px;color:var(--text-muted);line-height:1.6;flex:1 1}.post-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border);margin-top:auto;gap:8px}.post-author{font-weight:600;overflow:hidden;text-overflow:ellipsis}.post-author,.post-meta-chips{font-family:var(--font-body);font-size:11px;color:var(--text-faint);white-space:nowrap}.post-meta-chips{display:flex;align-items:center;gap:5px;flex-shrink:0}.post-page{max-width:740px;margin:0 auto;padding:48px 24px 100px}.post-back{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.3px;color:var(--text-faint);margin-bottom:48px;transition:color .15s;border:1px solid var(--border);border-radius:8px;padding:6px 12px}.post-back:hover{color:var(--cyan);border-color:var(--cyan)}.post-hero{width:100%;height:300px;border-radius:var(--r-xl);overflow:hidden;margin-bottom:40px;position:relative;display:flex;align-items:center;justify-content:center}.post-hero .post-cover-emoji{font-size:140px;opacity:.14;filter:blur(3px)}.post-hero-cat{position:absolute;bottom:18px;left:18px;font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:2px;padding:5px 12px;border-radius:8px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.18)}.post-header{margin-bottom:48px}.post-header h1{font-size:clamp(24px,4vw,40px);font-weight:800;line-height:1.22;letter-spacing:-.5px;margin-bottom:18px}.post-meta-row{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:10px;color:var(--text-faint);flex-wrap:wrap;letter-spacing:.2px}.post-meta-row .dot{color:var(--border-hi)}.mdx{font-size:17px;line-height:1.88;color:var(--mdx-body);transition:color .2s}.mdx>*+*{margin-top:1.4em}.mdx h2{font-size:21px;margin:52px 0 14px;padding-left:14px;border-left:3px solid var(--h2-border);line-height:1.3}.mdx h2,.mdx h3{font-weight:700;color:var(--text)}.mdx h3{font-size:17px;margin:36px 0 10px;font-family:var(--font-body);letter-spacing:-.2px}.mdx p{margin-bottom:0}.mdx ol,.mdx ul{padding-left:22px}.mdx li+li{margin-top:6px}.mdx code{font-size:.85em;background:var(--inline-code-bg);border:1px solid var(--code-border);color:var(--inline-code-color);padding:3px 7px;border-radius:6px}.mdx code,.mdx pre{font-family:var(--font-mono)}.mdx pre{background:var(--code-bg);border:1px solid var(--border-hi);border-radius:var(--r-lg);padding:20px 22px;overflow-x:auto;margin:28px 0}.mdx pre code{background:none;border:none;padding:0;color:var(--code-text);font-size:13.5px;font-family:var(--font-mono)}.mdx blockquote{border-left:3px solid var(--blockquote-border);padding:2px 0 2px 18px;margin:28px 0;color:var(--text-muted);font-style:italic}.mdx a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}.mdx a:hover{opacity:.8}.mdx hr{border:none;border-top:1px solid var(--border-hi);margin:44px 0}.mdx img{border-radius:var(--r-lg);display:block}.mdx strong{color:var(--text);font-weight:700}.mdx table{width:100%;border-collapse:collapse;font-size:14px;margin:24px 0}.mdx td,.mdx th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border)}.mdx th{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--text-faint)}.post-nudge{padding:40px 24px;background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(168,0,255,.06) 50%,rgba(219,39,119,.06));border:2px solid rgba(37,99,235,.12);border-radius:var(--r-xl);margin:80px -24px -24px}.post-nudge h2{font-size:20px;font-weight:800;margin-bottom:24px;background:linear-gradient(90deg,var(--cyan) 0,var(--purple) 60%,var(--pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.nudge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}@media (max-width:768px){.nudge-grid{grid-template-columns:1fr}}[data-theme=dark] .post-nudge{background:linear-gradient(135deg,rgba(0,200,255,.08),rgba(160,0,255,.08) 50%,rgba(255,0,128,.08));border-color:rgba(0,200,255,.15)}.site-footer{border-top:1px solid var(--border);padding:32px 0;transition:background-color .2s}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer-logo{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--text-faint)}.footer-links{display:flex;gap:20px}.footer-links a{font-size:13px;color:var(--text-faint);transition:color .15s}.footer-links a:hover{color:var(--cyan)}.footer-copy{font-size:12px;color:var(--text-faint);font-family:var(--font-mono)}