.ctf-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:2rem;display:grid}.ctf-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;flex-direction:column;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.ctf-card-image{width:100%;height:140px;position:relative;overflow:hidden}.ctf-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.ctf-card:hover .ctf-card-image img{transform:scale(1.05)}.ctf-card-content{flex-direction:column;flex-grow:1;padding:1.25rem;display:flex}.ctf-card:before{content:"";background:linear-gradient(90deg, var(--logo-accent), #0891b2);opacity:0;height:4px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.ctf-card:hover{border-color:var(--logo-accent);transform:translateY(-6px);box-shadow:0 20px 40px #0003}.ctf-card:hover:before{opacity:1}.ctf-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.875rem;display:flex}.ctf-badge{text-transform:uppercase;letter-spacing:.75px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px;padding:.375rem .875rem;font-size:.75rem;font-weight:700}.ctf-badge-easy{color:#22c55e;background:linear-gradient(135deg,#22c55e26,#22c55e0d);border:1px solid #22c55e4d;box-shadow:0 2px 8px #22c55e26}.ctf-badge-medium{color:#eab308;background:linear-gradient(135deg,#eab30826,#eab3080d);border:1px solid #eab3084d;box-shadow:0 2px 8px #eab30826}.ctf-badge-hard{color:#ef4444;background:linear-gradient(135deg,#ef444426,#ef44440d);border:1px solid #ef44444d;box-shadow:0 2px 8px #ef444426}.ctf-badge-insane{color:#a855f7;background:linear-gradient(135deg,#a855f726,#a855f70d);border:1px solid #a855f74d;box-shadow:0 2px 8px #a855f726}.ctf-badge-completed{color:#22c55e;background:linear-gradient(135deg,#22c55e26,#22c55e0d);border:1px solid #22c55e4d;box-shadow:0 2px 8px #22c55e26}.ctf-badge-in-progress{color:#eab308;background:linear-gradient(135deg,#eab30826,#eab3080d);border:1px solid #eab3084d;box-shadow:0 2px 8px #eab30826}.ctf-title{color:var(--text-color);letter-spacing:-.025em;margin:0 0 .75rem;font-size:1.125rem;font-weight:800;line-height:1.3}.ctf-description{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex-grow:1;margin:0 0 .875rem;font-size:.875rem;line-height:1.6;display:-webkit-box;overflow:hidden}.ctf-meta{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.ctf-platform,.ctf-category{background:var(--section-bg);color:var(--text-secondary);text-transform:capitalize;border:1px solid var(--card-border);border-radius:8px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500}.ctf-tools{flex-wrap:wrap;gap:.375rem;margin-bottom:.875rem;display:flex}.ctf-tool-tag{color:var(--logo-accent);background:linear-gradient(135deg,#0891b21a,#0891b20d);border:1px solid #0891b233;border-radius:8px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500}.ctf-card-footer{border-top:1px solid var(--card-border);margin-top:auto;padding-top:.875rem}.ctf-details-link{background:linear-gradient(135deg, var(--logo-accent), #0891b2);color:#fff;border-radius:8px;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 4px 12px #0891b240}.ctf-details-link:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0891b259}.ctf-empty-state{text-align:center;color:var(--text-secondary);padding:5rem 2rem}.ctf-empty-state i{opacity:.4;margin-bottom:1.5rem;font-size:4rem}.ctf-empty-state h3{color:var(--text-color);margin:0 0 .75rem;font-size:1.75rem;font-weight:700}.ctf-empty-state p{margin:0;font-size:1.125rem}.ctf-filters-advanced{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.filter-label{color:var(--text-secondary);font-size:.8125rem;font-weight:500}.filter-buttons{gap:.25rem;display:flex}.filter-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:all .2s}.filter-btn:hover{background:var(--section-bg);color:var(--text-color)}.filter-btn.active{background:var(--logo-accent);color:#fff}.ctf-search-container{margin-bottom:1.5rem}.search-box{align-items:center;display:flex;position:relative}.search-box input{background:var(--card-bg);border:1px solid var(--card-border);width:100%;color:var(--text-color);border-radius:8px;padding:.875rem 1rem .875rem 2.75rem;font-size:.9375rem;transition:border-color .2s}.search-box input:focus{border-color:var(--logo-accent);outline:none}.search-box input::placeholder{color:var(--text-secondary)}.search-icon{color:var(--text-secondary);font-size:.875rem;position:absolute;left:1rem}.ctf-hero-grid{grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0;display:grid}.ctf-player-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.ctf-player-avatar{border:2px solid var(--logo-accent);border-radius:12px}.ctf-player-info{flex:1}.ctf-level-badge{color:var(--logo-accent);background:linear-gradient(135deg,#0891b233,#0891b21a);border-radius:20px;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.ctf-player-info h2{color:var(--text-color);margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.ctf-rank-title{color:var(--text-secondary);margin:0 0 1rem;font-size:.875rem}.ctf-xp-wrap{margin-bottom:.5rem}.ctf-xp-labels{color:var(--text-secondary);justify-content:space-between;margin-bottom:.25rem;font-size:.75rem;display:flex}.ctf-xp-bar{background:var(--section-bg);border-radius:4px;height:8px;overflow:hidden}.ctf-xp-fill{background:linear-gradient(90deg, var(--logo-accent), #0891b2);height:100%;transition:width .3s}.ctf-xp-total{color:var(--text-secondary);margin:0;font-size:.8125rem}.ctf-badges-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:.5rem}.ctf-badges-panel h3{color:var(--text-color);align-items:center;gap:.25rem;margin:0 0 .5rem;font-size:.875rem;font-weight:600;display:flex}.ctf-badges-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:.25rem;min-height:40px;margin-bottom:.5rem;display:grid}.ctf-platform-progress{flex-direction:column;gap:.5rem;display:flex}.ctf-platform-stat{align-items:center;gap:.5rem;display:flex}.ctf-platform-stat i{color:var(--logo-accent);width:20px;font-size:1rem}.platform-name{color:var(--text-color);flex:1;font-size:.75rem;font-weight:500}.platform-count{color:var(--text-secondary);text-align:right;min-width:30px;font-size:.7rem}.progress-bar{background:var(--section-bg);border-radius:2px;flex:1;max-width:60px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--logo-accent), #0891b2);height:100%;transition:width .3s}.ctf-overall-progress{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}.ctf-overall-progress h3{color:var(--text-color);justify-content:space-between;align-items:center;margin:0 0 .75rem;font-size:1rem;font-weight:600;display:flex}.ctf-stats-dashboard{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;align-items:center;gap:1rem;padding:1.25rem;transition:all .3s;display:flex}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.stat-icon{width:48px;height:48px;color:var(--logo-accent);background:linear-gradient(135deg,#0891b226,#0891b20d);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.stat-content{flex:1}.stat-value{color:var(--text-color);margin-bottom:.25rem;font-size:1.5rem;font-weight:700;line-height:1}.stat-label{color:var(--text-secondary);font-size:.8125rem}@media (max-width:1024px){.ctf-hero-grid{grid-template-columns:1fr;gap:1.5rem}.ctf-stats-dashboard{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.ctf-grid{grid-template-columns:1fr;gap:.75rem;margin-top:1rem}.ctf-card{border-radius:8px}.ctf-card-image{height:100px}.ctf-card-content{padding:.75rem}.ctf-card-header{gap:.25rem;margin-bottom:.5rem}.ctf-title{margin-bottom:.375rem;font-size:.9375rem}.ctf-description{-webkit-line-clamp:2;margin-bottom:.5rem;font-size:.75rem;line-height:1.5}.ctf-meta{gap:.25rem;margin-bottom:.375rem}.ctf-platform,.ctf-category{padding:.1875rem .375rem;font-size:.6875rem}.ctf-tools{gap:.1875rem;margin-bottom:.5rem}.ctf-tool-tag{padding:.1875rem .375rem;font-size:.6875rem}.ctf-card-footer{padding-top:.5rem}.ctf-details-link{border-radius:6px;gap:.1875rem;padding:.3125rem .625rem;font-size:.75rem}.ctf-filters-advanced{flex-direction:column;align-items:flex-start;gap:.5rem;margin-bottom:1rem}.filter-group{flex-direction:column;align-items:flex-start;gap:.25rem}.filter-buttons{flex-wrap:wrap}.filter-btn{padding:.1875rem .5rem;font-size:.6875rem}.ctf-hero-grid{gap:1rem;margin:1rem 0}.ctf-player-card{text-align:center;flex-direction:column;gap:1rem;padding:1rem}.ctf-player-avatar{width:60px;height:60px}.ctf-player-info h2{font-size:1.25rem}.ctf-badges-panel{padding:.25rem}.ctf-badges-grid{grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:.125rem}.ctf-platform-stat{flex-wrap:wrap;gap:.5rem}.progress-bar{max-width:60px}.ctf-overall-progress{padding:1rem}.ctf-overall-progress h3{font-size:.875rem}.ctf-stats-dashboard{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.stat-card{gap:.75rem;padding:1rem}.stat-icon{width:40px;height:40px;font-size:1rem}.stat-value{font-size:1.25rem}.stat-label{font-size:.75rem}}@media (max-width:480px){.ctf-stats-dashboard{grid-template-columns:1fr}.ctf-player-card{padding:.75rem}.ctf-badges-panel{padding:.25rem}}
