:root{
  --bg: #ffffff;
  --bg-soft: #f5f8fc;
  --bg-card: #ffffff;
  --line: #e2e8f2;
  --text: #0f1a2b;
  --text-dim: #4a5872;
  --text-faint: #94a1b8;
  --blue: #393be5;
  --purple: #8255f1;
  --navy: #0d2486;
  --orange: #ff9900;
  --blue-dark: #0d2486;
  --blue-soft: #edecfd;
  --blue-softer: #f6f5ff;
  --gold: #ff9900;
  --radius: 14px;
  --serif: 'Lora', Georgia, serif;
  --sans: 'Inter', sans-serif;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--sans); line-height:1.65; font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 28px; }
h1,h2,h3{ font-family:var(--serif); font-weight:600; color:var(--text); margin:0 0 16px; line-height:1.2; }
h2{ font-size:32px; }
h3{ font-size:19px; }
p{ margin:0 0 14px; color:var(--text-dim); }
.eyebrow{
  font-family:var(--sans); font-size:12.5px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--blue); margin-bottom:12px; display:flex; align-items:center; gap:8px;
}
section{ padding:80px 0; }
.lede{ font-size:17px; max-width:600px; color:var(--text-dim); }
.section-soft{ background:var(--bg-soft); }
.border-b{ border-bottom:1px solid var(--line); }
.center{ text-align:center; }
.center .lede{ margin-left:auto; margin-right:auto; }

/* ---------- NAV ---------- */
header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1120px; margin:0 auto; position:relative; }
.brand{ text-decoration:none; color:var(--text); display:flex; align-items:center; gap:11px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-title{ font-family:var(--serif); font-size:19px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--orange); }
.brand-sub{ font-family:var(--sans); font-size:11px; font-weight:500; letter-spacing:.04em; color:var(--text-faint); margin-top:2px; }
@media (max-width:420px){ .brand-title{ font-size:15px; } }
.brand .mark{ width:30px; height:30px; border-radius:8px; background:linear-gradient(135deg, var(--blue), var(--blue-dark)); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--sans); font-weight:800; font-size:14px; flex:none; }
.navlinks{ display:flex; align-items:center; gap:30px; }
.navlinks .links{ display:flex; gap:26px; }
.navlinks a.link{ text-decoration:none; font-size:14.5px; font-weight:500; color:var(--text-dim); }
.navlinks a.link{ transition:color .15s ease; }
.navlinks a.link.active{ color:var(--blue); }
.navlinks a.link:hover{ color:var(--orange); }
.nav-cta{
  font-size:14px; font-weight:600; background:linear-gradient(135deg, var(--purple), var(--blue));
  color:#fff !important; padding:10px 20px; border-radius:var(--radius); text-decoration:none; white-space:nowrap;
}
.nav-cta:hover{ background:linear-gradient(135deg, var(--blue), var(--navy)); }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; width:36px; height:36px; align-items:center; justify-content:center; color:var(--text); }
.nav-toggle svg{ width:22px; height:22px; }
@media (max-width:840px){
  .navlinks .links{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0;
    background:#fff; border-bottom:1px solid var(--line);
    max-height:0; overflow:hidden; transition:max-height .25s ease;
  }
  .navlinks.open .links{ max-height:320px; }
  .navlinks .links a{ padding:14px 28px; border-top:1px solid var(--line); font-size:15px; }
  .nav-cta{ display:none; }
  .nav-toggle{ display:flex; }
}

