:root {
    --ink: #e9f7ff;
    --muted: #9eb4c9;
    --navy: #07111f;
    --navy-2: #10243d;
    --cyan: #3ee0d2;
    --cyan-2: #7af0ff;
    --red: #ff3b4e;
    --gold: #f5c542;
    --line: rgba(62, 224, 210, 0.28);
    --card: rgba(10, 28, 48, 0.82);
    --max: 1160px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background:
        radial-gradient(900px 420px at 10% -10%, rgba(62, 224, 210, 0.16), transparent 60%),
        radial-gradient(700px 380px at 100% 0%, rgba(255, 59, 78, 0.12), transparent 55%),
        var(--navy);
    font-family: "Segoe UI", "Trebuchet MS", sans-serif;
    line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: var(--cyan-2); text-decoration: none; }
a:hover { color: #fff; }
.jv-ico { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

.jv-bar {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 14px 6vw;
    background: rgba(7, 17, 31, 0.9);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(10px);
}
.jv-brand { display: flex; align-items: center; gap: 12px; color: #fff; min-width: 0; }
.jv-brand img { width: 52px; height: 52px; object-fit: contain; }
.jv-brand span { font-weight: 750; letter-spacing: 0.04em; font-size: 18px; }
.jv-nav { display: flex; align-items: center; gap: 8px 18px; flex-wrap: wrap; justify-content: flex-end; }
.jv-nav a { color: var(--ink); font-weight: 650; }
.jv-nav a[aria-current="page"] { color: var(--cyan); }
.jv-store-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 108px;
    padding: 10px 22px;
    border-radius: 999px;
    background: var(--red);
    color: #fff !important;
    box-shadow: 0 8px 22px rgba(255, 59, 78, 0.35);
}
.jv-store-link.is-current {
    outline: 3px solid var(--gold);
    outline-offset: 2px;
    box-shadow: 0 0 0 6px rgba(245, 197, 66, 0.18), 0 10px 24px rgba(255, 59, 78, 0.45);
}

main { padding: 36px 6vw 72px; }
.jv-wrap { max-width: var(--max); margin: 0 auto; }

.jv-opening {
    display: grid;
    grid-template-columns: 1.3fr 0.7fr;
    gap: 40px;
    align-items: center;
    padding: 28px 0 18px;
}
.jv-kicker { color: var(--cyan); letter-spacing: 0.16em; text-transform: uppercase; font-size: 13px; font-weight: 700; margin: 0 0 8px; }
h1 { font-size: clamp(40px, 6vw, 68px); line-height: 1.05; margin: 0 0 14px; letter-spacing: -0.03em; }
h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; margin: 0 0 12px; }
.jv-lead { font-size: 18px; color: var(--muted); max-width: 62ch; }
.jv-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 22px; }
.jv-badge { display: block; width: 196px; }
.jv-badge img { width: 196px; height: auto; aspect-ratio: 499 / 171; object-fit: contain; display: block; }
.jv-game-mark { width: min(100%, 280px); height: auto; aspect-ratio: 1 / 1; justify-self: end; filter: drop-shadow(0 18px 40px rgba(62, 224, 210, 0.25)); }

.jv-banner { margin: 28px auto 10px; max-width: var(--max); }
.jv-banner img { width: 100%; height: auto; aspect-ratio: 1024 / 500; object-fit: contain; border-radius: 28px; display: block; border: 1px solid var(--line); }

.jv-band { max-width: var(--max); margin: 54px auto 0; }
.jv-split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 36px; align-items: center; }
.jv-rail { display: flex; align-items: flex-start; gap: 16px; overflow-x: auto; padding-bottom: 8px; }
.jv-shot { flex: 0 0 auto; width: 220px; max-width: 70vw; height: auto; aspect-ratio: 800 / 1280; object-fit: contain; border-radius: 22px; border: 1px solid var(--line); background: #0b1c30; }
.jv-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 22px; }
.jv-card, .jv-note, .jv-promise article, .jv-order, .jv-sheet, .jv-seal, .jv-fault {
    background: var(--card);
    border: 1px solid var(--line);
    border-radius: 22px;
}
.jv-card { padding: 22px; }
.jv-card h3, .jv-note h3 { margin: 10px 0 6px; }
.jv-card p, .jv-note p { margin: 0; color: var(--muted); }
.jv-ico-wrap { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: var(--cyan); background: rgba(62, 224, 210, 0.1); }

.jv-about { display: grid; grid-template-columns: 240px 1fr 250px; gap: 28px; align-items: start; }
.jv-facts { display: grid; gap: 12px; }
.jv-fact { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 16px; background: rgba(62, 224, 210, 0.06); }
.jv-fact strong { display: block; }
.jv-fact span { color: var(--muted); font-size: 14px; }
.jv-portraits { display: grid; gap: 16px; }
.jv-portraits img { width: 100%; height: auto; aspect-ratio: 800 / 1280; object-fit: contain; border-radius: 22px; border: 1px solid var(--line); }
.jv-culture { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 28px; }
.jv-steps { display: grid; gap: 14px; margin-top: 18px; }
.jv-step { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: start; }

