/* Axcended games: diagrams, levels, worked solutions, Concept Labs */
.q-diagram{margin:0 auto 10px;max-width:340px;background:#0f2238;border-radius:12px;padding:8px;animation:slideInUp .25s ease both}
.tiletap-q+*{}
.dg{display:block;width:100%;height:auto;max-height:170px;font:600 13px Inter,sans-serif}
.dg text{fill:#eef3f8}
.dg text.gold{fill:#e3c68a}.dg text.wh{fill:#fff;font-weight:800}
.dl{fill:none;stroke:#eef3f8;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:dlDraw .8s ease forwards}
.dl.gold{stroke:#c09848;stroke-width:3}.dl.thin{stroke-width:1.1;opacity:.55}.dl.thin2{stroke-width:1.2;opacity:.55;stroke-dasharray:none;stroke-dashoffset:0;animation:none}
@keyframes dlDraw{to{stroke-dashoffset:0}}
.dp{fill:#c09848}.dr{fill:#17324f;stroke:#c09848;stroke-width:1.6}
.dg-gear{fill:#17324f;stroke:#c09848;stroke-width:5;stroke-dasharray:6 5}
.dg-nuc{fill:#b5532d}
.dc{stroke:#0b1930;stroke-width:1.2}.dc.t{fill:#c09848}.dc.l{fill:#8a6f36}.dc.r{fill:#6d5728}

/* Levels */
#levelBar{margin-bottom:16px}
.lv-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lv{background:#fff;border:2px solid var(--border);border-radius:12px;padding:10px 12px;cursor:pointer;text-align:left;font-family:inherit;transition:.15s}
.lv b{display:block;font-size:.9rem;color:var(--navy)}
.lv span{font-size:.72rem;color:#6b7280;line-height:1.3;display:block}
.lv.on{border-color:var(--m);background:var(--ml);box-shadow:0 3px 0 var(--m)}
.lv1{--m:#a4683a;--ml:#f8ece6}.lv2{--m:#8b98a6;--ml:#eef1f5}.lv3{--m:#c09848;--ml:#faf4e6}
.lv-labs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;font-size:.8rem;color:#6b7280}
.lv-lab{border:1px solid var(--navy);background:var(--navy);color:#e3c68a;border-radius:50px;padding:6px 14px;font:700 .78rem Inter,sans-serif;cursor:pointer}
.lv-lab:hover{background:#1a3a5c}
.qm-medal{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;border:2px solid #fff}
.qm-medal.m1{background:#a4683a}.qm-medal.m2{background:#b6c0ca}.qm-medal.m3{background:#c09848}

/* Worked solutions */
.how{background:#0f2238;border-radius:14px;padding:14px 16px;margin:12px 0;color:#eef3f8;text-align:left;animation:slideInUp .3s ease both}
.how-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.how-head strong{font:700 1.02rem 'Playfair Display',serif;color:#e3c68a}
.how-replay{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:50px;padding:3px 12px;font:600 .74rem Inter,sans-serif;cursor:pointer}
.how-steps{list-style:none;padding:0;margin:0;counter-reset:s}
.how-steps li{counter-increment:s;display:flex;gap:10px;align-items:baseline;padding:6px 0;font-size:.95rem;line-height:1.4;opacity:0;transform:translateX(-14px);transition:opacity .4s,transform .4s cubic-bezier(.2,1.3,.4,1)}
.how-steps li::before{content:counter(s);flex:0 0 22px;height:22px;line-height:22px;text-align:center;border-radius:50%;background:#c09848;color:#0b1930;font-size:.74rem;font-weight:800}
.how-steps li.on{opacity:1;transform:none}
.how-steps li:last-child.on{color:#e3c68a;font-weight:700}
.how-tip{margin-top:10px;padding:10px 12px;border-left:3px solid #c09848;background:rgba(192,152,72,.13);border-radius:0 8px 8px 0;font-size:.86rem;line-height:1.45;opacity:0;transform:scale(.96);transition:.4s}
.how-tip.on{opacity:1;transform:none}
.how-tip span{display:block;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#e3c68a;margin-bottom:2px}
.how-lab{margin-top:10px;width:100%;background:#c09848;color:#0b1930;border:none;border-radius:8px;padding:9px;font:800 .82rem Inter,sans-serif;cursor:pointer}
.how-btn{display:block;margin:10px auto 0;background:#fff;border:2px solid #c09848;color:var(--navy);border-radius:50px;padding:8px 20px;font:800 .84rem Inter,sans-serif;cursor:pointer}
.how-btn:hover{background:#faf4e6}
.how-review{display:block;width:100%;margin:6px 0 12px;background:var(--navy);color:#e3c68a;border:none;border-radius:10px;padding:13px;font:800 .9rem Inter,sans-serif;cursor:pointer}
.review{padding:18px 20px 20px}
.rv-count{font-size:.76rem;color:#6b7280;margin-bottom:6px}
.rv-q{font-weight:800;color:var(--navy);font-size:1.05rem;line-height:1.35;margin-bottom:6px}
.rv-a{font-size:.9rem;color:#2f7d4f}
.rv-nav{display:flex;gap:10px;justify-content:space-between;margin-top:10px}
.viz{margin-bottom:8px;max-height:150px}
.vh{fill:none;stroke:#c09848;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:dlDraw .7s ease forwards}
.vt2{opacity:0;fill:#e3c68a!important;animation:vFade .4s ease forwards}
@keyframes vFade{to{opacity:1}}
.vc{fill:#c09848;opacity:0;animation:vPop .28s ease forwards;transform-box:fill-box;transform-origin:center}
@keyframes vPop{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
.vb{fill:#c09848;width:0;animation:vGrow 1s ease forwards}
@keyframes vGrow{to{width:var(--w)}}
.vs{transform-origin:160px 40px;animation:vTilt 2.2s ease}
@keyframes vTilt{0%{transform:rotate(-6deg)}35%{transform:rotate(5deg)}70%{transform:rotate(-2deg)}100%{transform:none}}

/* Concept Labs */
.lab-section{margin:8px 0 10px;padding:26px 22px;border-radius:16px;background:linear-gradient(rgba(120,170,220,.08) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(120,170,220,.08) 1px,transparent 1px) 0 0/24px 24px,#0b1930;color:#fff}
.lab-section .section-label{color:#e3c68a}
.lab-section h2{color:#fff;font:700 1.6rem 'Playfair Display',serif;margin:0 0 4px}
.lab-section p{color:rgba(255,255,255,.7);font-size:.9rem;margin:0 0 14px}
.lab-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.lab-tabs button{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:50px;padding:7px 16px;font:600 .82rem Inter,sans-serif;cursor:pointer}
.lab-tabs button.on{background:#c09848;border-color:#c09848;color:#0b1930}
.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.lab-card{background:rgba(255,255,255,.06);border:1px solid rgba(192,152,72,.35);border-radius:12px;padding:14px;text-align:left;cursor:pointer;color:#fff;font-family:inherit;transition:.15s}
.lab-card:hover{background:rgba(192,152,72,.16);transform:translateY(-3px)}
.lab-card svg{width:30px;height:30px;fill:none;stroke:#c09848;stroke-width:1.5;display:block;margin-bottom:8px}
.lab-card b{display:block;font-size:.9rem;line-height:1.25}
.lab-card span{font-size:.72rem;color:rgba(255,255,255,.6)}
.game-box.lab-wide{max-width:760px}
.lab-c{display:block;width:100%;height:auto;background:#0b1930}
.lab-read{background:#17324f;color:#e3c68a;font-weight:700;font-size:.86rem;padding:9px 16px;min-height:38px}
.lab-ctls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px 16px 4px}
.lab-ctl label{display:block;font-size:.78rem;font-weight:600;color:var(--navy);margin-bottom:4px}
.lab-ctl input{width:100%;accent-color:#c09848}
.lab-seg{display:flex;flex-wrap:wrap;gap:4px}
.lab-seg button{border:1px solid var(--border);background:#fff;border-radius:6px;padding:5px 9px;font:600 .76rem Inter,sans-serif;cursor:pointer;color:var(--navy)}
.lab-seg button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.lab-ex{padding:8px 16px 18px;margin:0;font-size:.88rem;line-height:1.55;color:#4b5563}
.lab-back{background:rgba(255,255,255,.12);border:none;color:#fff;border-radius:50px;padding:6px 14px;font:600 .78rem Inter,sans-serif;cursor:pointer;margin-right:8px}
@media(max-width:560px){.lv-seg{grid-template-columns:1fr}.lv{display:flex;gap:8px;align-items:baseline}}
@media(prefers-reduced-motion:reduce){.dl,.vh{animation:none;stroke-dashoffset:0}.vc,.vt2{animation:none;opacity:1}.vb{animation:none;width:var(--w)}.vs{animation:none}}
