/* ============================================================
   ONYX PVP — thème rose
   Palette tirée de la bannière : magenta, violet du ciel, lueur pêche.
   ============================================================ */
:root{
  --bg:#14050f;
  --panel:rgba(40,10,32,.6);
  --row:rgba(255,255,255,.1);
  --head:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.16);
  --line2:rgba(255,255,255,.3);
  --text:#fff4fa;
  --muted:rgba(255,232,245,.74);
  --pink:#ff3fa4;
  --pink-2:#ff86cf;
  --violet:#a233d6;
  --sun:#ffb06a;
  --red:#ff6b81;--blue:#6fa8ff;--white:#f4eef2;--green:#5deba0;
  --oswald:'Oswald','Montserrat','Inter',sans-serif;
  --banner:url("assets/banner.jpg");
}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);scrollbar-gutter:stable}
body{min-height:100vh;color:var(--text);font:400 1.05rem/1.6 'Inter',system-ui,sans-serif;
  background:radial-gradient(70% 50% at 50% 112%,rgba(255,63,164,.4),transparent 70%),
             radial-gradient(50% 40% at 92% -6%,rgba(162,51,214,.28),transparent 70%),var(--bg)}
body.is-gate{overflow:hidden}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Grain + image floue derrière tout le site */
.ambient{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.07;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
body:not(.is-gate)::before{content:"";position:fixed;inset:-40px;z-index:0;pointer-events:none;
  background:linear-gradient(rgba(20,5,15,.35),rgba(20,5,15,.6)),var(--banner) center/cover;filter:blur(26px) saturate(1.15)}
.site{position:relative;z-index:1}

/* ---- Écran d'entrée ---- */
.gate{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.6rem;padding:1.5rem;overflow:hidden}
.gate-logo{width:clamp(96px,16vw,150px);filter:drop-shadow(0 0 40px rgba(255,63,164,.85));animation:bolt 1.1s cubic-bezier(.2,.8,.2,1) both}
.gate-tile{position:relative;width:min(74vw,360px);aspect-ratio:1;padding:0;border:0;cursor:pointer;border-radius:28px;
  overflow:hidden;background:var(--panel);box-shadow:0 0 0 1px rgba(255,255,255,.14),0 30px 80px -20px rgba(255,63,164,.65);
  animation:rise 1s .25s cubic-bezier(.2,.8,.2,1) both,glow 3.2s 1.4s ease-in-out infinite;transition:transform .35s ease}
.gate-tile:hover{transform:scale(1.03)}
.gate-tile img{width:100%;height:100%;display:block;object-fit:cover}
.gate-hint{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--pink-2);animation:rise 1s .8s both}
.chev{width:16px;height:16px;border-top:3px solid currentColor;border-left:3px solid currentColor;transform:rotate(45deg);opacity:0;animation:up 1.6s ease-in-out infinite}
.chev+.chev{margin-top:-6px;animation-delay:.25s}
.gate-hint p{margin-top:.7rem;font-weight:600;letter-spacing:.3em;text-indent:.3em;font-size:.85rem;color:var(--muted)}
.flash{position:absolute;inset:0;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,#fff 0,#ffd0ea 25%,var(--pink) 60%,var(--violet) 100%)}
.ring{position:absolute;left:50%;top:50%;width:360px;aspect-ratio:1;margin:-180px 0 0 -180px;border-radius:50%;border:3px solid var(--pink);opacity:0;pointer-events:none}
.gate[hidden]{display:none}
.gate.leaving{pointer-events:none;animation:gate-out 1.2s linear forwards}
.gate.leaving .gate-tile{animation:dive 1s cubic-bezier(.7,0,.9,.5) forwards}
.gate.leaving .gate-logo,.gate.leaving .gate-hint{animation:fade .35s forwards}
.gate.leaving .ring{animation:shock .9s .1s ease-out forwards}
.gate.leaving .flash{animation:flash 1.2s ease-in forwards}

/* ---- Navigation ---- */
.om-title{font-family:var(--oswald);font-style:italic;font-weight:700;font-size:19px;letter-spacing:.01em;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,.4)}
.nav{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem clamp(1rem,4vw,2.5rem);
  background:linear-gradient(rgba(20,5,15,.5),rgba(20,5,15,0));margin-bottom:-4.4rem;transition:background .3s,box-shadow .3s}
.nav.scrolled{background:rgba(40,10,32,.45);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(255,255,255,.16)}
.brand{display:flex;align-items:center;gap:.7rem;flex:none}
.nav-logo{width:34px;height:34px;filter:drop-shadow(0 0 10px rgba(255,63,164,.8))}
.menu{display:flex;gap:.35rem;overflow-x:auto;min-width:0}
.menu a,.menu button{font:700 12.5px var(--oswald);letter-spacing:.06em;text-transform:uppercase;color:var(--text);cursor:pointer;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.26);padding:.6rem 1rem;border-radius:7px;white-space:nowrap;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-shadow:0 1px 2px rgba(0,0,0,.35);
  transition:background .12s,border-color .12s}
