/* Medcue — SPLASH signature component layer.
 *
 * The warm-sunshine identity that sits on top of the clinical-clear.css
 * semantic bridge. clinical-clear.css owns the flat token primitives and the
 * calm .cc-* components; THIS file owns the celebratory signatures: the
 * sunrise arc, the sunstrip progress bar, sun/streak chips, the Besley coach
 * line, warm shadows, spring motion, scale-pop / card-lift interactions,
 * ambient blobs and the ray-burst reveal.
 *
 * Load order: cue-stack.css → clinical-clear.css → splash.css.
 *
 * Rules honoured here:
 *   · The three bright hues (#FF5A3C / #FF8A00 / #FFC933) are DECORATION only
 *     — gradients, dots, rays, chip fills. Every text / interactive colour
 *     resolves to the AA deeps (--cc-primary #C22F14, amber #7A4D00,
 *     success #0F6B38) or espresso ink.
 *   · ALL motion lives behind @media (prefers-reduced-motion: no-preference).
 *     Reading/answering surfaces stay still; the reveal is the one exception.
 */

:root {
  --splash-coral: #FF5A3C;        /* decorative */
  --splash-tangerine: #FF8A00;    /* decorative */
  --splash-sun: #FFC933;          /* decorative */
  --splash-grad-sunrise: linear-gradient(135deg, #FF5A3C 0%, #FF8A00 55%, #FFC933 100%);
  --splash-grad-mini: linear-gradient(90deg, #FF5A3C 0%, #FFB000 100%);
  --splash-grad-peach: linear-gradient(160deg, #FFEFD9, #FFE0C2);
  --splash-sun-chip: #FFEFC2;
  --splash-sun-chip-ink: #7A4D00;
  --splash-sun-chip-line: #F2D98E;
  --splash-mint: #E5F6E8;
  --splash-mint-line: #B9E4C4;
  --splash-track: #F6E0CC;        /* unfilled arc / bar / cell ground */
  --splash-ink-on-sun: #3A1500;   /* ink for text on the bright gradient */

  --splash-spring: cubic-bezier(.34, 1.56, .64, 1);
  --splash-shadow-warm: 0 12px 32px rgba(194, 47, 20, .10), 0 2px 6px rgba(43, 26, 18, .05);
  --splash-shadow-pop: 0 18px 44px rgba(194, 47, 20, .16), 0 3px 8px rgba(43, 26, 18, .06);
  --splash-shadow-cta: 0 8px 20px rgba(194, 47, 20, .28);

  --splash-r-hero: 32px;
  --splash-r-card: 24px;
  --splash-r-control: 14px;
  --splash-r-pill: 999px;
}

/* Warm-cocoa dark: keep the bright signatures, recolour the neutral grounds. */
html[data-theme='dark'] {
  --splash-sun-chip: #4A3410;
  --splash-sun-chip-ink: #FFD97A;
  --splash-sun-chip-line: #6B4E1E;
  --splash-mint: #133021;
  --splash-mint-line: #285C41;
  --splash-track: #65483A;
  --splash-grad-peach: linear-gradient(160deg, #473127, #3B2A22);
}

/* ---------------- radius utilities ---------------- */
.splash-r-hero { border-radius: var(--splash-r-hero); }
.splash-r-card { border-radius: var(--splash-r-card); }
.splash-r-control { border-radius: var(--splash-r-control); }
.splash-r-pill { border-radius: var(--splash-r-pill); }

/* ---------------- warm shadow utilities ---------------- */
.splash-shadow { box-shadow: var(--splash-shadow-warm); }
.splash-shadow-pop { box-shadow: var(--splash-shadow-pop); }

/* ---------------- coach line (Besley italic 600) ---------------- */
.splash-coach {
  font-family: var(--cc-coach-font);
  font-style: italic;
  font-weight: 600;
  color: var(--cc-ink-secondary);
}
.splash-coach b,
.splash-coach strong { color: var(--cc-primary); font-weight: 600; }
.splash-coach--amber { color: var(--splash-sun-chip-ink); }

/* ---------------- sun / streak chips ---------------- */
.splash-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 7px 14px;
  border-radius: var(--splash-r-pill);
  font-family: var(--cc-display-font);
  font-weight: 700;
  font-size: 13.5px;
  line-height: 1;
  white-space: nowrap;
}
.splash-chip--sun {
  background: var(--splash-sun-chip);
  color: var(--splash-sun-chip-ink);
  border: 1px solid var(--splash-sun-chip-line);
}
.splash-chip--peach {
  background: var(--cc-primary-soft);
  color: var(--cc-primary);
  border: 1px solid color-mix(in srgb, var(--cc-primary) 22%, var(--cc-primary-soft));
}
.splash-chip--data {
  font-family: var(--cc-data-font);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.splash-dot {
  width: 9px;
  height: 9px;
  flex: none;
  border-radius: 50%;
  background: var(--splash-grad-sunrise);
}

/* ---------------- sunstrip progress bar ---------------- */
.splash-sunstrip {
  position: relative;
  height: 10px;
  border-radius: var(--splash-r-pill);
  background: var(--splash-track);
  overflow: visible;
}
.splash-sunstrip__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--splash-progress, 0%);
  border-radius: var(--splash-r-pill);
  background: var(--splash-grad-sunrise);
}
.splash-sunstrip__sun {
  position: absolute;
  top: 50%;
  left: var(--splash-progress, 0%);
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border-radius: 50%;
  background: var(--splash-sun);
  border: 3px solid var(--cc-surface);
  box-shadow: 0 0 0 2px var(--splash-tangerine), 0 2px 6px rgba(194, 47, 20, .35);
}
/* A thin bar variant for inline resume/progress rows. */
.splash-bar {
  position: relative;
  height: 12px;
  border-radius: var(--splash-r-pill);
  background: var(--splash-track);
  overflow: hidden;
}
.splash-bar__fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--splash-progress, 0%);
  border-radius: var(--splash-r-pill);
  background: var(--splash-grad-sunrise);
}

