@import '../../shared/css/fonts.css?v=20260920-032225';

:root {
  --academy-ink:#091416;
  --academy-panel:#102125;
  --academy-panel-soft:#163039;
  --academy-paper:#eef2e7;
  --academy-muted:#a9c0bb;
  --academy-lime:#d8f36b;
  --academy-coral:#ff775f;
  --academy-cyan:#75d6d2;
  --academy-line:rgba(216,243,107,.35);
}

.AcademyPage {
  background:var(--academy-ink);
  color:var(--academy-paper);
}

.AcademyPage .PageShellHeader { color:var(--academy-lime); }

.AcademyLessonPage .LessonCatalogueLink::before,
.AcademyLessonPage .LessonPreviousLink::before { content:'\2190'; margin-right:8px; }
.AcademyLessonPage .LessonNextLink::after { content:'\2192'; margin-left:8px; }
.AcademyPage .PageShellDivider { border-color:var(--academy-line); }
.AcademyPage .PageShellFooter { color:var(--academy-lime); }
.AcademyPage .PageShellFooterActions { background:var(--academy-panel); border-color:var(--academy-line); }
.AcademyPage .PageShellFooterActions::before,
.AcademyPage .PageShellFooterActions::after,
.AcademyPage .PageShellPrivacyLink::before,
.AcademyPage .PageShellPrivacyLink::after { border-color:var(--academy-line); }

.AcademyProgressSummary {
  margin:14px 0 0;
  color:var(--academy-cyan);
  font-size:.82rem;
  letter-spacing:.04em;
}

.AcademyContinueLink {
  display:grid;
  gap:5px;
  width:max-content;
  margin-top:14px;
  color:var(--academy-lime);
  text-decoration:none;
}

