/* SLOPSOFT - after the 2002 Flash-era "fantasy interface" look (Conspiracy Games / FI): a console of light-grey
   rounded, bevelled panels on black, tiny pixel type in bold+light pairs, a chrome-blue art window and a capsule
   bar - rebuilt as a modern responsive page. Pixel font: Silkscreen (Google Fonts, OFL). */
:root {
  --black: #000;
  --panel-hi: #d9d9d9;
  --panel: #c4c4c4;
  --panel-lo: #a9a9a9;
  --ink: #1d1d1d;
  --ink-2: #4a4a4a;
  --pix-shadow: #5c5c5c;
  --capsule: #3b3b3b;
  --capsule-lit: #f4f4f4;
  --blue: #2f7de1;
  --blue-hi: #8cc4ff;
  --live: #59f07a;
  --pixel: "Silkscreen", "Courier New", monospace;
  --body: Verdana, Geneva, Tahoma, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--black); color: var(--ink); font: 13px/1.6 var(--body); }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

/* ---- the console frame ---- */
.console { max-width: 1200px; margin: 0 auto; padding: 24px 16px 32px; display: grid; gap: 6px;
  grid-template-columns: 150px minmax(0, 1fr) 300px;
  grid-template-areas: "tl head tr" "left main right" "bl foot br"; }
