
:root {
  --bg: #f7fbff;
  --bg-soft: #eef5ff;
  --surface: rgba(255,255,255,0.78);
  --surface-strong: #ffffff;
  --text: #15233d;
  --muted: #62708e;
  --line: rgba(42, 82, 152, 0.12);
  --accent: #5a67ff;
  --accent-2: #1ecbff;
  --accent-3: #ff9f67;
  --accent-4: #9d6bff;
  --success: #0ca678;
  --danger: #d9485f;
  --shadow: 0 24px 60px rgba(70, 104, 196, 0.16);
  --radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Manrope', system-ui, sans-serif;
  background:
    radial-gradient(circle at top left, rgba(30,203,255,0.22), transparent 28%),
    radial-gradient(circle at top right, rgba(255,159,103,0.20), transparent 26%),
    linear-gradient(180deg, #fbfdff 0%, #f5f9ff 100%);
  color: var(--text);
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select {
  font: inherit;
}
.container {
  width: min(1180px, calc(100% - 2rem));
  margin: 0 auto;
}
.section { padding: 80px 0; position: relative; }
.section-alt { background: linear-gradient(180deg, rgba(255,255,255,0.65), rgba(236,245,255,0.7)); }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  color: #30457a;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(64,116,255,0.12);
  box-shadow: 0 12px 32px rgba(97, 132, 255, 0.12);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 52px;
  padding: 0 1.25rem;
  border-radius: 18px;
  border: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  font-weight: 800;
  box-shadow: 0 16px 36px rgba(86, 120, 255, 0.24);
  transition: transform .25s ease, box-shadow .25s ease;
  cursor: pointer;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 20px 40px rgba(86, 120, 255, 0.3); }
.button-light {
  background: rgba(255,255,255,0.88);
  color: var(--text);
  border: 1px solid rgba(86, 120, 255, 0.12);
  box-shadow: 0 14px 36px rgba(78, 113, 200, 0.12);
}
.button-sm { min-height: 44px; padding: 0 1rem; border-radius: 16px; }
.ghost-link { color: var(--muted); }
.muted { color: var(--muted); }
.chip, .meta-pill, .filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: .45rem .8rem;
  font-size: .85rem;
  font-weight: 700;
}
.chip { background: rgba(255,255,255,0.82); color: #29416e; }
.chip-blue { background: rgba(90, 103, 255, 0.12); color: #3849da; }
.chip-orange { background: rgba(255, 159, 103, 0.14); color: #e0611f; }
.meta-pill { background: rgba(31, 71, 144, 0.08); color: var(--muted); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  padding: 1rem 0;
  backdrop-filter: blur(18px);
  background: rgba(247, 251, 255, 0.75);
  border-bottom: 1px solid rgba(91, 116, 187, 0.08);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.brand { display: flex; align-items: center; gap: .9rem; }
.brand strong { display: block; font-size: 1rem; }
.brand small { display: block; color: var(--muted); }
.brand-mark {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--accent), var(--accent-3));
  box-shadow: 0 18px 28px rgba(98, 111, 255, 0.24);
  position: relative;
}
.brand-mark::before, .brand-mark::after {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: 10px;
  background: rgba(255,255,255,0.28);
}
.brand-mark::after { inset: 18px 8px 8px 18px; }
.site-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.site-nav a { color: #314469; font-weight: 700; }
.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(93, 111, 194, 0.12);
  background: rgba(255,255,255,0.75);
}
.hero-section {
  position: relative;
  padding: 92px 0 68px;
  overflow: clip;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
  gap: 2rem;
}
.hero-copy h1 {
  margin: 1rem 0 1rem;
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: .95;
  letter-spacing: -0.04em;
}
.hero-copy p {
  max-width: 660px;
  color: var(--muted);
  font-size: 1.12rem;
  line-height: 1.7;
}
.hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.6rem;
}
.hero-stats {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.hero-stats article {
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(91, 116, 187, 0.08);
  box-shadow: var(--shadow);
}
.hero-stats strong {
  display: block;
  font-size: 1.55rem;
}
.hero-stats span { color: var(--muted); font-size: .95rem; }
.hero-visual {
  position: relative;
  min-height: 620px;
  display: grid;
  place-items: center;
}
.hero-illustration {
  width: min(560px, 100%);
  padding: 1rem;
  z-index: 2;
}
.glass-card, .glass-panel, .detail-card, .apply-card, .auth-card, .admin-panel, .stat-card, .feature-card, .program-card, .campus-card, .faq-item, .thank-you-box {
  background: rgba(255,255,255,0.80);
  border: 1px solid rgba(103, 126, 201, 0.12);
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}
.glass-card {
  position: absolute;
  max-width: 280px;
  padding: 1.1rem;
  border-radius: 24px;
  z-index: 3;
}
.float-card.card-top { top: 40px; right: 0; }
.float-card.card-bottom { bottom: 45px; left: 10px; }
.hero-blob {
  position: absolute;
  border-radius: 999px;
  filter: blur(4px);
}
.hero-blob-a {
  width: 360px; height: 360px; background: radial-gradient(circle, rgba(30,203,255,0.34), rgba(30,203,255,0) 72%); top: -30px; right: -40px;
}
.hero-blob-b {
  width: 280px; height: 280px; background: radial-gradient(circle, rgba(255,159,103,0.32), rgba(255,159,103,0) 74%); bottom: 10px; left: -30px;
}
.hero-blob-c {
  width: 220px; height: 220px; background: radial-gradient(circle, rgba(157,107,255,0.26), rgba(157,107,255,0) 74%); top: 180px; left: 38%;
}
.section-head {
  margin-bottom: 2rem;
}
.section-head.with-action {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
}
.section-head h2 { font-size: clamp(2rem, 4.6vw, 3rem); margin: .9rem 0 0; line-height: 1.05; }
.section-head p { color: var(--muted); max-width: 720px; }
.feature-grid, .program-grid, .campus-grid, .detail-grid {
  display: grid;
  gap: 1.25rem;
}
.feature-grid { grid-template-columns: repeat(3, 1fr); }
.feature-card {
  padding: 1.6rem;
  border-radius: 28px;
}
.feature-card h3 { margin: 1rem 0 .7rem; font-size: 1.25rem; }
.feature-card p { color: var(--muted); line-height: 1.7; }
.icon-badge {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
}
.accent-orange .icon-badge { background: linear-gradient(135deg, var(--accent-3), #ffc164); }
.accent-violet .icon-badge { background: linear-gradient(135deg, var(--accent-4), var(--accent)); }
.program-grid { grid-template-columns: repeat(3, 1fr); }
.program-card {
  position: relative;
  overflow: hidden;
  padding: 1.5rem;
  border-radius: 28px;
  min-height: 320px;
}
.program-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, color-mix(in srgb, var(--from) 28%, white), transparent 34%),
              linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.78));
  z-index: 0;
}
.program-card > * { position: relative; z-index: 1; }
.program-card h3 { font-size: 1.3rem; margin: 1rem 0 .9rem; }
.program-card p { color: var(--muted); line-height: 1.65; }
.program-card__top, .program-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}
.program-meta { margin-top: 1.2rem; color: var(--muted); font-weight: 700; }
.inline-link { margin-top: 1.3rem; display: inline-flex; font-weight: 800; color: #3147d8; }
.split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  align-items: center;
}
.steps-list {
  display: grid;
  gap: 1rem;
}
.steps-list.wide { grid-template-columns: 1fr; }
.step-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: rgba(255,255,255,0.74);
  border: 1px solid rgba(94, 118, 186, 0.1);
}
.step-item strong {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-3));
}
.step-item span { line-height: 1.55; }
.glass-panel {
  border-radius: 30px;
  padding: 1.5rem;
}
.campus-grid { grid-template-columns: repeat(3, 1fr); }
.campus-card {
  padding: 1.55rem;
  border-radius: 28px;
  min-height: 280px;
  position: relative;
  overflow: hidden;
}
.campus-card.large { min-height: 340px; }
.campus-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(255,255,255,0.65), transparent 35%);
}
.campus-card > * { position: relative; z-index: 1; }
.campus-card ul {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  display: grid;
  gap: .7rem;
  color: var(--muted);
}
.campus-sky { background: linear-gradient(180deg, rgba(91,212,255,0.16), rgba(255,255,255,0.85)); }
.campus-peach { background: linear-gradient(180deg, rgba(255,176,112,0.18), rgba(255,255,255,0.85)); }
.campus-violet { background: linear-gradient(180deg, rgba(157,107,255,0.16), rgba(255,255,255,0.85)); }
.campus-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.faq-list { display: grid; gap: 1rem; }
.faq-item {
  border-radius: 24px;
  padding: 1rem 1.25rem;
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  font-weight: 800;
  font-size: 1.05rem;
}
.faq-item p {
  color: var(--muted);
  margin: 1rem 0 .25rem;
  line-height: 1.7;
}
.apply-section { padding: 28px 0 90px; }
.apply-card {
  border-radius: 34px;
  padding: 2rem;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 2rem;
}
.apply-card h2 { margin: .75rem 0 1rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.03; }
.apply-card p { color: var(--muted); }
.apply-form {
  padding: 1.1rem;
  border-radius: 28px;
  background: rgba(248, 251, 255, 0.75);
  border: 1px solid rgba(100, 122, 194, 0.08);
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.form-grid label, .admin-form label, .auth-form label {
  display: grid;
  gap: .45rem;
}
.form-grid label span, .admin-form label span, .auth-form label span {
  font-weight: 700;
  color: #314469;
}
input, textarea, select {
  width: 100%;
  padding: .9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(98, 119, 185, 0.14);
  background: #fff;
  color: var(--text);
  outline: none;
}
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus {
  border-color: rgba(90, 103, 255, 0.5);
  box-shadow: 0 0 0 3px rgba(90, 103, 255, 0.12);
}
.span-2 { grid-column: span 2; }
.checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 1rem 0 1.2rem;
  color: var(--muted);
}
.checkbox-row input { width: auto; margin-top: .15rem; }
.page-main { padding-bottom: 40px; }
.page-hero, .program-hero {
  position: relative;
  overflow: clip;
  padding: 88px 0 54px;
}
.page-hero.compact { padding-top: 70px; }
.page-hero::before, .program-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, rgba(30,203,255,0.22), transparent 30%),
              radial-gradient(circle at left center, rgba(255,159,103,0.18), transparent 26%);
}
.page-hero h1, .program-hero h1 { margin: .8rem 0 1rem; font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; }
.page-hero p, .program-hero p { max-width: 720px; color: var(--muted); font-size: 1.08rem; line-height: 1.7; }
.filter-bar {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.filter-chip {
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(90, 103, 255, 0.12);
  color: #32486e;
}
.filter-chip.active { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; }
.program-hero {
  background: linear-gradient(180deg, color-mix(in srgb, var(--from) 14%, white), rgba(255,255,255,0.9));
}
.program-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.8rem;
  align-items: center;
}
.detail-grid { grid-template-columns: repeat(2, 1fr); }
.detail-card {
  border-radius: 28px;
  padding: 1.4rem;
}
.detail-card h3 { margin-top: .2rem; }
.detail-list, .bullet-list {
  margin: 1rem 0 0;
  padding-left: 1.2rem;
  color: var(--muted);
  line-height: 1.7;
}
.thank-you-box {
  border-radius: 34px;
  padding: 2rem;
  text-align: center;
}
.flash-wrap { padding-top: 1rem; }
.flash {
  border-radius: 18px;
  padding: .95rem 1rem;
  margin-bottom: .75rem;
  font-weight: 700;
}
.flash-success { background: rgba(12, 166, 120, 0.12); color: #0b7e5d; }
.flash-danger { background: rgba(217, 72, 95, 0.12); color: #b9344c; }
.flash-warning { background: rgba(255, 173, 50, 0.16); color: #aa6410; }
.flash-info { background: rgba(86, 120, 255, 0.12); color: #4059cf; }

.site-footer-minimal {
  padding: 0 0 34px;
}
.footer-minimal-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem 2rem;
  padding: 1.2rem 1.4rem;
  border-radius: 26px;
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(103, 126, 201, 0.14);
  box-shadow: 0 22px 44px rgba(15, 23, 42, 0.07);
  backdrop-filter: blur(16px);
}
.footer-brand-block {
  display: flex;
  align-items: center;
  gap: 0.95rem;
  min-width: 0;
}
.footer-brand-logo {
  width: 56px;
  height: 56px;
  object-fit: contain;
  flex: 0 0 56px;
}
.footer-brand-fallback {
  width: 56px;
  height: 56px;
  flex: 0 0 56px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow: 0 14px 26px rgba(98, 108, 255, 0.24);
}
.footer-brand-copy {
  min-width: 0;
}
.footer-brand-copy strong {
  display: block;
  font-size: 1rem;
  line-height: 1.25;
  color: var(--text);
}
.footer-contact-row {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.9rem;
  flex-wrap: wrap;
}
.footer-contact-row a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  background: rgba(246, 249, 255, 0.96);
  border: 1px solid rgba(103, 126, 201, 0.12);
  color: var(--text);
  text-decoration: none;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  white-space: nowrap;
}
.footer-contact-row a:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(15, 23, 42, 0.08);
  border-color: rgba(94, 112, 255, 0.24);
}
.site-footer {
  padding: 0 0 60px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .9fr .9fr;
  gap: 1.5rem;
  padding: 2rem;
  border-radius: 34px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(103, 126, 201, 0.12);
  box-shadow: var(--shadow);
}
.footer-grid h3, .footer-grid h4 { margin-top: 0; }
.footer-grid p, .footer-grid a { color: var(--muted); }
.auth-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem;
}
.auth-card {
  width: min(520px, 100%);
  border-radius: 34px;
  padding: 2rem;
}
.auth-card h1 { margin: .8rem 0 1.2rem; }
.auth-form { display: grid; gap: 1rem; }
.admin-shell {
  background: linear-gradient(180deg, #f8fbff 0%, #eef4ff 100%);
}
.admin-layout {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
}
.admin-sidebar {
  padding: 1.4rem;
  border-right: 1px solid rgba(103, 126, 201, 0.12);
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(18px);
}
.admin-brand {
  display: inline-flex;
  align-items: center;
  padding: .75rem 1rem;
  border-radius: 18px;
  font-weight: 800;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: white;
  margin-bottom: 1.25rem;
}
.admin-sidebar nav { display: grid; gap: .3rem; }
.admin-sidebar nav a {
  padding: .85rem 1rem;
  border-radius: 16px;
  color: #314469;
  font-weight: 700;
}
.admin-sidebar nav a:hover { background: rgba(92, 110, 188, 0.08); }
.admin-content {
  padding: 2rem;
}
.admin-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}
.admin-header h1 { margin: .5rem 0 0; }
.admin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.4rem;
}
.stat-card {
  border-radius: 26px;
  padding: 1.3rem;
}
.stat-card strong { display: block; font-size: 2rem; }
.stat-card span { color: var(--muted); }
.admin-panel {
  border-radius: 30px;
  padding: 1.3rem;
  margin-bottom: 1.25rem;
}
.admin-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.table-wrap { overflow-x: auto; }
table {
  width: 100%;
  border-collapse: collapse;
}
th, td {
  padding: .9rem .85rem;
  border-bottom: 1px solid rgba(103, 126, 201, 0.12);
  text-align: left;
  vertical-align: top;
}
th { color: #32486e; font-size: .92rem; }
.table-actions {
  display: flex;
  gap: .8rem;
  align-items: center;
  flex-wrap: wrap;
}
.table-actions form, .inline-form { margin: 0; }
.table-actions button, .inline-form button {
  border: 0;
  background: rgba(86, 120, 255, 0.10);
  color: #3550d1;
  border-radius: 12px;
  padding: .55rem .75rem;
  font-weight: 700;
  cursor: pointer;
}
.card-form { display: grid; gap: 1.2rem; }
.admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.notice-box {
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 18px;
  background: rgba(91, 212, 255, 0.12);
  color: #2d4f7a;
}
.notice-box code {
  padding: .1rem .4rem;
  border-radius: 8px;
  background: rgba(255,255,255,0.72);
}
.admin-checkbox { margin-bottom: 1rem; }
.inline-form {
  display: flex;
  gap: .5rem;
  align-items: center;
}
@media (max-width: 1080px) {
  .hero-grid, .split-grid, .program-hero-grid, .apply-card, .footer-grid, .admin-layout {
    grid-template-columns: 1fr;
  }
  .hero-visual { min-height: auto; }
  .glass-card { position: relative; max-width: none; }
  .float-card.card-top, .float-card.card-bottom { top: auto; right: auto; bottom: auto; left: auto; }
  .hero-visual { gap: 1rem; }
  .feature-grid, .program-grid, .campus-grid, .detail-grid, .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .admin-sidebar { position: static; }
}
@media (max-width: 760px) {
  .site-nav {
    position: absolute;
    top: calc(100% + .5rem);
    left: 1rem;
    right: 1rem;
    padding: 1rem;
    border-radius: 22px;
    background: rgba(255,255,255,0.95);
    border: 1px solid rgba(103, 126, 201, 0.12);
    box-shadow: var(--shadow);
    flex-direction: column;
    align-items: stretch;
    display: none;
  }
  .site-nav.is-open { display: flex; }
  .nav-toggle { display: inline-grid; place-items: center; }
  .site-nav .button { width: 100%; }
  .hero-copy h1 { font-size: clamp(2.4rem, 12vw, 4rem); }
  .hero-stats, .feature-grid, .program-grid, .campus-grid, .detail-grid, .form-grid, .admin-grid, .admin-stats {
    grid-template-columns: 1fr;
  }
  .section, .hero-section { padding: 64px 0; }
  .section-head.with-action { align-items: start; }
  .span-2 { grid-column: auto; }
  .admin-content { padding: 1rem; }
}


/* --- refreshed youthful UI --- */
.button {
  position: relative;
  overflow: hidden;
}
.button::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), transparent 55%);
  pointer-events: none;
}
.button-light::after { background: linear-gradient(180deg, rgba(255,255,255,0.55), transparent 55%); }
.sticker-row {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin: 1rem 0 0;
}
.compact-stickers { margin-top: 1.2rem; }
.sticker-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .58rem .9rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(92, 112, 194, 0.12);
  box-shadow: 0 12px 24px rgba(81, 111, 188, 0.14);
  font-size: .88rem;
  font-weight: 800;
  color: #30457a;
}
.sticker-mini { font-size: .8rem; padding: .42rem .72rem; }
.hero-illustration-shell { position: relative; }
.floating-hero-pill {
  position: absolute;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(99, 120, 197, 0.12);
  box-shadow: 0 14px 32px rgba(85, 112, 193, 0.18);
  font-weight: 800;
  font-size: .85rem;
  z-index: 4;
}
.pill-a { top: 8%; left: 0; }
.pill-b { right: 5%; top: 24%; }
.pill-c { bottom: 10%; right: 14%; }
.section-tight { padding-top: 42px; }
.page-hero-programs { padding-bottom: 28px; }
.filter-panel {
  padding: 1.15rem;
  border-radius: 30px;
  background: rgba(255,255,255,0.84);
  border: 1px solid rgba(103, 126, 201, 0.12);
  box-shadow: var(--shadow);
}
.filter-panel__grid {
  display: grid;
  grid-template-columns: 1.3fr repeat(4, .8fr);
  gap: 1rem;
  align-items: end;
}
.filter-field {
  display: grid;
  gap: .4rem;
}
.filter-field span {
  font-weight: 800;
  color: #334a72;
  font-size: .92rem;
}
.filter-field-search { grid-column: span 2; }
.filter-actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  align-items: center;
}
.results-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0 1.4rem;
  flex-wrap: wrap;
}
.meta-counter {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .55rem .9rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.84);
  border: 1px solid rgba(93, 112, 192, 0.12);
  font-weight: 700;
}
.quick-chip-row {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
}
.program-card-rich {
  position: relative;
  overflow: hidden;
}
.program-card__glow {
  position: absolute;
  inset: -20% -10% auto auto;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, color-mix(in srgb, var(--from) 34%, white), transparent 70%);
  opacity: .8;
  pointer-events: none;
}
.program-card__head {
  display: flex;
  gap: .85rem;
  align-items: flex-start;
  margin-bottom: .35rem;
}
.program-emoji {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 18px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--from) 28%, white), color-mix(in srgb, var(--to) 18%, white));
  font-size: 1.5rem;
  box-shadow: 0 12px 24px rgba(92, 112, 192, 0.14);
  flex: 0 0 auto;
}
.program-emoji.large {
  width: 84px;
  height: 84px;
  font-size: 2.2rem;
  margin: 0 auto .8rem;
}
.program-sticker {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.9);
  color: #30457a;
  font-size: .8rem;
  font-weight: 800;
  border: 1px solid rgba(103, 126, 201, 0.14);
}
.program-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 1rem 0;
}
.big-tags { margin-top: 1.1rem; }
.centered-tags { justify-content: center; }
.tag-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .8rem;
  border-radius: 999px;
  background: rgba(246, 249, 255, 0.96);
  border: 1px solid rgba(104, 127, 200, 0.12);
  color: #35507d;
  font-size: .84rem;
  font-weight: 700;
}
.inline-link-bold { font-weight: 800; }
.empty-state {
  padding: 2rem;
  border-radius: 30px;
  text-align: center;
  grid-column: 1 / -1;
}
.admission-split-grid {
  align-items: stretch;
}
.flow-visual {
  position: relative;
}
.flow-shell {
  position: relative;
  min-height: 100%;
  padding: 1.6rem;
  border-radius: 34px;
}
.flow-board {
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(252,253,255,0.94), rgba(244,248,255,0.92));
  border: 1px solid rgba(101, 123, 197, 0.1);
  padding: 1.5rem;
  display: grid;
  gap: .75rem;
}
.compact-board { min-height: 100%; }
.flow-card {
  display: flex;
  align-items: center;
  gap: .9rem;
  max-width: 350px;
  padding: 1rem 1.05rem;
  border-radius: 24px;
  box-shadow: 0 10px 22px rgba(86, 112, 194, 0.1);
  border: 1px solid rgba(255,255,255,0.55);
}
.flow-card strong {
  display: block;
  font-size: 1.04rem;
  margin-bottom: .15rem;
}
.flow-card small {
  display: block;
  color: var(--muted);
  font-size: .9rem;
}
.flow-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: rgba(255,255,255,0.78);
  font-size: 1.4rem;
  flex: 0 0 auto;
}
.flow-card-sky { background: linear-gradient(135deg, rgba(207, 241, 255, 0.92), rgba(238, 247, 255, 0.98)); }
.flow-card-peach { background: linear-gradient(135deg, rgba(255, 235, 216, 0.96), rgba(255, 247, 240, 0.98)); }
.flow-card-violet { background: linear-gradient(135deg, rgba(237, 228, 255, 0.95), rgba(248, 243, 255, 0.98)); }
.flow-card-sand { background: linear-gradient(135deg, rgba(255, 240, 226, 0.96), rgba(255, 249, 244, 0.98)); }
.flow-card-mint { background: linear-gradient(135deg, rgba(225, 251, 244, 0.95), rgba(243, 255, 251, 0.98)); }
.offset-right { margin-left: auto; }
.flow-connector {
  width: 84px;
  height: 12px;
  border-radius: 999px;
  margin-left: 34px;
  background: linear-gradient(90deg, var(--accent), var(--accent-4));
  opacity: .7;
}
.flow-connector.short { width: 64px; background: linear-gradient(90deg, var(--accent-3), var(--accent)); }
.floating-sticker {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .58rem .9rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(97, 118, 194, 0.12);
  box-shadow: 0 12px 28px rgba(93, 116, 198, 0.16);
  font-weight: 800;
  color: #2f4876;
}
.sticker-top { top: -14px; right: 28px; }
.sticker-bottom { bottom: -12px; left: 22px; }
.oge-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.oge-card { min-height: 220px; }
.oge-card-wide { grid-column: span 1; }
.detail-card-accent {
  background: linear-gradient(180deg, rgba(241, 247, 255, 0.94), rgba(255,255,255,0.86));
}
.info-highlight {
  margin: 1rem 0;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .8rem 1rem;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(30, 203, 255, 0.14), rgba(157, 107, 255, 0.14));
  font-weight: 800;
  color: #30457a;
}
.program-hero-badges {
  display: flex;
  gap: .7rem;
  flex-wrap: wrap;
  margin-bottom: .8rem;
}
.program-visual-panel {
  min-height: 420px;
  display: grid;
  place-items: center;
}
.program-visual-placeholder {
  text-align: center;
  max-width: 360px;
}
.program-visual-placeholder h3 {
  font-size: 1.5rem;
  margin: .5rem 0;
}
.span-two-mobile { grid-column: span 2; }
.campus-card .sticker-badge { margin-bottom: .7rem; }
.feature-card .icon-badge {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  font-size: 1.4rem;
}
@media (max-width: 1080px) {
  .filter-panel__grid,
  .oge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .filter-field-search { grid-column: span 2; }
  .filter-actions { grid-column: span 2; }
}
@media (max-width: 760px) {
  .sticker-row,
  .quick-chip-row,
  .program-hero-badges,
  .results-meta {
    align-items: stretch;
  }
  .filter-panel__grid,
  .oge-grid {
    grid-template-columns: 1fr;
  }
  .filter-field-search,
  .filter-actions,
  .span-two-mobile {
    grid-column: auto;
  }
  .flow-card,
  .offset-right {
    margin-left: 0;
    max-width: none;
  }
  .flow-connector {
    margin-left: 8px;
  }
  .hero-visual {
    min-height: 520px;
  }
  .floating-hero-pill { font-size: .78rem; }
  .pill-a { top: 4%; }
  .pill-b { top: 18%; right: 0; }
  .pill-c { right: 8%; bottom: 6%; }
}


