/* ==========================================================================
   LUNYX — lunyx.dev
   Nuit profonde · clair de lune · précision
   ========================================================================== */

:root{
  --bg:#060A13;
  --bg2:#0A101E;
  --surface:rgba(15,23,42,.62);
  --surface2:rgba(20,30,54,.55);
  --ink:#EAF0FA;
  --ink2:#B4BFD4;
  --ink3:#8492AB;
  --lune:#E7D8AD;
  --lune-vif:#F4E9C8;
  --lune-ink:#171104;
  --ligne:rgba(234,240,250,.10);
  --ligne-forte:rgba(234,240,250,.18);
  --font-d:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-b:"Manrope", -apple-system, "Segoe UI", sans-serif;
  --wrap:1120px;
  --r:18px;
}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  background:transparent;
  color:var(--ink);
  font-family:var(--font-b);
  font-size:17.5px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:var(--lune);color:var(--lune-ink)}
img,svg{display:block;max-width:100%}
a{color:var(--lune);text-decoration:none}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

:focus-visible{outline:2px solid var(--lune);outline-offset:3px;border-radius:4px}

/* --- Ciel ------------------------------------------------------------ */
#sky{position:fixed;inset:0;z-index:-2;width:100%;height:100%}
.sky-glow{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(1200px 640px at 50% -12%, rgba(112,146,220,.14), transparent 62%),
    radial-gradient(900px 520px at 88% 4%, rgba(231,216,173,.05), transparent 60%);
}

/* --- Typographie ------------------------------------------------------ */
h1,h2,h3{font-family:var(--font-d);font-weight:600;line-height:1.12;margin:0 0 .45em;letter-spacing:.005em}
h1{font-size:clamp(2.7rem,6vw,4.6rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.55rem}
.lead{font-size:clamp(1.06rem,1.5vw,1.22rem);color:var(--ink2);max-width:34em}
.muted{color:var(--ink2)}
.fine{color:var(--ink3);font-size:.86rem}
.serif-i{font-family:var(--font-d);font-style:italic;font-weight:500}
.num{font-variant-numeric:tabular-nums}

.eyebrow{
  display:flex;align-items:center;gap:14px;
  font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--lune);margin:0 0 22px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--lune);opacity:.7}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:26px;height:1px;background:var(--lune);opacity:.7}

/* --- Structure -------------------------------------------------------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 26px}
.sec{padding:104px 0}
.sec-tight{padding:72px 0}
.sec-line{border-top:1px solid var(--ligne)}
.center{text-align:center}
.center .lead{margin-inline:auto}

/* --- Navigation ------------------------------------------------------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  transition:background .35s ease, border-color .35s ease, backdrop-filter .35s ease;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(6,10,19,.72);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-bottom-color:var(--ligne);
}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}
.brand svg{width:19px;height:19px;color:var(--lune)}
.brand b{font:700 .94rem/1 var(--font-b);letter-spacing:.3em;padding-left:.3em}
.brand{transform:scale(1.4);transform-origin:left center}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{color:var(--ink2);font-size:.95rem;font-weight:500;position:relative;padding:6px 0;transition:color .25s}
.nav-links a:hover{color:var(--ink)}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:var(--lune);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a[aria-current="page"]::after{transform:scaleX(1);opacity:.65}
.nav-cta{
  border:1px solid rgba(231,216,173,.4);border-radius:999px;
  padding:8px 18px !important;color:var(--lune) !important;font-weight:600 !important;
  transition:background .25s,color .25s,border-color .25s !important;
}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--lune);color:var(--lune-ink) !important;border-color:var(--lune)}
.lang-btn{
  background:none;border:1px solid var(--ligne-forte);border-radius:999px;
  color:var(--ink2);font:600 .74rem/1 var(--font-b);letter-spacing:.14em;
  padding:8px 13px;cursor:pointer;transition:color .25s,border-color .25s;
}
.lang-btn:hover{color:var(--lune);border-color:rgba(231,216,173,.5)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px}
.burger span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px;transition:transform .3s,opacity .3s}
.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .burger span:nth-child(2){opacity:0}
.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- Boutons ---------------------------------------------------------- */
.btns{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--lune);color:var(--lune-ink);
  font:600 .98rem/1 var(--font-b);
  padding:16px 30px;border-radius:999px;border:1px solid var(--lune);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px -12px rgba(231,216,173,.45);background:var(--lune-vif)}
