/* El Faro · capa premium de efectos (Loteamiento y Todo lo realizado) */
:root{--pfx-ease:cubic-bezier(.2,.7,.2,1);--pfx-forest:#1e2a24;--pfx-gold:#b89a62;--pfx-gold-l:#d9c39a}

/* 1 · cortina de entrada y de cambio de página */
#pfx-cv{position:fixed;inset:0;z-index:9999;background:var(--pfx-forest);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform 1s cubic-bezier(.77,0,.18,1)}
#pfx-cv.in{transform:translateY(100%)}
#pfx-cv.out{transform:translateY(-100%)}
#pfx-cv .lg{position:relative;z-index:2;width:58px;height:auto;opacity:0;transform:translateY(10px);animation:pfxLg .7s var(--pfx-ease) .1s forwards}
#pfx-cv .bm{position:absolute;left:50%;top:50%;width:260vmax;height:260vmax;margin:-130vmax 0 0 -130vmax;background:conic-gradient(from 0deg,transparent 0 76%,rgba(217,195,154,.05) 82%,rgba(217,195,154,.28) 88%,rgba(217,195,154,.05) 93%,transparent 96%);animation:pfxBm 1.6s cubic-bezier(.5,.1,.3,1) forwards;opacity:.9}
#pfx-cv .nm{position:absolute;z-index:2;top:calc(50% + 48px);left:0;right:0;text-align:center;font:400 .62rem/1 Jost,system-ui,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:rgba(217,195,154,.85);opacity:0;animation:pfxLg .7s var(--pfx-ease) .3s forwards}
@keyframes pfxLg{to{opacity:1;transform:none}}
@keyframes pfxBm{from{transform:rotate(-40deg)}to{transform:rotate(320deg)}}

/* 2 · títulos palabra a palabra y brillo dorado */
.pfx-split .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.pfx-split .w>span{display:inline-block;transform:translateY(108%);transition:transform 1.15s var(--pfx-ease);transition-delay:calc(var(--i,0) * 70ms)}
.pfx-split.on .w>span{transform:none}
.pfx-split .g{background:linear-gradient(100deg,var(--gc) 0%,var(--gc) 42%,#fff3d6 50%,var(--gc) 58%,var(--gc) 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform 1.15s var(--pfx-ease),background-position 2.2s ease .5s}
.pfx-split.on .g{background-position:0 0}

/* 4 · fotos con cortina */
.pfx-cur{clip-path:inset(0 100% 0 0);transition:clip-path 1.35s cubic-bezier(.77,0,.18,1),transform 2s var(--pfx-ease)!important;transform:scale(1.05)}
.pfx-cur.on{clip-path:inset(0 0 0 0);transform:none}

/* 5 · cursor */
.pfx-ring{position:fixed;left:0;top:0;z-index:9000;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgba(184,154,98,.75);border-radius:50%;pointer-events:none;display:flex;align-items:center;justify-content:center;transition:width .45s var(--pfx-ease),height .45s var(--pfx-ease),margin .45s var(--pfx-ease),background .45s,border-color .45s,opacity .3s;opacity:0;mix-blend-mode:normal}
.pfx-ring span{font:400 .58rem/1 Jost,system-ui,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--pfx-forest);opacity:0;transition:opacity .3s}
.pfx-ring.on{opacity:1}
.pfx-ring.big{width:86px;height:86px;margin:-43px 0 0 -43px;background:rgba(217,195,154,.92);border-color:transparent}
.pfx-ring.big span{opacity:1}
.pfx-ring.lk{width:54px;height:54px;margin:-27px 0 0 -27px;border-color:rgba(184,154,98,.45);background:rgba(184,154,98,.08)}
.pfx-dot{position:fixed;left:0;top:0;z-index:9001;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--pfx-gold);pointer-events:none;opacity:0;transition:opacity .3s}
.pfx-dot.on{opacity:1}

/* 6 · botones: brillo al pasar y efecto imán */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);pointer-events:none;transition:left .9s var(--pfx-ease)}
.btn:hover::after{left:135%}
.pfx-mag{transition:translate .5s var(--pfx-ease),background .45s,color .45s,border-color .45s}

/* 7 · tarjetas con inclinación y luz */
.pfx-tilt{position:relative;will-change:transform}
.pfx-tilt::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(217,195,154,.22),transparent 55%);opacity:0;transition:opacity .45s}
.pfx-tilt.hov::before{opacity:1}

/* 9 · barra de progreso y menú que se esconde */
.pfx-prog{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--pfx-gold),var(--pfx-gold-l));pointer-events:none}
#nav.pfx-hide{transform:translateY(-100%)}

/* 10 · líneas doradas que se dibujan */
.rv .kicker::before{transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--pfx-ease) .35s}
.rv.on .kicker::before{transform:scaleX(1)}
.pfx-sep{position:relative}
.pfx-sep::before{content:"";position:absolute;top:0;left:50%;width:min(1160px,88%);height:1px;transform:translateX(-50%) scaleX(0);background:linear-gradient(90deg,transparent,rgba(184,154,98,.55),transparent);transition:transform 1.8s var(--pfx-ease);z-index:2;pointer-events:none}
.pfx-sep.pfx-in::before{transform:translateX(-50%) scaleX(1)}

/* 11 · textura de papel */
body::after{content:"";position:fixed;inset:0;z-index:8000;pointer-events:none;opacity:.05;mix-blend-mode:multiply;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

@media(prefers-reduced-motion:reduce){
  #pfx-cv{display:none}
  .pfx-split .w>span{transform:none!important;transition:none!important}
  .pfx-split .g{background-position:0 0!important}
  .pfx-cur{clip-path:none!important;transform:none!important}
  .rv .kicker::before{transform:none}
  .pfx-sep::before{transform:translateX(-50%) scaleX(1)}
}
