/* Shared responsive corrections and full-image concept viewer. */
*, *::before, *::after { box-sizing: border-box; }
body { overflow-wrap: break-word; }
main, section, article, figure, .section-heading > *, .statement-grid > * { min-width: 0; }
section[id] { scroll-margin-top: 90px; }
.project-card { display: block; }
.process-track { align-items: start; }
.process-slide { min-width: 0; }
.process-visual { position: relative; }
.process-visual img { position: absolute; inset: 0; }
@media (max-width: 720px) {
  h1, h2, h3 { overflow-wrap: anywhere; line-height: 1.04; }
  .hero { height: auto; min-height: 100svh; display: flex; align-items: end; padding: 150px 16px 130px; }
  .hero-content { position: relative; inset: auto; width: 100%; }
  .hero h1 { font-size: clamp(3rem, 13vw, 4.6rem); }
  .hero-intro { max-width: 100%; }
  .hero-meta { align-items: flex-start; }
  .slide-dot { height: 44px; background: linear-gradient(transparent 21px,#ffffff55 21px 23px,transparent 23px); }
  .slide-dot.is-active { background: linear-gradient(transparent 21px,#fff 21px 23px,transparent 23px); }
  .statement, .applications, .process, .next-projects { padding-block: 72px; }
  .section-heading, .statement-grid { padding-top: 32px; padding-bottom: 36px; gap: 24px; }
  .audience-card { min-height: 0; padding: 40px 24px 110px; }
  .audience-card h3, .audience-card p:last-child { padding-right: 0; }
  .project-card { aspect-ratio: auto; overflow: visible; margin-bottom: 28px; background: transparent; color: #191918; }
  .project-card img { height: auto; aspect-ratio: 4/3; object-fit: cover; }
  .project-card::after { display: none; }
  .project-overlay { position: static; padding: 22px 0 0; }
  .project-overlay h3 { font-size: clamp(2.2rem, 10vw, 3rem); }
  .project-overlay p { font-size: 1rem; opacity: 1; }
  .project-open { border-color: #19191844; font-size: .75rem; }
  .process-visual { height: 300px; min-height: 0; }
  .process-copy { min-height: 360px; padding: 32px 24px; }
  .process-copy h3 { font-size: clamp(2.5rem, 11vw, 3.4rem); }
  .process-actions button { font-size: .75rem; letter-spacing: .02em; min-height: 56px; }
  .material-content { padding-block: 72px; }
  .material-intro { padding-block: 32px 40px; gap: 24px; }
  .material-card figcaption { right: 20px; line-height: 1.15; }
  .detail-hero { height: auto; min-height: 90svh; display: flex; align-items: end; padding: 150px 16px 64px; }
  .detail-hero-copy { position: relative; inset: auto; }
  .detail-hero h1 { font-size: clamp(3rem, 13vw, 4.6rem); }
  .detail-intro { padding-block: 72px; gap: 28px; }
  .detail-intro h2 { font-size: clamp(2.7rem, 11vw, 3.8rem); }
  .possibilities { padding-bottom: 72px; }
  .possibility-card, .possibility-card:nth-child(n+2) { min-height: 0; margin-bottom: 32px; background: transparent; color: #191918; aspect-ratio: auto; }
  .possibility-card img { height: auto; aspect-ratio: 4/3; object-fit: cover; }
  .possibility-card::after { display: none; }
  .possibility-card figcaption { position: static; padding: 22px 0 12px; }
  .possibility-card h3 { font-size: clamp(2.7rem, 12vw, 3.5rem); }
  .possibility-card p { font-size: 1rem; opacity: 1; }
  .hotspot-layer { inset: 0 0 auto; aspect-ratio: 4/3; }
  .material-hotspot { width: 38px; height: 38px; }
  .material-popover { position: relative; top: auto; right: auto; width: 100%; margin-top: 18px; padding: 22px; box-shadow: none; border-top: 1px solid var(--line); }
  .possibility-card.has-open-hotspot figcaption { opacity: 1; }
  .material-break-image { min-height: 0; }
  .material-break-image img { height: 350px; object-fit: cover; }
  .contact-routes a { grid-template-columns: 1fr; gap: 4px; }
  .contact-routes strong { overflow-wrap: anywhere; }
  .button, .contact-button { height: auto; min-height: 58px; padding-block: 14px; }
  .contact h2, .detail-contact h2 { font-size: clamp(3rem, 13vw, 4.2rem); }
  .copyright { position: static; margin-top: 24px; }
}
