/* THEME-001: the selected Midnight blue palette, scoped to the public page.
   Keep the established layout, motion and original poster/logo pixels. */
.platform-page {
  --ink: #0b1228;
  --panel: #121d39;
  --orange: #3347e8;
  --muted: #aebbe0;
  --line: #2a3a60;
  --light-ink: #0b1228;
  --midnight-blue: #3347e8;
  --midnight-hover: #2639cb;
  --midnight-soft: #f5f7fc;
  --midnight-border: #d9dfed;
  --midnight-copy: #4a5670;
  --midnight-focus: #7086ff;
  background: var(--ink);
  color: var(--light-ink);
}

.platform-page ::selection {
  background: var(--midnight-blue);
  color: #fff;
}

.platform-page :focus-visible {
  outline-color: var(--midnight-focus);
}

.platform-page .section-dark {
  background: var(--ink);
  color: var(--midnight-soft);
}

.platform-page .section-light {
  background: var(--midnight-soft);
  color: var(--light-ink);
}

.platform-page .skip-link {
  background: #fff;
  color: var(--ink);
}

.platform-page .page-notices {
  background: #edf2ff;
  border-color: #b1bfef;
  color: #172d70;
  box-shadow: 0 14px 45px #07133126;
}

/* HEADER-001: a floating white capsule with equally balanced side columns. */
.platform-page .site-header {
  padding: 20px 24px;
  background: transparent;
  box-shadow: none;
}

.platform-page .navigation,
.platform-page .is-compact .navigation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr);
  gap: 24px;
  max-width: 1150px;
  min-height: 88px;
  padding: 15px 26px;
  border-color: var(--midnight-border);
  border-radius: 48px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 10px 35px #030a2426;
}

.platform-page .site-header.is-compact {
  padding: 12px 24px;
  background: transparent;
  box-shadow: none;
}

.platform-page .is-compact .navigation {
  min-height: 76px;
  padding: 10px 24px;
  background: #fffffffa;
  box-shadow: 0 12px 40px #07133126;
}

.platform-page .navigation .brand-logo {
  justify-self: start;
  gap: 12px;
  min-width: 0;
  color: var(--ink);
}

.platform-page .navigation .brand-logo > img {
  width: 64px;
  height: 56px;
  flex-shrink: 0;
}

.platform-page .navigation .brand-wordmark {
  display: block;
  max-width: none;
  overflow: visible;
  opacity: 1;
  font-size: 20px;
  line-height: 1.1;
  letter-spacing: -.045em;
  font-weight: 650;
  white-space: nowrap;
}

.platform-page .navigation .nav-links {
  margin-left: 0;
  gap: 20px;
  font-size: 15px;
  font-weight: 500;
}

.platform-page .navigation .nav-actions {
  justify-self: end;
  margin-left: 0;
}

.platform-page .is-compact .brand-logo > img {
  width: 60px;
  height: 52px;
}

.platform-page .nav-links > a:hover,
.platform-page .nav-dropdown > summary:hover {
  color: var(--midnight-blue);
}

.platform-page .dropdown-panel {
  background: #fff;
  border-color: var(--midnight-border);
  box-shadow: 0 20px 50px #07133126;
}

.platform-page .dropdown-panel > a:hover {
  background: #edf2ff;
}

.platform-page .dropdown-panel > a > span {
  color: var(--midnight-copy);
}

.platform-page .nav-contact,
.platform-page .nav-menu-toggle {
  background: #fff;
  border-color: #b9c4da;
  color: var(--ink);
}

.platform-page .nav-contact:hover,
.platform-page .nav-menu-toggle:hover,
.platform-page .nav-menu-toggle[aria-expanded="true"] {
  background: #edf2ff;
  border-color: var(--midnight-blue);
  color: var(--midnight-blue);
}

.platform-page .nav-signup {
  background: var(--midnight-blue);
  color: #fff;
}

.platform-page .nav-signup:hover {
  background: var(--midnight-hover);
}

/* Existing beam and ambient animations retain their original geometry. */
.platform-page .hero {
  background: var(--ink);
  color: #fff;
}

