:root {
  --bg: #050816;
  --bg-soft: #0b1026;
  --surface: #101936;
  --surface-2: #131f42;
  --cyan: #00e5ff;
  --cyan-rgb: 0, 229, 255;
  --pink: #ff3cac;
  --pink-rgb: 255, 60, 172;
  --lime: #9bff32;
  --lime-rgb: 155, 255, 50;
  --yellow: #ffc857;
  --text: #f8faff;
  --muted: #a9b4d0;
  --muted-2: #7e8cac;
  --line: rgba(169, 180, 208, .16);
  --shadow: 0 24px 80px rgba(0, 0, 0, .36);
  --radius: 22px;
  --pixel: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  --sans: Inter, "Aptos", "Segoe UI", system-ui, -apple-system, sans-serif;
  --container: 1180px;
  --accent: var(--cyan);
  --accent-rgb: var(--cyan-rgb);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; min-width: 320px; min-height: 100%; overflow-x: hidden; color: var(--text); background: var(--bg); font-family: var(--sans); line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.menu-open, body.presentation-open { overflow: hidden; }
body[data-age="creadores"] { --accent: var(--pink); --accent-rgb: var(--pink-rgb); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
p, h1, h2, h3, h4 { margin-top: 0; }
h1, h2, h3, h4, p, li, a, button, summary { overflow-wrap: break-word; }
img, svg { display: block; max-width: 100%; }
main, header, footer, nav, section, article, aside, div, ul, ol, li { min-width: 0; }
::selection { color: var(--bg); background: var(--accent); }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 4px; }
[hidden] { display: none !important; }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; padding: .7rem 1rem; color: var(--bg); background: var(--yellow); border-radius: 8px; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: clamp(80px, 8vw, 126px) 0; }
.section-grid { background-image: linear-gradient(rgba(var(--cyan-rgb), .035) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--cyan-rgb), .035) 1px, transparent 1px); background-size: 44px 44px; }
.section-grid::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 50% 35%, transparent 0, var(--bg) 86%); }
.section-grid > * { position: relative; z-index: 1; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: var(--lime); font: 800 .72rem/1.4 var(--pixel); letter-spacing: .08em; }
.eyebrow > span { display: grid; place-items: center; width: 28px; height: 28px; color: var(--bg); background: var(--lime); border-radius: 5px 2px; font-size: .64rem; }
.mini-label { margin-bottom: 8px; color: var(--accent); font: 800 .66rem/1.4 var(--pixel); letter-spacing: .1em; }
.section-heading { max-width: 820px; margin-bottom: clamp(42px, 6vw, 70px); }
.section-heading h2 { margin-bottom: 18px; font-size: clamp(2rem, 4.4vw, 4rem); line-height: 1.04; letter-spacing: -.055em; }
.section-heading > p:last-child { max-width: 710px; color: var(--muted); font-size: clamp(1rem, 1.5vw, 1.12rem); }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

.brand { display: inline-flex; align-items: center; gap: 10px; font: 800 .94rem/1 var(--pixel); letter-spacing: -.04em; white-space: nowrap; }
.brand b { color: var(--cyan); }
.brand-mark { display: grid; place-items: center; width: 38px; height: 34px; color: var(--bg); background: linear-gradient(135deg, var(--cyan), var(--lime)); border-radius: 8px 3px; font-size: .72rem; box-shadow: 0 0 22px rgba(var(--cyan-rgb), .25); }
.button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: .76rem 1.25rem; border: 1px solid var(--accent); border-radius: 10px 3px; font: 800 .73rem/1 var(--pixel); cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #00141a; background: var(--accent); box-shadow: 0 8px 30px rgba(var(--accent-rgb), .24); }
.button-primary:hover { box-shadow: 0 12px 40px rgba(var(--accent-rgb), .38); }
.button-ghost { background: rgba(16, 25, 54, .65); border-color: rgba(169, 180, 208, .3); }
.button-ghost:hover { border-color: var(--accent); background: rgba(var(--accent-rgb), .08); }

