/* LIMEN — feuille de style principale */
@font-face{font-family:"Chakra Petch";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/chakra-petch-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Chakra Petch";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/chakra-petch-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Russo One";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/russo-one-latin-400-normal.woff2) format("woff2")}

:root{
  --nuit:#0b0a10;--prune:#1a0d19;--prune2:#241123;--cramoisi:#9b1b45;--sang:#6f1030;
  --creme:#fdebd8;--or:#e3b04b;--mute:#bfb0a6;--ligne:#3a2434;
  --display:"Russo One","Arial Black",sans-serif;--body:"Chakra Petch",system-ui,sans-serif;
  --gut:clamp(20px,5vw,64px);--navh:68px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--navh) + 12px)}
body{margin:0;background:var(--nuit);color:var(--creme);font-family:var(--body);font-weight:500;font-size:clamp(16px,1.05vw + 12px,19px);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.015em;line-height:1.05;margin:0}
h2{font-size:clamp(34px,6vw,76px)}
h3{font-size:clamp(20px,2.2vw,28px)}
p{margin:0 0 1em}
a{color:inherit}
.wrap{max-width:1240px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--or);color:#1a0d19;padding:10px 16px;font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.eyebrow{font-weight:700;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--or);margin:0 0 14px}
.lead{font-size:clamp(18px,1.4vw + 12px,24px);color:var(--mute);max-width:36em;line-height:1.55}

