/* Generated by scripts/build-styles.mjs. Preserve source order. */

/* styles.css */
:root{
  --graphite:#1A1A1A;--offwhite:#F4F4F2;--orange:#FF4D00;--gray:#72726f;--dark-border:rgba(244,244,242,.23);--light-border:rgba(26,26,26,.2);
  --font-romana:'romana-tw','Inter',serif;--font-bebas:'Bebas Neue','Inter',sans-serif;--font-commercial:'TT Fors','Inter',sans-serif;--font-ui:'Inter',sans-serif;
  --shell:min(1440px,calc(100% - 112px));--space-block:clamp(76px,9vw,152px)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--graphite);font-family:var(--font-commercial);font-size:16px;line-height:1.6}
a{color:inherit}a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
button{font:inherit}img,video{max-width:100%}.shell{width:var(--shell);margin:0 auto}.skip-link{position:absolute;z-index:999;background:var(--orange);color:#1a1a1a;top:-200px;left:16px;padding:12px 16px}.skip-link:focus{top:16px}
.section-dark{background:var(--graphite);color:var(--offwhite)}.section-light{background:var(--offwhite);color:var(--graphite)}.section-space{padding:var(--space-block) 0}
.site-header{position:absolute;top:0;left:0;width:100%;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px max(56px,calc((100vw - 1440px)/2));color:var(--offwhite);font:500 12px var(--font-ui);letter-spacing:.11em;text-transform:uppercase}
.wordmark{font:normal clamp(27px,2.7vw,38px)/1 var(--font-romana);letter-spacing:-.04em;text-decoration:none;text-transform:lowercase;white-space:nowrap}.wordmark span{margin-left:3px}.wordmark i{color:var(--orange);font-style:normal}
.nav{display:flex;gap:30px;align-items:center}.nav a,.nav-contact{text-decoration:none}.nav a:hover,.nav-contact:hover{color:var(--orange)}.nav-contact{white-space:nowrap}.nav-contact span{color:var(--orange);margin-left:9px}.nav-toggle{display:none;background:none;border:0;color:inherit;cursor:pointer}
.hero{min-height:800px;min-height:100svh;position:relative;padding-top:135px;display:flex;flex-direction:column;justify-content:center}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.84fr);align-items:center;gap:6vw;padding:60px 0 75px}.eyebrow,.overline{font:400 15px/1.3 var(--font-bebas);letter-spacing:.18em}.eyebrow-line{display:inline-block;width:45px;height:1px;background:var(--orange);vertical-align:middle;margin:0 12px}.hero-title,.display-heading{font-family:var(--font-romana);font-weight:400;letter-spacing:-.055em;line-height:1.05}.hero-title{font-size:clamp(57px,6.8vw,116px);margin:36px 0 33px;max-width:760px}.hero-title em,.display-heading em{font-weight:400}.hero-copy>p{font:400 clamp(17px,1.38vw,21px)/1.55 var(--font-commercial);max-width:420px;margin:0 0 34px;color:rgba(244,244,242,.78)}.button-accent{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;background:var(--orange);padding:17px 22px;color:var(--graphite);text-decoration:none;font:600 13px/1.2 var(--font-ui);transition:transform .2s ease,background .2s ease}.button-accent:hover{transform:translateY(-3px);background:#ff6e30}
.hero-visual{position:relative;aspect-ratio:4/4.2;max-height:600px;border:1px solid var(--dark-border);background:linear-gradient(145deg,#252525,#161616);overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;padding:50px}.hero-visual:after{content:'';position:absolute;width:72%;aspect-ratio:1;border:1px solid rgba(244,244,242,.1);border-radius:50%}.hero-visual-line{position:absolute;width:150%;height:1px;background:rgba(244,244,242,.09);transform:rotate(-45deg)}.hero-counter,.hero-visual-foot{position:absolute;font:400 12px var(--font-bebas);letter-spacing:.2em}.hero-counter{left:28px;top:24px}.hero-visual-foot{bottom:24px;left:24px;right:24px}.hero-pending{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:245px}.hero-pending strong{font:400 clamp(29px,3.8vw,50px)/1.05 var(--font-romana)}.hero-pending>span:last-child{font:400 12px/1.6 var(--font-ui);color:rgba(244,244,242,.57)}.hero-foot{display:flex;justify-content:space-between;gap:30px;padding-bottom:34px;font:400 12px var(--font-bebas);letter-spacing:.2em;color:rgba(244,244,242,.68)}
.section-number{font:400 18px/1 var(--font-bebas);letter-spacing:.13em;white-space:nowrap}.section-number span{font-size:14px;color:var(--gray);margin-left:8px}.about-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(20px,2.7vw,42px);align-items:start}.about-grid>.section-number{grid-column:1/span 2}.about-copy{grid-column:3/span 6;min-width:0}.botanical{grid-column:9/span 4;min-width:0}.about-copy{max-width:750px}.about-copy .overline{margin:0 0 28px}.display-heading{font-size:clamp(55px,6vw,100px);margin:0 0 34px}.about-copy .intro{font:400 clamp(19px,1.7vw,25px)/1.46 var(--font-commercial);max-width:680px}.about-copy>p:not(.overline):not(.intro){max-width:630px;color:#595955}.microproof{display:flex;flex-wrap:wrap;gap:28px;margin-top:58px;padding-top:18px;border-top:1px solid var(--light-border);font:500 12px var(--font-ui);letter-spacing:.04em}.botanical{margin:0;align-self:start;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.botanical img{display:block;width:100%;max-width:400px;height:auto;object-fit:contain;margin:0 auto;filter:none;opacity:1}.botanical figcaption{font:400 11px/1.4 var(--font-bebas);letter-spacing:.12em;margin-top:12px;text-align:center}
.section-kicker{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:60px;font:400 13px var(--font-bebas);letter-spacing:.16em}.solutions-title{max-width:820px;margin-bottom:66px}.solutions-list{border-top:1px solid var(--dark-border)}.solution{display:grid;grid-template-columns:120px 1fr 60px;gap:24px;align-items:start;padding:32px 0 36px;border-bottom:1px solid var(--dark-border)}.solution-num{font:400 17px var(--font-bebas);color:var(--orange)}.solution h3{font:400 clamp(30px,3.3vw,56px)/1.1 var(--font-romana);margin:0 0 14px}.solution p{max-width:580px;font:400 16px/1.65 var(--font-commercial);color:rgba(244,244,242,.7);margin:0}.solution-plus{font:400 26px/1 var(--font-ui);text-align:right;color:var(--orange)}
.projects-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:end;margin-bottom:48px}.projects-top .display-heading{margin:0}.projects-top>p{max-width:340px;margin:0 0 12px;color:#64645f;font:400 15px/1.6 var(--font-commercial)}.case-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto;gap:24px;align-items:stretch}.case{min-width:0}.case-featured{grid-column:1 / -1;grid-row:auto;min-height:0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center;border-bottom:1px solid var(--light-border);padding-bottom:28px}.case-image{position:relative;overflow:hidden;background:#363633}.case-image img{display:block;width:100%;height:auto;object-fit:contain;filter:grayscale(1)}.case-image>span{position:absolute;left:16px;bottom:15px;background:var(--graphite);color:var(--offwhite);padding:6px 10px;font:400 11px var(--font-bebas);letter-spacing:.1em}.case-caption{padding:8px 24px 8px 8px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.case-caption>span,.case-index,.case-text-foot{font:400 13px/1.3 var(--font-bebas);letter-spacing:.13em}.case-caption h3,.case-text h3{font:400 clamp(30px,3vw,48px)/1.1 var(--font-romana);margin:10px 0}.case-caption p{max-width:470px;margin:0 0 15px;font:400 15px/1.6 var(--font-commercial)}.case-caption strong{font:400 16px var(--font-bebas);letter-spacing:.1em;color:var(--orange)}.case-text{grid-column:1 / span 7;display:flex;flex-direction:column;justify-content:space-between;min-height:300px;background:#e8e8e4;padding:28px 32px;gap:24px}.case-text-main p{max-width:430px;font:400 15px/1.55 var(--font-commercial)}.case-text-contrast{grid-column:8 / span 5;background:var(--graphite);color:var(--offwhite)}.case-numbers{display:flex;flex-wrap:wrap;gap:24px;margin-top:20px}.case-numbers span{font:400 12px var(--font-bebas);letter-spacing:.13em}.case-numbers b{display:block;font:400 34px/1.05 var(--font-romana);letter-spacing:-.04em}.case-numbers small{display:block;font:400 10px/1.3 var(--font-ui);letter-spacing:.03em;color:#b8b8b4}.full-video-block{margin-top:95px;border-top:1px solid var(--light-border);padding-top:40px;display:grid;grid-template-columns:1fr 1.4fr;gap:54px;align-items:center}.full-video-block h3{font:400 clamp(35px,4vw,62px)/1.1 var(--font-romana);margin:15px 0}.full-video-block p{max-width:400px;color:#64645f;font:400 15px/1.6 var(--font-commercial)}.full-video-block video{display:block;width:100%;aspect-ratio:16/9;background:#151515}
.contact-section{padding-top:clamp(105px,12vw,170px)}.contact-grid{display:grid;grid-template-columns:1fr 260px;gap:60px;align-items:end;padding-bottom:130px}.contact-grid h2{margin:52px 0 26px;font-size:clamp(55px,7vw,115px)}.contact-grid>div:first-child>p{margin-bottom:33px;color:rgba(244,244,242,.73)}.contact-aside{display:flex;flex-direction:column;gap:12px;padding-bottom:4px;font:400 14px/1.45 var(--font-ui)}.contact-aside p{font:400 17px var(--font-bebas);letter-spacing:.12em;color:var(--orange)}.contact-aside a{text-decoration:none;word-break:break-word}.contact-aside a:hover{text-decoration:underline}.footer{border-top:1px solid var(--dark-border);min-height:90px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px;font:400 12px var(--font-bebas);letter-spacing:.13em;color:rgba(244,244,242,.65)}.footer a{text-decoration:none}
@media(max-width:1050px){:root{--shell:calc(100% - 64px)}.nav{gap:15px}.site-header{padding:24px 32px}.about-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.about-grid>.section-number{grid-column:1 / -1}.about-copy{grid-column:1 / span 8}.botanical{grid-column:9 / span 4;margin:0}.botanical img{max-height:none;width:100%;height:auto;object-fit:contain}.hero-title{font-size:clamp(54px,7.2vw,80px)}.hero-grid{gap:38px}.case-text{min-height:0}}
@media(max-width:720px){:root{--shell:calc(100% - 40px);--space-block:76px}.site-header{padding:22px 20px;gap:15px}.nav-contact{display:none}.nav-toggle{display:flex;gap:10px;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--graphite);padding:25px 20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--dark-border)}.nav.is-open{display:flex}.wordmark{font-size:32px}.hero{padding-top:105px;min-height:auto}.hero-grid{grid-template-columns:1fr;padding:55px 0 35px;gap:48px}.hero-title{font-size:clamp(51px,13vw,82px);margin:25px 0}.hero-copy>p{font-size:17px}.hero-visual{width:100%;min-width:0;aspect-ratio:4/2.8;min-height:0;max-height:350px}.hero-pending strong{font-size:32px}.hero-foot{font-size:11px}.about-grid{display:block}.about-copy{padding-top:24px}.about-copy .intro{font-size:19px}.botanical{max-width:300px;margin:40px auto 0}.botanical img{width:100%;height:auto;max-height:none;object-fit:contain}.microproof{margin-top:34px;gap:12px}.section-kicker{margin-bottom:35px}.display-heading{font-size:clamp(51px,11vw,75px);margin-bottom:25px}.solution{grid-template-columns:38px 1fr 21px;gap:11px;padding:24px 0}.solution h3{font-size:clamp(29px,7vw,42px)}.solution p{font-size:14px}.projects-top{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.projects-top>p{margin:20px 0 0}.case-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:26px}.case{margin:0}.case-featured{grid-column:1;grid-row:auto;grid-template-columns:minmax(0,1fr);gap:18px;padding-bottom:25px;margin-bottom:10px}.case-caption{padding:0}.case-image img{width:100%;height:auto;object-fit:contain}.case-text,.case-text-contrast{grid-column:1;min-height:0;padding:26px 24px;gap:24px}.full-video-block{grid-template-columns:1fr;gap:20px;margin-top:70px;padding-top:32px}.contact-grid{grid-template-columns:1fr;gap:65px;padding-bottom:75px}.contact-grid h2{font-size:clamp(51px,11vw,75px);margin:35px 0}.footer{padding:24px 0;min-height:0}.hero-visual-foot{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* TO EVENTOS V3 · Movimento exclusivamente no trilho; arte e mídias preservadas */
.hero-scroll-stage{position:relative;isolation:isolate}
.hero-scrub-video:not([hidden]){display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#111;z-index:0}
.hero-pending{pointer-events:none}
.hero-visual{will-change:transform}
.projects-horizontal{position:relative;background:var(--offwhite);color:var(--graphite);scroll-margin-top:0}
.projects-pin{width:100%;height:100svh;min-height:720px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--orange) transparent}
.projects-track{height:100%;display:flex;width:max-content;align-items:stretch;will-change:transform}
.project-panel{flex:0 0 100vw;width:100vw;min-width:0;height:100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;overflow:clip}
.project-panel-inner{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;padding-top:clamp(42px,7vh,90px);padding-bottom:clamp(72px,10vh,120px)}
.project-panel .section-kicker{margin-bottom:clamp(24px,4vh,52px)}
.project-panel .projects-top{margin-bottom:clamp(18px,3vh,36px)}
.project-panel-summit .case-featured{border-bottom:none;padding-bottom:0}
.project-panel .case-layout{grid-template-rows:auto;align-items:stretch}
.project-panel-cases .case-text{min-height:clamp(350px,48vh,590px);padding:clamp(26px,3vw,52px);}
.project-panel-cases .case-text-contrast{grid-column:8 / span 5}
.project-panel-cases .case-text:not(.case-text-contrast){grid-column:1 / span 7}
.project-asset-note{font:400 12px/1.5 var(--font-commercial);color:#64645f;margin:24px 0 0}
.project-panel-video .full-video-block{margin:0;border:0;padding:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(35px,6vw,108px);align-items:center}
.project-panel-video .full-video-block h3{font-size:clamp(42px,4.15vw,68px);letter-spacing:-.047em;max-width:100%}
.project-panel-video .full-video-block video{height:auto;max-height:min(62vh,670px);object-fit:contain;background:var(--graphite)}
.projects-progress{position:absolute;z-index:2;bottom:24px;left:50%;transform:translateX(-50%);width:var(--shell);display:flex;align-items:center;gap:25px;justify-content:space-between;font:400 12px/1.2 var(--font-bebas);letter-spacing:.14em;pointer-events:none}
.projects-progress span b{font:400 25px/0 var(--font-ui);color:var(--orange);margin-left:9px}
.projects-progress-track{flex:1;height:2px;background:rgba(26,26,26,.16);max-width:540px}
.projects-progress-fill{height:2px;background:var(--orange);display:block;transform:scaleX(0);transform-origin:left center}
.is-gsap-active .projects-pin{overflow:hidden;scroll-snap-type:none;scrollbar-width:none}
.is-gsap-active .projects-track{transform:translate3d(0,0,0)}
@media(max-width:899px){
 .projects-pin{height:auto;min-height:0;overflow:visible;scroll-snap-type:none}
 .projects-track{display:flex;flex-direction:column;width:100%;height:auto;will-change:auto}
 .project-panel{flex:none;width:100%;height:auto;min-height:0;overflow:visible}
 .project-panel-inner{padding-top:80px;padding-bottom:80px}
 .project-panel-cases .case-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
 .project-panel-cases .case-text{min-height:350px}
 .project-panel-video .full-video-block{grid-template-columns:minmax(0,1fr);gap:22px}
 .projects-progress{display:none}
}
@media(max-width:720px){
 .project-panel-inner{padding-top:70px;padding-bottom:70px}
 .project-panel .section-kicker{margin-bottom:34px}
 .project-panel .case-layout{grid-template-columns:minmax(0,1fr)}
 .project-panel-cases .case-layout .case-text,.project-panel-cases .case-layout .case-text-contrast{grid-column:1;min-height:0}
 .project-panel-video .full-video-block h3{font-size:clamp(49px,11vw,73px)}
 .projects-progress{display:none}
}
@media(prefers-reduced-motion:reduce){.projects-track,.hero-visual{will-change:auto}.projects-pin{overflow:visible}.projects-track{display:flex;flex-direction:column;width:100%}.project-panel{flex:none;width:100%;height:auto;min-height:0;overflow:visible}.project-panel-inner{padding-top:70px;padding-bottom:70px}.projects-progress{display:none}}


/* ui-v4.css */
/* TO EVENTOS V4 — grid editorial e componentes isolados. */
:root{--to-rail:#FF4D00}
.hero-grid{grid-template-columns:minmax(0,1.03fr) minmax(0,1fr);gap:clamp(48px,5.5vw,100px)}
.hero-copy,.hero-grid>*{min-width:0}
.hero-title{font-size:clamp(48px,4.65vw,82px);line-height:1.075;letter-spacing:-.045em;max-width:100%;overflow-wrap:normal}
.hero-copy>p{max-width:39ch}
.hero-visual{width:100%;min-width:0;max-width:100%;isolation:isolate}
.hero-visual .hero-pending{max-width:min(85%,245px)}
.hero-visual .hero-pending strong{font-size:clamp(28px,3vw,43px)}
.about-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);gap:clamp(48px,5vw,96px);align-items:center}
.about-grid>.section-number{display:none}
.about-copy{grid-column:1;max-width:none;min-width:0}
.botanical{grid-column:2;min-width:0;width:100%}
.botanical img{width:100%;height:auto;max-width:400px;object-fit:contain;aspect-ratio:auto}
.about-copy .display-heading{font-size:clamp(47px,5vw,84px);line-height:1.08;letter-spacing:-.045em}
.section-kicker{justify-content:flex-start;margin-bottom:clamp(26px,4vw,52px)}
.section-kicker>span:empty{display:none}
.solutions-title{font-size:clamp(49px,5.25vw,87px)}
.solution{grid-template-columns:minmax(0,1fr);gap:0;padding-block:clamp(28px,3.5vw,48px)}
.solution h3{max-width:100%}
.project-panel-inner,.projects-top,.full-video-block,.full-video-block>div{min-width:0}
.project-panel-video .full-video-block{grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:clamp(44px,5vw,90px)}
.project-panel-video .full-video-block h3{font-size:clamp(38px,3.65vw,60px);overflow-wrap:normal}
.contact-grid>div:first-child{min-width:0}
.contact-grid h2{font-size:clamp(50px,5.7vw,94px)}
.site-header{gap:clamp(20px,3vw,45px);padding-inline:max(56px,calc((100vw - 1440px)/2))}
.site-header .nav{display:none}
.nav-contact{display:inline-flex;align-items:center;justify-content:center;gap:11px;white-space:nowrap;border:1px solid rgba(255,255,255,.18);padding:12px 17px;border-radius:999px;background:#25D366;color:#08140b;text-decoration:none;font:700 12px/1 var(--font-ui);letter-spacing:.045em;text-transform:none;transition:filter .2s ease,transform .2s ease}
.nav-contact:hover{color:#08140b;filter:brightness(1.08);transform:translateY(-1px)}
.wa-icon,.to-whatsapp-float svg{display:block;width:20px;height:20px;fill:currentColor;flex:none}
.to-whatsapp-float{position:fixed;right:clamp(16px,1.5vw,28px);bottom:clamp(22px,2vw,32px);z-index:91;display:grid;place-items:center;width:55px;height:55px;border-radius:50%;background:#25D366;color:#fff;border:1px solid rgba(255,255,255,.28);box-shadow:0 10px 30px rgba(0,0,0,.23),0 0 22px rgba(37,211,102,.20);transition:transform .2s ease,filter .2s ease}
.to-whatsapp-float:hover{transform:translateY(-3px);filter:brightness(1.06)}
.to-whatsapp-float svg{width:29px;height:29px}
.to-section-nav{position:fixed;right:clamp(10px,1.35vw,24px);top:50%;transform:translateY(-50%);z-index:80;width:25px;padding:11px 0;border:1px solid transparent;border-radius:16px;transition:width .25s ease,padding .25s ease,background .25s ease,backdrop-filter .25s ease;color:var(--offwhite)}
.to-section-nav:hover,.to-section-nav:focus-within{width:155px;padding-inline:12px;background:rgba(22,22,22,.82);border-color:rgba(244,244,242,.17);backdrop-filter:blur(16px)}
.to-section-nav-rail{position:absolute;right:11px;top:28px;bottom:28px;width:2px;background:rgba(150,150,150,.38);pointer-events:none}
.to-section-nav-rail>span{display:block;width:100%;height:100%;background:var(--to-rail);box-shadow:0 0 10px rgba(255,77,0,.72);transform:scaleY(0);transform-origin:top;will-change:transform}
.to-section-nav-list{list-style:none;display:grid;gap:3px;margin:0;padding:0}
.to-section-nav-list li{margin:0;padding:0}
.to-section-nav-list a{position:relative;display:flex;gap:12px;align-items:center;justify-content:flex-end;width:100%;min-height:34px;padding:0 7px 0 0;text-decoration:none;outline-offset:3px;color:rgba(244,244,242,.88);font:600 11px/1.15 var(--font-ui);letter-spacing:.02em}
.to-section-nav-list a>span{white-space:nowrap;opacity:0;transform:translateX(6px);pointer-events:none;transition:opacity .18s,transform .18s}
@media(min-width:721px){.to-section-nav:hover a>span,.to-section-nav:focus-within a>span{opacity:1;transform:none}}
.to-section-nav-list a>i{z-index:2;flex:none;width:8px;height:8px;border:1px solid rgba(244,244,242,.7);border-radius:50%;background:var(--graphite);transition:border-color .15s,box-shadow .15s}
.to-section-nav-list a.is-active>i,.to-section-nav-list a:hover>i{border-color:var(--to-rail);box-shadow:0 0 0 2px rgba(255,77,0,.24),0 0 11px rgba(255,77,0,.62)}
.to-section-nav-list a.is-active>span{color:#ff7c48}
.section-dark,.section-light,.projects-horizontal{scroll-margin-top:0}
.footer{padding-bottom:20px}
@media(max-width:1100px){
.hero-grid{grid-template-columns:minmax(0,1fr);max-width:760px;margin-inline:auto;gap:52px}
.hero-title{font-size:clamp(49px,6.4vw,82px)}
.hero-visual{aspect-ratio:16/10;max-height:510px}
.hero{padding-top:155px}
.about-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.75fr);gap:40px}
.about-copy .display-heading{font-size:clamp(49px,5.7vw,74px)}
}
@media(max-width:720px){
.site-header{padding:21px 20px}
.site-header .nav{display:none}
.site-header .nav.is-open{display:flex}
.site-header .nav-toggle{display:flex}
.nav-contact{display:none}
.hero{padding-top:110px}
.hero-grid{padding-top:35px;gap:32px}
.hero-title{font-size:clamp(36px,10.2vw,60px);line-height:1.09;letter-spacing:-.04em}
.hero-visual{max-height:355px;aspect-ratio:4/3}
.about-grid{display:flex;flex-direction:column;align-items:stretch;gap:38px}
.about-copy .display-heading{font-size:clamp(42px,10vw,69px);line-height:1.09}
.botanical{margin:0 auto;max-width:360px}
.solutions-title{font-size:clamp(45px,10vw,71px)}
.solution{grid-template-columns:minmax(0,1fr)}
.project-panel-video .full-video-block{grid-template-columns:minmax(0,1fr);gap:24px}
.project-panel-video .full-video-block h3{font-size:clamp(42px,10vw,66px)}
.contact-grid h2{font-size:clamp(45px,10vw,75px)}
.to-section-nav{top:auto;bottom:max(18px,env(safe-area-inset-bottom));left:14px;right:auto;transform:none;width:auto;max-width:calc(100vw - 110px);padding:5px 9px;border:1px solid rgba(255,255,255,.16);border-radius:40px;background:rgba(26,26,26,.86);backdrop-filter:blur(16px)}
.to-section-nav:hover,.to-section-nav:focus-within{width:auto;padding:5px 9px;background:rgba(26,26,26,.93)}
.to-section-nav-rail{display:none}
.to-section-nav-list{display:flex;gap:0;align-items:center}
.to-section-nav-list a{width:clamp(38px,10vw,44px);height:44px;min-height:44px;justify-content:center;padding:0;touch-action:manipulation}
.to-section-nav-list a>span{position:absolute;left:50%;top:-40px;transform:translateX(-50%);padding:6px 9px;border-radius:5px;background:#1a1a1a;opacity:0;pointer-events:none;font-size:10px}
.to-section-nav-list a:focus-visible>span{opacity:1;transform:translateX(-50%)}
.to-section-nav-list a>i{width:9px;height:9px}
.to-whatsapp-float{right:16px;bottom:max(18px,env(safe-area-inset-bottom));width:50px;height:50px}
.footer{padding-bottom:95px}
}
@media(prefers-reduced-motion:reduce){.to-section-nav,.to-section-nav *, .to-whatsapp-float,.nav-contact{transition:none;scroll-behavior:auto}}

/* Evitar que o estilo antigo pinte o texto do WhatsApp de laranja. */
.nav-contact span{margin-left:0;color:inherit}


/* Contraste adaptativo: sobre fundo off-white, os pontos escurecem e o brilho permanece laranja. */
.to-section-nav.is-on-light{color:var(--graphite)}
.to-section-nav.is-on-light .to-section-nav-rail{background:rgba(26,26,26,.28)}
.to-section-nav.is-on-light .to-section-nav-list a{color:var(--graphite)}
.to-section-nav.is-on-light .to-section-nav-list a>i{border-color:rgba(26,26,26,.7);background:var(--offwhite)}
.to-section-nav.is-on-light .to-section-nav-list a.is-active>i{border-color:var(--to-rail)}
.to-section-nav.is-on-light:hover,.to-section-nav.is-on-light:focus-within{background:rgba(244,244,242,.94);border-color:rgba(26,26,26,.12)}
@media(min-width:721px) and (max-width:1100px){.site-header{padding-inline:32px}}
@media(max-width:720px){
.to-section-nav.is-on-light{color:var(--offwhite)}
.to-section-nav.is-on-light .to-section-nav-list a{color:var(--offwhite)}
.to-section-nav.is-on-light .to-section-nav-list a>i{border-color:rgba(244,244,242,.72);background:var(--graphite)}
.to-section-nav.is-on-light:hover,.to-section-nav.is-on-light:focus-within{background:rgba(26,26,26,.94)}
}


/* ui-v41.css */
/* TO EVENTOS V4.1
   Escopo: restaurar navegação superior, CTA WhatsApp laranja, passagem editorial Sobre → Soluções.
   NÃO altera o botão flutuante verde de WhatsApp ou o sistema de navegação lateral. */
.site-header .nav-contact{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:var(--orange);
  color:var(--graphite);
  border:1px solid var(--orange);
  border-radius:999px;
  padding:12px 18px;
  font:700 12px/1.15 var(--font-ui);
  text-decoration:none;
}
.site-header .nav-contact span{color:inherit;margin-left:0}
.site-header .nav-contact:hover{
  background:#ff7035;
  border-color:#ff7035;
  color:var(--graphite);
  filter:none;
  transform:translateY(-1px)
}
.site-header .nav-contact:active{transform:translateY(0);filter:brightness(.97)}
.site-header .nav-contact:focus-visible{
  outline:3px solid var(--offwhite);
  outline-offset:4px
}
.site-header .nav-contact .wa-icon{fill:currentColor}

/* O menu de topo é complementar ao trilho lateral, não substituído por ele. */
@media(min-width:901px){
  .site-header .nav{
    display:flex;
    position:static;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:clamp(13px,1.8vw,29px);
    min-width:0;
    margin-inline:auto;
    padding:0;
    background:none;
    border:0;
  }
  .site-header .nav a{
    white-space:nowrap;
    font:600 clamp(10px,.8vw,12px)/1.2 var(--font-ui);
    letter-spacing:.09em;
    text-transform:uppercase;
  }
  .site-header{gap:clamp(13px,2.2vw,32px)}
  .site-header .nav-toggle{display:none}
}
@media(min-width:901px) and (max-width:1110px){
  .site-header{padding-inline:30px;gap:15px}
  .site-header .nav{gap:clamp(10px,1.2vw,16px)}
  .site-header .nav-contact{padding:11px 13px;font-size:11px}
  .site-header .wordmark{font-size:clamp(26px,2.5vw,33px)}
}
@media(min-width:721px) and (max-width:900px){
  .site-header .nav{display:none}
  .site-header .nav-toggle{
    display:flex;
    align-items:center;
    background:none;
    color:var(--offwhite);
    border:0;
    cursor:pointer;
    font:600 12px var(--font-ui);
    letter-spacing:.09em;
    text-transform:uppercase;
  }
  .site-header .nav.is-open{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    padding:24px 32px;
    background:var(--graphite);
    border-bottom:1px solid var(--dark-border);
  }
}
@media(max-width:720px){
  .site-header .nav-contact{display:none}
}

/* CORREÇÃO V4.1.1 — SEM pinSpacing:false.
   A estrutura contém APENAS Sobre/Papoulas + Soluções/Competências.
   CSS sticky mantém o fundo branco até o grafite subir; GSAP controla a subida.
   A altura dos elementos no documento permanece intacta: não há salto para o HERO. */
.to-page-turn{position:relative;isolation:isolate}
.to-page-turn>#sobre,.to-page-turn>#solucoes{width:100%}
.to-page-turn>#sobre{z-index:1}
.to-page-turn>#solucoes{position:relative;z-index:2}
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
  .to-page-turn>#sobre{
    position:sticky;
    top:min(0px,calc(100svh - var(--to-about-height,100svh)));
    min-height:100svh;
  }
  .to-page-turn>#solucoes{will-change:transform}
}
@media(max-width:900px),(prefers-reduced-motion:reduce){
  .to-page-turn>#sobre{position:relative;top:auto;min-height:0}
  .to-page-turn>#solucoes{will-change:auto;transform:none}
}


/* hero-v5.css */
/* HERO V5 — sequência cinematográfica editorial TO Eventos.
   HERO é a primeira dobra: o cabeçalho fica oculto nesta versão. */
.site-header{display:none !important}
.hero-scroll-stage{
  position:relative;
  isolation:isolate;
  width:100%;
  background:var(--graphite);
}
.hero-scroll-stage .hero{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:100vh;
  height:100vh;
  min-height:100dvh;
  height:100dvh;
  padding:0;
  overflow:hidden;
  background:var(--graphite);
}
.hero-scroll-stage .hero-grid{
  width:var(--shell);
  display:grid;
  grid-template-columns:minmax(0,1.03fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(50px,6vw,110px);
  padding:clamp(26px,5vh,60px) 0;
  flex:1;
}
.hero-scroll-stage .hero-copy{min-width:0;align-self:center}
.hero-scroll-stage .hero-title{
  font-size:clamp(48px,4.75vw,86px);
  line-height:1.08;
  max-width:100%;
  overflow-wrap:normal;
  margin:clamp(18px,3.5vh,37px) 0 clamp(22px,3.5vh,35px);
}
.hero-scroll-stage .hero-visual{
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  height:auto;
  max-height:none;
  min-height:0;
  padding:0;
  border:1px solid rgba(244,244,242,.18);
  background:#FF4D00;
}
.hero-scroll-stage .hero-visual::after,
.hero-scroll-stage .hero-visual-line,
.hero-scroll-stage .hero-pending,
.hero-scroll-stage .hero-visual-foot{display:none}
/* A moldura é apenas destino geométrico durante o scroll, sem fundo próprio. */
.hero-scroll-stage.is-motion-hero .hero-visual{background:transparent;border-color:transparent}
.hero-scroll-stage .hero-film-screen{
  display:none;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:6;
  background:#FF4D00;
  overflow:hidden;
  border:0 solid rgba(244,244,242,.18);
  pointer-events:none;
}
.hero-scroll-stage.is-motion-hero .hero-film-screen{display:block}
.hero-scroll-stage .hero-film-screen video,
.hero-scroll-stage .hero-visual video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  background:#FF4D00;
}
.hero-scroll-stage .hero-visual video{height:auto;aspect-ratio:16/9}
.hero-scroll-stage .hero-foot{
  width:var(--shell);
  padding-bottom:clamp(16px,3vh,32px);
  flex-shrink:0;
}
.hero-scroll-stage.is-motion-hero .hero-copy,
.hero-scroll-stage.is-motion-hero .hero-foot{position:relative;z-index:1}
@media(max-width:899px){
  .hero-scroll-stage .hero{min-height:100vh;height:100vh;min-height:100dvh;height:100dvh;padding:0;overflow:hidden}
  .hero-scroll-stage .hero-grid{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:stretch;
    gap:0;
    min-height:0;
    padding:clamp(25px,5vh,45px) 0;
  }
  .hero-scroll-stage .hero-copy{align-self:auto}
  .hero-scroll-stage .hero-copy .eyebrow{font-size:clamp(12px,2.5vw,16px)}
  .hero-scroll-stage .hero-title{
    font-size:clamp(39px,9.2vw,69px);
    line-height:1.09;
    margin:clamp(14px,3vh,28px) 0 clamp(17px,3vh,28px);
  }
  .hero-scroll-stage .hero-copy>p{font-size:clamp(14px,3.35vw,18px);max-width:45ch}
  .hero-scroll-stage .hero-visual{display:none}
  .hero-scroll-stage .hero-foot{padding-bottom:16px;font-size:10px;gap:12px}
  .hero-scroll-stage .hero-film-screen video{object-fit:contain}
}
@media(max-width:430px){
  .hero-scroll-stage .hero-title{font-size:clamp(34px,9.4vw,45px)}
  .hero-scroll-stage .hero-copy>p{font-size:15px;line-height:1.45}
  .hero-scroll-stage .button-accent{padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){
  .hero-scroll-stage .hero-film-screen{display:none}
  .hero-scroll-stage .hero-visual{display:block}
  .hero-scroll-stage .hero{height:auto;min-height:100svh}
  .hero-scroll-stage .hero-copy{opacity:1!important;transform:none!important}
  .hero-scroll-stage .hero-visual video{pointer-events:auto}
}

/* V7: scroll cue, confined to the cinematic phase. */
.to-hero-scroll-cue{position:absolute;z-index:9;left:50%;bottom:46px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;color:#F4F4F2;opacity:1;transition:opacity .2s ease}
.to-cue-label{font-size:11px;font-weight:700;letter-spacing:.16em;white-space:nowrap;text-transform:uppercase}
.to-cue-mouse{position:relative;width:34px;height:52px;border:1.7px solid #F4F4F2;border-radius:22px}
.to-cue-wheel{position:absolute;left:50%;top:8px;width:4px;height:10px;border-radius:4px;background:#FF4D00;transform:translateX(-50%);animation:toCueWheel 1.25s ease-in-out infinite}
@keyframes toCueWheel{0%{opacity:0;top:8px}35%{opacity:1}85%,100%{opacity:0;top:27px}}
@media(max-width:899px){.to-hero-scroll-cue{bottom:calc(72px + env(safe-area-inset-bottom,0px));gap:8px}.to-cue-label{font-size:9px}.to-cue-mouse{width:30px;height:46px}}
@media(prefers-reduced-motion:reduce){.to-cue-wheel{animation:none}.to-hero-scroll-cue{display:none}}


/* florais-v6.css */
/* TO Eventos V6 — papoulas originais, sem alteração de geometria.
   Arquivos fornecidos: imagem 3 = esquerda; imagem 2 = direita; vídeo = Sobre. */

#sobre .botanical-motion{
  grid-column:2;
  min-width:0;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  align-self:center;
}
#sobre .botanical-motion .about-floral-video{
  display:block;
  width:100%;
  max-width:400px;
  aspect-ratio:9/16;
  height:auto;
  object-fit:contain;
  object-position:center center;
  background:transparent;
  border:0;
}
#sobre .botanical-motion figcaption{
  margin-top:12px;
  text-align:center;
  max-width:100%;
}
#sobre .about-copy{
  min-width:0;
}

/* Flores decorativas isoladas de Soluções: não modificam grid, sticky ou HERO. */
#solucoes{
  position:relative;
  overflow:clip;
  isolation:isolate;
}
#solucoes > .shell{
  position:relative;
  z-index:2;
  min-width:0;
}
#solucoes .solutions-florals{
  position:absolute;
  inset:0;
  overflow:clip;
  pointer-events:none;
  z-index:1;
}
#solucoes .solutions-floral{
  position:absolute;
  display:block;
  height:auto;
  aspect-ratio:3/4;
  max-width:none;
  object-fit:contain;
  object-position:center;
  opacity:1;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  transform:translate3d(0,0,0);
}
#solucoes .solutions-floral-left{
  top:clamp(-42px,-2vw,-18px);
  left:clamp(-155px,-9.5vw,-78px);
  width:clamp(230px,26vw,400px);
}
#solucoes .solutions-floral-right{
  top:clamp(190px,30vh,350px);
  right:clamp(-165px,-10vw,-85px);
  width:clamp(265px,28vw,430px);
}

