/* Escala de leitura: corpo 18px, controles 16px e textos auxiliares 13–14px. */
:root {
  --text-body: 1.125rem;
  --text-control: 1rem;
  --text-meta: .875rem;
  --text-label: .8125rem;
}

body { font-size: var(--text-body); }
.eyebrow { font-size: var(--text-label); letter-spacing: .11em; line-height: 1.65; }
.header { height: 128px; }
.signature { font-size: 2.5rem; }
.brand-sub { font-size: .6875rem; letter-spacing: .2em; }
.header nav { font-size: var(--text-control); gap: 30px; }
.nav-contact span { margin-left: 16px; }
.hero-copy .eyebrow { font-size: var(--text-label); letter-spacing: .09em; align-items: start; }
.tiny-star { flex-shrink: 0; }
.hero-copy > p { font-size: var(--text-body); line-height: 1.75; max-width: 400px; }
.button { font-size: var(--text-control); padding: 18px 25px; gap: 28px; }
.hero-foot { font-size: var(--text-meta); line-height: 1.65; max-width: 360px; }
.hero-foot > a { flex-shrink: 0; }
.hero .photo-label > span:first-child { font-size: var(--text-label); max-width: 265px; line-height: 1.6; }
.hero .photo-label > span:last-child { font-size: 1.25rem; }
.round-seal { font-size: .6875rem; letter-spacing: .06em; }
.manifesto-bottom { max-width: 720px; }
.manifesto-bottom p { font-size: var(--text-body); line-height: 1.75; }
.section-number, .demo-label, .fine-print { font-size: var(--text-meta); line-height: 1.7; }
.gallery-bar { flex-wrap: wrap; row-gap: 22px; }
.filters { flex-wrap: wrap; gap: 28px; }
.filters button { font-size: var(--text-control); padding: 9px 0; }
.filters sup { font-size: .75rem; }
.project-caption { gap: 16px; align-items: start; }
.project-caption .eyebrow { font-size: var(--text-label); line-height: 1.6; margin-bottom: 8px; }
.project-caption strong { font-size: 2.125rem; line-height: 1.2; }
.project-caption > span:last-child { font-size: var(--text-meta); padding-top: 3px; }
.portfolio-credit { max-width: 880px; }
.process-top { gap: 25px; }
.process-top .eyebrow { font-size: var(--text-label); }
.process-instruction { font-size: var(--text-meta); }
.process-title p { font-size: var(--text-control); line-height: 1.7; max-width: 320px; }
.drawing-label { font-size: var(--text-label); letter-spacing: .08em; max-width: calc(100% - 40px); line-height: 1.6; }
.process-bottom { font-size: var(--text-meta); gap: 20px; }
.stage-name { width: 260px; min-width: 0; }
.stage-count { width: 48px; flex-shrink: 0; }
.progress-track { min-width: 35px; }
.image-credit { font-size: var(--text-label); padding: 7px 11px; }
.about-profession { font-size: var(--text-label); letter-spacing: .15em; }
.about-copy p { font-size: var(--text-body); line-height: 1.75; max-width: 470px; }
.about-copy .about-intro { font-size: 1.875rem; line-height: 1.3; max-width: 430px; }
.credentials .eyebrow { font-size: var(--text-label); margin-bottom: 8px; }
.credentials p { font-size: var(--text-control); line-height: 1.75; }
.text-link { font-size: var(--text-control); gap: 25px; }
.about-signature { font-size: 2.5rem; }
.contact-heading > p { font-size: var(--text-body); line-height: 1.75; }
.contact-direct a { font-size: var(--text-control); }
.contact-direct a > .eyebrow { font-size: var(--text-label); margin-bottom: 8px; }
.contact-form label { font-size: var(--text-control); margin-bottom: 10px; }
.contact-form input, .contact-form textarea { font-size: var(--text-body); line-height: 1.6; }
.contact-form input::placeholder, .contact-form textarea::placeholder { font-size: var(--text-control); }
.form-notice { font-size: var(--text-meta); max-width: 460px; }
.footer-links { font-size: var(--text-meta); column-gap: 22px; }
.footer-bottom { font-size: var(--text-label); flex-wrap: wrap; gap: 12px; }
.gallery-count { font-size: var(--text-meta); }
.dialog-content p { font-size: var(--text-control); line-height: 1.75; }
.project-credit { font-size: var(--text-control) !important; }
.dialog-content .fine-print, #brief-dialog .fine-print { font-size: var(--text-meta); }
#brief-text { font-size: var(--text-control); line-height: 1.75; }
.brief-actions .button { font-size: .9375rem; min-width: 235px; }
.download-link, .toast { font-size: var(--text-control); }

