@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Manrope:wght@400;500;700;800&display=swap";:root{--font-body:"Manrope", "Segoe UI", sans-serif;--font-title:"Fraunces", Georgia, serif;--font-ui:"Manrope", "Segoe UI", sans-serif;--ink:#132133;--ink-muted:#5f7288;--surface:#f4f9ff;--line:#133b5f2e;--brand:#0f6cae;font-family:var(--font-body);color:var(--ink);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:500;line-height:1.55}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{scroll-behavior:smooth}html,body{color:var(--ink);background:radial-gradient(circle at 80% -10%,#359ccb38,#0000 45%),radial-gradient(circle at 18% 12%,#5ec7a833,#0000 42%),linear-gradient(#edf5fe,#f7fbff 45%,#eef6ff)}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-title);letter-spacing:-.02em;margin:0;font-weight:700}p{margin:0}a{color:inherit}.post-card{opacity:0;grid-column:span 4;animation:.46s cubic-bezier(.25,.8,.25,1) forwards card-enter;transform:translateY(20px)}.post-card article{border:1px solid var(--line);background:linear-gradient(145deg,#ffffffed,#f2f8ffe6);border-radius:1.2rem;height:100%;padding:1rem;transition:transform .2s,border-color .2s,box-shadow .2s;box-shadow:0 12px 30px #0a1e3617}.post-card article:hover{border-color:#136eaf59;transform:translateY(-3px);box-shadow:0 18px 38px #082a4c2b}.post-image{aspect-ratio:16/8;object-fit:cover;object-position:center;border:1px solid #0e4a7826;border-radius:.8rem;width:100%;max-height:140px;margin-bottom:.95rem}.post-meta{font-family:var(--font-ui);color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:.8rem;margin-bottom:.75rem;font-size:.86rem;display:flex}.post-card h2{color:var(--ink);margin:0;font-size:clamp(1.2rem,1.8vw,1.55rem);line-height:1.08}.post-excerpt{color:var(--ink-muted);margin-top:.75rem}.read-link{font-family:var(--font-ui);color:var(--brand);align-items:center;gap:.4rem;margin-top:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.read-link.muted{color:var(--ink-muted);font-weight:600}.read-link:after{content:"->";transition:transform .16s}.read-link:hover:after{transform:translate(4px)}@keyframes card-enter{to{opacity:1;transform:translateY(0)}}@media (width<=860px){.post-card{grid-column:span 12}.post-image{max-height:160px}}@media (width<=1180px) and (width>=861px){.post-card{grid-column:span 6}}@media (width<=520px){.post-card article{padding:.85rem}.post-meta{gap:.45rem;margin-bottom:.55rem;font-size:.78rem}.post-excerpt{margin-top:.6rem;font-size:.95rem}}.blog-shell{width:min(1280px,100% - 2.5rem);margin:0 auto 3rem;padding-top:1rem}.hero{background:radial-gradient(circle at 14% 22%,#4fcfaf54,#0000 56%),radial-gradient(circle at 90% 18%,#1c639861,#0000 50%),linear-gradient(132deg,#0a1c38e6,#080b1df2);border:1px solid #ffffff59;border-radius:2rem;padding:5.5rem clamp(1.2rem,3vw,2.8rem) 2.8rem;position:relative;overflow:hidden;box-shadow:0 28px 80px #060f1f59}.hero:after{content:"";opacity:.45;border:1px solid #ffffff47;border-radius:999px;width:260px;height:260px;position:absolute;bottom:-120px;right:-120px}.hero-kicker{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.18em;color:#edf7ffd1;margin:0;font-size:.76rem}.hero h1{color:#fff;max-width:20ch;margin:.9rem 0 1rem;font-size:clamp(2rem,5vw,3.9rem);line-height:.98}.hero-summary{color:#e1effaeb;max-width:58ch;margin:0;font-size:clamp(1rem,2vw,1.2rem)}.blog-feed{margin-top:1.8rem}.status{border:1px dashed var(--line);color:var(--ink-muted);font-family:var(--font-ui);background:#ffffffc2;border-radius:.85rem;margin:0;padding:1.1rem 1.2rem}.status.error{color:#b62222;border-color:#cf414147}.post-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:.9rem;margin:0;padding:0;list-style:none;display:grid}@media (width<=1140px){.blog-shell{width:min(1120px,100% - 2rem)}}@media (width<=860px){.blog-shell{width:min(1120px,100% - 1.5rem);margin:0 auto 2.5rem;padding-top:.75rem}.hero{border-radius:1.4rem;padding:3.8rem 1rem 2rem}}@media (width<=560px){.blog-shell{width:calc(100% - .9rem);padding-top:.45rem}.hero{border-radius:1.05rem;padding:2.7rem .85rem 1.35rem}.hero h1{font-size:clamp(1.55rem,8vw,2.05rem);line-height:1.03}.hero-summary{font-size:.95rem}.blog-feed{margin-top:1rem}}.post-page{width:min(1160px,100% - 1rem);margin:0 auto 3rem;padding-top:1rem}.post-layout{grid-template-columns:minmax(0,820px) 240px;justify-content:center;align-items:start;gap:.7rem;display:grid}.back-link{color:var(--brand);font-family:var(--font-ui);margin-bottom:1rem;font-weight:700;text-decoration:none;display:inline-flex}.post-article{border:1px solid var(--line);background:#ffffffe6;border-radius:1.2rem;padding:clamp(1rem,3vw,2rem);box-shadow:0 20px 48px #081f3a1c}.post-article-header h1{color:var(--ink);margin-top:.5rem;font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.02}.post-detail-meta{color:var(--ink-muted);font-size:.9rem;font-family:var(--font-ui);flex-wrap:wrap;gap:.65rem;margin:0;display:flex}.post-detail-meta span+span:before{content:"•";margin-right:.65rem}.post-detail-image{object-fit:cover;object-position:center;border:1px solid #0e4a7826;border-radius:.9rem;width:min(100%,460px);max-height:180px;margin:1.2rem 0 1.4rem}.post-content{color:#24354a}.post-content p,.post-content h2,.post-content h3{margin:0}.post-content p+p,.post-content p+h2,.post-content p+h3,.post-content h2+p,.post-content h3+p,.post-content h2+h3,.post-content h3+h2{margin-top:1rem}.post-content h2{font-size:clamp(1.5rem,2.8vw,2rem)}.post-content h3{font-size:clamp(1.25rem,2.3vw,1.6rem)}.scroll-top-button{color:#0c5f9a;cursor:pointer;background:linear-gradient(#fff,#eef7ff);border:1px solid #0f6cae66;border-radius:999px;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;margin:2rem auto 0;font-size:1.35rem;line-height:1;transition:transform .18s,box-shadow .18s;animation:1.6s ease-in-out infinite bounce-up;display:flex;box-shadow:0 10px 24px #0a528633}.scroll-top-button:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0f6cae47}@keyframes bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.toc{border:1px solid var(--line);background:#ffffffdb;border-radius:1rem;width:240px;padding:.85rem .65rem .85rem .8rem;position:sticky;top:1rem;box-shadow:0 10px 26px #081f3a14}.toc-title{font-family:var(--font-ui);color:var(--ink);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.86rem;font-weight:800}.toc ul{flex-direction:column;gap:.35rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.toc li{margin:0}.toc a{color:#335272;font-size:.9rem;line-height:1.35;text-decoration:none}.toc a:hover{color:var(--brand)}.toc-sub{padding-left:.7rem}@media (width<=1100px){.post-page{width:min(920px,100% - 1rem)}.post-layout{grid-template-columns:1fr}.toc{display:none}}@media (width<=860px){.post-page{width:min(900px,100% - 1rem);margin-top:0;padding-top:.75rem}.post-layout{grid-template-columns:1fr}.post-article{border-radius:.9rem;padding:1rem}.post-detail-image{width:100%;max-height:160px}}@media (width<=520px){.post-page{width:calc(100% - .75rem);padding-top:.5rem}.back-link{margin-bottom:.7rem;font-size:.94rem}.post-detail-meta{gap:.45rem;font-size:.82rem}.post-content p+p,.post-content p+h2,.post-content p+h3,.post-content h2+p,.post-content h3+p,.post-content h2+h3,.post-content h3+h2{margin-top:.8rem}.scroll-top-button{width:2.55rem;height:2.55rem}}
