:root{--blog-bg:#fff;--blog-fg:#111;--blog-border:#e5e7eb;--blog-muted:#0000008c;--blog-active-bg:#00000012;--blog-primary:#6366f1;--blog-link:#007bff;--blog-card-shadow:0 4px 24px 0 #0000001a;--blog-progress-fill:#111111e6;--blog-progress-glow:#11111140;--blog-scroll-bg:#ffffffc7;--blog-scroll-fg:#111;--blog-scroll-shadow:0 2px 16px #00000026;--blog-scroll-hover:#fffffff2;--blog-ring-bg:#00000038;--blog-ring-fg:#111}html.dark{--blog-bg:#111;--blog-fg:#f5f5f5;--blog-border:#2a2a2a;--blog-muted:#ffffff8c;--blog-active-bg:#ffffff17;--blog-primary:#818cf8;--blog-link:#60a5fa;--blog-card-shadow:0 4px 24px 0 #0006;--blog-progress-fill:#ffffffeb;--blog-progress-glow:#ffffffb3;--blog-scroll-bg:#121212b8;--blog-scroll-fg:#fff;--blog-scroll-shadow:0 2px 16px #00000073;--blog-scroll-hover:#262626e0;--blog-ring-bg:#ffffff47;--blog-ring-fg:#fff}*,:before,:after{box-sizing:border-box}html,body{background:var(--blog-bg);color:var(--blog-fg);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.6;transition:background .2s,color .2s}a{color:inherit}.blog-navbar{z-index:100;background:var(--blog-bg);border-bottom:1px solid var(--blog-border);-webkit-backdrop-filter:blur(12px);position:sticky;top:0}.blog-navbar-inner{align-items:center;gap:.5rem;max-width:720px;height:56px;margin:0 auto;padding:0 1rem;display:flex}.blog-navbar-brand{color:var(--blog-fg);flex-shrink:0;font-size:.95rem;font-weight:700;text-decoration:none}.blog-navbar-spacer{flex:1}.blog-navlinks{align-items:center;gap:.25rem;display:flex}.blog-navlink{color:var(--blog-fg);letter-spacing:.01em;white-space:nowrap;opacity:.65;background:0 0;border-radius:6px;align-items:center;padding:.3rem .7rem;font-size:.82rem;font-weight:450;text-decoration:none;transition:background .15s,opacity .15s;display:inline-flex}.blog-navlink.active{background:var(--blog-active-bg);opacity:1;font-weight:600}.blog-navlink:hover{opacity:1}.blog-theme-btn{width:2rem;height:2rem;color:var(--blog-fg);cursor:pointer;opacity:.65;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:opacity .15s,background .15s;display:inline-flex}.blog-theme-btn:hover{opacity:1;background:var(--blog-active-bg)}.blog-layout{flex-direction:column;min-height:100vh;display:flex}.blog-main{flex:1}.blog-content{max-width:720px;margin:0 auto;padding:2rem 1rem}.blog-footer{border-top:1px solid var(--blog-border);margin-top:4rem}.blog-footer-inner{opacity:.7;max-width:720px;margin:0 auto;padding:2rem 1rem;font-size:.875rem}.blog-footer a{color:var(--blog-link);text-decoration:none}.blog-footer a:hover{text-decoration:underline}.blog-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.blog-footer-links{margin-bottom:.5rem}.blog-footer-links p{margin:0 0 .25rem}.home-content{max-width:720px;margin:0 auto;padding:2.5rem 1rem}.home-content h1{margin:0 0 1.25rem;font-size:2rem;font-weight:800;line-height:1.2}.home-content p{opacity:.85;margin:0 0 1rem;font-size:1rem;line-height:1.75}.home-content hr{border:none;border-top:1px solid var(--blog-border);margin:1.5rem 0}.home-content a{color:var(--blog-link);font-weight:600;text-decoration:none}.home-content a:hover{text-decoration:underline}.home-content strong{color:var(--blog-fg);opacity:1;font-weight:700}.home-content em{font-style:italic}.posts-container{max-width:720px;margin:0 auto;padding:2rem 1rem}.posts-container h1{margin:0 0 2rem;font-size:2rem;font-weight:800}.posts-grid{flex-direction:column;gap:1.25rem;display:flex}@media (max-width:640px){.posts-container{padding:1.25rem .75rem}.posts-container h1{margin-bottom:1.25rem;font-size:1.55rem}.posts-grid{gap:.9rem}}.post-card-link{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none;display:block}.post-card{border:1px solid var(--blog-border);cursor:pointer;background-color:var(--blog-bg);border-radius:12px;padding:1.5rem;transition:box-shadow .18s,border-color .18s,transform .12s}@media (hover:hover){.post-card:hover{box-shadow:var(--blog-card-shadow);border-color:var(--blog-primary);transform:translateY(-2px)}}.post-card:active{transition:transform 80ms;transform:scale(.985)}.post-card-date{opacity:.55;font-variant-numeric:tabular-nums;margin-bottom:.4rem;font-size:.8rem;display:block}.post-card-title{margin:0 0 .5rem;font-size:1.2rem;font-weight:700;line-height:1.35}.post-card-desc{opacity:.7;margin:0 0 .85rem;font-size:.95rem;line-height:1.6}.post-card-tags{flex-wrap:wrap;gap:.4rem;display:flex}.post-card-tag{border:1px solid var(--blog-border);opacity:.75;border-radius:999px;padding:.2rem .65rem;font-size:.75rem}@media (max-width:640px){.post-card{border-radius:10px;padding:1rem 1.1rem}.post-card-title{font-size:1.08rem}.post-card-desc{font-size:.9rem}.post-card-tag{padding:.18rem .55rem;font-size:.72rem}}.back-btn-wrap{max-width:720px;margin:0 auto;padding:1.5rem 1rem 0}.back-btn{border:1px solid var(--blog-border);color:inherit;opacity:.8;-webkit-tap-highlight-color:transparent;border-radius:8px;align-items:center;gap:.45rem;padding:.45rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .15s,border-color .15s;display:inline-flex}@media (hover:hover){.back-btn:hover{opacity:1;border-color:currentColor}}.back-btn:active{opacity:1}.dxd-progress-track{z-index:9999;pointer-events:none;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.dxd-progress-fill{background:var(--blog-progress-fill);width:0%;height:100%;box-shadow:0 0 8px 1px var(--blog-progress-glow), 0 0 16px 2px var(--blog-progress-glow);will-change:width}.dxd-scroll-btn{z-index:9998;background:var(--blog-scroll-bg);-webkit-backdrop-filter:blur(10px);width:2.5rem;height:2.5rem;color:var(--blog-scroll-fg);cursor:pointer;box-shadow:var(--blog-scroll-shadow);-webkit-tap-highlight-color:transparent;opacity:0;pointer-events:none;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .25s,transform .25s,background-color .18s;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(10px)}.dxd-scroll-btn[data-visible=true]{opacity:1;pointer-events:auto;transform:translateY(0)}@media (hover:hover){.dxd-scroll-btn:hover{background:var(--blog-scroll-hover)}}.dxd-scroll-btn:active{transform:translateY(0)scale(.92)}.dxd-scroll-ring{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.dxd-scroll-ring-bg,.dxd-scroll-ring-fg{fill:none;stroke-width:2px}.dxd-scroll-ring-bg{stroke:var(--blog-ring-bg)}.dxd-scroll-ring-fg{stroke:var(--blog-ring-fg);stroke-linecap:round}.dxd-scroll-arrow{z-index:1;position:relative}@media (max-width:768px){.dxd-scroll-btn{width:3rem;height:3rem;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));right:1.25rem}.dxd-progress-track{height:3px}}@media (prefers-reduced-motion:reduce){.dxd-scroll-btn{transition:none}}.post-page{max-width:720px;margin:0 auto;padding:2rem 1rem}.post-page h1{margin:0 0 .75rem;font-size:2rem;font-weight:800;line-height:1.2}.post-page-meta{opacity:.6;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.85rem;display:flex}.post-page-content{font-size:1rem;line-height:1.75}.post-page-content h2{margin:2rem 0 .75rem;font-size:1.5rem;font-weight:700}.post-page-content h3{margin:1.5rem 0 .5rem;font-size:1.2rem;font-weight:600}.post-page-content p{margin:0 0 1rem}.post-page-content pre{background:var(--blog-active-bg);border:1px solid var(--blog-border);border-radius:8px;margin:0 0 1rem;padding:1rem;font-size:.9rem;overflow-x:auto}.post-page-content code{background:var(--blog-active-bg);border:1px solid var(--blog-border);border-radius:4px;padding:.1em .4em;font-family:JetBrains Mono,Fira Code,monospace;font-size:.88em}.post-page-content pre code{background:0 0;border:none;padding:0;font-size:1em}.post-page-content a{color:var(--blog-link);text-decoration:none}.post-page-content a:hover{text-decoration:underline}.post-page-content hr{border:none;border-top:1px solid var(--blog-border);margin:2rem 0}.post-page-content ul,.post-page-content ol{margin:0 0 1rem 1.5rem}.post-page-content li{margin-bottom:.25rem}.post-page-content blockquote{border-left:3px solid var(--blog-border);opacity:.8;margin:0 0 1rem;padding:.5rem 1rem}
