/* ============================================================
   DRAFTPOCALYPSE — page + in-game UI styles.
   Namespaced with dp- so nothing leaks into the shared sheet.
   ============================================================ */

/* ---------- Page hero ---------- */
.dp-hero {
  position: relative;
  overflow: hidden;
  border: 5px solid var(--ink);
  box-shadow: 10px 10px 0 var(--ink);
  background:
    linear-gradient(135deg, rgba(24, 15, 46, 0.94), rgba(58, 22, 84, 0.94)),
    repeating-linear-gradient(-30deg, transparent 0 16px, rgba(255, 210, 63, 0.08) 16px 20px);
  color: var(--paper);
  padding: clamp(20px, 4vw, 36px);
  display: grid;
  gap: 10px;
}
.dp-hero .eyebrow { color: var(--yellow); }
.dp-hero-title {
  font-family: var(--font-display);
  font-size: clamp(44px, 9vw, 96px);
  letter-spacing: 0.05em;
  line-height: 0.9;
  margin: 0;
  color: var(--yellow);
  text-shadow: 5px 5px 0 var(--red), 9px 9px 0 var(--ink);
  transform: rotate(-1.2deg);
}
.dp-hero-tag {
  font-weight: 800;
  font-size: clamp(14px, 2vw, 19px);
  max-width: 640px;
  margin: 0;
}
.dp-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}
.dp-hero-meta span {
  border: 3px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  font-family: var(--font-display);
  font-size: 17px;
  letter-spacing: 0.04em;
  padding: 7px 10px 4px;
  transform: rotate(-1deg);
}
.dp-hero-meta span:nth-child(even) { transform: rotate(1.2deg); background: var(--red); color: var(--paper); }

/* ---------- Game panel ---------- */
/* Our display rules would otherwise beat the [hidden] UA default. */
.dp-frame [hidden] { display: none !important; }

.dp-game-panel { padding: 0; overflow: hidden; }
.dp-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 340px;
  background: #180f2e;
}
.dp-stage {
  position: absolute;
  inset: 0;
  outline: none;
  overflow: hidden;
  font-family: var(--font-body);
}
.dp-stage canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  display: block;
}
.dp-stage:fullscreen { background: #180f2e; }

/* ---------- Start / gate screens ---------- */
.dp-gate {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  background:
    radial-gradient(ellipse at center, rgba(141, 91, 184, 0.25), transparent 70%),
    #180f2e;
  color: var(--paper);
  z-index: 6;
  padding: 18px;
}
.dp-gate-inner { display: grid; gap: 14px; justify-items: center; max-width: 560px; }
.dp-gate-title {
  font-family: var(--font-display);
  font-size: clamp(38px, 7vw, 72px);
  letter-spacing: 0.05em;
  line-height: 0.9;
  color: var(--yellow);
  text-shadow: 4px 4px 0 var(--red), 7px 7px 0 var(--ink);
  transform: rotate(-1.5deg);
}
.dp-gate-copy { font-weight: 800; font-size: 15px; line-height: 1.4; margin: 0; }
.dp-gate-hero {
  border: 3px solid var(--yellow);
  background: rgba(27, 75, 142, 0.55);
  padding: 10px 14px;
  font-weight: 800;
  font-size: 13px;
}
.dp-gate-hero strong { font-family: var(--font-display); font-size: 20px; letter-spacing: 0.05em; display: block; }
.dp-gate select {
  border: 3px solid var(--ink);
  background: var(--paper);
  font: 800 14px var(--font-body);
  padding: 8px 10px;
}
.dp-gate-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: center; }
.dp-fatal {
  position: absolute; inset: 0; display: grid; place-items: center;
  background: var(--red); color: var(--paper); font-weight: 800; padding: 20px; text-align: center;
}