.btn .arr{transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}
.btn-ghost{
  background:transparent;color:var(--lune);border-color:rgba(231,216,173,.4);
}
.btn-ghost:hover{background:rgba(231,216,173,.08);box-shadow:none}

.link-arr{font-weight:600;display:inline-flex;align-items:center;gap:8px}
.link-arr .arr{transition:transform .25s}
.link-arr:hover .arr{transform:translateX(4px)}

/* --- Héros ------------------------------------------------------------ */
.hero{min-height:100svh;display:flex;align-items:center;padding:150px 0 90px}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;width:100%}
.hero .lead{margin-bottom:38px}
.hero-meta{margin-top:44px;display:flex;gap:26px;color:var(--ink3);font-size:.84rem;letter-spacing:.1em;text-transform:uppercase}
.hero-meta span{display:flex;align-items:center;gap:9px}
.hero-meta i{width:4px;height:4px;border-radius:50%;background:var(--lune);opacity:.8}

.page-hero{padding:190px 0 84px}
.page-hero .lead{margin-top:6px}

/* --- Lune ------------------------------------------------------------- */
.moon-col{display:flex;flex-direction:column;align-items:center;gap:22px}
.moon-wrap{position:relative;width:min(330px,68vw);aspect-ratio:1}
.moon-halo{
  inset:auto;
  position:absolute;left:50%;top:50%;width:150%;height:150%;
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
    background:radial-gradient(circle,
    rgba(240,230,198,.16) 0%,
    rgba(240,230,198,.16) 32%,
    rgba(240,230,198,.118) 38%,
    rgba(240,230,198,.086) 44%,
    rgba(240,230,198,.062) 50%,
    rgba(240,230,198,.044) 56%,
    rgba(240,230,198,.031) 62%,
    rgba(240,230,198,.021) 68%,
    rgba(240,230,198,.0145) 73%,
    rgba(240,230,198,.0098) 78%,
    rgba(240,230,198,.0066) 82%,
    rgba(240,230,198,.0043) 86%,
    rgba(240,230,198,.0028) 89%,
    rgba(240,230,198,.0017) 92%,
    rgba(240,230,198,.001) 94%,
    rgba(240,230,198,.00055) 96%,
    rgba(240,230,198,.00028) 97.5%,
    rgba(240,230,198,.00012) 98.7%,
    rgba(240,230,198,.00004) 99.5%,
    transparent 100%);
  animation:halo 7.5s ease-in-out infinite alternate;
}
@keyframes halo{from{opacity:.7;transform:translate(-50%,-50%) scale(.99)}to{opacity:1;transform:translate(-50%,-50%) scale(1.02)}}
#moon{position:relative;width:100%;height:100%}
.moon-img,.moon-shadow{position:absolute;inset:0;width:100%;height:100%;border-radius:50%}
.moon-img{object-fit:cover}
.moon-shadow{pointer-events:none}
.moon-cap{
  color:var(--ink3);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;
}
.moon-cap b{color:var(--ink2);font-weight:600}

/* --- Credo ------------------------------------------------------------ */
.credo{display:grid;grid-template-columns:repeat(3,1fr)}
.credo>div{padding:38px 34px;border-left:1px solid var(--ligne)}
.credo>div:first-child{border-left:0;padding-left:0}
.credo h3{font-size:1.42rem;margin-bottom:.4em}
.credo p{color:var(--ink2);font-size:.99rem}

