
/* Layout : site en plusieurs pages (accueil, coins, VIP, boutique du jour, articles en coins, véhicules, panier). En-tête commun avec pastille du panier, barre fixe en bas quand le panier contient des articles.
   Détail propre au sujet : les prix en euros sont sur une plaque d'immatriculation, les prix en coins sur une pièce, chaque article porte une référence de type SKU. */
:root{
  --bg:#000; --surface:rgba(9,12,24,.84); --surface-solid:#090c18; --surface-2:rgba(22,28,52,.92); --line:#27304f;
  --fg:#e9eef8; --muted:#9aa6c4;
  --gold:#ffc54a; --gold-deep:#b97d12; --gold-ink:#241a04; --gold-text:#ffc54a;
  --cyan:#5b9bff; --cyan-ink:#04122e; --danger:#ff7b7b;
  --display:'Big Shoulders Display','Arial Narrow',Impact,sans-serif;
  --body:'Barlow','Segoe UI',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 var(--body)}
img{max-width:100%}
a{color:var(--gold-text)}
.wrap{position:relative;z-index:1;max-width:1120px;margin-inline:auto;padding-inline:16px;padding-bottom:110px}
:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}

/* Fond animé : scène noire, particules or et bleues en orbite, emblème V en filigrane */
.bgfx{position:fixed;inset:0;z-index:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;background:#000}
.bgfx canvas{position:absolute;inset:0;width:100%;height:100%}
.emblem{position:relative;width:min(70vmin,560px);aspect-ratio:1223/1286;max-width:100%;display:block;opacity:.2;mix-blend-mode:screen;
  -webkit-mask:radial-gradient(closest-side,#000 82%,transparent);mask:radial-gradient(closest-side,#000 82%,transparent);
  animation:emblemIn 1.8s cubic-bezier(.2,.9,.25,1.15) both,float 6s ease-in-out 1.8s infinite,glow 3s ease-in-out 1.8s infinite}
@keyframes emblemIn{0%{opacity:0;transform:scale(.3) rotate(-14deg);filter:blur(14px) brightness(3)}100%{opacity:.2;transform:none;filter:none}}
@keyframes float{50%{transform:translateY(-2.2%) rotate(1.2deg)}}
@keyframes glow{50%{filter:brightness(1.25) drop-shadow(0 0 24px rgba(47,123,255,.6))}}

/* En-tête */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:20px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:800;font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase}
.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--gold);color:var(--gold-ink);font-size:1.15rem;letter-spacing:0}
.top nav{display:flex;flex-wrap:wrap;gap:8px 20px;font-weight:500}
.top nav a{color:var(--muted);text-decoration:none}
.top nav a:hover{color:var(--fg)}

