:root{--red:#d91620;--red-deep:#a80e17;--red-hot:#ff5c5c;--ink:#1c0608;--ink-soft:#380b0f;--paper:#ffe9e4;--paper-muted:#d79c98;--line:rgba(255,228,225,.2);--mono:"Space Mono",monospace;--sans:"Archivo",Arial,sans-serif;--display:"Archivo Black","Arial Black",sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--paper);background:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{color:var(--paper);background:var(--red)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--red);border:2px solid var(--ink)}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--paper);outline-offset:4px}.skip-link{position:fixed;z-index:100;top:-60px;left:1rem;padding:.8rem 1rem;color:var(--ink);background:var(--paper);font-weight:700}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* ===== Top navigation ===== */
.topbar{position:fixed;z-index:40;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem clamp(1rem,3vw,3.5rem);color:var(--paper);background:linear-gradient(180deg,rgba(28,6,8,.6) 0,rgba(28,6,8,.28) 55%,transparent 100%);font-family:var(--mono);font-size:.82rem;letter-spacing:.04em;border-bottom:1px solid transparent;transition:padding .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}
.topbar::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:color-mix(in srgb,var(--ink) 84%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.25);backdrop-filter:blur(14px) saturate(1.25);transition:opacity .4s var(--ease)}
.topbar.is-scrolled{padding-top:.72rem;padding-bottom:.72rem;border-bottom-color:var(--line);box-shadow:0 18px 44px -30px rgba(0,0,0,.95)}
.topbar.is-scrolled::before{opacity:1}
.scroll-progress{position:absolute;top:0;left:0;width:100%;height:2px;overflow:hidden;pointer-events:none}
.scroll-progress span{display:block;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--red),var(--red-hot));will-change:transform}
.wordmark{position:relative;z-index:3;display:inline-flex;flex-direction:column;gap:.16rem;line-height:1}
.wordmark-name{font-family:var(--display);font-size:1.3rem;letter-spacing:-.07em;white-space:nowrap;transition:letter-spacing .45s var(--ease)}
.wordmark-reg{display:inline-block;font-family:var(--mono);font-size:.42rem;vertical-align:top;letter-spacing:0;transition:transform .5s var(--ease)}
.wordmark-tag{font-family:var(--mono);font-size:.56rem;letter-spacing:.24em;color:var(--paper-muted);overflow:hidden;white-space:nowrap;max-height:1.2rem;transition:opacity .4s var(--ease),max-height .4s var(--ease)}
.topbar.is-scrolled .wordmark-tag{opacity:0;max-height:0}
.topbar nav{display:flex;align-items:center;gap:clamp(1.1rem,2.7vw,2.6rem)}
.topbar nav a{position:relative;display:inline-flex;align-items:baseline;gap:.46rem;padding:.5rem 0;color:rgba(255,228,225,.92);transition:color .3s var(--ease)}
.navlink-index{font-size:.66rem;letter-spacing:.05em;color:inherit;opacity:.6;transition:color .3s var(--ease),opacity .3s var(--ease),transform .3s var(--ease)}
.navlink-label{position:relative;font-size:1.02rem}
.navlink-label::after{content:"";position:absolute;right:0;bottom:-.28rem;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .34s var(--ease)}
.topbar nav a:hover,.topbar nav a:focus-visible,.topbar nav a.is-active{color:var(--paper)}
.topbar nav a:hover .navlink-label::after,.topbar nav a:focus-visible .navlink-label::after,.topbar nav a.is-active .navlink-label::after{transform:scaleX(1);transform-origin:left}
.topbar nav a.is-active .navlink-index{color:var(--red-hot);opacity:1;transform:translateY(-.1rem)}
.navlink-sub{position:absolute;top:calc(100% + .18rem);left:1.32rem;white-space:nowrap;font-size:.54rem;letter-spacing:.07em;color:var(--paper-muted);opacity:0;transform:translateY(-.28rem);pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.topbar nav a:hover .navlink-sub,.topbar nav a:focus-visible .navlink-sub{opacity:.85;transform:translateY(0)}
.topbar nav a.nav-cta,.nav-foot{display:none}
.topbar-right{position:relative;z-index:3;display:flex;align-items:center;gap:.9rem}
.lang-switch{position:relative;display:flex;align-items:center;gap:.24rem;padding:.26rem;border:1px solid rgba(255,228,225,.3)}
.lang-btn{position:relative;z-index:1;padding:.44rem .6rem;color:var(--paper-muted);font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.04em;background:transparent;border:0;cursor:pointer;transition:color .2s var(--ease),background-color .2s var(--ease)}
.lang-btn:hover,.lang-btn:focus-visible{color:var(--paper)}
.lang-btn.is-active{color:var(--ink);background:var(--paper)}
/* Uma pílula desliza para o idioma ativo, em vez de cada botão pintar o
   próprio fundo: reforça que é uma escolha única entre três, não três estados soltos. */
.lang-indicator{display:none;position:absolute;top:0;left:0;bottom:0;width:1px;background:var(--paper);border-radius:999px;transform-origin:left;transform:translateX(0) scaleX(0);transition:transform .32s var(--ease)}
@media (prefers-reduced-motion:reduce){.lang-indicator{transition:none}}
.topbar-action{display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;padding:.92rem 1.45rem;color:var(--ink);background:var(--red-hot);border:1px solid var(--red-hot);box-shadow:0 8px 22px -12px rgba(0,0,0,.75);transition:color .28s var(--ease),background-color .28s var(--ease),border-color .28s var(--ease)}
.topbar-action:hover,.topbar-action:focus-visible{color:var(--ink);background:var(--paper);border-color:var(--paper);transform:translateY(-1px)}
.topbar-action svg{width:.82rem;height:.82rem}
@media (hover:hover){.wordmark:hover .wordmark-reg{transform:rotate(22deg) translateY(-.06rem)}.wordmark:hover .wordmark-name{letter-spacing:-.045em}}
.nav-scrim{display:none}
.nav-toggle{position:relative;z-index:3;display:none;width:2.4rem;height:2.4rem;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle-bars{position:relative;display:block;width:1.5rem;height:2px;background:currentColor;transition:background-color .2s var(--ease)}
.nav-toggle-bars::before,.nav-toggle-bars::after{position:absolute;left:0;width:100%;height:2px;content:"";background:currentColor;transition:transform .25s var(--ease),top .25s var(--ease)}
.nav-toggle-bars::before{top:-.48rem}.nav-toggle-bars::after{top:.48rem}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after{top:0;transform:rotate(-45deg)}
body.nav-lock{overflow:hidden}
#sobre,#historia,#trajetoria,#legado,#atuacao,#oficinas,#galeria,#territorio,#agenda,#imprensa{scroll-margin-top:5rem}
@keyframes nav-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){.wordmark{animation:nav-in .6s var(--ease) both .05s}.topbar nav a{animation:nav-in .6s var(--ease) both}.topbar nav a:nth-child(1){animation-delay:.13s}.topbar nav a:nth-child(2){animation-delay:.19s}.topbar nav a:nth-child(3){animation-delay:.25s}.topbar nav a:nth-child(4){animation-delay:.31s}.topbar nav a:nth-child(5){animation-delay:.37s}.topbar-action{animation:nav-in .6s var(--ease) both .44s}}
.hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:max(48rem,100dvh);overflow:hidden;background:var(--red);padding-top:clamp(5.5rem,8vw,7.5rem)}.story-aside,.agenda-type,.agenda-status{font-family:var(--mono);font-size:clamp(.62rem,.8vw,.75rem);letter-spacing:.08em}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:3.15rem;padding:.95rem 1.7rem;font-size:.86rem;font-weight:700;letter-spacing:.045em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;transition:background-color .28s var(--ease),color .28s var(--ease),border-color .28s var(--ease)}.button:active{opacity:.92}.button:focus-visible{outline:3px solid currentColor;outline-offset:3px}.button-arrow{width:.85rem;height:.85rem;flex:0 0 auto}.button-light{color:var(--ink);background:var(--paper);border-color:var(--paper)}.button-light:hover,.button-light:focus-visible{color:var(--paper);background:var(--ink);border-color:var(--ink)}.button-outline{color:var(--paper);background:rgba(28,6,8,.34);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-color:rgba(255,228,225,.72)}.button-outline:hover,.button-outline:focus-visible{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.hero-art{position:absolute;inset:0;z-index:0;overflow:hidden}.hero-art-video{display:block;width:100%;height:100%;object-fit:cover}
.ticker{overflow:hidden;color:var(--red);background:var(--paper);border-block:1px solid var(--ink)}.ticker-track{display:flex;width:max-content;align-items:center;gap:1.2rem;padding:.78rem 0;font-family:var(--display);font-size:clamp(1.3rem,2.5vw,2.25rem);letter-spacing:-.06em;animation:ticker-run 25s linear infinite}.ticker i{width:.45rem;height:.45rem;flex:0 0 auto;border-radius:50%;background:var(--ink)}.section-pad{padding:clamp(5rem,11vw,10rem) clamp(1rem,7vw,8rem)}
.story{display:grid;grid-template-columns:minmax(8rem,.55fr) minmax(0,2.4fr) minmax(8rem,.75fr);gap:clamp(1.5rem,5vw,7rem);color:var(--paper);background:var(--ink)}.story-aside{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;color:var(--paper-muted)}.story-aside p{margin:0;color:var(--red-hot);font-weight:700}.story-aside span{writing-mode:vertical-rl;transform:rotate(180deg)}.section-title{max-width:53rem;margin:0;font-family:var(--display);font-size:clamp(2.8rem,6vw,6.5rem);line-height:.9;letter-spacing:-.075em}.story-lead{max-width:42rem;margin:1.8rem 0 2.7rem;font-size:clamp(1.3rem,2.2vw,2.1rem);font-weight:500;line-height:1.18}.story-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;max-width:50rem;color:var(--paper-muted);font-size:1rem;line-height:1.62}.story-copy p{margin:0}.story-index{display:grid;align-self:end;gap:1.4rem;padding-bottom:.4rem}.story-index div{display:grid;gap:.3rem;padding-top:.6rem;border-top:1px solid var(--line)}.story-index strong{font-family:var(--display);font-size:1.45rem;color:var(--red-hot);letter-spacing:-.06em}.story-index span{font-family:var(--mono);font-size:.65rem}
.legacy{position:relative;display:grid;min-height:48rem;grid-template-columns:minmax(0,1.4fr) minmax(18rem,1fr);overflow:hidden;background:var(--paper);color:var(--ink)}.legacy-wall{position:relative;overflow:hidden;min-height:36rem;background:#b8121b;isolation:isolate}.legacy-wall::before,.legacy-wall::after{position:absolute;content:""}.legacy-wall::before{inset:0;opacity:.33;background:repeating-linear-gradient(101deg,rgba(28,6,8,.7) 0 2px,transparent 2px 20px),linear-gradient(135deg,transparent 0 40%,rgba(255,228,225,.28) 40.2% 41%,transparent 41.2% 100%)}.legacy-wall::after{right:-20%;bottom:-16%;width:83%;aspect-ratio:1;border:clamp(1.5rem,5vw,5rem) solid var(--ink);border-radius:48% 52% 41% 59% / 58% 47% 53% 42%;transform:rotate(29deg)}.wall-tag{position:absolute;z-index:2;font-family:var(--display);font-size:clamp(4rem,10vw,10.5rem);line-height:.7;letter-spacing:-.13em;color:var(--ink)}.wall-tag-a{top:14%;left:10%;transform:rotate(-9deg)}.wall-tag-b{top:37%;left:28%;color:var(--paper);transform:rotate(7deg)}.wall-tag-c{top:59%;left:8%;transform:rotate(-4deg)}.wall-line{position:absolute;z-index:1;height:1px;background:var(--paper);transform-origin:left}.line-a{top:26%;left:7%;width:67%;transform:rotate(23deg)}.line-b{bottom:19%;left:20%;width:78%;background:var(--ink);transform:rotate(-19deg)}.wall-drip{position:absolute;z-index:1;width:clamp(.8rem,1.6vw,1.4rem);background:var(--paper);border-radius:0 0 99px 99px}.drip-a{top:0;left:66%;height:30%}.drip-b{right:9%;bottom:0;height:22%;background:var(--ink)}.legacy-copy{align-self:center;max-width:36rem;padding:clamp(3rem,7vw,7rem) clamp(1.5rem,5vw,5rem)}.legacy-copy>p:first-child{margin:0 0 1.2rem;color:var(--red-deep);font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.08em}.legacy-copy h2{margin:0;font-family:var(--display);font-size:clamp(2.9rem,5vw,5.6rem);line-height:.86;letter-spacing:-.08em}.legacy-copy h2+p{max-width:26rem;margin:1.8rem 0 0;line-height:1.55}
.agenda{color:var(--paper);background:var(--ink-soft)}.agenda-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(1.8rem,4vw,3.2rem)}.agenda-head>p{max-width:21rem;margin:0;color:var(--paper-muted);line-height:1.5}.agenda-list{border-top:1px solid var(--line)}.agenda-item{display:grid;grid-template-columns:minmax(7rem,.55fr) minmax(0,2fr) auto;align-items:center;gap:2rem;padding:clamp(1.7rem,4vw,3.4rem) 0;border-bottom:1px solid var(--line);transition:background-color .35s ease}.agenda-item h3{transition:transform .3s var(--ease)}@media (hover:hover) and (pointer:fine){.agenda-item:hover{background:rgba(255,228,225,.06)}.agenda-item:hover h3{transform:translateX(.4rem)}}.agenda-date{display:grid;gap:.2rem;align-content:start;font-family:var(--mono)}.agenda-date span{color:var(--red-hot);font-size:.65rem;font-weight:700}.agenda-date strong{font-family:var(--display);font-size:clamp(1.8rem,3vw,3.4rem);line-height:.85;letter-spacing:-.08em}.agenda-type{margin:0 0 .7rem;color:var(--red-hot);font-weight:700}.agenda-item h3{max-width:37rem;margin:0;font-family:var(--display);font-size:clamp(1.55rem,2.8vw,3rem);line-height:.95;letter-spacing:-.055em}.agenda-item h3+p{max-width:38rem;margin:.9rem 0 0;color:var(--paper-muted);line-height:1.5}.agenda-status{align-self:start;padding:.35rem .5rem;color:var(--paper-muted);border:1px solid var(--line)}.agenda-next .agenda-status{color:var(--ink);background:var(--red-hot);border-color:var(--red-hot)}
.agenda-whatsapp{margin-top:1.2rem;min-height:2.7rem;padding:.7rem 1.3rem;font-size:.76rem}
.closing{position:relative;isolation:isolate;display:grid;align-content:center;min-height:42rem;overflow:hidden;padding:clamp(4rem,10vw,9rem) clamp(1rem,7vw,8rem);color:var(--ink);background:var(--red)}.closing::before{position:absolute;z-index:-1;inset:0;content:"";opacity:.26;background-image:linear-gradient(90deg,rgba(28,6,8,.5) 1px,transparent 1px),linear-gradient(rgba(28,6,8,.5) 1px,transparent 1px);background-size:3.4rem 3.4rem;mask-image:linear-gradient(180deg,#000,transparent)}.closing-spray{position:absolute;z-index:-1;top:-22rem;right:-13rem;width:47rem;height:47rem;border:3.4rem solid var(--paper);border-radius:40% 60% 61% 39% / 44% 46% 54% 56%;opacity:.5;transform:rotate(30deg)}.closing p{margin:0 0 1.7rem;font-family:var(--mono);font-size:clamp(1.2rem,1.6vw,1.35rem);font-weight:700;letter-spacing:.03em}.closing h2{max-width:70rem;margin:0 0 2rem;font-family:var(--display);font-size:clamp(4.3rem,12vw,12rem);line-height:.7;letter-spacing:-.11em}.closing .button{justify-self:start}.footer{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(1.8rem,4vw,3rem) clamp(2rem,6vw,6rem);padding:clamp(3rem,6vw,5rem) clamp(1.5rem,5vw,5rem) clamp(1.4rem,3vw,2.2rem);color:var(--paper-muted);background:var(--ink);border-top:1px solid var(--line);font-family:var(--mono);font-size:.74rem;letter-spacing:.04em}.footer p{margin:0}.footer-brand{grid-column:1;display:grid;gap:1rem;align-content:start}.footer-mark{justify-self:start;font-family:var(--display);font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.06em;color:var(--paper);transition:letter-spacing .45s var(--ease)}.footer-mark-reg{display:inline-block;font-size:.4rem;vertical-align:super;transition:transform .5s var(--ease)}
/* Mesmo tique da marca no cabeçalho: o ® gira, a palavra aperta o tracking. */
@media (hover:hover){.footer-mark:hover{letter-spacing:-.045em}.footer-mark:hover .footer-mark-reg{transform:rotate(22deg) translateY(-.06rem)}}.footer-nav{grid-column:2;justify-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.footer-nav a{position:relative;padding:.1rem 0;color:var(--paper-muted);font-size:.86rem;transition:color .25s var(--ease)}.footer-nav a::after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}.footer-nav a:hover,.footer-nav a:focus-visible{color:var(--paper)}.footer-nav a:hover::after,.footer-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}.footer-meta{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(1.25rem);transition:opacity .75s var(--ease),transform .75s var(--ease)}.is-visible{opacity:1;transform:translateY(0)}
.story .reveal{transition-delay:var(--delay,0ms)}.story-aside.reveal{--delay:0ms}.story-main .section-title.reveal{--delay:70ms}.story-lead.reveal{--delay:140ms}.story-copy.reveal{--delay:210ms}.story-index.reveal{--delay:280ms}
.legacy-copy .reveal{transition-delay:var(--delay,0ms)}.legacy-copy>.reveal:nth-child(1){--delay:0ms}.legacy-copy>.reveal:nth-child(2){--delay:90ms}.legacy-copy>.reveal:nth-child(3){--delay:180ms}
.agenda-list .agenda-item.reveal{transition-delay:var(--delay,0ms)}.agenda-list .agenda-item:nth-child(1){--delay:0ms}.agenda-list .agenda-item:nth-child(2){--delay:70ms}.agenda-list .agenda-item:nth-child(3){--delay:140ms}.agenda-list .agenda-item:nth-child(4){--delay:210ms}
.closing .reveal{transition-delay:var(--delay,0ms)}.closing>.reveal:nth-child(2){--delay:0ms}.closing>.reveal:nth-child(3){--delay:100ms}.closing>.reveal:nth-child(4){--delay:200ms}
@keyframes ticker-run{to{transform:translateX(-50%)}}
/* ===== Hero content ===== */
.hero-inner{position:relative;z-index:2;max-width:62rem;padding:0 clamp(1rem,7vw,8rem) clamp(4.5rem,10vw,8rem)}
.hero-eyebrow{margin:0 0 1.15rem;font-family:var(--mono);font-size:clamp(.62rem,1vw,.78rem);font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--paper)}
.hero-title{margin:0;font-family:var(--display);font-size:clamp(4rem,13vw,11rem);line-height:.95;letter-spacing:-.06em;color:var(--paper);text-wrap:balance}
.hero-lead{max-width:34rem;margin:1.6rem 0 0;font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.35;color:var(--paper)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.3rem}
.hero-scroll{position:absolute;z-index:2;right:clamp(1rem,4vw,3.5rem);bottom:clamp(1.6rem,4vw,3rem);display:inline-flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--paper);font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;transition:transform .3s var(--ease)}
.hero-scroll span:first-child{display:inline-block;transition:letter-spacing .3s var(--ease)}
.hero-scroll-line{width:1px;height:3.2rem;background:var(--paper);transform-origin:top;animation:hero-scroll-pulse 2.1s var(--ease) infinite;transition:background-color .3s var(--ease)}
/* Convite claro a agir: no hover/focus o indicador desce, o rotulo abre e a
   linha vira solida em vermelho, no lugar do pulso continuo. */
