/* Ajustes consolidados da análise do site — setembro de 2026. */
.hero-shade { background: linear-gradient(180deg, #0d182e69, #0d182e15 30%, #0d182e8c); }
.home-hero > .hero-media { object-position: center; }
.coming-soon-image { position: relative; }
.coming-soon-band { position: absolute; z-index: 3; top: 30px; left: 0; padding: 12px 28px; background: #430b13; color: #fff; font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; pointer-events: none; }
.project-cover > .coming-soon-band { top: 34px; }
.home-launch .project-brand { background-color: #38372f; }
.portfolio-project + .portfolio-project { padding-top: clamp(64px, 7vw, 120px); }
.portfolio-project > .portfolio-description { padding-top: 0; padding-bottom: clamp(40px, 5vw, 72px); }
.portfolio-closing { padding-top: clamp(64px, 7vw, 120px); }
.project-gallery-rail .project-photo { height: auto; aspect-ratio: 4 / 5; }
.project-gallery-rail .project-photo > img { object-fit: cover; transform: none !important; }
.project-gallery-rail .project-photo.full-facade > img { object-fit: contain; background: var(--surface-page); }
.evolution-row .evolution-stage { font-size: clamp(14px, 1.3vw, 20px); line-height: 1.4; text-align: right; max-width: 14em; }
.evolution-row > div { gap: 20px; }
.evolution-row:not(:has(progress)) { padding-bottom: 25px; }
.evolution-row:not(:has(progress)) .evolution-caption { margin-top: 18px; }
.trajectory-card { padding: 11%; background: #122236; color: #f5f2e9; display: flex; flex-direction: column; justify-content: space-between; }
.trajectory-card .brand-mark-icon { width: 28%; height: auto; aspect-ratio: 1; background-color: currentColor; }
.trajectory-card-copy { font-size: clamp(28px, 3vw, 52px); font-weight: 300; line-height: 1.15; letter-spacing: -.03em; }
.trajectory-card-date { font-size: 11px; letter-spacing: .12em; }
.about-process { list-style: none; }
.menu-projects-toggle { grid-template-columns: 1fr auto; }
.menu-projects-panel { margin-left: 0; }
@media (max-width: 700px) {
  .coming-soon-band { top: 20px; padding: 10px 20px; font-size: 10px; }
  .portfolio-project + .portfolio-project { padding-top: 64px; }
  .evolution-row .evolution-stage { max-width: 12em; font-size: 13px; }
  .trajectory-card-copy { font-size: 34px; }
}


/* Controles Tricon: papel, linhas finas e o mesmo contraste da navegação. */
:root {
  --control-track: var(--surface-section);
  --control-thumb: var(--muted);
  --control-thumb-active: var(--ink);
}
html, body, dialog, .gallery-thumbs, .side-nav,
.lightbox, .small-dialog {
  scrollbar-width: thin;
  scrollbar-color: var(--control-thumb) var(--control-track);
}
@supports selector(::-webkit-scrollbar) {
  html, body, dialog, .gallery-thumbs, .side-nav, .lightbox, .small-dialog {
    scrollbar-width: auto;
    scrollbar-color: auto;
  }
}
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-track { background: var(--control-track); }
*::-webkit-scrollbar-thumb {
  background: var(--control-thumb);
  border: 2px solid var(--control-track);
  border-radius: 0;
}
*::-webkit-scrollbar-thumb:hover,
*::-webkit-scrollbar-thumb:active { background: var(--control-thumb-active); }
*::-webkit-scrollbar-corner { background: var(--control-track); }
*::-webkit-scrollbar-button { display: none; }
.gallery-thumbs { padding-bottom: 16px; scrollbar-gutter: stable; }
.gallery-thumbs button { flex-shrink: 0; }
.gallery-thumbs:focus-visible { outline: 2px solid var(--focus); outline-offset: 5px; }
.lightbox, .video-dialog { --control-track: var(--navy-deep); --control-thumb: var(--stone); }

/* Mantém a interação nativa de teclado dos disclosures, com desenho próprio. */
details, #ficha > details { border-block: 1px solid var(--line); padding: 0; }
details + details { border-top: 0; }
summary, #ficha > details summary {
  position: relative;
  min-height: 56px;
  padding: 18px 0;
  gap: 24px;
  color: var(--ink);
  font-family: var(--font);
  font-weight: 400;
  line-height: 1.5;
  list-style: none;
  transition: color var(--motion-exit) var(--ease-exit);
}
summary::marker { content: ''; }
summary::-webkit-details-marker { display: none; }
summary > span { display: none; }
summary::after {
  content: '';
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  background: linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
              linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
}
details[open] > summary::after { background-size: 100% 1px, 1px 0; }
summary:hover, details[open] > summary { color: var(--forest); }
details > :not(summary) { margin-top: 0; }
details > :last-child { margin-bottom: 24px; }
details p, #ficha > details p { color: var(--muted); }

.launch-banner-link { display: block; color: var(--paper); }
.launch-banner-link .bleed-frame img { transition: filter var(--motion-enter) var(--ease-enter); }
.launch-banner-link:hover .bleed-frame img { filter: brightness(.92); }
.launch-banner-link:focus-visible { outline-offset: -6px; }
.launch-banner-caption {
  position: absolute;
  z-index: 2;
  right: var(--page-gutter);
  bottom: 32px;
  display: inline-flex;
  align-items: center;
  gap: 28px;
  padding: 12px 18px;
  background: var(--navy);
  color: var(--paper);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.launch-banner-caption > span { font-size: 20px; line-height: 1; }
@media (prefers-reduced-motion: reduce) {
  summary, .launch-banner-link .bleed-frame img { transition: none; }
}
@media (forced-colors: active) {
  summary::after { background: none; content: '+'; height: auto; }
  details[open] > summary::after { content: '−'; }
  .launch-banner-caption { border: 1px solid ButtonText; }
}

.home-hero[data-parallax-horizontal] > .hero-media { will-change: transform; }
@media (prefers-reduced-motion: reduce) {
  .home-hero[data-parallax-horizontal] > .hero-media { transform: none !important; will-change: auto; }
}
