/* GAIA ATELIER España · capa cinética editorial v2
   Inspiración de comportamiento: velo atmosférico, opacidad, profundidad y transiciones suaves.
   Implementación propia; no replica código ni activos de terceros. */
:root{
  --gaia-ease:cubic-bezier(.22,1,.36,1);
  --gaia-ease-soft:cubic-bezier(.25,.1,.25,1);
  --gaia-fast:320ms;
  --gaia-mid:720ms;
  --gaia-slow:1100ms;
  --gaia-veil:rgba(248,246,241,.17);
  --gaia-veil-dark:rgba(17,17,15,.18);
}

/* Capa atmosférica global: una nube/velo casi imperceptible que entra y respira. */
body::before{content:"";position:fixed;inset:-12vh -12vw;z-index:9000;pointer-events:none;opacity:0;background:
  radial-gradient(45% 36% at 18% 22%,rgba(255,255,255,.32),transparent 72%),
  radial-gradient(40% 30% at 82% 62%,rgba(255,255,255,.18),transparent 70%),
  linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0));
  filter:blur(26px);transform:translate3d(-1.5%,1.5%,0) scale(1.03);transition:opacity 1.2s var(--gaia-ease),transform 2.4s var(--gaia-ease)}
/* HOME performance: el velo global pesa en la entrada de la portada (paneles+video a pantalla completa).
   Se anula solo aqui, via :has(.home-entry) -- exclusivo de index.html, no afecta paginas interiores. */
body:has(.home-entry)::before{filter:none}
/* HOME overflow: el velo (body::before) y el brillo de la cortina de transicion
   (.gaia-page-curtain::after) usan inset negativo que se sale del viewport a la
   derecha/izquierda -- confirmado que ninguno de los dos es visible fuera de su
   zona, asi que contener el overflow aqui no cambia nada visual, solo quita la
   barra de scroll horizontal. Exclusivo de HOME via :has(.home-entry). */
html:has(.home-entry),body:has(.home-entry){overflow-x:hidden}
.motion-ready body::before{opacity:.48;transform:translate3d(0,0,0) scale(1)}
body.gaia-scrolled::before{opacity:.20;transform:translate3d(.6%,-.6%,0) scale(1.015)}