/* Inicialização sem piscar: só ocultar flores quando GSAP estiver realmente ativo. */
.florals-enhanced #solucoes .solutions-floral{opacity:0}

@media(max-width:1100px){
  #solucoes .solutions-floral-left{
    left:clamp(-130px,-10vw,-68px);
    width:clamp(210px,28vw,310px);
  }
  #solucoes .solutions-floral-right{
    right:clamp(-145px,-11vw,-75px);
    width:clamp(250px,30vw,335px);
  }
}
@media(max-width:720px){
  #sobre .botanical-motion{
    grid-column:auto;
    width:min(80vw,340px);
    margin:24px auto 0;
    align-self:center;
  }
  #sobre .botanical-motion .about-floral-video{
    max-width:100%;
    width:100%;
    aspect-ratio:9/16;
    object-fit:contain;
  }
  #solucoes .solutions-floral-left{
    top:6px;
    left:-78px;
    width:160px;
  }
  #solucoes .solutions-floral-right{
    top:clamp(205px,42vh,350px);
    right:-73px;
    width:180px;
  }
  #solucoes > .shell{
    position:relative;
    z-index:2;
  }
}
@media(max-width:390px){
  #solucoes .solutions-floral-left{left:-75px;width:150px}
  #solucoes .solutions-floral-right{right:-73px;width:168px}
}
@media(prefers-reduced-motion:reduce){
  .florals-enhanced #solucoes .solutions-floral{
    opacity:1;
    transform:none;
  }
}
/* V7: cropped transparent PNG derivatives; dimensions refer to visible artwork. */
#solucoes .solutions-floral{aspect-ratio:auto;object-fit:contain}
#solucoes .solutions-floral-left{top:5%;left:-42px;width:clamp(120px,10.5vw,175px)}
#solucoes .solutions-floral-right{top:38%;right:-48px;width:clamp(140px,12vw,205px)}
@media(max-width:720px){#solucoes .solutions-floral-left{top:5%;left:-34px;width:125px}#solucoes .solutions-floral-right{top:39%;right:-40px;width:145px}}


/* v7.css */
/* TO EVENTOS V7 — somente os cinco ajustes aprovados.
   Todas as mídias preservam sua proporção original. */
:root{--to-orange:#FF4D00;--to-paper:#F4F4F2;--to-graphite:#1A1A1A;--to-hero-ambient:#ff6108}
.hero-scroll-stage .hero{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;max-height:100dvh}
.hero-scroll-stage .hero-film-screen{background:var(--to-hero-ambient);overflow:hidden}
.hero-scroll-stage .hero-film-screen video{width:100%;height:100%;object-fit:contain;object-position:center center;background:var(--to-hero-ambient);aspect-ratio:auto}
.hero-scroll-stage .hero-visual video{object-fit:contain;object-position:center center}
.to-hero-scroll-cue{position:absolute;z-index:12;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;opacity:1;padding:0;background:transparent;border:0;box-shadow:none;border-radius:0;filter:none}
.to-cue-label{font:700 11px/1.25 var(--font-ui,Inter,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--to-graphite);text-shadow:none;white-space:nowrap}
.to-cue-mouse{position:relative;width:34px;height:52px;border:1.7px solid var(--to-graphite);border-radius:20px;background:transparent;box-shadow:none}
.to-cue-wheel{position:absolute;left:50%;top:8px;width:4px;height:10px;border-radius:999px;background:var(--to-graphite);transform:translateX(-50%);box-shadow:none;animation:to-cue-wheel 1.25s ease-in-out infinite}
.to-cue-direction{width:7px;height:7px;border-right:2px solid var(--to-graphite);border-bottom:2px solid var(--to-graphite);transform:rotate(45deg);margin-top:-2px}
@keyframes to-cue-wheel{0%,100%{opacity:.32;top:8px}45%{opacity:1;top:25px}}
/* Sobre: não alterar o grid. O GSAP controla somente transform/opacity dos filhos da cópia. */
#sobre .about-copy{min-width:0}
#sobre .botanical-motion{position:relative}
#sobre .botanical-motion video{aspect-ratio:9/16;object-fit:contain;width:100%;height:auto;max-width:400px}
/* Florais a partir dos limites reais NÃO transparentes de cada imagem. */
#solucoes{overflow:clip}
#solucoes .solutions-florals{overflow:clip;pointer-events:none}
#solucoes .solutions-floral{height:auto;max-width:none;object-fit:contain;pointer-events:none;aspect-ratio:auto}
#solucoes .solutions-floral-left{top:5%;left:-45px;width:clamp(120px,10.5vw,175px)}
#solucoes .solutions-floral-right{top:37%;right:-52px;width:clamp(140px,12vw,205px)}
/* Não ocultar flores se GSAP não carregar. Animações adicionam classe somente após inicialização. */
.florals-enhanced #solucoes .solutions-floral{opacity:0}
#projetos .case-featured .case-image{min-width:0;overflow:clip}
#projetos .case-featured .case-image video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center;background:var(--to-graphite)}
/* PDF Showcase: mesma coluna e mesmo painel da apresentação existente. */
#projetos .to-pdf-showcase{min-width:0;width:100%;background:var(--to-paper);border:1px solid rgba(26,26,26,.2);color:var(--to-graphite)}
#projetos .to-pdf-stage{position:relative;width:100%;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;background:#161616}
#projetos .to-pdf-stage canvas{display:block;max-width:100%;max-height:100%;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
#projetos .to-pdf-fallback{display:none;width:100%;height:100%;border:0}
#projetos .to-pdf-showcase.is-fallback canvas{display:none}
#projetos .to-pdf-showcase.is-fallback .to-pdf-fallback{display:block}
#projetos .to-pdf-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--to-paper);font:600 12px/1.4 var(--font-ui,Inter,sans-serif);letter-spacing:.08em;text-align:center;padding:16px}
#projetos .to-pdf-showcase.is-ready .to-pdf-loading{display:none}
#projetos .to-pdf-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid rgba(26,26,26,.16);font:600 12px/1.2 var(--font-ui,Inter,sans-serif)}
#projetos .to-pdf-controls button,#projetos .to-pdf-controls a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid rgba(26,26,26,.22);background:transparent;color:var(--to-graphite);font:inherit;text-decoration:none;cursor:pointer}
#projetos .to-pdf-controls button:hover,#projetos .to-pdf-controls a:hover{background:var(--to-orange);border-color:var(--to-orange)}
#projetos .to-pdf-controls button:focus-visible,#projetos .to-pdf-controls a:focus-visible{outline:2px solid var(--to-orange);outline-offset:3px}
#projetos .to-pdf-controls button:disabled{opacity:.4;cursor:not-allowed}
#projetos .to-pdf-counter{white-space:nowrap;min-width:68px;text-align:center;font-variant-numeric:tabular-nums}
#projetos .to-pdf-fullscreen{margin-left:auto}
#projetos .to-pdf-showcase:fullscreen{display:flex;flex-direction:column;background:var(--to-graphite);padding:clamp(12px,2vw,36px)}
#projetos .to-pdf-showcase:fullscreen .to-pdf-stage{flex:1;min-height:0;aspect-ratio:auto}
#projetos .to-pdf-showcase:fullscreen .to-pdf-stage canvas{height:auto;max-height:100%;width:auto}
#projetos .to-pdf-showcase:fullscreen .to-pdf-controls{background:var(--to-paper)}
#projetos .to-pdf-showcase:-webkit-full-screen{display:flex;flex-direction:column;background:var(--to-graphite);padding:clamp(12px,2vw,36px)}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-stage{flex:1;min-height:0;aspect-ratio:auto}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-stage canvas{height:auto;max-height:100%;width:auto}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-controls{background:var(--to-paper)}
.to-pdf-showcase.is-fullscreen-fallback{position:fixed!important;inset:0;z-index:10000;display:flex;flex-direction:column;box-sizing:border-box;width:100vw;height:100vh;height:100dvh;max-height:none;margin:0;border:0;background:var(--to-graphite);color:var(--to-paper);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-stage{position:relative;display:grid;place-items:center;flex:1;min-height:0;width:100%;aspect-ratio:auto;overflow:hidden;background:#161616}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-stage canvas{display:block;max-width:100%;max-height:100%;width:auto!important;height:auto!important;object-fit:contain}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-fallback{display:none;width:100%;height:100%;border:0}
.to-pdf-showcase.is-fullscreen-fallback.is-fallback .to-pdf-fallback{display:block}
.to-pdf-showcase.is-fullscreen-fallback.is-fallback canvas{display:none}
.to-pdf-showcase.is-fullscreen-fallback [hidden]{display:none!important}
.to-pdf-showcase.is-fullscreen-fallback.is-ready .to-pdf-loading{display:none}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px;background:var(--to-paper);color:var(--to-graphite)}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls button,.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid rgba(26,26,26,.22);background:transparent;color:var(--to-graphite);font:600 12px/1.2 var(--font-ui,Inter,sans-serif);text-decoration:none;cursor:pointer}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls button:hover,.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls a:hover{background:var(--to-orange);border-color:var(--to-orange)}
html.to-pdf-fallback-active,html.to-pdf-fallback-active body{overflow:hidden}
#projetos .to-pdf-controls [hidden]{display:none!important}
#projetos .to-pdf-exit-fullscreen{background:var(--to-paper);color:var(--to-graphite)}
@media(max-width:1100px){
  #solucoes .solutions-floral-left{left:-35px;width:clamp(95px,11vw,140px)}
  #solucoes .solutions-floral-right{right:-40px;width:clamp(115px,14vw,165px)}
}
@media(max-width:899px){
  .to-hero-scroll-cue{top:50%;bottom:auto;transform:translate(-50%,-50%);gap:8px}
  .to-cue-mouse{width:30px;height:46px}
  .to-cue-wheel{height:9px;top:7px}
  .to-cue-label{font-size:9px;letter-spacing:.13em}
}
@media(max-width:720px){
  #solucoes .solutions-floral-left{top:2%;left:-42px;width:94px}
  #solucoes .solutions-floral-right{top:46%;right:-48px;width:108px}
  #projetos .to-pdf-controls{padding:9px;gap:6px}
  #projetos .to-pdf-controls button,#projetos .to-pdf-controls a{min-height:40px;padding:7px 9px}
  #projetos .to-pdf-fullscreen{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  .to-cue-wheel{animation:none;top:16px}
  .to-hero-scroll-cue{display:none}
  .florals-enhanced #solucoes .solutions-floral{opacity:1;transform:none}
}

/* Preserve document width while floral images are lazy-loaded and animated. */
#solucoes .solutions-florals{overflow:hidden;contain:paint}

/* Hard containment for the ornamental layers, including lazy images on 360px screens. */
#solucoes{overflow:hidden;contain:paint}
#solucoes .solutions-floral-left{aspect-ratio:720/1613}
#solucoes .solutions-floral-right{aspect-ratio:706/1527}

/* Decorative offscreen GSAP travel must never enable page-level horizontal panning. */
html,body{overflow-x:clip;max-width:100%}


/* V7.3 · Um único vídeo original, sem tiling, canvas ou pixels espelhados.
   Upscale por CSS não cria detalhe, então preservamos o MP4 original.
   Em paisagem, cover preenche integralmente o viewport com crop controlado.
   Em retrato, a arte horizontal fica inteira com transição suave no próprio
   laranja da animação: nunca duplicamos letras, bordas ou texturas. */
:root{--to-hero-ambient:#ff6108}
.hero-scroll-stage .hero-film-screen{
  background:var(--to-hero-ambient);
  isolation:isolate;
}
.hero-scroll-stage .hero-film-screen video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  background:var(--to-hero-ambient);
  transform:none;
  -webkit-mask-image:none;
  mask-image:none;
}
/* Proporções próximas do quadrado/retrato: preservar o logo do vídeo.
   A área restante é o mesmo laranja, sem repetição ou emenda de imagens. */
@media (max-aspect-ratio: 3/2){
  .hero-scroll-stage .hero-film-screen video{
    inset:auto;
    top:50%;
    left:0;
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    object-fit:contain;
    transform:translateY(-50%);
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
  }
}
/* A transição para o enquadramento final deve conservar a arte íntegra. */
.hero-scroll-stage.is-hero-framed .hero-film-screen video{
  position:absolute;
  inset:0;
  top:0;
  left:0;
  width:100%;
  height:100%;
  transform:none;
  object-fit:contain;
  -webkit-mask-image:none;
  mask-image:none;
}


/* motion-v71.css */
/* TO Eventos V7.2 — composição floral integrada e motion sem piscadas.
   Ninguém reinicia o texto no scroll reverso; não há alteração no HERO. */
#sobre .botanical-motion{
  box-sizing:border-box;
  grid-column:2;
  min-width:0;
  width:min(100%,370px);
  max-width:370px;
  margin-inline:auto;
  padding:0;
  overflow:visible;
  align-self:center;
  justify-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
}
#sobre .botanical-motion .about-floral-video{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  aspect-ratio:9 / 16;
  object-fit:contain;
  object-position:center center;
  margin:0 auto;
  padding:0;
  border:0;
  box-shadow:none;
  background:#F4F4F2;
}
#sobre .botanical-motion figcaption{display:none!important}
.project-panel-cases .project-panel-inner{justify-content:center}
.project-panel-cases .case-layout{margin-block:0}
/* Somente o título do card cinza usa reveal de digitação: sem opacity por letra. */
.project-panel-cases .case-text:not(.case-text-contrast) .to-v72-type-line{
  display:inline-block;
  white-space:nowrap;
  clip-path:inset(0 100% 0 0);
  will-change:clip-path;
}
@media(max-width:900px){
  #sobre .botanical-motion{
    grid-column:auto;
    max-width:min(100%,335px);
    margin:32px auto 0;
    padding:0;
  }
}
@media(max-width:720px){
  #sobre .botanical-motion{
    width:min(100%,300px);
    max-width:300px;
    padding:0;
    margin:32px auto 0;
  }
  #sobre .botanical-motion .about-floral-video{
    height:auto;
    aspect-ratio:9 / 16;
  }
}
@media(prefers-reduced-motion:reduce){
  .to-v72-type-line{clip-path:none!important;will-change:auto!important}
  #sobre .botanical-motion .about-floral-video{transform:none!important}
}


