/* Casus Belli, page d'accueil. Aucune bibliothèque : CSS pur, un fichier. Polices : Cinzel (servie par nous, licence OFL) + police système. */
@font-face{font-family:Cinzel;src:url(fonts/Cinzel.woff2) format("woff2");font-weight:400 900;font-display:swap}
:root{--bg:#07080b;--bg2:#0d0f15;--panel:#12141c;--line:rgba(255,255,255,.09);--text:#ece9e1;--mut:#a3a7b5;--gold:#f5c542;--gold2:#c9971d;--serif:Cinzel,Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--w:1180px;--r:16px;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 clamp(16px,1.05vw + 10px,18px)/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}a{color:var(--gold)}
.skip{position:absolute;left:12px;top:-60px;background:var(--gold);color:#241a00;padding:10px 16px;border-radius:8px;z-index:100;font-weight:700}.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{width:min(var(--w),100% - 2*clamp(18px,5vw,48px));margin-inline:auto}.narrow{width:min(820px,100% - 2*clamp(18px,5vw,48px))}

/* ---------- barre du haut */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:clamp(12px,3vw,32px);padding:12px clamp(16px,4vw,40px);padding-top:max(12px,env(safe-area-inset-top));transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.top.solid{background:rgba(7,8,11,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font:700 clamp(15px,1.4vw,19px) var(--serif);letter-spacing:.2em}.logo img{border-radius:7px}
.top nav{display:flex;gap:clamp(10px,2.4vw,28px);margin-left:auto}.top nav a{color:var(--mut);text-decoration:none;font-size:14px;letter-spacing:.04em;padding:8px 2px;position:relative}.top nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .25s var(--ease)}.top nav a:hover{color:var(--text)}.top nav a:hover::after{transform:scaleX(1)}

/* ---------- boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);font:700 15px var(--serif);letter-spacing:.06em;text-decoration:none;cursor:pointer;transition:transform .2s var(--ease),box-shadow .25s,background .25s,border-color .25s;-webkit-tap-highlight-color:transparent}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}.btn:hover{transform:translateY(-2px);border-color:rgba(245,197,66,.6)}.btn:active{transform:translateY(0)}
.btn.gold{background:linear-gradient(180deg,#f7cf5a,#c9971d);color:#241a00;border-color:#e2b43a;box-shadow:0 8px 26px rgba(245,197,66,.28),inset 0 1px 0 rgba(255,255,255,.5)}.btn.gold:hover{box-shadow:0 12px 36px rgba(245,197,66,.45),inset 0 1px 0 rgba(255,255,255,.6);border-color:#ffe08a}
.btn.ghost{background:rgba(7,8,11,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-color:rgba(255,255,255,.28)}.btn.ghost:hover{background:rgba(245,197,66,.1)}
.btn.big{min-height:58px;padding:0 clamp(20px,3vw,34px);font-size:clamp(15px,1.2vw,17px);border-radius:14px}.btn.small{min-height:44px;padding:0 18px;font-size:13px}

/* ---------- héros */
.hero{position:relative;min-height:100svh;display:grid;align-items:center;overflow:hidden;isolation:isolate}
.hero-bg,.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.hero-bg img{transform:scale(1.06);animation:kb 28s ease-in-out infinite alternate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse 70% 60% at 50% 45%,rgba(7,8,11,.52),rgba(7,8,11,.86) 75%),linear-gradient(180deg,rgba(7,8,11,.55),rgba(7,8,11,0) 28%,rgba(7,8,11,.2) 62%,var(--bg))}
#embers,#embers2{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.hero-in{padding:clamp(110px,16vh,170px) 0 clamp(90px,12vh,130px);width:min(980px,100% - 2*clamp(18px,5vw,48px));margin-inline:auto;text-align:center}
.kicker{margin:0 0 18px;font:600 clamp(12px,1vw,14px) var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--gold)}
.hero h1{margin:0;font:800 clamp(40px,8.4vw,98px)/1.02 var(--serif);letter-spacing:.03em;color:#fbf3dc;text-shadow:0 4px 40px rgba(0,0,0,.7),0 0 60px rgba(245,197,66,.18)}
.hero h1 em{font-style:normal;color:var(--gold);display:inline-block;background:linear-gradient(180deg,#ffe38e,#e0a92b 55%,#a9771a);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.lead{margin:clamp(18px,3vh,30px) auto 0;max-width:46ch;font-size:clamp(17px,1.5vw,21px);color:#d8d5cb;text-shadow:0 2px 14px rgba(0,0,0,.8)}
.cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:clamp(26px,5vh,44px)}
.facts{list-style:none;margin:clamp(34px,6vh,60px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,auto);gap:clamp(18px,5vw,64px);justify-content:center}
.facts li{display:flex;flex-direction:column;align-items:center;gap:2px}.facts b{font:800 clamp(26px,3.4vw,42px)/1 var(--serif);color:var(--gold);font-variant-numeric:tabular-nums}.facts span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.scroll{position:absolute;left:50%;bottom:22px;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.4);border-radius:14px;display:block}.scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:wheel 1.8s infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@keyframes kb{to{transform:scale(1.14) translate(-1%,-1%)}}

/* ---------- bandeau de statut */
.strip{background:linear-gradient(180deg,#0d0f15,#090a0e);border-block:1px solid var(--line)}.strip .wrap{display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center;justify-content:center;padding:15px 0;font-size:14px;color:var(--mut);text-align:center}
.pulse{width:9px;height:9px;border-radius:50%;background:#6b6f7d;flex:none}.pulse.ok{background:#5fd38d;box-shadow:0 0 0 0 rgba(95,211,141,.6);animation:ping 2s infinite}.pulse.off{background:#ffb454}@keyframes ping{70%{box-shadow:0 0 0 9px rgba(95,211,141,0)}100%{box-shadow:0 0 0 0 rgba(95,211,141,0)}}
.sep{opacity:.4}#statusText b{color:var(--text)}

/* ---------- sections */
.sec{padding:clamp(70px,12vh,140px) 0;position:relative}.sec.dark{background:linear-gradient(180deg,#090a0e,#0c0e14 40%,#090a0e)}
.eyebrow{margin:0 0 12px;font:600 12px var(--sans);letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
h2{margin:0;font:800 clamp(28px,4.6vw,54px)/1.1 var(--serif);letter-spacing:.02em;color:#fbf3dc;text-wrap:balance}h3{font-family:var(--serif)}
.sub{margin:16px 0 0;max-width:62ch;color:var(--mut);font-size:clamp(16px,1.3vw,19px)}
.shot{margin:clamp(28px,5vw,52px) 0 0;border-radius:var(--r);overflow:hidden;border:1px solid rgba(245,197,66,.28);box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px rgba(0,0,0,.6),0 0 90px rgba(245,197,66,.07);background:#000}.shot img{width:100%}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,80px);align-items:center}.split .shot{margin:0}.split.rev>:first-child{order:0}
.ticks{list-style:none;margin:22px 0 28px;padding:0;display:grid;gap:12px}.ticks li{position:relative;padding-left:32px;color:#d8d5cb}.ticks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,var(--gold) 0 3px,transparent 4px),rgba(245,197,66,.14);border:1px solid rgba(245,197,66,.5)}

/* ---------- nations */
.nations{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:clamp(26px,4vw,44px) 0 18px}
.nations button{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--mut);font:700 clamp(12px,1.1vw,15px) var(--serif);letter-spacing:.06em;cursor:pointer;transition:all .25s var(--ease);-webkit-tap-highlight-color:transparent}
.nations .short{display:none}.nations button i{width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c);flex:none}.nations button:hover{color:var(--text);border-color:color-mix(in srgb,var(--c) 70%,#fff 0%)}
.nations button[aria-selected=true]{color:#fff;border-color:var(--c);background:linear-gradient(180deg,color-mix(in srgb,var(--c) 30%,transparent),color-mix(in srgb,var(--c) 8%,transparent));box-shadow:0 0 30px color-mix(in srgb,var(--c) 30%,transparent)}
.npanel{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(22px,4vw,56px);align-items:center;padding:clamp(14px,2vw,24px);border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--nc,#3a78d6) 14%,#0f1118),#0b0c11)}
.nart{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:#000}.nart img{width:100%;height:100%;object-fit:cover;transition:opacity .35s}.nflag{position:absolute;left:14px;bottom:14px;width:64px;height:43px;border-radius:5px;overflow:hidden;border:1px solid rgba(255,255,255,.5);box-shadow:0 6px 20px rgba(0,0,0,.6)}.nflag svg{width:100%;height:100%;display:block}
.ntag{margin:0;font:600 12px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--nc,var(--gold))}.ntext h3{margin:6px 0 10px;font:800 clamp(26px,3.2vw,40px)/1.1 var(--serif);color:#fff}.ntext>p{color:#cfccc2}
.nkw{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin:14px 0 4px}.nkw span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}.nkw b{color:var(--text);font-weight:600}
.leaders{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.leaders li{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0a0b10}.leaders img{width:100%;aspect-ratio:1;object-fit:cover}.leaders div{padding:8px 10px 11px}.leaders b{display:block;font:700 13px/1.25 var(--serif);color:#fff}.leaders small{display:block;margin-top:2px;color:var(--mut);font-size:12px;line-height:1.3}

/* ---------- gameplay */
.feat3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px);margin-top:clamp(26px,4vw,44px)}
.feat3 article{padding:clamp(20px,2.4vw,30px);border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));transition:transform .3s var(--ease),border-color .3s}.feat3 article:hover{transform:translateY(-4px);border-color:rgba(245,197,66,.4)}
.feat3 svg{width:34px;height:34px;color:var(--gold)}.feat3 h3{margin:14px 0 8px;font-size:clamp(17px,1.5vw,20px);color:#fff}.feat3 p{margin:0;color:var(--mut);font-size:15.5px}

/* ---------- plateformes */
.plat{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2.4vw,28px);margin-top:clamp(26px,4vw,44px)}
.pcard{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:clamp(22px,3vw,38px);border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,#151822,#0d0f15);position:relative;overflow:hidden}.pcard::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(245,197,66,.12),transparent 70%)}
.pico{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:rgba(245,197,66,.1);border:1px solid rgba(245,197,66,.35);color:var(--gold)}.pico svg{width:30px;height:30px}.pcard h3{margin:8px 0 0;font-size:clamp(20px,2vw,26px);color:#fff}.pcard p{margin:0;color:var(--mut);flex:1}.pcard .btn{margin-top:8px}.pcard small{color:var(--mut);font-size:13px}
.how{margin-top:8px;font-size:14px;color:var(--mut);width:100%}.how summary{cursor:pointer;color:var(--text);padding:0;min-height:44px;display:flex;align-items:center}.how p{margin:8px 0}.how code{display:block;margin-top:6px;padding:10px 12px;border-radius:8px;background:#06070a;border:1px solid var(--line);color:#f1e3b8;font:13px/1.4 ui-monospace,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre}
.note{margin:24px 0 0;color:var(--mut);font-size:14px;text-align:center}

/* ---------- FAQ */
.faq{margin-top:clamp(22px,4vw,40px);display:grid;gap:10px}.faq details{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);transition:border-color .25s,background .25s}.faq details[open]{border-color:rgba(245,197,66,.4);background:rgba(245,197,66,.04)}
.faq summary{cursor:pointer;list-style:none;padding:18px 54px 18px 20px;position:relative;font:700 clamp(15px,1.3vw,17px) var(--serif);color:#fff;min-height:56px;display:flex;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font:400 26px var(--sans);color:var(--gold);transition:transform .25s}.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}.faq p{margin:0;padding:0 20px 20px;color:var(--mut)}

/* ---------- appel final + pied */
.final{position:relative;padding:clamp(80px,16vh,170px) 0;text-align:center;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse 60% 70% at 50% 40%,#241c0c,#07080b 70%)}.final h2{font-size:clamp(34px,6.4vw,76px)}.final p{margin:14px 0 0;color:var(--mut);font-size:clamp(17px,1.6vw,21px)}
footer{border-top:1px solid var(--line);background:#050608;padding:36px 0 max(36px,env(safe-area-inset-bottom))}footer .wrap{display:flex;gap:24px;justify-content:space-between;align-items:center;flex-wrap:wrap}footer p{margin:8px 0 0;color:var(--mut);font-size:13px}footer .logo{font-size:15px}footer nav{display:flex;gap:22px;flex-wrap:wrap}footer nav a{color:var(--mut);text-decoration:none;font-size:14px;padding:10px 2px}footer nav a:hover{color:var(--gold)}

/* ---------- apparition au défilement (jamais cachée si le script ne tourne pas : voir .js) */
.js .reveal,.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.js .reveal.d1,.js .rv.d1{transition-delay:.1s}.js .reveal.d2,.js .rv.d2{transition-delay:.2s}.js .reveal.d3{transition-delay:.3s}.js .reveal.d4{transition-delay:.42s}
.js .reveal.in,.js .rv.in{opacity:1;transform:none}

/* ---------- adaptations */
@media (max-width:980px){.split{grid-template-columns:1fr}.split.rev .shot{order:2}.npanel{grid-template-columns:1fr}.feat3{grid-template-columns:1fr}.plat{grid-template-columns:1fr}}
@media (max-width:720px){.nations .long{display:none}.nations .short{display:inline}.top nav{display:none}.top .btn{margin-left:auto}.facts{grid-template-columns:repeat(2,auto);gap:22px 40px}.nations{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.nations button{flex-direction:column;gap:4px;min-height:62px;padding:8px 2px;font-size:12px;letter-spacing:0}.leaders{grid-template-columns:repeat(3,1fr);gap:8px}.leaders small{display:none}.btn.big{width:100%}.cta{flex-direction:column;align-items:stretch}.scroll{display:none}}
@media (max-height:520px) and (orientation:landscape){.hero{min-height:auto}.hero-in{padding:90px 0 60px}.facts{display:none}.scroll{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-bg img{animation:none;transform:none}.scroll span,.pulse.ok{animation:none}.js .reveal,.js .rv{opacity:1;transform:none;transition:none}#embers,#embers2{display:none}}
@media (forced-colors:active){.btn.gold{border:2px solid ButtonText}}
@media print{.top,.scroll,#embers,#embers2{display:none}body{background:#fff;color:#000}}