/* --- v4 redesign --- */
.slash-button {
  position: relative;
  overflow: hidden;
}
.slash-button::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -22px;
  width: 48px;
  background: rgba(255,255,255,0.18);
  transform: skewX(-28deg);
}
.hero-section-rebel { padding-top: 84px; }
.hero-grid-rebel { grid-template-columns: 1.02fr .98fr; gap: 2.4rem; }
.hero-copy-rebel h1 { max-width: 760px; }
.hero-stats-rebel article { border-radius: 24px; }
.scribble-line {
  position: absolute;
  border-top: 3px dashed rgba(42, 82, 152, 0.22);
  width: 240px;
  transform: rotate(-9deg);
}
.scribble-line-a { top: 110px; right: 18%; }
.scribble-line-b { bottom: 90px; left: 10%; width: 190px; transform: rotate(12deg); }
.rebel-stage { min-height: 640px; }
.rebel-panel {
  position: relative;
  width: min(620px, 100%);
  min-height: 560px;
  padding: 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(247,250,255,0.84));
}
.torn-panel {
  clip-path: polygon(0 2%, 10% 0, 22% 2%, 35% 0, 48% 2.4%, 62% 0, 78% 2%, 92% 0, 100% 4%, 99% 18%, 100% 32%, 98% 49%, 100% 66%, 98% 82%, 100% 96%, 92% 100%, 80% 98%, 68% 100%, 54% 97.6%, 40% 100%, 26% 98%, 14% 100%, 0 96%, 1.4% 82%, 0 66%, 1.4% 50%, 0 35%, 1.2% 18%);
}
.hero-object {
  position: absolute;
  user-select: none;
  pointer-events: none;
  filter: drop-shadow(0 28px 50px rgba(52, 93, 191, 0.18));
}
.hero-object-bust { width: 310px; left: 24px; bottom: 14px; }
.hero-object-cursor { width: 220px; right: 18px; top: 44px; }
.hero-object-orb { width: 210px; right: 78px; bottom: 70px; }
.stage-note {
  position: absolute;
  padding: .8rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(97, 126, 196, 0.12);
  font-weight: 800;
  box-shadow: 0 14px 30px rgba(74, 106, 193, 0.14);
}
.stage-note-top { top: 22px; left: 24px; transform: rotate(-4deg); }
.stage-note-mid { top: 198px; right: 10px; transform: rotate(6deg); }
.stage-note-bottom { bottom: 24px; right: 20px; transform: rotate(-5deg); }
.direction-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.direction-card {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  padding: 1.5rem;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(246,249,255,0.84));
  border: 1px solid rgba(103, 126, 201, 0.12);
  box-shadow: var(--shadow);
}
.direction-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top right, color-mix(in srgb, var(--from) 30%, white), transparent 28%), linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0));
  pointer-events: none;
}
.direction-card > * { position: relative; z-index: 1; }
.direction-card__top, .direction-card__footer { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.direction-label, .direction-count {
  display: inline-flex; align-items: center; padding: .5rem .85rem; border-radius: 999px; font-weight: 800; font-size: .84rem;
}
.direction-label { background: rgba(21, 35, 61, 0.06); color: #24365a; }
.direction-count { background: rgba(255,255,255,0.9); color: var(--muted); }
.direction-card h3 { margin: .85rem 0 .8rem; font-size: 1.6rem; max-width: 15ch; }
.direction-card p { color: var(--muted); line-height: 1.7; margin-bottom: 1.1rem; }
.direction-visual {
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.direction-visual img { width: 150px; filter: drop-shadow(0 18px 38px rgba(75, 105, 190, 0.18)); }
.feature-card-clean { position: relative; overflow: hidden; }
.feature-index {
  width: 52px; height: 52px; border-radius: 18px; display: grid; place-items: center;
  font-weight: 900; color: #fff; background: linear-gradient(135deg, var(--accent), var(--accent-3));
}
.step-item-rebel strong { width: 52px; height: 52px; border-radius: 18px; font-size: 1rem; }
.process-poster {
  min-height: 470px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.86), rgba(242,248,255,0.86));
}
.poster-object { position: absolute; filter: drop-shadow(0 22px 42px rgba(59, 96, 187, 0.17)); }
.poster-object-cursor { width: 220px; right: 18px; top: 30px; }
.poster-object-orb { width: 190px; left: 24px; bottom: 24px; }
.poster-object-bust { width: 250px; left: 28px; bottom: 22px; }
.poster-track {
  position: relative; z-index: 2; display: grid; gap: .9rem; width: min(360px, 78%); margin-left: auto;
}
.poster-track-alt { width: min(370px, 72%); }
.poster-label {
  padding: .9rem 1rem; border-radius: 18px; background: rgba(255,255,255,0.9); border: 1px solid rgba(103, 126, 201, 0.12);
  font-weight: 800; color: #24365a; box-shadow: 0 12px 28px rgba(80, 108, 188, 0.12);
}
.poster-label:nth-child(2n) { transform: translateX(36px) rotate(-2deg); }
.poster-label:nth-child(2n+1) { transform: rotate(2deg); }
.filter-panel-catalog .filter-panel__grid { grid-template-columns: repeat(4, 1fr); }
.catalog-meta { margin-top: 1rem; }
.catalog-grid .program-card { min-height: 300px; }
.catalog-card h3 { margin-top: 1rem; }
.program-sticker {
  background: rgba(31, 71, 144, 0.08);
  color: #30457a;
  border-radius: 999px;
  padding: .45rem .8rem;
  font-size: .82rem;
  font-weight: 800;
}
.sticker-badge-plain { background: rgba(255,255,255,0.86); color: #24365a; }
.direction-hero .program-hero-grid { align-items: center; }
.direction-visual-panel { display: grid; place-items: center; min-height: 360px; }
.direction-stage-object { width: min(270px, 100%); }
.direction-stage-note {
  position: absolute; right: 20px; bottom: 20px; padding: .9rem 1rem; border-radius: 18px;
  background: rgba(255,255,255,0.9); border: 1px solid rgba(103, 126, 201, 0.12); font-weight: 800;
}
.clean-placeholder { text-align: center; }
.placeholder-object { width: 160px; margin: 0 auto 1rem; }
.site-nav .button.button-sm { min-height: 44px; }
.hero-copy .sticker-row, .compact-stickers, .program-emoji, .floating-hero-pill, .program-tags.centered-tags .tag-pill:first-child { display: none !important; }
.program-card__head { display: block; }
.program-card__head .meta-pill { margin-bottom: .8rem; }
.program-card__head h3 { margin-top: 0; }
.info-highlight { display: inline-flex; padding: .8rem 1rem; border-radius: 18px; background: rgba(31,71,144,0.08); font-weight: 800; }
@media (max-width: 1100px) {
  .direction-grid, .feature-grid, .program-grid, .campus-grid { grid-template-columns: repeat(2, 1fr); }
  .filter-panel-catalog .filter-panel__grid { grid-template-columns: repeat(2, 1fr); }
  .hero-grid-rebel { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .direction-grid, .feature-grid, .program-grid, .campus-grid, .detail-grid { grid-template-columns: 1fr; }
  .rebel-stage { min-height: 460px; }
  .rebel-panel { min-height: 420px; }
  .hero-object-bust { width: 200px; left: 8px; }
  .hero-object-cursor { width: 150px; right: 4px; }
  .hero-object-orb { width: 132px; right: 40px; bottom: 40px; }
  .stage-note-top, .stage-note-mid, .stage-note-bottom { font-size: .85rem; }
  .process-poster { min-height: 360px; }
  .poster-track, .poster-track-alt { width: min(280px, 88%); }
  .poster-label:nth-child(2n), .poster-label:nth-child(2n+1) { transform: none; }
  .filter-panel-catalog .filter-panel__grid { grid-template-columns: 1fr; }
}

.admin-stats-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:1rem; margin-bottom:1.5rem; }
.direction-card__footer span { color: var(--muted); max-width: 16ch; line-height:1.5; }
@media (max-width: 760px) { .admin-stats-grid { grid-template-columns: 1fr 1fr; } }

/* --- v5 digital polish --- */
.site-header { padding: .85rem 0; }
.header-inner { gap: .75rem; }
.brand { min-width: 0; }
.brand span { min-width: 0; }
.brand strong {
  max-width: 330px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.site-nav {
  gap: .75rem;
  flex-wrap: nowrap;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-width: 0;
}
.site-nav a {
  white-space: nowrap;
  font-size: .95rem;
}
.site-nav .button,
.direction-button,
.campus-map-button,
.max-channel-actions .button {
  white-space: nowrap;
}
.site-nav .button.button-sm {
  padding-inline: .9rem;
}

.rebel-panel {
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(244,248,255,.9)),
    linear-gradient(135deg, rgba(255,255,255,.55), rgba(255,255,255,.15));
}
.rebel-panel::before,
.rebel-panel::after,
.direction-visual-panel::before,
.chat-showcase::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.rebel-panel::before {
  background:
    linear-gradient(90deg, rgba(66,95,190,.07) 1px, transparent 1px),
    linear-gradient(0deg, rgba(66,95,190,.07) 1px, transparent 1px);
  background-size: 34px 34px;
  opacity: .35;
}
.rebel-panel::after {
  inset: 16px;
  border: 1px dashed rgba(40, 70, 148, .18);
  border-radius: 28px;
  mix-blend-mode: multiply;
}
.rebel-stage { min-height: 680px; }
.rebel-panel { min-height: 600px; }
.hero-object-bust {
  width: 380px;
  left: -8px;
  bottom: -22px;
  transform: rotate(-5deg);
}
.hero-object-cursor {
  width: 255px;
  right: -12px;
  top: 36px;
  transform: rotate(14deg);
}
.hero-object-orb {
  width: 240px;
  right: 82px;
  bottom: 54px;
}
.stage-note {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(85,112,200,.14);
}
.stage-note-top { top: 20px; left: 18px; }
.stage-note-mid { top: 208px; right: 18px; }
.stage-note-bottom { bottom: 16px; right: 24px; }
.scribble-line {
  border-top-style: solid;
  height: 0;
  background: none;
  border-top-width: 4px;
  opacity: .45;
  mask-image: repeating-linear-gradient(90deg, #000 0 24px, transparent 24px 38px);
  -webkit-mask-image: repeating-linear-gradient(90deg, #000 0 24px, transparent 24px 38px);
}

.direction-grid,
.catalog-grid,
.campus-grid { align-items: stretch; }
.direction-card {
  display: flex;
  flex-direction: column;
  min-height: 390px;
  clip-path: polygon(0 2%, 11% 0, 24% 2.5%, 38% 0, 56% 2.2%, 72% 0, 89% 3%, 100% 0, 100% 100%, 85% 98%, 70% 100%, 48% 97.5%, 26% 100%, 11% 98%, 0 100%);
}
.direction-card h3 {
  max-width: 100%;
  min-height: 3.1em;
}
.direction-card p {
  min-height: 5.3em;
  margin-bottom: 1.4rem;
}
.direction-visual {
  min-height: 180px;
  margin: .55rem 0 .3rem;
}
.direction-visual img {
  width: 190px;
}
.direction-card__footer {
  justify-content: center;
  margin-top: auto;
  padding-top: .4rem;
}
.direction-button {
  min-width: 190px;
}
.direction-visual-panel {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(243,248,255,.92));
}
.direction-visual-panel::before {
  background:
    radial-gradient(circle at 20% 20%, rgba(255,113,149,.12), transparent 30%),
    radial-gradient(circle at 80% 80%, rgba(90,103,255,.12), transparent 28%),
    linear-gradient(90deg, rgba(59,90,185,.06) 1px, transparent 1px),
    linear-gradient(0deg, rgba(59,90,185,.06) 1px, transparent 1px);
  background-size: auto, auto, 30px 30px, 30px 30px;
}
.direction-stage-object {
  width: min(340px, 100%);
}

.catalog-grid .program-card,
.direction-program-grid .program-card,
.program-detail-related .program-card {
  min-height: 428px;
  display: flex;
  flex-direction: column;
}
.catalog-card .program-card__top { align-items: flex-start; }
.program-title {
  min-height: 4.8em;
  line-height: 1.22;
  overflow-wrap: anywhere;
  word-break: normal;
}
.program-summary {
  min-height: 5.4em;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.catalog-card .program-tags,
.catalog-card .program-meta:last-of-type {
  margin-bottom: .9rem;
}
.catalog-card .inline-link,
.direction-program-grid .inline-link,
.program-detail-related .inline-link {
  margin-top: auto;
}

.catalog-grid .program-title,
.direction-program-grid .program-title,
.program-detail-related .program-title {
  font-size: 1.18rem;
}

.campus-card {
  display: flex;
  flex-direction: column;
}
.campus-card p { min-height: 4.8em; }
.campus-map-button {
  margin-top: auto;
  align-self: flex-start;
}

.max-channel-grid {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 1.5rem;
  align-items: center;
}
.max-channel-copy h2 {
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  line-height: 1.02;
  margin: .9rem 0 1rem;
}
.max-channel-copy p {
  color: var(--muted);
  max-width: 540px;
  line-height: 1.7;
}
.max-channel-actions {
  display: flex;
  gap: .9rem;
  flex-wrap: wrap;
  margin-top: 1.4rem;
}
.chat-showcase {
  position: relative;
  overflow: hidden;
  min-height: 430px;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .9rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(243,248,255,.9)),
    linear-gradient(135deg, rgba(255,255,255,.3), transparent);
}
.chat-showcase::before {
  background:
    radial-gradient(circle at 12% 16%, rgba(255,123,150,.18), transparent 22%),
    radial-gradient(circle at 84% 24%, rgba(91,212,255,.2), transparent 22%),
    radial-gradient(circle at 78% 78%, rgba(123,97,255,.16), transparent 24%);
}
.chat-bubble {
  position: relative;
  z-index: 1;
  max-width: 78%;
  padding: 1rem 1.1rem;
  border-radius: 24px;
  font-weight: 800;
  line-height: 1.45;
  box-shadow: 0 18px 34px rgba(77, 107, 191, .12);
  border: 1px solid rgba(99,122,196,.12);
  opacity: 0;
  animation: chatIn .7s ease forwards;
}
.chat-bubble span {
  display: block;
  margin-top: .25rem;
  font-weight: 600;
  color: var(--muted);
}
.chat-bubble-left {
  background: rgba(255,255,255,.94);
  align-self: flex-start;
  border-bottom-left-radius: 10px;
}
.chat-bubble-right {
  background: linear-gradient(135deg, rgba(231,245,255,.94), rgba(245,240,255,.94));
  align-self: flex-end;
  border-bottom-right-radius: 10px;
}
.chat-delay-1 { animation-delay: .15s; }
.chat-delay-2 { animation-delay: .55s; }
.chat-delay-3 { animation-delay: .95s; }
.chat-delay-4 { animation-delay: 1.35s; }
.chat-typing {
  align-self: flex-start;
  padding: .8rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(99,122,196,.12);
  color: #61708f;
  letter-spacing: .25em;
  font-weight: 900;
  opacity: 0;
  animation: chatIn .6s ease forwards 1.7s, pulseTyping 1.2s ease-in-out infinite 2.3s;
}
@keyframes chatIn {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes pulseTyping {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@media (max-width: 1100px) {
  .max-channel-grid { grid-template-columns: 1fr; }
  .site-nav a { font-size: .9rem; }
}
@media (max-width: 760px) {
  .brand strong { max-width: none; }
  .max-channel-actions { flex-direction: column; }
  .max-channel-actions .button { width: 100%; }
  .chat-showcase { min-height: auto; }
  .chat-bubble { max-width: 100%; }
  .hero-object-bust { width: 250px; left: -18px; }
  .hero-object-cursor { width: 185px; right: -16px; }
  .hero-object-orb { width: 155px; }
}
.site-nav { overflow-x: auto; scrollbar-width: none; }
.site-nav::-webkit-scrollbar { display: none; }


/* --- v6 aggressive digital direction --- */
:root {
  --bg: #f5f8ff;
  --text: #10192d;
  --shadow: 0 28px 70px rgba(66, 97, 185, 0.18);
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(34,57,112,.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(34,57,112,.03) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.7), rgba(0,0,0,.25));
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.7), rgba(0,0,0,.25));
  z-index: -1;
}
.eyebrow-rebel {
  background: rgba(255,255,255,.9);
  border-color: rgba(71, 98, 196, .16);
}
.hero-noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: radial-gradient(rgba(16,25,45,.18) .6px, transparent .6px);
  background-size: 8px 8px;
  mix-blend-mode: soft-light;
}
.hero-kicker {
  margin-top: 1rem;
  color: rgba(16,25,45,.52);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .36em;
  text-transform: uppercase;
}
.hero-copy-rebel h1 {
  max-width: 820px;
  font-size: clamp(3.4rem, 6.7vw, 6.4rem);
  line-height: .9;
}
.hero-copy-rebel p {
  max-width: 640px;
  font-size: 1.18rem;
}
.hero-ribbon {
  --ribbon-from: #182443;
  --ribbon-mid: #29457d;
  --ribbon-to: #121b30;
  --ribbon-glow: rgba(39, 86, 190, .2);
  position: absolute;
  left: -4%;
  right: -4%;
  bottom: 18px;
  height: 24px;
  transform: rotate(-3.5deg);
  overflow: hidden;
  border-top: 2px solid rgba(255,255,255,.18);
  border-bottom: 2px solid rgba(255,255,255,.18);
  background: linear-gradient(90deg, var(--ribbon-from), var(--ribbon-mid) 55%, var(--ribbon-to));
  box-shadow: 0 24px 50px rgba(24,36,70,.18), 0 0 24px var(--ribbon-glow);
  transition: background .18s linear, box-shadow .18s linear;
}
.hero-ribbon::before,
.hero-ribbon::after {
  content: "";
  position: absolute;
  inset: 0;
}
.hero-ribbon::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.48), rgba(255,255,255,0) 58%),
    linear-gradient(90deg, rgba(255,255,255,.12), transparent 30%, rgba(255,255,255,.12) 70%, transparent 100%);
  mix-blend-mode: screen;
}
.hero-ribbon::after {
  inset: 4px 1.5%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,255,255,.16), rgba(255,255,255,0));
  opacity: .8;
  filter: blur(10px);
}
.hero-section-rebel {
  padding-top: 94px;
  padding-bottom: 108px;
}
.scribble-line-c {
  top: 62%;
  right: 36%;
  width: 220px;
  transform: rotate(-20deg);
}
.rebel-stage {
  min-height: 740px;
}
.rebel-panel {
  min-height: 650px;
  padding: 1.25rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,246,255,.92)),
    linear-gradient(135deg, rgba(255,255,255,.6), rgba(255,255,255,.12));
}
.rebel-panel::before {
  opacity: .42;
  background-size: 28px 28px;
}
.rebel-panel::after {
  inset: 14px;
  border-radius: 22px;
  border: 2px dashed rgba(40, 70, 148, .16);
}
.hero-object-ring {
  width: 340px;
  left: 18px;
  top: 58px;
  opacity: .9;
}
.hero-object-bust {
  width: 440px;
  left: -40px;
  bottom: -42px;
  transform: rotate(-7deg);
}
.hero-object-cursor {
  width: 290px;
  right: -8px;
  top: 34px;
  transform: rotate(16deg);
}
.hero-object-star {
  width: 124px;
  left: 42px;
  top: 28px;
  transform: rotate(-10deg);
}
.hero-object-wire {
  width: 320px;
  right: 24px;
  bottom: 82px;
  opacity: .78;
}
.hero-object-orb { display:none; }
.stage-note {
  font-size: .88rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  box-shadow: 0 18px 34px rgba(74, 106, 193, 0.16);
}
.stage-note-top { top: 18px; left: 138px; transform: rotate(7deg); }
.stage-note-mid { top: 214px; right: 16px; transform: rotate(-7deg); }
.stage-note-bottom { bottom: 18px; right: 34px; transform: rotate(4deg); }
.hero-stats-rebel article {
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(87, 112, 190, .11);
}
.direction-card {
  min-height: 360px;
  padding: 1.2rem 1.2rem 1.4rem;
  border-radius: 32px;
  background: linear-gradient(180deg, rgba(255,255,255,.97), rgba(244,248,255,.9));
}
.direction-card::after {
  content: "";
  position: absolute;
  inset: auto 16px 14px 16px;
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--from), var(--to));
  opacity: .9;
}
.direction-card h3 {
  margin-top: .2rem;
  margin-bottom: 1.1rem;
  min-height: 2.8em;
  font-size: 1.7rem;
  line-height: .95;
}
.direction-card .direction-label,
.direction-card .direction-count {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(8px);
}
.direction-visual {
  min-height: 190px;
  margin: .7rem 0 .7rem;
}
.direction-visual img {
  width: 210px;
}
.direction-card__footer {
  padding-top: 0;
}
.direction-button {
  min-width: 210px;
  justify-content: center;
}
.direction-card p { display:none; }
.program-grid.catalog-grid,
.direction-program-grid {
  align-items: stretch;
}
.catalog-card .program-summary,
.direction-program-grid .program-summary,
.program-detail-related .program-summary {
  min-height: 4.9em;
}
.catalog-card .program-meta,
.direction-program-grid .program-meta {
  min-height: 1.6em;
}
.catalog-card .program-tags,
.direction-program-grid .program-tags {
  min-height: 2.6em;
}
.catalog-card .inline-link,
.direction-program-grid .inline-link {
  padding-top: .7rem;
}
.campus-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: .9rem;
  padding: .45rem .78rem;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(85,112,190,.12);
  font-size: .8rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.chat-showcase {
  border-radius: 34px;
}
.chat-header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .2rem .1rem .8rem;
}
.chat-avatar {
  width: 48px;
  height: 48px;
  border-radius: 18px;
  background: linear-gradient(135deg, #121b30, #6b6fff 60%, #ff7da0);
  box-shadow: 0 12px 24px rgba(58, 86, 180, .22);
}
.chat-header strong {
  display:block;
  font-size: 1rem;
}
.chat-header small {
  color: var(--muted);
}
.direction-visual-panel-aggressive {
  position: relative;
  overflow: hidden;
  min-height: 420px;
}
.direction-bg-ring,
.direction-bg-star {
  position: absolute;
  pointer-events: none;
  user-select: none;
}
.direction-bg-ring {
  width: 240px;
  left: 18px;
  top: 38px;
  opacity: .88;
}
.direction-bg-star {
  width: 110px;
  right: 22px;
  top: 22px;
  transform: rotate(10deg);
}
.direction-stage-object {
  position: relative;
  z-index: 1;
}
.site-nav {
  gap: .62rem;
}
.site-nav a {
  font-size: .88rem;
  letter-spacing: -.01em;
}
.nav-cta {
  min-width: 138px;
}
@media (max-width: 1200px) {
  .brand strong { max-width: 250px; }
  .site-nav a { font-size: .84rem; }
  .site-nav { gap: .52rem; }
}
@media (max-width: 1100px) {
  .hero-ribbon { bottom: 8px; }
  .rebel-stage { min-height: 560px; }
  .rebel-panel { min-height: 500px; }
  .hero-object-bust { width: 320px; left: -12px; bottom: -28px; }
  .hero-object-cursor { width: 220px; }
  .hero-object-wire { width: 250px; right: 8px; }
}
@media (max-width: 760px) {
  .hero-copy-rebel h1 { font-size: clamp(2.5rem, 14vw, 4.2rem); }
  .hero-ribbon { display:none; }
  .scribble-line-c { display:none; }
  .rebel-stage { min-height: 440px; }
  .rebel-panel { min-height: 400px; }
  .hero-object-bust { width: 230px; left: -18px; bottom: -18px; }
  .hero-object-cursor { width: 160px; right: -14px; }
  .hero-object-ring { width: 170px; left: 18px; top: 68px; }
  .hero-object-wire { width: 170px; right: 12px; bottom: 72px; }
  .hero-object-star { width: 72px; left: 14px; top: 18px; }
  .stage-note { font-size: .7rem; letter-spacing: .08em; }
  .stage-note-top { left: 78px; }
  .direction-button { min-width: 100%; }
}


/* --- v8 fashion digital overrides --- */
:root {
  --accent: #655dff;
  --accent-2: #12d6ff;
  --accent-3: #ff7a9f;
  --accent-4: #a46cff;
  --shadow: 0 30px 80px rgba(38, 58, 128, 0.18);
}
body {
  background:
    radial-gradient(circle at 8% 10%, rgba(255,122,159,0.17), transparent 20%),
    radial-gradient(circle at 85% 12%, rgba(18,214,255,0.18), transparent 22%),
    radial-gradient(circle at 55% 40%, rgba(164,108,255,0.09), transparent 26%),
    linear-gradient(180deg, #fdfcff 0%, #f4f8ff 52%, #f7fbff 100%);
}
.hero-section-rebel {
  padding-top: 98px;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,126,160,0.10), transparent 18%),
    radial-gradient(circle at 92% 18%, rgba(18,214,255,0.12), transparent 20%),
    linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0));
}
.hero-ghostword {
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(4.4rem, 16vw, 13rem);
  font-weight: 900;
  line-height: .78;
  letter-spacing: -.08em;
  text-transform: uppercase;
  color: rgba(17,27,48,0.035);
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
  z-index: 0;
}
.hero-grid-rebel { position: relative; z-index: 1; }
.hero-copy-rebel {
  position: relative;
  padding-top: .4rem;
}
.hero-editorial-label {
  display: inline-flex;
  align-items: center;
  margin-top: .85rem;
  padding: .5rem .85rem;
  border-radius: 999px;
  background: rgba(17,27,48,.92);
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
  box-shadow: 0 18px 42px rgba(17,27,48,.18);
}
.hero-copy-rebel h1 {
  font-size: clamp(3.8rem, 7.4vw, 7.2rem);
  max-width: 900px;
  line-height: .86;
  text-wrap: balance;
}
.hero-copy-rebel h1 em { font-style: normal; }
.hero-copy-rebel p {
  font-size: 1.16rem;
  max-width: 610px;
}
.hero-actions .button {
  min-height: 58px;
  padding-inline: 1.45rem;
  border-radius: 20px;
}
.slash-button {
  position: relative;
  isolation: isolate;
  background: linear-gradient(135deg, #121b30 0%, #5f62ff 45%, #ff7a9f 100%);
}
.slash-button::before {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(255,255,255,.16), rgba(255,255,255,0) 40%);
  z-index: -1;
}
.button-light {
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(17,27,48,.09);
}
.hero-stats-rebel {
  gap: 1.1rem;
}
.hero-stats-rebel article {
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(247,250,255,.78));
  border-radius: 28px;
  box-shadow: 0 26px 58px rgba(67,98,184,.14);
}
.rebel-stage { min-height: 780px; }
.hero-cutout {
  position: absolute;
  inset: 6% 4% 10% 16%;
  border-radius: 42px;
  background: linear-gradient(145deg, rgba(17,27,48,.96), rgba(60,70,165,.96) 52%, rgba(255,122,159,.8));
  filter: drop-shadow(0 26px 60px rgba(29,39,82,.2));
  transform: rotate(-4deg);
}
.rebel-panel {
  min-height: 670px;
  border-radius: 38px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(245,249,255,.86)),
    linear-gradient(135deg, rgba(255,255,255,.7), rgba(255,255,255,.12));
  border: 1px solid rgba(88, 107, 176, .12);
  box-shadow: 0 34px 90px rgba(38,58,128,.16);
}
.rebel-panel::after {
  border-style: solid;
  border-width: 2px;
  border-image: linear-gradient(120deg, rgba(18,214,255,.3), rgba(255,122,159,.28), rgba(101,93,255,.28)) 1;
  clip-path: polygon(0 8px, 8px 0, calc(100% - 34px) 0, 100% 28px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 34px 100%, 0 calc(100% - 28px));
}
.hero-object-gridflower {
  width: 210px;
  right: 32px;
  top: 120px;
  opacity: .94;
  transform: rotate(8deg);
}
.hero-object-zigzag {
  width: 180px;
  left: 16px;
  bottom: 86px;
  opacity: .95;
  transform: rotate(-8deg);
}
.hero-object-bust {
  width: 470px;
  left: -18px;
  bottom: -34px;
  transform: rotate(-8deg);
  filter: drop-shadow(0 16px 28px rgba(255,122,159,.16));
}
.hero-object-cursor {
  width: 314px;
  right: -18px;
  top: 18px;
}
.hero-object-ring {
  width: 360px;
  left: 28px;
  top: 54px;
  opacity: .88;
}
.hero-object-wire {
  width: 350px;
  right: 8px;
  bottom: 110px;
  opacity: .68;
}
.stage-note {
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.86);
  color: #111b30;
  border: 1px solid rgba(17,27,48,.08);
}
.hero-sticker {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .55rem .9rem;
  border-radius: 999px;
  background: rgba(17,27,48,.95);
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
  box-shadow: 0 18px 40px rgba(17,27,48,.16);
}
.hero-sticker-a { left: 44px; top: 250px; transform: rotate(-8deg); }
.hero-sticker-b { right: 54px; bottom: 42px; transform: rotate(8deg); background: linear-gradient(135deg, #131c31, #5f62ff); }
.hero-ribbon {
  left: -5%;
  right: -5%;
  bottom: 12px;
  height: 22px;
  border-top-width: 1px;
  border-bottom-width: 1px;
  box-shadow: 0 22px 44px rgba(19,28,49,.14), 0 0 28px var(--ribbon-glow);
}
.section-head h2 {
  max-width: 980px;
  letter-spacing: -.05em;
}
.direction-grid {
  gap: 1.45rem;
}
.direction-card {
  border-radius: 34px;
  padding: 1.2rem 1.2rem 1.25rem;
  box-shadow: 0 28px 64px rgba(41,60,130,.12);
  overflow: hidden;
}
.direction-card::before {
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,255,255,0));
}
.direction-card::after {
  height: 18px;
  inset: auto 12px 12px 12px;
}
.direction-card__top {
  align-items: flex-start;
}
.direction-card .direction-label,
.direction-card .direction-count {
  border: 1px solid rgba(17,27,48,.08);
  box-shadow: 0 10px 24px rgba(17,27,48,.06);
}
.direction-card h3 {
  font-size: 1.95rem;
  margin: .2rem 0 .6rem;
}
.direction-visual {
  min-height: 210px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.56), rgba(239,244,255,.72));
  border: 1px dashed rgba(94,104,180,.18);
}
.direction-visual img {
  width: 228px;
  filter: drop-shadow(0 14px 24px rgba(28,42,96,.12));
}
.direction-button {
  min-width: 72%;
  margin-inline: auto;
}
.max-channel-grid {
  gap: 2rem;
  align-items: center;
}
.chat-showcase {
  border-radius: 38px;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(244,248,255,.84));
  box-shadow: 0 32px 72px rgba(41,60,130,.15);
}
.chat-showcase::before {
  opacity: .34;
}
.chat-bubble {
  border-radius: 24px;
}
.campus-card {
  border-radius: 32px;
  overflow: hidden;
}
.campus-map-button {
  min-height: 50px;
}
@media (max-width: 1100px) {
  .hero-ghostword { font-size: clamp(4rem, 14vw, 9rem); }
  .hero-copy-rebel h1 { font-size: clamp(3.3rem, 7vw, 5.8rem); }
  .rebel-stage { min-height: 640px; }
  .hero-cutout { inset: 6% 2% 8% 8%; }
  .hero-object-gridflower { width: 170px; top: 130px; right: 22px; }
  .hero-object-zigzag { width: 130px; left: 8px; bottom: 88px; }
  .hero-sticker-a { left: 16px; top: 220px; }
  .hero-sticker-b { right: 22px; }
}
@media (max-width: 760px) {
  .hero-ghostword { top: 56px; font-size: 5rem; }
  .hero-editorial-label { letter-spacing: .12em; font-size: .72rem; }
  .hero-cutout { display: none; }
  .hero-object-gridflower { width: 110px; top: 140px; right: 10px; }
  .hero-object-zigzag { width: 94px; left: 4px; bottom: 54px; }
  .hero-sticker { font-size: .64rem; min-height: 34px; padding: .4rem .7rem; }
  .hero-sticker-a { top: 160px; }
  .hero-sticker-b { right: 14px; bottom: 14px; }
  .hero-copy-rebel h1 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .direction-card h3 { font-size: 1.6rem; }
  .direction-button { min-width: 100%; }
}

