/* Sistema visual, layout responsivo e parallax fixo. devfurtili.online by Fábio Furtili */
:root{--ink:#0a0a0a;--surface:#10100f;--paper:#f1eee8;--white:#f8f6f1;--muted:#aaa7a0;--line:rgba(248,246,241,.2);--accent:#d46f3d;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--pad:clamp(1.25rem,4vw,4.5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--white);font:400 16px/1.5 var(--sans);overflow-x:hidden}body.menu-open{overflow:hidden}::selection{background:var(--accent);color:var(--ink)}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:#111}::-webkit-scrollbar-thumb{background:#57534d;border:2px solid #111}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;padding:.75rem 1rem;background:var(--paper);color:var(--ink);transform:translateY(-180%)}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.site-header{position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:1.25rem var(--pad);transition:background .3s ease}.site-header.is-scrolled{background:rgba(10,10,10,.9);backdrop-filter:blur(12px)}.brand{font-size:1.4rem;font-weight:600;letter-spacing:-.04em}.brand span{font-size:.45em;vertical-align:top;margin-left:.2rem}.main-nav{display:flex;gap:2rem;align-items:center;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.main-nav a{position:relative}.main-nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:100%;bottom:-.25rem;height:1px;background:currentColor;transition:right .25s}.main-nav a:hover::after{right:0}.nav-contact{border:1px solid var(--line);padding:.65rem 1rem;transition:background .25s,color .25s}.nav-contact:hover{background:var(--white);color:var(--ink)}.menu-toggle{display:none;border:0;background:none;width:2.75rem;height:2.75rem;padding:.65rem}.menu-toggle span:not(.sr-only){display:block;height:1px;background:currentColor;margin:.4rem 0}
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:8rem var(--pad) 5rem;overflow:hidden}.hero-media,.hero-shade{position:absolute;inset:0}.fixed-image{background-repeat:no-repeat;background-size:cover;background-position:center;background-attachment:fixed}.hero-media{background-image:url("../images/retrato-editorial.png")}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.73),rgba(0,0,0,.06) 70%),linear-gradient(0deg,rgba(0,0,0,.45),transparent 48%)}.hero-content{position:relative;z-index:2;max-width:920px}.hero h1{font:400 clamp(4rem,10.4vw,9.5rem)/.78 var(--serif);letter-spacing:-.035em;margin:0;text-wrap:balance}.hero h1 em{font-weight:400}.hero-content p{max-width:37rem;margin:2.25rem 0 0;font-size:clamp(1rem,1.6vw,1.25rem);color:#ddd9d1}.hero-meta{position:absolute;right:var(--pad);bottom:2.2rem;margin:0;font-size:.67rem;text-transform:uppercase;letter-spacing:.14em}.scroll-cue{position:absolute;z-index:2;left:var(--pad);bottom:1.8rem;display:flex;align-items:center;gap:1rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.15em}.scroll-cue i{width:3.8rem;height:1px;background:var(--white)}
.section-pad{padding:clamp(6rem,12vw,11rem) var(--pad)}.section-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.5fr);gap:3rem;align-items:end;margin-bottom:4rem}.section-heading h2,.about h2,.insta-head h2{font:400 clamp(3.4rem,7vw,7rem)/.88 var(--serif);letter-spacing:-.025em;margin:0}.section-heading p{color:var(--muted);max-width:34rem;margin:0}.filters{display:flex;gap:1.75rem;border-bottom:1px solid var(--line);margin:0}.filter{border:0;background:none;padding:0 0 1rem;cursor:pointer;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;position:relative}.filter::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--white);transition:right .25s}.filter.is-active{color:var(--white)}.filter.is-active::after{right:0}
.gallery{display:flex;flex-wrap:wrap;width:100%;background:#151514}.work{position:relative;flex:1 1 33.333%;min-width:0;aspect-ratio:4/3;overflow:hidden}.work[hidden]{display:none}.work-media{position:absolute;inset:0;overflow:hidden}.work-media img{width:100%;height:100%;object-fit:cover;transition:filter .55s,transform .6s cubic-bezier(.16,1,.3,1)}.work-caption{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:clamp(1.25rem,3vw,2.5rem);background:linear-gradient(0deg,rgba(0,0,0,.84),transparent 68%);opacity:0;transition:opacity .35s}.work-caption::before{content:"Ver ensaio";margin-bottom:auto;border-bottom:1px solid;padding-bottom:.2rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.14em}.work-caption h3{font:400 clamp(2rem,3.2vw,3.5rem)/.95 var(--serif);margin:0;transform:translateY(1rem);transition:transform .45s cubic-bezier(.16,1,.3,1)}.work-caption p{color:#ddd9d1;font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;margin:.5rem 0 0;transform:translateY(1rem);transition:transform .45s cubic-bezier(.16,1,.3,1)}.work:hover .work-caption,.work:focus .work-caption{opacity:1}.work:hover .work-caption h3,.work:hover .work-caption p,.work:focus .work-caption h3,.work:focus .work-caption p{transform:none}.work:hover img{filter:saturate(.65) brightness(.75);transform:scale(1.035)}
.manifesto{position:relative;height:80svh;min-height:35rem;display:grid;place-items:center;overflow:hidden}.manifesto-media{position:absolute;inset:0;background-image:url("../images/paisagem-dunas.png")}.manifesto-shade{position:absolute;inset:0;background:rgba(0,0,0,.48)}.manifesto blockquote{position:relative;z-index:2;max-width:970px;margin:0;padding:var(--pad);font:italic 400 clamp(3rem,6.2vw,6rem)/.95 var(--serif);text-align:center;letter-spacing:-.02em;text-wrap:balance}
.about{display:grid;grid-template-columns:1fr 2.1fr;gap:6rem;background:var(--paper);color:var(--ink)}.about-index{font-size:.7rem;letter-spacing:.14em}.about h2{max-width:850px}.about .lead{font:400 clamp(1.8rem,3vw,3rem)/1.08 var(--serif);max-width:900px;margin:3rem 0}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:800px;color:#494642}.about-columns p{margin:0}.text-link{display:inline-flex;gap:.65rem;align-items:center;margin-top:3rem;padding-bottom:.35rem;border-bottom:1px solid;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.instagram{background:var(--surface)}.insta-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3rem}.insta-head h2{font-size:clamp(3rem,6vw,5.6rem)}.insta-head p{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.live-dot{display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:var(--accent);margin-right:.45rem}.insta-head .text-link{margin:0}.insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.insta-post{position:relative;aspect-ratio:1;overflow:hidden}.insta-post img{width:100%;height:100%;object-fit:cover;transition:transform .55s,filter .4s}.insta-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;gap:.45rem;background:rgba(0,0,0,.55);opacity:0;transition:opacity .3s}.heart{font-size:1.5rem}.post-caption{position:absolute;left:1rem;bottom:1rem;font:italic 1.15rem var(--serif);opacity:0}.insta-post:hover img,.insta-post:focus-visible img{transform:scale(1.06);filter:saturate(.65)}.insta-post:hover .insta-overlay,.insta-post:focus-visible .insta-overlay,.insta-post:hover .post-caption,.insta-post:focus-visible .post-caption{opacity:1}
.contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(4rem,8vw,9rem);align-items:start}.contact-intro h2{font:400 clamp(3.6rem,7vw,7rem)/.86 var(--serif);letter-spacing:-.03em;margin:0 0 2rem}.contact-intro h2 em{font-weight:400}.contact-intro>p{color:var(--muted);max-width:34rem}.contact-list{display:grid;gap:.8rem;margin:2.5rem 0;font-style:normal}.contact-list a,.contact-list span,.social-links a{display:flex;align-items:center;gap:.8rem}.contact-list img,.social-links img{width:1.5rem;height:1.5rem;object-fit:contain}.social-links{display:flex;gap:1.5rem}.social-links a{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 1rem}.field{display:grid;gap:.55rem}.field-full{grid-column:1/-1}.field label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:.85rem 0;outline:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--white)}.field select option{background:var(--ink)}.field textarea{resize:vertical}.submit-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:3.4rem;border:1px solid var(--white);overflow:hidden;background:transparent;color:var(--white);padding:.85rem 1.3rem;cursor:pointer;text-transform:uppercase;font-size:.72rem;letter-spacing:.1em;isolation:isolate;transition:color .2s ease .08s}.submit-button::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}.submit-button:hover,.submit-button:focus-visible{color:var(--ink)}.submit-button:hover::before,.submit-button:focus-visible::before{transform:scaleX(1)}.submit-button img{width:1.25rem;height:1.25rem;transition:filter .2s ease .08s}.submit-button:hover img,.submit-button:focus-visible img{filter:invert(1)}.form-status{min-height:1.5rem;margin:.75rem 0 0;color:var(--muted);font-size:.85rem}.map-section{position:relative;height:min(68vw,42rem);min-height:30rem;background:#d5d2cb}.map-section iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(.9)}.map-copy{position:absolute;z-index:2;top:var(--pad);left:var(--pad);width:min(28rem,calc(100% - 2 * var(--pad)));padding:1.5rem;background:var(--ink)}.map-copy h2{font:400 2.5rem var(--serif);margin:0}.map-copy p{color:var(--muted);margin:.45rem 0 0}
.site-footer{display:grid;grid-template-columns:1.5fr .7fr 1fr;gap:4rem;padding:clamp(4rem,8vw,7rem) var(--pad) 2rem;border-top:1px solid var(--line)}.footer-brand p{max-width:24rem;color:var(--muted)}.footer-nav,.footer-contact{display:flex;flex-direction:column;gap:.7rem}.footer-nav a,.footer-contact a{width:fit-content;font-size:.76rem;text-transform:uppercase;letter-spacing:.1em}.footer-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:3rem;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}.footer-bottom p{margin:0}.footer-bottom a{text-align:center}.footer-bottom p:last-child{text-align:right}
@media(max-width:800px){.main-nav{position:fixed;inset:0;background:var(--ink);flex-direction:column;justify-content:center;font:400 2.3rem var(--serif);text-transform:none;letter-spacing:0;visibility:hidden;opacity:0;transition:.3s}.main-nav.is-open{visibility:visible;opacity:1}.menu-toggle{display:block;position:relative;z-index:2}.nav-contact{border:0;padding:0}.fixed-image{background-attachment:scroll}.hero{padding-bottom:7rem}.hero-content{width:calc(100vw - 3.5rem)}.hero h1{font-size:clamp(3.8rem,19vw,7rem);line-height:.82}.hero h1 em{display:block;font-size:.76em;line-height:.9;max-width:9ch}.hero-content p{font-size:.9rem}.hero-meta{display:none}.section-heading{grid-template-columns:1fr}.work{flex-basis:50%;aspect-ratio:4/5}.work-caption{opacity:1;padding:1rem}.work-caption::before{display:none}.work-caption h3,.work-caption p{transform:none}.work-caption h3{font-size:1.55rem}.manifesto{height:66svh}.about{grid-template-columns:1fr;gap:2rem}.about-columns{grid-template-columns:1fr}.insta-head{align-items:flex-start;flex-direction:column}.insta-grid{grid-template-columns:1fr 1fr}.post-caption{display:none}.contact{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.field-full{grid-column:auto}.map-section{height:32rem}.site-footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{grid-template-columns:1fr;gap:.7rem}.footer-bottom a,.footer-bottom p:last-child{text-align:left}}
@media(max-width:480px){.work{flex-basis:100%;aspect-ratio:4/3}.insta-grid{grid-template-columns:1fr}.insta-post:nth-child(n+3){display:none}.site-footer{grid-template-columns:1fr}.footer-contact{margin-top:1.5rem}}
@media(max-width:800px) and (prefers-reduced-motion:no-preference){.fixed-image{background-attachment:fixed}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fixed-image{background-attachment:scroll}}

/* Ação compacta de retorno ao início, sem texto visual. */
.back-to-top{position:absolute;right:var(--pad);bottom:1.15rem;display:grid;place-items:center;width:3.25rem;height:3.25rem;border:1px solid rgba(255,255,255,.3);overflow:hidden;background:transparent;isolation:isolate;transition:color .2s ease .08s,border-color .3s ease}
.back-to-top::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.back-to-top img{width:1.45rem;height:1.45rem;object-fit:contain;transform:rotate(180deg);transition:transform .3s ease,filter .3s ease}
.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--white)}
.back-to-top:hover::before,.back-to-top:focus-visible::before{transform:scaleX(1)}
.back-to-top:hover img,.back-to-top:focus-visible img{filter:invert(1)}
.back-to-top:focus-visible{outline:2px solid var(--white);outline-offset:4px}
@media(max-width:480px){.back-to-top{right:1.5rem;bottom:1rem;width:2.9rem;height:2.9rem}}

