:root{--color-primary:#9489f5;--color-secondary:#39d2c0;--color-bg:#0f1220;--color-bg-elevated:#1a1f33;--color-text:#f4f6ff;--color-text-muted:#a8b0c8;--color-correct:#2ecc71;--color-incorrect:#e74c3c;--color-warning:#f5a623;--font-display:"Outfit", sans-serif;--font-body:"Source Sans 3", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);background:radial-gradient(ellipse 80% 50% at 20% -10%, #9489f559, transparent), radial-gradient(ellipse 60% 40% at 90% 10%, #39d2c033, transparent), var(--color-bg);color:var(--color-text);line-height:1.5}a{color:var(--color-secondary);text-decoration:none}button{cursor:pointer;font-family:inherit}h1,h2,h3{font-family:var(--font-display);margin:0}.app-shell{max-width:1100px;margin:0 auto;padding:1rem 1.25rem 3rem}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.brand{color:var(--color-text);align-items:center;gap:.75rem;display:flex}.brand img{width:48px;height:48px}.brand span{font-family:var(--font-display);letter-spacing:.02em;font-size:1.5rem;font-weight:800}.nav-links{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.7rem 1.1rem;font-weight:600;transition:transform .15s,filter .15s}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-ghost{color:var(--color-text);background:0 0;border:1px solid #f4f6ff33}.btn-secondary{background:var(--color-secondary);color:#06241f}.muted{color:var(--color-text-muted)}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.theme-tile{color:#fff;border-radius:12px;min-height:180px;animation:.25s fadeIn;display:block;position:relative;overflow:hidden}.theme-tile img{object-fit:cover;width:100%;height:100%;transition:transform .35s;position:absolute;inset:0}.theme-tile:hover img{transform:scale(1.05)}.theme-tile .overlay{background:linear-gradient(#0000 35%,#080a14eb);flex-direction:column;justify-content:flex-end;padding:1rem;display:flex;position:absolute;inset:0}.theme-tile h2{margin-bottom:.25rem;font-size:1.15rem}.theme-tile p{color:var(--color-text-muted);margin:0;font-size:.85rem}.tile-stats{gap:.4rem;margin-top:.35rem;display:grid}.tile-stats-row{color:var(--color-text-muted);justify-content:space-between;font-size:.85rem;display:flex}.tile-new{color:var(--color-secondary)!important;margin-top:.35rem!important;font-size:.8rem!important}.toolbar{flex-wrap:wrap;align-items:end;gap:1rem;margin-bottom:1.25rem;display:flex}.toolbar-field{gap:.35rem;font-size:.9rem;display:grid}.toolbar-field select{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid #ffffff26;border-radius:8px;padding:.55rem .75rem}.filter-toggle{border:1px solid #ffffff26;border-radius:8px;display:inline-flex;overflow:hidden}.filter-toggle button{color:var(--color-text-muted);background:0 0;border:none;padding:.55rem .9rem;font-weight:600}.filter-toggle button.is-active{background:var(--color-primary);color:#fff}.score-gauge{background:#ffffff1f;border-radius:999px;height:10px;margin-top:.75rem;overflow:hidden}.score-gauge--compact{height:6px;margin-top:0}.score-gauge>span{border-radius:inherit;height:100%;transition:width .25s;display:block}.theme-detail{max-width:800px;margin:0 auto}.theme-detail-hero{grid-template-columns:minmax(140px,280px) 1fr;align-items:start;gap:1.25rem;margin-bottom:1.5rem;display:grid}.theme-detail-hero img{aspect-ratio:16/10;object-fit:cover;border-radius:12px;width:100%}.theme-resume{margin:.75rem 0;font-size:1.05rem;line-height:1.55}.theme-stats-panel{background:var(--color-bg-elevated);border-radius:12px;margin-bottom:1.25rem;padding:1.1rem 1.25rem}.theme-stats-panel h2{margin-bottom:.85rem;font-size:1.1rem}.theme-stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.85rem;margin-bottom:.5rem;display:grid}.theme-stats-grid>div{gap:.2rem;display:grid}.theme-stats-grid strong{font-size:1.05rem}.quiz-panel{max-width:720px;margin:0 auto}.quiz-layout{align-items:start;gap:1.25rem;display:grid}.quiz-main{background:#1a1f3359;border-radius:14px;flex-direction:column;min-height:min(70vh,720px);padding:1rem 1.1rem 1.15rem;display:flex}.quiz-main--feedback{justify-content:space-between}.quiz-theme-banner{align-items:center;gap:.85rem;margin-bottom:1rem;display:flex}.quiz-theme-banner img{object-fit:cover;border-radius:10px;flex-shrink:0;width:72px;height:72px}.quiz-theme-banner>div{gap:.15rem;display:grid}.quiz-question-block{animation:.35s questionIn}.quiz-question{margin:0 0 .75rem;font-size:clamp(1.25rem,2.4vw,1.7rem);line-height:1.3}.timer-bar{background:#ffffff1a;border-radius:999px;height:8px;margin:.5rem 0 1.25rem;overflow:hidden}.timer-bar>span{background:var(--color-primary);height:100%;transition:width .1s linear,background-color .2s;display:block}.choices{gap:.75rem;display:grid}.choice{text-align:left;background:var(--color-bg-elevated);color:var(--color-text);border:1px solid #ffffff1f;border-radius:10px;padding:1rem 1.1rem;font-size:1.05rem}.choice.correct{border-color:var(--color-correct);background:#2ecc712e}.choice.incorrect{border-color:var(--color-incorrect);background:#e74c3c2e}.feedback{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.feedback--bottom{border-top:1px solid #ffffff14;gap:.85rem;margin-top:auto;padding-top:1rem;display:grid}.feedback-row{flex-wrap:wrap;align-items:baseline;gap:.75rem;display:flex}.feedback-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.btn-next{min-width:8.5rem;position:relative;overflow:hidden}.btn-next-progress{transform-origin:0;pointer-events:none;background:#ffffff47;transition:transform 50ms linear;position:absolute;inset:0}.btn-next-label{z-index:1;position:relative}.score-pop{font-family:var(--font-display);color:var(--color-secondary);font-size:1.4rem}.quiz-sidebar{display:none}.quiz-sidebar-card{background:var(--color-bg-elevated);border-radius:12px;margin-bottom:.85rem;padding:1rem 1.1rem}.quiz-sidebar-card h2{margin-bottom:.35rem;font-size:1rem}.quiz-sidebar-total{font-family:var(--font-display);margin:0;font-size:2rem;font-weight:800;line-height:1.1}.quiz-best-beat{border-top:1px solid #ffffff14;gap:.2rem;margin-top:1rem;padding-top:.85rem;display:grid}.quiz-best-beat .ahead{color:var(--color-correct);margin:0;font-size:.9rem}.quiz-round-log{gap:.25rem;max-height:280px;margin:1rem 0 0;padding:0;list-style:none;display:grid;overflow:auto}.quiz-round-log li{color:var(--color-text-muted);border-radius:6px;justify-content:space-between;padding:.2rem .35rem;font-size:.85rem;display:flex}.quiz-round-log li.is-current{color:var(--color-text);background:#9489f52e}.quiz-round-log li.is-ok{color:var(--color-correct)}.quiz-round-log li.is-ko{color:var(--color-incorrect)}.quiz-delay-card label{justify-content:space-between;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.quiz-delay-card input[type=range]{width:100%;accent-color:var(--color-primary)}.quiz-delay-scale{justify-content:space-between;margin-top:.25rem;font-size:.8rem;display:flex}@keyframes questionIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width>=980px){.quiz-layout{grid-template-columns:minmax(0,1fr) 280px}.quiz-sidebar{display:block;position:sticky;top:1rem}.app-shell:has(.quiz-layout){max-width:1180px}}.result-hero{text-align:center;padding:2rem 0}.result-hero .big-score{font-family:var(--font-display);background:linear-gradient(120deg, var(--color-primary), var(--color-secondary));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(3rem,10vw,5rem);font-weight:800}.auth-form,.leaderboard{gap:.85rem;max-width:480px;margin:0 auto;display:grid}.auth-form input{background:var(--color-bg-elevated);width:100%;color:var(--color-text);border:1px solid #ffffff26;border-radius:8px;padding:.85rem 1rem;font-size:1rem}.leaderboard-row{border-bottom:1px solid #ffffff14;grid-template-columns:2.5rem 1fr auto;gap:.75rem;padding:.75rem 0;display:grid}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (width<=640px){.brand span{font-size:1.2rem}.theme-detail-hero{grid-template-columns:1fr}}