@media (hover:hover) and (pointer:fine){
.hero-scroll:hover,.hero-scroll:focus-visible{transform:translateY(4px)}
.hero-scroll:hover span:first-child,.hero-scroll:focus-visible span:first-child{letter-spacing:.32em}
.hero-scroll:hover .hero-scroll-line,.hero-scroll:focus-visible .hero-scroll-line{animation-play-state:paused;transform:scaleY(1);opacity:1;background:var(--red-hot)}
}
@keyframes hero-scroll-pulse{0%{transform:scaleY(0);opacity:.2}35%{opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes hero-rise{from{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){.hero-eyebrow{animation:hero-rise .8s var(--ease) both .15s}.hero-title{animation:hero-rise .85s var(--ease) both .28s}.hero-lead{animation:hero-rise .8s var(--ease) both .46s}.hero-actions{animation:hero-rise .8s var(--ease) both .6s}.hero-scroll{animation:hero-rise .8s var(--ease) both .95s}}
/* ===== Ticker ===== */
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
/* ===== Story markers ===== */
.story-index div{transition:transform .3s var(--ease),border-color .3s var(--ease)}
@media (hover:hover){.story-index div:hover{transform:translateY(-.4rem);border-color:var(--red-hot)}}
/* ===== Linha do tempo (Trajetória) ===== */
.timeline{color:var(--paper);background:var(--ink-soft)}
.timeline-head{max-width:60rem;margin-bottom:clamp(1.6rem,3.5vw,3rem)}
.timeline-eyebrow{color:var(--red-hot)}
.timeline-list{position:relative;list-style:none;margin:0;padding-left:clamp(1.6rem,4vw,2.8rem);border-left:1px solid var(--line)}
.timeline-item{position:relative;padding:0 0 clamp(2.1rem,5vw,3.2rem) clamp(1.6rem,4vw,2.8rem)}
.timeline-item:last-child{padding-bottom:0}
.timeline-item::before{content:"";position:absolute;top:.4rem;left:calc(clamp(1.6rem,4vw,2.8rem) * -1 - 5px);width:9px;height:9px;border-radius:50%;background:var(--red-hot);box-shadow:0 0 0 4px var(--ink-soft)}
.timeline-year{margin:0 0 .5rem;font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--red-hot)}
.timeline-body h3{margin:0 0 .5rem;font-family:var(--display);font-size:clamp(1.25rem,2.2vw,1.85rem);line-height:1.05;letter-spacing:-.03em}
.timeline-body p{margin:0;max-width:36rem;color:var(--paper-muted);line-height:1.58}
.timeline-list .timeline-item.reveal{transition-delay:var(--delay,0ms)}
.timeline-list .timeline-item:nth-child(2){--delay:60ms}.timeline-list .timeline-item:nth-child(3){--delay:120ms}.timeline-list .timeline-item:nth-child(4){--delay:180ms}.timeline-list .timeline-item:nth-child(5){--delay:240ms}.timeline-list .timeline-item:nth-child(6){--delay:300ms}.timeline-list .timeline-item:nth-child(7){--delay:360ms}
/* ===== Agenda underline ===== */
.agenda-item{position:relative}
.agenda-item::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:var(--red-hot);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
@media (hover:hover) and (pointer:fine){.agenda-item:hover::after{transform:scaleX(1)}}
/* ===== Back to top ===== */
.to-top{position:fixed;z-index:35;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;padding:0;color:var(--ink);background:var(--red-hot);border:0;cursor:pointer;opacity:0;transform:translateY(1rem) scale(.85);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease),background-color .25s ease}
.to-top svg{width:1.1rem;height:1.1rem}
.to-top.is-shown{opacity:1;transform:none;pointer-events:auto}
.to-top:hover,.to-top:focus-visible{background:var(--paper);transform:translateY(-3px)}
.to-top:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.nav-toggle:focus-visible{outline:3px solid currentColor;outline-offset:3px}
@media (min-width:900px){.story-main{padding-right:2rem}}
@media (max-width:1024px) and (min-width:761px){.story{grid-template-columns:minmax(7rem,.5fr) minmax(0,1fr);row-gap:2.5rem}.story-index{grid-column:1/-1;grid-template-columns:repeat(3,1fr);align-self:start}}
@media (max-width:1023.98px){.topbar{padding:1rem clamp(1rem,3vw,3.5rem)}.nav-toggle{display:inline-flex}.topbar-action{display:none}.nav-scrim{display:block;position:fixed;z-index:1;inset:0;background:rgba(20,4,5,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}.topbar.nav-open .nav-scrim{opacity:1;pointer-events:auto}.topbar nav{position:fixed;z-index:2;top:0;right:0;left:0;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:5.4rem clamp(1.4rem,6vw,2.2rem) 2rem;background:color-mix(in srgb,var(--ink) 97%,#000);border-bottom:1px solid var(--line);box-shadow:0 34px 60px -34px rgba(0,0,0,.95);transform:translateY(-104%);transition:transform .5s var(--ease)}.topbar.nav-open nav{transform:translateY(0)}.topbar nav a{padding:1.15rem .2rem;border-bottom:1px solid var(--line);align-items:center;gap:.9rem;color:var(--paper);opacity:0;transform:translateX(-1rem);transition:opacity .45s var(--ease),transform .45s var(--ease),color .3s var(--ease)}.topbar.nav-open nav a{opacity:1;transform:translateX(0)}.topbar.nav-open nav a:nth-child(1){transition-delay:.1s}.topbar.nav-open nav a:nth-child(2){transition-delay:.15s}.topbar.nav-open nav a:nth-child(3){transition-delay:.2s}.topbar.nav-open nav a:nth-child(4){transition-delay:.25s}.topbar.nav-open nav a:nth-child(5){transition-delay:.3s}.topbar.nav-open nav a:nth-child(6){transition-delay:.35s}.topbar nav a .navlink-index{font-size:.72rem;opacity:.9}.topbar nav a .navlink-label{font-family:var(--display);font-size:1.5rem;letter-spacing:-.04em}.topbar nav a .navlink-label::after{display:none}.topbar nav a .navlink-sub{position:static;margin-left:auto;transform:none;opacity:.55;font-size:.6rem;text-align:right;white-space:normal;max-width:9rem}.topbar nav a.is-active{color:var(--red-hot)}.topbar nav a.is-active .navlink-index{color:var(--red-hot);opacity:1}.topbar nav a.nav-cta{display:flex;margin-top:1.7rem;padding:1.05rem 1.3rem;border-bottom:0;justify-content:space-between;font-family:var(--display);font-size:1.05rem;letter-spacing:-.02em;color:var(--ink);background:var(--paper);opacity:0;transform:translateY(.7rem);transition:opacity .45s var(--ease) .28s,transform .45s var(--ease) .28s}.topbar.nav-open nav a.nav-cta{opacity:1;transform:translateY(0)}.nav-cta-arrow{display:inline-block;font-family:var(--mono);transition:transform .3s var(--ease)}.topbar nav a.nav-cta:hover .nav-cta-arrow,.topbar nav a.nav-cta:focus-visible .nav-cta-arrow{transform:translate(3px,-3px)}.nav-foot{display:block;margin:1.5rem 0 0;font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;color:var(--paper-muted);opacity:0;transition:opacity .45s var(--ease) .34s}.topbar.nav-open .nav-foot{opacity:.75}}
@media (max-width:760px){.hero{min-height:44rem}.hero-art-video{object-position:center 22%}.story{grid-template-columns:1fr}.story-aside{flex-direction:row;justify-content:space-between}.story-aside span{writing-mode:initial;transform:none}.story-copy{grid-template-columns:1fr;gap:1rem}.story-index{grid-template-columns:repeat(3,1fr)}.legacy{grid-template-columns:1fr}.legacy-wall{min-height:27rem}.agenda-head{display:grid;gap:1rem}.atuacao-grid{grid-template-columns:1fr}.agenda-item{grid-template-columns:5.6rem 1fr;gap:1rem}.agenda-status{grid-column:2;justify-self:start}.footer{grid-template-columns:1fr;gap:1.6rem}.footer-nav{grid-column:1;justify-self:start}.footer-meta{text-align:left}.hero-scroll{display:none}.hero-inner{padding-bottom:clamp(3.5rem,12vw,5rem)}.hero-actions{width:100%}.hero-actions .button{flex:1 1 100%}.to-top{width:2.7rem;height:2.7rem;right:1rem;bottom:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
/* ===== Motion — clean & tasteful ===== */
.hero-title{animation:none}
.ht-word{display:block}
@keyframes ht-rise{0%{opacity:0;transform:translateY(.5em);filter:blur(14px)}60%{filter:blur(0)}100%{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion:no-preference){.ht-word{animation:ht-rise .9s var(--ease) both;will-change:transform,filter,opacity}.ht-word:nth-child(1){animation-delay:.26s}.ht-word:nth-child(2){animation-delay:.44s}}
.agenda-item h3,.agenda-date strong{transition:transform .3s var(--ease),color .3s var(--ease)}
@media (hover:hover) and (pointer:fine){.agenda-item:hover .agenda-date strong{color:var(--red-hot)}}
/* ===== Atuação ===== */
.atuacao{color:var(--paper);background:var(--ink)}
.atuacao-head{max-width:60rem;margin-bottom:clamp(1.6rem,3.5vw,3rem)}
.atuacao-eyebrow{color:var(--red-hot)}
.atuacao-lead{max-width:40rem;margin:1.8rem 0 0;color:var(--paper-muted);font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.5}
.atuacao-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem)}
.atuacao-card{position:relative;display:flex;flex-direction:column;gap:.85rem;padding:clamp(1.6rem,3vw,2.6rem);border:1px solid var(--line);background:rgba(255,228,225,.02);transition:transform .35s var(--ease),border-color .35s var(--ease),background-color .35s var(--ease)}
.atuacao-num{font-family:var(--mono);font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--red-hot)}
.atuacao-card h3{margin:0;font-family:var(--display);font-size:clamp(1.4rem,2.4vw,2.1rem);line-height:1;letter-spacing:-.04em}
.atuacao-card p{margin:0;max-width:26rem;color:var(--paper-muted);line-height:1.55}
@media (hover:hover) and (pointer:fine){.atuacao-card:hover{transform:translateY(-.4rem);border-color:var(--red-hot);background:rgba(217,22,32,.08)}}
.atuacao-grid .atuacao-card.reveal{transition-delay:var(--delay,0ms)}
.atuacao-grid .atuacao-card:nth-child(1){--delay:0ms}.atuacao-grid .atuacao-card:nth-child(2){--delay:70ms}.atuacao-grid .atuacao-card:nth-child(3){--delay:140ms}.atuacao-grid .atuacao-card:nth-child(4){--delay:210ms}
@media (max-width:760px){.atuacao-grid{grid-template-columns:1fr}}
/* ===== Oficinas & Educação ===== */
.oficinas{color:var(--ink);background:var(--paper)}
.oficinas-head{max-width:44rem;margin-bottom:clamp(1.6rem,3.5vw,3rem)}
.oficinas-eyebrow{color:var(--red-deep)}
.oficinas-lead{max-width:38rem;margin:1.6rem 0 0;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.5;color:var(--ink-soft)}
.oficinas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-bottom:clamp(2.5rem,5vw,3.5rem)}
.oficinas-card{padding:clamp(1.5rem,3vw,2.2rem);border:1px solid rgba(28,6,8,.16);background:rgba(28,6,8,.02);transition:transform .35s var(--ease),border-color .35s var(--ease)}
.oficinas-card h3{margin:0 0 .7rem;font-family:var(--display);font-size:clamp(1.15rem,1.8vw,1.5rem);letter-spacing:-.03em}
.oficinas-card p{margin:0;color:var(--ink-soft);line-height:1.58}
@media (hover:hover) and (pointer:fine){.oficinas-card:hover{transform:translateY(-.4rem);border-color:var(--red-deep)}}
.oficinas-grid .oficinas-card.reveal{transition-delay:var(--delay,0ms)}
.oficinas-grid .oficinas-card:nth-child(2){--delay:70ms}.oficinas-grid .oficinas-card:nth-child(3){--delay:140ms}
.oficinas-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;padding-top:clamp(1.8rem,4vw,2.6rem);border-top:1px solid rgba(28,6,8,.16)}
.oficinas-cta p{margin:0;max-width:26rem;font-weight:500;line-height:1.4}
.oficinas-cta-actions{display:flex;flex-wrap:wrap;gap:.8rem}
@media (max-width:760px){.oficinas-grid{grid-template-columns:1fr}}
/* ===== Instagram / inline links ===== */
.inline-link{color:var(--red-hot);border-bottom:1px solid currentColor;transition:color .25s var(--ease),border-color .25s var(--ease)}
.inline-link:hover,.inline-link:focus-visible{color:var(--paper);border-color:var(--paper)}
.button-dark{color:var(--ink);background:transparent;border-color:rgba(28,6,8,.55)}
.button-dark:hover,.button-dark:focus-visible{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.closing-actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-self:start}
.footer-nav{flex-wrap:wrap}
/* ===== Ícones & toques suaves ===== */
.atuacao-icon{width:2.3rem;height:2.3rem;color:var(--red-hot);transition:transform .4s var(--ease)}
@media (hover:hover) and (pointer:fine){.atuacao-card:hover .atuacao-icon{transform:scale(1.1) rotate(-4deg)}}
.button-icon{width:1rem;height:1rem;flex:0 0 auto}
.footer-ig{display:inline-flex;align-items:center;gap:.42rem}
.footer-ig svg{width:.95rem;height:.95rem}
/* ===== Botões: a cor entra varrendo, como tinta ===== */
.button{position:relative;isolation:isolate;overflow:hidden;transform:translate3d(var(--mag-x,0px),calc(var(--mag-y,0px) + var(--lift,0px)),0);transition:color .3s var(--ease),border-color .3s var(--ease),transform .28s var(--ease)}
/* z-index:-1 + isolation: a varredura fica acima do fundo e ABAIXO do texto.
   Com z-index:0 ela pintaria depois do conteúdo inline e apagaria rótulos
   que são texto puro (ex.: "Conhecer a história"). */
.button::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--fill,var(--ink));transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.button:hover::before,.button:focus-visible::before{transform:scaleX(1);transform-origin:left}
.button:hover,.button:focus-visible{--lift:-2px}
.button:active{--lift:1px}
/* Feedback de clique: um brilho vermelho estoura a partir do ponto tocado.
   Mesmo z-index:-1 da varredura, então some por trás do texto e da cor. */
.button::after{content:"";position:absolute;z-index:-1;left:var(--click-x,50%);top:var(--click-y,50%);width:9rem;height:9rem;margin:-4.5rem 0 0 -4.5rem;border-radius:50%;background:radial-gradient(circle,rgba(255,92,92,.65),transparent 65%);opacity:0;transform:scale(.25);pointer-events:none}
.button.is-clicked::after{animation:button-spray .55s var(--ease)}
@keyframes button-spray{0%{opacity:.9;transform:scale(.25)}100%{opacity:0;transform:scale(1.4)}}
/* O fundo base não muda: quem vira a cor é a varredura acima. */
.button-light{--fill:var(--ink)}
.button-light:hover,.button-light:focus-visible{color:var(--paper);background:var(--paper);border-color:var(--ink)}
.button-outline{--fill:var(--paper)}
.button-outline:hover,.button-outline:focus-visible{color:var(--ink);background:rgba(28,6,8,.34);border-color:var(--paper)}
.button-dark{--fill:var(--ink)}
.button-dark:hover,.button-dark:focus-visible{color:var(--paper);background:transparent;border-color:var(--ink)}
@media (prefers-reduced-motion:reduce){
.button{transform:none}
.button::before{display:none}
.button::after{display:none}
.button-light:hover,.button-light:focus-visible{background:var(--ink)}
.button-outline:hover,.button-outline:focus-visible{background:var(--paper)}
.button-dark:hover,.button-dark:focus-visible{background:var(--ink)}
}
/* ===== Satão em números ===== */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,4vw,3rem);padding:clamp(3rem,7vw,5.5rem) clamp(1rem,7vw,8rem);background:var(--red);color:var(--ink)}
.stat{display:flex;flex-direction:column;gap:.45rem}
.stat:not(:first-child){padding-left:clamp(1.4rem,4vw,3rem);border-left:1px solid rgba(28,6,8,.28)}
.stat-num{font-family:var(--display);font-size:clamp(3.4rem,8vw,7rem);line-height:.85;letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.stat-label{font-family:var(--mono);font-size:clamp(.66rem,1vw,.8rem);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.stats .stat.reveal{transition-delay:var(--delay,0ms)}.stats .stat:nth-child(2){--delay:90ms}.stats .stat:nth-child(3){--delay:180ms}
.agenda-type{display:flex;align-items:center;gap:.45rem}
.agenda-icon{width:.95rem;height:.95rem;flex:0 0 auto;color:var(--red-hot)}
.footer-loc{display:inline-flex;align-items:center;gap:.42rem}
.footer-loc svg{width:.9rem;height:.9rem;color:var(--red-hot)}
@media (max-width:760px){.stats{grid-template-columns:1fr;gap:1.5rem}.stat:not(:first-child){padding-left:0;border-left:0;padding-top:1.4rem;border-top:1px solid rgba(28,6,8,.28)}}
/* ===== Títulos entram em foco (blur → nítido) ===== */
@media (prefers-reduced-motion:no-preference){.section-title.reveal,.legacy-copy h2.reveal,.closing h2.reveal{filter:blur(9px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}.section-title.is-visible,.legacy-copy h2.is-visible,.closing h2.is-visible{filter:blur(0)}}
/* ===== Brilho que segue o cursor (Atuação) ===== */
.atuacao{position:relative;isolation:isolate}
.atuacao-head,.atuacao-grid{position:relative;z-index:1}
.atuacao-glow{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s var(--ease);background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(217,22,32,.2),transparent 66%)}
@media (hover:hover) and (pointer:fine){.atuacao:hover .atuacao-glow{opacity:1}}
/* ===== Cursor customizado (dot + anel) ===== */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;z-index:120;pointer-events:none;border-radius:50%;opacity:0}
.cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--red-hot);transition:opacity .35s var(--ease)}
.cursor-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border:1.5px solid rgba(255,228,225,.65);will-change:transform,width,height;transition:opacity .35s var(--ease),width .32s var(--ease),height .32s var(--ease),margin .32s var(--ease),background-color .32s var(--ease),border-color .32s var(--ease)}
.cursor-ready .cursor-dot,.cursor-ready .cursor-ring{opacity:1}
.cursor-hidden .cursor-dot,.cursor-hidden .cursor-ring{opacity:0}
.cursor-ring.is-interactive{width:56px;height:56px;margin:-28px 0 0 -28px;background:rgba(217,22,32,.12);border-color:var(--red-hot)}
.cursor-ring.is-down{width:24px;height:24px;margin:-12px 0 0 -12px;border-color:var(--red-hot)}

