*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#05070d;color:#e8f4ff;font-family:"Segoe UI",Roboto,system-ui,sans-serif;user-select:none;-webkit-user-select:none;touch-action:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
.hidden{display:none!important}
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;background:radial-gradient(ellipse at center,rgba(5,10,25,.55),rgba(2,4,10,.92));overflow:auto;z-index:20}
.title{text-align:center;margin-bottom:14px}
h1{font-size:clamp(42px,9vw,104px);margin:0;letter-spacing:.08em;font-weight:900;background:linear-gradient(180deg,#fff,#7fe9ff 45%,#2a7bd8);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 24px rgba(80,220,255,.55))}
h1 span{color:#ff9a3c;-webkit-text-fill-color:#ff9a3c}
h2{margin:0;font-weight:300;letter-spacing:.35em;text-transform:uppercase;font-size:clamp(12px,2.2vw,20px);color:#9fd8ff}
h3{letter-spacing:.2em;color:#7fe9ff;margin:6px 0}
.mainbtns{display:flex;flex-direction:column;gap:9px;width:min(560px,94vw)}
button{background:linear-gradient(180deg,rgba(40,70,110,.75),rgba(15,25,45,.85));color:#e8f4ff;border:1px solid rgba(127,233,255,.35);border-radius:10px;padding:11px 16px;font-size:15px;cursor:pointer;letter-spacing:.03em;text-align:left;transition:.15s}
button:hover{border-color:#7fe9ff;box-shadow:0 0 18px rgba(127,233,255,.35);transform:translateY(-1px)}
button.big{font-size:18px;font-weight:700;background:linear-gradient(180deg,#ff9a3c,#c2501a);border-color:#ffc58a;text-align:center}
.foot{opacity:.65;font-size:13px;margin-top:10px}
.note{max-width:760px;opacity:.85;text-align:center;line-height:1.45}
.note.small{font-size:13px;text-align:left}
.row{display:flex;align-items:center;gap:12px;margin:6px 0;flex-wrap:wrap}
.row label{min-width:190px}
input{background:#0b1424;color:#fff;border:1px solid #2c4a6e;border-radius:8px;padding:8px}
input[type=checkbox]{width:22px;height:22px}
.seg{display:flex;gap:4px}.seg button{padding:8px 12px}.seg button.on{background:#ff9a3c;color:#111;border-color:#ffd2a6}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1100px}
@media (max-width:800px){.cols{grid-template-columns:1fr}}
.ctrls p{font-size:13px;line-height:1.5;opacity:.85}
#classcards{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:1150px}
.card{width:205px;padding:12px;border-radius:12px;border:1px solid rgba(127,233,255,.3);background:rgba(10,20,40,.8);cursor:pointer}
.card.on{border-color:#ff9a3c;box-shadow:0 0 24px rgba(255,154,60,.45)}
.card h4{margin:0 0 2px;font-size:19px}.card em{color:#ff9a3c;font-style:normal;font-size:13px}
.card p{font-size:12.5px;opacity:.85;min-height:52px}
.stat{display:flex;align-items:center;gap:6px;font-size:11px}.stat div{flex:1;height:6px;background:#1a2a40;border-radius:3px}.stat span{display:block;height:100%;background:#7fe9ff;border-radius:3px}
.lore{max-width:820px;line-height:1.6;font-size:16px;white-space:pre-wrap;background:rgba(5,10,20,.6);padding:18px 22px;border-left:3px solid #ff9a3c;border-radius:8px}
.lore b{color:#7fe9ff}
.teams{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:min(700px,94vw)}
.teams ul{list-style:none;padding:0;margin:0}.teams li{padding:4px 8px;background:rgba(255,255,255,.05);margin:3px 0;border-radius:6px}
.ta{color:#5fd6ff}.tb{color:#ff8a4c}
#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;letter-spacing:.2em;background:#05070d;z-index:50}

/* HUD */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10;font-variant-numeric:tabular-nums}
#cockpit{position:absolute;inset:0;background:radial-gradient(ellipse 75% 70% at 50% 50%,transparent 70%,rgba(0,20,40,.55) 100%);border:2px solid rgba(127,233,255,.08)}
#crosshair{position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%)}
#crosshair i{position:absolute;background:#bff6ff;box-shadow:0 0 6px #7fe9ff}
#crosshair i:nth-child(1){left:22px;top:0;width:2px;height:13px}#crosshair i:nth-child(2){left:22px;bottom:0;width:2px;height:13px}
#crosshair i:nth-child(3){top:22px;left:0;height:2px;width:13px}#crosshair i:nth-child(4){top:22px;right:0;height:2px;width:13px}
#crosshair b{position:absolute;left:21px;top:21px;width:4px;height:4px;border-radius:50%;background:#ff9a3c}
#aimdot{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border:2px solid #ff9a3c;border-radius:50%;box-shadow:0 0 12px #ff9a3c;display:none}
#hitmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:34px;color:#fff;opacity:0;text-shadow:0 0 8px #f33;transition:opacity .15s}
#dmgvig{position:absolute;inset:0;box-shadow:inset 0 0 160px rgba(255,30,10,.9);opacity:0;transition:opacity .25s}
#topbar{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:18px;font-weight:800;font-size:18px;letter-spacing:.1em;text-shadow:0 0 8px #000}
#teamA{color:#5fd6ff}#teamB{color:#ff8a4c}#roundinfo{color:#fff;opacity:.85}
#objective{position:absolute;top:44px;left:14px;max-width:360px;font-size:14px;background:rgba(0,10,20,.55);padding:8px 12px;border-left:3px solid #ff9a3c;border-radius:4px;white-space:pre-line}
#objective:empty{display:none}
#killfeed{position:absolute;top:44px;right:200px;text-align:right;font-size:13px}
#killfeed div{background:rgba(0,0,0,.5);margin:2px 0;padding:3px 8px;border-radius:4px}
#banner{position:absolute;top:28%;width:100%;text-align:center;font-size:clamp(26px,5vw,56px);font-weight:900;letter-spacing:.12em;text-shadow:0 0 22px rgba(127,233,255,.8);opacity:0;transition:opacity .4s}
#bars{position:absolute;left:14px;bottom:14px;width:min(330px,46vw);background:rgba(0,10,20,.55);padding:10px 12px;border-radius:10px;border:1px solid rgba(127,233,255,.25)}
.cls{font-weight:800;letter-spacing:.12em;color:#ff9a3c;margin-bottom:6px}
.bar{display:flex;align-items:center;gap:8px;font-size:11px;margin:4px 0}.bar label{width:66px}.bar div{flex:1;height:10px;background:#122034;border-radius:5px;overflow:hidden}
.bar span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#2bd47a,#9dff6a);transition:width .15s}
.bar.en span{background:linear-gradient(90deg,#2a7bd8,#7fe9ff)}.bar em{width:34px;font-style:normal;text-align:right}
.abil{display:flex;gap:8px;font-size:12px;margin-top:6px}.abil span{background:rgba(127,233,255,.12);padding:3px 7px;border-radius:5px}
.abil span.cd{opacity:.4}
#minimap{position:absolute;right:12px;top:12px;width:170px;height:170px;border-radius:50%;border:2px solid rgba(127,233,255,.4);background:rgba(0,10,20,.55)}
#voicebubble{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);padding:6px 14px;border-radius:20px;font-size:15px;opacity:0;transition:opacity .3s}
#ctrlstatus{position:absolute;right:14px;bottom:14px;font-size:12px;text-align:right;opacity:.8}
#hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:13px;opacity:.75;text-align:center;max-width:50vw}
#scoreboard{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(0,8,18,.88);padding:14px 20px;border-radius:10px;min-width:420px;font-size:14px}
#scoreboard table{width:100%;border-collapse:collapse}#scoreboard td{padding:3px 8px}
#camvid{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}
#campreview{position:fixed;right:12px;bottom:60px;width:160px;height:120px;border-radius:8px;border:1px solid #7fe9ff;transform:scaleX(-1);z-index:11;opacity:.85}
/* tactile */
#touch{position:fixed;inset:0;z-index:12;pointer-events:none}
#joyzone{position:absolute;left:0;bottom:0;width:42%;height:60%;pointer-events:auto}
#joybase{position:absolute;width:130px;height:130px;border-radius:50%;border:2px solid rgba(127,233,255,.4);background:rgba(127,233,255,.08);left:40px;bottom:40px}
#joyknob{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:rgba(127,233,255,.45)}
#tbtns{position:absolute;right:14px;bottom:14px;display:grid;grid-template-columns:repeat(2,64px);gap:10px;pointer-events:auto}
#tbtns button{width:64px;height:64px;border-radius:50%;font-size:26px;text-align:center;padding:0;background:rgba(20,40,70,.55)}
#tbtns button[data-a=pause]{width:44px;height:44px;font-size:18px}
@media (pointer:coarse){#bars{bottom:auto;top:44px;left:auto;right:190px;width:220px;padding:6px 8px}#objective{font-size:12px}#hint{display:none}}

#bossbar{position:absolute;top:58px;left:50%;transform:translateX(-50%);width:min(560px,70vw);text-align:center;font-weight:800;letter-spacing:.12em;color:#ffb38a;text-shadow:0 0 8px #000;font-size:13px}
#bossbar .bb{height:10px;margin-top:4px;border:1px solid #ff7a3a88;background:#1a0b06aa;border-radius:6px;overflow:hidden}
#bossbar .bb span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff3a1a,#ffb040);box-shadow:0 0 12px #ff6a2a}
#missions .mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;max-width:1150px;width:92vw;margin:14px 0}
.mcard{background:linear-gradient(160deg,#0d1a2bdd,#06101cdd);border:1px solid #2fb8ff44;border-radius:12px;padding:14px;cursor:pointer;text-align:left;transition:.15s}
.mcard:hover{border-color:#5fd6ff;transform:translateY(-2px)}
.mcard h4{margin:0 0 4px;color:#9fe6ff;letter-spacing:.06em}
.mcard em{color:#ffb070;font-size:12px;font-style:normal}
.mcard p{font-size:12.5px;opacity:.85;margin:6px 0 0;line-height:1.35}
.mcard.locked{opacity:.4;cursor:not-allowed;filter:grayscale(.8)}
.mcard .num{float:right;font-size:28px;font-weight:900;opacity:.25}

#heatbar{position:absolute;top:116px;left:14px;width:260px;height:10px;background:rgba(0,10,20,.65);border:1px solid rgba(255,160,80,.6);border-radius:5px;overflow:hidden}
#heatbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffd24c,#ff7a2a,#ff2a2a);transition:width .2s}
#heatbar.hot{box-shadow:0 0 10px #ff3a2a;animation:hb .5s infinite alternate}@keyframes hb{to{border-color:#ff3a2a}}
#heatbar.hidden{display:none}

.card .look{font-size:11px;opacity:.75;font-style:italic;margin:2px 0 4px}
.card .swatch{display:flex;gap:4px;margin:2px 0 6px}.card .swatch i{width:18px;height:8px;border-radius:3px;border:1px solid rgba(255,255,255,.25)}

#cmap{width:min(1100px,94vw);margin:4px 0 0}#cmap svg{width:100%;height:auto;display:block;background:radial-gradient(ellipse at center,#0b1428cc,#02040acc);border:1px solid #2fb8ff33;border-radius:14px}
#cmap .lbl{font-size:11px;fill:#9fb8d0}#cmap .cn{font-size:13px;font-weight:800;fill:#fff;letter-spacing:.05em}#cmap .comet{cursor:pointer}#cmap .comet:hover circle{stroke-width:3}#cmap .comet.lk{opacity:.45}
.mcard .cm{display:block;font-size:10.5px;color:#b8a0ff;letter-spacing:.08em;margin-bottom:2px}
/* ---------- Système solaire / Voyager ---------- */
button.big.voyage{background:linear-gradient(180deg,#3d7bff,#5a2bc8);border-color:#a9c4ff;box-shadow:0 0 22px rgba(110,140,255,.45);font-size:19px}
#systeme{justify-content:flex-start;gap:6px;padding:12px 14px;background:radial-gradient(ellipse at 40% 50%,rgba(10,16,40,.9),rgba(1,2,8,.97))}
.sysbar{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1500px}.sysbar h3{margin:0;letter-spacing:.12em;color:#bfe6ff}
.syswrap{display:flex;gap:12px;width:100%;max-width:1500px;flex:1;min-height:0}
.sysmapbox{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #2fb8ff33;border-radius:14px;background:#02040a99}
#sysmap{width:100%;height:100%;max-height:100%;display:block;transition:transform 1.1s cubic-bezier(.6,0,.9,.4),filter 1.1s,opacity 1.1s}
#sysmap .lbl{font-size:12px;fill:#8fa8c0}#sysmap .cn{font-size:13px;font-weight:800;fill:#fff;letter-spacing:.05em;paint-order:stroke;stroke:#000a;stroke-width:3px}
#sysmap .ssun{animation:sunp 4s ease-in-out infinite;transform-origin:500px 300px}@keyframes sunp{50%{transform:scale(1.08)}}
.scomet{cursor:pointer;outline:none}.scomet .hl{opacity:0;transition:opacity .2s}.scomet.sel .hl{opacity:1}.scomet.sel .core{stroke:#ffd27a;stroke-width:3}
.scomet.sel .cn{fill:#ffd27a;font-size:15px}.scomet:hover .core{stroke-width:3}
.scomet .lock{display:none;font-size:11px}.scomet.lk .lock{display:block}.scomet.lk{filter:grayscale(1) brightness(.75)}.scomet.lk .cn{fill:#9aa}
#syspanel{width:360px;flex:none;overflow:auto;background:linear-gradient(180deg,rgba(14,24,48,.95),rgba(6,10,22,.95));border:1px solid #7fe9ff44;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;animation:spin .25s ease-out}
@keyframes spin{from{transform:translateX(30px);opacity:0}}
.sp-head{display:flex;gap:12px;align-items:center}.sp-dot{width:34px;height:34px;border-radius:50%;background:var(--cc);box-shadow:0 0 18px var(--cc);flex:none}
.sp-name{font-size:22px;font-weight:900;letter-spacing:.06em;color:#fff}.sp-where{font-size:13px;color:#9fd0ff}
.sp-desc{margin:2px 0;font-size:14px;line-height:1.4;color:#d6e4f2}.sp-rel{font-size:13px;color:#b8c8d8}
.sp-sub{font-size:12px;font-weight:800;letter-spacing:.12em;color:#ffb070;text-transform:uppercase;margin-top:4px}
.sp-haz{display:flex;flex-wrap:wrap;gap:5px}.sp-haz span{font-size:12px;padding:3px 8px;border-radius:20px;background:#ff503022;border:1px solid #ff705066;color:#ffc0a8}
.sp-mis{display:flex;flex-direction:column;gap:5px}
.sp-m{display:flex;align-items:center;gap:8px;text-align:left;padding:7px 10px;font-size:13px}.sp-m i{font-style:normal;width:18px;text-align:center}.sp-m span{flex:1}.sp-m em{font-style:normal;font-size:11px;padding:2px 6px;border-radius:8px}
.sp-m.done em{background:#2a6a3a;color:#bfffcf}.sp-m.open em{background:#8a5a10;color:#ffe2a8}.sp-m.lock{opacity:.5;cursor:not-allowed}.sp-m.lock em{background:#333;color:#aaa}
.sp-m.on{border-color:#ffd27a;box-shadow:0 0 14px #ffd27a55}
.sp-mode,.sp-fmt{justify-content:center}.sp-go{margin-top:4px}.sp-go[disabled]{filter:grayscale(1);opacity:.6;cursor:not-allowed}
.syshint{font-size:12px;color:#8fa8c0;text-align:center}
#skcomet{flex-wrap:wrap;max-width:720px}#skcomet button{border-left:4px solid var(--cc)}#skcomet button[disabled]{opacity:.45;cursor:not-allowed}
#syswarp{position:fixed;inset:0;pointer-events:none;opacity:0;z-index:30;display:flex;align-items:center;justify-content:center;
  background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0 3deg,color-mix(in srgb,var(--wc,#7fe9ff) 55%,transparent) 3.4deg 3.7deg,transparent 4deg 9deg),radial-gradient(circle,#fff 0,var(--wc,#7fe9ff) 8%,transparent 45%)}
#syswarp .wtxt{font-size:30px;font-weight:900;letter-spacing:.15em;color:#fff;text-shadow:0 0 20px #000,0 0 30px var(--wc,#7fe9ff)}
#systeme.warp #sysmap{transform:scale(7);filter:blur(3px) brightness(1.8);opacity:.2}
#systeme.warp #syswarp{animation:warp 1.15s ease-in forwards}#systeme.warp #syspanel{opacity:0;transition:opacity .3s}
@keyframes warp{0%{opacity:0;transform:scale(.3) rotate(0)}60%{opacity:.9}100%{opacity:1;transform:scale(2.2) rotate(25deg);background-color:#fff}}
@media (max-width:820px){.syswrap{flex-direction:column}#syspanel{width:auto;max-height:46vh}.sysmapbox{min-height:38vh}.syshint{display:none}}
/* ---------- cinématiques ---------- */
#cine{position:fixed;inset:0;z-index:32;pointer-events:auto;overflow:hidden;touch-action:none;user-select:none}
#cine.hidden{display:none}
#cine .lb{position:absolute;left:0;right:0;height:0;background:#000;transition:height .6s ease;z-index:2}
#cine .lb.top{top:0}#cine .lb.bot{bottom:0}
#cine.on .lb{height:11.5vh}
#cine.pix::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 48%,rgba(0,0,0,0) 55%,rgba(10,6,20,.42) 100%)}
#cine .cfade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;z-index:3}
#cine .ccard{position:absolute;left:0;right:0;top:36%;text-align:center;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .8s ease,transform 1.2s ease;z-index:4;pointer-events:none}
#cine .ccard.show{opacity:1;transform:none}
#cine .cct{font-size:clamp(26px,5.4vw,64px);font-weight:800;letter-spacing:.22em;color:#fff;text-shadow:0 0 18px rgba(127,233,255,.7),0 0 46px rgba(255,140,40,.35)}
#cine .ccs{margin-top:10px;font-size:clamp(13px,1.8vw,20px);letter-spacing:.32em;color:#9fdcff;text-transform:uppercase}
#cine .csub{position:absolute;left:50%;bottom:calc(11.5vh + 14px);transform:translateX(-50%) translateY(6px);max-width:min(880px,90vw);text-align:center;font-size:clamp(15px,2vw,22px);line-height:1.35;color:#fff;
  background:rgba(0,0,0,.42);padding:8px 16px;border-radius:8px;opacity:0;transition:opacity .35s ease,transform .35s ease;text-shadow:0 1px 3px #000;z-index:5;pointer-events:none}
#cine .csub.show{opacity:1;transform:translateX(-50%)}
#cine .csub b{display:block;font-size:.72em;letter-spacing:.18em;text-transform:uppercase;margin-bottom:2px}
#cine .csub.narr{font-style:italic;color:#e8e2cf;background:rgba(0,0,0,.25)}
#cine .ccred{position:absolute;left:0;right:0;top:11.5vh;bottom:11.5vh;overflow:hidden;opacity:0;transition:opacity 1s;z-index:4;pointer-events:none;
  -webkit-mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent)}
#cine .ccred.show{opacity:1}
#cine .ccredi{position:absolute;left:0;right:0;top:100%;text-align:center;color:#dfefff;font-size:clamp(14px,1.7vw,19px);line-height:1.7}
#cine .ccred.show .ccredi{animation:credroll 10s linear forwards}
#cine .ccredi h2{font-size:1.9em;letter-spacing:.2em;color:#fff;margin:.2em 0}
#cine .ccredi h4{color:#ffb070;letter-spacing:.2em;margin:1.2em 0 .1em;font-size:.9em;text-transform:uppercase}
@keyframes credroll{from{transform:translateY(0)}to{transform:translateY(-100%) translateY(-78vh)}}
#cine .cskip{position:absolute;right:14px;bottom:calc(11.5vh + 12px);z-index:6;background:rgba(0,0,0,.45);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:6px 14px;font-size:14px;opacity:.45;transition:opacity .3s;cursor:pointer}
#cine .cskip small{opacity:.6;margin-left:4px}
#cine .cskip:hover,#cine .cskip.hot{opacity:1}
#cine.rm .lb,#cine.rm .ccard,#cine.rm .csub,#cine.rm .ccred{transition-duration:.01s}
#cine.rm .ccard{transform:none}
#cines .cinelist{max-width:900px;width:100%}
#cines h4{margin:12px 0 6px;color:#ffb070;letter-spacing:.15em;text-transform:uppercase;font-size:13px}
#cines .cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
#cines .cgrid button{text-align:left;font-size:14px}
#cines .cgrid button:disabled{opacity:.4}
@media (pointer:coarse){#cine .cskip{opacity:.8;padding:10px 18px}#cine .cskip small{display:none}}
#camind{position:fixed;right:12px;bottom:184px;z-index:12;background:rgba(40,0,0,.75);color:#ff8080;font:600 11px system-ui,sans-serif;padding:3px 8px;border-radius:6px;pointer-events:none;max-width:200px}
#lbA li .kick,#lbB li .kick{margin-left:6px;padding:0 6px;font-size:11px;background:#5a1a1a;color:#fff;border:1px solid #a33;border-radius:4px;cursor:pointer}
#wsnote{margin:6px 0;padding:6px 10px;border:1px solid #ffb020;border-radius:6px;background:rgba(80,50,0,.5);color:#ffd27a;font-size:13px}
.diffseg{flex-wrap:wrap}.briefdiff{display:flex;gap:12px;align-items:center;justify-content:center;margin:12px 0}.briefdiff label{color:#9fd8ff}
#tutobox{position:fixed;bottom:130px;left:50%;transform:translateX(-50%);max-width:min(600px,80vw);background:rgba(5,14,28,.82);border:1px solid #7fe9ff;border-radius:12px;padding:12px 20px;text-align:center;pointer-events:none;z-index:6;box-shadow:0 0 24px rgba(127,233,255,.25)}#tutobox .tt{font-size:22px;font-weight:700;color:#7fe9ff}#tutobox .th{margin-top:6px;font-size:15px;color:#e8f4ff}#tutobox .tp{margin-top:8px;display:flex;gap:5px;justify-content:center}#tutobox .tp i{width:22px;height:6px;border-radius:3px;background:rgba(255,255,255,.18)}#tutobox .tp i.ok{background:#7fe9ff}#tutobox .tp i.cur{background:#ff9a3c}
#hitmark.kill{color:#ff5a3c;font-size:46px;text-shadow:0 0 12px #f80}#hitmark.boss{color:#ffd040}#killfeed div.me{border-right:3px solid #ffd040;background:rgba(40,30,0,.6)}#killfeed div.medead{border-right:3px solid #f33}.estats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 6px;white-space:normal}.estats div{background:rgba(127,233,255,.08);border:1px solid rgba(127,233,255,.25);border-radius:8px;padding:8px 6px;text-align:center}.estats b{display:block;font-size:20px;color:#e8f4ff}.estats span{font-size:12px;color:#9fc4d8}.epod{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;white-space:normal}.epod span{background:rgba(0,0,0,.35);border-radius:14px;padding:4px 12px;font-size:14px}.epod span.t1{color:#ff8a4c}.epod span.t0{color:#7fe9ff}.epod span.me{outline:2px solid #ffd040}.epod i{opacity:.7;font-style:normal;margin-left:4px}

/* ===== r14 — charte i_No : intro + menu 3D vivant (verre dépoli lumineux) ===== */
#intro{position:fixed;inset:0;z-index:60;cursor:pointer;overflow:hidden;font-family:inherit;background:#000;transition:opacity .65s ease-out;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
/* r15 : intro photoréaliste (vidéo pré-rendue) ; repli = images fixes tirées de la vidéo */
#intro .ivid,#intro .istills,#intro .istill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;background:#000;pointer-events:none}
#intro .istill{opacity:0;transition:opacity .5s ease}#intro .istill.on{opacity:1}
#intro .istills.kb .istill.on{animation:ikb 5s ease-out both}@keyframes ikb{from{transform:scale(1.0)}to{transform:scale(1.06)}}
#intro .ivig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,0) 55%,rgba(0,0,0,.45) 100%)}
#intro.rm .istill{transition:none}#intro.lite .ivig{display:none}#intro.lite .iskip{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(14,24,42,.82)}
#intro .ititle h1,#intro .ititle h2{text-shadow:0 2px 18px rgba(0,0,0,.75),0 0 30px rgba(0,0,0,.4)}
/* r15b : voile sombre derrière titre et légendes (lisibles sur glace claire et neige) */
#intro .ititle::before{content:'';position:absolute;left:50%;top:50%;width:min(92vw,980px);height:220%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at 50% 50%,rgba(0,8,20,.62) 0%,rgba(0,8,20,.38) 45%,rgba(0,8,20,0) 72%);z-index:-1}
#intro .ititle{isolation:isolate}
#intro .icap{text-shadow:0 1px 3px #000,0 2px 14px #000,0 0 28px rgba(0,0,0,.8)}
#intro .icap::before{content:'';position:absolute;left:50%;top:50%;width:min(96%,900px);height:300%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at 50% 50%,rgba(0,6,16,.55) 0%,rgba(0,6,16,0) 70%);z-index:-1}
#intro .icap{isolation:isolate}
#intro.out{opacity:0;pointer-events:none}
#intro .ifade{position:absolute;inset:0;background:#000;pointer-events:none}
#intro .ibar{position:absolute;left:0;right:0;height:9vh;background:#000;transition:transform .9s cubic-bezier(.4,0,.2,1);pointer-events:none}
#intro .ibar.top{top:0;transform:translateY(-100%)}#intro .ibar.bot{bottom:0;transform:translateY(100%)}
#intro.bars .ibar{transform:none}
#intro .isig{position:absolute;left:0;right:0;top:58%;text-align:center;font-size:clamp(26px,5vw,52px);font-weight:300;letter-spacing:.32em;color:#f4f1e6;text-shadow:0 0 22px rgba(200,215,255,.6);opacity:0;pointer-events:none}
#intro .isig span{display:block;font-size:.38em;letter-spacing:.6em;margin-top:.5em;color:#bcd0ff}
#intro .icap{position:absolute;left:8%;right:8%;bottom:16vh;text-align:center;font-size:clamp(14px,2.3vw,22px);letter-spacing:.06em;color:#e8f4ff;text-shadow:0 2px 12px #000;opacity:0;pointer-events:none}
#intro .ititle{position:absolute;left:0;right:0;top:30%;text-align:center;opacity:0;pointer-events:none}
#intro .icopy,.screen .copy{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:11px;letter-spacing:.18em;color:rgba(232,244,255,.62);pointer-events:none;text-shadow:0 1px 6px #000}
#intro .icopy{bottom:calc(9vh + 10px);opacity:0}
#intro .iskip{position:absolute;right:18px;top:calc(9vh + 14px);opacity:0;pointer-events:none;transition:opacity .4s;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 16px;font-size:14px}
#intro.canskip .iskip{opacity:1;pointer-events:auto}
#menu.m3d{background:radial-gradient(ellipse at 30% 55%,rgba(2,4,10,0) 0%,rgba(2,4,10,.12) 45%,rgba(2,4,10,.62) 100%);align-items:flex-end;justify-content:center;padding:18px 5vw 40px;perspective:1200px}
#menu.m3d .title{position:absolute;left:4vw;top:5vh;text-align:left;pointer-events:none}
#menu.m3d .title h1{font-size:clamp(34px,6.4vw,78px)}
.glass{background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(160,200,255,.04));border:1px solid rgba(190,225,255,.26);border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.18),0 0 34px rgba(110,200,255,.10);backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25)}
#menu.m3d{--pw:min(560px,94vw)}
#menu .mainbtns.glass{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:var(--pw,min(560px,94vw));padding:14px;transform:rotateY(calc(-9deg + var(--px,0) * 3deg)) rotateX(calc(var(--py,0) * -2deg));transform-origin:right center;transition:transform .25s ease-out}
#menu .mainbtns .big,#menu .mainbtns .g-cont{grid-column:span 2}
#menu .mainbtns button{background:rgba(255,255,255,.06);border:1px solid rgba(190,225,255,.22);border-radius:12px;padding:9px 13px;font-size:14px;backdrop-filter:none;transition:background .2s,box-shadow .2s,transform .2s,border-color .2s}
#menu .mainbtns button:hover,#menu .mainbtns button:focus-visible{background:rgba(160,220,255,.16);border-color:rgba(200,240,255,.7);box-shadow:0 0 22px rgba(127,233,255,.35),inset 0 0 12px rgba(127,233,255,.12);transform:translateY(-1px)}
#menu .mainbtns button:active{transform:scale(.98)}
#menu .mainbtns button small{display:block;font-size:11px;opacity:.7;font-weight:400;letter-spacing:.04em;margin-top:2px}
#menu .mainbtns .g-play{font-size:20px;background:linear-gradient(180deg,rgba(255,170,90,.55),rgba(200,80,30,.45));border-color:rgba(255,205,150,.6);box-shadow:0 0 26px rgba(255,140,60,.28);text-align:left}
#menu .mainbtns .g-cont{font-size:16px;font-weight:600}
#menu .mainbtns .voyage{background:rgba(110,130,255,.16);border-color:rgba(170,190,255,.45)}
#menu .foot{position:absolute;left:4vw;bottom:34px;font-size:12px}
#menu.m3d-in .mainbtns{animation:m3din 1.1s cubic-bezier(.2,.7,.2,1) both}#menu.m3d-in .title{animation:m3dt 1.3s ease-out both}
#menu.m3d-in.fast .mainbtns{animation-duration:.6s}#menu.m3d-in.fast .title{animation-duration:.6s}
@keyframes m3din{from{opacity:0;transform:translateZ(-160px) rotateY(-16deg)}to{opacity:1}}
@keyframes m3dt{from{opacity:0;transform:translateY(-10px)}to{opacity:1}}
.credbox{max-width:560px;padding:18px 22px;line-height:1.5}.credbox p{margin:0 0 10px}.credbox .ctitle{font-size:18px;font-weight:700;color:#7fe9ff;letter-spacing:.06em}
.soon{max-width:560px;padding:22px 26px;text-align:center;line-height:1.5}.soon .soonbig{font-size:clamp(26px,4.4vw,40px);font-weight:800;letter-spacing:.08em;margin:0 0 10px;background:linear-gradient(180deg,#fff,#7fe9ff);-webkit-background-clip:text;background-clip:text;color:transparent}
/* r14 : paysage — le titre ne passe jamais sous le panneau ; écrans bas (M6 paysage 800×360, 960×540) : panneau compact sans débordement */
@media (min-aspect-ratio:1/1){#menu.m3d .title{max-width:calc(91vw - var(--pw) - 20px)}#menu.m3d .title h1{font-size:clamp(22px,calc((91vw - var(--pw) - 20px) / 7.6),78px)}#menu.m3d .title h2{font-size:clamp(9px,calc((91vw - var(--pw) - 20px) / 27),20px);letter-spacing:.26em}}
@media (min-aspect-ratio:1/1) and (max-height:560px){#menu.m3d{--pw:min(520px,60vw);padding:8px 3vw 26px}#menu .mainbtns.glass{padding:8px;gap:5px;max-height:calc(100vh - 36px);overflow-y:auto}#menu .mainbtns button{padding:5px 10px;font-size:12.5px}#menu .mainbtns button small{font-size:10px;margin-top:0}#menu .mainbtns .g-play{font-size:16px}#menu .mainbtns .g-cont{font-size:13.5px}#menu .foot{bottom:24px;font-size:11px}#menu .copy{bottom:6px;font-size:10px}}
@media (max-aspect-ratio:1/1){#menu.m3d{align-items:center;justify-content:flex-end}#menu.m3d .title{position:static;text-align:center}#menu .mainbtns.glass{transform:none}#menu .foot{position:static}}
/* M6 ultra léger : pas de flou (coûteux), pas d'animation 3D du panneau */
body.lite .glass{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(14,24,42,.82)}
body.lite #menu .mainbtns.glass{transform:none;transition:none}body.lite #menu.m3d-in .mainbtns{animation:none}
@media (prefers-reduced-motion:reduce){#menu .mainbtns.glass{transform:none!important;transition:none}#menu.m3d-in .mainbtns,#menu.m3d-in .title{animation:none}#intro .ibar{transition:none}#intro .istill{transition:none;animation:none!important}}
