/* The shared type floor lives in brand.css. These layouts give larger text
   room to wrap instead of shrinking captions again at mobile breakpoints. */
body { font-size: var(--text-body); }
.rounds-home { --text-body: 1.125rem; }
p { line-height: 1.65; }
button, input, select, .button, .wl-primary, .wl-quiet, .app-primary { min-height: 44px; }
.eyebrow { letter-spacing: 0.08em; }
.hero-copy .eyebrow { line-height: 1.5; }
.hero-copy h1 { font-size: clamp(62px, 6.4vw, 92px); line-height: 1.02; letter-spacing: -0.055em; }
.hero-asterisk { font-size: 0.55em; margin-left: 0.25em; }
.hero-description { font-size: 1.25rem; line-height: 1.6; max-width: 36rem; }
.hero-outcomes { font-size: var(--text-body); line-height: 1.6; max-width: 32rem; color: var(--brand-navy); margin-bottom: 28px; }
.hero-actions { flex-wrap: wrap; gap: 18px; }
.hero-actions > span { font-size: var(--text-label); line-height: 1.6; }
.hero-foot { gap: 20px; flex-wrap: wrap; line-height: 1.6; }
.belief-section { padding-bottom: 40px; }
.belief-section > p:last-child { max-width: 46rem; margin-inline: auto; }
.how-section { padding: 0 0 85px; }
.how-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; padding: 0; margin: 0; list-style: none; }
.how-grid li { border-top: 2px solid var(--brand-line); padding-top: 22px; }
.how-grid li > span { font-size: var(--text-label); font-weight: 600; color: var(--brand-blue); }
.how-grid h3 { font-size: 1.5rem; line-height: 1.3; letter-spacing: -0.025em; margin: 18px 0 12px; }
.how-grid p { font-size: 1.0625rem; color: var(--muted); margin: 0; }
.how-status { margin-top: 28px; font-size: var(--text-label); color: var(--muted); }
.how-status a { color: var(--brand-blue); text-decoration: underline; text-underline-offset: 4px; }
.section-intro > p:last-child, .connected-heading > p:not(.eyebrow) { max-width: 46rem; }
.paper-top, .research-context, .choose-example, .context-caption, .connection-status { flex-wrap: wrap; }
.research-story p, .paper-translation p, .evidence-slip p, .future-feature p { line-height: 1.65; }
.review-caption, .paper-limit, .example-disclosure, .future-status, .milestone-disclosure { font-size: var(--text-label); line-height: 1.6; }
.discovery-home-bars small { font-size: var(--text-label); }
.discover-tabs, .discovery-tabs { flex-wrap: wrap; }
.device-node { min-height: 118px; }
.device-node div, .discovery-goal-home div { min-width: 0; }
.device-node strong { overflow-wrap: anywhere; }
.site-footer { gap: 24px; flex-wrap: wrap; }
.site-footer p { max-width: 28rem; line-height: 1.6; }
/* Browser controls and real app content always retain readable text. */
.app-vision-bar, .wl-header, .product-section-heading, .wl-screen-top { flex-wrap: wrap; gap: 14px; }
.wl-vision, .product-status { white-space: normal; line-height: 1.5; }
.wl-app-nav { flex-wrap: wrap; }
.wl-app-nav a { min-height: 48px; text-align: center; padding: 15px 18px; }
.wl-world-footer { flex-wrap: wrap; }
.wl-world-footer > a { white-space: normal; }
.wl-title p, .wl-product .wl-title > p, .product-setup p, .voice-transcript p, .product-chat-reply p, .product-profile dd { font-size: var(--text-body); line-height: 1.65; }
.voice-device { max-width: 100%; }
.voice-device-top, .voice-specialist, .voice-controls { flex-wrap: wrap; gap: 12px; }
.voice-specialist small { width: 100%; }
.voice-controls button { white-space: normal; }
.voice-device-top > span { font-size: var(--text-small); }
.product-round-speakers { flex-wrap: wrap; }
.product-round-speakers button { flex: 1 1 95px; min-height: 80px; }
.wl-agent-tabs { flex-wrap: wrap; }
.wl-agent-tabs button { flex: 1 1 130px; min-height: 64px; }
.wl-agent-tabs span { white-space: normal; }
.app-page-heading, .app-section-title, .goal-card-foot, .goal-target { flex-wrap: wrap; gap: 12px; }
.app-page-heading small, .app-section-title > span, .research-concept { max-width: none; }
.goal-picker { flex-wrap: wrap; }
.goal-picker > a { min-height: 48px; }
.goal-tabs a, .app-rail nav a { min-height: 48px; }
.app-review-note p, .app-boundary, .wl-footnote, .wl-small { line-height: 1.65; }
.goal-panel p { font-size: var(--text-body); }
/* Map geometry stays exact. The full-size room legend carries the names
   outside the illustration, where labels do not overlap the sprites. */