/* ===== Ticker sem vãos (grupos que se repetem) ===== */
.ticker-track{gap:0}
.ticker-group{display:inline-flex;align-items:center;gap:1.2rem;padding-right:1.2rem;flex:0 0 auto}
/* ===== Hero sem degradê: sombra suave garante leitura do título ===== */
.hero-eyebrow,.hero-title,.hero-lead{text-shadow:0 2px 20px rgba(28,6,8,.42)}
/* ===== Footer com contexto ===== */
/* Entrada do rodapé: até aqui era o único bloco do site sem reveal. */
.footer .reveal{transition-delay:var(--delay,0ms)}
.footer-brand.reveal{--delay:0ms}
.footer-nav.reveal{--delay:90ms}
.footer-meta.reveal{--delay:160ms}
.footer-brand-text{display:grid;gap:.3rem}
.footer-brand-text>p{margin:0}
.footer-bio{max-width:27rem;color:var(--paper-muted);opacity:.9;line-height:1.55}
/* ===== Agenda: mesma abertura das demais seções ===== */
.agenda-head-main{display:block}
.agenda-eyebrow{color:var(--red-hot)}
/* ===== Nav flutuante arredondado =====
   A barra vira uma pílula de vidro solta, sem encostar nas bordas.
   Regra de forma: o nav é a única camada arredondada do site (é chrome
   sobreposto, não conteúdo). O resto segue reto, como o traço da marca. */
