/* Shared reading scale. Layouts reflow before copy or controls need to shrink. */
:root {
  --reading-size: clamp(18px, 1.2vw, 19px);
  --label-size: 11px;
  --page-gutter: max(4.2%, calc((100vw - 1680px) / 2));
}
@media screen {
  .section-wrap,.hero,.research-section,.contact-section,.site-footer { padding-left:var(--page-gutter);padding-right:var(--page-gutter) }
  .site-header { margin-left:var(--page-gutter);margin-right:var(--page-gutter) }
  .eyebrow,.hero-topline .eyebrow,.section-heading .eyebrow,.about-copy>.eyebrow,.toolkit-heading>.eyebrow,.approach-lead>.eyebrow,.contact-top>.eyebrow { font-size:var(--label-size);line-height:1.6 }
  .site-header nav>a { font-size:16px;min-height:44px;display:flex;align-items:center }
  .site-header nav { gap:32px }
  .wordmark-name { font-size:11px }
  .header-contact { font-size:12px;min-height:48px }
  sup { font-size:10px }
  .hero-edition { font-size:11px }
  .hero-description p { font-size:clamp(18px,1.45vw,23px);line-height:1.6;max-width:460px }
  .hero-description .desktop-br { display:none }
  .round-link { font-size:17px;gap:18px }
  .round-arrow { width:52px;height:52px }
  .link-sub { font-size:10px;line-height:1.7;margin-top:5px }
  .research-credential { font-size:15px;gap:13px;min-height:48px }
  .research-credential small { font-size:9px;line-height:1.8;max-width:330px }
  .credential-mark { width:34px;height:34px;flex-shrink:0 }
  .hero-copy { padding-bottom:42px }
  .hero-bottom { font-size:10px;gap:24px;line-height:1.6 }
  .hero-bottom>a { min-height:44px;display:flex;align-items:center }
  .sculpture-axis span,.coordinate,.drag-hint { font-size:9px }
  .mode-control { font-size:11px;min-height:44px;padding:10px 14px }
  .sculpture-controls { flex-wrap:wrap;gap:8px }
  .drag-hint { max-width:130px;text-align:right }
  .section-intro { max-width:470px;width:40% }
  .section-intro>p,.project-info>p,.principle p,.approach-lead>p:not(.eyebrow),.about-copy>p:not(.eyebrow),.research-description { font-size:var(--reading-size);line-height:1.75 }
  .section-intro br,.project-info>p br,.approach-lead>p:not(.eyebrow) br { display:none }
  .tiny-note { font-size:10px;line-height:1.7 }
  .project-number { font-size:11px;margin-bottom:13px }
  .project-title .project-name { font-size:clamp(26px,2.2vw,36px);line-height:1.25 }
  .project-title { min-height:44px }
  .tag-list { gap:8px }
  .tag-list>span { font-size:12px;padding:6px 12px }
  .film-head>.mono { font-size:11px;line-height:1.6 }
  .film-badge { font-size:9px }
  .film-coordinate { font-size:8px }
  .film-phase,.cinema-content .film-phase { font-size:10px;line-height:1.6;min-height:16px }
  .film-caption p { font-size:clamp(23px,1.9vw,30px);min-height:2.4em }
  .film-step,.cinema-content .film-step { font-size:12px;min-height:48px;line-height:1.5 }
  .film-toolbar { flex-wrap:wrap;gap:10px 24px;padding-top:12px }
  .film-disclaimer,.cinema-content .film-disclaimer { font-size:9px;line-height:1.6;max-width:none;flex:1 0 100% }
  .film-toolbar button,.cinema-content .film-toolbar button { font-size:12px;min-height:44px;padding:8px 4px }
  .film-toolbar button:last-child { margin-left:auto }
  .research-status { font-size:10px }
  .research-partners { font-size:16px;gap:13px;line-height:1.6 }
  .research-description { max-width:540px }
  .research-deck { font-size:clamp(21px,1.7vw,26px) }
  .research-byline strong { font-size:16px }
  .research-byline div>span { font-size:10px;line-height:1.7 }
  .research-art-heading { font-size:10px;line-height:1.6 }
  .research-scenario>.mono,.research-art-note { font-size:10px;line-height:1.6 }
  .research-scenario button { font-size:14px;min-height:48px;padding:12px }
  .research-scenario>p { font-size:14px;line-height:1.65;min-height:46px }
  .research-contributions { grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 38px }
  .research-contributions>.eyebrow { grid-column:1/-1 }
  .research-contributions>div>span { font-size:10px;line-height:1.6 }
  .research-contributions h3 { font-size:25px;line-height:1.2 }
  .research-contributions>div>p { font-size:16px;line-height:1.7;max-width:400px }
  .publication-title>.mono { font-size:10px }
  .publication-links { min-width:265px }
  .publication-links>a { font-size:14px;min-height:48px;align-items:center }
  .principle h3 { font-size:26px }
  .principle>div { max-width:500px }
  .principle>.mono { font-size:11px }
  .about-copy>p:not(.eyebrow) { max-width:650px }
  .about-copy>.about-intro { font-size:clamp(20px,1.6vw,25px)!important;line-height:1.6 }
  .experience-stats span { font-size:11px;max-width:125px }
  .experience-stats strong { font-size:55px }
  .portrait-caption { font-size:10px;line-height:1.6;flex-wrap:wrap }
  .text-link { font-size:16px;min-height:44px;align-items:center }
  .toolkit-heading h2 { font-size:32px;line-height:1.2 }
  .toolkit-grid h3 { font-size:23px;line-height:1.3 }
  .toolkit-grid p { font-size:15px;line-height:1.85 }
  .toolkit-grid p br { display:none }
  .contact-top>.mono { font-size:11px }
  .contact-links>a:first-child { font-size:clamp(20px,1.8vw,28px) }
  .contact-links>button,.contact-links>a:last-child { font-size:12px;min-height:44px;display:flex;align-items:center }
  .site-footer,.footer-name,#motion-toggle { font-size:10px;line-height:1.6 }
  #motion-toggle,.back-top { min-height:44px;display:flex;align-items:center }
  .dialog-close,.cinema-close { font-size:12px;min-height:48px }
  .dialog-content p:not(.eyebrow):not(.dialog-summary),.dialog-content li { font-size:16px;line-height:1.75 }
  .dialog-summary { font-size:21px }
  .dialog-content h3 { font-size:24px }
  .dialog-content .eyebrow,.cinema-top .eyebrow { font-size:10px }
  .dialog-contact { font-size:15px;min-height:48px }
}
@media screen and (min-width:901px) and (max-width:1200px) {
  .hero-body { grid-template-columns:1.1fr 1fr }
  .hero-description p { max-width:390px }
  .sculpture-controls { left:0;right:0 }
  .drag-hint { display:none }
  .research-grid { grid-template-columns:1fr 1fr;gap:4% }
  .research-partners { font-size:14px }
  .research-scenario>div { flex-direction:column }
  .research-copy h2 { font-size:clamp(43px,4.5vw,54px) }
  .about-section { gap:5% }
  .toolkit-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:36px }
  .toolkit-grid>div:nth-child(3) { border:0;padding-left:0 }
}
@media screen and (max-width:900px) {
  :root { --page-gutter:5%;--reading-size:17px }
  .wordmark-name { display:none }
  .site-header nav { gap:24px }
  .hero-edition { display:none }
  .hero-description p { font-size:18px }
  .hero-copy { padding-top:40px }
  .hero-bottom-note { display:none }
  .sculpture-controls { left:0;right:0 }
  .sculpture-axis { left:0;right:0 }
  .drag-hint,.coordinate { display:none }
  .mode-control { font-size:10px;padding:10px }
  .research-grid { grid-template-columns:1fr;gap:38px }
  .research-copy { max-width:650px }
  .research-copy h2 { font-size:clamp(48px,7vw,64px) }
  .research-description { max-width:650px }
  .research-art { min-height:0 }
  #research-canvas { height:auto;aspect-ratio:620/350 }
  .research-scenario>p { min-height:0 }
  .publication-card { flex-wrap:wrap }
  .publication-links { margin-left:0;flex:1 0 100%;grid-template-columns:1fr 1fr }
  .publication-icon { display:none }
  .publication-title h3 { font-size:28px }
  .research-contributions { gap:24px }
  .research-contributions h3 { font-size:23px }
  .research-contributions>div>p { font-size:15px }
  .section-heading { display:block }
  .section-intro { width:100%;max-width:620px;margin-top:25px }
  .project-grid { grid-template-columns:minmax(0,1fr);gap:52px }
  .project-card:nth-child(even) { transform:none }
  .film-caption p { min-height:1.2em }
  .film-stage { aspect-ratio:1.88 }
  .film-toolbar { gap:14px 30px }
  .film-disclaimer { flex:1 1 auto }
  .approach-inner { grid-template-columns:1fr;gap:35px }
  .approach-lead>p:not(.eyebrow) { max-width:620px }
  .principle-symbol { display:none }
  .principle>div { max-width:620px }
  .about-section { grid-template-columns:1fr;gap:40px }
  .about-image { max-width:420px;width:100% }
  .about-copy>h2 { font-size:clamp(40px,6vw,56px) }
  .toolkit-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:32px }
  .toolkit-grid>div { padding:0;border:0 }
  .toolkit-heading { display:block }
  .toolkit-heading h2 { margin-top:16px }
  .footer-note { display:none }
}
@media screen and (max-width:600px) {
  :root { --page-gutter:6%;--reading-size:18px;--label-size:10px }
  html { scroll-padding-top:24px }
  .site-header { height:auto;min-height:114px;display:grid;grid-template-columns:1fr auto;gap:6px 20px;padding:16px 0 8px }
  .wordmark { grid-column:1;grid-row:1 }
  .wordmark-name { display:block;font-size:9px;max-width:100px }
  .header-contact { grid-column:2;grid-row:1;font-size:11px;padding:8px 12px;min-height:44px }
  .site-header nav { grid-column:1/-1;grid-row:2;justify-content:space-between;gap:18px;margin:0 }
  .site-header nav>a,.site-header nav>a:nth-child(2),.site-header nav>a:nth-child(3) { display:flex;font-size:14px;min-height:44px }
  .hero-topline .eyebrow { font-size:9px;letter-spacing:.035em }
  .hero-body { display:flex;flex-direction:column;align-items:stretch;min-height:0 }
  .hero-copy { padding:34px 0 0;pointer-events:auto }
  h1 { font-size:clamp(41px,12.8vw,77px) }
  .hero-description { gap:12px;margin-top:26px }
  .hero-description p { font-size:18px;max-width:430px }
  .small-star { font-size:30px }
  .round-link { font-size:16px;margin-top:25px }
  .link-sub { font-size:9px }
  .research-credential { font-size:14px;margin-top:20px;max-width:100% }
  .research-credential small { font-size:8px;max-width:260px }
  .sculpture-panel { height:clamp(290px,82vw,420px);margin-top:25px;margin-bottom:8px }
  .sculpture-axis span { font-size:8px }
  .sculpture-controls { bottom:0;gap:8px }
  .mode-control { font-size:11px;padding:10px 12px }
  .hero-bottom { flex-wrap:wrap;font-size:9px;gap:4px 16px;padding:15px 0 }
  .hero-bottom>a { margin-left:auto }
  .hero-bottom>a>span { margin-left:10px }
  .strip-track>span { font-size:15px }
  .research-topline { gap:12px;align-items:flex-start;flex-wrap:wrap }
  .research-status { font-size:9px;line-height:1.6 }
  .research-partners { font-size:14px;gap:10px }
  .research-partners b { font-size:10px }
  .research-copy h2 { font-size:clamp(38px,11.5vw,66px) }
  .research-deck { font-size:20px }
  .research-byline strong { font-size:15px }
  .research-byline div>span { font-size:9px }
  .research-art-heading { font-size:9px;padding:18px 16px 0 }
  .research-scenario { padding:0 16px }
  .research-scenario>div { flex-direction:column }
  .research-scenario button { font-size:15px;min-height:48px }
  .research-scenario>p { font-size:14px }
  .research-art-note { font-size:8px;padding:14px 16px }
  .research-contributions { grid-template-columns:1fr;gap:28px }
  .research-contributions>div { display:block }
  .research-contributions>div>span { font-size:10px }
  .research-contributions h3 { font-size:25px;margin:9px 0 }
  .research-contributions>div>p { font-size:16px;max-width:none }
  .publication-card { padding:22px 18px }
  .publication-title h3 { font-size:26px }
  .publication-title h3 br { display:none }
  .publication-links { display:grid;grid-template-columns:1fr;min-width:0;margin-top:24px }
  .publication-links>a { font-size:14px;padding:12px }
  h2,.approach-lead>h2 { font-size:clamp(38px,10.5vw,56px) }
  .tiny-note { font-size:9px }
  .project-title .project-name { font-size:27px }
  .project-info>p { margin-top:13px }
  .tag-list>span { font-size:11px;padding:6px 10px }
  .film-head { padding:20px 18px 0;flex-wrap:wrap;gap:6px }
  .film-head>.mono { font-size:10px }
  .film-badge { font-size:8px }
  .film-stage { aspect-ratio:1.65;min-height:190px }
  .film-caption { padding:8px 18px 18px }
  .film-caption p { font-size:24px;min-height:2.4em }
  .film-coordinate { font-size:7px }
  .film-timeline { padding:0 18px;gap:10px }
  .film-step,.cinema-content .film-step { font-size:11px;min-height:48px }
  .film-toolbar { padding:8px 18px 16px;gap:8px 16px;justify-content:space-between }
  .film-disclaimer,.cinema-content .film-disclaimer { flex:1 0 100%;font-size:8px;max-width:none }
  .film-toolbar button,.cinema-content .film-toolbar button { font-size:11px;gap:7px;min-height:44px }
  .film-toolbar button:last-child { margin-left:0 }
  .film-phase,.cinema-content .film-phase { font-size:10px }
  .principle h3 { font-size:24px }
  .principle { gap:14px }
  .principle>.mono { font-size:10px }
  .about-copy>h2 { font-size:clamp(35px,9.5vw,52px) }
  .about-copy>.about-intro { font-size:21px!important }
  .experience-stats { gap:24px;justify-content:space-between }
  .experience-stats strong { font-size:48px }
  .experience-stats span { font-size:10px;max-width:95px }
  .experience-stats>div { gap:10px }
  .portrait-caption { font-size:9px }
  .toolkit-heading h2 { font-size:30px;max-width:400px }
  .toolkit-grid h3 { font-size:22px }
  .toolkit-grid p { font-size:16px }
  .contact-main { padding-bottom:35px }
  .contact-main h2 { font-size:11.8vw }
  .contact-arrow { width:48px;height:48px;bottom:28px }
  .contact-arrow>span { font-size:31px }
  .contact-links { gap:15px }
  .contact-links>a:first-child { font-size:clamp(17px,4.7vw,24px);overflow-wrap:anywhere }
  .contact-links>button,.contact-links>a:last-child { font-size:11px }
  .contact-links>a:last-child { margin-left:0 }
  .site-footer { gap:16px;font-size:9px }
  .footer-name { font-size:9px;flex-wrap:wrap;gap:8px }
  #motion-toggle { font-size:10px }
  .dialog-content { padding:12px 22px 28px }
  .dialog-content h2 { font-size:34px }
  .dialog-summary { font-size:20px }
  .dialog-content .eyebrow { font-size:10px }
  .dialog-contact { font-size:15px }
  .cinema-top { gap:12px }
  .cinema-top h2 { font-size:23px }
  .cinema-close { font-size:10px;gap:7px;flex-shrink:0;min-height:44px }
  .cinema-content .film-caption p { font-size:24px }
  .project-dialog { max-height:90dvh }
}
@media screen and (max-width:480px) {
  .toolkit-grid { grid-template-columns:1fr;gap:26px }
  .toolkit-grid>div { padding-top:22px;border-top:1px solid var(--line);border-left:0 }
  .toolkit-grid>div:nth-child(3) { padding-top:22px;border-top:1px solid var(--line) }
  .toolkit-grid>div:first-child { border:0;padding-top:0 }
}