/* v9 calmer distributed editorial objects */
.site-nav {
  flex-wrap: nowrap;
  gap: .8rem;
}
.site-nav a,
.nav-cta {
  white-space: nowrap;
}
.site-nav a { font-size: .95rem; }
.hero-section-rebel {
  padding-top: 104px;
  background:
    radial-gradient(circle at 14% 18%, rgba(255,126,160,0.08), transparent 18%),
    radial-gradient(circle at 86% 16%, rgba(18,214,255,0.10), transparent 19%),
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0));
}
.hero-copy-rebel h1 {
  font-size: clamp(4rem, 7vw, 6.6rem);
  max-width: 780px;
}
.hero-copy-rebel p { max-width: 560px; }
.hero-stats-rebel article { box-shadow: 0 20px 42px rgba(67,98,184,.10); }
.rebel-stage-open {
  min-height: 720px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-cutout-soft {
  inset: 12% 10% 18% 22%;
  border-radius: 48px;
  background: linear-gradient(145deg, rgba(20,30,50,.93), rgba(64,72,178,.90) 56%, rgba(255,122,159,.52));
  transform: rotate(-7deg);
  opacity: .96;
}
.open-scene {
  position: relative;
  width: min(560px, 100%);
  min-height: 660px;
}
.open-scene .hero-object { position: absolute; }
.hero-object-ring-open {
  width: 330px;
  left: 56px;
  top: 40px;
  opacity: .86;
  animation: driftSlow 7s ease-in-out infinite;
}
.hero-object-bust-open {
  width: 360px;
  left: 10px;
  bottom: 4px;
  transform: rotate(-6deg);
  filter: drop-shadow(0 18px 34px rgba(255,122,159,.12));
  animation: driftSlowAlt 8s ease-in-out infinite;
}
.hero-object-cursor-open {
  width: 188px;
  right: 38px;
  top: 94px;
  transform: rotate(7deg);
  animation: driftFloat 6s ease-in-out infinite;
}
.hero-object-star-open {
  width: 130px;
  right: 70px;
  bottom: 176px;
  opacity: .9;
  animation: pulseFloat 5.5s ease-in-out infinite;
}
.hero-object-gridflower,
.hero-object-zigzag,
.hero-object-wire,
.stage-note,
.hero-sticker,
.rebel-panel,
.rebel-panel::before,
.rebel-panel::after {
  display: none !important;
}
.section-directions,
.section-features,
.section-campuses-home,
.section-max {
  overflow: clip;
}
.section-object {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: .75;
  filter: drop-shadow(0 16px 28px rgba(48,71,138,.10));
}
.section > .container { position: relative; z-index: 1; }
.section-object-cursor {
  width: 120px;
  right: 4%;
  top: 68px;
  transform: rotate(18deg);
  animation: driftFloat 6.5s ease-in-out infinite;
}
.section-object-bust {
  width: 250px;
  left: -34px;
  bottom: 8px;
  opacity: .20;
  transform: rotate(-8deg);
}
.section-object-ring {
  width: 230px;
  right: -24px;
  top: 46px;
  opacity: .42;
  animation: driftSlow 8s ease-in-out infinite;
}
.section-object-star {
  width: 110px;
  left: 4%;
  top: 74px;
  opacity: .82;
  animation: pulseFloat 5s ease-in-out infinite;
}
.direction-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.35rem;
}
.direction-card {
  min-height: 420px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.15rem;
  box-shadow: 0 20px 48px rgba(41,60,130,.10);
}
.direction-card h3 {
  margin: .35rem auto .7rem;
  max-width: 10ch;
  text-align: center;
}
.direction-card__top {
  align-items: center;
}
.direction-visual {
  min-height: 188px;
  background: linear-gradient(180deg, rgba(255,255,255,.30), rgba(239,244,255,.44));
  border: none;
}
.direction-visual img {
  width: 182px;
  filter: drop-shadow(0 10px 22px rgba(28,42,96,.10));
}
.direction-button {
  min-width: 220px;
  margin-inline: auto;
}
.process-poster-open {
  min-height: 360px;
  position: relative;
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
}
.process-poster-open .poster-object-cursor {
  width: 170px;
  right: 0;
  top: 12px;
  opacity: .92;
}
.process-poster-open .poster-object-orb {
  width: 150px;
  left: 18px;
  bottom: 30px;
  opacity: .72;
}
.process-poster-open .poster-track {
  width: min(360px, 90%);
  margin-left: auto;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(91, 116, 187, 0.08);
  border-radius: 32px;
  padding: 1.1rem;
  backdrop-filter: blur(10px);
  box-shadow: 0 20px 48px rgba(67,98,184,.10);
}
.campus-card {
  min-height: 100%;
  box-shadow: 0 22px 52px rgba(41,60,130,.10);
}
.chat-showcase {
  box-shadow: 0 24px 56px rgba(41,60,130,.12);
}
@keyframes driftFloat {
  0%, 100% { transform: translateY(0) rotate(7deg); }
  50% { transform: translateY(-10px) rotate(9deg); }
}
@keyframes driftSlow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-12px) rotate(4deg); }
}
@keyframes driftSlowAlt {
  0%, 100% { transform: translateY(0) rotate(-6deg); }
  50% { transform: translateY(-10px) rotate(-8deg); }
}
@keyframes pulseFloat {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-8px); }
}
@media (max-width: 1180px) {
  .site-nav { gap: .65rem; }
  .site-nav a { font-size: .9rem; }
  .hero-copy-rebel h1 { font-size: clamp(3.6rem, 6vw, 5.8rem); }
  .rebel-stage-open { min-height: 620px; }
  .open-scene { min-height: 560px; }
  .direction-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .section-object-bust { width: 180px; left: -50px; opacity: .14; }
  .section-object-ring { width: 170px; }
}
@media (max-width: 760px) {
  .section-object { opacity: .28; }
  .section-object-bust { display: none; }
  .hero-copy-rebel h1 { font-size: clamp(2.9rem, 13vw, 4.4rem); }
  .rebel-stage-open { min-height: 470px; }
  .open-scene { min-height: 430px; }
  .hero-object-ring-open { width: 210px; left: 18px; top: 30px; }
  .hero-object-bust-open { width: 240px; left: 0; bottom: -4px; }
  .hero-object-cursor-open { width: 126px; right: 4px; top: 98px; }
  .hero-object-star-open { width: 82px; right: 18px; bottom: 120px; }
  .direction-grid { grid-template-columns: 1fr; }
  .direction-card { min-height: 360px; }
}


