/* Style de boîte « PS1 » : boîtier CD en plastique transparent (format 142 × 125 mm, plus large que haut),
   jaquette avec bande noire verticale à gauche. S'ajoute à css/gamebox.css. Sans logos officiels. */
.card.gbox--ps1 { aspect-ratio: 142 / 125; }
.gbox--ps1 {
  --half-h: 44cqw;  /* 100cqw × 125/142 = 88cqw de haut */
  --depth: 8cqw;    /* 10 mm d'épaisseur */
  --clear: #E7E3EC; --clear-dark: #BDB6C8; --clear-line: rgba(58, 44, 64, .28);
  --sleeve: #0F0F14;
  --band-w: 14cqw;  /* largeur de la bande noire */
}
/* Les boîtes carrées ont besoin d'un peu plus de largeur dans les grilles. */
.card-grid:has(.gbox--ps1) { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* Plastique transparent : pâle, reflets marqués, arêtes plus sombres. */
.gbox--ps1 .gbox-front,
.gbox--ps1 .gbox-back,
.gbox--ps1 .gbox-right,
.gbox--ps1 .gbox-cap {
  background:
    linear-gradient(115deg, rgba(255, 255, 255, .7) 0 6%, transparent 18% 70%, rgba(255, 255, 255, .5) 78%, transparent 86%),
    linear-gradient(180deg, #F4F1F7, var(--clear) 40%, var(--clear-dark));
}
.gbox--ps1 .gbox-face { border-radius: 1.2cqw; }

/* Façade : la jaquette sous le couvercle transparent, bande noire à gauche. */
.gbox--ps1 .gbox-front { display: grid; grid-template-columns: var(--band-w) 1fr; padding: 1.8cqw 1.8cqw 1.8cqw 3cqw;
  box-shadow: inset 0 0 0 .4cqw var(--clear-line), inset 0 0 0 1.6cqw rgba(255, 255, 255, .35); }
.gbox--ps1 .gbox-front::before { /* charnière transparente striée */
  width: 3cqw; background: repeating-linear-gradient(180deg, rgba(58, 44, 64, .16) 0 .5cqw, transparent .5cqw 1.4cqw), linear-gradient(90deg, var(--clear-dark), #F7F5F9);
  box-shadow: inset -.3cqw 0 0 var(--clear-line); }

/* Bande noire verticale : plate-forme, rareté écrite à la verticale, points de rareté. */
.gbox--ps1 .gb-band { grid-column: 1; grid-row: 1; flex-direction: column; justify-content: flex-start; gap: 2.4cqw;
  padding: 2.6cqw 0 18cqw; border: 0; border-radius: .8cqw 0 0 .8cqw; background: var(--sleeve); color: #F4F4F8; }
.gbox--ps1 .gb-platform { background: none; color: #fff; padding: 0; font-size: 4.4cqw; font-style: italic; }
.gbox--ps1 .gb-rarity { margin: 0; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 3.2cqw; color: #CFCFE0; white-space: nowrap; }
.gbox--ps1 .gb-band .pips { flex-direction: column; gap: 1cqw; }
.gbox--ps1 .gb-band .pips i { width: 2.2cqw; height: 2.2cqw; box-shadow: inset 0 0 0 .45cqw #F4F4F8; }
.gbox--ps1 .gb-band .pips i.on { background: #F4F4F8; }
/* Raretés hautes : bande argentée, dorée ou holographique. */
.gbox--ps1[data-rarity="epique"] .gb-band { background: linear-gradient(180deg, #C9CBD6, #F2F3F8 45%, #A9ADBD); }
.gbox--ps1[data-rarity="legendaire"] .gb-band { background: linear-gradient(180deg, #C9A640, #F7E7A6 45%, #B58C22); }
.gbox--ps1[data-rarity="mythique"] .gb-band { background: linear-gradient(180deg, #F5B8D2, #FFF0A8 25%, #B8F0D6 50%, #B8D6FF 75%, #DCC2FF); }
.gbox--ps1:is([data-rarity="epique"], [data-rarity="legendaire"], [data-rarity="mythique"]) :is(.gb-platform, .gb-rarity) { color: var(--ink); }
.gbox--ps1:is([data-rarity="epique"], [data-rarity="legendaire"], [data-rarity="mythique"]) .gb-band .pips i { box-shadow: inset 0 0 0 .45cqw var(--ink); }
.gbox--ps1:is([data-rarity="epique"], [data-rarity="legendaire"], [data-rarity="mythique"]) .gb-band .pips i.on { background: var(--ink); }
.gbox--ps1[data-rarity="mythique"] .gbox-front { background:
    linear-gradient(115deg, rgba(255, 255, 255, .7) 0 6%, transparent 18% 70%, rgba(255, 255, 255, .5) 78%, transparent 86%),
    linear-gradient(180deg, #F4F1F7, var(--clear) 40%, var(--clear-dark)); }

/* Illustration à droite de la bande. */
.gbox--ps1 .gb-art { grid-column: 2; grid-row: 1; border-radius: 0 .8cqw .8cqw 0; overflow: hidden; }
.gbox--ps1 .gb-art img { filter: saturate(.9) contrast(1.02); object-position: center 25%; }
.gbox--ps1 .gb-sticker { display: none; }

/* Plaque du bas : encart de note dans la bande noire, titre sur l'illustration. */
.gbox--ps1 .gb-plate { position: absolute; left: 3cqw; right: 1.8cqw; bottom: 1.8cqw; border: 0; background: none; padding: 0;
  display: grid; grid-template-columns: var(--band-w) 1fr; align-items: end; }
.gbox--ps1 .gb-plate::before { content: ''; position: absolute; left: var(--band-w); right: 0; top: -6cqw; bottom: 0; border-radius: 0 0 .8cqw 0;
  background: linear-gradient(180deg, transparent, rgba(8, 8, 16, .85) 55%); }
.gbox--ps1 .gb-plate > * { position: relative; }
.gbox--ps1 .gb-rating { display: flex; flex-direction: column; align-items: center; justify-content: center; grid-column: 1; grid-row: 1 / span 3;
  justify-self: center; margin-bottom: 1.6cqw; width: 10cqw; height: 12cqw; background: #fff; color: #111; border-radius: .8cqw;
  box-shadow: inset 0 0 0 .45cqw #111; line-height: 1; }
.gbox--ps1 .gb-rating strong { font-family: var(--font-display); font-weight: 400; font-size: 4.6cqw; }
.gbox--ps1 .gb-rating span { font-size: 1.8cqw; font-weight: 800; margin-top: .5cqw; }
.gbox--ps1 .gb-title { grid-column: 2; padding: 0 2.6cqw; color: #fff; font-size: 5.6cqw; text-shadow: 0 .4cqw 1cqw rgba(0, 0, 0, .6); -webkit-line-clamp: 1; }
.gbox--ps1 .gb-meta { grid-column: 2; padding: 0 2.6cqw; color: #D8D8E6; font-size: 3cqw; }
.gbox--ps1 .gb-num { position: static; grid-column: 2; padding: .2cqw 2.6cqw 2cqw; color: #A9A9C0; font-size: 2.6cqw; }

/* Reflet du couvercle transparent, plus franc que sur un boîtier DVD. */
.gbox--ps1 .gb-gloss { mix-blend-mode: screen; opacity: .6;
  background:
    radial-gradient(circle at var(--mx, 25%) var(--my, 15%), rgba(255, 255, 255, .55), transparent 35%),
    linear-gradient(120deg, rgba(255, 255, 255, .35) 0 10%, transparent 24% 60%, rgba(255, 255, 255, .2) 68%, transparent 76%); }
.gbox--ps1[data-rarity="mythique"] .gb-gloss { mix-blend-mode: overlay; opacity: .9; }

/* Dos : jaquette arrière sombre, avec les deux languettes latérales repliées (les petites tranches). */
.gbox--ps1 .gbox-back { padding: 1.8cqw 3cqw 1.8cqw 1.8cqw; justify-content: center; gap: 3cqw; box-shadow: inset 0 0 0 .4cqw var(--clear-line); }
.gbox--ps1 .gbox-back::before { content: ''; position: absolute; inset: 1.8cqw 3cqw 1.8cqw 1.8cqw; border-radius: .8cqw;
  background: linear-gradient(90deg, var(--sleeve) 0 5cqw, #24222C 5cqw calc(100% - 5cqw), var(--sleeve) 0); }
.gbox--ps1 .gbox-back > * { position: relative; }
.gbox--ps1 .gb-back-lines { width: 70%; gap: 1.8cqw; }
.gbox--ps1 .gb-back-lines i { height: 1.8cqw; background: rgba(255, 255, 255, .22); }
.gbox--ps1 .gb-barcode { position: absolute; right: 8cqw; bottom: 5cqw; width: 20cqw; height: 8cqw; }

/* Tranche (côté charnière) : la languette noire de la jaquette vue à travers le plastique strié. */
.gbox--ps1 .gbox-spine { background: var(--sleeve);
  box-shadow: inset 0 0 0 .7cqw rgba(231, 227, 236, .85), inset 0 9cqw 0 #2A2833, inset 0 -9cqw 0 #2A2833; }
.gbox--ps1 .gbox-spine span { color: #fff; font-size: 4.2cqw; max-height: 64cqw; padding: 2cqw 0; margin: auto 0; }
.gbox--ps1:is([data-rarity="legendaire"], [data-rarity="mythique"]) .gbox-spine { background: linear-gradient(180deg, #C9A640, #F7E7A6 50%, #B58C22); }
.gbox--ps1:is([data-rarity="legendaire"], [data-rarity="mythique"]) .gbox-spine span { color: var(--ink); }

/* Côté ouvrant : couvercle fin devant, plateau plus épais derrière, séparés par la jointure. */
.gbox--ps1 .gbox-right { box-shadow: inset 0 0 0 .35cqw var(--clear-line); }
.gbox--ps1 .gb-seam { left: 32%; width: .45cqw; background: rgba(58, 44, 64, .45); }
.gbox--ps1 .gb-notch { display: none; }
.gbox--ps1 .gbox-right::after { content: ''; position: absolute; top: 1.2cqw; bottom: 1.2cqw; left: 12%; width: .4cqw; background: rgba(15, 15, 20, .75); } /* bord de la jaquette */
.gbox--ps1 .gbox-cap { box-shadow: inset 0 0 0 .35cqw var(--clear-line); }

/* Révélation : format plus large que haut, on peut donc agrandir la boîte. */
.reveal-slot .card.gbox--ps1 { --w: min(400px, 84vw, calc((100dvh - 360px) * 142 / 125)); }