/* mobile-v9.css */
/* TO EVENTOS · V9 MOBILE — composição fiel ao HeroScroll e trilho horizontal da LP.
   Escopo 0–899px. Sem distorcer mídias; desktop permanece intacto.
   Os seletores com .is-gsap-active só entram quando ScrollTrigger está disponível. */
@media (max-width:899px) {
  .hero-scroll-stage .hero-grid {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:stretch;
    gap:clamp(14px,2.6dvh,24px);
    padding:clamp(12px,2.4dvh,28px) 0;
  }
  .hero-scroll-stage .hero-copy {flex:0 0 auto;align-self:stretch;max-width:620px}
  .hero-scroll-stage .hero-copy .eyebrow{font-size:clamp(11px,2.35vw,14px)}
  .hero-scroll-stage .hero-title{
    font-size:clamp(34px,8.1vw,58px);
    line-height:1.05;
    letter-spacing:-.048em;
    margin:clamp(10px,1.9dvh,19px) 0 clamp(10px,1.9dvh,20px);
    overflow-wrap:break-word;
  }
  .hero-scroll-stage .hero-copy>p{
    font-size:clamp(13px,3.35vw,17px);
    line-height:1.42;
    max-width:46ch;
    margin:0 0 clamp(14px,2.1dvh,22px);
  }
  .hero-scroll-stage .button-accent{min-height:44px;padding:13px 16px}
  /* A mídia final precisa permanecer em 16:9 ao lado/abaixo da copy,
     tal como a versão desktop. Ela NÃO pode desaparecer no fim do scroll. */
  .hero-scroll-stage .hero-visual{
    display:block;
    flex:0 0 auto;
    width:min(100%,540px,60dvh);
    height:auto;
    aspect-ratio:16/9;
    min-height:0;
    max-height:none;
    align-self:center;
    overflow:hidden;
  }
  .hero-scroll-stage .hero-foot{
    flex-shrink:0;
    padding-bottom:clamp(12px,2dvh,20px);
    font-size:clamp(8px,1.9vw,10px);
    gap:12px;
  }
  .hero-scroll-stage .hero-film-screen video,
  .hero-scroll-stage .hero-visual video{object-fit:contain;object-position:center}
}
@media (max-width:430px) {
  .hero-scroll-stage .hero-title{font-size:clamp(33px,8.7vw,40px)}
  .hero-scroll-stage .hero-copy>p{font-size:14px}
  .hero-scroll-stage .hero-visual{width:min(100%,58dvh)}
}
/* Scroll vertical do usuário continua controlando um trilho HORIZONTAL,
   sem esticar vídeos, achatar cards ou converter cases em uma página vertical. */
