/* Owner revision: one content grid, one section-title style, quiet cursor halo.
   Image assets, copy, prices and left-hand turquoise decorations stay intact. */
body.night-city.night-unified {
  --site-content-max: 1240px;
  --site-gutter: clamp(16px, 2.5vw, 36px);
  --site-content-width: min(var(--site-content-max), calc(100% - 2 * var(--site-gutter)));
  --site-title-size: clamp(30px, 4vw, 60px);
  --site-title-leading: 1.12;
  --site-title-space: 28px;
  --layer-cursor-halo: 60;
}

/* The external edges of every regular chapter share the same grid. */
body.night-city.night-unified main > section > .wrap,
body.night-city.night-unified main .speed-section .speed-layout,
body.night-city.night-unified main #demo .demo-layout,
body.night-city.night-unified .texture-frame,
body.night-city.night-unified .texture-transition-copy,
body.night-city.night-unified .foot > .wrap {
  width: var(--site-content-width);
  max-width: var(--site-content-max);
  margin-inline: auto;
}
body.night-city.night-unified .visual-helpers-copy {
  max-width: var(--site-content-max);
}
body.night-city.night-unified .choice-poster-frame {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

/* This shell only hosts a mix of aligned copy and full-bleed gallery rails. */
body.night-city.night-unified main > #ai-clients > .ai-shell {
  width: 100%;
  max-width: none;
}
body.night-city.night-unified #ai-clients :is(.ai-intro, .ai-program, .ai-rail-head) {
  width: var(--site-content-width);
  max-width: var(--site-content-max);
  margin-inline: auto;
}

/* Only horizontal gallery tracks break out of the common grid. */
body.night-city.night-unified :is(.visual-helpers-rail, .proof-rail, .money-rail, .sr-grid, .ai-rail) {
  width: 100vw;
  max-width: none;
  position: relative;
  left: 50%;
  margin-inline: 0;
  transform: translateX(-50%);
  padding-inline: max(var(--site-gutter), calc((100vw - var(--site-content-max)) / 2));
  scroll-padding-inline: max(var(--site-gutter), calc((100vw - var(--site-content-max)) / 2));
}

/* Keep structural grids, remove the mismatched plaques behind titles.
   No ::before / ::after left-hand decoration is removed. */
body.night-city.night-unified main > section:not(#benefits):not(.hero) :is(.copy-heading, .eco-heading, .orders-heading, .pricing-intro) {
  width: 100%;
  max-width: none;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  clip-path: none;
  text-shadow: none;
  margin-bottom: 36px;
}
body.night-city.night-unified #course .course-intro {
  background: transparent;
}
body.night-city.night-unified #ai-clients .ai-intro {
  text-shadow: none;
}

/* Section titles share a single scale. Card titles retain their hierarchy. */
body.night-city.night-unified main > section:not(#benefits):not(.hero) h2 {
  font-family: "Russo One", "Onest", sans-serif;
  font-size: var(--site-title-size);
  font-weight: 800;
  line-height: var(--site-title-leading);
  letter-spacing: -.025em;
  text-transform: uppercase;
  color: var(--cyan);
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  filter: none;
  backdrop-filter: none;
  clip-path: none;
  padding: 0;
  margin: 0 0 var(--site-title-space);
  max-width: 100%;
  text-wrap: balance;
  overflow-wrap: normal;
}
body.night-city.night-unified main > section:not(#benefits):not(.hero) h2 :is(span, mark) {
  color: inherit;
  -webkit-text-fill-color: currentColor;
  font: inherit;
  letter-spacing: inherit;
  text-shadow: none;
  background: transparent;
  box-shadow: none;
  filter: none;
  padding: 0;
  margin: 0;
}
body.night-city.night-unified :is(h1, h3, #benefits h2) {
  text-shadow: none;
  box-shadow: none;
}
body.night-city.night-unified .hero h1 {
  text-shadow: none;
}
body.night-city.night-unified #secret-bonus .secret-bonus-panel {
  background: rgba(8, 17, 22, .94);
  color: var(--paper);
  border: 1px solid var(--line);
  box-shadow: none;
}
body.night-city.night-unified #secret-bonus .secret-bonus-copy > p {
  color: var(--paper);
}
body.night-city.night-unified #secret-bonus .secret-bonus-tag,
body.night-city.night-unified #secret-bonus .secret-bonus-link {
  background: var(--cyan);
  color: var(--ink);
}
body.night-city.night-unified #secret-bonus h2 {
  margin-top: 20px;
}
body.night-city.night-unified h2 .heading-keep { white-space: nowrap; }

/* Native pointer stays visible. The halo never captures input or shifts layout. */
.cursor-halo {
  position: fixed;
  inset: 0 auto auto 0;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  z-index: var(--layer-cursor-halo, 60);
  pointer-events: none;
  user-select: none;
  contain: strict;
  background: radial-gradient(circle,
    rgba(92, 224, 218, .25) 0%,
    rgba(92, 224, 218, .13) 20%,
    rgba(92, 224, 218, .055) 42%,
    rgba(92, 224, 218, 0) 70%);
  opacity: 0;
  transform: translate3d(-300px, -300px, 0) translate(-50%, -50%);
  transition: opacity 160ms ease-out;
}
.cursor-halo[data-visible] { opacity: 1; }
@media (hover: none), (pointer: coarse) {
  .cursor-halo { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cursor-halo { transition: none !important; }
}