/* ---------------- sunrise arc (SVG-friendly hooks) ---------------- */
.splash-arc { display: grid; place-items: center; }
.splash-arc svg { max-width: 100%; height: auto; }
.splash-arc .arc-track { stroke: var(--splash-track); }
.splash-arc .arc-fill { stroke: url(#splashSunGrad); }
.splash-arc .arc-horizon { stroke: color-mix(in srgb, var(--splash-tangerine) 40%, var(--cc-separator)); }
.splash-arc .arc-label { font-family: var(--cc-display-font); font-weight: 800; fill: var(--cc-ink); }
.splash-arc .arc-sub { font-family: var(--cc-font); font-weight: 400; fill: var(--cc-ink-secondary); }

/* ---------------- ambient blob backdrop (Today) ---------------- */
.splash-blob {
  position: absolute;
  z-index: -1;
  background: var(--splash-grad-sunrise);
  opacity: .16;
  filter: blur(2px);
  border-radius: 58% 42% 64% 36% / 46% 58% 42% 54%;
  pointer-events: none;
}
.splash-blob--b {
  opacity: .10;
  border-radius: 44% 56% 38% 62% / 58% 40% 60% 42%;
}
html[data-theme='dark'] .splash-blob { opacity: .22; }
html[data-theme='dark'] .splash-blob--b { opacity: .14; }

/* ---------------- gradient lip (hero top edge) ---------------- */
.splash-lip { position: relative; }
.splash-lip::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 6px;
  background: var(--splash-grad-sunrise);
}

/* ---------------- ray-burst reveal (verdict) ---------------- */
.splash-burst { position: absolute; left: 6px; top: 50%; width: 0; height: 0; pointer-events: none; }
.splash-burst i {
  position: absolute;
  left: -1.5px;
  top: -9px;
  width: 3px;
  height: 9px;
  border-radius: 2px;
  background: var(--splash-sun);
  transform: rotate(var(--a, 0deg)) translateY(-22px);
  opacity: 0;
}

/* ============================================================
   MOTION — springy, celebratory, opt-in only.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  /* scale-pop button: hover grows, active presses, arrow nudges */
  .splash-pop { transition: transform .35s var(--splash-spring), box-shadow .35s var(--splash-spring); }
  .splash-pop:hover:not(:disabled) { transform: scale(1.04); }
  .splash-pop:active:not(:disabled) { transform: scale(.95); }
  .splash-pop .splash-arr { transition: transform .3s var(--splash-spring); }
  .splash-pop:hover:not(:disabled) .splash-arr { transform: translateX(3px); }

  /* card lift */
  .splash-lift { transition: transform .35s var(--splash-spring), box-shadow .35s var(--splash-spring), border-color .2s ease; }
  .splash-lift:hover { transform: translateY(-3px) scale(1.015); box-shadow: var(--splash-shadow-pop); }

  /* ambient blob drift */
  .splash-blob { animation: splash-blob-drift 26s ease-in-out infinite alternate; }
  .splash-blob--b { animation-duration: 34s; animation-direction: alternate-reverse; }
  @keyframes splash-blob-drift {
    from { transform: translate(0, 0) rotate(0deg); }
    to { transform: translate(-28px, 18px) rotate(6deg); }
  }

  /* sunrise arc climbs on load; sun disc pops in after */
  .splash-arc .arc-fill {
    stroke-dasharray: var(--arc-len);
    stroke-dashoffset: var(--arc-len);
    animation: splash-arc-climb 1.2s var(--splash-spring) .25s forwards;
  }
  @keyframes splash-arc-climb { to { stroke-dashoffset: var(--arc-rest); } }
  .splash-arc .sun-disc { animation: splash-sun-pop .7s var(--splash-spring) 1.15s backwards; }
  @keyframes splash-sun-pop { from { transform: scale(0); } to { transform: scale(1); } }

  /* sunstrip fill / sun spring on change; sun-head slow glow loop */
  .splash-sunstrip__fill,
  .splash-bar__fill { transition: width .8s var(--splash-spring); }
  .splash-sunstrip__sun {
    transition: left .8s var(--splash-spring);
    animation: splash-sun-glow 2.6s ease-in-out infinite;
  }
  @keyframes splash-sun-glow {
    0%, 100% { box-shadow: 0 0 0 2px var(--splash-tangerine), 0 2px 6px rgba(194, 47, 20, .35); }
    50% { box-shadow: 0 0 0 2px var(--splash-tangerine), 0 0 14px 3px rgba(255, 201, 51, .55); }
  }

  /* inline bar grow-in */
  .splash-bar__fill { transform-origin: left; animation: splash-bar-grow .9s var(--splash-spring) .4s backwards; }
  @keyframes splash-bar-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

  /* the reveal choreography — the one sanctioned burst */
  .splash-reveal .splash-verdict-chip { animation: splash-chip-in .6s var(--splash-spring) .4s backwards; }
  @keyframes splash-chip-in {
    from { transform: translateY(8px) scale(.6); opacity: 0; }
    to { transform: translateY(0) scale(1); opacity: 1; }
  }
  .splash-burst i { animation: splash-ray .8s ease-out .55s backwards; }
  @keyframes splash-ray {
    0% { opacity: 0; transform: rotate(var(--a, 0deg)) translateY(-10px) scaleY(.4); }
    25% { opacity: 1; }
    100% { opacity: 0; transform: rotate(var(--a, 0deg)) translateY(-30px) scaleY(1); }
  }
  .splash-fade-up { animation: splash-fade-up .5s ease-out both; }
  @keyframes splash-fade-up {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
  }
}

