.courseIndex{scroll-margin-top:80px}
.mapRoute{min-width:0}
.mapTile.mapStart{display:inline-flex;align-items:center;justify-content:center;margin:0 0 14px 18px;padding:6px 12px;border-radius:20px}
.mapTile.mapStart i{right:-3px;top:100%}
.courseIndex .sectionHead h2{font-size:26px;line-height:1.4}
.courseIndex .sectionHead{margin-bottom:26px}
.mapCompletion{font-size:12px;color:var(--accent);margin:0 0 18px}
.allCourseList{align-items:start}
.lessonBoard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 16px;padding:18px 16px;background:#ede3d1;border:1px solid var(--line);border-radius:18px}
.mapTile{position:relative;min-width:0;min-height:46px;padding:7px 3px;background:var(--paper);color:var(--ink);border:1px solid #d6c7af;border-radius:10px;box-shadow:0 4px 0 #d6c7af;cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s;font:inherit}
.mapTile b{display:block;font:700 18px/1.4 var(--mono)}
.mapTile span{position:absolute;right:6px;top:4px;color:var(--accent);font:700 10px/1 var(--mono)}
.mapTile i{position:absolute;right:-16px;top:40%;font-style:normal;color:var(--accent);pointer-events:none}
.mapTile:nth-child(4n) i{right:45%;top:auto;bottom:-26px}
.mapTile.completed{background:#f8e6d5;color:#9b3c18}
.mapTile:hover,.mapTile:focus-visible{transform:translateY(-3px);background:#f5dac1;box-shadow:0 7px 0 #d6c7af}
.mapTile[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:3px;background:#f5dac1}
.mapDetail{position:sticky;top:90px;padding:32px;background:var(--paper);border:1px solid var(--line);border-radius:14px;min-width:0}
.mapDetail>small{font:10px var(--mono);color:var(--accent)}
.mapType{font-size:12px;color:var(--muted);margin:16px 0}
.mapDetail h3{font-size:20px;line-height:1.75;margin:0 0 22px;overflow-wrap:anywhere}
.mapDetail>a{display:inline-block;padding:10px 18px;border-radius:6px;background:var(--accent);color:var(--paper);font-size:14px}
@media(max-width:700px){.mapDetail{position:static;padding:24px}.lessonBoard{gap:18px 13px;padding:14px}.mapTile{min-height:40px}.mapTile b{font-size:16px}.mapDetail h3{font-size:18px}.courseIndex .sectionHead h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.mapTile{transition:none}.mapTile:hover,.mapTile:focus-visible{transform:none}}
.allCourseList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 40px}
.indexWeek{min-width:0}
.indexWeek header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 12px;gap:16px}
.indexWeek h3{margin:0;color:var(--accent);font-size:19px}
.indexWeek header small{color:var(--muted);font-size:11px;white-space:nowrap}
.indexWeek ol{list-style:none;margin:0;padding:0}
.indexWeek li{border-bottom:1px solid var(--line)}
.indexWeek li a,.indexWeek .unpublished{display:grid;gap:5px;padding:16px 12px;border-radius:4px}
.indexWeek li a{transition:background .18s,transform .18s,box-shadow .18s}
.indexWeek li a:hover,.indexWeek li a:focus-visible{background:var(--paper);transform:translateY(-2px);box-shadow:0 5px 14px rgba(33,27,22,.09)}
.indexWeek li a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.indexWeek li small{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted)}
.indexWeek li span{font-size:16px;line-height:1.8;overflow-wrap:anywhere}
.indexWeek li em{font-size:11px;font-style:normal;color:var(--muted)}
.indexWeek li a.completed{background:#f8e6d5}
.indexWeek li a.completed:hover,.indexWeek li a.completed:focus-visible{background:#f5dac1}
.indexWeek li a.completed em{color:var(--accent)}
.lessonCard.available{transition:transform .18s,box-shadow .18s}
@media(prefers-reduced-motion:reduce){.indexWeek li a,.lessonCard.available{transition:none}.indexWeek li a:hover,.indexWeek li a:focus-visible{transform:none}}
.indexWeek .unpublished{color:var(--muted)}
@media(max-width:700px){.allCourseList{grid-template-columns:1fr;gap:28px}.indexWeek li a,.indexWeek .unpublished{padding:14px 4px}}
@media(max-width:700px){
 .courseIndex.section{padding-top:20px;padding-bottom:28px}
 .courseIndex .sectionHead{margin-bottom:12px}
 .courseIndex .sectionHead .eyebrow{margin-bottom:8px}
 .courseIndex .allCourseList{height:calc(100svh - 180px);min-height:360px;grid-template-rows:minmax(120px,1fr) auto;gap:12px;align-items:stretch}
 .mapRoute{overflow-y:auto;overscroll-behavior:contain;padding:5px 3px 8px;scrollbar-width:thin}
 .mapTile.mapStart{margin-bottom:12px}
 .lessonBoard{gap:18px 13px;padding:14px}
 .mapTile{padding:6px 3px}
 .mapTile:nth-child(4n) i{bottom:-22px}
 .mapDetail{position:static;padding:14px 16px;max-height:42svh;overflow-y:auto}
 .mapDetail h3{font-size:16px;line-height:1.6;margin:8px 0 12px}
 .mapType{margin:6px 0;font-size:11px}
 .mapCompletion{margin:0 0 8px;font-size:11px}
 .mapDetail>a{padding:7px 14px;font-size:13px}
}