.topbar{--nav-gap:.85rem}
@media (min-width:1024px){
.topbar{
  top:var(--nav-gap);
  left:clamp(.75rem,2.2vw,1.9rem);
  right:clamp(.75rem,2.2vw,1.9rem);
  width:auto;
  gap:1.1rem;
  padding:1rem .7rem 1rem 1.6rem;
  border:1px solid rgba(255,228,225,.18);
  border-radius:999px;
  background:transparent;
  box-shadow:0 20px 50px -26px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,228,225,.16);
  transition:padding .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
.topbar.is-scrolled{
  padding-top:.66rem;padding-bottom:.66rem;
  border-color:rgba(255,228,225,.28);
  box-shadow:0 24px 56px -24px rgba(0,0,0,1);
}
.topbar nav{flex-wrap:nowrap}
.topbar nav a{white-space:nowrap}
/* Dentro de uma pílula, um balão solto embaixo lê como erro. E os rótulos
   já se explicam: História, Galeria, Agenda. Fora o ruído. */
.topbar nav a .navlink-sub{display:none}
/* O rótulo sobe de leve e o número acende: o alvo fica óbvio antes do clique. */
.topbar nav a .navlink-label{transition:transform .32s var(--ease)}
.topbar nav a:hover .navlink-label,.topbar nav a:focus-visible .navlink-label{transform:translateY(-.12rem)}
.topbar nav a:hover .navlink-index,.topbar nav a:focus-visible .navlink-index{color:var(--red-hot);opacity:1;transform:translateY(-.1rem)}
/* Um único traço desliza entre os links (hover, foco ou ativo), no lugar do
   sublinhado fixo por item: por isso ele some aqui e o JS o reposiciona. */
.topbar nav a.is-active .navlink-label::after{display:none}
#primary-nav{position:relative}
.nav-indicator{display:block;position:absolute;left:0;bottom:-.1rem;height:2px;width:1px;background:var(--red-hot);transform-origin:left;transform:translateX(0) scaleX(0);opacity:0;transition:transform .35s var(--ease),opacity .3s var(--ease);pointer-events:none}
.nav-indicator.is-ready{opacity:1}
@media (prefers-reduced-motion:reduce){.nav-indicator{transition:opacity .01ms}}
}
@media (max-width:1023.98px){.nav-indicator{display:none}}
/* O nav completo pede ~1190px. Entre 1024 e 1279 ele condensa em vez de
   estourar a pilula: saem os numeros e o botao "Ver a agenda", que repete
   a intencao do link Agenda logo ao lado. Abaixo de 1024, hamburguer. */
