/* 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-opening-sticky {
  position: relative;
  max-width: 1800px;
  min-height: 820px;
  margin-inline: auto;
  padding: 150px var(--page) 26px;
  display: grid;
  grid-template-columns: 1fr 1.12fr;
  align-content: center;
  gap: 36px 0;
}
.nu-eyebrow { margin: 0 0 26px; color: #b9c4c5; font-size: 11px; letter-spacing: .16em; font-weight: 550; }
.nu-opening-copy { align-self: center; position: relative; z-index: 2; padding-block: 24px 46px; }
#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; }
.nu-opening-lede { max-width: 430px; margin: 28px 0; color: #b8c0c0; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.6; text-wrap: pretty; }
.nu-opening-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.nu-opening-actions a { display: inline-flex; align-items: center; gap: 26px; min-height: 48px; font-size: 14px; }
.nu-action { padding: 12px 21px; color: #101819; background: #e2eeec; border-radius: 100px; transition: background 180ms, transform 180ms; }
.nu-action:hover { background: #fff; transform: translateY(-2px); }
.nu-opening-actions a:not(.nu-action):hover { color: #b8efff; }
.nu-composition { position: relative; min-width: 0; height: clamp(320px, 33vw, 500px); perspective: 1100px; align-self: center; pointer-events: none; }
.nu-composition-halo { position: absolute; inset: -20% -5%; background: radial-gradient(ellipse, #91abac24, transparent 65%); }
.nu-composition-floor { position: absolute; inset: 70% 8% -5%; border-radius: 50%; background: radial-gradient(ellipse, #000a, transparent 65%); transform: rotateX(60deg); }
.nu-story-layer { position: absolute; inset: 0; transform-style: preserve-3d; }
.nu-event-layer, .nu-system-layer { opacity: 0; }
.nu-media-card { position: absolute; top: 10%; left: 32%; width: 37%; height: 78%; overflow: hidden; border-radius: 12px; padding: 6px; background: linear-gradient(140deg,#b2bcbc,#475653 48%,#cad4d3); box-shadow: -5px 6px 0 #3c4847, -12px 23px 36px #0009, inset 1px 1px #ffff; }
.nu-media-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; filter: saturate(.75); }
.nu-media-card::after { position: absolute; content: ''; inset: 6px; border-radius: 7px; background: linear-gradient(125deg,#ffffff28,transparent 45%,#0007); }
.nu-media-card span { position: absolute; z-index: 1; bottom: 20px; left: 17px; right: 12px; color: #fff; font-size: clamp(10px,1vw,14px); text-shadow: 0 1px 5px #000; }
.nu-media-one { transform: translate3d(-78%,9%,-80px) rotateY(-25deg) rotateZ(-12deg); }
.nu-media-two { transform: translate3d(0,-7%,50px) rotateY(-12deg) rotateZ(5deg); }
.nu-media-three { transform: translate3d(79%,8%,-65px) rotateY(-19deg) rotateZ(17deg); }
.nu-editor-strip { position: absolute; display: flex; align-items: center; gap: 4px; width: 74%; left: 13%; top: 82%; height: 42px; padding: 7px; background: #d5e4e5e8; border-radius: 6px; box-shadow: 0 16px 30px #0008; transform: rotateX(48deg) rotateZ(-8deg) translateZ(120px); }
.nu-editor-strip i { height: 100%; flex: 1; border-radius: 3px; background: #6e8c86; }
.nu-editor-strip i:nth-child(3n) { background: #d2a69a; }.nu-editor-strip i:nth-child(2n) { background: #526b79; }
.nu-editor-strip b { position: absolute; top: -6px; bottom: -6px; left: 38%; width: 2px; background: #fff; box-shadow: 0 0 12px #fff8; }
.nu-scene-word { position: absolute; z-index: 3; bottom: 0; left: 20%; color: #f0f4ef; font-size: clamp(36px,4.2vw,70px); font-weight: 480; letter-spacing: -.05em; text-shadow: 0 8px 20px #000a; }
.nu-stage-base { position: absolute; inset: 55% 7% -3%; border-radius: 22px; background: linear-gradient(125deg,#ccd4cd,#475d60); box-shadow: 0 22px 0 #293a3b,0 42px 40px #0009; transform: rotateX(65deg) rotateZ(-22deg); }
.nu-stage-arch { position: absolute; left: 29%; top: 2%; width: 47%; height: 77%; border: 22px solid #d6e3dc; border-bottom: 0; border-radius: 150px 150px 0 0; box-shadow: -10px 1px 0 #748986, inset 0 0 0 2px #fff8; transform: rotateY(-23deg) rotateZ(4deg); }
.nu-stage-arch-back { left: 17%; top: 8%; border-color: #5c7980; transform: translateZ(-100px) rotateY(-23deg) rotateZ(4deg); }
.nu-stage-beam { position: absolute; left: 33%; top: 20%; width: 44%; height: 58%; border-radius: 50% 50% 0 0; background: linear-gradient(175deg,#c9f0d14a,transparent); transform: rotateZ(4deg); }
.nu-stage-disc { position: absolute; left: 43%; top: 54%; width: 21%; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(140deg,#eef2da,#88aaa4); box-shadow: -8px 8px 0 #658784,0 20px 36px #0008; transform: rotateX(65deg); }
.nu-system-plane { position: absolute; inset: 19% 8% 8%; border-radius: 20px; background: linear-gradient(140deg,#607b7633,#d4e7e21a); border: 1px solid #c5e0d336; transform: rotateX(55deg) rotateZ(-27deg); box-shadow: -10px 18px 0 #b8efff09; }
.nu-system-plane i { position: absolute; top: 20%; left: 49%; width: 2px; height: 62%; background: linear-gradient(#b8efff1a,#c9f2ed,#b8efff1a); transform-origin: center; }
.nu-system-plane i:nth-child(2) { transform: rotate(90deg); }.nu-system-plane i:nth-child(3) { transform: rotate(45deg); }.nu-system-plane i:nth-child(4) { transform: rotate(-45deg); }
.nu-system-core, .nu-system-node { position: absolute; display: grid; place-items: center; border-radius: 18px; background: linear-gradient(135deg,#e0eae2,#86a2a1); box-shadow: -8px 8px 0 #476566,0 22px 30px #0008; color: #233f40; transform: rotateX(12deg) rotateY(-22deg) rotateZ(-10deg); }
.nu-system-core { width: 29%; height: 37%; top: 26%; left: 35%; font-size: clamp(34px,4.5vw,76px); font-weight: 650; letter-spacing: -.09em; }
.nu-system-node { width: 16%; height: 20%; font-size: 20px; font-weight: 400; }
.nu-node-one { top: 7%; left: 14%; }.nu-node-two { right: 5%; top: 28%; }.nu-node-three { left: 23%; bottom: 10%; }
.nu-pillar-chapters { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; grid-column: 1 / -1; }
.nu-pillar-chapters a { padding: 19px 0 5px; border-top: 1px solid #ffffff29; transition: border-color 200ms; }
.nu-pillar-chapters a:hover, .nu-pillar-chapters a.is-current { border-color: #d3f0e9; }
.nu-pillar-chapters a > span { display: flex; gap: 12px; align-items: center; color: #a7b9ba; font-size: 11px; }
.nu-pillar-chapters small { font-size: 10px; letter-spacing: .06em; }
.nu-pillar-chapters strong { display: block; margin-top: 14px; font-size: clamp(18px,1.8vw,30px); font-weight: 470; line-height: 1.17; letter-spacing: -.025em; }
.nu-pillar-chapters i { display: inline-block; font-style: normal; font-size: .7em; color: #a8c8c9; transition: transform 180ms; }
.nu-pillar-chapters a:hover i { transform: translate(3px,-3px); }
.nu-pillar-chapters p { margin: 12px 0 0; font-size: 12px; color: #aebcbd; text-wrap: pretty; }
.nu-opening-foot { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: #b7c4c4; font-size: 11px; }
.nu-opening-foot a, .nu-opening-foot button { min-height: 44px; display: inline-flex; align-items: center; gap: 25px; }
.nu-opening-foot button { border: 0; background: transparent; padding: 0 12px; color: inherit; }
.nu-opening-foot button[hidden] { display: none; }
@media (min-width: 1000px) and (min-height: 700px) and (prefers-reduced-motion: no-preference) {
  #top.nu-opening.is-scroll-story { height: 205svh; }
  .is-scroll-story .nu-opening-sticky { position: sticky; top: 0; height: 100svh; min-height: 700px; padding-top: 112px; gap: 22px 0; }
  .is-scroll-story .nu-composition { height: min(36vw,48svh); }
}
@media (max-width: 999px) {
  .nu-opening-sticky { padding-top: 128px; gap: 24px; min-height: 0; }
  #top #home-cover-title { font-size: clamp(45px,6.1vw,67px); }
  .nu-opening-copy { padding-block: 8px 24px; }
  .nu-composition { height: 310px; }
  .nu-eyebrow { font-size: 10px; }
}
@media (max-width: 700px) {
  .nu-opening-sticky { grid-template-columns: minmax(0,1fr); padding: 112px 24px 20px; gap: 20px; }
  #top #home-cover-title { font-size: clamp(43px,10.5vw,72px); }
  .nu-opening-copy { padding: 0; }
  .nu-opening-lede { margin: 22px 0; font-size: 15px; }
  .nu-composition { width: min(100%,480px); height: auto; aspect-ratio: 1.2; margin: 12px auto 20px; }
  .nu-scene-word { font-size: 42px; }
  .nu-media-card span { font-size: 10px; left: 12px; bottom: 14px; }
  .nu-pillar-chapters { grid-template-columns: minmax(0,1fr); gap: 6px; }
  .nu-pillar-chapters a { display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; padding: 15px 0; }
  .nu-pillar-chapters a > span { grid-column: 1 / -1; }
  .nu-pillar-chapters strong { margin: 2px 0; font-size: 20px; }
  .nu-pillar-chapters strong br { display: none; }
  .nu-pillar-chapters p { grid-column: 1 / -1; margin: 0; }
  .nu-opening-foot { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .nu-opening *, .nu-opening *::before, .nu-opening *::after { transition: none !important; animation: none !important; }
}
@media (forced-colors: active) {
  .nu-composition { display: none; }
  .nu-opening-copy { grid-column: 1 / -1; }
  .nu-action, .nu-pillar-chapters a { border: 1px solid ButtonText; }
}

/* Useful routes stay visible, including the two future pillars. */
.nu-service-overview { background: #0c1011; color: #d7e6e5; }
.nu-service-overview > summary { min-height: 56px; padding: 18px var(--page); cursor: pointer; font-size: 14px; }
.nu-service-overview > summary:focus-visible { outline: 2px solid #b8efff; outline-offset: -4px; }
.nu-service-overview #services { scroll-margin-top: 96px; color: #142124; }
.nu-view-all { display: inline-flex; min-height: 44px; align-items: center; gap: 16px; margin-top: 10px; color: #1b596e; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.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; }
.nu-chess-drawer { padding: 0; width: min(460px,calc(100vw - 24px)); max-height: calc(100dvh - 24px); border: 0; border-radius: 16px; background: transparent; overflow: auto; }
.nu-chess-drawer::backdrop { background: #041113b3; backdrop-filter: blur(4px); }
.nu-chess-reading main, .nu-chess-reading .site-footer { width: calc(100% - 370px); margin-right: 370px; }
.nu-chess-reading .story-rail { 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 *, .nu-chess-drawer * { animation: none !important; transition: none !important; }
}