/* Menu móvel em painel modal editorial. */
.menu-backdrop{display:none}
@media(max-width:800px){
  .site-header{isolation:isolate}
  .menu-toggle{display:grid;align-content:center;position:relative;z-index:34;border:1px solid rgba(248,246,241,.25);background:rgba(10,10,10,.35);backdrop-filter:blur(10px);transition:background-color .25s ease,border-color .25s ease}
  .menu-toggle span:not(.sr-only){width:100%;margin:.24rem 0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .2s ease}
  .menu-toggle[aria-expanded="true"]{border-color:var(--ink);background:var(--paper);color:var(--ink)}
  .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(.245rem) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-.245rem) rotate(-45deg)}
  .menu-backdrop{display:block;position:fixed;z-index:31;inset:0;background:rgba(5,5,5,.7);backdrop-filter:blur(7px);visibility:hidden;opacity:0;transition:opacity .3s ease,visibility .3s ease}
  .menu-backdrop.is-open{visibility:visible;opacity:1}
  .main-nav{inset:5.25rem var(--pad) auto auto;z-index:33;width:min(30rem,calc(100vw - (var(--pad) * 2)));max-height:calc(100svh - 6.5rem);align-items:stretch;justify-content:flex-start;gap:0;padding:clamp(1.1rem,4vw,1.75rem);overflow-y:auto;background:var(--paper);color:var(--ink);font-family:var(--serif);text-transform:none;letter-spacing:-.025em;box-shadow:0 1.5rem 4rem rgba(0,0,0,.36);clip-path:inset(0 0 100% 0);transform:translateY(-.7rem);visibility:hidden;opacity:0;transition:clip-path .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),opacity .2s ease,visibility .45s}
  .main-nav.is-open{clip-path:inset(0);transform:none;visibility:visible;opacity:1}
  .main-nav a{display:flex;align-items:center;min-height:clamp(3.8rem,12vw,5.25rem);font-size:clamp(2.35rem,10vw,4rem);line-height:.92;transition:padding-left .3s cubic-bezier(.16,1,.3,1),font-style .2s ease}
  .main-nav a:not(.nav-contact)::after{display:none}
  .main-nav a:not(.nav-contact):hover,.main-nav a:not(.nav-contact):focus-visible{padding-left:.55rem;font-style:italic}
  .main-nav .nav-contact{justify-content:center;min-height:3.5rem;margin-top:1rem;padding:.85rem 1rem;border:0;background:var(--ink);color:var(--white);font:600 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background-color .25s ease,color .25s ease}
  .main-nav .nav-contact:hover,.main-nav .nav-contact:focus-visible{background:var(--accent);color:var(--ink)}
}
@media(max-width:480px){.main-nav{top:4.8rem;right:1rem;width:calc(100vw - 2rem)}.menu-backdrop{backdrop-filter:blur(5px)}}