.panel { background: linear-gradient(var(--panel-hi), var(--panel) 40%, var(--panel-lo)); border-radius: 10px;
  box-shadow: inset 0 1px 0 #f2f2f2, inset 0 -2px 0 #8f8f8f, inset 1px 0 0 #e3e3e3, inset -1px 0 0 #9a9a9a; }
.corner { min-height: 72px; }
.c-tl { grid-area: tl; } .c-tr { grid-area: tr; } .c-bl { grid-area: bl; } .c-br { grid-area: br; }
.head { grid-area: head; display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 14px 22px; row-gap: 2px; }
.main { grid-area: main; padding: 22px; }
.left { grid-area: left; padding: 18px 12px; display: flex; flex-direction: column; gap: 8px; }
.right-rail { grid-area: right; padding: 18px 14px; }
.foot { grid-area: foot; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 14px; text-align: center; }

/* ---- pixel type: bold + light pairs, tiny spec lines ---- */
.pair { font: 400 13px/1.15 var(--pixel); color: #fff; letter-spacing: .02em; text-decoration: none;
  text-shadow: 1px 1px 0 var(--pix-shadow), -1px 0 0 rgba(0, 0, 0, .15); text-transform: uppercase; }
.pair b { font-weight: 700; }
.pair i { font-style: normal; color: var(--ink); text-shadow: none; margin-left: 6px; }
.pair.big { font-size: clamp(20px, 3.4vw, 30px); }
.pair.small { font-size: 12px; display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.spec { font: 400 9px/1.2 var(--pixel); color: #fff; letter-spacing: .06em; text-shadow: 1px 1px 0 var(--pix-shadow); }
.right { text-align: right; }
.head .pair.big { grid-column: 1; } .head .spec { grid-column: 1; }
.head .pair.right { grid-column: 2; grid-row: 1; align-self: end; } .head .spec.right { grid-column: 2; grid-row: 2; }
.note { font: 400 10px/1.4 var(--pixel); color: var(--ink-2); margin: 6px 0; }

/* ---- pill buttons (dark capsules, like the progress bar) ---- */
.pill { display: block; font: 700 11px/1 var(--pixel); color: #fff; text-decoration: none; letter-spacing: .04em;
  background: linear-gradient(#5a5a5a, var(--capsule)); border-radius: 999px; padding: 9px 12px; text-align: center;
  box-shadow: inset 0 1px 0 #7a7a7a, 0 1px 0 #e8e8e8; }
.pill:hover { background: linear-gradient(var(--blue-hi), var(--blue)); }
.pill.go { display: inline-block; padding: 11px 22px; font-size: 13px; background: linear-gradient(var(--blue-hi), var(--blue));
  box-shadow: inset 0 1px 0 #cfe6ff, 0 2px 0 #1a3f73, 0 3px 6px rgba(0, 0, 0, .35); }
.pill.go:hover { background: linear-gradient(#b5dcff, #3f8ff0); }
.left .pill.game { background: linear-gradient(#6c6c6c, #474747); }

/* ---- the art window (chrome-blue tint over the game art) ---- */
.window { position: relative; display: block; aspect-ratio: 16 / 7.4; border-radius: 12px; overflow: hidden; background: #0b1f3f center / cover no-repeat;
  box-shadow: 0 0 0 3px #6d6d6d, 0 0 0 4px #e9e9e9, inset 0 0 0 1px rgba(255, 255, 255, .35), inset 0 0 40px rgba(0, 20, 60, .55); }
.window::before { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(120, 180, 255, .28), rgba(10, 40, 110, .45)); mix-blend-mode: multiply; }
.window::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(255, 255, 255, .22), transparent 38%); }
.window .logo { position: absolute; z-index: 1; left: 50%; top: 50%; width: min(64%, 520px); transform: translate(-50%, -50%); filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .7)); }
.window .tag { position: absolute; z-index: 1; top: 10px; left: 10px; font: 700 10px var(--pixel); color: #fff; background: rgba(0, 0, 0, .55); border-radius: 999px; padding: 4px 10px; }
.feature-text { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 18px; align-items: center; margin: 14px 2px 4px; }
.feature-text p { margin: 0; color: var(--ink); }
.feature-text .pair.big { font-size: clamp(16px, 2.4vw, 22px); grid-column: 1 / -1; }
.feature-text .pill.go { grid-row: 2; grid-column: 2; }

/* ---- capsule bar: lights left to right on load, then shows live players (1 capsule each, of 16) ---- */
.capsules { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 5px; margin: 18px 0 8px; }
.capsules i { display: block; height: 30px; border-radius: 999px; background: linear-gradient(#4d4d4d, var(--capsule) 60%, #2a2a2a);
  box-shadow: inset 0 1px 0 #6e6e6e, 0 1px 0 #e6e6e6; transition: background .25s; }
.capsules i.lit { background: linear-gradient(#fff, var(--capsule-lit) 55%, #cfcfcf); box-shadow: inset 0 -2px 0 #b5b5b5, 0 0 8px rgba(255, 255, 255, .6); }
.under { display: grid; grid-template-columns: 1fr 1fr; row-gap: 2px; }
.under .spec.right, .under .pair.right { text-align: right; }

/* ---- game list ---- */
.section { margin: 26px 0 10px; font-size: 15px; }
.games { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.game { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; gap: 14px; align-items: center;
  background: rgba(255, 255, 255, .22); border-radius: 10px; padding: 10px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), inset 0 -1px 0 rgba(0, 0, 0, .15); }
.game .thumb { width: 140px; aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; display: block; box-shadow: 0 0 0 2px #6d6d6d, 0 0 0 3px #eee; }
.game .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.9) hue-rotate(-6deg); }
.game h3 { margin: 0 0 3px; font: 700 13px var(--pixel); }
.game h3 a { text-decoration: none; }
.game p { margin: 0; font-size: 12px; color: var(--ink); }
.game .when { font: 400 9px var(--pixel); color: var(--ink-2); }

/* ---- who's playing ---- */
.dot { width: 8px; height: 8px; border-radius: 50%; background: #7d7d7d; box-shadow: inset 0 1px 0 rgba(0, 0, 0, .3); }
.dot.on { background: var(--live); box-shadow: 0 0 6px var(--live); }
.sum { font: 400 11px/1.4 var(--pixel); color: var(--ink); margin: 4px 0 10px; }
.sum b { font-weight: 700; }
.matches { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; }
.match { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; align-items: center; color: #fff;
  background: linear-gradient(#525252, var(--capsule)); border-radius: 12px; padding: 8px 10px; box-shadow: inset 0 1px 0 #737373, 0 1px 0 #e6e6e6; }
.match .name { font: 700 11px var(--pixel); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.match .meta { grid-column: 1; font-size: 10px; color: #cfcfcf; }
.match .pill { grid-row: 1 / span 2; grid-column: 2; padding: 7px 12px; font-size: 10px; background: linear-gradient(var(--blue-hi), var(--blue)); }
.match.full .pill { background: #6a6a6a; pointer-events: none; }

/* ---- responsive: the frame folds into stacked panels ---- */
@media (max-width: 980px) {
  .console { grid-template-columns: minmax(0, 1fr) 280px; grid-template-areas: "head head" "left left" "main right" "foot foot"; }
  .corner { display: none; }
  .left { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .left .pair.small { margin: 0 6px 0 0; }
  .left .pill { display: inline-block; }
}
@media (max-width: 700px) {
  .console { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "right" "main" "left" "foot"; padding: 10px 10px 20px; }
  .head { grid-template-columns: 1fr; }
  .head .pair.right, .head .spec.right { display: none; }
  .main { padding: 14px; }
  .capsules { gap: 3px; } .capsules i { height: 22px; }
  .feature-text { grid-template-columns: 1fr; } .feature-text .pill.go { grid-column: 1; grid-row: auto; justify-self: start; }
  .game { grid-template-columns: 96px minmax(0, 1fr); } .game .thumb { width: 96px; } .game .pill { grid-column: 2; justify-self: start; }
}
@media (prefers-reduced-motion: reduce) { .capsules i { transition: none; } }
/* left menu: long game names wrap inside their pill */
.left .pill { font-size: 10px; line-height: 1.3; padding: 8px 10px; overflow-wrap: anywhere; }