/* Reduced motion: the arc renders at its resting fill immediately. */
@media (prefers-reduced-motion: reduce) {
  .splash-arc .arc-fill { stroke-dasharray: var(--arc-len); stroke-dashoffset: var(--arc-rest); }
}

/* ── Splash: neutralise legacy cue-stack cobalt overrides on the gotchas &
   recall focus surfaces (cue-stack.css loads before this file; these win). ── */
body.gx-body .gx-side {
  border-right-color: var(--cc-separator) !important;
}
body.gx-body :is(.gx-brand, .gx-side a, .gx-side button) {
  color: var(--cc-ink) !important;
}
body.gx-body .gx-layout { border-color: var(--cc-separator) !important; }

/* ============================================================
   STUDENT APP COORDINATION
   The route styles keep their functional hooks; this layer makes every
   student surface read as the same warm, optimistic product generation.
   ============================================================ */
body.splash-student {
  --splash-display: var(--cc-display-font, 'Bricolage Grotesque', sans-serif);
  --splash-body: var(--cc-font, 'Atkinson Hyperlegible Next', sans-serif);
  --splash-coach-font: var(--cc-coach-font, 'Besley', serif);
  --splash-data: var(--cc-data-font, 'IBM Plex Mono', monospace);
  min-height: 100vh;
  background: var(--cc-canvas) !important;
  color: var(--cc-ink) !important;
  font-family: var(--splash-body) !important;
}

body.splash-student :is(h1, h2, h3, h4, .t, .mt, .sv, .pvnum, .sub-name, .up-name, .up-amt) {
  font-family: var(--splash-display) !important;
}

