/* Code-first opening. HTML carries the message; transforms are optional. */

#top.nu-opening {
  --opening-progress: 0;
  display: block;
  min-height: 0;
  padding: 0;
  overflow: visible;
  isolation: isolate;
  background: #0c1011;
  color: #f5f5ef;
}

#top.nu-opening::before,
#top.nu-opening::after { display: none;
}

.nu-eyebrow { margin: 0 0 26px; color: #b9c4c5; font-size: 11px; letter-spacing: .16em; font-weight: 550;
}

#top #home-cover-title { margin: 0; font-size: clamp(56px, 5.4vw, 98px); letter-spacing: -.052em; line-height: 1.02; font-weight: 340; text-wrap: nowrap; text-transform: none;
}

#top #home-cover-title,
#culture-game .nu-chess-header h2 { text-transform: none !important;
}

#top #home-cover-title strong { font-weight: 640; color: #d7eff0;
}

@media (min-width: 1000px) and (min-height: 700px) and (prefers-reduced-motion: no-preference) {
  #top.nu-opening.is-scroll-story { height: 205svh;
  }
}

@media (max-width: 999px) {
  #top #home-cover-title { font-size: clamp(45px,6.1vw,67px);
  }

  .nu-eyebrow { font-size: 10px;
  }
}

@media (max-width: 700px) {
  #top #home-cover-title { font-size: clamp(43px,10.5vw,72px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nu-opening *,
  .nu-opening *::before,
  .nu-opening *::after { transition: none !important; animation: none !important;
  }
}

.nu-pillar-directory { scroll-margin-top: 96px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; padding: 36px var(--page) 70px; background: #f8f9f6; color: #142124;
}

.nu-pillar-directory a { display: flex; flex-direction: column; gap: 10px; padding: 22px 0; border-top: 1px solid #152b302c;
}

.nu-pillar-directory a:hover { border-color: #1b596e;
}

.nu-pillar-directory span { color: #4d666e; font-size: 10px; letter-spacing: .09em;
}

.nu-pillar-directory strong { font-size: clamp(18px,1.65vw,26px); font-weight: 500; line-height: 1.25;
}

.nu-pillar-directory b { margin-top: auto; font-size: 13px; font-weight: 500; min-height: 32px;
}

/* Compact chess: people on the left, one live board on the right. */

#culture-game.nu-chess-game { background: #101719; padding-block: clamp(74px,8vw,120px);
}

#culture-game.nu-chess-game::after { display: none;
}

#culture-game .nu-chess-shell { width: min(1180px,100%); display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,460px); gap: 18px clamp(32px,7vw,100px);
}

#culture-game .nu-chess-header { grid-column: 1; grid-row: 1; text-align: left; margin: 0;
}

#culture-game .nu-chess-header .nu-eyebrow { font-size: 10px; margin-bottom: 20px;
}

#culture-game .nu-chess-header h2 { font-size: clamp(40px,4.5vw,68px); line-height: 1.06; letter-spacing: -.04em; text-transform: none;
}

#culture-game .nu-chess-header h2 strong { color: #deedeb; font-weight: 500;
}

#culture-game .nu-chess-header > p:not(.nu-eyebrow) { margin-top: 20px; font-size: 15px; color: #b8c7c8;
}

#culture-game .nu-chess-header > a { display: inline-flex; min-height: 44px; align-items: center; gap: 32px; margin-top: 14px; color: #d5eded;
}

#culture-game .nu-chess-arena { display: contents;
}

#culture-game .nu-chess-roster { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-self: start; border: 0; padding: 0; gap: 10px; box-shadow: none; background: transparent;
}

#culture-game .nu-chess-roster > button { min-height: 58px; padding: 7px; border-radius: 9px; border: 1px solid transparent; background: #ffffff06;
}

#culture-game .nu-chess-roster > button.is-selected { border-color: #aacac9; background: #ffffff0b; box-shadow: none;
}

#culture-game .nu-chess-roster > button img { width: 38px; height: 38px; border-radius: 50%;
}

#culture-game .nu-chess-roster > button strong { font-size: 10px; font-weight: 550;
}

#culture-game .nu-chess-roster > p { text-align: left; font-size: 11px; color: #b2bfc0; letter-spacing: 0; margin: 10px 0 0;
}

