/* ==========================================================================
   Ruva · Link (tarjeta de contacto)
   Identidad Ruva Studio: Poppins, azul Ruva, negro, blanco y crema.
   ========================================================================== */

@font-face{font-family:"Poppins";src:url(../fonts/poppins-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Poppins";src:url(../fonts/poppins-800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}

:root{
  --bg:#F6F5F1;
  --surface:#FFFFFF;
  --line:#E6E4DE;
  --ink:#0A0A0A;
  --ink-2:#161616;
  --text:#111111;
  --muted:#5E5C57;
  --blue:#1450FB;
  --blue-soft:#DCE5FB;
  --cream:#FCE9D3;
  --cream-2:#F6D2AA;
  --wa:#25D366;
  --r-xl:32px;
  --r-lg:24px;
  --r-md:18px;
  --r-sm:14px;
  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:20px;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
ul{list-style:none}
b,strong{font-weight:600}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:10px}
.ic{width:20px;height:20px;flex:none}

.skip{position:fixed;left:16px;top:-80px;z-index:2000;background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;transition:top .3s var(--ease)}
.skip:focus{top:16px}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:12px}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.h2{font-size:clamp(1.7rem,1.25rem + 2vw,2.7rem);font-weight:600;letter-spacing:-.035em;line-height:1.1;text-wrap:balance}
.h2 .hl{color:var(--blue)}
.lead{font-size:1.02rem;color:var(--muted);line-height:1.65;margin-top:14px;max-width:56ch}

/* ---------- Botones ---------- */
.btn{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:0 20px;border-radius:var(--r-md);font-weight:600;font-size:1.02rem;white-space:nowrap;transition:transform .25s var(--ease),box-shadow .4s var(--ease),color .4s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:translateY(102%);transition:transform .5s var(--ease)}
.btn:hover::before{transform:none}
.btn:active{transform:scale(.97)}
.btn .ic{width:21px;height:21px}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 16px 30px -16px rgba(20,80,251,.8)}
.btn--primary::before{background:var(--ink)}
.btn--wa{background:var(--ink);color:#fff}
.btn--wa .ic{color:var(--wa)}
.btn--wa::before{background:#1f1f1f}
.btn--light{background:#fff;color:var(--ink)}
.btn--light::before{background:var(--cream)}

/* ==========================================================================
   Entrada con el logo
   ========================================================================== */
.is-locked{overflow:hidden}
.intro{display:none}
.js .intro{display:flex;position:fixed;inset:0;z-index:1500;align-items:center;justify-content:center;color:#fff;cursor:pointer}
.intro__panel{position:absolute;inset:0}
.intro__panel--a{background:var(--blue);z-index:2}
.intro__panel--b{background:var(--ink);z-index:1}
.intro__inner{position:relative;z-index:3;width:min(420px,66vw);display:flex;flex-direction:column;align-items:center}
.intro__logo{width:100%;height:auto;overflow:hidden}
.intro__logo .il{transform:translateY(105%)}
.intro__logo .il--reg{transform:none;transform-box:fill-box;transform-origin:center;scale:0}
.intro__msg{overflow:hidden;margin-top:26px;font-size:clamp(.82rem,.7rem + .5vw,1rem);font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.intro__msg span{display:block;transform:translateY(110%)}

/* ==========================================================================
   Perfil
   ========================================================================== */
.profile__card{background:var(--surface);border-radius:0 0 var(--r-xl) var(--r-xl);box-shadow:0 30px 60px -40px rgba(10,10,10,.35);overflow:hidden}
.profile__cover{position:relative;aspect-ratio:2/1;overflow:hidden;background:var(--blue)}
.profile__cover img{width:100%;height:100%;object-fit:cover}
.profile__cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,80,251,.35),rgba(20,80,251,.1) 45%,rgba(10,10,10,.35))}
.profile__logo{position:absolute;z-index:2;left:18px;top:16px;width:78px;height:auto;color:#fff;overflow:hidden}

.profile__body{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 var(--gutter) 24px}
.profile__avatar{position:relative;z-index:2;width:116px;height:116px;margin-top:-62px;border-radius:50%;border:5px solid #fff;overflow:hidden;background:var(--blue);box-shadow:0 18px 36px -18px rgba(10,10,10,.5)}
.profile__avatar img{width:100%;height:100%;object-fit:cover}
.profile__name{font-size:clamp(1.9rem,1.6rem + 1.2vw,2.4rem);font-weight:700;letter-spacing:-.04em;line-height:1.1;margin-top:14px}
.profile__role{font-size:.96rem;font-weight:500;color:var(--muted);margin-top:6px;line-height:1.45}
.profile__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}
.profile__tags li{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--bg);font-size:.72rem;font-weight:500;color:#33322e;white-space:nowrap}
.profile__tags .ic{width:14px;height:14px;color:var(--blue)}

.ctas{display:grid;gap:10px;width:100%;margin-top:22px}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin-top:16px}
.quick a,.quick button{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:8px 0;border-radius:var(--r-sm);font-size:.74rem;font-weight:600;color:#33322e;transition:background-color .3s}
.quick a:hover,.quick button:hover{background:var(--bg)}
.quick__ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--bg);color:var(--ink);transition:background-color .3s,color .3s,transform .3s var(--ease)}
.quick a:hover .quick__ic,.quick button:hover .quick__ic{background:var(--blue);color:#fff;transform:translateY(-2px)}
.quick__ic svg{width:21px;height:21px}

/* Entrada al cargar */
.js .profile__cover img{scale:1.08;transition:scale 1.6s var(--ease)}
.js .profile__logo .pl{transform:translateY(105%)}
.js [data-in]{opacity:0;translate:0 18px}
.is-in .profile__cover img{scale:1}
.is-in .profile__logo .pl{transform:none;transition:transform .9s var(--ease)}
.is-in .profile__logo .pl:nth-child(2){transition-delay:.06s}
.is-in .profile__logo .pl:nth-child(3){transition-delay:.12s}
.is-in .profile__logo .pl:nth-child(4){transition-delay:.18s}
.is-in .profile__logo .pl:nth-child(5){transition-delay:.24s}
.is-in [data-in]{opacity:1;translate:0 0;transition:opacity .7s var(--ease),translate .8s var(--ease)}
.js .profile__avatar[data-in]{scale:.7;translate:0 0}
.is-in .profile__avatar[data-in]{scale:1;transition:opacity .5s var(--ease),scale .8s cubic-bezier(.34,1.56,.64,1)}

/* ==========================================================================
   Contenido
   ========================================================================== */
.content{padding:0 var(--gutter)}
.block{margin-top:clamp(56px,12vw,96px)}

.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.stat{display:flex;flex-direction:column;gap:4px;padding:18px 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.stat b{font-size:clamp(1.7rem,1.4rem + 1.2vw,2.3rem);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.stat>span{font-size:.84rem;line-height:1.4;color:var(--muted)}
.stat--blue{background:var(--blue);border-color:var(--blue);color:#fff}
.stat--blue>span{color:rgba(255,255,255,.85)}
.stat--cream{background:var(--cream);border-color:var(--cream)}
.stat--cream>span{color:#4a4844}

.ventures{display:grid;gap:12px;margin-top:24px}
.venture{position:relative;display:grid;grid-template-columns:1fr 96px;grid-template-areas:"tag art" "h art" "p p" "go go";column-gap:14px;padding:20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.venture:hover{transform:translateY(-4px);box-shadow:0 26px 50px -32px rgba(10,10,10,.35)}
.venture__art{grid-area:art;align-self:start;width:96px;height:96px;display:grid;place-items:center}
.venture__art img{max-height:96px;width:auto;object-fit:contain}
.venture__art--photo{border-radius:var(--r-sm);overflow:hidden}
.venture__art--photo img{width:100%;height:100%;max-height:none;object-fit:cover}
.venture__tag{grid-area:tag;align-self:end;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.venture__h{grid-area:h;align-self:start;font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-top:4px}
.venture__p{grid-area:p;font-size:.94rem;line-height:1.55;color:var(--muted);margin-top:10px}
.venture__go{grid-area:go;display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:600;font-size:.94rem}
.venture__go .ic{width:17px;height:17px;transition:transform .5s var(--ease)}
.venture:hover .venture__go .ic{transform:rotate(45deg)}
.venture--cream{background:var(--cream);border-color:var(--cream)}
.venture--cream .venture__p{color:#4a4844}
.venture--blue{background:var(--blue);border-color:var(--blue);color:#fff}
.venture--blue .venture__tag{color:var(--cream)}
.venture--blue .venture__p{color:rgba(255,255,255,.85)}

.nets{display:grid;gap:8px;margin-top:24px}
.net{display:grid;grid-template-columns:46px 1fr auto 18px;align-items:center;gap:12px;padding:12px 16px 12px 12px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);transition:border-color .3s,transform .3s var(--ease)}
.net:hover{border-color:var(--blue);transform:translateX(4px)}
.net__ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff}
.net__ic svg{width:22px;height:22px}
.net__ic--ink{background:var(--ink)}
.net__ic--blue{background:var(--blue)}
.net__ic--cream{background:var(--cream-2);color:var(--ink)}
.net__t{display:flex;flex-direction:column;font-weight:600;font-size:.98rem;line-height:1.25}
.net__t small{font-weight:500;font-size:.8rem;color:var(--muted)}
.net__n{font-weight:700;font-size:.92rem;letter-spacing:-.01em}
.net__go{width:18px;height:18px;color:var(--muted);transition:transform .4s var(--ease),color .3s}
.net:hover .net__go{transform:rotate(45deg);color:var(--blue)}

/* Carrusel de escenarios */
.reel{margin:24px calc(var(--gutter) * -1) 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.reel__track{display:flex;gap:12px;width:max-content;padding:4px 0;animation:reel 48s linear infinite}
.reel:hover .reel__track{animation-play-state:paused}
@keyframes reel{to{transform:translateX(calc(-50% - 6px))}}
.shot{position:relative;flex:none;width:clamp(170px,46vw,220px);aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;background:var(--ink)}
.shot img{width:100%;height:100%;object-fit:cover}
.shot span{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));color:#fff;font-size:.8rem;font-weight:600;line-height:1.3}
.stages__note{font-size:.88rem;color:var(--muted);margin-top:16px}
.link-go{display:inline-flex;align-items:center;gap:8px;margin-top:10px;min-height:44px;font-weight:600;color:var(--blue)}
.link-go .ic{width:18px;height:18px;transition:transform .5s var(--ease)}
.link-go:hover .ic{transform:rotate(45deg)}

/* Marcas */
.logos{margin:22px calc(var(--gutter) * -1) 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.logos__track{display:flex;align-items:center;width:max-content;animation:reel 40s linear infinite}
.logo{display:flex;align-items:center;justify-content:center;height:64px;padding:0 22px}
.logo i{display:block;background:var(--ink);opacity:.82;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}

/* Libro */
.book{display:grid;grid-template-columns:118px 1fr;gap:18px;align-items:center}
.book__cover{width:100%;border-radius:12px;box-shadow:0 22px 40px -22px rgba(0,0,0,.6)}
.book .lead{font-size:.95rem;margin-top:10px}

/* Cierre */
.final__card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;padding:28px 22px 26px;border-radius:var(--r-xl);background:var(--blue);color:#fff}
.final__ilus{width:150px;margin-bottom:6px}
.final__p{color:rgba(255,255,255,.88);margin-top:10px;max-width:34ch}
.final__ctas{display:grid;gap:10px;width:100%;margin-top:22px}
.final__mail{margin-top:16px;font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.5)}

.footer{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 0 120px;color:var(--muted);font-size:.88rem}
.footer__logo{width:104px;height:auto;color:var(--ink);margin-bottom:10px}
.footer__c{font-size:.78rem;margin-top:4px}

/* Barra fija en celular */
.dock{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:50;display:grid;grid-template-columns:1fr 58px;gap:8px;transform:translateY(160%);transition:transform .5s var(--ease)}
.dock.is-on{transform:none}
.dock .btn{min-height:58px;box-shadow:0 18px 40px -14px rgba(20,80,251,.75)}
.dock__wa{display:grid;place-items:center;border-radius:var(--r-md);background:var(--wa);color:#fff;box-shadow:0 18px 40px -14px rgba(0,0,0,.45)}
.dock__wa svg{width:26px;height:26px}

.toast{position:fixed;left:50%;bottom:92px;z-index:60;translate:-50% 20px;opacity:0;pointer-events:none;max-width:calc(100% - 32px);padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:.88rem;font-weight:500;text-align:center;transition:opacity .35s,translate .45s var(--ease)}
.toast.is-on{opacity:1;translate:-50% 0}

/* Revelado al hacer scroll */
.js [data-reveal]{opacity:0;translate:0 24px}
.js [data-reveal].is-shown{opacity:1;translate:0 0;transition:opacity .8s var(--ease),translate .9s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}

/* ==========================================================================
   Pantallas grandes: perfil fijo a la izquierda
   ========================================================================== */
@media (min-width:600px){
  .profile__card{max-width:560px;margin:0 auto;border-radius:0 0 var(--r-xl) var(--r-xl)}
  .content{max-width:600px;margin:0 auto}
  .ventures{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(4,1fr)}
  .stat{padding:18px 14px}
  .final__ctas{grid-template-columns:1fr 1fr}
}

@media (min-width:1000px){
  :root{--gutter:28px}
  .page{display:grid;grid-template-columns:420px minmax(0,1fr);gap:56px;max-width:1240px;margin:0 auto;padding:32px 32px 0}
  .profile{position:sticky;top:32px;align-self:start}
  .profile__card{max-width:none;border-radius:var(--r-xl)}
  .content{max-width:none;margin:0;padding:0}
  .block:first-child{margin-top:28px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .ventures{grid-template-columns:1fr 1fr}
  .venture--blue{grid-column:1 / -1}
  .reel,.logos{margin-inline:0}
  .book{grid-template-columns:150px 1fr;gap:28px}
  .footer{padding-bottom:56px}
  .dock{display:none}
}

@media (min-width:1180px){
  .stats{grid-template-columns:repeat(4,1fr)}
}

@media (max-width:360px){
  .quick a,.quick button{font-size:.68rem}
  .quick__ic{width:44px;height:44px}
}

/* ---------- Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .reel{overflow-x:auto}
  .reel__track,.logos__track{animation:none}
}