/* ---------- HUD ---------- */
.dp-hud { position: absolute; inset: 0; pointer-events: none; z-index: 4; }
.dp-hud-top {
  display: grid;
  grid-template-columns: minmax(150px, 240px) 1fr minmax(110px, 200px);
  gap: 10px;
  padding: 10px 12px;
  align-items: start;
}
.dp-vitals { display: grid; gap: 5px; }
.dp-bar {
  position: relative;
  height: 20px;
  border: 3px solid var(--ink);
  background: rgba(244, 236, 216, 0.85);
  box-shadow: 2px 2px 0 rgba(14, 14, 14, 0.6);
}
.dp-bar-fill { position: absolute; inset: 0; width: 100%; transition: width 120ms linear; }
.dp-bar--hp .dp-bar-fill { background: linear-gradient(180deg, #ff5f4e, var(--red)); }
.dp-bar--xp .dp-bar-fill { background: linear-gradient(180deg, #ffe27a, var(--yellow)); }
.dp-bar-text {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-size: 11px; font-weight: 800; color: var(--ink);
  letter-spacing: 0.06em;
}
.dp-chips { display: flex; gap: 6px; }
.dp-chip {
  border: 2px solid var(--ink);
  background: var(--paper);
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0.05em;
  padding: 4px 8px 2px;
  box-shadow: 2px 2px 0 rgba(14, 14, 14, 0.6);
}
.dp-chip--level { background: var(--blue); color: var(--paper); }
.dp-clock-wrap { display: grid; justify-items: center; gap: 4px; }
.dp-clock {
  font-family: var(--font-display);
  font-size: clamp(22px, 4vw, 40px);
  letter-spacing: 0.08em;
  color: var(--paper);
  text-shadow: 3px 3px 0 var(--ink);
}
.dp-clock--enrage { color: #ff5f4e; animation: dp-pulse 0.5s infinite alternate; }
@keyframes dp-pulse { from { transform: scale(1); } to { transform: scale(1.08); } }
.dp-bossbar {
  position: relative;
  width: min(46vw, 340px);
  height: 16px;
  border: 3px solid var(--ink);
  background: rgba(14, 14, 14, 0.7);
}
.dp-bossbar-fill { position: absolute; inset: 0; background: linear-gradient(180deg, #ff5f4e, var(--red)); transition: width 150ms linear; }
.dp-bossbar span {
  position: absolute; inset: -2px 0 0;
  text-align: center;
  font-size: 9px; font-weight: 800; letter-spacing: 0.14em; color: var(--paper);
}
.dp-scorebox { display: grid; justify-items: end; gap: 4px; }
.dp-score {
  font-family: var(--font-display);
  font-size: clamp(20px, 3vw, 32px);
  color: var(--yellow);
  text-shadow: 2px 2px 0 var(--ink);
}
.dp-combo {
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--paper);
  background: var(--red);
  border: 2px solid var(--ink);
  padding: 3px 8px 1px;
  transform: rotate(2deg);
}

.dp-ult {
  position: absolute;
  right: 14px; bottom: 14px;
  width: 76px; height: 76px;
  border: 4px solid var(--ink);
  border-radius: 50%;
  background: #3a2a58;
  color: var(--paper);
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0.05em;
  line-height: 1.05;
  cursor: pointer;
  overflow: hidden;
  pointer-events: auto;
  box-shadow: 4px 4px 0 rgba(14, 14, 14, 0.7);
}
.dp-ult-fill {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #ffe27a, var(--yellow));
  height: 0%;
}
.dp-ult-label { position: relative; z-index: 1; text-shadow: 2px 2px 0 rgba(14,14,14,0.8); }
.dp-ult--ready { animation: dp-ult-throb 0.8s infinite alternate; }
.dp-ult--ready .dp-ult-label { color: var(--ink); text-shadow: none; }
@keyframes dp-ult-throb { from { transform: scale(1); } to { transform: scale(1.07); box-shadow: 0 0 18px rgba(255, 210, 63, 0.8); } }

.dp-sysbtns { position: absolute; left: 12px; bottom: 12px; display: flex; gap: 8px; }
.dp-sysbtn {
  width: 40px; height: 40px;
  border: 3px solid var(--ink);
  background: rgba(244, 236, 216, 0.9);
  font: 800 16px var(--font-body);
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 3px 3px 0 rgba(14, 14, 14, 0.7);
}
.dp-sysbtn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 rgba(14,14,14,0.7); }

.dp-joystick {
  position: absolute;
  width: 110px; height: 110px;
  margin: -55px 0 0 -55px;
  border: 3px dashed rgba(244, 236, 216, 0.7);
  border-radius: 50%;
  pointer-events: none;
}
.dp-stick {
  position: absolute; left: 50%; top: 50%;
  width: 46px; height: 46px;
  margin: -23px 0 0 -23px;
  border: 3px solid var(--ink);
  border-radius: 50%;
  background: var(--yellow);
}

/* ---------- Floaters & splashes ---------- */
.dp-floaters { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 5; }
.dp-floater {
  position: absolute;
  transform: translate(-50%, -50%);
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--paper);
  text-shadow: 2px 2px 0 var(--ink);
  white-space: nowrap;
}
.dp-floater--hurt { color: #ff5f4e; font-size: 22px; }
.dp-floater--pow { color: var(--yellow); font-size: 24px; transform: translate(-50%, -50%) rotate(-4deg); }
.dp-floater--good { color: #7fe08a; }
.dp-floater--steal { color: #d9a6ff; }
.dp-floater--combo { color: var(--yellow); font-size: 26px; }

.dp-splash {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  pointer-events: none;
  z-index: 7;
}
.dp-splash-card {
  font-family: var(--font-display);
  font-size: clamp(26px, 5vw, 52px);
  letter-spacing: 0.05em;
  color: var(--paper);
  background: var(--red);
  border: 5px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  padding: 16px 26px 10px;
  transform: rotate(-2deg);
  text-align: center;
  line-height: 1;
}
.dp-splash-card span { display: block; font-size: 12px; letter-spacing: 0.2em; font-family: var(--font-body); font-weight: 800; }
.dp-splash-card em { display: block; font-style: normal; font-family: var(--font-body); font-weight: 800; font-size: 13px; margin-top: 8px; }
.dp-splash-boss { background: var(--ink); color: #ff5f4e; }
.dp-splash-ult { background: var(--yellow); color: var(--ink); }
.dp-splash-evo { background: var(--blue); }
.dp-splash-apoc { background: var(--ink); color: var(--yellow); }
.dp-splash-win { background: #1d7a3a; }
.dp-splash-anim { animation: dp-splash-in 300ms cubic-bezier(0.2, 2.2, 0.4, 1); }
@keyframes dp-splash-in { from { transform: scale(0.2) rotate(-14deg); opacity: 0; } }

.dp-vignette {
  position: absolute; inset: 0;
  pointer-events: none;
  z-index: 3;
  box-shadow: inset 0 0 90px 30px rgba(218, 41, 28, 0.55);
  animation: dp-pulse 0.7s infinite alternate;
}

/* ---------- Overlays: level-up, pause, end ---------- */
.dp-overlay {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  background: rgba(14, 14, 14, 0.72);
  z-index: 8;
  padding: 14px;
  overflow-y: auto;
}
.dp-modal { display: grid; gap: 12px; justify-items: center; text-align: center; max-width: 860px; width: 100%; }
.dp-modal-title {
  font-family: var(--font-display);
  font-size: clamp(26px, 4.5vw, 44px);
  letter-spacing: 0.05em;
  color: var(--yellow);
  text-shadow: 3px 3px 0 var(--red), 5px 5px 0 var(--ink);
  transform: rotate(-1deg);
}
.dp-modal-copy { color: var(--paper); font-weight: 800; margin: 0; }
.dp-modal-btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.dp-slot-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.dp-slot-chip,
.dp-card-slot {
  border: 3px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  font-family: var(--font-display);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.dp-slot-chip {
  background: var(--paper);
  color: var(--ink);
  font-size: 13px;
  padding: 6px 10px 3px;
}
.dp-slot-chip--active,
.dp-card-slot--active { background: var(--red); color: var(--paper); }
.dp-slot-chip--passive,
.dp-card-slot--passive { background: var(--blue); color: var(--paper); }
.dp-slot-chip--full { filter: saturate(0.75); transform: rotate(-1deg); }
.dp-slot-chip--full::after { content: ' FULL'; color: var(--yellow); }

.dp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; }
.dp-card {
  display: grid;
  gap: 6px;
  align-content: start;
  border: 4px solid var(--ink);
  background: var(--paper);
  box-shadow: 5px 5px 0 var(--ink);
  padding: 12px;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-body);
  transition: transform 90ms ease, box-shadow 90ms ease;
  min-height: 170px;
}
.dp-card:hover { transform: translate(-3px, -3px) rotate(-0.6deg); box-shadow: 9px 9px 0 var(--ink); }
.dp-card-rarity { font-size: 10px; font-weight: 800; letter-spacing: 0.16em; color: #5a4a2a; }
.dp-card-slot {
  justify-self: start;
  font-size: 10px;
  padding: 4px 7px 1px;
}
.dp-card--rare .dp-card-rarity { color: var(--blue); }
.dp-card--legendary .dp-card-rarity { color: var(--red); }
.dp-card--legendary { background: linear-gradient(160deg, var(--paper), #ffe9b0); }
.dp-card--evolved { background: linear-gradient(160deg, #dcefff, #b7d4ff); border-color: var(--blue); }
.dp-card--evolved .dp-card-rarity { color: var(--blue); }
.dp-card-name { font-family: var(--font-display); font-size: 22px; letter-spacing: 0.03em; line-height: 1; }
.dp-card-stat { font-size: 11px; font-weight: 800; color: var(--blue); text-transform: uppercase; letter-spacing: 0.06em; }
.dp-card-desc { font-size: 13px; font-weight: 700; line-height: 1.3; }
.dp-card-flavor { font-size: 11px; font-style: italic; color: #5a4a2a; line-height: 1.3; }
.dp-card-lvl {
  justify-self: start;
  border: 2px solid var(--ink);
  background: var(--yellow);
  font-family: var(--font-display);
  font-size: 13px;
  padding: 3px 7px 1px;
}

.dp-endscreen { gap: 8px; }
.dp-end-banner {
  font-family: var(--font-display);
  font-size: clamp(24px, 4vw, 40px);
  color: var(--paper);
  background: var(--red);
  border: 4px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  padding: 12px 20px 7px;
  transform: rotate(-1.4deg);
}
.dp-end-banner--win { background: #1d7a3a; }
.dp-roast { font-family: var(--font-display); font-size: clamp(18px, 3vw, 28px); color: var(--yellow); text-shadow: 2px 2px 0 var(--ink); }
.dp-end-score {
  font-family: var(--font-display);
  font-size: clamp(44px, 8vw, 84px);
  color: var(--paper);
  text-shadow: 4px 4px 0 var(--red), 7px 7px 0 var(--ink);
  line-height: 1;
}
.dp-end-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; width: 100%; }
.dp-end-grid > div { border: 3px solid var(--ink); background: var(--paper); padding: 8px 4px; }
.dp-end-grid span { display: block; font-size: 9px; font-weight: 800; letter-spacing: 0.1em; color: #5a4a2a; }
.dp-end-grid strong { font-family: var(--font-display); font-size: 20px; }
.dp-end-build { color: var(--paper); font-weight: 800; font-size: 12px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center; }
.dp-end-build span { letter-spacing: 0.12em; }
.dp-end-build em {
  font-style: normal;
  border: 2px solid var(--ink);
  background: var(--blue);
  padding: 4px 8px 2px;
  font-family: var(--font-display);
  letter-spacing: 0.04em;
  font-size: 14px;
}
.dp-submit-status { color: var(--paper); font-weight: 800; font-size: 13px; min-height: 20px; }
.dp-submit-status--ok { color: #7fe08a; }
.dp-submit-status--error { color: #ff8a7e; }
.dp-submit-status--login { color: var(--yellow); }
.dp-submit-status a { color: var(--yellow); }

/* ---------- Leaderboard panel ---------- */
.dp-board-list { display: grid; gap: 8px; }
.dp-board-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 3px solid var(--ink);
  background: var(--paper-2);
  padding: 8px 10px;
}
.dp-board-row--gold { background: linear-gradient(90deg, #ffe9b0, var(--paper-2)); }
.dp-board-rank {
  font-family: var(--font-display);
  font-size: 24px;
  text-align: center;
  border: 2px solid var(--ink);
  background: var(--yellow);
  padding: 4px 0 1px;
}
.dp-board-main { min-width: 0; }
.dp-board-main strong { display: block; font-family: var(--font-display); font-size: 19px; letter-spacing: 0.03em; overflow-wrap: anywhere; line-height: 1.05; }
.dp-board-main span { font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #5a4a2a; }
.dp-board-score { text-align: right; }
.dp-board-score strong { display: block; font-family: var(--font-display); font-size: 22px; color: var(--blue); }
.dp-board-score span { font-size: 10px; font-weight: 800; color: #5a4a2a; }

/* ---------- Info panels ---------- */
.dp-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.dp-help-grid { display: grid; gap: 8px; margin-top: 12px; }
.dp-help-row { display: flex; gap: 10px; align-items: baseline; font-weight: 700; font-size: 14px; }
.dp-key {
  border: 2px solid var(--ink);
  background: var(--paper);
  box-shadow: 2px 2px 0 var(--ink);
  font: 800 12px ui-monospace, Consolas, monospace;
  padding: 4px 8px;
  white-space: nowrap;
}
.dp-mod-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.dp-mod-table th, .dp-mod-table td { border: 2px solid var(--ink); padding: 8px; text-align: left; font-size: 13px; }
.dp-mod-table th { background: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.dp-mod-table td strong { font-family: var(--font-display); font-size: 16px; letter-spacing: 0.03em; }
.dp-mod-note { margin-top: 10px; font-size: 12px; font-weight: 700; color: #5a4a2a; }

.dp-arcade-panel { background: linear-gradient(160deg, var(--paper), #e8dcf5); }
.dp-arcade-steps { display: grid; gap: 10px; margin-top: 12px; }
.dp-arcade-step { display: flex; gap: 12px; align-items: baseline; font-weight: 700; font-size: 14px; }
.dp-arcade-step .rule-number { flex-shrink: 0; width: 34px; height: 34px; font-size: 22px; }
.dp-arcade-note { margin-top: 14px; border-top: 3px dashed var(--ink); padding-top: 14px; font-weight: 800; font-size: 13px; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .dp-columns { grid-template-columns: 1fr; }
  .dp-cards { grid-template-columns: 1fr; }
  .dp-card { min-height: 0; }
  .dp-end-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dp-frame { aspect-ratio: auto; height: min(76vh, 560px); }
  .dp-hud-top { grid-template-columns: minmax(120px, 1fr) auto; }
  .dp-scorebox { grid-column: 1 / -1; justify-items: start; flex-direction: row; }
  .dp-ult { width: 88px; height: 88px; bottom: 22px; right: 16px; }
}
