/* Phone layouts use the available width and remain stable as Safari chrome moves. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (max-width: 800px), (max-width: 1020px) and (max-height: 500px) {
  :root { --document-frame: 0px; --page: 20px; }
  body { padding-inline: 0; }
  main { min-width: 0; border-inline: 0; }
  body:has(#top.nu-world) .site-header[data-site-nav] {
    left: 0; right: 0; width: 100%; transform: none;
  }
  .site-header[data-site-nav] { padding-inline: 20px; }
  .site-header[data-site-nav] .main-nav { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  input:not([type="checkbox"]):not([type="radio"]), textarea, select,
  .nu-guide form input, .nu-directory-tools input { font-size: 16px; }
  .section-pad { padding: 64px var(--page); }
  .section-heading { gap: 20px; }
  /* Desktop entrance layers must not cover or shrink the phone's reading flow. */
  .scene > .scene-transition, .nu-gloss-sweep { display: none !important; }
  .js .scene .reveal, #leaders .leader-card {
    opacity: 1 !important; filter: none !important; transform: none !important;
    translate: none !important; rotate: none !important; scale: none !important;
  }
  #leaders .leader-grid { opacity: 1 !important; translate: none !important; transform: none !important; }
  #top.nu-world .nu-world-stage { min-height: 0; padding-top: 108px; gap: 28px; }
  #top.nu-world { min-height: 0; }
  #services { padding: 64px var(--page); }
  #services .service-board { min-width: 0; }
  #services .service-nav { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 88%; gap: 12px; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding-block: 4px; border: 0; }
  #services .service-tab { display: grid; grid-template-columns: 24px minmax(0,1fr) 20px; min-width: 0; width: 100%; min-height: 138px; padding: 16px 14px; gap: 10px; text-align: left; scroll-snap-align: start; scroll-snap-stop: always; align-content: start; }
  #services .service-tab strong { font-size: 18px; overflow-wrap: anywhere; }
  #services .service-tab > span { width: auto; grid-column: 1; grid-row: 1; }
  #services .service-tab > strong { grid-column: 2; grid-row: 1; }
  #services .service-tab > i { grid-column: 3; grid-row: 1; rotate: -90deg; }
  #services .services-heading { margin-bottom: 28px; }
  #services .service-board { margin-top: 28px; }
  #services .service-panel { min-width: 0; padding: 24px 16px; }
  #services .service-panel-top { flex-wrap: wrap; gap: 10px; }
  #services .service-panel .deliverable-grid { display: grid; grid-template-columns: minmax(0,1fr); overflow: visible; }
  #services .service-panel .deliverable-grid span { min-width: 0; grid-column: auto; padding: 12px; font-size: 14px; }
  #services .service-actions { flex-direction: column; align-items: stretch; gap: 16px; }
  #services #service-page-link { width: 100%; padding: 16px; gap: 12px; font-size: 17px; }
  #services .service-coming-soon strong { font-size: clamp(26px,8vw,44px); }
  #message .president-stage { gap: 24px; }
  #leaders { padding: 64px var(--page); }
  #leaders .leader-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
  #leaders .leader-visual { aspect-ratio: 3 / 4; height: auto; }
  #leaders .leader-meta h3 { font-size: clamp(11px,3.1vw,18px); line-height: 1.15; overflow-wrap: normal; }
  #leaders .leader-card { min-width: 0; clip-path: none; will-change: auto; }
  #leaders .leader-visual > img { transform: none; will-change: auto; }
  #leaders .leader-meta .nu-identity-icon { display: none; }
  #leaders .leader-card p { font-size: 15px; }
  #leaders .nu-directory-tools { margin-top: 24px; }
  #reach-out .meeting-heading h2 { font-size: clamp(40px,11vw,58px); }
  .nu-guide-home { margin-top: 28px; }
  .nu-guide-message { font-size: 16px; line-height: 1.55; }
  .nu-guide-options button, .nu-guide-options a { font-size: 14px; min-height: 44px; }
  .nu-guide-dock { max-width: calc(100% - 20px); max-height: calc(100svh - 88px); bottom: max(10px, env(safe-area-inset-bottom)); }
  #culture-game.nu-chess-game { padding: 64px var(--page); }
  #culture-game .nu-chess-roster > button { min-width: 0; }
  #culture-game .nu-chess-roster > button strong { font-size: 11px; overflow-wrap: anywhere; }
  .service-brand-content #content-production { padding: 64px var(--page) !important; }
  .service-brand-content .studio-continuum-shell { gap: 28px; }
  .service-brand-content .studio-answers { padding: 64px var(--page); gap: 28px; }
  .service-brand-content #studio-continuum-title,
  .service-brand-content #studio-continuum-title strong { font-size: clamp(32px,9vw,44px) !important; }
  .case-detail { min-width: 0; max-width: 100%; }
  .case-detail-main { min-width: 0; grid-template-columns: minmax(0,1fr); }
  .case-detail-main h3 { font-size: clamp(28px,8vw,40px); overflow-wrap: anywhere; }
  .profile-stage__identity-copy { min-width: 0; }
  .profile-stage__identity-copy h1 { white-space: normal; overflow-wrap: anywhere; }
  .site-footer { flex-wrap: wrap; justify-content: flex-start; gap: 20px; padding: 24px var(--page); }
}
@media (max-width: 480px) {
  .team-profile-page .team-lobby { padding-inline: 16px; }
  .team-profile-page .profile-section { padding-inline: 20px; }
}
@media (max-width: 800px), (max-width: 1020px) and (max-height: 500px) {
  #leaders::after { display: none; }
  /* One pillar chooser on phones: the interactive Services tabs. */
  #top .nu-world-services, main > .nu-pillar-directory { display: none; }
  #top .nu-world-waypoints { margin-bottom: 0; }
}
@media (min-width: 701px) and (max-width: 1020px) and (max-height: 500px) {
  #leaders .leader-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

/* Mobile keeps only the brand title and the pinned, scroll-driven world. */
.nu-world-mobile-title { display: none; }
#top.nu-world.world-compact .nu-world-editorial,
#top.nu-world.world-compact .nu-world-coordinates,
#top.nu-world.world-compact .nu-world-bottom { display: none; }
.js #top.nu-world.world-compact:not(.world-static) { height: 340svh; min-height: 0; }
#top.nu-world.world-compact .nu-world-stage {
  position: sticky; top: 0; height: 100svh; min-height: 0;
  display: block; padding: 0; touch-action: pan-y pinch-zoom;
}
#top.nu-world.world-compact .nu-world-mobile-title {
  display: grid; position: absolute; z-index: 3; top: max(100px,14svh);
  left: 20px; right: 20px; gap: 8px; margin: 0; text-align: center;
  color: #f3f7fb; font-size: clamp(27px,7vw,44px); font-weight: 450;
  line-height: 1.1; letter-spacing: -.025em;
}
#top.nu-world.world-compact .nu-world-mobile-title span {
  color: #b8efff; font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
}
#top.nu-world.world-compact .nu-world-explorer { display: contents; }
#top.nu-world.world-compact .nu-world-explorer .nu-world-visual {
  position: absolute; inset: max(180px,27svh) 0 24px; width: 100%; height: auto; margin: 0;
  pointer-events: auto; touch-action: pan-y pinch-zoom; align-self: stretch;
}
#top.nu-world.world-compact .nu-world-stage::after { background: none; }
#top.nu-world.world-compact.world-static { height: auto; }
#top.nu-world.world-compact.world-static .nu-world-stage { position: relative; }
@media (max-height: 500px) {
  #top.nu-world.world-compact .nu-world-mobile-title { top: 76px; font-size: 25px; gap: 4px; }
  #top.nu-world.world-compact .nu-world-explorer .nu-world-visual { inset: 130px 10% 10px; width: auto; }
}

