:root{--bg: #fffdf5;--surface: #ffffff;--text: #334155;--title: #0f172a;--muted: #64748b;--border: #e2e8f0;--brand: #1e7ab5;--brand-strong: #186498;--teal: #14b8a6}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.container{width:min(1100px,calc(100% - 2rem));margin:0 auto}.site-header{position:sticky;top:0;z-index:10;background:#ffffffd1;backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.65rem}.logo{width:44px;height:44px}.brand-text{font-size:1.55rem;color:var(--title);letter-spacing:-.02em}.brand-text span{font-weight:800}.header-nav{display:flex;align-items:center;gap:1.1rem;font-weight:600;color:var(--muted);font-size:.95rem}.header-nav a{padding:.2rem 0;border-bottom:2px solid transparent;transition:color .16s ease,border-color .16s ease}.header-nav a:hover,.header-nav a.active{color:var(--brand);border-color:var(--brand)}.hero{padding:3.8rem 0 2rem;position:relative}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(44px);pointer-events:none}.hero:before{width:260px;height:260px;background:#3b9dd924;top:-30px;right:10%}.hero:after{width:220px;height:220px;background:#14b8a61f;top:90px;left:0}.hero h1{margin:0;font-size:clamp(2rem,6vw,3rem);line-height:1.15;letter-spacing:-.02em;color:var(--title)}.hero p{margin-top:.9rem;font-size:1.12rem;max-width:760px;color:var(--muted)}.accent{color:var(--teal)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1.1rem;margin-bottom:3rem}.post-list{display:grid;grid-template-columns:1fr;gap:1.1rem;margin-bottom:3rem}.card{background:linear-gradient(160deg,#fff,#fcfdff 70%,#f2faff);border:1px solid var(--border);border-radius:1rem;padding:1.15rem;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 6px 18px #0f172a0a}.card:hover{transform:translateY(-3px);box-shadow:0 14px 28px #0f172a17}.card-row{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:1.15rem;align-items:stretch;overflow:hidden;padding:0}.card-row:hover h2{color:var(--brand)}.card-media{width:100%;height:100%;min-height:180px;object-fit:cover;border-right:1px solid var(--border);background:#f8fafc}.card-body{padding:1.15rem 1.2rem 1.15rem 0}.card h2,.card h3{margin:0 0 .45rem;color:var(--title);line-height:1.25}.card p{margin:0;color:var(--muted);font-size:.97rem}.meta{font-size:.82rem;color:var(--muted);margin:1rem 0 0;font-style:italic}.post-wrap{padding:2.5rem 0 3.2rem}.post{background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:clamp(1rem,3vw,2rem);box-shadow:0 10px 30px #0f172a0f}.post h1{margin:0;color:var(--title);line-height:1.15;letter-spacing:-.02em}.post .post-meta{margin:.7rem 0 1.4rem;color:var(--muted);font-size:.9rem}.post :where(h2,h3){color:var(--title);margin-top:1.7rem;margin-bottom:.5rem}.post :where(p,ul,ol){margin-top:.7rem;margin-bottom:.7rem}.post :where(p,ul,ol,li,blockquote,td,h2,h3) a{color:var(--brand);font-weight:600;text-decoration:underline;text-decoration-color:#1e7ab566;text-decoration-thickness:2px;text-underline-offset:2px;transition:color .14s ease,text-decoration-color .14s ease}.post :where(p,ul,ol,li,blockquote,td,h2,h3) a:hover{color:var(--brand-strong);text-decoration-color:var(--brand-strong)}.post img{width:100%;border-radius:.9rem;border:1px solid var(--border);box-shadow:0 10px 24px #0f172a14;margin:.85rem 0 1.1rem}.post ul,.post ol{padding-left:1.2rem}.post table{width:100%;table-layout:auto;border-collapse:separate;border-spacing:0;margin:1.1rem 0 1.4rem;border:1px solid var(--border);border-radius:.9rem;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 24px #0f172a0d}@media(max-width:720px){.post table{display:block;overflow-x:auto}}.post thead{background:linear-gradient(180deg,#f6fbff,#eef7fd)}.post th,.post td{padding:.85rem 1rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;min-width:140px}.post th{color:var(--title);font-size:.92rem;font-weight:700}.post td{color:var(--text);font-size:.95rem}.post tbody tr:nth-child(2n){background:#f8fafccc}.post tbody tr:last-child td{border-bottom:0}.post code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:.35rem;padding:.1rem .35rem;font-size:.9em}.post pre{background:#0f172a;color:#e2e8f0;border-radius:.75rem;padding:.95rem;overflow-x:auto}.post pre code{background:transparent;border:0;padding:0}.back-link{display:inline-flex;gap:.4rem;align-items:center;color:var(--brand);font-weight:700;margin-bottom:1rem}.breadcrumbs{margin-bottom:1rem;color:var(--muted);font-size:.9rem}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none}.breadcrumbs li+li:before{content:"/";margin-right:.45rem;color:#94a3b8}.breadcrumbs a,.post-meta a,.author-page a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}.author-wrap{padding:2.5rem 0 3.2rem}.author-page{max-width:820px}.author-header{padding:clamp(1.25rem,4vw,2.4rem);margin-bottom:2rem;border:1px solid var(--border);border-radius:1rem;background:var(--surface);box-shadow:0 10px 30px #0f172a0f}.author-header h1,.author-page h2,.author-post h3{color:var(--title)}.author-header h1{margin:.2rem 0 .6rem}.author-header p{margin:.45rem 0}.eyebrow{color:var(--teal);font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.author-posts{display:grid;gap:1rem}.author-post{padding:1.2rem;border:1px solid var(--border);border-radius:.8rem;background:var(--surface)}.author-post h3,.author-post p{margin:0 0 .45rem}.author-post time{color:var(--muted);font-size:.86rem}.site-footer{border-top:1px solid var(--border);margin-top:2rem}.footer-inner{min-height:68px;display:flex;align-items:center;justify-content:space-between;font-size:.92rem;color:var(--muted)}.footer-inner a{color:var(--brand);font-weight:600}@media(max-width:760px){.header-nav{gap:.8rem;font-size:.88rem}.brand-text{font-size:1.35rem}.card-row{grid-template-columns:1fr}.card-media{min-height:180px;border-right:0;border-bottom:1px solid var(--border)}.card-body{padding:0 1.1rem 1.15rem}}
