/* ============== AFULKI — Bestiaire Olfactif ============== */
:root{
  --noir:#0b0a08;
  --noir-2:#100d0a;
  --noir-3:#171209;
  --or:#c8a24a;
  --or-clair:#ecd293;
  --or-vif:#f3dca0;
  --or-fonce:#8a6c30;
  --bronze:#6f5526;
  --ivoire:#ece3d2;
  --ivoire-2:#bcae93;
  --bleu:#5e84a6;          /* rare cool accent (papillon) */
  --line:rgba(200,162,74,.22);
  --line-2:rgba(200,162,74,.12);
  --ease:cubic-bezier(.16,1,.3,1);
  --maxw:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--noir);color:var(--ivoire);
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:clamp(17px,1.15vw,20px);line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  cursor:none;
}
@media (pointer:coarse){body{cursor:auto}}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
em{font-style:italic;color:var(--or-clair)}
::selection{background:rgba(200,162,74,.3);color:#fff}

h1,h2,h3{font-family:"Cinzel",serif;font-weight:600;margin:0;line-height:1.05}

/* ---------- ambient overlays ---------- */
.grain{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 8%,transparent 38%,rgba(0,0,0,.55) 100%);}
#dust{position:fixed;inset:0;z-index:2;pointer-events:none}

/* ---------- custom cursor ---------- */
.cursor{position:fixed;top:0;left:0;z-index:90;width:34px;height:34px;border:1px solid var(--or);
  border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;
  transition:width .3s var(--ease),height .3s var(--ease),background .3s,opacity .3s;
  mix-blend-mode:screen;opacity:0}
.cursor::after{content:"";position:absolute;inset:50%;width:3px;height:3px;margin:-1.5px;border-radius:50%;background:var(--or-vif)}
.cursor.is-hover{width:64px;height:64px;background:rgba(200,162,74,.08)}
@media (pointer:coarse){.cursor{display:none}}