.platform-page .announcement {
  background: #15234499;
  border-color: #758dc033;
  color: #d2dcf4;
  box-shadow: 0 4px 16px #050c2426;
}

.platform-page .announcement:hover {
  border-color: #879dff99;
  color: #fff;
}

.platform-page .announcement-spark {
  color: #fa080a;
}

.platform-page .hero-copy > p,
.platform-page .hero-demo {
  color: #cdd6ef;
}

.platform-page .hero-demo:hover {
  color: #fff;
}

.platform-page .hero-start {
  background: var(--midnight-blue);
  color: #fff;
  box-shadow: 0 4px 30px #3347e838;
}

.platform-page .hero-start:hover {
  background: var(--midnight-hover);
  box-shadow: 0 10px 35px #526bff52;
}

.platform-page .hero-beam {
  background: radial-gradient(ellipse at 68% 40%, #5878ff80 0, #3347e845 14%, #1c2e792b 30%, transparent 62%);
}

.platform-page .hero-beam::after {
  background: linear-gradient(90deg, transparent, #3347e830 35%, #6f8fff55 65%, #aec5ff99 84%, transparent);
}

.platform-page .hero-ambient,
.platform-page .event-hero .hero-ambient {
  background: radial-gradient(ellipse, #3347e82b, transparent 68%);
}

/* Published posters remain unfiltered on soft-white surfaces. */
.platform-page .hero-event-card {
  background: #fff;
  border-color: #d9dfed;
  box-shadow: 0 25px 65px #03081955, inset 0 1px 0 #fff;
  color: var(--ink);
}

.platform-page .hero-event-card:hover,
.platform-page .hero-event-card:focus-visible {
  border-color: #8295ff;
  box-shadow: 0 30px 70px #03081966, 0 0 30px #526bff26;
}

.platform-page .hero-event-card:focus-visible {
  outline-color: var(--midnight-focus);
}

.platform-page .hero-event-poster {
  background: var(--midnight-soft);
  border-color: var(--midnight-border);
}

.platform-page .hero-event-copy time,
.platform-page .hero-event-open {
  color: var(--midnight-blue);
}

.platform-page .hero-event-copy h2 {
  color: var(--ink);
}

.platform-page .hero-event-copy p {
  color: var(--midnight-copy);
}

.platform-page .hero-event-open {
  border-color: var(--midnight-border);
}

/* Published-event catalog and its search, empty and pagination states. */
.platform-page .catalog-eyebrow,
.platform-page .event-date {
  color: var(--midnight-blue);
}

.platform-page .event-search label,
.platform-page .event-results,
.platform-page .event-description,
.platform-page .event-venue,
.platform-page .event-pagination {
  color: var(--midnight-copy);
}

.platform-page .event-search > div {
  background: #fff;
  border-color: #b9c4da;
}

.platform-page .event-search > div:focus-within {
  border-color: var(--midnight-blue);
  box-shadow: 0 0 0 4px #3347e81a;
}

.platform-page .event-search input {
  color: var(--ink);
}

.platform-page .event-search input::placeholder {
  color: #52617d;
}

.platform-page .event-search button {
  background: var(--midnight-blue);
  color: #fff;
}

.platform-page .event-search button:hover {
  background: var(--midnight-hover);
}

.platform-page .event-results a,
.platform-page .event-read {
  color: var(--midnight-blue);
}

.platform-page .event-card {
  background: #fff;
  border-color: var(--midnight-border);
}

.platform-page .event-card:hover {
  border-color: #91a2e8;
  box-shadow: 0 18px 42px #1a347512;
}

.platform-page .event-card:focus-within {
  border-color: var(--midnight-blue);
}

.platform-page .event-poster {
  background: #edf1fa;
  border-color: var(--midnight-border);
}

.platform-page .event-card:only-child .event-poster {
  border-color: var(--midnight-border);
}

.platform-page .event-card h3 a:hover,
.platform-page .event-read:hover {
  color: var(--midnight-hover);
}

.platform-page .event-read {
  border-color: #b9c7ef;
}

.platform-page .event-empty {
  background: radial-gradient(ellipse at 50% 10%, #e5ebff, transparent 65%), #fff;
  border-color: var(--midnight-border);
}

.platform-page .empty-symbol {
  background: #fff;
  border-color: #c4cef2;
  color: var(--midnight-blue);
  box-shadow: 0 12px 35px #3347e812;
}

.platform-page .event-empty p {
  color: var(--midnight-copy);
}

.platform-page .event-pagination a {
  background: #fff;
  border-color: #bbc7e5;
  color: var(--midnight-blue);
}

.platform-page .event-pagination a:hover {
  background: #eaf0ff;
}

/* Globe rendering and fallback artwork are handled separately. */
.platform-page .network .section-description {
  color: #bac7e6;
}

.platform-page .globe-scene::before {
  background: radial-gradient(ellipse, #3347e824, transparent 65%);
}

.platform-page .globe-orbit {
  border-color: #728dff33;
}

.platform-page .network-legend {
  color: #e4ecff;
  text-shadow: 0 1px 8px #02091b;
}

.platform-page .network-legend > small {
  color: #b6c4e4;
}

.platform-page .legend-point {
  background: #9eb4ff;
  box-shadow: 0 0 9px #7086ff99;
}

.platform-page .legend-point.secondary {
  background: #fa080a;
  box-shadow: none;
}

.platform-page .motion-toggle {
  background: #142240ee;
  border-color: #50648f;
  color: #d7e2fc;
}

.platform-page .motion-toggle:hover {
  border-color: #94a9ff;
  color: #fff;
}

/* Editorial content uses the same blue, navy and light-surface palette. */
.platform-page .segmented-tabs {
  background: #e6ecf9;
}

.platform-page .segmented-tabs > a {
  color: var(--midnight-copy);
}

.platform-page .segmented-tabs > a:hover {
  color: var(--midnight-blue);
}

.platform-page .segmented-tabs > a[aria-selected="true"] {
  background: var(--midnight-blue);
  color: #fff;
  box-shadow: 0 3px 8px #3347e81c;
}

.platform-page .overview-art {
  background: var(--ink);
}

.platform-page .overview-art::after {
  background: linear-gradient(transparent, #0b1228e0);
}

.platform-page .small-caps {
  color: #d4e0ff;
}

.platform-page .overview-copy p,
.platform-page .overview-steps span {
  color: var(--midnight-copy);
}

.platform-page .overview-copy p.lead {
  color: #233451;
}

.platform-page .capability,
.platform-page .capability.lime,
.platform-page .capability.pink,
.platform-page .capability.blue,
.platform-page .capability.amber {
  background: #e5ebfc;
  color: #263c80;
}

.platform-page .overview-link {
  border-color: #b9c7ef;
  color: var(--midnight-blue);
}

.platform-page .overview-link:hover {
  color: var(--midnight-hover);
}

.platform-page .overview-steps > li::before {
  border-color: #b9c7ef;
  color: var(--midnight-blue);
}

.platform-page .faq-item {
  background: var(--panel);
  border-color: #2a3a60;
}

.platform-page .faq-item > summary {
  color: #edf2ff;
}

.platform-page .faq-item[open] {
  background: #172447;
  border-color: #5269aa;
}

.platform-page .faq-answer {
  color: #c3cfeb;
}

.platform-page .contact-panel {
  background: var(--ink);
}

.platform-page .contact-panel::before {
  background: linear-gradient(#0b1228 0%, #0b1228 31%, #142249 52%, #233c8e 66%, #4968de 78%, #90aaff 86%, #dce7ff 92%, #f5f7fc 99%);
}

.platform-page .contact-copy p {
  color: #c3cfeb;
}

.platform-page .contact-button {
  background: var(--midnight-blue);
  color: #fff;
  box-shadow: 0 8px 30px #050e373d;
}

.platform-page .contact-button:hover {
  background: var(--midnight-hover);
  box-shadow: 0 12px 32px #050e3755;
}

.platform-page .contact-horizon {
  background: var(--ink);
  box-shadow: 0 50px 50px #496dff55, 0 90px 80px #728dff38;
}

.platform-page .site-footer {
  background: var(--ink);
  border-color: #26375a;
  color: #e4ecff;
}

.platform-page .footer-brand > p,
.platform-page .footer-column > a,
.platform-page .footer-bottom {
  color: #b7c4e2;
}

.platform-page .footer-column h3 {
  color: #f5f7fc;
}

.platform-page .footer-column > a:hover,
.platform-page .footer-bottom > a:hover {
  color: #fff;
}

.platform-page .footer-bottom > a {
  color: #d5e0fa;
}

/* Reuse decorative artwork in the selected palette; actual event posters and
   both TN logo assets retain their original colors. */
.platform-page .event-hero-stage:has(.hero-calendar) {
  mix-blend-mode: screen;
}

.platform-page .hero-calendar img,
.platform-page .overview-art > img {
  filter: hue-rotate(215deg);
  mix-blend-mode: screen;
}

.platform-page .globe-poster {
  filter: hue-rotate(200deg);
}

@media (min-width: 961px) and (max-width: 1100px) {
  .platform-page .navigation,
  .platform-page .is-compact .navigation {
    gap: 16px;
    padding-inline: 20px;
  }

  .platform-page .navigation .brand-logo {
    gap: 9px;
  }

  .platform-page .navigation .brand-wordmark {
    font-size: 18px;
  }

  .platform-page .navigation .nav-links {
    gap: 16px;
    font-size: 14px;
  }
}

@media (max-width: 960px) {
  .platform-page .site-header,
  .platform-page .site-header.is-compact {
    padding: 12px 20px;
  }

  .platform-page .navigation,
  .platform-page .is-compact .navigation {
    display: flex;
    gap: 14px;
    min-height: 76px;
    padding: 12px 18px;
    background: #fffffffa;
    border-color: var(--midnight-border);
  }

  .platform-page .navigation .brand-logo > img {
    width: 58px;
    height: 50px;
  }

  .platform-page .navigation .brand-wordmark {
    font-size: 19px;
  }

  .platform-page .navigation .nav-actions {
    margin-left: auto;
  }

  .js .platform-page .nav-links {
    background: #fff;
    border-color: var(--midnight-border);
    box-shadow: 0 16px 40px #07133126;
    color: var(--ink);
  }

  .js .platform-page .nav-links.is-open {
    gap: 5px;
  }

  .platform-page .nav-links > a {
    font-size: 15px;
  }

  .platform-page .dropdown-panel {
    background: var(--midnight-soft);
    border-color: var(--midnight-border);
    box-shadow: none;
  }
}

@media (max-width: 600px) {
  .platform-page .site-header,
  .platform-page .site-header.is-compact {
    padding: 10px 12px;
  }

  .platform-page .navigation,
  .platform-page .is-compact .navigation {
    min-height: 70px;
    padding: 10px 12px;
    gap: 10px;
  }

  .platform-page .navigation .brand-logo {
    gap: 8px;
  }

  .platform-page .navigation .brand-logo > img {
    width: 52px;
    height: 46px;
  }

  .platform-page .navigation .brand-wordmark {
    font-size: 16px;
  }

  .platform-page .navigation .brand-wordmark > span {
    display: block;
  }

  .platform-page .navigation .nav-actions {
    gap: 8px;
  }

  .platform-page .nav-menu-toggle {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
  }

  .platform-page .nav-signup,
  .platform-page .is-compact .nav-signup {
    padding: 11px 12px;
    font-size: 11px;
  }

  .platform-page .nav-signup > .icon {
    display: none;
  }
}

@media (max-width: 360px) {
  .platform-page .navigation,
  .platform-page .is-compact .navigation {
    padding-inline: 10px;
    gap: 8px;
  }

  .platform-page .navigation .brand-logo > img {
    width: 46px;
    height: 40px;
  }

  .platform-page .navigation .brand-wordmark {
    font-size: 14px;
  }

  .platform-page .nav-signup,
  .platform-page .is-compact .nav-signup {
    font-size: 10px;
    padding-inline: 10px;
  }
}
