/* Entrada do Reino para os sites do grupo (Vistoria Legal e Vamos Arrematar).
   Três aberturas: porta (portas com leões), selo (o escudo se parte ao meio) e cortina (cortinas reais).
   Montada por /shared/js/portal.js; só aparece quando <html> tem a classe portal-ativo. */
.gportal{display:none}
.portal-ativo{overflow:hidden}
.portal-ativo .gportal,.portal-saindo .gportal{display:block;position:fixed;inset:0;z-index:2000;background:#06132b;overflow:hidden;font-family:inherit}
.portal-saindo .gportal{pointer-events:none}
.gportal--saindo{animation:gp-sai .8s ease both}
@keyframes gp-sai{to{opacity:0;visibility:hidden}}

/* cena que aparece depois que abre */
.gportal__cena{position:absolute;inset:0;background:#0b1f44 center/cover no-repeat;transform:scale(1.22);filter:brightness(.8)}
.gportal--abrindo .gportal__cena{animation:gp-cena 4.6s cubic-bezier(.2,.7,.2,1) both}
@keyframes gp-cena{0%{transform:scale(1.22);filter:brightness(.8)}40%{filter:brightness(1.05)}100%{transform:scale(1.02);filter:brightness(1)}}
.gportal__cena::after{content:"";position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(0deg,rgba(6,19,43,.8),rgba(6,19,43,0));opacity:0}
.gportal--abrindo .gportal__cena::after{animation:gp-fundo 2.6s ease 2s both}
@keyframes gp-fundo{0%{opacity:0}30%,80%{opacity:1}100%{opacity:0}}
.gportal__frase{position:absolute;z-index:1;inset:auto 0 12vh;margin:0;padding:0 16px;text-align:center;opacity:0;
  font:800 clamp(2rem,6.4vw,4.4rem)/1.08 "Playfair Display",Georgia,serif;color:transparent;
  background:linear-gradient(180deg,#fff3d1 0%,#f1d48a 45%,#c9993a 100%);-webkit-background-clip:text;background-clip:text;
  filter:drop-shadow(0 3px 2px rgba(40,20,0,.9)) drop-shadow(0 0 24px rgba(0,0,0,.55))}
.gportal__frase span{display:block;margin-bottom:10px;font:600 clamp(.8rem,1.7vw,1.05rem)/1.2 system-ui,sans-serif;letter-spacing:.4em;text-transform:uppercase;color:#fff;-webkit-text-fill-color:#fff}
.gportal--abrindo .gportal__frase{animation:gp-frase 2.6s ease 2s both}
@keyframes gp-frase{0%{opacity:0;transform:translateY(16px)}30%,80%{opacity:1;transform:none}100%{opacity:0}}

/* camada da frente (comum às três aberturas) */
.gportal__frente{position:absolute;inset:0;z-index:2}
.gportal__lado{position:absolute;top:0;bottom:0;width:50%;overflow:hidden}
.gportal__lado--esq{left:0}.gportal__lado--dir{right:0}
.gportal__topo{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;justify-content:center;padding:3vh 16px 10vh;background:linear-gradient(180deg,rgba(6,19,43,.85),rgba(6,19,43,0));pointer-events:none}
.gportal__topo{align-items:center;gap:12px}
.gportal__topo img{height:clamp(44px,7vh,64px);width:auto;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}
.gportal__topo p{margin:0;line-height:1;color:#fff}
.gportal__topo strong{display:block;font:800 clamp(1.3rem,3.4vh,2rem) "Playfair Display",Georgia,serif;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.gportal__topo span{display:block;margin-top:5px;font:600 .74rem system-ui,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#e8c57b}
.gportal__acao{position:absolute;z-index:4;left:0;right:0;bottom:7vh;display:flex;justify-content:center;padding:0 16px}
.gportal__entrar{appearance:none;border:0;cursor:pointer;font:700 1.15rem "Playfair Display",Georgia,serif;color:#1b1203;padding:.85em 2.2em;border-radius:12px;
  background:linear-gradient(180deg,#f7e2a6 0%,#e8c57b 38%,#c99a45 72%,#a8782a 100%);
  box-shadow:0 0 0 3px rgba(241,212,138,.35),0 10px 30px rgba(0,0,0,.45);animation:gp-pulsa 2.2s ease-in-out infinite}
.gportal__entrar:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes gp-pulsa{50%{box-shadow:0 0 0 7px rgba(241,212,138,.18),0 10px 30px rgba(0,0,0,.45)}}
.gportal__pular{position:absolute;z-index:5;top:14px;right:16px;background:rgba(255,255,255,.08);color:#dfe5f1;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:6px 14px;font:600 .85rem system-ui,sans-serif;cursor:pointer}
.gportal--abrindo .gportal__topo,.gportal--abrindo .gportal__acao,.gportal--abrindo .gportal__pular{transition:opacity .45s;opacity:0;pointer-events:none}
.gportal__vinheta{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(0deg,rgba(6,19,43,.75),rgba(6,19,43,0) 30%),radial-gradient(ellipse 75% 95% at 50% 50%,rgba(0,0,0,0) 45%,rgba(4,10,24,.7) 100%)}
.gportal--abrindo .gportal__vinheta{transition:opacity .4s;opacity:0}

/* 1. PORTA: as mesmas portas com leões do Rei do Apê, em tela cheia */
.gportal--porta .gportal__frente{perspective:1600px}
.gportal--porta .gportal__lado{overflow:visible;background-size:cover;box-shadow:inset 0 0 60px rgba(0,0,0,.55);backface-visibility:hidden}
.gportal--porta .gportal__lado--esq{background-image:url('../img/porta-frente-esq.webp');background-position:right 40%;transform-origin:left center}
.gportal--porta .gportal__lado--dir{background-image:url('../img/porta-frente-dir.webp');background-position:left 40%;transform-origin:right center}
@media (min-aspect-ratio:1/1){
  .gportal--porta .gportal__lado--esq{background:url('../img/porta-frente-esq.webp') right top/auto 100% no-repeat,url('../img/porta-frente-esq-faixa.webp') right 41.56vh top/auto 100% repeat-x}
  .gportal--porta .gportal__lado--dir{background:url('../img/porta-frente-dir.webp') left top/auto 100% no-repeat,url('../img/porta-frente-dir-faixa.webp') left 41.56vh top/auto 100% repeat-x}
}
.gportal--porta .gportal__lado::after{content:"";position:absolute;top:0;bottom:0;width:3px;background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(255,214,140,.45))}
.gportal--porta .gportal__lado--esq::after{right:0}.gportal--porta .gportal__lado--dir::after{left:0}
.gportal--porta.gportal--abrindo .gportal__lado--esq{animation:gp-porta-esq 1.6s cubic-bezier(.6,.05,.35,1) .15s both}
.gportal--porta.gportal--abrindo .gportal__lado--dir{animation:gp-porta-dir 1.6s cubic-bezier(.6,.05,.35,1) .15s both}
@keyframes gp-porta-esq{to{transform:rotateY(94deg);filter:brightness(.45)}}
@keyframes gp-porta-dir{to{transform:rotateY(-94deg);filter:brightness(.45)}}
.gportal--porta.gportal--abrindo .gportal__frente{animation:gp-passa 1.5s cubic-bezier(.55,0,.4,1) 1.2s both}
@keyframes gp-passa{0%{transform:scale(1);opacity:1}55%{opacity:1}100%{transform:scale(1.5);opacity:0;visibility:hidden}}

/* 2. SELO: o escudo da marca no centro; ao entrar ele carimba e se parte ao meio */
.gportal--selo .gportal__lado{background:radial-gradient(ellipse 70% 60% at 100% 50%,#1d3b74 0%,#0b1f44 55%,#06132b 100%)}
.gportal--selo .gportal__lado--dir{background:radial-gradient(ellipse 70% 60% at 0% 50%,#1d3b74 0%,#0b1f44 55%,#06132b 100%)}
.gportal--selo .gportal__lado::before{content:"";position:absolute;inset:0;opacity:.5;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cpath d='M48 30c3 6 3 9 2 13 4-1 7-1 13 2-6 3-9 3-13 2 1 4 1 7-2 13-3-6-3-9-2-13-4 1-7 1-13-2 6-3 9-3 13-2-1-4-1-7 2-13z' fill='%23c9993a' fill-opacity='.12'/%3E%3C/svg%3E")}
.gportal__selo{position:absolute;top:50%;width:min(52vmin,380px);aspect-ratio:1;transform:translateY(-55%);display:grid;place-items:center}
.gportal--selo .gportal__lado--esq .gportal__selo{right:0;transform:translate(50%,-55%)}
.gportal--selo .gportal__lado--dir .gportal__selo{left:0;transform:translate(-50%,-55%)}
.gportal__selo::before{content:"";position:absolute;inset:-6%;border-radius:50%;background:radial-gradient(circle,rgba(241,212,138,.35) 0%,rgba(241,212,138,0) 65%);animation:gp-brilho 3s ease-in-out infinite}
@keyframes gp-brilho{50%{transform:scale(1.08);opacity:.7}}
.gportal__selo img{position:relative;width:78%;height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.55))}
.gportal--selo .gportal__lado--esq .gportal__selo{clip-path:inset(-20% 50% -20% -20%)}
.gportal--selo .gportal__lado--dir .gportal__selo{clip-path:inset(-20% -20% -20% 50%)}
.gportal--selo.gportal--abrindo .gportal__selo img{animation:gp-carimbo .55s cubic-bezier(.3,1.6,.5,1) both}
@keyframes gp-carimbo{0%{transform:scale(1)}40%{transform:scale(.86)}100%{transform:scale(1)}}
.gportal__onda{position:absolute;left:50%;top:45%;width:min(52vmin,380px);aspect-ratio:1;border-radius:50%;border:3px solid rgba(241,212,138,.9);transform:translate(-50%,-50%) scale(.6);opacity:0;z-index:3;pointer-events:none}
.gportal--selo.gportal--abrindo .gportal__onda{animation:gp-onda .9s ease-out .25s both}
@keyframes gp-onda{0%{opacity:1;transform:translate(-50%,-50%) scale(.6)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.6)}}
.gportal--selo.gportal--abrindo .gportal__lado--esq{animation:gp-abre-esq 1.3s cubic-bezier(.7,0,.25,1) .7s both}
.gportal--selo.gportal--abrindo .gportal__lado--dir{animation:gp-abre-dir 1.3s cubic-bezier(.7,0,.25,1) .7s both}
@keyframes gp-abre-esq{to{transform:translateX(-102%)}}
@keyframes gp-abre-dir{to{transform:translateX(102%)}}
.gportal--selo .gportal__lado--esq{box-shadow:inset -1px 0 0 rgba(241,212,138,.3)}
.gportal--selo .gportal__lado--dir{box-shadow:inset 1px 0 0 rgba(241,212,138,.3)}

/* 3. CORTINA: cortinas de veludo azul com franja dourada, como num salão real */
.gportal--cortina .gportal__lado{background:
  linear-gradient(180deg,rgba(0,0,0,0) 86%,rgba(0,0,0,.35) 100%),
  repeating-linear-gradient(90deg,#0a1b3d 0,#17306a 3.2%,#2a4a91 5%,#17306a 6.8%,#0a1b3d 10%);
  transform-origin:left center}
.gportal--cortina .gportal__lado--dir{transform-origin:right center}
.gportal--cortina .gportal__lado::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;
  background:repeating-linear-gradient(90deg,#f1d48a 0 3px,#c9993a 3px 6px,rgba(0,0,0,0) 6px 8px),linear-gradient(180deg,#e8c57b,#a8782a);
  -webkit-mask:linear-gradient(180deg,#000 30%,rgba(0,0,0,.85) 100%);mask:linear-gradient(180deg,#000 30%,rgba(0,0,0,.85) 100%)}
.gportal__sanefa{position:absolute;z-index:3;top:0;left:0;right:0;height:16vh;min-height:90px;
  background:linear-gradient(180deg,#0a1b3d 0%,#17306a 70%,#0a1b3d 100%);border-bottom:5px solid #c9993a;
  -webkit-mask:radial-gradient(60px 26px at 60px 100%,#0000 98%,#000) -60px 0/120px 100%;mask:radial-gradient(60px 26px at 60px 100%,#0000 98%,#000) -60px 0/120px 100%;
  box-shadow:0 10px 30px rgba(0,0,0,.5)}
.gportal--cortina .gportal__topo{padding-top:4vh;background:none}
.gportal__escudo-centro{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-55%);width:min(30vmin,220px);filter:drop-shadow(0 16px 26px rgba(0,0,0,.6))}
.gportal--abrindo .gportal__escudo-centro{transition:opacity .5s,transform .8s;opacity:0;transform:translate(-50%,-55%) scale(.85)}
.gportal--cortina.gportal--abrindo .gportal__lado--esq{animation:gp-cortina-esq 1.8s cubic-bezier(.6,0,.3,1) .2s both}
.gportal--cortina.gportal--abrindo .gportal__lado--dir{animation:gp-cortina-dir 1.8s cubic-bezier(.6,0,.3,1) .2s both}
@keyframes gp-cortina-esq{to{transform:translateX(-78%) scaleX(.35)}}
@keyframes gp-cortina-dir{to{transform:translateX(78%) scaleX(.35)}}
.gportal--cortina.gportal--abrindo .gportal__sanefa{animation:gp-sobe 1.4s cubic-bezier(.6,0,.3,1) 1.3s both}
@keyframes gp-sobe{to{transform:translateY(-105%)}}
.gportal--cortina.gportal--abrindo .gportal__frente{animation:gp-somefrente .6s ease 2.2s both}
@keyframes gp-somefrente{to{opacity:0;visibility:hidden}}

@media (max-width:640px){
  .gportal__selo{width:min(70vw,300px)}
  .gportal__onda{width:min(70vw,300px)}
  .gportal__escudo-centro{width:min(42vw,180px)}
}
@media (prefers-reduced-motion:reduce){.gportal{display:none!important}}
@media (max-width:640px){.gportal__topo{padding-top:54px}.gportal__topo strong{font-size:1.15rem}.gportal__topo span{font-size:.62rem;letter-spacing:.22em}}

/* Arremate na tela (Vamos Arrematar): depois que a porta abre, um computador mostra o leilão de um imóvel,
   os lances sobem, o cronômetro zera e aparece VENDIDO na tela. */
.gportal__leilao{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;display:grid;place-items:center}
.gportal--arremate.gportal--abrindo .gportal__leilao{animation:gp-leilao-cena 6.4s linear both}
@keyframes gp-leilao-cena{0%,18%{opacity:0}24%,76%{opacity:1}83%,100%{opacity:0}}
.gportal__leilao::before{content:"";position:absolute;inset:0;background:rgba(6,19,43,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gportal__pc{position:relative;width:min(86vw,760px,118vh);transform:translateY(40px) scale(.92);opacity:0}
.gportal--arremate.gportal--abrindo .gportal__pc{animation:gp-pc-sobe .9s cubic-bezier(.2,.8,.2,1) 1.45s both}
@keyframes gp-pc-sobe{to{transform:none;opacity:1}}
.gportal__tela{position:relative;aspect-ratio:16/10;border-radius:14px 14px 4px 4px;padding:2.2% 2.2% 2.6%;background:linear-gradient(180deg,#1b1e24,#0e1014);box-shadow:0 0 0 1px #3a3f48 inset,0 30px 60px rgba(0,0,0,.55)}
.gportal__tela::before{content:"";position:absolute;top:1%;left:50%;width:6px;height:6px;border-radius:50%;background:#2a2e35;transform:translateX(-50%)}
.gportal__app{position:relative;height:100%;overflow:hidden;border-radius:3px;background:#f7f5f0;color:#14233a;font:500 clamp(9px,1.5vw,13px)/1.3 system-ui,-apple-system,Segoe UI,sans-serif;display:grid;grid-template-rows:auto 1fr}
.gportal__barra{display:flex;align-items:center;gap:.6em;padding:.55em .9em;background:#0b1f44;color:#fff}
.gportal__barra img{height:1.9em;width:auto}
.gportal__barra b{font-weight:700;letter-spacing:.02em}
.gportal__barra em{margin-left:auto;font-style:normal;font-size:.85em;color:#e8c57b;border:1px solid rgba(232,197,123,.6);border-radius:999px;padding:.1em .7em}
.gportal__lote{display:grid;grid-template-columns:1.35fr 1fr;gap:.9em;padding:.9em;min-height:0}
.gportal__foto{position:relative;border-radius:6px;overflow:hidden;background:#dfe4ec center/cover no-repeat}
.gportal__foto span{position:absolute;left:.6em;top:.6em;background:#0b1f44;color:#fff;font-size:.8em;font-weight:700;padding:.2em .6em;border-radius:4px}
.gportal__dados{display:flex;flex-direction:column;gap:.45em;min-width:0}
.gportal__dados h3{margin:0;font:700 1.15em/1.2 Georgia,serif;color:#0b1f44}
.gportal__dados small{color:#5b6475}
.gportal__linha{display:flex;justify-content:space-between;border-bottom:1px solid #e3ddcd;padding-bottom:.3em}
.gportal__lance{margin-top:.2em;padding:.6em .7em;border-radius:6px;background:#0b1f44;color:#fff}
.gportal__lance small{color:#c9d3e6;display:block}
.gportal__valor{display:block;font:800 1.9em/1.1 system-ui,sans-serif;color:#fff;font-variant-numeric:tabular-nums}
.gportal__valor.gportal__pisca{animation:gp-pisca .35s ease}
@keyframes gp-pisca{0%{color:#7ee2a8}100%{color:#fff}}
.gportal__crono{display:flex;justify-content:space-between;align-items:center;font-weight:700}
.gportal__crono b{font-variant-numeric:tabular-nums;color:#b3121b;font-size:1.25em}
.gportal__fala{min-height:1.3em;font-weight:700;color:#8a6a1e}
.gportal__vendido{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;background:rgba(247,245,240,.0)}
.gportal__vendido p{margin:0;padding:.15em .55em .1em;transform:rotate(-8deg) scale(2.6);font:900 clamp(2rem,7vw,4.6rem)/1 Georgia,serif;letter-spacing:.05em;color:#b3121b;border:.08em solid #b3121b;border-radius:.1em;background:rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(0,0,0,.25);text-align:center}
.gportal__vendido p span{display:block;font:700 .22em/1 system-ui,sans-serif;letter-spacing:.4em;text-transform:uppercase;color:#14233a;margin-bottom:.4em}
.gportal--vendeu .gportal__vendido{opacity:1;background:rgba(247,245,240,.35);transition:background .3s}
.gportal--vendeu .gportal__vendido p{animation:gp-carimba .45s cubic-bezier(.2,1.5,.4,1) both}
@keyframes gp-carimba{from{transform:rotate(-8deg) scale(2.6);opacity:0}to{transform:rotate(-8deg) scale(1);opacity:1}}
.gportal--vendeu .gportal__tela{animation:gp-treme .35s ease}
@keyframes gp-treme{25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.gportal__base-pc{position:relative;height:clamp(10px,2vw,18px);margin:0 -7%;border-radius:0 0 18px 18px;background:linear-gradient(180deg,#c9ccd2,#8e939b 60%,#5f646c);box-shadow:0 18px 30px rgba(0,0,0,.5)}
.gportal__base-pc::before{content:"";position:absolute;left:50%;top:0;width:16%;height:40%;border-radius:0 0 8px 8px;background:#7b8088;transform:translateX(-50%)}
.gportal__selinho{position:absolute;right:.8em;bottom:.6em;font-size:.75em;color:#8a8f99}
.gportal--arremate.gportal--abrindo .gportal__frase{animation:gp-frase 1.3s ease 5.3s both}
.gportal--arremate.gportal--abrindo .gportal__cena::after{animation:gp-fundo 1.3s ease 5.3s both}
.gportal--arremate.gportal--abrindo .gportal__cena{animation-duration:6.4s}
@media (max-width:640px){
  /* no celular vira um celular na mão */
  .gportal__pc{width:min(78vw,340px)}
  .gportal__tela{aspect-ratio:9/17;border-radius:30px;padding:14px 10px 18px;background:linear-gradient(180deg,#22262d,#0e1014)}
  .gportal__tela::before{top:6px;width:60px;height:6px;border-radius:6px}
  .gportal__app{border-radius:18px;font-size:13px}
  .gportal__base-pc{display:none}
  .gportal__lote{grid-template-columns:1fr;grid-template-rows:38% auto;gap:.7em}
  .gportal__vendido p{font-size:2.6rem}
}

/* portas retas: abrem sem deformar (sem perspectiva) */
.gportal--porta .gportal__frente{perspective:none}

/* Martelo de madeira (render 3D próprio) batendo na base: dou-lhe uma, duas, três */
.gportal--arremate .gportal__leilao{display:flex;align-items:center;justify-content:center;gap:0}
.gportal__martelada{position:relative;z-index:3;flex:0 0 auto;width:min(26vw,340px,48vh);aspect-ratio:1/1;margin:0 0 12vh -3vw;align-self:flex-end;opacity:0}
.gportal--arremate.gportal--abrindo .gportal__martelada{animation:gp-pc-sobe .9s cubic-bezier(.2,.8,.2,1) 1.7s both}
.gportal__bloco{position:absolute;left:0;bottom:0;width:78%;filter:drop-shadow(0 18px 22px rgba(0,0,0,.55))}
.gportal__martelo{position:absolute;left:0;bottom:20%;width:112%;transform-origin:97% 38%;transform:rotate(28deg);filter:drop-shadow(0 14px 16px rgba(0,0,0,.5))}
.gportal--arremate.gportal--abrindo .gportal__martelo{animation:gp-batida 6.4s linear both}
@keyframes gp-batida{0%,56%{transform:rotate(28deg)}58%{transform:rotate(0)}60%{transform:rotate(18deg)}62.5%{transform:rotate(0)}64.5%{transform:rotate(40deg)}67%{transform:rotate(-2deg)}68.5%{transform:rotate(3deg)}70%,100%{transform:rotate(0)}}
.gportal__martelada .gportal__impacto{position:absolute;left:36%;bottom:22%;width:90%;aspect-ratio:3/1;border-radius:50%;transform:translate(-50%,50%) scale(.2);opacity:0;
  background:radial-gradient(ellipse,rgba(255,236,190,.9) 0%,rgba(241,212,138,.4) 35%,rgba(241,212,138,0) 70%)}
.gportal--arremate.gportal--abrindo .gportal__martelada .gportal__impacto{animation:gp-impacto2 6.4s ease-out both}
@keyframes gp-impacto2{0%,66.5%{opacity:0;transform:translate(-50%,50%) scale(.2)}67.5%{opacity:1}76%,100%{opacity:0;transform:translate(-50%,50%) scale(2.2)}}
@media (max-width:640px){
  .gportal--arremate .gportal__leilao{flex-direction:column;justify-content:center}
  .gportal__martelada{position:absolute;z-index:4;right:0;bottom:15vh;width:44vw;margin:0}
  .gportal__pc{width:min(68vw,300px);margin-top:-8vh}
}
