/* Homepage prism composition and admissions chapters. */

body:has([data-prism-hero]) .site-header {
  background: #080a19eb;
  color: var(--color-night-heading);
  backdrop-filter: blur(18px);
}

body:has([data-prism-hero]) .site-header :is(.nav-link, .site-logo) {
  color: var(--color-night-heading);
}

.redesign.agency [data-prism-hero] {
  color: var(--color-night-heading);
  overflow: clip;
  background: var(--home-night);
}

.redesign.agency [data-prism-hero] .spatial-grid {
  border: 0;
  min-height: min(820px, calc(100svh - 76px));
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  isolation: isolate;
  width: min(100% - 2 * clamp(1.25rem, 5vw, 7rem), 1720px);
}

[data-prism-hero] .hero-text {
  padding-block: var(--space-block);
}

.redesign [data-prism-hero] .spatial-grid h1 {
  font-family: var(--new-display);
  font-size: clamp(2.65rem, 5.8vw, 6.3rem);
  line-height: 0.99;
  max-width: 12ch;
}

.redesign [data-prism-hero] .spatial-grid .eyebrow {
  color: var(--color-night-signal);
}

.redesign.agency [data-prism-hero] .prism-stage {
  position: absolute;
  width: auto;
  height: auto;
  aspect-ratio: auto;
  border: 0;
  background: none;
  overflow: visible;
  pointer-events: none;
  inset: 0;
}

.prism-halo {
  position: absolute;
  inset: 0;
  transform: translateY(calc(var(--travel, 0) * -36px));
  background: radial-gradient(
    ellipse at var(--spot-x, 73%) var(--spot-y, 48%),
    #304e89,
    #17294e 30%,
    transparent 68%
  );
}

.prism-float {
  position: absolute;
  inset: 0;
  display: grid;
  transform: translateY(calc(var(--travel, 0) * -70px));
  place-items: center;
  perspective: 1050px;
  inset-inline-start: 49%;
}

.prism-object {
  position: relative;
  transform: rotateX(calc(25deg + var(--tilt-x, 0deg))) rotateY(calc(-33deg + var(--tilt-y, 0deg)))
    rotateZ(-11deg);
  animation: prism-drift 7s ease-in-out infinite alternate;
  aspect-ratio: 1.4;
  transform-style: preserve-3d;
  width: min(35vw, 580px);
}

.prism-pane {
  position: absolute;
  inset: 0;
  padding: 8%;
  border: 1px solid #accdf3;
  border-radius: var(--radius-scene);
  color: #eef5ff;
  box-shadow: inset 0 0 24px #a6c7ff6b,
    0 12px 0 -4px #9ab2f178,
    0 26px 55px #03051ba8;
  background: linear-gradient(
    150deg,
    #e4f4ff82,
    #567eb777 20%,
    #192f60f0 57%,
    #4270abb8 91%,
    #a6e8ffc2
  );
}

.prism-pane:nth-child(3) {
  transform: translateZ(20px);
}

.prism-pane b {
  display: block;
  font: 600 clamp(1.1rem, 3vw, 2.7rem)/1 monospace;
  color: #bdeaff;
}

.prism-pane span {
  display: block;
  margin: 0.5rem 0 1.2rem;
  font: 600 clamp(1rem, 2vw, 2rem)/1.1 system-ui;
}