/* HOME: entrada por universos + velo propio por panel. */
.motion-ready .home-panel:first-child{animation:gaia-enter-left 700ms var(--gaia-ease) both}
.motion-ready .home-panel:nth-child(2){animation:gaia-enter-right 700ms var(--gaia-ease) 40ms both}
.motion-ready .home-wordmark{animation:gaia-wordmark-in 500ms var(--gaia-ease) 100ms both}
.motion-ready .home-panel-content{animation:gaia-copy-in 500ms var(--gaia-ease) 200ms both}
@keyframes gaia-enter-left{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes gaia-enter-right{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@keyframes gaia-wordmark-in{from{opacity:.75;transform:translate(-50%,calc(-50% - 8px));letter-spacing:-.01em}to{opacity:1;transform:translate(-50%,-50%);letter-spacing:-.06em}}
@keyframes gaia-copy-in{from{opacity:.70;transform:translateY(8px)}to{opacity:1;transform:none}}

.home-panel,.home-media img,.home-panel-content,.home-panel::after,.home-wordmark{will-change:transform,opacity}
.home-panel::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:#000;opacity:.22;transition:opacity 900ms var(--gaia-ease)}
.home-media img{transition:transform 1.45s var(--gaia-ease),filter 1.35s var(--gaia-ease),opacity 900ms ease}
.home-panel::after{transition:background 900ms var(--gaia-ease),opacity 900ms var(--gaia-ease),backdrop-filter 900ms var(--gaia-ease)}
.home-panel-content{transition:transform 800ms var(--gaia-ease),opacity 500ms ease,filter 650ms ease}
.home-kicker,.home-copy,.home-cta{transition:transform 650ms var(--gaia-ease),opacity 500ms ease,filter 500ms ease}
.home-panel:hover .home-media img,.home-panel:focus-visible .home-media img{transform:scale(1.038);filter:contrast(1.02) saturate(.97)}
.home-panel:hover::before,.home-panel:focus-visible::before{opacity:.08}
.home-panel:hover .home-panel-content,.home-panel:focus-visible .home-panel-content{transform:translateY(-8px)}
.home-panel:hover .home-cta,.home-panel:focus-visible .home-cta{transform:translateY(-2px)}
.home-grid:has(.home-panel:hover) .home-panel:not(:hover)::after{background:rgba(0,0,0,.50);backdrop-filter:blur(1.5px)}
.home-grid:has(.home-panel:hover) .home-panel:not(:hover)::before{opacity:.58}
.home-grid:has(.home-panel:hover) .home-panel:not(:hover) .home-panel-content{opacity:.62}
.home-grid:has(.home-panel:hover)~.home-wordmark{opacity:.88}

/* Subrayado progresivo. */
.home-cta,.discover{position:relative;text-decoration:none!important;display:inline-block}
.home-cta::after,.discover::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform-origin:left center;transform:scaleX(.26);opacity:.72;transition:transform 520ms var(--gaia-ease),opacity 400ms ease}
.home-panel:hover .home-cta::after,.home-panel:focus-visible .home-cta::after,.product-card:hover .discover::after,.product-card:focus-visible .discover::after{transform:scaleX(1);opacity:1}

/* Header: translucidez y blur que se consolidan al desplazarse. */
.site-head{transition:background 500ms ease,border-color 450ms ease,box-shadow 500ms ease,transform 500ms var(--gaia-ease),backdrop-filter 500ms ease;backdrop-filter:blur(8px) saturate(1.02)}
body.gaia-scrolled .site-head{background:rgba(244,241,235,.91);border-color:rgba(17,17,15,.18);box-shadow:0 10px 36px rgba(17,17,15,.035);backdrop-filter:blur(18px) saturate(1.05)}

/* Hero de universos: nube localizada + aparición en planos. */
.universe-hero{position:relative;overflow:hidden}
.universe-hero::after{content:"";position:absolute;inset:-12%;z-index:2;pointer-events:none;background:
  radial-gradient(52% 44% at 26% 34%,rgba(255,255,255,.18),transparent 73%),
  radial-gradient(42% 34% at 80% 62%,rgba(255,255,255,.10),transparent 70%);
  opacity:.54;filter:blur(28px);transform:translate3d(-1.5%,1%,0) scale(1.03);transition:opacity 1.25s var(--gaia-ease),transform 1.8s var(--gaia-ease)}
.universe-hero.gaia-hero-active::after{opacity:.24;transform:translate3d(1%,-1%,0) scale(1.01)}
.universe-media,.universe-copy{position:relative;z-index:3}
.motion-ready .universe-media{animation:gaia-hero-media 1150ms var(--gaia-ease) both}
.motion-ready .universe-copy>*{opacity:0;animation:gaia-hero-copy 850ms var(--gaia-ease) both}
.motion-ready .universe-copy>*:nth-child(1){animation-delay:200ms}
.motion-ready .universe-copy>*:nth-child(2){animation-delay:280ms}
.motion-ready .universe-copy>*:nth-child(3){animation-delay:380ms}
.motion-ready .universe-copy>*:nth-child(4){animation-delay:480ms}
@keyframes gaia-hero-media{from{opacity:.18;filter:blur(8px);transform:scale(.975)}to{opacity:1;filter:blur(0);transform:scale(1)}}
@keyframes gaia-hero-copy{from{opacity:0;filter:blur(4px);transform:translateY(24px)}to{opacity:1;filter:blur(0);transform:none}}
.universe-media{overflow:hidden}
.universe-media img{transform:translate3d(0,var(--gaia-parallax,0px),0) scale(var(--gaia-hero-scale,1));transition:transform 120ms linear,filter 1.1s var(--gaia-ease),opacity 900ms ease}
.universe-hero:hover .universe-media img{--gaia-hero-scale:1.018;filter:contrast(1.015) saturate(.96)}

/* Revelado por scroll: opacidad + blur + clip. */
.gaia-reveal{opacity:0;filter:blur(6px);transform:translateY(30px);clip-path:inset(5% 0 0 0);transition:opacity 850ms var(--gaia-ease),filter 920ms var(--gaia-ease),transform 980ms var(--gaia-ease),clip-path 1050ms var(--gaia-ease);transition-delay:var(--gaia-delay,0ms)}
.gaia-reveal.is-visible{opacity:1;filter:blur(0);transform:none;clip-path:inset(0)}
.editorial-cell.gaia-reveal{transform:translateY(22px)}
.editorial-cell.gaia-reveal.is-visible{transform:none}
.editorial-close.gaia-reveal{transform:none;clip-path:inset(14% 0 14% 0);transition:opacity 900ms var(--gaia-ease),filter 900ms var(--gaia-ease),clip-path 1150ms var(--gaia-ease)}
.editorial-close.gaia-reveal.is-visible{clip-path:inset(0)}

/* Tarjetas: velo sobre imagen que se retira al interactuar. */
.product-card{overflow:hidden;transition:transform 720ms var(--gaia-ease),box-shadow 720ms var(--gaia-ease),border-color 450ms ease,opacity 450ms ease}
.product-media{position:relative;overflow:hidden}
.product-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.03));opacity:.58;transition:opacity 800ms var(--gaia-ease),backdrop-filter 800ms var(--gaia-ease)}
.product-media img{transition:transform 1.18s var(--gaia-ease),filter 1.05s var(--gaia-ease),opacity 750ms ease}
.product-card:hover,.product-card:focus-visible{transform:translateY(-6px);box-shadow:0 20px 54px rgba(17,17,15,.085);border-color:rgba(17,17,15,.24)}
.product-card:hover .product-media::after,.product-card:focus-visible .product-media::after{opacity:.14;backdrop-filter:blur(0)}
.product-card:hover .product-media img,.product-card:focus-visible .product-media img{transform:scale(1.03);filter:contrast(1.02)}
.product-grid:has(.product-card:hover) .product-card:not(:hover){opacity:.86}
.product-card--archive:hover{box-shadow:0 20px 54px rgba(0,0,0,.16)}