.menu a:hover,.menu button:hover{background:rgba(255,255,255,.26);border-color:rgba(255,255,255,.55)}
.menu [aria-current="page"]{background:linear-gradient(135deg,rgba(255,63,164,.65),rgba(162,51,214,.55));border-color:rgba(255,255,255,.65)}

.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem) 3rem}
.panel{animation:rise .5s both}.panel[hidden]{display:none}

/* ---- Boutons ---- */
.btn{display:inline-block;padding:.85rem 1.6rem;border-radius:7px;border:1px solid var(--line2);color:#fff;font:700 13px var(--oswald);
  letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.3);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .15s,background .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--pink),#c93bd9);border-color:rgba(255,255,255,.45);box-shadow:0 6px 22px rgba(255,63,164,.4)}
.btn-primary:hover{box-shadow:0 8px 30px rgba(255,63,164,.65)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%);transform:translateX(-120%);transition:transform .6s}
.btn-primary:hover::after{transform:translateX(120%)}
.btn-ghost{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.34)}
.btn-ghost:hover{background:rgba(255,255,255,.26);border-color:rgba(255,255,255,.7)}
.btn-sm{padding:.6rem 1.1rem;flex:none}
.hero-btns{display:flex;flex-wrap:wrap;gap:.7rem}

/* ---- Accueil ---- */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(88vh,780px);display:flex;align-items:flex-end}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to top,rgba(20,5,15,.7) 0,rgba(20,5,15,.25) 30%,transparent 62%),var(--banner) center 15%/cover no-repeat}
.enter .hero::before{animation:zoom 2.8s cubic-bezier(.2,.8,.2,1) both}
.hero-in{width:100%;max-width:1280px;margin:0 auto;padding:6rem clamp(1rem,4vw,2rem) 2.5rem;display:grid;grid-template-columns:1.15fr 1fr;gap:1.5rem;align-items:end}
.tagline{font-size:1.1rem;font-weight:500;max-width:34ch;margin-bottom:1.3rem;text-shadow:0 2px 12px rgba(0,0,0,.5)}

/* Panneaux en verre teinté rose */
.td-panel,.om-panel,.band{background:linear-gradient(rgba(40,10,32,.28),rgba(40,10,32,.28)),rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3);border-radius:10px;box-shadow:0 10px 40px rgba(20,0,16,.4),inset 0 0 0 1px rgba(255,255,255,.04);
  overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.td-head,.om-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:14px 16px;background:var(--head);border-bottom:1px solid var(--line)}
.td-head{font:700 14px var(--oswald);letter-spacing:.05em;text-transform:uppercase}.td-head .accent{color:var(--pink-2)}
.dot{display:inline-flex;align-items:center;gap:.45rem;font:600 10px 'Inter',sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.dot::before{content:"";width:8px;height:8px;border-radius:50%;background:#8d7283}
.dot.on::before{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s ease-in-out infinite}
.td-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:12px 16px;border-bottom:1px solid var(--line)}.td-row:last-child{border:0}
.td-label{font:600 10px 'Inter',sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.td-row b{font:700 16px var(--oswald)}
.td-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 12.5px ui-monospace,Menlo,monospace;color:var(--muted)}
.key{font:700 10px 'Inter',sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);border-radius:5px;padding:4px 9px;cursor:pointer}
.key:hover{background:rgba(255,63,164,.5)}