@media (min-width:1024px) and (max-width:1279.98px){
.topbar nav{gap:1.2rem}
.topbar nav a .navlink-index{display:none}
.topbar-action{display:none}
}
@media (min-width:1280px){.topbar nav{gap:clamp(1.1rem,2vw,2.2rem)}}
/* O vidro mora no ::before, nunca no .topbar. backdrop-filter (como filter e
   transform) faz do elemento um bloco de contenção, e o painel fixo do menu
   passaria a ser posicionado dentro da pílula em vez da tela. */
.topbar::before{
  opacity:1;
  border-radius:inherit;
  background:rgba(74,11,17,.9);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  backdrop-filter:blur(16px) saturate(1.3);
  transition:background-color .4s var(--ease)
}
.topbar.is-scrolled::before{background:rgba(52,8,12,.96)}
/* Os controles internos acompanham a forma da pílula. */
.lang-switch{border-radius:999px}
.lang-btn{border-radius:999px}
.topbar-action{border-radius:999px}
.nav-toggle{border-radius:999px}
/* A barra de progresso não pode vazar do canto arredondado: vira uma
   linha fina embutida na base da pílula. */
.scroll-progress{top:auto;bottom:.3rem;left:1.5rem;right:1.5rem;width:auto;height:2px;border-radius:999px}
.scroll-progress span{border-radius:inherit}
/* Âncoras precisam limpar a pílula flutuante. */
#sobre,#historia,#trajetoria,#legado,#atuacao,#oficinas,#galeria,#territorio,#agenda,#imprensa{scroll-margin-top:7rem}
@media (max-width:1023.98px){
.topbar{
  top:.55rem;left:.55rem;right:.55rem;width:auto;
  gap:.6rem;
  padding:.5rem .5rem .5rem 1.05rem;
  border:1px solid rgba(255,228,225,.18);
  border-radius:1.5rem;
  background:transparent;
  box-shadow:0 18px 40px -22px rgba(0,0,0,.95);
}
.topbar.is-scrolled{padding-top:.42rem;padding-bottom:.42rem}
/* Aberto, o painel cobre a pílula: a sombra dela sobraria por fora. */
.topbar.nav-open{box-shadow:none;border-color:transparent}
/* O painel nasce alinhado à pílula, com a mesma margem e o mesmo raio. */
.topbar nav{
  top:.55rem;left:.55rem;right:.55rem;
  /* A regra original fixa width:100%, que sobrepõe o `right` e faz o painel
     transbordar. Sem isto ele nasce 9px mais largo que a pílula. */
  width:auto;
  padding:4.7rem 1.3rem 1.6rem;
  border:1px solid rgba(255,228,225,.18);
  border-radius:1.5rem;
  transform:translateY(-115%);
}
/* Reafirma o estado aberto depois da regra acima: sem isto o painel fica
   preso fora da tela mesmo com a classe nav-open aplicada. */
.topbar.nav-open nav{transform:translateY(0)}
.scroll-progress{left:1.1rem;right:1.1rem;bottom:.26rem}
}
/* ===== Galeria — obras pela cidade ===== */
.gallery{background:var(--ink)}
.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(1.6rem,3.5vw,3rem)}
.gallery-head-main{display:block}
.gallery-eyebrow{color:var(--red-hot)}
.gallery-head>p{max-width:24rem;margin:0;color:var(--paper-muted);line-height:1.5}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.gallery-filter{padding:.5rem 1rem;color:var(--paper-muted);font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:transparent;border:1px solid var(--line);cursor:pointer;transition:color .25s var(--ease),background-color .25s var(--ease),border-color .25s var(--ease)}
.gallery-filter:hover,.gallery-filter:focus-visible{color:var(--paper);border-color:var(--paper-muted)}
.gallery-filter.is-active{color:var(--ink);background:var(--red-hot);border-color:var(--red-hot)}
.gallery-item.is-hidden{display:none}
/* Grade uniforme: toda obra ocupa uma celula igual e preenche por completo
   (object-fit:cover). Sem vaos, sem fundo aparente, sem sobra no fim. */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:13rem;gap:.55rem}