.AcademyContinueLink span {
  color:var(--academy-muted);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.AcademyContinueLink strong {
  font-weight:400;
}

.AcademyContinueLink:hover strong,
.AcademyContinueLink:focus-visible strong { color:var(--academy-paper); }

.AcademyContinueLink:focus-visible { outline:2px solid var(--academy-coral); outline-offset:4px; }

.DomainHeader .AcademyProgressSummary {
  padding-top:14px;
  border-top:1px solid var(--academy-line);
}

.LessonStoredScore {
  margin:8px 0 0;
  font-size:.76rem;
  text-align:right;
}

.AcademyMain {
  width:min(1180px, calc(100% - 40px));
  margin:0 auto;
  padding:36px 0 96px;
  font-family:'Exo', sans-serif;
}

.AcademyHero {
  position:relative;
  min-height:470px;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(360px, .95fr);
  align-items:center;
  gap:44px;
  overflow:hidden;
  padding:66px clamp(24px, 6vw, 82px);
  border:1px solid var(--academy-line);
  background:linear-gradient(118deg, #12282b 0%, #0a181b 62%, #142d2a 100%);
}

.AcademyHero::before {
  content:'';
  position:absolute;
  inset:0;
  opacity:.22;
  background-image:linear-gradient(rgba(117,214,210,.17) 1px, transparent 1px), linear-gradient(90deg, rgba(117,214,210,.17) 1px, transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(90deg, black, transparent 75%);
}

.AcademyHeroCopy, .AcademyHubMark { position:relative; z-index:1; }
.AcademyKicker, .AcademyOverline, .AcademyPathLabel {
  margin:0 0 14px;
  color:var(--academy-lime);
  font-size:.78rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.AcademyHero h1 {
  max-width:680px;
  margin:0;
  color:var(--academy-paper);
  font-family:'Orbitron', sans-serif;
  font-size:clamp(2.4rem, 5vw, 5rem);
  font-weight:400;
  line-height:1.08;
}

.AcademyHeroLead { max-width:570px; margin:25px 0 0; color:var(--academy-muted); font-size:1.15rem; line-height:1.65; }
.AcademyHeroActions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:34px; }
.AcademyPrimaryAction, .AcademyTextAction { display:inline-flex; align-items:center; gap:14px; color:var(--academy-ink); text-decoration:none; font-weight:700; }
.AcademyPrimaryAction { padding:14px 18px; border:1px solid var(--academy-lime); background:var(--academy-lime); }
.AcademyPrimaryAction:hover, .AcademyPrimaryAction:focus-visible { background:#efffa5; }
.AcademyTextAction { color:var(--academy-paper); }
.AcademyTextAction:hover, .AcademyTextAction:focus-visible { color:var(--academy-lime); }
.AcademyPrimaryAction:focus-visible, .AcademyTextAction:focus-visible, .AcademyPathCard a:focus-visible, .AcademyConceptCard:focus-visible { outline:2px solid var(--academy-coral); outline-offset:4px; }

.AcademyHubMark { width:min(100%, 390px); aspect-ratio:1; display:grid; place-items:center; align-content:center; gap:18px; margin:auto; border:1px solid var(--academy-line); border-radius:50%; background:radial-gradient(circle, rgba(216,243,107,.14), transparent 28%), rgba(9,20,22,.65); color:var(--academy-cyan); font-family:'Orbitron', sans-serif; font-size:.75rem; letter-spacing:.16em; }
.AcademyHubMark strong { color:var(--academy-lime); font-size:1.35rem; font-weight:400; }
.AcademySignalCore { position:absolute; top:50%; left:50%; display:grid; place-items:center; width:92px; aspect-ratio:1; transform:translate(-50%, -50%); border:1px solid var(--academy-lime); border-radius:50%; color:var(--academy-lime); font-family:'Orbitron', sans-serif; font-size:.8rem; }
.AcademySignalOrbit { position:absolute; inset:15%; border:1px dashed rgba(117,214,210,.5); border-radius:50%; transform:rotate(-26deg); }
.AcademySignalOrbitTwo { inset:28% 5%; transform:rotate(58deg); }
.AcademySignalNode { position:absolute; display:grid; place-items:center; width:62px; aspect-ratio:1; border:1px solid var(--academy-cyan); border-radius:50%; background:var(--academy-panel); color:var(--academy-cyan); font-size:.7rem; }
.AcademySignalNodeOne { top:8%; left:42%; }
.AcademySignalNodeTwo { top:43%; right:1%; }
.AcademySignalNodeThree { bottom:8%; left:39%; }
.AcademySignalNodeFour { top:42%; left:1%; }

.AcademySection { padding:96px 0 0; }
.AcademySectionHeading { max-width:680px; }
.AcademySectionHeading h2, .AcademyLab h2 { margin:0; color:var(--academy-paper); font-family:'Orbitron', sans-serif; font-size:clamp(1.65rem, 3vw, 2.75rem); font-weight:400; line-height:1.2; }
.AcademySectionHeading p:not(.AcademyOverline), .AcademyLabIntro > p:not(.AcademyOverline) { color:var(--academy-muted); line-height:1.6; }
.AcademyPathControls { display:flex; flex-wrap:wrap; gap:8px; margin:30px 0 18px; }
.AcademyFilterButton { padding:9px 13px; border:1px solid rgba(117,214,210,.35); background:transparent; color:var(--academy-muted); font:inherit; cursor:pointer; }
.AcademyFilterButton:hover, .AcademyFilterButton:focus-visible, .AcademyFilterButton.is-active { border-color:var(--academy-lime); color:var(--academy-lime); }
.AcademyFilterButton:focus-visible { outline:2px solid var(--academy-coral); outline-offset:3px; }
.AcademyPathGrid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px; }
.AcademyPathCard { min-width:0; min-height:290px; display:flex; flex-direction:column; padding:25px 22px; border-top:2px solid var(--academy-coral); background:var(--academy-panel); transition:transform .2s ease, background .2s ease; }
.AcademyPathCard:hover { transform:translateY(-5px); background:var(--academy-panel-soft); }
.AcademyPathCard.is-hidden { display:none; }
.AcademyPathNumber { color:var(--academy-coral); font-family:'Orbitron', sans-serif; font-size:1.8rem; }
.AcademyPathCard h3 { margin:12px 0 10px; font-size:1.2rem; font-weight:400; line-height:1.35; }
.AcademyPathCard p:not(.AcademyPathLabel) { margin:0; color:var(--academy-muted); font-size:.95rem; line-height:1.55; }
.AcademyDomainProgress { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.AcademyDomainProgress span { padding:5px 7px; border:1px solid rgba(117,214,210,.35); color:var(--academy-cyan); font-size:.72rem; line-height:1.2; }
.AcademyPathCard a { margin-top:auto; padding-top:26px; color:var(--academy-lime); text-decoration:none; font-size:.9rem; }
.AcademyPathCard .AcademyContinueLink { width:auto; max-width:100%; margin-top:14px; padding-top:0; font-size:.9rem; }

.AcademySectionHeadingSplit { display:flex; justify-content:space-between; gap:40px; align-items:end; max-width:none; }
.AcademySectionHeadingSplit > p { max-width:340px; margin:0; }
.AcademyConceptGrid { display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-top:30px; }
.AcademyConceptCard { min-height:145px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:21px; border:1px solid rgba(117,214,210,.3); background:transparent; color:var(--academy-paper); text-align:left; font:inherit; cursor:pointer; }
.AcademyConceptCard:hover, .AcademyConceptCard.is-selected { border-color:var(--academy-lime); background:rgba(216,243,107,.07); }
.AcademyConceptCard strong { font-size:1.15rem; font-weight:400; }
.AcademyConceptCard span:last-child { color:var(--academy-muted); font-size:.88rem; }
.AcademyConceptIcon { color:var(--academy-coral); font-family:'Orbitron', sans-serif; font-size:.75rem; }
.AcademyConceptDetail { max-width:730px; margin-top:12px; padding:28px; border-left:3px solid var(--academy-lime); background:var(--academy-panel); }
.AcademyConceptDetail h3 { margin:0 0 10px; font-family:'Orbitron', sans-serif; font-size:1.5rem; font-weight:400; }
.AcademyConceptDetail p:not(.AcademyOverline) { margin:0; color:var(--academy-muted); line-height:1.65; }
.AcademyConceptExample { display:block; margin-top:18px; color:var(--academy-cyan); font-size:.9rem; }

.AcademyLab { display:grid; grid-template-columns:minmax(240px, .8fr) minmax(0, 1.2fr); gap:50px; align-items:center; padding-bottom:40px; }
.AcademyLabIntro .AcademyPrimaryAction { margin-top:22px; border:0; font:inherit; cursor:pointer; }
.AcademyLabStatus { min-height:1.4em; margin:16px 0 0; color:var(--academy-cyan) !important; font-size:.9rem; }
.AcademyRoute { padding:40px 10px 0; }
.AcademyRouteLine { position:relative; height:2px; background:var(--academy-line); }
.AcademyPacketDot { position:absolute; top:50%; left:0; width:16px; height:16px; border:3px solid var(--academy-ink); border-radius:50%; background:var(--academy-coral); transform:translate(-50%, -50%); box-shadow:0 0 0 5px rgba(255,119,95,.18); }
.AcademyPacketDot.is-moving { animation:packet-travel 3.4s ease-in-out; }
.AcademyRouteStops { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-top:21px; }
.AcademyRouteStop { display:grid; gap:8px; color:var(--academy-muted); }
.AcademyRouteStop strong { color:var(--academy-paper); font-size:.95rem; font-weight:400; }
.AcademyRouteStop small { line-height:1.4; }
.AcademyRouteMarker { width:max-content; padding:5px 7px; border:1px solid var(--academy-cyan); color:var(--academy-cyan); font-family:'Orbitron', sans-serif; font-size:.65rem; }
.AcademyRouteStop.is-current .AcademyRouteMarker { border-color:var(--academy-lime); color:var(--academy-lime); }

@keyframes packet-travel { 0% { left:0; } 25% { left:33.33%; } 50% { left:66.66%; } 75%, 100% { left:100%; } }

@media (max-width:900px) {
  .AcademyHero { grid-template-columns:1fr; min-height:0; }
  .AcademyHubMark { width:min(100%, 360px); }
  .AcademyPathGrid { grid-template-columns:repeat(2, 1fr); }
  .AcademyLab { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  .AcademyMain { width:min(100% - 24px, 1180px); padding-top:18px; }
  .AcademyHero { padding:42px 22px; }
  .AcademyHero h1 { font-size:2.25rem; }
  .AcademyHeroLead { font-size:1rem; }
  .AcademySection { padding-top:70px; }
  .AcademyPathGrid, .AcademyConceptGrid { grid-template-columns:1fr; }
  .AcademySectionHeadingSplit { display:block; }
  .AcademySectionHeadingSplit > p { margin-top:18px; }
  .AcademyHubMark { width:min(100%, 300px); }
  .AcademyRoute { padding-left:0; padding-right:0; overflow-x:auto; }
  .AcademyRouteLine { min-width:560px; }
  .AcademyRouteStops { min-width:560px; }
}