.ticker{overflow:hidden;white-space:nowrap;padding:.7rem 0;background:rgba(255,63,164,.16);border-block:1px solid rgba(255,255,255,.24);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.ticker .track{display:flex;width:max-content;animation:marquee 34s linear infinite;will-change:transform;backface-visibility:hidden;
  font:700 13px var(--oswald);font-style:italic;letter-spacing:.2em;color:rgba(255,244,250,.92);text-shadow:0 1px 2px rgba(0,0,0,.3)}
.ticker .grp{display:flex;flex:none}
.ticker span{padding-right:2rem}

.band{margin:3.5rem 0 0;padding:2.5rem clamp(1.2rem,4vw,3rem);text-align:center}
.band h2{font:italic 700 clamp(1.7rem,5vw,2.4rem)/1.1 var(--oswald);text-transform:uppercase;margin-bottom:.4rem}
.band p{color:var(--muted);margin-bottom:1.5rem}
.band .hero-btns{justify-content:center}

/* ---- Règlement ---- */
.rules{padding-top:6.5rem}
.rl{display:grid;grid-template-columns:300px 1fr;gap:1rem;align-items:start}
.rside{position:sticky;top:5rem;max-height:calc(100vh - 6.5rem);display:flex;flex-direction:column}
.om-title-block{display:flex;flex-direction:column;gap:4px}
.om-subtitle{font:600 10.5px 'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.om-section-bar{display:flex;justify-content:space-between;padding:8px 16px;font:700 9px var(--oswald);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.rsearch{padding:10px 16px 0}
.rsearch input{width:100%;font:500 13px 'Inter',sans-serif;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26);border-radius:7px;padding:.65rem .8rem}
.rsearch input::placeholder{color:rgba(255,232,245,.65)}
.rsearch input:focus{outline:none;border-color:var(--pink-2);background:rgba(255,255,255,.18)}
.om-list{padding:6px 16px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
.om-item{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 8px;padding:12px 14px 11px;text-align:left;font:inherit;color:inherit;cursor:pointer;
  border-radius:7px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);transition:background .12s,border-color .12s}
.om-item:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.5)}
.om-item[aria-selected="true"]{background:linear-gradient(135deg,rgba(255,63,164,.55),rgba(162,51,214,.45));border-color:rgba(255,255,255,.65)}
.om-item[hidden]{display:none}
.om-item-text{flex:1;min-width:0;display:block}
.om-item-title{display:flex;align-items:center;font:700 12.5px var(--oswald);letter-spacing:.04em;text-transform:uppercase}
.om-item-desc{display:block;margin-top:3px;font:600 10.5px 'Inter',sans-serif;color:var(--muted)}
.om-item-arrow{font:700 12px var(--oswald);color:var(--muted)}
.om-item[aria-selected="true"] .om-item-desc,.om-item[aria-selected="true"] .om-item-arrow{color:#fff}
.rnav [data-rule$="-zone"] .om-item-title::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}
.rnav [data-rule="red-zone"] .om-item-title::before{background:var(--red)}
.rnav [data-rule="blue-zone"] .om-item-title::before{background:var(--blue)}
.rnav [data-rule="white-zone"] .om-item-title::before{background:var(--white)}
.r-empty{padding:4px 16px 14px;color:var(--muted);font-size:.9rem}
.rbody{padding:14px 16px;min-height:520px}
.rbody article{animation:rise .3s both}.rbody article[hidden]{display:none}
.list{list-style:none;padding:0}
.list li{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .7rem;margin-bottom:8px;padding:11px 14px;border-radius:7px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.14);font-size:.95rem;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.3)}
.list li::before{content:"•";color:var(--pink-2);font-weight:700}
.list li.ok::before{content:"✓";color:var(--green)}
.list li.ko::before{content:"✕";color:#ff7b8f}
.list li.sub{display:block;margin:14px 0 8px;padding:0;border:0;background:none;font:700 10px var(--oswald);letter-spacing:.12em;text-transform:uppercase;color:var(--pink-2)}
.list li.sub::before{content:none}
.list li.dim{opacity:.3}
.tag{margin-left:auto;padding:3px 9px;border-radius:5px;border:1px solid rgba(255,120,140,.6);background:rgba(190,20,60,.38);color:#ffe3e8;
  font:700 10px 'Inter',sans-serif;letter-spacing:.04em;text-transform:uppercase;text-shadow:none}
.om-footer{padding:10px 16px 11px;border-top:1px solid var(--line);text-align:center;font:700 8.5px 'Inter',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.om-key{color:#fff}

.foot{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0 3rem;text-align:center;color:var(--muted);font:700 11px var(--oswald);letter-spacing:.15em}
.enter .nav{animation:appear .7s .3s both}.enter .hero-in{animation:rise .9s .35s both}

/* ---- Responsive ---- */
@media (max-width:820px){.hero-in{grid-template-columns:1fr;padding-top:9rem}.hero::before{background-position:0 0,center top}}
@media (max-width:760px){.rl{grid-template-columns:1fr}.rside{position:static;max-height:none}.rnav{display:flex;gap:8px;overflow-x:auto}.rnav .om-item{width:auto;flex:none;margin:0}}
@media (max-width:640px){.brand .om-title{display:none}.nav .btn-sm:not(.cart-btn){display:none}}

/* ---- Animations ---- */
@keyframes marquee{to{transform:translate3d(-50%,0,0)}}
@keyframes appear{from{opacity:0}}
@keyframes bolt{0%{opacity:0;transform:translateY(-16px) scale(.86) rotate(-2deg)}14%{opacity:1}22%{transform:scale(1.04)}100%{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes glow{50%{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 30px 110px -10px rgba(255,134,207,.8)}}
@keyframes up{0%{opacity:0;transform:translateY(10px) rotate(45deg)}50%{opacity:1}100%{opacity:0;transform:translateY(-10px) rotate(45deg)}}
@keyframes dive{0%{transform:scale(1)}22%{transform:scale(.92)}100%{transform:scale(22);opacity:.9}}
@keyframes shock{0%{opacity:.9;transform:scale(.8)}100%{opacity:0;transform:scale(5)}}
@keyframes flash{0%,55%{opacity:0}75%{opacity:1}100%{opacity:0}}
@keyframes gate-out{0%,78%{opacity:1}100%{opacity:0}}
@keyframes fade{to{opacity:0}}
@keyframes zoom{from{transform:scale(1.15)}}
@keyframes pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.chev{opacity:1}}