.jv-board { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: center; }
.jv-features { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 22px; }

.jv-contact { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.jv-contact a { color: #fff; font-weight: 700; }

.jv-store-layout { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1.35fr 0.75fr; gap: 22px; align-items: start; }
.jv-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0; }
.jv-note { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; color: var(--muted); }
.jv-money { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.jv-money button, .jv-pay, .jv-confirm {
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
    border-radius: 999px;
    padding: 8px 14px;
    cursor: pointer;
    font: inherit;
}
.jv-money button.is-on, .jv-pay.is-on { background: var(--cyan); color: #062028; border-color: transparent; }
.jv-pack-scroller { max-height: 540px; overflow: auto; padding-right: 4px; }
.jv-packs { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 10px; }
.jv-pack {
    text-align: center;
    padding: 12px 10px 14px;
    border-radius: 18px;
    border: 1px solid var(--line);
    background: rgba(8, 22, 38, 0.7);
    color: #fff;
    font: inherit;
    cursor: pointer;
}
.jv-pack.is-on { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }
.jv-pack img { width: 72px; height: 72px; object-fit: contain; }
.jv-pack strong {
    display: block;
    margin-top: 8px;
    font-size: 20px;
    line-height: 1.2;
    font-weight: 800;
    color: #fff;
}
.jv-pack em { display: block; margin-top: 2px; color: var(--gold); font-style: normal; font-weight: 700; font-size: 15px; }
.jv-order { padding: 20px; position: sticky; top: 92px; }
.jv-field { margin-bottom: 12px; }
.jv-field label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.jv-field input[type="text"], .jv-field input[type="email"] {
    width: 100%;
    padding: 11px 12px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: #081524;
    color: #fff;
    font: inherit;
}
.jv-pay-list { display: grid; gap: 8px; }
.jv-pay { display: flex; align-items: center; gap: 8px; border-radius: 14px; }
.jv-pay input { accent-color: var(--cyan); }
.jv-pay-view { opacity: 0.72; cursor: default; }
.jv-agree { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; }
.jv-confirm {
    width: 100%;
    border: 0;
    border-radius: 14px;
    background: var(--red);
    color: #fff;
    font-weight: 750;
    padding: 12px 16px;
}
.jv-err { color: #ffb4bc; font-size: 13px; display: block; min-height: 1em; }
.jv-alert { max-width: var(--max); margin: 0 auto 16px; padding: 12px 14px; border-radius: 14px; background: rgba(255, 59, 78, 0.14); border: 1px solid rgba(255, 59, 78, 0.45); }
.jv-picked { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border-radius: 12px; background: #081524; }

.jv-promise { max-width: var(--max); margin: 28px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.jv-promise article { padding: 18px; }
.jv-promise h2 { grid-column: 1 / -1; }

.jv-receipt, .jv-seal, .jv-fault { max-width: 720px; margin: 20px auto; padding: 32px; }
.jv-receipt dl { display: grid; grid-template-columns: 140px 1fr; gap: 8px 12px; }
.jv-receipt dt { color: var(--muted); }
.jv-receipt dd { margin: 0; }
.jv-receipt input { width: 100%; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; }
.jv-seal { text-align: center; }
.jv-seal .jv-ico, .jv-fault .jv-ico { width: 54px; height: 54px; }
.jv-ok { color: var(--cyan); }
.jv-bad { color: #ff8b96; }
.jv-count { font-size: 42px; font-weight: 800; color: var(--gold); }

.jv-foot { padding: 28px 6vw 40px; border-top: 1px solid var(--line); display: grid; gap: 14px; justify-items: center; text-align: center; }
.jv-foot-brand { display: flex; gap: 12px; align-items: center; justify-content: center; }
.jv-foot-brand img { width: 48px; height: 48px; }
.jv-foot-brand span { display: block; color: var(--muted); }
.jv-foot-links { display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: center; }
.jv-foot-links a { color: var(--ink); }
.jv-foot-meta, .jv-copy { margin: 0; color: var(--muted); }

@media (max-width: 980px) {
    .jv-opening, .jv-split, .jv-about, .jv-board, .jv-store-layout, .jv-contact, .jv-features, .jv-culture, .jv-promise, .jv-cards { grid-template-columns: 1fr; }
    .jv-game-mark, .jv-order { justify-self: start; position: static; }
    .jv-about { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .jv-bar { flex-direction: column; align-items: stretch; }
    .jv-nav { justify-content: flex-start; }
    h1 { font-size: 36px; }
    .jv-notes { grid-template-columns: 1fr; }
}
