/* ============================================================
   ORENSÈN — Organic motion layer
   ============================================================ */

.org-ribbons, .org-cursor, .org-wave, .org-blobs{ pointer-events:none; }
html:not(.organic) .org-ribbons,
html:not(.organic) .org-cursor,
html:not(.organic) .org-blobs{ display:none; }
html[data-motion="off"] .org-ribbons,
html[data-motion="off"] .org-cursor,
html[data-motion="off"] .org-blobs{ display:none; }

.hero > .wrap{ position:relative; z-index:2; }
.org-ribbons{ position:absolute; inset:0; width:100%; height:100%; z-index:1; overflow:visible; }
.org-ribbons path{ fill:none; stroke-linecap:round; }

/* dancer's-trail cursor */
.org-cursor{ position:absolute; inset:0; z-index:1; overflow:visible; opacity:0; transition:opacity .5s ease; }
.hero:hover .org-cursor{ opacity:1; }
.org-cursor circle{ mix-blend-mode:screen; }
html[data-mood="minimal"] .org-cursor circle,
html[data-mood="warm"] .org-cursor circle{ mix-blend-mode:multiply; }

/* hero entrance choreography */
@media (prefers-reduced-motion: no-preference){
  html.organic.can-animate .hero .hero-tag{ animation:org-rise .85s var(--ease) both; }
  html.organic.can-animate .hero .hero-sub{ animation:org-rise .95s .18s var(--ease) both; }
  html.organic.can-animate .hero .hero-cta{ animation:org-rise .95s .32s var(--ease) both; }
  html.organic.can-animate .hero .hero-tag .pill{ animation:org-pop .7s cubic-bezier(.34,1.56,.64,1) both; }
  html.organic.can-animate .hero .hero-tag .pill:nth-child(2){ animation-delay:.12s; }
}
@keyframes org-rise{ from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:none; } }
@keyframes org-pop{ from{ opacity:0; transform:translateY(14px) scale(.9); } to{ opacity:1; transform:none; } }

html.org-done .hero .hero-tag,
html.org-done .hero .hero-sub,
html.org-done .hero .hero-cta,
html.org-done .hero .hero-tag .pill{ animation:none !important; opacity:1 !important; transform:none !important; }

/* bobbing-wave marquee */
@media (prefers-reduced-motion: no-preference){
  html.organic .marquee.alt .marquee-track > span{
    animation:org-bob 2.6s ease-in-out infinite;
    animation-delay:calc(var(--i,0) * -0.16s);
    will-change:transform;
  }
}
@keyframes org-bob{ 0%,100%{ transform:translateY(-26%) rotate(-2deg); } 50%{ transform:translateY(26%) rotate(2deg); } }

/* morphing blobs (ALMA) */
.org-blobs{ position:absolute; inset:0; z-index:1; overflow:hidden; }
.org-blobs svg{ position:absolute; filter:blur(2px); }
.org-blobs path{ opacity:.16; }

/* organic scroll reveal for cards */
@media (prefers-reduced-motion: no-preference){
  html.organic.can-animate .disc.reveal{ transform:translateY(40px) rotate(-1.4deg) scale(.97); }
  html.organic.can-animate .disc.reveal.in{ transform:none; transition-timing-function:cubic-bezier(.34,1.3,.5,1); }
  html.organic.can-animate .prof.reveal{ transform:translateY(40px) rotate(1.2deg); }
  html.organic.can-animate .prof.reveal.in{ transform:none; transition-timing-function:cubic-bezier(.34,1.3,.5,1); }
}

/* gentle scroll-sway */
html.organic .eyebrow{ display:inline-flex; }
html.organic .sway{ transform:translateY(var(--sway,0)); transition:transform .2s linear; }

/* ============================================================
   INTRO CURTAIN — page-load reveal
   ============================================================ */
.intro-lock{ overflow:hidden; }
.intro{ position:fixed; inset:0; z-index:9000; display:grid; place-items:center; overflow:hidden;
  animation:intro-auto 0s linear 3.4s forwards; }