/* scroll accents + ambient motion */

:root { --scroll-progress: 0; }
.site-header {
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.site-header.is-scrolled {
  background: rgba(247, 251, 255, 0.88);
  border-bottom-color: rgba(91, 116, 187, 0.16);
  box-shadow: 0 12px 32px rgba(60, 84, 162, 0.08);
}
.hero-ghostword {
  transform: translate3d(0, calc(var(--scroll-progress) * 28px), 0);
  opacity: calc(.12 + (var(--scroll-progress) * .08));
}
.section-object,
.hero-object,
.poster-object {
  --object-reveal: 1;
  --object-glow: 0.2;
  opacity: calc(.12 + (var(--object-reveal) * .88));
  filter:
    saturate(calc(.82 + var(--object-reveal) * .32))
    brightness(calc(.92 + var(--object-reveal) * .12))
    drop-shadow(0 14px 28px rgba(93, 112, 255, calc(.06 + var(--object-glow) * .14)));
  transition: opacity .35s ease, filter .45s ease;
  will-change: opacity, filter;
}
.direction-card,
.feature-card,
.program-card,
.campus-card,
.faq-item,
.chat-showcase,
.process-poster,
.process-poster-open,
.glass-panel {
  --panel-glow: 0;
  transition: box-shadow .45s ease, border-color .45s ease, background .45s ease, transform .45s ease;
}
.direction-card,
.feature-card,
.program-card,
.campus-card,
.faq-item,
.process-poster,
.process-poster-open,
.glass-panel {
  box-shadow:
    0 20px 48px rgba(41, 60, 130, .10),
    0 0 calc(10px + var(--panel-glow) * 24px) rgba(106, 187, 255, calc(.03 + var(--panel-glow) * .08));
  border-color: rgba(91, 116, 187, calc(.08 + var(--panel-glow) * .16));
}
.chat-showcase {
  box-shadow:
    0 24px 56px rgba(41, 60, 130, .12),
    0 0 calc(12px + var(--panel-glow) * 30px) rgba(125, 109, 255, calc(.03 + var(--panel-glow) * .10));
}
.section-object-cursor,
.hero-object-cursor-open,
.process-poster-open .poster-object-cursor {
  animation-duration: 6.5s, 14s;
  animation-name: driftFloat, tiltPulse;
  animation-timing-function: ease-in-out, linear;
  animation-iteration-count: infinite, infinite;
}
.section-object-ring,
.hero-object-ring-open {
  animation-duration: 8s, 15s;
  animation-name: driftSlow, slowSpin;
  animation-timing-function: ease-in-out, linear;
  animation-iteration-count: infinite, infinite;
}
.section-object-star,
.hero-object-star-open {
  animation-duration: 5s, 9s;
  animation-name: pulseFloat, microSpin;
  animation-timing-function: ease-in-out, linear;
  animation-iteration-count: infinite, infinite;
}
.section-object-bust,
.hero-object-bust-open {
  animation: driftSlowAlt 9s ease-in-out infinite;
}
.chat-showcase::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(90,103,255,.16), rgba(30,203,255,.10), rgba(255,159,103,.14));
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  padding: 1px;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: calc(.16 + var(--panel-glow, 0) * .42);
}
@keyframes slowSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes microSpin {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(6deg) scale(1.04); }
  100% { transform: rotate(12deg) scale(1); }
}
@keyframes tiltPulse {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
}
@media (prefers-reduced-motion: reduce) {
  .section-object,
  .hero-object,
  .poster-object,
  .section-object-cursor,
  .hero-object-cursor-open,
  .process-poster-open .poster-object-cursor,
  .section-object-ring,
  .hero-object-ring-open,
  .section-object-star,
  .hero-object-star-open,
  .section-object-bust,
  .hero-object-bust-open {
    opacity: 1 !important;
    filter: none !important;
    transition: none !important;
    animation: none !important;
  }
}

