*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0c0c0e;--surface:#141416;--elevated:#1c1c22;--border:#252530;--border-subtle:#1a1a24;--text:#f0eeff;--text-muted:#6b6b8a;--text-dim:#3a3a55;--accent:#8b5cf6;--accent-bright:#a78bfa;--accent-glow:#8b5cf626;--danger:#ef4444;--success:#10b981;--font-display:"Syne",sans-serif;--font-body:"DM Sans",sans-serif;--nav-h:60px;--radius:10px;--radius-lg:16px;--shadow:0 4px 24px #00000080;--shadow-sm:0 2px 8px #0000004d}body,html{height:100%}body{-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}img,video{display:block}button{background:none;border:none;cursor:pointer}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:14px;font-weight:500;gap:6px;justify-content:center;padding:10px 20px;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-bright);box-shadow:0 4px 16px #8b5cf666;transform:translateY(-1px)}.btn-secondary{background:var(--elevated);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{background:#232330;border-color:var(--accent)}.btn-ghost{background:#0000;color:var(--text-muted)}.btn-ghost:hover{background:var(--elevated);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.btn-sm{font-size:12px;padding:6px 12px}.btn-lg{font-size:16px;padding:14px 28px}.btn-icon{border-radius:8px;padding:8px}.input{background:var(--elevated);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s;width:100%}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text-dim)}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px}.tag{align-items:center;background:var(--elevated);border:1px solid var(--border);border-radius:20px;color:var(--text-muted);display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:4px 10px}.page{min-height:100vh;padding-top:var(--nav-h)}.container{margin:0 auto;max-width:1280px;padding:0 20px}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(1turn)}}.fade-up{animation:fadeUp .4s ease both}.fade-in{animation:fadeIn .3s ease both}@media (max-width:768px){.container{padding:0 12px}.btn{font-size:13px;padding:8px 14px}.btn-sm{font-size:11px;padding:5px 10px}.btn-lg{font-size:14px;padding:12px 20px}.mobile-menu-btn{background:none;border:none;cursor:pointer;display:flex!important;flex-direction:column;gap:4px;padding:6px}.mobile-menu-btn span{background:var(--text-muted);border-radius:2px;display:block;height:2px;transition:all .2s;width:20px}.mobile-nav{animation:fadeIn .15s ease;backdrop-filter:blur(20px);background:#0c0c0efa;bottom:0;display:flex;flex-direction:column;gap:4px;left:0;padding:20px;position:fixed;right:0;top:var(--nav-h);z-index:99}.mobile-nav a,.mobile-nav button{border-radius:var(--radius);color:var(--text-muted);display:block;font-size:16px;padding:14px 16px;text-align:left;transition:all .1s;width:100%}.mobile-nav a:hover,.mobile-nav button:hover{background:var(--elevated);color:var(--text)}.mobile-nav .nav-divider{background:var(--border);height:1px;margin:8px 0}}@media (min-width:769px){.mobile-menu-btn,.mobile-nav{display:none!important}}@media (max-width:768px){.desktop-only{display:none!important}.file-page-grid{gap:20px!important;grid-template-columns:1fr!important}}