body.splash-student :is(.tnum, time, output, .grpcount, .pill, .viva-session-code) {
  font-family: var(--splash-data);
  font-variant-numeric: tabular-nums;
}

body.splash-student :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--cc-primary) !important;
  outline-offset: 3px !important;
}

body.splash-student :is(input:not([type='checkbox']):not([type='radio']), select, textarea) {
  border-color: var(--cc-separator-strong) !important;
  border-radius: var(--splash-r-control) !important;
  background: var(--cc-surface) !important;
  color: var(--cc-ink) !important;
  font-family: var(--splash-body) !important;
}

body.splash-student :is(input, textarea)::placeholder { color: var(--cc-ink-muted); opacity: .82; }

/* Page frames and editorial headers. */
body.splash-student :is(.av-main, .home, .stat-wrap, .dash) {
  width: min(100%, 1120px);
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 48px);
}

body.splash-student :is(.av-main, .home, .stat-wrap, .dash, .ac-wrap) {
  background: transparent !important;
}

body.splash-student :is(.av-main, .home) { padding-top: clamp(30px, 4.5vw, 52px); }
body.splash-student .av-head { max-width: 820px; margin: 0 0 28px; padding: 0; }
body.splash-student :is(.vd-meta, .ac-eyebrow) {
  color: var(--cc-primary) !important;
  font-family: var(--splash-display) !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .09em !important;
  text-transform: uppercase;
}
body.splash-student :is(.av-title, .home > h1, .ac-h1, .greet h1) {
  max-width: 20ch;
  margin: 0 0 10px;
  color: var(--cc-ink) !important;
  font-size: clamp(34px, 4.4vw, 50px) !important;
  font-weight: 800 !important;
  letter-spacing: -.03em !important;
  line-height: 1.04 !important;
}
body.splash-student :is(.av-sub, .lede, .ac-lede) {
  max-width: 66ch;
  color: var(--cc-ink-secondary) !important;
  font-size: 17px;
  line-height: 1.58;
}

/* Hubs become a sunny card atlas instead of a ruled ledger. */
body.splash-student .av-hub {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  border: 0 !important;
  background: transparent !important;
}
body.splash-student .led-row {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px 16px;
  align-content: start;
  min-height: 190px;
  padding: 22px !important;
  overflow: hidden;
  border: 1px solid var(--cc-separator) !important;
  border-radius: var(--splash-r-card) !important;
  background: var(--cc-surface) !important;
  box-shadow: var(--cc-shadow-sm) !important;
  color: var(--cc-ink) !important;
  text-decoration: none !important;
}
body.splash-student .led-row::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: var(--splash-grad-sunrise);
  content: '';
}
body.splash-student .led-fig {
  align-self: start;
  min-width: 44px;
  padding: 6px 10px;
  border: 1px solid var(--splash-sun-chip-line);
  border-radius: var(--splash-r-pill);
  background: var(--splash-sun-chip);
  color: var(--splash-sun-chip-ink) !important;
  font-family: var(--splash-data) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
  text-align: center;
}
body.splash-student .led-name {
  margin: 1px 0 7px;
  color: var(--cc-ink) !important;
  font-size: 21px !important;
  font-weight: 750 !important;
  letter-spacing: -.02em !important;
  line-height: 1.18;
}
body.splash-student .led-desc { margin: 0; color: var(--cc-ink-secondary) !important; font-size: 15px; line-height: 1.52; }
body.splash-student .led-val {
  grid-column: 2;
  align-self: end;
  justify-self: start;
  color: var(--cc-primary) !important;
  font-weight: 700;
}
body.splash-student .led-val .vd-meta {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: var(--splash-r-pill);
  background: var(--cc-primary-soft);
  font-size: 10px;
}

/* Shared surfaces, cards and section headings. */
body.splash-student:not(.splash-exam) :is(
  .card, .panel, .bpanel, .mockcard, .discwrap, .browse, .stat,
  .ac-card, .up-card, .vt-panel, .viva-entry-card, .gx-panel, .fc-panel,
  .collection-dialog, .results-head, .results-list
) {
  border-color: var(--cc-separator) !important;
  border-radius: var(--splash-r-card) !important;
  background: var(--cc-surface) !important;
  box-shadow: var(--cc-shadow-sm) !important;
  color: var(--cc-ink) !important;
}

