/* ================================================================
   IMP LEARNING — Complete Design System
   style.css
================================================================ */

*{margin:0;padding:0;box-sizing:border-box;}

:root{
    --bg:      #000;
    --bg2:     #0a0a0a;
    --bg3:     #111;
    --border:  #1a1a1a;
    --border2: #2a2a2a;
    --txt:     #fff;
    --txt2:    #888;
    --txt3:    #555;
    --blue:    #3b82f6;
    --purple:  #a855f7;
    --green:   #10b981;
    --yellow:  #f59e0b;
    --red:     #ef4444;
    --teal:    #14b8a6;
}
[data-theme="light"]{
    --bg:#f5f6fa; --bg2:#fff; --bg3:#eef0f7;
    --border:#e0e4f0; --border2:#c8cedf;
    --txt:#0f172a; --txt2:#475569; --txt3:#94a3b8;
}

body{
    font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    background:var(--bg); color:var(--txt);
    line-height:1.6; overflow-x:hidden; transition:background .3s,color .3s;
}

/* ── Scrollbar ─────── */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}

/* ── Animations ────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
@keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.05);}}
.pulse{animation:pulse 2s ease-in-out infinite;}

/* ── Header ─────────── */
.header{
    background:var(--bg);border-bottom:1px solid var(--border);
    position:sticky;top:0;z-index:200;backdrop-filter:blur(12px);
}
.header-content{
    max-width:1400px;margin:0 auto;padding:.875rem 2rem;
    display:flex;justify-content:space-between;align-items:center;
}
.logo-container{display:flex;align-items:center;gap:.75rem;}
.logo-icon{
    background:linear-gradient(135deg,#fff,#ddd);
    padding:.625rem;border-radius:.75rem;
    box-shadow:0 4px 12px rgba(255,255,255,.1);flex-shrink:0;
}
.logo-text{
    font-family:'Playfair Display',serif;
    font-size:1.4rem;font-weight:700;letter-spacing:-.03em;
    background:linear-gradient(135deg,#fff,#888);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.logo-subtitle{font-size:.65rem;color:var(--txt3);letter-spacing:.08em;margin-top:.1rem;}
.nav{display:flex;align-items:center;gap:.25rem;}
.nav-link{
    color:var(--txt2);text-decoration:none;font-size:.85rem;
    display:flex;align-items:center;gap:.4rem;
    padding:.5rem .875rem;border-radius:.5rem;transition:all .25s;
}
.nav-link:hover,.nav-link.active{color:var(--txt);background:var(--bg3);}
.nav-icon{width:16px;height:16px;}
.settings-btn{
    background:transparent;border:1px solid var(--border2);
    color:var(--txt2);padding:.5rem;border-radius:.5rem;
    cursor:pointer;transition:all .3s;display:flex;align-items:center;
}
.settings-btn:hover{background:var(--bg3);color:var(--txt);transform:rotate(90deg);}

/* ── Settings Panel ─── */
.settings-panel{
    position:fixed;top:0;right:-440px;width:420px;height:100vh;
    background:var(--bg2);border-left:1px solid var(--border);
    z-index:500;transition:right .4s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;display:flex;flex-direction:column;
}
.settings-panel.active{right:0;box-shadow:-16px 0 48px rgba(0,0,0,.6);}
.settings-header{
    padding:1.5rem 2rem;border-bottom:1px solid var(--border);
    display:flex;justify-content:space-between;align-items:center;
    position:sticky;top:0;background:var(--bg2);z-index:5;
}
.settings-header h2{font-size:1.25rem;font-weight:700;}
.close-btn{
    background:transparent;border:none;color:var(--txt2);
    cursor:pointer;padding:.4rem;border-radius:.4rem;
    transition:all .2s;display:flex;align-items:center;
}
.close-btn:hover{background:var(--bg3);color:var(--txt);}
.settings-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;}
.setting-row{
    background:var(--bg3);padding:1rem 1.25rem;
    border-radius:.75rem;border:1px solid var(--border);
}
.toggle-label{
    display:flex;justify-content:space-between;align-items:center;
    cursor:pointer;font-size:.95rem;font-weight:500;
}
.toggle-wrap{position:relative;}
.toggle-wrap input[type="checkbox"]{position:absolute;opacity:0;width:0;height:0;}
.toggle-track{
    display:block;width:48px;height:26px;background:var(--bg);
    border:1px solid var(--border2);border-radius:13px;
    position:relative;transition:all .3s;cursor:pointer;
}
.toggle-track::after{
    content:'';position:absolute;
    width:18px;height:18px;background:var(--txt2);
    border-radius:50%;top:3px;left:3px;transition:all .3s;
}
.toggle-wrap input:checked + .toggle-track{background:var(--blue);border-color:var(--blue);}
.toggle-wrap input:checked + .toggle-track::after{background:#fff;transform:translateX(22px);}
.setting-divider{height:1px;background:var(--border);margin:.25rem 0;}
.setting-section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--txt2);}
.setting-hint{font-size:.78rem;color:var(--txt3);line-height:1.5;}
.radio-group{display:flex;flex-direction:column;gap:.5rem;}
.radio-label{
    display:flex;align-items:center;gap:.75rem;cursor:pointer;
    padding:.625rem .75rem;border-radius:.5rem;font-size:.85rem;transition:background .2s;
}
.radio-label:hover{background:var(--bg3);}
.radio-label input[type="radio"]{position:absolute;opacity:0;}
.radio-dot{
    width:18px;height:18px;border:2px solid var(--border2);
    border-radius:50%;position:relative;transition:all .2s;flex-shrink:0;
}
.radio-label input:checked + .radio-dot{border-color:var(--blue);}
.radio-label input:checked + .radio-dot::after{
    content:'';position:absolute;
    width:8px;height:8px;background:var(--blue);
    border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);
}
.range-slider{
    width:100%;height:5px;background:var(--bg3);
    border-radius:3px;outline:none;-webkit-appearance:none;cursor:pointer;
}
.range-slider::-webkit-slider-thumb{
    -webkit-appearance:none;width:18px;height:18px;
    background:var(--blue);border-radius:50%;cursor:pointer;transition:transform .2s;
}
.range-slider::-webkit-slider-thumb:hover{transform:scale(1.25);}
.range-value{text-align:center;font-size:.85rem;font-weight:700;color:var(--blue);margin-top:.5rem;}