/* ---------- preloader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--noir);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;
  transition:opacity .9s var(--ease),visibility .9s}
.loader.done{opacity:0;visibility:hidden}
.loader__mark{font-family:"Cinzel";font-weight:700;font-size:clamp(2rem,7vw,3.4rem);
  letter-spacing:.4em;color:var(--or);text-indent:.4em}
.loader__mark span{opacity:.35}
.loader__line{width:min(240px,50vw);height:1px;background:var(--line-2);overflow:hidden}
.loader__line i{display:block;height:100%;width:100%;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,var(--or),transparent);
  animation:load 1.5s var(--ease) infinite}
@keyframes load{to{transform:translateX(100%)}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.5rem clamp(1.2rem,4vw,3rem);
  transition:background .5s,backdrop-filter .5s,padding .5s,border-color .5s;
  border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(11,10,8,.72);backdrop-filter:blur(14px);
  border-bottom-color:var(--line-2);padding-top:1rem;padding-bottom:1rem}
.nav__brand{font-family:"Cinzel";font-weight:700;letter-spacing:.34em;font-size:1.05rem;
  color:var(--or-clair);text-indent:.34em}
.nav__links{display:flex;gap:2.2rem;font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;
  font-family:"Cinzel";font-weight:400}
.nav__links a{color:var(--ivoire-2);position:relative;padding:.2rem 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--or);transition:width .4s var(--ease)}
.nav__links a:hover{color:var(--or-clair)}
.nav__links a:hover::after{width:100%}
.nav__cta{font-family:"Cinzel";font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--or-clair);border:1px solid var(--line);border-radius:40px;padding:.7rem 1.4rem;
  transition:background .4s,border-color .4s,color .4s}
.nav__cta:hover{background:var(--or);color:var(--noir);border-color:var(--or)}
@media (max-width:860px){.nav__links{display:none}.nav__cta{display:none}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:6rem 1.2rem 2.4rem;z-index:3;isolation:isolate}
.hero__glow{position:absolute;z-index:-1;top:14%;left:50%;transform:translateX(-50%);
  width:min(900px,120vw);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(200,162,74,.20),rgba(200,162,74,.05) 40%,transparent 62%);
  filter:blur(10px)}
.hero__rays{position:absolute;z-index:-1;top:14%;left:50%;width:min(1100px,150vw);aspect-ratio:1;
  transform:translate(-50%,-50%);opacity:.5;
  background:repeating-conic-gradient(from 0deg at 50% 50%,
    rgba(200,162,74,.10) 0deg,transparent 1.4deg 7deg);
  -webkit-mask:radial-gradient(circle,transparent 24%,#000 30%,#000 52%,transparent 60%);
          mask:radial-gradient(circle,transparent 24%,#000 30%,#000 52%,transparent 60%);
  animation:spin 90s linear infinite}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

.hero__kicker{font-family:"Cinzel";font-size:.78rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--or);opacity:.85;margin-bottom:1.6rem;text-indent:.42em}
.hero__title{margin:0}
.hero__letters{display:inline-flex;gap:clamp(.05em,1.2vw,.16em);
  font-size:clamp(3rem,12.5vw,8.6rem);font-weight:800;letter-spacing:.04em;line-height:1;
  filter:drop-shadow(0 6px 30px rgba(200,162,74,.25))}
.hero__letters span{display:inline-block;
  background:linear-gradient(180deg,#fff6e0 2%,var(--or-clair) 32%,var(--or) 60%,var(--or-fonce) 102%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  opacity:0;transform:translateY(.55em);
  transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
body.ready .hero__letters span{opacity:1;transform:none}
.hero__letters span:nth-child(1){transition-delay:.10s}
.hero__letters span:nth-child(2){transition-delay:.18s}
.hero__letters span:nth-child(3){transition-delay:.26s}
.hero__letters span:nth-child(4){transition-delay:.34s}
.hero__letters span:nth-child(5){transition-delay:.42s}
.hero__letters span:nth-child(6){transition-delay:.50s}
.hero__sub{font-family:"Cinzel";font-weight:500;letter-spacing:.5em;text-transform:uppercase;
  font-size:clamp(.7rem,2.1vw,1.05rem);color:var(--ivoire-2);margin-top:1rem;text-indent:.5em}

.hero__medallion{position:relative;margin:1.8rem 0 .8rem;width:clamp(140px,19vw,210px);aspect-ratio:1;
  display:grid;place-items:center}
.hero__medallion img{width:100%;border-radius:50%;
  -webkit-mask:radial-gradient(circle,#000 60%,transparent 74%);
          mask:radial-gradient(circle,#000 60%,transparent 74%);
  filter:drop-shadow(0 10px 40px rgba(0,0,0,.6));
  animation:float 8s ease-in-out infinite}
.hero__ring{position:absolute;inset:-6%;border:1px solid var(--line);border-radius:50%;
  animation:spin 40s linear infinite}
.hero__ring::before{content:"";position:absolute;top:-3px;left:50%;width:5px;height:5px;border-radius:50%;
  background:var(--or-vif);box-shadow:0 0 10px var(--or)}
.hero__ring--2{inset:-15%;border-style:dashed;border-color:var(--line-2);animation-duration:70s;animation-direction:reverse}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

.hero__tagline{font-size:clamp(1.2rem,2.4vw,1.7rem);font-weight:400;color:var(--ivoire);
  margin:1.4rem 0 0;max-width:30ch;font-style:italic}
.hero__scroll{margin-top:2.6rem;font-family:"Cinzel";font-size:.72rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--ivoire-2);display:inline-flex;flex-direction:column;
  align-items:center;gap:.8rem;text-indent:.32em}
.hero__scroll span{width:1px;height:46px;background:linear-gradient(var(--or),transparent);position:relative;overflow:hidden}
.hero__scroll span::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;
  background:var(--or-vif);animation:drop 1.8s var(--ease) infinite}
@keyframes drop{0%{transform:translateY(-100%)}60%,100%{transform:translateY(260%)}}

/* ---------- reveal base ---------- */
[data-reveal]{opacity:0;transform:translateY(32px) scale(.992);
  transition:opacity 1s var(--ease),transform 1.15s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-rise]{opacity:0;transform:translateY(22px);
  transition:opacity .9s var(--ease),transform 1s var(--ease)}
[data-rise].is-in{opacity:1;transform:none}
.no-js [data-reveal],.no-js [data-rise]{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-rise]{transition-duration:.01ms}
  .hero__rays,.hero__ring,.hero__medallion img,.hero__scroll span::after{animation:none}
}

/* ---------- MANIFESTO ---------- */
.manifesto{position:relative;max-width:980px;margin:0 auto;padding:clamp(7rem,16vw,13rem) 1.4rem;text-align:center;z-index:3}
.manifesto__rule{width:1px;height:clamp(60px,9vw,120px);margin:0 auto 2.6rem;
  background:linear-gradient(var(--or),transparent)}