/* Mosaico ousado: algumas obras ocupam 2 colunas (mais largas), 2 linhas
   (mais altas) ou 2x2 (destaque). O empacotamento denso encaixa as menores
   nos vaos, mantendo o conjunto cheio, com um ritmo irregular de proposito. */
.gallery-item:nth-child(6n+1),.gallery-item:nth-child(6n){grid-column:span 2}


.gallery-item{position:relative;isolation:isolate;display:block;min-width:0;overflow:hidden;background:var(--ink-soft);border:1px solid var(--line);transition:border-color .4s var(--ease)}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .8s var(--ease)}
/* Véu apenas para dar contraste à legenda. A obra nunca é tingida. */
.gallery-item::after{position:absolute;z-index:1;inset:auto 0 0 0;height:55%;content:"";background:linear-gradient(180deg,transparent,rgba(28,6,8,.88));transition:opacity .4s var(--ease);pointer-events:none}
.gallery-item figcaption{position:absolute;z-index:2;right:0;bottom:0;left:0;margin:0;padding:.85rem .9rem .85rem 1.1rem;color:var(--paper);font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.07em;opacity:.84;transform:translateY(.3rem);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.gallery-item figcaption::before{content:"";position:absolute;top:.75rem;bottom:.75rem;left:0;width:2px;background:var(--red-hot);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease)}
@media (hover:hover) and (pointer:fine){
.gallery-item:hover,.gallery-item:focus-within{border-color:var(--red-hot)}
.gallery-item:hover img,.gallery-item:focus-within img{transform:scale(1.06)}
.gallery-item:hover figcaption,.gallery-item:focus-within figcaption{opacity:1;transform:translateY(0)}
.gallery-item:hover figcaption::before,.gallery-item:focus-within figcaption::before{transform:scaleY(1);transform-origin:top}
}
@media (max-width:1100px){.gallery-grid{grid-auto-rows:11rem}}
@media (max-width:760px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem;gap:.4rem}.gallery-item:nth-child(6n),.gallery-item:nth-child(6n+1){grid-column:span 1}}
/* As obras são conteúdo: não deixar buracos quando a revelação demora ou falha. */
.gallery-grid .gallery-item.reveal{opacity:1;transform:none}
/* Troca de filtro: as obras que entram se reapresentam em cascata. */
@keyframes gallery-in{from{opacity:0;transform:translateY(.9rem) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){.gallery-item.is-entering{animation:gallery-in .5s var(--ease) both;animation-delay:var(--stagger,0ms)}}
/* ===== Território (mapa estilizado) ===== */
.reach{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,1.1fr);align-items:start;gap:clamp(2rem,5vw,4rem);color:var(--paper);background:var(--ink-soft)}
.reach-eyebrow{color:var(--red-hot)}
.reach-lead{max-width:34rem;margin:1.6rem 0 0;color:var(--paper-muted);font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.5}
.reach-map{display:grid;justify-items:center;gap:1rem}
.reach-map svg{width:100%;max-width:32rem;height:auto}
.reach-ring{fill:none;stroke:var(--line);stroke-width:1}
.reach-ray{stroke:rgba(255,92,92,.35);stroke-width:1}
.reach-dot{fill:var(--paper-muted)}
.reach-arrow{stroke:var(--red-hot);stroke-width:1.4;fill:none}
.reach-origin{fill:var(--red-hot)}
.reach-label{fill:var(--paper-muted);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em}
.reach-label-origin{fill:var(--paper);font-weight:700}
.reach-caption{margin:0;max-width:26rem;color:var(--paper-muted);font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-align:center;opacity:.75}
@media (max-width:900px){.reach{grid-template-columns:1fr}}
/* ===== Na mídia & parceiros ===== */
.press{color:var(--paper);background:var(--ink)}
.press-head{max-width:44rem;margin-bottom:clamp(1.6rem,3.5vw,3rem)}
.press-eyebrow{color:var(--red-hot)}
.press-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem)}
.press-card{padding:clamp(1.5rem,3vw,2.2rem);border:1px solid var(--line);background:rgba(255,228,225,.02);transition:transform .35s var(--ease),border-color .35s var(--ease)}
.press-tag{display:inline-block;margin-bottom:.9rem;color:var(--red-hot);font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.press-card h3{margin:0 0 .6rem;font-family:var(--display);font-size:clamp(1.1rem,1.8vw,1.4rem);letter-spacing:-.03em}
.press-card p{margin:0;color:var(--paper-muted);line-height:1.55}
@media (hover:hover) and (pointer:fine){.press-card:hover{transform:translateY(-.4rem);border-color:var(--red-hot)}}
.press-grid .press-card.reveal{transition-delay:var(--delay,0ms)}
.press-grid .press-card:nth-child(2){--delay:70ms}.press-grid .press-card:nth-child(3){--delay:140ms}
@media (max-width:760px){.press-grid{grid-template-columns:1fr}}
/* ===== Sobre o artista ===== */
.about{position:relative;display:grid;grid-template-columns:minmax(18rem,27rem) minmax(0,1fr);align-items:center;gap:clamp(2.6rem,6vw,6rem);background:var(--red);color:var(--ink)}
.about-portrait{margin:0 auto;width:100%;max-width:27rem}
.about-frame{position:relative;isolation:isolate}
.about-card{position:absolute;z-index:0;inset:.7rem -1rem -1rem .7rem;background:var(--ink);border-radius:.35rem;transform:rotate(-3deg)}
.about-tape{position:absolute;z-index:2;top:-.85rem;left:50%;width:5.2rem;height:1.6rem;background:rgba(255,228,225,.85);box-shadow:0 8px 16px -8px rgba(28,6,8,.55);transform:translateX(-50%) rotate(-2deg)}
/* O recorte ja traz a moldura preta rasgada e fundo transparente: nada de
   borda retangular por cima. A sombra descola a foto do vermelho chapado. */
.about-photo{position:relative;z-index:1;display:block;width:100%;height:auto;transform:rotate(1.6deg);filter:drop-shadow(0 26px 34px rgba(28,6,8,.5));will-change:transform}
.about-portrait figcaption{margin-top:1.3rem;display:grid;gap:.16rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--ink-soft)}
.about-portrait figcaption strong{font-family:var(--display);font-size:.98rem;letter-spacing:-.02em;color:var(--ink)}
.about-eyebrow{color:var(--ink-soft)}
.about-lead{max-width:32rem;margin:1.6rem 0 0;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:500;line-height:1.4}
.about-text{max-width:34rem;margin-top:1.6rem;display:grid;gap:1rem;line-height:1.6}
.about-text p{margin:0;color:var(--ink-soft)}
.about .reveal{transition-delay:var(--delay,0ms)}
.about-portrait.reveal{--delay:0ms}
.about-eyebrow.reveal{--delay:90ms}
.about .section-title.reveal{--delay:160ms}
.about-lead.reveal{--delay:230ms}
.about-text.reveal{--delay:300ms}
@media (prefers-reduced-motion:no-preference){.about-portrait.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);filter:blur(12px);transform:translateY(1.4rem) scale(.94)}.about-portrait.is-visible{filter:blur(0);transform:none}}
@media (max-width:900px){.about{grid-template-columns:1fr}.about-portrait{max-width:22rem}}
/* ===== Ícones que se desenham ao aparecer ===== */
.icon-draw path,.icon-draw circle,.icon-draw rect,.icon-draw line{transition:stroke-dashoffset 1.1s var(--ease)}
@media (prefers-reduced-motion:reduce){.icon-draw path,.icon-draw circle,.icon-draw rect,.icon-draw line{transition:none}}
/* ===== Micro-interações de ícones ===== */
.topbar-action svg{transition:transform .3s var(--ease)}
.topbar-action:hover svg,.topbar-action:focus-visible svg{transform:translate(2px,-2px)}
.button-arrow{transition:transform .3s var(--ease)}
.button:hover .button-arrow,.button:focus-visible .button-arrow{transform:translate(3px,-3px)}
.button-icon{transition:transform .35s var(--ease)}
.button:hover .button-icon,.button:focus-visible .button-icon{transform:rotate(-10deg) scale(1.1)}
.footer-ig svg{transition:transform .3s var(--ease)}
.footer-ig:hover svg,.footer-ig:focus-visible svg{transform:rotate(-8deg) scale(1.12)}
.to-top svg{transition:transform .3s var(--ease)}
.to-top:hover svg,.to-top:focus-visible svg{transform:translateY(-3px)}
.agenda-icon{transition:transform .35s var(--ease)}
@media (hover:hover) and (pointer:fine){.agenda-item:hover .agenda-icon{transform:scale(1.15) rotate(-6deg)}}
/* ===== Lightbox da galeria ===== */
.lightbox{position:fixed;z-index:130;inset:0;display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);background:rgba(20,4,5,.93);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}body.has-cursor .lightbox,body.has-cursor .lightbox *{cursor:auto}body.has-cursor .lightbox-close,body.has-cursor .lightbox-nav{cursor:pointer}body.has-cursor .lightbox-fig img{cursor:zoom-out}
.lightbox.is-open{display:flex}
.lightbox-fig{margin:0;display:flex;flex-direction:column;gap:.7rem;max-width:min(92vw,1100px)}
.lightbox-fig img{max-width:100%;max-height:86vh;object-fit:contain;border:2px solid var(--red-deep);background:var(--ink-soft)}
.lightbox-fig figcaption{color:var(--paper);font-family:var(--mono);font-size:.82rem;font-weight:700;letter-spacing:.1em;text-align:center}.lightbox-fig figcaption::before{content:"";display:block;width:2rem;height:2px;background:var(--red-hot);margin:0 auto .7rem}
.lightbox-close,.lightbox-nav{position:absolute;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);color:var(--paper);background:rgba(255,228,225,.12);cursor:pointer;font-family:var(--sans);line-height:1;transition:background-color .2s ease,color .2s ease,transform .2s var(--ease)}
.lightbox-close{top:clamp(.8rem,2vw,1.4rem);right:clamp(.8rem,2vw,1.4rem);width:2.7rem;height:2.7rem;font-size:1.7rem;color:var(--ink);background:var(--paper);border-color:var(--paper)}
.lightbox-nav{top:50%;transform:translateY(-50%);width:2.9rem;height:2.9rem;font-size:1.7rem}
.lightbox-prev{left:clamp(.6rem,2vw,1.4rem)}.lightbox-next{right:clamp(.6rem,2vw,1.4rem)}
.lightbox-close:hover,.lightbox-nav:hover{background:var(--red-hot);color:var(--ink);border-color:var(--red-hot)}
.lightbox-nav:hover{transform:translateY(-50%) scale(1.06)}
@media (max-width:600px){.lightbox-nav{width:2.4rem;height:2.4rem;font-size:1.4rem}}
/* ===== Parallax =====
   O JS publica só o deslocamento em --py. Cada alvo compõe aqui, porque
   vários já carregam um rotate próprio que não pode ser sobrescrito. */
