*{box-sizing:border-box;margin:0;padding:0}:root{--primary-50:#f0f7ff;--primary-100:#e0efff;--primary-200:#c7e2ff;--primary-300:#8ec5ff;--primary-400:#59a7ff;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--secondary-50:#ecfdf5;--secondary-100:#d1fae5;--secondary-200:#a7f3d0;--secondary-300:#6ee7b7;--secondary-400:#34d399;--secondary-500:#10b981;--secondary-600:#059669;--secondary-700:#047857;--secondary-800:#065f46;--secondary-900:#064e3b;--bg-primary:#1a2333;--bg-secondary:#1f2a3d;--bg-tertiary:#2a3548;--bg-gradient:radial-gradient(circle at 50% 0%,#1f2a3d 0%,#1a2333 100%);--card-bg:rgba(30,41,59,.6);--card-bg-gradient:linear-gradient(145deg,rgba(42,53,72,.7),rgba(31,42,61,.7));--card-border:rgba(148,163,184,.15);--text-primary:#e5e7eb;--text-secondary:#c1c9d4;--text-muted:#9aa5b5;--text-dim:#6b7787;--border-color:rgba(148,163,184,.15);--border-light:rgba(148,163,184,.25);--border-glow:rgba(59,130,246,.35);--shadow-sm:0 2px 8px rgba(0,0,0,.15),0 0 0 1px rgba(59,130,246,.08);--shadow-md:0 4px 12px rgba(0,0,0,.2),0 0 0 1px rgba(59,130,246,.12);--shadow-lg:0 8px 24px rgba(0,0,0,.25),0 0 0 1px rgba(59,130,246,.15);--shadow-xl:0 12px 32px rgba(0,0,0,.3),0 0 0 1px rgba(59,130,246,.18);--glow-primary:0 0 15px rgba(59,130,246,.2);--glow-strong:0 0 25px rgba(59,130,246,.35);--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-2xl:32px;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.app,body{min-height:100vh;position:relative}.app{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);background:var(--bg-gradient);display:flex;flex-direction:column}.app.mobile-menu-open{height:100vh;overflow:hidden}.main-content{flex:1;margin:0 auto;max-width:1400px;padding:24px 20px;width:100%}.main-content,a{position:relative}a{color:var(--primary-400);text-decoration:none;transition:all .2s}a:hover{color:var(--primary-300);text-shadow:var(--glow-primary)}button{background:none;border:none;cursor:pointer;font-family:inherit;transition:all .2s}img{border-radius:var(--radius-md);display:block;height:auto;max-width:100%}.container{margin:0 auto;max-width:1400px;padding:0 24px;width:100%}.grid{display:grid;gap:12px}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-5{grid-template-columns:repeat(5,1fr)}@media(max-width:1200px){.grid-cols-5{grid-template-columns:repeat(4,1fr)}}@media(max-width:992px){.grid-cols-4,.grid-cols-5{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.grid-cols-3,.grid-cols-4,.grid-cols-5{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.grid-cols-2,.grid-cols-3,.grid-cols-4,.grid-cols-5{grid-template-columns:1fr}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.ml-2{margin-left:8px}.mr-2{margin-right:8px}.p-4{padding:16px}.text-sm{font-size:14px}.text-base{font-size:16px}.text-lg{font-size:18px}.text-xl{font-size:20px}.text-2xl{font-size:24px}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-primary{color:var(--primary-400)}.text-secondary{color:var(--secondary-400)}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;overflow:hidden;padding:10px 20px;position:relative;transition:all .3s}.btn:before{background:#fff3;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.btn:hover:before{height:300px;width:300px}.btn-primary{border:1px solid rgba(96,165,250,.4);box-shadow:0 4px 20px #3b82f633,0 0 0 1px #3b82f626;color:#fff}.btn-primary,.btn-primary:hover{background:linear-gradient(135deg,#3b82f6,#2563eb)}.btn-primary:hover{box-shadow:0 8px 32px #3b82f659,0 0 0 1px #3b82f640;transform:translateY(-2px)}.btn-outline{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff08;border:1px solid rgba(148,163,184,.3);color:var(--text-secondary)}.btn-outline:hover{background:#3b82f614;border-color:#60a5fa73;box-shadow:0 4px 16px #3b82f626;color:var(--primary-300);transform:translateY(-2px)}.card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;position:relative;transition:all .3s}.card:after{background:linear-gradient(145deg,hsla(0,0%,100%,.03),transparent 50%);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.card:hover{background:#3b82f60d;border-color:#60a5fa66;box-shadow:0 8px 32px #00000026,0 0 0 1px #60a5fa1a;transform:translateY(-4px)}.filter-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);max-width:200px}input,select,textarea{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;padding:10px 15px;transition:all .3s}input:focus,select:focus,textarea:focus{background:var(--bg-secondary);border-color:#60a5fa80;box-shadow:0 0 0 3px #3b82f61a;outline:none}input::-moz-placeholder{color:var(--text-dim)}input::placeholder{color:var(--text-dim)}.tag{background:#3b82f614;border:1px solid rgba(96,165,250,.25);border-radius:20px;color:var(--primary-400);display:inline-block;font-size:12px;padding:4px 12px;transition:all .2s}.tag:hover{background:#3b82f626;border-color:#60a5fa66;box-shadow:0 0 16px #3b82f626;color:var(--primary-300);transform:translateY(-2px)}.divider{background:linear-gradient(90deg,transparent,rgba(59,130,246,.2),var(--primary-400),rgba(59,130,246,.2),transparent);height:1px;margin:20px 0}@keyframes flicker{0%{opacity:1}50%{opacity:.8}to{opacity:1}}.loading-spinner{animation:spin 1s linear infinite,flicker 2s infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-500);height:40px;width:40px}.back-to-top{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid rgba(96,165,250,.4);border-radius:50%;bottom:30px;box-shadow:0 4px 20px #3b82f640;color:#fff;cursor:pointer;display:flex;height:50px;justify-content:center;position:fixed;right:30px;transition:all .3s;width:50px;z-index:100}.back-to-top:hover{box-shadow:0 8px 32px #3b82f659;transform:translateY(-5px)}.mobile-filter-btn{align-items:center;background:var(--card-bg);border:1px solid rgba(96,165,250,.25);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--primary-400);cursor:pointer;display:none;font-size:20px;height:44px;justify-content:center;width:44px}.mobile-filter-btn:hover{background:#3b82f61a;border-color:#60a5fa66;box-shadow:0 0 16px #3b82f626;color:var(--primary-300)}.drawer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-secondary);border-left:1px solid rgba(96,165,250,.15);box-shadow:var(--shadow-xl);height:100vh;overflow-y:auto;padding:20px;position:fixed;right:-100%;top:0;transition:right .3s ease;width:320px;z-index:1000}.drawer.open{right:0}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;height:100%;left:0;opacity:0;position:fixed;top:0;transition:all .3s;visibility:hidden;width:100%;z-index:999}.drawer-overlay.open{opacity:1;visibility:visible}.gem-glow{position:relative}.gem-glow:before{background:linear-gradient(45deg,var(--primary-500),var(--secondary-500),var(--primary-500));border-radius:inherit;content:"";inset:-2px;opacity:0;position:absolute;transition:opacity .3s;z-index:-1}.gem-glow:hover:before{opacity:.4}