@media (max-width:899px) and (prefers-reduced-motion:no-preference) {
  .is-gsap-active #projetos .projects-pin {
    width:100%;
    height:100dvh;
    min-height:0;
    max-height:100dvh;
    overflow:hidden;
    overscroll-behavior: auto; /* gesto touch encadeia até a página e avança o GSAP */
    scroll-snap-type:none;
    touch-action:pan-y;
  }
  .is-gsap-active #projetos .projects-track {
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    width:max-content;
    height:100%;
    align-items:stretch;
    will-change:transform;
  }
  .is-gsap-active #projetos .project-panel {
    flex:0 0 100vw;
    width:100vw;
    height:100%;
    min-height:0;
    overflow:hidden;
    display:flex;
    align-items:stretch;
  }
  .is-gsap-active #projetos .project-panel-inner {
    width:var(--shell);
    height:100%;
    min-height:0;
    padding-top:clamp(32px,4.5dvh,55px);
    padding-bottom:clamp(50px,8dvh,78px);
    justify-content:center;
    overflow-y:auto;
    overscroll-behavior-y:auto;
    scrollbar-width:none;
  }
  .is-gsap-active #projetos .project-panel-inner::-webkit-scrollbar{display:none}
  .is-gsap-active #projetos .project-panel .section-kicker{margin-bottom:clamp(10px,2dvh,22px)}
  .is-gsap-active #projetos .project-panel .display-heading{font-size:clamp(36px,7.5vw,61px);line-height:1.06}
  .is-gsap-active #projetos .project-panel .projects-top{margin-bottom:clamp(10px,1.7dvh,17px);gap:8px}
  .is-gsap-active #projetos .project-panel .projects-top>p{font-size:clamp(12px,1.8vw,15px);line-height:1.4;margin:0}
  .is-gsap-active #projetos .case-featured{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:clamp(10px,1.6dvh,16px);
    padding:0;
    margin:0;
  }
  .is-gsap-active #projetos .case-featured .case-image video{
    display:block;
    width:100%;
    max-height:clamp(135px,26dvh,310px);
    aspect-ratio:16/9;
    height:auto;
    object-fit:contain;
    background:var(--graphite);
  }
  .is-gsap-active #projetos .case-caption h3{font-size:clamp(28px,5.5vw,42px);margin:6px 0}
  .is-gsap-active #projetos .case-caption p{font-size:clamp(12px,2vw,15px);line-height:1.4;margin-bottom:8px}
  .is-gsap-active #projetos .case-caption{padding:0}
  .is-gsap-active #projetos .project-panel-cases .case-layout{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(10px,2vw,20px);
  }
  .is-gsap-active #projetos .project-panel-cases .case-layout .case-text,
  .is-gsap-active #projetos .project-panel-cases .case-layout .case-text-contrast{
    grid-column:auto;
    min-height:0;
    padding:clamp(14px,2.5vw,28px);
    gap:clamp(9px,1.7dvh,18px);
  }
  .is-gsap-active #projetos .case-text h3{font-size:clamp(27px,4.8vw,42px)}
  .is-gsap-active #projetos .case-text p{font-size:clamp(11px,1.8vw,14px);line-height:1.45}
  .is-gsap-active #projetos .case-numbers{gap:10px}
  .is-gsap-active #projetos .case-numbers b{font-size:clamp(24px,4vw,33px)}
  .is-gsap-active #projetos .project-asset-note{font-size:11px;margin:12px 0 0}
  .is-gsap-active #projetos .project-panel-video .full-video-block{
    grid-template-columns:minmax(0,1fr);
    gap:clamp(10px,2dvh,20px);
  }
  .is-gsap-active #projetos .project-panel-video .full-video-block h3{
    font-size:clamp(35px,7vw,58px);
    line-height:1.06;
    margin:5px 0 8px;
  }
  .is-gsap-active #projetos .project-panel-video .full-video-block p{
    font-size:clamp(12px,1.9vw,14px);
    line-height:1.45;
    margin:0;
  }
  .is-gsap-active #projetos .to-pdf-stage{aspect-ratio:16/9;min-height:0}
  .is-gsap-active #projetos .to-pdf-stage canvas{object-fit:contain}
  .is-gsap-active #projetos .to-pdf-controls{gap:5px;padding:7px}
  .is-gsap-active #projetos .to-pdf-controls button,
  .is-gsap-active #projetos .to-pdf-controls a{min-height:38px;padding:6px 8px;font-size:11px}
  /* Indicador superior, longe do menu touch e do WhatsApp fixos no rodapé. */
  .is-gsap-active #projetos .projects-progress{
    display:flex;
    position:absolute;
    top:max(12px,env(safe-area-inset-top));
    bottom:auto;
    z-index:2;
    padding:0;
    font-size:10px;
    gap:12px;
  }
  .is-gsap-active #projetos .projects-progress-track{max-width:none}
}
@media(max-width:599px) and (prefers-reduced-motion:no-preference){
  .is-gsap-active #projetos .project-panel-cases .case-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  .is-gsap-active #projetos .project-panel-cases .case-layout .case-text,
  .is-gsap-active #projetos .project-panel-cases .case-layout .case-text-contrast{
    min-height:0;
    padding:clamp(12px,2dvh,18px) 16px;
    gap:8px;
  }
  .is-gsap-active #projetos .case-text h3{font-size:clamp(27px,7.1vw,34px)}
  .is-gsap-active #projetos .case-numbers b{font-size:26px}
}
@media(max-width:899px) and (max-height:720px) and (prefers-reduced-motion:no-preference){
  .is-gsap-active #projetos .project-panel-inner{justify-content:flex-start;padding-top:34px;padding-bottom:64px}
  .is-gsap-active #projetos .case-featured .case-image video{max-height:25dvh}
}
/* Movimento reduzido e ausência de GSAP: a fallback vertical mantém leitura e controles. */

