*{box-sizing:border-box}
:root{color-scheme:light;--paper:#f7f5ed;--green:#205440;--dark:#1d4035;--muted:#53685e;--mint:#d9ecd2;--line:#dce3d7;font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--dark);background:var(--paper)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column}
.shell{width:min(100% - 2rem, 54rem);margin-inline:auto}
.header{border-bottom:1px solid #e3e4d9}.header .shell{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--dark);font-size:21px;font-weight:750;text-decoration:none;min-height:44px}
.edition{border-radius:50px;background:#e8ede1;padding:5px 10px;font-size:12px;font-weight:650;color:var(--muted)}
main{flex:1;padding-block:clamp(28px,6vw,65px) 30px}
h1,h2,p{margin:0}h1,h2{line-height:1.12;text-wrap:balance;letter-spacing:-.035em}
h1{font-size:clamp(34px,7vw,64px);font-weight:770}
h2{font-size:clamp(23px,5vw,34px)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-weight:750;font-size:11px;color:var(--muted)}
.intro h1,.study h1,.result h1{margin-block:10px}.intro>p:last-child,.result>p{color:var(--muted)}
.hero{margin-top:26px;border-radius:26px;background:var(--green);color:#fff;padding:clamp(20px,5vw,42px);display:grid;grid-template-columns:minmax(0,1fr);position:relative;align-items:center}
.hero h2{margin-block:9px}.hero p{color:#dfede4}.hero .eyebrow{color:#c2dfbe}
.deck{display:none}.deck svg{width:100%;display:block}
.cta,.primary,.ratings button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;border:1px solid transparent;border-radius:13px;padding:10px 15px;text-decoration:none;font:inherit;font-weight:730;text-align:center;cursor:pointer}
.cta{background:var(--mint);color:var(--dark);margin-top:22px}.cta:hover{background:#ebf6e7}
.primary{background:var(--green);color:white}.primary:hover{background:#173f31}
.disciplines{margin-top:32px}.disciplines h2{font-size:25px;margin-bottom:12px}
.set{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);background:white;padding:15px;border-radius:19px;text-decoration:none;color:inherit}.set:hover{border-color:#789785}
.book{width:44px;height:44px;border-radius:13px;background:var(--mint);display:grid;place-items:center}.book svg{width:24px}.set strong,.set small{display:block}.set small{color:var(--muted);font-size:12px}.arrow{font-size:22px}
footer{font-size:12px;color:var(--muted);padding-block:16px 22px;border-top:1px solid #e3e4d9}
.study{max-width:42rem;margin:auto}.study h1{font-size:clamp(30px,6vw,49px)}.back{display:inline-flex;gap:7px;align-items:center;min-height:44px;color:var(--green);font-weight:700;text-decoration:none;margin-bottom:14px}.back:hover span{text-decoration:underline}
.progress{display:grid;gap:7px;margin:20px 0 13px;color:var(--muted);font-size:13px;font-weight:700}progress{width:100%;height:7px;appearance:none;border:0;border-radius:10px;background:#e4e9dc;overflow:hidden}progress::-webkit-progress-bar{background:#e4e9dc}progress::-webkit-progress-value{background:var(--green)}progress::-moz-progress-bar{background:var(--green)}
.perspective{perspective:1000px}.card{display:grid;transform-style:preserve-3d;transition:transform .38s ease}.card.flipped{transform:rotateY(180deg)}
.face{grid-area:1/1;min-width:0;min-height:248px;padding:clamp(18px,5vw,42px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px;background:white;border:1px solid var(--line);border-radius:24px;backface-visibility:hidden;overflow-wrap:anywhere}.rear{transform:rotateY(180deg);background:#edf5e9}.face[aria-hidden=true]{user-select:none;pointer-events:none}.rear #answer{font-size:clamp(17px,3vw,22px);line-height:1.45}.rear small{color:var(--muted);font-weight:650}
.controls{margin-top:14px}.controls>.primary,.result .primary{width:100%}.ratings,dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.ratings button{font-size:clamp(12px,3.7vw,15px);padding-inline:4px;color:var(--dark);line-height:1.2}.ratings button:hover{border-color:currentColor}.missed{background:#f4e5e1}.hard{background:#f4eacc}.recalled{background:var(--mint)}
.hint{text-align:center;color:var(--muted);font-size:13px;margin-top:9px}.result{background:white;padding:clamp(15px,5vw,36px);border:1px solid var(--line);border-radius:24px;text-align:center}.result .check{margin:0 auto 12px;font-size:24px}.result dl{margin-block:22px}.result dl div{border-radius:13px;padding:10px 3px}.result dt{font-size:12px}.result dd{margin:0;font-size:27px;font-weight:750}
:focus-visible{outline:3px solid #387961;outline-offset:3px}.hero :focus-visible{outline-color:white}
@media(min-width:620px){.hero{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.deck{display:block}.set{padding:18px 20px}}
@media(prefers-reduced-motion:reduce){.card{transition:none}}