.manifesto__eyebrow{font-family:"Cinzel";font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;
  color:var(--or);margin:0 0 1.8rem;text-indent:.4em}
.manifesto__text{font-family:"Cormorant Garamond";font-weight:300;
  font-size:clamp(1.7rem,4.6vw,3.3rem);line-height:1.28;letter-spacing:.005em;color:var(--ivoire)}
.manifesto__small{margin:2.2rem auto 0;max-width:54ch;color:var(--ivoire-2);font-size:1.08rem}

/* ---------- section head ---------- */
.section-head{text-align:center;max-width:var(--maxw);margin:0 auto;padding:0 1.4rem 3.4rem}
.section-head__num{font-family:"Cinzel";font-weight:500;font-size:.9rem;letter-spacing:.3em;
  color:var(--or-fonce);display:block;margin-bottom:1rem}
.section-head__title{font-size:clamp(2.4rem,6.5vw,4.6rem);font-weight:700;letter-spacing:.04em;
  background:linear-gradient(180deg,var(--or-clair),var(--or-fonce));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.section-head__lede{color:var(--ivoire-2);font-style:italic;font-size:1.2rem;margin:.8rem 0 0}

/* ---------- BESTIAIRE GRID ---------- */
.bestiaire{padding:clamp(4rem,8vw,7rem) 0 clamp(6rem,12vw,10rem);position:relative;z-index:3}
.grid{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.2rem,4vw,2.4rem);
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,2rem)}
@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid{grid-template-columns:1fr;max-width:380px}}

.card{position:relative;text-align:center;padding:2.4rem 1.6rem 2.6rem;
  border:1px solid var(--line-2);border-radius:6px;
  background:linear-gradient(180deg,rgba(23,18,9,.5),rgba(11,10,8,.2));
  transition:transform .6s var(--ease),border-color .6s,background .6s;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;border-radius:6px;padding:1px;
  background:linear-gradient(160deg,rgba(200,162,74,.4),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .6s}
.card:hover{transform:translateY(-10px);border-color:var(--line);
  background:linear-gradient(180deg,rgba(34,26,11,.7),rgba(11,10,8,.3))}
.card:hover::before{opacity:1}
.card__media{position:relative;width:clamp(140px,16vw,180px);aspect-ratio:1;margin:0 auto 1.6rem;display:grid;place-items:center}
.card__media img{width:100%;border-radius:50%;
  -webkit-mask:radial-gradient(circle,#000 62%,transparent 75%);mask:radial-gradient(circle,#000 62%,transparent 75%);
  transition:transform 1.1s var(--ease)}
.card:hover .card__media img{transform:scale(1.07) rotate(2deg)}
.card__halo{position:absolute;inset:-8%;border-radius:50%;border:1px solid var(--line-2);
  transition:transform 1.1s var(--ease),border-color .6s}
.card:hover .card__halo{transform:rotate(40deg);border-color:var(--line)}
.card__totem{font-family:"Cinzel";font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--or);margin-bottom:.7rem;text-indent:.24em}
.card__name{font-size:1.5rem;font-weight:600;color:var(--ivoire);letter-spacing:.02em}
.card__family{font-style:italic;color:var(--ivoire-2);font-size:1.02rem;margin-top:.3rem}
.card__line{margin:1.1rem 0 0;font-size:1.05rem;color:var(--or-clair);font-style:italic;opacity:.92}

/* ---------- BAR A PARFUM ---------- */
.bar{position:relative;display:grid;grid-template-columns:1.15fr .85fr;align-items:stretch;
  min-height:92svh;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);z-index:3}
@media (max-width:920px){.bar{grid-template-columns:1fr}}
.bar__media{position:relative;overflow:hidden}
.bar__media img{position:absolute;inset:0;width:100%;height:120%;object-fit:cover;will-change:transform}
.bar__shade{position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 40%,rgba(11,10,8,.85) 100%),
            linear-gradient(0deg,rgba(11,10,8,.6),transparent 40%)}
@media (max-width:920px){.bar__media{min-height:56svh}.bar__shade{background:linear-gradient(0deg,rgba(11,10,8,.92),rgba(11,10,8,.25) 60%)}}
.bar__panel{display:flex;flex-direction:column;justify-content:center;gap:1.2rem;
  padding:clamp(3rem,7vw,6rem) clamp(1.6rem,5vw,4.5rem)}
