/* SGIS 2026 editorial redesign layer */
:root {
    --red-950: #4a0d1a;
    --red-900: #65101f;
    --red-800: #811529;
    --red-700: #9f1d34;
    --gold-500: #c99518;
    --gold-300: #e9ca70;
    --gold-100: #f7edcf;
    --ink: #211c1d;
    --muted: #62595b;
    --paper: #fcfaf5;
    --cream: #f2eadb;
    --border: rgba(74, 13, 26, .14);
    --shadow: 0 24px 70px rgba(47, 18, 24, .12);
    --radius: 1rem;
    --wrap: min(1200px, calc(100% - 2.5rem));
}

body { font-size: 1rem; background: var(--paper); }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }

/* Shared resilience: grid/flex children may shrink, and long content wraps
   inside its own component instead of leaking into a neighbouring region. */
:where(main, section, article, aside, nav, form, fieldset, header, footer, .wrap) { min-width: 0; }
:where(main, .site-footer) :where(h1, h2, h3, h4, p, li, a, address, dt, dd, strong, small, code) { overflow-wrap: anywhere; }
:where(input, select, textarea, button) { min-width: 0; max-width: 100%; }
:where(img, video, svg, canvas, iframe) { max-width: 100%; }
.button { max-width: 100%; white-space: normal; text-align: center; }
.eyebrow { margin-bottom: .8rem; font-size: .7rem; letter-spacing: .16em; }
.lead-copy { color: var(--muted); font-size: clamp(1.03rem, 1.5vw, 1.18rem); }

.topline { font-size: .66rem; }
.topline__inner { min-height: 2rem; }
.topline__inner > div { display: flex; gap: 1.15rem; align-items: center; }
.topline__inner > div a:first-child { color: var(--gold-300); }

.site-header__inner { min-height: 6.8rem; }
.brand { width: 300px; }
.brand img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.primary-nav { gap: clamp(.7rem, 1.3vw, 1.25rem); font-size: .78rem; }
.primary-nav > a:not(.button) { padding-block: .75rem; }
.primary-nav .button { padding-inline: 1.15rem; }
.topline--reader { display: none; }
.site-header--reader .site-header__inner { min-height: 5rem; }
.site-header--reader .brand { width: 205px; }
.site-header--reader .brand img { height: auto; max-height: none; }
.site-header--reader .primary-nav,
.site-header--reader .menu-toggle { display: none; }
.site-header--reader + .reader-page .reader-topbar { top: 5rem; }
.site-header--reader + .reader-page .reader-panel { top: 9.5rem; }

.button { min-height: 3.1rem; padding: .72rem 1.2rem; box-shadow: 0 10px 24px rgba(129, 21, 41, .14); }
.button:hover { transform: translateY(-1px); }

.section { padding: clamp(4rem, 7vw, 6.5rem) 0; }
.section-heading { margin-bottom: 2.25rem; }
.section-heading h2,
.intro-statement h2,
.two-column h2,
.campus-intro h2,
.visit-cta h2 { font-size: clamp(2.25rem, 4.5vw, 4.2rem); line-height: 1; }