/* Boutons : coins coupes en biais, comme l'angle du logo */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 30px;border:0;font-family:var(--body);font-weight:700;font-size:16px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--creme);background:transparent;cursor:pointer;position:relative;isolation:isolate;transition:transform .2s,filter .2s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border:2px solid var(--creme);transform:skewX(-14deg);background:transparent}
.btn--primary::before{background:var(--cramoisi);border-color:var(--cramoisi)}
.btn--light{color:#1a0d19}.btn--light::before{background:var(--creme);border-color:var(--creme)}
.btn--ghost::before{border-color:rgba(253,235,216,.7)}
.btn--small{min-height:40px;padding:8px 22px;font-size:14px}
.btn--big{min-height:56px;padding:14px 38px;font-size:17px}
.btn:hover{transform:translateY(-2px);filter:brightness(1.12)}
.btn:active{transform:translateY(0)}

/* Nav */
.nav{position:sticky;top:0;z-index:50;height:var(--navh);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);background:rgba(11,10,16,.92);border-bottom:1px solid var(--ligne)}
.nav__brand{display:flex;align-items:center;min-height:44px}
.nav__brand img{height:26px;width:auto}
.nav__menu{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px)}
.nav__menu a:not(.btn){font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--creme);padding:10px 0;position:relative}
.nav__menu a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--or);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav__menu a:not(.btn):hover::after{transform:scaleX(1)}
.nav__toggle{display:none;width:48px;height:48px;background:none;border:0;color:var(--creme);cursor:pointer;align-items:center;justify-content:center}
.nav__bars,.nav__bars::before,.nav__bars::after{display:block;width:24px;height:2px;background:currentColor;transition:transform .25s,opacity .2s}
.nav__bars{position:relative}.nav__bars::before,.nav__bars::after{content:"";position:absolute;left:0}
.nav__bars::before{top:-8px}.nav__bars::after{top:8px}
.nav__toggle[aria-expanded="true"] .nav__bars{background:transparent}
.nav__toggle[aria-expanded="true"] .nav__bars::before{transform:translateY(8px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] .nav__bars::after{transform:translateY(-8px) rotate(-45deg)}
@media (max-width:860px){
  .nav__toggle{display:flex}
  .nav__menu{position:fixed;top:var(--navh);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px var(--gut) 28px;background:var(--nuit);border-bottom:1px solid var(--ligne);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s}
  .nav__menu.is-open{transform:none;opacity:1;visibility:visible}
  .nav__menu a:not(.btn){padding:16px 0;border-bottom:1px solid var(--ligne);font-size:16px}
  .nav__cta{margin-top:18px}
}

/* Hero */
.hero{position:relative;min-height:calc(100svh - var(--navh));display:grid;place-items:center;text-align:center;overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 38%,#2a1126 0%,transparent 70%),radial-gradient(ellipse 60% 50% at 10% 100%,#2b0c1c 0%,transparent 70%),var(--nuit);padding:48px var(--gut) 96px}
.hero__lines{position:absolute;inset:-20% -10%;background:repeating-linear-gradient(115deg,transparent 0 260px,rgba(253,235,216,.16) 260px 261px);animation:drift 40s linear infinite;pointer-events:none}
@keyframes drift{to{transform:translateX(-261px)}}
.hero__embers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero__in{position:relative;z-index:2;max-width:900px;width:100%}
.hero__logo{width:min(620px,86vw);margin:0 auto;transition:transform .3s ease-out;will-change:transform}
.hero__wings{display:block;width:100%;filter:drop-shadow(0 0 40px rgba(155,27,69,.55));animation:float 7s ease-in-out infinite}
.hero__logo h1{margin-top:-4%}
.hero__word{display:block;width:76%;margin:0 auto;filter:drop-shadow(0 6px 30px rgba(155,27,69,.5))}
@keyframes float{50%{transform:translateY(-10px)}}
.hero__eyebrow{margin-bottom:22px}
.hero__tag{font-family:var(--display);text-transform:uppercase;font-size:clamp(18px,2.6vw,30px);line-height:1.25;letter-spacing:.03em;margin:28px 0 30px}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.ipchip{display:inline-flex;align-items:stretch;margin:34px 0 0;border:1px solid var(--ligne);background:rgba(26,13,25,.7);color:var(--creme);font-family:var(--body);font-size:16px;cursor:pointer}
.ipchip--soon{cursor:default}
.ipchip span{padding:10px 16px;display:flex;align-items:center}
.ipchip__label{background:var(--cramoisi);font-weight:700;letter-spacing:.14em}
.ipchip__ip{font-weight:700;color:var(--or);letter-spacing:.04em}
.ipchip__act{color:var(--mute);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.ipchip:not(.ipchip--soon):hover .ipchip__act{color:var(--creme)}
.hero__scroll{position:absolute;bottom:22px;left:50%;width:30px;height:48px;margin-left:-15px;border:2px solid rgba(253,235,216,.5);border-radius:16px;z-index:2}
.hero__scroll span{position:absolute;left:50%;top:9px;width:4px;height:9px;margin-left:-2px;background:var(--or);border-radius:2px;animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}

/* Manifeste */
.manifest{padding-top:clamp(80px,12vw,160px);padding-bottom:clamp(60px,9vw,120px)}
.manifest__text{font-family:var(--display);text-transform:uppercase;font-size:clamp(26px,4.6vw,62px);line-height:1.12;max-width:17em;margin:0}
.manifest__text em{font-style:normal;color:var(--or)}

/* Dualite */
.duality{padding-bottom:clamp(70px,10vw,140px)}
.duality__head{margin-bottom:clamp(36px,5vw,64px)}
.duality__head h2{margin-bottom:22px}
.duality__stage{--split:50%;position:relative;height:clamp(460px,62vh,640px);overflow:hidden;touch-action:pan-y;cursor:ew-resize;user-select:none;-webkit-user-select:none;border-block:1px solid var(--ligne)}
.world{position:absolute;inset:0;display:flex;align-items:flex-end;padding:0 clamp(28px,7vw,110px) clamp(36px,7vh,72px)}
.world__txt{max-width:360px;position:relative;z-index:2}
.world__txt h3{font-size:clamp(38px,5.6vw,76px);margin-bottom:16px}
.world__txt p:last-child{margin:0}
.world--ange{background:radial-gradient(circle at 28% 20%,#fff6e8 0%,transparent 45%),repeating-conic-gradient(from 0deg at 28% -10%,rgba(227,176,75,.16) 0 4deg,transparent 4deg 12deg),linear-gradient(160deg,#f6dfc6,#fdebd8);color:#2a1220;justify-content:flex-start}
.world--ange .eyebrow{color:#8a5a14}
.world--ange h3{color:#3a0a1e}
.world--demon{justify-content:flex-end;color:var(--creme);background:radial-gradient(circle at 78% 90%,rgba(227,80,60,.4) 0%,transparent 45%),repeating-linear-gradient(-62deg,transparent 0 90px,rgba(0,0,0,.28) 90px 94px),linear-gradient(200deg,var(--sang),#1d0510);clip-path:polygon(calc(var(--split) + 7%) 0,100% 0,100% 100%,calc(var(--split) - 7%) 100%)}
.world--demon .world__txt{text-align:left}
.world__art{position:absolute;inset:0;pointer-events:none}
.halo-svg{position:absolute;left:clamp(0px,5vw,80px);top:-8%;width:min(40%,330px);animation:float 6s ease-in-out infinite}
.horn-svg{position:absolute;right:clamp(0px,6vw,100px);top:-2%;width:min(30%,260px);opacity:.9;animation:float 8s ease-in-out infinite reverse;-webkit-mask-image:linear-gradient(to top,transparent 5%,#000 55%);mask-image:linear-gradient(to top,transparent 5%,#000 55%)}
.duality__seam{position:absolute;inset:0;pointer-events:none;clip-path:polygon(calc(var(--split) + 7% - 1.5px) 0,calc(var(--split) + 7% + 1.5px) 0,calc(var(--split) - 7% + 1.5px) 100%,calc(var(--split) - 7% - 1.5px) 100%);background:var(--or);filter:drop-shadow(0 0 10px var(--or))}
.duality__seam span{display:none}
.duality__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;pointer-events:none}
.duality__stage:focus-within{outline:3px solid var(--or);outline-offset:-3px}
@media (max-width:760px){
  .duality__stage{height:auto;touch-action:auto;cursor:default}
  .world{position:relative;inset:auto;padding:56px var(--gut);min-height:300px;align-items:center}
  .world--demon{clip-path:polygon(0 8%,100% 0,100% 100%,0 100%);margin-top:-6%;padding-top:80px;justify-content:flex-start}
  .duality__seam,.duality__range{display:none}
  .halo-svg{width:60%;left:auto;right:0}.horn-svg{width:50%}
}

/* Parcours */
.path{padding-top:clamp(60px,9vw,120px);padding-bottom:clamp(60px,9vw,120px)}
.path__head{margin-bottom:clamp(40px,6vw,80px)}
.path__head h2{margin-bottom:22px}
.path__steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1.25fr 1fr 1.25fr;border-top:1px solid var(--ligne)}
.path__steps li{padding:32px clamp(18px,2.4vw,40px) 12px 0}
.path__steps li+li{padding-left:clamp(18px,2.4vw,40px);border-left:1px solid var(--ligne)}
.path__n{display:block;font-family:var(--display);font-size:clamp(64px,9vw,128px);line-height:.9;color:transparent;-webkit-text-stroke:2px var(--cramoisi);margin-bottom:14px}
.path__steps h3{margin-bottom:10px}
.path__steps p{color:var(--mute)}
@media (max-width:760px){.path__steps{grid-template-columns:1fr}.path__steps li+li{border-left:0;padding-left:0;border-top:1px solid var(--ligne)}}

/* Piliers */
.pillars{background:linear-gradient(180deg,var(--nuit),var(--prune) 30%,var(--prune) 70%,var(--nuit));padding:clamp(70px,10vw,140px) 0}
.pillars__in{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,96px);align-items:start}
.pillars__side{position:sticky;top:calc(var(--navh) + 32px)}
.pillars__side h2{margin-bottom:22px}
.pillars__list{list-style:none;margin:0;padding:0}
.pillars__list li{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--ligne);transition:padding-left .3s}
.pillars__list li:last-child{border-bottom:1px solid var(--ligne)}
.pillars__list li:hover{padding-left:12px}
.pillars__k{font-family:var(--display);font-size:34px;color:var(--or);line-height:1}
.pillars__list h3{margin-bottom:8px}
.pillars__list p{color:var(--mute);margin:0}
@media (max-width:860px){.pillars__in{grid-template-columns:1fr}.pillars__side{position:static}.pillars__list li{grid-template-columns:52px 1fr}}

/* Limenitium */
.ore{padding:clamp(70px,10vw,140px) 0;position:relative;overflow:hidden}
.ore::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 70% at 25% 50%,rgba(155,27,69,.35),transparent 70%)}
.ore__in{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,90px);align-items:center}
.ore__gem{max-width:420px;margin:0 auto;width:100%}
.gem{display:block;width:100%;filter:drop-shadow(0 0 50px rgba(227,176,75,.35));animation:float 6s ease-in-out infinite}
.gem__sweep{animation:sweep 4.5s ease-in-out infinite}
@keyframes sweep{0%{transform:translateX(0) skewX(-18deg)}60%,100%{transform:translateX(620px) skewX(-18deg)}}
.ore__txt h2{margin-bottom:22px;color:var(--or)}
.ore__txt p{max-width:34em}
.ore__status{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--ligne);font-size:15px;color:var(--mute)}
.dot{flex:none;width:10px;height:10px;background:var(--or);transform:rotate(45deg);animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.3}}
@media (max-width:860px){.ore__in{grid-template-columns:1fr}.ore__gem{max-width:260px}}

/* Feuille de route */
.road{padding-top:clamp(60px,9vw,120px);padding-bottom:clamp(60px,9vw,120px)}
.road__head{margin-bottom:clamp(40px,6vw,72px)}
.road__head h2{margin-bottom:22px}
.road__track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.road__track::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;background:linear-gradient(90deg,var(--or) 0 50%,var(--ligne) 50%)}
.road__track li{position:relative;padding:44px 24px 0 0}
.road__dot{position:absolute;left:0;top:0;width:24px;height:24px;background:var(--nuit);border:2px solid var(--ligne);transform:rotate(45deg)}
.road__track li.is-base .road__dot{background:var(--or);border-color:var(--or)}
.road__track h3{margin-bottom:6px}
.road__track p{color:var(--mute);font-size:15px;margin-bottom:12px}
.road__badge{display:inline-block;font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--ligne);color:var(--mute)}
.road__track li.is-base .road__badge{border-color:var(--or);color:var(--or)}
@media (max-width:760px){
  .road__track{grid-template-columns:1fr;gap:34px}
  .road__track::before{left:11px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,var(--or) 0 50%,var(--ligne) 50%)}
  .road__track li{padding:0 0 0 52px}
  .road__dot{left:0;top:2px}
}