/* ── Overlay + Glossary ─── */
.overlay{
    display:none;position:fixed;inset:0;
    background:rgba(0,0,0,.65);z-index:300;backdrop-filter:blur(4px);
}
.overlay.open{display:block;}
.glossary-sidebar{
    position:fixed;top:0;left:-500px;width:460px;max-width:100vw;height:100vh;
    background:var(--bg2);border-right:1px solid var(--border);
    z-index:400;transition:left .4s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;display:flex;flex-direction:column;
}
.glossary-sidebar.open{left:0;box-shadow:16px 0 48px rgba(0,0,0,.5);}
.glossary-header{
    padding:1.5rem;border-bottom:1px solid var(--border);
    display:flex;justify-content:space-between;align-items:flex-start;
    position:sticky;top:0;background:var(--bg2);z-index:5;
}
.glossary-header h2{font-size:1.2rem;font-weight:700;}
.glossary-subtitle{font-size:.72rem;color:var(--txt3);margin-top:.2rem;}
.glossary-search-wrap{padding:.75rem 1.5rem;border-bottom:1px solid var(--border);}
.glossary-panel{padding:.5rem 1.5rem 2rem;flex:1;}
.glossary-letter{
    font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;
    color:var(--blue);padding:.75rem 0 .4rem;
    border-bottom:1px solid var(--border);margin-bottom:.5rem;
}
.glossary-entry{padding:.6rem .75rem;border-radius:.5rem;margin-bottom:.35rem;transition:background .2s;}
.glossary-entry:hover{background:var(--bg3);}
.glossary-term{display:block;font-weight:700;font-size:.85rem;color:var(--txt);margin-bottom:.2rem;}
.glossary-def{font-size:.78rem;color:var(--txt2);line-height:1.5;}

