/* Approved astronomy magazine direction.
   Art direction informed by unslop by Damir Sokolovsky (@heydamir), CC BY 4.0.
   Covers are editorial illustrations; experiments keep their own computed scenes. */
:root { --bg:#f6f5f1; --ink:#202b34; --muted:#606b73; --line:#d7dbd9; --night:#101d29; --blue:#315c77; --raised:#eceeea; --soft:#e8eeee; }
html { scroll-padding-top:112px; }
.editorial-definitions { position:absolute; width:0; height:0; overflow:hidden; }
header { height:88px; color:#f0f0e9; background:var(--night); border-color:#ffffff20; }
.is-home header { background:var(--night); }
header .brand-mark { color:#c1c9ce; }
header nav a { color:#c1c9ce; }
header nav a:hover { color:#fff; }
header .learner-trigger { border:0; border-left:1px solid #ffffff30; border-radius:0; padding-left:24px; }
header :focus-visible { outline-color:#b9d0df; }
.hero { display:block; min-height:0; padding:0; background:var(--night); }
.hero > .wrap { position:relative; inset:auto; display:block; pointer-events:auto; width:100%; max-width:1344px; padding:0 32px; }
.hero > .cover-inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); min-height:680px; padding:56px 32px 64px; align-items:center; }
.hero .hero-copy { grid-column:1; grid-row:1; max-width:100%; padding:0; }
.hero .eyebrow { color:#b9c4cb; font-size:12px; margin-bottom:32px; }
.hero h1 { color:#f2f1eb; font:400 clamp(48px,4.7vw,68px)/1.35 var(--display); letter-spacing:0; margin:0 0 24px; }
.hero p { color:#b1bec8; font-size:16px; line-height:1.9; max-width:352px; margin:0 0 40px; }
.hero-actions { display:flex; align-items:center; gap:28px; }
.hero .button { background:#eeeae0; color:#20313c; border-radius:4px; padding:12px 20px; min-height:48px; }
.hero .button span { margin-left:16px; }
.hero .button:hover { background:#fff; }
.text-link { font-size:13px; color:var(--blue); }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.hero .text-link { color:#c3cdd4; }
.hero .solar-banner { grid-column:2; grid-row:1; width:100%; max-width:none; padding:0; margin:0; }
.hero .solar-heading { margin:0 0 8px; }
.hero .solar-map { position:static; display:block; width:100%; height:auto; opacity:1; overflow:visible; }
.hero .solar-controls svg { position:static; opacity:1; width:18px; height:18px; }
.cover-footer { display:flex; justify-content:space-between; gap:24px; border-top:1px solid #ffffff20; padding:20px 0; color:#aebbc5; font-size:12px; }
.cover-footer span:last-child { color:#9aadb9; }
.home-content { padding-bottom:88px; }
.home-content > .section { margin-top:88px; padding:0; border:0; }
.home-content > .section::before { display:none; }
.home-content .eyebrow, .home-content #courses > .eyebrow { position:static; font-size:12px; line-height:1.7; margin-bottom:16px; color:var(--muted); }
.section-number { font:12px/1.5 ui-monospace,Menlo,monospace; margin-right:16px; color:var(--muted); }
.home-content h2 { font:400 36px/1.4 var(--display); margin:0; }
.home-content .section-top { display:flex; flex-direction:row; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:32px; }
.home-content .section-top .text-link { flex-shrink:0; }
.editorial-plate { position:relative; overflow:hidden; min-width:0; background:#142634; border-radius:2px; }
.editorial-plate svg { position:static; display:block; width:100%; height:100%; }
.everyday-links { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:32px 40px; margin:0; }
.everyday-links > a { position:relative; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:24px; align-items:center; padding:0 0 24px; border-bottom:1px solid var(--line); }
.everyday-links > a:first-child { grid-row:span 2; display:block; padding:0; border:0; }
.everyday-links .editorial-plate { height:184px; }
.everyday-links > a:first-child .editorial-plate { height:400px; }
.everyday-links .everyday-label { display:block; height:auto; background:none; border-radius:0; font-size:12px; color:var(--muted); }
.everyday-links > a:first-child .everyday-label { position:absolute; top:20px; left:24px; color:#bac7ce; }
.everyday-links h3, .everyday-links > a:first-child h3 { font:400 23px/1.5 var(--display); margin:12px 0 16px; }
.everyday-links > a:first-child h3 { font-size:28px; margin:20px 0 8px; }
.everyday-links h3 > span { display:none; height:auto; background:none; }
.everyday-links > a:first-child h3 > span { display:block; float:right; font:20px/1.5 var(--font); }
.everyday-links p { font-size:13px; color:var(--muted); margin:0; }
.everyday-links > a:not(:first-child) p { font-size:12px; }
.everyday-links .plate-caption { position:absolute; left:24px; top:360px; display:block; height:auto; background:none; font-size:11px; color:#bac7ce; }
.learning-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:64px; border-top:1px solid var(--line); padding-top:40px; }
.home-content .learning-paths h2 { font-size:32px; line-height:1.5; margin:0 0 16px; }
.learning-layout > div > .muted { font-size:14px; max-width:320px; margin-bottom:24px; }
.learning-next { display:block; border:0; border-radius:0; padding:0; margin:0 0 16px; }
.learning-next a { display:block; }
.learning-next strong { display:block; font-size:16px; font-weight:500; margin-top:8px; }
.learning-next strong > span { margin-left:24px; color:var(--blue); }
.learning-next a:hover strong { color:var(--blue); }
.learning-next .small { font-size:12px; }
.guide-link { display:inline-block; }
.route-track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.route-stop { display:block; border-top:1px solid #b2bec5; padding-top:24px; min-width:0; }
.route-stop > span { font:12px/1.5 ui-monospace,Menlo,monospace; color:var(--muted); }
.route-stop .editorial-plate { height:112px; margin:16px 0; }
.route-stop h3 { font:500 16px/1.5 var(--font); margin:0 0 8px; }
.route-stop small { font-size:12px; color:var(--muted); }
.route-stop:hover h3 { color:var(--blue); }
.route-disclosure, .chapter-disclosure { margin-top:40px; padding-top:16px; border-top:1px solid var(--line); }
.route-disclosure summary, .chapter-disclosure summary, .topic-preparation summary { font-size:13px; color:var(--blue); cursor:pointer; min-height:44px; padding:12px 0; }
.route-disclosure summary, .chapter-disclosure summary { list-style:none; }
.route-disclosure summary::-webkit-details-marker, .chapter-disclosure summary::-webkit-details-marker { display:none; }
.route-disclosure summary::after, .chapter-disclosure summary::after { content:"↓"; display:inline-block; margin-left:8px; font-size:12px; color:var(--muted); transition:transform .2s var(--ease); }
.route-disclosure[open] summary::after, .chapter-disclosure[open] summary::after { transform:rotate(180deg); }
.route-disclosure .path-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin:8px 0 0; }
.route-disclosure .path { padding-top:24px; }
.route-disclosure .path-number { font-size:32px; }
.route-disclosure .path h3 { font-size:20px; }
.route-disclosure .path > p { padding-right:0; min-height:0; }
.catalog-heading { align-items:center; border-top:1px solid var(--line); padding:16px 0; margin:0 0 32px; }
.search { background:transparent; border:0; border-bottom:1px solid #b6c0c5; border-radius:0; padding:8px 0 8px 32px; min-height:44px; width:256px; color:var(--ink); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23667078' stroke-width='1.5'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 5 5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:left center; }
.topic-overview { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; border:0; }
.topic-card { display:grid; grid-template-columns:160px minmax(0,1fr); gap:24px; align-items:center; border-top:1px solid var(--line); padding:24px 0 0; min-width:0; }
.topic-card .editorial-plate { height:136px; }
.topic-card h3 { font:400 24px/1.5 var(--display); margin:8px 0; }
.topic-card p { font-size:12px; line-height:1.7; margin:0; }
.topic-card-meta { display:flex; justify-content:space-between; gap:16px; color:var(--muted); font-size:12px; margin:0; }
.topic-card-meta > span { color:var(--blue); font-size:20px; line-height:1; }
.topic-card:nth-child(-n+2) { display:block; border:0; padding:0; }
.topic-card:nth-child(-n+2) .editorial-plate { height:300px; margin-bottom:20px; }
.topic-card:nth-child(-n+2) h3 { font-size:28px; }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:start; border-top:1px solid var(--line); padding-top:32px; }
.home-content #map h2 { line-height:1.5; margin-bottom:16px; }
#map .map-intro { font-size:14px; max-width:400px; }
.map-appendix { max-width:400px; font-size:12px; margin-top:24px; }
.chapter-summary { display:flex; align-items:baseline; gap:24px; border-bottom:1px solid var(--line); padding-bottom:24px; }
.chapter-summary strong { font:400 56px/1 var(--display); }
.chapter-summary > span { font-size:12px; color:var(--muted); }
#map .chapter-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:64px; align-content:start; margin:8px 0 0; max-height:480px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b9c3c0 transparent; }
#map .chapter-list::-webkit-scrollbar { width:8px; }
#map .chapter-list::-webkit-scrollbar-thumb { background:#b9c3c0; border-radius:4px; }
#map .chapter-list::-webkit-scrollbar-track { background:transparent; }
#map .chapter { display:grid; grid-template-columns:24px minmax(0,1fr); gap:8px 20px; padding:16px 0; align-items:baseline; }
#map .chapter .number { font:12px/1.7 ui-monospace,Menlo,monospace; width:auto; }
#map .chapter-links { grid-column:2; font-size:12px; display:flex; flex-wrap:wrap; gap:8px 16px; }
#map .chapter > small, #map .chapter > a { grid-column:2; }
#map .chapter > span:nth-child(2) { font-size:14px; }
/* Topic opening spread; lesson cards form an illustrated contents list. */
.topic-page { padding-top:32px; padding-bottom:80px; }
.topic-page > .back { display:inline-block; margin-bottom:32px; font-size:13px; }
.topic-opening { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; padding-bottom:48px; border-bottom:1px solid var(--line); }
.topic-opening > .editorial-plate { height:400px; }
.topic-head { padding:0; min-width:0; }
.topic-head .eyebrow { margin-bottom:20px; }
.topic-head h1 { font:400 44px/1.4 var(--display); margin:0 0 24px; }
.topic-description { font-size:15px; line-height:1.9; max-width:440px; margin:0 0 24px; }
.topic-head > .small { font-size:12px; margin:0; overflow-wrap:anywhere; }
.topic-start { display:block; padding:24px 0 0; margin:24px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; }
.topic-start-link { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.topic-start-link small { font-size:12px; color:var(--muted); }
.topic-start-link strong { display:block; font-size:17px; font-weight:500; margin-top:4px; }
.round-arrow { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:#fff; background:var(--ink); flex-shrink:0; font-size:20px; }
.topic-start-link:hover strong { color:var(--blue); }
.topic-preparation { margin-top:16px; }
.topic-preparation summary { color:var(--muted); font-size:12px; }
.topic-preparation p { font-size:13px; color:var(--muted); margin:8px 0; }
.topic-tools { align-items:center; margin:32px 0 16px; gap:24px; }
.topic-tools .level-tabs { display:flex; flex-wrap:wrap; gap:24px; margin:0; }
.topic-tools .level-tabs button { border:0; border-bottom:2px solid transparent; padding:8px 0; background:none; color:var(--muted); border-radius:0; font-size:13px; min-height:44px; }
.topic-tools .level-tabs button[aria-pressed=true] { border-bottom-color:var(--ink); color:var(--ink); background:none; }
.topic-tools .search { width:256px; }
#topic-result-count { font-size:12px; margin-bottom:0; }
.topic-course-group { border:0; padding:0; margin-top:40px; }
.topic-group-heading { margin-bottom:24px; gap:16px; }
.topic-group-heading h2 { font:400 28px/1.5 var(--display); }
.topic-group-heading > span { font-size:12px; }
.topic-page .course-grid, #catalog-results .course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; }
.topic-page .course-card, #catalog-results .course-card { display:grid; grid-template-columns:112px minmax(0,1fr); gap:24px; align-items:center; padding:24px 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.topic-page .course-card:hover, #catalog-results .course-card:hover { background:transparent; border-color:#9cabb3; }
.topic-page .thumb, #catalog-results .thumb { height:112px; min-height:0; padding:0; background:#142634; border-radius:2px; overflow:hidden; }
.topic-page .thumb svg, #catalog-results .thumb svg { display:block; width:100%; height:100%; }
.topic-page .card-text, #catalog-results .card-text { display:block; padding:0; min-width:0; }
.topic-page .course-meta, #catalog-results .course-meta { font-size:11px; margin:0 0 8px; }
.topic-page .course-card h3, #catalog-results .course-card h3 { font-size:17px; line-height:1.6; font-weight:400; min-height:0; margin:0 0 8px; }
.topic-page .course-card p, #catalog-results .course-card p { padding:0; margin:0; border:0; font-size:11px; }
.topic-page .course-card:hover h3, #catalog-results .course-card:hover h3 { color:var(--blue); }
.topic-other { gap:16px 32px; }
.topic-other h2 { font-size:17px; }
.topic-other a { color:var(--muted); font-size:13px; }
footer { padding-top:32px; padding-bottom:48px; border-color:var(--line); }
.footer-brand { font-size:18px; color:var(--ink); }
@media(min-width:1500px) { .hero .solar-banner { margin-left:0; max-width:none; } }
@media(max-width:1000px) {
 .hero > .cover-inner { min-height:580px; }
 .hero h1 { font-size:48px; }
 .hero p { font-size:15px; max-width:320px; }
 .hero-actions { gap:20px; }
 .hero .text-link { font-size:12px; }
 .everyday-links { gap:32px; }
 .everyday-links > a { gap:16px; grid-template-columns:minmax(0,.7fr) minmax(0,1fr); }
 .everyday-links > a:first-child .editorial-plate { height:352px; }
 .everyday-links h3 { font-size:20px; }
 .everyday-links .plate-caption { top:312px; }
 .learning-layout { gap:32px; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); }
 .topic-card { grid-template-columns:120px minmax(0,1fr); gap:16px; }
 .topic-card h3 { font-size:21px; }
 .topic-opening { gap:32px; }
 .topic-head h1 { font-size:36px; }
 .topic-opening > .editorial-plate { height:360px; }
 .topic-tools { align-items:start; }
 .topic-page .course-grid, #catalog-results .course-grid { column-gap:24px; }
 .topic-page .course-card, #catalog-results .course-card { gap:16px; }
}
@media(max-width:720px) {
 html { scroll-padding-top:96px; }
 header { height:72px; }
 .header-actions { gap:16px; }
 header nav { gap:20px; }
 .hero > .wrap { padding:0 20px; }
 .hero > .cover-inner { display:flex; flex-direction:column; align-items:stretch; min-height:0; padding:40px 20px 24px; gap:24px; }
 .hero .hero-copy { padding:0; }
 .hero .eyebrow { margin-bottom:24px; }
 .hero h1 { font-size:44px; line-height:1.35; margin-bottom:20px; }
 .hero p { font-size:14px; max-width:320px; margin-bottom:28px; }
 .hero-actions { gap:24px; }
 .hero .solar-banner { width:100%; max-width:580px; margin:0 auto; padding:0; }
 .hero .solar-map { width:100%; height:auto; }
 .cover-footer { padding:16px 0; font-size:11px; }
 .cover-footer span:last-child { display:none; }
 .home-content { padding-bottom:56px; }
 .home-content > .section { margin-top:56px; }
 .home-content .eyebrow { font-size:12px; margin-bottom:12px; }
 .home-content h2, .home-content .learning-paths h2 { font-size:28px; }
 .home-content .section-top { gap:16px; margin-bottom:24px; }
 .home-content .section-top > .text-link { font-size:12px; }
 .everyday-links { display:grid; grid-template-columns:1fr; gap:20px; }
 .everyday-links > a, .everyday-links > a:nth-child(2) { grid-template-columns:128px minmax(0,1fr); gap:20px; padding:0 0 20px; }
 .everyday-links > a:first-child { grid-row:auto; padding-bottom:8px; }
 .everyday-links .editorial-plate { height:120px; }
 .everyday-links > a:first-child .editorial-plate { height:300px; }
 .everyday-links h3 { font-size:21px; margin:8px 0; }
 .everyday-links > a:first-child h3 { font-size:25px; margin:16px 0 8px; }
 .everyday-links .plate-caption { top:260px; }
 .learning-layout { grid-template-columns:1fr; gap:32px; padding-top:24px; }
 .learning-layout > div > .muted { max-width:100%; }
 .route-track { gap:16px; }
 .route-stop .editorial-plate { height:96px; }
 .route-stop h3 { font-size:14px; }
 .route-stop small { font-size:11px; }
 .catalog-heading { flex-direction:column; align-items:stretch; gap:16px; padding:16px 0; margin-bottom:24px; }
 .search { width:100%; }
 .topic-overview { grid-template-columns:1fr; gap:24px; }
 .topic-card, .topic-card:nth-child(-n+2) { display:grid; grid-template-columns:112px minmax(0,1fr); gap:20px; border-top:1px solid var(--line); padding-top:24px; }
 .topic-card .editorial-plate, .topic-card:nth-child(-n+2) .editorial-plate { height:112px; margin:0; }
 .topic-card h3, .topic-card:nth-child(-n+2) h3 { font-size:21px; }
 .topic-card p { font-size:11px; }
 .topic-card:first-child { display:block; border:0; padding:0; }
 .topic-card:first-child .editorial-plate { height:248px; margin-bottom:16px; }
 .topic-card:first-child h3 { font-size:26px; }
 .map-layout { grid-template-columns:1fr; gap:32px; padding-top:24px; }
 .route-disclosure .path-grid { grid-template-columns:1fr; gap:32px; max-height:480px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#b9c3c0 transparent; }
 .route-disclosure .path-grid::-webkit-scrollbar { width:8px; }
 .route-disclosure .path-grid::-webkit-scrollbar-thumb { background:#b9c3c0; border-radius:4px; }
 .route-disclosure .path-grid::-webkit-scrollbar-track { background:transparent; }
 #map .chapter-list { grid-template-columns:1fr; max-height:420px; }
 .home-content #map h2 { font-size:28px; }
 .map-appendix { margin-top:16px; }
 .topic-page { padding-top:24px; padding-bottom:56px; }
 .topic-page > .back { margin-bottom:24px; }
 .topic-opening { display:flex; flex-direction:column; align-items:stretch; gap:24px; padding-bottom:24px; }
 .topic-opening > .editorial-plate { height:256px; }
 .topic-head { padding:0; }
 .topic-head h1 { font-size:36px; margin:0 0 16px; }
 .topic-head .eyebrow { margin-bottom:16px; }
 .topic-description { font-size:14px; margin-bottom:16px; }
 .topic-start { margin-top:16px; padding-top:20px; }
 .topic-tools { flex-direction:column; align-items:stretch; gap:16px; margin:24px 0 16px; }
 .topic-tools .level-tabs { display:flex; gap:8px 20px; }
 .topic-tools .search { width:100%; }
 .topic-course-group { margin-top:32px; }
 .topic-group-heading h2 { font-size:24px; }
 .topic-page .course-grid, #catalog-results .course-grid { grid-template-columns:1fr; }
 .topic-page .course-card, #catalog-results .course-card { grid-template-columns:96px minmax(0,1fr); padding:20px 0; }
 .topic-page .thumb, #catalog-results .thumb { height:96px; }
 .topic-page .course-card h3, #catalog-results .course-card h3 { font-size:16px; }
}
@media(max-width:360px) {
 header .brand { font-size:18px; }
 header .brand-mark { width:16px; height:16px; margin-left:4px; }
 .header-actions { gap:8px; }
 header .learner-trigger { max-width:88px; padding-left:8px; }
 .everyday-links > a { grid-template-columns:104px minmax(0,1fr); gap:16px; }
 .everyday-links > a:first-child h3 { font-size:22px; }
 .home-content .section-top { align-items:start; }
 .home-content h2 { font-size:25px; }
 .topic-tools .level-tabs { gap:8px 16px; }
 .topic-tools .level-tabs button { font-size:12px; }
 .topic-head h1 { font-size:32px; }
}
.chapter-sample { display:flex; align-items:center; gap:24px; padding:16px 0; border-bottom:1px solid var(--line); font-size:14px; }
.chapter-sample > span:first-child { font:12px/1.7 ui-monospace,Menlo,monospace; color:var(--muted); }
.chapter-sample > span:last-child { margin-left:auto; color:var(--muted); }
.chapter-sample:hover { color:var(--blue); }
#map .chapter-links { flex-direction:row; align-items:baseline; justify-content:flex-start; text-align:left; }

.everyday-links > a:hover h3 { color:var(--blue); }

/* Native language names stay readable at every viewport width. */
.language-control select { font: inherit; font-size: .78rem; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 2px; padding: .4rem; max-width: 8rem; }
.language-control option { color: #172f40; background: #faf8f2; }
#language-status:empty { display: none; }
#translation-note { flex-basis: 100%; font-size: .75rem; opacity: .7; }
html:not([lang^="zh"]) .hero h1 { font-size: clamp(2.6rem, 4.5vw, 5rem); }
html:not([lang^="zh"]) h1, html:not([lang^="zh"]) h2, html:not([lang^="zh"]) h3 { overflow-wrap: anywhere; }
@media (max-width: 720px) {
 header { flex-wrap: wrap; gap: .5rem; }
 .header-actions { flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
 .language-control select { max-width: 7rem; }
}
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width: 720px) {
 header { height:auto; min-height:72px; padding-top:12px; padding-bottom:12px; }
 .header-actions { flex:1 1 100%; justify-content:space-between; }
 .header-actions nav { gap:14px; }
}

/* Translation changes the space a sentence needs, not its reading order. */
html:is(:lang(en), :lang(fr), :lang(ru)) { --display: Georgia, 'Times New Roman', serif; }
html:lang(ja) { --font: -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif; --display: 'Hiragino Mincho ProN', 'Yu Mincho', serif; }
html:lang(ko) { --font: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif; --display: 'Nanum Myeongjo', 'Batang', serif; word-break: keep-all; }
html:not([lang^="zh"]) :is(h1,h2,h3) { word-break: normal; overflow-wrap: break-word; hyphens: auto; text-wrap: balance; }
html:is(:lang(en), :lang(fr), :lang(ru)) .hero h1 { font-size: clamp(36px, 3.8vw, 56px); line-height: 1.2; }
html:not([lang^="zh"]) :is(p,small,button,.text-link) { overflow-wrap: break-word; }
:is(.hero-copy,.everyday-copy,.topic-card-copy,.stage-col,.inspector,.lesson-body > *, .step-item > div) { min-width:0; }
.hero-actions, .solar-heading, .solar-time, .section-top, .topic-group-heading { flex-wrap:wrap; }
.hero-actions > *, .solar-controls { flex-shrink:0; }
.hero-actions .button { max-width:100%; }
.solar-heading > span { min-width:0; flex:1 1 180px; white-space:normal; }
.solar-controls { margin-left:auto; }
.solar-time { row-gap:4px; }
.home-content .section-top .text-link { flex-shrink:1; }
.cover-footer > span { min-width:0; }
.stage-title { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; align-items:start; }
.stage-title > span:first-child { white-space:normal; }
.stage-title > span:nth-child(2) { grid-row:2; grid-column:1 / -1; white-space:normal; overflow:visible; text-overflow:clip; max-width:none; }
.stage-title > .zoom-button { grid-row:1; grid-column:2; white-space:normal; max-width:160px; }
:is(.button,.option,.experience-tabs button,.level-tabs button) { max-width:100%; white-space:normal; overflow-wrap:break-word; }
.control label { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,auto); gap:8px 16px; }
.control label output { max-width:160px; text-align:right; overflow-wrap:anywhere; }
.result .value { overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.formula { overflow-x:auto; }
.topic-other h2 { flex-basis:100%; }
footer { flex-wrap:wrap; }
@media (max-width:1000px) {
 header { height:auto; min-height:88px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 20px; padding-block:16px; }
 .header-actions { display:contents; }
 header .brand { grid-row:1; grid-column:1; min-width:0; }
 header .language-control { grid-row:1; grid-column:2; justify-self:end; }
 header nav { grid-row:2; grid-column:1; flex-wrap:wrap; gap:8px 20px; }
 header .learner-trigger { grid-row:2; grid-column:2; white-space:normal; max-width:180px; overflow:visible; text-overflow:clip; line-height:1.5; padding:8px 12px; }
 #language-status { grid-column:1 / -1; }
 html { scroll-padding-top:160px; }
 html:not([lang^="zh"]) .hero > .cover-inner { grid-template-columns:1fr; gap:40px; }
 html:not([lang^="zh"]) .hero .solar-banner { grid-column:1; grid-row:2; max-width:700px; margin:auto; }
 html:not([lang^="zh"]) .hero-copy { max-width:640px; }
 html:not([lang^="zh"]) .hero p { max-width:52ch; }
 html:not([lang^="zh"]) .learning-layout { grid-template-columns:1fr; }
 html:not([lang^="zh"]) .route-track { grid-template-columns:1fr; gap:24px; }
 html:not([lang^="zh"]) .route-stop { display:grid; grid-template-columns:104px minmax(0,1fr); gap:4px 24px; padding-top:20px; }
 html:not([lang^="zh"]) .route-stop .editorial-plate { grid-column:1; grid-row:1 / 4; height:104px; margin:0; }
 html:not([lang^="zh"]) .route-stop > :not(.editorial-plate) { grid-column:2; }
 html:not([lang^="zh"]) .route-stop h3 { margin:4px 0; }
 html:not([lang^="zh"]) .route-stop small { font-size:12px; line-height:1.7; }
}
@media (max-width:720px) {
 html:is(:lang(en), :lang(fr), :lang(ru)) .hero h1 { font-size:clamp(32px, 8.5vw, 44px); }
 html:not([lang^="zh"]) .hero-actions { align-items:flex-start; gap:16px 24px; }
 html:not([lang^="zh"]) .home-content .section-top { flex-direction:column; align-items:flex-start; gap:12px; }
 html:not([lang^="zh"]) .topic-card:not(:first-child) { grid-template-columns:88px minmax(0,1fr); gap:16px; }
 html:not([lang^="zh"]) .topic-card h3 { font-size:20px; }
 html:not([lang^="zh"]) .topic-card-meta { flex-wrap:wrap; gap:4px; }
 html:not([lang^="zh"]) .topic-page .course-card { grid-template-columns:72px minmax(0,1fr); gap:16px; }
 html:not([lang^="zh"]) .topic-page .thumb { height:80px; }
 .playbar { display:grid; grid-template-columns:44px minmax(0,1fr) minmax(0,1fr); align-items:stretch; }
 .playbar .step-count { grid-column:3; justify-self:end; align-self:center; }
 .playbar #reset { grid-column:1 / 3; justify-self:start; }
 .playbar button { min-width:0; padding:8px; }
 .diagram-heading { align-items:flex-start; flex-wrap:wrap; }
 .diagram-heading h2 { min-width:0; }
}
.experience-workspace .stage-title > span:nth-child(2) { max-width:none; overflow:visible; white-space:normal; text-overflow:clip; }
@media (max-width:1000px) { header { padding-inline:20px; } }
@media (max-width:360px) { header .brand-mark { display:none; } }
@media (max-width:1000px) { header .brand { flex-wrap:wrap; line-height:1.3; row-gap:0; } }
.control label { grid-template-columns:minmax(0,3fr) minmax(0,2fr); }
.control-name { min-width:0; overflow-wrap:anywhere; }
.control label output { min-width:0; max-width:none; }
.symbol { grid-template-columns:minmax(0,1fr) minmax(0,3fr); }
.symbol > * { min-width:0; overflow-wrap:anywhere; }
.lesson-body p { overflow-wrap:anywhere; }
html:not([lang^="zh"]) .season-ticks { display:grid; grid-template-columns:1fr; gap:4px; }
html:not([lang^="zh"]) .season-ticks button { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 36px; align-items:center; gap:8px; min-height:44px; padding:8px 4px; text-align:left; }
html:not([lang^="zh"]) .season-ticks :is(b,small) { white-space:normal; min-width:0; overflow-wrap:anywhere; }
/* Keep short words intact; only an overlong identifier may need an emergency break. */
html:not([lang^="zh"]) :is(h1,h2,h3) { hyphens:manual; }
.solar-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; }

/* Copyright and registration share one quiet baseline below the site information. */
.footer-legal { flex-basis:100%; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 24px; margin-top:4px; padding-top:20px; border-top:1px solid var(--line); font-size:12px; line-height:1.8; color:var(--muted); }
.footer-copyright { margin:0; font-size:inherit; text-align:center; overflow-wrap:break-word; min-width:0; }
.footer-registration { display:flex; align-items:center; font-size:inherit; }
.footer-registration::before { content:""; width:1px; height:12px; margin-right:24px; background:var(--line); }
.footer-registration a { display:inline-block; padding:4px 0; color:inherit; white-space:nowrap; }
.footer-registration a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:600px) {
 .footer-legal { flex-direction:column; align-items:center; gap:4px; margin-top:16px; padding-top:16px; }
 .footer-registration::before { display:none; }
}

.discovery-intro { padding-block:48px; line-height:1.8; }
.reading-link { font-size:12px; color:var(--blue); white-space:nowrap; }