@media(max-width:899px) and (prefers-reduced-motion:reduce) {
  .hero-scroll-stage .hero{
    height:auto;
    min-height:100svh;
    max-height:none;
    overflow:visible;
  }
  .hero-scroll-stage .hero-grid{gap:20px;padding-block:32px}
  .hero-scroll-stage .hero-copy,.hero-scroll-stage .hero-copy>*{opacity:1!important;transform:none!important}
  .hero-scroll-stage .hero-visual video{pointer-events:auto}
}

/* V9.1 — CORREÇÃO TOUCH:
   Nunca capturar o gesto vertical em um scroll interno do card fixado.
   A rolagem precisa chegar ao documento para alimentar o ScrollTrigger
   que movimenta o trilho de projetos horizontalmente. */
@media(max-width:899px) and (prefers-reduced-motion:no-preference){
  .is-gsap-active #projetos .projects-pin{
    overscroll-behavior:auto;
    touch-action:pan-y;
  }
  .is-gsap-active #projetos .project-panel-inner{
    overflow-y:visible;
    overscroll-behavior-y:auto;
    touch-action:pan-y;
  }
}
/* Em telas baixas, permitir ler todo o card, mas sem bloquear
   o scroll chaining no início/fim do conteúdo. */
@media(max-width:899px) and (max-height:700px) and (prefers-reduced-motion:no-preference){
  .is-gsap-active #projetos .project-panel-inner{
    overflow-y:auto;
    overscroll-behavior-y:auto;
  }
}


/* moldura-overlay.css */
/* Componente exclusivo: não altera regras do Hero original. */
#to-floral-intro-v10{position:fixed;inset:0;width:100vw;height:100dvh;display:block;pointer-events:none;z-index:40;opacity:1;mix-blend-mode:screen;contain:layout paint;user-select:none;}
.to-floral-v10-video-decoder{position:fixed;width:1px;height:1px;left:-10px;top:-10px;opacity:0;pointer-events:none;}
@media(prefers-reduced-motion:reduce){#to-floral-intro-v10{transition:none!important}}

/* V15: mídia 9:16 real acima do Hero, somente celular em retrato.
   Screen Blend neutraliza o fundo preto SEM keying. 
   Mostra a moldura completa nas quatro bordas, sem corte cover nem Canvas. */
@media (max-width:899px) and (orientation:portrait){
  #to-floral-mobile-v15{
    position:fixed;inset:0;width:100vw;height:100dvh;
    z-index:40;pointer-events:none;overflow:hidden;
    mix-blend-mode:screen;opacity:1;user-select:none;
  }
  #to-floral-mobile-v15-video,
  #to-floral-mobile-v15-poster{
    display:block;position:absolute;inset:0;width:100%;height:100%;
    object-fit:fill;object-position:center;
    background:transparent;pointer-events:none;transform:none;
  }
}