/* ---------- BUTTONS ---------- */
.btn-primary{
  background:linear-gradient(135deg, var(--purple), var(--blue)); color:#fff; font-weight:600; font-size:15px;
  padding:14px 26px; border-radius:var(--radius); text-decoration:none; display:inline-block; border:none;
}
.btn-primary:hover{ background:linear-gradient(135deg, var(--blue), var(--navy)); }
.btn-ghost{
  border:1.5px solid var(--line); color:var(--text); font-weight:600; font-size:15px;
  padding:13px 24px; border-radius:var(--radius); text-decoration:none; display:inline-block; background:#fff;
}
.btn-ghost:hover{ border-color:var(--blue); color:var(--blue); }
.btn-orange{
  background:var(--orange); color:#fff; font-weight:700; font-size:15px;
  padding:14px 26px; border-radius:var(--radius); text-decoration:none; display:inline-block; border:none;
}
.btn-orange:hover{ background:#e68a00; color:#fff; }

/* ---------- HERO ---------- */
.hero{ position:relative; overflow:hidden; color:var(--text); padding:0; }
.hero-slides{ display:grid; }
.hero-slide{
  grid-area:1/1; position:relative; min-height:660px; display:flex; align-items:flex-start;
  padding:72px 0 64px; opacity:0; visibility:hidden; transition:opacity .9s ease, visibility .9s;
}
.hero-slide.is-active{ opacity:1; visibility:visible; z-index:2; }
@media (prefers-reduced-motion: reduce){ .hero-slide{ transition:none; } }
.hero-slide--split{ background:#f6f5ff; }
.hero-slide--split .hero-bg{ inset:0 auto 0 0; width:58%; }
.hero-slide--split .hero-bg img{ object-position:25% center; }
.hero-slide--split .hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(246,245,255,0) 50%, #f6f5ff 100%);
}
.hero-slide--split .hero-grid2{ display:flex; justify-content:flex-end; }
.hero-slide--right .hero-bg{ inset:0 0 0 auto; width:58%; }
.hero-slide--right .hero-bg img{ object-position:75% center; }
.hero-slide--right .hero-bg::after{ background:linear-gradient(270deg, rgba(246,245,255,0) 50%, #f6f5ff 100%); }
.hero-slide--right .hero-grid2{ justify-content:flex-start; }
.hero-slide--split .hero-inner{ max-width:430px; margin-right:0; }
.hero-controls{
  position:absolute; z-index:5; left:0; right:0; bottom:22px; pointer-events:none;
}
.hero-controls .wrap{ display:flex; justify-content:space-between; align-items:center; }
.hero-dots{ display:flex; gap:8px; pointer-events:auto; background:rgba(255,255,255,.9); padding:7px 12px; border-radius:999px; box-shadow:0 2px 10px rgba(13,36,134,.14); }
.hero-dot{
  width:10px; height:10px; border-radius:50%; border:none; padding:0; cursor:pointer;
  background:rgba(13,36,134,.28); transition:background .2s, transform .2s;
}
.hero-dot.is-active{ background:var(--blue); transform:scale(1.25); }
.hero-arrows{ display:flex; gap:8px; pointer-events:auto; }
.hero-arrow{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(13,36,134,.18);
  background:rgba(255,255,255,.85); color:var(--navy); font-size:16px; cursor:pointer;
}
.hero-arrow:hover{ background:#fff; color:var(--orange); border-color:var(--orange); }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.hero-grid2{ position:relative; z-index:1; width:100%; }
.hero-inner{ max-width:395px; }
.hero h1{
  font-size:42px; line-height:1.12; font-weight:700; color:var(--blue);
  background:linear-gradient(135deg, var(--purple), var(--blue));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  padding-bottom:.08em;
}
.hero .lede{ font-size:17px; margin-bottom:28px; color:var(--text-dim); }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-tag{
  display:inline-flex; align-items:center; gap:8px; background:rgba(57,59,229,.08);
  border:1px solid rgba(57,59,229,.25); border-radius:999px; padding:7px 14px; font-size:12.5px; font-weight:600;
  color:var(--blue); margin-bottom:18px;
}
.hero-tag .dot{ width:7px; height:7px; border-radius:50%; background:var(--orange); flex:none; }
@media (max-width:1080px){
  .hero-slide{ display:block; padding:0; min-height:0; }
  .hero-bg{ position:relative; height:clamp(290px, 46vw, 480px); }
  .hero-bg img{ object-position:center 0%; }
  .hero-grid2{ padding:32px 28px 64px; }
  .hero-inner{ max-width:none; }
  .hero h1{ font-size:34px; }
  .hero-slide--split .hero-bg, .hero-slide--right .hero-bg{ width:100%; inset:auto; }
  .hero-slide--right .hero-bg::after{ background:none; }
  .hero-slide--split .hero-bg::after{ background:none; }
  .hero-slide--split .hero-grid2{ display:block; }
  .hero-slide--split .hero-inner{ max-width:none; }
  .hero-controls{ bottom:18px; }
}
@media (max-width:560px){ .hero h1{ font-size:30px; } }

/* ---------- STATS ---------- */
.stats-strip{ padding:0; }
.stats-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
@media (max-width:720px){ .stats-grid{ grid-template-columns:1fr 1fr; } }
.stat-item{ background:#fff; padding:30px 24px; text-align:center; }
.stat-num{ font-family:var(--serif); font-size:30px; font-weight:600; color:var(--blue); }
.stat-label{ font-size:12.5px; color:var(--text-faint); margin-top:4px; font-weight:500; }

/* ---------- PARTNER STRIP ---------- */
.partners{ padding:44px 0; }
.partners-inner{ display:flex; align-items:center; justify-content:center; gap:48px; flex-wrap:wrap; }
.partner-name{ font-family:var(--serif); font-size:16px; font-weight:600; color:var(--text-faint); letter-spacing:.02em; }

/* ---------- PROGRAM CARDS ---------- */
.prog-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:36px; }
@media (max-width:760px){ .prog-grid{ grid-template-columns:1fr; } }
.prog-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:18px; padding:28px;
  display:flex; flex-direction:column; gap:12px; text-decoration:none; transition:box-shadow .2s ease, transform .2s ease;
}
.prog-card:hover{ box-shadow:0 12px 30px rgba(57,59,229,.12); transform:translateY(-2px); }
.prog-card .tag{
  font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--blue); background:var(--blue-soft); display:inline-block; padding:4px 10px; border-radius:999px; align-self:flex-start;
}
.prog-card .icon{
  width:44px; height:44px; border-radius:12px; background:var(--blue-softer); color:var(--blue);
  display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:4px;
}
.prog-card h3{ margin:2px 0 0; font-size:19px; }
.prog-card p{ font-size:14px; margin:0; color:var(--text-dim); }
.prog-card .go{ font-size:13.5px; font-weight:600; color:var(--blue); margin-top:6px; }
.prog-card img.thumb{ border-radius:12px; margin-bottom:8px; aspect-ratio:16/9; object-fit:cover; }

.photo-card{
  position:relative; border-radius:18px; overflow:hidden; min-height:320px;
  display:flex; align-items:flex-end; text-decoration:none; color:#fff;
}
.photo-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.photo-card::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, transparent 35%, rgba(10,20,80,.9) 100%);
}
.photo-card .body{ position:relative; z-index:2; padding:26px; }