/* ── Container ───────── */
.container{max-width:1400px;margin:0 auto;padding:3rem 2rem;}

/* ── Hero ────────────── */
.hero{text-align:center;margin-bottom:4rem;}
.badge{
    display:inline-flex;align-items:center;gap:.5rem;
    background:linear-gradient(135deg,var(--bg3),var(--bg2));
    border:1px solid var(--border2);padding:.5rem 1.25rem;
    border-radius:9999px;margin-bottom:2rem;
    box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.badge span{font-size:.78rem;color:var(--txt2);font-weight:500;}
.hero-title{
    font-family:'Playfair Display',serif;
    font-size:4rem;font-weight:800;margin-bottom:1.5rem;line-height:1.1;
    background:linear-gradient(135deg,#fff,#555);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-subtitle{font-size:1.05rem;color:var(--txt2);max-width:820px;margin:0 auto 2rem;line-height:1.75;}
.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.5rem;}
.edu-tag{
    background:var(--bg3);border:1px solid var(--border2);
    color:var(--txt2);font-size:.72rem;font-weight:600;
    padding:.3rem .875rem;border-radius:9999px;letter-spacing:.02em;
    transition:all .25s;cursor:default;
}
.edu-tag:hover{background:rgba(59,130,246,.1);border-color:var(--blue);color:var(--blue);}

/* ── Stats ────────────── */
.stats-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:1.5rem;margin-bottom:4rem;
}
.stat-card{
    background:linear-gradient(135deg,var(--bg2),var(--bg));
    border:1px solid var(--border);border-radius:1.25rem;padding:2rem;
    transition:all .4s cubic-bezier(.4,0,.2,1);
}
.stat-card:hover{transform:translateY(-8px);border-color:var(--border2);box-shadow:0 24px 48px rgba(0,0,0,.4);}
.stat-icon{width:36px;height:36px;color:var(--txt3);margin-bottom:1.25rem;transition:all .3s;}
.stat-card:hover .stat-icon{color:var(--blue);transform:scale(1.15);}
.stat-value{
    font-family:'DM Mono',monospace;font-size:2.5rem;font-weight:700;margin-bottom:.4rem;
    background:linear-gradient(135deg,#fff,#777);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.stat-label{font-size:.9rem;font-weight:700;margin-bottom:.25rem;}
.stat-sub{font-size:.72rem;color:var(--txt3);}

/* ── Section ─────────── */
.section{margin-bottom:4rem;}
.section-header{margin-bottom:2.5rem;text-align:center;}
.section-title{font-family:'Playfair Display',serif;font-size:2.25rem;font-weight:700;margin-bottom:.75rem;}
.section-subtitle{color:var(--txt2);font-size:.95rem;max-width:640px;margin:0 auto;}

/* ── Bloom's Grid ──────── */
.bloom-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;
}
.bloom-card{
    background:var(--bg2);border:1px solid var(--border);
    border-radius:1rem;padding:1.5rem;position:relative;
    overflow:hidden;transition:all .3s;
}
.bloom-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:var(--bc,#60a5fa);
}
.bloom-card:hover{transform:translateY(-4px);border-color:var(--bc,#60a5fa);box-shadow:0 12px 28px rgba(0,0,0,.3);}
.bloom-level-tag{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--bc,#60a5fa);margin-bottom:.25rem;}
.bloom-card-name{font-size:1.05rem;font-weight:700;margin-bottom:.6rem;}
.bloom-card p{font-size:.78rem;color:var(--txt2);line-height:1.5;margin-bottom:.6rem;}
.bloom-verbs{font-size:.68rem;color:var(--txt3);font-family:'DM Mono',monospace;line-height:1.6;}

/* ── Pedagogy Grid ──────── */
.pedagogy-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;
}
.pedagogy-card{
    background:var(--bg2);border:1px solid var(--border);border-radius:1.25rem;
    padding:1.75rem;transition:all .3s;
}
.pedagogy-card:hover{border-color:var(--border2);transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.3);}
.pedagogy-emoji{font-size:2rem;margin-bottom:1rem;}
.pedagogy-card h3{font-size:1rem;font-weight:700;margin-bottom:.6rem;}
.pedagogy-card p{font-size:.8rem;color:var(--txt2);line-height:1.65;}

/* ── Standards Callout ─── */
.standards-callout{
    background:linear-gradient(135deg,var(--bg2),var(--bg3));
    border:1px solid var(--border2);border-radius:1.5rem;
    padding:2.5rem;margin-bottom:4rem;
}
.standards-callout-inner{display:flex;gap:1.5rem;align-items:flex-start;margin-bottom:1.5rem;}
.standards-callout-icon{font-size:2.5rem;flex-shrink:0;}
.standards-callout h3{font-size:1.2rem;font-weight:700;margin-bottom:.75rem;}
.standards-callout p{font-size:.85rem;color:var(--txt2);line-height:1.7;}
.standards-badges{display:flex;flex-wrap:wrap;gap:.5rem;}
.std-badge{
    background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);
    color:var(--blue);font-size:.7rem;font-weight:700;
    padding:.3rem .875rem;border-radius:9999px;letter-spacing:.04em;
}

/* ── Filter Input ──────── */
.filter-input{
    display:block;width:100%;max-width:420px;margin:.75rem auto 0;
    padding:.875rem 1.25rem;font-size:.9rem;
    background:var(--bg3);border:1px solid var(--border2);
    border-radius:.75rem;color:var(--txt);transition:all .25s;
    font-family:inherit;
}
.filter-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.filter-input::placeholder{color:var(--txt3);}

/* ── Grade Grid ────────── */
.grade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:1.25rem;}
.grade-card{
    background:linear-gradient(145deg,var(--bg3),var(--bg2));
    border:1px solid var(--border);border-radius:1.25rem;
    padding:1.75rem 1.25rem;text-align:center;cursor:pointer;
    transition:all .35s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;
}
.grade-card::before{
    content:'';position:absolute;inset:0;
    background:radial-gradient(circle at 30% 20%,rgba(59,130,246,.1),transparent 60%);
    opacity:0;transition:opacity .4s;
}
.grade-card:hover::before{opacity:1;}
.grade-card:hover{transform:translateY(-8px) scale(1.04);border-color:var(--blue);box-shadow:0 20px 40px rgba(59,130,246,.15);}
.grade-svg{
    width:52px;height:52px;margin-bottom:1rem;
    stroke:#60a5fa;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
    transition:all .45s cubic-bezier(.34,1.56,.64,1);
    filter:drop-shadow(0 2px 6px rgba(59,130,246,.2));
}
.grade-card:hover .grade-svg{stroke:#c084fc;transform:scale(1.22) rotate(12deg);filter:drop-shadow(0 6px 14px rgba(168,85,247,.45));}
.grade-name{font-size:1rem;font-weight:700;margin-bottom:.3rem;}
.grade-level-badge{font-size:.62rem;color:var(--txt3);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem;}
.grade-arrow{width:18px;height:18px;color:var(--txt3);margin:0 auto;transition:all .3s;}
.grade-card:hover .grade-arrow{color:var(--blue);transform:translateX(4px);}
/* Grade color bands */
.grade-card:nth-child(-n+3) .grade-svg{stroke:#f59e0b;}
.grade-card:nth-child(-n+3):hover .grade-svg{stroke:#fbbf24;filter:drop-shadow(0 6px 12px rgba(245,158,11,.5));}
.grade-card:nth-child(n+4):nth-child(-n+6) .grade-svg{stroke:#34d399;}
.grade-card:nth-child(n+7):nth-child(-n+9) .grade-svg{stroke:#60a5fa;}
.grade-card:nth-child(n+10) .grade-svg{stroke:#a855f7;}

/* ── Page Header ────── */
.page-header{margin-bottom:2.5rem;}
.page-title{font-family:'Playfair Display',serif;font-size:2.25rem;font-weight:700;margin-bottom:.5rem;}
.page-subtitle{color:var(--txt2);font-size:.95rem;line-height:1.6;}

/* ── Back Button ──────── */
.back-btn{
    display:inline-flex;align-items:center;gap:.5rem;
    background:transparent;border:none;color:var(--txt2);
    font-size:.875rem;margin-bottom:2rem;cursor:pointer;
    padding:.625rem 1rem;border-radius:.5rem;transition:all .25s;font-family:inherit;
}
.back-btn:hover{color:var(--txt);background:var(--bg3);}

/* ── Subjects Grid ──────── */
.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;}
.subject-card{
    background:linear-gradient(135deg,var(--bg3),var(--bg2));
    border:1px solid var(--border);border-radius:1.25rem;padding:2rem;
    cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);
}
.subject-card:hover{transform:translateY(-8px);border-color:var(--blue);box-shadow:0 20px 40px rgba(0,0,0,.35);}
.subject-icon-wrapper{
    padding:1rem;border-radius:1rem;width:fit-content;
    margin-bottom:1.5rem;box-shadow:0 8px 16px rgba(0,0,0,.25);
}
.subject-icon-wrapper.math   {background:linear-gradient(135deg,#3b82f6,#1d4ed8);}
.subject-icon-wrapper.ela    {background:linear-gradient(135deg,#a855f7,#7e22ce);}
.subject-icon-wrapper.science{background:linear-gradient(135deg,#10b981,#059669);}
.subject-icon-wrapper.social {background:linear-gradient(135deg,#f59e0b,#d97706);}
.subject-icon-wrapper .icon  {width:28px;height:28px;color:#fff;}
.subject-card h3{font-size:1.4rem;font-weight:700;margin-bottom:.75rem;}
.subject-desc{color:var(--txt2);font-size:.85rem;margin-bottom:.75rem;line-height:1.6;}
.subject-standards-badge{font-size:.65rem;color:var(--txt3);font-family:'DM Mono',monospace;margin-bottom:1.25rem;}
.subject-footer{display:flex;justify-content:space-between;align-items:center;}
.topic-count{font-size:.78rem;color:var(--txt3);font-weight:600;}
.chevron{width:22px;height:22px;color:var(--txt3);transition:all .3s;}
.subject-card:hover .chevron{color:var(--blue);transform:translateX(4px);}
.icon{width:20px;height:20px;}

/* ── Topics ──────────── */
.topic-header-card{
    display:flex;align-items:center;gap:2rem;margin-bottom:2.5rem;
    padding:1.75rem 2rem;
    background:linear-gradient(135deg,var(--bg3),var(--bg2));
    border:1px solid var(--border);border-radius:1.5rem;
}
.topic-icon-large{padding:1.25rem;border-radius:1.25rem;box-shadow:0 8px 16px rgba(0,0,0,.25);}
.topic-icon-large.math   {background:linear-gradient(135deg,#3b82f6,#1d4ed8);}
.topic-icon-large.ela    {background:linear-gradient(135deg,#a855f7,#7e22ce);}
.topic-icon-large.science{background:linear-gradient(135deg,#10b981,#059669);}
.topic-icon-large.social {background:linear-gradient(135deg,#f59e0b,#d97706);}
.topic-icon-large .icon  {width:30px;height:30px;color:#fff;}
.standards-tag{font-size:.68rem;color:var(--txt3);font-family:'DM Mono',monospace;margin-top:.4rem;}
.topics-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--txt3);margin-bottom:1rem;}
.topics-list{display:flex;flex-direction:column;gap:.75rem;}
.topic-item{
    background:linear-gradient(135deg,var(--bg3),var(--bg2));
    border:1px solid var(--border);border-radius:1rem;
    padding:1.25rem 1.5rem;cursor:pointer;
    transition:all .3s cubic-bezier(.4,0,.2,1);
    display:flex;align-items:center;justify-content:space-between;
}
.topic-item:hover{transform:translateX(8px);border-color:var(--blue);box-shadow:0 8px 20px rgba(59,130,246,.15);}
.topic-item-content{display:flex;align-items:center;gap:1.25rem;}
.topic-number{
    background:var(--bg);border:1px solid var(--border2);
    border-radius:.625rem;width:44px;height:44px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    font-size:.85rem;font-weight:700;color:var(--txt2);transition:all .3s;
}
.topic-item:hover .topic-number{background:var(--blue);color:#fff;border-color:var(--blue);}
.topic-text-group{display:flex;flex-direction:column;gap:.2rem;}
.topic-name-text{font-size:.95rem;font-weight:600;}
.topic-q-count{font-size:.68rem;color:var(--txt3);font-family:'DM Mono',monospace;}

/* ── Practice HUD ──────── */
.practice-hud{
    background:linear-gradient(135deg,var(--bg2),var(--bg));
    border:1px solid var(--border);border-radius:1.25rem;
    padding:1.25rem 2rem;margin-bottom:1.75rem;
    display:flex;justify-content:space-between;align-items:center;
}
.hud-left{display:flex;gap:2.5rem;}
.hud-item{display:flex;flex-direction:column;gap:.2rem;}
.hud-label{font-size:.62rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;font-weight:700;}
.hud-value{font-size:1.375rem;font-weight:700;font-family:'DM Mono',monospace;}
.hud-value-small{font-size:.8rem;color:var(--txt2);font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hud-right{display:flex;gap:1rem;flex-wrap:wrap;}
.hud-stat{
    display:flex;align-items:center;gap:.75rem;
    padding:.625rem 1rem;background:var(--bg);
    border:1px solid var(--border2);border-radius:.75rem;
}
.hud-accuracy{border-color:rgba(59,130,246,.25);background:rgba(59,130,246,.05);}
.hud-streak{border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.05);}
.hud-xp{border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.05);}
.hud-stat-value{font-size:1.2rem;font-weight:700;font-family:'DM Mono',monospace;}
.hud-stat-label{font-size:.62rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em;}
.xp-color{color:#fbbf24;}

/* ── Progress ────────── */
.progress-wrap{margin-bottom:2rem;}
.progress-track{
    width:100%;background:var(--bg3);border:1px solid var(--border);
    border-radius:9999px;height:10px;overflow:hidden;
}
.progress-fill{
    background:linear-gradient(90deg,var(--blue),var(--purple));
    height:100%;width:0;transition:width .5s cubic-bezier(.4,0,.2,1);
    box-shadow:0 0 10px rgba(59,130,246,.5);
}
.progress-label{text-align:right;margin-top:.5rem;font-size:.72rem;color:var(--txt3);font-family:'DM Mono',monospace;}

/* ── Question Card ─────── */
.question-card{
    background:linear-gradient(135deg,var(--bg2),var(--bg));
    border:1px solid var(--border);border-radius:1.5rem;
    padding:2.5rem;box-shadow:0 12px 32px rgba(0,0,0,.3);
}
.question-meta-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.75rem;}
.q-number-badge{
    background:var(--bg3);border:1px solid var(--border2);
    padding:.375rem .875rem;border-radius:.5rem;
    font-size:.68rem;font-weight:700;color:var(--txt2);
    text-transform:uppercase;font-family:'DM Mono',monospace;letter-spacing:.06em;
}
.q-bloom-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-family:'DM Mono',monospace;}
.question-text{font-size:1.45rem;margin-bottom:.75rem;line-height:1.55;font-weight:600;}
.question-instruction{font-size:.78rem;color:var(--txt3);margin-bottom:2rem;}
.options-container{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;}
.option-btn{
    background:var(--bg3);border:2px solid var(--border);
    color:var(--txt);padding:1.1rem 1.5rem;border-radius:.875rem;
    cursor:pointer;font-size:.95rem;text-align:left;
    transition:all .25s cubic-bezier(.4,0,.2,1);
    display:flex;align-items:center;gap:1rem;font-family:inherit;
}
.option-letter{
    width:28px;height:28px;background:var(--bg);border:1px solid var(--border2);
    border-radius:.375rem;display:flex;align-items:center;justify-content:center;
    font-size:.7rem;font-weight:800;color:var(--txt2);flex-shrink:0;
    font-family:'DM Mono',monospace;transition:all .25s;
}
.option-btn:hover:not(:disabled){border-color:var(--blue);transform:translateX(6px);box-shadow:0 6px 14px rgba(59,130,246,.15);}
.option-btn:hover:not(:disabled) .option-letter{background:var(--blue);border-color:var(--blue);color:#fff;}
.option-btn.selected{background:rgba(59,130,246,.08);border-color:var(--blue);}
.option-btn.selected .option-letter{background:var(--blue);border-color:var(--blue);color:#fff;}
.option-btn.correct{background:rgba(16,185,129,.1)!important;border-color:#10b981!important;}
.option-btn.correct .option-letter{background:#10b981!important;border-color:#10b981!important;color:#fff;}
.option-btn.incorrect{background:rgba(239,68,68,.1)!important;border-color:#ef4444!important;}
.option-btn.incorrect .option-letter{background:#ef4444!important;border-color:#ef4444!important;color:#fff;}
.option-btn:disabled{cursor:default;}
.question-hint{
    background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);
    color:#fbbf24;border-radius:.75rem;padding:1rem 1.25rem;
    font-size:.85rem;line-height:1.5;margin-bottom:1.25rem;
}
.submit-btn{
    width:100%;background:linear-gradient(135deg,#fff,#ddd);color:#000;
    border:none;padding:1.1rem 2rem;border-radius:.875rem;
    cursor:pointer;font-size:1rem;font-weight:700;
    transition:all .3s cubic-bezier(.4,0,.2,1);
    display:flex;align-items:center;justify-content:center;gap:.75rem;font-family:inherit;
}
.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 24px rgba(255,255,255,.15);}
.submit-btn:disabled{background:var(--bg3);color:var(--txt3);cursor:not-allowed;}
.feedback-box{
    margin-top:1.25rem;padding:1.25rem 1.5rem;border-radius:1rem;
    border:1px solid;font-size:.88rem;font-weight:500;line-height:1.6;
    display:none;
}
.feedback-box.show{display:block;}
.feedback-box.correct{background:rgba(16,185,129,.08);border-color:#10b981;color:#6ee7b7;}
.feedback-box.incorrect{background:rgba(239,68,68,.08);border-color:#ef4444;color:#fca5a5;}
.feedback-explanation{opacity:.9;font-weight:400;font-size:.82rem;display:block;margin-top:.35rem;}

/* ── Results ────────── */
.results-card{
    text-align:center;max-width:720px;margin:0 auto;
    background:linear-gradient(135deg,var(--bg3),var(--bg2));
    border:1px solid var(--border);border-radius:2rem;
    padding:4rem 3rem;box-shadow:0 20px 48px rgba(0,0,0,.4);
}
.results-title{font-family:'Playfair Display',serif;font-size:2.25rem;font-weight:700;margin-bottom:1rem;}
.final-score{
    font-family:'DM Mono',monospace;font-size:5rem;font-weight:700;margin-bottom:.5rem;
    background:linear-gradient(135deg,#fff,#888);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.results-sub{color:var(--txt2);margin-bottom:.75rem;font-size:.95rem;}
.mastery-label{font-size:1.1rem;font-weight:700;margin-bottom:2.5rem;}
.results-stats-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
    margin-bottom:2rem;padding:1.75rem;
    background:var(--bg);border:1px solid var(--border);border-radius:1rem;
}
.res-stat{text-align:center;}
.res-stat-value{font-family:'DM Mono',monospace;font-size:2.25rem;font-weight:700;margin-bottom:.35rem;}
.correct-color{color:var(--green);}
.wrong-color{color:var(--red);}
.streak-color{color:var(--yellow);}
.res-stat-label{font-size:.68rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em;}
.results-feedback-box{
    background:var(--bg3);border:1px solid var(--border);
    border-radius:1rem;padding:1.5rem;margin-bottom:2rem;
    text-align:left;font-size:.85rem;color:var(--txt2);line-height:1.7;
}
.feedback-band-text{margin-bottom:1rem;}
.bloom-performance h4{
    font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
    color:var(--txt3);margin-bottom:.75rem;
}
.bloom-stat-row{
    display:flex;align-items:center;gap:.75rem;
    font-size:.78rem;padding:.4rem 0;border-bottom:1px solid var(--border);
}
.bloom-stat-row:last-child{border-bottom:none;}
.bloom-stat-level{flex:0 0 160px;font-weight:600;color:var(--txt);}
.bloom-stat-bar-wrap{flex:1;background:var(--bg);border-radius:9999px;height:6px;overflow:hidden;}
.bloom-stat-bar{height:100%;background:linear-gradient(90deg,var(--blue),var(--purple));border-radius:9999px;transition:width .5s;}
.bloom-stat-pct{flex:0 0 80px;text-align:right;font-family:'DM Mono',monospace;color:var(--txt2);}
.xp-earned{color:#fbbf24!important;font-weight:600;margin-top:.75rem;}
.results-actions{display:flex;gap:1rem;}
.action-btn{
    flex:1;border:none;padding:1.1rem 1.5rem;border-radius:.875rem;
    cursor:pointer;font-size:.95rem;font-weight:700;
    transition:all .3s cubic-bezier(.4,0,.2,1);
    display:flex;align-items:center;justify-content:center;gap:.75rem;font-family:inherit;
}
.primary-btn{background:linear-gradient(90deg,#60a5fa,#a78bfa);color:#fff;}
.secondary-btn{background:var(--bg);color:var(--txt);border:1px solid var(--border2);}
.action-btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(0,0,0,.3);}
.primary-btn:hover{box-shadow:0 12px 24px rgba(96,165,250,.35);}

/* ── Responsive ────── */
@media(max-width:1024px){
    .subjects-grid{grid-template-columns:1fr 1fr;}
    .bloom-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:768px){
    .nav{display:none;}
    .hero-title{font-size:2.5rem;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .grade-grid{grid-template-columns:repeat(2,1fr);}
    .subjects-grid{grid-template-columns:1fr;}
    .bloom-grid{grid-template-columns:1fr 1fr;}
    .practice-hud{flex-direction:column;gap:1.25rem;}
    .hud-left,.hud-right{width:100%;justify-content:space-between;}
    .results-stats-grid{grid-template-columns:1fr;gap:1rem;}
    .results-actions{flex-direction:column;}
    .settings-panel{width:100%;right:-100%;}
    .glossary-sidebar{width:100%;left:-100%;}
    .standards-callout-inner{flex-direction:column;gap:1rem;}
    .topic-header-card{flex-direction:column;align-items:flex-start;}
    .bloom-stat-level{flex:0 0 120px;}
}
@media(max-width:540px){
    .hero-title{font-size:2rem;}
    .container{padding:2rem 1rem;}
    .question-card{padding:1.5rem;}
    .question-text{font-size:1.15rem;}
    .results-card{padding:2.5rem 1.5rem;}
    .final-score{font-size:3.5rem;}
    .bloom-grid{grid-template-columns:1fr;}
    .pedagogy-grid{grid-template-columns:1fr;}
    .bloom-stat-level{flex:0 0 100px;font-size:.72rem;}
}