@media (prefers-reduced-motion:no-preference){
[data-parallax]{will-change:transform}
.about-frame[data-parallax]{transform:translate3d(0,var(--py,0),0)}
.reach-map[data-parallax]{transform:translate3d(0,var(--py,0),0)}
.wall-tag-a[data-parallax]{transform:rotate(-9deg) translate3d(0,var(--py,0),0)}
.wall-tag-b[data-parallax]{transform:rotate(7deg) translate3d(0,var(--py,0),0)}
.wall-tag-c[data-parallax]{transform:rotate(-4deg) translate3d(0,var(--py,0),0)}
.closing-spray[data-parallax]{transform:rotate(30deg) translate3d(0,var(--py,0),0)}
}
/* ===== Filtros da galeria: mesmo vocabulário de varredura dos botões ===== */
.gallery-filter{position:relative;isolation:isolate;overflow:hidden;transition:color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.gallery-filter::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--paper);transform:scaleX(0);transform-origin:right;transition:transform .38s var(--ease)}
@media (hover:hover) and (pointer:fine){
.gallery-filter:hover,.gallery-filter:focus-visible{color:var(--ink);border-color:var(--paper);transform:translateY(-2px)}
.gallery-filter:hover::before,.gallery-filter:focus-visible::before{transform:scaleX(1);transform-origin:left}
.gallery-filter.is-active:hover,.gallery-filter.is-active:focus-visible{color:var(--ink)}
.gallery-filter.is-active::before{background:var(--red-hot)}
}
@media (prefers-reduced-motion:reduce){.gallery-filter::before{display:none}.gallery-filter:hover,.gallery-filter:focus-visible{transform:none;color:var(--paper)}}
/* ===== Passe de tipografia (melhorar as letras do site) ===== */
.timeline-eyebrow,.atuacao-eyebrow,.oficinas-eyebrow,.agenda-eyebrow,.gallery-eyebrow,.reach-eyebrow,.press-eyebrow,.about-eyebrow,.insta-eyebrow{margin:0 0 1.2rem;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.16em}
body{font-size:1.03rem;line-height:1.5;letter-spacing:.004em;-moz-osx-font-smoothing:grayscale}
p{text-wrap:pretty}
h1,h2,h3,.section-title,.hero-title{font-feature-settings:"kern" 1,"liga" 1;text-wrap:balance}
.hero-title{letter-spacing:-.055em}
.section-title{letter-spacing:-.07em}
.hero-lead,.story-lead,.about-lead,.atuacao-lead,.oficinas-lead,.reach-lead,.timeline-lead{text-wrap:balance}
.story-copy,.about-text,.timeline-body p,.atuacao-card p,.oficinas-card p,.press-card p,.agenda-item h3+p{line-height:1.62}
.mono,.hero-eyebrow,.timeline-year,.agenda-type,.press-tag,.gallery-eyebrow,.atuacao-eyebrow,.oficinas-eyebrow,.reach-eyebrow,.press-eyebrow,.about-eyebrow,.timeline-eyebrow,.agenda-eyebrow,.insta-eyebrow{font-feature-settings:"kern" 1}
/* ===== Linha do tempo — melhorada ===== */
.timeline-list{border-left:0;padding-left:0}
.timeline-list::before{content:"";position:absolute;top:.4rem;bottom:2.2rem;left:4px;width:2px;background:linear-gradient(180deg,var(--red-hot),var(--red-deep) 70%,transparent);border-radius:2px}
.timeline-item{padding-left:clamp(2rem,4vw,3rem)}
.timeline-item::before{width:11px;height:11px;left:-1px;background:var(--ink-soft);border:2px solid var(--red-hot);box-shadow:0 0 0 4px var(--ink-soft);transition:background-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
.timeline-item.is-visible::before{background:var(--red-hot)}
.timeline-item:last-child::before{width:15px;height:15px;left:-3px;background:var(--red-hot);box-shadow:0 0 0 4px var(--ink-soft),0 0 22px 2px rgba(255,92,92,.55)}
.timeline-year{display:inline-block;margin-bottom:.6rem;padding:.24rem .6rem;color:var(--ink);background:var(--red-hot);border-radius:999px;font-size:.62rem;letter-spacing:.12em}
.timeline-item:not(:last-child) .timeline-year{color:var(--red-hot);background:rgba(255,92,92,.1);border:1px solid rgba(255,92,92,.3)}
.timeline-body h3{font-size:clamp(1.35rem,2.4vw,2.05rem);transition:transform .35s var(--ease)}
@media (hover:hover) and (pointer:fine){
.timeline-item:hover::before{transform:scale(1.25);background:var(--red-hot)}
.timeline-item:hover .timeline-body h3{transform:translateX(.4rem);color:var(--red-hot)}
}
/* ===== Carrossel do Instagram (teste) ===== */
.insta{padding:clamp(3.5rem,7vw,6rem) 0;color:var(--paper);background:var(--ink);overflow:hidden}
.insta-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem;margin:0 clamp(1rem,7vw,8rem) clamp(2rem,4vw,3rem)}
.insta-eyebrow{color:var(--red-hot)}
.insta-cta{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1.2rem;color:var(--paper);font-family:var(--mono);font-size:.82rem;letter-spacing:.04em;border:1px solid rgba(255,228,225,.4);border-radius:999px;transition:color .28s var(--ease),background-color .28s var(--ease),border-color .28s var(--ease)}
.insta-cta svg{width:1.05rem;height:1.05rem;transition:transform .35s var(--ease)}
.insta-cta:hover,.insta-cta:focus-visible{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.insta-cta:hover svg,.insta-cta:focus-visible svg{transform:rotate(-8deg) scale(1.12)}
.insta-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.insta-track{display:flex;width:max-content;height:clamp(13rem,22vw,19rem);animation:insta-run 52s linear infinite}
.insta-group{display:flex;flex:0 0 auto}
.insta-card{position:relative;display:block;height:100%;margin-right:.7rem;overflow:hidden;border:1px solid var(--line)}
.insta-card img{display:block;width:auto;height:100%;transition:transform .8s var(--ease)}
.insta-card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 120%,transparent 55%,rgba(28,6,8,.5));opacity:0;transition:opacity .4s var(--ease)}
@keyframes insta-run{to{transform:translateX(-50%)}}
@media (hover:hover) and (pointer:fine){
.insta-marquee:hover .insta-track,.insta-marquee:focus-within .insta-track{animation-play-state:paused}
.insta-card:hover{border-color:var(--red-hot)}
.insta-card:hover img{transform:scale(1.07)}
.insta-card:hover::after{opacity:1}
}
@media (prefers-reduced-motion:reduce){
.insta-track{animation:none}
.insta-marquee{overflow-x:auto}
.insta-group:nth-child(2){display:none}
}