/* Access gate */
.access-view { position: fixed; z-index: 5000; inset: 0; min-height: 100dvh; display: grid; place-items: center; overflow: auto; padding: 34px 20px; background-color: var(--bg); }
.access-view.is-unlocking { animation: unlock .7s ease forwards; pointer-events: none; }
.access-shell { width: min(100%, 520px); display: grid; justify-items: center; gap: 24px; }
.access-card { position: relative; width: 100%; padding: clamp(28px, 6vw, 50px); overflow: hidden; background: linear-gradient(145deg, rgba(16,25,54,.97), rgba(7,11,29,.98)); border: 1px solid rgba(var(--cyan-rgb), .34); border-radius: 28px 7px; box-shadow: var(--shadow), 0 0 80px rgba(var(--cyan-rgb), .08); }
.access-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .3; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 28px 28px; mask-image: linear-gradient(to bottom, #000, transparent 70%); }
.access-card > * { position: relative; }
.access-card.is-error { animation: errorShake .38s ease; }
.access-icon { display: grid; place-items: center; width: 70px; height: 70px; margin-bottom: 22px; color: var(--cyan); background: rgba(var(--cyan-rgb), .08); border: 1px solid rgba(var(--cyan-rgb), .35); border-radius: 18px 5px; font: 900 1.35rem/1 var(--pixel); box-shadow: inset 0 0 24px rgba(var(--cyan-rgb), .08); }
.access-card h1 { margin-bottom: 13px; font-size: clamp(2rem, 7vw, 3.35rem); line-height: 1; letter-spacing: -.055em; }
.access-card > p:not(.eyebrow) { margin-bottom: 26px; color: var(--muted); }
.access-card form { display: grid; gap: 12px; }
.access-card label { font: 800 .72rem/1.4 var(--pixel); }
.access-card input { width: 100%; height: 64px; padding: 0 18px; color: var(--text); background: rgba(3,6,17,.8); border: 1px solid rgba(169,180,208,.3); border-radius: 10px 3px; font: 700 1.5rem/1 var(--pixel); letter-spacing: .35em; text-align: center; }
.access-card input:focus { border-color: var(--cyan); box-shadow: 0 0 0 4px rgba(var(--cyan-rgb), .1); outline: 0; }
.access-card small { color: var(--muted-2); font-size: .76rem; }
.access-card .button { width: 100%; margin-top: 8px; }
.form-message { min-height: 25px; margin: 0; color: var(--yellow); font-size: .82rem; }
.form-message.is-success { color: var(--lime); }
.back-link { display: inline-flex; min-height: 44px; align-items: center; margin-top: 8px; color: var(--muted); font-size: .82rem; }
.back-link:hover { color: var(--cyan); }
.access-foot { margin: 0; color: var(--muted-2); font: .66rem/1.5 var(--pixel); text-align: center; }
.access-glow { position: absolute; width: 420px; height: 420px; border-radius: 50%; filter: blur(120px); opacity: .12; }
.access-glow-a { top: -150px; left: -100px; background: var(--cyan); }
.access-glow-b { right: -120px; bottom: -170px; background: var(--pink); }

/* Header and hero */
.reading-progress { position: fixed; z-index: 1200; inset: 0 0 auto; height: 3px; }
.reading-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--cyan), var(--lime), var(--pink)); box-shadow: 0 0 12px var(--accent); }
.pensum-header { position: sticky; z-index: 1000; top: 0; height: 70px; background: rgba(5,8,22,.88); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.header-shell { height: 100%; display: flex; align-items: center; gap: 22px; }
.document-label { margin-right: auto; padding-left: 18px; color: var(--muted-2); border-left: 1px solid var(--line); font: 800 .62rem/1 var(--pixel); letter-spacing: .08em; }
.pensum-menu { display: flex; align-items: center; gap: 16px; font-size: .76rem; font-weight: 700; }
.pensum-menu > a { min-height: 44px; display: inline-flex; align-items: center; color: #c8d1e8; }
.pensum-menu > a:hover { color: var(--accent); }
.header-action { min-height: 44px; padding: .55rem .72rem; color: var(--text); background: rgba(16,25,54,.75); border: 1px solid var(--line); border-radius: 8px 3px; font: 800 .62rem/1 var(--pixel); cursor: pointer; }
.header-action:hover { border-color: var(--accent); }
.header-action.danger:hover { color: #fff; border-color: var(--pink); background: rgba(var(--pink-rgb),.1); }
.menu-toggle { display: none; width: 48px; height: 48px; padding: 10px; background: transparent; border: 1px solid var(--line); border-radius: 9px; }
.menu-toggle i { display: block; width: 22px; height: 2px; margin: 5px auto; background: currentColor; transition: transform .25s ease, opacity .25s ease; }

.pensum-hero { position: relative; min-height: calc(100vh - 70px); display: grid; align-content: center; overflow: hidden; padding: clamp(75px, 9vw, 130px) 0 48px; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); align-items: center; gap: clamp(38px, 6vw, 80px); }
.hero-copy h1 { margin-bottom: 26px; font-size: clamp(2.8rem, 5.7vw, 5.5rem); line-height: .96; letter-spacing: -.07em; }
.hero-copy h1 em { display: block; color: transparent; background: linear-gradient(90deg, var(--cyan), var(--lime)); background-clip: text; -webkit-background-clip: text; font-style: normal; }
.hero-lead { max-width: 680px; color: #c2cbe1; font-size: clamp(1.02rem, 1.6vw, 1.18rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.executive-console { overflow: hidden; background: rgba(9,14,34,.92); border: 1px solid rgba(var(--cyan-rgb),.35); border-radius: 22px 6px; box-shadow: var(--shadow), 0 0 60px rgba(var(--cyan-rgb),.08); }
.console-top { height: 46px; display: flex; align-items: center; gap: 7px; padding: 0 16px; color: var(--muted-2); background: #10162e; border-bottom: 1px solid var(--line); font: .61rem/1 var(--pixel); }
.console-top span { width: 8px; height: 8px; background: var(--pink); border-radius: 50%; }
.console-top span:nth-child(2) { background: var(--yellow); }
.console-top span:nth-child(3) { background: var(--lime); }
.console-top b { margin-left: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.counter-grid { display: grid; grid-template-columns: 1fr 1fr; }
.counter-grid > div { min-height: 128px; display: grid; align-content: center; padding: 20px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.counter-grid > div:nth-child(even) { border-right: 0; }
.counter-grid strong { color: var(--yellow); font: 900 clamp(1.65rem, 4vw, 2.6rem)/1 var(--pixel); }
.counter-grid span { margin-top: 8px; color: var(--muted); font-size: .75rem; }
.executive-console > p { margin: 15px 20px; color: var(--muted-2); font-size: .7rem; }
.console-path { display: flex; flex-wrap: wrap; gap: 8px; padding: 18px 20px 22px; color: var(--muted); font: 700 .59rem/1.5 var(--pixel); }
.console-path i { color: var(--pink); font-style: normal; }
.console-path strong { color: var(--lime); }
.promise-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 18px; margin-top: clamp(54px,8vw,90px); padding: 18px; color: var(--muted); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font: 700 .67rem/1.5 var(--pixel); text-align: center; }
.promise-strip i { color: var(--pink); font-style: normal; }
.hero-orb { position: absolute; width: 480px; height: 480px; border-radius: 50%; filter: blur(130px); opacity: .1; }
.orb-a { top: -100px; right: -100px; background: var(--pink); }
.orb-b { bottom: -150px; left: -100px; background: var(--cyan); }

/* Overview */
.overview { background: #080c1e; }
.month-map { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; padding: 0; margin: 0 0 70px; list-style: none; }
.month-map::before { content: ""; position: absolute; z-index: 0; top: 24px; right: 4%; left: 4%; height: 2px; background: linear-gradient(90deg,var(--cyan),var(--lime),var(--yellow),var(--pink)); }
.month-map li { position: relative; z-index: 1; min-height: 160px; padding: 66px 18px 20px; background: rgba(16,25,54,.72); border: 1px solid var(--line); border-radius: 14px 4px; }
.month-map li::before { content: ""; position: absolute; top: 17px; left: 18px; width: 15px; height: 15px; background: var(--bg); border: 4px solid var(--cyan); border-radius: 50%; box-shadow: 0 0 16px rgba(var(--cyan-rgb),.5); }
.month-map li:nth-child(2)::before { border-color: var(--lime); }.month-map li:nth-child(3)::before,.month-map li:nth-child(5)::before { border-color: var(--yellow); }.month-map li:nth-child(4)::before,.month-map li:nth-child(6)::before { border-color: var(--pink); }
.month-map b,.month-map span,.month-map small { display: block; }
.month-map b { color: var(--accent); font: 800 .64rem/1 var(--pixel); }
.month-map span { margin-top: 12px; font-weight: 800; line-height: 1.25; }
.month-map small { margin-top: 9px; color: var(--muted-2); }
.age-comparison { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: rgba(16,25,54,.64); border: 1px solid var(--line); border-radius: 24px 6px; }
.age-comparison article { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 25px; padding: clamp(28px,4vw,48px); }
.age-comparison article + article { border-left: 1px solid var(--line); }
.age-comparison h3 { margin-bottom: 12px; font-size: 1.3rem; line-height: 1.25; }
.age-comparison p:last-child { margin: 0; color: var(--muted); }
.age-badge { display: grid; place-items: center; width: 74px; height: 58px; color: var(--bg); background: var(--cyan); border-radius: 10px 3px; font: 900 .84rem/1 var(--pixel); }
.age-badge.creators { background: var(--pink); }

/* Curriculum */
.curriculum-section { padding-bottom: 150px; }
.route-selector { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(330px,.8fr); gap: 16px; margin-bottom: 16px; }
.age-tabs,.track-switch { display: grid; overflow: hidden; background: rgba(10,15,37,.9); border: 1px solid var(--line); border-radius: 18px 5px; }
.age-tabs { grid-template-columns: 1fr 1fr; }
.age-tab { position: relative; min-height: 112px; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-content: center; gap: 3px 16px; padding: 20px 24px; color: var(--muted); background: transparent; border: 0; cursor: pointer; text-align: left; }
.age-tab + .age-tab { border-left: 1px solid var(--line); }
.age-tab::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--cyan); transform: scaleX(0); transition: transform .25s ease; }
.age-tab:nth-child(2)::after { background: var(--pink); }
.age-tab.is-active { color: var(--text); background: rgba(var(--cyan-rgb),.05); }
.age-tab:nth-child(2).is-active { background: rgba(var(--pink-rgb),.05); }
.age-tab.is-active::after { transform: scaleX(1); }
.age-tab b { grid-row: 1/3; align-self: stretch; min-width: 66px; display: grid; place-items: center; color: var(--bg); background: var(--cyan); border-radius: 9px 3px; font: 900 .85rem/1 var(--pixel); }
.age-tab:nth-child(2) b { background: var(--pink); }
.age-tab span { font-weight: 850; }.age-tab small { color: var(--muted-2); }
.track-switch { grid-template-columns: 1fr 1fr; }
.track-switch button { min-height: 112px; padding: 20px; color: var(--muted); background: transparent; border: 0; cursor: pointer; }
.track-switch button + button { border-left: 1px solid var(--line); }
.track-switch button.is-active { color: var(--text); background: rgba(var(--accent-rgb),.08); box-shadow: inset 0 -3px var(--accent); }
.track-switch span,.track-switch small { display: block; }.track-switch span { font-weight: 850; }.track-switch small { margin-top: 6px; color: var(--muted-2); font-size: .7rem; }
.selection-summary { min-height: 58px; display: flex; align-items: center; gap: 10px; padding: 12px 18px; margin-bottom: 40px; color: var(--muted); background: rgba(var(--accent-rgb),.055); border: 1px solid rgba(var(--accent-rgb),.25); border-radius: 10px 3px; font: 700 .68rem/1.5 var(--pixel); }
.selection-summary b { color: var(--accent); }
.curriculum-layout { display: grid; grid-template-columns: 225px minmax(0,1fr); align-items: start; gap: clamp(28px,5vw,64px); }
.route-index { position: sticky; top: 96px; padding: 22px; background: rgba(10,15,37,.88); border: 1px solid var(--line); border-radius: 16px 4px; }
.route-index nav { display: grid; gap: 2px; }
.route-index nav a { min-height: 42px; display: flex; align-items: center; padding: 8px 10px; color: var(--muted); border-left: 2px solid transparent; font-size: .76rem; }
.route-index nav a:hover { color: var(--text); background: rgba(var(--accent-rgb),.06); border-color: var(--accent); }
.index-actions { display: grid; gap: 8px; padding-top: 18px; margin-top: 14px; border-top: 1px solid var(--line); }
.index-actions button { min-height: 42px; padding: 8px; color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 7px; font: 700 .61rem/1.3 var(--pixel); cursor: pointer; }
.index-actions button:hover { color: var(--text); border-color: var(--accent); }
.curriculum-main { display: grid; gap: 90px; }
.subheading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 26px; }
.subheading h3 { margin: 0; font-size: clamp(1.55rem,3vw,2.35rem); letter-spacing: -.035em; }
.subheading > span { color: var(--yellow); font: 800 .7rem/1.4 var(--pixel); }
.module-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.module-card { position: relative; min-height: 185px; padding: 26px; overflow: hidden; background: linear-gradient(145deg,rgba(16,25,54,.92),rgba(8,12,30,.92)); border: 1px solid var(--line); border-radius: 18px 5px; cursor: pointer; transition: transform .25s ease,border-color .25s ease; }
.module-card:hover { transform: translateY(-3px); border-color: var(--module-color,var(--accent)); }
.module-card::after { content: ""; position: absolute; right: -38px; bottom: -38px; width: 110px; height: 110px; background: var(--module-color,var(--accent)); border-radius: 50%; filter: blur(55px); opacity: .14; }
.module-card-top { display: flex; justify-content: space-between; gap: 15px; }
.module-card-top span { color: var(--module-color,var(--accent)); font: 800 .63rem/1 var(--pixel); }
.module-card-top b { color: var(--muted-2); font: 800 .63rem/1 var(--pixel); }
.module-card h4 { margin: 18px 0 11px; font-size: 1.12rem; line-height: 1.25; }
.module-card p { margin: 0; color: var(--muted); font-size: .82rem; }
.module-progress { height: 5px; margin-top: 22px; overflow: hidden; background: rgba(255,255,255,.06); border-radius: 10px; }
.module-progress i { display: block; width: var(--progress); height: 100%; background: var(--module-color,var(--accent)); }
.technology-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:10px; }
.technology-item { min-height:110px;display:grid;align-content:center;padding:18px;background:rgba(16,25,54,.62);border:1px solid var(--line);border-radius:12px 3px; }
.technology-item b { color:var(--accent);font:800 .68rem/1.3 var(--pixel); }.technology-item span { margin-top:8px;color:var(--muted);font-size:.72rem; }
.week-timeline { display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
.week-card { min-height: 116px; padding: 15px; background: rgba(16,25,54,.62); border: 1px solid var(--line); border-radius: 12px 3px; }
.week-card b { display: block; color: var(--accent); font: 800 .6rem/1 var(--pixel); }
.week-card span { display: block; margin-top: 11px; font-size: .72rem; line-height: 1.35; }
.week-card small { display: block; margin-top: 8px; color: var(--muted-2); font-size: .62rem; }
.class-tools { display: grid; grid-template-columns: minmax(250px,1fr) minmax(190px,.55fr) auto; align-items: end; gap: 12px; padding: 18px; background: rgba(10,15,37,.86); border: 1px solid var(--line); border-radius: 14px 4px; }
.class-tools label { display: grid; gap: 6px; color: var(--muted); font: 700 .64rem/1.4 var(--pixel); }
.class-tools input,.class-tools select { width: 100%; min-height: 46px; padding: 0 13px; color: var(--text); background: #070b1d; border: 1px solid rgba(169,180,208,.25); border-radius: 8px; }
.class-tools input:focus,.class-tools select:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.09); }
.expand-actions { display: flex; gap: 7px; }
.expand-actions button { min-height: 46px; padding: 8px 11px; background: transparent; border: 1px solid var(--line); border-radius: 7px; font: 700 .58rem/1.25 var(--pixel); cursor: pointer; }
.expand-actions button:hover { border-color: var(--accent); }
.results-status { min-height: 24px; margin: 13px 2px; color: var(--muted); font-size: .77rem; }
.class-list { display: grid; gap: 10px; }
.class-card { overflow: hidden; background: rgba(12,18,43,.88); border: 1px solid var(--line); border-radius: 14px 4px; }
.class-card[open] { border-color: rgba(var(--accent-rgb),.36); box-shadow: 0 16px 40px rgba(0,0,0,.2); }
.class-card summary { position: relative; min-height: 100px; display: grid; grid-template-columns: 70px minmax(0,1fr) auto; align-items: center; gap: 20px; padding: 16px 22px; cursor: pointer; list-style: none; }
.class-card summary::-webkit-details-marker { display: none; }
.class-number { display: grid; place-items: center; align-content: center; width: 62px; height: 62px; color: var(--bg); background: var(--accent); border-radius: 12px 3px; font: 900 1.25rem/1 var(--pixel); }
.class-number small { margin-top: 5px; font-size: .46rem; }
.class-summary-copy b,.class-summary-copy span { display: block; }
.class-summary-copy b { font-size: 1rem; line-height: 1.25; }
.class-summary-copy span { margin-top: 6px; color: var(--muted-2); font: .61rem/1.4 var(--pixel); }
.class-toggle-icon { width: 40px; height: 40px; display: grid; place-items: center; color: var(--accent); border: 1px solid var(--line); border-radius: 50%; font-size: 1.1rem; transition: transform .25s ease; }
.class-card[open] .class-toggle-icon { transform: rotate(45deg); }
.class-detail { padding: 4px 28px 30px 112px; border-top: 1px solid var(--line); }
.question-box { padding: 18px 20px; margin: 22px 0; color: #e7edfb; background: rgba(var(--accent-rgb),.055); border-left: 3px solid var(--accent); border-radius: 0 8px 8px 0; }
.question-box small { display: block; margin-bottom: 6px; color: var(--accent); font: 800 .59rem/1 var(--pixel); }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-block { padding: 18px; background: rgba(255,255,255,.022); border: 1px solid var(--line); border-radius: 10px 3px; }
.detail-block.wide { grid-column: 1/-1; }
.detail-block h4 { margin-bottom: 9px; color: var(--yellow); font: 800 .62rem/1.3 var(--pixel); letter-spacing: .05em; }
.detail-block p,.detail-block li { color: #c2cbe1; font-size: .82rem; }
.detail-block p:last-child { margin-bottom: 0; }
.chip-list { display: flex; flex-wrap: wrap; gap: 7px; padding: 0; margin: 0; list-style: none; }
.chip-list li { padding: 5px 9px; background: rgba(var(--accent-rgb),.07); border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 5px; font: 700 .62rem/1.4 var(--pixel); }
.flow-list { display: grid; gap: 7px; padding: 0; margin: 0; list-style: none; }
.flow-list li { display: grid; grid-template-columns: 105px 40px minmax(0,1fr); gap: 8px; align-items: baseline; padding-bottom: 7px; border-bottom: 1px dashed var(--line); }
.flow-list b { color: var(--accent); font: 700 .6rem/1.3 var(--pixel); }.flow-list time { color: var(--yellow); font: 700 .6rem/1.3 var(--pixel); }
.empty-state { padding: 45px; color: var(--muted); border: 1px dashed var(--line); border-radius: 14px; text-align: center; }

/* Method, labs and reporting */
.methodology { background: #080c1e; }
.method-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: clamp(40px,7vw,90px); }
.method-grid .section-heading { margin: 0; }
.session-ring { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; padding: 0; margin: 0; list-style: none; }
.session-ring li { min-height: 125px; display: grid; align-content: center; padding: 18px; background: rgba(16,25,54,.76); border: 1px solid var(--line); border-radius: 14px 4px; }
.session-ring li:last-child { grid-column: 2/4; }
.session-ring b { color: var(--accent); font: 900 1.4rem/1 var(--pixel); }.session-ring span { margin-top: 10px; color: var(--muted); font-size: .76rem; }
.lab-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.lab-card { min-height: 400px; display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(145deg,rgba(16,25,54,.94),rgba(7,11,28,.94)); border: 1px solid var(--line); border-radius: 20px 5px; }
.lab-head { padding: 24px 25px 16px; }
.lab-head > span { color: var(--accent); font: 800 .59rem/1 var(--pixel); }
.lab-head h3 { margin: 12px 0 8px; font-size: 1.25rem; }
.lab-head p { margin: 0; color: var(--muted); font-size: .8rem; }
.lab-stage { flex: 1; min-height: 225px; display: grid; place-items: center; padding: 22px; background-color: rgba(3,6,17,.68); background-image: linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size: 28px 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-controls { display: flex; flex-wrap: wrap; gap: 8px; padding: 17px 22px; }
.lab-controls button,.lab-controls select { min-height: 44px; padding: 8px 12px; color: var(--text); background: rgba(16,25,54,.9); border: 1px solid var(--line); border-radius: 7px 2px; font: 700 .62rem/1.2 var(--pixel); cursor: pointer; }
.lab-controls button:hover { border-color: var(--accent); }.lab-controls button:disabled { cursor: not-allowed; opacity: .45; }
.lab-feedback { min-height: 48px; display: flex; align-items: center; padding: 10px 24px 18px; margin: 0; color: #cad3e8; font-size: .78rem; }
.lab-visual { width: 100%; display: grid; gap: 12px; }
.demo-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 9px; }
.demo-node { min-width: 54px; min-height: 44px; display: grid; place-items: center; padding: 8px; color: var(--muted); background: #0d1532; border: 1px solid var(--line); border-radius: 8px 3px; font: 700 .62rem/1.25 var(--pixel); text-align: center; }
.demo-node.is-active { color: var(--bg); background: var(--accent); border-color: var(--accent); box-shadow: 0 0 20px rgba(var(--accent-rgb),.28); }
.pseudo-lines { display: grid; gap: 4px; width: min(100%,460px); }
.pseudo-lines code { display: block; padding: 6px 10px; color: var(--muted); background: #060a1a; border-left: 2px solid transparent; font: .65rem/1.35 var(--pixel); }
.pseudo-lines code.is-active { color: var(--text); border-color: var(--lime); background: rgba(var(--lime-rgb),.06); }
.switch { min-width: 74px; }
.light-output { width: 82px; height: 82px; display: grid; place-items: center; margin: auto; color: var(--muted); background: #0d1532; border: 2px solid var(--line); border-radius: 50%; font: 800 .65rem/1 var(--pixel); }
.light-output.is-on { color: #151000; background: var(--yellow); border-color: #fff2a8; box-shadow: 0 0 34px rgba(255,200,87,.55); }
.truth-table { width: 100%; border-collapse: collapse; font: .62rem/1.4 var(--pixel); text-align: center; }.truth-table th,.truth-table td { padding: 6px; border: 1px solid var(--line); }.truth-table tr.is-current { color: var(--bg); background: var(--accent); }
.robot-track { position: relative; height: 78px; overflow: hidden; background: #071021; border: 1px solid var(--line); border-radius: 10px; }
.robot-piece { position: absolute; bottom: 12px; left: 10px; width: 45px; height: 45px; display: grid; place-items: center; color: var(--bg); background: var(--cyan); border-radius: 10px; font: 900 .65rem/1 var(--pixel); transform: translateX(calc(var(--robot-step,0) * 55px)); transition: transform .35s ease; }
.git-line { display: flex; align-items: center; gap: 8px; overflow-x: auto; padding: 10px; }.commit-dot { flex: 0 0 48px; height: 48px; display: grid; place-items: center; background: #101936; border: 3px solid var(--yellow); border-radius: 50%; font: 800 .55rem/1 var(--pixel); }.commit-link { flex: 0 0 28px; height: 2px; background: var(--yellow); }.commit-dot.branch { transform: translateY(-18px); border-color: var(--pink); }.commit-dot.merge { border-color: var(--lime); }
.web-preview { width: min(100%,400px); min-height: 150px; padding: 18px; background: #f4f7ff; border-radius: 10px; color: #17213d; }.web-preview h4 { display:none; }.web-preview.has-title h4 { display:block; }.web-preview.is-styled { background: linear-gradient(135deg,#dffbff,#efffde); border: 5px solid #00aabe; }.web-preview .preview-button { display:none; }.web-preview.is-interactive .preview-button { display:inline-flex; padding: 8px 12px; color:#fff; background:#5538df; border:0; border-radius:6px; }
.phone { width: 190px; min-height: 300px; padding: 16px 10px; background: #11182c; border: 7px solid #6b789a; border-radius: 28px; box-shadow: var(--shadow); }.phone-screen { min-height: 250px; display: grid; align-content: center; justify-items: center; gap: 12px; padding: 18px; color: #10152b; background: #eff8ff; border-radius: 14px; text-align: center; }.widget-tree { display: flex; flex-wrap: wrap; gap: 6px; justify-content:center; }.widget-tree span { padding: 5px 7px; color:var(--muted); border:1px solid var(--line); border-radius:4px; font:.55rem/1 var(--pixel); }.widget-tree span.is-active { color:var(--bg); background:var(--pink); }
.game-board { position: relative; width: min(100%,430px); height: 170px; overflow:hidden; background: linear-gradient(#07162d 70%,#132b36 70%); border:1px solid var(--line); border-radius:10px; }.game-player,.game-coin,.game-obstacle { position:absolute; bottom:51px; display:grid; place-items:center; }.game-player { left:var(--player-x,10%); width:36px;height:36px;color:var(--bg);background:var(--cyan);border-radius:8px;transition:left .2s ease; }.game-coin { left:72%; width:24px;height:24px;color:#211a00;background:var(--yellow);border-radius:50%; }.game-obstacle { left:48%; width:18px;height:42px;background:var(--pink); }.game-score { position:absolute;top:9px;right:10px;font:800 .62rem/1 var(--pixel); }
.token-line { min-height: 72px; display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:15px;background:#060a1a;border:1px solid var(--line);border-radius:9px; }.token-line span { padding:5px 8px;color:var(--bg);background:var(--cyan);border-radius:4px;font:700 .67rem/1.2 var(--pixel);animation:tokenIn .25s ease; }
.prompt-parts { display:grid;grid-template-columns:repeat(2,1fr);gap:7px; }.prompt-parts span { padding:8px;color:var(--muted);background:#0c1430;border:1px solid var(--line);border-radius:5px;font:.6rem/1.3 var(--pixel); }.prompt-parts span.is-active { color:var(--bg);background:var(--lime); }
.agent-map { display:flex;align-items:center;gap:6px;overflow-x:auto;padding:18px 3px; }.agent-map span { flex:0 0 auto;padding:9px;color:var(--muted);background:#0d1532;border:1px solid var(--line);border-radius:6px;font:.55rem/1.2 var(--pixel); }.agent-map span.is-active { color:var(--bg);background:var(--accent); }.agent-map i { color:var(--pink);font-style:normal; }
.project-map { display:grid;grid-template-columns:repeat(4,1fr);gap:7px; }.project-map span { min-height:48px;display:grid;place-items:center;padding:7px;color:var(--muted);background:#0d1532;border:1px solid var(--line);border-radius:6px;font:.54rem/1.25 var(--pixel);text-align:center; }.project-map span.is-active { color:var(--bg);background:var(--pink); }

.assessment { background:#080c1e; }
.assessment-grid { display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(40px,7vw,90px); }
.assessment-grid .section-heading { margin:0; }
.report-mock { overflow:hidden;background:#f6f8fc;color:#16213d;border-radius:20px 5px;box-shadow:var(--shadow); }
.report-head { display:flex;justify-content:space-between;gap:15px;padding:18px 22px;color:#041622;background:linear-gradient(90deg,var(--cyan),var(--lime));font:800 .62rem/1 var(--pixel); }
.report-person { display:flex;align-items:center;gap:15px;padding:22px;border-bottom:1px solid #dce2ef; }.report-person > span { width:48px;height:48px;display:grid;place-items:center;color:#fff;background:#17213d;border-radius:10px;font:800 .7rem/1 var(--pixel); }.report-person b,.report-person small { display:block; }.report-person small { color:#68738f; }
.report-mock ul { display:grid;gap:10px;padding:20px 22px;margin:0;list-style:none; }.report-mock li { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding-bottom:9px;border-bottom:1px solid #dfe4ee;font-size:.75rem; }.report-mock li span { padding:4px 7px;color:#114643;background:#d9f7ea;border-radius:4px;font:700 .52rem/1.2 var(--pixel); }
.report-scale { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0 22px 24px; }.report-scale span { padding:8px 4px;color:#52607b;background:#e8ecf4;font-size:.53rem;text-align:center; }
.evidence-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:45px; }.evidence-grid article { min-height:120px;display:grid;align-content:center;padding:20px;background:rgba(16,25,54,.72);border:1px solid var(--line);border-radius:13px 4px; }.evidence-grid b { color:var(--yellow);font:900 1.45rem/1 var(--pixel); }.evidence-grid span { margin-top:9px;color:var(--muted);font-size:.74rem; }
.safety-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:14px; }.safety-grid article { min-height:260px;padding:26px;background:linear-gradient(145deg,rgba(16,25,54,.9),rgba(7,11,28,.9));border:1px solid var(--line);border-radius:17px 5px; }.safety-grid article > span { color:var(--lime);font:900 1.4rem/1 var(--pixel); }.safety-grid h3 { margin:30px 0 12px;font-size:1.12rem; }.safety-grid p { margin:0;color:var(--muted);font-size:.83rem; }
.final-project { background:radial-gradient(circle at 80% 30%,rgba(var(--pink-rgb),.1),transparent 42%),#080c1e; }.final-grid { display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:clamp(40px,7vw,90px); }.final-grid .section-heading { margin:0; }.project-tags { display:flex;flex-wrap:wrap;gap:8px;margin-top:26px; }.project-tags span { padding:7px 10px;color:var(--pink);background:rgba(var(--pink-rgb),.06);border:1px solid rgba(var(--pink-rgb),.26);border-radius:5px;font:800 .61rem/1 var(--pixel); }.final-stages { display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;margin:0;counter-reset:stage;list-style:none; }.final-stages li { min-height:90px;display:flex;align-items:center;gap:10px;padding:16px;background:rgba(16,25,54,.78);border:1px solid var(--line);border-radius:12px 3px;font-size:.76rem; }.final-stages li::before { counter-increment:stage;content:counter(stage,decimal-leading-zero);color:var(--pink);font:900 .72rem/1 var(--pixel); }
.final-cta { position:relative;padding:90px 0;text-align:center; }.final-cta .container { display:grid;justify-items:center; }.final-cta h2 { max-width:850px;margin-bottom:28px;font-size:clamp(2.2rem,5vw,4.7rem);line-height:1;letter-spacing:-.06em; }.final-cta .eyebrow { justify-content:center; }.final-cta .container > div { display:flex;flex-wrap:wrap;justify-content:center;gap:12px; }
.pensum-footer { padding:65px 0 24px;background:#03050e;border-top:1px solid var(--line); }.footer-grid { display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:45px;padding-bottom:48px; }.footer-grid > div { display:grid;align-content:start;justify-items:start;gap:8px; }.footer-grid p,.footer-grid a:not(.brand) { color:var(--muted);font-size:.78rem; }.footer-grid b:not(.brand b) { margin-bottom:8px;font:800 .67rem/1 var(--pixel); }.footer-grid a:hover { color:var(--accent); }.footer-bottom { display:flex;justify-content:space-between;gap:20px;padding-top:20px;color:var(--muted-2);border-top:1px solid var(--line);font-size:.68rem; }.footer-bottom button { padding:0;color:var(--muted);background:none;border:0;cursor:pointer; }.footer-bottom button:hover { color:var(--pink); }
.back-top { position:fixed;z-index:800;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));width:48px;height:48px;color:var(--bg);background:var(--accent);border:0;border-radius:12px 4px;box-shadow:0 10px 32px rgba(var(--accent-rgb),.28);font:900 1rem/1 var(--pixel);cursor:pointer;opacity:0;transform:translateY(15px);pointer-events:none;transition:opacity .25s ease,transform .25s ease; }.back-top.is-visible { opacity:1;transform:none;pointer-events:auto; }

/* Presentation */
.presentation { position:fixed;z-index:6000;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#03050f; }
.presentation-stage { position:relative;overflow:hidden; }
.presentation-slide { position:absolute;inset:0;display:grid;place-items:center;padding:clamp(35px,7vw,100px);opacity:0;transform:translateX(35px);pointer-events:none;transition:opacity .35s ease,transform .35s ease;background-image:radial-gradient(circle at 80% 20%,rgba(var(--cyan-rgb),.1),transparent 35%),linear-gradient(rgba(var(--cyan-rgb),.03) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--cyan-rgb),.03) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px; }
.presentation-slide.is-active { opacity:1;transform:none;pointer-events:auto; }
.slide-content { width:min(100%,1050px); }.slide-content .mini-label { font-size:.8rem; }.slide-content h2 { max-width:900px;margin-bottom:25px;font-size:clamp(2.3rem,6vw,5.5rem);line-height:.98;letter-spacing:-.065em; }.slide-content > p { max-width:800px;color:var(--muted);font-size:clamp(1rem,2vw,1.35rem); }.slide-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:35px; }.slide-stats article { min-height:130px;padding:22px;background:rgba(16,25,54,.8);border:1px solid var(--line);border-radius:15px 4px; }.slide-stats b,.slide-stats span { display:block; }.slide-stats b { color:var(--yellow);font:900 clamp(1.5rem,4vw,2.5rem)/1 var(--pixel); }.slide-stats span { margin-top:12px;color:var(--muted); }.presentation-controls { min-height:76px;display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 18px;background:#080c1e;border-top:1px solid var(--line); }.presentation-controls button { min-height:48px;padding:10px 16px;background:#101936;border:1px solid var(--line);border-radius:8px;color:var(--text);cursor:pointer; }.presentation-controls button:hover { border-color:var(--cyan); }.presentation-controls p { min-width:85px;margin:0;color:var(--muted);font:700 .68rem/1 var(--pixel);text-align:center; }.presentation-controls #presentation-close { color:var(--pink); }.presentation-controls .presentation-logout { color:#fff;background:rgba(var(--pink-rgb),.13);border-color:rgba(var(--pink-rgb),.45); }

@keyframes unlock { to { opacity:0;transform:scale(1.03); } }
@keyframes errorShake { 20%,60% { transform:translateX(-8px); } 40%,80% { transform:translateX(8px); } }
@keyframes tokenIn { from { opacity:0;transform:translateY(7px); } }

@media (max-width:1080px) {
  .pensum-menu > a { display:none; }
  .week-timeline { grid-template-columns:repeat(4,1fr); }
  .class-tools { grid-template-columns:1fr 1fr; }.expand-actions { grid-column:1/-1; }
  .safety-grid { grid-template-columns:1fr 1fr; }.safety-grid article { min-height:220px; }
}

@media (max-width:900px) {
  .container { width:min(calc(100% - 32px),var(--container)); }
  .hero-grid,.method-grid,.assessment-grid,.final-grid { grid-template-columns:1fr; }
  .executive-console { max-width:650px; }
  .month-map { grid-template-columns:repeat(3,1fr); }.month-map::before { display:none; }
  .route-selector { grid-template-columns:1fr; }
  .curriculum-layout { grid-template-columns:1fr; }.route-index { position:static;display:grid;grid-template-columns:1fr auto;align-items:start; }.route-index nav { display:flex;flex-wrap:wrap; }.route-index nav a { border-left:0;border-bottom:2px solid transparent; }.index-actions { padding:0;margin:0;border:0; }
  .session-ring { grid-template-columns:repeat(4,1fr); }
  .lab-grid { grid-template-columns:1fr; }.lab-card { min-height:370px; }
  .final-stages { max-width:700px; }
}

@media (max-width:760px) {
  html { scroll-padding-top:78px; }
  .pensum-header { height:64px; }.document-label { display:none; }.header-shell { justify-content:space-between; }
  .menu-toggle { display:block; }.menu-toggle[aria-expanded="true"] i:first-of-type { transform:translateY(7px) rotate(45deg); }.menu-toggle[aria-expanded="true"] i:nth-of-type(2) { opacity:0; }.menu-toggle[aria-expanded="true"] i:nth-of-type(3) { transform:translateY(-7px) rotate(-45deg); }
  .pensum-menu { position:fixed;top:64px;right:0;left:0;display:none;max-height:calc(100dvh - 64px);overflow:auto;padding:15px 16px 24px;background:rgba(5,8,22,.98);border-bottom:1px solid var(--line);box-shadow:var(--shadow); }
  .pensum-menu.is-open { display:grid; }.pensum-menu > a { display:flex;min-height:48px;padding:8px 10px;border-bottom:1px solid var(--line); }.header-action { min-height:48px;text-align:left; }
  .pensum-hero { min-height:auto; }.hero-copy h1 { font-size:clamp(2.55rem,12vw,4.7rem); }
  .age-comparison { grid-template-columns:1fr; }.age-comparison article + article { border-top:1px solid var(--line);border-left:0; }
  .week-timeline { display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px; }.week-card { flex:0 0 145px;scroll-snap-align:start; }
  .technology-grid { grid-template-columns:repeat(2,1fr); }
  .module-grid { grid-template-columns:1fr; }
  .class-card summary { grid-template-columns:58px minmax(0,1fr) 38px;gap:12px;padding:14px; }.class-number { width:54px;height:54px; }.class-detail { padding:4px 18px 24px; }.detail-grid { grid-template-columns:1fr; }.detail-block.wide { grid-column:auto; }
  .session-ring { grid-template-columns:repeat(2,1fr); }.session-ring li:last-child { grid-column:1/-1; }
  .safety-grid { grid-template-columns:1fr; }.safety-grid article { min-height:auto; }
  .evidence-grid { grid-template-columns:1fr 1fr; }.footer-grid { grid-template-columns:1fr 1fr; }.footer-grid > div:first-child { grid-column:1/-1; }
}

@media (max-width:620px) {
  .container { width:calc(100% - 24px); }
  .section { padding:72px 0; }
  .access-view { padding:18px 12px; }.access-shell { gap:16px; }.access-card { padding:25px 20px; }.access-card input { height:58px; }
  .pensum-hero { padding-top:70px; }.hero-copy h1 { font-size:clamp(2.35rem,13vw,3.9rem); }.hero-actions { display:grid; }.hero-actions .button { width:100%; }
  .counter-grid > div { min-height:112px;padding:16px; }.counter-grid strong { font-size:1.8rem; }.promise-strip { justify-content:flex-start;text-align:left; }
  .month-map { display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px; }.month-map li { flex:0 0 210px;scroll-snap-align:start; }
  .age-comparison article { grid-template-columns:1fr; }.age-badge { width:70px; }
  .age-tabs { grid-template-columns:1fr; }.age-tab + .age-tab { border-top:1px solid var(--line);border-left:0; }.age-tab { min-height:94px; }.track-switch button { min-height:94px;padding:14px 8px; }
  .selection-summary { align-items:flex-start; }
  .route-index { display:block;overflow:hidden; }.route-index nav { flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px; }.route-index nav a { flex:0 0 auto; }.index-actions { display:grid;grid-template-columns:1fr 1fr;margin-top:14px; }
  .subheading { align-items:start;flex-direction:column; }.class-tools { grid-template-columns:1fr; }.expand-actions { grid-column:auto;display:grid;grid-template-columns:1fr 1fr; }
  .class-card summary { grid-template-columns:50px minmax(0,1fr) 34px;gap:9px;padding:12px 10px; }.class-number { width:48px;height:50px;font-size:1rem; }.class-summary-copy b { font-size:.89rem; }.class-summary-copy span { font-size:.55rem; }.class-toggle-icon { width:34px;height:34px; }
  .flow-list li { grid-template-columns:85px 34px minmax(0,1fr); }.detail-block { padding:15px; }
  .lab-head { padding:21px 18px 14px; }.lab-stage { padding:16px 10px; }.lab-controls { padding:14px 16px; }.lab-feedback { padding:8px 18px 16px; }.project-map { grid-template-columns:repeat(2,1fr); }
  .report-head { align-items:flex-start;flex-direction:column; }.report-mock li { grid-template-columns:1fr; }.report-mock li span { justify-self:start; }.report-scale { grid-template-columns:1fr 1fr; }
  .final-stages { grid-template-columns:1fr; }.evidence-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr; }.footer-grid > div:first-child { grid-column:auto; }.footer-bottom { flex-direction:column; }
  .footer-grid a:not(.brand) { min-height:44px;display:flex;align-items:center; }
  .presentation-slide { padding:30px 20px 90px; }.slide-stats { grid-template-columns:1fr 1fr; }.presentation-controls { position:absolute;z-index:2;right:0;bottom:0;left:0;gap:8px; }.presentation-controls button { padding:8px 11px; }.presentation-controls button span { display:none; }.presentation-controls p { min-width:55px; }
}

@media (max-width:370px) {
  .brand { font-size:.8rem; }.brand-mark { width:34px;height:31px; }
  .counter-grid { grid-template-columns:1fr; }.counter-grid > div { min-height:90px;border-right:0; }
  .track-switch { grid-template-columns:1fr; }.track-switch button + button { border-top:1px solid var(--line);border-left:0; }
  .age-tab { padding:16px 12px; }.age-tab b { min-width:58px; }
  .evidence-grid { grid-template-columns:1fr; }.slide-stats { grid-template-columns:1fr; }
  .technology-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  .reveal { opacity:1;transform:none; }
}

@media print {
  @page { margin:1.4cm; }
  :root { --text:#121b2d;--muted:#45516b;--muted-2:#5e6980;--line:#ccd2dc; }
  html,body { min-width:0!important;color:#121b2d!important;background:#fff!important;font:10pt/1.42 Arial,sans-serif!important; }
  body::before { content:attr(data-print-cover); white-space:pre; display:block; min-height:210px;padding:85px 0 0;color:#101a30;border-bottom:4px solid #00aabe;font:bold 22pt/1.45 Arial,sans-serif; }
  body::after { content:"Tech Academy · techacademy.site/pensum.html"; display:block;margin-top:20px;padding-top:8px;color:#52607b;border-top:1px solid #ccd2dc;font-size:8pt; }
  .access-view,.pensum-header,.reading-progress,.hero-actions,.promise-strip,.route-selector,.selection-summary,.route-index,.class-tools,.results-status,.labs,.final-cta,.back-top,.presentation,.pensum-footer,.month-map::before { display:none!important; }
  body:not(.is-locked) #pensum-app { display:block!important; }
  .pensum-hero,.section,.curriculum-section,.methodology,.assessment,.safety,.final-project { min-height:0!important;padding:24px 0!important;color:#121b2d!important;background:#fff!important; }
  .container { width:100%!important; }
  .section-grid { background:none!important; }.section-grid::after,.hero-orb { display:none!important; }
  .reveal { opacity:1!important;transform:none!important; }
  .hero-grid,.method-grid,.assessment-grid,.final-grid,.age-comparison { grid-template-columns:1fr!important; }
  .hero-copy h1,.section-heading h2 { color:#121b2d!important;font-size:22pt!important; }.hero-copy h1 em { display:inline;color:#007c8e!important;background:none!important; }
  .hero-lead,.section-heading p { color:#45516b!important; }
  .executive-console,.age-comparison,.module-card,.week-card,.class-card,.session-ring li,.report-mock,.safety-grid article,.final-stages li,.evidence-grid article { color:#121b2d!important;background:#fff!important;border:1px solid #bbc3d1!important;box-shadow:none!important; }
  .console-top { color:#fff!important;background:#18233a!important; }.counter-grid > div { min-height:80px!important; }.counter-grid strong { color:#007c8e!important; }
  .month-map { grid-template-columns:repeat(3,1fr)!important;margin-bottom:28px!important; }.month-map li { min-height:100px!important;padding:18px!important;color:#121b2d!important;background:#fff!important;border:1px solid #bbc3d1!important; }
  .age-comparison article + article { border-top:1px solid #bbc3d1!important;border-left:0!important; }
  .curriculum-layout { display:block!important; }.curriculum-main { gap:35px!important; }
  .module-grid { grid-template-columns:repeat(2,1fr)!important; }.module-card { min-height:130px!important;break-inside:avoid; }
  .week-timeline { display:grid!important;grid-template-columns:repeat(6,1fr)!important;overflow:visible!important; }.week-card { min-height:75px!important; }
  .classes-section { break-before:page; }.class-list { gap:8px!important; }
  .class-card { display:block!important;break-inside:avoid;page-break-inside:avoid; }.class-card[hidden],.class-card.print-hidden { display:none!important; }
  .class-card summary { min-height:58px!important;grid-template-columns:48px 1fr!important;padding:8px!important; }.class-number { width:42px!important;height:42px!important;color:#fff!important;background:#007c8e!important; }.class-toggle-icon { display:none!important; }
  .class-detail { display:block!important;padding:8px 12px 14px!important;border-top:1px solid #ccd2dc!important; }.question-box,.detail-block { color:#121b2d!important;background:#fff!important;border-color:#ccd2dc!important; }.question-box { padding:9px!important;margin:8px 0!important; }
  .detail-grid { grid-template-columns:1fr 1fr!important;gap:6px!important; }.detail-block { padding:8px!important; }.detail-block p,.detail-block li { color:#28344d!important;font-size:8.5pt!important; }.flow-list li { grid-template-columns:80px 32px 1fr!important; }
  .methodology,.assessment,.safety,.final-project { break-before:page; }.session-ring { grid-template-columns:repeat(4,1fr)!important; }.safety-grid { grid-template-columns:repeat(2,1fr)!important; }.report-mock { color:#121b2d!important; }
  .print-ready .curriculum-section { display:none!important; }
  .print-ready #print-all-container { display:block!important; }
  .print-route { break-before:page; }
  .print-route:first-child { break-before:auto; }
  .print-module { break-before:page; }
  .print-route > .print-module:first-of-type { break-before:auto; }
  .print-module > h3 { padding-bottom:8px;color:#007c8e;border-bottom:2px solid #007c8e;font-size:15pt; }
}
