/* Base: reset, tipografia, grade e seções */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
html{scroll-padding-top:calc(76px + env(safe-area-inset-top, 0px))}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--white);color:var(--ink);font-family:var(--f-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top, 0px);z-index:60;background:var(--wine-deep)}
img{max-width:100%;display:block}
[hidden]{display:none!important}
h1,h2,h3{margin:0;font-family:var(--f-serif);font-weight:400;text-wrap:balance}
p{margin:0}
a{color:inherit}
em{font-family:var(--f-serif);font-style:italic;font-weight:400;color:var(--wine)}
:focus-visible{outline:2px solid var(--note);outline-offset:3px;border-radius:6px}
.wrap{max-width:1180px;margin-inline:auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.i{width:18px;height:18px;flex:none}

/* Títulos e textos */
.h2{font-size:clamp(2.1rem,4.4vw,3.9rem);line-height:1.06;letter-spacing:-.015em}
.sub{color:var(--ink-2);max-width:46ch}
.small{font-size:.84rem;color:var(--ink-2)}
.label{font-size:.78rem;color:var(--ink-3);letter-spacing:.02em}

/* Seções */
.sec{padding-block:clamp(80px,10vw,136px)}
.sec.band{background:var(--band)}
.head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.head .sub{padding-bottom:.4rem}
@media (max-width:860px){.head{grid-template-columns:minmax(0,1fr)}.head .sub{padding-bottom:0}}

/* Seções escuras */
.dark{color:var(--on-dark)}
.dark em{color:var(--wine-tint)}
.dark .sub{color:var(--on-dark-2)}
.dark .small,.dark .label{color:var(--on-dark-3)}

/* Entrada ao rolar */
@keyframes rise{from{opacity:.15;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .reveal.in{animation:rise .8s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(var(--i, 0) * 90ms)}
}