/* Preserve the diagonal conveyor while extending its lanes to portrait corners. */
@media (max-width: 800px) and (orientation: portrait) {
  .service-brand-content .studio-phone-universe.is-phone-wall-complete:not([data-phone-motion="static"])
    .studio-phone.is-revealed {
    width: var(--phone-portrait-size);
    animation-name: studioPhonePortraitRoll;
    animation-duration: var(--phone-portrait-duration);
    animation-delay: var(--phone-portrait-delay);
    animation-direction: var(--phone-portrait-direction);
  }
  .service-brand-content .studio-phone-universe.is-phone-wall-complete:not([data-phone-motion="static"])
    .studio-phone.is-portrait-spare { visibility: hidden; animation: none; }
}
@keyframes studioPhonePortraitRoll {
  from { transform: translate3d(calc(-50% + var(--phone-portrait-start) + var(--phone-portrait-lane)),calc(-50% + var(--phone-portrait-start) - var(--phone-portrait-lane)),0) rotate(-45deg) scale(var(--phone-roll-scale)); }
  to { transform: translate3d(calc(-50% + var(--phone-portrait-end) + var(--phone-portrait-lane)),calc(-50% + var(--phone-portrait-end) - var(--phone-portrait-lane)),0) rotate(-45deg) scale(var(--phone-roll-scale)); }
}