/* v15 overrides */
.brand-logo {
  width: 54px;
  height: 54px;
  object-fit: contain;
  border-radius: 16px;
  background: rgba(255,255,255,.86);
  padding: .35rem;
  box-shadow: 0 18px 36px rgba(14, 24, 54, .12);
}
.site-nav {
  white-space: nowrap;
}
.site-nav a,
.nav-cta {
  white-space: nowrap;
}
.campus-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1180px) {
  .campus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .campus-grid { grid-template-columns: 1fr; }
}
.partners-shell {
  padding: 2rem 0 3rem;
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
}
.partner-card {
  min-height: 108px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 24px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(63, 82, 123, .08);
  box-shadow: 0 20px 40px rgba(15, 23, 42, .06);
  backdrop-filter: blur(16px);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.partner-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 46px rgba(15, 23, 42, .1);
  border-color: rgba(94, 112, 255, .22);
}
.partner-card img {
  max-width: 82%;
  max-height: 52px;
  object-fit: contain;
}
.partner-card--empty {
  grid-column: 1 / -1;
}
.partner-card__title {
  text-align: center;
  font-weight: 700;
}
@media (max-width: 1024px) {
  .partners-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .partners-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.float-soft {
  animation: floatSoft 7s ease-in-out infinite;
}
.glow-soft {
  animation: glowSoft 6s ease-in-out infinite;
}
.hero-object,
.section-object,
.poster-object,
.placeholder-object,
.direction-stage-object {
  will-change: transform, filter, opacity;
}
.hero-object,
.section-object,
.poster-object {
  animation: floatSoft 8s ease-in-out infinite;
}
.hero-object:nth-child(2),
.section-object-bust,
.poster-object-bust {
  animation-duration: 9.2s;
}
.hero-object:nth-child(3),
.section-object-ring {
  animation-duration: 10.4s;
}
.hero-object-star-open,
.section-object-star {
  animation-duration: 11.6s;
}
.glass-panel,
.direction-card,
.feature-card,
.program-card,
.campus-card,
.partner-card,
.faq-item,
.apply-card {
  position: relative;
  overflow: hidden;
}
.glass-panel::after,
.direction-card::after,
.feature-card::after,
.program-card::after,
.campus-card::after,
.partner-card::after,
.apply-card::after {
  content: '';
  position: absolute;
  inset: auto -20% -65% auto;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(98, 108, 255, .16), rgba(98, 108, 255, 0));
  pointer-events: none;
  opacity: calc(.2 + var(--panel-glow, .25) * .65);
  transform: translate3d(0,0,0);
  transition: opacity .25s ease;
}
.hero-cutout-soft,
.direction-card,
.feature-card-clean,
.chat-showcase,
.partner-card,
.apply-card {
  box-shadow: 0 24px 48px rgba(15, 23, 42, .08);
}
.section-head h2,
.hero-copy-rebel h1,
.program-hero h1,
.page-hero h1 {
  text-wrap: balance;
}
.video-block-shell {
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 28px 60px rgba(15, 23, 42, .12);
}
.program-video-player {
  display: block;
  width: 100%;
  background: #0f172a;
}
.content-group-anchor {
  scroll-margin-top: 100px;
}
@keyframes floatSoft {
  0%, 100% { transform: translate3d(0,0,0) rotate(0deg); }
  50% { transform: translate3d(0,-8px,0) rotate(1.2deg); }
}
@keyframes glowSoft {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(91, 212, 255, 0)); }
  50% { filter: drop-shadow(0 12px 22px rgba(91, 212, 255, .16)); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-object,
  .section-object,
  .poster-object,
  .placeholder-object,
  .direction-stage-object { animation: none !important; }
}


.chat-showcase-static .chat-bubble {
  opacity: 1;
  animation: none;
}
.chat-showcase-static .chat-header {
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(91, 116, 187, 0.12);
  margin-bottom: .3rem;
}


/* v16 production polish */
:root {
  --soft-float-duration: 10s;
}
.section-object,
.hero-object,
.poster-object {
  will-change: transform, filter, opacity;
}
@keyframes softFloat {
  0%, 100% { transform: translate3d(0,0,0); }
  50% { transform: translate3d(0,-8px,0); }
}
.section-object,
.hero-object {
  animation: softFloat var(--soft-float-duration) ease-in-out infinite;
}
.hero-object-ring-open,
.section-object-ring { animation-duration: 12s; }
.hero-object-star-open,
.section-object-star { animation-duration: 9s; }
.hero-object-cursor-open,
.section-object-cursor { animation-duration: 11s; }
.hero-object-bust-open,
.section-object-bust { animation-duration: 13s; }

.site-header {
  backdrop-filter: blur(14px);
}
@media (min-width: 1181px) {
  .campus-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .partners-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media (max-width: 1180px) {
  .partners-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .header-inner {
    align-items: center;
  }
  .site-nav a,
  .nav-cta {
    white-space: normal;
    text-align: center;
  }
  .partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .catalog-grid .program-card,
  .direction-program-grid .program-card,
  .program-detail-related .program-card {
    min-height: 100%;
  }
}
@media (max-width: 560px) {
  .brand strong {
    font-size: .92rem;
  }
  .brand small {
    display: none;
  }
  .partners-grid {
    grid-template-columns: 1fr;
  }
}


/* v17 polish */
.apply-section {
  padding: 28px 0 40px;
}
.section-partners {
  padding: 22px 0 52px;
}
.partners-shell {
  padding: 0;
}
.filter-actions {
  flex-wrap: nowrap;
  width: 100%;
}
.filter-actions .button,
.filter-actions a {
  flex: 1 1 0;
  justify-content: center;
  white-space: nowrap;
}
.catalog-card .program-card__top {
  align-items: flex-start;
  gap: .9rem 1rem;
  margin-bottom: 1rem;
}
.catalog-card .program-sticker {
  margin-right: auto;
}
.catalog-card .program-card__head {
  margin-bottom: .8rem;
}
.catalog-card .program-card__head > div {
  display: grid;
  gap: .72rem;
  width: 100%;
}
.catalog-card .meta-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
}
.catalog-card .program-summary {
  margin-bottom: 1rem;
}
.catalog-card .program-meta,
.direction-program-grid .program-meta,
.program-detail-related .program-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  width: 100%;
  margin-top: .85rem;
}
.catalog-card .program-meta span,
.direction-program-grid .program-meta span,
.program-detail-related .program-meta span,
.catalog-card .tag-pill,
.direction-program-grid .tag-pill,
.program-detail-related .tag-pill {
  min-height: 50px;
  padding: .78rem .85rem;
  border-radius: 18px;
  background: rgba(246, 249, 255, 0.96);
  border: 1px solid rgba(104, 127, 200, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.35;
}
.catalog-card .program-tags,
.direction-program-grid .program-tags,
.program-detail-related .program-tags {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  width: 100%;
  margin: .9rem 0 1rem;
}
.chat-showcase-static .chat-bubble {
  opacity: 1;
  animation: none;
}
.chat-typing {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 48px;
  padding: .85rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(99,122,196,.12);
  box-shadow: 0 18px 34px rgba(77, 107, 191, .10);
  opacity: 1;
  animation: none;
}
.chat-typing span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #7c88a6;
  display: inline-block;
  animation: typingDots 1.2s ease-in-out infinite;
}
.chat-typing span:nth-child(2) { animation-delay: .15s; }
.chat-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes typingDots {
  0%, 80%, 100% { transform: translateY(0); opacity: .45; }
  40% { transform: translateY(-4px); opacity: 1; }
}
.partners-carousel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1rem;
  align-items: center;
}
.partners-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(200px, 1fr);
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: .35rem .2rem .5rem;
  scrollbar-width: none;
}
.partners-track::-webkit-scrollbar { display: none; }
.partners-track .partner-card {
  scroll-snap-align: start;
}
.partners-nav {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(94, 112, 255, .16);
  background: rgba(255,255,255,.88);
  box-shadow: 0 18px 32px rgba(15, 23, 42, .08);
  color: #32467a;
  font-size: 1.15rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.partners-nav:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 36px rgba(15, 23, 42, .12);
  border-color: rgba(94, 112, 255, .28);
}
.partners-track .partner-card {
  min-height: 116px;
}
@media (max-width: 900px) {
  .filter-actions {
    flex-wrap: wrap;
  }
  .filter-actions .button,
  .filter-actions a {
    flex: 1 1 100%;
  }
  .partners-carousel {
    grid-template-columns: 1fr;
    gap: .75rem;
  }
  .partners-nav {
    display: none;
  }
  .partners-track {
    grid-auto-columns: minmax(220px, 82%);
  }
}
@media (max-width: 760px) {
  .catalog-card .program-meta,
  .direction-program-grid .program-meta,
  .program-detail-related .program-meta,
  .catalog-card .program-tags,
  .direction-program-grid .program-tags,
  .program-detail-related .program-tags {
    grid-template-columns: 1fr;
  }
  .catalog-card .program-title,
  .direction-program-grid .program-title,
  .program-detail-related .program-title {
    min-height: auto;
  }
  .catalog-card .program-summary {
    min-height: auto;
    -webkit-line-clamp: unset;
  }
}


@media (max-width: 900px) {
  .footer-minimal-card {
    flex-direction: column;
    align-items: flex-start;
  }
  .footer-contact-row {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 640px) {
  .footer-brand-logo,
  .footer-brand-fallback {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }
  .footer-minimal-card {
    padding: 1rem 1rem 1.1rem;
    border-radius: 22px;
  }
  .footer-contact-row {
    flex-direction: column;
    align-items: stretch;
  }
  .footer-contact-row a {
    width: 100%;
    white-space: normal;
  }
}


/* v19 direction card title fit fix */
.direction-card h3 {
  width: 100%;
  max-width: none !important;
  min-height: 3.25em;
  margin: .45rem 0 .85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: clamp(1.35rem, 1.1rem + 0.55vw, 1.8rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  overflow-wrap: anywhere;
  word-break: normal;
  hyphens: auto;
}

.direction-card__top {
  justify-content: space-between;
  align-items: flex-start;
}

@media (max-width: 760px) {
  .direction-card h3 {
    min-height: auto;
    font-size: 1.45rem;
  }
}

/* v20 safe program facts + pricing + basis */
.catalog-card,
.direction-program-grid .program-card {
  min-height: 620px;
}

.catalog-card .program-summary,
.direction-program-grid .program-summary {
  min-height: 4.8em;
  margin-bottom: 1rem;
}

.catalog-card .program-facts,
.direction-program-grid .program-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
  width: 100%;
  margin: .2rem 0 1rem;
}

.catalog-card .program-fact,
.direction-program-grid .program-fact {
  min-height: 88px;
  padding: .82rem .9rem;
  border-radius: 18px;
  background: rgba(246, 249, 255, 0.96);
  border: 1px solid rgba(104, 127, 200, 0.12);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .4rem;
}

.catalog-card .program-fact--wide,
.direction-program-grid .program-fact--wide {
  grid-column: 1 / -1;
  min-height: 80px;
}

.program-fact__label {
  display: block;
  font-size: .74rem;
  line-height: 1.25;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}

.program-fact__value {
  display: block;
  font-size: .98rem;
  line-height: 1.35;
  font-weight: 800;
  color: var(--text);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.program-fact__value--link {
  color: #3550d1;
}

.program-fact__value--link:hover {
  color: #2239a9;
  text-decoration: underline;
}

.detail-link {
  color: #3550d1;
  font-weight: 700;
  text-decoration: none;
}

.detail-link:hover {
  text-decoration: underline;
}

@media (max-width: 760px) {
  .catalog-card,
  .direction-program-grid .program-card {
    min-height: auto;
  }

  .catalog-card .program-facts,
  .direction-program-grid .program-facts {
    grid-template-columns: 1fr;
  }

  .catalog-card .program-fact--wide,
  .direction-program-grid .program-fact--wide {
    grid-column: auto;
  }
}


/* v21 editorial premium program cards */
.editorial-program-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 700px;
  padding: 1.35rem;
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,250,255,0.98)),
    linear-gradient(135deg, var(--from), var(--to));
  box-shadow: 0 24px 70px rgba(70, 96, 179, 0.12);
  overflow: hidden;
}