.bar__title{font-size:clamp(2.4rem,5.4vw,4.2rem);font-weight:600;letter-spacing:.03em;line-height:1.05;
  color:var(--ivoire)}
.bar__title em{display:inline;color:var(--or-clair);font-family:"Cormorant Garamond";font-weight:500;font-style:italic;text-transform:none;letter-spacing:0}
.bar__text{color:var(--ivoire-2);max-width:42ch;font-size:1.12rem}
.bar__steps{list-style:none;margin:.6rem 0 .4rem;padding:0;display:flex;flex-direction:column;gap:.7rem}
.bar__steps li{display:flex;gap:1rem;align-items:baseline;font-size:1.08rem;color:var(--ivoire);
  border-bottom:1px solid var(--line-2);padding-bottom:.7rem}
.bar__steps b{font-family:"Cinzel";color:var(--or);font-size:.85rem;letter-spacing:.1em;min-width:1.8em}

/* ---------- buttons ---------- */
.btn{align-self:flex-start;position:relative;font-family:"Cinzel";font-size:.82rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--noir);background:linear-gradient(180deg,var(--or-vif),var(--or));
  padding:1rem 2.2rem;border-radius:44px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s;
  box-shadow:0 8px 30px rgba(200,162,74,.18)}
.btn span{position:relative;z-index:1}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff,var(--or-clair));
  opacity:0;transition:opacity .4s}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(200,162,74,.32)}
.btn:hover::after{opacity:1}

/* ---------- CONTACT ---------- */
.contact{position:relative;text-align:center;padding:clamp(7rem,15vw,12rem) 1.4rem;max-width:760px;margin:0 auto;z-index:3}
.contact__glow{position:absolute;z-index:-1;inset:auto 0 0 50%;transform:translateX(-50%);
  width:700px;max-width:120vw;height:420px;
  background:radial-gradient(circle at 50% 100%,rgba(200,162,74,.16),transparent 62%);filter:blur(8px)}
.contact__eyebrow{font-family:"Cinzel";font-size:.78rem;letter-spacing:.4em;text-transform:uppercase;color:var(--or);text-indent:.4em}
.contact__title{font-size:clamp(2.2rem,6vw,4rem);font-weight:600;margin:1.4rem 0 0;color:var(--ivoire);line-height:1.08}
.contact__form{display:flex;gap:.6rem;margin:2.6rem auto 0;max-width:480px;flex-wrap:wrap;justify-content:center}
.contact__form input{flex:1 1 240px;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:44px;padding:1rem 1.4rem;color:var(--ivoire);font-family:"Cormorant Garamond";font-size:1.05rem;outline:none;transition:border-color .3s,background .3s}
.contact__form input:focus{border-color:var(--or);background:rgba(200,162,74,.06)}
.contact__form input::placeholder{color:var(--ivoire-2);opacity:.6}
.contact__form button{font-family:"Cinzel";font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--noir);background:linear-gradient(180deg,var(--or-vif),var(--or));border:0;border-radius:44px;
  padding:1rem 1.8rem;cursor:none;transition:transform .3s var(--ease),box-shadow .3s}
.contact__form button:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(200,162,74,.3)}
.contact__socials{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-top:2.6rem;
  font-family:"Cinzel";font-size:.82rem;letter-spacing:.16em;text-transform:uppercase}
.contact__socials a{color:var(--ivoire-2);position:relative}
.contact__socials a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--or);transition:width .4s var(--ease)}
.contact__socials a:hover{color:var(--or-clair)}
.contact__socials a:hover::after{width:100%}

/* ---------- FOOTER ---------- */
.footer{text-align:center;padding:clamp(3rem,7vw,5rem) 1.4rem 3rem;border-top:1px solid var(--line-2);position:relative;z-index:3}
.footer__mark{font-family:"Cinzel";font-weight:700;letter-spacing:.42em;font-size:clamp(1.6rem,6vw,2.6rem);
  color:var(--or);text-indent:.42em}
.footer__sub{font-family:"Cinzel";letter-spacing:.4em;text-transform:uppercase;font-size:.72rem;color:var(--ivoire-2);margin-top:.6rem;text-indent:.4em}
.footer__meta{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-top:2rem;
  color:var(--ivoire-2);font-size:.95rem;font-style:italic;opacity:.7}