/* V16: força o mesmo overlay ao usar preview mobile dentro de viewport
   desktop. Não altera #to-floral-intro-v10 nem mídia V13 desktop. */
html.to-hero-mobile-portrait-forced #to-floral-mobile-v15{
  position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;
  mix-blend-mode:screen;opacity:1;user-select:none;
}
html.to-hero-mobile-portrait-forced #to-floral-mobile-v15-video,
html.to-hero-mobile-portrait-forced #to-floral-mobile-v15-poster{
  display:block;position:absolute;inset:0;width:100%;height:100%;
  object-fit:fill;object-position:center;background:transparent;
  pointer-events:none;transform:none;
}


/* hero-mobile-v10.css */
/* TO Eventos · HERO mobile v10.
   Fonte 9:16 derivada do MP4 editorial: um só vídeo, sem repetição ou máscara.
   O scroll controla seus quadros; o frame final também é retrato. */
@media (max-width:899px) and (orientation:portrait){
  .hero-scroll-stage .hero-film-screen{
    background:#ff6108;
    overflow:hidden;
  }
  .hero-scroll-stage .hero-film-screen video{
    position:absolute;
    inset:0;
    top:0;left:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    max-width:none;
    display:block;
    object-fit:contain; /* mobile retrato: mostrar todo o vídeo vertical, sem cortar letras */
    object-position:center center;
    transform:none;
    -webkit-mask-image:none;
    mask-image:none;
    background:#ff6108;
  }
  /* A mídia NÃO some: o mesmo vídeo recolhe para uma janela vertical. */
  .hero-scroll-stage .hero-visual{
    display:block;
    width:min(45vw,35dvh,240px);
    height:auto;
    aspect-ratio:9/16;
    flex:0 0 auto;
    min-width:0;
    max-height:40dvh;
    min-height:0;
    align-self:center;
    overflow:hidden;
    padding:0;
  }
  .hero-scroll-stage.is-hero-framed .hero-film-screen video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    transform:none;
    -webkit-mask-image:none;
    mask-image:none;
  }
}
@media(max-width:899px) and (orientation:portrait) and (max-height:690px){
  .hero-scroll-stage .hero-visual{width:min(35vw,28dvh,190px);max-height:32dvh}
  .hero-scroll-stage .hero-grid{gap:10px;padding:10px 0}
  .hero-scroll-stage .hero-title{font-size:clamp(30px,7.7vw,36px);margin:8px 0}
}
@media(max-width:899px) and (orientation:portrait) and (prefers-reduced-motion:reduce){
  .hero-scroll-stage .hero-film-screen{display:none}
  .hero-scroll-stage .hero-visual{width:min(60vw,36dvh);max-height:none}
}


/* hero-thaiso.css */
/* TO Eventos — take THAISO no fundo grafite da etapa FINAL do HERO.
   Camada isolada: nunca altera ScrollTrigger, vídeo inicial ou proporção 9:16. */
.hero-scroll-stage .hero{isolation:isolate}
.hero-scroll-stage .to-hero-thaiso-backdrop{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  background:#1A1A1A;
  opacity:0;
  visibility:hidden;
  transition:opacity .55s ease,visibility .55s ease;
}
.hero-scroll-stage .to-hero-thaiso-backdrop::before{
  content:"";
  position:absolute;
  inset:-5%;
  z-index:0;
  background:#1A1A1A url('assets/media/tke-thaiso-poster.jpg') center / cover no-repeat;
  filter:blur(24px) saturate(.82) brightness(.7);
  transform:scale(1.08);
}
.hero-scroll-stage.is-hero-framed .to-hero-thaiso-backdrop{
  opacity:1;
  visibility:visible;
}
.hero-scroll-stage .to-hero-thaiso-backdrop video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:saturate(.88) brightness(.93);
  opacity:1;
  transform:none;
}
.hero-scroll-stage .to-hero-thaiso-backdrop::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background:linear-gradient(90deg,rgba(26,26,26,.34) 0%,rgba(26,26,26,.20) 43%,rgba(26,26,26,.14) 100%);
}
.hero-scroll-stage .hero-grid,
.hero-scroll-stage .hero-foot{position:relative;z-index:1}
@media(min-width:900px){
  .hero-scroll-stage.is-hero-framed .hero-title{
    font-size:clamp(44px,3.8vw,72px);
    max-width:100%;
  }
}
@media(max-width:899px){
  .hero-scroll-stage .to-hero-thaiso-backdrop video{opacity:1;object-fit:cover;object-position:center center}
  .hero-scroll-stage .to-hero-thaiso-backdrop::after{
    background:linear-gradient(180deg,rgba(26,26,26,.34),rgba(26,26,26,.16));
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-scroll-stage .to-hero-thaiso-backdrop{display:none!important}
}


/* release-enhancements.css */
/* Entrada editorial de títulos e encerramento cinematográfico do contato. */
.to-handwrite{will-change:clip-path}
.contact-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  --contact-glow:0;
  --contact-line:0;
}
.contact-section::before{
  content:"";
  position:absolute;
  inset:-18% -14%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse at 18% 38%,rgba(255,77,0,var(--contact-glow)),transparent 48%);
}
.contact-section::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:2px;
  background:#ff4d00;
  transform:scaleX(var(--contact-line));
  transform-origin:left center;
  pointer-events:none;
}
.contact-section .contact-grid,
.contact-section .footer{position:relative;z-index:1}
/* Contato final: limitar o título para manter distância do bloco de contatos. */
.contact-grid{grid-template-columns:minmax(0,1fr) 248px;gap:clamp(30px,3.6vw,48px)}
.contact-grid>div:first-child,.contact-aside{min-width:0}
.contact-grid h2{font-size:clamp(46px,4.7vw,68px);line-height:1.06;max-width:100%;overflow-wrap:normal;letter-spacing:-.025em}
.contact-aside{overflow-wrap:anywhere}
@media(max-width:1100px){
  .contact-grid{grid-template-columns:minmax(0,1fr) 220px;gap:28px}
  .contact-grid h2{font-size:clamp(42px,4.8vw,56px)}
}
@media(max-width:720px){
  .contact-section{padding-top:90px}
  .contact-grid{grid-template-columns:minmax(0,1fr);gap:34px;padding-bottom:44px}
  .contact-grid h2{font-size:clamp(30px,7.8vw,38px);line-height:1.08;margin:24px 0 18px;max-width:100%;letter-spacing:-.02em}
  .contact-aside{font-size:13px;gap:10px;max-width:100%}
  .contact-section .footer{padding:24px 0 110px;row-gap:18px}
}
/* Projeto em destaque: texto no alto e vídeo amplo abaixo. */
#projetos .project-panel-summit .project-panel-inner{width:min(var(--shell),1200px,calc((100dvh - 280px)*1.77778));padding-top:38px;padding-bottom:68px}
#projetos .project-panel-summit .section-kicker{margin-bottom:18px}
#projetos .project-panel-summit .projects-top{grid-template-columns:1fr 1fr;align-items:start;gap:32px;margin-bottom:16px}
#projetos .project-panel-summit .projects-top .display-heading{font-size:clamp(36px,3.5vw,54px);line-height:1.02;margin:0;letter-spacing:-.025em}
#projetos .project-panel-summit .projects-top .case-caption{justify-content:flex-start;gap:8px;padding:0;max-width:none}
#projetos .project-panel-summit .case-caption h3{font-size:clamp(24px,2vw,30px);line-height:1.08;margin:0}
#projetos .project-panel-summit .case-caption p{font-size:13px;line-height:1.45;margin:0;max-width:460px}
#projetos .project-panel-summit .case-caption>span,#projetos .project-panel-summit .case-caption strong{font-size:12px;line-height:1.2}
#projetos .project-panel-summit .case-featured{display:block;width:100%;margin:0}
#projetos .project-panel-summit .case-featured .case-image{width:100%;max-width:none;margin:0}
@media(min-width:900px) and (max-height:740px){
  #projetos .project-panel-summit .project-panel-inner{align-self:flex-start;height:100dvh;width:min(var(--shell),calc((100dvh - 225px)*1.77778));padding-top:24px;padding-bottom:56px}
  #projetos .project-panel-summit .section-kicker{margin-bottom:12px}
  #projetos .project-panel-summit .projects-top{gap:24px;margin-bottom:14px}
  #projetos .project-panel-summit .projects-top .display-heading{font-size:clamp(28px,4.6vh,36px)}
  #projetos .project-panel-summit .projects-top .case-caption{gap:6px}
  #projetos .project-panel-summit .case-caption h3{font-size:22px}
  #projetos .project-panel-summit .case-caption p{font-size:12px;line-height:1.4}
}
@media(max-width:899px){
  .is-gsap-active #projetos .project-panel-summit .project-panel-inner,#projetos .project-panel-summit .project-panel-inner{width:var(--shell);padding-top:60px;padding-bottom:80px}
  #projetos .project-panel-summit .projects-top{grid-template-columns:minmax(0,1fr);gap:12px}
  .is-gsap-active #projetos .project-panel-summit .projects-top .display-heading{font-size:clamp(30px,7.5vw,42px);line-height:1.05}
  #projetos .project-panel-summit .case-caption h3{font-size:25px}
  #projetos .project-panel-summit .case-caption p{font-size:12px}
  #projetos .project-panel-summit .case-featured .case-image{max-width:100%}
  .is-gsap-active #projetos .project-panel-summit .case-featured .case-image video{max-height:none}
}
/* Fullscreen explícito para o Connect, com enquadramento completo e botão de saída. */
.case-image .connect-fullscreen[hidden]{display:none!important}
.case-image .connect-fullscreen{
  position:absolute;top:12px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:8px;
  min-height:40px;padding:8px 12px;border:1px solid rgba(244,244,242,.34);border-radius:999px;
  background:rgba(26,26,26,.82);color:var(--offwhite,#f4f4f2);backdrop-filter:blur(10px);
  font:600 11px/1.2 var(--font-ui,Inter,sans-serif);cursor:pointer;
}
.case-image .connect-fullscreen:hover{background:var(--orange,#ff4d00);color:var(--graphite,#1a1a1a)}
.case-image .connect-fullscreen svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.case-image:fullscreen,.case-image:-webkit-full-screen{
  display:grid;place-items:center;width:100vw;height:100vh;height:100dvh;max-width:none;aspect-ratio:auto;
  overflow:hidden;background:#080808;z-index:10001;
}
.case-image:fullscreen video,.case-image:-webkit-full-screen video{
  width:100%;height:100%;max-height:100dvh;aspect-ratio:auto;object-fit:contain;background:#080808;
}
#projetos .project-panel-summit .case-featured .case-image:fullscreen{width:100vw;max-width:none;margin:0}
#projetos .project-panel-summit .case-featured .case-image:fullscreen video{width:100%;height:100%;max-height:100dvh;aspect-ratio:auto;object-fit:contain}
#projetos .project-panel-summit .case-featured .case-image:-webkit-full-screen{width:100vw;max-width:none;margin:0}
#projetos .project-panel-summit .case-featured .case-image:-webkit-full-screen video{width:100%;height:100%;max-height:100dvh;aspect-ratio:auto;object-fit:contain}
.case-image:fullscreen .connect-fullscreen,.case-image:-webkit-full-screen .connect-fullscreen{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
.case-image.is-connect-fullscreen-fallback{
  position:relative;display:grid;place-items:center;width:100%;height:100%;max-width:none;aspect-ratio:auto;overflow:hidden;background:#080808;
}
.case-image.is-connect-fullscreen-fallback video{width:100%;height:100%;max-height:100dvh;aspect-ratio:auto;object-fit:contain;background:#080808}
.case-image.is-connect-fullscreen-fallback .connect-fullscreen{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
html.connect-fallback-active,html.connect-fallback-active body{overflow:hidden}
.to-media-dialog{position:fixed;inset:0;z-index:10001;margin:0;padding:0;border:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;background:#080808;color:#f4f4f2;overflow:hidden}
.to-media-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:stretch}
.to-media-dialog::backdrop{background:#080808}
.to-media-dialog .connect-fullscreen{z-index:20;min-height:44px;background:#1a1a1a;color:#fff;border:1px solid #fff}
.to-media-dialog .to-pdf-showcase.is-fullscreen-fallback{position:relative!important;inset:auto;width:100%;height:100%;max-height:none}
.to-media-dialog .to-pdf-stage{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.to-media-dialog .to-pdf-showcase.is-fullscreen-fallback .to-pdf-stage canvas{width:100%!important;height:100%!important;min-width:0;min-height:0;object-fit:contain}
@media(max-width:720px){.case-image .connect-fullscreen{top:8px;right:8px;min-height:38px;padding:7px 10px;font-size:10px}}
@media(prefers-reduced-motion:reduce){
  .to-handwrite{clip-path:none!important;will-change:auto}
  .contact-section{--contact-glow:.14;--contact-line:1}
}


/* accordion-gallery.css */
/* TO EVENTOS · Accordion Gallery V2 / inspirado na API JS/CSS do React Bits.
   5 painéis; parâmetros editoriais: expandRatio .52, gap 10, radius 16, height 460. */
#galeria-editorial{
  --ag-accent:#FF4D00;
  --ag-overlay:#060010;
  --ag-text:#fff;
  --ag-gap:10px;
  --ag-radius:16px;
  --ag-media-size:680px;
  --ag-grow:4.333333;
  background:#F4F4F2;
  color:#1A1A1A;
  position:relative;
  isolation:isolate;
  padding:clamp(86px,9vw,142px) 0 clamp(94px,10vw,150px);
}
#galeria-editorial *{box-sizing:border-box}
#galeria-editorial .ag-kicker{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding-top:16px;margin-bottom:clamp(34px,4.2vw,60px);
  border-top:1px solid rgba(26,26,26,.30);
  font:400 13px/1.3 var(--font-bebas,"Bebas Neue",sans-serif);
  letter-spacing:.13em;
}
#galeria-editorial .ag-kicker span:last-child{color:#898983}
#galeria-editorial .ag-heading{
  display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;
  gap:20px 45px;margin-bottom:clamp(30px,4vw,54px);
}
#galeria-editorial .ag-overline{
  color:#FF4D00;font:400 14px/1.25 var(--font-bebas,"Bebas Neue",sans-serif);
  letter-spacing:.16em;margin:0 0 22px;
}
#galeria-editorial .ag-heading h2{
  max-width:850px;margin:0;
  font:400 clamp(49px,6.6vw,106px)/.99 var(--font-romana,Georgia,serif);
  letter-spacing:-.042em;
}
#galeria-editorial .ag-heading h2 em{font-weight:400}
#galeria-editorial .ag-heading>p{
  flex:0 1 290px;max-width:330px;margin:0 0 7px;
  color:#666660;font:400 14px/1.7 var(--font-commercial,Inter,sans-serif);
}
#galeria-editorial .accordion-gallery{
  display:flex;flex-direction:row;gap:var(--ag-gap);
  width:100%;height:460px;max-width:100%;
  perspective:1400px;perspective-origin:50% 50%;
}
#galeria-editorial .ag-panel{
  position:relative;display:block;appearance:none;
  flex:1 1 0;min-width:0;min-height:0;overflow:hidden;
  padding:0;margin:0;border:0;
  border-radius:var(--ag-radius);background:#2B2A29;
  color:var(--ag-text);text-align:left;
  cursor:pointer;transform-origin:center center;
  transform-style:preserve-3d;
  -webkit-tap-highlight-color:transparent;
  transition:flex-grow .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);
}
#galeria-editorial .ag-panel.is-active{flex-grow:var(--ag-grow)}
#galeria-editorial .accordion-gallery.ag-has-gsap .ag-panel{
  transition:none;will-change:flex-grow,transform;
}
#galeria-editorial .ag-panel:focus-visible{
  outline:3px solid var(--ag-accent);outline-offset:4px;z-index:3;
}
#galeria-editorial .ag-panel__frame{
  position:absolute;inset:0;display:block;overflow:hidden;
  border-radius:inherit;pointer-events:none;
}
#galeria-editorial .ag-panel__media{
  position:absolute;left:50%;top:50%;
  display:block;width:max(100%,var(--ag-media-size));height:100%;
  transform:translate(-50%,-50%);filter:grayscale(1) brightness(.79);
  transition:filter .6s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