.editorial-program-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(89, 118, 255, 0.18), rgba(255, 132, 177, 0.18));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}

.editorial-program-card .program-card__glow {
  opacity: .8;
  filter: blur(22px);
}

.editorial-program-card .program-card__top {
  align-items: flex-start;
  gap: .8rem;
  margin-bottom: .95rem;
}

.editorial-program-card .chip,
.editorial-program-card .program-sticker {
  position: relative;
  z-index: 1;
}

.editorial-program-card .program-card__head {
  margin-bottom: .65rem;
}

.editorial-program-card .program-card__head > div {
  display: grid;
  gap: .78rem;
  width: 100%;
}

.editorial-program-card .meta-pill {
  width: fit-content;
  max-width: 100%;
  padding: .48rem .9rem;
  font-size: .76rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 900;
  color: #42558d;
  background: rgba(72, 95, 178, 0.08);
  border: 1px solid rgba(72, 95, 178, 0.1);
}

.editorial-program-card .program-title {
  min-height: auto;
  margin: 0;
  font-size: clamp(1.26rem, 1.08rem + 0.26vw, 1.55rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.editorial-program-card .program-summary {
  min-height: 5.2em;
  margin: 0 0 1.05rem;
  padding-bottom: 1.05rem;
  border-bottom: 1px solid rgba(88, 108, 181, 0.1);
  color: #5b6889;
  line-height: 1.62;
  -webkit-line-clamp: 4;
}

.editorial-program-card .program-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .78rem;
  margin: 0 0 1.15rem;
}

.editorial-program-card .program-fact {
  min-height: 94px;
  padding: .9rem .95rem;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(246,249,255,0.98));
  border: 1px solid rgba(104, 127, 200, 0.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.85);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .45rem;
}

.editorial-program-card .program-fact--wide {
  grid-column: 1 / -1;
  min-height: 84px;
}

.editorial-program-card .program-fact--accent {
  background: linear-gradient(135deg, rgba(82, 105, 255, 0.08), rgba(255, 119, 163, 0.08));
  border-color: rgba(95, 110, 215, 0.16);
}

.editorial-program-card .program-fact--price {
  background: linear-gradient(135deg, rgba(77, 103, 255, 0.12), rgba(255, 116, 163, 0.12));
  box-shadow: 0 12px 26px rgba(89, 104, 207, 0.10);
}

.editorial-program-card .program-fact__label {
  font-size: .69rem;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 900;
  color: #7683a6;
}

.editorial-program-card .program-fact__value {
  font-size: .98rem;
  line-height: 1.3;
  font-weight: 800;
  color: #1f2f5a;
}

.editorial-program-card .program-fact--price .program-fact__value {
  font-size: 1.05rem;
}

.editorial-program-card__footer {
  margin-top: auto;
  padding-top: .4rem;
}

.editorial-program-card__button {
  width: 100%;
  justify-content: center;
  border-radius: 18px;
  font-weight: 800;
}

.direction-program-grid .editorial-program-card,
.catalog-grid .editorial-program-card {
  min-height: 700px;
}

@media (max-width: 860px) {
  .editorial-program-card,
  .direction-program-grid .editorial-program-card,
  .catalog-grid .editorial-program-card {
    min-height: auto;
    padding: 1.1rem;
    border-radius: 26px;
  }

  .editorial-program-card .program-summary {
    min-height: auto;
    -webkit-line-clamp: unset;
  }
}

@media (max-width: 640px) {
  .editorial-program-card .program-facts {
    grid-template-columns: 1fr;
  }

  .editorial-program-card .program-fact--wide {
    grid-column: auto;
  }

  .editorial-program-card .program-title {
    font-size: 1.22rem;
  }
}


/* v23 polished program cards */
.refined-program-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 720px;
  padding: 1.35rem;
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248, 250, 255, 0.98)),
    linear-gradient(135deg, color-mix(in srgb, var(--from) 10%, white), color-mix(in srgb, var(--to) 8%, white));
  border: 1px solid rgba(104, 123, 188, 0.16);
  box-shadow: 0 22px 64px rgba(66, 88, 156, 0.12);
  overflow: hidden;
}
.refined-program-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--from) 16%, white), transparent 34%),
    radial-gradient(circle at bottom left, color-mix(in srgb, var(--to) 12%, white), transparent 30%);
  pointer-events: none;
}
.refined-program-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(145deg, rgba(255,255,255,.85), rgba(102,123,200,.12));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}
.refined-program-card > * {
  position: relative;
  z-index: 1;
}
.refined-program-card__glow {
  position: absolute;
  top: -48px;
  right: -30px;
  width: 152px;
  height: 152px;
  border-radius: 999px;
  background: radial-gradient(circle, color-mix(in srgb, var(--from) 34%, white), transparent 72%);
  opacity: .78;
  filter: blur(18px);
  pointer-events: none;
}
.refined-program-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.refined-program-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
.refined-program-card .meta-pill {
  display: inline-flex;
  align-items: center;
  padding: .5rem .86rem;
  border-radius: 999px;
  background: rgba(69, 92, 179, 0.08);
  border: 1px solid rgba(69, 92, 179, 0.12);
  color: #435896;
  font-size: .74rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.refined-program-card .program-sticker {
  padding: .5rem .8rem;
  border-radius: 999px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(108, 126, 196, 0.15);
  color: #30467d;
  font-size: .78rem;
  line-height: 1;
  font-weight: 800;
}
.refined-program-card__code {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .5rem .78rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(108,126,196,.16);
  color: #6d7a9a;
  font-size: .79rem;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
}
.refined-program-card__hero {
  padding: 1rem 1rem 1.05rem;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(246,249,255,0.86));
  border: 1px solid rgba(108,126,196,0.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
  display: grid;
  gap: .72rem;
  margin-bottom: 1rem;
}
.refined-program-card .program-title {
  margin: 0;
  font-size: clamp(1.24rem, 1.06rem + .26vw, 1.52rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: #1d2a52;
  text-wrap: balance;
}
.refined-program-card .program-summary {
  margin: 0;
  color: #5d6987;
  line-height: 1.62;
  font-size: .97rem;
  min-height: 4.8em;
}
.program-info-block {
  padding: 1rem;
  border-radius: 24px;
  background: rgba(255,255,255,0.8);
  border: 1px solid rgba(108,126,196,0.12);
  margin-bottom: .9rem;
}
.program-info-block--separated {
  margin-top: .1rem;
}
.program-info-block__head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .9rem;
}
.program-info-block__head::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(90deg, rgba(108,126,196,.22), rgba(108,126,196,0));
}
.program-info-block__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .74rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6b7797;
  font-weight: 900;
  white-space: nowrap;
}
.refined-program-card__specs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .78rem;
}
.program-spec-card {
  min-height: 92px;
  padding: .95rem 1rem;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(249,251,255,0.96), rgba(243,247,255,0.96));
  border: 1px solid rgba(108,126,196,0.11);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .42rem;
}
.program-spec-card__label,
.program-spec-row__label {
  display: block;
  font-size: .7rem;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7b87a6;
  font-weight: 900;
}
.program-spec-card__value,
.program-spec-row__value,
.program-spec-row__value-wrap {
  display: block;
  font-size: .98rem;
  line-height: 1.33;
  font-weight: 800;
  color: #21315d;
}
.refined-program-card__wide-list {
  display: grid;
  gap: .78rem;
}
.program-spec-row {
  min-height: 84px;
  padding: .98rem 1rem;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(249,251,255,0.96), rgba(243,247,255,0.96));
  border: 1px solid rgba(108,126,196,0.11);
  display: grid;
  gap: .45rem;
  align-content: center;
}
.program-spec-row--accent {
  background: linear-gradient(135deg, rgba(82,105,255,0.08), rgba(255,119,163,0.08));
  border-color: rgba(95, 110, 215, 0.15);
}
.program-spec-row--price {
  background: linear-gradient(135deg, rgba(78, 102, 255, 0.13), rgba(255, 119, 163, 0.12));
}
.program-spec-row__value--link {
  color: #3550d1;
  text-decoration: none;
}
.program-spec-row__value--link:hover {
  color: #2239a9;
  text-decoration: underline;
}
.refined-program-card__footer {
  margin-top: auto;
  padding-top: .1rem;
}
.refined-program-card__button {
  width: 100%;
  justify-content: center;
  border-radius: 18px;
  font-weight: 800;
  min-height: 54px;
}
.catalog-grid .refined-program-card,
.direction-program-grid .refined-program-card {
  min-height: 720px;
}
@media (max-width: 860px) {
  .refined-program-card,
  .catalog-grid .refined-program-card,
  .direction-program-grid .refined-program-card {
    min-height: auto;
    padding: 1.1rem;
  }
  .refined-program-card .program-summary {
    min-height: auto;
  }
}
@media (max-width: 640px) {
  .refined-program-card__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .refined-program-card__hero,
  .program-info-block {
    padding: .95rem;
  }
  .refined-program-card__specs {
    grid-template-columns: 1fr;
  }
  .program-spec-card,
  .program-spec-row {
    min-height: auto;
  }
}

/* v24 polished program cards */
.polished-program-card {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.polished-program-card__intro {
  padding: 1.1rem 1.1rem 1.15rem;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,249,255,0.92));
  border: 1px solid rgba(108,126,196,0.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
  display: grid;
  gap: .8rem;
  margin-bottom: 1rem;
}

.polished-program-card .program-title {
  margin: 0;
  font-size: clamp(1.22rem, 1.04rem + .34vw, 1.5rem);
  line-height: 1.14;
  letter-spacing: -0.03em;
  color: #1d2a52;
  text-wrap: balance;
}

.polished-program-card .program-summary {
  margin: 0;
  color: #5d6987;
  line-height: 1.62;
  font-size: .97rem;
  min-height: 4.8em;
}

.program-panel {
  position: relative;
  padding: 1rem;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.88), rgba(248,250,255,0.82));
  border: 1px solid rgba(108,126,196,0.12);
  margin-bottom: .9rem;
}

.program-panel--soft {
  background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(244,248,255,0.88));
}

.program-panel__title-row {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: .95rem;
}

.program-panel__eyebrow {
  display: inline-flex;
  align-items: center;
  padding: .48rem .75rem;
  border-radius: 999px;
  background: rgba(69,92,179,0.08);
  border: 1px solid rgba(69,92,179,0.12);
  color: #4a5f98;
  font-size: .72rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 900;
  white-space: nowrap;
}

.program-panel__line {
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(90deg, rgba(108,126,196,.22), rgba(108,126,196,0));
}

.program-facts-grid,
.program-conditions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .78rem;
}

.program-fact,
.program-condition-card {
  min-height: 98px;
  padding: 1rem 1rem .95rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(252,253,255,0.98), rgba(243,247,255,0.95));
  border: 1px solid rgba(108,126,196,0.11);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: .55rem;
}

.program-fact__label,
.program-condition-card__label {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  font-size: .72rem;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7a87a8;
  font-weight: 900;
}

.program-fact__label::before,
.program-condition-card__label::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--from), var(--to));
  box-shadow: 0 0 0 4px rgba(78,102,255,0.08);
  flex: 0 0 auto;
}

.program-fact__value,
.program-condition-card__value,
.program-condition-card__link {
  display: block;
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
  font-weight: 800;
  color: #21315d;
  text-decoration: none;
}

.program-condition-card__link {
  color: #3050d1;
}

.program-condition-card__link:hover {
  color: #2139a3;
  text-decoration: underline;
}

.program-condition-card--wide {
  grid-column: 1 / -1;
  min-height: 84px;
}

.program-condition-card--accent {
  background: linear-gradient(135deg, rgba(82,105,255,0.13), rgba(255,119,163,0.12));
  border-color: rgba(95,110,215,0.18);
}

.polished-program-card__footer {
  margin-top: auto;
}

.catalog-grid .polished-program-card,
.direction-program-grid .polished-program-card {
  min-height: 760px;
}

@media (max-width: 860px) {
  .catalog-grid .polished-program-card,
  .direction-program-grid .polished-program-card,
  .polished-program-card {
    min-height: auto;
  }

  .polished-program-card .program-summary {
    min-height: auto;
  }
}

@media (max-width: 640px) {
  .program-facts-grid,
  .program-conditions-grid {
    grid-template-columns: 1fr;
  }

  .program-fact,
  .program-condition-card,
  .program-condition-card--wide {
    min-height: auto;
  }

  .polished-program-card__intro,
  .program-panel {
    padding: .95rem;
  }
}


/* v25 compact program cards */
.catalog-grid.program-grid,
.direction-program-grid.program-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.compact-program-card {
  min-height: 0;
  gap: .8rem;
}

.compact-program-card__header {
  margin-bottom: .2rem;
}

.compact-program-card__badges {
  row-gap: .45rem;
}

.compact-program-card__intro {
  margin-bottom: 0;
  padding: 1rem 1rem 1.05rem;
}

.compact-program-card .program-title {
  min-height: 0;
  font-size: clamp(1.08rem, 0.96rem + .25vw, 1.28rem);
  line-height: 1.16;
}

.compact-program-card .program-summary {
  min-height: 0;
  line-height: 1.52;
  font-size: .93rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.compact-program-panel {
  padding: .9rem;
  margin-bottom: 0;
}

.compact-program-panel__title-row {
  margin-bottom: .75rem;
}

.compact-program-facts-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.compact-program-fact {
  min-height: 82px;
  padding: .82rem .88rem .84rem;
  border-radius: 18px;
  justify-content: flex-start;
  gap: .38rem;
}

.compact-program-fact--wide {
  grid-column: 1 / -1;
}

.compact-program-fact--accent {
  background: linear-gradient(135deg, rgba(82,105,255,0.13), rgba(255,119,163,0.10));
  border-color: rgba(95,110,215,0.18);
}

.compact-program-card .program-fact__label {
  gap: 0;
  font-size: .69rem;
  letter-spacing: .06em;
}

.compact-program-card .program-fact__label::before {
  display: none;
}

.compact-program-card .program-fact__value,
.compact-program-card .program-fact__value--link {
  font-size: .96rem;
  line-height: 1.32;
}

.compact-program-card__footer {
  margin-top: auto;
}

.catalog-grid .compact-program-card,
.direction-program-grid .compact-program-card {
  min-height: 0;
}

@media (max-width: 1100px) {
  .catalog-grid.program-grid,
  .direction-program-grid.program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .catalog-grid.program-grid,
  .direction-program-grid.program-grid {
    grid-template-columns: 1fr;
  }

  .compact-program-facts-grid {
    grid-template-columns: 1fr;
  }

  .compact-program-fact,
  .compact-program-fact--wide {
    min-height: auto;
    grid-column: auto;
  }
}


/* v26 rebuilt adaptive program cards */
.ui-program-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .88rem;
  min-height: 0;
  padding: 1rem;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,249,255,0.96));
  border: 1px solid rgba(104,124,193,0.14);
  box-shadow: 0 18px 40px rgba(66, 92, 170, 0.10);
  overflow: hidden;
}