/* Retrato editorial compacto do autor. */
.about{grid-template-columns:minmax(12rem,.62fr) minmax(0,2.1fr);column-gap:clamp(3rem,7vw,8rem);row-gap:1.25rem;align-items:start}
.about-index{grid-column:1;grid-row:1}
.about-profile{width:min(100%,15rem);margin:0;align-self:start}
.about-copy{grid-column:2;grid-row:1/span 2;min-width:0}
.about-profile img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 28%;filter:contrast(1.04)}
.about-profile figcaption{display:grid;gap:.15rem;margin-top:1rem}
.about-profile strong{font:400 1.2rem/1.1 var(--serif)}
.about-profile span{max-width:15rem;color:#68645e;font-size:.63rem;line-height:1.45;letter-spacing:.09em;text-transform:uppercase}
@media(max-width:980px){.about{grid-template-columns:minmax(11rem,.62fr) minmax(0,1.8fr);column-gap:2.5rem}.about .lead{font-size:clamp(1.65rem,3vw,2.4rem)}}
@media(max-width:800px){.about{grid-template-columns:minmax(9rem,.7fr) minmax(0,1.3fr);column-gap:2rem}.about-profile{width:min(100%,14rem)}.about .lead{margin:2rem 0}.about-columns{gap:1.5rem}}
@media(max-width:560px){.about{grid-template-columns:1fr;row-gap:1.25rem}.about-index,.about-profile,.about-copy{grid-column:auto;grid-row:auto}.about-profile{width:min(62vw,13rem)}.about-profile span{font-size:.58rem}.about-copy h2{font-size:clamp(3rem,15vw,4.5rem)}}

/* Navegação desktop modular com ações de dimensões uniformes. */
.site-header{background:rgba(10,10,10,.9);backdrop-filter:blur(12px)}
@media(min-width:801px){
  .main-nav{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(7.5rem,9.2vw,9.25rem);gap:.5rem;font-size:clamp(.62rem,.72vw,.74rem)}
  .main-nav a,.main-nav .nav-contact{display:grid;place-items:center;isolation:isolate;overflow:hidden;width:100%;height:3rem;padding:.5rem;border:1px solid var(--line);background:transparent;white-space:nowrap;transition:color .16s ease .1s,border-color .3s ease}
  .main-nav a::after{display:none}
  .main-nav a::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
  .main-nav a:hover,.main-nav a:focus-visible,.main-nav a.is-active{border-color:var(--white);color:var(--ink)}
  .main-nav a:hover::before,.main-nav a:focus-visible::before,.main-nav a.is-active::before{transform:scaleX(1)}
}

/* Proteção antispam e estados do envio de contato. */
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.submit-button:disabled{cursor:wait;opacity:.58}.submit-button:disabled::before{transform:scaleX(0)}

/* Página de transição para a futura autenticação do cliente. */
.client-placeholder{min-height:100svh;display:grid;place-items:center;padding:7rem var(--pad) 3rem;background:var(--paper);color:var(--ink)}
.client-placeholder-inner{width:min(100%,52rem)}
.client-placeholder h1{max-width:8ch;margin:0;font:400 clamp(4rem,10vw,8rem)/.82 var(--serif);letter-spacing:-.035em}
.client-placeholder p{max-width:38rem;margin:2rem 0 0;color:#57534d;font-size:clamp(1rem,1.5vw,1.2rem)}
.client-placeholder .text-link{margin-top:2.5rem}

/* Contato: introdução, formulário e mapa em uma composição responsiva. */
.contact{display:block}
.contact-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(18rem,.65fr);gap:2rem 5rem;align-items:end;margin-bottom:clamp(3rem,6vw,5rem)}
.contact-intro h2{grid-row:1/4;margin:0}.contact-intro>p,.contact-list,.contact-intro .social-links{grid-column:2;margin:0}.contact-list{margin-block:1.25rem}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(24rem,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact-form{padding:clamp(2rem,4vw,4rem);border-right:1px solid var(--line);align-content:start}
.field label span{color:#77746f;text-transform:none;letter-spacing:0}
.privacy-control{display:grid;grid-template-columns:1.2rem 1fr;gap:.8rem;align-items:start;margin-top:.25rem}
.privacy-control input{appearance:none;width:1.15rem;height:1.15rem;margin:.18rem 0 0;border:1px solid var(--muted);background:transparent;display:grid;place-items:center;cursor:pointer}
.privacy-control input::after{content:"";width:.55rem;height:.55rem;background:var(--white);transform:scale(0);transition:transform .15s ease}
.privacy-control input:checked::after{transform:scale(1)}
.privacy-control label{color:var(--muted);font-size:.78rem;line-height:1.55}
.privacy-control a{text-decoration:underline;text-underline-offset:.2rem;color:var(--white)}
.privacy-note{border-block:1px solid var(--line);padding:1rem 0;color:var(--muted);font-size:.78rem}
.privacy-note summary{color:var(--white);cursor:pointer;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
.privacy-note p{max-width:68ch;margin:.8rem 0 0}
.map-section{height:auto;min-height:42rem}.map-copy{top:1.25rem;left:1.25rem;width:calc(100% - 2.5rem)}.map-copy h3{font:400 2.5rem var(--serif);margin:0}
@media(max-width:980px){.contact-intro{grid-template-columns:1fr}.contact-intro h2{grid-row:auto}.contact-intro>p,.contact-list,.contact-intro .social-links{grid-column:auto}.contact-grid{grid-template-columns:1fr}.contact-form{border-right:0;border-bottom:1px solid var(--line)}.map-section{min-height:30rem}}
@media(max-width:560px){.contact-intro h2{max-width:9ch;font-size:clamp(2.9rem,14.5vw,4rem);line-height:.88;overflow-wrap:break-word}.contact-form{padding:2rem 0}.contact-grid{border-bottom:0}.map-section{min-height:27rem;margin-inline:calc(var(--pad) * -1)}.contact-intro .social-links{justify-content:flex-start}.privacy-control label{font-size:.75rem}}

/* Convites persistentes para continuar a navegação e iniciar contato. */
.scroll-cue{flex-direction:column;gap:.5rem;bottom:1.4rem;min-width:3rem;min-height:3rem;justify-content:center}.scroll-cue img{width:1.55rem;height:1.55rem;object-fit:contain;animation:scroll-invite 2.8s cubic-bezier(.45,0,.55,1) infinite}.scroll-cue i{display:none}
@keyframes scroll-invite{0%,100%{transform:translateY(0)}45%{transform:translateY(.65rem)}65%{transform:translateY(.35rem)}}
.whatsapp-float{position:fixed;z-index:40;right:clamp(1rem,2.5vw,2rem);bottom:clamp(1rem,2.5vw,2rem);display:grid;place-items:center;width:3.75rem;height:3.75rem;border-radius:50%;background:#1f9d55;box-shadow:0 .65rem 1.8rem rgba(0,0,0,.34);transition:transform .25s cubic-bezier(.16,1,.3,1),background .25s}
.whatsapp-float img{width:1.75rem;height:1.75rem;object-fit:contain}.whatsapp-float span{position:absolute;right:calc(100% + .75rem);width:max-content;padding:.55rem .75rem;background:var(--white);color:var(--ink);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:0;transform:translateX(.4rem);pointer-events:none;transition:opacity .2s,transform .2s}
.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translateY(-.2rem);background:#178346}.whatsapp-float:hover span,.whatsapp-float:focus-visible span{opacity:1;transform:none}
.hero-meta{bottom:5.8rem}
@media(max-width:560px){.scroll-cue span{display:none}.scroll-cue{bottom:1rem}.whatsapp-float{display:flex!important;position:fixed!important;inset:auto 1rem 1rem auto!important;width:3.35rem;height:3.35rem;visibility:visible!important;opacity:1!important}.whatsapp-float img{width:1.55rem;height:1.55rem}.whatsapp-float span{display:none}}
@media(prefers-reduced-motion:reduce){.scroll-cue img{animation:none}}

/* Ritmo amplo, contato compacto em duas superfícies e rodapé limpo. */
:root{--pad:max(clamp(1.5rem,4vw,5rem),calc((100vw - 1500px)/2))}
.scroll-cue{left:50%;right:auto;bottom:1.25rem;transform:translateX(-50%);gap:.15rem;align-items:center}.scroll-cue span{display:block!important;font-size:.65rem}.scroll-cue img{width:clamp(2.15rem,3.2vw,3.6rem);height:clamp(2.15rem,3.2vw,3.6rem)}
.contact{background:#171715;padding-block:clamp(4.5rem,8vw,7rem)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(22rem,.88fr);gap:1rem;max-width:1500px;margin-inline:auto}
.contact-panel{background:#20201d;padding:clamp(2rem,3.5vw,3.75rem)}
.contact-intro{display:block;margin-bottom:2.25rem}.contact-intro h2{max-width:12ch;margin-bottom:1.4rem;font-size:clamp(3rem,5vw,5.75rem)}.contact-intro>p{max-width:58ch}.contact-list{margin-block:1.25rem}.contact-intro .social-links{margin-top:1.25rem}
.contact-form{padding:0;border:0;gap:1rem}.field input,.field select,.field textarea{border:0;background:#292926;padding:.8rem .9rem}.field input:focus,.field select:focus,.field textarea:focus{outline:1px solid var(--white);outline-offset:0}.field textarea{min-height:7rem}.privacy-note{border:0;padding:.35rem 0}.submit-button{min-height:3rem}.form-status{margin-bottom:0}
.map-section{min-height:34rem;height:100%;background:#d4d1ca}.map-copy{top:1rem;left:1rem;width:calc(100% - 2rem);padding:1.15rem}.map-copy h3{font-size:2rem}
.site-footer{position:relative;background:#080808;border:0;max-width:none;padding-inline:var(--pad);padding-block:clamp(3.5rem,6vw,5rem) 1.5rem}.footer-bottom{border:0;margin-top:2rem;padding:0 4.75rem 0 0;grid-template-columns:1fr 1fr}.footer-bottom p:last-child{text-align:right}
@media(max-width:980px){.contact-layout{grid-template-columns:1fr}.contact-panel{padding:clamp(1.5rem,5vw,3rem)}.map-section{min-height:26rem}.contact-intro h2{font-size:clamp(3rem,11vw,5rem)}}
@media(max-width:560px){:root{--pad:1.5rem}.scroll-cue{bottom:.75rem}.scroll-cue span{font-size:.58rem}.scroll-cue img{width:2.15rem;height:2.15rem}.contact{padding-block:4rem}.contact-layout{gap:.65rem}.contact-panel{padding:1.5rem}.contact-form{padding:0}.map-section{min-height:23rem;margin:0}.site-footer{padding-inline:1.5rem}.footer-bottom{grid-template-columns:1fr;gap:.45rem;padding-right:4rem}.footer-bottom p:last-child{text-align:left}}

/* WhatsApp vazado em alta resolução, sem fundo decorativo. */
.whatsapp-float,.whatsapp-float:hover,.whatsapp-float:focus-visible{bottom:5.15rem;width:4rem;height:4rem;background:transparent!important;box-shadow:none;transform:none}
.whatsapp-float img{width:3.15rem;height:3.15rem;filter:drop-shadow(0 .25rem .4rem rgba(0,0,0,.5));animation:whatsapp-pulse 2.6s cubic-bezier(.16,1,.3,1) infinite;will-change:transform,opacity}
@keyframes whatsapp-pulse{0%,100%{transform:scale(1);opacity:.84}48%{transform:scale(1.12);opacity:1}}
@media(max-width:560px){.whatsapp-float,.whatsapp-float:hover,.whatsapp-float:focus-visible{bottom:4.75rem!important;width:3.5rem;height:3.5rem}.whatsapp-float img{width:2.65rem;height:2.65rem}}
@media(prefers-reduced-motion:reduce){.whatsapp-float img{animation:none;opacity:1}}

/* Ritmo vertical compacto para manter a próxima seção sempre em perspectiva. */
.hero{height:82svh;min-height:35rem;padding-top:6rem;padding-bottom:4.25rem}
.section-pad{padding-top:clamp(1.25rem,1.8vw,2rem);padding-bottom:clamp(2.75rem,4vw,4.25rem)}
.section-heading{margin-bottom:clamp(2rem,3vw,2.75rem)}
.about .lead{margin-block:clamp(1.6rem,2.5vw,2.15rem)}
.insta-head{margin-bottom:clamp(1.75rem,2.5vw,2.25rem)}
.insta-identity{display:grid;gap:clamp(.75rem,1.4vw,1rem)}
.insta-profile{display:inline-flex;align-items:center;gap:.65rem;width:fit-content;color:var(--muted);font-size:.78rem;letter-spacing:.06em;transition:color .25s ease}
.insta-profile img{width:1.35rem;height:1.35rem;object-fit:contain;opacity:.8;transition:opacity .25s ease,transform .25s ease}
.insta-profile:hover,.insta-profile:focus-visible{color:var(--white)}
.insta-profile:hover img,.insta-profile:focus-visible img{opacity:1;transform:translateY(-.1rem)}
.brand-signature{display:inline-flex;align-items:center;gap:.65rem;width:fit-content;font-family:var(--serif);font-size:clamp(1.15rem,1.45vw,1.4rem);font-weight:400;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.brand-signature img{width:1.75rem;height:1.75rem;object-fit:contain}
.brand-signature span{font-size:inherit;margin:0;vertical-align:baseline}
@media(max-width:560px){.site-header .brand-signature{gap:.5rem;font-size:1.15rem}.site-header .brand-signature img{width:1.5rem;height:1.5rem}}
.insta-post:nth-child(n+5){display:none}
.insta-more{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3rem;padding:.75rem 1.15rem;border:1px solid var(--line);overflow:hidden;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;isolation:isolate}
.insta-more::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.insta-more:hover,.insta-more:focus-visible{color:var(--ink)}
.insta-more:hover::before,.insta-more:focus-visible::before{transform:scaleX(1)}
@media(max-width:800px){.insta-more{width:100%;max-width:18rem}.insta-head{width:100%}}
.manifesto{height:auto;min-height:clamp(22rem,45svh,28rem);padding-block:clamp(2rem,3.5vw,3rem)}
.manifesto blockquote{width:min(100%,52rem);font-size:clamp(2.4rem,4.6vw,4.8rem);line-height:.94}
@media(min-width:801px){.manifesto{min-height:clamp(18rem,34svh,22rem);padding-block:clamp(1.25rem,2vw,1.75rem)}.manifesto blockquote{width:min(100%,58rem);font-size:clamp(2.25rem,3.5vw,3.8rem);line-height:.96}}
.contact{padding-top:clamp(1.5rem,2.2vw,2.25rem);padding-bottom:clamp(2.75rem,4vw,4.25rem)}
.contact-intro{margin-bottom:1.4rem}
.map-section{min-height:29rem}
.site-footer{padding-block:clamp(2.5rem,3.5vw,3.5rem) 1.5rem}
@media(max-width:800px){.hero{height:82svh;min-height:33rem;padding-top:5.5rem;padding-bottom:4.75rem}.section-pad{padding-top:1.25rem;padding-bottom:3rem}.manifesto{height:auto;min-height:20rem;padding-block:2rem}.manifesto blockquote{width:min(100%,36rem);font-size:clamp(2rem,9vw,2.8rem);line-height:.94}}
@media(max-width:560px){.hero{min-height:31rem;padding-bottom:4.5rem}.section-pad{padding-top:1.1rem;padding-bottom:2.75rem}.contact{padding-top:1.25rem;padding-bottom:2.75rem}.map-section{min-height:22rem}.site-footer{padding-top:2rem}}

/* Slider fotográfico da hero e seleção direta das imagens. */
.hero-slides{position:absolute;inset:0}
.hero-media{opacity:0;transition:opacity 1s cubic-bezier(.16,1,.3,1)}
.hero-media.is-active{opacity:1}
.hero-media-mono{background-image:url("../images/retrato-editorial.png")}
.hero-media-color{background-image:url("../images/hero-retrato-colorido.png");background-position:center}
.hero-media-wedding{background-image:url("../images/hero-casamento-colorido.png");background-position:center}
.hero-pagination{--indicator-width:.625rem;--indicator-height:4.5rem;--indicator-inset:1.9375rem;position:absolute;z-index:3;top:50%;right:var(--pad);display:grid;gap:0;transform:translateY(-50%)}
.hero-pagination button{display:grid;place-items:center;width:2.5rem;height:4rem;padding:0;border:0;background:transparent;color:rgba(248,246,241,.62);cursor:pointer;transition:color .25s ease}
.hero-pagination button::after{content:"";width:var(--indicator-width);height:var(--indicator-height);border-radius:999px;background:currentColor;filter:drop-shadow(0 1px 2px rgba(0,0,0,.75));clip-path:inset(var(--indicator-inset) 0 round 999px);will-change:clip-path;transition:color .25s ease}
.hero-pagination button:hover,.hero-pagination button:focus-visible{color:var(--white)}
.hero-pagination button.is-active{color:var(--white)}
.hero-pagination button.is-active::after{animation:hero-indicator-grow .45s cubic-bezier(.16,1,.3,1) forwards,hero-slide-timer 6.05s linear .45s forwards}
.hero.is-paused .hero-pagination button.is-active::after{animation-play-state:paused}
@keyframes hero-indicator-grow{from{clip-path:inset(var(--indicator-inset) 0 round 999px)}to{clip-path:inset(0 round 999px)}}
@keyframes hero-slide-timer{from{clip-path:inset(0 round 999px)}to{clip-path:inset(var(--indicator-inset) 0 round 999px)}}
@media(max-width:800px){.hero-media-color{background-position:68% center}.hero-media-wedding{background-position:58% center}.hero-pagination{--indicator-width:.55rem;--indicator-height:3.75rem;--indicator-inset:1.6rem;right:.85rem}.hero-pagination button{width:2.1rem;height:3.35rem}}
@media(prefers-reduced-motion:reduce){.hero-media{transition:none}.hero-pagination button.is-active::after{clip-path:inset(0 round 999px);animation:none}}

/* Ampliação do portfólio com navegação acessível. */
body.lightbox-open{overflow:hidden}
.work{cursor:pointer}
.work-zoom{position:absolute;z-index:4;top:50%;left:50%;display:grid;place-items:center;width:3rem;height:3rem;opacity:0;transform:translate(-50%,-42%) scale(.82);transition:opacity .3s ease,transform .4s cubic-bezier(.16,1,.3,1)}
.work-zoom img{width:3rem;height:3rem;filter:drop-shadow(0 .2rem .45rem rgba(0,0,0,.72))}
.work:hover .work-zoom,.work:focus-visible .work-zoom{opacity:1;transform:translate(-50%,-50%) scale(1)}
.lightbox{inset:0;width:100vw;height:100svh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(7,7,7,.96);color:var(--white);overflow:hidden}
.lightbox::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(12px)}
.lightbox-frame{position:relative;display:grid;place-items:center;width:100%;height:100%;padding:clamp(4.5rem,7vw,6.5rem) clamp(5rem,9vw,9rem) 2rem}
.lightbox-figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:1rem;max-width:100%;max-height:100%;margin:0}
.lightbox-figure>img{width:auto;max-width:100%;height:auto;max-height:calc(100svh - 10rem);margin:auto;object-fit:contain}
.lightbox-figure figcaption{display:flex;justify-content:space-between;align-items:end;gap:2rem;color:var(--muted);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}
.lightbox-figure figcaption>span{display:grid;gap:.25rem}.lightbox-figure strong{color:var(--white);font:400 1.4rem/1 var(--serif);letter-spacing:0;text-transform:none}.lightbox-figure small{font:inherit}
.lightbox-close,.lightbox-nav{position:absolute;z-index:2;display:grid;place-items:center;width:3.5rem;height:3.5rem;padding:0;border:1px solid var(--line);background:rgba(10,10,10,.6);cursor:pointer;transition:background-color .25s ease,border-color .25s ease}
.lightbox-close{top:1.5rem;right:1.5rem}.lightbox-nav{top:50%;transform:translateY(-50%)}.lightbox-prev{left:1.5rem}.lightbox-next{right:1.5rem}
.lightbox-close img,.lightbox-nav img{width:1.65rem;height:1.65rem;object-fit:contain;transition:filter .25s ease}.lightbox-prev img{transform:rotate(90deg)}.lightbox-next img{transform:rotate(-90deg)}
.lightbox-close:hover,.lightbox-close:focus-visible,.lightbox-nav:hover,.lightbox-nav:focus-visible{border-color:var(--white);background:var(--white)}
.lightbox-close:hover img,.lightbox-close:focus-visible img,.lightbox-nav:hover img,.lightbox-nav:focus-visible img{filter:invert(1)}
.lightbox-nav:disabled{opacity:.25;cursor:default}.lightbox-nav:disabled:hover{border-color:var(--line);background:rgba(10,10,10,.6)}.lightbox-nav:disabled:hover img{filter:none}
.lightbox.is-loading .lightbox-figure{opacity:.58}.lightbox.is-loading .lightbox-figure::before{content:"";position:absolute;top:50%;left:50%;width:2rem;height:2rem;margin:-1rem;border:2px solid rgba(255,255,255,.2);border-top-color:var(--white);border-radius:50%;animation:album-loading .8s linear infinite}@keyframes album-loading{to{transform:rotate(360deg)}}
@media(max-width:800px){.work-zoom,.work-zoom img{width:2.5rem;height:2.5rem}.lightbox-frame{padding:4.5rem .75rem 5.5rem}.lightbox-figure>img{max-height:calc(100svh - 11rem)}.lightbox-close{top:1rem;right:1rem}.lightbox-nav{top:auto;bottom:1rem;transform:none}.lightbox-prev{left:calc(50% - 4rem)}.lightbox-next{right:calc(50% - 4rem)}.lightbox-figure figcaption{padding-inline:.25rem}}
@media(hover:none){.work-zoom{opacity:.72;transform:translate(-50%,-50%) scale(1)}}

/* Vidro fumê para destacar a ação e a legenda sem ocultar a fotografia. */
@media(hover:hover){
  .work:hover .work-caption{background:linear-gradient(0deg,rgba(5,5,5,.78),rgba(12,12,12,.24) 72%),rgba(16,16,16,.28);backdrop-filter:blur(3px) saturate(.72)}
  .work:hover .work-media img{filter:saturate(.78) brightness(.9);transform:scale(1.035)}
}
.work:focus-visible .work-caption{background:linear-gradient(0deg,rgba(5,5,5,.78),rgba(12,12,12,.24) 72%),rgba(16,16,16,.28);backdrop-filter:blur(3px) saturate(.72)}

/* Menu responsivo alinhado aos módulos uniformes do desktop. */
@media(max-width:800px){
  .main-nav{gap:.5rem}
  .main-nav a,.main-nav .nav-contact{display:grid;place-items:center;isolation:isolate;overflow:hidden;width:100%;height:3.25rem;min-height:3.25rem;margin:0;padding:.75rem 1rem;border:1px solid rgba(10,10,10,.22);background:transparent;color:var(--ink);font:600 .7rem/1 var(--sans);letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;transition:color .16s ease .1s,border-color .3s ease}
  .main-nav a::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.16,1,.3,1)}
  .main-nav a:hover,.main-nav a:focus-visible,.main-nav a.is-active,.main-nav .nav-contact:hover,.main-nav .nav-contact:focus-visible{border-color:var(--ink);background:transparent;color:var(--white)}
  .main-nav a:hover::before,.main-nav a:focus-visible::before,.main-nav a.is-active::before{transform:scaleX(1)}
  .main-nav a:not(.nav-contact):hover,.main-nav a:not(.nav-contact):focus-visible{padding-left:1rem;font-style:normal}
}

/* Álbuns carregados sob demanda. */
.work-caption::before{content:"Ver álbum"}