/* ===== Territorio: jornada (substitui o radar abstrato) ===== */
.reach-journey{align-self:center}
.reach-line{list-style:none;margin:0;padding:0;position:relative}
.reach-line::before{content:"";position:absolute;left:7px;top:.6rem;bottom:1.4rem;width:2px;background:linear-gradient(var(--red-hot),var(--red-deep) 72%,transparent)}
.reach-stop{position:relative;padding:0 0 1.9rem 2.4rem}
.reach-stop:last-child{padding-bottom:0}
.reach-stop-dot{position:absolute;left:0;top:.3rem;width:16px;height:16px;border-radius:50%;background:var(--ink-soft);border:2px solid var(--red-hot);transition:transform .4s var(--ease)}
.reach-stop.is-origin .reach-stop-dot{background:var(--red-hot)}
.reach-stop.is-far .reach-stop-dot{background:var(--red-hot);box-shadow:0 0 18px 3px rgba(255,92,92,.55)}
.reach-stop strong{display:block;font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.15rem);letter-spacing:-.03em;line-height:1;color:var(--paper)}
.reach-stop span{display:block;margin-top:.4rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.07em;color:var(--paper-muted)}
@media (hover:hover) and (pointer:fine){.reach-stop:hover .reach-stop-dot{transform:scale(1.25)}}
@media (prefers-reduced-motion:no-preference){.reach-stop.is-far .reach-stop-dot{animation:reach-pulse 2.4s var(--ease) infinite}}
@keyframes reach-pulse{0%,100%{box-shadow:0 0 18px 3px rgba(255,92,92,.55)}50%{box-shadow:0 0 26px 6px rgba(255,92,92,.85)}}

/* ---- Comunidade: fotos de visitantes + avaliação ---- */
.community-head{margin-bottom:2.4rem}
.community-photo-block,.community-review-block{max-width:34rem;margin-bottom:3rem}
.community-form{display:flex;flex-direction:column;gap:1rem;margin-top:1.4rem}
.community-form h3{font-family:var(--display);font-size:1.3rem;letter-spacing:-.02em;color:var(--paper)}
.form-field{display:flex;flex-direction:column;gap:.4rem;font-family:var(--mono);font-size:.78rem;color:var(--paper-muted)}
.form-field input,.form-field textarea{padding:.75rem .9rem;background:var(--ink-soft);border:1px solid var(--line);color:var(--paper);font-family:var(--sans);font-size:.95rem}
.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--red-hot);outline-offset:2px}
.form-check{display:flex;align-items:flex-start;gap:.6rem;font-size:.85rem;color:var(--paper-muted)}
.form-check input{margin-top:.2rem}
.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.4em;font-family:var(--mono);font-size:.8rem}
.form-status[data-state="error"]{color:var(--red-hot)}
.form-status[data-state="success"]{color:var(--paper)}
.community-gallery-msg{font-family:var(--mono);font-size:.85rem;color:var(--paper-muted)}
.community-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem}
.community-photo{position:relative;aspect-ratio:1;overflow:hidden;background:var(--ink-soft)}
.community-photo img{width:100%;height:100%;object-fit:cover;display:block}
.community-photo figcaption{position:absolute;inset:auto 0 0;padding:.5rem .6rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.03em;color:var(--paper);background:linear-gradient(transparent,rgba(28,6,8,.85))}
@media (max-width:760px){.community-gallery-grid{grid-template-columns:repeat(2,1fr)}}
.star-rating{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:.15rem;border:0;padding:0;margin:0}
.star-rating legend{width:100%;font-family:var(--mono);font-size:.78rem;color:var(--paper-muted);margin:0 0 .4rem;padding:0}
.star-rating input{position:absolute;opacity:0;width:1px;height:1px}
.star-rating label{cursor:pointer;font-size:1.7rem;line-height:1;color:var(--line)}
.star-rating label::before{content:"\2605"}
.star-rating input:checked~label,.star-rating label:hover,.star-rating label:hover~label{color:var(--red-hot)}
.star-rating input:focus-visible+label{outline:2px solid var(--red-hot);outline-offset:2px}
.reviews-block{margin-top:3rem}
.reviews-list-msg{font-family:var(--mono);font-size:.85rem;color:var(--paper-muted)}
.reviews-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}
.review-card{padding:1.1rem 1.2rem;background:var(--ink-soft);border:1px solid var(--line)}
.review-card strong{display:block;color:var(--red-hot);letter-spacing:.05em;margin-bottom:.4rem}
.review-card p{margin:0 0 .5rem;font-size:.92rem}
.review-card cite{font-family:var(--mono);font-size:.72rem;font-style:normal;color:var(--paper-muted)}

/* ===== Territorio: globo giratorio (marca os locais do Satao) ===== */
.reach-visual{align-self:center;justify-self:center}
.reach-globe{display:none;width:100%;max-width:27rem;aspect-ratio:1;margin:0 auto;cursor:grab;contain:layout paint size}
.reach-visual.has-globe .reach-globe{display:block}
.reach-visual.has-globe .reach-fallback{display:none}
.reach-visual.has-globe .reach-caption{margin-top:1rem;text-align:center}
