:root{--paper:#f1efe9;--ink:#171918;--muted:#717874;--line:rgba(23,25,24,.15);--good:#4e755f;--bad:#985f5a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}button,a{font:inherit;color:inherit}button{cursor:pointer}a{text-decoration:none}
.topnav{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:20px clamp(20px,5vw,78px);background:rgba(241,239,233,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{font-weight:600}.nav-actions{display:flex;gap:18px}.nav-btn,.plain{border:0;background:none;color:var(--muted);font-size:13px}
.shell{padding:80px clamp(20px,5vw,78px) 90px;min-height:85vh}.view{display:none}.view.active{display:block;animation:fade .35s ease}@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.eyebrow{margin:0 0 16px;text-transform:uppercase;letter-spacing:.17em;font-size:11px;color:var(--muted);font-weight:600}.intro{max-width:1000px}.intro h1,.section-head h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(55px,8.5vw,120px);line-height:.92;letter-spacing:-.03em;margin:0 0 25px}.intro>p:last-child{max-width:720px;color:var(--muted);line-height:1.75}
.map-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:50px 0}.metric{padding:14px 18px;border:1px solid var(--line);min-width:150px}.metric span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.metric strong{font-family:"Instrument Serif",serif;font-size:29px;font-weight:400}.pill,.primary{border-radius:999px;padding:13px 19px}.pill{border:1px solid var(--line);background:transparent}.primary{border:0;background:var(--ink);color:white}
.subject-maps{display:grid;gap:38px}.subject-map{border-top:1px solid var(--line);padding-top:24px}.subject-title-row{display:flex;justify-content:space-between;align-items:end;gap:20px}.subject-title-row h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(34px,4.5vw,62px);margin:0}.subject-best{color:var(--muted);font-size:12px}
.level-path{display:grid;grid-template-columns:1fr 50px 1fr 50px 1fr;align-items:center;margin-top:24px}.connector{height:1px;background:var(--line)}.level-node{min-height:180px;border:1px solid var(--line);background:rgba(255,255,255,.22);padding:24px;text-align:left;position:relative;transition:.2s}.level-node:not(:disabled):hover{background:white;transform:translateY(-3px)}.level-node:disabled{opacity:.4;cursor:not-allowed}.level-num{font-size:11px;color:var(--muted);letter-spacing:.12em}.level-node strong{display:block;font-family:"Instrument Serif",serif;font-size:34px;font-weight:400;margin:30px 0 10px}.level-score{font-size:12px;color:var(--muted)}.lock{position:absolute;right:18px;top:18px}
.mixed-zone{margin-top:70px;padding:42px;border:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:center;background:linear-gradient(125deg,#dce5e1,#f3eee2)}.mixed-zone h2{font-family:"Instrument Serif",serif;font-size:clamp(38px,5vw,70px);font-weight:400;margin:0}.mixed-zone p:last-child{color:var(--muted)}
.quiz-head{display:flex;justify-content:space-between;gap:25px}.quiz-meta{display:flex;gap:20px;color:var(--muted);font-size:12px}.progress{height:2px;background:var(--line);margin:22px 0 70px}.progress i{display:block;height:100%;background:var(--ink);transition:.3s}
.question{max-width:1080px;margin:auto}.question>h2{font-family:"Instrument Serif",serif;font-size:clamp(38px,5.2vw,72px);line-height:1.02;font-weight:400;letter-spacing:-.025em;margin:0 0 48px}.answers{display:grid;gap:11px}.answer{display:grid;grid-template-columns:45px 1fr;gap:10px;width:100%;padding:18px 20px;border:1px solid var(--line);background:rgba(255,255,255,.28);text-align:left}.answer:hover:not(:disabled){background:white}.answer.correct{border-color:rgba(78,117,95,.6);background:rgba(78,117,95,.12)}.answer.wrong{border-color:rgba(152,95,90,.6);background:rgba(152,95,90,.12)}.letter{font-size:11px;color:var(--muted)}
.learning-card{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;gap:34px;margin:34px 0 25px;border-top:1px solid var(--line);padding-top:30px}.hidden{display:none!important}.knowledge-visual{min-height:270px;overflow:hidden;background:#d8ded9}.knowledge-visual img{width:100%;height:100%;object-fit:cover}.knowledge-copy h3{font-family:"Instrument Serif",serif;font-size:35px;font-weight:400;margin:0 0 14px}.knowledge-copy>p{color:var(--muted);line-height:1.7}.answer-status{font-size:13px;margin-top:20px}.answer-status.good{color:var(--good)}.answer-status.bad{color:var(--bad)}
.generated-visual{height:100%;min-height:270px;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(145deg,#ccd8d4,#8ea49d)}.generated-visual .symbol{font-family:"Instrument Serif",serif;font-size:62px;z-index:2;text-align:center;max-width:80%;overflow-wrap:anywhere}.generated-visual .rings{position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.7);border-radius:50%}.generated-visual .rings:before,.generated-visual .rings:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.5);border-radius:50%}.generated-visual .rings:before{inset:30px}.generated-visual .rings:after{inset:65px}
.result{text-align:center;max-width:820px;margin:40px auto}.score-orb{width:210px;height:210px;border:1px solid var(--line);border-radius:50%;display:grid;place-content:center;margin:25px auto}.score-orb span{font-family:"Instrument Serif",serif;font-size:85px;line-height:.8}.score-orb small{color:var(--muted);margin-top:12px}.result h2{font-family:"Instrument Serif",serif;font-size:clamp(45px,6vw,78px);font-weight:400;margin:0 0 15px}.result>p{color:var(--muted)}.row-actions{display:flex;justify-content:center;gap:12px;margin-top:25px}.new-badges{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.section-head{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:50px}.section-head h2{font-size:clamp(45px,6vw,80px)}.review-list{border-top:1px solid var(--line)}.review-row{padding:24px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr auto;gap:25px}.review-row .meta{color:var(--muted);font-size:12px}.review-row h3{margin:0 0 8px;font-size:17px}.review-row p{margin:0;color:var(--muted);line-height:1.6}.review-score{font-family:"Instrument Serif",serif;font-size:28px}
.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.badge{min-height:210px;background:var(--paper);padding:26px}.badge.locked{opacity:.35}.badge-icon{font-size:35px}.badge h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:30px;margin:25px 0 8px}.badge p{color:var(--muted);font-size:13px;line-height:1.6}footer{padding:20px clamp(20px,5vw,78px);border-top:1px solid var(--line);color:var(--muted);font-size:11px}
@media(max-width:800px){.level-path{grid-template-columns:1fr;gap:10px}.connector{width:1px;height:25px;margin:auto}.mixed-zone{display:block}.mixed-zone .primary{margin-top:20px}.learning-card{grid-template-columns:1fr}.quiz-meta{flex-wrap:wrap;justify-content:flex-end}.badge-grid{grid-template-columns:1fr 1fr}.review-row{grid-template-columns:1fr auto}.review-row .meta{grid-column:1}}
@media(max-width:520px){.nav-actions .nav-btn:nth-child(1),.nav-actions .nav-btn:nth-child(2){display:none}.shell{padding-top:55px}.quiz-meta{font-size:10px;gap:8px}.badge-grid{grid-template-columns:1fr}.row-actions{flex-direction:column}}
/* v0.3 — connected knowledge */
.knowledge-visual{position:relative}
.knowledge-visual img{display:block;width:100%;height:100%;min-height:260px;object-fit:cover;background:#d8ded9}
.image-credit{position:absolute;left:10px;bottom:9px;max-width:calc(100% - 20px);padding:5px 8px;background:rgba(20,22,21,.72);color:#fff;font-size:9px;line-height:1.35;letter-spacing:.02em}
.online-knowledge{margin-top:22px;padding-top:19px;border-top:1px solid var(--line)}
.online-label{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:600}
.online-text{margin:9px 0 10px!important;color:var(--ink)!important;line-height:1.72!important}
.online-text.loading{color:var(--muted)!important}
.knowledge-source{display:inline-block;margin-top:2px;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line);padding-bottom:2px}
.knowledge-source:hover{color:var(--ink)}