.full-banner{ position:relative; min-height:360px; display:flex; align-items:center; overflow:hidden; }
.full-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.full-banner::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(13,36,134,.86) 0%, rgba(57,59,229,.45) 55%, rgba(130,85,241,.12) 100%);
}
.full-banner .wrap{ position:relative; z-index:2; }
.full-banner h2{ color:#fff; max-width:560px; }
.full-banner p{ color:#e4e0fb; max-width:520px; }
.photo-card .tag{
  font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:#fff; background:rgba(255,255,255,.18); backdrop-filter:blur(4px);
  display:inline-block; padding:4px 10px; border-radius:999px; margin-bottom:10px;
}
.photo-card h3{ color:#fff; margin-bottom:6px; }
.photo-card p{ color:#e4e0fb; font-size:13.5px; margin:0; }

/* ---------- TIMELINE ---------- */
.timeline{ margin-top:40px; display:flex; flex-direction:column; }
.tl-row{ display:grid; grid-template-columns:100px 1fr; gap:24px; padding:20px 0; border-top:1px solid var(--line); }
.tl-row:first-child{ border-top:none; }
.tl-year{ font-family:var(--serif); font-size:18px; font-weight:600; color:var(--blue); }
.tl-body h3{ font-size:16px; margin-bottom:4px; }
.tl-body p{ font-size:14px; margin:0; }

/* ---------- QUOTE ---------- */
.quote-block{
  background:var(--blue-softer); border-left:3px solid var(--blue); border-radius:0 14px 14px 0;
  padding:22px 26px; margin:22px 0;
}
.quote-block p{ font-size:15px; color:var(--text); font-style:italic; margin:0 0 8px; }
.quote-block .who{ font-size:13px; color:var(--text-faint); font-style:normal; font-weight:600; }

/* ---------- TEAM / BIO ---------- */
.bio-card{
  display:grid; grid-template-columns:220px 1fr; gap:36px; align-items:start;
  background:var(--bg-soft); border-radius:20px; padding:32px;
}
@media (max-width:640px){ .bio-card{ grid-template-columns:1fr; } }
.bio-avatar{
  width:100%; aspect-ratio:1; border-radius:16px; background:linear-gradient(135deg, var(--blue-soft), #fff);
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:44px; font-weight:600; color:var(--blue);
}
.cred-list{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; }
.cred-list li{ display:flex; gap:10px; font-size:14px; color:var(--text-dim); align-items:flex-start; }
.cred-list li::before{ content:'▸'; color:var(--gold); flex:none; }
.cred-list b{ color:var(--text); font-weight:600; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px; }
@media (max-width:720px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{ background:var(--bg-soft); border-radius:18px; padding:28px; }
.contact-card .icon{ width:40px; height:40px; border-radius:10px; background:var(--blue-soft); color:var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.contact-card a.big-link{ font-size:16px; font-weight:600; color:var(--blue); text-decoration:none; }

/* ---------- CTA ---------- */
.cta{ text-align:center; background:var(--bg-soft); }
.cta h2{ margin-bottom:14px; }
.cta .lede{ margin:0 auto 28px; }

/* ---------- FOOTER ---------- */
footer{ padding:40px 0; border-top:1px solid var(--line); }
.footer-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.footer-inner p{ font-size:13px; color:var(--text-faint); margin:0; }
.footer-links{ display:flex; gap:20px; }
.footer-links a{ font-size:13px; color:var(--text-dim); text-decoration:none; }
.footer-links a:hover{ color:var(--blue); }

.reveal{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; }
.reveal.in{ opacity:1; transform:none; }

/* =====================================================
   SUBPAGES (cs1.html / future.html)
   ===================================================== */
.backlink{ display:block; font-size:13px; font-weight:600; color:var(--text-faint); text-decoration:none; margin-bottom:18px; }
.backlink:hover{ color:var(--orange); }

.page-hero{ position:relative; overflow:hidden; background:#f6f5ff; min-height:540px; display:flex; align-items:center; padding:56px 0; }
.page-hero .ph-bg{ position:absolute; inset:0 0 0 auto; width:54%; z-index:0; }
.page-hero .ph-bg img{ width:100%; height:100%; object-fit:cover; object-position:center; }
.page-hero .ph-bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(270deg, rgba(246,245,255,0) 50%, #f6f5ff 100%); }
.page-hero .wrap{ position:relative; z-index:1; width:100%; }
.page-hero .ph-inner{ max-width:500px; }
.page-hero h1{
  font-size:40px; line-height:1.14; font-weight:700; color:var(--blue);
  background:linear-gradient(135deg, var(--purple), var(--blue));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; padding-bottom:.08em;
}
.page-hero .lede{ font-size:17px; margin-bottom:26px; }
.page-hero .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }
@media (max-width:1000px){
  .page-hero{ display:block; padding:0; min-height:0; }
  .page-hero .ph-bg{ position:relative; width:100%; height:clamp(240px, 46vw, 420px); inset:auto; }
  .page-hero .ph-bg::after{ background:none; }
  .page-hero .ph-inner{ max-width:none; padding:28px 0 44px; }
  .page-hero h1{ font-size:32px; }
}

/* facts strip */
.qf-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
@media (max-width:720px){ .qf-grid{ grid-template-columns:1fr 1fr; } }
.qf-item{ background:#fff; padding:20px 22px; display:flex; flex-direction:column; gap:4px; }
.qf-label{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); font-weight:700; }
.qf-value{ font-family:var(--serif); font-size:20px; font-weight:600; color:var(--text); }
.qf-sub{ font-family:var(--sans); font-size:12px; font-weight:400; color:var(--text-faint); }

.trust-list{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; max-width:820px; }
.trust-list li{ display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:var(--text-dim); }
.trust-list li::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--orange); flex:none; margin-top:9px; }
.trust-list b{ color:var(--text); font-weight:600; }

/* testimonials */
.test-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:32px; }
@media (max-width:720px){ .test-grid{ grid-template-columns:1fr; } }
.test-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 26px 22px; }
.test-quote-mark{ font-family:var(--serif); font-size:40px; color:var(--orange); line-height:1; display:block; margin-bottom:6px; }
.test-card p{ font-size:14.5px; line-height:1.65; margin-bottom:18px; }
.test-attr{ display:flex; flex-direction:column; gap:2px; border-top:1px solid var(--line); padding-top:14px; }
.test-attr b{ font-size:14px; color:var(--text); }
.test-attr span{ font-size:12px; color:var(--text-faint); }

/* proof photo */
.proof-photo{ border-radius:18px; overflow:hidden; position:relative; margin-top:32px; }
.proof-photo img{ width:100%; height:auto; display:block; }
.proof-photo .cap{
  position:absolute; left:0; right:0; bottom:0; padding:48px 26px 20px; color:#fff; font-size:14px; font-weight:600;
  background:linear-gradient(180deg, transparent, rgba(10,20,80,.88));
}

/* weekly schedule */
.sched-card{ background:var(--bg-soft); border:1px solid var(--line); border-radius:16px; overflow:hidden; max-width:640px; }
.sched-head{ display:flex; justify-content:space-between; padding:14px 22px; font-size:12.5px; font-weight:700; color:var(--text-faint); border-bottom:1px solid var(--line); text-transform:uppercase; letter-spacing:.05em; }
.sched-row{ display:flex; justify-content:space-between; gap:16px; padding:14px 22px; border-bottom:1px solid var(--line); font-size:14px; }
.sched-row:last-child{ border-bottom:none; }
.sched-row .d{ color:var(--text-dim); }
.sched-row .t{ color:var(--text); font-weight:600; text-align:right; }

.sched-table{ width:100%; border-collapse:collapse; margin-top:20px; font-size:13.5px; }
.sched-table th{ text-align:left; color:var(--text-faint); font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; padding:8px 12px; border-bottom:1px solid var(--line); }
.sched-table td{ padding:10px 12px; border-bottom:1px solid var(--line); color:var(--text-dim); }
.sched-table td.wk-num{ color:var(--blue); font-weight:700; font-family:var(--serif); }
.sched-table tr.break td{ color:var(--text-faint); font-style:italic; }
.full-sched{ margin-top:22px; }
.full-sched summary{ cursor:pointer; list-style:none; font-size:14px; font-weight:700; color:var(--blue); display:flex; align-items:center; gap:8px; }
.full-sched summary::-webkit-details-marker{ display:none; }
.full-sched summary .plus{ font-family:var(--serif); transition:transform .2s ease; }
.full-sched[open] summary .plus{ transform:rotate(45deg); }

/* curriculum phases */
.phase-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:32px; }
@media (max-width:960px){ .phase-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .phase-grid{ grid-template-columns:1fr; } }
.phase-card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:20px 18px; display:flex; flex-direction:column; gap:8px; }
.phase-num{ font-family:var(--serif); font-size:13px; font-weight:700; color:#fff; background:linear-gradient(135deg, var(--purple), var(--blue)); width:28px; height:28px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.phase-card h3{ font-size:16px; margin:6px 0 0; }
.phase-card .wk{ font-size:11px; color:var(--text-faint); font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.phase-card p{ font-size:13px; margin:0; }

/* format cards */
.format-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }
@media (max-width:820px){ .format-grid{ grid-template-columns:1fr; } }
.format-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px; }
.format-card .icon{ width:38px; height:38px; border-radius:10px; background:rgba(255,153,0,.14); color:var(--orange); display:flex; align-items:center; justify-content:center; font-weight:700; margin-bottom:14px; }
.format-card h3{ font-size:17px; }
.format-card p{ font-size:13.5px; margin:0; }

/* pricing */
.price-base{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; border:1px dashed var(--line); border-radius:12px; padding:18px 22px; margin:30px 0 8px; background:#fff; }
.price-base .label{ font-size:14px; color:var(--text-dim); }
.price-base .amt{ font-family:var(--serif); font-size:17px; font-weight:600; color:var(--text-dim); }
.price-note{ font-size:13.5px; color:var(--text-faint); margin:0 0 6px; }
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:28px; }
@media (max-width:820px){ .price-grid{ grid-template-columns:1fr; } }
.price-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:26px 24px; position:relative; display:flex; flex-direction:column; gap:8px; }
.price-card .ptag{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); }
.price-card .pname{ font-family:var(--serif); font-size:18px; font-weight:600; }
.price-card .pamt{ font-family:var(--serif); font-size:26px; font-weight:700; color:var(--blue); }
.price-card .pamt .strike{ display:block; font-size:13px; font-weight:400; color:var(--text-faint); text-decoration:line-through; }
.price-card p{ font-size:13.5px; margin:0; }
.price-card.inactive{ opacity:.55; filter:grayscale(.4); }
.price-card.inactive .pamt{ text-decoration:line-through; color:var(--text-faint); }
.price-card.inactive::before{ content:'ХУГАЦАА ДУУССАН'; position:absolute; top:-11px; left:20px; background:var(--text-faint); color:#fff; font-size:10px; font-weight:700; letter-spacing:.05em; padding:3px 9px; border-radius:20px; }
.single-price{ max-width:440px; margin:32px auto 0; background:#fff; border:1px solid var(--line); border-radius:20px; padding:36px; text-align:center; box-shadow:0 16px 40px rgba(57,59,229,.08); }
.single-price .amt{ font-family:var(--serif); font-size:40px; font-weight:700; margin:8px 0 4px;
  background:linear-gradient(135deg, var(--purple), var(--blue)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.single-price ul{ list-style:none; padding:0; margin:22px 0; text-align:left; display:flex; flex-direction:column; gap:10px; }
.single-price li{ display:flex; gap:10px; font-size:14px; color:var(--text-dim); }
.single-price li::before{ content:'✓'; color:var(--orange); font-weight:700; flex:none; }

/* FAQ */
.faq-list{ display:flex; flex-direction:column; gap:10px; max-width:780px; margin-top:28px; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.faq-item summary{ list-style:none; cursor:pointer; padding:19px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-weight:600; font-size:15px; color:var(--text); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .plus{ font-family:var(--serif); color:var(--orange); font-size:20px; flex:none; transition:transform .2s ease; }
.faq-item[open] summary .plus{ transform:rotate(45deg); }
.faq-a{ padding:0 22px 20px; font-size:14px; color:var(--text-dim); line-height:1.65; }

.cred-list b{ white-space:nowrap; }
.prog-grid--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .prog-grid--3{ grid-template-columns:1fr; } }

.tl-body--photo{ display:grid; grid-template-columns:1fr 160px; gap:20px; align-items:center; }
.tl-body--photo img{ border-radius:12px; width:100%; aspect-ratio:1; object-fit:cover; object-position:top; }
@media (max-width:560px){
  .tl-row{ grid-template-columns:64px 1fr; gap:14px; }
  .tl-body--photo{ grid-template-columns:1fr; }
  .tl-body--photo img{ max-width:180px; }
}

/* Footer (expanded) */
footer{ padding:28px 0; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.footer-col h4{ font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); margin:0 0 14px; }
.footer-col a{ display:block; font-size:14px; color:var(--text-dim); text-decoration:none; margin-bottom:9px; }
.footer-col a:hover{ color:var(--orange); }
.footer-col p{ font-size:13px; color:var(--text-faint); margin:0; line-height:1.6; }
.footer-brand{ font-family:var(--serif); font-weight:700; font-size:15px; letter-spacing:.04em; color:var(--blue); margin-bottom:10px; }
.footer-note{ margin-top:6px !important; }
.footer-bottom{ margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px; color:var(--text-faint); }
@media (max-width:720px){ .footer-grid{ grid-template-columns:1fr; gap:28px; } }

/* Milestones list */
.ms-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.ms-list li{ font-size:15px; line-height:1.55; color:var(--text-dim); padding-left:16px; position:relative; }
.ms-list li::before{ content:''; position:absolute; left:0; top:.65em; width:6px; height:6px; border-radius:50%; background:var(--orange); }
.bio-card--founder{ grid-template-columns:400px 1fr; align-items:center; }
@media (max-width:860px){ .bio-card--founder{ grid-template-columns:1fr; } }
.ms-list a{ color:var(--blue); text-decoration:underline; text-decoration-color:rgba(57,59,229,.35); text-underline-offset:3px; }
.ms-list a:hover{ color:var(--orange); text-decoration-color:var(--orange); }

/* About banner: photo with purple→indigo gradient tint */
.about-banner{
  position:relative; padding:96px 0 88px; color:#fff; overflow:hidden;
  background:
    linear-gradient(135deg, rgba(130,85,241,.88) 0%, rgba(57,59,229,.84) 55%, rgba(13,36,134,.9) 100%),
    url('../images/about-banner-wide.jpg') center/cover no-repeat;
}
.about-banner .eyebrow{ color:var(--orange); }
.about-banner h1{ font-size:44px; line-height:1.1; color:#fff; background:none; -webkit-text-fill-color:#fff; margin-bottom:16px; }
.about-banner .lede{ font-size:18px; color:rgba(255,255,255,.92); max-width:600px; }
@media (max-width:640px){ .about-banner{ padding:64px 0 56px; } .about-banner h1{ font-size:34px; } }

/* Footer (compact) */
.footer-row{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.footer-contact{ line-height:1.4; display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--text-dim); }
.footer-contact a{ color:var(--text-dim); text-decoration:none; }
.footer-contact a:hover{ color:var(--orange); }
.footer-social{ display:flex; gap:10px; }
.footer-social a{ width:40px; height:40px; border-radius:50%; background:var(--blue-soft); color:var(--blue); display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.footer-social a svg{ width:18px; height:18px; }
.footer-social a:hover{ background:var(--orange); color:#fff; }
@media (max-width:640px){ .footer-row{ flex-direction:column; align-items:flex-start; } }

footer .footer-bottom{ margin-top:22px; padding-top:16px; border-top:1px solid var(--line); font-size:12.5px; color:var(--text-faint); }

/* Programs banner: competition winners */
.about-banner--results{
  background:
    linear-gradient(135deg, rgba(130,85,241,.88) 0%, rgba(57,59,229,.84) 55%, rgba(13,36,134,.9) 100%),
    url('../images/competition-winners.jpg') left 24%/120% auto no-repeat;
}
.about-banner--results h1{ font-size:34px; max-width:470px; }
.about-banner--results .lede{ max-width:470px; font-size:16.5px; }
@media (max-width:900px){
  .about-banner--results{ background-size:cover; background-position:center 14%; }
  .about-banner--results h1, .about-banner--results .lede{ max-width:none; }
}
@media (max-width:640px){ .about-banner--results h1{ font-size:28px; } }
@media (max-width:640px){
  .about-banner--results{
    padding-top:250px; background-color:#3b3fdd;
    background:
      linear-gradient(to bottom, rgba(59,63,221,0) 0, rgba(59,63,221,0) 190px, #3b3fdd 300px),
      linear-gradient(135deg, rgba(130,85,241,.80) 0%, rgba(57,59,229,.72) 55%, rgba(13,36,134,.82) 100%),
      url('../images/competition-winners.jpg') 38% 0/auto 310px no-repeat,
      #3b3fdd;
  }
}

/* Footer: brand navy */
footer{ background:linear-gradient(135deg, #0d2486 0%, #1b2fb0 100%); border-top:none; color:#fff; }
.footer-contact{ color:rgba(255,255,255,.85); }
.footer-contact a{ color:rgba(255,255,255,.85); }
.footer-contact a:hover{ color:var(--orange); }
.footer-social a{ background:rgba(255,255,255,.12); color:#fff; }
.footer-social a:hover{ background:var(--orange); color:#fff; }
footer .footer-bottom{ border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.6); }

/* Footer logo */
.footer-logo{ display:block; flex:none; }
.footer-logo img{ display:block; height:34px; width:auto; }
.footer-row{ gap:32px; }
.footer-contact{ margin-right:auto; }
@media (max-width:640px){ .footer-logo img{ height:32px; } .footer-contact{ margin-right:0; } }

/* Hero slide 1: stacked buttons */
.hero-ctas--stack{ flex-direction:column; align-items:stretch; width:fit-content; gap:12px; }
.hero-ctas--stack a{ text-align:center; }

/* Stats: unit next to number */
.stat-num small{ font-family:var(--sans); font-size:14px; font-weight:500; color:var(--text-faint); margin-left:4px; }

/* Partner logos */
.partners-logos{ padding:56px 0; background:#fff; }
.partner-logos{ display:flex; align-items:center; justify-content:center; gap:28px 56px; flex-wrap:wrap; margin-top:30px; }
.partner-logos .pl{ width:auto; display:block; filter:grayscale(1); opacity:.85; transition:filter .25s, opacity .25s; }
.partner-logos .pl:hover{ filter:none; opacity:1; }
.pl-codeai{ height:26px; }
.pl-cmu{ height:50px; }
.pl-bootup{ height:52px; }
.pl-scratch{ height:56px; }
.pl-devtech{ height:50px; }
@media (max-width:640px){
  .partner-logos{ gap:24px 36px; }
  .pl-codeai{ height:20px; } .pl-cmu{ height:38px; } .pl-bootup{ height:42px; } .pl-scratch{ height:46px; } .pl-devtech{ height:40px; }
}

/* Blog cards */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:32px; }
@media (max-width:960px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; text-decoration:none; color:inherit; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.blog-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(57,59,229,.12); border-color:#cfd0f7; }
.blog-thumb{ aspect-ratio:3/2; background:var(--blue-softer); overflow:hidden; }
.blog-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.blog-body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.blog-date{ font-size:12px; font-weight:600; letter-spacing:.04em; color:var(--text-faint); margin-bottom:8px; }
.blog-body h3{ font-size:17px; line-height:1.35; margin:0 0 8px; color:var(--text); }
.blog-body p{ font-size:13.5px; line-height:1.6; color:var(--text-dim); margin:0 0 14px; }
.blog-body .go{ margin-top:auto; font-size:13.5px; font-weight:600; color:var(--blue); }
.blog-card:hover .go{ color:var(--orange); }

/* announce strip */
.announce{ background:var(--blue-soft); border-bottom:1px solid var(--line); font-size:14px; }
.announce .wrap{ display:flex; align-items:center; gap:18px; padding-top:11px; padding-bottom:11px; flex-wrap:wrap; }
.announce-tag{ background:var(--orange); color:#fff; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 10px; border-radius:999px; }
.announce a{ color:var(--text-dim); text-decoration:none; }
.announce a b{ color:var(--navy); }
.announce a span{ color:var(--blue); transition:transform .2s; display:inline-block; }
.announce a:hover span{ transform:translateX(3px); }
.announce-sep{ width:1px; height:16px; background:#c9c9f0; }
@media (max-width:720px){ .announce-sep{ display:none; } .announce .wrap{ gap:8px 14px; } }
/* quotes 3-col */
.test-grid--3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:960px){ .test-grid--3{ grid-template-columns:1fr; } }
/* teaser cards */
.teaser-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:720px){ .teaser-grid{ grid-template-columns:1fr; } }
.teaser-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; text-decoration:none; color:inherit; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.teaser-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(57,59,229,.12); border-color:#cfd0f7; }
.teaser-img{ aspect-ratio:16/8; overflow:hidden; background:var(--blue-softer); }
.teaser-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.teaser-body{ padding:22px 26px 26px; }
.teaser-body h3{ font-size:20px; line-height:1.35; margin:6px 0 14px; }
.teaser-body .go{ font-size:14px; font-weight:600; color:var(--blue); }
.teaser-card:hover .go{ color:var(--orange); }

/* announce strip: gradient version */
.announce{ background:linear-gradient(90deg,#8255f1 0%,#393be5 55%,#1b2fb0 100%); border-bottom:0; }
.announce .wrap{ padding-top:13px; padding-bottom:13px; }
.announce a{ color:rgba(255,255,255,.88); }
.announce a b{ color:#fff; }
.announce a span{ color:var(--orange); }
.announce a:hover{ color:#fff; }
.announce-sep{ background:rgba(255,255,255,.35); }

/* announce: top bar with close button */
.announce[hidden]{ display:none; }
.announce .wrap{ position:relative; justify-content:center; padding-right:48px; padding-left:48px; }
.announce-close{ position:absolute; right:16px; top:50%; transform:translateY(-50%); width:28px; height:28px; border:0; border-radius:50%; background:transparent; color:rgba(255,255,255,.85); font-size:22px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.announce-close:hover{ background:rgba(255,255,255,.18); color:#fff; }
@media (max-width:720px){ .announce .wrap{ justify-content:flex-start; padding-left:16px; padding-right:48px; } }

/* stats on soft background */
.stats-strip.section-soft .stat-item{ background:transparent; }
.stats-strip.section-soft .stats-grid{ background:transparent; }

/* about: what we do / partners / work with us */
.do-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }
@media (max-width:860px){ .do-grid{ grid-template-columns:1fr; } }
.do-card{ display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; text-decoration:none; color:inherit; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.do-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(57,59,229,.12); border-color:#cfd0f7; }
.do-card h3{ margin:0; font-size:19px; }
.do-card p{ margin:0; font-size:14.5px; line-height:1.65; color:var(--text-dim); }
.do-card .go{ margin-top:auto; padding-top:6px; font-size:14px; font-weight:600; color:var(--blue); }
.do-card:hover .go{ color:var(--orange); }
.pt-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }
@media (max-width:860px){ .pt-grid{ grid-template-columns:1fr; } }
.pt-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; }
.pt-logo{ height:56px; display:flex; align-items:center; margin-bottom:16px; }
.pt-logo img{ max-height:44px; max-width:180px; width:auto; height:auto; display:block; }
.pt-card h3{ margin:0 0 8px; font-size:18px; }
.pt-card h3 span{ font-weight:400; color:var(--text-faint); font-size:12.5px; }
.pt-card p{ margin:0; font-size:14.5px; line-height:1.65; color:var(--text-dim); }
.workwith{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; background:var(--blue-softer); border:1px solid var(--line); border-radius:var(--radius); padding:32px 36px; }
.workwith h2{ font-size:24px; margin:0 0 6px; }
.workwith p{ margin:0; color:var(--text-dim); }

/* wide program card */
.prog-card--wide{ display:grid; grid-template-columns:1.1fr 1fr; gap:32px; align-items:center; padding:20px; }
.prog-card--wide img.thumb{ margin:0; width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:12px; }
.prog-card--wide .pc-text{ display:flex; flex-direction:column; gap:10px; padding-right:12px; }
.prog-card--wide .pc-text h3{ font-size:24px; }
.prog-card--wide .pc-text p{ font-size:15px; line-height:1.7; }
@media (max-width:760px){ .prog-card--wide{ grid-template-columns:1fr; gap:16px; } .prog-card--wide .pc-text{ padding:0 4px 8px; } }

/* programs: five photo cards */
.prog-photos{ display:grid; grid-template-columns:repeat(6,1fr); gap:20px; margin-top:32px; }
.prog-photos .photo-card{ grid-column:span 2; min-height:340px; }
.prog-photos .photo-card:nth-child(n+4){ grid-column:span 3; }
@media (max-width:860px){ .prog-photos{ grid-template-columns:1fr 1fr; } .prog-photos .photo-card, .prog-photos .photo-card:nth-child(n+4){ grid-column:span 1; } .prog-photos .photo-card:last-child{ grid-column:span 2; } }
@media (max-width:560px){ .prog-photos{ grid-template-columns:1fr; } .prog-photos .photo-card:last-child{ grid-column:span 1; } .prog-photos .photo-card{ min-height:300px; } }
a.photo-card{ transition:transform .2s ease, box-shadow .2s ease; }
a.photo-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(57,59,229,.2); }

/* summer of code cards */
.soc-grid .photo-card{ min-height:360px; }
.soc-grid .photo-card h3{ font-size:20px; margin:0 0 4px; }

/* program card extras */
.photo-card .pc-sub{ margin-top:4px; font-size:13.5px; line-height:1.55; color:#e4e0fb; font-weight:400; }
.photo-card .pc-go{ display:inline-block; margin-top:10px; font-size:13px; font-weight:600; color:#fff; border-bottom:1px solid rgba(255,255,255,.55); }
a.photo-card:hover .pc-go{ color:var(--orange); border-color:var(--orange); }
.enroll-strip{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:28px; background:var(--blue-softer); border:1px solid var(--line); border-radius:var(--radius); padding:20px 28px; font-size:16px; }
.enroll-strip b{ color:var(--navy); }

/* progression row */
.path-row{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:10px 0; }
.path-row li{ display:inline-flex; align-items:center; gap:8px; background:var(--blue-soft); color:var(--navy); font-size:14px; font-weight:600; padding:7px 14px 7px 8px; border-radius:999px; }
.path-row li span{ width:22px; height:22px; border-radius:50%; background:linear-gradient(135deg,var(--purple),var(--blue)); color:#fff; font-size:12px; display:inline-flex; align-items:center; justify-content:center; }
.path-row li + li{ margin-left:30px; position:relative; }
.path-row li + li::before{ content:'→'; position:absolute; left:-22px; color:var(--orange); font-weight:700; }
@media (max-width:640px){ .path-row li + li{ margin-left:24px; } .path-row li + li::before{ left:-18px; } .path-row li{ font-size:13px; } }
@media (max-width:640px){ .path-row{ gap:8px; } .path-row li + li{ margin-left:0; } .path-row li + li::before{ display:none; } }

/* summer of code: per-card carousels */
.soc-card{ align-items:flex-end; }
.soc-card .soc-track{ position:absolute; inset:0; z-index:0; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; outline:none; }
.soc-card .soc-track::-webkit-scrollbar{ display:none; }
.soc-card .soc-s{ flex:0 0 100%; height:100%; scroll-snap-align:start; }
.soc-card .soc-s img{ position:static; width:100%; height:100%; object-fit:cover; display:block; }
.soc-card::after{ pointer-events:none; }
.soc-card .body{ pointer-events:none; width:100%; }
.soc-card .soc-who{ font-size:13.5px; font-weight:600; color:#fff; opacity:.92; margin-bottom:6px; }
.soc-card .pc-cap{ font-size:13.5px; line-height:1.55; color:#e4e0fb; margin:0; min-height:21px; transition:opacity .25s; }
.soc-arrow{ position:absolute; top:42%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:0; background:rgba(255,255,255,.95); color:var(--navy); font-size:20px; font-weight:700; cursor:pointer; box-shadow:0 6px 16px rgba(0,0,0,.28); display:flex; align-items:center; justify-content:center; z-index:3; transition:background .2s, color .2s, opacity .2s, transform .2s; }
.soc-arrow:hover{ background:linear-gradient(135deg,var(--purple),var(--blue)); color:#fff; transform:translateY(-50%) scale(1.08); }
.soc-prev{ left:12px; }
.soc-next{ right:12px; }
.soc-arrow[disabled]{ opacity:0; pointer-events:none; }
.soc-dots{ position:absolute; top:14px; right:16px; display:flex; gap:6px; z-index:3; }
.soc-dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.55); transition:width .2s, background .2s; }
.soc-dot.is-active{ background:#fff; width:22px; border-radius:999px; }

/* research evidence blocks */
.ev-num{ font-family:var(--serif); font-size:40px; font-weight:600; color:var(--blue); line-height:1.1; }
.ev-num small{ font-family:var(--sans); font-size:14px; font-weight:500; color:var(--text-faint); margin-left:6px; }
.ev-note{ margin-top:24px; font-size:15px; color:var(--text-dim); max-width:860px; }
.ev-src{ margin-top:20px; font-size:13px; color:var(--text-faint); max-width:860px; line-height:1.7; }
.ev-src a{ color:var(--blue); text-decoration:underline; }
.grid-3-2{ display:grid; grid-template-columns:repeat(6,1fr); gap:20px; }
.grid-3-2 > *{ grid-column:span 2; }
.grid-3-2 > *:nth-child(n+4){ grid-column:span 3; }
@media(max-width:900px){ .grid-3-2 > *, .grid-3-2 > *:nth-child(n+4){ grid-column:span 6; } }

/* ---- block-coding illustrations (original, Blockly-style) ---- */
.blk-fig{ display:flex; align-items:center; justify-content:center; gap:28px; flex-wrap:wrap; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; margin-top:32px; }
.blk-fig figcaption{ flex-basis:100%; text-align:center; font-size:13px; color:var(--text-faint); margin-top:-4px; }
.blk-demo{ display:flex; flex-direction:column; width:236px; font-family:var(--sans); user-select:none; }
.blk{ position:relative; padding:9px 14px; border-radius:8px; color:#fff; font-weight:600; font-size:14px; line-height:1.3; margin-bottom:3px; box-shadow:inset 0 -2px 0 rgba(0,0,0,.16); }
.blk::after{ content:""; position:absolute; left:16px; bottom:-6px; width:20px; height:6px; background:inherit; border-radius:0 0 5px 5px; }
.blk--event{ background:var(--orange); border-radius:18px 18px 8px 8px; color:#3a2600; }
.blk--move{ background:var(--blue); }
.blk--turn{ background:#0f9d8a; }
.blk--loop{ background:var(--purple); box-shadow:none; margin-bottom:0; }
.blk--loop::after{ display:none; }
.blk-c{ background:var(--purple); border-radius:8px; padding-bottom:10px; margin-bottom:3px; box-shadow:inset 0 -2px 0 rgba(0,0,0,.16); }
.blk-c-inner{ margin:2px 0 0 18px; }
.blk-c-inner .blk:last-child{ margin-bottom:0; }
.blk-c-inner .blk:last-child::after{ display:none; }
.blk-in{ display:inline-block; min-width:28px; text-align:center; background:#fff; color:var(--text); border-radius:12px; padding:0 8px; margin:0 3px; font-weight:700; }
.fig-arrow{ font-size:28px; color:var(--blue); font-weight:600; }
.py-demo{ margin:0; background:var(--navy); color:#e8ecff; border-radius:12px; padding:18px 20px; font:13.5px/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; min-width:236px; white-space:pre; overflow-x:auto; }
.py-demo .k{ color:#ffb84d; } .py-demo .n{ color:#9fb3ff; } .py-demo .f{ color:#c9b3ff; }
.fig-result svg{ display:block; }
@media(max-width:640px){ .blk-fig{ padding:20px 16px; gap:18px; } .fig-arrow{ transform:rotate(90deg); } }
.blk-c-inner{ margin-right:10px; }
.blk-demo{ max-width:100%; }
.py-demo{ max-width:100%; box-sizing:border-box; }
@media(max-width:640px){ .blk-fig{ flex-direction:column; } .fig-arrow{ width:100%; text-align:center; transform:none; } .fig-arrow::before{ content:"↓"; } .fig-arrow{ font-size:0; } .fig-arrow::before{ font-size:28px; } .blk-demo,.py-demo{ width:100%; max-width:300px; } }
.enroll-badge{ position:absolute; top:14px; left:14px; z-index:3; background:var(--orange); color:#3a2600; font-size:12px; font-weight:700; line-height:1.2; padding:6px 12px; border-radius:999px; box-shadow:0 4px 12px rgba(0,0,0,.18); letter-spacing:.01em; }
.founder-sign{ margin-top:22px !important; padding-top:16px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:baseline; gap:2px 8px; color:var(--text); }
.founder-sign .fs-dash{ color:var(--orange); font-weight:700; }
.founder-sign b{ font-family:var(--serif); font-size:19px; font-weight:600; }
.founder-sign span:last-child{ flex-basis:100%; padding-left:26px; font-size:13px; color:var(--text-faint); }

.about-banner--teachers{padding:96px 0 88px;background:linear-gradient(100deg,rgba(57,59,229,.86) 0%,rgba(57,59,229,.62) 42%,rgba(13,36,134,.22) 100%),url('../images/teachers-hero-wide.jpg') center/cover no-repeat;}
.about-banner--teachers h1{max-width:520px;font-size:40px}
.about-banner--teachers .lede{max-width:500px;font-size:17px}
@media(max-width:700px){.about-banner--teachers{padding:96px 0 88px;background-position:60% 36%}.about-banner--teachers h1{font-size:30px}}

.hoai-intro{padding:64px 0 50px}
.hoai-intro-in{display:flex;align-items:center;justify-content:space-between;gap:48px}
.hoai-text{max-width:620px}
.hoai-text h1{font-size:38px}
.hoai-text .lede{font-size:17.5px}
.hoai-logo{width:100%;max-width:400px;height:auto;flex:0 0 auto}
@media(max-width:860px){.hoai-intro-in{flex-direction:column-reverse;align-items:flex-start;gap:28px}.hoai-logo{max-width:260px}}

footer .footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}
.footer-badge{display:block;flex:none;line-height:0}
.footer-badge img{width:72px;height:72px;display:block;transition:transform .2s}

.about-banner--hoai{padding:96px 0 88px;background:linear-gradient(100deg,rgba(57,59,229,.9) 0%,rgba(57,59,229,.68) 45%,rgba(13,36,134,.3) 100%),url('../images/hourofai-hero-wide.jpg') center/cover no-repeat;}
.about-banner--hoai h1{max-width:560px;font-size:44px}
.about-banner--hoai .lede{max-width:520px;font-size:18px}
.hoai-logo--inline{max-width:300px;margin:0 0 28px;display:block}
@media(max-width:700px){.about-banner--hoai{background-position:35% 22%}.about-banner--hoai h1{font-size:32px}}

.about-banner--hoai .wrap{position:relative}
.hoai-banner-logo{position:absolute;right:0;top:50%;transform:translateY(-50%);width:150px;height:auto;filter:drop-shadow(0 2px 10px rgba(13,36,134,.55))}
@media(max-width:860px){.hoai-banner-logo{position:static;transform:none;width:96px;margin-top:22px}}

.hoai-title{margin:0 0 22px;line-height:0}
.hoai-title img{display:block;width:360px;max-width:80%;height:auto;filter:drop-shadow(0 2px 10px rgba(13,36,134,.45))}
@media(max-width:700px){.hoai-title img{width:260px}}

.hoai-graphic{display:block;width:100%;height:auto;border-radius:var(--radius);box-shadow:0 14px 40px rgba(13,36,134,.16)}

/* mobile: lighter, uncropped banner photos (keeps the original framing) */
@media(max-width:700px){
  .about-banner:not([class*="--"]){background-image:linear-gradient(135deg, rgba(130,85,241,.88) 0%, rgba(57,59,229,.84) 55%, rgba(13,36,134,.9) 100%),url('../images/about-banner-m.jpg');background-position:center,center 22%;background-size:auto,cover;}
  .about-banner--teachers{background-image:linear-gradient(100deg,rgba(57,59,229,.86) 0%,rgba(57,59,229,.62) 42%,rgba(13,36,134,.22) 100%),url('../images/teachers-hero-m.jpg');background-position:center,60% 36%;background-size:auto,cover;}
  .about-banner--hoai{background-image:linear-gradient(100deg,rgba(57,59,229,.9) 0%,rgba(57,59,229,.68) 45%,rgba(13,36,134,.3) 100%),url('../images/hourofai-hero-m.jpg');background-position:center,35% 22%;background-size:auto,cover;}
}
