:root{--paper:#f4f1e9;--ink:#1c302b;--muted:#53635c;--green:#276751;--line:#c9d1c7;--cream:#e3ebd9;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}button,a,input{touch-action:manipulation}button,a{outline-offset:5px}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a44520}button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:6px;padding:9px 15px}button:hover{background:#e1e8dc}a{color:var(--green);text-underline-offset:4px}header{padding:20px 3.5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{color:var(--ink);font-size:28px;text-decoration:none;font-weight:700;white-space:nowrap}.brand span{color:var(--green);padding:0 3px}.brand small{font-size:11px;letter-spacing:2px;margin-left:15px;vertical-align:middle}nav{display:flex;gap:7px;align-items:center}nav button{border-color:transparent;font-size:13px}.selected{background:var(--ink)!important;color:var(--paper)!important}.packet{font-size:13px;border-left:1px solid var(--line);padding-left:20px;margin-left:8px;text-decoration:none;font-weight:700}.packet span{margin-left:12px}.intro{padding:40px 4% 22px;display:flex;justify-content:space-between;gap:25px;align-items:end}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;margin:0 0 14px;color:var(--green)}h1{font:clamp(42px,5vw,76px)/1.05 var(--serif);margin:0;letter-spacing:-1.5px}.introRight{display:flex;align-items:center;gap:30px}.introRight p{font-size:14px;color:var(--muted);margin:0}.primary{background:var(--green);color:white;border-color:var(--green);white-space:nowrap}.primary:hover{background:#1b4c3b}.primary span{margin-left:18px;font-size:22px}#mapArea{margin:15px 3.5% 0;background:var(--ink);border-radius:10px;color:var(--paper);overflow:hidden}.mapHint{padding:20px 25px 0;display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.2px;color:#d3decf}#viewport{height:390px;position:relative;overflow:hidden}#world{position:absolute;transform-origin:0 0;width:3200px;height:930px;transition:transform .75s cubic-bezier(.2,.7,.15,1)}.route{position:absolute;inset:0;color:#91ab97;width:3200px;height:930px}.node{position:absolute;width:560px;height:350px;background:var(--paper);text-align:left;border-radius:20px;padding:34px;color:var(--ink);border:5px solid transparent;transition:background .2s}.node:hover{background:#e0ebd6;border-color:#8fb59b}.node .num{font-size:28px;letter-spacing:3px;color:var(--green);display:flex;justify-content:space-between}.node .date{font-family:var(--serif);font-size:84px;line-height:1.2;display:block;margin:16px 0}.node .name{font-size:37px;line-height:1.12;display:block;max-width:470px}.node .composer{font-size:26px;display:block;margin-top:16px;color:var(--muted)}.mapFoot{font-size:12px;color:#c5d5c9;margin:0;padding:0 25px 20px}footer{padding:20px 4%;display:flex;justify-content:space-between;gap:15px;font-size:11px;letter-spacing:.7px;color:var(--muted)}footer label{cursor:pointer}footer input{accent-color:var(--green)}[hidden]{display:none!important}.lessonNav{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 0;border-bottom:1px solid var(--line);margin-bottom:30px}.lessonNav button{font-size:13px}.lessonNav button:disabled{opacity:.35;cursor:default}#position{font-size:12px;letter-spacing:1.5px;color:var(--muted)}#lesson{max-width:1260px;margin:auto;padding:0 35px 35px}.lessonHeader{display:grid;grid-template-columns:190px 1fr;gap:30px;margin-bottom:30px}.bigYear{font-family:var(--serif);font-size:56px;line-height:1.1;letter-spacing:-2px}.kind{font-size:12px;color:var(--green);margin-top:8px;display:block}.lessonTitle{font:48px/1.1 var(--serif);margin:0 0 10px}.workline{margin:0;color:var(--muted)}.lessonGrid{display:grid;grid-template-columns:1.2fr 1fr;gap:45px}.hook{font:28px/1.2 var(--serif);margin:0 0 14px}.lead{font-size:17px;line-height:1.7;margin-top:0}.sourceInline{font-size:12px;margin-left:5px}.analogy{border-left:3px solid var(--green);padding:0 0 0 18px;color:var(--muted);font-size:15px}.label{font-size:11px;letter-spacing:1.6px;font-weight:700;color:var(--green);margin:25px 0 12px}.qa details{border-top:1px solid var(--line);padding:14px 0}.qa summary{cursor:pointer;font-weight:600;font-size:16px;padding-right:15px}.qa details p{font-size:15px;margin:12px 0 5px}.fact{font-size:13px;background:var(--cream);padding:17px;border-radius:6px;margin-top:22px}.fact strong{display:block;font-size:11px;letter-spacing:1.5px;margin-bottom:5px}.media{background:var(--ink);color:var(--paper);border-radius:8px;overflow:hidden}.player{aspect-ratio:16/9;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;text-align:center}.play{border-color:#8ba791;color:var(--paper);border-radius:100px;font-size:14px;padding:15px 25px}.play:hover{background:#345548}.player small{color:#b9cbbd;font-size:11px;margin-top:12px}.player iframe{width:100%;height:100%;border:0}.player.loaded{padding:0;display:block}.credit{padding:15px 20px;border-top:1px solid #456053;font-size:12px;line-height:1.5}.credit a{color:#d6edc7;font-size:14px}.credit p{margin:6px 0 0;color:#c4d4c6}.listen{padding:20px 0}.listen h3{font:24px var(--serif);margin:0 0 8px}.listen p{font-size:14px;margin:0}.offline summary{font-size:12px;color:var(--muted);cursor:pointer}.offline p{font-size:13px;background:#e8e9e0;padding:12px;margin-top:8px}.resources{border-top:1px solid var(--line);padding:15px 0;font-size:12px}.resources a{display:block;margin:7px 0}.downloadBox{margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px;padding:22px 0}.downloadBox p{margin:0;font-size:13px;color:var(--muted)}.downloadBox h3{font:25px var(--serif);margin:0 0 5px}.download{background:var(--green);color:white;text-decoration:none;padding:13px 22px;border-radius:5px;white-space:nowrap;font-size:14px}.download:hover{background:#1b4c3b}#reading{max-width:1200px;margin:auto;padding:20px 35px}#reading article{padding:35px 0 50px;border-bottom:2px solid var(--ink)}#reading .lessonHeader{grid-template-columns:170px 1fr}.readingIntro{color:var(--muted);max-width:700px}.focusMap #overviewIntro,.focusMap #mapArea,.focusMap #reading{display:none!important}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:12px;width:min(720px,90vw);max-height:85vh;padding:35px}dialog::backdrop{background:#10251dcc}dialog h2{font:36px/1.1 var(--serif);margin:0 0 20px}dialog p{font-size:14px}dialog .close{float:right;border:0;font-size:25px;margin:-20px -20px 0 0}.reduce #world{transition:none}.reduce *{scroll-behavior:auto!important}
.node{padding:26px}.node .num{font-size:24px}.node .date{font-size:68px;margin:8px 0}.node .name{font-size:34px}.node .composer{font-size:22px;margin-top:12px;line-height:1.3}
@media(min-width:1500px){#viewport{height:480px}}
@media(max-width:1000px){header{flex-wrap:wrap}.introRight{display:block}.introRight p{margin-bottom:12px}.lessonGrid{gap:25px}.lessonHeader{grid-template-columns:160px 1fr}.lessonTitle{font-size:40px}footer>span:last-child{display:none}#viewport{height:340px}}
@media(max-width:700px){header{padding:15px 20px}.brand small{font-size:10px}nav{flex-wrap:wrap;width:100%;gap:2px}nav button{padding:8px;font-size:12px}.packet{font-size:12px;padding-left:10px}.intro{padding:28px 22px 10px;display:block}.introRight{display:flex;justify-content:space-between;margin-top:20px;gap:12px}.introRight p{font-size:12px}.primary{font-size:13px;padding:8px 12px}.mapHint{padding:15px;display:block}.mapHint span{display:block;margin-bottom:5px;font-size:10px}#viewport{height:790px}.mapFoot{padding:0 16px 18px;font-size:11px}.lessonGrid{display:block}.lessonHeader,#reading .lessonHeader{grid-template-columns:1fr;gap:15px}.bigYear{font-size:40px}.kind{display:inline;margin-left:10px}.lessonTitle{font-size:36px}#lesson,#reading{padding:0 22px 25px}.lessonNav{flex-wrap:wrap;margin-bottom:25px}.lessonNav>div{display:flex;gap:8px}.lessonNav button{padding:7px 10px}#position{font-size:10px}.downloadBox{display:block}.download{display:inline-block;margin-top:15px;white-space:normal}footer{font-size:10px;padding:15px 22px;flex-wrap:wrap}.media{margin-top:28px}}
@media(prefers-reduced-motion:reduce){#world{transition:none}}
@media print{header,footer,.lessonNav,.media,.downloadBox,dialog,#mapArea,#overviewIntro{display:none!important}#reading{display:block!important;max-width:none;padding:0}#reading article{break-after:page;padding:15px 0}.lessonGrid{display:block}.lessonHeader{grid-template-columns:120px 1fr}.lessonTitle{font-size:27px}.bigYear{font-size:30px}#lesson{display:none!important}.qa details>*{display:block!important}a{color:#000}}