/* Hero */
.hero{display:grid;gap:24px;align-items:center;padding-block:24px 40px;border-bottom:1px solid var(--line)}
.eyebrow{margin:0 0 12px;font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
h1{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(2.7rem,8vw,4.8rem);line-height:.95;letter-spacing:.01em;text-transform:uppercase;text-wrap:balance}
.lead{max-width:46ch;margin:16px 0 0;color:var(--muted);font-size:1.08rem}
.hero-price{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:24px;color:var(--muted)}
.hero-art{width:100%;max-width:300px;justify-self:start}
.hero-art svg{display:block;width:100%;height:auto}
@media (min-width:760px){
  .hero{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}
  .hero-art{justify-self:end}
}

/* Plaque de prix (euros) */
.plate{display:inline-flex;align-items:stretch;overflow:hidden;border:2px solid #1b1b1b;border-radius:6px;background:#f6f5ef;color:#141414;font-family:var(--mono);font-weight:700;line-height:1}
.plate i{display:block;width:12px;background:#1d3f9e}
.plate b{padding:8px 12px;font-size:1.05rem;letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.plate b small{margin-left:4px;font-size:.72rem;font-weight:500;letter-spacing:.02em}
.plate.big b{padding:10px 16px;font-size:1.5rem}

/* Prix en coins */
.coinchip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.coinchip::before{content:"";width:22px;height:22px;border-radius:50%;background:var(--gold);box-shadow:inset 0 0 0 4px var(--gold-deep)}

/* Boutique */
.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin-bottom:16px}
h2{margin:0;font-family:var(--display);font-weight:700;font-size:1.9rem;letter-spacing:.04em;text-transform:uppercase}
.section-head p{margin:0;color:var(--muted);font-size:.92rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.card{position:relative;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.art{position:relative;aspect-ratio:8/5;max-width:100%;background:var(--surface-2);overflow:hidden}
.art::before{content:"";position:absolute;inset:0;opacity:.35;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:24px 24px}
.art svg{position:relative;display:block;width:100%;height:100%}
.card-body{display:flex;flex:1;flex-direction:column;gap:6px;padding:16px}
.tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.card h3{margin:0;font-family:var(--display);font-weight:700;font-size:1.55rem;letter-spacing:.03em;text-transform:uppercase}
.card p{margin:0;color:var(--muted);font-size:.95rem}
.card .sku{margin-top:auto;padding-top:8px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--muted)}
.buy{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}
.badge{position:absolute;top:12px;left:12px;z-index:1;padding:4px 10px;border-radius:4px;background:var(--cyan);color:var(--cyan-ink);font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ingame{display:flex;align-items:center;gap:8px;padding-top:12px;color:var(--muted);font-size:.88rem}

/* Bannière VIP */
.card.wide{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){
  .card.wide{grid-template-columns:minmax(0,230px) minmax(0,1fr)}
  .card.wide .art{aspect-ratio:auto;min-height:100%}
}
.perks-list{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none;font-size:.92rem;color:var(--muted)}
.perks-list li::before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;border-radius:50%;background:var(--cyan)}

/* Véhicules */
.veh{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;margin:0;padding:0;list-style:none;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--line)}
.veh li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;padding:12px 16px;background:var(--surface-solid)}
.veh b{font-family:var(--display);font-weight:700;font-size:1.2rem;letter-spacing:.04em;text-transform:uppercase}
.veh span{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--fg);font:500 .88rem var(--body);cursor:pointer}
.chip:hover{background:var(--surface-2)}
.chip[aria-pressed="true"]{border-color:var(--gold);background:var(--gold);color:var(--gold-ink)}
.countdown{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--fg)}
.countdown b{color:var(--gold-text)}
.veh-note{margin:12px 0 0;color:var(--muted);font-size:.88rem}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:0;border-radius:6px;background:var(--gold);color:var(--gold-ink);font:600 .98rem var(--body);text-decoration:none;cursor:pointer;transition:transform .12s ease,filter .12s ease}
.btn:hover{filter:brightness(1.07)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{cursor:not-allowed;filter:grayscale(.8) opacity(.5)}

/* Panier */
.panel{min-width:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.panel h2{font-size:1.6rem;display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:16px}
.panel h2 small{font-family:var(--mono);font-size:.78rem;font-weight:500;letter-spacing:.06em;text-transform:none;color:var(--muted)}
.empty{margin:0;padding:16px 0;color:var(--muted)}
.line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding-block:12px;border-top:1px solid var(--line)}
.line-name{font-weight:600}
.line-sku{display:block;font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.line-total{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.qty{display:flex;align-items:center;gap:6px}
.qty button{width:34px;height:34px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--fg);font-size:1.1rem;cursor:pointer}
.qty button:hover{background:var(--surface-2)}
.qty output{min-width:1.6em;text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums}
.rm{justify-self:end;border:0;background:none;color:var(--danger);font:500 .85rem var(--body);cursor:pointer;text-decoration:underline}
.sum{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-block:16px;border-top:2px solid var(--fg)}
.sum span{font-family:var(--display);font-weight:700;font-size:1.3rem;letter-spacing:.05em;text-transform:uppercase}
.sum strong{font-family:var(--mono);font-size:1.5rem;font-variant-numeric:tabular-nums}
.coins-total{margin:0 0 16px;font-size:.9rem;color:var(--muted)}
.coins-total b{color:var(--gold-text);font-family:var(--mono);font-variant-numeric:tabular-nums}
form{display:grid;gap:12px}
label{display:grid;gap:4px;font-size:.88rem;font-weight:500}
input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:400 1rem var(--body)}
input::placeholder{color:var(--muted)}
.hint{margin:0;font-size:.82rem;color:var(--muted)}
fieldset.pay-methods{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0}
.pay-methods legend{padding:0 0 8px;font-size:.88rem;font-weight:500}
.opt{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.opt:hover{background:var(--surface-2)}
.opt:has(input:checked){border-color:var(--gold);background:var(--surface-2)}
.opt input{width:auto;min-height:0;margin:0;accent-color:var(--gold)}
.opt span{display:grid;gap:2px;min-width:0}
.opt small{font-weight:400;font-size:.8rem;color:var(--muted)}
textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:400 .85rem/1.5 var(--mono);resize:vertical}
.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
#recap{display:grid;gap:12px;padding-top:4px}
.note{margin:0;font-size:.9rem;color:var(--muted)}
.perks{display:grid;gap:6px;margin:20px 0 0;padding:0;list-style:none;font-size:.88rem;color:var(--muted)}
.perks li::before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;border-radius:50%;background:var(--cyan)}