.ui-program-card__glow {
  position: absolute;
  inset: -16% auto auto -14%;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: radial-gradient(circle, color-mix(in srgb, var(--from) 28%, white) 0%, transparent 72%);
  opacity: .7;
  pointer-events: none;
}

.ui-program-card > * {
  position: relative;
  z-index: 1;
}

.ui-program-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.ui-program-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.ui-program-card__code {
  flex: 0 0 auto;
  padding: .48rem .72rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(108,126,196,0.14);
  color: #445689;
  font-size: .72rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 900;
  white-space: nowrap;
}

.ui-program-card__titlebox {
  padding: .95rem 1rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,248,255,0.96));
  border: 1px solid rgba(108,126,196,0.12);
}

.ui-program-card__title {
  margin: 0;
  font-size: clamp(1.08rem, 1rem + .34vw, 1.34rem);
  line-height: 1.22;
  font-weight: 900;
  color: #1f2d59;
  overflow-wrap: anywhere;
}

.ui-program-card__tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

.ui-program-card__tile,
.ui-program-card__info-card {
  display: flex;
  flex-direction: column;
  gap: .34rem;
  padding: .82rem .9rem;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(243,247,255,0.95));
  border: 1px solid rgba(108,126,196,0.11);
  min-width: 0;
}

.ui-program-card__tile--wide {
  grid-column: 1 / -1;
}

.ui-program-card__tile-label {
  display: block;
  margin: 0;
  font-size: .68rem;
  line-height: 1.2;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #7a87a8;
  font-weight: 900;
}

.ui-program-card__tile-label::before {
  content: none !important;
  display: none !important;
}

.ui-program-card__tile-value {
  margin: 0;
  font-size: .96rem;
  line-height: 1.34;
  font-weight: 800;
  color: #21315d;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ui-program-card__tile-value--link {
  color: #2d4cd1;
  text-decoration: none;
}

.ui-program-card__tile-value--link:hover {
  color: #223ca2;
  text-decoration: underline;
}

.ui-program-card__bottom {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .95fr);
  gap: .7rem;
}

.ui-program-card__bottom--single {
  grid-template-columns: 1fr;
}

.ui-program-card__info-card--campus {
  min-height: 0;
}

.ui-program-card__info-card--price {
  background: linear-gradient(135deg, rgba(82,105,255,0.13), rgba(255,119,163,0.10));
  border-color: rgba(95,110,215,0.18);
}

.ui-program-card__footer {
  margin-top: auto;
}

.ui-program-card__button {
  width: 100%;
  justify-content: center;
}

.catalog-grid.program-grid,
.direction-program-grid.program-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalog-grid .ui-program-card,
.direction-program-grid .ui-program-card {
  min-height: 100%;
}

@media (max-width: 1180px) {
  .ui-program-card__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .ui-program-card__code {
    white-space: normal;
  }
}

@media (max-width: 860px) {
  .catalog-grid.program-grid,
  .direction-program-grid.program-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ui-program-card {
    padding: .9rem;
    border-radius: 24px;
  }

  .ui-program-card__titlebox,
  .ui-program-card__tile,
  .ui-program-card__info-card {
    padding: .78rem .82rem;
  }

  .ui-program-card__tiles,
  .ui-program-card__bottom {
    grid-template-columns: 1fr;
  }

  .ui-program-card__tile--wide {
    grid-column: auto;
  }
}


/* v28 real visual cards */
.program-card.rpc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.15rem;
  min-height: 0;
  border-radius: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,255,0.97));
  border: 1px solid rgba(118, 138, 211, 0.18);
  box-shadow: 0 18px 42px rgba(64, 89, 162, 0.12);
  overflow: hidden;
}

.program-card.rpc-card > * {
  position: relative;
  z-index: 1;
}

.rpc-card__glow {
  position: absolute;
  inset: -12% -8% auto auto;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: radial-gradient(circle, color-mix(in srgb, var(--to) 24%, white) 0%, transparent 72%);
  opacity: .9;
  pointer-events: none;
}

.rpc-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
}

.rpc-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.rpc-card__code {
  flex: 0 0 auto;
  padding: .56rem .82rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(118,138,211,0.18);
  color: #50628f;
  font-size: .73rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
}

.rpc-card__title-wrap {
  padding: 1rem 1.05rem;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(241,246,255,0.96));
  border: 1px solid rgba(116,137,214,0.15);
}

.rpc-card__title {
  margin: 0;
  color: #182852;
  font-size: clamp(1.18rem, 1.02rem + .42vw, 1.5rem);
  line-height: 1.18;
  font-weight: 900;
  text-wrap: balance;
  overflow-wrap: anywhere;
}

.rpc-card__section {
  padding: .95rem;
  border-radius: 24px;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(118,138,211,0.14);
}

.rpc-card__section-title {
  margin-bottom: .72rem;
  color: #66769d;
  font-size: .74rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.rpc-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .72rem;
}

.rpc-card__fact,
.rpc-card__info-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .32rem;
  padding: .88rem .92rem;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #f5f8ff);
  border: 1px solid rgba(118,138,211,0.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.75);
}

.rpc-card__fact--wide {
  grid-column: 1 / -1;
}

.rpc-card__fact-label {
  display: block;
  margin: 0;
  color: #7a89a9;
  font-size: .7rem;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.rpc-card__fact-label::before,
.rpc-card__fact-label::after {
  content: none !important;
  display: none !important;
}

.rpc-card__fact-value {
  display: block;
  margin: 0;
  color: #1d2d58;
  font-size: .99rem;
  line-height: 1.3;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.rpc-card__fact-value--link {
  color: #2f4fd8;
  text-decoration: none;
}

.rpc-card__fact-value--link:hover {
  text-decoration: underline;
}

.rpc-card__info-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr);
  gap: .72rem;
}

.rpc-card__info-grid--single {
  grid-template-columns: 1fr;
}

.rpc-card__info-card--price {
  background: linear-gradient(135deg, rgba(77,101,255,0.13), rgba(255,128,172,0.11));
  border-color: rgba(98,118,220,0.18);
}

.rpc-card__footer {
  margin-top: auto;
}

.rpc-card__button {
  width: 100%;
  justify-content: center;
  min-height: 58px;
  font-size: 1rem;
}

.catalog-grid.program-grid,
.direction-program-grid.program-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.catalog-grid .program-card.rpc-card,
.direction-program-grid .program-card.rpc-card {
  min-height: 100%;
}

@media (max-width: 1120px) {
  .rpc-card__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .rpc-card__code {
    white-space: normal;
  }
}

@media (max-width: 860px) {
  .catalog-grid.program-grid,
  .direction-program-grid.program-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .program-card.rpc-card {
    padding: .92rem;
    border-radius: 24px;
  }

  .rpc-card__title-wrap,
  .rpc-card__section,
  .rpc-card__fact,
  .rpc-card__info-card {
    padding: .82rem;
  }

  .rpc-card__facts,
  .rpc-card__info-grid {
    grid-template-columns: 1fr;
  }

  .rpc-card__fact--wide {
    grid-column: auto;
  }
}


/* v29 true tiles cards override */
.program-card.rpc-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:1rem;
  padding:1.2rem;
  min-height:0;
  border-radius:28px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,249,255,.96));
  border:1px solid rgba(109,130,210,.18);
  box-shadow:0 16px 38px rgba(73,95,156,.12);
  overflow:hidden;
}
.program-card.rpc-card>*{position:relative;z-index:1;}
.rpc-card__glow{position:absolute;top:-40px;right:-50px;width:180px;height:180px;border-radius:999px;background:radial-gradient(circle, color-mix(in srgb, var(--to) 20%, white) 0%, transparent 72%);opacity:.95;pointer-events:none;}
.rpc-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.rpc-card__badges{display:flex;flex-wrap:wrap;gap:.5rem;}
.rpc-card__code{flex:0 0 auto;padding:.55rem .78rem;border-radius:999px;background:rgba(255,255,255,.95);border:1px solid rgba(109,130,210,.18);color:#50628f;font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;line-height:1;}
.rpc-card__title{margin:0;color:#17264c;font-size:clamp(1.35rem,1.05rem + .55vw,1.8rem);line-height:1.14;font-weight:900;text-wrap:balance;overflow-wrap:anywhere;}
.rpc-card__block{padding:1rem 1rem 1.05rem;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(247,250,255,.92));border:1px solid rgba(109,130,210,.14);box-shadow:0 10px 30px rgba(82,102,173,.06), inset 0 1px 0 rgba(255,255,255,.88);}
.rpc-card__block + .rpc-card__block{margin-top:.1rem;}
.rpc-card__block-title{margin:0 0 .8rem;color:#66769d;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;}
.rpc-card__tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}
.rpc-card__tiles--bottom{grid-template-columns:minmax(0,1.28fr) minmax(0,.92fr);}
.rpc-card__tiles--single{grid-template-columns:1fr;}
.rpc-card__tile{display:flex;flex-direction:column;gap:.42rem;padding:.9rem 1rem;border-radius:20px;background:linear-gradient(180deg,#ffffff 0%,#f7f9ff 100%);border:1px solid rgba(109,130,210,.16);box-shadow:0 8px 18px rgba(70,95,176,.06), inset 0 1px 0 rgba(255,255,255,.9);min-width:0;position:relative;overflow:hidden;}
.rpc-card__tile::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--from),var(--to));opacity:.7;}
.rpc-card__tile--wide{grid-column:1 / -1;}
.rpc-card__tile--price{background:linear-gradient(135deg,rgba(86,110,255,.12),rgba(255,140,184,.12));border-color:rgba(106,126,220,.18);}
.rpc-card__tile-label{display:block;margin:0;color:#7b89a8;font-size:.73rem;font-weight:800;letter-spacing:.04em;line-height:1.25;}
.rpc-card__tile-label::before,.rpc-card__tile-label::after{content:none!important;display:none!important;width:0!important;height:0!important;border:0!important;background:none!important;}
.rpc-card__tile-value{display:block;margin:0;color:#1d2d58;font-size:1.02rem;font-weight:850;line-height:1.28;overflow-wrap:anywhere;}
.rpc-card__tile-link{color:#2f4fd8;text-decoration:none;}
.rpc-card__tile-link:hover{text-decoration:underline;}
.rpc-card__footer{margin-top:auto;}
.rpc-card__button{width:100%;justify-content:center;min-height:56px;font-size:1rem;}
.catalog-grid.program-grid,.direction-program-grid.program-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
.catalog-grid .program-card.rpc-card,.direction-program-grid .program-card.rpc-card{min-height:100%;}
@media (max-width:1120px){.rpc-card__header{flex-direction:column;align-items:flex-start;}.rpc-card__code{white-space:normal;}}
@media (max-width:760px){.catalog-grid.program-grid,.direction-program-grid.program-grid{grid-template-columns:1fr;}.rpc-card__tiles,.rpc-card__tiles--bottom{grid-template-columns:1fr;}.rpc-card__tile--wide{grid-column:auto;}}

.rpc-card__header{margin-bottom:.2rem;}
.rpc-card__title{margin-bottom:.15rem;}
.rpc-card__footer{padding-top:.1rem;}


/* v31 tighten top spacing in program cards */
.program-card.rpc-card{justify-content:flex-start;padding-top:.72rem;min-height:0!important;}
.rpc-card__header{margin-top:0!important;padding-top:0!important;}
.rpc-card__badges{margin-top:0!important;}
.rpc-card__glow{top:-95px;right:-80px;opacity:.8;}


/* v32 compact refined program cards */
.compact-program-card{
  min-height:0 !important;
  padding:1rem 1rem 1rem !important;
  gap:.8rem !important;
  justify-content:flex-start;
}
.catalog-grid .compact-program-card,
.direction-program-grid .compact-program-card{
  min-height:100% !important;
}
.compact-program-card__header{
  margin:0 0 .15rem !important;
  padding:0 !important;
  align-items:center;
}
.compact-program-card__title-block{
  display:block;
  margin:0 0 .2rem !important;
}
.compact-program-card .program-title{
  min-height:0 !important;
  margin:0 !important;
  font-size:clamp(1.45rem,1.08rem + .55vw,1.95rem);
  line-height:1.08;
  text-wrap:balance;
}
.compact-program-card__section{
  display:grid;
  gap:.7rem;
  padding:1rem;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(247,250,255,.94));
  border:1px solid rgba(108,126,196,.14);
  box-shadow:0 10px 24px rgba(74,96,171,.06), inset 0 1px 0 rgba(255,255,255,.9);
}
.compact-program-card__section--footerinfo{
  padding-top:.95rem;
}
.compact-program-card__section-title{
  margin:0;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#6978a1;
}
.compact-program-card__specs{
  gap:.72rem;
  margin:0 !important;
}
.compact-program-card .program-spec-card{
  min-height:0;
  padding:.88rem .95rem;
  border-radius:20px;
  box-shadow:0 8px 18px rgba(70,95,176,.05), inset 0 1px 0 rgba(255,255,255,.92);
  background:linear-gradient(180deg,#fff,#f7f9ff);
  border:1px solid rgba(103,126,201,.14);
  position:relative;
  overflow:hidden;
}
.compact-program-card .program-spec-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg,var(--from),var(--to));
  opacity:.82;
}
.compact-program-card .program-spec-card__label,
.compact-program-card .program-spec-row__label{
  font-size:.74rem;
  letter-spacing:.04em;
  text-transform:none;
  color:#7d89a8;
}
.compact-program-card .program-spec-card__label::before,
.compact-program-card .program-spec-card__label::after,
.compact-program-card .program-spec-row__label::before,
.compact-program-card .program-spec-row__label::after{
  content:none !important;
  display:none !important;
}
.compact-program-card .program-spec-card__value,
.compact-program-card .program-spec-row__value,
.compact-program-card .program-spec-row__value-wrap{
  font-size:1.02rem;
  line-height:1.25;
  color:#1d2d58;
}
.compact-program-card__seats-card{
  grid-column:1 / -1;
}
.compact-program-card__wide-list{
  margin:0 !important;
  gap:.72rem;
}
.compact-program-card__row{
  min-height:0;
  padding:.95rem 1rem;
  border-radius:20px;
  background:linear-gradient(180deg,#fff,#f7f9ff);
  border:1px solid rgba(103,126,201,.14);
  box-shadow:0 8px 18px rgba(70,95,176,.05), inset 0 1px 0 rgba(255,255,255,.92);
}
.compact-program-card__row--price{
  background:linear-gradient(135deg,rgba(86,110,255,.10),rgba(255,140,184,.10));
}
.compact-program-card__footer{
  margin-top:auto;
  padding-top:.1rem !important;
}
.compact-program-card__button{
  min-height:54px;
}
@media (max-width:760px){
  .compact-program-card{padding:.95rem !important;}
  .compact-program-card__section{padding:.88rem;}
  .compact-program-card__specs{grid-template-columns:1fr !important;}
  .compact-program-card__seats-card{grid-column:auto;}
}

/* Documents page */
.docs-layout {
  display: grid;
  gap: 1.5rem;
}
.docs-group {
  padding: 1.5rem;
  border-radius: 28px;
  border: 1px solid rgba(155, 173, 230, 0.24);
}
.docs-group__head h2 {
  margin: 0 0 1rem;
  font-size: clamp(1.1rem, 2vw, 1.6rem);
}
.docs-group__items {
  display: grid;
  gap: 1rem;
}
.doc-card {
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(185, 198, 240, 0.55);
  border-radius: 24px;
  padding: 1.1rem 1.15rem;
  box-shadow: 0 10px 28px rgba(28, 42, 86, 0.06);
}
.doc-card__top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: .8rem;
}
.doc-card__top h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
}
.doc-card__body {
  display: grid;
  gap: .9rem;
}
.doc-card__actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}
.doc-eds-badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: .5rem .85rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(89,216,255,.16), rgba(123,97,255,.16));
  border: 1px solid rgba(116, 126, 255, 0.28);
  color: #213367;
  font-size: .85rem;
  font-weight: 700;
  white-space: nowrap;
}
.doc-eds-tooltip {
  position: absolute;
  right: 0;
  top: auto;
  bottom: calc(100% + 12px);
  min-width: 240px;
  max-width: min(360px, calc(100vw - 32px));
  background: #ffffff;
  border: 1px solid #c9d5f5;
  border-radius: 16px;
  padding: .8rem .9rem;
  box-shadow: 0 18px 40px rgba(32, 46, 93, .18);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 10;
  pointer-events: none;
}
.doc-eds-tooltip strong,
.doc-eds-tooltip small { display: block; }
.doc-eds-tooltip small { margin-top: .35rem; color: #6273a8; line-height: 1.35; word-break: break-all; }
.doc-eds-badge:hover .doc-eds-tooltip,
.doc-eds-badge:focus-within .doc-eds-tooltip {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.rich-text p:first-child { margin-top: 0; }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text ul, .rich-text ol { padding-left: 1.25rem; }
.custom-page-shell { padding: 1.75rem; }

@media (max-width: 760px) {
  .doc-card__top { flex-direction: column; }
  .doc-eds-tooltip {
    right: 0;
    left: auto;
    min-width: 220px;
    max-width: min(300px, calc(100vw - 24px));
  }
}


/* Documents page v2 */
.page-hero-documents{
  padding-bottom:28px;
}
.docs-hero-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,320px);
  gap:1.25rem;
  align-items:end;
}
.docs-hero-note{
  padding:1.15rem 1.2rem;
  border-radius:26px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(155,173,230,.28);
  box-shadow:0 16px 36px rgba(27,40,89,.08);
}
.docs-hero-note strong{
  display:block;
  font-size:1rem;
  margin-bottom:.35rem;
  color:#203266;
}
.docs-hero-note span{
  display:block;
  color:#6072a8;
  line-height:1.55;
}
.section-documents-official{
  padding-top:10px;
}
.docs-page-grid{
  display:grid;
  grid-template-columns:minmax(250px,290px) minmax(0,1fr);
  gap:1.3rem;
  align-items:start;
}
.docs-sidebar{
  position:sticky;
  top:100px;
  padding:1.2rem;
  border-radius:28px;
  border:1px solid rgba(155,173,230,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(247,250,255,.86));
}
.docs-sidebar__head h2{
  margin:.35rem 0 0;
  font-size:1.2rem;
}
.eyebrow-small{
  font-size:.73rem;
  padding:.42rem .7rem;
}
.docs-sidebar__nav{
  display:grid;
  gap:.65rem;
  margin-top:1rem;
}
.docs-sidebar__nav a{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.7rem;
  align-items:start;
  text-decoration:none;
  color:#203266;
  padding:.9rem 1rem;
  border-radius:18px;
  border:1px solid rgba(185,198,240,.46);
  background:rgba(255,255,255,.74);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.docs-sidebar__nav a:hover{
  transform:translateY(-1px);
  border-color:rgba(113,122,255,.34);
  box-shadow:0 10px 20px rgba(32,46,93,.08);
}
.docs-sidebar__nav a span{
  font-weight:800;
  color:#6a78b0;
}
.docs-main{
  display:grid;
  gap:1.1rem;
}
.docs-section{
  padding:1.35rem;
  border-radius:30px;
  border:1px solid rgba(155,173,230,.24);
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(247,250,255,.82));
}
.docs-section__head{
  display:flex;
  align-items:center;
  gap:1rem;
  padding-bottom:1rem;
  margin-bottom:1rem;
  border-bottom:1px solid rgba(199,209,240,.56);
}
.docs-section__number{
  width:56px;
  height:56px;
  border-radius:20px;
  display:grid;
  place-items:center;
  font-size:1.25rem;
  font-weight:800;
  color:#23366f;
  background:linear-gradient(135deg,rgba(89,216,255,.18),rgba(123,97,255,.16));
  border:1px solid rgba(113,122,255,.24);
  flex-shrink:0;
}
.docs-section__head h2{
  margin:.3rem 0 0;
  font-size:clamp(1.15rem,2vw,1.5rem);
}
.docs-section__items{
  display:grid;
  gap:1rem;
}
.doc-official-card{
  border-radius:24px;
  border:1px solid rgba(185,198,240,.54);
  background:rgba(255,255,255,.82);
  box-shadow:0 10px 28px rgba(28,42,86,.06);
  overflow:hidden;
}
.doc-official-card__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  padding:1rem 1.1rem;
  border-bottom:1px solid rgba(199,209,240,.48);
}
.doc-official-card__titlebox{
  display:grid;
  gap:.35rem;
}
.doc-official-card__index{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:.34rem .64rem;
  border-radius:999px;
  background:rgba(230,236,248,.86);
  color:#6a78b0;
  font-size:.8rem;
  font-weight:800;
}
.doc-official-card__titlebox h3{
  margin:0;
  font-size:1rem;
  line-height:1.45;
}
.doc-official-card__body{
  padding:1rem 1.1rem 1.1rem;
  display:grid;
  gap:.95rem;
}
.doc-official-card__content{
  color:#30406f;
  line-height:1.7;
}
.doc-official-card__content p{
  margin:.1rem 0 0;
}
.doc-official-card__actions{
  display:flex;
  justify-content:flex-start;
}
@media (max-width:980px){
  .docs-hero-shell,
  .docs-page-grid{
    grid-template-columns:1fr;
  }
  .docs-sidebar{
    position:static;
  }
}
@media (max-width:680px){
  .docs-section,
  .doc-official-card__header,
  .doc-official-card__body,
  .docs-sidebar{
    padding-left:.95rem;
    padding-right:.95rem;
  }
  .doc-official-card__header{
    flex-direction:column;
    align-items:flex-start;
  }
}


