/* The archipelago is the main view, never a short decorative banner. */
[hidden]{display:none!important}
:root{--topbar-height:84px;--chrome-height:140px;--panel-width:min(72vw,960px)}
.topbar{position:sticky;top:0;z-index:42}
.breadcrumbs{position:sticky;top:var(--topbar-height);z-index:41;background:#fffdf7;max-width:none;box-shadow:0 2px 6px #183f4308}
.scene{scroll-margin-top:var(--chrome-height)}
.scene.island-scene{width:100%;max-width:none;height:calc(100dvh - var(--chrome-height));min-height:510px;max-height:920px;border-radius:0;margin:0;background:#80ced6;transition:width .25s}
.scene.island-scene #world{inset:0}
.scene.island-scene .scene-grain{background:linear-gradient(180deg,#e6f8ec55,transparent 24%);z-index:1}
.scene.island-scene .scene-copy{position:absolute;left:22px;top:14px;padding:12px 18px;max-width:470px;border-radius:16px;background:#fff8e7e8;color:#194c53;z-index:5}
.scene.island-scene .scene-copy h1{font-size:28px;line-height:1.2;margin:4px 0}
.scene.island-scene .scene-copy p{font-size:12px;color:#3d6666;margin:6px 0;max-width:none}
.scene.island-scene .scene-copy .eyebrow{font-size:9px}
.scene.island-scene .scene-caption{z-index:5;bottom:14px;left:22px;background:#174e5bbf;border-radius:18px;padding:6px 12px;max-width:60%;color:#fff9e2;font-size:11px}
.scene .motion{z-index:6}
.scene-reset{position:absolute;right:18px;top:20px;z-index:6;background:#fff8e7e8;color:#194c53;border-color:#fff4d7;font-size:12px}
.scene-labels{position:absolute;inset:0;pointer-events:none;z-index:4}
.scene-island-label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:6px 11px;min-height:44px;white-space:nowrap;border-radius:12px;color:#184b51;border:1px solid #f8f1ce;background:#fff8e6f2;box-shadow:0 4px 12px #174b6530;font-size:13px;line-height:1.45}
.scene-island-label strong,.scene-island-label small{display:block}
.scene-island-label small{font-size:10px;color:#4b7270}
.scene-island-label:hover,.scene-island-label.selected{background:#174f59;color:#fff;border-color:#e9d19b}
.scene-island-label:hover small,.scene-island-label.selected small{color:#ebdfc0}
.island-directory{padding:0 0 10px}
.island-directory h2{font-size:23px;margin:8px 0}
.island-directory p{color:var(--muted);font-size:14px}
.island-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:22px}
.island-shortcuts button{text-align:left;padding:16px;border-bottom:3px solid #74ad9c}
.island-shortcuts strong,.island-shortcuts small{display:block}
.island-shortcuts strong{font-size:15px}.island-shortcuts small{font-size:11px;color:var(--muted)}
body.panel-open{overflow:hidden}
body.panel-open .scene.island-scene{width:calc(100% - var(--panel-width))}
body.panel-open .scene-copy{display:none}
body.panel-open .scene-reset{left:14px;right:auto}
body.panel-open .scene-caption{max-width:calc(100% - 140px);font-size:9px;left:12px}
main.course-panel{position:fixed;top:var(--chrome-height);bottom:10px;right:10px;width:calc(var(--panel-width) - 18px);max-width:none;padding:0 20px 0;overflow:auto;overscroll-behavior:contain;background:#f6f5ed;border:1px solid #e3e8d9;border-radius:20px;box-shadow:-14px 0 50px #163c5430;z-index:50;scroll-padding-top:90px;min-height:0}
.panel-top{position:sticky;top:0;z-index:10;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0;background:#f6f5edf5;backdrop-filter:blur(8px);border-bottom:1px solid #cad9c9}
.panel-top strong{font-size:17px;line-height:1.4;min-width:0}
.panel-top button{font-size:12px;padding:8px 12px;border-radius:24px;border-color:#c4d1bd;flex-shrink:0;background:#e4edda}
.panel-year{margin:18px 0;padding:18px;background:#e2ecdc;border-radius:14px;display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.panel-year strong,.panel-year small{display:block}.panel-year strong{font-size:14px}.panel-year small{font-size:11px;color:var(--muted)}
.panel-year>div{display:flex;gap:8px;flex-wrap:wrap}.panel-year .pill{font-size:12px;padding:8px 12px}
.panel-foot{position:sticky;bottom:0;padding:12px 0;background:#f6f5edf5;backdrop-filter:blur(8px);border-top:1px solid var(--line);margin-top:18px;z-index:10}
.panel-foot button{width:100%;font-size:13px}
.course-panel .section-title h2{font-size:23px}.course-panel .section-title .eyebrow{font-size:10px}
.course-panel .section-title .back{font-size:11px;padding:6px 10px}
.course-panel .section-title{gap:10px;flex-wrap:wrap;margin-top:24px}
.course-panel .controls{padding:16px}
.course-panel .year-grid{grid-template-columns:1fr;gap:26px}
.course-panel .category-grid,.course-panel .single .category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.course-panel .compare-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.course-panel .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
.course-panel .filters label:first-child{grid-column:1/-1}
.course-panel .pill{font-size:12px;padding:8px 12px}
body.panel-open>.consult,body.panel-open>footer{visibility:hidden}
.scene-fallback{z-index:7}
@media(max-width:1000px){
 main.course-panel{width:calc(100% - 24px);right:12px;bottom:12px}
 body.panel-open .scene.island-scene{width:100%}
 .island-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
 .scene.island-scene{height:calc(100dvh - var(--chrome-height));min-height:490px;max-height:780px}
 .scene.island-scene #world{inset:0}
 .scene.island-scene .scene-copy{left:12px;top:10px;padding:10px 13px;max-width:calc(100% - 24px);pointer-events:none}
 .scene.island-scene .scene-copy h1{font-size:23px}
 .scene.island-scene .scene-copy p{font-size:10px;margin:3px 0}
 .scene.island-scene .scene-copy .eyebrow{font-size:8px;letter-spacing:.08em}
 .scene-reset{top:auto;bottom:48px;right:12px;font-size:10px;padding:5px 10px;min-height:34px}
 .scene.island-scene .scene-caption{left:12px;bottom:12px;max-width:calc(100% - 110px);font-size:8px;padding:6px 9px}
 .scene-island-label{font-size:11px;padding:5px 8px;min-height:44px;border-radius:10px;line-height:1.5}
 .scene-island-label small{font-size:9px}
 .island-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .island-shortcuts button{padding:12px}.island-shortcuts strong{font-size:13px}
 main.course-panel{top:var(--chrome-height);bottom:0;right:0;width:100%;padding:0 16px;border-radius:18px 18px 0 0;border-bottom:0}
 .panel-top{padding:12px 0;gap:8px}.panel-top strong{font-size:14px}.panel-top button{font-size:11px;padding:8px 10px}
 .panel-year{padding:14px;gap:10px}.panel-year strong{font-size:13px}
 .course-panel .section-title h2{font-size:21px}
 .course-panel .category-grid,.course-panel .single .category-grid{display:block}
 .course-panel .compare-grid{grid-template-columns:1fr}
 .course-panel .controls{padding:14px}.course-panel .pill{font-size:11px;padding:8px 10px}
 .panel-foot{padding:10px 0;padding-bottom:max(10px,env(safe-area-inset-bottom))}
 body.panel-open .scene-reset{left:auto;right:12px}
}
@media(prefers-reduced-motion:reduce){.scene.island-scene{transition:none}}

/* In-flow reciprocal link: no overlay on scene, motion, or course controls. */
.top-tags{flex-wrap:wrap;justify-content:flex-end;gap:8px}
.hub-return{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #a7b8a9;border-radius:12px;background:#f0f7f3;color:#194c53;text-decoration:none;touch-action:manipulation;font-weight:700}
.hub-return:hover{background:#deeee4}
@media(max-width:600px){.topbar{flex-wrap:wrap}.top-tags{max-width:none;width:100%;justify-content:flex-start;text-align:left}.hub-return{font-size:12px}.top-tags .outline-tag{font-size:10px}}