/* Barre panier mobile */
.bar{z-index:5;position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface)}
.bar div{display:grid;line-height:1.25}
.bar small{color:var(--muted)}
.bar strong{font-family:var(--mono);font-variant-numeric:tabular-nums}

footer{padding-block:24px 40px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}
footer p{max-width:70ch;margin:0 0 6px}

@media (prefers-reduced-motion:reduce){.btn{transition:none}.emblem{animation:none}}

/* Multi-pages */
a.brand{color:var(--fg);text-decoration:none}
.top nav{order:3;flex-basis:100%}
@media (min-width:1000px){.top nav{order:0;flex-basis:auto}}
.top nav a[aria-current="page"]{color:var(--fg);box-shadow:0 2px 0 var(--gold)}
.cartlink{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 6px 0 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--fg);font-weight:500;text-decoration:none}
.cartlink:hover{border-color:var(--gold)}
.cartlink b{min-width:28px;padding:3px 8px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font-family:var(--mono);font-size:.85rem;text-align:center;font-variant-numeric:tabular-nums}
.cartlink.bump b{animation:bump .35s ease}
@keyframes bump{50%{transform:scale(1.35)}}
.page-head{padding-block:12px 28px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(2.2rem,6vw,3.4rem)}
.page-head .lead{margin-top:12px}
.crumbs{margin:0 0 12px;font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crumbs a{color:var(--muted)}
.tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-top:32px}
@media (min-width:900px){
  .tiles{grid-template-columns:repeat(6,minmax(0,1fr))}
  .tile{grid-column:span 2}
  .tile.half{grid-column:span 3}
}
a.tile{color:inherit;text-decoration:none;transition:border-color .15s ease}
a.tile:hover{border-color:var(--gold)}
.tile-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px}
.go{font-family:var(--mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}
.steps{display:grid;gap:16px;margin:48px 0 0;padding:0;list-style:none;counter-reset:step}
@media (min-width:760px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.steps li{counter-increment:step;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:.95rem}
.steps li::before{content:counter(step);display:block;margin-bottom:6px;font-family:var(--display);font-weight:800;font-size:1.8rem;color:var(--gold-text)}
.steps b{display:block;margin-bottom:4px;color:var(--fg);font-size:1.02rem}
.more{margin:24px 0 0;color:var(--muted);font-size:.92rem}
.checkout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
@media (min-width:900px){.checkout{grid-template-columns:minmax(0,1fr) minmax(0,420px)}}
.empty a{margin-right:12px}
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:9;max-width:calc(100% - 32px);padding:10px 16px;border:1px solid var(--gold);border-radius:8px;background:var(--surface-solid);color:var(--fg);font-size:.92rem}
.btn.added{background:var(--cyan);color:var(--cyan-ink)}

/* Images */
.art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0}
.art img.ok{opacity:1}
.grid.three{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