.prism-pane i {
  display: block;
  width: 72%;
  height: 1px;
  margin: 0.6rem 0;
  background: linear-gradient(90deg, var(--color-brand-signal), #b2c9ff22);
}

.prism-pane i:nth-last-child(2) {
  width: 58%;
}

.prism-pane i:last-child {
  width: 44%;
}

@keyframes prism-drift {
  from {
    translate: 0 -7px;
  }
  to {
    translate: 0 10px;
  }
}

@media (max-width: 760px) {
  .redesign.agency [data-prism-hero] .spatial-grid {
    grid-template-columns: 1fr;
    padding-block: var(--space-text);
    min-height: 0;
  }
  .redesign.agency [data-prism-hero] .prism-stage {
    position: relative;
    min-height: 300px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .prism-object {
    animation: none;
  }
  .prism-halo,
  .prism-float {
    transform: none;
  }
}

/* Hero copy and artwork placement */

body:has([data-prism-hero]) .site-header .desktop-nav .nav-link {
  color: #ecebff;
}

.redesign.agency [data-prism-hero] .hero-text {
  grid-column: 1;
  grid-row: 1;
  order: 0;
}

.redesign.agency [data-prism-hero] .hero-review-note {
  color: #bdc5e0;
}

@media (max-width: 760px) {
  .redesign.agency [data-prism-hero] .prism-stage {
    inset: auto;
  }
  .prism-float {
    inset-inline-start: 0;
  }
  .prism-object {
    width: 66vw;
  }
}

.redesign.agency .guide-chapter {
  color: var(--home-guide-ink);
  padding-block: clamp(3.75rem, 8vw, 8rem);
  scroll-margin-top: 6rem;
  background: var(--home-night);
}

.redesign.agency .guide-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(var(--space-block), 6vw, 7rem);
}

.guide-intro .eyebrow,
.guide-number,
.guide-arrow {
  color: var(--color-night-signal);
}

.guide-intro h2 {
  color: inherit;
  font: 650 clamp(2.5rem, 5vw, 5rem)/1.03 var(--new-display);
  max-width: 11ch;
  margin: 0.65rem 0 var(--space-text);
}

.guide-intro p,
.guide-index p {
  color: #c5cdea;
  line-height: 1.65;
}

.guide-intro p {
  max-width: 36ch;
}

.guide-index {
  list-style: none;
  padding: 0;
  margin: 0;
  border-block-start: 1px solid #444e78;
}

.guide-index li {
  border-block-end: 1px solid #444e78;
}

.redesign.agency .guide-index a {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr) auto;
  gap: clamp(0.55rem, 2vw, 1.5rem);
  align-items: start;
  padding: clamp(var(--space-text), 2vw, 1.65rem) 0.6rem;
  color: var(--home-guide-ink);
  text-decoration: none;
}

.guide-index h3 {
  color: inherit;
  margin: 0 0 0.35rem;
  font-size: clamp(1.12rem, 2vw, 1.55rem);
}

.guide-index p {
  margin: 0;
  font-size: 0.95rem;
}

.guide-number {
  font: 600 0.8rem/1.9 monospace;
}

@media (max-width: 760px) {
  .redesign.agency .guide-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .guide-index a {
    padding-inline: 0.25rem;
  }
}

/* A single homepage palette, from the opening glass to the final action. */

body:has([data-prism-hero]) {
  --home-night: #0b1020;
  --home-surface: #121b32;
  --home-line: var(--color-chapter-border);
  --home-paper: #edf3fa;
  --home-ink: #15213a;
  --home-cyan: var(--color-chapter-signal);
  --home-blue: var(--color-back-top);
  --home-guide-ink: #f2f4ff;
  --home-heading: #f1f5ff;
  --home-section-ink: #eef3ff;
  --home-action-hover: #2447ad;
  --home-cta-surface: #162647;
}

body:has([data-prism-hero]) :is(.site-header, .site-footer) {
  background: var(--home-night);
  color: var(--home-heading);
}

body:has([data-prism-hero]) .site-footer :is(a, p, span) {
  color: #cbd8ed;
}

body:has([data-prism-hero]) .site-header .desktop-menu a {
  color: #e6edfc;
}

body:has([data-prism-hero])
  :is(.nav-contact, .hero-buttons .button-primary, .bottom-cta .button-light) {
  background: var(--home-blue);
  border-color: var(--home-blue);
  color: var(--color-white);
}

body:has([data-prism-hero])
  :is(.nav-contact, .hero-buttons .button-primary, .bottom-cta .button-light):is(
    :hover,
    :focus-visible
  ) {
  background: var(--home-action-hover);
  border-color: var(--home-action-hover);
  color: var(--color-white);
}

.prism-pane:nth-child(1) {
  transform: translate3d(15%, 8%, calc(-145px - var(--travel, 0) * 45px));
}

.prism-pane:nth-child(2) {
  transform: translate3d(8%, 4%, calc(-65px - var(--travel, 0) * 22px));
}

