/* Academy landing increment / Codex5478. Load AFTER landing.css.
   Native system typography; no downloaded, bundled or remotely loaded fonts.
   Every selector is landing-scoped. Existing content, focus and controls survive. */
.academy-landing {
  --ea-type-body: clamp(1rem, .96rem + .22vw, 1.125rem);
  --ea-type-lead: clamp(1.125rem, 1.04rem + .4vw, 1.375rem);
  --ea-type-title: clamp(2.35rem, 1.6rem + 3.4vw, 4.5rem);
  --ea-type-section: clamp(1.85rem, 1.35rem + 1.8vw, 3rem);
  --ea-native: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --ea-latin-display: Georgia, "Times New Roman", serif;
  --ea-shadow-contact: 0 3px 0 #122e5214;
  --ea-shadow-raised: 0 18px 32px -22px #122e5266;
  --ea-shadow-object: 0 38px 42px -25px #122e5280;
  font-family: var(--ea-native);
  font-size: var(--ea-type-body);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: normal;
  background: radial-gradient(ellipse at 8% 10%, #dceef9 0, transparent 34%), #f6f5ee;
}

.academy-landing main { max-inline-size: 80rem; }
.academy-landing :is(h1, h2, h3) {
  font-family: var(--ea-native);
  font-weight: 700;
  letter-spacing: 0;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.academy-landing .hero-copy h1 {
  font-size: var(--ea-type-title);
  line-height: 1.22;
  max-inline-size: 15ch;
  margin-block-end: 1.25rem;
}
.academy-landing :is(.section-intro, .account-shell) h2 {
  font-size: var(--ea-type-section);
  line-height: 1.3;
  max-inline-size: 22ch;
  margin-block-end: 1rem;
}
.academy-landing :is(.hero-copy, .section-intro, .account-shell) > p {
  max-inline-size: 57ch;
  text-wrap: pretty;
}
.academy-landing .hero-copy .lead {
  font-size: var(--ea-type-lead);
  line-height: 1.7;
  max-inline-size: 39ch;
}
.academy-landing .eyebrow {
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.6;
  margin-block-end: 1rem;
}
.academy-landing :is(.hero-note, .course-state, .course-kind, .world-caption) {
  font-size: .875rem;
  line-height: 1.65;
}
.academy-landing .brand-text > [lang="en"] {
  font-family: var(--ea-native);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -.015em;
}
.academy-landing [lang="en"][dir="ltr"] { unicode-bidi: isolate; }
.academy-landing .site-header { gap: 1.25rem; }
.academy-landing .site-header nav { flex-wrap: wrap; }
.academy-landing :is(.hero-copy, .hero-world, .method-planes > li, .account-shell > div) {
  min-inline-size: 0;
}

/* One room: rear light well, floor, letter objects, then the greeting foreground. */
.academy-landing .landing-hero {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  padding-block: clamp(2rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5rem);
}
.academy-landing .hero-world {
  block-size: clamp(24rem, 34vw, 30rem);
  perspective: 1100px;
  perspective-origin: 50% 40%;
  transform-style: preserve-3d;
  isolation: auto;
  z-index: 0;
}
.academy-landing .hero-world::before {
  content: "";
  position: absolute;
  inset-block: 4% 13%;
  inset-inline: 3%;
  border-radius: 12rem 12rem 2rem 2rem;
  background: linear-gradient(145deg, #183c61, #122e52 70%);
  box-shadow: inset 0 1px 0 #ffffff66, 0 26px 50px -35px #122e5280;
  transform: translateZ(-100px) rotateY(5deg);
  pointer-events: none;
}
.academy-landing .world-window {
  inset-block-start: 4%;
  inset-inline: 10%;
  block-size: 70%;
  border: 1px solid #adcde2;
  border-radius: 11rem 11rem 1.4rem 1.4rem;
  background: radial-gradient(ellipse at 28% 20%, #fff 0, #e1f3ff 32%, #b8d9ed 76%);
  box-shadow: inset 0 0 0 9px #ffffff50, inset -18px -16px 36px #122e521c;
  transform: translateZ(-58px) rotateY(5deg);
}
.academy-landing .world-window::after {
  content: "";
  position: absolute;
  inset: 1.5rem;
  border: 1px solid #ffffffa6;
  border-radius: inherit;
  background: linear-gradient(118deg, #fff8, transparent 55%);
  pointer-events: none;
}
.academy-landing .world-platform {
  inset-inline: 1%;
  inset-block-end: 2.8rem;
  block-size: 34%;
  border: 1px solid #c4d0d7;
  background: radial-gradient(ellipse at 50% 40%, #fff 0, #eeeee5 54%, #cfdce3 100%);
  transform: rotateX(64deg) translateZ(-24px);
  box-shadow: 0 10px 0 #c9d6dc, 0 18px 0 #e0e6e7, 0 42px 40px -20px #122e5245;
}
.academy-landing .world-platform::after {
  content: "";
  position: absolute;
  inset: 13%;
  border: 1px solid #122e521c;
  border-radius: 50%;
  box-shadow: 0 0 0 12px #ffffff40;
  pointer-events: none;
}
.academy-landing .world-letter {
  inset-block-start: 34%;
  inline-size: 25%;
  block-size: 36%;
  border-color: #bacfdd;
  border-radius: 1rem;
  background: linear-gradient(135deg, #fff 35%, #e6f0f6);
  font-family: var(--ea-latin-display);
  font-size: clamp(4.25rem, 7vw, 6.5rem);
  line-height: 1;
  box-shadow: 0 5px 0 #c5d5df, var(--ea-shadow-object);
  transition: none;
}
.academy-landing .letter-large,
.academy-landing .hero-world:hover .letter-large {
  inset-inline-start: 3%;
  transform: translateZ(10px) rotateY(-16deg) rotateZ(5deg);
}
.academy-landing .letter-small,
.academy-landing .hero-world:hover .letter-small {
  inset-inline-end: 3%;
  transform: translateZ(34px) rotateY(14deg) rotateZ(-5deg);
}
.academy-landing .world-greeting,
.academy-landing .hero-world:hover .world-greeting {
  inset-block-start: 16%;
  inset-inline: 0;
  inline-size: 44%;
  min-block-size: 14rem;
  padding: clamp(.8rem, 1.8vw, 1.5rem);
  border: 1px solid #b7c9d5;
  border-block-start: 4px solid #d7b46a;
  border-radius: 1rem;
  background: linear-gradient(140deg, #fff 40%, #f3f8fa);
  box-shadow: 4px 6px 0 #e8dcc0, 7px 10px 0 #c8d5dc, var(--ea-shadow-object);
  transform: translate3d(0, -.3rem, 85px) rotateY(-8deg) rotateZ(-2deg);
  animation: none;
  transition: none;
}
.academy-landing .world-greeting strong {
  font-family: var(--ea-latin-display);
  font-size: clamp(4.5rem, 8vw, 7.3rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -.045em;
  margin-block: .1em;
}
.academy-landing .world-greeting span {
  font-size: .875rem;
  line-height: 1.6;
}
.academy-landing .world-caption {
  inset-block-end: 0;
  max-inline-size: 100%;
  padding-inline: .5rem;
  transform: translateZ(0);
}

/* The same floor continues into the three teaching planes, in RTL source order. */
.academy-landing .landing-method {
  position: relative;
  padding-block: clamp(2.5rem, 5vw, 4.5rem);
  background: radial-gradient(ellipse at 50% 85%, #dceaf280, transparent 68%);
}
.academy-landing .landing-method::before {
  content: "";
  position: absolute;
  inset-block-start: -2rem;
  inset-inline-start: 50%;
  inline-size: 1px;
  block-size: 3.5rem;
  background: linear-gradient(transparent, #b7cddc, #d7b46a);
  pointer-events: none;
}
.academy-landing .method-planes {
  position: relative;
  gap: clamp(.875rem, 2vw, 1.75rem);
  padding-block: .5rem 2.5rem;
  margin-block: 2rem 0;
  perspective: 1400px;
}
.academy-landing .method-planes::before {
  content: "";
  position: absolute;
  inset-inline: 5%;
  inset-block-end: 1.25rem;
  block-size: 1px;
  background: linear-gradient(90deg, #b2cbdc, #d7b46a, #b2cbdc);
  transform: rotateZ(-2deg);
  pointer-events: none;
}
.academy-landing .method-planes > li,
.academy-landing .method-planes > li:hover {
  position: relative;
  padding: clamp(1.25rem, 2.4vw, 2rem);
  border: 1px solid #ccd9e1;
  border-block-start: 3px solid #d7b46a;
  border-radius: .8rem;
  background: linear-gradient(155deg, #fff 45%, #edf4f8);
  box-shadow: 0 5px 0 #e1e6e6, var(--ea-shadow-raised);
  transform: rotateY(-3deg);
  transition: none;
}
.academy-landing .method-planes > li:nth-child(2),
.academy-landing .method-planes > li:nth-child(2):hover {
  transform: translate3d(0, 1rem, 16px);
}
.academy-landing .method-planes > li:nth-child(3),
.academy-landing .method-planes > li:nth-child(3):hover {
  transform: translate3d(0, 2rem, 32px) rotateY(3deg);
}
.academy-landing .plane-number {
  direction: ltr;
  unicode-bidi: isolate;
  font-family: var(--ea-latin-display);
  font-size: 2rem;
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.2;
  color: #4a6078;
  margin-block-end: 1rem;
}
.academy-landing .method-planes h3 {
  font-size: clamp(1.25rem, 1.1rem + .45vw, 1.5rem);
  line-height: 1.4;
}
.academy-landing .method-planes p { line-height: 1.75; }
.academy-landing .landing-courses { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.academy-landing .course-card h3 { line-height: 1.5; }
.academy-landing .existing-paths h2 { line-height: 1.4; }
.academy-landing :is(a, button, input, textarea, summary):focus-visible {
  outline: 3px solid #775014;
  outline-offset: 4px;
}

@media (max-width: 900px) {
  .academy-landing .landing-hero { gap: 1.5rem; }
  .academy-landing .hero-world { block-size: 24rem; }
  .academy-landing .world-greeting { min-block-size: 12.5rem; }
}
@media (max-width: 700px) {
  .academy-landing .landing-hero {
    grid-template-columns: minmax(0, 1fr);
    padding-block: 1.5rem 3rem;
    gap: 2rem;
  }
  .academy-landing .hero-copy h1 { max-inline-size: 17ch; }
  .academy-landing .hero-world {
    inline-size: 100%;
    max-inline-size: 29rem;
    block-size: 23rem;
    margin-inline: auto;
    perspective: 1400px;
  }
  .academy-landing .world-greeting { min-block-size: 12.5rem; }
  .academy-landing .method-planes {
    grid-template-columns: minmax(0, 1fr);
    padding-inline-start: 1rem;
    padding-block-end: 0;
    gap: 1.25rem;
  }
  .academy-landing .method-planes::before {
    inset-inline-start: .25rem;
    inset-inline-end: auto;
    inset-block: 1rem;
    inline-size: 1px;
    block-size: auto;
    background: linear-gradient(#b2cbdc, #d7b46a, #b2cbdc);
    transform: none;
  }
  .academy-landing .method-planes > li,
  .academy-landing .method-planes > li:nth-child(n):hover,
  .academy-landing .method-planes > li:nth-child(n) {
    transform: none;
    box-shadow: 0 4px 0 #e1e6e6, 0 16px 24px -22px #122e5270;
  }
  .academy-landing .method-planes > li::before {
    content: "";
    position: absolute;
    inset-inline-start: -1rem;
    inset-block-start: 2rem;
    inline-size: 1rem;
    block-size: 1px;
    background: #b7cddc;
    pointer-events: none;
  }
  .academy-landing .account-shell { grid-template-columns: minmax(0, 1fr); }
}

/* One finite room entrance; hover depth only for fine pointers, no perpetual loop. */
@media (prefers-reduced-motion: no-preference) {
  .academy-landing .hero-world { animation: ea-room-arrive 800ms var(--ease-spatial) both; }
  @keyframes ea-room-arrive {
    from { transform: translateY(1.25rem); }
    to { transform: translateY(0); }
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .academy-landing :is(.world-greeting, .world-letter) {
    transition: transform 550ms var(--ease-spatial), box-shadow 550ms var(--ease-spatial);
  }
  .academy-landing .hero-world:hover .world-greeting {
    transform: translate3d(0, -.6rem, 110px) rotateY(-5deg) rotateZ(-2deg);
    box-shadow: 4px 6px 0 #e8dcc0, 7px 10px 0 #c8d5dc, 0 46px 48px -27px #122e5280;
  }
  .academy-landing .hero-world:hover .letter-large { transform: translateZ(5px) rotateY(-16deg) rotateZ(5deg); }
  .academy-landing .hero-world:hover .letter-small { transform: translateZ(24px) rotateY(14deg) rotateZ(-5deg); }
}
@media (prefers-reduced-motion: reduce) {
  /* Override landing.css's flat reduced-motion reset with these STATIC poses.
     There is no alternate moving pose: hover retains exactly the same geometry. */
  .academy-landing .hero-world { perspective: 1400px; animation: none !important; }
  .academy-landing .hero-world *,
  .academy-landing .hero-world::before,
  .academy-landing .hero-world *::after,
  .academy-landing .method-planes,
  .academy-landing .method-planes * { animation: none !important; transition: none !important; }
  .academy-landing .world-greeting { z-index: auto; }
  .academy-landing .world-letter { z-index: auto; }
}
@media (forced-colors: active) {
  .academy-landing .hero-world::before,
  .academy-landing .world-window::after,
  .academy-landing .world-platform::after { display: none; }
  .academy-landing :is(.world-greeting, .world-letter, .method-planes > li) { border: 2px solid CanvasText; }
}
