/* AMIAR — portada: carga, recorrido 3D y secciones propias. La base común está en site.css. */
html{scroll-snap-type:y proximity}
body.is-loading{overflow:hidden}

/* ---------- Carga: el isotipo se dibuja y se rellena ---------- */
.loader{position:fixed;inset:0;z-index:150;background:var(--deep);display:grid;place-items:center;transition:opacity 1s var(--ease),visibility 1s}
.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader-mark{display:flex;flex-direction:column;align-items:center;gap:26px}
.loader-num{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--muted);font-variant-numeric:tabular-nums}
.loader-svg{width:96px;height:auto;overflow:visible}
.loader-svg polygon{fill:var(--amiar);fill-opacity:calc(var(--p,0) * var(--p,0));stroke:var(--amiar);stroke-width:.6;stroke-linejoin:round;stroke-dasharray:var(--len,200);stroke-dashoffset:calc(var(--len,200) * (1 - var(--p,0)))}

body.is-loading .header,body.is-loading .bar,body.is-loading .dots{opacity:0}
.header,.bar,.dots{transition:opacity 1.2s var(--ease) .6s,background .5s,height .5s var(--ease),border-color .5s}

/* ---------- Recorrido ---------- */
.journey{position:relative;height:300vh}
.snaps{position:absolute;inset:0;pointer-events:none}
.snaps i{display:block;height:100vh;scroll-snap-align:start}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--deep)}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.shade{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(10,14,19,.78) 0%,rgba(10,14,19,.3) 42%,transparent 62%),
  linear-gradient(0deg,rgba(10,14,19,.75) 0%,transparent 26%),
  linear-gradient(180deg,rgba(10,14,19,.55) 0%,transparent 18%)}

