/* Shared editorial finishing. Section order and all original artwork are unchanged. */
:root { --atelier-ease:cubic-bezier(.16,1,.3,1); --atelier-rule:rgb(75 24 31 / .17); }
:is(#solucao,#sobre,#processo,#faq,#contato) h2 { text-wrap:balance; }
:is(#solucao,#processo,#faq,#contato) h2 em { color:var(--brick); }
:is(#solucao,#sobre,#contato) .chapter-label { letter-spacing:.14em; font-size:.6875rem; }
:is(#solucao,#processo,#faq) { background-color:var(--paper); }
#solucao .services-heading::after { content:''; display:block; width:54px; height:1px; background:var(--brick); margin-top:28px; transform:scaleX(.3); transform-origin:left; transition:transform 850ms var(--atelier-ease); }
#solucao.section-arrived .services-heading::after { transform:scaleX(1); }
#solucao .services-heading > p:last-of-type { max-width:28ch; line-height:1.85; }
#solucao .service-row { border-radius:7px; border-color:var(--atelier-rule); box-shadow:0 9px 24px rgb(75 24 31 / .035); }
#solucao .service-body { position:relative; min-width:0; max-width:100%; padding:25px 20px 20px; border-radius:0 0 7px 7px; }
#solucao .service-body h3 { max-width:100%; overflow-wrap:anywhere; font-weight:400; margin-bottom:20px; }
#solucao .service-description { flex:1; line-height:1.8; font-weight:400; text-wrap:pretty; }
#solucao .service-scope { min-height:3.6em; font-size:.71875rem; line-height:1.8; }
#solucao .service-cta { border-color:var(--atelier-rule); font-size:.78125rem; }
#solucao .service-row:nth-child(2) .service-cta { border-color:rgb(247 243 232 / .25); }
#solucao .service-image { border-radius:6px 6px 0 0; }
#sobre .about-copy > p:not(.chapter-label) { line-height:1.9; max-width:45ch; }
#sobre .about-copy > p:first-of-type { color:var(--rose); }
#sobre .portrait-window { border-width:5px; border-radius:5px; }
#sobre .personal-notes { border-color:rgb(231 174 191 / .36); padding-top:38px; }
#sobre .notes-heading h3 { line-height:1.2; }
#sobre .note-caption { font-size:.71875rem; padding-top:13px; }
#sobre .notes-profile { gap:10px; }
#processo .process-list { gap:20px; }
#processo li.process-step { border-radius:7px; border-color:var(--atelier-rule); padding:28px 23px; }
#processo .step-number { font-family:'Melodrame',Georgia,serif; font-size:3rem; margin-bottom:22px; }
#processo li h3 { font-weight:500; line-height:1.45; }
#processo li p { line-height:1.85; }
#faq .section-heading { margin-bottom:32px; }
#faq .faq-list { border-top-color:var(--atelier-rule); }
#faq .faq-list details { border-bottom-color:var(--atelier-rule); transition:background-color 250ms ease; }
#faq .faq-list details[open] { background:rgb(231 174 191 / .08); }
#faq .faq-list summary { padding-inline:12px; }
#faq .faq-answer { padding-left:12px; }
#contato .contact-panel { border-radius:10px; }
#contato .contact-description { line-height:1.85; max-width:34ch; }
#contato .contact-copy { background:radial-gradient(ellipse at 90% 0%,rgb(231 174 191 / .16),transparent 68%); }
#contato .button { border-radius:5px; }
.site-footer .footer-panel,.site-footer .footer-bottom { border-color:rgb(231 174 191 / .3); }

@media (max-width:700px) {
  .project-case .case-intro { padding-bottom:22px; }
  .project-case .case-return-top { bottom:14px; right:14px; }
  .case-lightbox .case-lightbox-shell { grid-template-rows:106px minmax(0,1fr); }
  .case-lightbox header { display:grid; grid-template-columns:1fr; gap:0; padding:6px 12px; }
  .case-lightbox .case-zoom-close { justify-self:start; padding-left:0; }
  .case-lightbox .case-zoom-tools { width:100%; justify-content:flex-start; gap:4px; }
  .case-lightbox .case-actual-size { margin-left:auto; }
  #processo li.process-step { padding:24px 20px; }
  #processo .step-number { font-size:2.5rem; margin:0; }
}
@media (hover: hover) and (pointer: fine) {
  .project-case .case-inquiry:hover { background:var(--rose-light); color:var(--wine); border-color:var(--rose-light); }
  .project-case .case-inquiry:hover svg,.project-case .case-end-contact:hover svg { transform:translate(3px,-3px); }
  .case-lightbox .case-zoom-tools button:not(:disabled):hover { background:var(--rose-light); }
  #solucao .service-row:hover { box-shadow:0 20px 34px rgb(75 24 31 / .085); }
}
@media (prefers-reduced-motion: reduce) {
  #solucao .services-heading::after { transform:none; transition:none; }
  .project-case .case-inquiry:hover svg,.project-case .case-end-contact:hover svg { transform:none; }
}
html[data-motion="reduced"] #solucao .services-heading::after { transform:none; transition:none; }
html[data-motion="reduced"] .project-case :is(.case-inquiry,.case-end-contact):hover svg { transform:none; }

/* Final rhythm: preserve the page grid, align card copy and soften feedback. */
#solucao .service-row { transition:transform 320ms var(--atelier-ease), border-color 260ms ease, box-shadow 360ms ease; }
#solucao .service-cta { margin-top:0; }
#processo .process-intro p, #processo li p, #sobre .about-copy > p, #contato .contact-description { text-wrap:pretty; }
#processo .process-list { align-items:stretch; }
#faq .faq-list summary { align-items:center; }
#faq .faq-answer { padding-right:48px; }
#faq .faq-answer .inline-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:8px; }
.contact-email { overflow-wrap:anywhere; }
.site-footer .footer-bottom { align-items:center; }
.site-footer .footer-bottom a, .site-footer .motion-toggle { display:inline-flex; align-items:center; min-height:44px; }
.case-inquiry, .case-end-contact, .case-zoom-tools button { transition:background-color 220ms ease, color 220ms ease, border-color 220ms ease; }
.case-inquiry svg, .case-end-contact svg { transition:transform 300ms var(--atelier-ease); }
.story-offscreen :is(.story-card,.cloud-drift,.cloud-wake) { will-change:auto; }
#projetos .project[aria-hidden="true"] { will-change:auto; }
@media (min-width:960px) {
  #solucao .service-body h3 { min-height:2.6em; }
}
@media (max-width:760px) {
  #solucao .service-scope { min-height:0; margin-block:20px; }
  #sobre .notes-heading h3 { max-width:15ch; }
  #processo li.process-step { grid-template-columns:42px minmax(0,1fr); column-gap:16px; }
  #processo .step-number { line-height:1; padding-top:2px; }
  #faq .faq-answer { padding-right:12px; }
  #contato .contact-copy { padding-inline:24px; }
  .site-footer .footer-top { row-gap:16px; }
}
@media (hover:hover) and (pointer:fine) {
  .case-close:hover svg { transform:rotate(90deg); }
  .case-close svg { transition:transform 320ms var(--atelier-ease); }
}
@media (prefers-reduced-motion:reduce) {
  .case-close:hover svg { transform:none; }
}
html[data-motion="reduced"] .case-close:hover svg { transform:none; }

/* Detail pass: clear focus, consistent hit areas, and a genuine fit-to-screen viewer. */
.hero-social a, .footer-social a, .contact-email { min-height:44px; }
.footer-social a { display:inline-flex; align-items:center; }
.contact-email { padding-block:4px; }
.portfolio-archive .ui-icon, .notes-profile .ui-icon { flex-shrink:0; }
#solucao .service-cta, #contato .button, .case-inquiry, .case-end-contact { text-wrap:balance; }

/* Contact actions use their channel mark; the repeated diagonal arrow is unnecessary here. */
#solucao .service-cta > span[data-icon="whatsapp"] { display:grid; width:36px; height:36px; flex:0 0 36px; place-items:center; border:1px solid currentColor; border-radius:50%; transition:background-color 250ms,color 250ms; }
#solucao .service-cta > span[data-icon="whatsapp"] .ui-icon-whatsapp { width:18px; height:18px; }
#solucao .service-cta:hover > span[data-icon="whatsapp"] { transform:none; background:var(--wine); color:var(--paper); }
#contato .button-icon[data-icon="whatsapp"] { transform:none; }
#contato .button-icon[data-icon="whatsapp"] .ui-icon-whatsapp { width:21px; height:21px; }
.project-case .ui-icon-whatsapp { width:18px; height:18px; flex:0 0 18px; }
.project-case .case-inquiry:hover .ui-icon-whatsapp,.project-case .case-end-contact:hover .ui-icon-whatsapp { transform:none; }
.faq-answer .inline-link > span[data-icon="whatsapp"] { display:inline-flex; vertical-align:middle; margin-left:7px; }
.faq-answer .inline-link .ui-icon-whatsapp { width:17px; height:17px; }
#solucao .service-art:focus-visible { outline-offset:5px; }
.project-case .case-source { min-height:44px; }
.project-case .case-other-projects button { min-width:0; }
.project-case .case-other-projects button > span { min-width:0; }
.project-case .case-image-button:focus-visible { outline:3px solid var(--paper); outline-offset:-5px; box-shadow:inset 0 0 0 8px var(--wine); }
.case-lightbox .case-lightbox-shell { position:relative; grid-template-rows:auto minmax(0,1fr); }
.case-lightbox .case-lightbox-scroll { display:flex; align-items:flex-start; }
.case-lightbox img { flex:none; max-height:100%; margin:auto; }
.case-lightbox img.is-natural { max-height:none; max-width:none; }
.case-lightbox img.is-loading { opacity:0; }
.case-lightbox header :focus-visible { outline-color:var(--wine); outline-offset:2px; }
.case-lightbox .case-zoom-feedback { position:absolute; z-index:2; top:50%; left:20px; right:20px; display:grid; justify-items:center; gap:16px; text-align:center; color:var(--paper); font-size:.875rem; line-height:1.6; }
.case-lightbox .case-zoom-feedback[hidden], .case-lightbox .case-zoom-feedback button[hidden] { display:none; }
.case-lightbox .case-zoom-feedback button { min-height:44px; padding:10px 20px; border:1px solid var(--rose); border-radius:4px; background:var(--paper); color:var(--wine); }
@media (max-width:700px) {
  .project-case .case-other-projects button { grid-template-columns:60px minmax(0,1fr) 20px; gap:12px; }
  .project-case .case-other-projects img { width:60px; }
  .project-case .case-other-projects .ui-icon { width:18px; height:18px; }
  .case-lightbox header { padding-block:8px; }
  .case-lightbox .case-zoom-tools { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:no-preference) {
  :is(.button,.orbit-navigation button,.case-close,.case-zoom-tools button,.case-zoom-close):active { scale:.975; }
}
html[data-motion="reduced"] :is(.button,.orbit-navigation button,.case-close,.case-zoom-tools button,.case-zoom-close):active { scale:1; }
@media (forced-colors:active) {
  .project-case .case-image-button:focus-visible { outline-color:Highlight; }
}

/* Web Design Master — preserve the approved grid; refine its rhythm. */
:root { --chapter-breath:clamp(44px,5vw,72px); }
/* The icon's source token must not overflow before progressive enhancement. */
#solucao .service-cta > span[data-icon="whatsapp"],
#contato .button-icon[data-icon="whatsapp"],
.faq-answer .inline-link > span[data-icon="whatsapp"] { font-size:0; }
#solucao .service-list { gap:clamp(16px,1.65vw,24px); }
#solucao .service-body { padding:clamp(22px,1.8vw,28px); }
#solucao .service-body h3 { margin-bottom:16px; }
#solucao .service-scope { margin-block:20px 24px; }
#solucao .service-cta { margin-top:auto; padding-top:16px; }
#solucao { padding-bottom:var(--chapter-breath); }
#projetos { padding-bottom:40px; }
#sobre { row-gap:clamp(40px,5vw,64px); }
#sobre .personal-notes { padding-top:clamp(30px,3.5vw,48px); }
#sobre .note-caption { line-height:1.65; }
#sobre .note-post { color:var(--ink); }
#sobre .note-card { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid rgb(75 24 31 / .16); border-radius:6px; background:var(--paper); }
#sobre .note-card .post-header { min-height:54px; padding:9px 11px; gap:8px; font-size:.6875rem; }
#sobre .note-card .post-avatar { width:32px; height:32px; }
#sobre .note-card .post-identity small { font-size:.5625rem; }
#sobre .note-card .post-menu { width:16px; height:16px; }
#sobre .note-card .note-image { width:100%; aspect-ratio:3/4; border-radius:0; }
#sobre .note-card .note-image > img { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
#sobre .note-card .post-footer { min-height:37px; padding:8px 11px 0; }
#sobre .note-card .post-caption { flex:1; min-height:43px; padding:5px 11px 12px; font-size:.6875rem; line-height:1.4; color:var(--ink); }
#sobre .note-card .post-caption strong { margin-right:2px; }
#processo { padding-top:var(--chapter-breath); padding-bottom:32px; }
#processo .process-list { margin-top:36px; }
#processo li.process-step { padding:28px 24px; }
#faq { padding-top:40px; padding-bottom:var(--chapter-breath); }
#faq .faq-list summary { padding-block:22px; }
#faq .faq-answer { padding-bottom:28px; }
#contato .contact-copy { padding:clamp(32px,4.5vw,64px); }
.project-case .case-description { line-height:1.85; }
.project-case .case-intro { row-gap:24px; }

/* A fine edge follows interaction, with no ambient loop or moving hit area. */
#solucao .service-body::after {
  content:''; position:absolute; left:-1px; top:22px; bottom:22px; width:2px;
  background:var(--brick); transform:scaleY(0); transform-origin:50% 0;
  transition:transform 360ms var(--atelier-ease); pointer-events:none;
}
#solucao .service-row:nth-child(2) .service-body::after { background:var(--rose); }
#solucao .service-row:focus-within .service-body::after { transform:scaleY(1); }
#faq .faq-list details { position:relative; }
#faq .faq-list details::before {
  content:''; position:absolute; inset:18px auto 18px 0; width:2px;
  background:var(--brick); opacity:0; transform:scaleY(.3); transform-origin:top;
  transition:transform 240ms var(--atelier-ease),opacity 180ms ease; pointer-events:none;
}
#faq .faq-list details[open]::before { opacity:.7; transform:scaleY(1); }
@media (hover:hover) and (pointer:fine) {
  #solucao .service-row:hover .service-body::after { transform:scaleY(1); }
  /* Shadows remain still while the existing spring moves the photograph. */
  #projetos .project-visual,#solucao .service-image,#sobre .portrait-window,.note-image { transition:border-color 240ms ease; }
}
@media (max-width:760px) {
  #solucao { padding-top:40px; padding-bottom:36px; }
  #solucao .services-heading { margin-bottom:32px; }
  #solucao .service-list { gap:24px; }
  #solucao .service-body { padding:24px; }
  #solucao .service-scope { margin-block:16px 20px; }
  #solucao .service-cta { min-height:56px; }
  #projetos { padding-bottom:32px; }
  #sobre { padding-block:64px; row-gap:36px; }
  #sobre .personal-notes { padding-top:32px; }
  #sobre .notes-track { row-gap:26px; }
  #processo { padding-block:40px 24px; }
  #processo .process-list { margin-top:30px; gap:16px; }
  #processo li.process-step { padding:24px 20px; grid-template-columns:36px minmax(0,1fr); column-gap:14px; }
  #faq { padding-block:32px 40px; }
  #faq .faq-list summary { padding-block:20px; }
  #contato { padding-top:56px; }
  #contato .contact-copy { padding:32px 24px 36px; }
  .site-footer .footer-top { padding-bottom:20px; }
}

/* Each animated variable belongs only to the element that renders it.
   Older browsers safely retain ordinary custom-property behavior. */
@property --cloud-y { syntax:'<length-percentage>'; inherits:false; initial-value:0px; }
@property --cloud-opacity { syntax:'<number>'; inherits:false; initial-value:0; }
@property --intro-y { syntax:'<length>'; inherits:false; initial-value:0px; }
@property --intro-opacity { syntax:'<number>'; inherits:false; initial-value:1; }
@property --outro-y { syntax:'<length>'; inherits:false; initial-value:-70px; }
@property --outro-opacity { syntax:'<number>'; inherits:false; initial-value:0; }
@property --card-x { syntax:'<length>'; inherits:false; initial-value:0px; }
@property --card-y { syntax:'<length>'; inherits:false; initial-value:0px; }
@property --card-sx { syntax:'<number>'; inherits:false; initial-value:1; }
@property --card-sy { syntax:'<number>'; inherits:false; initial-value:1; }
@property --card-angle { syntax:'<angle>'; inherits:false; initial-value:0deg; }

/* Touch retains the cloud crossing, with two bounded plates instead of eight
   continually drifting, filtered plates and four additional wisps. */
@media (max-width:760px), (pointer:coarse) {
  .story-clouds .cloud-drift {
    left:calc(50% - var(--cloud-width) / 2); width:var(--cloud-width);
    animation:none; will-change:auto; transform:none;
  }
  .story-clouds .cloud-piece:nth-child(n+2),.story-clouds .cloud-wake { display:none; }
  .story-animated .story-clouds .cloud-piece { filter:none; mix-blend-mode:normal; }
  .story-animated .story-clouds-back::before { display:none; }
  .project-preview.project-case::backdrop { backdrop-filter:none; background:rgb(69 38 33 / .9); }
  .menu-enabled .site-header .main-nav.is-open { backdrop-filter:none; background:var(--wine); }
  #solucao .service-row,#processo li.process-step { box-shadow:none; }
  #solucao .service-image,#projetos .project-visual,.note-image { box-shadow:none; }
  #sobre .portrait-window { box-shadow:0 12px 28px rgb(69 38 33 / .16); }
}
@media (prefers-reduced-motion:reduce) {
  #solucao .service-body::after,#faq .faq-list details::before { transition:none; }
}
html[data-motion="reduced"] #solucao .service-body::after,
html[data-motion="reduced"] #faq .faq-list details::before { transition:none; }

/* Signature pass — local feedback and clear actions in the approved layout. */
.brand-mark { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; line-height:1; }
.brand-icon { display:block; width:20px; height:20px; flex-shrink:0; fill:currentColor; stroke:none; }
.hero-social a { position:relative; isolation:isolate; }
.hero-social a::before {
  content:''; position:absolute; inset:3px; z-index:-1; border:1px solid rgb(231 174 191 / .42);
  border-radius:50%; opacity:0; transform:scale(.86);
  transition:opacity 180ms ease,transform 320ms var(--atelier-ease); pointer-events:none;
}
.hero-social .brand-icon { width:18px; height:18px; }
.hero-social .brand-mark { transition:translate 280ms var(--atelier-ease); }
.hero-social a:focus-visible::before { opacity:1; transform:scale(1); }
.footer-social a { gap:9px; }
.footer-social .brand-icon,.notes-profile .brand-icon { width:16px; height:16px; }
.notes-profile { padding-inline:0; }
#solucao .service-cta > span[data-icon="whatsapp"] {
  width:40px; height:40px; flex-basis:40px; border-color:rgb(75 24 31 / .24);
  background:transparent; transition:background-color 220ms ease,color 220ms ease,border-color 220ms ease;
}
#solucao .service-cta > span[data-icon="whatsapp"] .ui-icon-whatsapp { width:20px; height:20px; }
#solucao .service-row:nth-child(2) .service-cta > span[data-icon="whatsapp"] { border-color:rgb(247 243 232 / .4); }
#solucao .service-cta:focus-visible > span[data-icon="whatsapp"] { background:var(--wine); color:var(--paper); }
#solucao .service-row:nth-child(2) .service-cta:focus-visible > span[data-icon="whatsapp"] { background:var(--paper); color:var(--wine); }
#contato .button-icon[data-icon="whatsapp"] .ui-icon-whatsapp { width:22px; height:22px; }
#contato .button:focus-visible { color:var(--wine); }

/* Two contextual invitations, set in the existing columns, without new panels. */
.context-cta {
  position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:space-between;
  gap:24px; max-width:100%; min-height:52px; padding:8px 10px 8px 18px;
  border:1px solid currentColor; border-radius:6px; text-decoration:none;
  font-size:.8125rem; font-weight:500; line-height:1.5; text-align:left;
  overflow:hidden; transition:color 220ms ease,border-color 220ms ease,background-color 220ms ease,scale 140ms var(--atelier-ease);
}
.context-cta::before {
  content:''; position:absolute; inset:0; z-index:-1; background:var(--rose-light);
  transform:scaleX(0); transform-origin:right; transition:transform 360ms var(--atelier-ease);
}
.context-cta .action-mark { width:34px; height:34px; border-radius:50%; background:rgb(231 174 191 / .1); }
.context-cta .brand-icon { width:19px; height:19px; }
#sobre .context-cta-light { margin-top:28px; color:var(--paper); border-color:rgb(231 174 191 / .5); }
.context-cta-paper { color:var(--wine); border-color:rgb(75 24 31 / .24); }
.process-action { display:flex; justify-content:flex-end; margin-top:28px; }
.context-cta:focus-visible::before { transform:scaleX(1); transform-origin:left; }
#sobre .context-cta:focus-visible { color:var(--wine); }

/* A brief light sweep is tied to intent; it never plays on a timer. */
.story-intro .hero-actions .button::after,#contato .button::after,.case-inquiry::after {
  content:''; position:absolute; inset:-1px; z-index:-1; pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,rgb(247 243 232 / .28) 48%,transparent 70%);
  transform:translateX(-110%); opacity:0; transition:transform var(--feedback-settle) var(--atelier-ease),opacity var(--feedback-fast) ease;
}
.case-inquiry { position:relative; isolation:isolate; overflow:hidden; }
#projetos .orbit-title { position:relative; min-height:44px; padding:5px 8px; text-decoration:none; }
#projetos .orbit-title::after {
  content:''; position:absolute; left:8px; right:8px; bottom:3px; height:1px; background:var(--brick);
  transform:scaleX(0); transform-origin:right; transition:transform 300ms var(--atelier-ease);
}
#projetos .orbit-title:focus-visible::after { transform:scaleX(1); transform-origin:left; }
#sobre .portrait-window,#sobre .note-image { position:relative; }
#sobre .portrait-window::after {
  content:''; position:absolute; inset:10px; border:1px solid rgb(247 243 232 / .65);
  opacity:0; transform:scale(.98); pointer-events:none;
  transition:opacity 260ms ease,transform 420ms var(--atelier-ease);
}
#sobre .note-open {
  display:inline-flex; position:absolute; z-index:4; right:10px; bottom:10px; align-items:center; gap:8px;
  padding:9px 11px; border-radius:4px; background:var(--paper); color:var(--wine);
  font-size:.625rem; line-height:1.5; pointer-events:none; opacity:0; translate:0 6px;
  transition:opacity 220ms ease,translate 320ms var(--atelier-ease);
}
#sobre .note-open .brand-icon { width:13px; height:13px; }
#sobre .note-post:focus-visible .note-open { opacity:1; translate:0 0; }
#processo li.process-step { overflow:hidden; isolation:isolate; }
#processo li.process-step::before {
  display:block; content:''; position:absolute; z-index:-1; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 0 0,rgb(231 174 191 / .2),transparent 70%);
  opacity:0; transition:opacity 300ms ease;
}
#processo .step-number { transition:transform 360ms var(--atelier-ease),color 240ms ease; }
#faq .faq-list summary > span { flex-shrink:0; transform-origin:center; }
.project-case .case-close { min-width:44px; justify-content:center; border-radius:4px; padding-inline:10px; }
.case-lightbox .case-zoom-tools button { min-width:44px; justify-content:center; border-radius:4px; }
.project-case .case-source { gap:10px; }
.project-case .case-source .brand-icon { width:20px; height:20px; }
.project-case .case-inquiry .brand-icon,.project-case .case-end-contact .brand-icon { width:20px; height:20px; }
.case-lightbox .case-zoom-tools button:disabled { opacity:.38; cursor:default; }
.case-return-top { transition:background-color 200ms ease,color 200ms ease; }
.menu-toggle { min-height:44px; min-width:64px; }
.motion-toggle { text-underline-offset:5px; }
.motion-toggle[aria-pressed="true"] { text-decoration:underline; }
@media (hover:hover) and (pointer:fine) {
  .hero-social a:hover::before { opacity:1; transform:scale(1); }
  .hero-social a:hover .brand-mark { translate:0 -2px; }
  .hero-social a:hover { background:transparent; }
  .context-cta:hover::before { transform:scaleX(1); transform-origin:left; }
  #sobre .context-cta:hover { color:var(--wine); }
  #solucao .service-row:nth-child(2) .service-cta:hover > span[data-icon="whatsapp"] { background:var(--paper); color:var(--wine); }
  #contato .button:hover { color:var(--wine); }
  .story-intro .hero-actions .button:hover::after,#contato .button:hover::after,.case-inquiry:hover::after { transform:translateX(110%); opacity:1; }
  #projetos .orbit-title:hover::after { transform:scaleX(1); transform-origin:left; }
  #sobre .about-visual:hover .portrait-window::after { opacity:1; transform:scale(1); }
  #sobre .note-post:hover .note-open { opacity:1; translate:0 0; }
  #processo li.process-step:hover { transform:translateY(-3px); background:var(--paper); border-color:rgb(75 24 31 / .35); }
  #processo li.process-step:last-child:hover { background:var(--butter); }
  #processo li.process-step:hover::before { opacity:1; }
  #processo li.process-step:hover .step-number { transform:translateY(-2px); color:var(--wine); }
  .project-case .case-close:hover,.case-lightbox .case-zoom-close:hover { background:var(--rose-light); color:var(--wine); }
  .case-return-top:hover { background:var(--rose-light); color:var(--wine); }
}
@media (max-width:760px) {
  #sobre .context-cta { margin-top:24px; }
  .context-cta { gap:14px; padding-left:14px; font-size:.75rem; }
  .process-action { justify-content:flex-start; margin-top:24px; }
  #sobre .note-open { display:none; }
  .site-footer .footer-social { gap:20px; flex-wrap:wrap; }
}
@media (max-width:600px) {
  #sobre .notes-track { min-width:0; max-width:100%; grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(78vw,300px); gap:14px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; padding:3px 2px 14px; margin:-3px -2px -14px; scrollbar-width:thin; }
  #sobre .note-post { scroll-snap-align:start; }
  #sobre .notes-hint { display:block; margin:0; color:var(--rose-light); font-size:.6875rem; line-height:1.5; }
}
@media (prefers-reduced-motion:no-preference) {
  html:not([data-motion="reduced"]) .context-cta:active { scale:.99; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-social .brand-mark,#processo li.process-step:hover .step-number { translate:none; transform:none; }
  .story-intro .hero-actions .button::after,#contato .button::after,.case-inquiry::after { display:none; }
}
html[data-motion="reduced"] .hero-social .brand-mark,
html[data-motion="reduced"] #processo li.process-step:hover .step-number { translate:none; transform:none; }
html[data-motion="reduced"] .story-intro .hero-actions .button::after,
html[data-motion="reduced"] #contato .button::after,
html[data-motion="reduced"] .case-inquiry::after { display:none; }
html.project-case-open .cloud-drift { animation-play-state:paused; }

/* Mobile chapter introductions share a centre; reading copy keeps its left edge. */
@media (max-width:760px) {
  #solucao .services-heading,
  #sobre .about-copy > .chapter-label,
  #sobre .about-copy > h2,
  #sobre .notes-heading,
  #processo .section-heading { text-align:center; }

  #solucao .services-heading h2,
  #solucao .services-heading > p:last-of-type,
  #sobre .notes-heading h3 { margin-inline:auto; }

  #solucao .services-heading > p:last-of-type,
  #processo .process-intro { max-width:34ch; text-wrap:balance; }
  #processo .process-intro { margin-inline:auto; }
  #processo .process-intro p { text-wrap:balance; }

  #sobre .about-copy { width:100%; margin-inline:auto; }
  #sobre .about-copy > .context-cta { display:flex; width:fit-content; margin-inline:auto; }
  #sobre .notes-heading .notes-profile { justify-content:center; }
  #sobre .notes-hint { text-align:center; }
  #processo .process-action { justify-content:center; }

  .site-footer .footer-top { flex-direction:column; align-items:center; }
  .site-footer .footer-social { justify-content:center; }
  .site-footer .footer-bottom { justify-content:center; text-align:center; }
}

/* Carousel transforms do not need to invalidate descendant media styles. */
@property --orbit-x { syntax:'<length>'; inherits:false; initial-value:0px; }
@property --orbit-y { syntax:'<length>'; inherits:false; initial-value:0px; }
@property --orbit-angle { syntax:'<angle>'; inherits:false; initial-value:0deg; }
@property --orbit-scale { syntax:'<number>'; inherits:false; initial-value:1; }
@property --orbit-opacity { syntax:'<number>'; inherits:false; initial-value:0; }

/* Frosted controls belong over imagery; reading surfaces stay opaque. */
.portfolio-curved .project-open,
#sobre .note-open,
.project-case .case-zoom-hint {
  color:var(--wine);
  border:1px solid rgb(255 255 255 / .68);
  background:linear-gradient(160deg,rgb(255 255 255 / .3),transparent 65%),rgb(247 243 232 / .76);
  box-shadow:inset 0 1px rgb(255 255 255 / .55),0 8px 24px rgb(75 24 31 / .15);
  -webkit-backdrop-filter:blur(14px) saturate(1.25);
  backdrop-filter:blur(14px) saturate(1.25);
}
.portfolio-curved .project:hover .project-open,
.portfolio-curved .project:focus-visible .project-open { color:var(--wine); background:linear-gradient(160deg,rgb(255 255 255 / .3),transparent 65%),rgb(247 243 232 / .76); }
.project-case .case-return-top {
  border-color:rgb(255 245 247 / .32);
  background:linear-gradient(145deg,rgb(255 255 255 / .12),transparent 60%),rgb(75 24 31 / .68);
  box-shadow:inset 0 1px rgb(255 255 255 / .14),0 8px 24px rgb(36 10 16 / .22);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  backdrop-filter:blur(16px) saturate(1.3);
}
.project-case .case-return-top:hover { background:var(--rose-light); color:var(--wine); }
@media (hover:none), (pointer:coarse) {
  .portfolio-curved .project-open,#sobre .note-open,.project-case .case-zoom-hint { background:rgb(247 243 232 / .94); -webkit-backdrop-filter:none; backdrop-filter:none; }
  .project-case .case-return-top { background:rgb(75 24 31 / .94); -webkit-backdrop-filter:none; backdrop-filter:none; }
}