.wl-product .wl-character small { display: none; }
.map-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 16px 0 0; margin: 0; list-style: none; }
.map-legend li { font-size: var(--text-label); line-height: 1.5; color: var(--muted); }
.map-legend li.active { color: var(--brand-navy); font-weight: 700; }
@media (max-width: 1000px) {
  .marketing-header nav > a:not(.button) { display: none; }
  .how-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
  .wl-workspace { grid-template-columns: 1fr; }
  .wl-product .wl-world { border-right: 0; border-bottom: 1px solid var(--brand-line); }
  .wl-product .wl-hospital { max-width: 300px; margin-inline: auto; }
  .wl-world-heading, .wl-world-footer { max-width: 34rem; margin-inline: auto; }
  .voice-scene { max-width: 340px; margin-inline: auto; }
  .voice-scene svg { max-height: 260px; }
  .device-network { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; height: auto; padding-top: 280px; }
  .device-lines { display: none; }
  .device-heart { inset: 0 15% auto; height: 240px; }
  .device-node { position: static; width: auto; transform: none; }
}
@media (max-width: 760px) {
  .hero-copy h1 { font-size: clamp(48px,10vw,66px); }
  .hero-description { font-size: 1.125rem; }
  .hero-outcomes { font-size: 1.0625rem; }
  .new-hero { padding-top: 40px; }
  .hero-foot > span { max-width: 100%; }
  .research-loop { gap: 20px; }
  .team-stage { height: auto; padding: 80px 0 60px; }
  .team-turn-cast { position: relative; inset: auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 18px; align-items: start; }
  .team-turn-cast .turn-agent { position: relative; inset: auto; width: auto; margin: 0; transform: none; }
  .team-turn-cast .turn-chief { grid-column: 1/-1; grid-row: 1; }
  .agent-sprite, .turn-chief .agent-sprite { width: 116px; max-width: 100%; }
  .agent-name { font-size: var(--text-small); }
  .agent-role { font-size: var(--text-label); max-width: 155px; }
  .agent-ground { display: none; }
  .team-scroll-cue { height: 48px; letter-spacing: 0; }
  .team-welcome { max-width: 100%; white-space: normal; text-align: center; }
  .wl-app-nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; padding: 0; }
  .wl-product .wl-screen { padding: 24px 20px; }
  .wl-product .wl-header { align-items: flex-start; }
  .wl-goals { grid-template-columns: 1fr; }
  .goal-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .app-rail nav { display: flex; flex-wrap: wrap; }
  .app-rail nav a { flex: 1 1 85px; padding: 12px; }
  .app-rail nav a > span { font-size: 20px; }
  .goal-picker { display: grid; grid-template-columns: 1fr; }
  .goal-picker > a { justify-content: flex-start; padding: 12px; }
  .app-twin-links, .app-review-note { flex-wrap: wrap; }
  .app-section-title { align-items: flex-start; }
  .app-section-title > span { text-align: left; }
}
@media (max-width: 480px) {
  .marketing-header { height: auto; min-height: 100px; padding-block: 10px; }
  .marketing-header .brand-logo { width: 145px; }
  .marketing-header .button { font-size: var(--text-label); gap: 6px; padding: 12px 10px; }
  .demo-header .brand-logo { width: 145px; }
  .demo-header .quiet-button { font-size: var(--text-label); padding: 10px; }
  .how-grid { grid-template-columns: 1fr; }
  .how-section { padding-bottom: 55px; }
  .how-grid h3 { font-size: 1.5rem; }
  .device-network { grid-template-columns: 1fr; }
  .device-node { flex-direction: row; min-height: 100px; align-items: center; }
  .device-node svg { flex-shrink: 0; }
  .section-intro h2, .connected-heading h2 { overflow-wrap: normal; }
  .wl-product .wl-screen { padding-inline: 16px; }
  .wl-agent-tabs { display: grid; grid-template-columns: 1fr; }
  .wl-agent-tabs button { justify-content: flex-start; }
  .product-round-speakers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .voice-device { padding-inline: 18px; }
  .voice-device-top { display: grid; }
  .voice-specialist { justify-content: flex-start; }
  .voice-transcript { max-height: none; }
  .app-page-heading { display: block; }
  .research-concept { display: inline-block; margin-top: 14px; }
  .goal-panel { padding: 22px 16px; }
}