#galeria-editorial .ag-panel.is-active .ag-panel__media{
  filter:grayscale(0) brightness(1);
}
#galeria-editorial .ag-panel__media img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center center;
  user-select:none;-webkit-user-drag:none;
}
#galeria-editorial .ag-panel__overlay{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,0,16,.23) 0%,transparent 30%,rgba(6,0,16,.20) 58%,rgba(6,0,16,.76) 100%);
  opacity:.88;transition:opacity .6s ease;
}
#galeria-editorial .ag-panel.is-active .ag-panel__overlay{opacity:1}
#galeria-editorial .ag-panel__label{
  position:absolute;z-index:2;
  left:clamp(14px,2.3vw,30px);right:clamp(14px,2.3vw,30px);bottom:clamp(19px,2.3vw,32px);
  display:flex;align-items:flex-end;gap:14px;
  opacity:0;transform:translateX(-14px);
  transition:opacity .48s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
#galeria-editorial .ag-panel.is-active .ag-panel__label{opacity:1;transform:translateX(0)}
#galeria-editorial .ag-panel__bar{
  flex:0 0 3px;height:74px;border-radius:3px;
  background:var(--ag-accent);
  box-shadow:0 0 12px rgba(255,77,0,.36);
  transform:scaleY(.5);transform-origin:bottom;
  transition:transform .6s cubic-bezier(.22,1,.36,1) .06s;
}
#galeria-editorial .ag-panel.is-active .ag-panel__bar{transform:scaleY(1)}
#galeria-editorial .ag-panel__copy{display:flex;flex-direction:column;gap:6px;min-width:0}
#galeria-editorial .ag-panel__category{
  font:400 12px/1.2 var(--font-bebas,"Bebas Neue",sans-serif);
  letter-spacing:.18em;color:#f5f0e9;
}
#galeria-editorial .ag-panel__text{
  display:block;overflow-wrap:anywhere;
  font:400 clamp(24px,2.4vw,38px)/1.05 var(--font-romana,Georgia,serif);
  letter-spacing:-.025em;
  text-shadow:0 2px 14px rgba(0,0,0,.6);
}
#galeria-editorial .ag-panel__support{
  font:400 12px/1.45 var(--font-commercial,Inter,sans-serif);
  letter-spacing:.02em;color:rgba(255,255,255,.84);
}
@media(max-width:900px){
  #galeria-editorial .ag-heading h2{font-size:clamp(47px,7.4vw,77px)}
  #galeria-editorial .accordion-gallery{height:410px}
}
@media(max-width:620px){
  #galeria-editorial{padding:68px 0 94px}
  #galeria-editorial .ag-kicker{margin-bottom:36px;font-size:11px}
  #galeria-editorial .ag-heading{display:block;margin-bottom:29px}
  #galeria-editorial .ag-heading h2{font-size:clamp(43px,10.3vw,67px)}
  #galeria-editorial .ag-heading>p{max-width:41ch;margin:22px 0 0;font-size:13px}
  #galeria-editorial .accordion-gallery{
    flex-direction:column;perspective:none;
    height:clamp(500px,85dvh,660px);gap:8px;
  }
  #galeria-editorial .ag-panel{width:100%;min-height:0;transform:none!important}
  #galeria-editorial .ag-panel__media{width:100%;height:max(100%,var(--ag-media-size))}
  #galeria-editorial .ag-panel__label{left:16px;right:12px;bottom:16px;gap:11px}
  #galeria-editorial .ag-panel__bar{height:60px}
  #galeria-editorial .ag-panel__text{font-size:clamp(22px,6vw,31px)}
  #galeria-editorial .ag-panel__support{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  #galeria-editorial .ag-panel,#galeria-editorial .ag-panel__media,
  #galeria-editorial .ag-panel__label,#galeria-editorial .ag-panel__bar,
  #galeria-editorial .ag-panel__overlay{
    transition:none!important;will-change:auto!important;
  }
}