/* Shared decision-focused page opening */
.decision-hero {
    --hero-accent: var(--gold-500);
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 7.5vw, 7rem) 0;
    color: var(--white);
    background: linear-gradient(135deg, var(--red-950), #74162a 72%, #8b2032);
}
.decision-hero::before {
    content: "";
    position: absolute;
    width: 34rem;
    height: 34rem;
    right: -18rem;
    top: -22rem;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 50%;
    box-shadow: 0 0 0 5rem rgba(255,255,255,.025), 0 0 0 10rem rgba(255,255,255,.016);
}
.decision-hero--learning { background: linear-gradient(135deg, #341a25, #65101f 72%, #8d2638); }
.decision-hero--pathways { background: linear-gradient(135deg, #3b1722, #7b1829 63%, #9f6f10); }
.decision-hero--families { background: linear-gradient(135deg, #311d22, #5f1423 68%, #7a4630); }
.decision-hero--support { background: linear-gradient(135deg, #35141e, #681326 68%, #842338); }
.decision-hero--support h1 { color: var(--white); }
.decision-hero--support .breadcrumbs { color: #d8c7ca; }
.decision-hero--support .page-hero__lead { color: #f0e4e6; }
.decision-hero--admissions { background: linear-gradient(135deg, #f4ecdf, #fffaf1); color: var(--ink); }
.decision-hero--admissions .eyebrow { color: var(--red-800); }
.decision-hero--admissions .breadcrumbs { color: var(--muted); }
.decision-hero--admissions h1 { color: var(--red-950); }
.decision-hero--admissions .page-hero__lead { color: var(--muted); }
.decision-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .55fr); gap: clamp(3rem, 8vw, 7rem); align-items: end; }
.decision-hero .breadcrumbs { margin-bottom: 2rem; color: #d3c3c6; }
.decision-hero .breadcrumbs a { color: inherit; }
.decision-hero .eyebrow { color: var(--gold-300); }
.decision-hero h1 { max-width: 850px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.15rem, 6.3vw, 5.9rem); font-weight: 400; letter-spacing: -.052em; line-height: .94; }
.decision-hero .page-hero__lead { max-width: 760px; margin-top: 1.35rem; color: #eadde0; font-size: clamp(1.02rem, 1.5vw, 1.18rem); }
.decision-hero.decision-hero--admissions .breadcrumbs { color: #62595b; }
.decision-hero.decision-hero--admissions .page-hero__lead { color: #4f4749; }
.hero-route-card { padding: 1.5rem; color: var(--ink); background: rgba(255,251,242,.97); border-top: 4px solid var(--gold-500); border-radius: var(--radius); box-shadow: 0 20px 55px rgba(28,6,12,.19); }
.hero-route-card > span { color: var(--red-800); font-size: .67rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.hero-route-card > strong { display: block; margin: .8rem 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.75rem; font-weight: 400; line-height: 1.06; }
.hero-route-card p { color: var(--muted); font-size: .85rem; }
.hero-route-card ul { margin: 1rem 0 1.4rem; padding: 0; list-style: none; }
.hero-route-card li { padding: .45rem 0; border-top: 1px solid var(--border); color: var(--muted); font-size: .78rem; }

/* Faster routes and evidence */
.quick-routes { background: var(--cream); border-bottom: 1px solid var(--border); }
.quick-routes__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-routes a { display: grid; min-height: 10rem; align-content: space-between; padding: 1.35rem; border-right: 1px solid var(--border); text-decoration: none; }
.quick-routes a:first-child { border-left: 1px solid var(--border); }
.quick-routes a:hover { background: rgba(255,255,255,.55); }
.quick-routes span { color: var(--red-800); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.quick-routes strong { color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; line-height: 1.05; }
.quick-routes b { color: var(--muted); font-size: .72rem; }

.editorial-split { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(3rem, 9vw, 8rem); align-items: start; }
.editorial-split h2,
.continuity-panel h2,
.decision-grid h2,
.programme-compare-intro h2 { margin: 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.45rem, 4.8vw, 4.5rem); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
.evidence-list { border-top: 1px solid var(--border); }
.evidence-list article { display: grid; grid-template-columns: 3rem 1fr; gap: 1.2rem; padding: 1.3rem 0; border-bottom: 1px solid var(--border); }
.evidence-list article > span { color: var(--gold-500); font-size: .72rem; font-weight: 900; }
.evidence-list h3 { margin: 0 0 .3rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.evidence-list p { margin: 0; color: var(--muted); font-size: .9rem; }

.about-profile { box-shadow: 0 20px 58px rgba(52,20,24,.1); }
.about-profile > figure { margin: 0; }
.about-profile__facts { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin: 1.7rem 0 0; border-top: 1px solid var(--border); }
.about-profile__facts div { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--border); }
.about-profile__facts div:nth-child(odd) { border-right: 1px solid var(--border); }
.about-profile__facts div:nth-child(even) { padding-left: 1rem; }
.about-profile__facts dt { color: var(--red-800); font-size: .62rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.about-profile__facts dd { margin: .35rem 0 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; line-height: 1.2; }
.about-profile__status { margin-top: 1.4rem; padding: 1rem; background: var(--gold-100); border-left: 4px solid var(--gold-500); font-size: .78rem; }
.about-profile__status strong { color: var(--red-900); }
.about-recommendations { position: relative; overflow: hidden; background: radial-gradient(circle at 92% 8%, rgba(212,160,23,.16), transparent 22rem), linear-gradient(135deg, #29171d, var(--red-950)); }
.about-recommendations::after { content: ""; position: absolute; right: -9rem; bottom: -14rem; width: 30rem; height: 30rem; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 5rem rgba(255,255,255,.018), 0 0 0 10rem rgba(255,255,255,.012); }
.about-recommendations .section-heading,
.about-recommendation-grid,
.about-recommendation-action { position: relative; z-index: 1; }
.about-recommendations .section-heading h2 { max-width: 14ch; color: var(--white); }
.about-recommendations .section-heading > p { color: #eadcdf; }
.about-recommendation-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin-top: 2.3rem; }
.about-recommendation-grid article { display: flex; flex-direction: column; min-height: 20rem; padding: 1.4rem; background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.1); border-top: 3px solid var(--gold-300); }
.about-recommendation-grid span { color: var(--gold-300); font-size: .64rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.about-recommendation-grid h3 { margin: 3.5rem 0 .8rem; color: var(--white); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 400; line-height: 1.05; text-wrap: balance; }
.about-recommendation-grid p { margin: auto 0 0; color: #e2d5d8; font-size: .8rem; }
.about-recommendation-action { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin-top: 1.8rem; }
.about-recommendation-action > a:not(.button) { color: var(--gold-300); font-size: .82rem; font-weight: 850; }

.continuity-panel { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(3rem, 8vw, 7rem); }
.continuity-panel > div > p:not(.eyebrow) { color: var(--muted); }
.continuity-panel ol { margin: 0; padding: 0; list-style: none; counter-reset: continuity; }
.continuity-panel li { display: grid; grid-template-columns: 8rem 1fr; gap: 1.2rem; padding: 1.2rem 0; border-top: 1px solid var(--border); }
.continuity-panel li:last-child { border-bottom: 1px solid var(--border); }
.continuity-panel b { color: var(--red-900); }
.continuity-panel span { color: var(--muted); }

.status-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.status-grid article { min-height: 13rem; padding: 1.4rem; background: var(--white); border: 1px solid var(--border); border-top: 3px solid var(--gold-500); }
.status-grid span { color: var(--red-800); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.status-grid h3 { margin: 2rem 0 1.5rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 400; line-height: 1.05; }
.status-grid a { color: var(--red-800); font-size: .8rem; font-weight: 850; }

/* Homepage */
.home-hero { position: relative; overflow: hidden; padding: clamp(2.2rem, 3.5vw, 3rem) 0 0; background: linear-gradient(145deg, #fffaf0 0 64%, #eee0c7 64%); }
.home-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(23rem, .85fr); gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.home-hero h1 { max-width: 730px; margin: 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.4rem, 5.25vw, 5rem); font-weight: 400; letter-spacing: -.052em; line-height: .92; }
.home-hero h1 em { color: var(--gold-500); font-style: normal; }
.home-hero__lead { max-width: 680px; margin: 1rem 0 0; color: var(--muted); font-size: clamp(1.05rem, 1.5vw, 1.2rem); }
.home-hero .button-row { margin-top: 1.25rem; }
.home-hero__visual { position: relative; min-height: 31rem; }
.home-hero__visual img { width: 100%; height: 100%; min-height: 31rem; object-fit: cover; object-position: center; border-radius: 12rem 12rem 0 0; box-shadow: var(--shadow); }
.home-hero__caption { position: absolute; left: -2rem; bottom: 2rem; max-width: 16rem; padding: 1rem 1.15rem; color: var(--white); background: var(--red-900); border-left: 4px solid var(--gold-500); }
.home-hero__caption span { display: block; color: var(--gold-300); font-size: .62rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.home-hero__caption strong { display: block; margin-top: .3rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; font-weight: 400; line-height: 1.1; }
.home-proof { margin-top: 3.2rem; background: var(--red-950); color: var(--white); }
.home-proof__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.home-proof div { min-height: 7.5rem; padding: 1.15rem; border-right: 1px solid rgba(255,255,255,.14); }
.home-proof div:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.home-proof strong { display: block; color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.home-proof span { display: block; margin-top: .4rem; color: #d8c8cb; font-size: .72rem; }
.decision-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 7rem); }
.decision-links { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.decision-links a { min-height: 12rem; padding: 1.35rem; background: var(--white); border: 1px solid var(--border); border-top: 3px solid var(--gold-500); text-decoration: none; }
.decision-links span { color: var(--red-800); font-size: .64rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.decision-links strong { display: block; margin: 2.4rem 0 .65rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 400; line-height: 1.04; }
.decision-links p { margin: 0; color: var(--muted); font-size: .8rem; }
.learning-cycle { display: grid; grid-template-columns: repeat(5, 1fr); gap: .65rem; margin-top: 2.4rem; }
.learning-cycle article { min-height: 13rem; padding: 1.15rem; background: var(--white); border: 1px solid var(--border); }
.learning-cycle span { color: var(--gold-500); font-size: .68rem; font-weight: 900; }
.learning-cycle h3 { margin: 3rem 0 .7rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.learning-cycle p { margin: 0; color: var(--muted); font-size: .75rem; }
.pathway-feature { color: var(--white); background: var(--red-900); }
.pathway-feature__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(3rem, 5vw, 5rem); align-items: stretch; width: min(100% - 3rem, 1380px); }
.pathway-feature__grid > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.pathway-feature h2 { max-width: 10.5ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.2rem, 4.5vw, 4.6rem); font-weight: 400; letter-spacing: -.035em; line-height: .96; text-wrap: balance; }
.pathway-feature p { color: #eadbdd; }
.pathway-feature h2 + p { max-width: 39rem; margin: 1.5rem 0 0; font-size: 1rem; line-height: 1.65; }
.pathway-feature .button { margin-top: 1.5rem; }
.pathway-feature .eyebrow { color: var(--gold-300); }
.pathway-map { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pathway-map article { display: flex; flex-direction: column; min-height: 100%; padding: clamp(1.6rem, 2.2vw, 2.2rem); background: rgba(255,255,255,.08); border-top: 3px solid var(--gold-300); }
.pathway-map span { color: var(--gold-300); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.pathway-map h3 { margin: clamp(2.5rem, 5vw, 4.5rem) 0 .8rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 2.1vw, 2rem); font-weight: 400; line-height: 1.08; text-wrap: balance; }
.pathway-map p { margin: auto 0 0; font-size: .82rem; }
.resource-band { background: #fffdf8; }
.resource-band__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(3rem, 5vw, 5rem); align-items: stretch; width: min(100% - 3rem, 1380px); }
.resource-band__grid > div:first-child { display: flex; flex-direction: column; align-items: flex-start; }
.resource-band h2 { max-width: 11ch; margin: 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.1rem, 4.5vw, 4.5rem); font-weight: 400; letter-spacing: -.035em; line-height: .96; overflow-wrap: normal; text-wrap: balance; }
.resource-band__grid > div:first-child > p { max-width: 39rem; margin: 1.5rem 0 0; font-size: 1rem; line-height: 1.65; }
.resource-band .button { margin-top: 1.5rem; }
.resource-card { display: flex; flex-direction: column; justify-content: center; min-height: 100%; padding: clamp(2rem, 4vw, 3.5rem); color: var(--white); background: #252122; border-left: 5px solid var(--gold-500); border-radius: var(--radius); }
.resource-card strong { display: block; color: var(--gold-300); font-family: Georgia, "Times New Roman", serif; font-size: 2.4rem; font-weight: 400; line-height: 1.15; text-wrap: balance; }
.resource-card p { color: #d7cdcf; }

/* Page content refinements */
.page-hero { padding: clamp(3.8rem, 7vw, 6.4rem) 0; }
.page-hero h1 { font-size: clamp(3rem, 5.8vw, 5.6rem); }
.page-hero--dark { background: linear-gradient(135deg, var(--red-950), #711528); }
.intro-statement__grid { grid-template-columns: .3fr 1.05fr .8fr; }
.statement-card { min-height: 20rem; }
.statement-card h2 { margin-top: 2.8rem; }
.quote-band { padding: 4rem 0; }
.principle-grid article, .process-grid article, .support-grid article { box-shadow: none; border: 1px solid var(--border); border-top: 3px solid var(--gold-500); }
.process-grid { grid-template-columns: repeat(5, 1fr); }
.process-grid h3 { margin-top: 2rem; }
.image-split { box-shadow: 0 18px 55px rgba(52,20,24,.1); }

/* Programme comparison and detail */
.programme-directory { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.programme-list b { text-align: right; }
.programme-list b small { display: block; margin-top: .25rem; color: var(--red-800); font-size: .66rem; font-weight: 800; }
.programme-family-note { display: grid; grid-template-columns: 12rem minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; margin-top: 1.5rem; padding: 1.2rem 1.35rem; background: var(--white); border-left: 4px solid var(--gold-500); }
.programme-family-note strong { color: var(--red-900); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.programme-family-note p { margin: 0; color: var(--muted); font-size: .82rem; }
.programme-family-note a { white-space: nowrap; }
.programme-tile { min-height: 24rem; box-shadow: none; }
.programme-tile h2 { margin-top: 2rem; font-size: clamp(1.9rem, 2.6vw, 2.7rem); }
.programme-tile dl { padding-top: 1.3rem; }
.programme-tile dl div { grid-template-columns: 7rem 1fr; }
.programme-hero { padding: clamp(3.7rem, 7vw, 6.5rem) 0; background: linear-gradient(135deg, var(--red-950), #76172a); }
.programme-hero--stem-academy { background: linear-gradient(135deg, #173a36, #285c4d 68%, #8b711b); }
.programme-hero--english-skills { background: linear-gradient(135deg, #4a0d1a, #7c1730 70%, #9c6f17); }
.programme-hero--reading-spelling { background: linear-gradient(135deg, #24372d, #3e6853 68%, #876d19); }
.programme-hero--math-league { background: linear-gradient(135deg, #1f3240, #315e78 68%, #6b5126); }
.programme-hero--holiday-stem-camps { background: linear-gradient(135deg, #4c2118, #8a3a22 68%, #a67d1c); }
.programme-hero--public-competitions { background: linear-gradient(135deg, #3a1520, #6b1425 68%, #9a2638); }
.programme-hero--ai-for-teachers { background: linear-gradient(135deg, #1d2026, #3c3348 68%, #725a27); }
.programme-hero h1 { font-size: clamp(3.1rem, 5.8vw, 5.6rem); }
.programme-facts { box-shadow: 0 18px 45px rgba(28,6,12,.17); }
.programme-facts > strong { font-size: 1.9rem; }
.programme-fit { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.programme-fit article { padding: 1.4rem; border: 1px solid var(--border); background: var(--white); }
.programme-fit article:last-child { background: var(--cream); }
.programme-fit h3 { margin: 0 0 .8rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.6rem; font-weight: 400; }
.programme-fit p { color: var(--muted); }
.session-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; margin-top: 2rem; }
.session-flow article { padding: 1.1rem; background: rgba(255,255,255,.7); border-top: 3px solid var(--gold-500); }
.session-flow span { color: var(--red-800); font-size: .65rem; font-weight: 900; }
.session-flow h3 { margin: 1.6rem 0 .5rem; color: var(--red-950); font-size: 1rem; }
.session-flow p { margin: 0; color: var(--muted); font-size: .75rem; }

/* Angkor Innovators: a distinct STEM campaign inside the SGIS system */
.stem-hero,
.stem-lab,
.stem-evidence,
.stem-cta {
    --stem-navy: #03122f;
    --stem-navy-soft: #09265a;
    --stem-blue: #006cae;
    --stem-cyan: #30d8cf;
    --stem-gold: #f4b91f;
    --stem-ice: #dffaff;
}
.stem-hero { position: relative; overflow: hidden; padding: clamp(3.4rem, 6.5vw, 6.4rem) 0 5rem; color: var(--white); background: var(--stem-navy); }
.stem-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 79% 34%, rgba(8,127,209,.3), transparent 27rem), radial-gradient(circle at 7% 0, rgba(48,216,207,.1), transparent 24rem); }
.stem-hero::after { content: ""; position: absolute; width: 13rem; height: 9rem; right: 2.5vw; bottom: 1rem; opacity: .3; background-image: radial-gradient(circle, var(--stem-cyan) 1.2px, transparent 1.4px); background-size: 12px 12px; mask-image: linear-gradient(135deg, transparent, #000); }
.stem-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(25rem, .98fr); gap: clamp(3rem, 7vw, 6rem); align-items: center; }
.stem-hero__copy { min-width: 0; }
.stem-hero .breadcrumbs { margin-bottom: clamp(2.2rem, 4vw, 3.7rem); color: #9eb7d9; }
.stem-hero .breadcrumbs a { color: inherit; }
.stem-kicker { display: inline-block; margin: 0 0 1rem; padding: .42rem 1.9rem .42rem .75rem; color: #08132b; background: var(--stem-gold); clip-path: polygon(0 0, 100% 0, 94% 100%, 0 100%); font-size: .68rem; font-weight: 950; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.stem-hero h1 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3.75rem, 7vw, 6.8rem); font-weight: 950; letter-spacing: -.07em; line-height: .78; text-transform: uppercase; }
.stem-hero h1 span,
.stem-hero h1 strong { display: block; }
.stem-hero h1 span { color: #fffdf6; }
.stem-hero h1 strong { color: var(--stem-cyan); font-weight: inherit; text-shadow: 0 0 34px rgba(48,216,207,.12); }
.stem-strapline { width: fit-content; margin: 1.55rem 0 .9rem; padding-bottom: .55rem; color: var(--stem-gold); border-bottom: 2px solid var(--stem-gold); font-size: clamp(1.05rem, 2vw, 1.42rem); font-weight: 950; letter-spacing: .045em; text-transform: uppercase; }
.stem-hero__lead { max-width: 42rem; margin: 0; color: #d9e7f7; font-size: clamp(.98rem, 1.45vw, 1.12rem); line-height: 1.65; }
.stem-disciplines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; max-width: 42rem; margin: 1.8rem 0; padding: 0; list-style: none; }
.stem-disciplines li { display: grid; grid-template-columns: 2.4rem 1fr; column-gap: .7rem; align-items: center; min-height: 4.5rem; padding: .7rem; background: rgba(255,255,255,.045); border: 1px solid rgba(81,199,233,.22); border-radius: .7rem; }
.stem-disciplines li > span { grid-row: 1 / span 2; display: grid; width: 2.25rem; aspect-ratio: 1; place-content: center; color: var(--stem-cyan); background: rgba(48,216,207,.08); border: 1px solid currentColor; border-radius: .65rem; font-size: .58rem; font-weight: 900; }
.stem-disciplines strong { align-self: end; color: var(--white); font-size: .76rem; line-height: 1.1; }
.stem-disciplines small { align-self: start; color: #9eb7d9; font-size: .61rem; line-height: 1.25; }
.stem-button { min-height: 3.25rem; color: #07142d; background: var(--stem-gold); border-color: var(--stem-gold); box-shadow: 0 12px 30px rgba(244,185,31,.16); }
.stem-button:hover { color: #07142d; background: #ffd257; border-color: #ffd257; }
.stem-photo { position: relative; margin: 0; }
.stem-photo::before { content: ""; position: absolute; z-index: -1; inset: -1rem -1rem 1.15rem 1.1rem; border: 2px solid var(--stem-blue); border-radius: 14rem 14rem 1rem 1rem; }
.stem-photo img { width: 100%; min-height: 29rem; aspect-ratio: .92 / 1; object-fit: cover; object-position: 52% center; border: 1px solid rgba(255,255,255,.16); border-radius: 14rem 14rem 1rem 1rem; }
.stem-photo figcaption { position: absolute; right: -.5rem; bottom: 1.1rem; max-width: 17rem; padding: .75rem 1rem; color: var(--white); background: rgba(3,18,47,.92); border-left: 3px solid var(--stem-gold); font-size: .72rem; font-weight: 800; box-shadow: 0 16px 34px rgba(0,0,0,.25); }
.stem-photo figcaption span { display: block; margin-bottom: .15rem; color: var(--stem-cyan); font-size: .56rem; letter-spacing: .13em; text-transform: uppercase; }
.stem-preview { position: relative; width: calc(100% - 3rem); margin: -2.5rem auto 0; padding: 1.15rem 1.25rem; color: #0c1b38; background: #fffdf6; border-top: 4px solid var(--stem-gold); border-radius: .85rem; box-shadow: 0 22px 50px rgba(0,0,0,.28); }
.stem-preview__status { display: flex; gap: .5rem; align-items: center; color: #32405a; font-size: .58rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.stem-preview__status i { width: .55rem; aspect-ratio: 1; background: var(--stem-cyan); border-radius: 50%; box-shadow: 0 0 0 4px rgba(48,216,207,.18); }
.stem-preview > strong { display: block; margin: .5rem 0 .2rem; color: #07142d; font-size: 1.05rem; }
.stem-preview > p { margin: 0; color: #586176; font-size: .72rem; line-height: 1.45; }
.stem-preview dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0 0; padding-top: .85rem; border-top: 1px solid #dce1ea; }
.stem-preview dl div { min-width: 0; }
.stem-preview dt { color: #6c7485; font-size: .56rem; letter-spacing: .07em; text-transform: uppercase; }
.stem-preview dd { margin: .2rem 0 0; color: #0c1b38; font-size: .72rem; font-weight: 900; line-height: 1.3; }

.stem-pulse { color: var(--white); background: #071a3d; border-top: 1px solid rgba(48,216,207,.18); }
.stem-pulse .wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.stem-pulse article { display: flex; gap: .8rem; align-items: center; min-height: 5.4rem; padding: 1rem; border-left: 1px solid rgba(255,255,255,.1); }
.stem-pulse article:last-child { border-right: 1px solid rgba(255,255,255,.1); }
.stem-pulse span { color: var(--stem-cyan); font-size: .57rem; font-weight: 950; }
.stem-pulse strong { font-size: .74rem; letter-spacing: .055em; text-transform: uppercase; }

.stem-section-label { margin: 0 0 .8rem; color: var(--stem-blue, #006cae); font-size: .66rem; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
.stem-overview { background: #f8f6ef; }
.stem-overview__intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.stem-overview h2,
.stem-safety h2 { margin: 0; max-width: 38rem; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.8rem, 5.5vw, 5.2rem); font-weight: 950; letter-spacing: -.06em; line-height: .91; }
.stem-overview__intro > div:last-child > p:last-child { color: var(--muted); }
.stem-fit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.stem-fit-grid article { min-height: 15rem; padding: clamp(1.4rem, 3vw, 2.2rem); background: var(--white); border-top: 4px solid var(--stem-cyan, #30d8cf); box-shadow: 0 18px 45px rgba(3,18,47,.07); }
.stem-fit-grid article:last-child { color: var(--white); background: #071a3d; border-color: var(--stem-gold, #f4b91f); }
.stem-fit-grid span { color: var(--stem-blue); font-size: .6rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.stem-fit-grid article:last-child span { color: #f4b91f; }
.stem-fit-grid h3 { max-width: 31rem; margin: 2.2rem 0 .75rem; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(1.55rem, 3vw, 2.3rem); font-weight: 900; letter-spacing: -.045em; line-height: 1; }
.stem-fit-grid article:last-child h3 { color: var(--white); }
.stem-fit-grid p { margin: 0; color: var(--muted); }
.stem-fit-grid article:last-child p { color: #c8d6e8; }

.stem-lab { position: relative; overflow: hidden; color: var(--white); background: var(--stem-navy); }
.stem-lab::before { content: ""; position: absolute; width: 25rem; aspect-ratio: 1; right: -12rem; top: -11rem; border: 1px solid rgba(48,216,207,.18); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(8,127,209,.045), 0 0 0 8rem rgba(8,127,209,.025); }
.stem-lab__heading { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(18rem, .55fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.stem-lab .stem-section-label { color: var(--stem-gold); }
.stem-lab h2 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 950; letter-spacing: -.065em; line-height: .88; text-transform: uppercase; }
.stem-lab__heading > p { margin: 0; color: #b9cbe2; }
.stem-lab__steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: 3rem; }
.stem-lab__steps article { display: flex; min-height: 15rem; flex-direction: column; justify-content: space-between; padding: 1.25rem; background: rgba(255,255,255,.05); border: 1px solid rgba(87,190,230,.18); border-top: 3px solid var(--stem-cyan); }
.stem-lab__steps article:nth-child(even) { border-top-color: var(--stem-gold); }
.stem-lab__steps article > span { color: var(--stem-cyan); font-size: .62rem; font-weight: 950; }
.stem-lab__steps article:nth-child(even) > span { color: var(--stem-gold); }
.stem-lab__steps h3 { margin: 0 0 .65rem; color: var(--white); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 1.15rem; }
.stem-lab__steps p { margin: 0; color: #aebfd4; font-size: .75rem; }

.stem-evidence { background: #eef9fa; }
.stem-evidence__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 8vw, 7rem); align-items: start; }
.stem-evidence__statement { position: sticky; top: 11rem; }
.stem-evidence h2 { margin: 0; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3rem, 5.8vw, 5.4rem); font-weight: 950; letter-spacing: -.07em; line-height: .85; text-transform: uppercase; }
.stem-evidence h2 em { color: var(--stem-blue); font-style: normal; }
.stem-evidence__statement > p:last-child { max-width: 33rem; margin-top: 1.7rem; color: #536173; }
.stem-evidence__list { display: grid; gap: .7rem; }
.stem-evidence__list article { display: grid; grid-template-columns: 3.2rem 1fr; gap: 1rem; align-items: center; min-height: 7.5rem; padding: 1.1rem 1.3rem; background: var(--white); border-left: 4px solid #30d8cf; box-shadow: 0 12px 30px rgba(3,18,47,.06); }
.stem-evidence__list article:nth-child(even) { border-color: #f4b91f; }
.stem-evidence__list span { color: var(--stem-blue); font-size: .64rem; font-weight: 950; }
.stem-evidence__list h3 { margin: 0; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.08; }

.stem-safety { background: #fffdf6; }
.stem-safety__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 7rem); align-items: center; }
.stem-safety__copy > p { margin: 0; padding: 1.5rem; color: #dce8f6; background: #071a3d; border-left: 4px solid #30d8cf; }
.stem-safety__copy > div { display: grid; gap: .35rem; margin-top: .8rem; padding: 1.25rem 1.5rem; color: #071a3d; background: #f4b91f; }
.stem-safety__copy strong { font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; }
.stem-safety__copy span { font-size: .88rem; font-weight: 750; }

.stem-cta { padding: clamp(4rem, 7vw, 6.5rem) 0; color: #07142d; background: var(--stem-gold); }
.stem-cta__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(17rem, .5fr); gap: clamp(2rem, 8vw, 7rem); align-items: center; }
.stem-cta .stem-section-label { color: #07142d; }
.stem-cta h2 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.8rem, 5.7vw, 5.2rem); font-weight: 950; letter-spacing: -.065em; line-height: .9; }
.stem-cta p:not(.stem-section-label) { max-width: 45rem; }
.stem-cta__grid > div:last-child { display: grid; gap: 1rem; justify-items: start; }
.stem-button--dark { color: var(--white); background: #07142d; border-color: #07142d; box-shadow: 0 12px 28px rgba(7,20,45,.2); }
.stem-button--dark:hover { color: var(--white); background: #123262; border-color: #123262; }
.stem-cta__grid > div:last-child > a:not(.button) { color: #07142d; font-weight: 900; }

/* Angkor Innovators — full programme decision page */
.stem-page {
    --stem-navy: #03122f;
    --stem-navy-soft: #09265a;
    --stem-blue: #006cae;
    --stem-cyan: #30d8cf;
    --stem-gold: #f4b91f;
    --stem-ice: #dffaff;
    overflow: clip;
    background: #f8f6ef;
}
.stem-page section[id] { scroll-margin-top: 8rem; }
.stem-page a:focus-visible { outline: 3px solid var(--stem-gold); outline-offset: 4px; }
.stem-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem 1.35rem; align-items: center; }
.stem-hero__actions > a:not(.button) { color: #d9e7f7; font-weight: 850; text-underline-offset: .3em; }
.stem-hero__actions > a:not(.button):hover { color: var(--stem-cyan); }

.stem-wayfinder { color: #071a3d; background: #fffdf6; border-bottom: 1px solid rgba(3,18,47,.13); }
.stem-wayfinder .wrap { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; min-height: 5rem; padding-block: .7rem; }
.stem-wayfinder strong { margin-right: auto; color: #071a3d; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; }
.stem-wayfinder a { display: inline-flex; min-height: 2.75rem; align-items: center; padding: .5rem .85rem; color: #173357; background: #f3efe3; border: 1px solid transparent; border-radius: 99px; font-size: .78rem; font-weight: 850; text-decoration: none; }
.stem-wayfinder a:hover { color: #071a3d; background: var(--white); border-color: rgba(8,127,209,.35); }

.stem-origin-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(2.7rem, 5vw, 4.5rem); color: #071a3d; background: #f1e8d5; border: 1px solid rgba(74,13,26,.14); border-top: 4px solid #811529; }
.stem-origin-strip article { min-width: 0; padding: clamp(1.4rem, 3vw, 2.2rem); }
.stem-origin-strip article + article { border-left: 1px solid rgba(74,13,26,.16); }
.stem-origin-strip span { display: block; margin-bottom: 1.65rem; color: #811529; font-size: .67rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.stem-origin-strip strong { display: block; color: #4a0d1a; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.45rem, 2.25vw, 2rem); font-weight: 400; line-height: 1.08; }
.stem-origin-strip p { margin: .8rem 0 0; color: #5b5052; }

.stem-cycle-principles { position: relative; margin-top: clamp(2.5rem, 5vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid rgba(48,216,207,.25); }
.stem-cycle-principles > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 1rem; background: rgba(48,216,207,.18); }
.stem-cycle-principles article { display: grid; gap: .55rem; min-width: 0; padding: 1.4rem; background: #071a3d; }
.stem-cycle-principles strong { color: var(--white); }
.stem-cycle-principles span { color: #afc2d9; }

.stem-projects { color: #071a3d; background: #fffdf6; }
.stem-projects__heading { display: grid; grid-template-columns: minmax(0, .95fr) minmax(20rem, .75fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.stem-projects h2 { margin: 0; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3rem, 5.8vw, 5.4rem); font-weight: 950; letter-spacing: -.065em; line-height: .88; text-transform: uppercase; }
.stem-projects__heading > div:last-child > p { margin-block: 0 1rem; }
.stem-projects__heading > div:last-child > p:last-child { margin-bottom: 0; color: #62595b; }
.stem-project-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-top: clamp(2.7rem, 5vw, 4.5rem); }
.stem-project-grid article { display: flex; min-width: 0; min-height: 24rem; flex-direction: column; padding: 1.35rem; background: #f0f8f7; border: 1px solid rgba(3,18,47,.11); border-top: 4px solid var(--stem-cyan); box-shadow: 0 16px 38px rgba(3,18,47,.06); }
.stem-project-grid article:nth-child(even) { background: #f8f1db; border-top-color: var(--stem-gold); }
.stem-project-grid article > span { color: var(--stem-blue); font-size: .68rem; font-weight: 950; letter-spacing: .1em; }
.stem-project-grid article:nth-child(even) > span { color: #8b6410; }
.stem-project-grid__mark { position: relative; display: flex; gap: .55rem; align-items: center; height: 4rem; margin: 2rem 0 1.4rem; }
.stem-project-grid__mark::before { content: ""; position: absolute; left: .45rem; right: .45rem; top: 50%; height: 1px; background: rgba(8,127,209,.32); }
.stem-project-grid__mark i { position: relative; z-index: 1; display: block; width: 1rem; aspect-ratio: 1; background: #fffdf6; border: 3px solid var(--stem-blue); border-radius: 50%; }
.stem-project-grid__mark i:nth-child(2) { width: 1.55rem; border-color: var(--stem-cyan); }
.stem-project-grid__mark i:nth-child(3) { width: 2rem; margin-left: auto; border-color: var(--stem-gold); border-radius: .35rem; }
.stem-project-grid h3 { margin: 0 0 .9rem; color: #071a3d; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 1.5rem; font-weight: 900; line-height: 1.05; }
.stem-project-grid p { margin: auto 0 0; color: #526071; }
.stem-projects__note { display: grid; grid-template-columns: minmax(10rem, .32fr) minmax(0, 1fr); gap: 1rem 2rem; align-items: center; margin-top: 1rem; padding: 1.2rem 1.35rem; color: #dbe7f4; background: #071a3d; border-left: 4px solid var(--stem-gold); }
.stem-projects__note strong { color: var(--stem-gold); font-size: .72rem; letter-spacing: .11em; text-transform: uppercase; }
.stem-projects__note p { margin: 0; }

.stem-evidence__statement blockquote { margin: 2rem 0 0; padding: 1.15rem 1.25rem; color: #071a3d; background: rgba(255,255,255,.72); border-left: 4px solid var(--stem-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; line-height: 1.45; }
.stem-evidence__list article > div { min-width: 0; }
.stem-evidence__list small { display: block; margin-bottom: .45rem; color: var(--stem-blue); font-size: .63rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }

.stem-safety__grid > div:first-child > p:last-child { max-width: 37rem; margin: 1.5rem 0 0; color: #62595b; }
.stem-safety__checks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin-top: clamp(2rem, 4vw, 3.5rem); }
.stem-safety__checks article { display: grid; gap: 1rem; min-width: 0; padding: 1.2rem; background: #f3eee2; border-top: 3px solid #811529; }
.stem-safety__checks article:nth-child(even) { border-top-color: var(--stem-gold); }
.stem-safety__checks span { color: #811529; font-size: .65rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.stem-safety__checks strong { color: #071a3d; line-height: 1.35; }

.stem-brief { color: var(--white); background: #071a3d; }
.stem-brief .stem-section-label { color: var(--stem-gold); }
.stem-brief__heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(19rem, .55fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.stem-brief h2 { margin: 0; color: var(--white); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.8rem, 5.4vw, 5rem); font-weight: 950; letter-spacing: -.06em; line-height: .92; }
.stem-brief__heading > p { margin: 0; color: #b7c9de; }
.stem-brief__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: .8rem; margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.stem-brief__facts,
.stem-brief__questions { min-width: 0; padding: clamp(1.35rem, 3vw, 2rem); background: #fffdf6; }
.stem-brief__facts .stem-section-label,
.stem-brief__questions .stem-section-label { color: var(--stem-blue); }
.stem-brief__facts dl { margin: 1.3rem 0 0; }
.stem-brief__facts dl > div { display: grid; grid-template-columns: minmax(8.5rem, .38fr) minmax(0, 1fr); gap: 1rem; padding: 1rem 0; border-top: 1px solid rgba(3,18,47,.13); }
.stem-brief__facts dt { color: #647083; text-transform: uppercase; }
.stem-brief__facts dd { margin: 0; color: #071a3d; font-weight: 850; }
.stem-brief__questions ol { display: grid; gap: .7rem; margin: 1.3rem 0 0; padding: 0; list-style: none; counter-reset: none; }
.stem-brief__questions li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: .85rem; align-items: center; min-width: 0; padding: .85rem; color: #071a3d; background: #edf8f8; }
.stem-brief__questions li > span { display: grid; width: 2.3rem; aspect-ratio: 1; place-content: center; color: #071a3d; background: var(--stem-cyan); border-radius: .45rem; font-weight: 950; }

.stem-cta ul { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.stem-cta li { padding: .48rem .72rem; color: #07142d; background: rgba(255,255,255,.42); border: 1px solid rgba(7,20,45,.16); border-radius: 99px; font-weight: 800; }

/* Distinct, plain-language campaign pages for the remaining programmes */
.programme-campaign {
    --pc-bg: #3c0d2c;
    --pc-bg-soft: #7f1542;
    --pc-accent: #ffc23e;
    --pc-highlight: #ff79ad;
    --pc-pale: #fff0f5;
    --pc-ink: #251126;
    --pc-white: #fffaf7;
}
.programme-campaign--reading-spelling { --pc-bg: #10362f; --pc-bg-soft: #1d6553; --pc-accent: #f0ba3b; --pc-highlight: #69dfbd; --pc-pale: #edf8f3; --pc-ink: #102f2a; }
.programme-campaign--math-league { --pc-bg: #141a3c; --pc-bg-soft: #343181; --pc-accent: #f4c438; --pc-highlight: #91abff; --pc-pale: #eff2ff; --pc-ink: #151b3e; }
.programme-campaign--holiday-stem-camps { --pc-bg: #31151d; --pc-bg-soft: #8a351e; --pc-accent: #ffbe25; --pc-highlight: #37d8d2; --pc-pale: #fff2e6; --pc-ink: #321922; }
.programme-campaign--public-competitions { --pc-bg: #4a0d1a; --pc-bg-soft: #8c1b2e; --pc-accent: #f4c23d; --pc-highlight: #f5e7b4; --pc-pale: #fff5dc; --pc-ink: #48101d; }
.programme-campaign--ai-for-teachers { --pc-bg: #15182a; --pc-bg-soft: #3b345f; --pc-accent: #7ee2da; --pc-highlight: #bda4ff; --pc-pale: #f2efff; --pc-ink: #1b1c36; }

.programme-campaign__hero { position: relative; overflow: hidden; padding: clamp(3.4rem, 6.5vw, 6.5rem) 0 5rem; color: var(--pc-white); background: linear-gradient(135deg, var(--pc-bg), var(--pc-bg-soft)); }
.programme-campaign__hero::before { content: ""; position: absolute; width: 34rem; aspect-ratio: 1; right: -13rem; top: -17rem; border: 1px solid color-mix(in srgb, var(--pc-highlight) 32%, transparent); border-radius: 50%; box-shadow: 0 0 0 5rem color-mix(in srgb, var(--pc-highlight) 6%, transparent), 0 0 0 10rem color-mix(in srgb, var(--pc-highlight) 3%, transparent); }
.programme-campaign__hero::after { content: ""; position: absolute; width: 12rem; height: 8rem; left: 2vw; bottom: 1rem; opacity: .28; background-image: radial-gradient(circle, var(--pc-highlight) 1.2px, transparent 1.4px); background-size: 12px 12px; mask-image: linear-gradient(315deg, transparent, #000); }
.programme-campaign__hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(24rem, .97fr); gap: clamp(3rem, 8vw, 7rem); align-items: center; }
.programme-campaign__hero-copy { min-width: 0; }
.programme-campaign__hero .breadcrumbs { margin-bottom: clamp(2.2rem, 4vw, 3.6rem); color: color-mix(in srgb, var(--pc-white) 68%, transparent); }
.programme-campaign__hero .breadcrumbs a { color: inherit; }
.programme-campaign__kicker { display: inline-block; margin: 0 0 1rem; padding: .42rem 1.8rem .42rem .75rem; color: var(--pc-ink); background: var(--pc-accent); clip-path: polygon(0 0, 100% 0, 94% 100%, 0 100%); font-size: .65rem; font-weight: 950; letter-spacing: .13em; line-height: 1.2; text-transform: uppercase; }
.programme-campaign__hero h1 { margin: 0; max-width: 46rem; color: var(--pc-white); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3.6rem, 6.7vw, 6.6rem); font-weight: 950; letter-spacing: -.07em; line-height: .82; text-transform: uppercase; }
.programme-campaign__tagline { width: fit-content; margin: 1.5rem 0 .9rem; padding-bottom: .5rem; color: var(--pc-accent); border-bottom: 2px solid currentColor; font-size: clamp(1.05rem, 2vw, 1.35rem); font-weight: 950; letter-spacing: .045em; text-transform: uppercase; }
.programme-campaign__lead { max-width: 43rem; margin: 0; color: color-mix(in srgb, var(--pc-white) 82%, transparent); font-size: clamp(.98rem, 1.45vw, 1.12rem); line-height: 1.65; }
.programme-campaign__focus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; max-width: 43rem; margin: 1.8rem 0; padding: 0; list-style: none; }
.programme-campaign__focus li { min-height: 4rem; padding: .75rem; background: rgba(255,255,255,.055); border: 1px solid color-mix(in srgb, var(--pc-highlight) 28%, transparent); border-radius: .7rem; }
.programme-campaign__focus span { display: block; margin-bottom: .65rem; color: var(--pc-highlight); font-size: .56rem; font-weight: 950; }
.programme-campaign__focus strong { display: block; color: var(--pc-white); font-size: .68rem; line-height: 1.2; }
.programme-campaign__button { color: var(--pc-ink); background: var(--pc-accent); border-color: var(--pc-accent); box-shadow: 0 12px 28px color-mix(in srgb, var(--pc-bg) 40%, transparent); }
.programme-campaign__button:hover { color: var(--pc-ink); background: color-mix(in srgb, var(--pc-accent) 82%, white); border-color: color-mix(in srgb, var(--pc-accent) 82%, white); }

.programme-campaign__visual-column { width: min(100%, 35rem); margin-inline: auto; }
.programme-campaign__signal { position: relative; display: grid; min-height: 31rem; place-content: center; overflow: hidden; color: var(--pc-white); background: rgba(9,9,24,.26); border: 1px solid color-mix(in srgb, var(--pc-highlight) 36%, transparent); border-radius: 50% 50% 1rem 1rem; box-shadow: 0 28px 65px rgba(0,0,0,.2); text-align: center; }
.programme-campaign__signal::before { content: ""; position: absolute; inset: 1rem; border: 1px solid color-mix(in srgb, var(--pc-accent) 46%, transparent); border-radius: inherit; }
.programme-campaign__signal > i { position: absolute; width: 3.5rem; aspect-ratio: 1; border: 1px solid color-mix(in srgb, var(--pc-highlight) 48%, transparent); transform: rotate(45deg); }
.programme-campaign__signal > i:nth-child(1) { left: 12%; top: 18%; }
.programme-campaign__signal > i:nth-child(2) { right: 13%; top: 35%; width: 2.2rem; }
.programme-campaign__signal > i:nth-child(3) { left: 20%; bottom: 15%; width: 1.5rem; }
.programme-campaign__signal strong { position: relative; display: block; color: var(--pc-highlight); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(5.5rem, 10vw, 8rem); font-weight: 950; letter-spacing: -.09em; line-height: .8; }
.programme-campaign__signal span { position: relative; display: block; max-width: 19rem; margin: 1.4rem auto 0; padding-inline: 1rem; color: var(--pc-white); font-size: clamp(1rem, 2vw, 1.35rem); font-weight: 900; line-height: 1.1; }
.programme-campaign--reading-spelling .programme-campaign__signal { border-radius: 14rem 14rem 2rem 2rem; }
.programme-campaign--math-league .programme-campaign__signal { border-radius: 1rem; background-image: linear-gradient(color-mix(in srgb, var(--pc-highlight) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--pc-highlight) 7%, transparent) 1px, transparent 1px); background-size: 2.4rem 2.4rem; }
.programme-campaign--public-competitions .programme-campaign__signal { border-radius: 50%; }
.programme-campaign--ai-for-teachers .programme-campaign__signal { border-radius: 1rem; clip-path: polygon(8% 0, 92% 0, 100% 8%, 100% 92%, 92% 100%, 8% 100%, 0 92%, 0 8%); }
.programme-campaign__image { position: relative; margin: 0; }
.programme-campaign__image::before { content: ""; position: absolute; z-index: -1; inset: -1rem -1rem 1rem 1rem; border: 2px solid var(--pc-highlight); border-radius: 14rem 14rem 1rem 1rem; }
.programme-campaign__image img { width: 100%; min-height: 31rem; aspect-ratio: .95 / 1; object-fit: cover; border-radius: 14rem 14rem 1rem 1rem; }
.programme-campaign__image figcaption { position: absolute; right: -.4rem; bottom: 1rem; max-width: 17rem; padding: .85rem 1rem; color: var(--pc-ink); background: var(--pc-accent); border-left: 3px solid var(--pc-highlight); font-size: .75rem; font-weight: 950; box-shadow: 0 14px 32px rgba(0,0,0,.2); }
.programme-campaign__preview { position: relative; z-index: 2; width: calc(100% - 3rem); margin: -2.5rem auto 0; padding: 1.15rem 1.25rem; color: var(--pc-ink); background: #fffdf8; border-top: 4px solid var(--pc-accent); border-radius: .85rem; box-shadow: 0 22px 50px rgba(0,0,0,.25); }
.programme-campaign__preview > div:first-child { display: flex; gap: .5rem; align-items: center; color: #606475; font-size: .58rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.programme-campaign__preview > div:first-child i { width: .52rem; aspect-ratio: 1; background: var(--pc-highlight); border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in srgb, var(--pc-highlight) 20%, transparent); }
.programme-campaign__preview > strong { display: block; margin: .5rem 0 .2rem; font-size: 1.02rem; }
.programme-campaign__preview > p { margin: 0; color: #646575; font-size: .71rem; line-height: 1.45; }
.programme-campaign__preview dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0 0; padding-top: .85rem; border-top: 1px solid #dedfe6; }
.programme-campaign__preview dt { color: #747686; font-size: .55rem; letter-spacing: .07em; text-transform: uppercase; }
.programme-campaign__preview dd { margin: .2rem 0 0; font-size: .7rem; font-weight: 900; line-height: 1.3; }

.programme-campaign__pulse { color: var(--pc-white); background: var(--pc-bg); border-top: 1px solid color-mix(in srgb, var(--pc-highlight) 20%, transparent); }
.programme-campaign__pulse .wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.programme-campaign__pulse article { display: flex; gap: .75rem; align-items: center; min-height: 5.4rem; padding: 1rem; border-left: 1px solid rgba(255,255,255,.1); }
.programme-campaign__pulse article:last-child { border-right: 1px solid rgba(255,255,255,.1); }
.programme-campaign__pulse span { color: var(--pc-highlight); font-size: .56rem; font-weight: 950; }
.programme-campaign__pulse strong { font-size: .7rem; letter-spacing: .045em; text-transform: uppercase; }

.programme-campaign__section-label { margin: 0 0 .8rem; color: var(--pc-bg-soft); font-size: .65rem; font-weight: 950; letter-spacing: .16em; text-transform: uppercase; }
.programme-campaign__clarity { background: #fbf9f4; }
.programme-campaign__intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.programme-campaign__intro h2,
.programme-campaign__safety h2 { margin: 0; color: var(--pc-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.8rem, 5.3vw, 5rem); font-weight: 950; letter-spacing: -.06em; line-height: .91; }
.programme-campaign__intro > div:last-child > p:last-child { color: var(--muted); }
.programme-campaign__fit { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4.5rem); }
.programme-campaign__fit article { min-height: 14rem; padding: clamp(1.4rem, 3vw, 2.1rem); background: var(--white); border-top: 4px solid var(--pc-highlight); box-shadow: 0 18px 45px rgba(27,19,25,.07); }
.programme-campaign__fit article:last-child { color: var(--pc-white); background: var(--pc-bg); border-color: var(--pc-accent); }
.programme-campaign__fit span { color: var(--pc-bg-soft); font-size: .59rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.programme-campaign__fit article:last-child span { color: var(--pc-accent); }
.programme-campaign__fit h3 { margin: 2rem 0 .65rem; color: var(--pc-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(1.55rem, 3vw, 2.25rem); font-weight: 900; letter-spacing: -.045em; line-height: 1; }
.programme-campaign__fit article:last-child h3 { color: var(--pc-white); }
.programme-campaign__fit p { margin: 0; color: var(--muted); }
.programme-campaign__fit article:last-child p { color: color-mix(in srgb, var(--pc-white) 75%, transparent); }

.programme-campaign__session { position: relative; overflow: hidden; color: var(--pc-white); background: var(--pc-bg); }
.programme-campaign__session::before { content: ""; position: absolute; width: 27rem; aspect-ratio: 1; right: -13rem; top: -12rem; border: 1px solid color-mix(in srgb, var(--pc-highlight) 20%, transparent); border-radius: 50%; box-shadow: 0 0 0 4rem color-mix(in srgb, var(--pc-highlight) 4%, transparent); }
.programme-campaign__session-heading { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .58fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.programme-campaign__session .programme-campaign__section-label { color: var(--pc-accent); }
.programme-campaign__session h2 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(3rem, 5.8vw, 5.3rem); font-weight: 950; letter-spacing: -.065em; line-height: .88; text-transform: uppercase; }
.programme-campaign__session-heading > p { margin: 0; color: color-mix(in srgb, var(--pc-white) 72%, transparent); }
.programme-campaign__steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-top: 3rem; }
.programme-campaign__steps article { display: flex; min-height: 14rem; flex-direction: column; justify-content: space-between; padding: 1.2rem; background: rgba(255,255,255,.05); border: 1px solid color-mix(in srgb, var(--pc-highlight) 18%, transparent); border-top: 3px solid var(--pc-highlight); }
.programme-campaign__steps article:nth-child(even) { border-top-color: var(--pc-accent); }
.programme-campaign__steps article > span { color: var(--pc-highlight); font-size: .6rem; font-weight: 950; }
.programme-campaign__steps article:nth-child(even) > span { color: var(--pc-accent); }
.programme-campaign__steps h3 { margin: 0 0 .6rem; color: var(--pc-white); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 1.1rem; line-height: 1.1; }
.programme-campaign__steps p { margin: 0; color: color-mix(in srgb, var(--pc-white) 68%, transparent); font-size: .73rem; }

.programme-campaign__evidence { background: var(--pc-pale); }
.programme-campaign__evidence-grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 8vw, 7rem); align-items: start; }
.programme-campaign__evidence-grid > div:first-child { position: sticky; top: 11rem; }
.programme-campaign__evidence h2 { margin: 0; color: var(--pc-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.9rem, 5.5vw, 5.1rem); font-weight: 950; letter-spacing: -.07em; line-height: .87; text-transform: uppercase; }
.programme-campaign__evidence-grid > div:first-child > p:last-child { max-width: 34rem; margin-top: 1.6rem; color: var(--muted); }
.programme-campaign__evidence-list { display: grid; gap: .7rem; }
.programme-campaign__evidence-list article { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: center; min-height: 7.2rem; padding: 1.1rem 1.25rem; background: var(--white); border-left: 4px solid var(--pc-highlight); box-shadow: 0 12px 30px rgba(27,19,25,.06); }
.programme-campaign__evidence-list article:nth-child(even) { border-color: var(--pc-accent); }
.programme-campaign__evidence-list span { color: var(--pc-bg-soft); font-size: .62rem; font-weight: 950; }
.programme-campaign__evidence-list h3 { margin: 0; color: var(--pc-ink); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(1.12rem, 2vw, 1.5rem); line-height: 1.08; }

.programme-campaign__safety { background: #fffdf8; }
.programme-campaign__safety-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 8vw, 7rem); align-items: center; }
.programme-campaign__safety-grid > div:last-child > p { margin: 0; padding: 1.5rem; color: color-mix(in srgb, var(--pc-white) 86%, transparent); background: var(--pc-bg); border-left: 4px solid var(--pc-highlight); }
.programme-campaign__safety-grid > div:last-child > div { display: grid; gap: .35rem; margin-top: .8rem; padding: 1.25rem 1.5rem; color: var(--pc-ink); background: var(--pc-accent); }
.programme-campaign__safety-grid strong { font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.programme-campaign__safety-grid span { font-size: .87rem; font-weight: 750; }

.programme-campaign__cta { padding: clamp(4rem, 7vw, 6.5rem) 0; color: var(--pc-ink); background: var(--pc-accent); }
.programme-campaign__cta-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(17rem, .5fr); gap: clamp(2rem, 8vw, 7rem); align-items: center; }
.programme-campaign__cta .programme-campaign__section-label { color: var(--pc-ink); }
.programme-campaign__cta h2 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: clamp(2.8rem, 5.4vw, 5rem); font-weight: 950; letter-spacing: -.065em; line-height: .9; }
.programme-campaign__cta p:not(.programme-campaign__section-label) { max-width: 45rem; }
.programme-campaign__cta-grid > div:last-child { display: grid; gap: 1rem; justify-items: start; }
.programme-campaign__button--dark { color: var(--pc-white); background: var(--pc-bg); border-color: var(--pc-bg); box-shadow: 0 12px 28px color-mix(in srgb, var(--pc-bg) 25%, transparent); }
.programme-campaign__button--dark:hover { color: var(--pc-white); background: var(--pc-bg-soft); border-color: var(--pc-bg-soft); }
.programme-campaign__cta-grid > div:last-child > a:not(.button) { color: var(--pc-ink); font-weight: 900; }
.programme-compare-intro { max-width: 760px; margin-bottom: 2.2rem; }
.programme-comparison { overflow-x: auto; border: 1px solid var(--border); background: var(--white); }
.programme-comparison:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; }
.programme-comparison table { width: 100%; min-width: 1120px; border-collapse: collapse; }
.programme-comparison th,
.programme-comparison td { padding: 1.1rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.programme-comparison thead th { color: var(--red-800); background: var(--cream); font-size: .67rem; letter-spacing: .09em; text-transform: uppercase; }
.programme-comparison tbody th { width: 17rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; line-height: 1.05; }
.programme-comparison tbody th span { display: block; margin-bottom: .45rem; color: var(--gold-500); font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: .58rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.programme-comparison tbody td { color: var(--muted); font-size: .8rem; }
.programme-comparison tbody td strong { color: var(--red-900); }
.programme-comparison tbody td small { display: block; max-width: 13rem; margin-top: .35rem; color: var(--muted); font-size: .68rem; line-height: 1.35; }
.programme-comparison tbody a { color: var(--red-800); font-weight: 850; white-space: nowrap; }
.programme-workday { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.programme-workday h2 { margin: 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 4.8vw, 4.5rem); font-weight: 400; letter-spacing: -.05em; line-height: .96; }
.programme-workday ol { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; }
.programme-workday li { display: grid; grid-template-columns: 3rem 1fr; gap: 1rem; padding: 1.25rem; background: var(--white); border-left: 4px solid var(--gold-500); }
.programme-workday li > span { color: var(--gold-500); font-size: .62rem; font-weight: 950; }
.programme-workday li strong { color: var(--red-950); }
.programme-workday li p { margin: .3rem 0 0; color: var(--muted); font-size: .8rem; }
.programme-research-note { margin-top: 1rem; padding: 1.25rem 1.4rem; background: rgba(255,255,255,.7); border: 1px solid var(--border); }
.programme-research-note > strong { color: var(--red-900); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.programme-research-note > p { max-width: 70rem; color: var(--muted); font-size: .78rem; }
.programme-research-note > div { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; }
.programme-research-note a { color: var(--red-800); font-size: .72rem; font-weight: 850; }
.programme-demand { margin: .25rem 0; padding: 1.1rem; background: var(--gold-100); border: 1px solid rgba(83,16,29,.16); border-left: 4px solid var(--gold-500); border-radius: .65rem; }
.programme-demand[hidden] { display: none; }
.programme-demand legend { padding: 0 .4rem; color: var(--red-950); font-size: .78rem; font-weight: 900; }
.programme-demand > p { margin: 0 0 .9rem; color: var(--muted); font-size: .72rem; }
.programme-demand > label { display: grid; gap: .35rem; color: var(--red-950); font-size: .78rem; font-weight: 800; }
.programme-days { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin: .8rem 0; }
.programme-days label { display: flex; gap: .55rem; align-items: center; min-height: 2.6rem; padding: .45rem .65rem; background: rgba(255,255,255,.7); border: 1px solid rgba(83,16,29,.14); border-radius: .45rem; color: var(--red-950); font-size: .72rem; font-weight: 800; }
.programme-days input { width: 1rem; min-height: 1rem; margin: 0; accent-color: var(--red-800); }

/* Library becomes easier to enter and denser to browse */
.library-hero { padding: clamp(3.8rem, 7vw, 6.4rem) 0; }
.library-hero h1 { font-size: clamp(3.1rem, 5.8vw, 5.6rem); }
.library-start { padding: 3.5rem 0; background: #fffdf8; }
.library-start__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.library-start a { min-height: 12rem; padding: 1.4rem; color: var(--white); background: var(--red-900); border-top: 4px solid var(--gold-500); text-decoration: none; }
.library-start a:nth-child(2) { background: #285c4d; }
.library-start a:nth-child(3) { background: #315e78; }
.library-start span { color: var(--gold-300); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.library-start strong { display: block; margin: 2.6rem 0 .5rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; font-weight: 400; line-height: 1.05; }
.library-start small { color: #e8dfe0; }
.library-controls { padding-top: 3.6rem; }
.book-card { min-height: 23rem; grid-template-columns: 9.2rem minmax(0,1fr); box-shadow: none; }
.book-card > * { min-width: 0; }
.book-cover { min-width: 0; overflow: hidden; padding-inline: .8rem; }
.book-cover :where(span, b, i) { max-width: 100%; overflow-wrap: break-word; hyphens: auto; }
.book-cover b { font-size: 1.08rem; }
.book-card__body { padding: 1.25rem; }
.book-card h2 { font-size: 1.55rem; }
.book-card__body > p { font-size: .82rem; }
.book-card__actions { max-width: 100%; }
.book-card__actions .button { width: fit-content; max-width: 100%; }
.library-more { display: grid; justify-items: center; gap: .85rem; margin-top: 2rem; text-align: center; }
.library-more[hidden],
.library-client-empty[hidden] { display: none; }
.library-more small,
.library-client-empty { color: var(--muted); }
.library-client-empty { margin: 2rem auto 0; padding: 1rem 1.25rem; background: var(--gold-100); border-left: 4px solid var(--gold-500); }

/* Contact, legal, and footer */
.contact-grid article { min-height: 17rem; }
.contact-grid h2 { margin-top: 2rem; }
.legal-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 3rem; }
.legal-summary article { padding: 1.2rem; background: var(--cream); border-top: 3px solid var(--gold-500); }
.legal-summary strong { color: var(--red-900); }
.legal-summary p { margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.site-footer {
    padding-top: 3.8rem;
    background: linear-gradient(135deg, #1d1718 0%, #33121a 58%, #211719 100%);
    border-top: 1px solid rgba(233, 202, 112, .32);
}
.footer-grid { grid-template-columns: 1.35fr repeat(4, 1fr); gap: 1.5rem; }
.footer-brand img {
    width: min(310px, 100%);
    padding: 0;
    background: transparent;
    border-radius: 0;
    filter: drop-shadow(0 9px 20px rgba(0, 0, 0, .38));
}
.footer-brand p { margin-top: 1.25rem; color: #ded1d3; }
.footer-base { margin-top: 2.7rem; }
.content-photo { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.reader-status strong,
.reader-status span { display: block; }
.reader-status strong { color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 400; }
.reader-status span { margin-top: .5rem; font-size: .78rem; }
.reader-shell { min-height: calc(100dvh - 5.3rem); }
.reader-topbar { display: grid; grid-template-columns: minmax(14rem, 1fr) auto minmax(12rem, 1fr); }
.reader-paging { display: flex; align-items: center; justify-content: center; gap: .55rem; }
.reader-paging button { min-height: 2.55rem; padding: .5rem .85rem; color: var(--red-900); background: transparent; border: 1px solid rgba(83,16,29,.25); border-radius: 999px; font-size: .74rem; font-weight: 850; cursor: pointer; }
.reader-paging button:hover { background: var(--gold-100); }
.reader-paging output { min-width: 3.2rem; color: var(--muted); font-size: .7rem; text-align: center; }
.reader-tools { justify-self: end; }
.reader-stage-wrap { grid-column: 2; }
.reader-stage { width: min(64rem, 100%); height: clamp(29rem, calc(100dvh - 15rem), 52rem); }
.reader-bottom { max-width: 64rem; }
.reader-contents button { padding-left: calc(.8rem + var(--toc-depth, 0) * .85rem); }
.reader-source { align-items: start; }
.reader-source details { max-width: 34rem; }
.reader-source summary { color: var(--red-800); font-weight: 800; cursor: pointer; }
.reader-source details p { margin-top: .5rem; }
.reader-shell[data-reader-theme="night"] .reader-book-title > a,
.reader-shell[data-reader-theme="night"] .reader-tools button,
.reader-shell[data-reader-theme="night"] .reader-paging button { color: var(--gold-300); border-color: rgba(233,202,112,.4); }
.reader-shell[data-reader-theme="night"] .reader-book-title small,
.reader-shell[data-reader-theme="night"] .reader-paging output { color: #cdbfc1; }

/* Status-aware recovery system */
.error-page { background: var(--paper); }
.error-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4rem, 7.5vw, 7rem) 0;
    color: var(--white);
    background: linear-gradient(135deg, #2b1118 0%, var(--red-950) 58%, #7d182c 100%);
}
.error-hero::after {
    content: "";
    position: absolute;
    width: 34rem;
    height: 34rem;
    right: -15rem;
    top: -23rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 50%;
    box-shadow: 0 0 0 5rem rgba(255,255,255,.025), 0 0 0 10rem rgba(255,255,255,.015);
}
.error-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .5fr);
    gap: clamp(3rem, 8vw, 7rem);
    align-items: end;
}
.error-hero .eyebrow { color: var(--gold-300); }
.error-hero h1 {
    max-width: 870px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.15rem, 6.5vw, 6rem);
    font-weight: 400;
    letter-spacing: -.052em;
    line-height: .94;
}
.error-hero__lead { max-width: 740px; margin: 1.35rem 0 0; color: #eadde0; font-size: clamp(1.02rem, 1.5vw, 1.18rem); }
.error-hero .text-link { color: var(--gold-300); }
.error-explainer { padding: 1.55rem; color: var(--ink); background: #fffaf0; border-top: 4px solid var(--gold-500); border-radius: var(--radius); box-shadow: 0 22px 60px rgba(21,4,9,.24); }
.error-explainer > span { color: var(--red-800); font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.error-explainer > strong { display: block; margin: .75rem 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.65rem; font-weight: 400; line-height: 1.08; }
.error-explainer > p { color: var(--muted); font-size: .84rem; }
.error-explainer .text-link { display: inline-block; margin-top: .2rem; color: var(--red-800); }
.error-explainer .error-honesty { margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--border); font-size: .72rem; }
.error-path { margin: 1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--border); }
.error-path b,
.error-path code { display: block; }
.error-path b { margin-bottom: .3rem; color: var(--red-800); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.error-path code { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }

.error-finder { padding: clamp(4rem, 7vw, 6rem) 0; background: var(--cream); border-bottom: 1px solid var(--border); }
.error-finder__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(24rem, 1.22fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; }
.error-finder h2,
.error-route-index h2 { margin: 0; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 4.5vw, 4.2rem); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
.error-finder__grid > div > p:last-child { max-width: 600px; color: var(--muted); }
.error-search { padding: 1.15rem; background: rgba(255,255,255,.68); border: 1px solid var(--border); border-radius: var(--radius); }
.error-search label { display: block; margin-bottom: .45rem; color: var(--red-950); font-size: .78rem; font-weight: 900; }
.error-search > div { display: grid; grid-template-columns: minmax(0,1fr) auto; }
.error-search input { min-width: 0; min-height: 3.25rem; padding: .75rem .9rem; color: var(--ink); background: var(--white); border: 1px solid rgba(83,16,29,.28); border-right: 0; border-radius: .7rem 0 0 .7rem; }
.error-search button { min-height: 3.25rem; padding: .65rem 1rem; color: var(--white); background: var(--red-800); border: 1px solid var(--red-800); border-radius: 0 .7rem .7rem 0; font-weight: 850; cursor: pointer; }
.error-search input:focus-visible,
.error-search button:focus-visible { position: relative; z-index: 1; outline: 3px solid var(--gold-500); outline-offset: 2px; }
.error-search small { display: block; margin-top: .55rem; color: var(--muted); font-size: .68rem; }
.error-matches { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin-top: 2rem; }
.error-matches a { display: flex; min-height: 17rem; flex-direction: column; padding: 1.25rem; color: var(--ink); background: var(--paper); border: 1px solid var(--border); border-radius: var(--radius); text-decoration: none; transition: transform .2s ease, border-color .2s ease; }
.error-matches a:hover { transform: translateY(-2px); border-color: var(--gold-500); }
.error-matches span { color: var(--red-800); font-size: .65rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.error-matches strong { display: block; margin: auto 0 .65rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; line-height: 1.08; }
.error-matches p { margin: 0 0 1rem; color: var(--muted); font-size: .78rem; }
.error-matches b { margin-top: auto; color: var(--red-800); font-size: .72rem; }
.error-matches i { font-style: normal; }

.error-route-index { padding: clamp(4rem, 7vw, 6.5rem) 0; }
.error-route-index nav { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.error-route-index nav a { min-height: 7.8rem; padding: 1rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); text-decoration: none; }
.error-route-index nav a:hover { background: var(--cream); }
.error-route-index nav span,
.error-route-index nav strong { display: block; }
.error-route-index nav span { color: var(--muted); font-size: .65rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.error-route-index nav strong { margin-top: 1rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; font-weight: 400; }
.error-safety { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2rem; padding: 1.35rem; background: var(--gold-100); border-left: 4px solid var(--gold-500); }
.error-safety span,
.error-safety strong { display: block; }
.error-safety span { color: var(--muted); font-size: .75rem; }
.error-safety strong { margin-top: .2rem; color: var(--red-950); font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; font-weight: 400; }

/* A 720–800px-high laptop needs the explanation and next action in the first
   screen. Width-only breakpoints cannot solve this common short-screen case. */
@media (min-width: 1041px) and (max-height: 820px) {
    .topline__inner { min-height: 1.75rem; }
    .site-header__inner { min-height: 5.65rem; }
    .brand { width: 270px; }

    .decision-hero { padding-block: 2.6rem; }
    .decision-hero .breadcrumbs { margin-bottom: 1rem; }
    .decision-hero h1 { font-size: clamp(3.5rem, 5vw, 4.8rem); }
    .decision-hero .page-hero__lead { margin-top: 1rem; font-size: 1rem; line-height: 1.55; }
    .hero-route-card { padding: 1.2rem 1.3rem; }
    .hero-route-card > strong { margin-block: .6rem; font-size: 1.55rem; }
    .hero-route-card li { padding-block: .34rem; }

    .stem-hero,
    .programme-campaign__hero { padding-block: 2.4rem 3rem; }
    .stem-hero__grid { align-items: start; }
    .stem-hero .breadcrumbs,
    .programme-campaign__hero .breadcrumbs { margin-bottom: 1.35rem; }
    .stem-hero h1,
    .programme-campaign__hero h1 { font-size: clamp(3.6rem, 5.3vw, 5.1rem); }
    .stem-strapline,
    .programme-campaign__tagline { margin-block: 1rem .65rem; }
    .stem-disciplines,
    .programme-campaign__focus { margin-block: 1.15rem; }
    .stem-photo img,
    .programme-campaign__image img,
    .programme-campaign__signal { min-height: 24rem; }
    .stem-preview,
    .programme-campaign__preview { margin-top: -2rem; padding-block: .95rem; }
}

@media (max-width: 1120px) {
    .site-header__inner { min-height: 6.2rem; }
    .brand { width: 270px; }
    .primary-nav { gap: .65rem; font-size: .72rem; }
    .programme-directory { grid-template-columns: 1fr 1fr; }
    .learning-cycle { grid-template-columns: repeat(3, 1fr); }
    .footer-grid { grid-template-columns: 1.3fr repeat(3, 1fr); }
    .footer-grid > :last-child { grid-column: auto; }
    .reader-topbar { top: 6.65rem; }
    .reader-panel { top: 11.15rem; }
}

@media (max-width: 1040px) {
    .brand { width: 255px; }
    .primary-nav { font-size: .78rem; }
    .quick-routes__grid { grid-template-columns: 1fr 1fr; }
    .quick-routes a:nth-child(odd) { border-left: 1px solid var(--border); }
    .home-hero__grid { grid-template-columns: 1fr .72fr; }
    .home-hero h1 { font-size: clamp(3.2rem, 6.5vw, 4.4rem); }
    .home-proof__grid { grid-template-columns: 1fr 1fr; }
    .pathway-feature__grid,
    .resource-band__grid { grid-template-columns: 1fr; width: var(--wrap); }
    .pathway-feature h2,
    .resource-band h2 { max-width: 12ch; }
    .pathway-map article { min-height: 20rem; }
    .resource-card { min-height: 19rem; }
    .about-recommendation-grid { grid-template-columns: 1fr 1fr; }
    .process-grid { grid-template-columns: repeat(3, 1fr); }
    .stem-hero__grid,
    .stem-overview__intro,
    .stem-evidence__grid,
    .stem-safety__grid,
    .stem-projects__heading,
    .stem-brief__heading,
    .stem-brief__grid,
    .stem-cta__grid { grid-template-columns: 1fr; }
    .stem-hero__visual { width: min(100%, 42rem); margin-inline: auto; }
    .stem-photo img { aspect-ratio: 4 / 3; }
    .stem-lab__steps { grid-template-columns: 1fr 1fr; }
    .stem-evidence__statement { position: static; }
    .stem-origin-strip { grid-template-columns: 1fr; }
    .stem-origin-strip article + article { border-top: 1px solid rgba(74,13,26,.16); border-left: 0; }
    .stem-cycle-principles > div { grid-template-columns: 1fr; }
    .stem-project-grid,
    .stem-safety__checks { grid-template-columns: 1fr 1fr; }
    .programme-campaign__hero-grid,
    .programme-campaign__intro,
    .programme-campaign__evidence-grid,
    .programme-campaign__safety-grid,
    .programme-campaign__cta-grid { grid-template-columns: 1fr; }
    .programme-campaign__visual-column { width: min(100%, 42rem); }
    .programme-campaign__steps { grid-template-columns: 1fr 1fr; }
    .programme-campaign__evidence-grid > div:first-child { position: static; }
    .error-matches { grid-template-columns: 1fr 1fr; }
    .error-matches a { min-height: 14rem; }
}

@media (max-width: 900px) {
    .library-grid { grid-template-columns: 1fr; }
    .book-card { min-height: 21rem; }
}

@media (max-width: 760px) {
    :root { --wrap: min(100% - 1.25rem, 1200px); }
    .topline__inner { min-height: 1.9rem; }
    .topline__inner > span { font-size: .58rem; }
    .topline__inner > span i:nth-of-type(2),
    .topline__inner > span i:nth-of-type(2) + * { display: none; }
    .topline__inner > div { display: none; }
    .site-header__inner { min-height: 5.5rem; }
    .brand { width: 235px; }
    .menu-toggle { width: 3rem; height: 3rem; }
    .primary-nav { max-height: calc(100vh - 7.6rem); overflow-y: auto; padding-block: .75rem 1.2rem; }
    .primary-nav a { min-height: 2.75rem; display: flex; align-items: center; }
    .section { padding-block: 3.7rem; }
    .decision-hero { padding-block: 3.3rem; }
    .decision-hero__grid,
    .editorial-split,
    .continuity-panel,
    .decision-grid,
    .pathway-feature__grid,
    .resource-band__grid { grid-template-columns: 1fr; }
    .decision-hero h1 { font-size: clamp(2.9rem, 12.5vw, 4.2rem); }
    .hero-route-card { margin-top: .5rem; }
    .quick-routes__grid { grid-template-columns: 1fr 1fr; }
    .quick-routes a { min-height: 9.2rem; padding: 1rem; }
    .quick-routes strong { font-size: 1.12rem; }
    .status-grid,
    .programme-directory,
    .library-start__grid,
    .legal-summary { grid-template-columns: 1fr; }
    .continuity-panel li { grid-template-columns: 5rem 1fr; }
    .home-hero { padding-top: 2rem; }
    .home-hero__grid { grid-template-columns: 1fr; }
    .home-hero h1 { font-size: clamp(2.85rem, 12.2vw, 3.7rem); }
    .home-hero__visual { min-height: 25rem; max-width: 34rem; margin-inline: auto; }
    .home-hero__visual img { min-height: 25rem; border-radius: 9rem 9rem 0 0; }
    .home-hero__caption { left: .7rem; bottom: 1rem; }
    .home-proof { margin-top: 0; }
    .home-proof__grid { grid-template-columns: 1fr 1fr; }
    .home-proof div { min-height: 6.7rem; }
    .decision-links { grid-template-columns: 1fr; }
    .about-profile__facts { grid-template-columns: 1fr; }
    .about-profile__facts div:nth-child(odd) { border-right: 0; }
    .about-profile__facts div:nth-child(even) { padding-left: 0; }
    .about-recommendation-grid { grid-template-columns: 1fr; }
    .about-recommendation-grid article { min-height: 15rem; }
    .learning-cycle { grid-template-columns: 1fr 1fr; }
    .learning-cycle article:last-child { grid-column: 1 / -1; min-height: 9rem; }
    .pathway-map { grid-template-columns: 1fr; }
    .pathway-feature h2,
    .resource-band h2 { max-width: none; font-size: clamp(2.7rem, 12vw, 3.7rem); }
    .pathway-map article { min-height: 15rem; }
    .resource-card { min-height: 17rem; }
    .process-grid { grid-template-columns: 1fr 1fr; }
    .programme-fit,
    .session-flow { grid-template-columns: 1fr 1fr; }
    .programme-family-note { grid-template-columns: 1fr; gap: .65rem; }
    .programme-family-note a { white-space: normal; }
    .programme-list b { text-align: left; }
    .programme-comparison { overflow: visible; border: 0; background: transparent; }
    .programme-comparison table,
    .programme-comparison tbody,
    .programme-comparison tr,
    .programme-comparison th,
    .programme-comparison td { display: block; width: 100%; min-width: 0; }
    .programme-comparison thead { display: none; }
    .programme-comparison tbody { display: grid; gap: 1rem; }
    .programme-comparison tr { overflow: hidden; background: var(--white); border: 1px solid var(--border); border-top: 4px solid var(--gold-500); border-radius: .8rem; }
    .programme-comparison tbody th { width: auto; padding: 1.2rem; background: var(--cream); }
    .programme-comparison tbody td { display: grid; grid-template-columns: minmax(7.8rem, .72fr) minmax(0, 1.28fr); gap: .85rem; padding: .9rem 1.2rem; }
    .programme-comparison tbody td::before { content: attr(data-label); color: var(--red-800); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
    .programme-comparison tbody td:last-child { display: block; padding-block: .55rem 1rem; }
    .programme-comparison tbody td:last-child::before { content: none; }
    .programme-comparison tbody a { display: flex; min-height: 2.75rem; align-items: center; justify-content: center; padding-inline: 1rem; color: var(--white); background: var(--red-800); border-radius: 99px; white-space: normal; text-align: center; }
    .programme-workday { grid-template-columns: 1fr; }
    .programme-research-note > div { display: grid; }
    .programme-hero h1,
    .library-hero h1 { font-size: clamp(2.85rem, 12.5vw, 4.2rem); }
    .stem-hero { padding-block: 3rem 4rem; }
    .stem-hero h1 { font-size: clamp(3.1rem, 15.5vw, 5.2rem); }
    .stem-disciplines { grid-template-columns: 1fr; }
    .stem-disciplines li { min-height: 3.8rem; }
    .stem-wayfinder .wrap { align-items: flex-start; padding-block: 1rem; }
    .stem-wayfinder strong { flex-basis: 100%; margin: 0 0 .2rem; }
    .stem-wayfinder a { flex: 1 1 10rem; justify-content: center; text-align: center; }
    .stem-photo::before { inset: -.65rem -.45rem .8rem .65rem; }
    .stem-photo img { min-height: 22rem; border-radius: 9rem 9rem 1rem 1rem; }
    .stem-preview { width: calc(100% - 1.2rem); margin-top: -1.5rem; }
    .stem-pulse .wrap { grid-template-columns: 1fr 1fr; }
    .stem-pulse article:nth-child(2) { border-right: 1px solid rgba(255,255,255,.1); }
    .stem-overview__intro,
    .stem-lab__heading { grid-template-columns: 1fr; }
    .stem-fit-grid { grid-template-columns: 1fr; }
    .stem-fit-grid article { min-height: 0; }
    .stem-lab__steps { grid-template-columns: 1fr 1fr; }
    .stem-lab__steps article { min-height: 12rem; }
    .stem-project-grid { grid-template-columns: 1fr; }
    .stem-project-grid article { min-height: 20rem; }
    .stem-projects__note { grid-template-columns: 1fr; }
    .stem-safety__checks { grid-template-columns: 1fr 1fr; }
    .stem-cta__grid > div:last-child { justify-items: stretch; }
    .stem-cta__grid > div:last-child > a:not(.button) { text-align: center; }
    .programme-campaign__hero { padding-block: 3rem 4rem; }
    .programme-campaign__hero h1 { font-size: clamp(3rem, 14vw, 5rem); }
    .programme-campaign__focus { grid-template-columns: 1fr; }
    .programme-campaign__signal { min-height: 24rem; }
    .programme-campaign__image img { min-height: 22rem; aspect-ratio: 4 / 3; border-radius: 9rem 9rem 1rem 1rem; }
    .programme-campaign__image::before { inset: -.65rem -.45rem .8rem .65rem; }
    .programme-campaign__preview { width: calc(100% - 1.2rem); margin-top: -1.5rem; }
    .programme-campaign__pulse .wrap { grid-template-columns: 1fr 1fr; }
    .programme-campaign__pulse article:nth-child(2) { border-right: 1px solid rgba(255,255,255,.1); }
    .programme-campaign__intro,
    .programme-campaign__session-heading { grid-template-columns: 1fr; }
    .programme-campaign__fit { grid-template-columns: 1fr; }
    .programme-campaign__fit article { min-height: 0; }
    .programme-campaign__steps { grid-template-columns: 1fr 1fr; }
    .programme-campaign__steps article { min-height: 12rem; }
    .programme-campaign__cta-grid > div:last-child { justify-items: stretch; }
    .programme-campaign__cta-grid > div:last-child > a:not(.button) { text-align: center; }
    .book-card { min-height: 22rem; grid-template-columns: 8rem minmax(0, 1fr); }
    .book-cover b { font-size: .92rem; }
    .text-link,
    .visit-cta__actions > a:not(.button),
    .programme-research-note a,
    .programme-campaign__cta-grid > div:last-child > a:not(.button),
    .stem-cta__grid > div:last-child > a:not(.button),
    .site-footer a { display: flex; min-height: 2.75rem; align-items: center; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-grid > :first-child { grid-column: 1 / -1; }
    .reader-topbar { top: 6.15rem; }
    .reader-panel { top: 10.65rem; }
    .site-header--reader .site-header__inner { min-height: 4.25rem; }
    .site-header--reader .brand { width: 175px; }
    .site-header--reader + .reader-page .reader-topbar { top: 4.25rem; }
    .site-header--reader + .reader-page .reader-panel { top: 8.75rem; }
    .reader-topbar { grid-template-columns: minmax(0, 1fr) auto auto; }
    .reader-book-title small { display: none; }
    .reader-paging { grid-column: 2; grid-row: 1; gap: .25rem; }
    .reader-paging button { width: 2.7rem; padding-inline: .2rem; }
    .reader-paging button span,
    .reader-paging output { display: none; }
    .reader-tools { grid-column: 3; grid-row: 1; }
    .reader-layout { position: relative; }
    .reader-contents { position: fixed; z-index: 12; inset: 9.25rem 0 0; width: 100%; max-height: none; border-right: 0; }
    .reader-stage { height: clamp(31rem, calc(100dvh - 14.5rem), 46rem); }
    .error-hero { padding-block: 3.4rem; }
    .error-hero__grid,
    .error-finder__grid { grid-template-columns: 1fr; }
    .error-hero h1 { font-size: clamp(2.9rem, 12.5vw, 4.2rem); }
    .error-explainer { margin-top: .4rem; }
    .error-finder__grid { gap: 1.5rem; }
    .error-route-index nav { grid-template-columns: 1fr 1fr; }
    .error-safety { align-items: stretch; flex-direction: column; }
}

@media (max-width: 460px) {
    .quick-routes__grid,
    .home-proof__grid,
    .learning-cycle,
    .programme-fit,
    .session-flow,
    .process-grid { grid-template-columns: 1fr; }
    .quick-routes a { min-height: 7.8rem; border-left: 1px solid var(--border); border-bottom: 1px solid var(--border); }
    .learning-cycle article:last-child { grid-column: auto; }
    .home-proof div { min-height: 5.8rem; }
    .decision-links a { min-height: 10rem; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-grid > * { grid-column: auto !important; }
    .book-card { grid-template-columns: 1fr; }
    .book-cover { min-height: 10rem; border-right: 0; border-bottom: .35rem solid var(--gold-500); }
    .book-cover b { max-width: 16rem; font-size: 1.08rem; }
    .stem-kicker { padding-right: 1.45rem; }
    .stem-hero h1 { font-size: clamp(2.75rem, 14vw, 3.5rem); }
    .stem-hero__actions { align-items: stretch; flex-direction: column; }
    .stem-hero__actions > a { justify-content: center; text-align: center; }
    .stem-photo img { min-height: 18rem; }
    .stem-photo figcaption { right: .35rem; bottom: .7rem; max-width: 15rem; }
    .stem-preview dl,
    .stem-pulse .wrap,
    .stem-lab__steps { grid-template-columns: 1fr; }
    .stem-pulse article,
    .stem-pulse article:nth-child(2) { border-right: 1px solid rgba(255,255,255,.1); }
    .stem-lab__steps article { min-height: 10.5rem; }
    .stem-evidence__list article { grid-template-columns: 2.2rem 1fr; }
    .stem-project-grid article { min-height: 0; }
    .stem-project-grid__mark { margin-block: 1.5rem 1rem; }
    .stem-safety__checks { grid-template-columns: 1fr; }
    .stem-brief__facts dl > div { grid-template-columns: 1fr; gap: .25rem; }
    .stem-brief__questions li { grid-template-columns: 2.25rem minmax(0, 1fr); padding: .75rem; }
    .stem-brief__questions li > span { width: 2.1rem; }
    .stem-cta ul { display: grid; }
    .programme-campaign__kicker { padding-right: 1.45rem; }
    .programme-campaign__hero h1 { font-size: clamp(2.7rem, 13.5vw, 3.45rem); }
    .programme-campaign__signal { min-height: 20rem; }
    .programme-campaign__signal strong { font-size: clamp(4.7rem, 24vw, 6.2rem); }
    .programme-campaign__image img { min-height: 18rem; }
    .programme-campaign__image figcaption { right: .3rem; bottom: .7rem; max-width: 15rem; }
    .programme-campaign__preview dl,
    .programme-campaign__pulse .wrap,
    .programme-campaign__steps { grid-template-columns: 1fr; }
    .programme-campaign__pulse article,
    .programme-campaign__pulse article:nth-child(2) { border-right: 1px solid rgba(255,255,255,.1); }
    .programme-campaign__steps article { min-height: 10.5rem; }
    .programme-campaign__evidence-list article { grid-template-columns: 2.2rem 1fr; }
    .error-search > div,
    .error-matches,
    .error-route-index nav { grid-template-columns: 1fr; }
    .error-search input { border-right: 1px solid rgba(83,16,29,.28); border-radius: .7rem .7rem 0 0; }
    .error-search button { border-radius: 0 0 .7rem .7rem; }
    .error-matches a { min-height: 12.5rem; }
}

/* Library and reader application layer — search-first, bilingual, and overflow-safe */
.library-page { background: #fffdf8; }
.library-app-intro { padding: 1.35rem 0 1.6rem; background: linear-gradient(180deg, #fffdf8, #f8f2e6); border-bottom: 1px solid var(--border); }
.library-app-intro .breadcrumbs { margin-bottom: 1.2rem; }
.library-app-intro__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; }
.library-app-intro__heading > div { max-width: 52rem; }
.library-page .library-app-intro h1 { margin: 0; color: var(--red-950); font-size: clamp(2.25rem, 4.2vw, 3.9rem) !important; line-height: 1 !important; }
.library-app-intro__heading > div > p:last-child { max-width: 62ch; margin: .8rem 0 0; color: var(--muted); font-size: var(--type-ui) !important; line-height: 1.55 !important; }
.library-audiences { display: flex; gap: .25rem; padding: .25rem; background: rgba(255,255,255,.72); border: 1px solid var(--border); border-radius: .6rem; }
.library-audiences a { min-height: 2.55rem; display: inline-flex; align-items: center; padding: .55rem .8rem; color: var(--red-900); border-radius: .4rem; font-size: var(--type-caption); font-weight: 800; text-decoration: none; white-space: nowrap; }
.library-audiences a[aria-current="page"] { color: #fff; background: var(--red-800); }

.library-page .library-filter { display: block; margin-top: 1.35rem; padding: 1rem; background: #fff; border: 1px solid rgba(74,13,26,.18); border-radius: .85rem; box-shadow: 0 12px 36px rgba(74,13,26,.06); }
.library-page .library-filter label { display: grid; gap: .35rem; color: var(--red-950); font-size: var(--type-caption) !important; font-weight: 800; }
.library-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; align-items: end; }
.library-page .library-filter input,
.library-page .library-filter select { min-height: 3.25rem; color: var(--ink); background: #fffdf8; border: 1px solid rgba(74,13,26,.28); border-radius: .5rem; font-size: var(--type-ui) !important; }
.library-search-row .button { min-width: 9rem; min-height: 3.25rem; }
.library-refine { margin-top: .75rem; border-top: 1px solid var(--border); }
.library-refine summary { width: fit-content; margin-top: .65rem; color: var(--red-800); font-size: var(--type-caption); font-weight: 850; cursor: pointer; }
.library-refine summary::marker { color: var(--gold-500); }
.library-refine__fields { display: grid; grid-template-columns: repeat(5, minmax(8.5rem, 1fr)) auto; gap: .65rem; align-items: end; padding-top: .7rem; }
.library-reset { min-height: 3.25rem; display: inline-flex; align-items: center; justify-content: center; padding: .55rem .7rem; color: var(--red-800); font-size: var(--type-caption); font-weight: 800; white-space: nowrap; }
.library-shelves { display: flex; gap: .3rem; margin-top: .9rem; padding-bottom: .2rem; overflow-x: auto; scrollbar-width: thin; }
.library-shelves a { min-height: 2.55rem; display: inline-flex; flex: 0 0 auto; align-items: center; padding: .5rem .75rem; color: var(--red-900); background: rgba(255,255,255,.62); border: 1px solid var(--border); border-bottom: 3px solid transparent; border-radius: .35rem; font-size: var(--type-caption); font-weight: 800; text-decoration: none; }
.library-shelves a:hover,
.library-shelves a[aria-current="true"] { background: #fff; border-bottom-color: var(--gold-500); }

.library-page .library-catalog { padding: 2.4rem 0 3.2rem; scroll-margin-top: 9rem; background: #fffdf8; }
.library-page .library-catalog:focus { outline: 0; }
.library-results-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.2rem; }
.library-results-heading h2 { margin: 0; color: var(--red-950); font-size: clamp(1.8rem, 3vw, 2.65rem) !important; }
.library-page .library-result-count { max-width: 30rem; margin: 0; color: var(--muted); font-size: var(--type-caption) !important; text-align: right; }
.library-page .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.library-page .book-card { grid-template-columns: 7.1rem minmax(0, 1fr); min-height: 16.5rem; border-radius: .65rem; box-shadow: none; }
.library-page .book-cover { min-height: 100%; padding: .85rem .7rem; border-right-width: .25rem; }
.library-page .book-cover::after { inset: .35rem; }
.library-page .book-cover span { font-size: .68rem !important; line-height: 1.25 !important; }
.library-page .book-cover b { font-size: 1rem; line-height: 1.18; overflow-wrap: anywhere; }
.library-page .book-cover b:lang(km) { font-size: .95rem; line-height: 1.5; }
.library-page .book-cover i { font-size: .7rem !important; line-height: 1.3 !important; }
.library-page .book-card__body { padding: 1rem 1.05rem; }
.library-page .book-card__meta { display: block; margin: 0; color: #74696b; font-size: .76rem !important; line-height: 1.45 !important; }
.library-page .book-card__meta span { padding: 0; color: inherit; background: transparent; border-radius: 0; font-size: inherit !important; font-weight: 700; }
.library-page .book-card__meta i { padding-inline: .25rem; color: var(--gold-500); font-style: normal; }
.library-page .book-card h2 { margin: .55rem 0 .05rem; color: var(--red-950); font-size: clamp(1.18rem, 1.05rem + .4vw, 1.45rem) !important; line-height: 1.15 !important; }
.library-page .book-card__author { margin: 0 0 .45rem !important; color: var(--red-800) !important; font-size: .8rem !important; line-height: 1.35 !important; }
.library-page .book-card__summary { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: .9rem !important; line-height: 1.48 !important; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.library-page .book-card__guidance { margin-top: .5rem !important; padding: 0; background: transparent; border: 0; }
.library-page .book-card__guidance summary { width: fit-content; color: var(--red-800); font-size: .78rem; font-weight: 800; cursor: pointer; }
.library-page .book-card__guidance p { margin: .4rem 0 0; padding: .55rem .65rem; color: var(--muted); background: #f8f1e1; border-left: 3px solid var(--gold-500); font-size: .82rem !important; line-height: 1.45 !important; }
.library-page .book-card__actions { display: flex; flex-wrap: wrap; gap: .55rem .75rem; align-items: center; justify-content: flex-start; justify-items: stretch; padding-top: .7rem; }
.library-page .book-card__actions .button { min-height: 2.65rem; width: auto; padding: .48rem .8rem; font-size: .88rem !important; box-shadow: none; }
.library-page .book-card__actions small { max-width: 15rem; color: var(--muted); font-size: .72rem !important; line-height: 1.35 !important; }
.library-page .library-client-empty { max-width: 46rem; margin: 1rem auto 0; padding: 2rem; text-align: center; background: #fff; border: 1px solid var(--border); border-radius: .7rem; }
.library-page .library-client-empty h2 { margin: 0; color: var(--red-950); font-size: 1.8rem !important; }
.library-page .library-more { margin-top: 1.4rem; }
.library-page .library-more .button { box-shadow: none; }

.library-family { padding: clamp(3rem, 6vw, 5rem) 0; background: var(--cream); border-top: 1px solid var(--border); }
.library-family__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.library-family h2 { margin: 0; color: var(--red-950); font-size: clamp(2rem, 3.8vw, 3.4rem) !important; }
.library-family__grid > div > p:not(.eyebrow) { color: var(--muted); font-size: var(--type-ui) !important; line-height: 1.55 !important; }
.library-family__steps { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.library-family__steps li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: .8rem; padding: .9rem 1rem; background: rgba(255,255,255,.7); border-left: 3px solid var(--gold-500); }
.library-family__steps li > span { color: var(--red-800); font-size: .72rem; font-weight: 900; }
.library-family__steps strong { color: var(--red-950); font-size: var(--type-ui); }
.library-family__steps p { margin: .15rem 0 0; color: var(--muted); font-size: .9rem !important; line-height: 1.45 !important; }
.library-collection-note { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid rgba(74,13,26,.16); }
.library-collection-note summary { width: fit-content; color: var(--red-800); font-size: var(--type-caption); font-weight: 850; cursor: pointer; }
.library-collection-note p { max-width: 76ch; margin-bottom: 0; color: var(--muted); font-size: .9rem !important; line-height: 1.5 !important; }

/* Full-height reading surface */
.reader-page { background: #e8e1d5; }
.reader-page .reader-shell { min-height: calc(100dvh - 5rem); background: var(--reader-shell); }
.reader-page .reader-topbar,
.site-header--reader + .reader-page .reader-topbar { top: 5rem; min-height: 3.8rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; padding: .45rem max(.75rem, calc((100% - 1320px) / 2)); }
.reader-page .reader-book-title { gap: .7rem; overflow: hidden; }
.reader-page .reader-book-title > a { min-height: 2.55rem; display: inline-flex; align-items: center; padding: .35rem .45rem; border-radius: .4rem; }
.reader-page .reader-book-title > a:hover { background: var(--gold-100); }
.reader-page .reader-book-title div { max-width: min(38rem, 40vw); }
.reader-page .reader-book-title h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader-page .reader-book-title small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reader-page .reader-tools { display: flex; min-width: 0; gap: .35rem; align-items: center; justify-self: end; }
.reader-page .reader-tools button,
.reader-page .reader-language-switch { min-height: 2.55rem; display: inline-flex; align-items: center; justify-content: center; gap: .3rem; padding: .45rem .7rem; color: var(--red-900); background: transparent; border: 1px solid rgba(83,16,29,.25); border-radius: .45rem; font-size: var(--type-caption) !important; font-weight: 850; line-height: 1.2 !important; text-decoration: none; white-space: nowrap; cursor: pointer; }
.reader-page .reader-listen { color: #fff !important; background: var(--red-800) !important; border-color: var(--red-800) !important; }
.reader-page .reader-listen:hover { background: var(--red-900) !important; }
.reader-page .reader-listen:disabled { color: #786f70 !important; background: #e4ded8 !important; border-color: #c9c0bc !important; cursor: not-allowed; }
.reader-page .reader-panel,
.site-header--reader + .reader-page .reader-panel { position: fixed; z-index: 20; inset: 8.8rem 0 auto; top: 8.8rem; display: flex; max-height: calc(100dvh - 12.4rem); flex-wrap: wrap; justify-content: center; gap: .65rem 1.4rem; overflow: auto; padding: .75rem max(1rem, calc((100% - 1180px) / 2)); box-shadow: 0 16px 34px rgba(45,22,25,.16); }
.reader-page .reader-panel[hidden] { display: none; }
.reader-page .reader-panel__group { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.reader-page .reader-panel__speech { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
.reader-page .reader-panel__speech[hidden] { display: none; }
.reader-page .reader-panel__speech label { display: grid; gap: .2rem; color: var(--red-900); font-size: .72rem; font-weight: 850; }
.reader-page .reader-panel__speech select { min-height: 2.55rem; max-width: 15rem; padding: .4rem .55rem; color: var(--ink); background: #fffdf8; border: 1px solid rgba(83,16,29,.25); border-radius: .4rem; font-size: .78rem; }
.reader-page .reader-speech-note { flex: 1 0 100%; margin: 0; color: var(--muted); font-size: .76rem !important; line-height: 1.4 !important; text-align: center; }
.reader-page .reader-layout { display: block; min-height: 0; }
.reader-page .reader-stage-wrap { grid-column: auto; min-width: 0; padding: .45rem; }
.reader-page .reader-stage { width: min(76rem, 100%); height: calc(100dvh - 12.95rem); min-height: 26rem; max-height: none; border: 1px solid rgba(74,13,26,.1); border-radius: .25rem; box-shadow: 0 12px 38px rgba(45,22,25,.09); }
.reader-page .reader-status { inset: .45rem .45rem auto; width: min(56rem, calc(100% - .9rem)); padding: 1.5rem; }
.reader-page .reader-contents { position: fixed; z-index: 19; inset: 8.8rem auto 3.65rem 0; width: min(24rem, 92vw); max-height: none; padding: 1rem; border-right: 1px solid var(--border); box-shadow: 14px 0 34px rgba(45,22,25,.15); }
.reader-page .reader-bottom { position: sticky; z-index: 18; bottom: 0; min-height: 3.65rem; grid-template-columns: auto minmax(7rem, 32rem) auto; max-width: none; margin: 0; padding: .45rem max(.75rem, calc((100% - 76rem) / 2)); background: rgba(255,253,248,.97); border-top: 1px solid var(--border); backdrop-filter: blur(14px); }
.reader-page .reader-bottom button { min-height: 2.6rem; border-radius: .45rem; }
.reader-page .reader-source { padding-block: .8rem; }
.reader-page .reader-source details { max-width: 42rem; }
.reader-shell[data-reader-theme="night"] .reader-language-switch { color: var(--gold-300); border-color: rgba(233,202,112,.4); }
.reader-shell[data-reader-theme="night"] .reader-bottom { color: #eee7df; background: rgba(32,28,29,.97); border-color: rgba(255,255,255,.12); }
.reader-shell[data-reader-theme="night"] .reader-panel__speech select { color: #eee7df; background: #292326; border-color: rgba(240,215,128,.4); }
.reader-shell:fullscreen { overflow: auto; background: var(--reader-shell); }
.reader-shell:fullscreen .reader-topbar { top: 0; }
.reader-shell:fullscreen .reader-panel { top: 3.8rem; }
.reader-shell:fullscreen .reader-contents { inset-block: 3.8rem 3.65rem; }
.reader-shell:fullscreen .reader-stage { height: calc(100dvh - 8.35rem); }

@media (max-width: 900px) {
    .library-app-intro__heading { grid-template-columns: 1fr; gap: 1rem; }
    .library-audiences { width: fit-content; }
    .library-refine__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .library-reset { justify-content: flex-start; }
    .library-page .library-grid { grid-template-columns: 1fr; }
    .library-page .book-card { min-height: 15.5rem; }
}

@media (max-width: 760px) {
    .library-app-intro { padding: .8rem 0 1.05rem; }
    .library-app-intro .breadcrumbs { margin-bottom: .8rem; }
    .library-page .library-app-intro h1 { font-size: clamp(1.95rem, 9vw, 2.7rem) !important; }
    .library-app-intro__heading > div > p:last-child { margin-top: .55rem; font-size: .95rem !important; }
    .library-audiences { max-width: 100%; overflow-x: auto; }
    .library-audiences a { font-size: .8rem; }
    .library-page .library-filter { margin-top: 1rem; padding: .75rem; }
    .library-search-row { grid-template-columns: 1fr; }
    .library-search-row .button { width: 100%; }
    .library-refine__fields { padding-top: .6rem; }
    .library-shelves { margin-right: calc((100vw - 100%) / -2); padding-right: 1rem; }
    .library-shelves a { min-height: 2.7rem; }
    .library-page .library-catalog { padding-block: 1.6rem 2.5rem; scroll-margin-top: 5rem; }
    .library-results-heading { display: grid; gap: .4rem; margin-bottom: .9rem; }
    .library-page .library-result-count { text-align: left; }
    .library-page .book-card { grid-template-columns: 5.9rem minmax(0, 1fr); min-height: 14.5rem; }
    .library-page .book-cover { min-height: 100%; padding: .65rem .5rem; border-right: .25rem solid var(--gold-500); border-bottom: 0; }
    .library-page .book-cover b { max-width: 100%; font-size: .88rem; }
    .library-page .book-cover b:lang(km) { font-size: .82rem; }
    .library-page .book-cover span,
    .library-page .book-cover i { font-size: .6rem !important; }
    .library-page .book-card__body { padding: .8rem; }
    .library-page .book-card__meta { font-size: .69rem !important; }
    .library-page .book-card h2 { margin-top: .4rem; font-size: 1.16rem !important; }
    .library-page .book-card__summary { font-size: .84rem !important; -webkit-line-clamp: 2; }
    .library-page .book-card__actions .button { min-height: 2.55rem; font-size: .82rem !important; }
    .library-page .book-card__actions small { flex: 1 1 8rem; }
    .library-family__grid { grid-template-columns: 1fr; gap: 1.5rem; }

    .reader-page .reader-shell { min-height: calc(100dvh - 4.25rem); }
    .reader-page .reader-topbar,
    .site-header--reader + .reader-page .reader-topbar { top: 4.25rem; min-height: 3.65rem; grid-template-columns: minmax(3rem, 1fr) auto; gap: .35rem; padding: .35rem .45rem; }
    .reader-page .reader-book-title { gap: .2rem; }
    .reader-page .reader-book-title > a { min-height: 2.45rem; padding-inline: .3rem; }
    .reader-page .reader-book-title > a span,
    .reader-page .reader-book-title small { display: none; }
    .reader-page .reader-book-title div { max-width: 24vw; }
    .reader-page .reader-book-title h1 { font-size: .84rem !important; }
    .reader-page .reader-tools { max-width: 72vw; gap: .25rem; overflow-x: auto; scrollbar-width: none; }
    .reader-page .reader-tools::-webkit-scrollbar { display: none; }
    .reader-page .reader-tools button,
    .reader-page .reader-language-switch { min-height: 2.45rem; flex: 0 0 auto; padding: .4rem .55rem; font-size: .76rem !important; }
    .reader-page .reader-tools button { width: auto; overflow: visible; }
    .reader-page .reader-tools button[data-reader-toc],
    .reader-page .reader-tools button[data-reader-settings] { width: 2.7rem; overflow: hidden; padding-inline: .2rem; }
    .reader-page .reader-tools button[data-reader-toc] span,
    .reader-page .reader-tools button[data-reader-settings] span { font-size: 0; }
    .reader-page .reader-tools button[data-reader-toc] span::after,
    .reader-page .reader-tools button[data-reader-settings] span::after { content: none; }
    .reader-page .reader-tools button[data-reader-fullscreen] { display: none; }
    .reader-page .reader-panel,
    .site-header--reader + .reader-page .reader-panel { inset: 7.9rem 0 auto; top: 7.9rem; max-height: calc(100dvh - 11.35rem); justify-content: flex-start; gap: .7rem; padding: .75rem; }
    .reader-page .reader-panel__group,
    .reader-page .reader-panel__speech { width: 100%; }
    .reader-page .reader-panel__speech label { flex: 1 1 9rem; }
    .reader-page .reader-panel__speech select { width: 100%; max-width: none; }
    .reader-page .reader-speech-note { text-align: left; }
    .reader-page .reader-stage-wrap { padding: 0; }
    .reader-page .reader-stage { width: 100%; height: calc(100dvh - 11.45rem); min-height: 23rem; border-inline: 0; border-radius: 0; box-shadow: none; }
    .reader-page .reader-status { inset: 0 0 auto; width: 100%; }
    .reader-page .reader-contents { inset: 7.9rem 0 3.55rem; width: 100%; }
    .reader-page .reader-bottom { min-height: 3.55rem; grid-template-columns: auto minmax(5rem, 1fr) auto; gap: .45rem; padding: .4rem .55rem; }
    .reader-page .reader-bottom button { min-height: 2.5rem; padding-inline: .65rem; }
    .reader-page .reader-bottom > div { grid-column: auto; grid-row: auto; gap: .35rem; }
    .reader-page .reader-source { display: grid; gap: .8rem; padding: .8rem; }
    .reader-page .reader-source > div { justify-items: start; text-align: left; }
}

@media (max-width: 480px) {
    .library-refine__fields { grid-template-columns: 1fr; }
    .library-page .book-card__meta i:nth-of-type(2),
    .library-page .book-card__meta span:last-child { display: none; }
    .reader-page .reader-bottom button span { display: none; }
    .reader-page .reader-bottom > div > span { display: none; }
    .library-page .book-cover b { font-size: .7rem; line-height: 1.28; overflow-wrap: normal; word-break: normal; hyphens: auto; }
    .library-page .book-cover b:lang(km) { font-size: .74rem; overflow-wrap: anywhere; }
}

@media (max-width: 350px) {
    .library-page .book-card { grid-template-columns: 5.2rem minmax(0, 1fr); }
    .reader-page .reader-book-title div { display: none; }
    .reader-page .reader-tools { max-width: calc(100vw - 3.4rem); }
}
