@font-face{font-family:GridlockVault;src:url('/assets/fonts/esp-regular.ttf') format('truetype');font-display:swap}
body.rival-vault-open{overflow:hidden}
#gridlock-rival-vault{--display:Impact,'Arial Narrow',sans-serif;--ui:'Avenir Next','Segoe UI',Arial,sans-serif;--gold:#f1cf6b;position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:#edf3ed;background:radial-gradient(ellipse at 25% 20%,#16313e88,transparent 65%),#090f15;font-family:var(--ui);overflow:hidden;overscroll-behavior:contain}
#gridlock-rival-vault[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
#gridlock-rival-vault::backdrop{background:#060b11}
:is(#gridlock-rival-vault,.rival-vault-inline) *,:is(#gridlock-rival-vault,.rival-vault-inline) *:before,:is(#gridlock-rival-vault,.rival-vault-inline) *:after{box-sizing:border-box}
:is(#gridlock-rival-vault,.rival-vault-inline) h1,:is(#gridlock-rival-vault,.rival-vault-inline) h2,:is(#gridlock-rival-vault,.rival-vault-inline) h3,:is(#gridlock-rival-vault,.rival-vault-inline) p{margin:0;text-shadow:none}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px max(22px,env(safe-area-inset-right)) 18px max(22px,env(safe-area-inset-left));border-bottom:1px solid #32434d;background:#0b141ce8}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-eyebrow{font:10px/1.4 GridlockVault,var(--display);color:#92d6df;letter-spacing:.4px;margin-bottom:6px}
:is(#gridlock-rival-vault,.rival-vault-inline) h1{font:36px/1.05 var(--display);letter-spacing:.5px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-progress{font-size:13px;line-height:1.5;color:#b4c6cd;margin-top:7px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-close{flex:none;min-height:44px;padding:10px 21px;border:1px solid #b49748;border-radius:7px;background:linear-gradient(#f4d676,#c8a73e);color:#172029;font:800 14px/1.3 var(--ui);cursor:pointer;touch-action:manipulation}
:is(#gridlock-rival-vault,.rival-vault-inline) :focus-visible{outline:2px solid #91e2eb;outline-offset:-3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding:24px max(22px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));scrollbar-color:#476573 #0b141d;scrollbar-width:thin}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-next{max-width:1400px;margin:0 auto;font-size:14px;line-height:1.6;color:#e9d495}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-empty{max-width:1400px;margin:12px auto 0;font-size:14px;line-height:1.6;color:#b5c7cf}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-empty[hidden]{display:none}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-groups{max-width:1400px;margin:0 auto}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-tier{margin-top:30px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-tier-title{font:24px/1.2 var(--display);letter-spacing:.6px;color:#c7d7dd;margin-bottom:17px;padding-bottom:9px;border-bottom:1px solid #31444e}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:24px;align-items:start;justify-items:center}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-slot{width:100%;max-width:330px;min-width:0}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back{aspect-ratio:1/1.78;position:relative;overflow:hidden;border:2px solid #314e5a;border-radius:14px;background:repeating-linear-gradient(45deg,transparent 0 20px,#719cab09 21px 22px,transparent 23px 43px),linear-gradient(140deg,#14232d,#0b1721 50%,#14262f);box-shadow:inset 0 0 0 5px #09151c,0 8px 18px #0004}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back:before{content:'';position:absolute;inset:12px;border:1px solid #41606b;border-radius:7px;pointer-events:none}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-serial{position:absolute;left:24px;top:25px;font:9px monospace;letter-spacing:1px;color:#859da8}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-mark{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%) skew(-7deg);display:flex;flex-direction:column;align-items:center;font-family:GridlockVault,var(--display);line-height:1.05}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-mark span{font-size:27px;color:#789daa}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-mark b{font-size:42px;font-weight:400;letter-spacing:5px;color:#a59a6e}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-caption{position:absolute;left:23px;right:23px;bottom:14%;display:flex;align-items:center;flex-direction:column;gap:13px;text-align:center}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-caption strong{font-size:12px;letter-spacing:1.1px;color:#9bb0ba}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-back-caption p{font-size:13px;line-height:1.6;color:#879ca7}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-lock{position:relative;width:17px;height:14px;border:1.5px solid #839ca8;border-radius:3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-lock:before{content:'';position:absolute;left:3px;bottom:11px;width:8px;height:9px;border:1.5px solid #839ca8;border-bottom:0;border-radius:6px 6px 0 0}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-card{--card-color:#a1c5d0;width:100%;height:auto;aspect-ratio:1/1.78;position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:17px 57px minmax(0,1fr) 190px 24px;padding:10px;border:2px solid color-mix(in srgb,var(--card-color),#253743 30%);border-radius:14px;overflow:hidden;isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--card-color),#0b1520 83%),#09121b 48%,color-mix(in srgb,var(--card-color),#0b1520 89%));box-shadow:inset 0 0 0 2px #07111bd9,0 8px 18px #0007}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-card.epic{border-width:3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-card.legendary{border:3px double #e9ca7a;background:linear-gradient(140deg,#3e3520,#111821 44%,#28231b)}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-rim{position:absolute;inset:5px;border:1px solid color-mix(in srgb,var(--card-color),transparent 60%);border-radius:8px;pointer-events:none;z-index:6}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 5px;color:var(--card-color);min-width:0}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-serial{font:800 8px monospace;letter-spacing:1px}
:is(#gridlock-rival-vault,.rival-vault-inline) .rarity-stars{font-size:11px;letter-spacing:2px;line-height:1;color:var(--card-color)}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-nameplate{padding:4px 7px 3px;border-bottom:1px solid color-mix(in srgb,var(--card-color),transparent 42%);margin-bottom:5px;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;min-width:0}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-role{flex-shrink:0;color:#b5c6d0;font-size:8px;letter-spacing:.4px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-nameplate h2{flex-shrink:0;font:32px/.95 var(--display);letter-spacing:.6px;color:#f1f4ee;max-width:100%;width:100%;white-space:nowrap}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-art{position:relative;min-height:0;border:1px solid color-mix(in srgb,var(--card-color),transparent 30%);border-radius:2px;background:repeating-linear-gradient(120deg,transparent 0 18px,#ffffff03 19px 20px,transparent 21px 35px),radial-gradient(ellipse at center,color-mix(in srgb,var(--card-color),#111820 79%),#06101a);overflow:hidden;box-shadow:inset 0 0 9px #0007}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-art img{width:100%;height:100%;object-fit:contain;display:block}
:is(#gridlock-rival-vault,.rival-vault-inline) .has-split-art .card-art,:is(#gridlock-rival-vault,.rival-vault-inline) .driver-profile-card .card-art{display:grid;grid-template-rows:minmax(0,1fr) 29%}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-portrait-area{display:flex;align-items:center;justify-content:center;min-height:0;padding:12px;container-type:size}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-portrait{position:relative;width:min(100cqw,100cqh);height:auto;aspect-ratio:1;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--card-color),transparent 30%);border-radius:5px;background:linear-gradient(145deg,#29414e,#112330);overflow:hidden;box-shadow:inset 0 0 0 5px #0a172455,0 12px 28px #0003}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-monogram{font:64px var(--display);letter-spacing:2px;color:var(--card-color)}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-portrait img{object-fit:fill;max-width:none;width:var(--portrait-width);height:var(--portrait-height);left:var(--portrait-left);top:var(--portrait-top)}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-vehicle-stage{min-height:0;position:relative;background:linear-gradient(110deg,#15232e,#2b3c48,#111e2a);border-top:1px solid color-mix(in srgb,var(--card-color),transparent 65%)}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-vehicle-stage:before{content:'';position:absolute;left:10%;right:10%;top:50%;height:1px;background:#bed2d32b}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-vehicle-canvas{display:block;width:100%;height:100%;position:relative}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vehicle-stage{display:flex;align-items:center;justify-content:center}
:is(#gridlock-rival-vault,.rival-vault-inline) .rival-vehicle-display{position:relative;aspect-ratio:48/25;height:88%;max-width:84%}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-art .rival-vehicle-image{position:absolute;left:50%;top:50%;width:52.083333%;height:192%;max-width:none;object-fit:fill;transform:translate(-50%,-50%) rotate(-90deg)}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-text{padding:10px 9px 8px;background:linear-gradient(180deg,#14202bf9,#0c1621eb);border-bottom:1px solid color-mix(in srgb,var(--card-color),transparent 70%);min-width:0;overflow:hidden}
:is(#gridlock-rival-vault,.rival-vault-inline) .car-name{font-size:12px;line-height:1.4;letter-spacing:.4px;font-weight:900;color:var(--card-color);margin-bottom:6px}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-bio{font-size:12px;line-height:1.5;color:#c0ccd4;overflow-wrap:anywhere}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-ability{margin-top:10px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--card-color),transparent 64%)}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-ability h3{font-size:12px;line-height:1.4;color:#e3eced;font-weight:800;letter-spacing:.1px}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-ability p{font-size:11px;line-height:1.5;color:#93adb9;margin-top:4px}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-bottom{display:flex;align-items:center;justify-content:center;padding:4px 6px 0;min-width:0}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-wordmark{font:10px/1.2 GridlockCard,var(--display);letter-spacing:0;transform:skew(-7deg);white-space:nowrap}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-wordmark>span{color:#87dcea}
:is(#gridlock-rival-vault,.rival-vault-inline) .card-wordmark>b{font-weight:400;color:#f0d271;letter-spacing:.5px;margin-left:3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .player-you-tag{font-size:8px;font-weight:800;letter-spacing:1.2px;color:var(--card-color)}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-weekly{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:39px}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-weekly>span{font-size:9px;font-weight:700;letter-spacing:.6px;color:#a5bac7}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-weekly>strong{font:28px var(--display);color:var(--gold)}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-weekly small{font:10px var(--ui);color:#a2b5c1;margin-left:3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-record{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;text-align:center;margin-top:4px;padding-top:6px}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-record>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:0 3px}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-record>div+div{border-left:1px solid #abc9ce29}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-record strong{font:19px var(--display);color:#e6ece9;overflow-wrap:anywhere}
:is(#gridlock-rival-vault,.rival-vault-inline) .driver-record span{font-size:8px;font-weight:700;letter-spacing:.4px;color:#a3b7c2}

:is(#gridlock-rival-vault,.rival-vault-inline) .card-wordmark{font-family:GridlockVault,var(--display)}
@media(max-width:600px){
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-header{padding:15px 16px 13px;gap:12px}
  :is(#gridlock-rival-vault,.rival-vault-inline) h1{font-size:29px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-close{padding:10px 15px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-scroll{padding:18px 16px 28px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-grid{grid-template-columns:minmax(0,1fr);gap:20px}
}
@media(prefers-reduced-motion:reduce){:is(#gridlock-rival-vault,.rival-vault-inline) *,:is(#gridlock-rival-vault,.rival-vault-inline) *:before,:is(#gridlock-rival-vault,.rival-vault-inline) *:after{scroll-behavior:auto!important}}

@media(max-height:560px) and (orientation:landscape){
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-header{padding-top:10px;padding-bottom:10px}
  :is(#gridlock-rival-vault,.rival-vault-inline) h1{font-size:27px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-eyebrow{font-size:8px;margin-bottom:4px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-progress{font-size:12px;margin-top:4px}
  :is(#gridlock-rival-vault,.rival-vault-inline) .rival-vault-scroll{padding-top:16px}
}

/* The Garage keeps earned cards inline. A full-width horizontal strip protects
   their readable card proportions even in the nested phone details panel. */
.rival-vault-inline{container-type:inline-size;--display:Impact,'Arial Narrow',sans-serif;--ui:'Avenir Next','Segoe UI',Arial,sans-serif;--gold:#f1cf6b;min-width:0;max-width:100%;color:#edf3ed;font-family:var(--ui)}
.rival-vault-inline .rival-vault-progress{margin:0;font-size:13px;font-weight:700}
.rival-vault-inline .rival-vault-next{margin-top:7px;font-size:13px;line-height:1.5}
.rival-vault-inline .rival-vault-empty{margin-top:14px;padding:14px;border:1px dashed #49606a;border-radius:7px;background:#0a141c99;font-size:13px;line-height:1.6}
.rival-vault-inline .rival-vault-owned-strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(260px,calc(100cqw - 6px),330px);gap:16px;max-width:100%;min-width:0;margin-top:16px;padding:4px 2px 15px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-color:#607b88 #0b141d;scrollbar-width:thin;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.rival-vault-inline .rival-vault-owned-strip[hidden]{display:none}
.rival-vault-inline .rival-vault-owned-strip:focus-visible{outline:2px solid #91e2eb;outline-offset:2px}
.rival-vault-inline .rival-vault-slot{scroll-snap-align:start;align-self:start}

#unlockedCardsVaultPanel[open] > .profile-garage-summary::after{content:"−"}