/* Footer: aparece desde una película de opacidad. */
.site-footer{position:relative}
.site-footer::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 46%);opacity:.55;transition:opacity 900ms var(--gaia-ease)}
.site-footer.is-visible::before{opacity:.18}
.footer-shell{transition:transform 820ms var(--gaia-ease),opacity 700ms ease}
.site-footer.gaia-reveal{transform:translateY(20px)}
.site-footer.gaia-reveal.is-visible{transform:none}
.footer-col a,.socials a,.locale button{transition:opacity 280ms ease,transform 350ms var(--gaia-ease)}
.footer-col a:hover,.socials a:hover,.locale button:hover{opacity:.56;transform:translateY(-1px)}

/* Transición entre páginas: velo translúcido + blur, no cortina sólida. */
.gaia-page-curtain{position:fixed;inset:0;z-index:9999;pointer-events:none;background:rgba(17,17,15,.76);backdrop-filter:blur(14px) saturate(.92);opacity:0;transform:translateY(7%);transition:opacity 480ms var(--gaia-ease),transform 560ms var(--gaia-ease),backdrop-filter 520ms ease}
.gaia-page-curtain::after{content:"";position:absolute;inset:-15%;background:radial-gradient(44% 32% at 42% 40%,rgba(255,255,255,.16),transparent 72%);filter:blur(24px);opacity:.7}
.gaia-page-curtain.is-leaving{opacity:1;transform:translateY(0);backdrop-filter:blur(20px) saturate(.86)}
.gaia-page-curtain.is-entering{opacity:0;transform:translateY(-5%);transition:none}
body.gaia-leaving{overflow:hidden}

/* Entrada inicial del documento. */
@keyframes gaia-body-in{from{opacity:.01}to{opacity:1}}
.motion-ready body{animation:gaia-body-in 720ms var(--gaia-ease) both}

/* Accesibilidad. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  body::before,.home-panel::before,.universe-hero::after{display:none!important}
  .gaia-reveal{opacity:1!important;filter:none!important;transform:none!important;clip-path:none!important}
  .universe-media img{transform:none!important}
  .gaia-page-curtain{display:none!important}
}

@media(max-width:760px){
  body::before{opacity:.18}
  .home-panel:hover .home-media img{transform:none}
  .product-card:hover{transform:none;box-shadow:none}
  .product-card:hover .product-media img{transform:none}
  .product-grid:has(.product-card:hover) .product-card:not(:hover){opacity:1}
  .gaia-reveal{transform:translateY(18px)}
}
