@font-face{font-family:Inter;src:url('/static/fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url('/static/fonts/FrauncesVariable.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:light;--paper:#f7f5ef;--surface:#fffefb;--ink:#163b34;--muted:#576a62;--green:#185749;--on-green:#fff;--line:#dce2d7;--shadow:0 18px 65px #293e2617;--serif:Fraunces,Georgia,serif;--sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:0}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b86523;outline-offset:5px}button,input,select{border-radius:12px}button,.button{min-height:46px}button{padding:12px 18px;background:var(--green);color:#fff;font-size:.88rem;font-weight:600}button:hover,.button:hover{filter:brightness(1.08)}input,select{min-width:0;width:100%;background:#fff;border:1px solid #c4cec5;padding:12px 13px;min-height:48px;color:var(--ink)}[hidden]{display:none!important}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-weight:550;letter-spacing:-.055em;line-height:1.08}h4{line-height:1.3}p{margin-bottom:1.1rem}section{scroll-margin-top:80px}::selection{background:#d1e9b5;color:#163b34}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip-link:focus{top:12px}

/* Original prepared examples and personal dedication. */
.demo{width:100%;max-width:515px;justify-self:end;color:var(--ink);background:#fffef9;border:1px solid #ffffffb3;border-radius:22px;box-shadow:0 25px 70px #15271924;overflow:hidden;scroll-margin-top:100px}.demo-top{height:48px;border-bottom:1px solid #e2e7dc;display:flex;align-items:center;gap:8px;padding:0 24px;font-size:.64rem;color:#687763;letter-spacing:.015em}.demo-dot{width:6px;height:6px;border-radius:50%;background:#76985d}.demo-corner{margin-left:auto}.demo-body{padding:30px clamp(22px,3vw,40px)}.demo-body h3{font-size:clamp(1.55rem,2.4vw,2.2rem);margin:12px 0 20px;line-height:1.14;letter-spacing:-.045em}.demo-body p{font-size:.84rem;line-height:1.65}.mini-label{display:block;text-transform:uppercase;letter-spacing:.11em;font-size:.59rem;font-weight:650;color:#5c6853}.demo-muted{color:var(--muted)}.mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{display:inline-block;white-space:nowrap;background:#edf0e4;color:#536249;border-radius:999px;padding:4px 8px;font-size:.59rem}.demo-feedback{font-size:.78rem!important;margin:18px 0 0;min-height:2.8em;color:#385948}.fine-print{font-size:.64rem!important;color:#667263;line-height:1.6!important;margin-top:20px;max-width:calc(66 * var(--lv-char))}.demo details{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.demo summary,.faq summary{padding:12px 18px 12px 0;font-size:.8rem;font-weight:600;min-height:46px}.demo details>p{margin:4px 0 12px;max-width:calc(70 * var(--lv-char))}.reset-button{background:transparent;color:#547055;border-radius:0;padding:8px 0;font-size:.65rem;min-height:44px;text-decoration:underline;text-underline-offset:4px}.day-list{display:grid;gap:8px}.day-list button{display:flex;align-items:center;gap:12px;text-align:left;background:#f4f5ee;color:var(--ink);border:1px solid transparent;padding:13px 14px}.day-list button[aria-pressed=true]{background:#e8eedd;border-color:#879b74}.day-list strong,.day-list small{display:block}.day-list strong{font-size:.8rem}.day-list small{font-size:.66rem;color:#566253;margin-top:2px}.day-list b{margin-left:auto;white-space:nowrap;font-size:.64rem;font-weight:500}.day-icon{font-size:.64rem;color:#5a6a4c}.demo-segments{display:flex;gap:4px;border-radius:10px;background:#edf0e6;padding:4px;margin:20px 0}.demo-segments button{flex:1;background:transparent;color:#52634c;padding:9px 8px;font-size:.72rem;border-radius:7px;min-height:44px}.demo-segments button[aria-pressed=true]{background:white;color:#163b34;box-shadow:0 2px 5px #1b352614}.source-document{background:#f5f3e9;border:1px solid #e1e2d1;border-radius:10px;padding:24px 20px}.document-icon{font-size:2rem;color:#6e8861;line-height:1.3}.source-document h4{font-family:var(--serif);font-size:1.5rem;font-weight:500;letter-spacing:-.025em;margin:14px 0}.source-document p,.source-excerpt{font-family:Georgia,serif;font-size:.88rem;line-height:1.7}.question-copy{margin:24px 0!important}.demo-form label{display:block;font-size:.71rem;font-weight:600;margin-bottom:8px}.answer-row{display:flex;gap:8px}.answer-row input{width:55%;font-size:.88rem}.answer-row button{flex:1;white-space:nowrap}.test-answers{display:grid;gap:8px}.test-answers button{background:#f3f5ed;color:var(--ink);border:1px solid #dce2d6;text-align:left;font-size:.9rem;padding:14px 18px}.test-answers button[aria-pressed=true]{border-color:#52704c;background:#e7eedc}.flashcard{text-align:center;background:#f3f3e8;border:1px solid #dde1cf;border-radius:14px;padding:25px 16px 15px;margin-top:20px}.flashcard-star{font-size:2.6rem;color:#72865f;line-height:1.4}.flashcard h3{font-family:var(--serif);font-weight:450;font-size:1.7rem;letter-spacing:-.035em}.flashcard details{border:0}.flashcard summary{color:#345a40}.card-answer>strong{font-family:var(--serif);font-size:2.3rem}.card-ratings{display:flex;flex-wrap:wrap;gap:5px;margin:20px 0 0}.card-ratings button{flex:1;padding:9px 6px;font-size:.65rem;white-space:nowrap}.card-ratings button:first-child{background:#6c6454}.tutor-spark{font-size:1.7rem}.chat-message{padding:18px;border-radius:16px;font-size:.82rem;line-height:1.6;margin:15px 0;max-width:calc(70 * var(--lv-char))}.chat-mine{background:#e6eedc;margin-left:38px;border-bottom-right-radius:4px}.chat-tutor{background:#f2f2ea;border-bottom-left-radius:4px;margin-right:15px}.chat-message p:last-child{margin-bottom:0}.chat-message .mini-label{margin-bottom:8px}.source-tag{font-size:.64rem!important;color:#526c43}.week-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:25px 0}.week-preview>div{padding:15px 10px;background:#eef0e3;border-radius:9px}.week-preview span{display:block;font-size:.61rem;letter-spacing:.08em;margin-bottom:18px;color:#5c694b}.week-preview strong{display:block;font-size:.69rem}.week-preview small{font-size:.65rem;color:#5c6a50}.public-showcase{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.public-showcase h4{font-size:.85rem;margin:0}.weather-line{margin-top:15px;font-size:.8rem!important}.weather-line>span{font-size:1.4rem;margin-right:8px;color:#947131}.public-showcase .fine-print{margin-top:8px}.public-event{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;font-size:.72rem}.public-event span{white-space:nowrap;font-size:.66rem;color:#5e734d}.workshop-steps{list-style:none;padding:0;display:grid;gap:20px;margin:25px 0}.workshop-steps li{display:flex;gap:15px}.workshop-steps li>span{flex-shrink:0;width:32px;height:32px;display:grid;place-items:center;background:#e9eddc;border-radius:50%;font-size:.63rem}.workshop-steps strong{font-size:.84rem}.workshop-steps p{font-size:.76rem;margin:3px 0 0;color:#62715c}.progress-preview{padding:25px 0}.progress-preview>strong{font-family:var(--serif);font-size:4rem;font-weight:450;line-height:1.1}.progress-preview>strong span{font-family:var(--sans);font-size:.87rem;font-weight:500;color:#617553}.week-dots{display:flex;justify-content:space-between;gap:5px;margin-top:28px}.week-dots span{width:36px;height:36px;background:#edf0e7;color:#5c6b57;border-radius:50%;display:grid;place-items:center;font-size:.67rem}.week-dots span.active{background:#537246;color:white}.compass-takeaway{padding:15px;background:#eaf0df;border-radius:10px}
.dedication{position:relative;isolation:isolate;text-align:center;min-height:880px;display:grid;place-items:center;padding:80px clamp(24px,6vw,96px) 100px;color:#293b2d;overflow:hidden;background:#f6e8ce}.dedication-scene{position:absolute;inset:0;z-index:-2}.dedication-scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:72% center}.dedication:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff5dfed 0%,#fff5dfe6 25%,#fff5dfd1 39%,#fff5df24 62%,transparent 70%)}.dedication-inner{width:100%;max-width:1120px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:40px;align-items:center}.dedication-copy{width:100%;max-width:560px;min-width:0}.dedication-emblem{display:block;width:110px;height:110px;margin:0 auto 24px;mix-blend-mode:multiply;opacity:.72}.dedication .eyebrow{font-size:.75rem;line-height:1.65;letter-spacing:.12em;margin-bottom:22px}.dedication h2{font-family:var(--serif);font-size:clamp(3.5rem,6.2vw,6rem);font-weight:450;letter-spacing:-.045em;word-spacing:.06em;line-height:1.12;margin-bottom:25px}.dedication .dedication-message{font-size:1.125rem;line-height:1.8;margin-bottom:0}.dedication .dedication-signature{font-family:var(--serif);font-style:italic;font-size:1.9rem;line-height:1.4;margin:26px 0 15px}.dedication .dedication-note{font-size:1rem;line-height:1.6;margin-bottom:0;color:#46533d}
@media(max-width:760px){.dedication{display:flex;flex-direction:column;min-height:0;padding:0}.dedication:before{display:none}.dedication-inner{order:0;display:block;padding:58px 24px 10px;background:linear-gradient(#f9eed9,#f6e8ce);position:relative;z-index:1}.dedication-copy{margin:auto}.dedication-emblem{width:92px;height:92px;margin-bottom:20px}.dedication .eyebrow{font-size:.75rem;margin-bottom:18px}.dedication h2{font-size:clamp(3.4rem,13vw,4.7rem);margin-bottom:23px}.dedication .dedication-message{font-size:1.0625rem;line-height:1.8}.dedication .dedication-signature{font-size:1.75rem;margin:24px 0 14px}.dedication .dedication-note{font-size:1rem}.dedication-scene{position:relative;order:1;inset:auto;z-index:0;width:100%;height:clamp(440px,125vw,650px);margin-top:0;mask-image:linear-gradient(transparent,black 18%)}.dedication-scene img{object-position:88% center}}
.team-section {
  padding: 4rem max(var(--lv-gutter, 1.5rem), 5vw);
  background: var(--surface, #fff);
  color: var(--ink, #20292e);
  border-block: 1px solid var(--line, #d4dcdf);
}
.team-inner { width: 100%; max-width: none; }
.team-intro { max-width: calc(66 * var(--lv-char)); margin-bottom: 2.5rem; }
.team-intro h2 { font-size: 2rem; line-height: 1.25; margin: 0 0 1rem; letter-spacing: 0; }
.team-intro p {
  font-size: 1.0625rem; line-height: 1.7; margin: 0;
  color: var(--muted, #53616a);
}
.team-profiles {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem clamp(2rem, 4vw, 6rem);
}
.team-profile {
  min-width: 0; display: grid; align-content: start; gap: .75rem;
  padding-top: 1.75rem; border-top: 1px solid var(--line, #d4dcdf);
}
.team-profile h3 {
  font-family: var(--sans); font-size: 1.75rem; font-weight: 650;
  line-height: 1.25; letter-spacing: 0; margin: 0;
}
.team-profile .team-role {
  font-size: 1rem; line-height: 1.5; font-weight: 650;
  color: var(--green, #126456); margin: 0;
}
.team-profile .team-description {
  max-width: calc(64 * var(--lv-char)); font-size: 1.0625rem; line-height: 1.75; margin: 0;
  color: var(--ink, #20292e);
}
.team-section :is(h2, h3, p) { overflow-wrap: anywhere; }
@supports (grid-template-rows: subgrid) {
  .team-profile { grid-template-rows: subgrid; grid-row: span 3; }
}
@media (max-width: 760px) {
  .team-section { padding-block: 3rem; }
  .team-intro { margin-bottom: 2rem; }
  .team-profiles { grid-template-columns: minmax(0, 1fr); row-gap: .75rem; }
  .team-profile { margin-bottom: 1.25rem; }
  .team-profile:last-child { margin-bottom: 0; }
}
/* Full-bleed artwork, readable copy and an unframed learning path. */
.landing-page, .engineering-page, .pecs-page {
  --paper: #fff; --surface: #fff; --ink: #102d3a; --muted: #485e6c;
  --line: #dbe3e7; --green: #086557; --landing-gutter: clamp(1.25rem, 4vw, 5rem); --landing-width: 1600px;
  --sans: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  /* German compounds outgrow narrow columns, so hyphenation supplies a signposted
     break before the anywhere guard resorts to an unmarked one. */
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: anywhere;
}
.landing-page .site-header, .engineering-page .site-header, .pecs-page .site-header {
  position: sticky; top: 0; z-index: 20; background: var(--glass-shell, #fffffff5); border-bottom: 1px solid var(--line);
}
.site-header-inner, .hero-inner, .chapter-hero, .story-intro, .journey-group, .journey-extra,
.engineering-page .eng-inner, .pecs-page .eng-inner,
.landing-page .engineering-teaser-inner, .landing-page .team-inner, .landing-page .comparison-inner {
  width: min(calc(100% - 2 * var(--landing-gutter)), var(--landing-width)); margin-inline: auto;
}
.site-header-inner { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; min-height: 72px; }
.wordmark { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; font-size: 1.25rem; font-weight: 700; min-height: 48px; }
.wordmark img { flex: none; }
.wordmark-dot { color: var(--green); }
.desktop-navigation { display: flex; gap: 1.5rem; margin-inline: auto; }
.desktop-navigation a { display: inline-flex; align-items: center; min-height: 48px; text-decoration: none; font-size: .9375rem; font-weight: 550; }
.desktop-navigation a:hover { text-decoration: underline; }
.landing-menu { display: none; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 48px; padding: .75rem 1.25rem; border-radius: 12px; background: var(--green); color: var(--on-green); text-decoration: none; font-size: 1rem; font-weight: 600; }
.button-outline { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 48px; padding: .75rem 1.25rem; border-radius: 12px; border: 2px solid var(--green); background: transparent; color: var(--green); text-decoration: none; font-size: 1rem; font-weight: 600; }
.button-outline:hover { background: var(--green); color: var(--on-green); }
.button-small { padding: .625rem 1rem; font-size: .9375rem; }
.eyebrow { color: var(--muted); font-size: .875rem; font-weight: 600; line-height: 1.5; margin-bottom: 1rem; }
.live-dot, .demo-dot { display: inline-block; width: 6px; height: 6px; background: #527e55; border-radius: 50%; margin-right: .5rem; }
.text-link { display: inline-flex; align-items: center; gap: 1rem; min-height: 48px; font-size: 1rem; font-weight: 550; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.landing-opening { width: 100%; }
.hero { position: relative; isolation: isolate; min-width: 0; padding-block: 2rem; background: #f8f5ef; }
.hero-kiosk { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: #f8f5ef; }
.hero-art { position: absolute; inset: 0; opacity: 0; overflow: hidden; transition: opacity 1200ms ease; }
.hero-art.is-current, .hero-art.is-visible { opacity: 1; }
.hero-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 65%; }
.hero-inner { min-height: min(480px, calc(100svh - 300px)); display: flex; align-items: center; }
.hero-copy { width: 49%; max-width: 43rem; min-width: 0; padding: 1.25rem 1.35rem; border-radius: 18px; background: var(--glass-reading, rgb(255 254 250 / .65)); }
.hero h1 { font-family: var(--serif); font-size: 5.5rem; font-weight: 550; line-height: 1.08; margin: 0 0 .5rem; }
.hero-promise { font-size: 2rem; font-weight: 650; line-height: 1.22; margin-bottom: 1.125rem; text-wrap: balance; }
.hero-scope { font-size: 1rem; line-height: 1.5; margin-bottom: 0; }
.hero-lead { font-size: 1.0625rem; line-height: 1.6; color: var(--ink); max-width: calc(51 * var(--lv-char)); margin-bottom: .75rem; }
.hero-start { display: flex; flex-direction: column; align-items: flex-start; gap: .375rem; margin-top: 1.125rem; }
.hero-signup { min-width: min(12rem, 100%); }
.hero-discover { font-size: .9375rem; }
.hero-foot { margin-top: .875rem; color: var(--muted); font-size: .8125rem; }
.landing-page .hero-more-toggle { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0; margin: -.5rem 0; background: transparent; color: var(--ink); font-size: 1.25rem; vertical-align: middle; }
.hero-more-toggle[aria-expanded="true"]>span { transform: rotate(180deg); }
.chapter-hero { min-width: 0; scroll-margin-top: 88px; padding-block: 2rem; border-bottom: 1px solid var(--line); }
.landing-page .demo { max-width: none; border: 1px solid var(--glass-border, var(--line)); border-radius: 8px; box-shadow: none; background: var(--glass-reading, var(--surface)); }
.landing-page .chapter-hero .demo { border: 0; border-radius: 0; }
.landing-page .chapter-hero .exercise-layout { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 2rem 4rem; padding: 0; }
.exercise-layout>div { min-width: 0; }
.exercise-question .eyebrow { font-size: .75rem; text-transform: uppercase; color: #486971; margin: 0 0 .75rem; }
.chapter-hero .exercise-question h2 { font-family: var(--serif); font-size: 2.25rem; font-weight: 550; margin: 0 0 .75rem; }
.exercise-question .question-copy { font-size: 1.0625rem; color: var(--muted); margin: 0 !important; }
.exercise-tools { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 1rem; margin-top: .375rem; }
.exercise-tools .hint { margin: 0; padding: 0; border: 0; }
.exercise-tools summary { font-size: .875rem; }
.exercise-tools .reset-button { font-size: .8125rem; padding: .5rem 0; white-space: nowrap; }
.exercise-controls .demo-feedback { min-height: 0; margin-top: .5rem; }
.exercise-controls .demo-feedback:empty { display: none; }
.demo-top { height: auto; min-height: 48px; flex-wrap: wrap; gap: .375rem; padding: .75rem 1.5rem; font-size: .875rem; }
.demo-corner { margin-left: auto; }
.landing-page .demo-body { padding: 1.5rem; }
.demo-body :is(h2, h3) { font-size: 1.5rem; line-height: 1.3; margin: .75rem 0 1rem; }
.demo-body p, .demo summary { font-size: 1rem; }
.mini-label { font-size: .875rem; text-transform: none; }
.mini-row { flex-wrap: wrap; }
.pill { font-size: .8125rem; }
.demo-feedback, .demo-muted { font-size: .9375rem !important; }
.fine-print { font-size: .875rem !important; }
.demo-form label { font-size: .9375rem; }
.question-copy { margin: 1rem 0 !important; }
.answer-row { flex-wrap: wrap; }
.answer-row input { font-size: 1rem; flex: 1 1 12rem; width: auto; }
.answer-row button { flex: 1 1 6rem; }
.reset-button { font-size: .875rem; }
.day-list strong, .workshop-steps strong { font-size: 1rem; }
.day-list small, .day-list b, .workshop-steps p { font-size: .875rem; }
.day-list b { white-space: normal; }
.day-list button>span:nth-child(2) { min-width: 0; }
.demo-segments { flex-wrap: wrap; }
.demo-segments button { font-size: .9375rem; }
.source-document h4 { overflow-wrap: anywhere; }
.source-document p, .source-excerpt { font-size: 1rem; max-width: calc(64 * var(--lv-char)); }
.card-ratings button { font-size: .875rem; }
.chat-message { font-size: 1rem; }
.chat-mine { margin-left: 1.5rem; }
.week-preview { grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); }
.week-preview strong, .week-preview small, .public-event, .public-event span { font-size: .875rem; }
.public-event { flex-wrap: wrap; }
.landing-page .login-band { width: min(calc(100% - 2 * var(--landing-gutter)), var(--landing-width)); margin: 0 auto; padding: 1.5rem 0; background: transparent; border-bottom: 1px solid var(--line); box-shadow: none; border-radius: 0; scroll-margin-top: 88px; }
.login-disclosure>summary { display: flex; justify-content: space-between; align-items: center; min-height: 48px; max-width: 60rem; margin-bottom: .75rem; font-size: 1.25rem; font-weight: 600; list-style: none; }
.login-disclosure>summary::-webkit-details-marker { display: none; }
.login-toggle { width: 44px; height: 44px; display: grid; place-items: center; font-size: 1.5rem; }
.login-disclosure:not([open]) .login-toggle { font-size: 0; }
.login-disclosure:not([open]) .login-toggle::after { content: '+'; font-size: 1.5rem; }
.login-layout { display: grid; grid-template-columns: minmax(12rem, .7fr) minmax(0, 2fr); gap: 2rem; align-items: start; }
.login-copy h2 { font-size: 1.5rem; line-height: 1.3; margin: 0 0 .5rem; }
.login-intro { color: var(--muted); font-size: 1rem; margin: 0; }
.login-fields { min-width: 0; padding: 1rem 1.15rem; border-radius: 16px; background: var(--glass-reading, rgb(255 254 250 / .65)); }
.login-card form { display: grid; gap: .75rem; }
.login-card #otp-request-form { grid-template-columns: minmax(12rem, 1.5fr) minmax(9rem, 1fr) auto; align-items: end; }
.login-card label { display: block; font-size: .875rem; font-weight: 550; margin-bottom: .375rem; }
.login-card input, .login-card select { font-size: 1rem; min-height: 48px; }
.login-card form button { min-height: 48px; margin: 0; white-space: normal; }
.login-card #otp-status { font-size: .9375rem; line-height: 1.6; margin: .75rem 0; }
.login-card #otp-status:empty { display: none; }
.login-card #otp-verify-form { max-width: 32rem; margin-block: 1rem; }
.login-enroll { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .5rem; font-size: .9375rem; }
.login-enroll a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 550; }
.login-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0; font-size: .875rem; color: var(--muted); }
.login-legal a { display: inline-flex; align-items: center; min-height: 44px; }
.story-intro { padding-block: 1.75rem 2.5rem; }
.story-intro h2 { font-family: var(--serif); font-size: 2.75rem; line-height: 1.15; margin-bottom: 1.25rem; }
.story-intro p { margin-bottom: 0; color: var(--muted); }
.story-intro .eyebrow { margin-bottom: .75rem; }
.learning-path { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.learning-path a { display: grid; grid-template-columns: auto 1fr auto; align-content: start; align-items: center; gap: 1rem; text-decoration: none; min-width: 0; }
.learning-path picture { grid-column: 1/-1; overflow: hidden; }
.learning-path img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.path-number { font-family: var(--serif); font-size: 2.5rem; line-height: 1; color: #2867b3; align-self: start; }
.path-verstehen .path-number { color: #c55039; }
.path-festigen .path-number { color: #227265; }
.path-copy { display: grid; gap: .25rem; }
.path-copy strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 550; line-height: 1.25; }
.path-copy>span { font-size: .875rem; line-height: 1.5; color: var(--muted); }
.path-arrow { color: var(--muted); }
.path-step:hover .path-copy strong { text-decoration: underline; text-underline-offset: 4px; }
.story-intro .demo-notice { font-size: .875rem; margin-top: 1.5rem; }
.engineering-teaser { padding-block: clamp(3rem, 6vw, 6rem); background: #123f39; color: #f8fcfa; }
.engineering-teaser-inner { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.engineering-teaser-copy { min-width: 0; }
.engineering-teaser .eyebrow { color: #b9ded1; margin-bottom: .75rem; }
.engineering-teaser h2 { max-width: calc(36 * var(--lv-char)); margin-bottom: 1.25rem; font-family: var(--serif); font-size: clamp(2.35rem, 4vw, 4.25rem); line-height: 1.08; letter-spacing: -.04em; }
.engineering-teaser-lead { max-width: calc(66 * var(--lv-char)); color: #e1eee9; font-size: 1.0625rem; line-height: 1.7; }
.engineering-offer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 2rem 0; border-top: 1px solid #d8eee52e; border-left: 1px solid #d8eee52e; }
.engineering-offer article { min-width: 0; padding: 1rem; border-right: 1px solid #d8eee52e; border-bottom: 1px solid #d8eee52e; }
.engineering-offer-label { margin: 0 0 .5rem; color: #9dd3c2; font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.engineering-offer h3 { margin: 0 0 .5rem; font-size: 1rem; line-height: 1.4; letter-spacing: 0; }
.engineering-offer article>p:last-child { margin: 0; color: #c5d9d2; font-size: .875rem; line-height: 1.6; }
.engineering-teaser-actions { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; }
.engineering-teaser-actions .button { background: #f7f5ef; color: #123f39; }
.engineering-teaser-actions>span { max-width: calc(36 * var(--lv-char)); color: #b9d0c8; font-size: .8125rem; line-height: 1.5; }
.engineering-teaser-art { min-width: 0; margin: 0; padding-bottom: clamp(3.5rem, 8vw, 6rem); position: relative; }
.engineering-campus-scene { display: block; overflow: hidden; border-radius: 24px; }
.engineering-campus-scene img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.engineering-course-scenes { position: absolute; right: 4%; bottom: 1.5rem; width: min(72%, 36rem); display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.engineering-course-scenes picture { overflow: hidden; border: 5px solid #f7f5ef; border-radius: 14px; background: #e0eee4; }
.engineering-course-scenes img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.engineering-teaser-art figcaption { position: absolute; left: 0; bottom: .5rem; color: #b9d0c8; font-size: .75rem; }
.journey-group { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); gap: 3rem; padding-block: 3.5rem; border-top: 1px solid var(--line); align-items: start; }
.journey-heading h2 { font-family: var(--serif); font-size: 2.25rem; line-height: 1.2; margin-bottom: 1.25rem; }
.journey-heading>p:not(.eyebrow) { font-size: 1.0625rem; color: var(--muted); max-width: calc(48 * var(--lv-char)); }
.journey-art { display: block; margin-top: 1.5rem; }
.journey-art img { display: block; width: 100%; aspect-ratio: 4/3; height: auto; object-fit: cover; border-radius: 0; }
.journey-examples, .journey-extra-examples { min-width: 0; }
.landing-page details.chapter { border-top: 1px solid #bdccbe; }
.landing-page details.chapter:last-child { border-bottom: 1px solid #bdccbe; }
.chapter-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; padding: 1.25rem 0; list-style: none; min-height: 64px; }
.chapter-summary::-webkit-details-marker { display: none; }
.chapter-label { color: var(--muted); font-size: .875rem; }
.chapter-summary h3 { grid-column: 1; font-size: 1.25rem; line-height: 1.4; margin: .375rem 0 0; }
.chapter-toggle { grid-column: 2; grid-row: 1/3; align-self: center; font-size: 1.5rem; width: 1.5rem; text-align: center; }
.chapter[open]>.chapter-summary .chapter-toggle { font-size: 0; }
.chapter[open]>.chapter-summary .chapter-toggle::after { content: '−'; font-size: 1.5rem; }
.chapter-inner { padding-bottom: 1.5rem; }
.chapter-copy p { max-width: calc(66 * var(--lv-char)); font-size: 1rem; color: var(--muted); margin-bottom: .5rem; }
.chapter-next { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; font-size: .875rem; margin-bottom: .75rem; }
.journey-extra { padding-block: 2rem 3rem; border-top: 1px solid var(--line); }
.journey-extra h2 { font-size: 1.75rem; line-height: 1.3; }
.journey-extra-heading p { color: var(--muted); }
.journey-extra-examples { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.start-section { padding: 3rem var(--landing-gutter); background: #f1f6f8; text-align: center; }
.start-section h2 { font-family: var(--serif); font-size: 2.5rem; line-height: 1.2; margin-bottom: 2rem; }
.start-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2rem; margin: 1.5rem 0 2rem; }
.faq { max-width: 760px; margin-inline: auto; text-align: left; border-top: 1px solid #bccbbd; }
.faq details { border-bottom: 1px solid #bccbbd; }
.faq summary { font-size: 1rem; padding-block: 1rem; }
.faq p { font-size: 1rem; color: var(--muted); max-width: calc(70 * var(--lv-char)); }
.landing-page .team-section { padding: 3rem 0; }
.landing-page .team-intro h2 { font-size: 2rem; }
.landing-page .dedication { min-height: 680px; padding-block: 3.5rem; }
.landing-page .dedication-inner { max-width: var(--landing-width); }
.landing-page .dedication h2 { font-size: 3rem; }
@media(max-width:1100px) {
  .hero h1 { font-size: 4.5rem; }
  .hero-promise { font-size: 1.625rem; }
  .hero-copy { width: 52%; }
  .hero-scope, .hero-lead { font-size: 1rem; }
  .login-layout { grid-template-columns: 1fr; gap: 1rem; }
  .login-copy { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: baseline; }
  .landing-page .chapter-hero .exercise-layout { gap: 2rem; }
  .learning-path { gap: 1rem; }
  .learning-path a { gap: .75rem; }
  .path-arrow { display: none; }
}
@media(max-width:960px) {
  .hero { padding-block: 2.5rem; }
  .hero-copy { width: 54%; }
  .hero-art img { object-position: 43% center; }
  .hero h1 { font-size: 3.75rem; }
  .hero-promise { font-size: 1.5rem; }
  .chapter-hero .exercise-question h2 { font-size: 2rem; }
  .path-number { font-size: 2rem; }
  .path-copy strong { font-size: 1.125rem; }
  .engineering-teaser-inner { grid-template-columns: minmax(0, 1fr); }
  .engineering-teaser-copy { max-width: 48rem; }
  .engineering-teaser-art { width: 100%; }
  .journey-group { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; padding-block: 2.5rem; }
  .journey-heading { display: grid; grid-template-columns: 1fr minmax(10rem, .5fr); column-gap: 2rem; }
  .journey-heading>.eyebrow, .journey-heading>h2, .journey-heading>p { grid-column: 1; }
  .journey-art { grid-column: 2; grid-row: 1/4; margin: 0; align-self: center; }
  .journey-heading h2 { font-size: 2rem; }
  .journey-heading>p { margin-bottom: 0; }
  .journey-extra-examples { grid-template-columns: 1fr; gap: 0; }
}
@media(max-width:760px) {
  html { scroll-padding-top: 80px; }
  .site-header-inner { gap: .75rem; min-height: 64px; }
  .wordmark { font-size: 1.125rem; gap: .375rem; }
  .wordmark img { width: 26px; height: 26px; }
  .desktop-navigation { display: none; }
  .landing-menu { display: block; margin-left: auto; }
  .landing-menu>summary { width: 44px; height: 48px; display: grid; place-items: center; list-style: none; }
  .landing-menu>summary::-webkit-details-marker { display: none; }
  .menu-icon { width: 18px; height: 14px; border-block: 1.5px solid currentColor; position: relative; }
  .menu-icon::before { content: ''; position: absolute; top: 5px; left: 0; width: 100%; border-top: 1.5px solid currentColor; }
  .landing-menu nav { position: absolute; inset: calc(100% - 1px) var(--landing-gutter) auto; background: var(--surface); border: 1px solid var(--line); border-radius: 0 0 12px 12px; box-shadow: 0 12px 24px #20363115; padding: .75rem 1rem; display: grid; }
  .landing-menu nav a { display: flex; align-items: center; min-height: 48px; text-decoration: none; }
  .landing-menu:not([open]) nav { display: none; }
  .landing-page .site-header .button.button-small, .engineering-page .site-header .button.button-small { padding-inline: .75rem; }
  .button-small>span { display: none; }
  .landing-page .chapter-hero .exercise-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .landing-page .login-band { padding-block: 1rem; }
  .login-layout { padding-block: .5rem 1rem; }
  .login-copy h2 { font-size: 1.25rem; }
  .login-card #otp-request-form { grid-template-columns: 1fr; }
  .story-intro { padding-block: 1.5rem 2rem; }
  .story-intro h2 { font-size: 2.25rem; }
  .engineering-teaser { padding-block: 3rem; }
  .engineering-teaser h2 { font-size: 2.5rem; }
  .engineering-offer { grid-template-columns: minmax(0, 1fr); }
  .engineering-course-scenes { position: static; width: 100%; margin-top: .75rem; }
  .engineering-teaser-art { padding-bottom: 2rem; }
  .engineering-teaser-art figcaption { bottom: 0; }
  .journey-heading { display: block; }
  .journey-art { display: block; max-width: 32rem; margin-top: 1.5rem; }
  .journey-group { padding-block: 2rem; }
  .journey-heading h2 { font-size: 1.75rem; }
  .chapter-summary h3 { font-size: 1.125rem; }
  .landing-page .demo-body { padding: 1.25rem; }
  .demo-top { padding-inline: 1.25rem; font-size: .8125rem; }
  .source-document { padding: 1rem; }
  .demo-body :is(h2,h3) { font-size: 1.375rem; }
  .day-list button { padding: .75rem .625rem; gap: .5rem; }
  .day-list small { font-size: .8125rem; }
  .day-icon { display: none; }
  .day-list b { flex: none; }
  .landing-page .dedication { min-height: 0; padding: 0; }
  .start-section h2 { font-size: 2rem; }
  .start-actions { flex-direction: column; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .hero-art { transition: none; }
}
@media print { .site-header, .login-band { display: none; } .landing-opening, .journey-group { display: block; } }

/* One progressive sign-in panel: contact, then code; no duplicate welcome. */
.landing-page .login-layout { display: block; }
.landing-page .login-copy { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.login-fields { max-width: 60rem; }
.landing-page .login-card #otp-request-form { grid-template-columns: minmax(0, 1fr) auto; gap: .25rem 1rem; }
.login-identifier { grid-column: 1; grid-row: 1; min-width: 0; }
.login-card #otp-request-form>button { grid-column: 2; grid-row: 1; }
.login-channel { grid-column: 1/-1; grid-row: 2; }
.login-channel summary { min-height: 44px; padding-block: .5rem; font-size: .875rem; }
.login-channel select { max-width: 28rem; margin-bottom: .75rem; }
.login-contact-summary { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.login-contact-summary p { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.login-contact-summary button, .login-resend { background: transparent; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; padding: .5rem 0; font-size: .9375rem; min-height: 44px; }
.landing-page .login-card #otp-verify-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem 1rem; }
.login-card #otp-verify-form label { grid-column: 1/-1; }
.login-resend { margin-bottom: .5rem; }
.direct-login .login-task-context { max-width: calc(60 * var(--lv-char)); margin: 0 0 1rem; color: var(--muted); font-size: .9375rem; line-height: 1.5; }
.landing-page .button { max-width: 100%; white-space: normal; }
.comparison-overview span { overflow-wrap: anywhere; }
@media(max-width:760px) {
  .landing-page .login-card #otp-request-form, .landing-page .login-card #otp-verify-form { grid-template-columns: minmax(0,1fr); }
  .login-card #otp-request-form>button { grid-column: 1; grid-row: 2; }
  .login-channel { grid-row: 3; }
}

@media(max-width:600px) {
  .site-header-inner { gap: .375rem; }
  .hero { padding-block: 1.75rem 10rem; }
  .hero-inner { min-height: 0; }
  .hero-copy { width: 100%; max-width: none; }
  .hero-art img { object-fit: cover; object-position: center bottom; }
  .hero h1 { font-size: 3.5rem; margin-bottom: .5rem; }
  .hero-promise { font-size: 1.625rem; margin-bottom: .875rem; }
  .hero-lead { font-size: 1rem; line-height: 1.5; }
  .hero-scope { font-size: .9375rem; }
  .hero-start { margin-top: .875rem; gap: 0; }
  .hero-foot { margin-top: .375rem; }
  .chapter-hero { padding-block: 1.5rem; }
  .learning-path { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .learning-path a { grid-template-columns: auto 1fr auto; }
  .path-arrow { display: block; }
  .path-copy strong { font-size: 1.375rem; }
  .path-number { font-size: 2.5rem; }
  .journey-art { max-width: none; }
}
@media(max-width:360px) {
  .landing-page { --landing-gutter: 1rem; }
  .hero h1 { font-size: 3rem; }
  .hero-promise { font-size: 1.5rem; }
  .hero { padding-top: 1.25rem; }
  .exercise-tools { gap: .5rem; }
}
@media(max-width:600px) and (max-height:760px) {
  .hero { padding-block: 0.5rem 0; }
  .hero h1 { font-size: 2.75rem; }
  .hero-promise { font-size: 1.375rem; margin-bottom: .625rem; }
  .hero-lead { margin-bottom: .5rem; }
  .hero-copy { padding: 0.5rem 0.75rem; }
  .hero-start { margin-top: 0; }
  .hero-foot { margin-top: 0; }
  .hero-art img { object-fit: cover; }
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .landing-page :is(.hero-copy, .login-fields, .demo), .engineering-page .eng-hero-copy, .pecs-page .eng-hero-copy {
    -webkit-backdrop-filter: blur(11px) saturate(116%);
    backdrop-filter: blur(11px) saturate(116%);
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .landing-page :is(.site-header, .hero-copy, .login-fields, .demo),
  .engineering-page :is(.site-header, .eng-hero-copy), .pecs-page :is(.site-header, .eng-hero-copy) {
    background: var(--surface, #fff); -webkit-backdrop-filter: none; backdrop-filter: none;
  }
}

/* The public Engineering page: its own surface so no medical chapter sits next
   to the technical offer. Shares the landing tokens, header and button scale. */
.eng-hero { position: relative; isolation: isolate; padding-block: 2rem; background: #f8f5ef; }
.eng-hero-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.eng-hero-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.eng-hero-inner { min-height: min(460px, calc(100svh - 300px)); display: flex; align-items: center; }
.eng-hero-copy {
  width: 52%; max-width: 44rem; min-width: 0; padding: 1.25rem 1.35rem; border-radius: 18px;
  background: var(--glass-reading, rgb(255 254 250 / .65));
}
.engineering-page h1, .pecs-page h1 { font-family: var(--serif); font-size: clamp(2.75rem, 6vw, 5rem); font-weight: 550; line-height: 1.08; margin: 0 0 1rem; }
/* Display headings carry their own hyphens; the automatic breaks the body copy
   relies on would split short compounds like "Engineering-Campus". */
.engineering-page :is(h1, h2, h3), .pecs-page :is(h1, h2, h3) { -webkit-hyphens: manual; hyphens: manual; text-wrap: balance; }
.eng-lead { max-width: calc(62 * var(--lv-char)); font-size: 1.0625rem; line-height: 1.65; margin-bottom: .75rem; }
/* Ink, not the muted tone: this line sits on the translucent hero panel over the
   panorama, where the muted colour measured 3.65:1 at 390px. */
.eng-scope { max-width: calc(58 * var(--lv-char)); font-size: .9375rem; line-height: 1.55; color: var(--ink); margin-bottom: 0; }
.eng-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem 1.25rem; margin-top: 1.125rem; }
.eng-section { padding-block: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--line); }
.eng-section-head { margin-bottom: 1.5rem; }
.eng-section-head h2 { font-family: var(--serif); font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.14; letter-spacing: -.03em; margin-bottom: 1rem; }
.eng-section-head>p:not(.eyebrow) { max-width: calc(66 * var(--lv-char)); font-size: 1.0625rem; line-height: 1.7; color: var(--muted); margin: 0; }
.eng-section-dark { background: #123f39; color: #f8fcfa; border-top: 0; }
.eng-section-dark .eyebrow { color: #b9ded1; }
.eng-section-dark h2 { font-family: var(--serif); font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.14; letter-spacing: -.03em; margin-bottom: 1.25rem; }
.eng-section-dark .eng-lead { color: #e1eee9; }
.eng-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.eng-split-narrow { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: start; }
.eng-split-copy { min-width: 0; }
.eng-list { max-width: calc(62 * var(--lv-char)); margin: 1.5rem 0 0; padding-left: 1.125rem; color: #d4e6e0; }
.eng-list li { margin-bottom: .5rem; font-size: 1rem; line-height: 1.6; }
.eng-figure { min-width: 0; margin: 0; }
.eng-figure picture { display: block; overflow: hidden; border-radius: 24px; }
.eng-figure img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.eng-figure figcaption { margin-top: .75rem; color: #b9d0c8; font-size: .75rem; line-height: 1.5; }
.eng-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.eng-pillars article { min-width: 0; padding-top: 1.25rem; border-top: 2px solid var(--green); }
.eng-pillars h3 { font-size: 1.125rem; line-height: 1.4; margin-bottom: .75rem; }
.eng-pillars p { max-width: calc(52 * var(--lv-char)); font-size: 1rem; line-height: 1.65; color: var(--muted); margin: 0; }
.eng-course-preview { min-width: 0; padding: 1.25rem 1.5rem; border-radius: 20px; background: var(--surface, #fffefb); border: 1px solid var(--line, #dce2d7); }
.eng-course-preview-label { margin: 0 0 .75rem; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.eng-course-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1.5rem; }
.eng-course-list li { padding: 0; border-top: 1px solid var(--line, #dce2d7); }
.eng-course-list a { display: flex; flex-direction: column; gap: .125rem; padding: .5rem 0; color: inherit; text-decoration: none; min-height: 44px; }
.eng-course-list a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.eng-course-list strong { font-size: .9375rem; line-height: 1.4; }
.eng-course-list span { font-size: .8125rem; color: var(--muted); }
.eng-course-more { margin: .75rem 0 0; font-size: .875rem; color: var(--muted); }
.eng-course-note { max-width: calc(58 * var(--lv-char)); font-size: .9375rem; line-height: 1.55; color: var(--muted); margin: .75rem 0 0; }
.eng-course-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); list-style: none; margin: 0 0 2.25rem; padding: 0; }
.eng-course-strip figure { min-width: 0; margin: 0; }
.eng-course-strip picture { display: block; overflow: hidden; border-radius: 20px; background: var(--surface); }
.eng-course-strip img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.eng-course-strip figcaption { margin-top: .6rem; font-size: .8125rem; line-height: 1.4; font-weight: 550; color: var(--muted); }
.eng-course-strip a { color: inherit; text-decoration: none; }
.eng-course-strip a:hover figcaption, .eng-course-strip a:focus-visible figcaption { text-decoration: underline; }
.pecs-further-list { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .15rem; }
.pecs-further-list li { padding: 0; border-top: 1px solid var(--line, #dce2d7); }
.pecs-further-list a { display: flex; flex-direction: column; gap: .125rem; padding: .45rem 0; color: inherit; text-decoration: none; min-height: 44px; }
.pecs-further-list a:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.pecs-further-list strong { font-size: .9375rem; line-height: 1.4; }
.pecs-further-list span { font-size: .8125rem; color: var(--muted); }
.pecs-keys { list-style: none; margin: 1rem 0 0; padding: 0; }
.pecs-keys li { display: grid; gap: .2rem; padding: .85rem 0; border-top: 1px solid #d8eee52e; }
.pecs-keys strong { font-size: .9375rem; color: #f8fcfa; }
.pecs-keys span { font-size: .875rem; color: #c5d9d2; line-height: 1.5; }
.eng-lab { min-width: 0; padding: 1.5rem; border-radius: 20px; background: #0d322e; border: 1px solid #d8eee52e; }
.eng-lab-label { margin: 0 0 .75rem; color: #9dd3c2; font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.eng-lab h3 { font-size: 1.125rem; line-height: 1.4; margin-bottom: .75rem; }
.eng-lab p { max-width: calc(48 * var(--lv-char)); font-size: .9375rem; line-height: 1.65; color: #c5d9d2; }
.eng-lab-state { color: #e1eee9; }
.eng-section-dark .button { background: #f7f5ef; color: #123f39; }
.eng-section-dark .text-link { color: #cfe6df; }
@media(max-width:1100px) {
  .eng-hero-copy { width: 62%; }
}
@media(max-width:900px) {
  .eng-split, .eng-split-narrow { grid-template-columns: minmax(0, 1fr); }
  .eng-pillars { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .eng-course-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eng-hero-copy { width: 100%; max-width: 40rem; }
}
@media(max-width:600px) {
  .eng-section { padding-block: 2.5rem; }
}
