:root {
  --pc-font-display: 'Manrope', 'Segoe UI', sans-serif;
  --pc-bg: #eef5ff;
  --pc-bg-rgb: 238, 245, 255;
  --pc-surface: rgba(255, 255, 255, 0.78);
  --pc-surface-strong: rgba(255, 255, 255, 0.94);
  --pc-surface-muted: rgba(248, 251, 255, 0.82);
  --pc-text: #10233d;
  --pc-text-soft: rgba(16, 35, 61, 0.76);
  --pc-text-muted: rgba(16, 35, 61, 0.54);
  --pc-border: rgba(103, 134, 181, 0.2);
  --pc-border-strong: rgba(83, 122, 186, 0.36);
  --pc-accent: #2c6dff;
  --pc-accent-soft: rgba(44, 109, 255, 0.12);
  --pc-accent-strong: #1b4fd6;
  --pc-success: #0f8a68;
  --pc-warning: #b36b1b;
  --pc-shadow: 0 24px 60px rgba(21, 49, 88, 0.12);
  --pc-shadow-strong: 0 38px 90px rgba(9, 22, 48, 0.24);
  --pc-glow-a: rgba(44, 109, 255, 0.18);
  --pc-glow-b: rgba(123, 211, 255, 0.28);
  --pc-glow-c: rgba(255, 255, 255, 0.84);
}

html[data-wm-mode='dark'] {
  --pc-bg: #081223;
  --pc-bg-rgb: 8, 18, 35;
  --pc-surface: rgba(12, 23, 42, 0.84);
  --pc-surface-strong: rgba(14, 28, 51, 0.94);
  --pc-surface-muted: rgba(17, 31, 56, 0.82);
  --pc-text: #eff5ff;
  --pc-text-soft: rgba(239, 245, 255, 0.76);
  --pc-text-muted: rgba(239, 245, 255, 0.54);
  --pc-border: rgba(174, 202, 255, 0.12);
  --pc-border-strong: rgba(139, 185, 255, 0.24);
  --pc-accent: #5ea3ff;
  --pc-accent-soft: rgba(94, 163, 255, 0.16);
  --pc-accent-strong: #b6d7ff;
  --pc-shadow: 0 26px 80px rgba(0, 0, 0, 0.34);
  --pc-shadow-strong: 0 42px 100px rgba(0, 0, 0, 0.48);
  --pc-glow-a: rgba(94, 163, 255, 0.24);
  --pc-glow-b: rgba(84, 211, 255, 0.2);
  --pc-glow-c: rgba(255, 255, 255, 0.06);
}

body {
  background:
    radial-gradient(circle at 9% 10%, var(--pc-glow-c), transparent 24rem),
    radial-gradient(circle at 88% 12%, var(--pc-glow-a), transparent 28rem),
    radial-gradient(circle at 76% 78%, var(--pc-glow-b), transparent 30rem),
    linear-gradient(180deg, rgba(44, 109, 255, 0.05), transparent 22rem),
    var(--pc-bg);
}

.pc-glow {
  filter: blur(22px);
}

.pc-glow--primary {
  background: radial-gradient(circle, rgba(44, 109, 255, 0.28), transparent 72%);
}

.pc-glow--secondary {
  background: radial-gradient(circle, rgba(123, 211, 255, 0.34), transparent 72%);
}

.pc-glow--accent {
  background: radial-gradient(circle, rgba(255, 255, 255, 0.72), transparent 72%);
}

.pc-header {
  padding-top: 1.25rem;
}

.pc-header__panel,
.pc-theme-region,
.pc-panel,
.pc-banner-card,
.pc-footer__panel,
.pc-home-showcase,
.pc-home-story,
.pc-home-section,
.pc-home-cta,
.pc-home-metric-band {
  border-color: color-mix(in srgb, var(--pc-border-strong) 72%, transparent);
  background: color-mix(in srgb, var(--pc-surface-strong) 94%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.pc-brand__mark {
  border-color: rgba(255, 255, 255, 0.42);
  background: linear-gradient(145deg, #2c6dff 0%, #54d3ff 100%);
  color: #ffffff;
  box-shadow: 0 18px 34px rgba(44, 109, 255, 0.22);
}

.pc-home-hero {
  min-height: min(50rem, calc(100svh - 1rem));
  border-bottom-color: rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(circle at 78% 18%, rgba(84, 211, 255, 0.18), transparent 22rem),
    radial-gradient(circle at 22% 22%, rgba(44, 109, 255, 0.24), transparent 24rem),
    linear-gradient(135deg, #08101f 0%, #11264a 40%, #102e69 100%);
}

.pc-home-hero::before {
  opacity: 0.14;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 0, rgba(255, 255, 255, 0.08) 1px, transparent 1px, transparent 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 100%);
  background-size: 7rem 7rem;
}

.pc-home-hero::after {
  border-color: rgba(184, 216, 255, 0.16);
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.14), transparent 34%),
    linear-gradient(145deg, rgba(44, 109, 255, 0.18), rgba(8, 18, 35, 0.24)),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0 1px, transparent 1px 4.25rem);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.22), 0 35px 120px rgba(3, 12, 32, 0.42);
}