/* --- Cartes ----------------------------------------------------------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--surface2),var(--surface));
  border:1px solid var(--ligne);border-radius:var(--r);
  padding:34px 32px;
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  transition:transform .35s ease,border-color .35s ease;
}
a.card{color:inherit;display:flex;flex-direction:column;height:100%}
.card:hover{transform:translateY(-4px);border-color:rgba(231,216,173,.32)}
.card::after{
  content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(244,233,200,.055),transparent);
  transform:skewX(-18deg);transition:left .8s ease;pointer-events:none;
}
.card:hover::after{left:130%}
.card .chip{margin-bottom:22px}
.card{display:flex;flex-direction:column}
.card .chip:last-child{margin-top:auto;margin-bottom:0}
.card h3{font-style:italic;font-weight:600;font-size:1.7rem}
.card .tag{color:var(--ink3);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px}
.card p{color:var(--ink2);font-size:.98rem}
.card .link-arr{margin-top:18px;font-size:.92rem}
a.card .link-arr{margin-top:auto;padding-top:18px}

.sigil{width:50px;height:50px;color:var(--lune);margin-bottom:24px;opacity:.9}
.sigil svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.chip{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid rgba(231,216,173,.35);border-radius:999px;
  color:var(--lune);font:600 .68rem/1 var(--font-b);letter-spacing:.16em;text-transform:uppercase;
  padding:7px 14px;
}
.chip.dim{border-color:var(--ligne-forte);color:var(--ink3)}

/* --- Mise en avant / plaque ------------------------------------------- */
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.feature .btns{margin-top:34px}
.plaque{
  position:relative;border-radius:24px;padding:52px 46px;overflow:hidden;
  background:
    radial-gradient(2px 2px at 18% 22%, rgba(234,240,250,.5), transparent 60%),
    radial-gradient(1.6px 1.6px at 78% 14%, rgba(234,240,250,.4), transparent 60%),
    radial-gradient(1.6px 1.6px at 64% 78%, rgba(234,240,250,.35), transparent 60%),
    radial-gradient(2px 2px at 30% 86%, rgba(234,240,250,.3), transparent 60%),
    linear-gradient(160deg, rgba(24,35,63,.75), rgba(9,14,26,.85));
  border:1px solid var(--ligne-forte);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.plaque::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg, rgba(244,233,200,.08), transparent 34%);
}
.plaque .sigil{margin-bottom:30px}
.plaque .name{font:italic 600 clamp(2.6rem,4.5vw,3.6rem)/1 var(--font-d);margin:0 0 8px}
.plaque .sub{color:var(--ink2);margin-bottom:30px}
.plaque ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ligne)}
.plaque li{
  display:flex;justify-content:space-between;gap:20px;align-items:baseline;
  padding:13px 2px;border-bottom:1px solid var(--ligne);
  color:var(--ink2);font-size:.95rem;
}
.plaque li b{color:var(--ink);font-weight:600}

/* --- Bande citation --------------------------------------------------- */
.quoteband{padding:110px 0;text-align:center}
.quoteband blockquote{
  margin:0 auto;max-width:21em;
  font:italic 500 clamp(1.7rem,3.4vw,2.6rem)/1.35 var(--font-d);color:var(--ink);
}
.quoteband .link-arr{margin-top:30px}