/* The phone hero explains the business without depending on its 3D animation. */
.nu-world-mobile-intro, .nu-world-mobile-context { display: none; }
#top.nu-world.world-compact .nu-world-mobile-intro {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 0 20px;
  position: absolute; z-index: 4; top: calc(max(100px,14svh) + 66px); left: 24px; right: 24px;
  text-align: center; color: #d5dfe8;
}
#top.nu-world.world-compact .nu-world-mobile-intro p { width: 100%; max-width: 380px; margin: 0 auto 10px; font-size: 16px; line-height: 1.45; }
#top.nu-world.world-compact .nu-world-mobile-intro a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; color: #d2f1fa; border-bottom: 1px solid #b8efff55; }
#top.nu-world.world-compact .nu-world-explorer .nu-world-visual { inset: max(315px,40svh) 0 90px; }
#top.nu-world.world-compact .nu-world-mobile-context { display: block; position: absolute; z-index: 3; bottom: 24px; left: 20px; right: 20px; text-align: center; }
.nu-world-mobile-context p { margin: 0 0 8px; color: #edf4fa; font-size: 14px; line-height: 1.4; }
.nu-world-mobile-context p[hidden] { display: none; }
.nu-world-mobile-context small { color: #a8bac8; font-size: 12px; }
#top.world-static .nu-world-mobile-context small { display: none; }
@media (max-height: 650px) and (orientation: portrait) {
  #top.nu-world.world-compact .nu-world-mobile-title { top: 88px; font-size: 27px; }
  #top.nu-world.world-compact .nu-world-mobile-intro { top: 150px; }
  #top.nu-world.world-compact .nu-world-mobile-intro p { font-size: 15px; }
  #top.nu-world.world-compact .nu-world-explorer .nu-world-visual { inset: 295px 0 78px; }
  #top.nu-world.world-compact .nu-world-mobile-context { bottom: 16px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  #top.nu-world.world-compact .nu-world-mobile-title { top: 86px; left: 20px; right: 56%; font-size: 26px; }
  #top.nu-world.world-compact .nu-world-mobile-intro { top: 150px; left: 20px; right: 56%; gap: 0 12px; }
  #top.nu-world.world-compact .nu-world-mobile-intro p { font-size: 14px; }
  #top.nu-world.world-compact .nu-world-mobile-intro a { font-size: 12px; }
  #top.nu-world.world-compact .nu-world-explorer .nu-world-visual { inset: 76px 0 68px 44%; width: auto; }
  #top.nu-world.world-compact .nu-world-mobile-context { left: 44%; bottom: 16px; }
}
/* Explain the optional game before visitors reach its controls. */
#culture-game .nu-chess-header { flex-wrap: wrap; }
#culture-game .nu-chess-header > p:not(.nu-eyebrow) { display: block; flex-basis: 100%; order: 3; max-width: 620px; margin: 0 auto; color: #bdcbd7; font-size: 15px; line-height: 1.5; }
@media (max-width: 360px) {
  #top.nu-world.world-compact .nu-world-mobile-intro { left: 20px; right: 20px; column-gap: 12px; }
  #top.nu-world.world-compact .nu-world-mobile-intro a { font-size: 13px; }
}

/* The vault follows the finger; other desktop entrance layers stay out of the reading flow. */
@media (prefers-reduced-motion: no-preference) and (max-width: 800px), (prefers-reduced-motion: no-preference) and (max-width: 1020px) and (max-height: 500px) {
  #services > .transition-services-logo { display: block !important; pointer-events: none; }
}
