:root{
  --ouro:#f2b35e; --ouro2:#ff7a2f; --fundo:#090807; --fundo2:#120f0c; --texto:#f4efe8; --suave:rgba(244,239,232,.68);
  --borda:rgba(255,255,255,.12); --vidro:rgba(255,255,255,.05);
  --serif:'Cormorant Garamond',Georgia,serif; --menu:'Raleway',Montserrat,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
html,body{background:var(--fundo);color:var(--texto);font-family:Montserrat,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
html,body{overflow-x:clip}
body.carregando{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
svg.i{width:20px;height:20px;flex-shrink:0}
.centro{text-align:center}
section{position:relative}

/* ---------- abertura (diafragma) ---------- */
.abertura{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#050404;transition:opacity .8s .2s,visibility 0s 1s}
.abertura.fim{opacity:0;visibility:hidden}
.iris{width:min(70vmin,520px);height:min(70vmin,520px);border-radius:50%;box-shadow:0 0 0 2px #3a2e22,0 0 0 10px #0d0a08,0 0 0 12px #3a2e22}
.iris path{fill:#17130f;stroke:#3a2e22;stroke-width:.6}
.abertura-txt{position:absolute;font-family:var(--menu);font-weight:800;font-size:clamp(28px,5vw,48px);letter-spacing:.1em;color:var(--ouro)}
.abertura-txt small{font-size:.4em;margin-left:4px;opacity:.7}

/* ---------- granulado / progresso ---------- */
.grao{position:fixed;inset:-50%;z-index:900;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grao 1s steps(6) infinite}
@keyframes grao{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.progresso{position:fixed;left:0;top:0;height:2px;width:100%;z-index:950;background:linear-gradient(90deg,var(--ouro2),var(--ouro));transform-origin:0 50%;transform:scaleX(0)}

/* ---------- cursor visor ---------- */
.cursor{position:fixed;left:0;top:0;width:44px;height:44px;z-index:980;pointer-events:none;transform:translate(-100px,-100px);transition:width .25s,height .25s,margin .25s}
.cursor i{position:absolute;width:10px;height:10px;border:1.5px solid #fff;transition:border-color .2s}
.cursor i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.cursor i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.cursor i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.cursor i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.cursor span{position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);font-size:9px;font-weight:800;letter-spacing:.25em;color:#7dff9a;opacity:0;transition:opacity .2s}
.cursor::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:#fff}
.cursor.foco{width:64px;height:64px;margin:-10px}
.cursor.foco i{border-color:#7dff9a}
.cursor.foco span{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}
@media (hover:hover) and (pointer:fine){body,a,button{cursor:none}}

/* ---------- topo ---------- */
.topo{position:fixed;left:0;right:0;top:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(16px,8vw,190px);transition:background .4s,padding .4s,backdrop-filter .4s}
.topo.solido{background:rgba(9,8,7,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding-top:10px;padding-bottom:10px;border-bottom:1px solid var(--borda)}
.marca img{height:48px;width:auto;transition:height .4s}
.topo.solido .marca img{height:38px}
.menu{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 30px;max-width:900px}
.menu a{position:relative;font-family:var(--menu);font-weight:700;font-size:15px;letter-spacing:.12em;padding:4px 0}
.menu a::after{content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:100%;background:var(--ouro);transform:scaleX(0);transform-origin:right;transition:transform .4s}
.menu a:hover::after,.menu a.ativo::after{transform:scaleX(1);transform-origin:left}
.menu a.ativo{color:var(--ouro)}
.hamburguer{display:none;width:44px;height:44px;position:relative;z-index:820}
.hamburguer span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:.35s}
.hamburguer span:nth-child(1){top:14px}.hamburguer span:nth-child(2){top:21px}.hamburguer span:nth-child(3){top:28px}
.menu-aberto .hamburguer span:nth-child(1){top:21px;transform:rotate(45deg)}
.menu-aberto .hamburguer span:nth-child(2){opacity:0}
.menu-aberto .hamburguer span:nth-child(3){top:21px;transform:rotate(-45deg)}
@media (max-width:1100px){
  .hamburguer{display:block}
  .menu{position:fixed;inset:0;z-index:810;flex-direction:column;justify-content:center;align-items:center;flex-wrap:nowrap;gap:14px;max-width:none;background:rgba(9,8,7,.96);backdrop-filter:blur(10px);clip-path:circle(0 at calc(100% - 40px) 40px);transition:clip-path .7s cubic-bezier(.7,0,.2,1)}
  .menu-aberto .menu{clip-path:circle(150% at calc(100% - 40px) 40px)}
  .menu a{font-size:clamp(20px,6vw,30px);opacity:0;transform:translateY(20px);transition:opacity .4s,transform .4s}
  .menu-aberto .menu a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i) * 45ms)}
  .marca img{height:38px}
}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:40px;font-weight:700;font-size:13px;letter-spacing:.12em;transition:transform .3s,background .3s,box-shadow .3s,color .3s;will-change:transform}
.btn-ouro{background:linear-gradient(120deg,#ffd28a,#ff8a3d);color:#1a0d04;box-shadow:0 12px 30px -10px rgba(255,138,61,.65)}
.btn-ouro:hover{box-shadow:0 18px 40px -10px rgba(255,138,61,.9)}
.btn-vidro{background:var(--vidro);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px)}
.btn-vidro:hover{background:#fff;color:#111}
.btn.grande{padding:20px 38px;font-size:15px}

/* ---------- títulos ---------- */
.sec-cab{padding:0 16px}
.sec-num{display:inline-block;font-family:var(--menu);font-weight:800;font-size:12px;letter-spacing:.3em;color:var(--ouro);border:1px solid rgba(242,179,94,.45);padding:5px 12px;border-radius:20px;margin-bottom:18px}
.sec-titulo{font-family:var(--serif);font-weight:600;font-style:italic;font-size:clamp(36px,6vw,84px);line-height:1.02;letter-spacing:-.01em}
.sec-titulo.gigante{font-size:clamp(48px,10vw,150px)}
.sec-sub{margin-top:14px;color:var(--suave);font-size:14px;letter-spacing:.06em}
[data-letras] .l{display:inline-block;opacity:0;transform:translateY(.6em) rotateX(-80deg);transform-origin:50% 100%;transition:opacity .7s,transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--n) * 28ms)}
[data-letras] .p{display:inline-block;white-space:nowrap}
[data-letras].visto .l{opacity:1;transform:none}
.revela{opacity:0;transform:translateY(40px);transition:opacity .9s,transform 1s cubic-bezier(.2,.8,.2,1)}
.revela.visto{opacity:1;transform:none}

/* ---------- HOME: túnel 3D ---------- */
.home{height:260vh}
.home-palco{position:sticky;top:0;height:100vh;overflow:hidden;perspective:900px;background:radial-gradient(ellipse at 50% 60%,#2a1a0e 0%,#090807 70%)}
.tunel{position:absolute;inset:0;transform-style:preserve-3d}
.foto3d{position:absolute;left:50%;top:50%;width:clamp(150px,18vw,280px);aspect-ratio:3/4;margin:calc(clamp(150px,18vw,280px) * -0.6666) 0 0 calc(clamp(150px,18vw,280px) * -0.5);
  border:6px solid #f4efe8;border-bottom-width:26px;border-radius:4px;background:#f4efe8;box-shadow:0 30px 60px -10px rgba(0,0,0,.8);will-change:transform,opacity}
.foto3d img{width:100%;height:100%;object-fit:cover}
.home-veu{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,rgba(9,8,7,.15) 0%,rgba(9,8,7,.75) 75%)}
.home-texto{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 16px;z-index:5;will-change:transform,opacity}
.home-pre{font-family:var(--menu);font-weight:700;letter-spacing:.35em;font-size:clamp(10px,1.2vw,13px);text-transform:uppercase;color:var(--ouro);margin-bottom:22px}
.titulo-3d{font-family:Montserrat;font-weight:900;font-size:clamp(34px,7.4vw,118px);line-height:.95;letter-spacing:-.02em;max-width:13ch;color:#fff;
  text-shadow:0 1px 0 #d9c3a3,0 2px 0 #c8ab83,0 3px 0 #b8956b,0 4px 0 #a37f56,0 5px 0 #8c6a45,0 6px 0 #765838,0 14px 24px rgba(0,0,0,.65),0 0 60px rgba(255,140,60,.25);perspective:600px}
.home-frase{text-shadow:0 2px 12px #000,0 0 30px rgba(0,0,0,.8);margin-top:26px;max-width:560px;font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,24px);color:var(--suave)}
.home-acoes{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:34px}
.home-hud{position:absolute;inset:clamp(70px,10vh,96px) clamp(14px,3vw,40px) clamp(14px,3vh,30px);pointer-events:none;z-index:4;font-family:var(--menu);font-weight:700;font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.7)}
.hud-l{position:absolute;left:0;top:0}
.hud-l::first-letter{color:#ff3b30}
.hud-r{position:absolute;right:0;top:0}
.hud-b{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;gap:16px;align-items:end}
.hud-b b{color:var(--ouro);font-size:13px}
.hud-foco{position:absolute;width:90px;height:70px;left:50%;top:50%;margin:-35px 0 0 -45px;transition:transform .5s cubic-bezier(.2,.8,.2,1),width .3s,height .3s}
.hud-foco i{position:absolute;width:14px;height:14px;border:2px solid rgba(125,255,154,.85)}
.hud-foco i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.hud-foco i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.hud-foco i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.hud-foco i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.rolar{position:absolute;left:50%;bottom:58px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--suave)}
.rolar span{width:22px;height:36px;border:1.5px solid rgba(255,255,255,.5);border-radius:12px;position:relative}
.rolar span::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:rola 1.6s infinite}
@keyframes rola{0%{transform:translateY(0);opacity:1}100%{transform:translateY(12px);opacity:0}}

/* ---------- faixa ---------- */
.faixa{overflow:hidden;padding:26px 0;border-block:1px solid var(--borda);background:#0d0b09;transform:rotate(-2deg) scale(1.05);margin:-10px 0 40px;position:relative;z-index:3}
.faixa-trilho{display:flex;white-space:nowrap;will-change:transform}
.faixa-trilho span{font-family:Montserrat;font-weight:900;font-size:clamp(36px,6vw,80px);letter-spacing:.02em;color:transparent;-webkit-text-stroke:1.2px rgba(244,239,232,.55);padding-right:20px}

/* ---------- TRABALHOS: baralho ---------- */
.trabalhos{height:calc(var(--cartas,12) * 55vh + 100vh)}
.baralho-palco{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding-top:70px}
.baralho-palco .sec-cab{text-align:center;position:relative;z-index:60;max-width:100%}
.baralho{position:relative;width:min(78vw,360px);aspect-ratio:3/4;margin-top:24px;perspective:1400px;max-height:56vh}
.carta{position:absolute;inset:0;border-radius:6px;background:#f4efe8;padding:10px 10px 0;box-shadow:0 30px 60px -12px rgba(0,0,0,.85);transform-style:preserve-3d;will-change:transform,opacity;display:flex;flex-direction:column;color:#1b1612}
.carta .foto{flex:1;overflow:hidden;border-radius:2px;position:relative}
.carta .foto img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.carta .foto::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 48%,transparent 60%);transform:translateX(var(--brilho,-120%));transition:transform .2s}
.carta .leg{padding:10px 4px 12px;display:flex;justify-content:space-between;align-items:end;gap:8px}
.carta .leg b{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(17px,2.2vw,22px);line-height:1.1}
.carta .leg small{display:block;font-size:9px;font-weight:700;letter-spacing:.2em;color:#a2672c;margin-bottom:3px}
.carta .leg em{font-style:normal;font-size:10px;color:#7b7066;text-align:right;max-width:46%}
.contador{margin-top:22px;font-family:var(--menu);font-weight:800;letter-spacing:.3em;font-size:13px;color:var(--suave);z-index:60}
.contador b{color:var(--ouro);font-size:22px}
.mais-trab{padding:30px 16px 110px}

/* ---------- avatar 3D (mesmo da página de links) ---------- */
.avatar-palco{width:220px;height:220px;perspective:700px;position:relative}
.avatar{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.avatar .sombra{position:absolute;left:30px;top:200px;width:160px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);filter:blur(10px);transform:translateZ(-30px)}
.avatar .aro{position:absolute;left:23px;top:53px;width:174px;height:174px;border-radius:50%;background:conic-gradient(from var(--giro,0deg),#ffd28a,#ff7a2f,#7a2a12,#ffcf7a,#ff9a3c,#ffd28a);animation:giro 6s linear infinite;transform:translateZ(-2px);box-shadow:0 0 30px rgba(255,140,60,.45)}
@property --giro{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes giro{to{--giro:360deg}}
.avatar .circulo{position:absolute;left:27px;top:57px;width:166px;height:166px;border-radius:50%;overflow:hidden;background:#1a0f08}
.avatar .circulo img{position:absolute;left:-27px;top:-57px;width:220px;height:220px;max-width:none;filter:blur(5px) brightness(.85) saturate(1.2);transform:scale(1.04)}
.avatar .circulo::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 3px rgba(0,0,0,.6),inset 0 -20px 40px rgba(0,0,0,.45)}
.avatar .recorte{position:absolute;left:0;top:0;width:220px;height:220px;max-width:none;transform:translateZ(38px) scale(.95);filter:drop-shadow(0 14px 14px rgba(0,0,0,.55));pointer-events:none;
  -webkit-mask:radial-gradient(circle 83px at 110px 140px,#000 82px,transparent 83.5px) 0 0/220px 220px no-repeat,linear-gradient(#000,#000) 52px 0/120px 140px no-repeat,linear-gradient(#000,#000) 112px 170px/108px 50px no-repeat;
  mask:radial-gradient(circle 83px at 110px 140px,#000 82px,transparent 83.5px) 0 0/220px 220px no-repeat,linear-gradient(#000,#000) 52px 0/120px 140px no-repeat,linear-gradient(#000,#000) 112px 170px/108px 50px no-repeat}
.avatar .brilho{position:absolute;left:27px;top:57px;width:166px;height:166px;border-radius:50%;pointer-events:none;background:radial-gradient(circle at var(--bx,30%) var(--by,25%),rgba(255,255,255,.35),transparent 45%);mix-blend-mode:soft-light;transform:translateZ(1px)}
.avatar-palco.grande{transform:scale(1.65);transform-origin:50% 50%;margin:90px auto}
@media (max-width:600px){.avatar-palco.grande{transform:scale(1.25);margin:50px auto}}

/* ---------- SOBRE ---------- */
.sobre{padding:60px clamp(16px,8vw,160px) 120px;background:linear-gradient(180deg,var(--fundo),var(--fundo2))}
.sobre-grade{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,90px);align-items:center;max-width:1200px;margin:0 auto}
.sobre-foto{display:flex;flex-direction:column;align-items:center}
.desde{display:flex;align-items:baseline;gap:10px;margin-top:20px;font-family:var(--menu)}
.desde small{font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--suave)}
.desde b{font-size:clamp(48px,6vw,78px);font-weight:800;background:linear-gradient(120deg,#ffd28a,#ff7a2f);-webkit-background-clip:text;background-clip:text;color:transparent}
.sobre-txt p{margin-top:18px;color:var(--suave);line-height:1.8;font-size:16px}
.sobre-txt .sec-titulo{margin-bottom:8px}
.mini{margin-top:34px;font-family:var(--menu);font-weight:800;letter-spacing:.3em;font-size:12px;text-transform:uppercase;color:var(--ouro)}
.areas{display:grid;gap:18px;margin-top:16px}
.areas h4{font-size:13px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px}
.areas p{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.areas span{padding:8px 14px;border:1px solid var(--borda);border-radius:30px;font-size:12px;font-weight:600;letter-spacing:.06em;background:var(--vidro);transition:background .3s,color .3s,transform .3s}
.areas span:hover{background:var(--ouro);color:#1a0d04;transform:translateY(-3px)}
.premios{max-width:1150px;margin:130px auto 0;text-align:center}
.premios-intro{max-width:760px;margin:22px auto 0;color:var(--suave);line-height:1.8}
.premios-grade{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:50px 0 40px;perspective:1000px}
.premio{position:relative;padding:36px 26px;border-radius:18px;text-align:left;overflow:hidden;background:linear-gradient(145deg,#1d1712,#100d0a);border:1px solid rgba(242,179,94,.25);transform-style:preserve-3d;transition:transform .2s}
.premio svg{width:42px;height:42px;color:var(--ouro);margin-bottom:18px}
.premio h3{font-family:var(--serif);font-style:italic;font-size:26px;line-height:1.1;margin-bottom:12px}
.premio p{color:var(--suave);font-size:14px;line-height:1.7}
.holo::before{content:"";position:absolute;inset:0;opacity:.0;transition:opacity .3s;mix-blend-mode:color-dodge;
  background:linear-gradient(115deg,transparent 20%,rgba(255,120,200,.35) 36%,rgba(120,220,255,.35) 46%,rgba(255,230,120,.35) 56%,transparent 72%);background-size:250% 250%;background-position:var(--hx,50%) var(--hy,50%)}
.holo:hover::before{opacity:1}

/* ---------- DEPOIMENTOS ---------- */
.depo{padding:110px 0;overflow:hidden;background:var(--fundo2)}
.depo .sec-titulo{margin-bottom:50px;padding:0 16px}
.depo-trilho{display:flex;gap:20px;width:max-content;animation:desliza 90s linear infinite;margin-bottom:20px}
.depo-trilho.reverso{animation-direction:reverse;animation-duration:110s}
.depo-trilho:hover{animation-play-state:paused}
@keyframes desliza{to{transform:translateX(-50%)}}
.depo-card{width:min(78vw,380px);padding:26px;border-radius:16px;background:var(--vidro);border:1px solid var(--borda);flex-shrink:0;transition:transform .35s,border-color .35s}
.depo-card:hover{transform:translateY(-6px) rotate(-1deg);border-color:rgba(242,179,94,.5)}
.depo-card svg{width:28px;height:28px;color:var(--ouro);margin-bottom:12px}
.depo-card p{font-size:14px;line-height:1.7;color:var(--suave);display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.depo-card b{display:block;margin-top:16px;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--texto)}
.estrelas{color:var(--ouro);letter-spacing:3px;font-size:13px;margin-top:4px}

/* ---------- VÍDEOS: filme ---------- */
.videos{height:240vh}
.filme-palco{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#1d140c,#090807 70%)}
.filme{margin:40px 0 30px;background:#050404;padding:26px 0;transform:rotate(-3deg) scale(1.08);position:relative;box-shadow:0 30px 60px rgba(0,0,0,.6)}
.filme::before,.filme::after{content:"";position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,transparent 0 14px,#d9cdbd 14px 30px,transparent 30px 44px);opacity:.85;border-radius:2px}
.filme::before{top:7px}.filme::after{bottom:7px}
.filme-trilho{display:flex;gap:14px;will-change:transform;padding-left:14px}
.quadro{flex-shrink:0;width:clamp(200px,24vw,340px);aspect-ratio:4/3;overflow:hidden;border-radius:3px;position:relative;filter:sepia(.25) contrast(1.05)}
.quadro img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.quadro:hover img{transform:scale(1.08)}
.quadro span{position:absolute;left:10px;bottom:8px;font-size:10px;font-weight:800;letter-spacing:.2em;color:#ffcf7a;text-shadow:0 1px 4px #000}
.videos-acoes{display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;padding:0 16px}
.play{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(120deg,#ffd28a,#ff7a2f);color:#1a0d04;position:relative;box-shadow:0 20px 50px -10px rgba(255,122,47,.7)}
.play svg{width:36px;height:36px;margin-left:5px}
.play::before,.play::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,190,110,.6);animation:onda 2.4s infinite}
.play::after{animation-delay:1.2s}
@keyframes onda{0%{transform:scale(1);opacity:1}100%{transform:scale(1.9);opacity:0}}

/* ---------- MODELOS: cartas que viram ---------- */
.modelos{padding:120px clamp(16px,6vw,120px)}
.produtor{margin-top:20px;font-size:15px}
.produtor a{color:var(--ouro);border-bottom:1px solid}
.modelos-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;max-width:1250px;margin:50px auto 0}
.vira{perspective:1000px;aspect-ratio:3/4;opacity:0;transform:translateY(60px) rotate(var(--r,0deg));transition:opacity .8s,transform 1s cubic-bezier(.2,.8,.2,1)}
.vira.visto{opacity:1;transform:rotate(var(--r,0deg))}
.vira-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.3,1.3,.5,1)}
.vira:hover .vira-in,.vira.virada .vira-in{transform:rotateY(180deg)}
.vira-f,.vira-v{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;overflow:hidden;padding:22px;display:flex;flex-direction:column}
.vira-f{background:linear-gradient(160deg,#241b13,#0f0c09);border:1px solid rgba(242,179,94,.3);justify-content:space-between}
.vira-f .mono{font-family:var(--serif);font-style:italic;font-weight:600;font-size:110px;line-height:.8;background:linear-gradient(140deg,#ffe2b0,#ff8a3d 60%,#7a2a12);-webkit-background-clip:text;background-clip:text;color:transparent}
.vira-f .naipe{position:absolute;right:20px;top:20px;font-size:11px;letter-spacing:.3em;font-weight:800;color:var(--ouro);writing-mode:vertical-rl}
.vira-f h3{font-family:var(--serif);font-style:italic;font-size:28px;line-height:1}
.vira-f p{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--suave);margin-top:8px}
.vira-v{background:#f4efe8;color:#1b1612;transform:rotateY(180deg);justify-content:space-between}
.vira-v ul{list-style:none;font-size:13px;line-height:1.6}
.vira-v li{padding-left:14px;position:relative;margin-bottom:6px}
.vira-v li::before{content:"✦";position:absolute;left:0;color:#c2772f;font-size:9px;top:3px}
.vira-v h3{font-family:var(--serif);font-style:italic;font-size:24px;margin-bottom:12px}
.vira-v a{align-self:flex-start;padding:10px 18px;border-radius:30px;background:#1b1612;color:#fff;font-size:11px;font-weight:800;letter-spacing:.2em}

/* ---------- PRODUTOS ---------- */
.produtos{padding:130px clamp(16px,6vw,120px);overflow:hidden}
.produtos-fundo{position:absolute;inset:-20% 0;background:url(../img/trabalhos/joalheria-laffetto.jpg) center/cover;opacity:.16;filter:grayscale(.4) blur(2px);will-change:transform}
.produtos::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--fundo),transparent 25%,transparent 75%,var(--fundo));z-index:1}
.produtos>*{position:relative;z-index:2}
.produtos-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1150px;margin:50px auto 0}
.cat{position:relative;padding:28px 20px;border-radius:16px;background:rgba(14,11,9,.7);border:1px solid var(--borda);overflow:hidden;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;backdrop-filter:blur(6px);transition:transform .35s,border-color .35s;opacity:0;transform:scale(.85)}
.cat.visto{opacity:1;transform:none;transition:opacity .6s calc(var(--i)*50ms),transform .7s calc(var(--i)*50ms) cubic-bezier(.2,.8,.2,1),border-color .35s}
.cat::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,170,90,.25),transparent 60%);opacity:0;transition:opacity .3s}
.cat:hover{border-color:rgba(242,179,94,.55);transform:translateY(-6px)}
.cat:hover::before{opacity:1}
.cat b{font-family:var(--serif);font-style:italic;font-size:24px;line-height:1.1;position:relative}
.cat span{font-size:11px;letter-spacing:.2em;font-weight:800;color:var(--ouro);display:flex;align-items:center;gap:6px;position:relative}
.cat span svg{width:14px;height:14px;transition:transform .3s}
.cat:hover span svg{transform:translateX(5px)}
.cat .n{position:absolute;right:16px;top:12px;font-family:var(--menu);font-weight:800;font-size:12px;color:rgba(255,255,255,.25)}
.duvida{max-width:700px;margin:70px auto 0;text-align:center;padding:40px 24px;border-radius:22px;background:rgba(14,11,9,.75);border:1px solid rgba(242,179,94,.3);backdrop-filter:blur(8px)}
.duvida h3{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3.6vw,38px)}
.duvida p{color:var(--suave);margin-top:8px}

/* ---------- CURSOS ---------- */
.cursos{padding:120px clamp(16px,6vw,120px);background:linear-gradient(180deg,var(--fundo),#140e09 50%,var(--fundo))}
.cursos-intro{max-width:640px;margin:16px auto 0;color:var(--suave);line-height:1.7}
.cursos-grade{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1200px;margin:56px auto 0;perspective:1200px}
.curso{position:relative;padding:30px 26px;border-radius:20px;background:#13100d;border:1px solid var(--borda);display:flex;flex-direction:column;gap:14px;transform-style:preserve-3d}
.curso h3{font-size:18px;line-height:1.35}
.curso h3 small{display:inline-block;margin-left:6px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:3px 8px;border-radius:10px;background:rgba(242,179,94,.15);color:var(--ouro);vertical-align:middle}
.curso p{color:var(--suave);font-size:14px;line-height:1.7}
.curso ul{list-style:none;display:grid;gap:8px;font-size:13.5px;line-height:1.5;margin-bottom:auto}
.curso li{padding-left:22px;position:relative}
.curso li::before{content:"✓";position:absolute;left:0;color:#7dff9a;font-weight:800}
.curso.destaque li::before{content:""}
.curso.destaque li{padding-left:0}
.curso .btn{margin-top:10px;align-self:stretch}
.curso .vagas{color:var(--ouro);font-weight:600;font-size:13px}
.curso.destaque{grid-row:span 2;background:linear-gradient(#13100d,#13100d) padding-box,conic-gradient(from var(--giro,0deg),#ffd28a,#ff7a2f,#7a2a12,#ffcf7a,#ff9a3c,#ffd28a) border-box;border:2px solid transparent;animation:giro 5s linear infinite;justify-content:center}
.curso.destaque h3{font-family:var(--serif);font-style:italic;font-size:clamp(30px,3vw,42px);line-height:1.05}
.selo{align-self:flex-start;padding:7px 14px;border-radius:20px;background:linear-gradient(120deg,#ffd28a,#ff7a2f);color:#1a0d04;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;animation:balanca 2.4s ease-in-out infinite}
@keyframes balanca{50%{transform:rotate(-3deg) scale(1.05)}}

/* ---------- BLOG ---------- */
.blog{padding:120px clamp(16px,6vw,120px)}
.blog-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;max-width:1250px;margin:50px auto 0}
.post{position:relative;padding:28px 24px;border-radius:18px;border:1px solid var(--borda);background:var(--vidro);display:flex;flex-direction:column;gap:14px;min-height:280px;overflow:hidden;transition:transform .4s,border-color .4s}
.post:hover{transform:translateY(-8px);border-color:rgba(242,179,94,.5)}
.post .num{font-family:var(--serif);font-style:italic;font-size:70px;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(242,179,94,.6)}
.post h3{font-family:var(--serif);font-style:italic;font-size:25px;line-height:1.15}
.post p{color:var(--suave);font-size:13.5px;line-height:1.7;flex:1}
.post span{font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--ouro);display:flex;gap:6px;align-items:center}
.post span svg{width:14px;height:14px;transition:transform .3s}
.post:hover span svg{transform:translateX(6px)}

/* ---------- CONTATO ---------- */
.contato{padding:140px clamp(16px,6vw,120px) 120px;background:radial-gradient(ellipse at 50% 30%,#24170d,var(--fundo) 65%)}
.contato-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1200px;margin:60px auto 50px;perspective:1000px}
.info{padding:28px 22px;border-radius:18px;background:var(--vidro);border:1px solid var(--borda);display:flex;flex-direction:column;gap:8px;transform-style:preserve-3d}
.info svg{width:30px;height:30px;color:var(--ouro);margin-bottom:8px}
.info small{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--suave)}
.info b{font-size:15px;line-height:1.5;word-break:break-word}

/* ---------- rodapé ---------- */
.rodape{padding:60px 16px 90px;text-align:center;border-top:1px solid var(--borda);display:flex;flex-direction:column;align-items:center;gap:22px}
.rodape img{height:56px;width:auto}
.redes{display:flex;gap:12px}
.redes a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--borda);transition:background .3s,color .3s,transform .3s}
.redes a:hover{background:var(--ouro);color:#1a0d04;transform:translateY(-4px) rotate(-8deg)}
.rodape p{font-size:11px;letter-spacing:.3em;color:var(--suave)}
.voltar-links{font-size:12px;color:var(--ouro);letter-spacing:.1em}
.whats-flutua{position:fixed;right:20px;bottom:20px;z-index:700;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 12px 30px -6px rgba(37,211,102,.6);animation:pulsa 2.2s infinite}
.whats-flutua svg{width:28px;height:28px}
@keyframes pulsa{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

/* flash do obturador */
.obturador-flash{position:fixed;inset:0;z-index:999;pointer-events:none;background:#fff;opacity:0}
.obturador-flash.on{animation:flash .32s ease-out}
@keyframes flash{0%{opacity:.18}100%{opacity:0}}

/* ---------- responsivo ---------- */
@media (max-width:1000px){
  .premios-grade,.cursos-grade{grid-template-columns:1fr 1fr}
  .produtos-grade,.contato-grade{grid-template-columns:repeat(2,1fr)}
  .curso.destaque{grid-row:auto;grid-column:1/-1}
}
@media (max-width:760px){
  .sobre-grade{grid-template-columns:1fr}
  .premios-grade,.cursos-grade,.contato-grade{grid-template-columns:1fr}
  .home-hud .hud-b{display:none}
  .faixa{margin-bottom:20px}
  .vira-f .mono{font-size:90px}
}
@media (max-width:420px){
  .produtos-grade{grid-template-columns:1fr 1fr;gap:10px}
  .cat{padding:20px 14px;min-height:120px}
  .cat b{font-size:19px}
  .btn{padding:14px 20px;font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  .grao,.depo-trilho,.avatar .aro,.curso.destaque,.selo{animation:none}
}

/* ---------- ESPIRAL DE FOTOS (efeito do vídeo de referência) ---------- */
.espiral{height:320vh;background:#f4efe8;color:#14110e}
.espiral-palco{position:sticky;top:0;height:100vh;overflow:hidden}
.espiral-fotos{position:absolute;inset:0}
.espiral-fotos a{position:absolute;left:0;top:0;will-change:transform,opacity;box-shadow:0 6px 18px -6px rgba(0,0,0,.35);transform-origin:50% 50%}
.espiral-fotos img{width:100%;height:100%;object-fit:cover}
.espiral-txt{position:absolute;left:0;right:0;bottom:6vh;z-index:1000;pointer-events:none;font-family:var(--serif);font-size:clamp(20px,2.6vw,38px);line-height:1.2;text-align:center;padding:0 16px;mix-blend-mode:multiply}
.espiral-txt em{font-style:italic}
.espiral + .sobre{border-top:0}

/* ---------- avaliações Google ---------- */
.google{max-width:1200px;margin:0 auto 70px;padding:0 16px}
.google-cab{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:24px 28px;border-radius:20px 20px 0 0;background:#f4efe8;color:#3e3e3e}
.google-logo{display:flex;align-items:baseline;font-family:'Product Sans',Montserrat,sans-serif;font-size:30px;font-weight:600;letter-spacing:-.5px}
.google-logo span{font-size:15px;font-weight:500;color:#3e3e3e;margin-left:8px;letter-spacing:0}
.google-media{display:flex;align-items:center;gap:8px;margin-top:4px}
.google-media strong{font-size:16px}
.google-est{color:#fbbc05;font-size:17px;letter-spacing:2px}
.google-media small{font-size:12px;color:#777}
.google-btn{background:#4ea7f2;color:#fff;border-radius:8px;letter-spacing:.04em;font-weight:600;font-size:14px;padding:12px 22px}
.google-btn:hover{background:#2f8fe3}
.google-lista{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px;perspective:1000px}
.gav{position:relative;background:#f4efe8;color:#3e3e3e;padding:26px 18px 22px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;transform-style:preserve-3d;opacity:0;transform:translateY(50px) rotateX(-25deg);transition:opacity .7s calc(var(--i)*90ms),transform .9s calc(var(--i)*90ms) cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.google.visto .gav{opacity:1;transform:none}
.gav:last-child{border-radius:0 0 20px 0}.gav:first-child{border-radius:0 0 0 20px}
.gav:hover{box-shadow:0 24px 40px -18px rgba(0,0,0,.7)}
.gav img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.gav b{font-weight:600;font-size:15px}
.gav .est{color:#fbbc05;letter-spacing:2px;font-size:15px}
.gav small{font-size:11px;color:#878787}
.gav p{font-size:13px;line-height:1.65;color:rgba(62,62,62,.78);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.gav.aberto p{-webkit-line-clamp:unset}
.gav button{font-size:11px;color:#878787;text-decoration:underline}
.gav .g{position:absolute;right:12px;top:10px;font-weight:700;font-size:14px;color:#4285f4}
@media (max-width:1000px){.google-lista{grid-template-columns:repeat(2,1fr)}.gav:first-child,.gav:last-child{border-radius:0}.gav:last-child{grid-column:1/-1;border-radius:0 0 20px 20px}}
@media (max-width:560px){.google-lista{grid-template-columns:1fr}.google-cab{flex-direction:column;align-items:flex-start}}

/* ---------- antes e depois ---------- */
.antesdepois{padding:40px 16px 130px}
.comparador{position:relative;max-width:1100px;aspect-ratio:5/4;max-height:80vh;margin:44px auto 0;border-radius:18px;overflow:hidden;user-select:none;touch-action:pan-y;cursor:ew-resize;box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(242,179,94,.3)}
.comparador img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cmp-antes{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.cmp-linha{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 18px rgba(255,255,255,.7)}
.cmp-alca{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px;border-radius:50%;display:grid;place-items:center;color:#1a0d04;
  background:radial-gradient(circle,#fff 0 38%,transparent 39%),conic-gradient(from var(--giro,0deg),#ffd28a,#ff7a2f,#7a2a12,#ffcf7a,#ffd28a);animation:giro 5s linear infinite;box-shadow:0 8px 24px rgba(0,0,0,.5);transition:transform .25s}
.cmp-alca svg{width:24px;height:24px}
.comparador:active .cmp-alca{transform:scale(1.12)}
.cmp-rot{position:absolute;top:18px;padding:7px 16px;border-radius:6px;font-size:14px;font-weight:600;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);transition:opacity .3s}
.cmp-rot.esq{left:18px}.cmp-rot.dir{right:18px}
@media (max-width:600px){.comparador{aspect-ratio:4/5}.cmp-alca{width:50px;height:50px;margin:-25px}}

/* ---------- foto do Caíque como fundo do site inteiro (transparente, move com a rolagem) ---------- */
.fundo-caique{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fundo-caique div{position:absolute;right:-4vw;top:50%;width:min(110vh,100vw);aspect-ratio:522/525;margin-top:calc(min(110vh,100vw) * -0.5);
  background:url(../img/caique-fundo.png) center/cover no-repeat;opacity:.17;filter:grayscale(.25) contrast(1.1);will-change:transform;
  -webkit-mask:radial-gradient(ellipse 58% 60% at 52% 46%,#000 42%,transparent 75%);mask:radial-gradient(ellipse 58% 60% at 52% 46%,#000 42%,transparent 75%)}
main,.rodape,.faixa{position:relative;z-index:1}
/* fundos das seções ficam translúcidos para a foto aparecer por trás */
.home-palco{background:radial-gradient(ellipse at 50% 60%,rgba(42,26,14,.55) 0%,rgba(9,8,7,.5) 70%)}
.faixa{background:rgba(13,11,9,.82)}
.sobre{background:linear-gradient(180deg,rgba(9,8,7,.35),rgba(18,15,12,.55))}
.depo{background:rgba(18,15,12,.5)}
.filme-palco{background:radial-gradient(ellipse at 50% 50%,rgba(29,20,12,.55),rgba(9,8,7,.45) 70%)}
.produtos::before{background:linear-gradient(180deg,rgba(9,8,7,.6),transparent 25%,transparent 75%,rgba(9,8,7,.6))}
.cursos{background:linear-gradient(180deg,rgba(9,8,7,.3),rgba(20,14,9,.55) 50%,rgba(9,8,7,.3))}
.contato{background:radial-gradient(ellipse at 50% 30%,rgba(36,23,13,.6),rgba(9,8,7,.35) 65%)}
.espiral{background:rgba(244,239,232,.88)}
@media (max-width:760px){.fundo-caique div{right:-30vw;width:150vw;margin-top:-75vw;opacity:.15}}

/* ---------- botões das áreas + galeria ---------- */
.areas .area{padding:8px 14px;border:1px solid var(--borda);border-radius:30px;font-size:12px;font-weight:600;letter-spacing:.06em;background:var(--vidro);transition:background .3s,color .3s,transform .3s,border-color .3s;display:inline-block}
.areas .area:hover{background:var(--ouro);color:#1a0d04;transform:translateY(-3px);border-color:var(--ouro)}
.areas .area[data-area]::after{content:" ↗";opacity:.6}
.galeria{position:fixed;inset:0;z-index:960;background:rgba(7,6,5,.94);backdrop-filter:blur(10px);overflow-y:auto;padding:24px clamp(16px,5vw,80px) 60px;opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
.galeria.aberta{opacity:1;visibility:visible;transition:opacity .4s}
.gal-topo{position:sticky;top:-24px;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 0 18px;background:linear-gradient(rgba(7,6,5,.98) 70%,transparent)}
.gal-topo small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--ouro);font-weight:700}
.gal-topo h2{font-family:var(--serif);font-style:italic;font-size:clamp(36px,6vw,70px);line-height:1}
.gal-topo p{color:var(--suave);font-size:13px;margin-top:6px}
.gal-fechar{flex-shrink:0;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);transition:transform .3s,background .3s}
.gal-fechar:hover{transform:rotate(90deg);background:#fff;color:#111}
.gal-grade{columns:4 220px;column-gap:14px;perspective:1200px}
.gal-album{break-inside:avoid;margin:4px 0 12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-family:var(--serif);font-style:italic;font-size:20px;column-span:none}
.gal-album a{font-family:Montserrat;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.2em;color:var(--ouro);white-space:nowrap}
.gal-foto{display:block;width:100%;break-inside:avoid;margin-bottom:14px;border-radius:6px;overflow:hidden;background:#1a1512;border:5px solid #f4efe8;border-bottom-width:5px;position:relative;opacity:0;transform:translateY(60px) rotateX(-30deg) rotate(var(--r,0deg));transition:opacity .6s,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 35ms)}
.galeria.aberta .gal-foto{opacity:1;transform:rotate(var(--r,0deg))}
.gal-foto img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .6s}
.gal-foto:hover img{transform:scale(1.07)}
.gal-foto:hover{transform:rotate(0) translateY(-4px) !important}
.foto-grande{position:fixed;inset:0;z-index:970;display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;background:rgba(0,0,0,.92);opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.foto-grande.aberta{opacity:1;visibility:visible;transition:opacity .3s}
.foto-grande figure{max-width:min(1100px,100%);display:flex;flex-direction:column;align-items:center;gap:12px}
.foto-grande img{max-width:100%;max-height:78vh;border:6px solid #f4efe8;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.8);transform:scale(.92);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.foto-grande.aberta img{transform:none}
.foto-grande figcaption{display:flex;gap:18px;align-items:center;flex-wrap:wrap;justify-content:center}
.foto-grande figcaption b{font-family:var(--serif);font-style:italic;font-size:22px}
.foto-grande figcaption a{display:flex;gap:6px;align-items:center;font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--ouro)}
.foto-grande figcaption svg{width:14px;height:14px}
.fg-nav{width:52px;height:52px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
.fg-nav:hover{background:var(--ouro);color:#1a0d04}
.fg-ant svg{transform:rotate(180deg)}
.fg-fechar{position:absolute;top:16px;right:16px}
@media (max-width:700px){.fg-nav{position:absolute;bottom:18px}.fg-ant{left:calc(50% - 64px)}.fg-prox{right:calc(50% - 64px)}.foto-grande img{max-height:66vh}.gal-grade{columns:2 140px;column-gap:10px}}
.gal-grade{columns:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:30px 22px}
.gal-bloco .fotos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gal-bloco .gal-foto{margin:0}
@media (max-width:700px){.gal-grade{grid-template-columns:1fr}}

/* ---------- cartas dos modelos com a capa do site ---------- */
.vira-f.com-foto{padding:0;border:6px solid #f4efe8;background:#1a1512}
.vira-f.com-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s}
.vira:hover .vira-f.com-foto img{transform:scale(1.06)}
.vira-f.com-foto .naipe{z-index:2;text-shadow:0 1px 6px #000}
.vira-nome{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:40px 18px 16px;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.vira-nome h3{font-family:var(--serif);font-style:italic;font-size:26px;line-height:1}
.vira-nome p{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#e9e4da;margin-top:6px}
.vira-acoes{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.vira-acoes button{padding:10px 18px;border-radius:30px;background:linear-gradient(120deg,#ffd28a,#ff8a3d);color:#1a0d04;font-size:11px;font-weight:800;letter-spacing:.15em}
.vira-v .vira-acoes a{background:none;color:#7b5a2e;padding:4px 2px;font-size:11px;letter-spacing:.1em}

/* ---------- portfólio do modelo em espiral ---------- */
.esp-modelo{position:fixed;inset:0;z-index:965;background:#f4efe8;color:#14110e;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s;touch-action:none;cursor:grab}
.esp-modelo.aberto{opacity:1;visibility:visible;transition:opacity .5s}
.esp-m-fotos{position:absolute;inset:0}
.esp-m-fotos button{position:absolute;left:0;top:0;padding:0;will-change:transform,opacity;box-shadow:0 8px 20px -6px rgba(0,0,0,.4);border:3px solid #fff;overflow:hidden;cursor:pointer}
.esp-m-fotos img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.esp-m-cab{position:absolute;left:clamp(16px,4vw,50px);top:clamp(16px,4vh,40px);z-index:900;pointer-events:none}
.esp-m-cab small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#a2672c;font-weight:800}
.esp-m-cab h2{font-family:var(--serif);font-style:italic;font-size:clamp(34px,5.5vw,68px);line-height:1}
.esp-m-cab p{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#6b6157;margin-top:6px}
.esp-m-rodape{position:absolute;left:0;right:0;bottom:18px;z-index:900;display:flex;justify-content:center;gap:22px;flex-wrap:wrap;font-size:12px;color:#6b6157;padding:0 16px;text-align:center}
.esp-m-rodape a{font-weight:800;letter-spacing:.15em;color:#a2672c}
.esp-m-fechar{position:absolute;top:18px;right:18px;z-index:900;border-color:rgba(0,0,0,.25);background:#fff;color:#14110e}
.esp-m-fechar:hover{background:#14110e;color:#fff}
/* carta virada: a frente (escondida) não pode receber o clique; o verso fica por cima */
.vira:hover .vira-f,.vira.virada .vira-f{pointer-events:none}
.vira:hover .vira-v,.vira.virada .vira-v{z-index:5}
@media (hover:none){.vira:hover .vira-f{pointer-events:auto}.vira.virada .vira-f{pointer-events:none}}
.produtos-grade .vira-v .vira-txt{font-size:13px;line-height:1.6;color:#5d544b}
.produtos-grade{gap:20px}
.produtos-grade{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));max-width:1250px}
@media (max-width:420px){.produtos-grade{grid-template-columns:1fr 1fr;gap:12px}.produtos-grade .vira-nome h3{font-size:19px}.produtos-grade .vira-acoes button{padding:8px 10px;font-size:9px}}

/* foto do Caíque dentro do card do Combo */
.curso.destaque{overflow:hidden}
.curso.destaque>*:not(.combo-foto){position:relative;z-index:1}
.combo-foto{position:absolute;right:0;bottom:0;height:100%;width:auto;max-width:62%;object-fit:cover;object-position:30% 30%;z-index:0;pointer-events:none;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 38%);mask:linear-gradient(90deg,transparent 0,#000 38%);opacity:.95;filter:contrast(1.05)}
.curso.destaque p,.curso.destaque ul,.curso.destaque h3,.curso.destaque .selo{max-width:62%}
@media (min-width:1001px){.combo-foto{max-width:100%;width:100%;height:58%;top:auto;object-position:50% 25%;-webkit-mask:linear-gradient(0deg,#000 55%,transparent);mask:linear-gradient(0deg,#000 55%,transparent);opacity:.55}
  .curso.destaque p,.curso.destaque ul,.curso.destaque h3,.curso.destaque .selo{max-width:none}}
@media (max-width:760px){.combo-foto{position:relative;max-width:none;width:calc(100% + 52px);height:auto;aspect-ratio:1/1;margin:-30px -26px 4px;order:-1;-webkit-mask:linear-gradient(0deg,transparent,#000 35%);mask:linear-gradient(0deg,transparent,#000 35%);opacity:1}
  .curso.destaque p,.curso.destaque ul,.curso.destaque h3,.curso.destaque .selo{max-width:none}}
/* verso das cartas de produto: a mesma foto da capa, em transparência */
.vira-v.com-verso{overflow:hidden}
.vira-v .verso-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:grayscale(.15) contrast(1.05);pointer-events:none}
.vira-v.com-verso>div{position:relative;z-index:1}

/* ---------- rodapé com a foto do casal no pôr do sol ---------- */
.rodape{position:relative;overflow:hidden;min-height:min(78vh,720px);justify-content:flex-end;padding-top:120px;border-top:0;isolation:isolate}
.rodape-foto{position:absolute;inset:-14% 0;z-index:-2;background:url(../img/rodape-casal.webp) center 30%/cover no-repeat;will-change:transform}
.rodape::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,var(--fundo) 0%,rgba(9,8,7,.25) 22%,rgba(9,8,7,0) 45%,rgba(9,8,7,.55) 68%,rgba(9,8,7,.92) 100%)}
.rodape img{filter:drop-shadow(0 4px 14px rgba(0,0,0,.8))}
.rodape p,.voltar-links{text-shadow:0 2px 10px #000}
.rodape .redes a{background:rgba(9,8,7,.45);backdrop-filter:blur(6px);border-color:rgba(255,255,255,.3)}
@media (max-width:600px){.rodape{min-height:70vh}.rodape-foto{background-position:62% 30%}}
.rodape{min-height:min(58vw,820px)}
.rodape-foto{inset:-7% 0;background-position:center 40%}
@media (max-width:600px){.rodape{min-height:78vh}.rodape-foto{background-position:64% 40%}}
.rodape-foto{-webkit-mask:linear-gradient(180deg,transparent 0,#000 30%);mask:linear-gradient(180deg,transparent 0,#000 30%)}
.rodape::before{background:linear-gradient(180deg,rgba(9,8,7,0) 30%,rgba(9,8,7,0) 45%,rgba(9,8,7,.55) 68%,rgba(9,8,7,.92) 100%)}
.rodape::before{background:linear-gradient(180deg,rgba(9,8,7,.35) 0%,rgba(9,8,7,0) 30%,rgba(9,8,7,0) 45%,rgba(9,8,7,.55) 68%,rgba(9,8,7,.92) 100%)}
.contato{background:radial-gradient(ellipse at 50% 30%,rgba(36,23,13,.6),rgba(9,8,7,.35) 65%)}
/* o rodapé sobe por baixo do contato e a foto surge num degradê longo, sem emenda */
.rodape{margin-top:-160px;padding-top:260px;pointer-events:none}
.rodape>*{pointer-events:auto}
.rodape-foto,.rodape::before{pointer-events:none}
.rodape-foto{-webkit-mask:linear-gradient(180deg,transparent 0,rgba(0,0,0,.35) 18%,#000 42%);mask:linear-gradient(180deg,transparent 0,rgba(0,0,0,.35) 18%,#000 42%)}
.rodape::before{background:linear-gradient(180deg,rgba(9,8,7,0) 0%,rgba(9,8,7,0) 45%,rgba(9,8,7,.55) 70%,rgba(9,8,7,.92) 100%)}
/* a foto fica dentro do rodapé (sem sobra para cima) e o degradê acontece dentro dele */
.rodape-foto{inset:0;-webkit-mask:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 17%,#000 33%);mask:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 17%,#000 33%)}
