:root{--bg:#0a0a0f;--bg-2:#0d0c14;--bg-card:#111018;--card-2:#15131e;--accent:#a78bfa;--accent-dim:#8b6cf0;--lav:#a78bfa;--lav-2:#8b6cf0;--lav-soft:rgba(167,139,250,.14);--text:#f4f2fa;--text-muted:#b9b5c8;--dim:#8a869a;--border:hsla(0,0%,100%,.09);--border-2:hsla(0,0%,100%,.14);--font-display:"Unbounded","Syne","Arial Black",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--font-sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--radius:10px;--vv-height:100dvh;--vv-offset-top:0px;--vv-offset-left:0px;--vv-bottom-inset:0px;--vv-top-inset:0px;--vv-safe-top:env(safe-area-inset-top,0px);--vv-safe-bottom:env(safe-area-inset-bottom,0px)}*,body,html{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar,body::-webkit-scrollbar,html::-webkit-scrollbar{display:none;width:0;height:0}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.main-with-portfolio-header{min-height:60vh}.scroll-to-top-btn{position:fixed;right:.75rem;bottom:calc(var(--vv-bottom-inset, 0px) + var(--vv-safe-bottom, 0px) + 5.5rem);z-index:2100;width:40px;height:40px;border-radius:999px;border:1px solid rgba(148,163,184,.8);background:rgba(15,23,42,.95);color:#e5e7eb;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 10px 30px rgba(15,23,42,.7)}@media (min-width:768px){.scroll-to-top-btn{display:none}}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button,input,textarea{font-family:inherit}.recoursia-spec-md a,.recoursia-spec-md a:hover{text-decoration:none}.space-block{width:100vw;height:100vh;position:relative}.space-block-inner{width:100%;height:100%}.blog-app{padding:5rem 1.5rem 2rem;max-width:1200px;margin:0 auto}.blog-admin h1,.blog-auth-page h1,.blog-list h1,.blog-post h1{font-family:var(--font-display);margin-bottom:1rem}.blog-posts-list{list-style:none;padding:0}.blog-posts-list li{margin-bottom:.75rem}.blog-posts-list a{display:inline-flex;gap:.5rem;align-items:baseline}.blog-date,.blog-post time{color:var(--text-muted);font-size:.9rem}.blog-post-content{margin:1rem 0;white-space:pre-wrap}.blog-comment-attachments,.blog-post-attachments{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.blog-post-votes,.blog-votes{display:inline-flex;align-items:center;gap:.25rem;margin-right:.5rem}.blog-post-votes button,.blog-votes button{background:transparent;color:var(--text)}.blog-comments{margin-top:2rem;border-top:1px solid var(--border);padding-top:1rem}.blog-new-comment{margin-bottom:1rem}.blog-new-comment textarea,.blog-quote-reply-form textarea,.blog-reply-form textarea{width:100%;max-width:500px;margin-bottom:.5rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:6px}.blog-comment{margin:.75rem 0;padding:.5rem 0;border-bottom:1px solid var(--border)}.blog-comment-header{display:flex;gap:.5rem;align-items:baseline;margin-bottom:.25rem}.blog-comment-date{color:var(--text-muted);font-size:.85rem}.blog-comment-quote{margin:.5rem 0;padding-left:1rem;border-left:3px solid var(--accent);color:var(--text-muted);font-size:.9rem}.blog-comment-actions{margin-top:.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.blog-admin-new form,.blog-auth-page form{display:flex;flex-direction:column;gap:.75rem;max-width:400px}.blog-admin-new input[type=email],.blog-admin-new input[type=text],.blog-auth-page input{padding:.5rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:6px}.blog-auth-error{color:#f87171}.blog-admin-hint{color:var(--text-muted);font-size:.9rem}.blog-admin-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.blog-admin-posts{list-style:none;padding:0}.blog-admin-posts li{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.blog-admin-status{color:var(--text-muted);font-size:.9rem}