
/* Layout : thème sombre unique, façon menu de console. Bienvenue = titre, objectif et mur de jaquettes qui défile. Accueil = scène plein écran (console en 3D éclairée de sa couleur au centre, grand nom à gauche, liste inclinée à droite, barre de commandes avec défilement auto en bas), puis toutes les consoles par époque et la sauvegarde. Page console = scène 3D + fiche, puis grille de jaquettes. Page jeu = jaquette, notes, description, fiche. */
:root{
  color-scheme:dark; --w:255,255,255;
  --bg:#0b0c10; --surface:#14161d; --surface2:#1b1e27; --ink:#eef0f6; --muted:#949bad; --faint:#5d6375; --line:#252935;
  --accent:#9db5ff; --accent-ink:#0b0c10; --done:#5ccf8f; --heart:#ff6b81; --star:#f2c14e; --danger:#ff7a6b;
  --good:#00ce7a; --mid:#ffbd3f; --bad:#ff6874;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif; --body:"DM Sans","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg)}
.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1240px;margin:0 auto}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.muted{color:var(--muted)}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.wordmark{font-family:var(--display);font-style:italic;font-weight:850;font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;line-height:.92}
.bar{height:12px;border-radius:12px;background:rgba(var(--w),.08);box-shadow:inset 0 0 0 1px rgba(var(--w),.06)}
.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 55%,#fff),var(--c));box-shadow:0 0 14px color-mix(in srgb,var(--c) 70%,transparent);min-width:6px;transition:width .6s cubic-bezier(.2,.7,.2,1)}
.top .bar{height:10px}
.top .bar i{background:linear-gradient(90deg,#5ccf8f,#9db5ff);box-shadow:0 0 12px rgba(92,207,143,.55)}
.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:5px 12px;font-size:13px;white-space:nowrap;color:var(--muted)}
.chip:hover{color:var(--ink);border-color:#3a3f4e}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.btn{border:0;border-radius:999px;padding:10px 20px;font-weight:700;background:var(--ink);color:var(--bg);display:inline-flex;align-items:center;gap:8px}
.btn.ghost{background:rgba(var(--w),.1);color:var(--ink);backdrop-filter:blur(8px)}
.btn.sm{padding:7px 14px;font-size:13px}
.btn.warn{background:transparent;color:var(--danger);border:1px solid var(--danger)}
.btn.warn.arm{background:var(--danger);color:#fff}
main{padding-block:0 64px}

/* Barre du haut */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(11,12,16,.78);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid rgba(var(--w),.06)}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-block:11px}
.logo{border:0;background:none;padding:0;display:flex;align-items:center;gap:10px;line-height:1;text-align:left}
.logo .ltx{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.logo b{font-size:18px}
.logo small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.prog{flex:1 1 200px;display:flex;flex-direction:column;gap:5px;min-width:0;max-width:340px}
.seedone{border:0;background:rgba(92,207,143,.14);color:#5ccf8f;font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;margin-left:6px}
.seedone:hover{background:rgba(92,207,143,.26)}
.nav{display:flex;gap:4px}
.nav button{border:0;background:none;color:var(--muted);font-weight:600;font-size:13px;padding:7px 12px;border-radius:999px;white-space:nowrap}
.nav button:hover{color:var(--ink)}
.nav button.on{background:rgba(var(--w),.1);color:var(--ink)}
.prog .row{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
.prog b{color:#5ccf8f;font-variant-numeric:tabular-nums;font-size:13px}
.find{flex:1 1 240px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:0 12px;min-width:0;margin-left:auto;max-width:420px}
.find input{border:0;outline:0;background:transparent;padding:9px 0;width:100%;min-width:0}
.find kbd{font-size:11px;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:0 5px}
@media (max-width:760px){.top{position:static}.find{max-width:none;margin-left:0}.prog{max-width:none}}

/* Scène d'accueil : console en 3D éclairée de la couleur de la machine */
@property --c{syntax:"<color>";inherits:true;initial-value:#8a9bc4}
.stage{position:relative;height:max(560px,calc(100vh - var(--toph,66px)));overflow:hidden;background:#06070a;--c:#8a9bc4;isolation:isolate;transition:--c .9s ease}
.glow{position:absolute;left:53%;top:46%;width:min(920px,95vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 30%,transparent),transparent 72%)}
.light{position:absolute;inset:0;z-index:-1;pointer-events:none;filter:blur(26px)}
.light::before{content:"";position:absolute;left:53%;top:-10%;width:560px;height:120%;transform:translateX(-50%);background:linear-gradient(180deg,color-mix(in srgb,var(--c) 44%,transparent),transparent 75%);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);opacity:.6}
.light::after{content:"";position:absolute;left:53%;top:76%;width:700px;height:160px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 55%,transparent),transparent);opacity:.5}
.floor{position:absolute;left:0;right:0;bottom:56px;height:46%;z-index:-1;pointer-events:none;opacity:.35;
  background-image:linear-gradient(rgba(var(--w),.07) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--w),.07) 1px,transparent 1px);background-size:60px 60px;
  transform:perspective(500px) rotateX(62deg);transform-origin:50% 100%;-webkit-mask-image:radial-gradient(60% 90% at 53% 100%,#000,transparent 75%);mask-image:radial-gradient(60% 90% at 53% 100%,#000,transparent 75%)}
.dust{position:absolute;inset:0;z-index:-1;pointer-events:none}
.dust i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;animation:float 9s linear infinite}
@keyframes float{0%{transform:translateY(0);opacity:0}15%{opacity:.35}100%{transform:translateY(-260px);opacity:0}}
.vign{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(6,7,10,.8),transparent 32%,transparent 68%,rgba(6,7,10,.75)),linear-gradient(0deg,var(--bg),transparent 16%)}
.m3d{position:absolute;left:29%;right:25%;top:0;bottom:56px;z-index:1;cursor:grab;touch-action:pan-y}
.m3d:active{cursor:grabbing}
.m3d canvas{width:100%!important;height:100%!important;display:block;-webkit-mask-image:linear-gradient(#000 64%,transparent 97%);mask-image:linear-gradient(#000 64%,transparent 97%)}
.info{position:absolute;left:0;top:0;bottom:56px;width:min(560px,42%);z-index:2;display:flex;flex-direction:column;justify-content:center;gap:14px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:16px;pointer-events:none}
.info>*{pointer-events:auto}
.info .meta{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);letter-spacing:.06em}
.info .meta b{color:color-mix(in srgb,var(--c) 40%,#fff);font-size:14px}
.info .maker{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 55%,var(--ink));font-weight:700}
.info h2{font-size:clamp(38px,5.2vw,76px);text-shadow:0 4px 30px rgba(0,0,0,.5)}
.info.sw>*{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.info.sw>:nth-child(2){animation-delay:.03s}.info.sw>:nth-child(3){animation-delay:.06s}.info.sw>:nth-child(4){animation-delay:.1s}.info.sw>:nth-child(5){animation-delay:.14s}.info.sw>:nth-child(6){animation-delay:.17s}
.m3d.sw canvas{animation:swap .6s cubic-bezier(.2,.7,.2,1)}
@keyframes swap{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.info p{margin:0;color:#c9cdd8;max-width:40ch;font-size:16px}
.info .nums{display:flex;gap:22px;font-size:13px;color:var(--muted)}
.info .nums b{display:block;font-family:var(--display);font-size:26px;color:#fff;font-variant-numeric:tabular-nums;line-height:1.1;text-shadow:0 0 22px color-mix(in srgb,var(--c) 75%,transparent)}
.info .nums span:last-child b{color:color-mix(in srgb,var(--c) 45%,#fff)}
.info .bar{max-width:400px}
.info .actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.new{display:inline-block;align-self:flex-start;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);border-radius:999px;font-size:11px;font-weight:700;padding:1px 9px;letter-spacing:.08em;text-transform:uppercase}
.rail{position:absolute;right:0;top:0;bottom:56px;width:min(460px,34%);z-index:2;perspective:900px;outline:none;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.rail .tilt{position:absolute;inset:0;transform:rotateY(-20deg);transform-style:preserve-3d;transform-origin:right center}
.item{position:absolute;left:10px;right:28px;top:50%;height:76px;margin-top:-38px;border:0;background:none;color:var(--ink);text-align:right;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:0 18px;
  transform:translate3d(calc(var(--d,0)*-12px),calc(var(--o,0)*80px),calc(var(--d,0)*-60px)) rotateX(calc(var(--o,0)*-9deg)) scale(var(--s,1));opacity:var(--a,1);transform-origin:right center;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s}
.item .wordmark{font-size:clamp(18px,1.75vw,26px);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#d9dce6;transition:color .3s}
.item small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.item.cur .wordmark{color:#fff;text-shadow:0 0 24px color-mix(in srgb,var(--c) 80%,transparent)}
.item.cur::after{content:"";position:absolute;right:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--c);box-shadow:0 0 12px var(--c)}
.hints{position:absolute;left:0;right:0;bottom:0;height:56px;z-index:3;display:flex;align-items:center;gap:22px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px));border-top:1px solid rgba(var(--w),.07);background:rgba(8,9,12,.7);backdrop-filter:blur(10px);font-size:12px;color:var(--muted);overflow-x:auto;scrollbar-width:none}
.hints .hk{display:flex;align-items:center;gap:7px;white-space:nowrap;border:0;background:none;color:inherit;font-size:12px;padding:4px 6px;border-radius:6px}
.hints button.hk:hover,.hints .hk button:hover kbd{color:var(--ink);background:rgba(var(--w),.08)}
.hints .hk button{border:0;background:none;padding:0;color:inherit}
.hints kbd{transition:background .2s}
.hints kbd{font-family:var(--body);font-size:11px;font-weight:700;color:var(--ink);border:1px solid #3a3f4e;border-radius:5px;min-width:22px;height:20px;display:inline-grid;place-items:center;padding:0 5px}
.hints .eras{margin-left:auto;display:flex;gap:4px}
.hints .eras button{border:0;background:none;color:var(--muted);font-size:12px;padding:4px 8px;border-radius:6px;white-space:nowrap}
.hints .eras button:hover,.hints .eras button.on{color:var(--ink);background:rgba(var(--w),.08)}
.auto{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--muted);font-size:12px;white-space:nowrap;padding:4px 8px;border-radius:6px;flex:none}
.auto:hover{color:var(--ink);background:rgba(var(--w),.06)}
.auto .track{width:110px;height:6px;cursor:pointer;border-radius:3px;background:rgba(var(--w),.12);overflow:hidden}
.auto .track i{display:block;height:100%;width:0;background:var(--c)}
.auto.run .track i{animation:fill 10s linear forwards}
@keyframes fill{to{width:100%}}
@media (max-width:1280px){.hints .opt{display:none}}
@media (prefers-reduced-motion:reduce){.item,.bar i,.info h2,.dust i{transition:none;animation:none}.dust{display:none}}
@media (max-width:820px){
  .stage{height:auto;display:flex;flex-direction:column}
  .m3d{position:relative;left:auto;right:auto;top:auto;bottom:auto;height:280px;flex:none}
  .glow{top:140px;left:50%;width:560px}
  .light::before,.light::after{left:50%}.light::after{top:250px;width:440px}
  .floor{bottom:auto;top:110px;height:200px}
  .vign{background:linear-gradient(0deg,var(--bg),transparent 40%)}
  .info{position:relative;width:auto;bottom:auto;padding:0 16px 18px;padding-left:max(16px,env(safe-area-inset-left,0px))}
  .info h2{font-size:clamp(30px,9.6vw,52px)}
  .rail{position:relative;width:auto;bottom:auto;height:auto;-webkit-mask-image:none;mask-image:none;perspective:none;overflow-x:auto;scrollbar-width:none}
  .rail .tilt{position:static;transform:none;display:flex;gap:8px;padding:6px max(16px,env(safe-area-inset-left,0px)) 14px}
  .item{position:static;margin:0;transform:none;opacity:1;height:auto;width:auto;flex:none;padding:8px 14px;align-items:flex-start;text-align:left;background:rgba(var(--w),.06);border-radius:10px}
  .item .wordmark{font-size:17px}
  .item.cur{background:rgba(var(--w),.16)}
  .item.cur::after{display:none}
  .hints{position:relative;height:auto;padding-block:10px;gap:10px}
  .hints>.hk{display:none}
  .hints .eras{margin-left:0}
  .hints .auto{order:-1}
}

/* Page de bienvenue */
.wel{position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line);
  background:radial-gradient(60% 80% at 85% 20%,rgba(157,181,255,.16),transparent 60%),radial-gradient(50% 70% at 5% 100%,rgba(255,107,129,.10),transparent 60%),#0b0c10}
.welin{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;min-height:clamp(520px,76vh,720px);padding-block:36px}
.wel .lead{display:flex;flex-direction:column;gap:18px;position:relative;z-index:2}
.wel h1{font-size:clamp(48px,7.4vw,104px);text-shadow:0 6px 40px rgba(0,0,0,.5)}
.wel p{margin:0;color:#c9cdd8;font-size:17px;max-width:52ch}
.wel p strong{color:var(--ink)}
.kpis{display:flex;gap:28px;flex-wrap:wrap}
.kpis div{display:flex;flex-direction:column}
.kpis b{font-family:var(--display);font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 24px rgba(157,181,255,.6)}
.kpis span{font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.btn.big{padding:14px 28px;font-size:17px}
.wall{position:relative;height:clamp(460px,68vh,660px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;overflow:hidden;
  transform:perspective(1400px) rotateY(-16deg) rotateX(6deg);-webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent)}
.wall .col{display:flex;flex-direction:column;animation:drift var(--t,70s) linear infinite;will-change:transform}
.wall .col:nth-child(2n){animation-direction:reverse;margin-top:-40px}
.wall .col>.box{margin-bottom:14px;flex:none}
.wall .box .ttl b{font-size:12px}
.wall .box .ttl small{display:none}
.wall .box .tags{display:none}
@keyframes drift{to{transform:translateY(-50%)}}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;padding-block:28px 8px}
.step{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.step b{font-family:var(--display);font-size:26px;color:var(--accent);line-height:1}
.step div{display:flex;flex-direction:column;gap:2px}
.step strong{font-size:15px}
.step span{color:var(--muted);font-size:14px}
@media (prefers-reduced-motion:reduce){.wall .col{animation:none}}
@media (max-width:820px){
  .wall .box .ttl b{font-size:10px;overflow-wrap:normal}.wall .box .ttl{left:7px;right:7px;bottom:7px}
  .welin{grid-template-columns:minmax(0,1fr);min-height:0;padding-block:8px 30px;gap:8px}
  .wall{order:-1;height:250px;margin-inline:-30px;transform:perspective(900px) rotateX(10deg)}
}

/* Sections */
.sec{display:flex;flex-direction:column;gap:16px;padding-top:44px}
.sech{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.sech h2{font-size:26px;font-weight:800;font-stretch:110%}
.era{display:flex;flex-direction:column;gap:10px}
.era h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tile{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px;text-align:left;display:flex;flex-direction:column;gap:6px;transition:border-color .2s,transform .2s}
.tile::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--c) 30%,transparent),transparent 60%);opacity:.8;z-index:0}
.tile>*{position:relative}
.tile:hover{border-color:#3a3f4e;transform:translateY(-2px)}
.tile .wordmark{font-size:17px}
.tile small{font-size:12px;color:var(--muted)}
.tile .row{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* Page console */
.chero{position:relative;overflow:hidden;--c:#444;isolation:isolate;border-bottom:1px solid var(--line)}
.chero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(90% 120% at 20% 30%,color-mix(in srgb,var(--c) 40%,transparent),transparent 60%),linear-gradient(0deg,var(--bg),transparent)}
.chero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;padding-block:22px 30px;align-items:center}
@media (max-width:760px){.chero .wrap{grid-template-columns:minmax(0,1fr)}}
.back{border:0;background:none;color:var(--muted);font-weight:600;padding:0;grid-column:1/-1;justify-self:start;font-size:14px}
.back:hover{color:var(--ink)}
.viewer{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:18px;cursor:grab;touch-action:pan-y;isolation:isolate}
.viewer::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:radial-gradient(60% 55% at 50% 40%,color-mix(in srgb,var(--c) 34%,#262a36),#0e1016 78%);box-shadow:inset 0 0 0 1px rgba(var(--w),.06)}
.viewer .m3d{position:absolute;inset:0;cursor:inherit}
.enter .viewer::before{animation:fadein .7s ease both}
.enter .facts,.enter .games{animation:rise .55s .12s ease both}
@keyframes fadein{from{opacity:0}}
.viewer:active{cursor:grabbing}
.viewer span{position:absolute;left:14px;bottom:10px;font-size:12px;color:var(--muted);z-index:2}
.facts{display:flex;flex-direction:column;gap:14px;min-width:0}
.facts h2{font-size:clamp(34px,4.6vw,58px)}
.facts p{margin:0;color:#c9cdd8;font-size:16px;max-width:46ch}
.facts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.facts dl div{border-top:1px solid var(--line);padding-top:8px}
.facts dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:2px 0 0;font-family:var(--display);font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 18px color-mix(in srgb,var(--c) 70%,transparent)}
.games{display:flex;flex-direction:column;gap:16px;padding-top:24px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:9px 12px;font-weight:600;color:var(--muted);margin-bottom:-1px;white-space:nowrap}
.tab.on{color:var(--ink);border-color:var(--accent)}
.tab span{font-size:12px;color:var(--faint);margin-left:4px;font-variant-numeric:tabular-nums}
.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.field{flex:1 1 200px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--surface);min-width:0}
select.field{flex:0 1 auto}
.count{font-size:13px;color:var(--muted);margin-left:auto}

/* Jaquettes */
.jeux{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:24px 18px}
.jeu{display:flex;flex-direction:column;gap:8px;min-width:0;border-radius:8px}
.jeu.flash .box{animation:flash 1.8s}
@keyframes flash{0%,60%{box-shadow:0 0 0 3px var(--accent),0 10px 30px rgba(0,0,0,.5)}}
.box{aspect-ratio:5/7;max-width:100%;border-radius:5px;position:relative;overflow:hidden;color:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.45),inset 0 0 0 1px rgba(var(--w),.08);transition:transform .25s,box-shadow .25s}
.jeu:hover .box{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,.55),inset 0 0 0 1px rgba(var(--w),.12)}
.box .art{position:absolute;inset:0;width:100%;height:100%}
.box.pic::before{display:none}
.box.pic{background:#1a1d26;border:0;padding:0;display:block;width:100%;text-align:left}
.box .art.sp{background-repeat:no-repeat}
.box .pal{position:absolute;inset:-8px;background-size:100% 100%;filter:blur(2.4px) saturate(1.12)}
.gcover .box .pal{filter:blur(4px) saturate(1.12)}
.box.pp .shade{background:linear-gradient(180deg,transparent 34%,rgba(0,0,0,.3) 52%,rgba(0,0,0,.84))}
.box.pp .ttl b{text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 14px rgba(0,0,0,.7)}
.box::before{content:"";position:absolute;inset:0;z-index:1;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' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");mix-blend-mode:overlay;opacity:.35}
.box::after{content:"";position:absolute;inset:0;z-index:4;background:linear-gradient(118deg,rgba(var(--w),.22),rgba(var(--w),0) 32%,rgba(var(--w),0) 70%,rgba(var(--w),.06));pointer-events:none}
.box .shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.7))}
.box .band{position:absolute;z-index:3;font-size:7.5px;font-weight:800;letter-spacing:.16em;display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden}
.box .band.top{top:0;left:0;right:0;height:16px}
.box .band.left{top:0;bottom:0;left:0;width:15px;writing-mode:vertical-rl;transform:rotate(180deg);justify-content:flex-end;padding:8px 0}
.box .ttl{position:absolute;z-index:3;left:10px;right:10px;bottom:10px;display:flex;flex-direction:column;gap:3px}
.box .ttl small{font-size:8px;letter-spacing:.2em;opacity:.75;font-weight:700}
.box .ttl b{font-family:var(--display);font-weight:850;font-stretch:88%;text-transform:uppercase;font-size:16px;line-height:.98;text-shadow:0 2px 10px rgba(0,0,0,.5);overflow-wrap:anywhere}
.box.l .ttl{left:24px}
.box .tags{position:absolute;z-index:3;top:22px;right:7px;display:flex;flex-direction:column;gap:3px;align-items:flex-end}
.box .tags span{background:rgba(0,0,0,.55);backdrop-filter:blur(4px);color:var(--star);border-radius:999px;font-size:10px;font-weight:700;padding:1px 7px}
.box .tags .r18{color:#ff8a8a}
.box .ok{position:absolute;z-index:5;top:22px;left:8px;width:24px;height:24px;border-radius:50%;background:var(--done);color:#0b2416;display:grid;place-items:center;font-weight:900;font-size:13px;transform:scale(0);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.box.l .ok{left:22px}
.jeu.done .box .ok{transform:scale(1)}
.jeu.done .box .art,.jeu.done .box .shade{filter:saturate(.5) brightness(.8)}
.jeu.done .box .pal{filter:blur(2.4px) saturate(.5) brightness(.8)}
button.box{border:0;padding:0;display:block;width:100%;text-align:left}
.jeu .name{font-size:14px;font-weight:600;line-height:1.25;border:0;background:none;padding:0;text-align:left;color:var(--ink)}
.jeu button.name:hover{text-decoration:underline}
.jeu .sc{font-size:11px;font-weight:800;border-radius:4px;padding:0 5px;color:#0b0c10;font-variant-numeric:tabular-nums}
.jeu .desc{font-size:12.5px;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jeu .meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:6px}
.acts{display:flex;gap:5px;flex:none}
.acts button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:8px;width:32px;height:30px;font-size:14px;line-height:1;padding:0;transition:background .2s,color .2s,border-color .2s}
.acts button:hover{border-color:#3a3f4e;color:var(--ink)}
.acts .c[aria-pressed="true"]{background:var(--done);border-color:var(--done);color:#0b2416}
.acts .h[aria-pressed="true"]{color:var(--heart);border-color:color-mix(in srgb,var(--heart) 60%,transparent)}
.more{align-self:center;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:9px 20px}
.empty{border:1px dashed var(--line);border-radius:12px;padding:32px;text-align:center;color:var(--muted)}
.where{font-size:12px;color:var(--accent);border:0;background:none;padding:0;text-align:left}

/* Sauvegarde */
.save{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card h3{font-size:16px;font-weight:700} .card p{margin:0;color:var(--muted);font-size:14px}
.status{display:flex;align-items:center;gap:8px;font-weight:700}
.dot{width:9px;height:9px;border-radius:50%;background:var(--star);flex:none}
.status[data-s="cloud"] .dot{background:var(--done)}
.status[data-s="error"] .dot{background:var(--danger)}
.row{display:flex;gap:8px;flex-wrap:wrap}
.row input{flex:1 1 160px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg);font-size:12px}
.msg{font-size:13px;color:var(--muted);min-height:1.3em}
footer{color:var(--faint);font-size:12px;padding-top:40px}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translate(-50%,160%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;z-index:40;transition:transform .3s;max-width:calc(100% - 32px);font-weight:600;box-shadow:0 6px 24px rgba(0,0,0,.4)}
.toast:not(.on){visibility:hidden}

/* Page jeu */
.ghero{position:relative;overflow:hidden;isolation:isolate}
.gback{position:absolute;left:50%;top:-30%;width:max(110%,900px);aspect-ratio:5/7;transform:translateX(-50%);z-index:-2;filter:blur(60px) saturate(1.2);opacity:.55}
.gback .art{position:absolute;inset:0;width:100%;height:100%}
.gwash{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,12,16,.35),rgba(11,12,16,.8) 60%,var(--bg))}
.ghead{display:grid;grid-template-columns:260px minmax(0,1fr);gap:34px;padding-block:22px 34px;align-items:end}
.ghead .back{grid-column:1/-1}
.gcover .box{box-shadow:0 26px 60px rgba(0,0,0,.65),0 0 0 1px rgba(var(--w),.08);border-radius:8px}
.gcover .box .ttl b{font-size:26px}
.gcover .box .band.top{height:22px;font-size:10px}
.gt{display:flex;flex-direction:column;gap:14px;min-width:0}
.gt h2{font-size:clamp(32px,4.6vw,58px);overflow-wrap:anywhere}
.gtags{display:flex;flex-wrap:wrap;gap:6px}
.gtags span{font-size:12px;border:1px solid rgba(var(--w),.18);background:rgba(0,0,0,.28);border-radius:999px;padding:3px 10px;color:#d4d7e0}
.gtags .cs{font-weight:700;border-color:transparent}
.gtags .st{color:var(--star)} .gtags .r18{color:#ff8a8a}
.scores{display:flex;flex-wrap:wrap;gap:12px}
.score{display:flex;align-items:center;gap:12px;background:rgba(20,22,29,.78);backdrop-filter:blur(8px);border:1px solid rgba(var(--w),.08);border-radius:14px;padding:11px 16px 11px 11px;min-width:0}
.score .v{width:56px;height:56px;flex:none;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:27px;color:#0b0c10;background:var(--good);border-radius:8px;font-variant-numeric:tabular-nums}
.score .v.user{border-radius:50%;font-size:22px}
.score .v.mid{background:var(--mid)} .score .v.bad{background:var(--bad)}
.score .v.na{background:none;border:2px dashed #3a3f4e;color:var(--muted)}
.score b{display:block;font-size:14px}
.score small{color:var(--muted);font-size:12px;display:block;max-width:34ch}
.gacts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gacts .gd[aria-pressed="true"]{background:var(--done);color:#0b2416}
.gacts .gf[aria-pressed="true"] b{color:var(--heart)}
.gacts a{font-size:13px;color:var(--muted);text-decoration:none;margin-left:4px}
.gacts a:hover{color:var(--ink)}
.gbody{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;padding-top:8px}
.gbody h3{font-size:18px;margin-bottom:10px}
.gbody p{margin:0 0 12px;color:#d4d7e0;max-width:62ch;font-size:16px}
.gbody .gnote{font-size:13px;color:var(--muted)}
.gbody dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;font-size:14px}
.gbody dt{color:var(--muted)} .gbody dd{margin:0}
.gmore{display:flex;flex-direction:column;gap:14px;padding-top:36px}
.gmore .jeux{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
@media (max-width:760px){
  .ghead{grid-template-columns:minmax(0,1fr);gap:20px;padding-top:14px}
  .gcover{max-width:200px}
  .gbody{grid-template-columns:minmax(0,1fr);gap:24px}
}
.toast.on{transform:translate(-50%,0)}

/* Profils joueurs */
.av.emo{font-size:16px;font-weight:400}
.av.big{width:92px;height:92px;font-size:40px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.av.big.emo{font-size:46px}
.pfl{border:0;background:none;padding:0;font-weight:700;color:var(--ink);cursor:pointer}
.pfl:hover{text-decoration:underline}
#v-profile .wrap{display:flex;flex-direction:column;gap:22px;padding-top:26px}
#pf .back{align-self:flex-start}
.pf-head{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.pf-id{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px}
.pf-id h2{font-size:clamp(32px,5vw,54px);overflow-wrap:anywhere}
.pf-id .bio{margin:0;font-size:16px;max-width:60ch;overflow-wrap:anywhere}
.pf-id .since{font-size:13px;color:var(--faint)}
.pf-acts{display:flex;gap:8px;flex-wrap:wrap}
.pf-note{background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:14px 16px;font-size:14px;color:var(--muted);display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.pf-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pf-stats>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.pf-stats b{display:block;font-family:var(--display);font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}
.pf-stats small{font-size:12px;color:var(--muted)}
.pf-sec{display:flex;flex-direction:column;gap:12px}
.pf-sec h3{font-size:20px}
.pf-tro{display:flex;flex-wrap:wrap;gap:8px}
.pf-tro span{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 8px;font-size:13px;font-weight:700;color:var(--t)}
.pf-tro svg{width:18px;height:18px}
.pf-tro em{font-style:normal;color:var(--ink)}
.pf-cons{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}
.pf-cons button{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:14px}
.pf-cons button:hover{border-color:var(--c)}
.pf-cons .row{display:flex;justify-content:space-between;gap:8px}
.pf-cons .bar{height:8px}
.pf-favs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}
.pf-favs>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.pf-favs .t{border:0;background:none;padding:0;font-size:12px;font-weight:700;text-align:left;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-cm{display:flex;flex-direction:column;gap:10px}
.pf-cm>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.pf-ct{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px}
.pf-ct button{border:0;background:none;padding:0;font-weight:700;color:var(--ink);text-decoration:underline}
.pf-ct time{color:var(--faint);font-size:12px}
.pf-cm p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.pf-ed{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:14px}
.pf-ed .fl input,.pf-ed .fl textarea{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit;font-size:15px;resize:vertical}
.pf-pick{display:flex;flex-wrap:wrap;gap:6px}
.pf-pick button{width:38px;height:38px;border-radius:50%;border:2px solid transparent;padding:0;display:grid;place-items:center;font-size:18px;background:var(--surface2)}
.pf-pick button[aria-pressed=true]{border-color:var(--ink)}
.pf-sw{display:flex;align-items:center;gap:12px;font-size:14px}
.pf-sw small{display:block;color:var(--muted);font-size:12px}

/* Légal : case à cocher, mon compte, textes */
.chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.4}
.chk input{margin-top:2px;flex:none;width:16px;height:16px;accent-color:var(--star)}
.chk .lnk,.anote .lnk{font-size:inherit;display:inline;color:var(--ink)}
.a-rgpd{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:12px}
.a-rgpd .lnk.dz{color:var(--danger)}
.ibody ul{margin:4px 0 0;padding-left:20px;color:var(--muted);font-size:14px}
.ibody li{margin:2px 0}
.ibody .maj{margin-top:12px;font-size:12px;color:var(--faint)}

/* Formulaire de contact */
#contact .mbox{width:min(480px,100%)}
#c-form{display:flex;flex-direction:column;gap:12px}
.fl select,.fl textarea{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit;font-size:15px}
.fl textarea{resize:vertical;min-height:120px}
.fl .cnt{align-self:flex-end;font-size:12px;color:var(--faint)}
#c-go{justify-content:center}
.c-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.c-off{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:14px;color:var(--muted)}
.c-off a{color:var(--ink)}
.ibody .lnk{font-size:inherit;color:var(--ink);display:inline}

/* logo */
.lmark{width:38px;height:38px;flex:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35))}
.wmark{display:block;width:76px;height:76px;margin-bottom:18px;filter:drop-shadow(0 8px 28px rgba(92,207,143,.25))}
.fmark{width:34px;height:34px;flex:none}
@media (max-width:760px){.lmark{width:32px;height:32px}.wmark{width:60px;height:60px;margin-bottom:12px}}

/* Bande du bas */
.site-foot{border-top:1px solid var(--line);padding:24px 0 calc(24px + env(safe-area-inset-bottom,0px));font-size:13px;color:var(--muted)}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between}
.site-foot .fbrand{display:flex;align-items:center;gap:12px}.fbrand>div{display:flex;flex-direction:column;gap:2px}
.site-foot .fbrand b{font-size:15px;color:var(--ink)}
.flinks{display:flex;flex-wrap:wrap;gap:8px 20px}
.flinks a,.flinks button{border:0;background:none;color:var(--muted);padding:0;font-size:13px;text-decoration:none}
.flinks a:hover,.flinks button:hover{color:var(--ink)}
.don{display:inline-flex;gap:8px;align-items:center;border:1px solid color-mix(in srgb,var(--heart) 45%,var(--line));color:var(--ink);border-radius:999px;padding:8px 16px;text-decoration:none;font-weight:600;font-size:13px}
.don:hover{background:color-mix(in srgb,var(--heart) 12%,transparent)}
.don small{color:var(--muted);font-weight:400}
.ibody h4{margin:10px 0 2px;font-size:14px}
#info .mbox{width:min(560px,100%);gap:8px}
#info .mbox p{margin:0;color:var(--muted);font-size:14px}
#info .mbox p b{color:var(--ink)}

/* éclat de lumière et onde quand une console apparaît */
.glow::after{content:"";position:absolute;inset:26%;border-radius:50%;border:2px solid var(--c);box-shadow:0 0 34px var(--c),inset 0 0 34px var(--c);opacity:0;pointer-events:none}
.stage.pop .glow{animation:gpop 1s cubic-bezier(.2,.7,.2,1)}
.stage.pop .glow::after{animation:ring 1s cubic-bezier(.1,.6,.3,1)}
@keyframes gpop{0%{scale:.35;opacity:.15}40%{scale:1.2;opacity:1;filter:brightness(1.8)}100%{scale:1;opacity:1;filter:none}}
@keyframes ring{0%{opacity:1;transform:scale(.2)}100%{opacity:0;transform:scale(1.55)}}
.gdesc p+p{margin-top:0}

[hidden]{display:none!important}
.top .find{flex-basis:140px}
@media (max-width:1200px){.top .wrap{column-gap:14px}}
@media (max-width:760px){.top .prog{flex-basis:100%}}
.top:has(#acct:not([hidden])) .logo small{display:none}
/* Compte */
.acct{flex:none;border:1px solid var(--line);background:var(--surface);border-radius:10px;height:38px;padding:0 14px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;color:var(--ink)}
.acct.in{padding:0 12px 0 5px}
.acct:hover{border-color:#3a3f4e}
.av{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;background:linear-gradient(135deg,#9db5ff,#5ccf8f);color:#0b0c10;font-weight:800;font-size:13px;flex:none}
.acct .ps{max-width:12ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.mbox{position:relative;width:min(400px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.mbox h3{font-size:22px}
.mx{position:absolute;right:10px;top:8px;border:0;background:none;font-size:26px;color:var(--muted);line-height:1;padding:4px 8px}
#a-tabs{align-self:flex-start}
#a-form{display:flex;flex-direction:column;gap:12px}
.fl{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}
.fl input{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;color:var(--ink);font-size:15px}
#a-go{justify-content:center}
.lnk{border:0;background:none;color:var(--muted);font-size:13px;text-decoration:underline;padding:0;align-self:flex-start}
.lnk:hover{color:var(--ink)}

/* vérification des jeux */
#g-ver.on{background:rgba(92,207,143,.16);color:var(--done)}
#vf .mbox{width:min(560px,100%)}
.vbox .vlead{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.5}
.vbox .vok{margin:0 0 14px;color:var(--done);font-weight:700;line-height:1.45}
.vopt{border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 10px}
.vopt>b{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.vopt p{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--muted)}
.vopt .lnk{background:none;border:0;padding:0;color:var(--muted);font-size:12px;text-decoration:underline;cursor:pointer}
.vcode{display:inline-block;font:800 24px/1 var(--display);letter-spacing:.14em;color:var(--ink)!important;background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:10px 16px}
.vrow{display:flex;gap:8px;flex-wrap:wrap}
.vrow input{flex:1 1 160px;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:8px 12px;color:var(--ink);font:inherit;font-size:14px}
.vfile{cursor:pointer}
.vall{margin:0 0 12px}
.qmode{margin-top:16px;align-self:flex-start;width:max-content}
.qmnote{margin:8px 0 0}
.vtok{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.45}.vtok b{color:var(--star);font-size:15px}
#vf-msg{margin-top:4px;font-size:14px;line-height:1.45}
#vf-msg.wait{color:var(--muted)}
#vf .btn[disabled],#vf .vfile.off{opacity:.5;pointer-events:none}

/* fiche 100 % */
.cent{margin:28px 0 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.cent .head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px}
.cent h3{margin:0}.cent h4{font-size:15px;margin:18px 0 8px}
.cent .est{font-size:13px;color:var(--muted)}
.cent .q{font-size:15px;line-height:1.55;margin:12px 0 16px}
.ctiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.ct{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ct b{display:block;font-size:22px}.ct small{color:var(--muted);font-size:13px}
.ct .dots{color:var(--star);letter-spacing:2px;font-size:18px}.ct .dots i{font-style:normal;opacity:.25}
.miss,.tips{margin:0;padding-left:20px;line-height:1.55}.miss li::marker{color:var(--heart)}.tips li::marker{color:var(--accent)}.tips li+li,.miss li+li{margin-top:6px}
.glinks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}.glinks a{color:var(--accent)}
.spnote{font-size:13px;color:var(--muted);margin:16px 0 -6px}
.spoil{cursor:pointer;border-radius:6px}.spoil>span{filter:blur(6px);transition:filter .25s;user-select:none}
.spoil:hover>span{filter:blur(4px)}.spoil.shown{cursor:auto}.spoil.shown>span{filter:none;user-select:auto}
@media (prefers-reduced-motion:reduce){.spoil>span{transition:none}}

/* temps de jeu */
.ptime{margin:28px 0 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.ptime .head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px}
.ptime h3{margin:0}.ptime .est{font-size:13px;color:var(--muted)}
.ptime .ctiles{margin-top:14px}
.ptime .left{margin:16px 0 0;font-size:17px;font-weight:700;color:var(--done)}
.ptime .ask{margin:16px 0 0;color:var(--star);font-weight:600}
.ptime form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-top:16px}
.ptime label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
.ptime input{width:110px;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
.ptime .pt-msg{font-size:13px;color:var(--muted);margin:8px 0 0;min-height:1em}
.ptime .lnk{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}

/* où y jouer */
.ouj{margin:28px 0 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.ouj h3{margin:0 0 12px}.ouj ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ouj li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 14px;border:1px solid var(--line);border-radius:12px}
.ouj li b{font-weight:700}.ouj li span{color:var(--muted)}
.ouj .shops{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ouj .shops a{display:inline-flex;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}
.ouj .shops a:hover{border-color:var(--accent);color:var(--accent)}
.ouj .note{font-size:12px;color:var(--muted);margin:12px 0 0}

/* défi du mois */
.dpills{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}.dpills span{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:600}
.dpills .hot{background:var(--star);color:#1a1300;border-color:transparent}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:24px 0}
.dbox{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.dbox h3{margin:0 0 12px}
.dbar{height:10px;border-radius:999px;background:var(--line);overflow:hidden;margin:10px 0}.dbar i{display:block;height:100%;background:var(--done);border-radius:999px}
.dwin{font-size:18px;font-weight:800;color:var(--star);margin:8px 0}
.dboard{list-style:none;margin:0;padding:0;display:grid;gap:6px}.dboard li{display:flex;align-items:center;gap:10px}
.dboard .rk{width:26px;text-align:right;font-weight:800;color:var(--muted)}.dboard li:nth-child(-n+3) .rk{color:var(--star)}
.dboard button{background:none;border:0;padding:0;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;text-align:left;flex:1}.dboard b{font-variant-numeric:tabular-nums}
@media (max-width:1279px){.top .nav button{padding:7px 7px}}@media (min-width:761px) and (max-width:1179px){.top .nav button{padding:7px 5px;font-size:12.5px}}
#nav-all .tl{display:none!important}#nav-all .ts{display:inline!important}
.dtiers{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}.dtiers span{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.dtiers span.on{border-color:var(--t);color:var(--t)}
.dvit{display:flex;flex-wrap:wrap;gap:10px}
.dit{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px 14px;border-radius:14px;border:2px solid var(--t);background:rgba(var(--w),.03);min-width:190px}
.dit i{grid-row:1/3;font-style:normal;font-size:28px;line-height:1}.dit em{font-style:normal;font-weight:800}.dit small{font-size:12px;color:var(--muted)}
.dit.ver{box-shadow:0 0 0 1px var(--t),0 0 18px -4px var(--t);background:linear-gradient(135deg,rgba(var(--w),.06),rgba(var(--w),0))}
.dnote{font-size:13px;color:var(--muted);margin:10px 0 0}

/* objets des quêtes */
.qit{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;padding:3px 10px 3px 6px;border-radius:999px;border:1px dashed var(--line);font-size:12.5px;color:var(--muted);filter:grayscale(1);opacity:.7;position:relative;overflow:hidden}
.qit i{font-style:normal;font-size:17px;line-height:1}
.qc.ok .qit{filter:none;opacity:1;border-style:solid;border-color:var(--t);color:var(--ink);font-weight:700}
.qc.ok .qit.ver{box-shadow:0 0 14px -3px var(--t);background:linear-gradient(135deg,rgba(var(--w),.07),rgba(var(--w),0))}
.qvit{display:flex;flex-wrap:wrap;gap:10px}.qvit .dit{min-width:170px}
/* raretés : commun, rare, épique, légendaire */
.rar{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--r);margin:0 4px 0 2px}
.dit{position:relative;overflow:hidden;isolation:isolate}
.dit.rar-rare,.qc.ok .qit.rar-rare{border-color:#4da3ff;box-shadow:0 0 16px -6px #4da3ff}
.dit.rar-epi,.qc.ok .qit.rar-epi{border-color:#b46bff;box-shadow:0 0 20px -5px #b46bff;background:linear-gradient(135deg,rgba(180,107,255,.16),rgba(180,107,255,0) 60%)}
.dit.rar-epi::after,.qc.ok .qit.rar-epi::after,.dit.rar-leg::after,.qc.ok .qit.rar-leg::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);background-size:250% 100%;animation:rshine 3.2s ease-in-out infinite}
@property --ra{syntax:"<angle>";inherits:false;initial-value:0deg}
.dit.rar-leg,.qc.ok .qit.rar-leg{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,conic-gradient(from var(--ra),#ffcf4a,#ff6b9a,#8fe3ff,#7dffb0,#ffcf4a) border-box;box-shadow:0 0 26px -4px #ffcf4a,0 0 50px -18px #ff6b9a;animation:rspin 4s linear infinite}
.dit.rar-leg i,.qc.ok .qit.rar-leg i{animation:rfloat 2.4s ease-in-out infinite;filter:drop-shadow(0 0 8px #ffcf4a)}
.dit.rar-leg em{background:linear-gradient(90deg,#ffcf4a,#ff9ec0,#8fe3ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.dit.rar-leg::before{content:"✦ ✧ ✦";position:absolute;right:8px;top:3px;font-size:10px;color:#ffcf4a;letter-spacing:3px;animation:rtw 1.8s ease-in-out infinite}
@keyframes rshine{0%{background-position:150% 0}60%,100%{background-position:-50% 0}}
@keyframes rspin{to{--ra:360deg}}
@keyframes rfloat{50%{transform:translateY(-3px) scale(1.08)}}
@keyframes rtw{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.dit,.qit,.dit i,.qit i,.dit::after,.qit::after,.dit::before{animation:none!important}}

/* vitrine 3D */
.v3head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}.v3head h3{margin:0}
.v3{position:relative;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);
 background:radial-gradient(closest-side at 17% 62%,color-mix(in srgb,var(--c0,#555) 30%,transparent),transparent),radial-gradient(closest-side at 50% 62%,color-mix(in srgb,var(--c1,#555) 30%,transparent),transparent),radial-gradient(closest-side at 83% 62%,color-mix(in srgb,var(--c2,#555) 30%,transparent),transparent),linear-gradient(180deg,#0d1018,#161b26 70%,#0b0d13)}
.v3 canvas{display:block;width:100%}
.v3lab{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));text-align:center;padding:0 8px 14px;gap:6px}
.v3lab div{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}.v3lab b{color:#f3f5f9;font-size:14px;line-height:1.2}
.v3.flat .v3fb{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));font-size:64px;text-align:center;padding:26px 0 10px}
.v3all{margin:14px 0 0}.v3all summary{cursor:pointer;font-weight:700;color:var(--muted);margin:0 0 10px}
.v3sel [data-vk]{cursor:pointer;padding-right:40px}
.v3sel [data-vk]::after{content:"";position:absolute;inset:auto;top:50%;right:12px;width:20px;height:20px;margin-top:-10px;border-radius:6px;border:2px solid var(--muted);background:var(--surface);z-index:2;animation:none;display:grid;place-items:center;font:900 13px/1 system-ui;color:#0b0d13}
.v3sel [data-vk].on::after{content:"✓";background:var(--done,#3fbf5a);border-color:var(--done,#3fbf5a)}
.v3sel [data-vk].full{opacity:.45;cursor:not-allowed}
.v3sel [data-vk]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:560px){.v3lab b{font-size:12px}}

/* astuces */
.tips2{margin:28px 0 0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.tips2 .head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.tips2 h3{margin:0}
.tips2 .seg{margin:14px 0}
.tip{padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-top:10px}
.tip .tm{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;color:var(--muted)}
.tip .tm b{color:var(--ink)}.tip p{margin:8px 0 0;line-height:1.55;white-space:pre-wrap}
.tip .ans{margin:10px 0 0 18px;border-left:2px solid var(--line);padding-left:12px}.tip .ans .tip{margin-top:8px}
.tvote{border:1px solid var(--line);background:none;color:var(--ink);border-radius:999px;padding:3px 10px;font:inherit;font-size:13px;cursor:pointer}
.tvote[aria-pressed="true"]{border-color:var(--done);color:var(--done)}
.tips2 .lnk{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;font-size:13px;text-decoration:underline}
.tips2 form{display:grid;gap:8px;margin-top:14px}.tips2 textarea{width:100%;min-height:80px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;resize:vertical}
.tips2 .frow{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:14px}
.tips2 .tmsg{font-size:13px;color:var(--muted);min-height:1em;margin:0}
.dsc{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:#5865f2;color:#fff;text-decoration:none;font-weight:700;font-size:14px}

/* journal d'actualité */
.ahead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.afilt{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}.afilt button{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.afilt button.on{background:var(--accent);border-color:transparent;color:#fff}
.afind{padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;min-width:0;width:240px;max-width:100%}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin:22px 0}
.acard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);color:var(--ink);text-decoration:none;transition:transform .15s,border-color .15s}
.acard:hover,.acard:focus-visible{transform:translateY(-2px);border-color:var(--accent)}
.acard .aimg{aspect-ratio:16/9;background:var(--line) center/cover no-repeat;display:block;width:100%;object-fit:cover}
.acard .abody{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.acard .ameta{font-size:12px;color:var(--muted);font-weight:600}.acard .ameta b{color:var(--accent)}
.acard h3{margin:0;font-size:15.5px;line-height:1.3}.acard p{margin:0;font-size:13px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.anote{font-size:12.5px;color:var(--muted);margin:6px 0 0}
/* un bouton de plus dans le menu : la recherche du haut se resserre pour que tout tienne sur une ligne */
@media (min-width:1101px){.top .find{flex-basis:96px!important;min-width:0}.top .nav button{padding:7px 7px}}@media (max-width:1279px){.top .find kbd{display:none}}

/* modération */
#nav-mod{color:var(--star)}
.md-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.md-tabs button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.md-tabs button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:transparent}
.md-list{display:grid;gap:12px}
.md-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px 16px;display:grid;gap:8px}
.md-card .hd{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.md-card .hd b{font-size:16px}.md-card time,.md-card .muted{font-size:13px;color:var(--muted)}
.md-card blockquote{margin:0;padding:8px 12px;border-left:3px solid var(--line);background:var(--bg);border-radius:0 8px 8px 0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}
.md-acts{display:flex;flex-wrap:wrap;gap:8px}
.md-tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:rgba(242,193,78,.16);color:var(--star)}
.md-tag.muet{background:rgba(157,181,255,.16);color:var(--accent)}.md-tag.banni{background:rgba(255,122,107,.16);color:var(--danger)}
.md-find{display:flex;gap:8px;margin:0 0 14px}.md-find input{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:9px 12px;color:var(--ink);font:inherit}
.md-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);cursor:pointer;text-align:left;color:var(--ink);font:inherit;width:100%}
.md-row:hover{border-color:var(--muted)}.md-row b{flex:1;min-width:8ch}
.md-sec{margin:22px 0 0}.md-sec h3{margin:0 0 10px;font-size:17px}
.md-form{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--surface);max-width:560px}
.md-form .two{display:flex;gap:10px;flex-wrap:wrap}.md-form .two .fl{flex:1;min-width:140px}
.md-msg{font-size:14px;margin:0}.md-msg.ok{color:var(--done)}.md-msg.ko{color:var(--danger)}
.md-empty{color:var(--muted);margin:8px 0}
#rp .mbox,#sn .mbox{width:min(460px,100%)}
#rp form{display:flex;flex-direction:column;gap:12px}
.sn-box{border-radius:12px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);font-size:14px}
.amsg{margin:0;font-size:13px;color:var(--danger)}
.amsg.ok{color:var(--done)}
.anote{margin:0;font-size:12px;color:var(--faint)}
#a-g{display:flex;flex-direction:column;gap:10px}#a-g[hidden]{display:none}
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #dadce0;background:#fff;color:#1f1f1f;border-radius:999px;padding:10px 16px;font-weight:600;font-size:15px;font-family:inherit}
.gbtn:hover{background:#f4f4f5}.gbtn:disabled{opacity:.6}.gbtn svg{width:18px;height:18px;flex:none}
.aor{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--faint)}.aor::before,.aor::after{content:"";flex:1;border-top:1px solid var(--line)}
/* Avis des joueurs */
.comm{margin-top:36px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:16px}
.cm-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cm-h h3{font-size:18px}
.cm-avg{display:flex;align-items:center;gap:8px}
.cm-avg b{font-family:var(--display);font-size:34px;line-height:1;color:var(--star)}
.cm-avg span{font-size:12px;color:var(--muted);line-height:1.2}
.cm-rate{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}
.stars{display:flex;gap:4px;flex-wrap:wrap}
.stars button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--bg);font-size:13px;font-weight:700;color:var(--muted);padding:0}
.stars button:hover,.stars button.on{background:var(--star);border-color:var(--star);color:#1d1400}
.cm-form{display:flex;flex-direction:column;gap:8px}
.cm-form textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:12px;color:var(--ink);font:inherit;resize:vertical;min-height:84px}
.cm-form .row{display:flex;justify-content:space-between;align-items:center;font-size:12px}
.cm-login{align-self:flex-start}
.cm-list{display:flex;flex-direction:column;gap:10px}
.cm{border-top:1px solid var(--line);padding-top:12px}
.cm-top{display:flex;align-items:center;gap:8px;font-size:13px}
.cm-top time{color:var(--faint);font-size:12px}
.cm-top .lnk{margin-left:auto}
.cm p{margin:6px 0 0 36px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px}
/* Thème clair : seules les jaquettes gardent leurs couleurs sombres */
html[data-lgl=light]{color-scheme:light;--bg:#f3f4f7;--surface:#fff;--surface2:#e9ebf0;--ink:#151821;--muted:#5a6174;--faint:#8b91a1;--line:#dcdfe7;--accent:#3552d4;--accent-ink:#fff;--done:#16955a;--heart:#e0354f;--star:#b7860f;--danger:#d6402f;--w:0,0,0}
html[data-lgl=light] .box{color-scheme:dark;--bg:#0b0c10;--surface:#14161d;--surface2:#1b1e27;--ink:#eef0f6;--muted:#949bad;--faint:#5d6375;--line:#252935;--accent:#9db5ff;--accent-ink:#0b0c10;--done:#5ccf8f;--heart:#ff6b81;--star:#f2c14e;--danger:#ff7a6b;--w:255,255,255}
/* Thème clair partout */
html[data-lgl=light] .stage{background:radial-gradient(70% 60% at 53% 42%,#ffffff,transparent 70%),linear-gradient(180deg,#e6e9f0,#f3f4f7 70%)}
html[data-lgl=light] .glow{background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 22%,transparent),transparent 72%)}
html[data-lgl=light] .light::before{opacity:.35}
html[data-lgl=light] .light::after{opacity:.4}
html[data-lgl=light] .floor{opacity:.5}
html[data-lgl=light] .dust i{background:color-mix(in srgb,var(--c) 70%,#555)}
html[data-lgl=light] .vign{background:linear-gradient(90deg,rgba(243,244,247,.85),transparent 32%,transparent 68%,rgba(243,244,247,.8)),linear-gradient(0deg,var(--bg),transparent 16%)}
html[data-lgl=light] .info h2{text-shadow:0 4px 30px rgba(255,255,255,.7)}
html[data-lgl=light] .info p{color:#3a3f4c}
html[data-lgl=light] .info .meta b{color:color-mix(in srgb,var(--c) 55%,var(--ink))}
html[data-lgl=light] .info .maker{color:color-mix(in srgb,var(--c) 60%,var(--ink))}
html[data-lgl=light] .info .nums b{color:var(--ink);text-shadow:0 0 18px color-mix(in srgb,var(--c) 35%,transparent)}
html[data-lgl=light] .info .nums span:last-child b{color:color-mix(in srgb,var(--c) 60%,var(--ink))}
html[data-lgl=light] .item .wordmark{color:#4a5060}
html[data-lgl=light] .item.cur .wordmark{color:var(--ink);text-shadow:0 0 20px color-mix(in srgb,var(--c) 45%,transparent)}
html[data-lgl=light] .hints{background:rgba(243,244,247,.82)}
html[data-lgl=light] .hints kbd{border-color:#c3c8d3;background:#fff}
html[data-lgl=light] .sc-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 40%,transparent),0 1px 4px rgba(0,0,0,.35)}
html[data-lgl=light] .sc-track:focus-visible .sc-thumb{outline-color:var(--ink)}
html[data-lgl=light] .wel{background:radial-gradient(60% 80% at 85% 20%,rgba(53,82,212,.12),transparent 60%),radial-gradient(50% 70% at 5% 100%,rgba(224,53,79,.08),transparent 60%),#f3f4f7}
html[data-lgl=light] .wel h1{text-shadow:0 6px 40px rgba(53,82,212,.18)}
html[data-lgl=light] .wel p{color:#3a3f4c}
html[data-lgl=light] .kpis b{color:var(--ink);text-shadow:0 0 20px rgba(53,82,212,.25)}
html[data-lgl=light] .viewer::before{background:radial-gradient(60% 55% at 50% 40%,color-mix(in srgb,var(--c) 22%,#fff),#dde1e9 80%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.07)}
html[data-lgl=light] .chero::before{background:radial-gradient(90% 120% at 20% 30%,color-mix(in srgb,var(--c) 26%,transparent),transparent 60%),linear-gradient(0deg,var(--bg),transparent)}
html[data-lgl=light] .facts p{color:#3a3f4c}
html[data-lgl=light] .facts dd{color:var(--ink);text-shadow:none}
html[data-lgl=light] .gback{opacity:.4}
html[data-lgl=light] .gwash{background:linear-gradient(180deg,rgba(243,244,247,.45),rgba(243,244,247,.85) 60%,var(--bg))}
html[data-lgl=light] .gcover .box{box-shadow:0 22px 50px rgba(20,24,40,.35),0 0 0 1px rgba(0,0,0,.08)}
html[data-lgl=light] .gtags span{background:rgba(255,255,255,.6);color:#2a2e39}
html[data-lgl=light] .gtags .r18{color:#c62f3f}
html[data-lgl=light] .score{background:rgba(255,255,255,.82)}
html[data-lgl=light] .score .v.na{border-color:#c3c8d3}
html[data-lgl=light] .modal{background:rgba(20,24,40,.35)}
@media (max-width:820px){html[data-lgl=light] .vign{background:linear-gradient(0deg,var(--bg),transparent 40%)}}

html[data-lgl=light] .top{background:rgba(243,244,247,.86)}
html[data-lgl=light] .prog b{color:#16955a}
html[data-lgl=light] .gbody p{color:#2a2e39}
/* Animations coupées */
.noanim *,.noanim *::before,.noanim *::after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}
.noanim .auto.run .track i{animation-duration:10s!important}
.noanim .dust{display:none}
/* Frise des consoles à faire glisser */
.scrub{flex:1 1 300px;min-width:150px;max-width:480px;margin-left:auto;position:relative;height:46px}
.sc-track{position:absolute;left:12px;right:12px;top:3px;height:22px;cursor:pointer;touch-action:none;outline:none}
.sc-track::before{content:"";position:absolute;left:0;right:0;top:8px;height:6px;border-radius:3px;background:rgba(var(--w),.12)}
.sc-fill{position:absolute;left:0;top:8px;height:6px;border-radius:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 35%,transparent),var(--c));box-shadow:0 0 10px color-mix(in srgb,var(--c) 60%,transparent);transition:width .3s}
.sc-thumb{position:absolute;top:11px;width:16px;height:16px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 40%,transparent),0 0 16px var(--c);transition:left .3s,transform .15s}
.sc-track:hover .sc-thumb,.scrub.drag .sc-thumb{transform:translate(-50%,-50%) scale(1.3)}
.scrub.drag .sc-thumb,.scrub.drag .sc-fill{transition:none}
.scrub.drag .sc-track{cursor:grabbing}
.sc-track:focus-visible .sc-thumb{outline:2px solid #fff;outline-offset:3px}
.hints .scrub .eras{position:absolute;left:12px;right:12px;top:25px;height:18px;display:block;margin:0}
.hints .scrub .eras button{position:absolute;top:0;transform:translateX(-50%);padding:0 2px;font-size:11px;line-height:18px;font-variant-numeric:tabular-nums}
.rail{user-select:none;-webkit-user-select:none}
.rail.drag,.rail.drag .item{cursor:grabbing}
/* patch15 : noms de consoles cliquables */
.rail .tilt{pointer-events:none}
.rail .item{pointer-events:auto;cursor:pointer}
.rail .item.off{pointer-events:none}
.rail .item:not(.cur):hover .wordmark,.rail .item:not(.cur):focus-visible .wordmark{color:#fff;text-shadow:0 0 18px color-mix(in srgb,var(--c) 60%,transparent)}
.rail .item.cur{cursor:pointer}
.rail.drag .item{cursor:grabbing}

@media (max-width:820px){.hints{flex-wrap:wrap}.scrub{flex:1 1 100%;order:2;max-width:none;margin-left:0}}
html[data-lgl=light] [style*="#c4ccd9"]{--t:#8a94a7}html[data-lgl=light] [style*="#8fe3ff"]{--t:#2fa9cf}
/* Rouage et paramètres */
.setw{position:relative;flex:none}
.gear{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;color:var(--muted);padding:0}
.gear:hover,.gear[aria-expanded=true]{color:var(--ink)}
.gear svg{transition:transform .5s}.gear[aria-expanded=true] svg{transform:rotate(90deg)}
.setp{position:absolute;right:0;top:calc(100% + 10px);width:310px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 18px 50px rgba(0,0,0,.45);display:flex;flex-direction:column;gap:14px;z-index:50}
.setp[hidden]{display:none}
.setp h3{font-size:15px}
.srow{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px}
.srow small{display:block;color:var(--muted);font-size:12px}
.seg{display:flex;background:var(--surface2);border-radius:999px;padding:3px;flex:none}
.seg button{border:0;background:none;border-radius:999px;padding:5px 12px;font-size:13px;color:var(--muted)}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.tg{width:44px;height:24px;border-radius:12px;border:0;background:var(--line);position:relative;flex:none;padding:0;transition:background .2s}
.tg::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.tg[aria-checked=true]{background:var(--done)}
.tg[aria-checked=true]::after{transform:translateX(20px)}
.slinks{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:8px}
.slinks button{border:0;background:none;text-align:left;padding:7px 0;color:var(--muted);font-size:14px}
.slinks button:hover{color:var(--ink)}
html[data-lgl=light] .setp{box-shadow:0 18px 50px rgba(20,24,40,.16)}
/* Paramètres enrichis (patch_params) */
.setp{width:350px;max-height:min(78vh,calc(100vh - 110px));overflow:auto;overscroll-behavior:contain;gap:12px}
.setp .sgh{margin:6px 0 -2px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);border-top:1px solid var(--line);padding-top:12px}
.setp h3+.sgh{border-top:0;padding-top:0}
.srow{flex-wrap:wrap}
.srow>span{flex:1 1 120px;min-width:0}
.accs{display:flex;gap:6px;flex:none}
.accs button{width:24px;height:24px;border-radius:50%;border:2px solid transparent;padding:0;background:var(--a);box-shadow:inset 0 0 0 2px var(--surface)}
.accs button[aria-pressed=true]{border-color:var(--ink)}
.slinks .dz{color:var(--danger)}
html[data-acc=violet]{--accent:#c4a3ff}html[data-lgl=light][data-acc=violet]{--accent:#7140d6}
html[data-acc=vert]{--accent:#6fdca0}html[data-lgl=light][data-acc=vert]{--accent:#13804c}
html[data-acc=orange]{--accent:#ffb067}html[data-lgl=light][data-acc=orange]{--accent:#c25a10}
html[data-acc=rose]{--accent:#ff8fb5}html[data-lgl=light][data-acc=rose]{--accent:#c72a68}
html[data-acc=cyan]{--accent:#6fdcf0}html[data-lgl=light][data-acc=cyan]{--accent:#0f7f99}
html[data-jw=s] .jeux{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:18px 12px}
html[data-jw=s] .jeu .meta{flex-wrap:wrap}
html[data-jw=s] .jeux .box .ttl b{font-size:13px}
html[data-jw=l] .jeux{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:28px 22px}
html[data-jw=l] .jeux .box .ttl b{font-size:20px}
html.compact .jeu .desc{display:none}
html.blur18 .box:has(.r18) .art,html.blur18 .box:has(.r18) .pal,html.blur18 .box:has(.r18) .ttl{filter:blur(14px)!important}
html.blur18 .gcover .box:has(.r18)~*,html.blur18 .ghero:has(.gtags .r18) .gback{filter:blur(60px) brightness(.6)}
:root .auto.run .track i,:root.noanim .auto.run .track i{animation-duration:var(--spd,10s)!important}

/* Quêtes et trophées */
.nq{font-size:11px;color:var(--star);margin-left:3px;font-variant-numeric:tabular-nums}
.qhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 28px;flex-wrap:wrap;padding-top:34px}
.qhead h2{font-size:clamp(34px,5vw,58px)}
.qhead p{margin:8px 0 0;max-width:54ch}
.qsum{display:flex;gap:10px;flex-wrap:wrap}
.qsum>div{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px;color:var(--t)}
.qsum b{display:block;font-family:var(--display);font-size:22px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.qsum small{display:block;font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.qlist{display:flex;flex-direction:column;gap:26px;padding-top:30px}
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:10px}
.qc{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;position:relative;overflow:hidden}
.qc .cup{width:46px;height:46px;flex:none;border-radius:12px;display:grid;place-items:center;color:var(--faint);background:rgba(var(--w),.05);position:relative}
.qc.ok{border-color:color-mix(in srgb,var(--t) 55%,var(--line))}
.qc.ok::before{content:"";position:absolute;inset:0;background:radial-gradient(100% 130% at 0% 0%,color-mix(in srgb,var(--t) 20%,transparent),transparent 60%);pointer-events:none}
.qc.ok .cup{color:var(--t);background:color-mix(in srgb,var(--t) 16%,transparent);filter:drop-shadow(0 0 10px color-mix(in srgb,var(--t) 55%,transparent))}
.qb{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;position:relative}
.qt{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.qt strong{font-size:15px}
.tier{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--t) 72%,var(--ink));white-space:nowrap}
.qd{font-size:13px;color:var(--muted)}
.qbar{height:6px;border-radius:3px;background:rgba(var(--w),.08);margin-top:6px;overflow:hidden}
.qbar i{display:block;height:100%;border-radius:inherit;background:var(--t);transition:width .6s}
.qn{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.qc.ok .qn{color:color-mix(in srgb,var(--t) 72%,var(--ink));font-weight:700}
/* patch_favoris */
.fhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 28px;flex-wrap:wrap;padding-top:34px}
.fhead h2{font-size:clamp(34px,5vw,58px)}
.fhead p{margin:8px 0 0;max-width:54ch}
.fsum{display:flex;gap:22px}
.fsum span{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}
.fsum b{font-size:28px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.fsum .hrt b{color:#ff6b8b}
.ftools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:22px 0 6px}
.fgrp{margin-top:26px}
.fgrp h3{display:flex;align-items:baseline;gap:10px;margin:0 0 12px;font-size:18px}
.fgrp h3 button{border:0;background:none;padding:0;font:inherit;font-weight:800;color:var(--ink);cursor:pointer}
.fgrp h3 button:hover{color:var(--accent)}
.fgrp h3 small{font-size:12px;font-weight:600;color:var(--muted)}
.fgrp h3 i{width:10px;height:10px;border-radius:50%;flex:none;align-self:center}
#v-favs .jeu{transition:opacity .25s}
#v-favs .jeu:has(.h[aria-pressed="false"]){opacity:.45}
#v-favs .empty .btn{margin-top:14px}
@media (max-width:760px){.fsum{gap:16px}.fsum b{font-size:22px}.top .nav{max-width:100%;min-width:0;overflow-x:auto;scrollbar-width:none;gap:0}.top .nav::-webkit-scrollbar{display:none}.top .nav button{padding:7px 9px}}
.nav .ts{display:none}
@media (max-width:460px){.nav .tl{display:none}.nav .ts{display:inline}}
.toast.tro{background:linear-gradient(90deg,#f2c14e,#ffdf8a);color:#2a1d00;box-shadow:0 0 34px rgba(242,193,78,.55)}
/* patch_trailer */
.vmodal{position:fixed;inset:0;z-index:200;background:rgba(4,5,8,.86);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px}
.vbox{position:relative;width:min(1100px,100%)}
.vframe{position:relative;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vload{position:absolute;inset:0;display:grid;place-content:center;gap:16px;text-align:center;color:#949bad;padding:20px}
.vload a{justify-self:center;color:#eef0f6;background:rgba(255,255,255,.1);border-radius:999px;padding:10px 20px;font-weight:700;text-decoration:none}
.vx{position:absolute;right:0;top:-48px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.vnote{margin:10px 0 0;font-size:12px;color:#5d6375;text-align:center}

/* patch_allege : en-tête plus léger */
.wordmark.wm-l{font-style:normal;font-stretch:100%;font-weight:600;text-transform:none;letter-spacing:-.01em;line-height:1;text-shadow:none;color:var(--ink)}
.wordmark.wm-l .w1{font-weight:800;background:linear-gradient(90deg,#5ccf8f,#9db5ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.top .logo{gap:9px}
.top .logo .wordmark.wm-l{font-size:19px}
.top .lmark{width:28px;height:28px;filter:none}
.top .wrap{padding-block:9px}
.top .prog{gap:4px}
.top .prog .row>span:first-child{display:none}
.top .prog .row{justify-content:flex-start;font-size:12px}
.top .prog b{font-size:12.5px;font-weight:600}
.top .bar{height:4px;box-shadow:none}
.top .bar i{box-shadow:none;min-width:4px}
.fbrand b.wm-l{font-size:16px}
html[data-lgl=light] .wordmark.wm-l .w1{background-image:linear-gradient(90deg,#16955a,#3d63d6)}