.dots{position:absolute;right:calc(var(--m) - 4px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;z-index:3}
.dots button{width:22px;height:22px;display:grid;place-items:center}
.dots button:before{content:'';width:4px;height:4px;border-radius:50%;background:#fff;opacity:.45;transition:all .5s var(--ease)}
.dots button:hover:before{opacity:1}
.dots button.on:before{width:8px;height:8px;background:var(--accent);opacity:1;box-shadow:0 0 12px var(--accent)}

/* Paneles de texto */
.panels{position:absolute;inset:0;pointer-events:none}
.panel{position:absolute;left:var(--m);top:50%;width:min(620px,50vw);transform:translateY(-46%);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.panel.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .9s var(--ease),visibility 0s}
.panel>*{opacity:0;transition:opacity .3s}
.panel.on>*{opacity:1;transition:opacity .9s var(--ease);animation:rise 1.2s var(--ease) both}
@keyframes rise{from{transform:translateY(28px)}to{transform:none}}
.panel.on>*:nth-child(2){transition-delay:.08s;animation-delay:.08s}
.panel.on>*:nth-child(3){transition-delay:.16s;animation-delay:.16s}
.panel.on>*:nth-child(4){transition-delay:.24s;animation-delay:.24s}
.panel.on>*:nth-child(5){transition-delay:.32s;animation-delay:.32s}
.chip{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}
.chip:before{content:'';width:22px;height:1.5px;background:currentColor}
.j-title{font-weight:700;font-size:clamp(38px,4.4vw,66px);line-height:1.04;letter-spacing:-.028em;max-width:13ch;text-wrap:balance}
.j-title em{font-style:normal;color:var(--accent)}
.j-text{margin-top:24px;font-size:clamp(17px,1.3vw,20px);line-height:1.6;color:#d5dde3;max-width:46ch}
.j-text strong{color:#fff}
.j-stats{margin-top:30px}
.panel .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.j-list{margin:30px 0 0;display:grid;gap:0;max-width:520px;border-top:1px solid var(--line)}
.j-list div{padding:18px 0;border-bottom:1px solid var(--line)}
.j-list dt{font-weight:700;font-size:clamp(17px,1.35vw,20px);color:#fff}
.j-list dd{margin:6px 0 0;color:var(--muted);font-size:15px;line-height:1.55}
.cta{display:inline-flex;align-items:center;gap:16px;margin-top:30px;font-size:14px;font-weight:700}
.cta-ring{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.32);display:grid;place-items:center;font-size:18px;transition:background .35s,color .35s,border-color .35s,transform .6s var(--ease)}
.cta:hover .cta-ring{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:rotate(45deg)}
.panel-hero{width:min(660px,52vw)}

/* Productos sobre la escena: fotos con fondo negro fundidas con la escena */
.product{position:absolute;margin:0;right:calc(var(--m) + 3vw);top:50%;width:min(40vw,640px);aspect-ratio:1.5;transform:translateY(-44%) scale(.96);opacity:0;transition:opacity 1s var(--ease),transform 1.4s var(--ease);pointer-events:none}
.product:before{content:'';position:absolute;inset:14% 22%;border-radius:50%;background:radial-gradient(closest-side,rgba(var(--accent-rgb),.9),transparent);opacity:.28;filter:blur(40px)}
.product img{position:relative;width:100%;height:100%;object-fit:cover;mix-blend-mode:lighten;-webkit-mask-image:radial-gradient(48% 52% at 50% 50%,#000 55%,transparent 100%);mask-image:radial-gradient(48% 52% at 50% 50%,#000 55%,transparent 100%);animation:float 8s ease-in-out infinite}
.product.cut{width:min(32vw,520px);aspect-ratio:990/906;right:calc(var(--m) + 4vw)}
.product-gw.cut{width:auto;height:min(54vh,500px);aspect-ratio:600/2087;right:calc(var(--m) + 5vw)}
.product.cut:before{inset:10% 8%;opacity:.35}
.product.cut img{object-fit:contain;mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none;filter:drop-shadow(0 40px 60px rgba(0,0,0,.6)) brightness(.94)}
.product.on{opacity:1;transform:translateY(-50%) scale(1)}

/* Barra inferior */
.bar{position:absolute;left:var(--m);right:var(--m);bottom:0;height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.bar-text{font-weight:700;letter-spacing:.02em}
.bar-right{display:flex;align-items:center;gap:22px}
.scroll-hint i{display:block;width:1px;height:26px;background:var(--line);position:relative;overflow:hidden}
.scroll-hint i:after{content:'';position:absolute;inset:0;background:var(--accent);transform:translateY(-100%);animation:drip 2.4s var(--ease) infinite}
@keyframes drip{60%,100%{transform:translateY(100%)}}
.pause{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:3px}
.pause span{width:2px;height:10px;background:#fff;transition:all .3s}
.pause[aria-pressed=true] span:first-child{width:0;height:0;background:none;border-left:8px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}
.pause[aria-pressed=true] span:last-child{display:none}

/* ---------- Secciones de la portada ---------- */
#alcance{overflow:hidden}
#alcance canvas.mesh{position:absolute;inset:0;width:100%;height:100%;opacity:.6}
#alcance .link-arrow{margin-top:36px}
.watch{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,80px);align-items:center;margin-top:clamp(56px,8vw,110px)}
.watch .prose{margin-top:14px}
.why .checks{align-self:center}

@media (max-width:820px){
  .dots{display:none}
  .shade{background:linear-gradient(0deg,rgba(10,14,19,.94) 0%,rgba(10,14,19,.6) 48%,transparent 72%),linear-gradient(180deg,rgba(10,14,19,.6) 0%,transparent 18%)}
  .panel,.panel-hero{top:auto;bottom:78px;width:auto;right:var(--m);transform:none}
  .j-title{font-size:clamp(30px,8.4vw,42px)}
  .j-text{margin-top:16px;font-size:15px}
  .j-stats{margin-top:20px;gap:22px}
  .j-stats .stat b{font-size:28px}
  .panel .actions{margin-top:22px}
  .panel .btn{padding:13px 20px}
  .j-list{margin-top:20px}
  .j-list div{padding:12px 0}
  .cta{margin-top:20px}
  .bar{height:58px}
  .bar-text{font-size:11px}
  .scroll-hint{display:none}
  .watch{grid-template-columns:1fr}
}
@media (max-width:820px){ .product{display:none} }
@media (max-width:820px) and (min-height:960px){
  .product,.product.cut,.product-gw.cut{display:block;right:50%;top:92px;width:auto;height:min(340px,calc(100svh - 690px));transform:translate(50%,0) scale(.96)}
  .product.on{transform:translate(50%,0) scale(1)}
}
@media (max-height:760px) and (min-width:821px){
  .j-title{font-size:clamp(34px,3.8vw,56px)}
  .j-text{margin-top:16px}
  .j-stats{margin-top:20px}
  .panel .actions{margin-top:24px}
}
@media (prefers-reduced-motion:reduce){
  .product img,.scroll-hint i:after{animation:none}
  .panel,.panel>*{transition-duration:.01s;animation:none!important}
}