@keyframes intro-auto{ to{ opacity:0; visibility:hidden; pointer-events:none; } }
.intro-panels{ position:absolute; inset:0; display:flex; }
.intro-panels span{ flex:1; }
.intro-panels span:nth-child(1){ background:linear-gradient(165deg,#0C2C2A,#16524F); }
.intro-panels span:nth-child(2){ background:linear-gradient(165deg,#114642,#1F6E6A); }
.intro-panels span:nth-child(3){ background:linear-gradient(165deg,#16524F,#0C2C2A); }
.intro-panels span:nth-child(4){ background:linear-gradient(165deg,#1F6E6A,#114642); }
.intro-center{ position:relative; z-index:2; text-align:center; color:#fff; padding:20px; }
.intro-word{ font-family:var(--display); font-weight:var(--dw,400); font-size:clamp(2.8rem,10vw,6.6rem);
  letter-spacing:.02em; line-height:1; opacity:0; transform:translateY(20px) scale(.95);
  animation:intro-in .9s cubic-bezier(.22,1,.36,1) .15s forwards; }
.intro-word i{ color:var(--brand-teal); font-style:normal; }
.intro-tag{ font-family:var(--serif); font-style:italic; font-size:clamp(1rem,2.4vw,1.6rem);
  color:rgba(255,255,255,.82); margin-top:.5em; opacity:0;
  animation:intro-in .9s cubic-bezier(.22,1,.36,1) .5s forwards; }
@keyframes intro-in{ to{ opacity:1; transform:none; } }
.intro--out .intro-center{ opacity:0; transform:translateY(-12px); transition:opacity .45s ease, transform .6s ease; }

/* variant: RIDEAU */
html[data-intro="curtain"] .intro--out .intro-panels span{ transform:translateY(-104%); transition:transform 1s cubic-bezier(.76,0,.24,1); }
html[data-intro="curtain"] .intro--out .intro-panels span:nth-child(2){ transition-delay:.07s; }
html[data-intro="curtain"] .intro--out .intro-panels span:nth-child(3){ transition-delay:.14s; }
html[data-intro="curtain"] .intro--out .intro-panels span:nth-child(4){ transition-delay:.21s; }

/* variant: SÉPARATION */
html[data-intro="split"] .intro--out .intro-panels span{ transition:transform .95s cubic-bezier(.76,0,.24,1); }
html[data-intro="split"] .intro--out .intro-panels span:nth-child(1),
html[data-intro="split"] .intro--out .intro-panels span:nth-child(2){ transform:translateX(-110%); }
html[data-intro="split"] .intro--out .intro-panels span:nth-child(3),
html[data-intro="split"] .intro--out .intro-panels span:nth-child(4){ transform:translateX(110%); }

/* variant: STORES */
html[data-intro="blinds"] .intro-panels{ flex-direction:column; }
html[data-intro="blinds"] .intro--out .intro-panels span{ transition:transform .8s cubic-bezier(.76,0,.24,1); }
html[data-intro="blinds"] .intro--out .intro-panels span:nth-child(odd){ transform:translateX(-112%); }
html[data-intro="blinds"] .intro--out .intro-panels span:nth-child(even){ transform:translateX(112%); }
html[data-intro="blinds"] .intro--out .intro-panels span:nth-child(2){ transition-delay:.06s; }
html[data-intro="blinds"] .intro--out .intro-panels span:nth-child(3){ transition-delay:.12s; }
html[data-intro="blinds"] .intro--out .intro-panels span:nth-child(4){ transition-delay:.18s; }

/* variant: IRIS */
html[data-intro="iris"] .intro{ clip-path:circle(150% at 50% 50%); }
html[data-intro="iris"] .intro--out{ clip-path:circle(0% at 50% 50%); transition:clip-path 1.05s cubic-bezier(.76,0,.24,1); }
html[data-intro="iris"] .intro--out .intro-center{ transform:scale(1.5); opacity:0; transition:transform .9s cubic-bezier(.66,0,.34,1), opacity .8s ease; }

@media (prefers-reduced-motion: reduce){ .intro{ display:none; } }
html[data-motion="off"] .intro{ display:none !important; }

/* ============================================================
   SECTION REVEALS — blur-up on scroll-in
   ============================================================ */
@media (prefers-reduced-motion: no-preference){
  html.organic.can-animate .section-head.reveal,
  html.organic.can-animate .disc-head .section-head.reveal{ opacity:1 !important; transform:none !important; filter:none !important; }
  html.organic.can-animate .section-head.reveal .eyebrow{ opacity:0; transform:translateY(14px); filter:blur(8px); transition:opacity .7s var(--ease), transform .7s var(--ease), filter .7s var(--ease); }
  html.organic.can-animate .section-head.reveal h2{ opacity:0; transform:translateY(20px); filter:blur(18px); transition:opacity .95s cubic-bezier(.22,1,.36,1) .1s, transform .95s cubic-bezier(.22,1,.36,1) .1s, filter .95s cubic-bezier(.22,1,.36,1) .1s; }
  html.organic.can-animate .section-head.reveal .lead{ opacity:0; transform:translateY(16px); filter:blur(12px); transition:opacity .8s var(--ease) .34s, transform .8s var(--ease) .34s, filter .8s var(--ease) .34s; }
  html.organic.can-animate .section-head.reveal.in .eyebrow{ opacity:1; transform:none; filter:blur(0); }
  html.organic.can-animate .section-head.reveal.in h2{ opacity:1; transform:none; filter:blur(0); }
  html.organic.can-animate .section-head.reveal.in .lead{ opacity:1; transform:none; filter:blur(0); }

  html.organic.can-animate .about-media.reveal,
  html.organic.can-animate .rooms-imgs.reveal,
  html.organic.can-animate .hero-media.reveal{ opacity:1 !important; transform:none !important; filter:none !important; }
  html.organic.can-animate .about-media.reveal .ph{ opacity:0; transform:scale(1.06); filter:blur(20px); transition:opacity 1.1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1), filter 1.1s cubic-bezier(.22,1,.36,1); }
  html.organic.can-animate .about-media.reveal.in .ph{ opacity:1; transform:none; filter:blur(0); }
}

/* ============================================================
   HERO FILM GRAIN
   ============================================================ */
.hero::before{
  content:""; position:absolute; inset:-60%; z-index:1; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E");
  background-size:200px 200px;
  opacity:.5; mix-blend-mode:overlay;
}
html[data-hero="spotlight"] .hero::before,
html[data-hero="overlay"] .hero::before{ opacity:.62; mix-blend-mode:soft-light; }
@media (prefers-reduced-motion: no-preference){
  html.organic:not([data-motion="off"]) .hero::before{ animation:hero-grain 1.1s steps(5) infinite; }
}
@keyframes hero-grain{
  0%{ transform:translate(0,0); } 20%{ transform:translate(-5%,4%); }
  40%{ transform:translate(4%,-5%); } 60%{ transform:translate(-3%,5%); }
  80%{ transform:translate(5%,-3%); } 100%{ transform:translate(0,0); }
}
