/* Zogic Showroom — colores y tipografía de zogicstudio.com (Geist Sans/Mono, negro + cian) */
@font-face{font-family:"Geist";src:url(fonts/Geist-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(fonts/GeistMono-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}
:root{
  --black:#0a0a0a; --cyan:#00e5ff; --glow:#00e5ff38; --graphite:#1a1a1a; --s1:#111; --s2:#161616; --s0:#0e0e0e;
  --fog:#888; --lead:#4a4a4a; --ice:#f4f4f4;
  --sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --pad:clamp(16px,6vw,96px);
}
*{box-sizing:border-box}
html{background:var(--black);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--black);color:var(--ice);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--cyan);color:var(--black)}
a{color:inherit}
.idx{font-family:var(--mono);color:var(--cyan);letter-spacing:0;margin-right:.6em}
.cyan{color:var(--cyan)}

.topbar{position:fixed;inset:0 0 auto 0;z-index:30;display:flex;justify-content:space-between;align-items:center;
  padding:14px var(--pad);background:linear-gradient(#0a0a0acc,#0a0a0a00);pointer-events:none}
.topbar>*{pointer-events:auto}
.brand{font-weight:700;font-size:20px;letter-spacing:-.03em;text-decoration:none}
.brand .dot{color:var(--cyan)}
.brand-sub{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--fog);margin-left:10px}
.topbar nav{display:flex;gap:18px;align-items:center;font:12px var(--mono);text-transform:uppercase;letter-spacing:.08em}
.topbar nav a{text-decoration:none;color:var(--fog)} .topbar nav a:hover{color:var(--cyan)}
.pill{font:inherit;color:var(--ice);border:1px solid #2a2a2a;background:var(--s1);border-radius:99px;padding:6px 12px;cursor:pointer}
.pill[aria-pressed="false"]{border-color:var(--cyan);color:var(--cyan)}
@media (max-width:760px){.topbar nav a{display:none}.brand-sub{display:none}}

.eyebrow,.kicker{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--fog);margin:0 0 14px}
.lead{font-size:clamp(16px,1.4vw,20px);line-height:1.5;color:var(--fog);max-width:40ch}
.cta{display:inline-flex;gap:.5em;align-items:center;margin-top:18px;background:var(--cyan);color:var(--black);text-decoration:none;
  font:600 15px var(--sans);padding:14px 22px;border-radius:10px;box-shadow:0 0 0 1px var(--cyan),0 0 32px var(--glow);transition:box-shadow .2s,transform .2s}
.cta:hover{box-shadow:0 0 0 1px var(--cyan),0 0 52px #00e5ff66;transform:translateY(-1px)}
.cta--ghost{background:transparent;color:var(--ice);box-shadow:inset 0 0 0 1px #2e2e2e;font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.cta--ghost:hover{box-shadow:inset 0 0 0 1px var(--cyan),0 0 24px var(--glow);color:var(--cyan)}

/* ---------- 0 · Hero ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:1.1fr minmax(260px,min(40vw,70svh));align-items:center;
  gap:clamp(16px,4vw,64px);padding:90px var(--pad) 40px;touch-action:pan-y;
  background:radial-gradient(ellipse 50% 60% at 75% 45%,#00e5ff0d,transparent 70%)}
h1{font-size:clamp(34px,5.2vw,76px);line-height:1;letter-spacing:-.045em;font-weight:700;margin:0 0 20px;max-width:15ch;text-wrap:balance}
h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 28px var(--glow)}
.stage{position:relative;margin:0}
.stage video,.stage .seqimg,.stage .still{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}
.stage .still{display:none}
.stage--look{aspect-ratio:600/906;width:min(100%,calc(82svh*600/906));justify-self:center;
  -webkit-mask-image:radial-gradient(ellipse 72% 62% at 50% 40%,#000 62%,transparent 100%);mask-image:radial-gradient(ellipse 72% 62% at 50% 40%,#000 62%,transparent 100%)}
@media (max-width:820px){
  .hero{grid-template-columns:1fr;text-align:center;padding-top:72px;gap:8px}
  .hero-copy{order:2}.lead,h1{margin-inline:auto}
  .stage--look{order:1;width:min(70vw,calc(50svh*600/906))}
}

/* ---------- escenas con scroll ---------- */
.scene{height:360vh;position:relative}
.scene--long{height:520vh}
.sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center;background:var(--black)}
.scene .stage{position:absolute;inset:0;display:grid;place-items:center}
.scene .stage video,.scene .stage .seqimg,.scene .stage .still{position:absolute;inset:0}
.scene[data-fit="contain"] .stage{-webkit-mask-image:radial-gradient(ellipse 64% 72% at 50% 50%,#000 60%,transparent 100%);mask-image:radial-gradient(ellipse 64% 72% at 50% 50%,#000 60%,transparent 100%)}
.scene[data-fit="contain"] .stage video,.scene[data-fit="contain"] .stage .seqimg,.scene[data-fit="contain"] .stage .still{top:48px;height:calc(100% - 48px)}
.scene[data-fit="cover"] .stage video,.scene[data-fit="cover"] .stage .seqimg,.scene[data-fit="cover"] .stage .still{object-fit:cover}
.seg-off{visibility:hidden}
@media (max-aspect-ratio:1/1){ /* móvil/tablet vertical: el 16:9 se agranda (--pw) y se recorta por los lados */
  .scene[data-fit="contain"] .stage video,.scene[data-fit="contain"] .stage .seqimg,.scene[data-fit="contain"] .stage .still{top:0;height:100%;left:50%;width:var(--pw,130vw);translate:-50% 0}
  .scene[data-fit="contain"] .stage{-webkit-mask-image:radial-gradient(ellipse 80% 34% at 50% 50%,#000 60%,transparent 100%);mask-image:radial-gradient(ellipse 80% 34% at 50% 50%,#000 60%,transparent 100%)}
  #flexiones,#dominadas,#sentadilla{--pw:118vw} #despegue{--pw:150vw} #producto-suelo,#producto-360{--pw:165vw}
}
.fade{position:absolute;inset:0;background:var(--black);opacity:0;pointer-events:none}

.captions{position:absolute;left:var(--pad);bottom:12svh;width:min(620px,86vw);z-index:2}
.captions--right{left:auto;right:var(--pad);text-align:right}
.captions--center{left:50%;translate:-50% 0;text-align:center;width:min(900px,90vw);bottom:auto;top:50%;transform:translateY(-50%)}
.captions--mon{bottom:9svh}
.kicker{opacity:.9}
.caption{position:absolute;left:0;right:0;top:34px;margin:0;font-size:clamp(24px,3.4vw,50px);font-weight:700;letter-spacing:-.035em;line-height:1.05;
  text-shadow:0 2px 24px #000c,0 0 2px #000;opacity:0;transform:translateY(14px);transition:opacity .35s,transform .35s;text-wrap:balance}
.caption--big{font-size:clamp(26px,4vw,60px)}
.captions--center .caption{top:34px}
.caption.is-on{opacity:1;transform:none}
.progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--graphite)}
.progress span{display:block;height:100%;background:var(--cyan);transform-origin:left;transform:scaleX(0);box-shadow:0 0 12px var(--cyan)}
@media (max-aspect-ratio:1/1){
  .captions,.captions--right{left:var(--pad);right:var(--pad);width:auto;text-align:left;bottom:10svh}
  .captions--center{left:50%;right:auto;width:90vw;text-align:center}
  .caption{font-size:clamp(24px,7vw,40px)}
}

/* ---------- 8 · monitores ---------- */
.monitores{height:420vh;position:relative}
.mon-world{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:0 0;will-change:transform}
.mon-bg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mon-screens{position:absolute;inset:0}
.crt{position:absolute;left:0;top:0;width:320px;height:240px;transform-origin:0 0;overflow:hidden;opacity:0;
  border-radius:14px/18px;box-shadow:0 0 30px #9fd8ff55}
.crt::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:repeating-linear-gradient(#0000 0 2px,#0003 2px 3px),radial-gradient(ellipse at 50% 50%,#fff1 0,#0000 55%,#0007 100%);
  mix-blend-mode:multiply}
.crt::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 35% 25%,#ffffff22,#0000 45%)}
.crt.flicker{animation:crt-flicker 3.2s infinite steps(1)}
@keyframes crt-flicker{0%,100%{filter:none}47%{filter:brightness(1.25)}48%{filter:brightness(.8)}49%{filter:none}}
.mon-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,#0000 45%,#000a 100%)}
.monitores .captions{z-index:3}

/* ---------- 9 · cierre ---------- */
.aburridas{min-height:100svh;padding:16svh var(--pad) 40px;background:linear-gradient(var(--black),var(--s0));position:relative}
.aburridas::before{content:"";position:absolute;inset:0;background:linear-gradient(#ffffff06 1px,transparent 1px) 0 0/100% 48px,linear-gradient(90deg,#ffffff06 1px,transparent 1px) 0 0/48px 100%;pointer-events:none;
  -webkit-mask-image:linear-gradient(#0000,#000 30%,#000 70%,#0000);mask-image:linear-gradient(#0000,#000 30%,#000 70%,#0000)}
.aburridas h2,.aburridas .cierre{font-size:clamp(34px,5.4vw,80px);line-height:1;letter-spacing:-.045em;margin:0 0 18px;max-width:16ch;text-wrap:balance}
.cards{list-style:none;padding:0;margin:44px 0 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;position:relative}
.cards li{background:var(--s1);border:1px solid #1f1f1f;border-radius:14px;padding:22px 22px 20px;transition:border-color .2s,box-shadow .2s}
.cards li:hover{border-color:#00e5ff66;box-shadow:0 0 28px var(--glow)}
.cards .n{font:12px var(--mono);color:var(--cyan)}
.cards h3{margin:10px 0 6px;font-size:20px;letter-spacing:-.02em}
.cards p{margin:0;color:var(--fog);line-height:1.5;font-size:15px}
.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:12svh;padding-top:20px;border-top:1px solid var(--graphite);
  font:12px var(--mono);color:var(--lead);text-transform:uppercase;letter-spacing:.1em}

/* ---------- movimiento reducido: imágenes fijas, sin scroll largo ---------- */
.reduced .stage video,.reduced .stage .seqimg{display:none}
.stage video.seq-on{display:none!important}
.reduced .stage .still{display:block}
.reduced .scene,.reduced .scene--long,.reduced .monitores{height:auto}
.reduced .sticky{position:relative;height:auto;min-height:0;display:block;padding:10svh 0 6svh}
.reduced .scene .stage{position:relative;inset:auto;aspect-ratio:16/9;width:min(1100px,100%);margin:0 auto}
.reduced .scene .stage .still{position:absolute;inset:0;top:0;height:100%;width:100%;left:0;translate:none}
.reduced .captions,.reduced .captions--right,.reduced .captions--center{position:static;transform:none;translate:none;width:min(1100px,100%);margin:20px auto 0;padding:0 var(--pad);text-align:left}
.reduced .caption{position:static;opacity:1;transform:none;transition:none;font-size:clamp(20px,2.6vw,32px);margin:0 0 6px}
.reduced .progress,.reduced .fade{display:none}
.reduced .monitores .sticky{height:min(80svh,62vw);padding:0;overflow:hidden;position:relative}
.reduced .crt{opacity:1}
.reduced .caption{transition:none}
.reduced .monitores .captions{position:absolute;left:0;right:0;bottom:5%;margin:0}
.reduced .monitores .caption{font-size:clamp(16px,2vw,24px)}

/* --- ajuste: los textos se apilan en una misma celda (no se salen por abajo) --- */
.captions{display:grid;grid-template-columns:1fr}
.captions .kicker{grid-row:1;grid-column:1}
.captions .caption{position:relative;top:auto;left:auto;right:auto;grid-row:2;grid-column:1;align-self:end}
.captions--center{top:14svh;transform:none}
.captions--center .caption{align-self:start}
.monitores .sticky::after,.scene .sticky::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42svh;pointer-events:none;z-index:1;
  background:linear-gradient(#0000,#0a0a0a99 70%,#0a0a0acc)}
#gruta .sticky::after{top:0;bottom:auto;height:46svh;background:linear-gradient(#0a0a0acc,#0a0a0a66 60%,#0000)}
.reduced .sticky::after{display:none}
.reduced .captions .caption{grid-row:auto}

.aburridas .cierre{margin:clamp(56px,9vw,120px) 0 8px;max-width:18ch}
.aburridas .cierre .cyan{text-shadow:0 0 28px var(--glow)}
