/* ============================================
   NEXTPLAY — design system
   Light / electric-blue console theme
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@500&display=swap');

:root{
  /* color */
  --bg:        #F5F8FC;
  --surface:   #FFFFFF;
  --surface-2: #EAF1FC;
  --ink:       #0B1B33;
  --ink-soft:  #5B6B85;
  --ink-faint: #92A0B8;
  --brand:     #0055FF;
  --brand-deep:#0033A0;
  --accent:    #00C2FF;
  --line:      #DDE6F5;
  --success:   #12B76A;
  --success-bg:#E7F8EF;
  --warn:      #F79009;
  --warn-bg:   #FEF1DF;

  /* type */
  --f-display: 'Space Grotesk', sans-serif;
  --f-body:    'Inter', sans-serif;
  --f-mono:    'JetBrains Mono', monospace;

  /* layout */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --shadow-card: 0 1px 2px rgba(11,27,51,.04), 0 8px 24px rgba(11,27,51,.06);
  --shadow-lift: 0 20px 40px rgba(0,85,255,.16);
  --max: 1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:var(--f-display);
  color:var(--ink);
  margin:0 0 .5em;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-.01em;
}
p{ margin:0 0 1em; color:var(--ink-soft); }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
img{ max-width:100%; display:block; }
button{ font-family:var(--f-body); cursor:pointer; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
@media (max-width:720px){ .wrap{ padding:0 20px; } }

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(245,248,252,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:76px; }
.logo{ font-family:var(--f-display); font-weight:700; font-size:20px; display:flex; align-items:center; gap:8px; }
.logo .dot{ width:9px; height:9px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(0,194,255,.2); }
.nav-links{ display:flex; gap:36px; }
.nav-links a{ font-size:14.5px; font-weight:500; color:var(--ink-soft); transition:color .15s; }
.nav-links a:hover, .nav-links a.active{ color:var(--brand); }
.nav-cta{ display:flex; align-items:center; gap:18px; }
@media (max-width:800px){ .nav-links{ display:none; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 24px; border-radius:999px; border:1px solid transparent;
  font-weight:600; font-size:14.5px; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, opacity .15s;
}
.btn:active{ transform:scale(.97); }
.btn-primary{ background:var(--brand); color:#fff; box-shadow:0 8px 20px rgba(0,85,255,.25); }
.btn-primary:hover{ background:var(--brand-deep); }
.btn-ghost{ background:transparent; border-color:var(--line); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--brand); color:var(--brand); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.4; cursor:not-allowed; box-shadow:none; }

/* ---------- hero ---------- */
.hero{ position:relative; overflow:hidden; padding:64px 0 40px; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; color:var(--brand);
  background:var(--surface-2); padding:6px 14px; border-radius:999px; margin-bottom:18px;
}
.hero h1{ font-size:clamp(34px,5vw,54px); max-width:600px; }
.hero h1 span{ color:var(--brand); }
.hero p.lead{ font-size:17.5px; max-width:460px; margin-bottom:28px; }
.hero-actions{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.hero-note{ font-size:13.5px; color:var(--ink-faint); }

.hero-visual{
  position:relative; height:420px;
  background:linear-gradient(155deg, var(--brand) 0%, var(--brand-deep) 65%, #001B66 100%);
  border-radius:32px;
  clip-path:polygon(14% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow:var(--shadow-lift);
}
.hero-visual::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 75% 20%, rgba(0,194,255,.5), transparent 55%);
}
.hero-cards{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:16px; }
.hero-tile{
  width:88px; height:120px; border-radius:16px; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-display); font-weight:700; font-size:24px; color:#fff;
  transform:translateY(0); transition:transform .3s ease;
}
.hero-tile:nth-child(2){ transform:translateY(-24px) scale(1.08); box-shadow:0 20px 40px rgba(0,0,0,.25); }
.hero-tile:nth-child(1){ transform:translateY(14px) rotate(-6deg); }
.hero-tile:nth-child(3){ transform:translateY(14px) rotate(6deg); }

/* ---------- section shell ---------- */
.section{ padding:88px 0; }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:40px; flex-wrap:wrap; }
.section-head h2{ font-size:clamp(26px,3vw,34px); max-width:520px; }
.section-head p{ max-width:420px; margin:0; }
.tag{ font-size:12.5px; font-weight:600; color:var(--brand); text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; display:block; }

/* ---------- steps (numbered — real sequence) ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
.step{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-md); padding:26px 22px; position:relative; }
.step .num{ font-family:var(--f-mono); font-size:13px; color:var(--brand); font-weight:500; }
.step h4{ font-size:17px; margin:14px 0 6px; }
.step p{ font-size:14px; margin:0; }
.step-arrow{ position:absolute; top:26px; left:-14px; color:var(--ink-faint); font-size:18px; }
@media (max-width:900px){ .step-arrow{ display:none; } }

/* ---------- plan cards ---------- */
.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .plans-grid{ grid-template-columns:1fr; } }
.plan-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:32px 28px; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;
}
.plan-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-card); }
.plan-card.featured{ border:2px solid var(--brand); position:relative; }
.plan-badge{
  position:absolute; top:-13px; right:28px; background:var(--brand); color:#fff;
  font-size:12px; font-weight:600; padding:5px 14px; border-radius:999px;
}
.plan-name{ font-size:14px; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.plan-price{ font-family:var(--f-display); font-size:40px; font-weight:700; margin:10px 0 4px; }
.plan-price span{ font-family:var(--f-body); font-size:14px; font-weight:500; color:var(--ink-faint); }
.plan-range{ font-size:14px; color:var(--brand); font-weight:600; margin-bottom:20px; }
.plan-feats{ margin-bottom:28px; flex:1; }
.plan-feats li{ display:flex; gap:10px; font-size:14.5px; color:var(--ink-soft); padding:7px 0; border-top:1px solid var(--line); }
.plan-feats li:first-child{ border-top:none; }
.plan-feats li .ok{ color:var(--success); }

/* ---------- game shelf (signature element) ---------- */
.shelf{ display:flex; gap:18px; overflow-x:auto; padding:10px 4px 24px; scrollbar-width:thin; }
.shelf::-webkit-scrollbar{ height:6px; }
.shelf::-webkit-scrollbar-thumb{ background:var(--line); border-radius:99px; }
.game-tile{
  flex:0 0 168px; cursor:pointer; user-select:none;
  transition:transform .25s ease, box-shadow .25s ease;
}
.game-tile:hover{ transform:translateY(-8px) rotate(-1deg); }
.game-cover{
  height:200px; border-radius:18px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:14px;
  box-shadow:0 6px 16px rgba(11,27,51,.10);
  background-size:cover; background-position:center;
}
.game-tile:hover .game-cover{ box-shadow:0 16px 30px rgba(0,85,255,.28); }
.game-cover::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.55) 100%);
}
.game-init{
  font-family:var(--f-display); font-weight:700; color:rgba(255,255,255,.35); font-size:44px;
  position:absolute; top:14px; left:14px;
}
.game-cover .g-name{ position:relative; z-index:1; color:#fff; font-weight:600; font-size:14.5px; line-height:1.25; }
.game-meta{ display:flex; justify-content:space-between; margin-top:10px; font-size:12.5px; color:var(--ink-faint); }

/* ---------- platform badges (PS4 / PS5 / both) ---------- */
.plat-badge{
  display:inline-flex; align-items:center; gap:4px;
  font-family:var(--f-mono); font-size:10.5px; font-weight:500; letter-spacing:.02em;
  padding:3px 8px; border-radius:6px; color:#fff; background:rgba(255,255,255,.22);
  backdrop-filter:blur(4px); position:absolute; top:10px; left:10px; z-index:1;
}
/* ---------- search field (game selection / catalog) ---------- */
.search-box{
  position:relative; display:flex; align-items:center;
  margin-bottom:22px; max-width:420px;
}
.search-box .search-icon{
  position:absolute; left:18px; width:18px; height:18px; color:var(--ink-faint);
  pointer-events:none; transition:color .15s;
}
.search-box input{
  width:100%; padding:14px 44px 14px 46px; border:1.5px solid var(--line); border-radius:999px;
  background:var(--surface); font-family:var(--f-body); font-size:14.5px; color:var(--ink);
  outline:none; box-shadow:var(--shadow-card); transition:border-color .15s, box-shadow .15s;
}
.search-box input::placeholder{ color:var(--ink-faint); }
.search-box input:focus{ border-color:var(--brand); box-shadow:0 0 0 4px rgba(0,85,255,.12), var(--shadow-card); }
.search-box input:focus + .search-icon,
.search-box.has-value .search-icon{ color:var(--brand); }
.search-box .search-clear{
  position:absolute; right:12px; width:22px; height:22px; border-radius:50%; border:none;
  background:var(--surface-2); color:var(--ink-soft); font-size:12px; line-height:1; cursor:pointer;
  display:none; align-items:center; justify-content:center; transition:background .15s, color .15s, transform .1s;
}
.search-box .search-clear:hover{ background:var(--line); color:var(--ink); }
.search-box .search-clear:active{ transform:scale(.9); }
.search-box.has-value .search-clear{ display:flex; }
.search-empty{ grid-column:1/-1; text-align:center; padding:48px 16px; color:var(--ink-faint); }
.search-empty strong{ color:var(--ink-soft); }

.filter-tabs{ display:flex; gap:8px; margin-bottom:24px; flex-wrap:wrap; }
.filter-tab{
  padding:9px 18px; border:1px solid var(--line); border-radius:999px;
  font-size:13.5px; font-weight:600; color:var(--ink-soft); cursor:pointer; transition:all .15s;
}
.filter-tab.active{ border-color:var(--brand); background:var(--surface-2); color:var(--brand); }

/* palette rotation for game covers (no external images needed) */
.c1{ background:linear-gradient(155deg,#0055FF,#00C2FF); }
.c2{ background:linear-gradient(155deg,#7A3CFF,#C24CFF); }
.c3{ background:linear-gradient(155deg,#FF5C4D,#FF9A3C); }
.c4{ background:linear-gradient(155deg,#0BB07B,#00D6A3); }
.c5{ background:linear-gradient(155deg,#0B1B33,#334869); }
.c6{ background:linear-gradient(155deg,#FF3D81,#FF7AB0); }

/* ---------- selectable game grid (purchase flow) ---------- */
.select-toolbar{
  position:sticky; top:76px; z-index:40; background:var(--surface);
  border:1px solid var(--line); border-radius:var(--radius-md);
  padding:18px 24px; display:flex; align-items:center; justify-content:space-between;
  box-shadow:var(--shadow-card); margin-bottom:28px; flex-wrap:wrap; gap:14px;
}
.select-info h3{ font-size:16px; margin:0 0 2px; }
.select-info p{ margin:0; font-size:13.5px; }
.select-counter{ display:flex; align-items:center; gap:14px; }
.counter-num{ font-family:var(--f-mono); font-size:22px; font-weight:500; }
.counter-num .lim{ color:var(--ink-faint); font-size:15px; }
.progress-track{ width:120px; height:6px; background:var(--line); border-radius:99px; overflow:hidden; }
.progress-fill{ height:100%; background:var(--brand); border-radius:99px; transition:width .25s ease; width:0%; }

.pick-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:18px; }
.pick-card{
  background:var(--surface); border:2px solid var(--line); border-radius:var(--radius-md);
  overflow:hidden; cursor:pointer; transition:border-color .15s, transform .15s, opacity .15s;
}
.pick-card:hover{ transform:translateY(-4px); }
.pick-card.selected{ border-color:var(--brand); box-shadow:0 10px 24px rgba(0,85,255,.18); }
.pick-card.locked{ opacity:.4; cursor:not-allowed; transform:none; }
.pick-cover{ height:130px; position:relative; display:flex; align-items:flex-end; padding:12px; background-size:cover; background-position:center; }
.pick-cover .g-name{ color:#fff; font-weight:600; font-size:13.5px; position:relative; z-index:1; }
.pick-cover::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.55)); }
.pick-check{
  position:absolute; top:10px; right:10px; width:24px; height:24px; border-radius:50%;
  background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center;
  font-size:13px; color:var(--brand); opacity:0; transform:scale(.6); transition:all .15s; z-index:2;
}
.pick-card.selected .pick-check{ opacity:1; transform:scale(1); }
.pick-body{ padding:12px 14px; }
.pick-body .status{ font-size:12px; color:var(--ink-faint); }
.pick-card.selected .pick-body .status{ color:var(--brand); font-weight:600; }

/* ---------- footer cta bar ---------- */
.buy-bar{
  position:sticky; bottom:0; z-index:45; background:var(--surface);
  border-top:1px solid var(--line); padding:18px 0; box-shadow:0 -8px 24px rgba(11,27,51,.06);
}
.buy-bar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.buy-price{ font-family:var(--f-display); font-size:22px; font-weight:700; }
.buy-price span{ font-family:var(--f-body); font-size:13px; color:var(--ink-faint); font-weight:500; }

/* ---------- footer ---------- */
.footer{ border-top:1px solid var(--line); padding:48px 0 32px; }
.footer .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.footer p{ font-size:13.5px; margin:0; }

/* ---------- misc cards / faq ---------- */
.faq{ max-width:760px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); padding:20px 0; }
.faq-item h4{ font-size:16px; margin:0; display:flex; justify-content:space-between; cursor:pointer; }
.faq-item p{ margin:12px 0 0; font-size:14.5px; max-width:640px; display:none; }
.faq-item.open p{ display:block; }
.faq-item h4::after{ content:'+'; color:var(--brand); font-size:20px; }
.faq-item.open h4::after{ content:'–'; }

.reveal{ opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