/* --- Studio ----------------------------------------------------------- */
.method{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.prose{max-width:44em}
.prose h2{margin-top:0}
.big-drop::first-letter{
  font-family:var(--font-d);font-weight:600;font-size:3.1em;line-height:.85;
  float:left;padding:6px 12px 0 0;color:var(--lune);
}

/* --- Contact ---------------------------------------------------------- */
.mail-hero{
  display:inline-block;font:italic 600 clamp(1.7rem,4.6vw,3.4rem)/1.15 var(--font-d);
  color:var(--ink);border-bottom:1px solid rgba(231,216,173,.35);
  padding-bottom:6px;transition:color .3s,border-color .3s;
  overflow-wrap:anywhere;
}
.mail-hero:hover{color:var(--lune-vif);border-color:var(--lune)}

/* --- FAQ -------------------------------------------------------------- */
.faq{border-bottom:1px solid var(--ligne)}
.faq details{border-top:1px solid var(--ligne)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 4px;font:600 1.05rem/1.4 var(--font-b);color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";font:400 1.5rem/1 var(--font-d);color:var(--lune);
  transition:transform .3s ease;flex:none;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 4px 26px;color:var(--ink2);max-width:46em}

/* --- Magasins --------------------------------------------------------- */
.stores{display:flex;flex-wrap:wrap;gap:16px}
.store{
  display:flex;flex-direction:column;gap:3px;min-width:178px;
  border:1px solid var(--ligne-forte);border-radius:14px;padding:13px 22px;
  color:var(--ink);transition:border-color .3s,background .3s;
}
.store small{color:var(--ink3);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.store b{font:700 1.05rem/1.2 var(--font-b)}
.store:hover{border-color:rgba(231,216,173,.45);background:rgba(231,216,173,.05)}

/* --- Documents (privacy) ---------------------------------------------- */
.doc{max-width:46em}
.doc h2{font-size:1.6rem;margin-top:2.1em}
.doc h2:first-of-type{margin-top:1.2em}
.doc ul{color:var(--ink2);padding-left:1.2em}
.doc li{margin-bottom:.5em}
.doc p{color:var(--ink2)}

/* --- Pied de page ------------------------------------------------------ */
footer{border-top:1px solid var(--ligne);padding:76px 0 44px;margin-top:60px;
  background:linear-gradient(180deg, transparent, rgba(8,12,23,.7))}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:64px}
.foot-grid .brand{margin-bottom:18px}
.foot-grid p{color:var(--ink3);font-size:.92rem;max-width:24em}
.foot-grid h4{font:700 .72rem/1 var(--font-b);letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin:0 0 18px}
.foot-grid ul{list-style:none;margin:0;padding:0}
.foot-grid li{margin-bottom:11px}
.foot-grid ul a{color:var(--ink2);font-size:.95rem;transition:color .25s}
.foot-grid ul a:hover{color:var(--lune)}
.foot-base{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  border-top:1px solid var(--ligne);padding-top:30px;color:var(--ink3);font-size:.85rem;
}
.foot-base .serif-i{color:var(--ink2)}

/* --- Apparitions ------------------------------------------------------- */
[data-reveal]{
  opacity:0;transform:translateY(20px);filter:blur(9px);
  transition:opacity .95s cubic-bezier(.2,.65,.2,1), transform .95s cubic-bezier(.2,.65,.2,1), filter .95s cubic-bezier(.2,.65,.2,1);
  transition-delay:var(--d,0s);
  will-change:opacity,transform,filter;
}
[data-reveal].is-in{opacity:1;transform:none;filter:none}

/* --- Responsive -------------------------------------------------------- */
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:48px}
  .moon-col{order:-1}
  .moon-wrap{width:min(230px,58vw)}
  .hero{padding-top:130px}
  .feature{grid-template-columns:1fr;gap:44px}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:880px){
  .nav-links{
    position:absolute;top:74px;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;
    gap:4px;padding:18px 26px 28px;
    background:rgba(6,10,19,.96);border-bottom:1px solid var(--ligne);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  }
  .nav-open .nav-links{display:flex}
  .nav-links a{font-size:1.08rem;padding:10px 0;width:100%}
  .nav-cta{margin-top:10px}
  .burger{display:block}
  .credo{grid-template-columns:1fr}
  .credo>div{border-left:0;border-top:1px solid var(--ligne);padding-left:0}
  .credo>div:first-child{border-top:0;padding-top:0}
  .grid3,.grid2,.method{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .sec{padding:76px 0}
  .page-hero{padding:150px 0 60px}
  .card{padding:28px 24px}
  .plaque{padding:38px 28px}
  .foot-grid{grid-template-columns:1fr;gap:32px}
}

/* --- Mouvement réduit --------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  [data-reveal]{transform:none;filter:none;transition:opacity .4s ease}
  .moon-halo{animation:none}
  .card,.btn,.card::after{transition:none}
}