body.splash-student :is(.homegroup, .ac-sec, section) > :is(.grouphd, .ac-sec-h):first-child,
body.splash-student :is(.homegroup .grouphd, .panel > h2) {
  font-family: var(--splash-display) !important;
}
body.splash-student .grouphd h2,
body.splash-student .panel > h2 {
  color: var(--cc-ink) !important;
  font-size: 21px !important;
  font-weight: 750 !important;
  letter-spacing: -.015em !important;
  text-transform: none !important;
}

body.splash-student :is(.statrow, .tiles) { gap: 14px; }
body.splash-student :is(.stat, .tile) {
  position: relative;
  overflow: hidden;
  padding: 18px 20px !important;
  border-color: var(--cc-separator) !important;
  border-radius: 20px !important;
  background: var(--cc-surface) !important;
  box-shadow: var(--cc-shadow-sm) !important;
}
body.splash-student :is(.stat, .tile)::after {
  position: absolute;
  right: -14px;
  bottom: -18px;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--splash-grad-sunrise);
  opacity: .14;
  content: '';
}
body.splash-student :is(.stat .sv, .tile .tv) {
  color: var(--cc-ink) !important;
  font-family: var(--splash-display) !important;
  font-size: 30px;
  font-weight: 800;
}
body.splash-student :is(.stat .sl, .tile .tl) { color: var(--cc-ink-muted) !important; }

/* Controls: deep AA actions; bright hues remain decoration only. */
body.splash-student.mc-app :is(
  .startbtn, .beginbtn, .fc-primary, .vt-btn--primary, .vd-btn-primary,
  .btn.primary, button[type='submit']:not(.ac-dangerbtn):not(.tnav-menu-item)
) {
  border-color: var(--cc-primary) !important;
  border-radius: var(--splash-r-pill) !important;
  background: var(--cc-primary) !important;
  color: var(--cc-primary-action-ink) !important;
  font-family: var(--splash-display) !important;
  box-shadow: var(--splash-shadow-cta) !important;
}
body.splash-student.mc-app :is(.btn, .vd-btn, .ac-btn, .vt-btn) {
  border-radius: var(--splash-r-pill) !important;
  font-family: var(--splash-display) !important;
}
body.splash-student.mc-app :is(.ac-dangerbtn, .ac-btn.hot, .btn.danger) {
  border-color: #A31432 !important;
  background: transparent !important;
  color: #A31432 !important;
  box-shadow: none !important;
}
body.splash-student.mc-app :is(.ac-dangerbtn, .ac-btn.hot, .btn.danger):hover {
  background: #A31432 !important;
  color: #FFFFFF !important;
}

body.splash-student .seg,
body.splash-student .modepick {
  border-color: var(--cc-separator) !important;
  border-radius: var(--splash-r-control) !important;
  background: var(--cc-surface-subtle) !important;
}
body.splash-student :is(.segopt, .modeopt) { border-radius: 11px !important; color: var(--cc-ink-secondary) !important; }
body.splash-student :is(.segopt.active, .modeopt.active) {
  background: var(--cc-surface) !important;
  color: var(--cc-primary) !important;
  box-shadow: var(--cc-shadow-sm) !important;
}
body.splash-student .chip {
  border-color: var(--cc-separator-strong) !important;
  background: var(--cc-surface) !important;
  color: var(--cc-ink-secondary) !important;
}
body.splash-student .chip[aria-pressed='true'] {
  border-color: color-mix(in srgb, var(--cc-primary) 34%, var(--cc-separator)) !important;
  background: var(--cc-primary-soft) !important;
  color: var(--cc-primary) !important;
}

/* Upgrade/entitlement banners keep a sober espresso field. */
body.splash-student :is(.upsell, .rc-upgrade, .gx-lockbanner) {
  border: 0 !important;
  border-radius: var(--splash-r-card) !important;
  background: #2B1A12 !important;
  box-shadow: var(--splash-shadow-warm) !important;
  color: #FFFFFF !important;
}
body.splash-student :is(.upsell, .rc-upgrade, .gx-lockbanner) :is(b, h2, h3, p, span) { color: inherit !important; }
body.splash-student :is(.upsell, .rc-upgrade, .gx-lockbanner) :is(.upgradebtn, .rc-up-cta, .lb-btn) {
  border-color: #FFC933 !important;
  border-radius: var(--splash-r-pill) !important;
  background: #FFC933 !important;
  color: #3A1500 !important;
  box-shadow: none !important;
  font-family: var(--splash-display) !important;
}