@media (min-width: 721px) and (max-width: 1100px) {
  .header { position: relative; z-index: 10; height: 116px; }
  .menu-toggle { display: flex; align-items: center; gap: 15px; background: none; font-size: 1rem; padding: 12px 0; }
  .menu-toggle span { font-size: 1.4rem; }
  .header nav { display: none; position: absolute; left: 0; right: 0; top: 115px; background: var(--paper); padding: 25px 30px; box-shadow: 0 20px 25px #0001; flex-direction: column; align-items: stretch; gap: 8px; }
  .menu-open nav { display: flex; }
  .nav-contact { margin-left: 0; }
  .menu-open .menu-toggle span { transform: rotate(45deg); }
  .hero-copy { padding-right: 28px; }
  .hero-copy .eyebrow { font-size: var(--text-label); }
  .hero .photo-label { flex-direction: column; align-items: start; gap: 8px; }
  .hero .photo-label > span:last-child { text-align: left; }
  .about { gap: 6%; }
  .contact { gap: 7%; }
}

@media (max-width: 720px) {
  :root { --text-body: 1.0625rem; }
  .header { height: 104px; gap: 16px; }
  .header .signature { font-size: 1.875rem; }
  .brand-sub { font-size: .625rem; letter-spacing: .16em; }
  .menu-toggle { font-size: 1rem; gap: 10px; }
  .header nav { top: 103px; font-size: 1.0625rem; }
  .hero-copy .eyebrow { font-size: var(--text-label); letter-spacing: .08em; }
  .hero-copy > p { max-width: 100%; }
  .hero .photo-label { flex-direction: column; align-items: start; gap: 7px; }
  .hero .photo-label > span:first-child { max-width: 100%; font-size: var(--text-label); }
  .hero .photo-label > span:last-child { max-width: 100%; font-size: 1.125rem; text-align: left; }
  .round-seal { width: 88px; height: 88px; font-size: .625rem; bottom: 98px; }
  .manifesto-bottom { gap: 18px; align-items: start; }
  .little-mark { padding-right: 18px; }
  .manifesto-bottom p { font-size: var(--text-body); }
  .filters { gap: 12px 24px; }
  .filters button { font-size: 1rem; }
  .demo-label { font-size: var(--text-meta); }
  .project-caption { flex-wrap: wrap; gap: 10px; }
  .project-caption > span:first-child { flex: 1 1 220px; }
  .project-caption strong { font-size: 2rem; }
  .project-caption .eyebrow { font-size: var(--text-label); }
  .project-caption > span:last-child { font-size: var(--text-meta); padding-top: 0; }
  .process-top .eyebrow { font-size: var(--text-label); }
  .process-instruction { font-size: 0; flex-shrink: 0; }
  .process-title p { font-size: 1rem; max-width: 100%; }
  .drawing-label { font-size: var(--text-label); max-width: calc(100% - 20px); }
  .process-bottom { font-size: .8125rem; gap: 12px; }
  .stage-name { width: auto; flex: 1; }
  .progress-track { flex: 0 0 20%; }
  .about-copy p { max-width: 100%; }
  .about-copy .about-intro { font-size: 1.875rem; }
  .credentials p { font-size: 1rem; }
  .about-signature { font-size: 2.25rem; }
  .contact-direct a { font-size: 1rem; }
  .form-notice { max-width: 100%; }
  footer { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  footer > .brand { align-items: start; }
  footer .signature { font-size: 2.125rem; }
  .footer-links { justify-self: start; flex-direction: row; justify-content: start; align-items: center; gap: 16px 24px; font-size: .9375rem; }
  .footer-bottom { margin-top: 0; font-size: .8125rem; }
  .dialog-content p { font-size: 1rem; }
  .brief-actions .button { min-width: 0; font-size: .9375rem; }
}

@media (max-width: 360px) {
  .header .signature { font-size: 1.65rem; }
  .menu-toggle { font-size: .9375rem; }
  .filters { column-gap: 20px; }
  .hero .button { width: 100%; }
  .image-credit { font-size: var(--text-label); }
}