.docs-sidebar__nav a strong{font-weight:700;}
.docs-section__head--plain{padding-bottom:0.5rem;border-bottom:1px solid rgba(125,140,198,.18);margin-bottom:1.1rem;}
.docs-section__head--plain h2{margin:0;font-size:clamp(1.35rem,2vw,1.9rem);color:#1d2b57;}
.doc-official-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;}
.doc-official-card__titlebox h3{margin:0;font-size:1.05rem;line-height:1.35;color:#1c2a57;}
.doc-official-card__body{display:grid;gap:1rem;}
.doc-official-card__content:empty{display:none;}
.doc-official-card__files{display:grid;gap:.8rem;}
.doc-file-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.95rem 1rem;border:1px solid rgba(130,146,205,.22);border-radius:18px;background:rgba(255,255,255,.78);box-shadow:0 12px 30px rgba(129,140,200,.08);}
.doc-file-link{font-weight:700;color:#23376f;text-decoration:none;line-height:1.35;}
.doc-file-link:hover{text-decoration:underline;}
.admin-subcards{display:grid;gap:1rem;}
.admin-subcard{border:1px solid rgba(116,131,198,.18);border-radius:18px;padding:1rem;background:rgba(255,255,255,.72);display:grid;gap:.75rem;}
@media (max-width: 860px){.doc-file-row{flex-direction:column;align-items:flex-start;}}


/* Documents page width refinement */
.page-hero-documents .container,
.section-documents-official .container {
  width: min(1380px, calc(100% - 2rem));
}
.docs-page-grid {
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: 1.5rem;
}
.docs-main {
  min-width: 0;
}
.doc-official-card__body,
.doc-official-card__content {
  min-width: 0;
}
.doc-official-card__content {
  overflow-x: auto;
}
.doc-official-card__content table {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  margin: .35rem 0;
  background: rgba(255,255,255,.92);
}
.doc-official-card__content th,
.doc-official-card__content td {
  padding: .78rem .9rem;
  border: 1px solid rgba(176, 191, 232, .7);
  vertical-align: top;
  text-align: left;
}
.doc-official-card__content th {
  background: rgba(237, 243, 255, .95);
  color: #213367;
  font-weight: 800;
}
.doc-official-card__content tbody tr:nth-child(even) {
  background: rgba(246, 249, 255, .85);
}
.doc-official-card__content .table-wrap,
.doc-official-card__content .table-responsive {
  overflow-x: auto;
}
@media (max-width: 1180px) {
  .page-hero-documents .container,
  .section-documents-official .container {
    width: min(1260px, calc(100% - 1.5rem));
  }
  .docs-page-grid {
    grid-template-columns: minmax(210px, 240px) minmax(0, 1fr);
    gap: 1rem;
  }
}
@media (max-width: 980px) {
  .page-hero-documents .container,
  .section-documents-official .container {
    width: min(1180px, calc(100% - 1.25rem));
  }
}


/* Documents mobile adaptivity fix */
@media (max-width: 980px) {
  .documents-page {
    overflow-x: clip;
  }
  .docs-page-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .docs-main {
    order: 1;
    width: 100%;
    min-width: 0;
  }
  .docs-sidebar {
    order: 2;
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }
}

@media (max-width: 768px) {
  .page-hero-documents .container,
  .section-documents-official .container {
    width: calc(100% - 1rem);
  }
  .docs-hero-shell {
    grid-template-columns: 1fr;
  }
  .docs-sidebar {
    padding: .95rem;
    border-radius: 22px;
  }
  .docs-sidebar__nav {
    display: flex;
    gap: .65rem;
    margin-top: .85rem;
    overflow-x: auto;
    padding-bottom: .2rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .docs-sidebar__nav::-webkit-scrollbar {
    height: 6px;
  }
  .docs-sidebar__nav a {
    flex: 0 0 auto;
    min-width: 220px;
    max-width: 82vw;
    padding: .85rem .95rem;
    scroll-snap-align: start;
  }
  .docs-section,
  .doc-official-card,
  .doc-official-card__header,
  .doc-official-card__body,
  .doc-official-card__content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .docs-section {
    padding: 1rem;
    border-radius: 24px;
  }
  .doc-official-card {
    border-radius: 20px;
  }
  .doc-official-card__header,
  .doc-official-card__body {
    padding: .9rem;
  }
  .doc-official-card__content {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .doc-official-card__content table {
    min-width: 640px;
  }
  .doc-file-row {
    align-items: flex-start;
  }
}

@media (max-width: 540px) {
  .page-hero-documents .container,
  .section-documents-official .container {
    width: calc(100% - .8rem);
  }
  .docs-page-grid,
  .docs-main {
    gap: .85rem;
  }
  .docs-sidebar__nav a {
    min-width: 190px;
    max-width: 88vw;
    border-radius: 16px;
  }
  .docs-section__head--plain h2 {
    font-size: 1.15rem;
    line-height: 1.3;
  }
  .doc-official-card__titlebox h3 {
    font-size: .98rem;
  }
  .doc-official-card__content table {
    min-width: 560px;
  }
}


/* Documents tooltip layering fix */
.docs-section,
.docs-section__items,
.doc-official-card,
.doc-official-card__body,
.doc-file-row,
.doc-eds-badge { overflow: visible; }
.doc-official-card,
.doc-file-row,
.doc-eds-badge { position: relative; }
.doc-official-card:hover,
.doc-official-card:focus-within { z-index: 80; }
.doc-file-row:hover,
.doc-file-row:focus-within { z-index: 120; }
.doc-eds-badge { z-index: 160; }
.doc-eds-tooltip { z-index: 9999; }


/* Developer credit */
.site-developer-credit {
  padding: 0 0 22px;
}
.site-developer-credit .container {
  display: flex;
  justify-content: center;
}
.site-developer-credit a,
.site-developer-credit span {
  font-size: .8rem;
  line-height: 1.4;
  color: rgba(37, 50, 95, 0.42);
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease;
}
.site-developer-credit a:hover {
  color: rgba(37, 50, 95, 0.68);
}

/* EDS tooltip hard fix */
.doc-file-row {
  overflow: visible !important;
}
.doc-file-link {
  min-width: 0;
  flex: 1 1 auto;
}
.doc-eds-badge {
  position: relative;
  isolation: isolate;
  overflow: visible !important;
  flex: 0 0 auto;
  z-index: 200;
}
.doc-eds-tooltip {
  position: absolute;
  right: 0;
  left: auto;
  bottom: calc(100% + 10px);
  top: auto;
  width: min(360px, calc(100vw - 32px));
  min-width: 280px;
  max-width: min(360px, calc(100vw - 32px));
  padding: .9rem 1rem;
  border-radius: 16px;
  background: #ffffff !important;
  background-image: none !important;
  opacity: 0;
  color: #1d2b57;
  visibility: hidden;
  transform: translateY(6px);
  box-shadow: 0 18px 42px rgba(24, 37, 81, .18);
  border: 1px solid #cfd8f5;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter: none !important;
  pointer-events: none;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  z-index: 10000;
}
.doc-eds-tooltip::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 100%;
  width: 12px;
  height: 12px;
  background: #ffffff;
  border-right: 1px solid #cfd8f5;
  border-bottom: 1px solid #cfd8f5;
  transform: rotate(45deg) translateY(-6px);
}
.doc-eds-tooltip strong {
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.35;
  color: #1d2b57;
  white-space: normal;
}
.doc-eds-tooltip small {
  display: block;
  margin-top: .4rem;
  font-size: .78rem;
  line-height: 1.45;
  color: #5d6f9c;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.doc-eds-badge:hover .doc-eds-tooltip,
.doc-eds-badge:focus-within .doc-eds-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (max-width: 760px) {
  .doc-eds-tooltip {
    right: 0;
    left: auto;
    min-width: 240px;
    width: min(300px, calc(100vw - 24px));
    max-width: min(300px, calc(100vw - 24px));
  }
}


/* EDS tooltip overlap final fix */
.doc-file-row {
  z-index: 1;
}
.doc-file-row:hover,
.doc-file-row:focus-within {
  z-index: 6000 !important;
}
.doc-eds-badge {
  min-width: 0;
}
.doc-eds-badge__label {
  display: inline-block;
  transition: opacity .18s ease;
}
.doc-eds-badge:hover .doc-eds-badge__label,
.doc-eds-badge:focus-within .doc-eds-badge__label {
  opacity: 0;
}
.doc-eds-tooltip {
  right: -6px !important;
  left: auto !important;
  bottom: calc(100% + 8px) !important;
  min-width: 250px !important;
  width: min(320px, calc(100vw - 32px)) !important;
  max-width: min(320px, calc(100vw - 32px)) !important;
  background: #ffffff !important;
  opacity: 0;
}
.doc-eds-tooltip::before {
  right: 20px !important;
}
@media (max-width: 760px) {
  .doc-eds-tooltip {
    right: 0 !important;
    width: min(280px, calc(100vw - 24px)) !important;
    min-width: 220px !important;
    max-width: min(280px, calc(100vw - 24px)) !important;
  }
}


/* v46 direction grammar, title wrapping and third hero button */
.direction-card h3 {
  max-width: 100% !important;
  min-height: calc(1.16em * 2);
  margin: .45rem 0 .9rem;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  align-items: center;
  justify-content: center;
  white-space: normal;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-wrap: balance;
}

.direction-card__top {
  align-items: center;
}

.direction-count {
  white-space: nowrap;
}

.button-tertiary {
  background: rgba(255,255,255,0.68);
  border-color: rgba(106, 129, 255, 0.24);
}

@media (max-width: 760px) {
  .direction-card h3 {
    min-height: calc(1.18em * 2);
    font-size: 1.42rem;
  }
  .hero-actions {
    flex-wrap: wrap;
  }
  .hero-actions .button {
    width: 100%;
  }
}
