/* Approved orbital treasury art; scoped to rewards and seasonal admin. */
.events-page .events-hero{background-image:linear-gradient(270deg,#060e1bf0 0%,#060e1b88 48%,#060e1b00 80%),url('/img/rewards-vault/vault-hero.webp');background-position:center;min-height:420px;padding:48px;border-color:#726039}.events-page .events-hero:after{display:none}.events-hero h1,.events-hero p{position:relative;max-width:560px}.events-hero .event-note{max-width:490px}.reward-icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}.events-page .event-prizes,.seasonal-admin #seasonal-preview .event-prizes{grid-template-columns:repeat(auto-fill,minmax(185px,1fr));align-items:start;gap:18px}.vault-reward{min-width:0;--rarity-color:#b9c8d8}.vault-reward[data-rarity=rare]{--rarity-color:#81d9ff}.vault-reward[data-rarity=epic]{--rarity-color:#d1a9fc}.vault-reward[data-rarity=legendary]{--rarity-color:#e8c77b}.vault-card-art{position:relative;aspect-ratio:2/3;transition:transform .25s}.vault-frame{display:block;width:100%;height:100%;object-fit:fill}.vault-item{position:absolute;width:46%;height:25%;object-fit:contain;right:27%;top:30%;filter:drop-shadow(0 6px 14px #0008)}.vault-rarity{position:absolute;top:14%;right:10%;left:10%;text-align:center;font-size:12px;color:var(--rarity-color);display:flex;align-items:center;justify-content:center;gap:5px}.vault-rarity svg{width:16px;height:16px}.vault-caption{position:absolute;top:68%;right:13%;left:13%;text-align:center;display:grid;gap:6px}.vault-caption strong{font-size:clamp(13px,1.3vw,17px);line-height:1.5;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.vault-caption span{font-size:12px;color:#b9c9da}.vault-card-meta{padding:8px 8px 12px;display:grid;gap:6px;text-align:center;font-size:12px;color:#b8cadd;background:#0a1727;border:1px solid #2f455d;border-radius:0 0 12px 12px;margin-top:-7px;position:relative}.vault-card-meta .vault-detail{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;padding:8px;min-height:40px;color:#e8cc8c;border-color:#5a6171}.vault-reward:hover .vault-card-art{transform:translateY(-4px)}.vault-reward.unavailable .vault-card-art{filter:saturate(.25)}.vault-featured{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:22px;padding:24px;border:1px solid #75613d;background:#0b1829;border-radius:18px;margin:20px 0}.vault-featured h3{font-size:28px;color:#e8cc8c;margin:14px 0}.vault-stage{position:relative;aspect-ratio:16/10;border-radius:12px;background:url('/img/rewards-vault/grand-stage.webp') center/cover}.vault-stage img{position:absolute;left:35%;top:25%;width:30%;height:35%;object-fit:contain;filter:drop-shadow(0 5px 14px #e5c57755);animation:vault-float 5s ease-in-out infinite}.vault-detail-stats{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.vault-featured .vault-detail-stats{justify-content:flex-start}.vault-detail-image{width:120px;height:120px;object-fit:contain;margin:20px auto}.events-page .reward-detail-modal{width:min(500px,calc(100% - 32px));padding-top:45px}.vault-modal-close{position:absolute;top:10px;left:10px}.vault-return{margin-top:12px}.events-page #event-result{background:linear-gradient(#06101e70,#06101eb0),url('/img/rewards-vault/celebration.webp') center/cover;width:min(570px,calc(100% - 28px))}.events-page #event-result .event-prizes{grid-template-columns:repeat(auto-fit,minmax(150px,220px));justify-content:center}.events-page #event-result .scratch-wrap{max-width:100%;width:100%}.events-page #event-result .result-medal{width:58px;height:58px;margin:8px auto}.events-page #event-result .result-medal svg{width:34px;height:34px}.vault-delivery{display:flex;gap:8px;align-items:center;justify-content:center;background:#112c29d9;border:1px solid #396458;border-radius:10px;padding:12px;color:#b5edce}.history-reward{display:flex;align-items:center;gap:9px;margin:5px 0}.history-reward img{width:36px;height:36px;object-fit:contain;border:1px solid #465b70;border-radius:7px;padding:3px}.vault-chest-art{width:100%;height:100%;object-fit:contain;display:block}.scene-crates .crate-choice:has(.vault-chest-art){background:#071323;border-color:#465e77;height:150px}.scene-crates .crate-door:has(.vault-chest-art){inset:0;background:none;border:0;transform:none}.scene-crates .crate-choice:has(.vault-chest-art) .crate-lock{display:none}.scene-gifts .gift-choice:has(.vault-chest-art){height:150px}.scene-gifts .gift-body:has(.vault-chest-art){inset:0;background:none;border:0;transform:none}.scene-gifts .gift-choice:has(.vault-chest-art) .gift-lid,.scene-gifts .gift-choice:has(.vault-chest-art) .gift-ribbon{display:none}.scene-selected .vault-chest-art{filter:drop-shadow(0 0 15px #ebca78);transform:scale(1.06)}.scene-index{z-index:2}.events-page button:focus-visible,.seasonal-admin button:focus-visible{outline:3px solid #79dcff;outline-offset:3px}@keyframes vault-float{50%{transform:translateY(-7px)}}@media(max-width:700px){.vault-featured{grid-template-columns:1fr;padding:16px}.events-page .events-hero{padding:28px 22px;background-position:38% center}.events-hero h1,.events-hero p{background:#06101e70;border-radius:8px}.events-page .event-prizes,.seasonal-admin #seasonal-preview .event-prizes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vault-rarity{font-size:10px}.vault-caption{gap:3px}.vault-caption strong{font-size:12px}.vault-caption span{font-size:10px}.vault-card-meta{font-size:11px;padding:6px 4px 10px}.vault-card-meta .vault-detail{font-size:11px;gap:4px}.scene-crates .crate-choice:has(.vault-chest-art),.scene-gifts .gift-choice:has(.vault-chest-art){height:105px}.vault-detail-stats{font-size:12px}}@media(prefers-reduced-motion:reduce){.vault-stage img{animation:none}.vault-card-art,.vault-chest-art{transition:none}.vault-reward:hover .vault-card-art{transform:none}}
.events-page #event-result{padding:20px;max-height:90vh}.events-page #event-result h2{font-size:22px;margin:10px 0}.events-page #event-result .event-prizes{grid-template-columns:repeat(auto-fit,minmax(130px,170px));margin:10px 0}.events-page #event-result .result-medal{width:40px;height:40px}.events-page #event-result .result-medal svg{width:26px;height:26px}.events-page #event-result .vault-caption strong{font-size:12px}.events-page #event-result .vault-delivery{font-size:13px;margin:10px 0}.vault-card-meta:empty{display:none}

/* Seasonal media: keep the uploaded scene backdrop visible below game artwork. */
.event-arena[style*="--season-background"]{background-size:cover;background-position:center}
.event-arena[style*="--season-background"] .game-scene{background-color:transparent;background-image:none}
.seasonal-admin .seasonal-media-preview{display:flex;flex-direction:column;gap:8px;justify-content:center;align-items:center;border:1px dashed #50647c;border-radius:12px;padding:12px;min-width:0}
.seasonal-media-preview img{max-width:100%;height:115px;object-fit:contain;border-radius:8px}
.seasonal-media-preview small{color:#aec6dd}.seasonal-icon{width:56px;height:56px;object-fit:contain}
.seasonal-preview>.event-banner{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin-bottom:16px}
#seasonal-toggle{border:1px solid #dfa76a;background:#553524;color:#fff3db}

/* Character embarkation gate */
.events-page #character-gate{width:min(720px,calc(100vw - 32px));max-width:720px;box-sizing:border-box;padding:32px;border:1px solid #aa8c50;border-radius:24px;background:radial-gradient(ellipse at 90% 0,#28435999,transparent 55%),#0b1728;color:#edf3fc;box-shadow:0 28px 100px #000b;max-height:90dvh;overflow:auto}
#character-gate::backdrop{background:#020812d9;backdrop-filter:blur(8px)}
.gate-close{position:absolute;top:16px;left:16px;width:42px;height:42px}.gate-heading{padding-top:20px}.gate-heading h2{font-size:clamp(24px,4vw,34px);line-height:1.6;margin:18px 0 10px}.gate-heading em{font-style:normal;color:#e7c780}.gate-heading p{color:#b0c4da;line-height:1.9;max-width:550px}
.gate-options{display:grid;gap:12px;margin:24px 0}.gate-character{display:flex;align-items:center;gap:16px;width:100%;text-align:right;cursor:pointer;border:1px solid #354e69;border-radius:16px;padding:18px;background:linear-gradient(120deg,#12243a,#102035);color:#e9f1ff;font:inherit;transition:border-color .18s,background .18s,transform .18s}.gate-character:hover{border-color:#b59b62;transform:translateY(-2px)}.gate-character[aria-pressed=true]{border-color:#ebc775;background:linear-gradient(120deg,#443b28,#14243a);box-shadow:inset 0 0 0 1px #e7c78055,0 5px 24px #b7943612}.gate-character:focus-visible,#character-gate button:focus-visible{outline:3px solid #8bdde8;outline-offset:3px}.gate-emblem{display:grid;place-items:center;flex:0 0 64px;height:72px;border:1px solid #84714e;border-radius:14px;background:radial-gradient(#30465a,#101c2e);color:#e7c780}.gate-emblem svg{width:44px;height:44px}.gate-character-copy{display:grid;gap:4px;min-width:0;flex:1}.gate-character-copy strong{font-size:19px;overflow-wrap:anywhere}.gate-character-copy small{font-size:12px;color:#b6c9df}.gate-character-copy>span{font-size:11px;color:#d0b987}.gate-check{display:grid;place-items:center;border:1px solid #56718b;border-radius:50%;width:26px;height:26px;color:transparent;flex-shrink:0}.gate-character[aria-pressed=true] .gate-check{background:#e5c17a;border-color:#e5c17a;color:#152035}.gate-footer{border-top:1px solid #30445d;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.gate-footer>span{font-size:12px;color:#a9bfd4}.gate-footer button:disabled{opacity:.45;cursor:not-allowed}.gate-empty{text-align:center;padding:15px}.gate-empty>svg{width:72px;height:72px;color:#e7c780}.gate-empty p{color:#aec4da}.recipient-wallet{position:sticky;top:8px;z-index:8;display:flex;align-items:center;gap:18px;background:#0c1b2ef5;border-color:#8d764c;box-shadow:0 8px 28px #0005;backdrop-filter:blur(12px)}.recipient-wallet[hidden]{display:none}.recipient-symbol{color:#e7c780;font-size:32px}.recipient-copy{display:grid;gap:3px;margin-inline-end:auto}.recipient-copy small{color:#c4ad7d}.recipient-copy strong{font-size:19px}.recipient-copy span{font-size:11px;color:#b0c5dc}.recipient-wallet #event-balance{font-size:14px}
@media(max-width:600px){.events-page #character-gate{padding:24px 16px;border-radius:18px}.gate-character{padding:14px 10px;gap:10px}.gate-emblem{flex-basis:48px;height:58px}.gate-emblem svg{width:36px;height:36px}.gate-character-copy strong{font-size:16px}.gate-footer{flex-direction:column}.gate-footer button{width:100%}.recipient-wallet{position:static;flex-wrap:wrap;gap:10px}.recipient-wallet #event-balance{flex-basis:55%}.recipient-wallet #change-recipient{margin-inline-start:auto}.recipient-copy{flex:1}}
@media(prefers-reduced-motion:reduce){.gate-character{transition:none}.gate-character:hover{transform:none}}