.guide-index,
.guide-index li {
  border-color: var(--home-line);
}

.guide-index a:is(:hover, :focus-visible) {
  outline-offset: -2px;
  background: #1a2845;
}

body:has([data-prism-hero]) .craft-scene {
  background: #142442;
  color: var(--home-heading);
}

body:has([data-prism-hero]) #case-studies {
  background: var(--home-night);
  color: var(--home-section-ink);
}

body:has([data-prism-hero]) #case-studies .resource-grid {
  background: none;
  border: 0;
  gap: clamp(0.8rem, 2vw, 1.6rem);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body:has([data-prism-hero]) #case-studies .resource-card {
  min-height: 0;
  background: var(--home-surface);
  border: 1px solid var(--home-line);
  border-radius: 0.75rem;
  padding: clamp(1.25rem, 2.5vw, var(--space-block));
}

body:has([data-prism-hero]) #case-studies .resource-card :is(.card-type, .card-arrow) {
  color: var(--home-cyan);
}

body:has([data-prism-hero]) main > .section-alt:has(#operating-guide) {
  background: var(--home-paper);
  color: var(--home-ink);
}

body:has([data-prism-hero]) .bottom-cta {
  background: var(--home-cta-surface);
  color: #eef4ff;
}

body:has([data-prism-hero]) .bottom-cta p {
  color: #cedbf1;
}

body:has([data-prism-hero]) .guide-chapter {
  --chapter-progress: 1;
  position: relative;
}

.guide-chapter::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: var(--home-cyan);
  transform: scaleX(var(--chapter-progress));
  transform-origin: left;
  pointer-events: none;
}

.guide-index :is(.guide-arrow, .guide-number),
#case-studies .card-arrow,
body:has([data-prism-hero]) :is(.nav-contact, .hero-buttons a, .bottom-cta .button) {
  transition: translate 180ms ease,
    background-color 180ms ease,
    color 180ms ease;
}

.guide-index a:is(:hover, :focus-visible) .guide-arrow,
#case-studies .resource-card:is(:hover, :focus-within) .card-arrow {
  translate: 3px -3px;
}

.guide-index a:is(:hover, :focus-visible) .guide-number {
  translate: 3px 0;
}

body:has([data-prism-hero]) :is(.nav-contact, .hero-buttons a, .bottom-cta .button):active {
  translate: 0 2px;
}

@media (max-width: 760px) {
  body:has([data-prism-hero]) #case-studies .resource-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .guide-chapter::after {
    transform: none;
  }
  .guide-index a:is(:hover, :focus-visible) :is(.guide-arrow, .guide-number),
  #case-studies .resource-card:is(:hover, :focus-within) .card-arrow {
    translate: none;
    transition: none;
  }
  body:has([data-prism-hero]) :is(.nav-contact, .hero-buttons a, .bottom-cta .button) {
    transition: none;
    translate: none;
  }
}

body:has([data-prism-hero]) :is(#case-studies, .bottom-cta) .eyebrow {
  color: var(--home-cyan);
}

body:has([data-prism-hero]) .back-to-top {
  border-color: #84aaff;
  color: var(--color-white);
  background: var(--color-back-top);
  box-shadow: none;
}

body:has([data-prism-hero]) .admissions-story {
  position: relative;
  background: var(--home-night);
  color: #f0f4ff;
  --journey-progress: 0;
}

.admissions-story::before,
.admissions-story::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 clamp(0.65rem, 2vw, 2rem);
  width: 1px;
  background: var(--color-chapter-border);
  z-index: 2;
  pointer-events: none;
}

.admissions-story::after {
  background: var(--color-chapter-signal);
  transform: scaleY(var(--journey-progress));
  transform-origin: top;
  box-shadow: 0 0 10px #72dcff;
}

.redesign.agency .admissions-story > [data-journey-chapter] {
  --chapter-progress: 1;
  scroll-margin-top: 6rem;
  padding-block: clamp(3rem, 7vw, 7rem);
  border: 0;
  color: var(--home-section-ink);
}

.admissions-story > [data-journey-chapter] > .shell {
  width: min(86%, 1370px);
}

.redesign.agency .admissions-story :is(.craft-scene, .bottom-cta, #case-studies, #implementation) {
  background: transparent;
}

