/* BAGG motion — restrained movement, generous mobile layouts. */
.reading-progress{height:3px;position:fixed;inset:0 0 auto;background:var(--pink);transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}
.header{position:relative;z-index:10}.header nav a{transition:color .2s}.header nav a:hover{color:var(--pink)}
.btn{position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,background .25s}.btn:hover{box-shadow:0 10px 28px #2222;transform:translateY(-4px)}.btn:active{transform:translateY(0) scale(.98)}.btn span{transition:transform .25s}.btn:hover span{transform:translateX(5px)}
.hero-copy>*{animation:hero-in .8s both cubic-bezier(.2,.75,.2,1)}.hero-copy h1{animation-delay:.05s}.hero-copy .underline{animation-delay:.15s}.hero-copy p{animation-delay:.23s}.hero-buttons{animation-delay:.32s}.hero-art{animation:hero-in 1s .15s both}.hero-art img{animation:breathe 9s ease-in-out infinite;transform-origin:60% 60%}
@keyframes hero-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--reveal-delay,0ms),transform .7s var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:translateY(0)}
.service-icon{transition:transform .4s}.service:hover .service-icon{transform:rotate(-10deg) scale(1.08)}.service{transition:background .3s}.portfolio-intro .star,.contact-page .star{animation:star-turn 35s linear infinite}@keyframes star-turn{to{transform:rotate(360deg)}}
.motion-projects{padding-bottom:42px}.motion-projects .section-heading{flex-wrap:wrap;align-items:center}.motion-projects .section-heading h2{flex:1}.motion-projects .section-heading>p{max-width:300px}.gallery-controls{display:flex;align-items:center;gap:18px;width:100%;justify-content:space-between;margin-top:4px}.motion-toggle{border:1px solid var(--line);border-radius:30px;background:transparent;padding:11px 19px;font-size:12px;letter-spacing:-.01em;min-height:42px}.motion-toggle:hover{border-color:var(--pink);color:var(--pink)}.gallery-all{font-size:14px;font-weight:700}.gallery-all:hover{color:var(--pink)}
.double-gallery{width:calc(100% + 11.11%);margin-left:-5.555%;display:flex;flex-direction:column;gap:28px;padding:8px 0 10px;overflow:hidden}.gallery-row{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;touch-action:pan-x pan-y;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.gallery-row::-webkit-scrollbar{display:none}.gallery-row.dragging{cursor:grabbing}.gallery-track{display:flex;width:max-content;will-change:scroll-position}.gallery-group{display:flex;gap:22px;padding-right:22px;flex-shrink:0}.gallery-card{width:clamp(280px,31vw,460px);display:block;flex:none;user-select:none}.gallery-photo{aspect-ratio:1.52;overflow:hidden;border-radius:12px;position:relative;background:#e8e0d5}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1);pointer-events:none}.gallery-card:hover img,.gallery-card:focus-visible img{transform:scale(1.06)}.gallery-view{position:absolute;right:15px;bottom:15px;background:var(--cream);border-radius:28px;padding:11px 17px;font-size:12px;transform:translateY(8px);opacity:0;transition:opacity .25s,transform .25s}.gallery-card:hover .gallery-view,.gallery-card:focus-visible .gallery-view{opacity:1;transform:translateY(0)}.gallery-caption{display:flex;justify-content:space-between;align-items:center;padding:14px 8px 6px;gap:15px}.gallery-caption small{font-size:10px;color:#68625d;letter-spacing:.025em}.gallery-caption h3{font-size:22px;letter-spacing:-.04em;margin-top:6px;line-height:1.2}.gallery-caption>span{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:20px;transition:color .2s,background .2s}.gallery-card:hover .gallery-caption>span{background:var(--pink);color:white;border-color:var(--pink)}.gallery-hint{text-align:center;font-size:11px;color:#706a62;margin-top:16px;letter-spacing:.025em}
input,textarea,select{transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{outline:0;border-color:var(--pink);box-shadow:0 0 0 3px #ff267617}.filter{transition:background .2s,color .2s,transform .2s}.filter:hover{transform:translateY(-2px)}
@media(max-width:900px){.motion-projects .section-heading>p{display:none}.header nav{gap:20px}.header .logo img{width:165px}.hero-copy h1{font-size:clamp(40px,5.1vw,58px)}.hero-buttons{flex-wrap:wrap}.services-grid{gap:22px}.gallery-card{width:340px}}
@media(max-width:720px){.header{height:84px;gap:10px}.header .logo img{width:125px}.header-cta{font-size:10px;padding:12px 15px;gap:7px;min-height:42px}.header nav{top:76px;box-shadow:0 15px 25px #2221;border-radius:0 0 16px 16px}.header nav a{padding:13px 4px;min-height:44px}.menu{min-width:42px;min-height:44px;border-radius:50%}.hero-copy h1{font-size:clamp(38px,8.7vw,60px);line-height:1.08;letter-spacing:-.055em}.hero-copy{padding-top:30px}.hero-copy p{font-size:18px;max-width:100%}.hero-copy p br{display:none}.hero-buttons{gap:10px}.hero-buttons .btn{min-height:47px;font-size:11px;padding:15px 18px;gap:10px}.hero-art{height:310px;margin-top:18px}.ticker{font-size:10px;letter-spacing:.08em;word-spacing:2px}.projects-section{padding-top:35px}.motion-projects .section-heading h2{font-size:35px;line-height:1.08}.gallery-controls{margin-top:3px;gap:10px}.motion-toggle{font-size:11px;padding:10px 15px}.gallery-all{font-size:12px}.double-gallery{gap:20px}.gallery-card{width:76vw;max-width:360px}.gallery-group{gap:14px;padding-right:14px}.gallery-photo{border-radius:10px}.gallery-caption{padding:12px 5px 2px}.gallery-caption h3{font-size:20px}.gallery-caption small{font-size:9px}.gallery-view{display:none}.gallery-hint{font-size:10px;margin-top:13px}.case-heading h1{font-size:clamp(36px,9vw,48px)}.case-description{min-width:0}.case-description>*{min-width:0}.swatches{gap:9px}.swatches i{width:31px;height:31px}.flora{font-size:48px}.case-gallery img{height:220px}.contact-page{gap:28px}.contact-page h1{font-size:clamp(40px,10.5vw,53px)}.contact-page p{font-size:18px}.contact-page form{padding:23px}.contact-page form .btn{font-size:11px;padding:17px 13px;gap:8px;line-height:1.4}input,textarea,select{font-size:16px}.footer nav{gap:14px;flex-wrap:wrap}.footer-contact{font-size:11px}.cta-block h2{font-size:36px}.contact-inner h2{font-size:40px}}
@media(max-width:360px){.header .logo img{width:108px}.header-cta{font-size:9px;padding:11px}.header-cta span{display:none}.hero-copy h1{font-size:35px}.hero-buttons .btn{padding:14px 12px;font-size:10px}.ticker{letter-spacing:0;word-spacing:0}.palette{padding:20px}.gallery-card{width:82vw}}
@media(prefers-reduced-motion:reduce){.hero-copy>*,.hero-art,.hero-art img,.portfolio-intro .star,.contact-page .star{animation:none}.reveal{opacity:1;transform:none;transition:none}.btn:hover,.filter:hover{transform:none}}
@media(max-width:720px){.header-cta{font-size:0;gap:0;padding:12px 16px;min-width:86px}.header-cta:before{content:'Conversar';font-size:10px}.header-cta span{display:none}.header{flex-wrap:nowrap}.header nav.open{display:flex}.header .menu{flex-shrink:0}}
@media(min-width:721px) and (max-width:900px){.header .logo img{width:135px}.header nav{gap:15px;font-size:12px}.header-cta{font-size:11px;padding:15px 20px;gap:10px}}
