:root{color-scheme:dark;--bg:#100c19;--panel:#191225;--line:#332644;--ink:#faf5ff;--muted:#b7a8c8;--violet:#bf9bff;--yellow:#ffe15c;--mono:ui-monospace,Consolas,monospace;font-family:system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--yellow)}button,.button{border:1px solid var(--line);background:#241931;color:var(--ink);padding:.7rem 1rem;border-radius:10px;cursor:pointer;font-weight:750;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}button:hover,.button:hover{border-color:var(--violet)}button:disabled{opacity:.45;cursor:default}.primary{color:#1d1421;background:var(--yellow);border-color:var(--yellow);box-shadow:0 3px 0 #a18a35}.dot{color:var(--yellow)}.layout{min-height:100vh}aside{padding:16px;border-bottom:1px solid var(--line);background:#140e20}.brand{display:inline-flex;align-items:center;gap:11px;font-size:26px;font-weight:950;letter-spacing:-.06em;line-height:1}.brand img{width:40px;height:40px}.brand small{display:block;font:700 9px var(--mono);letter-spacing:.12em;color:var(--muted);margin-top:4px}.nav-label,.side-foot{display:none}nav{display:flex;gap:6px;margin-top:13px;overflow:auto}nav a{min-height:44px;display:flex;align-items:center;gap:.5rem;padding:8px 10px;white-space:nowrap;font-size:.85rem;font-weight:750;border-radius:8px;color:var(--muted)}nav a[aria-current]{background:#2a1c40;color:#e8d7ff}nav b{color:var(--violet);font-size:1.1rem}main{max-width:1380px;margin:auto;padding:0 16px}header,footer{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font:700 .67rem var(--mono);letter-spacing:.075em;min-height:70px}footer{border-top:1px solid var(--line);margin-top:30px;min-height:60px;flex-wrap:wrap}#profile{display:flex;align-items:center;gap:8px;text-align:right}#profile button{font-size:.75rem;min-height:37px;padding:.5rem .7rem}.eyebrow,.badge,.nav-label,.side-foot{font:800 .7rem var(--mono);letter-spacing:.11em;color:var(--violet)}.badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #7049a0;border-radius:100px;padding:7px 11px;background:#2b1947}.led{display:inline-block;border-radius:50%;width:7px;height:7px;background:var(--yellow);box-shadow:0 0 12px #ffdd6688}.hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #563b77;border-radius:19px;min-height:300px;padding:26px 22px;background:radial-gradient(ellipse at 83% 37%,#6539a5,transparent 61%),linear-gradient(125deg,#231537,#332058)}.hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.27;background-image:linear-gradient(#b886ff45 1px,transparent 1px),linear-gradient(90deg,#b886ff45 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(90deg,transparent,#000)}h1,h2,h3,p{margin:0}h1{font-size:clamp(2.25rem,6.8vw,5.5rem);letter-spacing:-.078em;line-height:.98;font-weight:950;margin:14px 0}h2{font-size:clamp(1.45rem,3vw,2.1rem);letter-spacing:-.047em;line-height:1.1;margin:6px 0 10px}h3{letter-spacing:-.025em}p{line-height:1.55;color:var(--muted)}.hero p{max-width:32rem;color:#e1d2f3}.hero .actions{margin-top:22px}.hero-art{position:absolute;z-index:-1;right:-36px;top:52px;width:235px;opacity:.2;filter:drop-shadow(10px 16px 0 #2b104f);transform:rotate(-11deg)}.hero-art svg{width:100%;height:auto}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.section{margin-top:27px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px}.section-head h2{margin-bottom:0}.section-head small,.meta{font:700 .71rem var(--mono);color:var(--muted)}.categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.category,.panel,.day,.result{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:15px}.category{min-height:115px;display:flex;flex-direction:column;align-items:start;gap:8px}.category span{color:var(--accent);font-size:1.35rem;display:grid;place-items:center;width:35px;height:35px;background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:8px}.category b{font-size:.93rem}.category small{color:var(--muted);font-size:.75rem}.c0,.c3{--accent:#bc93ff}.c1,.c5{--accent:#ffe15c}.c2{--accent:#68e1cd}.c4{--accent:#ff9fcf}.days{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px}.day p{margin:.35rem 0 .7rem}.day .button{font-size:.8rem;min-height:39px}.wide-grid{display:grid;gap:18px}.rows{display:grid;gap:5px;margin-top:12px}.row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;background:#21172f}.row em{font:700 .8rem var(--mono);color:var(--violet);font-style:normal}.row strong{color:var(--yellow);font:800 .82rem var(--mono)}.muted{color:var(--muted)}.page{max-width:860px;margin:auto}.page h1{font-size:clamp(2rem,7vw,4rem);line-height:1.04}.quiz-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.quiz-top .eyebrow{color:var(--accent)}progress{width:100%;height:8px;accent-color:var(--violet);margin:13px 0}.question{padding:clamp(14px,4vw,32px)}.question h2{margin:10px 0 18px}.question .actions{margin-top:16px}.answer-media{display:block;width:100%;max-width:620px;max-height:300px;object-fit:cover;border-radius:9px;margin:0 auto 15px}.crop{overflow:hidden;max-width:620px;border-radius:10px;margin:0 auto 14px}.crop img{margin:0;transition:none}.hint{color:#f0dfb6;background:#2c2427;padding:9px 12px;margin:8px 0;border-radius:7px}.map{display:block;width:100%;max-width:540px;margin:0 auto 9px;background:#252448;border-radius:10px;cursor:crosshair;touch-action:manipulation}.map text{fill:#ded3ee;font:10px var(--mono);pointer-events:none}.positions{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px}.positions button{width:42px;padding:0;font:700 .8rem var(--mono)}.positions button[aria-current]{border-color:var(--yellow);color:var(--yellow)}.positions button.answered{background:#3a2754}.rank{list-style:none;padding:0;margin:10px 0;display:grid;gap:5px}.rank li{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;padding:4px 6px 4px 12px;background:#21172f}.rank li span{flex:1}.rank button{padding:.35rem .7rem}.rank li[draggable]{cursor:grab}.result{margin:8px 0}.result strong{color:var(--yellow)}.result p{margin-top:4px}.form-grid{display:grid;gap:12px}label{display:grid;gap:6px;color:#e6d8f4;font-size:.85rem;font-weight:730;margin:8px 0}input,textarea,select{border:1px solid #59456e;background:#100c19;color:var(--ink);border-radius:8px;min-height:44px;padding:8px 11px;min-width:0;width:100%}input[type=checkbox]{width:18px;min-height:18px}.check{display:flex;align-items:center;gap:8px}textarea{min-height:75px}dialog{width:min(92vw,470px);padding:26px;border:1px solid #684a89;border-radius:16px;background:#1d142c;color:var(--ink)}dialog::backdrop{background:#08050cbd;backdrop-filter:blur(4px)}dialog .primary{margin-top:7px}dialog .close{position:absolute;top:10px;right:10px;font-size:1.2rem;min-width:42px;padding:0}.demo-access{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.demo-access b{font:750 .7rem var(--mono);color:var(--violet)}.demo-access button{margin-top:8px}.form-error,#notice{color:#ffd2db}#notice{position:sticky;bottom:10px;background:#382037;border:1px solid #88536e;padding:11px;border-radius:8px;z-index:4;margin:12px 0}.admin-nav{margin:12px 0}.admin-nav button[aria-current]{color:var(--yellow);border-color:var(--yellow)}.bank{display:grid;gap:6px;margin-top:12px}.bank article{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#21172f;padding:8px 10px;border-radius:8px}.skip{position:absolute;left:10px;top:-70px;background:var(--yellow);color:#111;padding:10px;z-index:5}.skip:focus{top:5px}
@media(min-width:680px){.categories{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{padding:38px;min-height:330px}.hero-art{opacity:1;right:7%;width:220px;top:43px}.hero p{max-width:53%}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.layout{display:grid;grid-template-columns:210px minmax(0,1fr)}aside{height:100vh;position:sticky;top:0;padding:24px 15px;display:flex;flex-direction:column;border-right:1px solid var(--line);border-bottom:0}main{width:100%;padding:0 30px}nav{display:grid;margin:10px 0}.nav-label,.side-foot{display:block;padding-left:9px}.nav-label{margin-top:52px;color:var(--muted)}.side-foot{margin-top:auto;color:var(--muted);font-size:.62rem}.hero-art{width:260px;top:33px}.wide-grid{grid-template-columns:minmax(0,1fr) minmax(255px,.43fr);align-items:start}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.geo-map{margin:0 auto 10px;max-width:620px}.geo-status{margin:0 0 8px;line-height:1.45}.geo-canvas{height:clamp(285px,52vw,410px);border-radius:10px;background:#2c2542;isolation:isolate}.geo-map [hidden]{display:none}.geo-canvas .leaflet-control-attribution{font-size:11px}.geo-canvas .leaflet-control-attribution a{text-decoration:underline}

.chat-quote{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:13px;margin:0 0 18px;padding:14px;background:#1c1c20;border:1px solid #37333d;border-radius:10px}
.chat-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#52416b;color:#fff;font-size:1.45rem;font-weight:850;line-height:1}
.chat-quote p{align-self:center;color:#eeeaf0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}
.question-prompt{min-height:58px;resize:vertical}
.zoom-stage{position:relative;height:clamp(200px,48vw,300px);background:#21182f}.zoom-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0;visibility:hidden;pointer-events:none}.zoom-stage [role=status]{padding:20px}
.bulk-list{display:grid;gap:8px;max-height:560px;overflow:auto;margin-top:12px}.bulk-row{display:grid;grid-template-columns:64px minmax(0,1fr) 44px;align-items:start;gap:10px;padding:12px 8px;border:1px solid var(--line);border-radius:9px}.bulk-row img{width:64px;height:76px;object-fit:contain;background:#2a2038;border-radius:6px}.bulk-row b{overflow-wrap:anywhere;font-size:.8rem}.bulk-row label{margin:6px 0}.bulk-row button{padding:0}
.game-tabs button{flex:1 1 220px;min-width:max-content;justify-content:flex-start;white-space:nowrap}.bank-question{display:flex;align-items:center;gap:12px;min-width:0}.bank-question img{width:54px;height:64px;object-fit:contain;background:#2a2038;border-radius:6px;flex-shrink:0}.bank-question p,.bank-question b{overflow-wrap:anywhere}.bank article{flex-wrap:wrap}
.danger{color:#ffb2c1;border-color:#784052}.danger:hover{border-color:#ff9cb2}
.rank li .rank-grip{flex:0 0 30px;color:var(--violet);font-size:1.5rem;cursor:grab;touch-action:none;user-select:none;text-align:center;min-height:44px;display:grid;place-items:center}.rank-placeholder{opacity:.28;border-style:dashed!important}.rank-floating{position:fixed;left:0;top:0;z-index:1000;display:flex;align-items:center;gap:9px;margin:0;padding:4px 6px 4px 12px;list-style:none;border:1px solid var(--yellow);border-radius:8px;background:#352246;box-shadow:0 12px 35px #0008;pointer-events:none;will-change:transform}.rank-floating>span:not(.rank-grip){flex:1}.rank-floating .rank-grip{flex:0 0 30px;color:var(--violet);font-size:1.5rem;text-align:center}.rank-floating button{padding:.35rem .7rem}.ranking-drag,.ranking-drag *{cursor:grabbing!important;user-select:none!important}
.zoom-stage{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.zoom-inspector{width:min(92vw,650px);max-height:90vh;overflow:auto}.focus-preview{position:relative;margin:14px 0;background:#21182f}.focus-preview img{display:block;width:100%;height:auto}.focus-preview span{position:absolute;width:16px;height:16px;border:3px solid var(--yellow);border-radius:50%;box-shadow:0 0 0 2px #20172d;transform:translate(-50%,-50%);pointer-events:none}
.rank{position:relative}
.person-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px;margin:16px 0 20px}.person-choice{display:flex;flex-direction:column;gap:7px;border:0;background:transparent;padding:4px 0;min-width:0;font-size:.8rem;border-radius:12px}.person-avatar{position:relative;display:grid;place-items:center;width:clamp(46px,12vw,76px);height:clamp(46px,12vw,76px);border-radius:50%;border:2px solid #72558e;background:#352244;color:#e1c7ff;font-size:1.6rem;font-weight:850;transition:border-color .15s,background .15s}.person-check{display:none;position:absolute;right:-2px;bottom:-2px;border-radius:50%;width:21px;height:21px;background:var(--yellow);color:#211529;font-size:.85rem;place-items:center}.person-choice[aria-pressed=true]{color:var(--yellow)}.person-choice[aria-pressed=true] .person-avatar{border-color:var(--yellow);background:#594129;box-shadow:0 0 0 3px #ffe15c22}.person-choice[aria-pressed=true] .person-check{display:grid}.person-choice:hover .person-avatar{border-color:var(--yellow)}
.login-profiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0}.login-person{display:flex;flex-direction:column;padding:8px 2px;font-size:.76rem;background:transparent;border-color:transparent}.login-person span{display:grid;place-items:center;width:42px;height:42px;background:#39274e;border:2px solid #70578c;border-radius:50%;font-size:1.1rem}.login-person[aria-pressed=true]{color:var(--yellow);border-color:var(--yellow)}.login-person[aria-pressed=true] span{border-color:var(--yellow)}.login-person:last-child{grid-column:1/-1;flex-direction:row;min-height:35px}.login-person:last-child span{height:26px;width:26px;font-size:.8rem}.account-row{padding:18px 0;border-bottom:1px solid var(--line)}.account-row [role=status]{margin-top:8px;color:var(--violet)}.avatar-preview{width:110px;height:110px;border-radius:50%;margin:20px auto;display:grid;place-items:center;background:#3b2753;color:var(--violet);font-size:2.5rem;overflow:hidden}.avatar-preview img,.person-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.board-player{display:flex;align-items:center;gap:8px;min-width:0}.board-avatar{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#45305d;font-size:.75rem;flex-shrink:0}.board-avatar img{width:26px;height:26px;object-fit:cover;border-radius:50%}.rank li .rank-avatar,.rank-floating>span.rank-avatar{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#45305d;font-size:.8rem}.rank-avatar img{width:28px;height:28px;object-fit:cover;border-radius:50%}
.blind-video{width:100%;max-height:min(48vh,420px);object-fit:contain;background:#100c19}
.admin-media-preview{margin:8px 0}.admin-media-preview img,.admin-media-preview video{display:block;max-width:100%;max-height:160px;border-radius:8px}.admin-media-preview audio{display:block;width:min(100%,420px)}
#prompt-fields[hidden]{display:none}
#guest-fields[hidden]{display:none}
.home-round{margin-top:12px;font-size:.84rem}.home-steps{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}.home-steps li{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.home-steps li>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#35224d;color:var(--yellow);font-weight:800}.home-steps p{margin-top:4px;font-size:.88rem}.home-categories summary{cursor:pointer;font-weight:750;color:var(--violet)}.home-categories .categories{margin-top:16px}@media(min-width:850px){.home-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.quiz-confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:5}.quiz-confetti span{position:absolute;top:16%;left:50%;width:7px;height:11px;border-radius:2px}.quiz-confetti span:nth-child(3n){width:8px;height:8px;border-radius:50%}@media(hover:hover) and (prefers-reduced-motion:no-preference){#screen[data-page]:not([data-page=admin]) :is(.button,button.primary):not(:disabled){transition:translate .16s ease,border-color .16s ease}#screen[data-page]:not([data-page=admin]) :is(.button,button.primary):not(:disabled):hover{translate:0 -2px}}
.day-signal{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--yellow);vertical-align:2px}
.row-leader em{position:relative;color:var(--yellow)}
.row-leader em::after{content:"";position:absolute;width:6px;height:6px;top:5px;right:5px;background:var(--yellow);rotate:45deg}
.result-spark{display:inline-block;margin-left:12px;color:var(--yellow);font-size:.36em;vertical-align:top;line-height:1.8}
@media(prefers-reduced-motion:no-preference){
  #screen[data-page=accueil] .home-hero .hero-art{animation:arcade-float 7s ease-in-out infinite}
  #screen[data-page=saison] .day-signal{animation:arcade-glow 4s ease-in-out infinite}
  #screen[data-page=classement] .row-leader em::after{animation:arcade-glow 5s ease-in-out infinite}
  #screen[data-page^="quiz/"] .result-spark{animation:arcade-glow 5.5s ease-in-out infinite}
}
@keyframes arcade-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes arcade-glow{0%,100%{opacity:.65;scale:1}50%{opacity:1;scale:1.16}}
@media(prefers-reduced-motion:no-preference){
  .home-hero .hero-art circle[stroke-dasharray]{
    transform-box:fill-box;
    transform-origin:center;
    animation:home-logo-orbit 24s linear infinite;
  }
  #screen[data-page=accueil] .home-categories[open] .category>span{
    animation:arcade-icon-nudge 12s ease-in-out infinite;
  }
  #screen[data-page=accueil] .home-categories .category:nth-child(2)>span{animation-delay:2s}
  #screen[data-page=accueil] .home-categories .category:nth-child(3)>span{animation-delay:4s}
  #screen[data-page=accueil] .home-categories .category:nth-child(4)>span{animation-delay:6s}
  #screen[data-page=accueil] .home-categories .category:nth-child(5)>span{animation-delay:8s}
  #screen[data-page=accueil] .home-categories .category:nth-child(6)>span{animation-delay:10s}
  #screen[data-page^="quiz/"] progress::-webkit-progress-value{
    background:linear-gradient(105deg,var(--violet) 35%,#e6caff 49%,var(--violet) 65%) 100% 0/230% 100%;
    animation:arcade-progress-glint 9s ease-in-out infinite;
  }
  #screen[data-page^="quiz/"] progress::-moz-progress-bar{
    background:linear-gradient(105deg,var(--violet) 35%,#e6caff 49%,var(--violet) 65%) 100% 0/230% 100%;
    animation:arcade-progress-glint 9s ease-in-out infinite;
  }
}
@keyframes arcade-orbit{to{rotate:360deg}}
@keyframes arcade-icon-nudge{0%,8%,100%{translate:0 0;rotate:0deg}4%{translate:0 -3px;rotate:-5deg}}
@keyframes arcade-progress-glint{0%,68%{background-position:100% 0}87%,100%{background-position:0 0}}
.blind-audio{display:flex;align-items:center;gap:10px;max-width:620px;margin:0 auto 15px}
.blind-audio audio{min-width:0;margin:0}
.audio-bars{height:25px;display:flex;align-items:center;gap:3px;flex:none;color:var(--accent)}
.audio-bars i{display:block;width:3px;height:20px;border-radius:3px;background:currentColor;scale:1 .35}
.audio-bars i:nth-child(2n){scale:1 .55}
@media(prefers-reduced-motion:no-preference){
  #screen[data-page^="quiz/"] .blind-audio.is-playing .audio-bars i{animation:arcade-audio-bar .8s ease-in-out infinite alternate}
  #screen[data-page^="quiz/"] .blind-audio.is-playing .audio-bars i:nth-child(2){animation-delay:-.28s;animation-duration:1.05s}
  #screen[data-page^="quiz/"] .blind-audio.is-playing .audio-bars i:nth-child(3){animation-delay:-.49s;animation-duration:.92s}
  #screen[data-page^="quiz/"] .blind-audio.is-playing .audio-bars i:nth-child(4){animation-delay:-.12s;animation-duration:1.15s}
  body:not(.ranking-drag) #screen[data-page^="quiz/"] .rank li:first-child .rank-grip>span{animation:arcade-grip 8s ease-in-out infinite}
  #login[open] .login-person[aria-pressed=true]>span,
  #screen[data-page^="quiz/"] .question .person-choice[aria-pressed=true] .person-check{animation:arcade-select .3s ease-out}
}
@keyframes arcade-audio-bar{0%{scale:1 .32}45%{scale:1 .92}100%{scale:1 .5}}
@keyframes arcade-grip{0%,12%,100%{translate:0 0}4%{translate:0 -3px}8%{translate:0 2px}}
@keyframes arcade-select{0%,100%{scale:1}55%{scale:1.12}}
#screen[data-page=classement]>.page,.day-ready,.result-spark{position:relative}
.score-pixels{position:absolute;top:4px;right:4px;display:grid;grid-template-columns:repeat(3,6px);gap:5px}
.score-pixels i{width:6px;height:6px;border-radius:1px;background:var(--violet);opacity:.4}
.score-pixels i:nth-child(3n){background:var(--yellow)}
.day-ready::after{content:"";position:absolute;inset:auto 12px 0;height:2px;border-radius:3px;background:#bb8cff55;pointer-events:none}
.result-spark::after{content:"";position:absolute;top:50%;left:50%;width:1.6em;height:1.6em;translate:-50% -50%;border:1px dashed #ffe15c70;border-radius:50%;pointer-events:none}
@media(prefers-reduced-motion:no-preference){
  #screen[data-page=classement] .score-pixels i{animation:arcade-pixel-light 8s ease-in-out infinite}
  #screen[data-page=classement] .score-pixels i:nth-child(2){animation-delay:1s}
  #screen[data-page=classement] .score-pixels i:nth-child(3){animation-delay:2s}
  #screen[data-page=classement] .score-pixels i:nth-child(4){animation-delay:3s}
  #screen[data-page=classement] .score-pixels i:nth-child(5){animation-delay:4s}
  #screen[data-page=classement] .score-pixels i:nth-child(6){animation-delay:5s}
  #screen[data-page=saison] .day-ready::after{
    background:linear-gradient(100deg,#bb8cff55 32%,#ffe15c 50%,#bb8cff55 68%) 100% 0/230% 100%;
    animation:arcade-progress-glint 11s ease-in-out infinite;
  }
  #screen[data-page^="quiz/"] .result-spark::after{animation:arcade-orbit 22s linear infinite}
}
@keyframes arcade-pixel-light{0%,22%,100%{opacity:.4;scale:1}11%{opacity:1;scale:1.16}}
.project-image{max-height:min(58vh,520px);object-fit:contain;background:#100c19}
.project-answer-mode{margin:0 0 12px}
.project-multiple-warning{display:flex;align-items:flex-start;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid #b38737;border-left:4px solid var(--yellow);border-radius:8px;background:#332619;color:#ffe9ab;font-size:.88rem}.project-multiple-warning>span:first-child{font-size:1.2rem;line-height:1.3}.project-multiple-warning strong{color:var(--yellow)}
.project-stage{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.project-stage .project-image{pointer-events:none;visibility:hidden;margin:0 auto}
.board-game{max-width:480px;margin:0 auto 18px}.board-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}.tile-grid{display:grid;gap:5px}.puzzle-grid{grid-template-columns:repeat(var(--puzzle-cols,3),minmax(0,1fr))}.pairs-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.board-tile{padding:0;aspect-ratio:1;overflow:hidden;min-width:0;min-height:0;border-radius:8px;color:var(--violet);font-size:1.5rem;background:#312044}.board-tile img{width:100%;height:100%;object-fit:cover;pointer-events:none}.board-tile[aria-pressed=true]{outline:3px solid var(--yellow);outline-offset:-3px;z-index:1}.board-tile.matched{border-color:#85e4b2}.board-tile:is(.matched,.open):disabled,.puzzle-grid .board-tile:disabled{opacity:1}.board-message{margin-top:9px}.board-game>p:first-child{margin-bottom:10px}#pairs-fields[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){.pairs-grid .board-tile.open img{animation:card-reveal .2s ease-out}}
@keyframes card-reveal{from{scale:.9;opacity:.5}to{scale:1;opacity:1}}
.c6{--accent:#8de3b1}

/* Salons multijoueurs */
.room-list { display: grid; gap: .75rem; }
.room-card, .room-roster li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}
.room-card h3, .room-card p { margin: 0; }
.room-card p { margin-top: .25rem; }
.room-roster { display: grid; gap: .6rem; padding: 0; margin: 0; list-style: none; }
.room-roster li { padding: .5rem 0; }
.room-roster small { color: var(--muted); }
.room-ready { color: #ffe15c; border-color: #ad8b37; }

/* Révélation des résultats du salon */
.result-finale {
  --finale-accent: #ffd96d;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--finale-accent) 45%, transparent);
  background: radial-gradient(ellipse at top left, color-mix(in srgb, var(--finale-accent) 13%, #1d152a), #1d152a 70%);
}
.result-finale--win { --finale-accent: #6cf0a8; }
.result-finale--loss { --finale-accent: #ff939f; }
.finale-banner { display: flex; align-items: center; gap: clamp(.65rem, 3vw, 1.2rem); margin-bottom: 1.15rem; }
.finale-banner h2 { margin: .15rem 0; font-size: clamp(1.35rem, 5vw, 2.4rem); }
.finale-banner p { margin: 0; }
.finale-banner .eyebrow { color: var(--finale-accent); }
.finale-symbol {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: clamp(2.5rem, 10vw, 3.8rem);
  aspect-ratio: 1;
  border: 1px solid currentColor;
  border-radius: .85rem;
  color: var(--finale-accent);
  background: #170f22;
  font-size: clamp(1.2rem, 5vw, 2rem);
}
.finale-scores { display: grid; gap: .55rem; list-style: none; padding: 0; margin: 0; }
.finale-score {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: clamp(.3rem, 2vw, .8rem);
  align-items: center;
  padding: .65rem clamp(.5rem, 2.5vw, .95rem);
  border: 1px solid #ffffff23;
  border-radius: .75rem;
  background: #170f22;
}
.finale-score--leader { border-color: #ffe15c80; }
.finale-rank, .finale-score strong { font-variant-numeric: tabular-nums; }
.finale-score strong { font-size: clamp(1rem, 4.5vw, 1.55rem); white-space: nowrap; }
.finale-score--leader :is(.finale-rank, strong) { color: #ffe15c; }
.finale-player { overflow-wrap: anywhere; }
.finale-player small { color: #d0bfdf; }
.finale-bonus { display: block; }
@media (prefers-reduced-motion: no-preference) {
  .result-finale--reveal:is(.result-finale--win, .result-finale--loss)::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 32px var(--finale-accent);
    animation: finale-flash .65s ease-out both;
  }
  .result-finale--reveal .finale-score {
    animation: finale-entry .42s ease-out both;
    animation-delay: calc(var(--reveal-index) * 65ms);
  }
  .result-finale--reveal .finale-symbol { animation: finale-entry .45s ease-out both; }
}
@keyframes finale-flash {
  0%, 100% { opacity: 0; }
  26% { opacity: .85; }
}
@keyframes finale-entry {
  from { opacity: .4; transform: translateY(8px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Classement permanent */
.ranked-table { display: grid; gap: .7rem; }
.ranked-profile summary {
  display: grid;
  grid-template-columns: auto auto minmax(0,1fr) auto;
  align-items: center;
  gap: clamp(.4rem,2vw,.9rem);
  cursor: pointer;
}
.ranked-profile summary::marker { content: ""; }
.ranked-profile summary::-webkit-details-marker { display: none; }
.ranked-rating { display: grid; gap: .25rem; text-align: right; }
.ranked-rating > b { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.rank-badge { display: inline-block; border: 1px solid currentColor; border-radius: 2rem; padding: .15rem .65rem; font-size: .8rem; }
.rank-bronze { color: #e0ac7c; }
.rank-argent { color: #ded9ed; }
.rank-or { color: #ffe15c; }
.rank-platine { color: #8ef1df; }
.rank-diamant { color: #bea0ff; }
.ranked-history { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .75rem 0; border-top: 1px solid #ffffff20; }
.rating-up { color: #8af0b7; }
.rating-down { color: #ffadb6; }
.rank-promotion { display: block; margin-top: .25rem; color: #ffe15c; }
.finale-details { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .45rem; margin-top: .3rem; }
.finale-details > span { white-space: nowrap; }
.finale-details .rank-badge { padding: .06rem .4rem; }
.finale-demo-tag { opacity: .8; }
.finale-promotion, .finale-speed { color: #ffe15c; }
@media (prefers-reduced-motion: no-preference) {
  .rank-promotion--reveal { animation: rank-promotion .8s ease-out both; }
}
@keyframes rank-promotion {
  0% { opacity: 0; transform: translateY(4px); }
  45% { text-shadow: 0 0 12px #ffe15ca0; }
  100% { opacity: 1; transform: translateY(0); }
}

/* Podium du classement */
.podium-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  align-items: end;
  gap: clamp(.4rem,2vw,1.1rem);
  list-style: none;
  padding: 0;
  margin: 2rem 0;
}
.podium-place { --podium-color: #c6bddf; min-width: 0; text-align: center; }
.podium-place--1 { --podium-color: #ffe15c; grid-column: 2; grid-row: 1; }
.podium-place--2 { grid-column: 1; grid-row: 1; }
.podium-place--3 { --podium-color: #dfa879; grid-column: 3; grid-row: 1; }
.podium-players { display: grid; gap: 1rem; padding: 0 .2rem .85rem; }
.podium-player { display: grid; justify-items: center; gap: .35rem; min-width: 0; }
.podium-player > b { overflow-wrap: anywhere; font-size: clamp(.85rem,2.8vw,1.15rem); }
.podium-player > strong { color: var(--podium-color); font-size: clamp(1rem,3vw,1.5rem); font-variant-numeric: tabular-nums; }
.podium-player strong small { font-size: .65em; }
.podium-avatar { width: clamp(2.8rem,10vw,4.5rem); height: clamp(2.8rem,10vw,4.5rem); border: 2px solid var(--podium-color); box-shadow: 0 0 20px color-mix(in srgb,var(--podium-color) 15%,transparent); }
.podium-player .rank-badge { max-width: 100%; padding: .12rem .4rem; font-size: clamp(.65rem,2vw,.8rem); }
.podium-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  min-height: 6rem;
  border: 1px solid color-mix(in srgb,var(--podium-color) 65%,transparent);
  border-bottom: 3px solid var(--podium-color);
  border-radius: .85rem .85rem .25rem .25rem;
  color: var(--podium-color);
  background: linear-gradient(160deg,color-mix(in srgb,var(--podium-color) 16%,#21162e),#171020);
}
.podium-place--1 .podium-step { min-height: 8rem; }
.podium-place--3 .podium-step { min-height: 4.8rem; }
.podium-step > b { font-size: clamp(1.5rem,5vw,2.25rem); }
.podium-step > small { font-size: .75rem; }
@media (prefers-reduced-motion: no-preference) {
  .podium-place { animation: podium-entry .5s ease-out both; }
  .podium-place--2 { animation-delay: .06s; }
  .podium-place--1 { animation-delay: .15s; }
}
@keyframes podium-entry {
  from { opacity: .3; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Détail éclair et Fil en vrac */
.flash-stage { padding: 1rem; border: 1px solid #ac83e64d; border-radius: .85rem; background: #130e1d; }
.flash-stage .answer-media { width: 100%; max-height: 420px; object-fit: contain; pointer-events: none; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; }
.flash-clock { margin: 0 0 .5rem; color: #ffe15c; font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.flash-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; margin-top: 1rem; }
.flash-choices button { min-height: 3.5rem; overflow-wrap: anywhere; white-space: normal; }
.flash-choices button[aria-pressed=true] { background: #ffe15c; border-color: #ffe15c; color: #191020; }
.flash-choice-editor { display: flex; gap: .75rem; align-items: center; }
.flash-choice-editor > input { flex: 0 0 auto; width: 1.2rem; height: 1.2rem; }
.flash-choice-editor > label { flex: 1; min-width: 0; }
.thread-editor-row { display: flex; align-items: center; gap: .5rem; }
.thread-editor-row > label { flex: 1; min-width: 0; }
.thread-editor-row textarea { min-height: 5rem; white-space: pre-wrap; }
.rank-message, .thread-correction li { white-space: pre-wrap; overflow-wrap: anywhere; }
.thread-correction { margin: .5rem 0; padding-left: 1.5rem; }
.thread-correction li { display: list-item; margin: .4rem 0; padding: .4rem; background: #ffffff06; border-radius: .3rem; }
@media (max-width: 360px) { .flash-choices { grid-template-columns: 1fr; } }

/* Activation des mini-jeux */
.game-settings { display: grid; gap: .25rem; }
.game-setting { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid #ffffff16; }
.game-setting:last-child { border-bottom: 0; }
.game-setting > div { min-width: 0; }
.game-setting small { display: block; margin-top: .2rem; color: #c9b9d9; }
.game-switch { display: flex; align-items: center; flex-shrink: 0; gap: .55rem; min-width: 9.5rem; justify-content: flex-start; }
.game-switch-track { display: inline-flex; align-items: center; width: 2.4rem; height: 1.35rem; padding: .15rem; border-radius: 2rem; background: #6b6078; }
.game-switch-track > span { width: 1.05rem; height: 1.05rem; border-radius: 50%; background: #fff; }
.game-switch[aria-checked=true] { color: #ffe15c; border-color: #ffe15c80; }
.game-switch[aria-checked=true] .game-switch-track { background: #9264d8; }
.game-switch[aria-checked=true] .game-switch-track > span { transform: translateX(1.05rem); }
@media (max-width: 380px) { .game-setting { flex-wrap: wrap; gap: .5rem; } }

.home-categories .mini-game-status { display: inline-flex; align-items: center; gap: .4rem; width: fit-content; padding: .2rem .5rem; border: 1px solid currentColor; border-radius: 1rem; font-size: .72rem; font-weight: 750; }
.home-categories .mini-game-status::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.home-categories .mini-game-status--enabled { color: #8af0b7; }
.home-categories .mini-game-status--disabled { color: #c5b7d1; }

/* Auteurs des conversations */
.thread-editor-row { align-items: flex-start; padding: .85rem; margin: .65rem 0; border: 1px solid #a779e633; border-radius: .75rem; background: #171020; }
.thread-editor-body { flex: 1; min-width: 0; }
.thread-editor-author { display: flex; align-items: center; gap: .65rem; }
.thread-editor-author > label { flex: 1; min-width: 0; }
.thread-editor-author .board-avatar { width: 2.1rem; height: 2.1rem; }
.thread-editor-author .board-avatar img { width: 100%; height: 100%; }
.thread-author { display: block; font-weight: 750; color: #c8a5ff; font-size: .85rem; line-height: 1.35; white-space: normal; }
.thread-text { display: block; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.5; }
.thread-rank .rank-message { min-width: 0; }
.thread-rank > li { padding-top: .6rem; padding-bottom: .6rem; }
.thread-rank-row > .rank-number { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.thread-conversation { display: grid; gap: .25rem; list-style: none; padding: .75rem; margin: .5rem 0; border-radius: .7rem; background: #15101e; border: 1px solid #b791e62b; }
.thread-conversation > li { display: flex; align-items: flex-start; justify-content: flex-start; gap: .65rem; padding: .5rem .25rem; margin: 0; }
.thread-conversation > li > div { flex: 1; min-width: 0; }
.thread-conversation .rank-avatar { display: grid; place-items: center; flex: 0 0 2rem; width: 2rem; height: 2rem; border-radius: 50%; background: #45305d; }
.thread-conversation .rank-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
@media (max-width: 580px) {
  .thread-rank > .thread-rank-row, .rank-floating.thread-rank-row { display: grid; grid-template-columns: 24px 28px minmax(0,1fr) 36px; gap: .2rem .4rem; padding: .4rem; }
  .thread-rank-row > .rank-grip { grid-column: 1; grid-row: 1 / 3; }
  .thread-rank-row > .rank-avatar { grid-column: 2; grid-row: 1 / 3; align-self: start; margin-top: .5rem; }
  .thread-rank-row > .rank-message { grid-column: 3; grid-row: 1 / 3; }
  .thread-rank-row > button[data-dir="-1"] { grid-column: 4; grid-row: 1; }
  .thread-rank-row > button[data-dir="1"] { grid-column: 4; grid-row: 2; }
  .thread-rank-row > .rank-number { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

.zoom-scale-preview { margin: 1rem 0 0; }
.zoom-scale-preview img { display: block; width: 100%; max-width: 620px; height: auto; border-radius: .75rem; background: #21182f; }
.zoom-scale-preview figcaption { margin-top: .4rem; color: #c9b9d9; font-size: .85rem; }

.thread-photo { display: block; width: auto; max-width: 100%; max-height: 280px; object-fit: contain; margin-top: .45rem; border-radius: .5rem; pointer-events: none; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; }
.thread-photo-preview img { display: block; width: auto; max-width: 100%; max-height: 220px; object-fit: contain; border-radius: .5rem; margin: .5rem 0; }
.thread-rank-row:has(.thread-photo) { align-items: flex-start; }
.thread-rank-row:has(.thread-photo) > .rank-avatar { margin-top: .3rem; }
@media (max-width: 580px) { .thread-photo { max-height: 200px; } }
.thread-editor-row button[hidden] { display: none; }

.thread-start { display: block; margin-bottom: .35rem; color: #ffe15c; font-size: .72rem; white-space: normal; }
.thread-rank > [data-rank-fixed] { border-color: #ffe15c60; background: #282032; cursor: default; }
.thread-rank > [data-rank-fixed] .rank-grip { cursor: default; color: #ffe15c; }
.thread-rank > [data-rank-fixed] .rank-grip > span { animation: none !important; }

/* Visite guidée */
.header-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.header-actions > button { font-size: .75rem; min-height: 37px; padding: .5rem .7rem; }
.header-actions > button > span { display: grid; place-items: center; width: 1.1rem; height: 1.1rem; border: 1px solid currentColor; border-radius: 50%; color: #ffe15c; }
dialog.tutorial-overlay {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: hidden;
  color: var(--ink);
}
dialog.tutorial-overlay::backdrop { background: transparent; backdrop-filter: none; }
.tutorial-no-target { background: #090613cf !important; }
.tutorial-spotlight {
  position: fixed;
  pointer-events: none;
  border: 2px solid #ffe15c;
  border-radius: 12px;
  box-shadow: 0 0 0 150vmax #090613cf, 0 0 24px #ffe15c30;
}
.tutorial-card {
  position: fixed;
  z-index: 1;
  width: min(390px,calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: clamp(18px,4vw,25px);
  border: 1px solid #aa7ce8;
  border-radius: 16px;
  background: #21172f;
  box-shadow: 0 18px 65px #0009;
}
.tutorial-progress { margin: 0 0 .6rem; color: #ffe15c; font: 750 .72rem var(--mono); }
.tutorial-card h2 { margin: 0 0 .8rem; font-size: clamp(1.3rem,5vw,1.7rem); line-height: 1.2; }
.tutorial-card h2:focus { outline: none; }
#tutorial-description p { margin: 0 0 1rem; color: #e2d5ed; line-height: 1.6; }
.tutorial-navigation { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.tutorial-navigation button { flex: 1; font-size: .88rem; }
.tutorial-skip { display: block; width: 100%; margin-top: .65rem; background: transparent; border-color: transparent; color: #d1bfdc; font-size: .8rem; }
.tutorial-skip:hover { color: #fff; }
@media (max-width: 480px) {
  header { flex-wrap: wrap; padding: .8rem 0; }
  .header-actions { width: 100%; justify-content: space-between; }
  #profile { flex-wrap: wrap; justify-content: flex-end; }
}
@media (prefers-reduced-motion: no-preference) {
  .tutorial-card { animation: tutorial-arrive .18s ease-out; }
}
@keyframes tutorial-arrive {
  from { opacity: .4; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.question-category { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; min-width: 0; }
.question-category .eyebrow { margin: 0; }
.game-help { position: relative; display: inline-flex; align-items: center; }
.game-help-button { padding: .3rem; width: 40px; min-height: 40px; border-color: transparent; background: transparent; border-radius: 50%; color: #c5a0f5; font-size: 1.35rem; }
.game-help-button[aria-expanded=true] { color: #ffe15c; border-color: #ffe15c70; }
.game-help-panel {
  position: fixed;
  z-index: 40;
  width: min(340px,calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  padding: 1rem;
  border: 1px solid #a97de1;
  border-radius: .75rem;
  background: #261a36;
  box-shadow: 0 10px 35px #0008;
  font-size: .85rem;
  line-height: 1.55;
  color: #eee3f6;
  white-space: normal;
}
.game-help-panel[hidden] { display: none; }
.game-help-panel > strong { display: block; color: #ffe15c; margin-bottom: .4rem; }
.game-help-panel p { margin: .45rem 0 0; }

.correction-room-note { margin-top: 1rem; line-height: 1.6; }

.top-reference-notice{padding:1.15rem;margin:1rem 0 1.4rem;border:2px solid #ffe15c;border-radius:14px;background:#ffe15c12}.top-reference-notice strong{display:block;color:#ffe15c;font-size:1.2rem}.top-reference-notice p{line-height:1.6;margin:.65rem 0}.top-reference-notice small{display:block;opacity:.85}

/* Régie : navigation compacte et paramètres par jeu */
.admin-page>h1{font-size:clamp(2rem,5vw,3.2rem);margin-bottom:.4rem}
.admin-page>.actions.section{margin-top:.75rem}
.admin-main-nav{gap:6px;padding:8px;background:#171020;border:1px solid var(--line);border-radius:14px;margin:16px 0 22px}
.admin-main-nav button{flex:1;white-space:nowrap;background:transparent;border-color:transparent}
.admin-main-nav button[aria-current]{background:#352249}
.settings-intro h2{margin:0 0 .35rem}.settings-intro>p{margin:0 0 1.2rem;color:var(--muted)}
.settings-workspace.game-settings{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}
.settings-menu{display:grid;gap:5px;position:sticky;top:16px}
.settings-menu button{justify-content:flex-start;text-align:left;padding:.65rem .75rem;gap:10px;font-size:.85rem;background:transparent;min-width:0}
.settings-menu button[aria-pressed=true]{background:#38254c;border-color:var(--yellow);color:var(--yellow)}
.settings-menu-icon{width:20px;flex-shrink:0;text-align:center;color:var(--yellow)}
.settings-status{width:7px;height:7px;border-radius:50%;background:#786880;margin-left:auto;flex-shrink:0}.settings-status.is-on{background:#76e4a8}
.settings-content{min-width:0;background:#171020;border:1px solid var(--line);border-radius:14px;padding:22px}
.settings-card[hidden]{display:none!important}.settings-card-heading h3{font-size:1.5rem;margin:.25rem 0 1.1rem}.settings-card-heading .eyebrow{margin:0}
.settings-activation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 16px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.settings-activation>span{color:var(--muted);font-size:.8rem}
.settings-card .form-grid{gap:16px}.settings-card label{font-size:.85rem;line-height:1.5}.settings-card input{margin-top:6px}
.settings-card form+form{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}
.settings-card .section{margin-top:16px}.settings-save{margin-top:20px;display:flex;justify-content:flex-end}
.settings-footnote{margin:18px 0 0;line-height:1.6}
@media(max-width:760px){.admin-main-nav{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start}.admin-main-nav button{flex:0 0 auto}.settings-workspace.game-settings{grid-template-columns:minmax(0,1fr);gap:14px}.settings-menu{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.settings-menu button{font-size:.8rem;padding:.55rem .65rem}.settings-content{padding:16px}.settings-activation{align-items:flex-start}.settings-save button{width:100%}.settings-panel{padding:16px}}

.quiz-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.quiz-header>.meta{text-align:center}.quiz-clock{display:flex;align-items:center;gap:8px;justify-self:end;padding:10px 14px;border:1px solid #b890ff66;border-radius:12px;background:#2a1c3d;color:var(--yellow);font-family:var(--mono);font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;min-height:44px}.quiz-clock>span:first-child{font-size:1.2rem}@media(max-width:600px){.quiz-header{grid-template-columns:minmax(0,1fr) auto}.quiz-header>.button{justify-self:start}.quiz-header>.meta{grid-column:1/-1;grid-row:2;text-align:left}.quiz-header>.quiz-clock{grid-column:2;grid-row:1}}

/* Animation du logo de l’accueil, indépendante des autres pages. */
.home-hero .hero-art{pointer-events:none}
.home-hero .hero-art::before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,#ffe15c22,#b277ff25 42%,transparent 72%);pointer-events:none}
.home-hero .hero-art svg{position:relative;overflow:visible}
@media(prefers-reduced-motion:no-preference){
 .home-hero .home-logo-eight{transform-box:fill-box;transform-origin:center;animation:home-eight-hover 5.8s ease-in-out infinite}
 .home-hero .home-logo-sparks{transform-box:fill-box;transform-origin:center;animation:home-sparks-breathe 4.2s ease-in-out infinite}
 .home-hero .home-logo-star{animation:home-star-twinkle 3.5s ease-in-out infinite}.home-hero .star-two{animation-delay:-1.8s}
 .home-hero .hero-art::before{animation:home-halo-breathe 5.8s ease-in-out infinite}
}
@keyframes home-eight-hover{0%,100%{transform:translateY(2px) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1.5deg)}}
@keyframes home-sparks-breathe{0%,100%{opacity:.7;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
@keyframes home-star-twinkle{0%,100%{opacity:.4}45%,60%{opacity:1}}
@keyframes home-halo-breathe{0%,100%{opacity:.45;transform:scale(.93)}50%{opacity:.95;transform:scale(1.08)}}

@keyframes home-logo-orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

.home-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-highlight{min-width:0;padding:20px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#302044,#1c1429);display:flex;flex-direction:column;gap:10px}.home-highlight strong{font-size:1.35rem;overflow-wrap:anywhere}.home-highlight small{color:var(--muted);line-height:1.5}.home-highlight .eyebrow{font-size:.6rem;line-height:1.6}.home-highlight[href]:hover{border-color:var(--yellow)}
.shop-wallet{display:grid;gap:12px;line-height:1.6}.shop-wallet>strong{font-size:1.7rem;color:var(--yellow)}.shop-wallet small{color:var(--muted)}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.shop-item{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.shop-item h2{font-size:1.25rem;letter-spacing:-.025em}.shop-item p{font-size:.85rem;color:var(--muted);line-height:1.6;flex:1}.shop-item>strong{color:var(--yellow)}.shop-item>button{width:100%}.shop-preview{display:grid;place-items:center;width:80px;height:80px;font-size:2rem;background:#322245;margin:8px auto 10px;font-weight:900}.avatar-trim{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;box-sizing:border-box}.avatar-trim img{width:100%;height:100%;object-fit:cover;border-radius:50%}.cosmetic-violet{--frame:#b890ff}.cosmetic-mint{--frame:#79e0d1}.cosmetic-pink{--frame:#ff8cce}.cosmetic-gold{--frame:#ffe15c}.cosmetic-fire{--frame:#ff995c}.cosmetic-ice{--frame:#a4e8ff}.avatar-trim,.shop-preview{border:3px solid var(--frame);border-radius:50%;box-shadow:0 0 12px color-mix(in srgb,var(--frame) 45%,transparent)}.finale-coins{display:block;color:var(--yellow);margin-top:5px}
@media(max-width:900px){.home-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.shop-grid{grid-template-columns:minmax(0,1fr)}.home-highlight{padding:14px 12px}.home-highlight strong{font-size:1.1rem}}

/* Cadres ornés : les décorations restent hors du portrait. */
.avatar-trim,.shop-preview{position:relative;isolation:isolate;border:0;box-shadow:none;overflow:visible;background:transparent}
.frame-portrait{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;border-radius:50%;background:#322245;border:2px solid var(--frame);position:relative}
.frame-portrait img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.avatar-frame-art{position:absolute;left:-17%;top:-17%;width:134%;height:134%;max-width:none;overflow:visible;pointer-events:none;fill:none;stroke:var(--frame);stroke-width:1.8;stroke-linejoin:round;filter:drop-shadow(0 0 3px var(--frame))}
.avatar-frame-art .frame-ring{stroke-width:3}.avatar-frame-art .frame-fine{stroke-width:1;opacity:.7}.avatar-frame-art .frame-solid{fill:var(--frame);stroke-width:1}.avatar-frame-art .frame-crystal{fill:#c1efff;stroke:#69cfff;stroke-width:1}.avatar-frame-art .frame-flame{fill:#ff8a35;stroke:#ffd17c;stroke-width:1.3}
.shop-preview{width:104px;height:104px;margin:32px auto 36px;flex-shrink:0}.shop-item{overflow:visible}.shop-item .frame-portrait{font-size:2rem}.person-check{z-index:2}
@media(prefers-reduced-motion:no-preference){.avatar-frame-art .frame-orbit{transform-origin:60px 60px;animation:decorated-frame-orbit 35s linear infinite}.shop-preview.cosmetic-pink .avatar-frame-art{animation:decorated-frame-glow 4s ease-in-out infinite}.shop-preview.cosmetic-fire .avatar-frame-art{animation:decorated-frame-glow 2.8s ease-in-out infinite}}
@keyframes decorated-frame-orbit{to{transform:rotate(360deg)}}@keyframes decorated-frame-glow{0%,100%{opacity:.7}50%{opacity:1}}

.cosmetic-cosmic{--frame:#c4a5ff}.cosmetic-cosmic .avatar-frame-art{stroke:#c4a5ff}.cosmetic-cosmic .frame-solid{fill:#8ee8ff;stroke:#e7dcff}.champion-frame{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:center;border-color:#ffe15c77;background:linear-gradient(120deg,#3b2a24,#21172f)}.champion-frame p{line-height:1.6;margin:10px 0}.champion-frame small{color:var(--muted);line-height:1.6}@media(max-width:520px){.champion-frame{grid-template-columns:minmax(0,1fr);gap:0}.champion-frame>div:first-child{justify-self:center}}

.title-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.title-item{display:flex;flex-direction:column;gap:16px;min-width:0}.title-item-rare{background:linear-gradient(140deg,#382244,#20162d);border-color:#ab7be4}.title-sample{color:var(--muted);font-size:.9rem}.title-label{display:block;color:#c9b5f2;font-size:1.2rem;overflow-wrap:anywhere;flex:1}.title-item-rare .title-label{color:#ffe15c}.title-item button{width:100%}.player-title{display:block!important;color:var(--violet);font-size:.7rem;letter-spacing:.03em;margin:3px 0;overflow-wrap:anywhere}.title-collection>p{line-height:1.7;margin-top:10px}@media(max-width:900px){.title-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.title-grid{grid-template-columns:minmax(0,1fr)}}

.edit-title-form{display:grid;gap:14px;width:100%}.edit-title-form .actions{flex-wrap:wrap}.edit-title-form label{font-size:.85rem}.edit-title-form button{width:auto}

.title-rarity-heading{display:flex;align-items:center;gap:10px;font-size:1.1rem;color:var(--violet)}.title-rarity-special{color:var(--yellow)}.title-rarity-group+.title-rarity-group{padding-top:20px;border-top:1px solid var(--line)}

/* Six cadres animés : seuls les ornements bougent, jamais le portrait. */
.cosmetic-radar{--frame:#a0ff78}.cosmetic-glitch{--frame:#ff6fae}.cosmetic-pixels{--frame:#80b7ff}.cosmetic-abyss{--frame:#b28aff}.cosmetic-storm{--frame:#fff183}.cosmetic-astral{--frame:#b8c9ff}
.glitch-cyan{stroke:#6af4ff}.glitch-pink{fill:#ff6fae;stroke:#ff6fae}.pixel-chase{fill:#80b7ff;stroke:#d3f3ff}.storm-bolt{fill:#fff183;stroke:#fffbd1}.cosmetic-abyss .abyss-inner{stroke:#71e6ee}.frame-animated-tag{font-size:.6rem;padding:4px 8px}
@media(prefers-reduced-motion:no-preference){
 .radar-sweep{transform-origin:60px 60px;animation:frame-spin 5s linear infinite}
 .glitch-cyan{animation:frame-glitch-left 6s steps(1,end) infinite}.glitch-pink{animation:frame-glitch-right 6s steps(1,end) infinite}
 .pixel-chase{animation:frame-pixel-run 3.6s linear infinite;animation-delay:calc(var(--pixel-index)*.3s -3.6s)}
 .abyss-outer{transform-origin:60px 60px;animation:frame-spin 24s linear infinite}.abyss-inner{transform-origin:60px 60px;animation:frame-spin 14s linear infinite reverse}
 .storm-current{animation:frame-electric-flow 5s linear infinite}.storm-bolt{animation:frame-electric-breathe 3.8s ease-in-out infinite}
 .astral-star{animation:frame-star-breathe 5s ease-in-out infinite}.cosmetic-astral .avatar-frame-art>g:nth-of-type(even) .astral-star{animation-delay:-2.5s}
}
@keyframes frame-spin{to{transform:rotate(360deg)}}
@keyframes frame-glitch-left{0%,88%,100%{transform:translate(0,0)}90%,94%{transform:translate(-1.8px,.8px)}92%,96%{transform:translate(.7px,-.7px)}}
@keyframes frame-glitch-right{0%,88%,100%{transform:translate(0,0)}90%,94%{transform:translate(1.8px,-.8px)}92%,96%{transform:translate(-.7px,.7px)}}
@keyframes frame-pixel-run{0%,100%{opacity:1}20%,80%{opacity:.28}}
@keyframes frame-electric-flow{to{stroke-dashoffset:-108}}
@keyframes frame-electric-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes frame-star-breathe{0%,100%{opacity:.4}50%{opacity:1}}

.cosmetic-fly{--frame:#bef19a}.cosmetic-pan{--frame:#ffc783}.cosmetic-satellite{--frame:#9ddfff}.cosmetic-microwave{--frame:#efbdff}
.fly-wings{fill:#e6ffffb0;stroke:#caffff;stroke-width:1}.fly-body{fill:#282738;stroke:#bce386;stroke-width:1}.pan-rim{stroke:#737c8f;stroke-width:7}.pan-handle{stroke:#323947}.pan-steam{stroke:#fff0cb;stroke-linecap:round}.satellite-body{fill:#d2def4;stroke:#fff}.satellite-panel{fill:#4776b5;stroke:#b4eaff;stroke-width:1}.satellite-signal{stroke:#9dffc9}.microwave-case{stroke:#b995cf;stroke-width:4}.microwave-button{fill:#baffc2;stroke:#baffc2}.microwave-ding{stroke:#fff39e;opacity:.55}
@media(prefers-reduced-motion:no-preference){
 .fly-orbit{transform-origin:60px 60px;animation:frame-spin 6.8s linear infinite}.fly-wings{animation:fly-buzz .4s ease-in-out infinite alternate}
 .pan-steam{animation:pan-simmer 3.6s ease-in-out infinite}
 .satellite-orbit{transform-origin:60px 60px;animation:frame-spin 11s linear infinite reverse}.satellite-signal{animation:satellite-search 3s ease-in-out infinite}
 .microwave-heat{animation:pan-simmer 3s ease-in-out infinite}.microwave-ding{animation:microwave-ready 7s ease-in-out infinite}.microwave-button{animation:microwave-ready 7s ease-in-out infinite}
}
@keyframes fly-buzz{from{transform:scaleX(.72)}to{transform:scaleX(1.12)}}
@keyframes pan-simmer{0%,100%{opacity:.3;transform:translateY(2px)}50%{opacity:1;transform:translateY(-3px)}}
@keyframes satellite-search{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes microwave-ready{0%,65%,100%{opacity:.25}75%,88%{opacity:1}}

.cosmetic-egg{--frame:#ffe181}.cosmetic-wanted{--frame:#e9bb79}.egg-white{fill:none;stroke:#fff6dc;stroke-width:8;stroke-linejoin:round}.egg-yolk{stroke:#ffce47;stroke-width:5;fill:none}.egg-bubbles{stroke:#e7c994;fill:#fffbe7}.egg-seasoning{stroke:#5e7546;stroke-width:2;stroke-linecap:round}.wanted-paper{fill:none;stroke:#d5af75;stroke-width:6;stroke-linejoin:round}.wanted-window{stroke:#9d7347;stroke-width:2}.wanted-pin{fill:#8f6551;stroke:#efcca0}.wanted-stamp{stroke:#d9685c;stroke-width:2;fill:none}
@media(prefers-reduced-motion:no-preference){.egg-bubbles{animation:egg-sizzle 3.2s ease-in-out infinite}.wanted-poster{transform-origin:60px 7px;animation:wanted-sway 6s ease-in-out infinite}.wanted-stamp{animation:wanted-stamp-glow 5s ease-in-out infinite}}
@keyframes egg-sizzle{0%,100%{opacity:.4;transform:translateY(1px)}50%{opacity:1;transform:translateY(-2px)}}@keyframes wanted-sway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes wanted-stamp-glow{0%,100%{opacity:.55}50%{opacity:1}}

.rank-player-extras{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.72rem;margin:6px 0}.rank-leader-tag{display:block;color:var(--yellow);font-size:.65rem;margin:4px 0}

.statistics-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.statistic-metric{display:flex;flex-direction:column;gap:10px;min-width:0;padding:18px}.statistic-metric small{color:var(--muted);font-size:.75rem;line-height:1.5}.statistic-metric strong{font-size:1.65rem;color:var(--yellow);overflow-wrap:anywhere}.stats-modes button[aria-pressed=true],.stats-player[aria-pressed=true]{border-color:var(--yellow);background:#352447}.statistics-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stats-player{justify-content:flex-start;gap:12px;text-align:left;padding:14px;min-width:0}.stats-player>span:last-child{min-width:0}.stats-player small{display:block;font-weight:400;color:var(--muted);font-size:.68rem;margin-top:5px}.stats-player .board-avatar{flex-shrink:0}.stats-profile-heading{display:flex;align-items:center;gap:16px}.stats-profile-heading .board-avatar{width:54px;height:54px}.stats-categories{display:grid;gap:16px}.stats-category{display:grid;grid-template-columns:minmax(150px,1fr) minmax(70px,1fr) 72px;align-items:center;gap:14px}.stats-category small{display:block;color:var(--muted);font-size:.7rem;margin-top:4px}.stats-category meter{width:100%;accent-color:var(--violet)}.stats-category>strong{text-align:right;font:750 .8rem var(--mono)}.stats-note{line-height:1.8}.statistics-detail>p{line-height:1.7}
@media(max-width:1000px){.statistics-roster{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.statistics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.statistic-metric{padding:12px}.statistic-metric strong{font-size:1.3rem}.stats-category{grid-template-columns:minmax(0,1fr) 72px;gap:6px}.stats-category meter{grid-column:1;grid-row:auto}.stats-category>strong{grid-column:2;grid-row:auto}.stats-player{padding:12px 8px;font-size:.85rem;gap:8px}.stats-modes{gap:6px}.stats-modes button{font-size:.78rem;padding:.6rem .7rem}}

.admin-backups p{line-height:1.7}.backup-path{display:block;overflow-wrap:anywhere;font-family:var(--mono);font-size:.75rem;padding:10px;background:#171020;border-radius:8px;margin:8px 0}