/* CTA final */
.final{position:relative;padding:clamp(80px,12vw,160px) 0;background:linear-gradient(120deg,var(--sang),#2b0816 70%);clip-path:polygon(0 clamp(24px,5vw,72px),100% 0,100% 100%,0 100%);margin-top:-1px}
.final__in{text-align:center}
.final h2{margin-bottom:22px}
.final .lead{margin:0 auto 38px;color:#e6d3c6}
.final .eyebrow{color:var(--or)}

/* Pages secondaires */
.page-hero{padding:clamp(70px,10vw,130px) var(--gut) clamp(36px,5vw,64px);max-width:1240px;margin:0 auto}
.page-hero h1{font-size:clamp(38px,7vw,92px);margin-bottom:22px}
.page-hero .btn{margin-top:20px}
.prose{padding-bottom:clamp(70px,10vw,140px);max-width:820px;margin-left:0}
.prose h2{font-size:clamp(26px,3.4vw,40px);margin-bottom:16px}
.join{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,90px);padding-bottom:clamp(70px,10vw,140px);align-items:start}
.join__steps{list-style:none;margin:0;padding:0}
.join__steps li{display:grid;grid-template-columns:84px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--ligne)}
.join__steps li:last-child{border-bottom:1px solid var(--ligne)}
.join__n{font-family:var(--display);font-size:60px;line-height:1;color:transparent;-webkit-text-stroke:2px var(--cramoisi)}
.join__steps h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:8px}
.join__steps p{color:var(--mute);margin-bottom:12px}
.ipbox{display:inline-flex;align-items:stretch;border:1px solid var(--or);flex-wrap:wrap}
.ipbox code{font-family:var(--body);font-weight:700;color:var(--or);padding:10px 16px;font-size:18px;word-break:break-all}
.ipbox--soon{border-color:var(--ligne)}.ipbox--soon code{color:var(--mute)}
.join__help{background:var(--prune);border-left:3px solid var(--cramoisi);padding:32px}
.join__help h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:12px}
.join__help p{color:var(--mute)}
@media (max-width:860px){.join{grid-template-columns:1fr}.join__steps li{grid-template-columns:56px 1fr}.join__n{font-size:44px}}

/* Footer */
.foot{border-top:1px solid var(--ligne);padding:56px 0 40px;background:var(--nuit)}
.foot__in{max-width:1240px;margin:0 auto 32px;padding:0 var(--gut);display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:flex-start}
.foot__brand img{display:block;margin-bottom:12px;height:auto}
.foot__brand p{color:var(--mute);margin:0;font-size:15px}
.foot__links{display:flex;gap:8px 28px;flex-wrap:wrap}
.foot__links a{text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;padding:12px 0}
.foot__links a:hover{color:var(--or)}
.foot__legal{max-width:1240px;margin:0 auto;padding:0 var(--gut);font-size:13px;color:#8f8078;line-height:1.6}

/* Apparition au scroll (uniquement si JS actif) */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
.js .path__steps li.reveal:nth-child(2),.js .road__track li.reveal:nth-child(2){transition-delay:.12s}
.js .path__steps li.reveal:nth-child(3),.js .road__track li.reveal:nth-child(3){transition-delay:.24s}
.js .road__track li.reveal:nth-child(4){transition-delay:.36s}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
}