.nu-chess-home { grid-column: 2; grid-row: 1 / span 2; min-width: 0;
}

#chess-match { --chess-cyan: #c7ecec; --chess-lime: #c7ecec; --chess-line: #b8d4d42a; border-radius: 15px; padding: 7px; color: #eef4f3; border: 1px solid #9eb4b426; background: #182224; box-shadow: 0 20px 55px #0003;
}

#chess-match .nu-chess-board { width: 100%; min-width: 0;
}

#chess-match .nu-chess-board-frame { padding: 0;
}

#chess-match .nu-chess-board-scroll { border: 0; border-radius: 9px;
}

#chess-match .nu-chess-tools { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 9px 0 0; gap: 4px; border: 0;
}

#chess-match .nu-chess-tools button { min-height: 44px; padding: 5px 3px; font-size: 10px; border: 0; background: #ffffff05; border-radius: 7px;
}

#chess-match .nu-chess-tools button:hover { background: #ffffff14;
}

#chess-match .nu-chess-piece { font-size: clamp(28px,3.4vw,46px);
}

#chess-match .nu-chess-square.is-light { background: #d3dfda;
}

#chess-match .nu-chess-square.is-dark { background: #4c676c;
}

#chess-match .nu-chess-square.is-selected { box-shadow: inset 0 0 0 4px #b8efff;
}

#chess-match .nu-chess-square:hover { box-shadow: inset 0 0 0 3px #a8d7df;
}

#chess-match .nu-chess-intro { padding: 24px 18px; background: #101b1deb; border: 1px solid #ffffff40; border-radius: 12px; backdrop-filter: blur(12px);
}

#chess-match .nu-chess-intro h3 { font-size: clamp(23px,2.3vw,32px);
}

#chess-match .nu-chess-status { padding: 10px 4px 4px; font-size: 10px; font-weight: 500; color: #d5e7e5; border: 0;
}

.nu-chess-dock { position: fixed; right: 16px; top: 100px; z-index: 65; width: 340px; max-height: calc(100dvh - 116px); overflow: auto;
}

.nu-chess-dock:empty { display: none;
}

.nu-chess-dockbar { display: flex; align-items: center; gap: 4px; margin-bottom: 7px;
}

.nu-chess-dockbar[hidden] { display: none;
}

.nu-chess-dockbar strong { margin-right: auto; padding-left: 9px; font-size: 12px; font-weight: 500;
}

.nu-chess-dockbar button { width: 44px; height: 44px; border: 0; background: #ffffff08; color: #e6efec; font-size: 23px; border-radius: 7px;
}

.nu-chess-dock #chess-match .nu-chess-piece { font-size: 29px;
}

.nu-chess-resume { position: fixed; right: 20px; bottom: max(20px,env(safe-area-inset-bottom)); z-index: 65; display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 7px 19px; color: #e1efed; background: #152124f5; border: 1px solid #b8dad950; border-radius: 50px; box-shadow: 0 10px 40px #0005; font-size: 13px;
}

.nu-chess-resume span { font-size: 27px;
}

.nu-chess-resume[hidden] { display: none;
}

/* Keep the existing five-card entrance, but remove ornamental frames and jargon. */

#leaders .leader-visual::before,
#leaders .leader-visual::after,
#leaders .leader-visual > i { display: none;
}

#leaders .leader-card { border-color: #ffffff18; background: #ffffff04; box-shadow: none;
}

#leaders .leader-meta { border-bottom: 0;
}

#leaders .leader-card p { color: #b9c5c7; line-height: 1.5;
}

.js .reveal:focus-within { opacity: 1 !important; filter: none !important; transform: none !important;
}

@media (max-width: 800px) {
  #culture-game .nu-chess-shell { grid-template-columns: minmax(0,1fr); gap: 25px; max-width: 540px;
  }

  #culture-game .nu-chess-header,
  #culture-game .nu-chess-roster,
  .nu-chess-home { grid-column: 1; grid-row: auto;
  }

  #chess-match .nu-chess-piece { font-size: clamp(25px,7vw,43px);
  }

  .nu-pillar-directory { grid-template-columns: minmax(0,1fr); gap: 0; padding-block: 10px 40px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nu-chess-dock * { animation: none !important; transition: none !important;
  }
}