/* Paper chooser, builder and Viva entry cards. */
body.splash-student .cardgrid,
body.splash-student .mockgrid,
body.splash-student .viva-entry { gap: 16px; }
body.splash-student a.card,
body.splash-student .mockcard,
body.splash-student .viva-entry-card { position: relative; overflow: hidden; padding: 22px !important; }
body.splash-student a.card::before,
body.splash-student .mockcard::before,
body.splash-student .viva-entry-card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: var(--splash-grad-sunrise);
  content: '';
}
body.splash-student :is(.card .t, .mockcard .mt, .viva-entry-card h2) {
  color: var(--cc-ink) !important;
  font-size: 21px !important;
  font-weight: 750 !important;
}
body.splash-student :is(.card .s, .mockcard .md, .viva-entry-copy) { color: var(--cc-ink-secondary) !important; }

/* Account keeps destructive operations visually separate from plan actions. */
body.splash-student .ac-wrap { padding-top: clamp(34px, 5vw, 56px); }
body.splash-student .ac-inner { max-width: 900px; }
body.splash-student .ac-sec-h {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--cc-separator) !important;
  color: var(--cc-primary) !important;
  font-family: var(--splash-display) !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  letter-spacing: .08em !important;
}
body.splash-student .ac-card { padding: 26px !important; }
body.splash-student .ac-danger {
  border-color: color-mix(in srgb, #A31432 38%, var(--cc-separator)) !important;
  background: color-mix(in srgb, #A31432 6%, var(--cc-surface)) !important;
}
body.splash-student .up-card.pop {
  border-color: #2B1A12 !important;
  background: #2B1A12 !important;
  color: #FFF8F0 !important;
}
body.splash-student .up-card.pop :is(.up-name, .up-amt) { color: #FFF8F0 !important; }

/* Footers are quiet and consistent across every student route. */
body.splash-student :is(.av-foot, .foot) {
  max-width: 1120px;
  margin: 42px auto 0;
  padding: 22px clamp(16px, 4vw, 48px) 34px;
  border-top: 1px solid var(--cc-separator);
  color: var(--cc-ink-muted) !important;
  font-size: 12px;
  line-height: 1.62;
}
body.splash-student :is(.av-foot, .foot) a { color: var(--cc-ink-secondary) !important; }

/* Dark mode keeps sun energy in the chrome and warm depth in the neutrals. */
html[data-theme='dark'] body.splash-student .up-card.pop { border-color: #5B4031 !important; }

@media (prefers-reduced-motion: no-preference) {
  body.splash-student .splash-pop { transition: transform .35s var(--splash-spring), box-shadow .35s var(--splash-spring) !important; }
  body.splash-student .splash-pop:hover:not(:disabled) { transform: scale(1.04) !important; }
  body.splash-student .splash-pop:active:not(:disabled) { transform: scale(.95) !important; }
  body.splash-student .splash-lift { transition: transform .35s var(--splash-spring), box-shadow .35s var(--splash-spring), border-color .2s ease !important; }
  body.splash-student .splash-lift:hover { transform: translateY(-3px) scale(1.015) !important; box-shadow: var(--splash-shadow-pop) !important; }
  body.splash-student:not(.splash-exam) a.card {
    transition: transform .35s var(--splash-spring), box-shadow .35s var(--splash-spring), border-color .2s ease !important;
  }
  body.splash-student:not(.splash-exam) a.card:hover {
    transform: translateY(-3px) scale(1.015) !important;
    box-shadow: var(--splash-shadow-pop) !important;
  }
}

@media (max-width: 900px) {
  body.splash-student .av-hub { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  body.splash-student :is(.av-main, .home, .stat-wrap, .dash) { padding-inline: 16px; }
  body.splash-student :is(.av-main, .home) { padding-top: 28px; }
  body.splash-student :is(.av-title, .home > h1, .ac-h1, .greet h1) { font-size: clamp(31px, 10vw, 40px) !important; }
  body.splash-student .led-row { min-height: 0; padding: 19px !important; }
  body.splash-student .led-val { grid-column: 1 / -1; }
  body.splash-student :is(.av-foot, .foot) { margin-top: 32px; padding-inline: 16px; }
}

@media (max-width: 430px) {
  body.splash-student .led-row { grid-template-columns: 1fr; }
  body.splash-student .led-fig { justify-self: start; }
  body.splash-student .led-val { grid-column: 1; }
}