.admissions-story .craft-scene .shell {
  position: relative;
  gap: clamp(var(--space-text), 4vw, 4rem);
}

.admissions-story .craft-scene .craft-plate {
  opacity: 0.35;
  translate: 0 calc((1 - var(--chapter-progress)) * 36px);
}

.admissions-story .craft-scene .craft-plate path {
  stroke-dasharray: 2200;
  stroke-dashoffset: calc((1 - var(--chapter-progress)) * 1750);
}

.admissions-story .journey-marker {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 1.25rem;
  color: var(--color-chapter-signal);
  font: 600 0.74rem/1.35 system-ui;
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
}

.admissions-story .journey-marker span {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-round);
  border: 1px solid #567496;
  background: color-mix(in srgb, #3c82bd calc(var(--chapter-progress) * 38%), var(--home-surface));
}

.admissions-story :is(h2, h3, p) {
  color: inherit;
}

.admissions-story :is(.section-intro p, .guide-index p, .editorial p) {
  color: #c5d1e8;
}

.admissions-story :is(.eyebrow, .craft-kicker, .editorial a) {
  color: var(--color-chapter-signal);
}

.admissions-story .section-intro {
  margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

.redesign.agency .admissions-story #case-studies .resource-grid {
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--color-chapter-border);
}

.redesign.agency .admissions-story #case-studies .resource-card {
  background: none;
  border: 0;
  border-bottom: 1px solid var(--color-chapter-border);
  border-radius: 0;
  box-shadow: none;
  padding: 1.35rem 0.5rem;
  min-height: 0;
}

.admissions-story #case-studies .resource-card h3 {
  margin: 0.4rem 0;
  font-size: clamp(1.25rem, 2.3vw, 2rem);
}

.admissions-story #case-studies .resource-card:is(:hover, :focus-within) {
  background: #151f38;
}

.admissions-story .journey-details {
  border-block: 1px solid var(--color-chapter-border);
}

.admissions-story .journey-details summary {
  cursor: pointer;
  padding: 1.15rem 0;
  color: var(--color-chapter-signal);
}

.admissions-story .journey-details .editorial {
  color: var(--color-night-copy);
  padding-bottom: var(--space-text);
}

.admissions-story .bottom-cta .cta-inner {
  padding: clamp(1.4rem, 4vw, 3rem);
  background: var(--home-cta-surface);
  border: 1px solid var(--color-chapter-border);
  border-radius: 0.85rem;
}

.admissions-story .bottom-cta .journey-marker {
  width: 100%;
  flex-basis: 100%;
}

@media (max-width: 760px) {
  .admissions-story > [data-journey-chapter] > .shell {
    width: calc(100% - 3rem);
    margin-inline: 1.85rem 1.15rem;
  }
  .admissions-story .craft-scene .craft-plate {
    opacity: 0.2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .admissions-story::after {
    display: none;
  }
  .admissions-story .craft-scene .craft-plate {
    translate: none;
  }
  .admissions-story .craft-scene .craft-plate path {
    stroke-dashoffset: 0;
  }
}

.redesign.agency .admissions-story .bottom-cta .cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: var(--space-text) var(--space-block);
}

.admissions-story .bottom-cta .cta-inner .button {
  justify-self: start;
}

.redesign.agency .admissions-story > .craft-scene {
  min-height: 0;
}

@media (max-width: 760px) {
  .redesign.agency .admissions-story .bottom-cta .cta-inner {
    grid-template-columns: minmax(0, 1fr);
  }
}

body.redesign.agency:has([data-prism-hero]) .admissions-story #explore {
  background: var(--home-night);
}

body.redesign.agency:has([data-prism-hero]) .back-to-top {
  background: var(--color-back-top);
}

@media (min-width: 761px) {
  .prism-object {
    width: min(31vw, 540px);
  }
}

@media (max-width: 400px) {
  .redesign [data-prism-hero] .spatial-grid h1 {
    font-size: clamp(2.1rem, 10vw, 2.6rem);
  }
  .redesign.agency [data-prism-hero] .hero-text {
    padding-block: 1.4rem 0.5rem;
  }
}
