/* NEXTUP standalone pages: digital card, Privacy Policy, Terms. */
@font-face { font-family: "Inter"; src: url("/nextup_cards/static/fonts/Inter-Variable.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --np-navy: #0f1d33;
  --np-ink: #18233a;
  --np-muted: #5b6678;
  --np-line: #dde4ee;
  --np-red: #b8263f;
  --np-gold: #d5ae61;
  --np-paper: #f6f8fb;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: "Inter", system-ui, sans-serif; color: var(--np-ink); background: var(--np-paper); -webkit-font-smoothing: antialiased; }
body.np-dark { background: radial-gradient(120% 80% at 50% 0%, #1d3354 0%, #0b1526 60%, #070e1a 100%); color: #eef3fa; min-height: 100vh; }
a { color: inherit; }

.np-nav { display: flex; justify-content: space-between; align-items: center; padding: 18px clamp(16px, 4vw, 48px); }
.np-brand { font-weight: 900; font-size: 22px; letter-spacing: -.02em; text-decoration: none; }
.np-brand span { color: var(--np-gold); }
.np-nav-cta { font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; padding: 10px 16px; border-radius: 99px; border: 1px solid currentColor; }
.np-main { padding: 0 16px 48px; }
.np-footer { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; padding: 24px clamp(16px, 4vw, 48px); font-size: 13px; color: var(--np-muted); border-top: 1px solid var(--np-line); }
.np-dark .np-footer { color: #9fb0c6; border-color: rgba(255,255,255,.1); }
.np-footer nav { display: flex; gap: 18px; flex-wrap: wrap; }

/* ---------- legal ---------- */
.np-doc { max-width: 760px; margin: 24px auto 0; padding: clamp(24px, 5vw, 56px); background: #fff; border: 1px solid var(--np-line); border-radius: 24px; line-height: 1.65; font-size: 16px; }
.np-doc h1 { margin: 0 0 6px; font-size: clamp(30px, 5vw, 44px); letter-spacing: -.03em; color: var(--np-navy); }
.np-doc h2 { margin: 36px 0 10px; font-size: 20px; letter-spacing: -.01em; color: var(--np-navy); }
.np-doc a { color: var(--np-red); }
.np-meta { margin: 0 0 24px; color: var(--np-muted); font-size: 14px; }
.np-doc ul { padding-left: 20px; }
.np-doc li { margin-bottom: 6px; }
.np-table { overflow-x: auto; margin: 12px 0; border: 1px solid var(--np-line); border-radius: 14px; }
.np-table table { width: 100%; border-collapse: collapse; font-size: 14px; }
.np-table th, .np-table td { padding: 10px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--np-line); }
.np-table th { background: var(--np-paper); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--np-muted); }
.np-table tr:last-child td { border-bottom: 0; }
.np-todo { background: #fff1c2; color: #6f3c0b; padding: 0 4px; border-radius: 4px; }
.np-center { text-align: center; }

/* ---------- digital card ---------- */
.np-card-stage { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 8px; }
.np-eyebrow { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--np-gold); }
.np-card-name { margin: 8px 0 24px; font-size: clamp(30px, 6vw, 52px); font-weight: 900; letter-spacing: -.03em; line-height: 1; }
.np-flip { width: min(360px, 86vw); aspect-ratio: 2.5 / 3.5; perspective: 1600px; cursor: pointer; outline: none; }
.np-flip:focus-visible { outline: 3px solid var(--np-gold); outline-offset: 8px; border-radius: 18px; }
.np-flip-inner { position: relative; width: 100%; height: 100%; transition: transform .8s cubic-bezier(.2,.7,.2,1); transform-style: preserve-3d; }
.np-flip.is-back .np-flip-inner { transform: rotateY(180deg); }
.np-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; filter: drop-shadow(0 30px 50px rgba(0,0,0,.45)); }
.np-face-back { transform: rotateY(180deg); }
.np-face img { width: 100%; height: 100%; object-fit: contain; display: block; }
.np-actions { display: flex; gap: 10px; margin-top: 30px; }
.np-btn { appearance: none; border: 1px solid rgba(255,255,255,.35); background: transparent; color: inherit; font: inherit; font-size: 15px; font-weight: 700; padding: 12px 22px; border-radius: 99px; cursor: pointer; text-decoration: none; display: inline-block; }
.np-light .np-btn { border-color: var(--np-line); }
.np-btn-primary { background: var(--np-red); border-color: var(--np-red); color: #fff; }
.np-downloads { display: flex; gap: 18px; margin-top: 16px; font-size: 14px; }
.np-link { color: #c9d6e8; }
.np-status { min-height: 1.4em; margin: 10px 0 0; font-size: 14px; color: #c9d6e8; }
.np-note { max-width: 420px; margin: 18px auto 0; font-size: 13px; line-height: 1.6; color: #9fb0c6; }
.np-note a { color: #fff; }
@media (prefers-reduced-motion: reduce) { .np-flip-inner { transition: none; } }