.pc-home-hero__image {
  opacity: 0.12;
  filter: saturate(0.9) contrast(1.06);
}

.pc-home-hero__wash {
  background:
    linear-gradient(90deg, rgba(8, 16, 31, 0.94) 0%, rgba(8, 16, 31, 0.84) 36%, rgba(8, 16, 31, 0.42) 100%),
    radial-gradient(circle at 84% 18%, rgba(84, 211, 255, 0.24), transparent 28%),
    linear-gradient(180deg, rgba(44, 109, 255, 0.08), transparent 40%);
}

.pc-home-hero__wash::before {
  background: radial-gradient(circle, rgba(84, 211, 255, 0.26), transparent 68%);
}

.pc-home-hero__wash::after {
  border-color: rgba(255, 255, 255, 0.14);
}

.pc-home-hero__eyebrow,
.pc-home-hero__news-label,
.pc-home-hero__rail-label,
.pc-eyebrow--light,
.pc-home-meta-pill {
  color: rgba(232, 242, 255, 0.82);
}

.pc-home-hero__summary {
  max-width: 34rem;
  margin: 0;
  color: rgba(232, 242, 255, 0.8);
  font-size: 1rem;
  line-height: 1.8;
}

.pc-home-hero__news-label {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.32rem 0.82rem;
  border: 1px solid rgba(184, 216, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.pc-home-hero__programs,
.pc-home-hero__news {
  border-color: rgba(184, 216, 255, 0.16);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
  box-shadow: 0 28px 70px rgba(1, 10, 25, 0.28);
}

.pc-home-program-card {
  border-color: rgba(184, 216, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
}

.pc-home-program-card:hover {
  border-color: rgba(184, 216, 255, 0.36);
  background: rgba(255, 255, 255, 0.1);
}

.pc-home-spotlight {
  background: #081426;
  border-color: rgba(184, 216, 255, 0.16);
}

.pc-home-spotlight__overlay {
  background:
    linear-gradient(180deg, rgba(8, 16, 31, 0.16), rgba(8, 16, 31, 0.88)),
    linear-gradient(135deg, rgba(44, 109, 255, 0.18), transparent 46%);
}

.pc-home-section--contrast,
.pc-home-cta {
  border-color: rgba(184, 216, 255, 0.12);
  background:
    radial-gradient(circle at 84% 12%, rgba(84, 211, 255, 0.18), transparent 18rem),
    linear-gradient(135deg, #0a1730 0%, #10244b 100%);
}

.pc-home-section--contrast .pc-card,
.pc-home-section--contrast .pc-detail-item {
  border-color: rgba(184, 216, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
}

.pc-home-story__aside {
  background: color-mix(in srgb, var(--pc-surface-muted) 98%, white);
}

.pc-home-direction::after,
.pc-home-mini-card__link,
.pc-prose a,
.pc-theme-region__content a,
.pc-footer__controls .pc-control-chip .pc-icon,
.pc-footer__controls .pc-color-picker__summary .pc-icon {
  color: var(--pc-accent);
}

.pc-button,
.pc-inline-button,
.wm-template-button,
.wm-newsletter-widget__button {
  background: linear-gradient(135deg, #2c6dff 0%, #54d3ff 100%);
  color: #ffffff !important;
  box-shadow: 0 18px 40px rgba(44, 109, 255, 0.24);
}

.pc-button:hover,
.pc-inline-button:hover,
.wm-template-button:hover,
.wm-newsletter-widget__button:hover {
  box-shadow: 0 22px 48px rgba(44, 109, 255, 0.3);
}

.pc-button--secondary {
  background: color-mix(in srgb, var(--pc-surface-muted) 96%, white);
}

.pc-button--ghost,
.pc-inline-button--light {
  border-color: rgba(184, 216, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  color: #f3f8ff !important;
}

.pc-hero::before {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.38), transparent 52%),
    radial-gradient(circle at top right, rgba(44, 109, 255, 0.12), transparent 44%);
}

.pc-hero__glass {
  box-shadow: 0 18px 44px rgba(28, 80, 178, 0.14);
}

.pc-footer__nav--legal {
  padding-top: 0;
}

.pc-footer__nav--legal .pc-footer-menu {
  grid-template-columns: repeat(auto-fit, minmax(10rem, max-content));
}

.pc-footer__bottom {
  border-top-color: color-mix(in srgb, var(--pc-border-strong) 68%, transparent);
}

.pc-footer__legal {
  white-space: normal;
}

[data-reveal] {
  transition-duration: 720ms;
}

:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--pc-accent) 62%, white);
  outline-offset: 3px;
}

@media (max-width: 959px) {
  .pc-home-hero::after {
    opacity: 0.18;
  }
}

@media (max-width: 767px) {
  .pc-home-hero__summary {
    font-size: 0.96rem;
    line-height: 1.7;
  }

  .pc-footer__nav--legal .pc-footer-menu {
    grid-template-columns: 1fr;
  }
}