/* staggered-menu.css */
/* TO Eventos — StaggeredMenu inspirado no React Bits, adaptado à stack HTML + GSAP. */
.to-sm {
  --to-sm-graphite: var(--graphite, #1A1A1A);
  --to-sm-paper: var(--offwhite, #F4F4F2);
  --to-sm-accent: var(--orange, #FF4D00);
  position: fixed; inset: 0; z-index: 1200;
  pointer-events: none; isolation: isolate;
  font-family: var(--font-ui, Inter, sans-serif);
}
.to-sm *, .to-sm *::before, .to-sm *::after { box-sizing: border-box; }
.to-sm-scrim {
  position: absolute; inset: 0; z-index: 1;
  background: rgba(11, 11, 11, .35); opacity: 0;
  pointer-events: none; transition: opacity .42s ease;
}
.to-sm.is-open .to-sm-scrim { opacity: 1; pointer-events: auto; }
.to-sm-prelayers, .to-sm-panel {
  position: absolute; top: 0; right: 0;
  width: min(480px, 100vw); height: 100%; height: 100dvh;
  visibility: hidden;
}
.to-sm.is-visible .to-sm-prelayers, .to-sm.is-visible .to-sm-panel { visibility: visible; }
.to-sm-prelayers { z-index: 2; pointer-events: none; }
.to-sm-layer {
  position: absolute; inset: 0;
  transform: translateX(105%);
  will-change: transform;
}
.to-sm-layer-orange { background: var(--to-sm-accent); }
.to-sm-layer-graphite { background: var(--to-sm-graphite); }
.to-sm-panel {
  z-index: 3; display: flex; flex-direction: column;
  padding: clamp(95px, 12vh, 140px) clamp(28px, 4.1vw, 54px) 38px;
  color: var(--to-sm-graphite);
  background: rgba(244, 244, 242, .965);
  border-left: 1px solid rgba(244, 244, 242, .3);
  -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px);
  box-shadow: -25px 0 75px rgba(0, 0, 0, .13);
  transform: translateX(105%); overflow-y: auto;
  overscroll-behavior: contain; pointer-events: none;
  will-change: transform;
}
.to-sm.is-open .to-sm-panel { pointer-events: auto; }
.to-sm-panel-top {
  display: flex; justify-content: space-between; gap: 16px;
  padding-bottom: 17px; border-bottom: 1px solid rgba(26, 26, 26, .22);
  font: 600 11px/1.4 var(--font-ui, Inter, sans-serif);
  letter-spacing: .15em;
}
.to-sm-panel-top span:last-child { color: #757570; }
.to-sm-list { list-style: none; padding: 0; margin: clamp(50px, 12vh, 115px) 0 auto; }
.to-sm-list li { overflow: visible; margin: 0; }
.to-sm-item {
  display: flex; align-items: center; gap: 0;
  width: 100%; min-height: 104px; padding: 14px 0 18px;
  border: 0; background: transparent; color: var(--to-sm-graphite);
  text-align: left; text-decoration: none; cursor: pointer;
  transition: color .28s ease;
}
.to-sm-item-label {
  display: inline-block;
  font-family: var(--font-romana, Georgia, serif);
  font-weight: 400;
  font-size: clamp(43px, 4.3vw, 59px);
  line-height: 1.22;
  letter-spacing: -.055em;
  white-space: nowrap;
  max-width: 100%;
  transform-origin: 0 100%;
}
.to-sm-item:not(:disabled):hover, .to-sm-item:not(:disabled):focus-visible { color: var(--to-sm-accent); }
.to-sm-item-disabled { opacity: .4; cursor: default; }
.to-sm-panel-foot {
  padding-top: 22px; margin: 30px 0 0;
  border-top: 1px solid rgba(26, 26, 26, .22);
  font: 600 10px/1.6 var(--font-ui, Inter, sans-serif);
  letter-spacing: .1em;
}
.to-sm-panel-foot span { color: var(--to-sm-accent); padding-inline: 4px; }
.to-sm-toggle {
  position: absolute; z-index: 5; top: 20px;
  right: max(56px, calc((100vw - 1440px)/2));
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-width: 116px; min-height: 52px; padding: 12px 18px;
  border: 1px solid rgba(244,244,242,.38); border-radius: 999px;
  background: rgba(26,26,26,.7); color: var(--to-sm-paper);
  -webkit-backdrop-filter: blur(22px) saturate(1.2);
  backdrop-filter: blur(22px) saturate(1.2);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 9px 30px rgba(0,0,0,.16);
  font: 600 11px/1 var(--font-ui, Inter, sans-serif);
  letter-spacing: .15em; cursor: pointer; pointer-events: auto;
  transition: background .24s ease, border-color .24s ease, box-shadow .24s ease;
}
.to-sm-toggle:hover { background: rgba(26,26,26,.88); border-color: var(--to-sm-accent); }
.to-sm.is-open .to-sm-toggle { background: rgba(26,26,26,.87); }
.to-sm-icon { position: relative; display: block; width: 17px; height: 17px; flex: 0 0 17px; }
.to-sm-icon-line {
  position: absolute; left: 50%; top: 50%; width: 17px; height: 1.7px;
  background: currentColor; border-radius: 2px; transform: translate(-50%, -50%);
}
.to-sm-icon-vertical { transform: translate(-50%, -50%) rotate(90deg); }
.site-header { padding-right: calc(max(56px, (100vw - 1440px)/2) + 145px); }
.site-header .nav-contact { margin-left: auto; }
@media (max-width: 1110px) {
  .to-sm-toggle { right: 30px; }
  .site-header { padding-right: 170px; }
}
@media (max-width: 720px) {
  .to-sm-toggle { top: 15px; right: 18px; min-width: 106px; min-height: 47px; padding: 11px 14px; }
  .site-header { padding-right: 138px; }
  .to-sm-panel, .to-sm-prelayers { width: 100vw; }
  .to-sm-panel { padding: 105px 26px max(30px, env(safe-area-inset-bottom)); }
  .to-sm-panel-top { font-size: 10px; }
  .to-sm-list { margin-top: clamp(40px, 10vh, 85px); }
  .to-sm-item { min-height: 85px; gap: 0; padding: 12px 0 16px; }
  .to-sm-item-label { font-size: clamp(38px, 10.6vw, 66px); line-height: 1.22; }
  .to-sm-panel-foot { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .to-sm-scrim, .to-sm-toggle, .to-sm-item { transition: none !important; }
}

/* Corrige o conflito: GSAP usa xPercent, enquanto o CSS base usava translateX(105%). */
.to-sm.has-gsap .to-sm-layer,
.to-sm.has-gsap .to-sm-panel {
  transform: none;
}
/* Fallback CSS para abertura sem a engine GSAP. */
.to-sm:not(.has-gsap).is-open .to-sm-layer,
.to-sm:not(.has-gsap).is-open .to-sm-panel {
  transform: translateX(0);
}


/* whatsapp-glossy.css */
/* TO Eventos · Botão WhatsApp flutuante com o ícone 3D fornecido pela marca.
   Apenas a apresentação visual muda; o link e a função permanecem. */
.to-whatsapp-float {
  width: 74px;
  height: 74px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  color: inherit;
  overflow: visible;
  display: grid;
  place-items: center;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.to-whatsapp-float .to-whatsapp-glossy-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  flex: none;
  pointer-events: none;
}
.to-whatsapp-float:hover {
  transform: translateY(-3px) scale(1.035);
  filter: none;
}
.to-whatsapp-float:active {
  transform: scale(.97);
}
.to-whatsapp-float:focus-visible {
  outline: 3px solid var(--orange, #FF4D00);
  outline-offset: 4px;
}
@media (max-width: 720px) {
  .to-whatsapp-float {
    width: 64px;
    height: 64px;
    right: 16px;
    bottom: max(18px, env(safe-area-inset-bottom));
  }
}
@media (prefers-reduced-motion: reduce) {
  .to-whatsapp-float { transition: none; }
}


/* ux-diretrizes.css */
/* TO Eventos — diretrizes de legibilidade e controles, 2026-10-25
   Escopo restrito: respiro de texto, numeração editorial, setas e botões.
   Preservar hero, vídeos, galerias, animações, rotas e comportamento. */
:root{
  --to-ui-copy-space:clamp(16px,2.1vw,28px);
  --to-ui-group-space:clamp(28px,4.1vw,62px);
}
/* Ritmo de leitura: evitar encostar blocos e quebrar palavras desnecessariamente. */
.hero-copy,.about-copy,.sobre-hero-copy,.sobre-content,
.projects-top,.case-caption,.full-video-block,.sobre-contact .shell{
  min-width:0;
}
.hero-copy :is(h1,p),.about-copy :is(h2,p),#solucoes :is(h2,h3,p),
#projetos :is(h2,h3,p),#contato :is(h2,p),
.sobre-page :is(h1,h2,h3,p),#galeria-editorial :is(h2,p){
  overflow-wrap:break-word;
}
.hero-copy .hero-title,.about-copy .display-heading,
#solucoes .display-heading,#projetos .display-heading,
.sobre-page :is(h1,h2){
  line-height:1.12;
  text-wrap:balance;
}
.hero-copy>p,.about-copy>p,#solucoes .solution p,#projetos .case-caption p,
#projetos .case-text p,.sobre-page .sobre-lead,
.sobre-page .sobre-content>p:not(.sobre-kicker),
.sobre-page .sobre-service-list p,
.sobre-page .sobre-cards p,.sobre-page .sobre-types-grid p,
.sobre-page .sobre-process p,.sobre-page .sobre-proof-grid p,
.sobre-page .sobre-questions details p{
  line-height:1.65;
}
#hero .hero-title{margin-block:clamp(25px,3vw,40px);}
#sobre .about-copy>.display-heading{margin-block:clamp(20px,2.5vw,36px);}
#sobre .about-copy>p:not(.overline){margin-block:0 var(--to-ui-copy-space);}
#sobre .microproof{margin-top:var(--to-ui-group-space);}
#solucoes .solutions-title{margin-bottom:var(--to-ui-group-space);}
#solucoes .solution h3{margin-bottom:clamp(14px,1.8vw,22px);}
#solucoes .solution{padding-block:clamp(30px,3.5vw,50px);}
#projetos .projects-top{row-gap:clamp(16px,2vw,26px);}
#projetos .case-caption{gap:clamp(12px,1.55vw,21px);}
#projetos .case-caption>h3,#projetos .case-caption>p{margin:0;}
#projetos .case-text h3{margin-bottom:clamp(12px,1.55vw,20px);}
.sobre-page .sobre-hero h1{margin-bottom:clamp(24px,3.3vw,42px);}
.sobre-page .sobre-lead{margin-bottom:clamp(26px,3vw,38px);}
.sobre-page .sobre-section h2{margin-bottom:clamp(28px,3.5vw,46px);}
.sobre-page .sobre-content>p.sobre-intro{margin-bottom:clamp(26px,3.3vw,42px);}
.sobre-page .sobre-service-list article,
.sobre-page .sobre-process li{
  grid-template-columns:minmax(0,1fr);
  gap:0;
  padding-block:clamp(30px,3.7vw,49px);
}
.sobre-page .sobre-service-list h3{margin-bottom:clamp(14px,2vw,22px);}
.sobre-page .sobre-cards article{gap:clamp(12px,1.8vw,24px);}
.sobre-page .sobre-cards h3{min-height:0;margin:0;}
.sobre-page .sobre-types-grid h3{margin:clamp(12px,1.5vw,19px) 0 clamp(14px,1.8vw,23px);}
.sobre-page .sobre-process h3{margin-bottom:clamp(12px,1.6vw,20px);}
.sobre-page .sobre-proof-grid h3{margin-block:clamp(16px,2.2vw,26px) clamp(10px,1.4vw,17px);}
.sobre-page .sobre-questions summary{
  list-style:none;
  padding-block:clamp(26px,3vw,35px);
  line-height:1.4;
}
.sobre-page .sobre-questions summary::-webkit-details-marker{display:none;}
.sobre-page .sobre-questions summary:hover{color:#a23a15;}
.sobre-page .sobre-questions details p{padding-bottom:8px;}
/* CTAs alinhados, com luz e sombra discretas — sem símbolos direcionais. */
.button-accent,.site-header .nav-contact,.to-sm-toggle,
#projetos .to-pdf-controls button,#projetos .to-pdf-controls a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  vertical-align:middle;
  box-sizing:border-box;
  min-height:46px;
  line-height:1.35;
  white-space:normal;
  text-wrap:balance;
}
.button-accent{
  gap:0;
  padding:clamp(15px,1.7vw,20px) clamp(22px,2.4vw,32px);
  border:1px solid rgba(255,126,72,.72);
  border-radius:12px;
  background:linear-gradient(155deg,#ff7d41 0%,var(--orange) 45%,#e53f00 100%);
  color:var(--graphite);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48),
    inset 0 -2px 4px rgba(102,24,0,.13),
    0 10px 24px rgba(0,0,0,.19),
    0 3px 8px rgba(255,77,0,.16);
  text-decoration:none;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.button-accent:hover{
  background:linear-gradient(155deg,#ff9060 0%,#ff621e 48%,#ed4b08 100%);
  transform:translateY(-2px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58),
    0 13px 30px rgba(0,0,0,.24),0 5px 13px rgba(255,77,0,.22);
}
.button-accent:active{transform:translateY(0);box-shadow:inset 0 2px 6px rgba(93,32,0,.22),0 4px 11px rgba(0,0,0,.17);}
.site-header .nav-contact{
  background:linear-gradient(150deg,#ff7f46,var(--orange) 58%,#ec4304);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 7px 18px rgba(0,0,0,.2);
}
.site-header .nav-contact:hover{background:linear-gradient(150deg,#ff9360,#ff5e18);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 10px 22px rgba(0,0,0,.25);}
.to-sm-toggle{box-shadow:inset 0 1px 0 rgba(255,255,255,.23),0 9px 24px rgba(0,0,0,.22);}
#projetos .to-pdf-controls button,#projetos .to-pdf-controls a{
  border-radius:9px;
  padding:10px 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 4px 12px rgba(0,0,0,.1);
}
#projetos .to-pdf-controls button:hover,#projetos .to-pdf-controls a:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 7px 15px rgba(0,0,0,.17);
}
#projetos .to-pdf-controls button:disabled{box-shadow:none;}
.sobre-page .sobre-inline-link{gap:0;min-height:44px;text-align:center;justify-content:center;}
@media(max-width:899px){
  .hero-copy .hero-title,.about-copy .display-heading,#solucoes .display-heading,
  .sobre-page :is(h1,h2){line-height:1.14;}
  #hero .hero-title{margin-block:clamp(19px,4vw,31px);}
  #sobre .about-copy>p:not(.overline){margin-bottom:clamp(17px,3.6vw,25px);}
  #projetos .case-caption{gap:clamp(10px,2.5vw,16px);}
  .button-accent{min-height:48px;padding:14px 21px;max-width:100%;}
  .sobre-page .sobre-service-list article,.sobre-page .sobre-process li{padding-block:clamp(27px,5vw,39px);}
  .sobre-page .sobre-section h2{margin-bottom:clamp(24px,6vw,36px);}
  #projetos .to-pdf-controls button,#projetos .to-pdf-controls a{min-height:44px;}
}
@media(max-width:390px){
  .button-accent{font-size:12px;line-height:1.4;}
  .sobre-page .sobre-inline-link{font-size:11px;line-height:1.5;}
}
@media(prefers-reduced-motion:reduce){
  .button-accent,.site-header .nav-contact{transition:none!important;transform:none!important;}
}


/* papoulas-fundo-infinito-v77.css */
/* V7.7 — vídeo ORIGINAL, completo, com fundo contínuo igual à seção.
   NÃO há máscaras, chromakey em tempo real, fade ou clip de pétalas. */
#sobre{
  background:#F4F4F2;
}
#sobre .botanical-motion{
  position:relative;
  overflow:visible;
  background:#F4F4F2;
  align-self:center;
  justify-self:center;
}
#sobre .botanical-motion .floral-reveal{
  display:flex;
  width:100%;
  min-width:0;
  justify-content:center;
  align-items:center;
  margin:0 auto;
  padding:0;
  overflow:visible;
  background:#F4F4F2;
}
#sobre .botanical-motion video.about-floral-video{
  display:block;
  flex:none;
  width:100%;
  max-width:370px;
  min-width:0;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center center;
  background:#F4F4F2!important;
  border:0;
  margin:0;
  padding:0;
  border-radius:0;
  box-shadow:none;
  outline:0;
  clip-path:none!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
/* O vídeo contém respiro real; nada invade a área do texto. */
@media(max-width:720px){
  #sobre .botanical-motion{
    width:min(100%,300px);
    max-width:300px;
  }
  #sobre .botanical-motion video.about-floral-video{width:100%;max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  #sobre .botanical-motion video.about-floral-video{
    animation:none!important;
  }
}
