:root{--paper:#faf8f2;--ink:#1c2a29;--muted:#4b5b59;--line:#cfc6b9;--navy:#274b63;--teal:#2f746d;--gold:#8b6a35;--card:#fffefa;--good:#156448;--bad:#9d3232}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:400 15px/1.7 "Brandon Grotesque","Avenir Next",Arial,sans-serif;overflow-wrap:normal;word-break:normal}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:var(--navy)}.shell{max-width:1070px;margin:auto;padding:15px}.heading{text-align:center;padding:20px 10px}.heading .eyebrow{font:400 clamp(13px,2vw,18px)/1.4 Georgia,serif;letter-spacing:.07em;text-transform:uppercase;color:var(--gold)}.heading h1{font:400 clamp(28px,4vw,35px)/1.26 Cinzel,Georgia,serif;margin:12px 0}.heading p{max-width:770px;margin:9px auto}.crumbs,.day-nav,.actions,.button-grid{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:center;padding:10px 4px}.crumbs a,.day-nav a,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 13px;border:1px solid var(--line);border-radius:7px;background:var(--card);text-decoration:none;color:var(--ink);text-align:center}.btn:hover,.crumbs a:hover,.day-nav a:hover{background:#eff5f3}:focus-visible{outline:3px solid #2777aa;outline-offset:2px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.panel{min-width:0;padding:19px;border:1px solid var(--line);border-radius:7px;background:var(--card)}.full{grid-column:1/-1}.panel h2{text-align:center;font:400 24px/1.4 Cinzel,Georgia,serif;margin:0 0 14px}.panel h3{font:400 19px/1.4 Georgia,serif}.panel p{margin:9px 0}.reading p{max-width:85ch}.paper{border-radius:7px;border:1px solid var(--line);padding:12px;background:#f6f4ed}.worked{border-left:4px solid var(--teal);border-radius:7px;padding:14px;background:#eff5f2}.notice{border-left:4px solid var(--gold);padding:13px;background:#fff5df;border-radius:7px}.terms{columns:2;column-gap:24px}.terms dt{font-weight:600}.terms dd{margin:0 0 12px}.answer{width:100%;min-height:112px;resize:vertical;border:1px solid #9a9f99;border-radius:7px;background:#fff;color:var(--ink);padding:12px}.panel label{display:block;margin:8px 0 5px}.question{margin:12px 0;padding:15px;border:1px solid var(--line);border-radius:7px}.question legend{font-weight:600}.question label{display:flex;gap:10px;align-items:baseline;border:1px solid var(--line);border-radius:7px;padding:9px}.question label input{flex:none}.feedback{margin-top:9px;white-space:pre-wrap}.correct{color:var(--good)}.incorrect{color:var(--bad)}.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.data th,.data td{border:1px solid var(--line);text-align:center;padding:9px}.scroll{overflow-x:auto}.math{font-variant-numeric:tabular-nums;font-family:Georgia,serif}.small{font-size:.9rem;color:var(--muted)}.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.controls input,.controls select{width:100%;padding:6px}.plot{width:100%;height:auto;min-height:230px;border:1px solid var(--line);border-radius:7px;background:white}.status{min-height:34px}.pill{display:inline-block;border:1px solid var(--line);border-radius:7px;padding:5px 9px;margin:4px;background:#fff}.summary{font-variant-numeric:tabular-nums}.tab{border-radius:7px}
@media(max-width:690px){.grid,.controls{grid-template-columns:1fr}.terms{columns:1}.panel{padding:13px}.shell{padding:9px}.panel h2{font-size:21px}}@media(max-width:290px){.crumbs a,.day-nav a,.btn{width:100%}body{font-size:14px}}@media print{.crumbs,.day-nav,.actions,.no-print{display:none!important}.shell{padding:0}.panel{break-inside:avoid;background:white}.answer{min-height:75px}}