:root{font-family:Barlow,Arial,sans-serif;color:#f2efe9;background:#101825;--surface:#1b2937;--surface2:#233445;--line:#3a4c59;--gold:#e4b96a;--muted:#a8b5be;--mine:#75d4c7;--theirs:#f39a83}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -15%,#2c4b5d 0,transparent 45%),#101825;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}.shell{max-width:1180px;margin:auto;padding:0 18px}.top{height:82px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:11px;font-weight:900;letter-spacing:.14em;font-size:17px;white-space:nowrap}.brand b{color:var(--gold)}.brand-mark{border:2px solid var(--gold);color:var(--gold);padding:7px;border-radius:8px;font-size:13px;letter-spacing:0}.account{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px}.account img{width:30px;height:30px;border-radius:50%}.account button{background:none;border:0;color:var(--muted);text-decoration:underline}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:11px;color:var(--gold);font-weight:800}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,7vw,76px);line-height:.98;letter-spacing:-.065em;margin:16px 0}h2{font-size:26px;letter-spacing:-.035em}p{color:var(--muted);line-height:1.55}.hero{padding:65px 0 38px;max-width:760px}.hero p{font-size:18px;max-width:550px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.btn{border:1px solid var(--gold);background:var(--gold);color:#182434;border-radius:9px;padding:13px 18px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:46px}.btn.secondary{background:transparent;color:var(--gold)}.btn.ghost{background:transparent;color:#f2efe9;border-color:var(--line)}.panel{border:1px solid var(--line);background:rgba(27,41,55,.88);border-radius:18px;padding:22px;margin:16px 0}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section{margin:24px 0 36px}.list{display:grid;gap:10px}.match-link{padding:15px 17px;border:1px solid var(--line);border-radius:12px;text-decoration:none;display:flex;justify-content:space-between;gap:12px;background:var(--surface)}.match-link:hover{border-color:var(--gold)}.muted{color:var(--muted)}.small{font-size:12px}.input{color:#fff;background:#101b28;border:1px solid var(--line);border-radius:9px;padding:13px;width:min(100%,290px);text-transform:uppercase;letter-spacing:.12em}.code{font-size:30px;color:var(--gold);font-weight:900;letter-spacing:.18em}.pill{border:1px solid var(--line);padding:7px 10px;border-radius:100px;font-size:12px;color:var(--muted)}.pill.turn{color:#101825;background:var(--gold);border-color:var(--gold);font-weight:800}.scoreline{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:22px;align-items:start}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;aspect-ratio:1;width:100%;max-width:560px;margin:auto}.cell{background:#152635;border:1px dashed #50707e;border-radius:12px;padding:4px;position:relative;display:grid;place-items:center;min-width:0;min-height:0;color:#90a5ad}.cell.available{border-style:solid;border-color:#d9bc7d;background:#293747}.cell.available:hover{background:#3a4b59}.cell-label{font-size:23px;opacity:.28}.card{--accent:#e4b96a;border:2px solid var(--accent);border-radius:10px;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 18%,#192837),#15202d 65%);padding:6px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:space-between;aspect-ratio:3/4;width:100%;max-width:126px;box-shadow:0 9px 18px #080d1680;position:relative;text-align:center;overflow:hidden}.card.owned{outline:3px solid var(--mine)}.card.enemy{outline:3px solid var(--theirs)}.card.selected{transform:translateY(-8px);box-shadow:0 0 0 3px var(--gold),0 16px 25px #060a14}.card .label{font-size:clamp(9px,1.4vw,12px);font-weight:800;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .category{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#cad5d6}.car-shape{width:75%;height:25%;border-radius:60% 65% 30% 25%;background:linear-gradient(140deg,#ffffff33,var(--accent));box-shadow:0 5px 0 #080f1d,0 10px 15px #0008;transform:skewX(-15deg)}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:repeat(3,1fr);place-items:center;width:76%;height:42%;font-size:clamp(12px,2.5vw,20px);font-weight:900}.stats span{background:#0b1420ba;border-radius:5px;min-width:1.4em}.stats .north{grid-area:1/2}.stats .east{grid-area:2/3}.stats .south{grid-area:3/2}.stats .west{grid-area:2/1}.hand{display:flex;gap:7px;overflow-x:auto;padding:12px 4px 20px;scroll-snap-type:x mandatory}.hand button{background:transparent;border:0;padding:0;flex:0 0 min(27vw,112px);scroll-snap-align:center}.hand .card{width:100%}.hand button:focus-visible,.cell:focus-visible,.btn:focus-visible{outline:3px solid white;outline-offset:2px}.notice{padding:14px;border-left:3px solid var(--gold);background:#37404a;border-radius:4px;color:#f5e8d0}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:15px}.cards-grid .card{max-width:none}.back{display:inline-block;margin:24px 0;color:var(--muted);text-decoration:none}.loading{padding:70px 0;color:var(--muted)}#toast{position:fixed;z-index:10;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(92vw,480px);padding:12px 18px;border-radius:10px;background:#f0c27b;color:#17202b;box-shadow:0 10px 35px #0008;font-weight:700;display:none}footer{margin:60px 0 25px;border-top:1px solid var(--line);padding-top:18px;font-size:11px;letter-spacing:.15em;color:var(--muted);display:flex;justify-content:space-between;gap:10px}@media(max-width:760px){.shell{padding:0 12px}.top{height:68px}.brand{font-size:13px}.account span{display:none}.hero{padding:44px 0 15px}.hero p{font-size:16px}.panel{padding:16px}.arena{display:block}.board{gap:5px;max-width:470px}.board .card{padding:3px;border-radius:7px}.board .card .category{font-size:7px}.board .card .label{font-size:clamp(8px,2vw,11px)}.board .card .stats{height:45%;font-size:clamp(11px,4vw,19px)}.hand{margin:0 -12px;padding-left:12px;padding-right:12px}.hand button{flex-basis:27vw}footer span{font-size:9px;text-align:right}}@media(max-width:370px){.board .card .category{display:none}.board .card .stats{font-size:12px}.hand button{flex-basis:29vw}}
/* Octane Nine visual system: track markings, stamped typography, playing cards. */
:root{font-family:Barlow,Arial,sans-serif;color:#f5f0e6;background:#0b0c0d;--surface:#191a1a;--surface2:#242524;--line:#494743;--gold:#f56a40;--muted:#b7b4ab;--mine:#74cbb0;--theirs:#ff8a64}
body{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#ffffff05 25%),radial-gradient(circle at 78% 7%,#642b1c 0,transparent 34%),#0b0c0d}
.shell{max-width:1340px;padding:0 clamp(16px,3vw,48px)}.top{height:74px;border-bottom:1px solid #78736a66}.brand{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:23px;letter-spacing:.07em;font-style:italic}.brand b{color:var(--gold)}.brand-mark{font-family:Barlow,Arial,sans-serif;font-style:normal;background:var(--gold);border:0;color:#0b0c0d;padding:9px 7px;border-radius:0;font-weight:900;transform:skew(-8deg)}
h1,h2,h3{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.005em}h1{font-size:clamp(58px,8.2vw,128px);line-height:.88;margin:20px 0 28px}h1 em{font-style:normal;color:var(--gold)}h2{font-size:clamp(30px,4vw,48px);line-height:1}.eyebrow{color:var(--gold);font-weight:900;letter-spacing:.24em}
.hero{max-width:none;min-height:560px;display:grid;grid-template-columns:1fr minmax(340px,.9fr);align-items:center;gap:12px;padding:55px 0 45px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.hero-copy{position:relative;z-index:2}.hero p{font-size:clamp(17px,2vw,22px);max-width:470px;color:#d1c9ba}.hero-caption{display:block;margin-top:55px;font:700 11px Barlow,Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:#918f89}.hero-art{height:490px;position:relative;display:grid;place-items:center;isolation:isolate}.track-ring{width:490px;height:490px;border:1px solid #e9dec02b;border-radius:50%;position:absolute;transform:rotate(-18deg) scaleX(1.26)}.track-ring:before,.track-ring:after{content:'';position:absolute;inset:29px;border:1px dashed #f56a405e;border-radius:50%}.track-ring:after{inset:65px;border-color:#e9dec025}.hero-grid{width:min(76%,350px);aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;transform:rotate(-12deg) skew(3deg);filter:drop-shadow(20px 25px 10px #000a)}.hero-grid span{display:grid;place-items:center;background:linear-gradient(145deg,#343531,#171819);border:1px solid #81796b;color:#c4baaa;font:900 38px 'Barlow Condensed','Arial Narrow',sans-serif}.hero-grid .hero-tile{background:#e9623d;color:#10100f;display:flex;flex-direction:column;justify-content:center;gap:4px;border:3px solid #ffbe84}.hero-tile b{font:900 64px 'Barlow Condensed','Arial Narrow',sans-serif}.hero-tile i{font:900 12px Barlow,Arial,sans-serif;letter-spacing:.1em}.hero-number{position:absolute;right:0;bottom:-45px;font:900 200px 'Barlow Condensed','Arial Narrow',sans-serif;color:#ffffff08;z-index:-1}
.btn{border:1px solid var(--gold);background:var(--gold);border-radius:0;color:#111;min-height:50px;text-transform:uppercase;letter-spacing:.05em;box-shadow:5px 5px 0 #b94327;font-size:13px}.btn:hover{filter:brightness(1.13)}.btn.secondary{box-shadow:none;color:#f5f0e6;border-color:#8a7363}.btn.ghost{box-shadow:none}.panel{background:#191a1ae8;border:1px solid #5d5850;border-radius:0}.rules{border-top:3px solid var(--gold);padding:26px 4px}.rule-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.rule-steps p{border-top:1px solid var(--line);padding-top:18px;font-size:15px}.rule-steps b{display:block;color:var(--gold);font:900 30px 'Barlow Condensed','Arial Narrow',sans-serif;margin-bottom:12px}.board{gap:6px;background:#363631;padding:6px;transform:rotate(0)}.cell{border-radius:0;background:#232624;border:1px solid #626257}.cell.available{background:#453127;border:1px solid var(--gold)}.card{border-radius:2px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 23%,#23221e),#141615 68%);border:2px solid var(--accent);box-shadow:4px 6px 0 #0009;transform:skew(-1deg)}.card .category{font-weight:900;color:#e5dbcb}.car-shape{height:30%;width:80%;background:linear-gradient(175deg,#faf7ec 0%,var(--accent) 32%,#171b1b 45%,var(--accent) 61%,#c2ad8d 100%);clip-path:polygon(3% 72%,10% 40%,25% 35%,36% 12%,70% 12%,84% 39%,95% 48%,100% 72%,91% 80%,86% 97%,73% 97%,69% 80%,31% 80%,28% 97%,14% 97%,10% 79%);border-radius:0;box-shadow:none;transform:none}.stats span{border:1px solid #ffffff2b;border-radius:0;background:#101211e8}.card .label{text-transform:uppercase;letter-spacing:.035em}.match-link{border-radius:0;background:#20211f}.pill{border-radius:0;text-transform:uppercase;letter-spacing:.06em}footer{border-top:2px solid var(--gold)}
@media(max-width:800px){.hero{grid-template-columns:1fr;min-height:auto;padding:42px 0 22px}.hero-copy{z-index:2}.hero-art{height:300px;grid-row:2;opacity:.9}.track-ring{width:330px;height:330px}.hero-grid{width:230px}.hero-grid span{font-size:26px}.hero-tile b{font-size:46px}.hero-caption{margin-top:34px}.rule-steps{grid-template-columns:1fr;gap:0}.rules{padding:22px 0}.hero-number{font-size:120px;bottom:-20px}.arena{display:block}}
@media(max-width:430px){h1{font-size:clamp(54px,15vw,76px)}.hero-art{height:260px}.hero-grid{width:210px}.track-ring{width:270px;height:270px}.hero-caption{font-size:9px}.brand{font-size:18px}.shell{padding:0 16px}}
/* V0.3 cards: typography first, no placeholder vehicle silhouette. */
.cards-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px 16px}.collection-item{min-width:0}.collection-item .card{max-width:none;width:100%;aspect-ratio:3/4}.collection-item>a{display:inline-block;color:#d6cfc1;font-size:12px;margin-top:10px;text-underline-offset:4px}.collection-item>a:hover{color:var(--gold)}
.card{padding:0;display:block;isolation:isolate;text-align:left;border:1px solid color-mix(in srgb,var(--accent) 70%,#d9d0be);background:linear-gradient(146deg,color-mix(in srgb,var(--accent) 16%,#2a2a27),#111311 56%);box-shadow:0 8px 0 #080908,0 16px 25px #0008;transform:none;overflow:hidden}.card:before{content:'';position:absolute;inset:5px;border:1px solid #ffffff29;pointer-events:none}.card:after{content:'';position:absolute;width:85%;height:68%;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.12;transform:rotate(-30deg);right:-30%;top:18%;pointer-events:none}.card-top{height:14%;display:flex;align-items:center;justify-content:space-between;padding:0 8%;border-bottom:1px solid #ffffff33;position:relative;z-index:1}.card-no{font-size:clamp(9px,1vw,12px);color:var(--accent);font-weight:900;letter-spacing:.12em}.card .category{font-size:clamp(8px,.8vw,10px);color:#e8e3d8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.card-identity{position:absolute;z-index:2;top:17%;left:8%;right:7%;display:grid;gap:2px}.card-brand{font-size:clamp(10px,1.1vw,13px);color:var(--accent);letter-spacing:.17em;text-transform:uppercase;font-weight:900}.card-model{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(16px,1.8vw,25px);line-height:1.02;letter-spacing:.02em;text-transform:uppercase;color:#faf5eb;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:2.05em}.card-center{position:absolute;inset:37% 0 19%;display:grid;place-items:center;overflow:hidden}.card-mark{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(50px,6vw,92px);line-height:.8;letter-spacing:-.05em;color:var(--accent);opacity:.23;transform:skew(-14deg)}.card-stroke{position:absolute;width:120%;height:4px;background:var(--accent);left:-10%;top:60%;transform:rotate(-13deg);opacity:.55}.card-bottom{position:absolute;bottom:0;left:0;right:0;height:15%;border-top:1px solid #ffffff40;background:#0d100fea;display:flex;align-items:center;justify-content:space-between;gap:3px;padding:0 8%;font-size:clamp(8px,.9vw,11px);font-weight:900;z-index:3}.card-power{color:#f9f5e9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-index{color:var(--accent);letter-spacing:.08em;white-space:nowrap}.card .stats{position:absolute;inset:38% 10% 19%;height:auto;width:auto;z-index:4;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(15px,2vw,25px);pointer-events:none}.card .stats span{display:grid;place-items:center;background:#0c0f0de8;color:#f6f2e8;min-width:1.5em;min-height:1.5em;border:1px solid color-mix(in srgb,var(--accent) 60%,#ded8cf);font-family:'Barlow Condensed','Arial Narrow',sans-serif}.card .stats .north{grid-area:1/2;align-self:start}.card .stats .east{grid-area:2/3;justify-self:end}.card .stats .south{grid-area:3/2;align-self:end}.card .stats .west{grid-area:2/1;justify-self:start}.card.selected{transform:translateY(-8px);box-shadow:0 0 0 3px var(--gold),0 16px 25px #060a14}
.board .card{height:100%;max-width:none}.board .card-top{padding:0 6%}.board .card-identity{top:15%;left:6%;right:5%}.board .card-brand{font-size:clamp(6px,.9vw,9px)}.board .card-model{font-size:clamp(10px,1.3vw,16px)}.board .card-no,.board .card .category{font-size:clamp(6px,.8vw,9px)}.board .card .stats{font-size:clamp(10px,1.5vw,20px);inset:42% 5% 15%}.board .card-bottom{height:14%;padding:0 5%;font-size:clamp(6px,.8vw,9px)}.hand .card{max-width:none}.hand .card-brand{font-size:9px}.hand .card-model{font-size:clamp(11px,1.5vw,18px)}.hand .card .stats{font-size:clamp(12px,2vw,18px)}
@media(max-width:760px){.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}.collection-item .card-brand{font-size:11px}.collection-item .card-model{font-size:clamp(16px,4vw,24px)}.collection-item .card .stats{font-size:clamp(16px,4.3vw,23px)}.board .card .category{display:none}.board .card-no{font-size:7px}.board .card-brand{font-size:7px}.board .card-model{font-size:clamp(9px,2.2vw,13px)}.board .card .stats{font-size:clamp(10px,3.4vw,16px)}.board .card-bottom{font-size:7px}.board .card-index{display:none}.hand .card .stats{font-size:clamp(12px,4vw,16px)}}
@media(max-width:370px){.cards-grid{gap:10px}.board .card-model{font-size:9px}.board .card .stats{font-size:10px}}


/* Drift9 v0.4 — TCG card anatomy: art upper half, information lower half, stats in border. */
.card{aspect-ratio:63/88;position:relative;padding:0;border-width:2px;background:#111311}
.card-top{height:9%;padding:0 7%;background:#0b0d0c;border-bottom:1px solid #ffffff28}
.card-rarity{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(10px,1vw,13px);color:var(--accent);letter-spacing:.08em}
.card-art{position:absolute;inset:9% 5% 45%;overflow:hidden;border-bottom:1px solid #ffffff30;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 22%,#262824),#0e100f 76%)}
.card-art .card-brand{position:absolute;left:6%;top:7%;z-index:2}
.card-art .card-model{position:absolute;left:6%;right:6%;top:20%;z-index:2}
.card-art .card-mark{position:absolute;right:6%;bottom:0;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-size:clamp(52px,7vw,108px);line-height:.75;color:var(--accent);opacity:.18;transform:skew(-12deg)}
.card-info{position:absolute;left:5%;right:5%;top:57%;bottom:7%;padding:8% 7% 5%;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;background:#0d100ff2;border-top:1px solid #ffffff24;font-size:clamp(7px,.8vw,10px);text-transform:uppercase;letter-spacing:.035em}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;border-top:1px solid #ffffff14;padding-top:4px;color:#ddd7cc}
.card-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .stats{position:absolute;inset:7% 2.5% 3%;width:auto;height:auto;z-index:6;pointer-events:none;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}
.card .stats span{font-size:clamp(11px,1.6vw,20px);min-width:2em;min-height:1.6em;padding:2px 4px}
.card .stats .north{grid-area:1/2;align-self:start;justify-self:center}
.card .stats .east{grid-area:2/3;align-self:center;justify-self:end}
.card .stats .south{grid-area:3/2;align-self:end;justify-self:center}
.card .stats .west{grid-area:2/1;align-self:center;justify-self:start}
.board .card-art{inset:9% 4% 45%}.board .card-info{left:4%;right:4%;font-size:6px;padding-left:5%;padding-right:5%}.board .card .stats{inset:5% 1% 2%}
.hand .card-info{font-size:6px}.hand .card-meta:nth-child(2){display:none}
@media(max-width:760px){.collection-item .card-info{font-size:8px}.collection-item .card .stats span{font-size:clamp(12px,3.7vw,19px)}.board .card-info{display:none}.board .card-art{bottom:10%}.hand .card-info{display:none}.hand .card-art{bottom:10%}}


/* Drift9 v0.4 admin + solo */
.solo-panel{border:1px solid #6e5a4d;background:linear-gradient(110deg,#1b1a18,#2c211b);padding:24px;margin:24px 0}
.admin-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:30px 0 16px}.admin-head h1{margin-bottom:0}
.admin-nav{display:flex;gap:8px;margin-bottom:18px;position:sticky;top:8px;z-index:8;background:#0b0c0de8;padding:8px 0;backdrop-filter:blur(10px)}
.admin-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:18px;align-items:start}
.admin-form{position:sticky;top:74px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.admin-form label{display:grid;gap:6px;color:#d9d1c5;font-size:12px}.admin-form .input{text-transform:none;letter-spacing:0;width:100%;max-width:none}
.admin-form select.input{appearance:auto}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important;margin:16px 0}.check input{width:auto}
.rarity-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.rarity-grid label{text-align:center}.rarity-grid .input{text-align:center;padding:10px 6px}
.admin-items{display:grid;gap:8px;max-height:72vh;overflow:auto;padding-right:4px}.admin-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #494743;background:#121413;padding:12px}
.admin-item>div:first-child{min-width:0;display:grid;gap:4px}.admin-item strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-item span{font-size:11px;color:var(--muted)}
.admin-item-actions{display:flex;gap:6px;align-items:center;flex:0 0 auto}.admin-item-actions .btn{min-height:34px;padding:7px 9px;font-size:10px}.admin-item.archived{opacity:.48}
.admin-list h2,.admin-form h2{margin-bottom:12px}.admin-form h3{font-size:18px;margin:20px 0 8px}
.card-logo{max-width:44px;max-height:20px;object-fit:contain;filter:grayscale(1) brightness(2)}
@media(max-width:920px){.admin-layout{grid-template-columns:1fr}.admin-form{position:static}.admin-items{max-height:none}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.admin-head{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.rarity-grid{grid-template-columns:repeat(3,1fr)}.admin-item{align-items:flex-start;flex-direction:column}.admin-item-actions{width:100%}.admin-item-actions .btn{flex:1}.solo-panel{padding:18px}}


/* Drift9 v0.5 — Arnaud-inspired compact trading card */
.cards-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px}
.collection-item{display:grid;gap:8px}.collection-item>a{font-size:11px;color:var(--muted);text-decoration:none}
.card{
  --accent:#d8d2c8;
  width:100%;
  max-width:250px;
  aspect-ratio:63/88;
  padding:0;
  border:3px solid var(--accent);
  border-radius:18px;
  background:#f5f2ea;
  color:#101211;
  overflow:hidden;
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(0,1.28fr) minmax(82px,.72fr) auto;
  align-items:stretch;
  transform:none;
  box-shadow:0 12px 28px #0007;
  text-align:left;
}
.card:before{content:"";position:absolute;inset:6px;border:2px solid #111;border-radius:13px;pointer-events:none;z-index:5}
.card-nameplate{height:38px;margin:10px 13px 0;padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:2px solid #111;text-transform:uppercase;font-weight:900;line-height:1;z-index:3}
.card-maker{font-size:clamp(10px,1.2vw,14px);letter-spacing:.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-model-name{font-size:clamp(10px,1.15vw,14px);color:color-mix(in srgb,var(--accent) 70%,#111);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-visual{margin:0 13px;position:relative;border:2px solid #111;border-top:0;background:linear-gradient(155deg,#dfe7eb,#fff 70%);overflow:hidden;min-height:0}
.card-vehicle-image{width:100%;height:100%;object-fit:cover;display:block}
.card-vehicle-placeholder{height:100%;min-height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;background:
  linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,#e7ebed),#fff 62%),
  repeating-linear-gradient(90deg,transparent 0 24px,#11108 24px 25px)}
.card-vehicle-placeholder span{font:900 clamp(46px,6vw,72px) 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:-.04em;color:#1112}
.card-vehicle-placeholder strong{font:900 clamp(12px,1.5vw,17px) 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;color:#111b;max-width:82%;text-align:center}
.card-rarity{position:absolute;top:8px;right:8px;min-width:30px;height:30px;display:grid;place-items:center;border:2px solid #111;background:var(--accent);font-weight:900;font-size:11px;z-index:2}
.stats-diamond{
  position:absolute;
  left:50%;
  top:56%;
  width:96px;
  height:96px;
  transform:translate(-50%,-50%) rotate(45deg);
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  background:#fff;
  border:3px solid #111;
  z-index:7;
  box-shadow:0 4px 0 #0002
}
.stats-diamond span{display:grid;place-items:center;border:1px solid #111;font:900 19px/1 Barlow,Arial,sans-serif;transform:rotate(-45deg);background:#fff}
.stats-diamond .north{grid-area:1/1}.stats-diamond .east{grid-area:1/2}.stats-diamond .west{grid-area:2/1}.stats-diamond .south{grid-area:2/2}
.card-body{margin:0 13px;padding:34px 10px 8px;border-left:2px solid #111;border-right:2px solid #111;background:#fff;display:grid;gap:7px;align-content:start;min-height:0}
.card-id-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:26px}
.card-brand-lockup{display:flex;align-items:center;min-height:24px}.card-brand-word{font:900 13px Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.card-logo{max-width:62px;max-height:26px;object-fit:contain;filter:none}
.card-country{font-size:26px;line-height:1}
.card-specs{display:flex;gap:6px;flex-wrap:wrap}.card-specs span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:1px solid #111;padding:4px 6px;background:#f2f0ea}
.card-signature{margin:0!important;color:#4d4b47!important;font-size:10px!important;line-height:1.25!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-footer{height:36px;margin:0 13px 10px;padding:0 10px;border:2px solid #111;border-top:2px solid #111;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;text-transform:uppercase;font-weight:900;font-size:11px}
.card-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card.owned{outline:4px solid var(--mine);outline-offset:1px}.card.enemy{outline:4px solid var(--theirs);outline-offset:1px}.card.selected{transform:translateY(-7px);box-shadow:0 0 0 4px var(--gold),0 18px 32px #0009}
.rarity-c{--accent:#e8e5df}.rarity-nc{--accent:#7ad98b}.rarity-r{--accent:#69a4ff}.rarity-sr{--accent:#b181ff}.rarity-ur{--accent:#f2d354}.rarity-ss{--accent:#ff665c}
.catalogue-intro{max-width:760px}.catalogue-toolbar{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(160px,.8fr) minmax(160px,.8fr) auto;gap:10px;align-items:center;margin:20px 0 24px}
.catalogue-toolbar .input{width:100%;max-width:none;text-transform:none;letter-spacing:0}.catalogue-toolbar .pill{white-space:nowrap;text-align:center}
.board .card{max-width:none;border-radius:7px;border-width:2px}
.board .card:before{inset:3px;border-width:1px;border-radius:4px}
.board .card-nameplate{height:18px;margin:4px 5px 0;padding:0 3px;border-bottom-width:1px}.board .card-maker,.board .card-model-name{font-size:6px}
.board .card-visual{margin:0 5px;border-width:1px}.board .card-rarity{width:14px;min-width:14px;height:14px;top:3px;right:3px;border-width:1px;font-size:5px}
.board .card-vehicle-placeholder{min-height:0}.board .card-vehicle-placeholder span{font-size:20px}.board .card-vehicle-placeholder strong{display:none}
.board .stats-diamond{width:38px;height:38px;border-width:1px;top:55%}.board .stats-diamond span{font-size:8px;border-width:.5px}
.board .card-body{margin:0 5px;padding:14px 3px 2px;border-width:1px;gap:2px}.board .card-id-row{min-height:10px}.board .card-brand-word{font-size:5px}.board .card-logo{max-width:18px;max-height:8px}.board .card-country{font-size:8px}.board .card-specs,.board .card-signature{display:none}
.board .card-footer{height:14px;margin:0 5px 4px;padding:0 3px;border-width:1px;font-size:5px}
.hand .card{max-width:none}.hand .card-nameplate{height:24px;margin:6px 7px 0;padding:0 5px}.hand .card-maker,.hand .card-model-name{font-size:8px}.hand .card-visual{margin:0 7px}.hand .stats-diamond{width:56px;height:56px;top:56%;border-width:2px}.hand .stats-diamond span{font-size:11px}.hand .card-body{margin:0 7px;padding:22px 5px 4px;gap:3px}.hand .card-country{font-size:13px}.hand .card-brand-word{font-size:7px}.hand .card-logo{max-width:28px;max-height:12px}.hand .card-specs span{font-size:5px;padding:2px 3px}.hand .card-signature{display:none}.hand .card-footer{height:20px;margin:0 7px 6px;padding:0 5px;font-size:7px}
@media(max-width:760px){.catalogue-toolbar{grid-template-columns:1fr 1fr}.catalogue-toolbar .catalogue-search{grid-column:1/-1}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cards-grid .card{max-width:none}.card-nameplate{height:31px;margin:8px 10px 0}.card-visual,.card-body,.card-footer{margin-left:10px;margin-right:10px}.stats-diamond{width:74px;height:74px}.stats-diamond span{font-size:14px}.card-body{padding-top:27px}.card-footer{margin-bottom:8px}.card-country{font-size:20px}}
@media(max-width:390px){.cards-grid{grid-template-columns:1fr}.catalogue-toolbar{grid-template-columns:1fr}.catalogue-toolbar .catalogue-search{grid-column:auto}.collection-item .card{max-width:280px;margin:auto}}

/* Rarity owns the card frame; optional admin accent only affects the visual well. */
.card{--rarity:#e8e5df;--vehicle-accent:#d8d2c8;border-color:var(--rarity)}
.card-model-name{color:color-mix(in srgb,var(--rarity) 70%,#111)}
.card-rarity{background:var(--rarity)}
.card-vehicle-placeholder{background:linear-gradient(160deg,color-mix(in srgb,var(--vehicle-accent) 22%,#e7ebed),#fff 62%),repeating-linear-gradient(90deg,transparent 0 24px,#11108 24px 25px)}
.rarity-c{--rarity:#e8e5df}.rarity-nc{--rarity:#7ad98b}.rarity-r{--rarity:#69a4ff}.rarity-sr{--rarity:#b181ff}.rarity-ur{--rarity:#f2d354}.rarity-ss{--rarity:#ff665c}


/* Drift9 v0.6 — match-first responsive game system */
:root{
  --you:#ff6b3d;
  --rival:#62a7ff;
  --ink:#0b0c0d;
  --paper:#f5f0e6;
  --race-panel:#171918;
  --race-panel-2:#202321;
}

/* Cards: Arnaud's hierarchy, Drift9's visual language */
.card{
  --rarity:#b8b5ad;
  --vehicle-accent:#5b5f5b;
  width:100%;
  max-width:250px;
  aspect-ratio:63/88;
  padding:0;
  border:1px solid color-mix(in srgb,var(--rarity) 62%,#242522);
  border-radius:5px;
  background:
    linear-gradient(160deg,color-mix(in srgb,var(--vehicle-accent) 12%,#232522),#101211 55%),
    #101211;
  color:var(--paper);
  overflow:hidden;
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(0,1.34fr) minmax(72px,.66fr) auto;
  align-items:stretch;
  transform:none;
  box-shadow:5px 7px 0 #0008;
  text-align:left;
}
.card:before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid #ffffff16;
  border-radius:2px;
  pointer-events:none;
  z-index:5;
}
.card:after{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;width:4px;
  background:var(--rarity);
  opacity:.95;
  z-index:6;
}
.card-nameplate{
  min-height:34px;
  margin:0;
  padding:8px 9px 7px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
  border:0;
  border-bottom:1px solid #ffffff18;
  background:linear-gradient(90deg,#282a27,#151715);
  text-transform:uppercase;
  font-weight:900;
  line-height:1;
  z-index:3;
}
.card-maker{font:900 10px/1 Barlow,Arial,sans-serif;letter-spacing:.12em;color:#d8d2c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-model-name{font:900 10px/1 Barlow,Arial,sans-serif;letter-spacing:.02em;color:var(--rarity);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-visual{
  margin:0;
  position:relative;
  border:0;
  border-bottom:1px solid #ffffff16;
  background:
    linear-gradient(135deg,#ffffff08,transparent 32%),
    repeating-linear-gradient(90deg,transparent 0 39px,#ffffff05 40px),
    #202320;
  overflow:hidden;
  min-height:0;
}
.card-visual:after{
  content:"";
  position:absolute;
  left:-10%;right:-10%;bottom:14%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--you),transparent);
  opacity:.45;
  transform:rotate(-5deg);
}
.card-vehicle-image{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.86) contrast(1.05)}
.card-vehicle-placeholder{
  height:100%;min-height:120px;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  background:
    radial-gradient(circle at 65% 38%,color-mix(in srgb,var(--vehicle-accent) 30%,transparent),transparent 38%),
    linear-gradient(155deg,#272a27,#131513 72%);
}
.card-vehicle-placeholder span{font:900 clamp(38px,5vw,62px)/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:-.06em;color:#ffffff0e;font-style:italic}
.card-vehicle-placeholder strong{font:900 clamp(9px,1.2vw,13px)/1.05 Barlow,Arial,sans-serif;text-transform:uppercase;color:#f5f0e699;max-width:78%;text-align:center;letter-spacing:.05em}
.card-rarity{
  position:absolute;top:7px;right:7px;min-width:27px;height:23px;
  display:grid;place-items:center;border:1px solid #000;
  background:var(--rarity);color:#0c0d0c;
  font:900 9px/1 Barlow,Arial,sans-serif;z-index:8;
  box-shadow:2px 2px 0 #0008;
}
.stats-diamond{
  position:absolute;
  left:50%;top:56%;
  width:84px;height:84px;
  transform:translate(-50%,-50%) rotate(45deg);
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;
  background:#111311;
  border:2px solid #d8d2c5;
  z-index:9;
  box-shadow:5px 5px 0 #0007;
}
.stats-diamond span{
  display:grid;place-items:center;
  border:1px solid #4c4d48;
  font:900 16px/1 'Barlow Condensed','Arial Narrow',sans-serif;
  transform:rotate(-45deg);
  background:#151715;color:#f6efe3;
}
.stats-diamond span:after{font:700 5px/1 Barlow,Arial,sans-serif;color:#928e84;position:absolute;letter-spacing:.03em}
.stats-diamond .north{grid-area:1/1}.stats-diamond .east{grid-area:1/2}.stats-diamond .west{grid-area:2/1}.stats-diamond .south{grid-area:2/2}
.card-body{
  margin:0;
  padding:28px 10px 7px 12px;
  border:0;
  background:linear-gradient(180deg,#1b1d1b,#121412);
  display:grid;gap:5px;align-content:start;min-height:0;
}
.card-id-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:21px}
.card-brand-lockup{display:flex;align-items:center;min-height:18px}
.card-brand-word{font:900 9px Barlow,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#e5ded2}
.card-logo{max-width:52px;max-height:19px;object-fit:contain;filter:grayscale(1) brightness(2)}
.card-country{font-size:19px;line-height:1;filter:saturate(.82)}
.card-specs{display:flex;gap:4px;flex-wrap:wrap}
.card-specs span{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border:1px solid #4b4b46;padding:3px 5px;background:#242623;color:#c9c2b6}
.card-signature{margin:0!important;color:#85827a!important;font-size:8px!important;line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-footer{
  min-height:27px;margin:0;padding:0 9px 0 12px;
  border:0;border-top:1px solid #44443f;
  display:flex;align-items:center;justify-content:space-between;gap:7px;
  background:#0f110f;text-transform:uppercase;font-weight:900;font-size:8px;color:#d4cec2;
}
.card-footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-owner-tag{
  position:absolute;left:8px;top:42px;z-index:12;
  padding:4px 6px;
  font:900 7px/1 Barlow,Arial,sans-serif;letter-spacing:.1em;
  color:#080908;background:var(--you);
  box-shadow:2px 2px 0 #0008;
}
.card.enemy .card-owner-tag{background:var(--rival)}
.card.owned,.card.enemy{outline:none!important}
.card.owned{border-color:var(--you);box-shadow:inset 4px 0 0 var(--you),5px 7px 0 #0008,0 0 18px #ff6b3d18}
.card.enemy{border-color:var(--rival);box-shadow:inset 4px 0 0 var(--rival),5px 7px 0 #0008,0 0 18px #62a7ff16}
.card.owned .card-nameplate{background:linear-gradient(90deg,#402117,#171817)}
.card.enemy .card-nameplate{background:linear-gradient(90deg,#172b42,#171817)}
.card.selected{transform:translateY(-4px)!important;box-shadow:0 0 0 2px var(--you),6px 10px 0 #0009!important}

/* Match layout */
.match-page{max-width:1180px;margin:0 auto;padding-bottom:40px}
.match-topbar{
  min-height:66px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;
  margin:8px 0 14px;border-bottom:1px solid #504c45;padding-bottom:9px;
}
.match-back{margin:0;justify-self:start}
.match-context{text-align:center;display:grid;gap:3px}.match-context strong{font:900 18px 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.04em}
.match-actions{justify-self:end;display:flex;align-items:center;gap:8px}
.match-rule-btn,.race-rules{
  border:1px solid #5b5750;background:transparent;color:#d6cfc2;
  padding:9px 11px;text-transform:uppercase;letter-spacing:.08em;font:800 10px Barlow,Arial,sans-serif
}
.match-rule-btn:hover,.race-rules:hover{border-color:var(--you);color:#fff}
.turn-light{border:1px solid #494740;padding:9px 11px;font:900 10px Barlow,Arial,sans-serif;letter-spacing:.1em;color:#87847d}
.turn-light.active{background:var(--you);border-color:var(--you);color:#111;box-shadow:4px 4px 0 #8d321a}

.live-score{
  display:grid;grid-template-columns:minmax(120px,180px) minmax(240px,1fr) minmax(120px,180px);
  align-items:stretch;gap:1px;margin:14px 0 20px;
  background:#545049;border:1px solid #545049;
}
.score-player{
  min-height:112px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;
  background:#161817;position:relative;overflow:hidden
}
.score-player:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--you)}
.score-player.rival:before{left:auto;right:0;background:var(--rival)}
.score-player.rival{text-align:right}
.score-player>span:first-child{font:900 10px Barlow,Arial,sans-serif;letter-spacing:.16em;color:var(--you)}
.score-player.rival>span:first-child{color:var(--rival);grid-column:1}
.score-player>strong{grid-row:1/3;grid-column:2;font:900 54px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#f5f0e6;align-self:center}
.score-player.rival>strong{grid-column:1;grid-row:1/3}
.score-player>small{font-size:10px;color:#8d8a82;align-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-player.rival>small{grid-column:2}
.round-dots{display:flex;gap:4px;align-items:end}.score-player.rival .round-dots{justify-content:flex-end;grid-column:2}
.round-dots i{width:13px;height:4px;background:#3b3c38;display:block}.round-dots.you i.won{background:var(--you)}.round-dots.rival i.won{background:var(--rival)}
.score-center{background:#202220;padding:14px 18px;display:flex;flex-direction:column;justify-content:center;gap:7px;text-align:center}
.score-round{font:900 9px Barlow,Arial,sans-serif;letter-spacing:.2em;color:#817e77}
.score-meter{height:8px;background:var(--rival);position:relative;overflow:hidden}
.score-meter i{position:absolute;inset:0 auto 0 0;background:var(--you);transition:width .4s cubic-bezier(.2,.8,.2,1)}
.score-message{font:900 14px/1.1 Barlow,Arial,sans-serif;text-transform:uppercase;color:#eee6d8}
.move-impact{font:900 9px Barlow,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--you)}
.live-score.score-updated .score-player>strong{animation:scorePop .38s ease-out}

.battle-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.board-panel{border-top:3px solid var(--you);background:#171918;padding:14px}
.board-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}
.ownership-key{display:flex;gap:10px;font:800 8px Barlow,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#8f8c84}
.ownership-key span:before{content:"";display:inline-block;width:12px;height:4px;margin-right:5px;vertical-align:middle}.key-you:before{background:var(--you)}.key-rival:before{background:var(--rival)}
.board{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));
  gap:7px;aspect-ratio:1;width:min(100%,660px);max-width:none;margin:0 auto;padding:7px;
  background:
    linear-gradient(90deg,transparent 49.7%,#ffffff05 50%,transparent 50.3%),
    linear-gradient(0deg,transparent 49.7%,#ffffff05 50%,transparent 50.3%),
    #0d0f0e;
  border:1px solid #4b4a45;
}
.cell{
  border-radius:0;padding:3px;min-width:0;min-height:0;
  background:#1b1e1c;border:1px solid #424440;color:#74766f;
  display:grid;place-items:center;position:relative;overflow:visible
}
.cell.empty{border-style:dashed;background:linear-gradient(135deg,#171917,#111311)}
.cell.empty.drop-ready{cursor:crosshair}
.cell.empty.available,.cell.empty.drop-target{border-style:solid;border-color:var(--you);background:#2b1d18;box-shadow:inset 0 0 0 2px #ff6b3d25}
.cell.empty.drop-target{animation:dropPulse .7s infinite alternate}
.cell-cross{font:900 24px/1 Barlow,Arial,sans-serif;color:#ffffff16}.cell.empty small{position:absolute;bottom:6px;font:800 6px Barlow,Arial,sans-serif;letter-spacing:.16em;color:#ff6b3d70}
.cell.committing{pointer-events:none}
.board .card{
  width:100%;height:100%;max-width:none;aspect-ratio:auto;
  border-radius:2px;box-shadow:none;
  grid-template-rows:20px 1fr 16px;
}
.board .card:before{inset:2px;border-radius:0}
.board .card-nameplate{min-height:20px;height:20px;padding:4px 4px 3px 6px;margin:0}
.board .card-maker,.board .card-model-name{font-size:clamp(5px,.65vw,8px)}
.board .card-maker{letter-spacing:.05em}
.board .card-visual{margin:0;min-height:0}
.board .card-rarity{min-width:16px;width:16px;height:14px;top:3px;right:3px;font-size:5px;border-width:1px}
.board .card-vehicle-placeholder{min-height:0}.board .card-vehicle-placeholder span{font-size:clamp(17px,3vw,35px)}.board .card-vehicle-placeholder strong{font-size:clamp(5px,.7vw,8px)}
.board .stats-diamond{width:clamp(37px,6.2vw,64px);height:clamp(37px,6.2vw,64px);top:58%;border-width:1px;box-shadow:2px 2px 0 #0007}
.board .stats-diamond span{font-size:clamp(7px,1.25vw,12px);border-color:#3f403c}
.board .card-body{display:none!important}
.board .card-footer{min-height:16px;height:16px;margin:0;padding:0 4px 0 6px;font-size:clamp(4px,.6vw,7px)}
.board .card-owner-tag{left:4px;top:24px;padding:2px 3px;font-size:4px;letter-spacing:.04em}
.board .card.owned{box-shadow:inset 4px 0 0 var(--you),0 0 0 1px var(--you)!important}
.board .card.enemy{box-shadow:inset 4px 0 0 var(--rival),0 0 0 1px var(--rival)!important}

.race-panel{background:#171918;border:1px solid #4a4842;border-top:3px solid #6b665c;padding:16px;display:grid;gap:15px}
.race-status{display:grid;grid-template-columns:10px 1fr;gap:5px 9px;border-top:1px solid #46443f;border-bottom:1px solid #46443f;padding:13px 0}
.race-status i{width:9px;height:9px;background:#555750;align-self:center}.race-status.your-turn i{background:var(--you);box-shadow:0 0 12px #ff6b3d88}
.race-status strong{font:900 14px Barlow,Arial,sans-serif;letter-spacing:.09em}.race-status span{grid-column:2;font-size:9px;color:#89867e}
.race-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.race-kpis div{background:#222421;padding:9px 7px;display:grid;gap:5px}.race-kpis span{font-size:7px;text-transform:uppercase;letter-spacing:.06em;color:#77746e}.race-kpis strong{font:900 21px 'Barlow Condensed','Arial Narrow',sans-serif}
.race-rules{text-align:left;width:100%}

.hand-panel{margin-top:18px;border-top:3px solid #5d5951;background:#171918;padding:14px 14px 12px}
.hand-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.hand-head h3{margin:4px 0 0;font-size:18px}.hand-hint{font-size:9px;color:#85827a;text-transform:uppercase;letter-spacing:.08em}
.hand.hand-grid{
  display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(5px,1vw,12px);
  width:100%;overflow:visible!important;padding:0!important;margin:0!important;scroll-snap-type:none!important
}
.hand-card{
  min-width:0;width:100%;padding:0;border:0;background:transparent;
  display:block;touch-action:none;position:relative
}
.hand-card:disabled{opacity:.58}
.hand-card .card{width:100%;max-width:none;height:auto;aspect-ratio:63/88;box-shadow:3px 5px 0 #0008}
.hand-card.is-dragging{opacity:.25}
.hand-note{margin:9px 0 0!important;font-size:9px!important;color:#77746e!important}
.match-end-actions{display:flex;justify-content:center;margin-top:18px}

.drag-ghost.card{
  position:fixed!important;z-index:9999!important;pointer-events:none!important;
  width:130px!important;height:auto!important;max-width:none!important;
  left:0;top:0;transform:translate(-50%,-62%) rotate(-4deg)!important;
  opacity:.92;box-shadow:12px 16px 30px #000b!important;
  transition:none!important;
}
body.dragging-card{cursor:grabbing}

/* Rules in-match */
.rules-dialog{width:min(760px,calc(100vw - 24px));max-height:90vh;padding:0;border:1px solid #5a564e;background:#101210;color:#f5f0e6;box-shadow:0 30px 100px #000c}
.rules-dialog::backdrop{background:#050605d9;backdrop-filter:blur(4px)}
.rules-card{padding:22px}.rules-head{display:flex;justify-content:space-between;gap:18px;align-items:start;border-bottom:1px solid #4b4842;padding-bottom:14px;margin-bottom:14px}
.rules-head h2{margin:5px 0 0;font-size:34px}.rules-close{width:38px;height:38px;border:1px solid #57534c;background:#1c1e1c;color:#fff;font-size:24px}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rules-grid article{background:#1b1d1b;padding:13px;border-left:3px solid #514e47}.rules-grid b{display:block;color:var(--you);font:900 20px 'Barlow Condensed','Arial Narrow',sans-serif}.rules-grid strong{font:900 11px Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}.rules-grid p{font-size:11px;margin:6px 0 0;color:#a8a39a}
.rules-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.rules-stats span{background:#222421;padding:10px;display:grid;gap:3px}.rules-stats i{font:900 20px 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--you);font-style:normal}.rules-stats b{font-size:9px;text-transform:uppercase}.rules-stats small{font-size:7px;color:#86827b}
.rules-foot{font-size:10px;margin:12px 0 0;color:#8d8980}

/* Placement / capture feedback */
.cell.just-played .card{animation:cardLand .48s cubic-bezier(.16,.9,.28,1.2)}
.cell.just-played:after{content:"";position:absolute;inset:-3px;border:2px solid var(--you);animation:impactRing .65s ease-out;pointer-events:none;z-index:20}
.cell.just-captured .card{animation:captureSwitch .72s ease both}
.cell.just-captured:after{content:"CAPTURE";position:absolute;inset:0;display:grid;place-items:center;background:#ff6b3d24;color:#fff;font:900 clamp(7px,1vw,11px) 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.12em;z-index:25;animation:captureFlash .78s ease both;pointer-events:none}

@keyframes cardLand{0%{transform:translateY(-28px) scale(1.08);opacity:.15}65%{transform:translateY(3px) scale(.99);opacity:1}100%{transform:none}}
@keyframes impactRing{0%{opacity:1;transform:scale(.75)}100%{opacity:0;transform:scale(1.12)}}
@keyframes captureSwitch{0%{transform:rotateY(0);filter:brightness(1)}45%{transform:rotateY(90deg) scale(.95);filter:brightness(1.8)}100%{transform:rotateY(0);filter:brightness(1)}}
@keyframes captureFlash{0%,15%{opacity:0}40%{opacity:1}100%{opacity:0}}
@keyframes scorePop{0%{transform:scale(.76);color:var(--you)}70%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes dropPulse{from{box-shadow:inset 0 0 0 2px #ff6b3d22,0 0 0 #ff6b3d00}to{box-shadow:inset 0 0 0 2px #ff6b3d55,0 0 20px #ff6b3d33}}

/* Invitation */
.invite-panel{max-width:620px;margin:40px auto}

/* Desktop hand: five equal cards, never one odd-sized */
@media(min-width:761px){
  .hand-card .card{max-height:245px}
}

/* Tablet / phone */
@media(max-width:900px){
  .battle-layout{grid-template-columns:1fr}
  .race-panel{grid-template-columns:1fr auto;align-items:start}
  .race-panel>.eyebrow{grid-column:1/-1}.race-status{margin:0}.race-kpis{min-width:210px}.race-rules{grid-column:1/-1}
}
@media(max-width:760px){
  .match-page{margin:0 -4px}
  .match-topbar{grid-template-columns:auto 1fr auto;gap:8px;min-height:54px}
  .match-context{text-align:left}.match-context .eyebrow{display:none}.match-context strong{font-size:14px}
  .match-rule-btn{padding:8px;font-size:8px}.turn-light{padding:8px;font-size:8px}
  .live-score{grid-template-columns:84px minmax(0,1fr) 84px;margin-top:8px}
  .score-player{min-height:86px;padding:9px 10px}.score-player>strong{font-size:37px}.score-player>span:first-child{font-size:8px}.score-player>small{font-size:7px}
  .score-center{padding:9px 7px;gap:5px}.score-message{font-size:9px}.score-meter{height:6px}.move-impact{font-size:7px}.score-round{font-size:6px}
  .round-dots i{width:8px;height:3px}
  .board-panel{padding:8px}.board-head{margin-bottom:7px}.ownership-key{font-size:6px}
  .board{gap:4px;padding:4px}
  .race-panel{padding:10px;gap:8px}.race-status{padding:7px 0}.race-status strong{font-size:10px}.race-status span{font-size:7px}.race-kpis div{padding:6px 5px}.race-kpis strong{font-size:16px}
  .hand-panel{padding:9px 6px 8px;margin-top:10px}.hand-head{margin-bottom:6px}.hand-head h3{font-size:12px}.hand-hint{font-size:6px}
  .hand.hand-grid{gap:4px}
  .hand-card .card{
    aspect-ratio: .72;
    grid-template-rows:16px 1fr 13px;
    min-width:0;
  }
  .hand .card:before{inset:2px}
  .hand .card-nameplate{min-height:16px;height:16px;padding:3px 2px 2px 4px}
  .hand .card-maker,.hand .card-model-name{font-size:clamp(4px,1.45vw,6px);letter-spacing:0}
  .hand .card-model-name{max-width:55%}
  .hand .card-visual{min-height:0}
  .hand .card-rarity{min-width:13px;width:13px;height:11px;top:2px;right:2px;font-size:4px;border:0}
  .hand .card-vehicle-placeholder{min-height:0}.hand .card-vehicle-placeholder span{font-size:18px}.hand .card-vehicle-placeholder strong{font-size:4px}
  .hand .stats-diamond{width:31px;height:31px;top:59%;border-width:1px;box-shadow:1px 1px 0 #000}
  .hand .stats-diamond span{font-size:6px;border-width:.5px}
  .hand .card-body{display:none!important}
  .hand .card-footer{min-height:13px;height:13px;padding:0 2px 0 4px;font-size:4px}
  .hand .card-owner-tag{display:none}
  .hand-note{font-size:7px!important}
  .drag-ghost.card{width:96px!important}
  .rules-card{padding:14px}.rules-head h2{font-size:24px}.rules-grid{grid-template-columns:1fr}.rules-stats{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
  .live-score{grid-template-columns:72px minmax(0,1fr) 72px}
  .score-player{padding:7px}.score-player>strong{font-size:31px}.score-player>small{display:none}
  .race-panel{grid-template-columns:1fr}.race-kpis{min-width:0}.race-rules{grid-column:auto}
  .hand.hand-grid{gap:3px}
  .hand-card .card{grid-template-rows:14px 1fr 11px}
  .hand .card-nameplate{height:14px;min-height:14px}.hand .card-maker{font-size:4px}.hand .card-model-name{display:none}
  .hand .stats-diamond{width:28px;height:28px}.hand .stats-diamond span{font-size:5px}
  .hand .card-footer{height:11px;min-height:11px}.hand .card-footer span{display:none}
}
@media(prefers-reduced-motion:reduce){
  .cell.just-played .card,.cell.just-captured .card,.cell.just-captured:after,.cell.just-played:after,.live-score.score-updated .score-player>strong,.cell.empty.drop-target{animation:none!important}
  .score-meter i{transition:none}
}


/* Drift9 v0.7 — true single-screen duel + dedicated game cards */
body.match-mode{overflow:hidden}
body.match-mode .shell{
  height:100dvh;
  max-width:none;
  padding:0 clamp(8px,1.5vw,20px);
  display:grid;
  grid-template-rows:52px minmax(0,1fr);
}
body.match-mode .top{
  height:52px;
  min-height:52px;
  border-bottom:1px solid #3f3c36;
}
body.match-mode .brand{font-size:18px}
body.match-mode .brand-mark{padding:6px 5px}
body.match-mode #app{min-height:0;overflow:hidden}
body.match-mode footer{display:none}

.match-page{
  height:100%;
  min-height:0;
  max-width:1220px;
  margin:0 auto;
  padding:8px 0 10px;
  display:grid;
  grid-template-rows:38px 62px minmax(0,1fr) 146px;
  gap:8px;
  position:relative;
  overflow:hidden;
}
.match-topbar{
  min-height:0;
  height:38px;
  margin:0;
  padding:0 0 6px;
  grid-template-columns:1fr auto 1fr;
}
.match-back{font-size:11px}
.match-context{gap:1px}.match-context strong{font-size:15px}.match-context .eyebrow{font-size:8px}
.match-actions{gap:6px}
.match-rule-btn,.turn-light{padding:6px 8px;font-size:8px;min-height:28px}

.live-score{
  min-height:0;
  height:62px;
  margin:0;
  grid-template-columns:120px minmax(0,1fr) 120px;
}
.score-player{
  min-height:0;
  height:60px;
  padding:7px 10px;
  grid-template-rows:auto 1fr;
}
.score-player>strong{font-size:34px;line-height:.9;align-self:center}
.score-player>small{display:none}
.score-player>span:first-child{font-size:7px}
.round-dots{align-self:end}.round-dots i{height:3px;width:10px}
.score-center{padding:6px 10px;gap:4px}
.score-round{font-size:6px}
.score-message{font-size:10px}
.move-impact{font-size:6px}
.score-meter{height:5px}
.score-meter.empty{background:linear-gradient(90deg,var(--you) 0 50%,var(--rival) 50% 100%);opacity:.32}
.score-meter.empty i{display:none}

.battle-layout{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) 236px;
  gap:8px;
  align-items:stretch;
}
.board-panel{
  min-height:0;
  height:100%;
  padding:8px;
  display:grid;
  grid-template-rows:21px minmax(0,1fr);
  overflow:hidden;
}
.board-head{margin:0 0 5px}
.board-head .eyebrow{font-size:8px}
.ownership-key{font-size:6px;gap:7px}

.board{
  align-self:stretch;
  justify-self:center;
  height:100%;
  width:auto;
  max-width:100%;
  aspect-ratio:1;
  gap:4px;
  padding:4px;
}
.cell{padding:2px;overflow:hidden}
.cell-cross{font-size:18px}
.cell.empty small{bottom:4px;font-size:5px}

.race-panel{
  height:100%;
  min-height:0;
  padding:10px;
  gap:8px;
  align-content:start;
  overflow:hidden;
}
.race-panel>.eyebrow{font-size:8px}
.race-status{padding:8px 0;gap:3px 7px}
.race-status strong{font-size:10px}
.race-status span{font-size:7px;line-height:1.2}
.race-kpis{gap:4px}
.race-kpis div{padding:6px 5px}
.race-kpis span{font-size:5px}
.race-kpis strong{font-size:15px}
.race-rules{font-size:7px;padding:7px}

.hand-panel{
  min-height:0;
  height:146px;
  margin:0;
  padding:7px 8px 6px;
  display:grid;
  grid-template-rows:25px minmax(0,1fr) 12px;
  gap:5px;
  overflow:hidden;
}
.hand-head{margin:0;min-height:0}
.hand-head .eyebrow{font-size:7px}
.hand-head h3{font-size:11px;margin:1px 0 0}
.hand-hint{font-size:6px}
.hand-note{font-size:6px!important;margin:0!important;line-height:1!important}

.hand.hand-grid{
  min-height:0;
  height:100%;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,138px));
  justify-content:center;
  align-items:stretch;
  gap:clamp(4px,.8vw,10px);
  overflow:hidden!important;
}
.hand-card,.hand-slot-empty{
  min-width:0;
  width:100%;
  height:100%;
}
.hand-card{display:block;padding:0;border:0;background:transparent;touch-action:none}
.hand-slot-empty{
  border:1px dashed #4a4741;
  background:linear-gradient(145deg,#161816,#0f100f);
  display:grid;
  place-items:center;
  color:#4a4843;
  font:900 18px 'Barlow Condensed','Arial Narrow',sans-serif;
}
.hand-card:disabled{opacity:.62}

/* Dedicated game card: one centered visual system at every gameplay size */
.game-card{
  --rarity:#a9a69f;
  --owner:#686962;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  background:
    radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--vehicle-accent) 24%,transparent),transparent 38%),
    linear-gradient(155deg,#252824,#111311 72%);
  border:1px solid #585b55;
  border-top:3px solid var(--owner);
  color:#f5f0e6;
  box-shadow:inset 0 0 0 1px #ffffff07;
  transform:none;
}
.game-card.owned{--owner:var(--you);border-color:#75412f;border-top-color:var(--you)}
.game-card.enemy{--owner:var(--rival);border-color:#385b80;border-top-color:var(--rival)}
.game-card.selected{
  outline:2px solid var(--you);
  outline-offset:-2px;
  box-shadow:0 0 0 2px #ff6b3d45,inset 0 0 0 1px #ffffff08;
  transform:translateY(-2px);
}
.game-card-head{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:5px;
  padding:4px 5px 2px;
}
.game-brand{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#aaa69d;
}
.game-rarity{
  flex:0 0 auto;
  min-width:18px;
  padding:2px 3px;
  background:var(--rarity);
  color:#0b0c0b;
  text-align:center;
  font:900 6px/1 Barlow,Arial,sans-serif;
}
.game-model{
  min-width:0;
  padding:0 5px 3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
  font:900 8px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  color:#f1eadf;
}
.game-card-field{
  min-height:0;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-top:1px solid #ffffff0b;
  border-bottom:1px solid #ffffff0b;
}
.game-car-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.58;
  filter:saturate(.72) contrast(1.1) brightness(.78);
}
.game-car-placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:
    linear-gradient(112deg,transparent 0 36%,#f5f0e611 36.5% 37.5%,transparent 38%),
    linear-gradient(170deg,transparent 0 69%,#ff6b3d18 70% 70.5%,transparent 71%);
}
.game-car-placeholder span{
  font:italic 900 clamp(18px,4vh,38px)/1 'Barlow Condensed','Arial Narrow',sans-serif;
  color:#ffffff09;
  letter-spacing:-.06em;
}
.game-stats{
  position:relative;
  z-index:3;
  width:min(78%,118px);
  aspect-ratio:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(3,1fr);
  align-items:center;
  justify-items:center;
}
.game-stats:before{
  content:"";
  position:absolute;
  inset:23%;
  border:1px solid #6b6a63;
  transform:rotate(45deg);
  background:#111310db;
  box-shadow:3px 3px 0 #0007;
}
.game-stats span{
  z-index:1;
  min-width:28px;
  min-height:25px;
  padding:2px 3px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:1px;
  background:#151715ef;
  border:1px solid #565750;
  color:#f4ede2;
}
.game-stats small{
  font:800 4px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  color:#817f77;
}
.game-stats b{font:900 10px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.game-stats .north{grid-area:1/2}
.game-stats .east{grid-area:2/3}
.game-stats .south{grid-area:3/2}
.game-stats .west{grid-area:2/1}

.game-card-foot{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:5px;
  padding:3px 5px;
  font:800 6px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  color:#aaa79f;
}
.game-card-foot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.game-card-foot strong{flex:0 0 auto;color:#e5ded2;font-size:6px}

/* Board cards: near-square, only game-critical information */
.game-card-board .game-brand{font-size:clamp(5px,.55vw,7px)}
.game-card-board .game-model{font-size:clamp(6px,.72vw,9px)}
.game-card-board .game-rarity{font-size:5px;min-width:15px}
.game-card-board .game-stats{width:min(76%,102px)}
.game-card-board .game-stats span{min-width:24px;min-height:21px}
.game-card-board .game-stats b{font-size:clamp(8px,1vw,12px)}
.game-card-board .game-card-foot{font-size:clamp(4px,.5vw,6px)}
.game-card-board .game-card-foot strong{font-size:inherit}

/* Hand cards: still compact, but deliberately easier to read */
.game-card-hand .game-card-head{padding:5px 6px 2px}
.game-card-hand .game-brand{font-size:7px}
.game-card-hand .game-model{font-size:9px;padding-bottom:4px}
.game-card-hand .game-stats{width:min(72%,94px)}
.game-card-hand .game-stats span{min-width:27px;min-height:23px}
.game-card-hand .game-stats b{font-size:10px}
.game-card-hand .game-card-foot{font-size:6px;padding:4px 6px}
.game-card-hand .game-card-foot strong{font-size:6px}

.drag-ghost.game-card{
  position:fixed!important;
  z-index:9999!important;
  pointer-events:none!important;
  width:112px!important;
  height:142px!important;
  left:0;top:0;
  transform:translate(-50%,-60%) rotate(-3deg)!important;
  opacity:.94;
  box-shadow:12px 16px 30px #000c!important;
}
.cell.just-played .game-card{animation:cardLand .48s cubic-bezier(.16,.9,.28,1.2)}
.cell.just-captured .game-card{animation:captureSwitch .72s ease both}

/* Round-end action floats without consuming vertical game space */
.match-end-actions{
  position:absolute;
  right:10px;
  bottom:154px;
  z-index:30;
  margin:0;
}
.match-end-actions .btn{
  min-height:34px;
  padding:8px 12px;
  font-size:8px;
}

/* Tablet: Race Control becomes expendable; the score/top bar already carry its critical info */
@media(max-width:900px){
  body.match-mode .shell{grid-template-rows:46px minmax(0,1fr)}
  body.match-mode .top{height:46px;min-height:46px}
  body.match-mode .brand{font-size:15px}
  body.match-mode .account{font-size:10px}
  body.match-mode .account img{width:24px;height:24px}

  .match-page{
    padding-top:5px;
    grid-template-rows:34px 54px minmax(0,1fr) 126px;
    gap:6px;
  }
  .match-topbar{height:34px}
  .live-score{height:54px;grid-template-columns:80px minmax(0,1fr) 80px}
  .score-player{height:52px;padding:5px 7px}
  .score-player>strong{font-size:29px}
  .score-message{font-size:8px}
  .battle-layout{grid-template-columns:1fr}
  .race-panel{display:none}
  .board-panel{padding:5px;grid-template-rows:17px minmax(0,1fr)}
  .board-head{margin-bottom:3px}
  .board{gap:3px;padding:3px}
  .hand-panel{height:126px;grid-template-rows:21px minmax(0,1fr) 9px;padding:5px}
  .hand-head h3{font-size:9px}
  .hand.hand-grid{gap:4px;grid-template-columns:repeat(5,minmax(0,1fr))}
  .game-card-hand .game-card-head{padding:3px 3px 1px}
  .game-card-hand .game-brand{font-size:5px}
  .game-card-hand .game-model{font-size:6px;padding:0 3px 2px}
  .game-card-hand .game-rarity{font-size:4px;min-width:12px;padding:1px 2px}
  .game-card-hand .game-stats{width:min(78%,66px)}
  .game-card-hand .game-stats span{min-width:18px;min-height:17px;padding:1px}
  .game-card-hand .game-stats small{font-size:3px}
  .game-card-hand .game-stats b{font-size:7px}
  .game-card-hand .game-card-foot{font-size:4px;padding:2px 3px}
  .game-card-hand .game-card-foot strong{font-size:4px}
  .hand-slot-empty{font-size:12px}
  .match-end-actions{bottom:132px}
}

@media(max-width:520px){
  body.match-mode .shell{padding:0 6px}
  .match-page{
    grid-template-rows:31px 50px minmax(0,1fr) 114px;
    gap:4px;
    padding-bottom:5px;
  }
  .match-topbar{height:31px;padding-bottom:3px}
  .match-back{font-size:9px}
  .match-context strong{font-size:11px}
  .match-rule-btn,.turn-light{padding:4px 5px;font-size:6px;min-height:23px}
  .live-score{height:50px;grid-template-columns:62px minmax(0,1fr) 62px}
  .score-player{height:48px;padding:4px 5px}
  .score-player>strong{font-size:25px}
  .score-player>span:first-child{font-size:6px}
  .score-center{padding:4px 5px;gap:3px}
  .score-message{font-size:7px}
  .move-impact{font-size:5px}
  .score-meter{height:4px}
  .round-dots i{width:6px;height:2px}

  .board-panel{padding:3px;grid-template-rows:14px minmax(0,1fr)}
  .board-head .eyebrow{font-size:6px}
  .ownership-key{font-size:5px}
  .ownership-key span:before{width:7px;height:2px}
  .board{gap:2px;padding:2px}
  .game-card-board .game-card-head{padding:2px 2px 1px}
  .game-card-board .game-brand{font-size:4px}
  .game-card-board .game-model{font-size:5px;padding:0 2px 1px}
  .game-card-board .game-rarity{font-size:3px;min-width:10px;padding:1px}
  .game-card-board .game-stats{width:min(80%,57px)}
  .game-card-board .game-stats span{min-width:16px;min-height:15px;padding:1px}
  .game-card-board .game-stats small{font-size:2.5px}
  .game-card-board .game-stats b{font-size:6px}
  .game-card-board .game-card-foot{font-size:3.5px;padding:1px 2px}
  .game-car-placeholder span{font-size:17px}

  .hand-panel{height:114px;grid-template-rows:18px minmax(0,1fr) 8px;padding:4px 3px}
  .hand-head h3{font-size:8px}
  .hand-hint{font-size:5px}
  .hand-note{font-size:5px!important}
  .hand.hand-grid{gap:3px}
  .game-card-hand .game-model{font-size:5px}
  .game-card-hand .game-stats{width:min(80%,55px)}
  .game-card-hand .game-stats span{min-width:15px;min-height:14px}
  .game-card-hand .game-stats b{font-size:6px}
  .game-card-hand .game-card-foot span{max-width:70%}
  .match-end-actions{bottom:118px;right:5px}
  .match-end-actions .btn{padding:6px 8px;font-size:6px;min-height:27px}
}

@media(max-height:720px) and (min-width:700px){
  body.match-mode .shell{grid-template-rows:44px minmax(0,1fr)}
  body.match-mode .top{height:44px;min-height:44px}
  .match-page{grid-template-rows:30px 48px minmax(0,1fr) 112px;gap:5px;padding:4px 0}
  .match-topbar{height:30px}
  .live-score{height:48px}
  .score-player{height:46px}
  .board-panel{padding:4px;grid-template-rows:15px minmax(0,1fr)}
  .race-panel{padding:7px}
  .hand-panel{height:112px;grid-template-rows:18px minmax(0,1fr) 8px;padding:4px}
  .hand.hand-grid{grid-template-columns:repeat(5,minmax(0,116px))}
  .game-card-hand .game-model{font-size:6px}
  .game-card-hand .game-stats{width:min(72%,62px)}
  .match-end-actions{bottom:116px}
}

@media(prefers-reduced-motion:reduce){
  .cell.just-played .game-card,.cell.just-captured .game-card{animation:none!important}
}


/* Board is constrained by both viewport height and available width. */
body.match-mode .board{
  height:auto!important;
  width:min(100%,calc(100dvh - 350px))!important;
  max-width:100%!important;
  aspect-ratio:1!important;
}
@media(max-width:900px){
  body.match-mode .board{width:min(100%,calc(100dvh - 300px))!important}
}
@media(max-width:520px){
  body.match-mode .board{width:min(100%,calc(100dvh - 270px))!important}
}
@media(max-height:720px) and (min-width:700px){
  body.match-mode .board{width:min(100%,calc(100dvh - 245px))!important}
}


/* Drift9 v0.7.1 — readable one-screen proportions */
body.match-mode{
  --hand-h:clamp(168px,21dvh,220px);
  --board-max:calc(100dvh - var(--hand-h) - 210px);
}

/* Give the garage real vertical space; the board adapts instead. */
.match-page{
  grid-template-rows:38px 58px minmax(0,1fr) var(--hand-h);
}
.live-score{height:58px}
.score-player{height:56px}

.hand-panel{
  height:var(--hand-h);
  grid-template-rows:27px minmax(0,1fr);
  padding:8px 10px 9px;
  gap:7px;
}
.hand-note{display:none}
.hand.hand-grid{
  min-height:0;
  height:100%;
  grid-template-columns:repeat(5,minmax(0,142px));
  align-items:stretch;
}
.hand-card,.hand-slot-empty{height:100%;min-height:0}

/* A hand card is intentionally shorter than a collection card, but always complete. */
.game-card-hand{
  height:100%;
  grid-template-rows:20px 19px minmax(0,1fr) 20px;
}
.game-card-hand .game-card-head{padding:4px 6px 2px}
.game-card-hand .game-brand{font-size:7px}
.game-card-hand .game-rarity{font-size:6px;min-width:18px;padding:2px 3px}
.game-card-hand .game-model{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1px 5px 3px;
  font-size:8px;
  line-height:1;
}
.game-card-hand .game-card-field{min-height:0}
.game-card-hand .game-stats{width:min(72%,82px)}
.game-card-hand .game-stats span{min-width:23px;min-height:21px;padding:1px 2px}
.game-card-hand .game-stats small{font-size:3.5px}
.game-card-hand .game-stats b{font-size:9px}
.game-card-hand .game-card-foot{padding:3px 5px;font-size:5.5px}
.game-card-hand .game-card-foot strong{font-size:5.5px}

/* The board is no longer allowed to steal the garage's height. */
body.match-mode .board{
  width:min(100%,var(--board-max))!important;
  height:auto!important;
}
.board-panel{
  align-content:start;
}
.board{
  align-self:start;
}

/* Gameplay cards on the board: bigger type and a stronger centered core. */
.game-card-board{
  grid-template-rows:22px 22px minmax(0,1fr) 19px;
}
.game-card-board .game-card-head{padding:4px 5px 2px}
.game-card-board .game-brand{font-size:7px;letter-spacing:.06em}
.game-card-board .game-rarity{font-size:6px;min-width:17px;padding:2px}
.game-card-board .game-model{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1px 5px 3px;
  font-size:9px;
  line-height:1;
}
.game-card-board .game-stats{width:min(74%,92px)}
.game-card-board .game-stats span{min-width:27px;min-height:24px;padding:2px}
.game-card-board .game-stats small{font-size:3.5px}
.game-card-board .game-stats b{font-size:11px}
.game-card-board .game-card-foot{font-size:5.5px;padding:3px 5px}
.game-card-board .game-card-foot strong{font-size:5.5px}

/* Slightly stronger contrast for values and model names. */
.game-model{color:#fff}
.game-stats span{background:#101210f2;border-color:#74736b}
.game-stats b{color:#fff}
.game-stats small{color:#aaa69d}
.game-card-foot{color:#c6c0b5}

/* Keep the end-of-round CTA above the enlarged garage. */
.match-end-actions{bottom:calc(var(--hand-h) + 8px)}

/* Mid-height desktops: preserve full hand before anything else. */
@media(max-height:900px) and (min-width:901px){
  body.match-mode{
    --hand-h:clamp(156px,22dvh,188px);
    --board-max:calc(100dvh - var(--hand-h) - 196px);
  }
  .match-page{grid-template-rows:34px 54px minmax(0,1fr) var(--hand-h);gap:6px}
  .match-topbar{height:34px}
  .live-score{height:54px}
  .score-player{height:52px}
}

/* Tablet/mobile: all five cards remain complete, never clipped. */
@media(max-width:900px){
  body.match-mode{
    --hand-h:clamp(138px,20dvh,168px);
    --board-max:calc(100dvh - var(--hand-h) - 175px);
  }
  .match-page{
    grid-template-rows:34px 52px minmax(0,1fr) var(--hand-h);
  }
  .hand-panel{
    height:var(--hand-h);
    grid-template-rows:22px minmax(0,1fr);
    padding:5px;
    gap:4px;
  }
  .hand.hand-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
  .game-card-hand{grid-template-rows:16px 16px minmax(0,1fr) 15px}
  .game-card-hand .game-brand{font-size:5px}
  .game-card-hand .game-rarity{font-size:4px;min-width:12px;padding:1px 2px}
  .game-card-hand .game-model{font-size:6px;padding:1px 2px}
  .game-card-hand .game-stats{width:min(78%,58px)}
  .game-card-hand .game-stats span{min-width:16px;min-height:15px;padding:1px}
  .game-card-hand .game-stats small{display:none}
  .game-card-hand .game-stats b{font-size:6.5px}
  .game-card-hand .game-card-foot{font-size:4px;padding:2px 3px}
  .game-card-hand .game-card-foot strong{font-size:4px}
}

/* Phones: use every pixel; model + values stay readable, secondary labels yield first. */
@media(max-width:520px){
  body.match-mode{
    --hand-h:clamp(126px,19dvh,150px);
    --board-max:calc(100dvh - var(--hand-h) - 158px);
  }
  .match-page{
    grid-template-rows:30px 48px minmax(0,1fr) var(--hand-h);
  }
  .hand-panel{height:var(--hand-h);grid-template-rows:18px minmax(0,1fr);padding:4px 2px}
  .hand.hand-grid{gap:2px}
  .hand-hint{display:none}
  .game-card-hand{grid-template-rows:13px 14px minmax(0,1fr) 12px}
  .game-card-hand .game-brand{font-size:4px}
  .game-card-hand .game-rarity{font-size:3.5px;min-width:10px}
  .game-card-hand .game-model{font-size:5px}
  .game-card-hand .game-stats{width:min(82%,48px)}
  .game-card-hand .game-stats span{min-width:14px;min-height:13px}
  .game-card-hand .game-stats b{font-size:5.5px}
  .game-card-hand .game-card-foot{font-size:3.5px;padding:1px 2px}
  .game-card-hand .game-card-foot strong{font-size:3.5px}

  .game-card-board .game-brand{font-size:4.5px}
  .game-card-board .game-model{font-size:5.5px}
  .game-card-board .game-stats{width:min(80%,60px)}
  .game-card-board .game-stats span{min-width:17px;min-height:16px}
  .game-card-board .game-stats small{display:none}
  .game-card-board .game-stats b{font-size:6.5px}
}


/* Drift9 v0.7.1 — collector card alignment */
.cards-grid .card{
  aspect-ratio:3/4;
  grid-template-rows:34px minmax(0,1.35fr) minmax(78px,.65fr) 30px;
}
.cards-grid .card-nameplate{
  min-height:34px;
  height:34px;
  padding:7px 9px 6px 12px;
}
.cards-grid .card-maker,
.cards-grid .card-model-name{font-size:9px}
.cards-grid .card-visual{
  margin:0;
  display:grid;
  place-items:center;
}
.cards-grid .card-visual:after{
  left:20%;
  right:20%;
  bottom:12%;
  transform:none;
  opacity:.14;
}
.cards-grid .card-vehicle-placeholder{
  min-height:0;
  width:100%;
  height:100%;
  background:
    radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--vehicle-accent) 26%,transparent),transparent 39%),
    linear-gradient(160deg,#252824,#131513 72%);
}
.cards-grid .card-vehicle-placeholder span{
  font-size:clamp(34px,5vw,58px);
  color:#ffffff0b;
}
.cards-grid .card-vehicle-placeholder strong{display:none}

/* True cardinal layout: top/right/bottom/left around one centered core. */
.cards-grid .stats-diamond{
  left:50%;
  top:55%;
  width:112px;
  height:112px;
  transform:translate(-50%,-50%);
  display:block;
  background:transparent;
  border:0;
  box-shadow:none;
}
.cards-grid .stats-diamond:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:52px;
  height:52px;
  transform:translate(-50%,-50%) rotate(45deg);
  border:1px solid #77746c;
  background:#101210e8;
  box-shadow:3px 3px 0 #0007;
}
.cards-grid .stats-diamond span{
  position:absolute;
  width:42px;
  height:31px;
  padding:0;
  transform:none!important;
  display:grid;
  place-items:center;
  background:#111311f2;
  border:1px solid #65645e;
  font:900 14px/1 'Barlow Condensed','Arial Narrow',sans-serif;
  color:#f7f0e5;
  z-index:2;
}
.cards-grid .stats-diamond .north{
  left:50%;
  top:0;
  transform:translateX(-50%)!important;
}
.cards-grid .stats-diamond .east{
  right:0;
  top:50%;
  transform:translateY(-50%)!important;
}
.cards-grid .stats-diamond .south{
  left:50%;
  bottom:0;
  transform:translateX(-50%)!important;
}
.cards-grid .stats-diamond .west{
  left:0;
  top:50%;
  transform:translateY(-50%)!important;
}
.cards-grid .card-body{
  margin:0;
  padding:34px 11px 7px 12px;
  gap:5px;
}
.cards-grid .card-id-row{
  min-height:21px;
  align-items:center;
}
.cards-grid .card-brand-word{font-size:8px}
.cards-grid .card-country{font-size:19px}
.cards-grid .card-specs{
  justify-content:flex-start;
  gap:4px;
}
.cards-grid .card-specs span{font-size:6.5px}
.cards-grid .card-signature{
  font-size:7.5px!important;
  text-align:left;
}
.cards-grid .card-footer{
  min-height:30px;
  height:30px;
  padding:0 9px 0 12px;
  font-size:7.5px;
}

@media(max-width:760px){
  .cards-grid .stats-diamond{width:96px;height:96px}
  .cards-grid .stats-diamond:before{width:44px;height:44px}
  .cards-grid .stats-diamond span{width:36px;height:27px;font-size:12px}
  .cards-grid .card-body{padding-top:29px}
}


/* Drift9 v0.7.2 — isolated collector card system */
.cards-grid{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  align-items:start;
}
.collection-item{min-width:0}
.collector-card{
  --rarity:#a9a69f;
  --vehicle-accent:#545751;
  width:100%;
  max-width:260px;
  aspect-ratio:63/88;
  margin:0 auto;
  display:grid;
  grid-template-rows:44px minmax(0,1.2fr) minmax(92px,.62fr) 34px;
  min-width:0;
  overflow:hidden;
  position:relative;
  background:#111311;
  color:#f5f0e6;
  border:1px solid #4c4f49;
  border-top:4px solid var(--rarity);
  border-radius:5px;
  box-shadow:5px 7px 0 #0008;
}
.collector-card:before{
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid #ffffff0b;
  pointer-events:none;
  z-index:10;
}
.collector-card.rarity-c{--rarity:#d9d6cf}
.collector-card.rarity-nc{--rarity:#7ad98b}
.collector-card.rarity-r{--rarity:#69a4ff}
.collector-card.rarity-sr{--rarity:#b181ff}
.collector-card.rarity-ur{--rarity:#f2d354}
.collector-card.rarity-ss{--rarity:#ff665c}

.collector-head{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 9px 6px 11px;
  background:linear-gradient(90deg,#242723,#161816);
  border-bottom:1px solid #ffffff12;
}
.collector-title{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  align-items:center;
  gap:7px;
  text-transform:uppercase;
}
.collector-title span,
.collector-title strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.collector-title span{
  font:900 8px/1 Barlow,Arial,sans-serif;
  letter-spacing:.09em;
  color:#b8b3aa;
}
.collector-title strong{
  font:900 9px/1 Barlow,Arial,sans-serif;
  text-align:right;
  color:#f4ede1;
}
.collector-rarity{
  min-width:28px;
  height:24px;
  display:grid;
  place-items:center;
  background:var(--rarity);
  color:#0b0c0b;
  font:900 8px/1 Barlow,Arial,sans-serif;
  box-shadow:2px 2px 0 #0008;
}

.collector-stage{
  min-height:0;
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--vehicle-accent) 28%,transparent),transparent 38%),
    linear-gradient(160deg,#252824 0%,#191b19 52%,#111311 100%);
  border-bottom:1px solid #ffffff12;
}
.collector-stage:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:68%;
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,#ffffff07 0 34%,transparent 66%);
  pointer-events:none;
}
.collector-stage:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:15%;
  width:72%;
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--rarity),transparent);
  opacity:.26;
  pointer-events:none;
}
.collector-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.78) contrast(1.08) brightness(.72);
}
.collector-placeholder{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
}
.collector-placeholder span{
  font:italic 900 clamp(44px,7vw,76px)/1 'Barlow Condensed','Arial Narrow',sans-serif;
  letter-spacing:-.06em;
  color:#ffffff09;
  transform:translateY(-2%);
}
.collector-placeholder i{
  position:absolute;
  width:46%;
  height:2px;
  background:linear-gradient(90deg,transparent,#ffffff25,transparent);
  transform:rotate(-8deg);
}

.collector-stats{
  position:relative;
  z-index:3;
  width:min(56%,124px);
  aspect-ratio:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(3,1fr);
  align-items:center;
  justify-items:center;
}
.collector-stats:before{
  content:"";
  position:absolute;
  inset:26%;
  transform:rotate(45deg);
  border:1px solid #77756d;
  background:#0f110fdd;
  box-shadow:4px 4px 0 #0007;
}
.collector-stats span{
  z-index:2;
  width:100%;
  max-width:44px;
  min-height:36px;
  padding:3px 4px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:2px;
  background:#121412f4;
  border:1px solid #666760;
  color:#f8f1e6;
}
.collector-stats small{
  font:800 5px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  color:#9b988f;
}
.collector-stats b{
  font:900 15px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.collector-stats .north{grid-area:1/2}
.collector-stats .east{grid-area:2/3}
.collector-stats .south{grid-area:3/2}
.collector-stats .west{grid-area:2/1}

.collector-meta{
  min-width:0;
  padding:10px 11px 8px;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  gap:7px;
  align-content:start;
  background:linear-gradient(180deg,#1a1c1a,#121412);
}
.collector-identity{
  min-width:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.collector-brand-lockup{
  min-width:0;
  display:flex;
  align-items:center;
  min-height:20px;
}
.collector-brand-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:900 9px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#e4ddd1;
}
.collector-logo{
  max-width:70px;
  max-height:22px;
  object-fit:contain;
  object-position:left center;
  filter:grayscale(1) brightness(2);
}
.collector-country{
  flex:0 0 auto;
  font-size:21px;
  line-height:1;
}
.collector-tags{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.collector-tags span{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:4px 6px;
  border:1px solid #4e4f49;
  background:#242623;
  color:#c9c2b6;
  font:800 6.5px/1 Barlow,Arial,sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.collector-signature{
  min-width:0;
  margin:0!important;
  align-self:end;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#858178!important;
  font-size:7.5px!important;
  line-height:1.15!important;
}
.collector-foot{
  min-width:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:0 11px;
  background:#0f110f;
  border-top:1px solid #454640;
  color:#d7d0c4;
  font:900 8px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
}
.collector-foot span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.collector-foot strong{flex:0 0 auto;color:#f4ede1}

@media(max-width:760px){
  .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .collector-card{
    max-width:none;
    grid-template-rows:38px minmax(0,1.16fr) minmax(80px,.64fr) 30px;
  }
  .collector-head{padding:6px 7px 5px 9px}
  .collector-title span{font-size:7px}
  .collector-title strong{font-size:7.5px}
  .collector-rarity{min-width:24px;height:21px;font-size:7px}
  .collector-stats{width:min(58%,108px)}
  .collector-stats span{max-width:38px;min-height:31px;padding:2px}
  .collector-stats small{font-size:4px}
  .collector-stats b{font-size:13px}
  .collector-meta{padding:8px 9px 6px;gap:5px}
  .collector-brand-text{font-size:8px}
  .collector-country{font-size:18px}
  .collector-tags span{font-size:5.5px;padding:3px 4px}
  .collector-signature{font-size:6.5px!important}
  .collector-foot{padding:0 9px;font-size:7px}
}
@media(max-width:390px){
  .cards-grid{grid-template-columns:1fr}
  .collector-card{max-width:290px}
}


/* Drift9 v0.7.3 — typography/readability pass */
.cards-grid{
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:18px;
}
.collector-card{
  max-width:280px;
  grid-template-rows:48px minmax(0,1.16fr) minmax(108px,.68fr) 38px;
}
.collector-head{padding:8px 10px 7px 12px}
.collector-title{grid-template-columns:minmax(0,.66fr) minmax(0,1.34fr);gap:8px}
.collector-title span{font-size:9.5px;letter-spacing:.08em}
.collector-title strong{font-size:11px;line-height:1.05}
.collector-rarity{min-width:31px;height:27px;font-size:9px}

.collector-stats{width:min(61%,132px)}
.collector-stats span{max-width:46px;min-height:39px;padding:4px 5px}
.collector-stats small{font-size:6px;letter-spacing:.07em}
.collector-stats b{font-size:17px}

.collector-meta{padding:11px 12px 9px;gap:8px}
.collector-brand-text{font-size:10px;letter-spacing:.07em}
.collector-logo{max-width:78px;max-height:24px}
.collector-country{font-size:23px}
.collector-tags{gap:5px}
.collector-tags span{
  padding:5px 7px;
  font-size:7.5px;
  letter-spacing:.04em;
}
.collector-signature{
  font-size:8.5px!important;
  color:#a19c92!important;
}
.collector-foot{
  padding:0 12px;
  font-size:9px;
}
.collection-item>a{font-size:12px}

/* Gameplay cards: prioritize model and values over micro-labels. */
.game-card-board .game-brand{font-size:7.5px}
.game-card-board .game-model{font-size:10px}
.game-card-board .game-rarity{font-size:6.5px}
.game-card-board .game-stats b{font-size:12.5px}
.game-card-board .game-stats small{font-size:4px}
.game-card-board .game-card-foot,
.game-card-board .game-card-foot strong{font-size:6px}

.game-card-hand .game-brand{font-size:8px}
.game-card-hand .game-model{font-size:10px}
.game-card-hand .game-rarity{font-size:6.5px}
.game-card-hand .game-stats b{font-size:11px}
.game-card-hand .game-stats small{font-size:4px}
.game-card-hand .game-card-foot,
.game-card-hand .game-card-foot strong{font-size:6.5px}

/* Tablet: stay readable even if fewer cards fit per row. */
@media(max-width:900px){
  .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .collector-title span{font-size:8.5px}
  .collector-title strong{font-size:9.5px}
  .collector-rarity{font-size:8px}
  .collector-stats b{font-size:15px}
  .collector-stats small{font-size:5px}
  .collector-brand-text{font-size:9px}
  .collector-tags span{font-size:7px}
  .collector-signature{font-size:8px!important}
  .collector-foot{font-size:8px}

  .game-card-hand .game-model{font-size:7px}
  .game-card-hand .game-stats b{font-size:8px}
  .game-card-board .game-model{font-size:7px}
  .game-card-board .game-stats b{font-size:8px}
}

/* Phone catalogue: one genuinely readable card per row. */
@media(max-width:520px){
  .cards-grid{grid-template-columns:1fr;gap:16px}
  .collector-card{
    width:min(100%,320px);
    max-width:320px;
    grid-template-rows:48px minmax(0,1.14fr) minmax(108px,.7fr) 38px;
  }
  .collector-title span{font-size:9px}
  .collector-title strong{font-size:10.5px}
  .collector-rarity{font-size:9px}
  .collector-stats{width:min(60%,128px)}
  .collector-stats span{max-width:44px;min-height:37px}
  .collector-stats small{font-size:5.5px}
  .collector-stats b{font-size:16px}
  .collector-brand-text{font-size:10px}
  .collector-country{font-size:22px}
  .collector-tags span{font-size:7.5px}
  .collector-signature{font-size:8.5px!important}
  .collector-foot{font-size:9px}

  /* In a duel, keep five cards visible but make the actual numbers the focus. */
  .game-card-hand .game-brand{font-size:4.5px}
  .game-card-hand .game-model{font-size:5.5px}
  .game-card-hand .game-rarity{font-size:4px}
  .game-card-hand .game-stats b{font-size:7px}
  .game-card-hand .game-card-foot,
  .game-card-hand .game-card-foot strong{font-size:4px}

  .game-card-board .game-brand{font-size:5px}
  .game-card-board .game-model{font-size:6px}
  .game-card-board .game-rarity{font-size:4px}
  .game-card-board .game-stats b{font-size:7.5px}
  .game-card-board .game-card-foot,
  .game-card-board .game-card-foot strong{font-size:4px}
}


/* Drift9 v0.8.0 — Race Control-first duel layout */
body.match-mode{
  --hand-h:clamp(168px,20dvh,208px);
  --board-max:calc(100dvh - var(--hand-h) - 150px);
}
.match-page{
  grid-template-rows:40px minmax(0,1fr) var(--hand-h);
  gap:8px;
}
.match-topbar{height:40px;min-height:40px}
.match-context strong{font-size:16px}
.match-rule-btn,.turn-light{font-size:9px;padding:7px 9px}

/* Remove the old horizontal score-strip footprint entirely. */
.live-score{display:none!important}

/* Narrower board + wider information rail. */
.battle-layout{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-columns:minmax(0,680px) minmax(320px,360px);
  justify-content:center;
  gap:12px;
  align-items:stretch;
}
.board-panel{
  min-height:0;
  height:100%;
  padding:10px;
  grid-template-rows:34px minmax(0,1fr);
}
.board-head{
  align-items:end;
  margin:0 0 8px;
}
.board-head>div:first-child{display:grid;gap:2px}
.board-head .eyebrow{font-size:9px}
.board-turn{
  font:900 11px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  color:#e7dfd3;
}
.ownership-key{font-size:7px;gap:10px}

body.match-mode .board{
  width:min(100%,var(--board-max),620px)!important;
  height:auto!important;
  align-self:start;
}
.board{gap:5px;padding:5px}

/* Race Control now carries score, round state and action history. */
.race-panel{
  min-height:0;
  height:100%;
  padding:12px;
  display:grid;
  grid-template-rows:auto auto auto auto auto minmax(0,1fr) auto;
  gap:10px;
  align-content:stretch;
  overflow:hidden;
  border-top:3px solid var(--you);
}
.race-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.race-title .eyebrow{font-size:10px}
.race-round{
  min-width:34px;
  height:26px;
  display:grid;
  place-items:center;
  border:1px solid #56524b;
  color:#d7d0c5;
  font:900 9px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
}

.race-score{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 72px;
  gap:8px;
  align-items:center;
  padding:10px;
  background:#111311;
  border:1px solid #4a4842;
}
.race-score-player{
  display:grid;
  gap:3px;
  min-width:0;
}
.race-score-player.rival{text-align:right}
.race-score-player>span{
  font:900 8px/1 Barlow,Arial,sans-serif;
  letter-spacing:.13em;
}
.race-score-player.you>span{color:var(--you)}
.race-score-player.rival>span{color:var(--rival)}
.race-score-player>strong{
  font:900 42px/.9 'Barlow Condensed','Arial Narrow',sans-serif;
  color:#f7f0e5;
}
.race-score-player>small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#918d84;
  font-size:8px;
}
.race-score-center{
  display:grid;
  justify-items:center;
  gap:6px;
  min-width:0;
}
.race-score-center>span{
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.16em;
  color:#7f7c75;
}
.race-score-center>b{
  font:900 14px/1 Barlow,Arial,sans-serif;
  color:#e9e2d7;
}
.race-score-meter{
  position:relative;
  width:100%;
  height:7px;
  overflow:hidden;
  background:var(--rival);
}
.race-score-meter i{
  position:absolute;
  inset:0 auto 0 0;
  background:var(--you);
  transition:width .35s ease;
}
.race-score-meter.empty{
  background:linear-gradient(90deg,var(--you) 0 50%,var(--rival) 50% 100%);
  opacity:.34;
}
.race-score-meter.empty i{display:none}

.race-rounds{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  background:#202220;
}
.race-rounds>span{
  font:900 8px/1 Barlow,Arial,sans-serif;
  letter-spacing:.12em;
  color:#8d8980;
}
.race-rounds-score{
  display:flex;
  align-items:center;
  gap:5px;
}
.race-rounds-score b{
  font:900 18px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.race-rounds-score i{
  color:#68665f;
  font-style:normal;
}
.race-round-dots{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:9px;
}
.race-round-dots .round-dots{gap:3px}
.race-round-dots .round-dots i{width:10px;height:3px}

.race-status{
  display:grid;
  grid-template-columns:10px minmax(0,1fr);
  align-items:start;
  gap:7px;
  padding:9px 0;
}
.race-status>i{margin-top:3px}
.race-status>div{display:grid;gap:3px}
.race-status strong{
  font-size:11px;
  letter-spacing:.08em;
}
.race-status span{
  font-size:9px;
  line-height:1.3;
  color:#aaa59b;
}

.race-hands{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.race-hands>span{
  padding:8px 9px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:8px;
  background:#222421;
}
.race-hands small{
  font:800 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  color:#858179;
}
.race-hands b{
  font:900 19px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}

.race-log{
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:7px;
  border-top:1px solid #45433e;
  padding-top:9px;
}
.race-log-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.race-log-title strong{
  font:900 10px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.race-log-title span{
  font-size:8px;
  color:#817e76;
}
.race-log-list{
  min-height:0;
  overflow:auto;
  display:grid;
  align-content:start;
  gap:5px;
  padding-right:2px;
}
.race-log-item{
  display:grid;
  grid-template-columns:5px minmax(0,1fr);
  gap:8px;
  padding:8px 8px 8px 0;
  border-bottom:1px solid #33342f;
}
.race-log-item.latest{
  background:#ffffff03;
}
.race-log-marker{
  width:4px;
  height:100%;
  min-height:38px;
  background:var(--rival);
}
.race-log-item.mine .race-log-marker{background:var(--you)}
.race-log-copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.race-log-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.race-log-head strong{
  font:900 8px/1 Barlow,Arial,sans-serif;
  letter-spacing:.1em;
}
.race-log-item.mine .race-log-head strong{color:var(--you)}
.race-log-item.rival .race-log-head strong{color:var(--rival)}
.race-log-head span{
  font-size:7px;
  color:#77746c;
}
.race-log-card{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  color:#e9e2d7;
}
.race-log-copy small{
  font-size:8px;
  color:#9b978e;
}
.race-log-empty{
  margin:0;
  padding:12px 0;
  font-size:9px;
  color:#817e76;
}

.race-footer-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}
.race-footer-actions .race-rules,
.race-footer-actions .race-next{
  width:100%;
  text-align:center;
  min-height:34px;
  font-size:8px;
}
.race-next{display:grid;place-items:center;text-decoration:none}

/* The garage keeps its readability budget. */
.hand-panel{
  height:var(--hand-h);
  grid-template-rows:27px minmax(0,1fr);
  padding:8px 10px 9px;
}
.hand-head h3{font-size:12px}
.hand-head .eyebrow{font-size:8px}
.hand-hint{font-size:7px}

/* No floating round button anymore: it lives in Race Control. */
.match-end-actions{display:none!important}

/* Medium screens: Race Control remains visible, but more compact. */
@media(max-width:1050px){
  .battle-layout{
    grid-template-columns:minmax(0,1fr) 300px;
    gap:8px;
  }
  body.match-mode .board{width:min(100%,var(--board-max),560px)!important}
  .race-panel{padding:9px;gap:7px}
  .race-score{grid-template-columns:58px minmax(0,1fr) 58px;padding:8px}
  .race-score-player>strong{font-size:34px}
  .race-log-item{padding-top:6px;padding-bottom:6px}
}

/* Tablet/mobile: Race Control becomes a compact score/status rail above the board.
   The move log is hidden first; score and turn state remain readable. */
@media(max-width:900px){
  .match-page{
    grid-template-rows:34px minmax(0,1fr) var(--hand-h);
  }
  .battle-layout{
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(0,1fr);
    gap:6px;
  }
  .race-panel{
    order:-1;
    height:auto;
    min-height:0;
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    gap:6px 8px;
    padding:7px 8px;
  }
  .race-title{grid-column:1;grid-row:1}
  .race-score{grid-column:2;grid-row:1 / span 2;padding:6px 8px}
  .race-rounds{grid-column:3;grid-row:1;padding:6px 8px}
  .race-status{grid-column:1;grid-row:2;padding:4px 0}
  .race-hands{grid-column:3;grid-row:2}
  .race-log,.race-footer-actions{display:none}
  .race-score-player>strong{font-size:28px}
  .race-score-player>small{display:none}
  .race-score-center>b{font-size:11px}
  .race-rounds>span{display:none}
  .race-rounds{grid-template-columns:auto auto}
  .race-round-dots{display:none}
  .race-hands small{font-size:6px}
  .race-hands b{font-size:15px}
  .board-panel{padding:5px;grid-template-rows:28px minmax(0,1fr)}
  .board-turn{font-size:8px}
  body.match-mode .board{width:min(100%,var(--board-max),520px)!important}
}

@media(max-width:520px){
  .race-panel{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }
  .race-title{display:none}
  .race-score{grid-column:1;grid-row:1}
  .race-status{grid-column:1;grid-row:2}
  .race-rounds,.race-hands{display:none}
  .race-score{
    grid-template-columns:50px minmax(0,1fr) 50px;
  }
  .race-score-player>strong{font-size:24px}
  .race-score-player>span{font-size:6px}
  .race-score-center>span{font-size:6px}
  .race-status strong{font-size:9px}
  .race-status span{font-size:7px}
  .board-panel{grid-template-rows:24px minmax(0,1fr)}
  .board-turn{font-size:7px}
}


/* Drift9 v0.8.0 — final readability tuning */
.game-card-board .game-stats small,
.game-card-hand .game-stats small{display:none!important}
.game-card-board .game-stats b{font-size:14px}
.game-card-hand .game-stats b{font-size:12px}
.game-card-board .game-model{font-size:10.5px}
.game-card-hand .game-model{font-size:10.5px}
.game-card-board .game-brand,
.game-card-hand .game-brand{font-size:8px}
.race-log-card{font-size:11px}
.race-log-copy small{font-size:9px}
.race-log-head strong{font-size:9px}
.race-log-head span{font-size:8px}
.race-hands small{font-size:8px}
.race-score-player>small{font-size:9px}
.race-status span{font-size:10px}
.race-footer-actions .race-rules,
.race-footer-actions .race-next{font-size:9px}


/* Drift9 v0.8.1 — readability + long-name handling */
.match-rule-btn,.turn-light{font-size:10px}
.board-head .eyebrow{font-size:10px}
.board-turn{font-size:12px;line-height:1.1}
.ownership-key{font-size:8px}

/* Model names can use two lines instead of being crushed into one. */
.game-model{
  white-space:normal!important;
  overflow:hidden;
  text-overflow:clip;
  display:-webkit-box!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  text-wrap:balance;
  line-height:1.05!important;
  min-width:0;
}
.game-card-board{
  grid-template-rows:24px minmax(28px,auto) minmax(0,1fr) 21px;
}
.game-card-hand{
  grid-template-rows:21px minmax(27px,auto) minmax(0,1fr) 21px;
}
.game-card-board .game-brand{font-size:9px}
.game-card-board .game-model{font-size:11.5px;padding:2px 6px 4px}
.game-card-board .game-model.model-long{font-size:10px}
.game-card-board .game-model.model-xlong{font-size:9px}
.game-card-board .game-rarity{font-size:7px;min-width:20px}
.game-card-board .game-stats b{font-size:15px}
.game-card-board .game-card-foot,
.game-card-board .game-card-foot strong{font-size:7.5px}

.game-card-hand .game-brand{font-size:8.5px}
.game-card-hand .game-model{font-size:11px;padding:2px 5px 4px}
.game-card-hand .game-model.model-long{font-size:9.5px}
.game-card-hand .game-model.model-xlong{font-size:8.5px}
.game-card-hand .game-rarity{font-size:7px;min-width:19px}
.game-card-hand .game-stats b{font-size:13px}
.game-card-hand .game-card-foot,
.game-card-hand .game-card-foot strong{font-size:7px}

/* Race Control: keep useful information comfortably readable. */
.race-title .eyebrow{font-size:12px}
.race-round{font-size:10px}
.race-score-player>span{font-size:9px}
.race-score-player>small{font-size:10px}
.race-score-center>span{font-size:8px}
.race-score-center>b{font-size:15px}
.race-rounds>span{font-size:9px}
.race-rounds-score b{font-size:20px}
.race-status strong{font-size:12px}
.race-status span{font-size:10.5px;line-height:1.35}
.race-hands small{font-size:9px}
.race-hands b{font-size:21px}
.race-log-title strong{font-size:11px}
.race-log-title span{font-size:9px}
.race-log-head strong{font-size:10px}
.race-log-head span{font-size:9px}
.race-log-card{font-size:12px;line-height:1.15}
.race-log-copy small{font-size:10px;line-height:1.25}
.race-log-empty{font-size:10px}
.race-footer-actions .race-next{font-size:10px}

/* Tablet keeps two-line names and prioritises numbers over secondary copy. */
@media(max-width:900px){
  .game-card-board .game-brand{font-size:6px}
  .game-card-board .game-model{font-size:8px}
  .game-card-board .game-model.model-long{font-size:7px}
  .game-card-board .game-model.model-xlong{font-size:6.4px}
  .game-card-board .game-stats b{font-size:9px}
  .game-card-board .game-card-foot,
  .game-card-board .game-card-foot strong{font-size:5px}

  .game-card-hand .game-brand{font-size:5.5px}
  .game-card-hand .game-model{font-size:7px}
  .game-card-hand .game-model.model-long{font-size:6.2px}
  .game-card-hand .game-model.model-xlong{font-size:5.7px}
  .game-card-hand .game-stats b{font-size:8px}
  .game-card-hand .game-card-foot,
  .game-card-hand .game-card-foot strong{font-size:5px}

  .race-status strong{font-size:10px}
  .race-status span{font-size:8px}
}
@media(max-width:520px){
  .game-card-board{grid-template-rows:15px minmax(18px,auto) minmax(0,1fr) 12px}
  .game-card-hand{grid-template-rows:14px minmax(18px,auto) minmax(0,1fr) 12px}
  .game-card-board .game-model{font-size:6px}
  .game-card-board .game-model.model-long{font-size:5.4px}
  .game-card-board .game-model.model-xlong{font-size:5px}
  .game-card-hand .game-model{font-size:5.7px}
  .game-card-hand .game-model.model-long{font-size:5.1px}
  .game-card-hand .game-model.model-xlong{font-size:4.8px}
}


/* Collector names follow the same two-line strategy as gameplay cards. */
.collector-title strong{
  white-space:normal!important;
  overflow:hidden;
  text-overflow:clip;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  text-wrap:balance;
  line-height:1.05;
}
.collector-title strong.collector-model-long{font-size:10px}
.collector-title strong.collector-model-xlong{font-size:9px}

@media(max-width:900px){
  .collector-title strong.collector-model-long{font-size:9px}
  .collector-title strong.collector-model-xlong{font-size:8px}
}
@media(max-width:520px){
  .collector-title strong.collector-model-long{font-size:9.5px}
  .collector-title strong.collector-model-xlong{font-size:8.5px}
}


/* Drift9 v0.10 — data lab */
.collector-country{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.collector-country>b{font-size:1em;line-height:1}
.collector-country>strong{
  max-width:110px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:900 9px/1 Barlow,Arial,sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#e4ddd1;
}
.game-country{font-weight:900;color:#e9e1d5}
.admin-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.admin-kpis article{
  border:1px solid var(--line,#3f413d);
  background:#171917;
  padding:14px;
  display:grid;
  gap:5px;
}
.admin-kpis span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#918e86}
.admin-kpis strong{font:900 28px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#f1e9dc}
.admin-data-layout{align-items:start}
.scoring-rules{display:grid;gap:10px;margin:16px 0}
.scoring-rule{
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(130px,.7fr) minmax(130px,.7fr);
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid #3f413d;
  background:#151715;
}
.scoring-rule>div{display:grid;gap:5px;align-self:center}
.scoring-rule>div strong{font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.scoring-rule>div span{font-size:9px;color:#918e86;text-transform:uppercase}
.scoring-rule label{position:relative}
.scoring-rule label small{position:absolute;right:10px;bottom:12px;color:#77746d;font-size:8px;pointer-events:none}
.scoring-rule label .input{padding-right:44px}
.import-panel{align-self:start}
#catalog-import-status{min-height:1.4em}
@media(max-width:900px){
  .admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scoring-rule{grid-template-columns:1fr 1fr}
  .scoring-rule>div{grid-column:1/-1}
}
@media(max-width:520px){
  .admin-kpis{grid-template-columns:1fr 1fr}
  .admin-kpis strong{font-size:23px}
  .scoring-rule{grid-template-columns:1fr}
  .scoring-rule>div{grid-column:auto}
}


/* Drift9 v0.11 — accounts, personal garage and decks */
.account-profile{
  color:inherit;
  text-decoration:none;
  font-weight:900;
}
.account-profile:hover{text-decoration:underline}
.account-role{
  padding:3px 6px;
  border:1px solid #484a45;
  color:#9c988f;
  font:800 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.profile-hero{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  margin:18px 0;
  padding:18px;
  border:1px solid #3f413d;
  background:linear-gradient(135deg,#1b1d1b,#101210);
}
.profile-hero h1{margin:4px 0 2px}
.profile-hero p{margin:0;color:#969289}
.profile-avatar{
  width:64px;height:64px;
  display:grid;place-items:center;
  overflow:hidden;
  border:1px solid #5a5c56;
  background:#101210;
  font:900 20px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.profile-avatar img{width:100%;height:100%;object-fit:cover}
.profile-role{align-self:start}

.profile-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
.profile-kpis article{
  min-width:0;
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid #3f413d;
  background:#151715;
}
.profile-kpis span{
  font:800 9px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#8f8c84;
}
.profile-kpis strong{
  font:900 30px/1 'Barlow Condensed','Arial Narrow',sans-serif;
  color:#f2eadf;
}
.profile-kpis small{font-size:9px;color:#99958d}

.profile-layout{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:14px;
  align-items:start;
}
.profile-form{display:grid;gap:12px}
.profile-form label,
.profile-deck-panel>form>label{
  display:grid;
  gap:6px;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.deck-picker{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:12px 0;
  max-height:430px;
  overflow:auto;
  padding-right:4px;
}
.deck-pick{
  min-width:0;
  min-height:50px;
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid #3e403b;
  background:#121412;
  cursor:pointer;
}
.deck-pick.selected{
  border-color:#b7b0a3;
  background:#22241f;
}
.deck-pick input{width:18px;height:18px}
.deck-pick>span{font-size:18px}
.deck-pick>div{min-width:0;display:grid;gap:3px}
.deck-pick strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.deck-pick small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:8px;
  color:#8f8c84;
  text-transform:uppercase;
}

.profile-history{margin-top:18px}
.profile-matches{display:grid;gap:7px}
.profile-match{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  border:1px solid #3e403b;
  background:#131513;
  color:inherit;
  text-decoration:none;
}
.profile-match>div{min-width:0;display:grid;gap:3px}
.profile-match strong{font-size:11px}
.profile-match span{font-size:9px;color:#8f8c84;text-transform:uppercase}
.profile-match>b{font:900 18px/1 'Barlow Condensed','Arial Narrow',sans-serif;white-space:nowrap}

.garage-owned-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:18px;
}
.garage-owned-item{min-width:0}
.garage-source{
  display:block;
  margin-top:6px;
  color:#8f8c84;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.admin-users{margin-top:14px}
.admin-player-list{display:grid;gap:8px;margin-top:14px}
.admin-player-row{
  display:grid;
  grid-template-columns:minmax(260px,1fr) 130px 90px auto;
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid #3e403b;
  background:#141614;
}
.admin-player-row.archived{opacity:.58}
.admin-player-identity{
  min-width:0;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:9px;
  align-items:center;
}
.admin-player-identity img,
.admin-player-avatar{
  width:38px;height:38px;
  display:grid;place-items:center;
  object-fit:cover;
  border:1px solid #4d4f49;
  background:#101210;
  font:900 10px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.admin-player-identity>div{min-width:0;display:grid;gap:3px}
.admin-player-identity strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.admin-player-identity span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#8f8c84;
  font-size:8px;
}
.admin-player-row>label{
  display:grid;
  gap:4px;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.admin-player-active{
  display:flex!important;
  align-items:center;
  gap:6px!important;
}

@media(max-width:900px){
  .profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-layout{grid-template-columns:1fr}
  .admin-player-row{grid-template-columns:minmax(0,1fr) 120px auto}
  .admin-player-identity{grid-column:1/-1}
}
@media(max-width:520px){
  .profile-hero{grid-template-columns:auto minmax(0,1fr);padding:12px}
  .profile-role{grid-column:1/-1;justify-self:start}
  .profile-avatar{width:52px;height:52px}
  .profile-kpis{grid-template-columns:1fr 1fr}
  .profile-kpis strong{font-size:25px}
  .deck-picker{grid-template-columns:1fr;max-height:none}
  .garage-owned-grid{grid-template-columns:1fr}
  .admin-player-row{grid-template-columns:1fr}
  .admin-player-identity{grid-column:auto}
}


/* Drift9 v0.12 — image enrichment */
.image-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.image-control{margin:14px 0}
.image-review{padding:16px;margin:16px 0;border:1px solid #51544d;background:#1a1c19}
.image-review h3{margin:3px 0 0}
.image-review-controls{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.image-review-controls select{flex:1 1 230px;min-width:0}
.image-review-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:start}
.image-review-option{border:1px solid #44473f;background:#111310;min-width:0}
.image-review-pick{display:block;width:100%;padding:0;border:0;background:#0b0d0b;cursor:pointer}
.image-review-pick:focus-visible{outline:2px solid #fb6938;outline-offset:2px}
.image-review-option img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#0b0d0b}
.image-review-error{display:grid;place-items:center;min-height:180px;aspect-ratio:4/3;padding:16px;color:#bbb;background:#222;text-align:center}
.image-review-unavailable button{cursor:not-allowed;opacity:.55}
.image-review-option>div{padding:8px;display:grid;gap:8px}
.image-review-option span{font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.image-review-grid>a{grid-column:1/-1;justify-self:start}
.image-review-manual{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
.image-review-manual input{flex:1 1 270px;min-width:0}
.google-review-results{height:0;overflow:hidden}
/* The engine is configured with Google's overlay layout. Its results are rendered
   as selectable cards above; the empty overlay would otherwise cover those cards. */
body.image-review-google-active .gsc-modal-background-image,
body.image-review-google-active .gsc-results-wrapper-overlay{display:none!important}
@media(max-width:900px){.image-review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.image-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-review-controls .btn{flex:1 1 auto}}
.image-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(170px,.4fr) auto;
  gap:10px;
  align-items:center;
  margin:14px 0;
}
.admin-image-list{display:grid;gap:9px}
.admin-image-row{
  display:grid;
  grid-template-columns:128px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:10px;
  border:1px solid #3e403b;
  background:#141614;
}
.admin-image-preview{
  width:128px;
  aspect-ratio:16/9;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:#0e100e;
  border:1px solid #3f413d;
  font:900 18px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.admin-image-preview img{width:100%;height:100%;object-fit:cover}
.admin-image-copy{min-width:0;display:grid;gap:4px}
.admin-image-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-image-title strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
}
.admin-image-copy>span,
.admin-image-copy>a,
.admin-image-copy>small{font-size:9px}
.admin-image-copy>span{color:#969289;text-transform:uppercase}
.admin-image-copy>a{color:#c9c1b4;text-decoration:none}
.admin-image-copy>a:hover{text-decoration:underline}
.image-error{color:#d99b83}
.image-status-badge{
  display:inline-flex;
  align-items:center;
  padding:4px 6px;
  border:1px solid #4a4c47;
  font:800 8px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.status-candidate .image-status-badge{border-color:#d8b468}
.status-validated .image-status-badge{border-color:#7ea681}
.status-manual .image-status-badge{border-color:#7892b8}
.status-error .image-status-badge{border-color:#b36f63}
.admin-image-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.manual-image-form{
  grid-column:2/-1;
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;
  gap:8px;
}
@media(max-width:1100px){
  .image-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .image-toolbar{grid-template-columns:1fr}
  .admin-image-row{grid-template-columns:92px minmax(0,1fr)}
  .admin-image-preview{width:92px}
  .admin-image-actions{grid-column:1/-1;justify-content:flex-start}
  .manual-image-form{grid-column:1/-1;grid-template-columns:1fr}
}
@media(max-width:520px){
  .image-kpis{grid-template-columns:1fr 1fr}
}


/* Drift9 v0.13 — photo-first cards */
.collector-card{
  width:100%;
  max-width:340px;
  aspect-ratio:auto;
  grid-template-rows:auto auto auto auto auto;
  background:#111311;
}
.collector-head{
  min-height:52px;
  padding:9px 12px 8px 14px;
}
.collector-title span{font-size:10px}
.collector-title strong{font-size:12px}
.collector-title strong.collector-model-long{font-size:11px}
.collector-title strong.collector-model-xlong{font-size:10px}
.collector-rarity{min-width:34px;height:30px;font-size:10px}

.collector-stage{
  width:100%;
  aspect-ratio:16/10;
  min-height:0;
  display:block;
  border-bottom:0;
  background:#1b1d1a;
}
.collector-stage:before,
.collector-stage:after{display:none}
.collector-image{
  position:absolute;
  inset:0;
  object-fit:cover;
  object-position:center;
  filter:saturate(.94) contrast(1.04) brightness(.91);
}
.collector-placeholder{
  background:
    radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--vehicle-accent) 28%,transparent),transparent 42%),
    linear-gradient(160deg,#252824,#111311);
}

.collector-stat-strip{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  background:#0d0f0d;
  border-top:1px solid #55564f;
  border-bottom:1px solid #45463f;
}
.collector-stat-strip span{
  min-width:0;
  min-height:62px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:4px;
  padding:8px 5px 7px;
  border-right:1px solid #3e403b;
}
.collector-stat-strip span:last-child{border-right:0}
.collector-stat-strip small{
  color:#97938a;
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
}
.collector-stat-strip b{
  color:#f7f0e5;
  font:900 24px/.92 'Barlow Condensed','Arial Narrow',sans-serif;
}
.collector-meta{
  min-width:0;
  padding:12px 14px 11px;
  display:grid;
  grid-template-rows:none;
  gap:9px;
  align-content:start;
}
.collector-signature{
  align-self:auto;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  min-height:1em;
}
.collector-foot{
  min-height:34px;
  padding:0 14px;
}
.cards-grid{
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:22px;
}
.collection-item{align-self:start}

/* Duel cards keep directionality, but the photo is no longer hidden by a
   central diamond. Values sit on the four actual fighting edges. */
.game-card-field{place-items:stretch}
.game-car-image{
  opacity:.78;
  filter:saturate(.88) contrast(1.04) brightness(.88);
}
.game-stats,
.game-card-board .game-stats,
.game-card-hand .game-stats{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%;
  aspect-ratio:auto;
  display:block;
  pointer-events:none;
}
.game-stats:before{display:none!important}
.game-stats span,
.game-card-board .game-stats span,
.game-card-hand .game-stats span{
  position:absolute;
  z-index:4;
  width:auto!important;
  max-width:none!important;
  min-width:28px;
  min-height:25px;
  padding:3px 5px;
  display:grid;
  place-items:center;
  align-content:center;
  background:#0e100eea;
  border:1px solid #858279;
  box-shadow:2px 2px 0 #0009;
}
.game-stats .north{top:3px;left:50%;transform:translateX(-50%)}
.game-stats .east{right:3px;top:50%;transform:translateY(-50%)}
.game-stats .south{bottom:3px;left:50%;transform:translateX(-50%)}
.game-stats .west{left:3px;top:50%;transform:translateY(-50%)}
.game-card-board .game-stats b{font-size:13px}
.game-card-hand .game-stats b{font-size:12px}

/* Image-review controls: the auto picker now favours exterior views. */
.status-rejected .image-status-badge{border-color:#7b7770}

@media(max-width:900px){
  .cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .collector-card{max-width:340px}
  .collector-stat-strip span{min-height:56px}
  .collector-stat-strip b{font-size:21px}
  .collector-stat-strip small{font-size:6px}
}
@media(max-width:520px){
  .cards-grid{grid-template-columns:1fr;gap:18px}
  .collector-card{
    width:min(100%,360px);
    max-width:360px;
    grid-template-rows:auto auto auto auto auto;
  }
  .collector-head{min-height:50px;padding:8px 10px 7px 12px}
  .collector-title span{font-size:9.5px}
  .collector-title strong{font-size:11px}
  .collector-title strong.collector-model-long{font-size:10px}
  .collector-title strong.collector-model-xlong{font-size:9px}
  .collector-stage{aspect-ratio:16/10}
  .collector-stat-strip span{min-height:58px;padding:7px 3px}
  .collector-stat-strip b{font-size:22px}
  .collector-stat-strip small{font-size:6.5px}
  .collector-meta{padding:11px 12px 10px;gap:8px}
  .collector-foot{min-height:34px;padding:0 12px}

  .game-stats span,
  .game-card-board .game-stats span,
  .game-card-hand .game-stats span{
    min-width:15px;
    min-height:14px;
    padding:1px 2px;
  }
  .game-card-board .game-stats b{font-size:7px}
  .game-card-hand .game-stats b{font-size:6.5px}
  .game-stats .north{top:1px}
  .game-stats .east{right:1px}
  .game-stats .south{bottom:1px}
  .game-stats .west{left:1px}
  .game-car-image{opacity:.84;filter:saturate(.9) contrast(1.03) brightness(.9)}
}


/* Drift9 v0.13.1 — mobile admin containment + duplicate-free card meta */
body:not(.match-mode){overflow-x:hidden}
.admin-nav{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  width:100%;
  max-width:100%;
}
.admin-nav .btn{
  min-width:0;
  width:100%;
  padding:10px 8px;
  line-height:1.08;
  white-space:normal;
  text-align:center;
}
.collector-identity-country-only{
  display:flex;
  justify-content:flex-end;
  min-height:24px;
}
.collector-identity-country-only .collector-country{
  margin-left:auto;
}
.collector-meta{
  grid-template-rows:auto auto!important;
}
.collector-signature{display:none!important}

@media(max-width:760px){
  .admin-nav{
    position:static!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:0;
    background:transparent;
    backdrop-filter:none;
  }
  .admin-nav .btn{
    min-height:44px;
    font-size:10px;
    letter-spacing:.03em;
  }
  .admin-nav .btn:last-child{
    grid-column:1/-1;
  }
}


/* Drift9 v0.13.2 — cardinal stats, rarity frame, hard name bounds */
.collector-card,
.game-card{
  --rarity:#8d8a82;
}
.collector-card.rarity-c,.game-card.rarity-c{--rarity:#8d8a82}
.collector-card.rarity-nc,.game-card.rarity-nc{--rarity:#6f9f79}
.collector-card.rarity-r,.game-card.rarity-r{--rarity:#5b91da}
.collector-card.rarity-sr,.game-card.rarity-sr{--rarity:#9468d3}
.collector-card.rarity-ur,.game-card.rarity-ur{--rarity:#c9ab48}
.collector-card.rarity-ss,.game-card.rarity-ss{--rarity:#d65a4e}

.collector-card{
  grid-template-rows:auto auto auto auto!important;
  border:2px solid var(--rarity)!important;
  border-top-width:4px!important;
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--rarity) 18%,transparent),
    5px 7px 0 #0008!important;
}
.collector-card.rarity-sr,
.collector-card.rarity-ur,
.collector-card.rarity-ss{
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--rarity) 35%,transparent),
    0 0 14px color-mix(in srgb,var(--rarity) 14%,transparent),
    5px 7px 0 #0008!important;
}
.collector-head{
  grid-template-columns:1fr!important;
  min-height:58px!important;
}
.collector-title{
  grid-template-columns:minmax(72px,.32fr) minmax(0,.68fr)!important;
}
.collector-title strong{
  max-height:2.15em!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  overflow-wrap:anywhere;
  word-break:break-word;
  text-overflow:ellipsis!important;
}
.collector-title strong.collector-model-long{font-size:10px!important}
.collector-title strong.collector-model-xlong{font-size:9px!important}

.collector-stage-wrap{
  position:relative;
  width:100%;
  min-width:0;
}
.collector-stage{
  width:100%;
  aspect-ratio:16/10;
}
.collector-cardinal-stats{
  position:absolute;
  inset:0;
  z-index:5;
  pointer-events:none;
}
.collector-cardinal-stats span{
  position:absolute;
  min-width:44px;
  min-height:39px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:2px;
  padding:4px 5px;
  color:#f8f1e6;
  background:#0c0e0ce8;
  border:1px solid color-mix(in srgb,var(--rarity) 58%,#7b7b74);
  box-shadow:2px 2px 0 #0008;
}
.collector-cardinal-stats small{
  font:800 6px/1 Barlow,Arial,sans-serif;
  letter-spacing:.08em;
  color:#a6a198;
}
.collector-cardinal-stats b{
  font:900 17px/1 'Barlow Condensed','Arial Narrow',sans-serif;
}
.collector-cardinal-stats .north{top:6px;left:50%;transform:translateX(-50%)}
.collector-cardinal-stats .east{right:6px;top:50%;transform:translateY(-50%)}
.collector-cardinal-stats .south{bottom:6px;left:50%;transform:translateX(-50%)}
.collector-cardinal-stats .west{left:6px;top:50%;transform:translateY(-50%)}

.collector-meta{
  grid-template-rows:auto auto!important;
}
.collector-rarity,
.game-rarity{display:none!important}

/* Rarity is encoded by the complete frame, never by a header badge. */
.game-card{
  border:2px solid var(--rarity)!important;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb,var(--rarity) 22%,transparent),
    3px 4px 0 #0008;
}
.game-card.rarity-sr,
.game-card.rarity-ur,
.game-card.rarity-ss{
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb,var(--rarity) 34%,transparent),
    0 0 9px color-mix(in srgb,var(--rarity) 15%,transparent),
    3px 4px 0 #0008;
}

/* Long model names are allowed two lines, then are hard-clipped with ellipsis.
   The full name remains available through the title attribute. */
.game-model{
  min-width:0!important;
  width:100%;
  max-height:2.15em!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  line-clamp:2!important;
  overflow-wrap:anywhere;
  word-break:break-word;
  text-overflow:ellipsis!important;
}
.game-card-board .game-model,
.game-card-hand .game-model{
  align-self:stretch;
  min-height:0!important;
}
.game-card-board{
  grid-template-rows:24px 28px minmax(0,1fr) 21px!important;
}
.game-card-hand{
  grid-template-rows:21px 27px minmax(0,1fr) 21px!important;
}

@media(max-width:900px){
  .collector-head{min-height:54px!important}
  .collector-title strong.collector-model-long{font-size:9px!important}
  .collector-title strong.collector-model-xlong{font-size:8px!important}
  .collector-cardinal-stats span{min-width:39px;min-height:34px;padding:3px 4px}
  .collector-cardinal-stats b{font-size:15px}
}
@media(max-width:520px){
  .collector-head{min-height:56px!important}
  .collector-title{
    grid-template-columns:minmax(70px,.3fr) minmax(0,.7fr)!important;
  }
  .collector-title strong{font-size:10px!important}
  .collector-title strong.collector-model-long{font-size:9px!important}
  .collector-title strong.collector-model-xlong{font-size:8px!important}
  .collector-cardinal-stats span{min-width:42px;min-height:36px}
  .collector-cardinal-stats b{font-size:16px}

  .game-card-board{grid-template-rows:15px 18px minmax(0,1fr) 12px!important}
  .game-card-hand{grid-template-rows:14px 18px minmax(0,1fr) 12px!important}
  .game-model{
    -webkit-line-clamp:2!important;
    line-clamp:2!important;
  }
}

/* v0.13.3 — shared cardinal frame. Each rating has its own grid cell;
   the photograph can never extend beneath a value. */
.card-field{
  --rail-x:40px;
  --rail-y:36px;
  position:relative;
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-columns:var(--rail-x) minmax(0,1fr) var(--rail-x);
  grid-template-rows:var(--rail-y) minmax(0,1fr) var(--rail-y);
  background:linear-gradient(135deg,#242722,#111410);
  overflow:hidden;
}
.vehicle-window{
  grid-area:2/2;
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  border:1px solid #ffffff18;
  border-radius:2px;
  background:radial-gradient(ellipse at center,color-mix(in srgb,var(--vehicle-accent) 35%,#242722),#141713);
  display:grid;
  place-items:center;
}
.vehicle-window img{display:block;width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.card-art-placeholder{font:italic 900 38px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#ffffff20;letter-spacing:-.05em}
.card-rating{
  min-width:0;min-height:0;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:3px;color:#f8f1e6;
  font-variant-numeric:tabular-nums;
}
.card-rating.north{grid-area:1/2}
.card-rating.east{grid-area:2/3}
.card-rating.south{grid-area:3/2}
.card-rating.west{grid-area:2/1}
.card-rating small{font:800 6px/1 Barlow,Arial,sans-serif;letter-spacing:.09em;color:#aaa79b}
.card-rating b{font:900 20px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.card-field-collector .vehicle-window{aspect-ratio:4/3}
.collector-card{
  height:auto!important;min-height:0!important;aspect-ratio:auto!important;
  align-content:start;grid-template-rows:auto auto auto auto!important;
}
.collector-head{min-height:64px!important;padding:10px 12px!important}
.collector-title{grid-template-columns:minmax(0,1fr)!important;gap:5px}
.collector-title span{font-size:9px}
.collector-title strong,
.collector-title strong.collector-model-long,
.collector-title strong.collector-model-xlong{
  text-align:left;font-size:13px!important;line-height:1.15;
  white-space:normal;max-height:2.3em!important;
}
.collector-meta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  min-height:0;height:auto;padding:10px 12px;gap:8px;
  border-top:1px solid #ffffff12;
}
.collector-identity-country-only{min-height:0;order:2;margin-left:auto}
.collector-country{font-size:18px;gap:6px}
.collector-country strong{font-size:8px}
.collector-tags{flex:1 1 100px;gap:4px}
.collector-tags span{font-size:7px;padding:5px 6px}
.collector-foot{margin:0!important;padding:9px 12px!important;min-height:32px;letter-spacing:.1em}
.card-field-game{--rail-x:22%;--rail-y:22%}
.card-field-game .card-rating{gap:0}
.card-field-game .card-rating small{display:none}
.card-field-game .card-rating b{font:900 12px/1 Barlow,Arial,sans-serif;letter-spacing:-.04em}
.card-field-game .card-art-placeholder{font-size:20px}
.game-model{white-space:normal!important}
.game-card.owned .card-field{background:linear-gradient(135deg,color-mix(in srgb,var(--you) 18%,#20231f),#111410)}
.game-card.enemy .card-field{background:linear-gradient(135deg,color-mix(in srgb,var(--rival) 18%,#20231f),#111410)}
@media(max-width:520px){
  .card-field-game .card-rating b{font-size:8px}
  .card-field-game .card-art-placeholder{font-size:12px}
}

/* v0.13.4 — mobile duel: normal document flow, one score, one status.
   Safari's changing viewport must never crop the board behind the hand. */
.mobile-result-actions{display:none}
@media(max-width:900px){
  body.match-mode{overflow-y:auto;overflow-x:hidden;background:#101210}
  body.match-mode .shell{
    display:block;height:auto;min-height:100dvh;
    padding:0 14px max(18px,env(safe-area-inset-bottom));
  }
  body.match-mode .top{display:none}
  body.match-mode #app{overflow:visible}
  .match-page{
    height:auto;min-height:0;max-width:540px;
    display:flex;flex-direction:column;gap:16px;
    padding:8px 0 0;overflow:visible;
  }
  .match-topbar{
    height:auto;min-height:44px;padding:0;
    display:grid;grid-template-columns:1fr auto 1fr;gap:8px;
    border:0;background:none;
  }
  .match-back{margin:0;font-size:12px;min-height:44px;display:flex;align-items:center}
  .match-context strong{font:800 15px/1.2 Barlow,Arial,sans-serif;letter-spacing:-.03em}
  .match-context .eyebrow,.match-actions .turn-light{display:none}
  .match-actions{justify-self:end}
  .match-rule-btn{font-size:10px;min-height:40px;padding:8px 10px;border:1px solid #41453c;border-radius:7px}
  .battle-layout{height:auto;display:flex;flex-direction:column;gap:16px;overflow:visible}
  .race-panel{
    display:grid;order:-1;height:auto;min-height:0;
    grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;
    align-items:center;gap:12px;padding:10px 12px;
    border:1px solid #32372e;border-radius:10px;background:#1b1e19;
  }
  .race-title,.race-status,.race-hands,.race-log,.race-footer-actions{display:none}
  .race-score{
    grid-column:1;grid-row:1;grid-template-columns:auto minmax(24px,1fr) auto;
    padding:0;gap:12px;border:0;background:none;
  }
  .race-score-player{display:flex;align-items:center;gap:7px}
  .race-score-player>span{font-size:8px;letter-spacing:.06em}
  .race-score-player>strong{font:800 22px/1 Barlow,Arial,sans-serif}
  .race-score-player>small,.race-score-center>span,.race-score-center>b{display:none}
  .race-score-meter{height:4px;margin:0;border:0;border-radius:4px;overflow:hidden}
  .race-rounds{
    display:grid;grid-column:2;grid-row:1;gap:3px;
    grid-template-columns:1fr;padding:0 0 0 12px;
    border:0;border-left:1px solid #41453c;background:none;text-align:center;
  }
  .race-rounds>span{display:block;font-size:7px;letter-spacing:.08em;color:#aaa99e}
  .race-rounds-score{gap:6px;justify-content:center}
  .race-rounds-score b{font:700 12px/1 Barlow,Arial,sans-serif}
  .race-round-dots{display:none}
  .board-panel{
    display:flex;flex-direction:column;gap:12px;
    height:auto;min-height:0;padding:0;border:0;background:none;overflow:visible;
  }
  .board-head{min-height:24px;margin:0;align-items:center;gap:8px}
  .board-head .eyebrow{display:none}
  .board-turn{font:700 12px/1.35 Barlow,Arial,sans-serif;text-transform:none}
  .ownership-key{font-size:7px;gap:8px;white-space:nowrap}
  body.match-mode .board{
    width:100%!important;max-width:none!important;height:auto!important;
    aspect-ratio:1;grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:repeat(3,minmax(0,1fr));
    padding:0;gap:7px;border:0;background:none;margin:0;
  }
  .board .cell{padding:0;border:0;background:none;overflow:hidden;border-radius:5px}
  .board .cell.empty{border:1px dashed #464c40;background:#1a1d18;min-height:0}
  .board .cell.empty small{display:none}
  .game-card{border-radius:5px;box-shadow:none}
  .hand-panel{
    position:static;height:auto;min-height:0;display:grid;
    grid-template-rows:auto auto;gap:10px;padding:14px 0 0;
    border:0;border-top:1px solid #32372e;background:none;overflow:visible;
  }
  .hand-head{margin:0;align-items:center;gap:8px}
  .hand-head .eyebrow{display:none}
  .hand-head h3{margin:0;font:700 12px/1.3 Barlow,Arial,sans-serif}
  .hand-hint{font-size:8px;line-height:1.4;max-width:44%;text-align:right}
  .hand.hand-grid{
    height:clamp(105px,31vw,155px);min-height:0;
    grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:0;
  }
  .hand-slot-empty{border:0;border-radius:5px;background:#ffffff03}
  .hand-slot-empty span{font-size:12px;color:#555b4e}
  .match-page.is-finished .hand-panel{display:none}
  .mobile-result-actions{
    display:grid;gap:12px;margin:0;padding:16px;
    border:1px solid #3d4435;border-radius:10px;background:#1b1e19;
  }
  .mobile-result-actions p{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;margin:0;font-size:12px;color:#eee9dd}
  .mobile-result-actions p span{font-size:10px;color:#aaa99e}
  .mobile-result-actions .btn{width:100%;min-height:46px;border-radius:7px;font-size:12px}
  .game-card-board{grid-template-rows:14px 22px minmax(0,1fr) 12px!important}
  .game-card-board .game-model{max-height:2.4em!important;padding:0 4px!important;line-height:1.15;font-size:7px}
  .game-card-board .game-model.model-long{font-size:6.4px}
  .game-card-board .game-model.model-xlong{font-size:6px}
  .game-card-board .game-brand{font-size:6px}
  .game-card-hand .game-model{padding:0 2px!important;line-height:1.15;max-height:2.4em!important}
}
@media(max-width:900px){
  .game-card-board .game-card-head,.game-card-hand .game-card-head{min-height:0;padding:2px 4px!important;line-height:1}
  .game-card-board .game-card-foot,.game-card-hand .game-card-foot{min-height:0;padding:2px 4px!important;align-items:center;line-height:1}
  .game-card-hand{grid-template-rows:12px 20px minmax(0,1fr) 12px!important;text-align:left}
  .game-card-hand .game-model{font-size:5.7px!important;line-height:1.2;max-height:2.4em!important}
  .game-card-hand .game-brand{font-size:5px;line-height:1}
  .hand-hint{display:block}
  .mobile-result-actions .btn{box-shadow:none}
}
@media(max-width:900px){
  .game-card .game-brand,.game-card .game-card-foot{line-height:1.35!important}
  .game-card-hand .game-model{line-height:1.2!important}
  .card-field-game .card-rating b{line-height:1.25}
  .hand.hand-grid{margin:0}
}

/* v0.14 — Arnaud's diamond card. */
.d9-card.collector-card,.d9-card.game-card{
  display:grid;grid-template-rows:12% 54% 26% 8%!important;
  padding:5px!important;gap:0;position:relative;isolation:isolate;
  border:2px solid #1f2826!important;border-radius:14px;
  background:var(--rarity);color:#1c2725;overflow:hidden;
  box-shadow:0 3px 0 #0005,0 8px 20px #0003!important;
}
.d9-card.collector-card{width:100%;max-width:360px;height:auto!important;aspect-ratio:4/5!important;align-content:normal}
.d9-card:before{display:none!important}
.d9-nameplate{display:grid;grid-template-columns:minmax(0,.36fr) minmax(0,.64fr);gap:8px;align-items:center;padding:7px 9px;min-width:0;min-height:0;background:#f7f8f3;border:1px solid #34403a;border-radius:8px 8px 0 0;text-transform:uppercase}
.d9-nameplate>span{font:800 11px/1.3 Barlow,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d9-nameplate>strong{font:900 12px/1.15 Barlow,Arial,sans-serif;text-align:right;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;max-height:2.3em;color:#294a3d}
.d9-photo{position:relative;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(145deg,#e4e9e7,#9ca9a5);border:1px solid #34403a;border-top:0;border-radius:0 0 7px 7px;display:grid;place-items:center}
.d9-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.d9-placeholder{font:italic 900 60px/1 Barlow,Arial,sans-serif;color:#44584d35}
.d9-details{position:relative;min-width:0;min-height:0;background:linear-gradient(135deg,#fff,#eff2ed);margin-top:7px;border:1px solid #34403a;border-bottom:0;border-radius:7px 7px 0 0}
.d9-diamond{position:absolute;z-index:3;left:50%;top:0;width:29%;aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;transform:translate(-50%,-38%) rotate(45deg);border:2px solid #24322c;background:#24322c;gap:1px;box-shadow:2px 2px 0 #0002}
.d9-value{display:grid;place-items:center;min-width:0;min-height:0;background:#fcfdf9;color:#18251f}
.d9-value.north{grid-area:1/1}.d9-value.east{grid-area:1/2}.d9-value.south{grid-area:2/2}.d9-value.west{grid-area:2/1}
.d9-value b{transform:rotate(-45deg);font:900 22px/1.3 Barlow,Arial,sans-serif;letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.d9-emblems{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;gap:50%;min-width:0}
.d9-brand-logo{width:32px;height:32px;object-fit:contain}
.d9-brand-emblem{display:flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px}
.d9-brand-emblem [hidden]{display:none!important}
.d9-signature{font:italic 900 18px/1.2 Barlow,Arial,sans-serif;letter-spacing:-.08em;color:#4c6054}
.d9-flag{font-size:26px;line-height:1.2}
.d9-specs{position:absolute;left:10px;right:10px;bottom:10px;max-height:2.5em;font:700 9px/1.25 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.02em;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.d9-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0;min-height:0;padding:4px 10px;background:#f7f8f3;border:1px solid #34403a;border-radius:0 0 7px 7px;font:900 10px/1.3 Barlow,Arial,sans-serif;text-transform:uppercase}
.d9-footer>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.d9-footer>strong{flex:0 0 auto}
.d9-card.game-card{padding:2px!important;border-width:1px!important;border-radius:6px;grid-template-rows:18% 47% 25% 10%!important;box-shadow:none!important}
.d9-card.game-card .d9-nameplate{padding:2px 3px;gap:3px;border-radius:3px 3px 0 0;grid-template-columns:1fr}
.d9-card.game-card .d9-nameplate>span{font-size:5px;line-height:1.3}
.d9-card.game-card .d9-nameplate>strong{font-size:6px;line-height:1.15;text-align:left;max-height:2.3em}
.d9-card.game-card .d9-photo{border-radius:0 0 3px 3px}
.d9-card.game-card .d9-details{margin-top:3px;border-radius:3px 3px 0 0}
.d9-card.game-card .d9-diamond{width:32%;border-width:1px;gap:1px;box-shadow:none}
.d9-card.game-card .d9-value b{font-size:9px;letter-spacing:-.08em}
.d9-card.game-card .d9-emblems{padding:4px;gap:50%}
.d9-card.game-card .d9-brand-logo{width:13px;height:13px}
.d9-card.game-card .d9-signature{font-size:8px}
.d9-card.game-card .d9-flag{font-size:12px}
.d9-card.game-card .d9-footer{padding:1px 3px;font-size:5px;border-radius:0 0 3px 3px}
.d9-card.game-card .d9-placeholder{font-size:24px}
.d9-card.game-card.owned .d9-photo{border-bottom:3px solid var(--you)}
.d9-card.game-card.enemy .d9-photo{border-bottom:3px solid var(--rival)}
.d9-card.game-card.selected{outline:2px solid var(--you);outline-offset:2px;transform:translateY(-3px)}
@media(max-width:520px){
  .d9-card.game-card .d9-nameplate>span{font-size:4px}
  .d9-card.game-card .d9-nameplate>strong{font-size:4.5px}
  .d9-card.game-card .d9-value b{font-size:8px}
  .d9-card.game-card .d9-footer{font-size:4px}
  .d9-card.game-card-hand .d9-value b{font-size:6px}
  .d9-card.game-card-hand .d9-nameplate>strong{font-size:4px}
  .d9-card.game-card-hand .d9-diamond{width:38%}
  .d9-card.game-card-hand .d9-emblems{padding:3px 2px}
  .d9-card.game-card-hand .d9-brand-logo{width:9px;height:9px}
  .d9-card.game-card-hand .d9-flag{font-size:9px}
  .d9-card.game-card-hand .d9-signature{font-size:6px}
}

/* v0.14.1 — values are the primary game information, even in a five-card hand. */
.d9-card.game-card{grid-template-rows:18% 38% 36% 8%!important}
.d9-card.game-card .d9-diamond{width:min(56%,80px);transform:translate(-50%,-50%) rotate(45deg)}
.d9-card.game-card .d9-value b{font-size:16px;font-weight:900;line-height:1;letter-spacing:-.06em;color:#080e0a}
.d9-card.game-card .d9-emblems{display:none}
.d9-card.game-card-hand .d9-diamond{width:min(64%,64px)}
.d9-card.game-card-hand .d9-value b{font-size:13px}
@media(max-width:900px){
  .d9-card.game-card-board .d9-value b{font-size:14px}
  .hand.hand-grid{height:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(128px,36vw,180px);gap:10px}
  .d9-card.game-card-hand .d9-value b{font-size:14px}
}
@media(max-width:360px){
  .d9-card.game-card-board .d9-value b{font-size:12px}
  .d9-card.game-card-hand .d9-value b{font-size:12px}
}

/* v0.14.6 — restrained paper, satin and foil finishes. */
.d9-card.rarity-c,.rarity-count.rarity-c{--rarity:#b5a58c;--stock:#e4d9c5;--ink:#342e25;--sheen:#fff8e635}
.d9-card.rarity-nc,.rarity-count.rarity-nc{--rarity:#557d64;--stock:#c0d0bf;--ink:#203b2d;--sheen:#f0ffe938}
.d9-card.rarity-r,.rarity-count.rarity-r{--rarity:#527b9c;--stock:#bccbd7;--ink:#233b4e;--sheen:#effaff55}
.d9-card.rarity-sr,.rarity-count.rarity-sr{--rarity:#946184;--stock:#d6bdd0;--ink:#46263d;--sheen:#fff2fa55}
.d9-card.rarity-ur,.rarity-count.rarity-ur{--rarity:#b18b49;--stock:#ddcba2;--ink:#49381e;--sheen:#fff4c780}
.d9-card.rarity-ss,.rarity-count.rarity-ss{--rarity:#aa555c;--stock:#dcb5b4;--ink:#4c262a;--sheen:#ffefed55}
.d9-card.collector-card,.d9-card.game-card{
  background:linear-gradient(125deg,#ffffff55,transparent 35%,#00000018),var(--stock);
  border-color:var(--rarity)!important;
}
.d9-card.collector-card .d9-nameplate,.d9-card.game-card .d9-nameplate,
.d9-card.collector-card .d9-details,.d9-card.game-card .d9-details{
  background:linear-gradient(115deg,var(--sheen),transparent 42%,#00000008),var(--stock);
  border-color:color-mix(in srgb,var(--rarity) 40%,transparent);color:var(--ink);
}
.d9-card .d9-nameplate>strong{color:var(--ink)}
.d9-card.rarity-c .d9-details{background-image:radial-gradient(ellipse at 20% 20%,#fffaf02b,transparent 70%)}
.d9-card.rarity-nc .d9-details{background-image:linear-gradient(150deg,#efffe81c,transparent 60%,#2946320a)}
.d9-card.rarity-r .d9-details{background-image:linear-gradient(110deg,transparent 15%,#f5fbff45 47%,transparent 75%)}
.d9-card.rarity-sr .d9-details{background-image:radial-gradient(ellipse at 12% 100%,#f5e9ff50,transparent 65%),radial-gradient(ellipse at 95% 0%,#fff1e63b,transparent 60%)}
.d9-card.rarity-ur .d9-details{background-image:linear-gradient(115deg,transparent 12%,#fff7da80 40%,#96733a0d 62%,#fff2c433 85%)}
.d9-card.rarity-ss .d9-details{background-image:linear-gradient(120deg,#ffe4cc24,transparent 25%,#eee0ff50 44%,#d9f5f042 54%,transparent 72%)}
.d9-card.collector-card .d9-footer,.d9-card.game-card .d9-footer{
  background:color-mix(in srgb,var(--ink) 88%,#151b23);color:#faf6ef;border-color:#ffffff26;
}
.d9-card .d9-value{background:#fffaf0;color:#080e0a}
.d9-card .d9-specs{background:none;color:var(--ink);padding:0;bottom:8px}
.d9-card .d9-photo{box-shadow:inset 0 0 0 1px #ffffff26}
@media(min-width:761px){.catalogue-toolbar{grid-template-columns:minmax(180px,1.2fr) repeat(3,minmax(145px,.8fr)) auto}}
.rarity-overview{margin:22px 0 28px;padding:20px;border:1px solid var(--line);background:#15191b;border-radius:10px}
.rarity-overview h2{font:700 20px/1.3 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.02em;margin:6px 0 16px}
.rarity-overview>.small{margin:12px 0 0}
.rarity-counts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.rarity-count{min-width:0;padding:12px;background:#ffffff04;border:1px solid #ffffff0c;border-radius:7px;display:grid;grid-template-columns:1fr auto;gap:7px}
.rarity-count>span{color:var(--stock);font-size:11px;font-weight:800;letter-spacing:.12em;grid-column:1/-1}
.rarity-count>strong{font-size:26px;line-height:1.2;color:#f5f2ed;font-variant-numeric:tabular-nums}
.rarity-count>small{align-self:end;color:#aeb5b9;font-size:11px;padding-bottom:3px;white-space:nowrap}
.rarity-meter{grid-column:1/-1;height:3px;background:#ffffff0b;border-radius:3px;overflow:hidden}
.rarity-meter>i{display:block;height:100%;background:var(--rarity)}
@media(max-width:900px){.rarity-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:440px){.rarity-overview{padding:14px}.rarity-overview>.row{align-items:start;flex-direction:column;gap:0;margin-bottom:12px}.rarity-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Catalogue age distribution mirrors rarity KPIs without adding another colour code. */
.decade-overview{margin:0 0 28px;padding:20px;border:1px solid var(--line);background:#15191b;border-radius:10px}
.decade-overview h2{font:700 20px/1.3 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.02em;margin:6px 0 16px}
.decade-overview>.small{margin:12px 0 0}
.decade-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:10px}
.decade-count{min-width:0;padding:12px;background:linear-gradient(180deg,#191e20,#121618);border:1px solid #ffffff0d;border-radius:7px;display:grid;grid-template-columns:1fr auto;gap:7px}
.decade-count>span{color:#d8dcda;font-size:10px;font-weight:800;letter-spacing:.08em;grid-column:1/-1;text-transform:uppercase;white-space:nowrap}
.decade-count>strong{font-size:26px;line-height:1.2;color:#f5f2ed;font-variant-numeric:tabular-nums}
.decade-count>small{align-self:end;color:#aeb5b9;font-size:11px;padding-bottom:3px;white-space:nowrap}
.decade-meter{grid-column:1/-1;height:3px;background:#ffffff0b;border-radius:3px;overflow:hidden}
.decade-meter>i{display:block;height:100%;background:linear-gradient(90deg,#a8492d,var(--gold))}
.decade-count.decade-unknown{opacity:.66}
@media(max-width:600px){.decade-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.decade-overview{padding:14px}.decade-overview>.row{align-items:start;flex-direction:column;gap:0;margin-bottom:12px}}

/* v0.15.1 — Neo Racing Luxury.
   One premium dark chassis for every rarity. Rarity is communicated by the
   frame, restrained light and accents — never by a loud material texture. */
.d9-card.rarity-c,.rarity-count.rarity-c{
  --rarity:#8a9091;--stock:#b8bebd;--rarity-light:#c9cdcc;
}
.d9-card.rarity-nc,.rarity-count.rarity-nc{
  --rarity:#4f8e6a;--stock:#77b38d;--rarity-light:#9bc7aa;
}
.d9-card.rarity-r,.rarity-count.rarity-r{
  --rarity:#4f7fae;--stock:#77a2ca;--rarity-light:#9bbbd8;
}
.d9-card.rarity-sr,.rarity-count.rarity-sr{
  --rarity:#8267ad;--stock:#aa92ca;--rarity-light:#c5b4dc;
}
.d9-card.rarity-ur,.rarity-count.rarity-ur{
  --rarity:#b18e49;--stock:#d0b66f;--rarity-light:#e3d09c;
}
.d9-card.rarity-ss,.rarity-count.rarity-ss{
  --rarity:#b8514d;--stock:#d67a72;--rarity-light:#e7a09a;
}

.d9-card.collector-card,.d9-card.game-card{
  --material:none;
  background-image:none!important;
  background:
    radial-gradient(circle at 92% 4%,color-mix(in srgb,var(--rarity) 8%,transparent) 0,transparent 28%),
    linear-gradient(145deg,#1b2022 0%,#121618 48%,#0d1113 100%)!important;
  border-color:color-mix(in srgb,var(--rarity) 76%,#303638)!important;
  color:#eef1ef;
  box-shadow:
    inset 0 0 0 1px #ffffff08,
    0 10px 26px #00000052!important;
}
.d9-card.collector-card{
  border-width:1px!important;
  border-top-width:3px!important;
}
.d9-card.game-card{
  border-width:1px!important;
  box-shadow:inset 0 0 0 1px #ffffff07!important;
}

.d9-card.collector-card.rarity-r,
.d9-card.collector-card.rarity-sr,
.d9-card.collector-card.rarity-ur,
.d9-card.collector-card.rarity-ss{
  box-shadow:
    inset 0 0 0 1px #ffffff09,
    0 0 0 1px color-mix(in srgb,var(--rarity) 12%,transparent),
    0 10px 28px #00000058!important;
}
.d9-card.collector-card.rarity-sr,
.d9-card.collector-card.rarity-ur,
.d9-card.collector-card.rarity-ss{
  box-shadow:
    inset 0 0 0 1px #ffffff0a,
    0 0 16px color-mix(in srgb,var(--rarity) 9%,transparent),
    0 12px 30px #00000060!important;
}

.d9-card.collector-card .d9-nameplate,
.d9-card.game-card .d9-nameplate{
  background-image:none!important;
  background:linear-gradient(180deg,#1d2224 0%,#151a1c 100%)!important;
  border-color:#ffffff12;
  color:#eef1ef;
}
.d9-card .d9-nameplate>span,
.d9-card .d9-nameplate>strong{
  background:transparent!important;
  padding:0!important;
  color:#eef1ef;
  border-radius:0;
  box-decoration-break:slice;
}
.d9-card .d9-nameplate>span{
  color:var(--rarity-light);
  letter-spacing:.08em;
}
.d9-card .d9-nameplate>strong{
  color:#f5f6f3!important;
  letter-spacing:-.01em;
}

.d9-card .d9-photo{
  background:#171c1e;
  border-color:#ffffff14;
  box-shadow:
    inset 0 0 0 1px #ffffff0a,
    inset 0 -16px 28px #00000018;
}
.d9-card .d9-photo img{
  filter:saturate(.94) contrast(1.04) brightness(.94);
}
.d9-card .d9-placeholder{
  color:#ffffff10;
}

.d9-card.collector-card .d9-details,
.d9-card.game-card .d9-details{
  background-image:none!important;
  background:
    linear-gradient(180deg,#181d1f 0%,#111517 100%)!important;
  border-color:#ffffff12;
  color:#e8ece9;
}
.d9-card .d9-diamond{
  border-color:color-mix(in srgb,var(--rarity) 64%,#3a4143);
  background:#0d1214;
  box-shadow:
    0 0 0 1px #ffffff08,
    0 4px 12px #00000045;
}
.d9-card .d9-value{
  background:#171d1f!important;
  color:#f5f6f3!important;
  box-shadow:inset 0 0 0 1px #ffffff05;
}
.d9-card .d9-value b{
  color:#f7f8f5!important;
  text-shadow:none;
}

.d9-card .d9-brand-emblem{
  background:#f1f2ee!important;
  border:1px solid #ffffff1f;
  border-radius:50%;
  padding:3px;
  box-sizing:content-box;
  box-shadow:0 2px 8px #00000038;
}
.d9-card .d9-signature{color:#222a2c}
.d9-card .d9-flag{filter:saturate(.82)}
.d9-card .d9-specs{
  background:transparent!important;
  color:#9ea6a8!important;
  padding:0!important;
  letter-spacing:.05em;
}
.d9-card.collector-card .d9-footer,
.d9-card.game-card .d9-footer{
  background:#0c1012!important;
  color:#bdc3c2!important;
  border-color:#ffffff12;
}
.d9-card .d9-footer>strong{color:var(--rarity-light)}

.d9-card.game-card.owned{
  border-color:color-mix(in srgb,var(--you) 52%,var(--rarity))!important;
}
.d9-card.game-card.enemy{
  border-color:color-mix(in srgb,var(--rival) 52%,var(--rarity))!important;
}
.d9-card.game-card.owned .d9-photo{border-bottom-color:var(--you)}
.d9-card.game-card.enemy .d9-photo{border-bottom-color:var(--rival)}
.d9-card.game-card.selected{
  outline:2px solid var(--you);
  outline-offset:2px;
  box-shadow:0 0 18px color-mix(in srgb,var(--you) 18%,transparent)!important;
}

/* The admin overview mirrors the same restrained rarity language. */
.rarity-count{
  background:linear-gradient(180deg,#191e20,#121618);
  border-color:#ffffff0d;
}
.rarity-count>span{color:var(--stock)}
.rarity-meter{background:#ffffff0b}
.rarity-meter>i{
  background:linear-gradient(90deg,var(--rarity),var(--rarity-light));
}

/* Compact duel cards keep the same material language without expensive effects. */
.d9-card.game-card .d9-diamond{
  box-shadow:0 1px 4px #00000045;
}
.d9-card.game-card .d9-brand-emblem{
  padding:1px;
  box-shadow:none;
}

@media(max-width:520px){
  .d9-card.collector-card{
    box-shadow:inset 0 0 0 1px #ffffff08,0 8px 20px #0000004d!important;
  }
  .d9-card .d9-photo img{filter:saturate(.96) contrast(1.03) brightness(.95)}
}



/* v0.17 — Admin web import assistant. */
.web-import-panel{margin:0 0 28px;border-color:#5a5148;background:linear-gradient(155deg,#191b1c,#111416)}
.web-import-panel>p{max-width:820px}
.web-import-search{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.4fr) minmax(120px,.55fr) auto;gap:10px;align-items:end;margin:16px 0 10px}
.web-import-search label{display:grid;gap:6px;color:#d9d1c5;font-size:12px}.web-import-search .input{width:100%;max-width:none;text-transform:none;letter-spacing:0}.web-import-search .btn{min-width:120px}
.web-import-results,.web-import-review{margin-top:14px}
.web-import-candidates,.web-import-variants{display:grid;gap:8px}.web-import-candidate{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:12px 14px;background:#101416;border:1px solid #ffffff15;color:#f1eee8}.web-import-candidate:hover{border-color:var(--gold);background:#171b1d}.web-import-candidate>span{display:grid;gap:3px;min-width:0}.web-import-candidate strong,.web-import-candidate>span>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.web-import-candidate small{color:var(--muted)}.web-import-candidate>b{color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.08em;flex:0 0 auto}
.web-import-review-grid{display:grid;grid-template-columns:minmax(220px,310px) minmax(0,1fr);gap:22px;align-items:start;padding-top:16px;border-top:1px solid #ffffff12}.web-import-preview{max-width:310px}.web-import-preview .d9-card{width:100%}.web-import-proposal h3{font:700 24px/1.15 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.025em;margin:5px 0 14px}
.web-import-brandline{display:flex;align-items:center;gap:10px;padding:9px 0 13px;color:var(--muted);font-size:12px}.web-import-brandline img{width:42px;height:42px;object-fit:contain;background:#f3f3ef;border-radius:50%;padding:5px}
.web-import-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.web-import-metrics article{padding:10px 11px;background:#0e1214;border:1px solid #ffffff10;display:grid;gap:4px}.web-import-metrics span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.web-import-metrics strong{font-size:17px;font-variant-numeric:tabular-nums}
.web-import-image{margin-top:12px;display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:center;color:var(--muted);font-size:12px}.web-import-image img{width:110px;height:70px;object-fit:cover;border:1px solid #ffffff18;background:#0d1012}
.web-import-warning,.web-import-ok{margin-top:10px;padding:10px 12px;border-left:3px solid #a85a38;background:#2d211c;color:#ddd5c9;font-size:12px;display:grid;gap:4px}.web-import-ok{border-left-color:#6fa989;background:#17231d}.web-import-warning>span{color:#c4b9ac}.web-import-variants{margin-top:16px;padding-top:14px;border-top:1px solid #ffffff12}.web-import-variants>strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:2px}
@media(max-width:820px){.web-import-search{grid-template-columns:1fr 1fr}.web-import-search .btn{width:100%}.web-import-review-grid{grid-template-columns:1fr}.web-import-preview{max-width:330px;margin:auto}.web-import-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.web-import-search{grid-template-columns:1fr}.web-import-panel{padding:15px}.web-import-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.web-import-image{grid-template-columns:92px 1fr}.web-import-image img{width:92px;height:62px}}


/* v0.18 — Race Control navigation + strict catalogue quality workflow. */
.admin-nav{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:1px!important;
  padding:4px!important;
  margin:0 0 24px!important;
  top:8px!important;
  background:#111517f2!important;
  border:1px solid #ffffff10;
  border-radius:12px;
  box-shadow:0 12px 30px #00000030;
  overflow:hidden;
}
.admin-nav-item{
  appearance:none;border:0;background:transparent;color:#8f989a;
  min-width:0;padding:11px 12px;display:grid;gap:3px;text-align:left;
  border-radius:8px;cursor:pointer;transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.admin-nav-item>span{font:800 11px/1.1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.admin-nav-item>small{font:500 10px/1.15 Barlow,Arial,sans-serif;color:#697275;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-nav-item:hover{background:#ffffff06;color:#dfe3e1}
.admin-nav-item.active{background:linear-gradient(180deg,#252b2d,#1b2022);color:#f5f3ed;box-shadow:inset 0 0 0 1px #ffffff0c}
.admin-nav-item.active>small{color:#c9a877}
.admin-nav-item.active::after{content:"";height:2px;background:linear-gradient(90deg,var(--gold),#d56b3f);border-radius:3px;margin-top:5px}

.quality-command{margin:0 0 30px;padding:20px;border:1px solid #ffffff11;border-radius:12px;background:linear-gradient(155deg,#171b1d,#0f1214)}
.quality-command-head{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:18px}
.quality-command-head h2{margin:5px 0 8px;font:800 25px/1.1 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.03em}
.quality-command-head p{max-width:760px;margin:0;color:#9da5a7}
.quality-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.quality-kpis article{min-width:0}.quality-kpis small{display:block;color:#778082;font-size:10px;margin-top:3px}
.quality-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(190px,.8fr) auto;gap:10px;align-items:center;margin:18px 0 10px}
.quality-toolbar .input{max-width:none;width:100%;text-transform:none;letter-spacing:0}
.quality-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #ffffff0a}
.quality-selection-bar .actions{margin:0}.quality-selection-bar>strong{font-size:11px;color:#c9a877;text-transform:uppercase;letter-spacing:.06em}
.quality-bulk-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 0 4px}
.btn.danger{border-color:#7b423b;color:#e9a79e}.btn.danger:hover{background:#40221f}
.quality-list{display:grid;gap:7px;margin-top:15px}
.quality-row{display:grid;grid-template-columns:34px 86px minmax(0,1fr) 46px auto;gap:12px;align-items:center;padding:9px 11px;border:1px solid #ffffff0d;background:#101416;border-radius:8px}
.quality-row.published{border-left:3px solid #5d9476}.quality-row.ready{border-left:3px solid #b49359}.quality-row.blocked{border-left:3px solid #9a5546}.quality-row.hidden{opacity:.55;border-left:3px solid #606568}
.quality-check{display:grid;place-items:center}.quality-check input{width:17px;height:17px;accent-color:#c79a5b}
.quality-thumb{width:86px;height:52px;overflow:hidden;background:#0a0d0e;border:1px solid #ffffff0e;display:grid;place-items:center;color:#ffffff22;font:900 18px/1 Barlow,Arial,sans-serif}
.quality-thumb img{width:100%;height:100%;object-fit:cover}
.quality-copy{min-width:0;display:grid;gap:4px}.quality-title{display:flex;align-items:center;gap:9px;min-width:0}.quality-title>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quality-copy>span{font-size:10px;color:#7f898b}
.quality-state{flex:0 0 auto;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#b7bebd;border:1px solid #ffffff14;padding:3px 5px;border-radius:4px}
.quality-badges{display:flex;gap:5px;flex-wrap:wrap}.quality-badge{font-size:9px;padding:2px 5px;border-radius:4px;background:#ffffff05;color:#737d7f}.quality-badge.ok{color:#83b298;background:#20352a}.quality-badge.bad{color:#d89c8d;background:#38221e}
.quality-logo{width:42px;height:42px;border-radius:50%;background:#eef0eb;display:grid;place-items:center;padding:5px;color:#182022;font:900 10px/1 Barlow,Arial,sans-serif}.quality-logo img{max-width:100%;max-height:100%;object-fit:contain}
.quality-meta{display:grid;justify-items:end;gap:5px}.quality-meta>span{font-size:9px;text-transform:uppercase;color:#7f888a}.quality-meta .btn{padding:6px 8px;min-height:30px;font-size:9px}
.quality-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}.quality-pagination>span{font-size:10px;color:#879092;text-transform:uppercase;letter-spacing:.06em}
.quality-section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:30px 0 12px}.quality-section-title h2{margin:4px 0 0;font:800 23px/1.1 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.025em}

@media(max-width:960px){
  .quality-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .quality-row{grid-template-columns:30px 74px minmax(0,1fr) 42px}.quality-meta{grid-column:3/-1;display:flex;justify-content:flex-end;align-items:center}.quality-thumb{width:74px;height:48px}
}
@media(max-width:760px){
  .admin-nav{display:flex!important;overflow-x:auto!important;scrollbar-width:none;padding:4px!important;background:#111517!important;position:sticky!important;top:4px!important}
  .admin-nav::-webkit-scrollbar{display:none}.admin-nav-item{flex:0 0 132px;padding:10px}.admin-nav-item>small{font-size:9px}
  .quality-command{padding:14px}.quality-command-head{display:grid;gap:12px}.quality-command-head .btn{width:100%}
  .quality-toolbar{grid-template-columns:1fr}.quality-toolbar .pill{justify-self:start}
  .quality-selection-bar{align-items:flex-start;flex-direction:column}.quality-bulk-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.quality-bulk-actions .btn{width:100%}
  .quality-row{grid-template-columns:26px 68px minmax(0,1fr);gap:8px}.quality-thumb{width:68px;height:46px}.quality-logo{display:none}.quality-meta{grid-column:2/-1}.quality-title{align-items:flex-start;flex-direction:column;gap:4px}.quality-badges{gap:3px}.quality-badge{font-size:8px}
}
@media(max-width:480px){
  .quality-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quality-bulk-actions{grid-template-columns:1fr 1fr}.quality-bulk-actions [data-quality-action="publish"]{grid-column:1/-1;grid-row:1}
}

.admin-catalogue-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.55fr);gap:8px;margin:0 0 8px}
.admin-catalogue-toolbar .input{width:100%;max-width:none;text-transform:none;letter-spacing:0}
@media(max-width:560px){.admin-catalogue-toolbar{grid-template-columns:1fr}}


/* v0.18.2 — stronger rarity read without losing the premium chassis. */
.d9-card.rarity-c{--rare-frame:0px;--rare-inner:20%;--rare-glow-size:0px;--rare-glow-alpha:0%;--collector-top:3px;--game-frame:1px}
.d9-card.rarity-nc{--rare-frame:1px;--rare-inner:24%;--rare-glow-size:6px;--rare-glow-alpha:6%;--collector-top:3px;--game-frame:1px}
.d9-card.rarity-r{--rare-frame:1px;--rare-inner:28%;--rare-glow-size:10px;--rare-glow-alpha:9%;--collector-top:4px;--game-frame:1px}
.d9-card.rarity-sr{--rare-frame:2px;--rare-inner:34%;--rare-glow-size:14px;--rare-glow-alpha:12%;--collector-top:4px;--game-frame:2px}
.d9-card.rarity-ur{--rare-frame:2px;--rare-inner:40%;--rare-glow-size:18px;--rare-glow-alpha:15%;--collector-top:5px;--game-frame:2px}
.d9-card.rarity-ss{--rare-frame:3px;--rare-inner:46%;--rare-glow-size:24px;--rare-glow-alpha:18%;--collector-top:5px;--game-frame:2px}
.d9-card.collector-card,.d9-card.game-card{position:relative}
.d9-card.collector-card::before,.d9-card.collector-card::after,.d9-card.game-card::before,.d9-card.game-card::after{content:"";display:block!important;position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.d9-card.collector-card::before,.d9-card.game-card::before{z-index:0;box-shadow:inset 0 0 0 1px #ffffff0b,inset 0 0 0 calc(var(--rare-frame) + 1px) color-mix(in srgb,var(--rarity) var(--rare-inner),transparent)}
.d9-card.collector-card::after,.d9-card.game-card::after{z-index:0;inset:-1px;box-shadow:0 0 0 var(--rare-frame) color-mix(in srgb,var(--rarity) 20%,transparent),0 0 var(--rare-glow-size) color-mix(in srgb,var(--rarity) var(--rare-glow-alpha),transparent)}
.d9-card.collector-card>*,.d9-card.game-card>*{position:relative;z-index:1}
.d9-card.collector-card{border-width:2px!important;border-top-width:var(--collector-top)!important;box-shadow:inset 0 0 0 1px #ffffff09,0 14px 30px #00000058,0 0 var(--rare-glow-size) color-mix(in srgb,var(--rarity) var(--rare-glow-alpha),transparent)!important}
.d9-card.game-card{border-width:var(--game-frame)!important;box-shadow:inset 0 0 0 1px #ffffff08,0 0 0 var(--rare-frame) color-mix(in srgb,var(--rarity) 16%,transparent),0 0 calc(var(--rare-glow-size) * .7) color-mix(in srgb,var(--rarity) var(--rare-glow-alpha),transparent)!important}
.d9-card.collector-card .d9-nameplate,.d9-card.game-card .d9-nameplate{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--rarity) 12%,transparent)}
.d9-card.collector-card .d9-details,.d9-card.game-card .d9-details{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--rarity) 8%,transparent)}
.d9-card .d9-diamond{box-shadow:0 0 0 1px color-mix(in srgb,var(--rarity) 20%,transparent),0 4px 12px #00000045,0 0 calc(var(--rare-glow-size) * .45) color-mix(in srgb,var(--rarity) var(--rare-glow-alpha),transparent)}
.d9-card .d9-footer{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--rarity) 12%,transparent)}
.d9-card.collector-card.rarity-ur .d9-nameplate,.d9-card.collector-card.rarity-ss .d9-nameplate,.d9-card.collector-card.rarity-ur .d9-footer,.d9-card.collector-card.rarity-ss .d9-footer,.d9-card.game-card.rarity-ur .d9-nameplate,.d9-card.game-card.rarity-ss .d9-nameplate{background-image:linear-gradient(180deg,color-mix(in srgb,var(--rarity) 10%,#202527),#151a1c)!important}
.d9-card.collector-card.rarity-sr .d9-nameplate,.d9-card.collector-card.rarity-sr .d9-footer,.d9-card.game-card.rarity-sr .d9-nameplate{background-image:linear-gradient(180deg,color-mix(in srgb,var(--rarity) 8%,#1f2426),#151a1c)!important}
.d9-card.game-card-hand::after,.d9-card.game-card-board::after{box-shadow:0 0 0 var(--rare-frame) color-mix(in srgb,var(--rarity) 18%,transparent),0 0 calc(var(--rare-glow-size) * .5) color-mix(in srgb,var(--rarity) var(--rare-glow-alpha),transparent)}

/* v0.19 — guided card authoring. Derived fields look deliberate, not disabled. */
.auto-field{min-height:72px;padding:10px 12px;border:1px solid #ffffff12;background:#0f1315;border-radius:6px;display:grid;align-content:center;gap:4px}
.auto-field>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#858e90}
.auto-field>strong{font-size:16px;color:#edf0ed;min-width:0;overflow:hidden;text-overflow:ellipsis}
.auto-field>small{font-size:10px;line-height:1.3;color:#6f797b}
.auto-logo-preview{position:absolute;right:10px;bottom:9px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#eef0eb;color:#1c2526;font:900 10px/1 Barlow,Arial,sans-serif;padding:5px}
.auto-field:has(.auto-logo-preview){position:relative;padding-right:58px}
.auto-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.web-import-panel .pill{white-space:nowrap}
@media(max-width:520px){.auto-field{min-height:66px}}


/* v0.22 — data lab scroll behaviour + source-review workflow. */
#admin-data .admin-data-layout > .admin-form{
  position:static!important;
  top:auto!important;
}
.source-workflow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  margin:14px 0 8px;
}
.source-workflow span{
  min-width:0;
  padding:9px 10px;
  border:1px solid #ffffff0d;
  background:#111516;
  color:#8f9899;
  font-size:9px;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.source-workflow b{
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  margin-right:6px;
  border:1px solid #67543c;
  color:#d5ad73;
  font-size:9px;
}
@media(max-width:760px){
  .source-workflow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .source-workflow{grid-template-columns:1fr}
}


/* v0.22.1 — technical sanity line on every card. */
.d9-card .d9-specs{
  white-space:nowrap;
  text-overflow:ellipsis;
  display:block;
  max-height:none;
  overflow:hidden;
}
.d9-card.game-card .d9-specs{
  left:3px;
  right:3px;
  bottom:2px;
  font-size:4.5px;
  line-height:1.1;
  letter-spacing:.01em;
}
@media(max-width:520px){
  .d9-card.game-card .d9-specs{font-size:4px}
}


/* v0.22.2 — compact energy pictogram beside vehicle category. */
.d9-footer-main{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}
.d9-footer-main>span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.d9-energy-icon{
  position:relative;
  flex:0 0 auto;
  width:13px;
  height:13px;
  display:inline-grid;
  place-items:center;
  color:#aab2b1;
  line-height:1;
}
.d9-energy-icon svg{
  width:100%;
  height:100%;
  display:block;
}
.d9-energy-icon>span{
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:-.05em;
}
.d9-energy-icon>b{
  position:absolute;
  right:-2px;
  bottom:-2px;
  min-width:7px;
  height:7px;
  padding:0 1px;
  display:grid;
  place-items:center;
  border-radius:4px;
  background:#0c1012;
  color:currentColor;
  font:900 5px/1 Barlow,Arial,sans-serif;
}
.d9-energy-petrol{color:#c4a36f}
.d9-energy-diesel{color:#9fa8aa}
.d9-energy-hybrid{color:#88ad8c}
.d9-energy-electric{color:#79a9c9}
.d9-energy-hydrogen{color:#86b9c5}
.d9-energy-gpl{color:#bd9275}
.d9-card.game-card .d9-footer-main{gap:2px}
.d9-card.game-card .d9-energy-icon{
  width:7px;
  height:7px;
}
.d9-card.game-card .d9-energy-icon>span{font-size:4px}
.d9-card.game-card .d9-energy-icon>b{
  display:none;
}


/* v0.23 — collection economy, deck builder, duel formats and rarity accent band. */
.d9-card .d9-photo::after{
  content:"";
  position:absolute;
  left:7%;
  right:7%;
  bottom:0;
  height:4px;
  border-radius:4px 4px 0 0;
  background:linear-gradient(90deg,color-mix(in srgb,var(--rarity) 78%,#fff),var(--rarity),color-mix(in srgb,var(--rarity) 72%,#111));
  box-shadow:0 0 9px color-mix(in srgb,var(--rarity) 30%,transparent);
  z-index:2;
  pointer-events:none;
}
.d9-card.game-card .d9-photo::after{left:5%;right:5%;height:2px;box-shadow:0 0 5px color-mix(in srgb,var(--rarity) 26%,transparent)}

.pack-economy-panel,.duel-config-panel{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding:20px;border:1px solid #ffffff11;background:linear-gradient(145deg,#181d1f,#101416);border-radius:10px
}
.pack-economy-copy{display:grid;gap:7px;min-width:0}.pack-economy-copy h2,.duel-config-panel h2{margin:0;font:800 24px/1.12 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.03em}
.pack-economy-copy p{margin:0;max-width:760px;color:#9da5a7}.pack-economy-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:11px;color:#838c8e}
.deck-ready{color:#7fb393}.deck-waiting{color:#d0976f}.pack-open{flex:0 0 auto;min-width:220px}
.duel-config-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,340px);align-items:end}.duel-config-panel>.row,.duel-config-panel>p{grid-column:1/-1}.duel-config-panel label{display:grid;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#899294}

.pack-reveal{position:fixed;inset:0;z-index:1200;background:#050708d9;backdrop-filter:blur(12px);display:grid;place-items:center;padding:20px;overflow:auto}
.pack-sheet{width:min(1120px,100%);padding:20px;border:1px solid #ffffff18;background:linear-gradient(145deg,#181d1f,#0d1113);box-shadow:0 30px 80px #0008}
.pack-sheet-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.pack-sheet-head h2{margin:4px 0 0;font:900 34px/1 Barlow,Arial,sans-serif;text-transform:uppercase}
.pack-close{appearance:none;border:0;background:#ffffff0b;color:#eee;width:40px;height:40px;border-radius:50%;font-size:24px;cursor:pointer}
.pack-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:22px 0}.pack-card{min-width:0}.pack-card .d9-card{width:100%}.pack-done{display:block;margin-left:auto}

.deck-toolbar{display:grid;grid-template-columns:minmax(160px,1.4fr) repeat(3,minmax(120px,.75fr));gap:7px;margin:14px 0 9px}.deck-toolbar .input{width:100%;max-width:none;text-transform:none;letter-spacing:0}
.deck-legality{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px}.deck-legality span{padding:4px 6px;border:1px solid #ffffff10;font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#727c7e}.deck-legality .ok{color:#7fb393;border-color:#335844;background:#17251d}.deck-legality .no{color:#b77f72;background:#271a18}
.profile-deck-panel .deck-picker{display:grid;gap:6px;max-height:560px;overflow:auto;padding-right:3px}
.profile-deck-panel .deck-pick{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid #ffffff0d;background:#0f1315;border-radius:6px}
.profile-deck-panel .deck-pick.selected{border-color:#7c6442;background:#181713}.deck-pick-flag{font-size:18px}.deck-pick-copy{min-width:0;display:grid;gap:2px}.deck-pick-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.deck-pick-copy small{font-size:8px;color:#798284}
.deck-stepper{display:grid;grid-template-columns:28px 24px 28px;align-items:center}.deck-stepper button{height:28px;border:1px solid #ffffff12;background:#171c1e;color:#ddd;cursor:pointer}.deck-stepper button:disabled{opacity:.25;cursor:not-allowed}.deck-stepper b{text-align:center;font-size:12px}
.profile-deck-panel #deck-save:disabled{opacity:.45}

@media(max-width:900px){
  .pack-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .deck-toolbar{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .pack-economy-panel{align-items:stretch;flex-direction:column}.pack-open{width:100%;min-width:0}
  .duel-config-panel{grid-template-columns:1fr}
  .pack-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .deck-toolbar{grid-template-columns:1fr}
}


/* v0.24 — automated cross-source catalogue reconciliation. */
.source-sync-panel{
  margin:0 0 18px;padding:20px;border:1px solid #ffffff12;border-radius:12px;
  background:linear-gradient(150deg,#171c1e,#0f1315);
}
.source-sync-panel h2{margin:5px 0 9px;font:800 25px/1.1 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:-.03em}
.source-sync-panel>p{max-width:880px;color:#9ba4a6}
.source-sync-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}
.source-sync-kpis article{padding:12px;border:1px solid #ffffff0d;background:#0d1113;display:grid;gap:4px}
.source-sync-kpis span{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#788184}
.source-sync-kpis strong{font-size:23px;font-variant-numeric:tabular-nums;color:#f0eee8}
.source-manual-heading{margin:28px 0 10px;padding-top:14px;border-top:1px solid #ffffff0d}
.source-manual-heading p{margin:4px 0 0;color:#788184;font-size:11px}
@media(max-width:720px){.source-sync-kpis{grid-template-columns:1fr 1fr}.source-sync-panel{padding:15px}}


/* v0.25 — placement synergies + driver progression. */
.d9-card.synergy-country{--synergy:#59b77b}
.d9-card.synergy-brand{--synergy:#5b8fe2}
.d9-card.synergy-country .d9-value,
.d9-card.synergy-brand .d9-value{
  border-color:color-mix(in srgb,var(--synergy) 78%,#20302b)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--synergy) 18%,transparent);
}
.d9-card.synergy-country .d9-value b,
.d9-card.synergy-brand .d9-value b{
  color:var(--synergy)!important;
  text-shadow:0 0 8px color-mix(in srgb,var(--synergy) 28%,transparent);
}
.d9-synergy-badge{
  position:absolute;
  left:50%;
  top:2px;
  z-index:5;
  transform:translate(-50%,-50%);
  max-width:78%;
  padding:3px 7px;
  border:1px solid color-mix(in srgb,var(--synergy,#79837f) 70%,#fff);
  border-radius:999px;
  background:#0c1110ee;
  color:var(--synergy,#dce4df);
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.06em;
  white-space:nowrap;
}
.d9-card.game-card .d9-synergy-badge{
  top:1px;
  padding:1px 3px;
  font-size:4px;
  border-width:1px;
}
.cell.empty.synergy-country{border-color:#59b77b!important;box-shadow:inset 0 0 0 2px #59b77b3a,0 0 18px #59b77b22}
.cell.empty.synergy-brand{border-color:#5b8fe2!important;box-shadow:inset 0 0 0 2px #5b8fe23a,0 0 18px #5b8fe222}
.placement-preview{
  position:absolute;
  inset:3px;
  z-index:8;
  pointer-events:none;
  opacity:.9;
  transform:scale(.97);
}
.cell.empty{position:relative}
.placement-preview .d9-card{width:100%;height:100%}
.cell.occupied.preview-capture{
  outline:2px solid #68bf7e;
  outline-offset:-2px;
  box-shadow:0 0 18px #68bf7e44;
}
.drag-ghost.synergy-country{box-shadow:0 0 26px #59b77b66,12px 16px 30px #000c!important}
.drag-ghost.synergy-brand{box-shadow:0 0 26px #5b8fe266,12px 16px 30px #000c!important}

.progression-panel{
  padding:20px;
  border:1px solid #ffffff12;
  border-radius:10px;
  background:linear-gradient(145deg,#171c1e,#0e1214);
}
.progression-head,.daily-missions-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.progression-head h2{
  margin:5px 0 0;
  font:800 25px/1.1 Barlow,Arial,sans-serif;
  text-transform:none;
  letter-spacing:-.03em;
}
.progression-bars{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:18px 0;
}
.progression-bars>div{
  padding:11px 12px;
  border:1px solid #ffffff0d;
  background:#0d1113;
  display:grid;
  gap:8px;
}
.progression-bars span{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
}
.progression-bars span b{font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.progression-bars span small{font-size:9px;color:#7c8789;font-variant-numeric:tabular-nums}
.progression-bars i{
  display:block;
  height:5px;
  overflow:hidden;
  border-radius:5px;
  background:#ffffff0a;
}
.progression-bars i>b{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#a96a46,#d7a45f);
  border-radius:inherit;
}
.progression-bars>div+div i>b{background:linear-gradient(90deg,#557d64,#82b18d)}
.daily-missions-head{
  padding-top:13px;
  margin-top:4px;
  border-top:1px solid #ffffff0d;
  font-size:9px;
  letter-spacing:.08em;
  color:#899294;
}
.daily-missions{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  margin:9px 0 12px;
}
.daily-missions article{
  min-width:0;
  padding:10px;
  border:1px solid #ffffff0d;
  background:#101416;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:8px;
  align-items:start;
}
.daily-missions article.complete{
  border-color:#385d46;
  background:#122019;
}
.mission-check{
  width:26px;height:26px;
  display:grid;place-items:center;
  border:1px solid #ffffff14;
  border-radius:50%;
  font:900 8px/1 Barlow,Arial,sans-serif;
  color:#b8bfbc;
}
.daily-missions .complete .mission-check{background:#315c41;border-color:#5a946b;color:#eaf4ed}
.daily-missions article>div{min-width:0;display:grid;gap:3px}
.daily-missions strong{font-size:9px;line-height:1.25}
.daily-missions small{font-size:8px;line-height:1.35;color:#778184}

.race-log-item .synergy-note{color:#74a8df}

@media(max-width:900px){
  .daily-missions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .progression-bars{grid-template-columns:1fr}
}
@media(max-width:560px){
  .progression-panel{padding:14px}
  .daily-missions{grid-template-columns:1fr}
  .placement-preview{inset:2px}
}


/* v0.26 — immersive booster opening: large cards, breathing room and mobile snap carousel. */
.pack-reveal{
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:center;
  padding:clamp(12px,2vw,28px);
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%,#29322f55 0,transparent 42%),
    radial-gradient(circle at 18% 18%,#d86b3d18 0,transparent 28%),
    #040607f2;
  backdrop-filter:blur(16px);
}
.pack-sheet{
  position:relative;
  width:min(1740px,100%);
  height:min(920px,calc(100dvh - 24px));
  margin:auto;
  padding:clamp(22px,2vw,34px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:18px;
  overflow:hidden;
  border:1px solid #ffffff1b;
  border-radius:18px;
  background:
    linear-gradient(90deg,#ffffff05 1px,transparent 1px) 0 0/88px 88px,
    linear-gradient(#ffffff04 1px,transparent 1px) 0 0/88px 88px,
    radial-gradient(circle at 50% 48%,#202a2714 0,transparent 52%),
    linear-gradient(150deg,#151b1d 0%,#0b0f11 58%,#080b0c 100%);
  box-shadow:0 42px 110px #000c,inset 0 1px 0 #ffffff08;
}
.pack-sheet::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,transparent 3%,#f06b43 22%,#d49c5c 50%,#557d64 78%,transparent 97%);
  opacity:.9;
  pointer-events:none;
}
.pack-sheet-head{
  position:relative;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding-bottom:18px;
  border-bottom:1px solid #ffffff10;
}
.pack-intro{min-width:0}
.pack-sheet-head .eyebrow{
  color:#ec6b43;
  font-size:11px;
  letter-spacing:.24em;
}
.pack-title-line{
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
  margin-top:7px;
}
.pack-sheet-head h2{
  margin:0;
  font:900 clamp(38px,3.7vw,64px)/.92 Barlow,Arial,sans-serif;
  letter-spacing:-.055em;
  text-transform:uppercase;
  color:#f4f1e9;
}
.pack-count-badge{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  min-width:54px;
  height:42px;
  padding:0 12px;
  border:1px solid #f06b4366;
  background:#f06b4312;
  color:#f07a55;
  font:900 18px/1 Barlow,Arial,sans-serif;
  letter-spacing:-.03em;
}
.pack-lede{
  margin:10px 0 0;
  color:#899294;
  font-size:13px;
}
.pack-close{
  appearance:none;
  flex:0 0 auto;
  width:50px;
  height:50px;
  border:1px solid #ffffff0c;
  border-radius:50%;
  background:#ffffff08;
  color:#dfe3df;
  font:300 30px/1 Barlow,Arial,sans-serif;
  cursor:pointer;
  transition:background .16s ease,transform .16s ease,border-color .16s ease;
}
.pack-close:hover,.pack-close:focus-visible{
  background:#ffffff12;
  border-color:#ffffff1f;
  transform:scale(1.04);
  outline:none;
}
.pack-stage{
  position:relative;
  min-height:0;
  display:grid;
  align-items:center;
  overflow:hidden;
}
.pack-stage::before{
  content:"";
  position:absolute;
  left:50%;
  top:48%;
  width:min(1200px,84%);
  height:78%;
  transform:translate(-50%,-50%);
  background:radial-gradient(ellipse at center,#ffffff09 0,#ffffff03 42%,transparent 72%);
  filter:blur(4px);
  pointer-events:none;
}
.pack-cards{
  position:relative;
  z-index:2;
  min-width:0;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(16px,1.25vw,24px);
  overflow-x:auto;
  overflow-y:hidden;
  padding:20px 10px 30px;
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-color:#ffffff20 transparent;
}
.pack-cards::-webkit-scrollbar{height:5px}
.pack-cards::-webkit-scrollbar-track{background:transparent}
.pack-cards::-webkit-scrollbar-thumb{background:#ffffff20;border-radius:10px}
.pack-card{
  flex:0 0 clamp(248px,15.5vw,300px);
  min-width:0;
  scroll-snap-align:center;
  transform-origin:50% 80%;
  animation:pack-card-arrive .48s cubic-bezier(.18,.78,.22,1) calc(var(--pack-order,0)*70ms) both;
}
.pack-card .d9-card{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;
  filter:drop-shadow(0 18px 24px #0008);
}
.pack-card:hover .d9-card{
  transform:translateY(-6px);
  filter:drop-shadow(0 24px 32px #000b);
}
.pack-card .d9-nameplate>span{font-size:12px}
.pack-card .d9-nameplate>strong{font-size:13px}
.pack-card .d9-value b{font-size:24px}
.pack-card .d9-brand-logo,.pack-card .d9-brand-emblem{width:34px;height:34px}
.pack-card .d9-flag{font-size:28px}
.pack-card .d9-specs{font-size:10px}
.pack-card .d9-footer{font-size:11px}
@keyframes pack-card-arrive{
  from{opacity:0;transform:translateY(26px) scale(.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.pack-actions{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:18px;
  border-top:1px solid #ffffff10;
}
.pack-actions-copy{
  min-width:0;
  display:grid;
  gap:4px;
}
.pack-actions-copy strong{
  color:#ece9e0;
  font:800 12px/1.2 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.pack-actions-copy span{
  color:#747e80;
  font-size:11px;
}
.pack-done{
  flex:0 0 auto;
  min-width:190px;
  min-height:50px;
  margin:0;
  padding-inline:26px;
  font-size:12px;
}
@media(max-width:1320px){
  .pack-card{flex-basis:248px}
  .pack-cards{justify-content:flex-start}
}
@media(max-width:760px){
  .pack-reveal{padding:6px}
  .pack-sheet{
    width:100%;
    height:calc(100dvh - 12px);
    padding:18px 14px 14px;
    gap:12px;
    border-radius:14px;
  }
  .pack-sheet-head{gap:12px;padding-bottom:13px}
  .pack-sheet-head .eyebrow{font-size:9px;letter-spacing:.2em}
  .pack-title-line{gap:10px;margin-top:5px}
  .pack-sheet-head h2{font-size:clamp(31px,10vw,42px);line-height:.95}
  .pack-count-badge{min-width:42px;height:34px;padding:0 9px;font-size:15px}
  .pack-lede{margin-top:7px;font-size:11px}
  .pack-close{width:42px;height:42px;font-size:26px}
  .pack-stage{margin-inline:-14px}
  .pack-cards{
    justify-content:flex-start;
    gap:14px;
    padding:16px max(16px,11vw) 22px;
  }
  .pack-card{flex-basis:min(78vw,310px)}
  .pack-card .d9-nameplate>span{font-size:11px}
  .pack-card .d9-nameplate>strong{font-size:12px}
  .pack-card .d9-value b{font-size:23px}
  .pack-actions{gap:12px;padding-top:13px}
  .pack-actions-copy span{display:none}
  .pack-actions-copy strong{font-size:9px;line-height:1.35}
  .pack-done{min-width:144px;min-height:46px;padding-inline:18px}
}
@media(max-width:430px){
  .pack-title-line{align-items:flex-end}
  .pack-count-badge{margin-bottom:2px}
  .pack-card{flex-basis:min(80vw,306px)}
  .pack-actions{align-items:stretch;flex-direction:column}
  .pack-actions-copy{display:none}
  .pack-done{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .pack-card{animation:none}
  .pack-card .d9-card,.pack-close{transition:none}
}


/* v0.27 — booster hub, sealed-pack opening, header indicator, weekly rotation and admin reset. */
.account{position:relative}
.header-packs{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff12;background:#111516;color:#697173;text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease,filter .16s ease}
.header-packs:hover{transform:translateY(-1px);border-color:#ffffff28}
.header-pack-icon{position:relative;width:19px;height:25px;display:grid;place-items:center;border:1px solid currentColor;background:linear-gradient(145deg,#ffffff0b,transparent);transform:skew(-3deg)}
.header-pack-icon::before,.header-pack-icon::after{content:"";position:absolute;left:2px;right:2px;height:2px;border-top:1px dashed currentColor;opacity:.65}
.header-pack-icon::before{top:3px}.header-pack-icon::after{bottom:3px}.header-pack-icon i{position:absolute;inset:6px 3px;border:1px solid currentColor;opacity:.35}.header-pack-icon b{position:relative;font:900 7px/1 Barlow,Arial,sans-serif;letter-spacing:-.08em}
.header-packs.has-packs{color:#f06b43;border-color:#f06b4350;background:#261711;box-shadow:0 0 0 1px #f06b4310,0 0 22px #f06b4320;animation:header-pack-pulse 1.7s ease-in-out infinite}
.header-pack-badge{position:absolute;right:-6px;top:-6px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border:2px solid #0b0c0d;border-radius:999px;background:#f06b43;color:#0b0c0d;font:900 10px/1 Barlow,Arial,sans-serif}
@keyframes header-pack-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.32)}}

.booster-shop-hero{min-height:330px;margin:10px 0 44px;padding:42px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:36px;border:1px solid #ffffff12;background:radial-gradient(circle at 78% 32%,#f06b4320,transparent 28%),linear-gradient(145deg,#171c1e,#0b0f10);position:relative;overflow:hidden}
.booster-shop-hero h1{font-size:clamp(54px,7vw,104px);margin:16px 0 20px}.booster-shop-hero p{max-width:650px;margin:0}
.booster-shop-kpi{width:190px;aspect-ratio:1;display:grid;place-content:center;text-align:center;border:1px solid #f06b4355;background:#0b0e0fe8;box-shadow:14px 14px 0 #0005}
.booster-shop-kpi strong{font:900 72px/.85 'Barlow Condensed','Arial Narrow',sans-serif;color:#f06b43}.booster-shop-kpi span{margin-top:12px;font:800 9px/1.2 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:#9ea5a4}
.booster-section-head h2{margin:5px 0 0}.booster-inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.booster-stock{min-width:0;display:grid;grid-template-columns:minmax(130px,.72fr) minmax(0,1fr);gap:18px;align-items:center;padding:18px;border:1px solid #ffffff10;background:linear-gradient(150deg,#171b1d,#0e1214)}
.booster-stock.empty{opacity:.55}.booster-stock-art{display:grid;place-items:center;min-height:260px}.booster-stock-art .booster-art{width:min(100%,170px)}
.booster-stock-copy{min-width:0}.booster-stock-copy h3{font-size:26px;margin:5px 0 7px}.booster-stock-copy p{font-size:11px;margin:8px 0 16px}.booster-stock-count{display:block;font:900 28px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#f4f0e8}.booster-stock-copy .btn{width:100%;font-size:10px;padding-inline:10px}

.booster-art{--pack:#8f9896;--pack2:#37413f;position:relative;aspect-ratio:5/8;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto auto;padding:14px 12px 16px;border:1px solid color-mix(in srgb,var(--pack) 72%,#fff);background:linear-gradient(120deg,transparent 0 18%,#ffffff22 20% 21%,transparent 23% 42%,#ffffff18 44% 45%,transparent 47% 100%),radial-gradient(circle at 72% 28%,color-mix(in srgb,var(--pack) 50%,transparent),transparent 34%),linear-gradient(155deg,color-mix(in srgb,var(--pack) 68%,#242a28),var(--pack2) 55%,#080a0a);box-shadow:0 18px 34px #0009,inset 0 0 0 4px #ffffff08;isolation:isolate;transform:rotate(-1deg)}
.booster-art--starter{--pack:#6d927c;--pack2:#263b31}.booster-art--reward{--pack:#d58a4f;--pack2:#4a2a1b}.booster-art--free{--pack:#66869c;--pack2:#253541}.booster-art--shop{--pack:#9d7755;--pack2:#31251c}
.booster-art::before{content:"";position:absolute;inset:7px;border:1px solid #ffffff2c;z-index:-1}.booster-art::after{content:"";position:absolute;width:130%;height:32%;left:-15%;top:38%;background:linear-gradient(90deg,transparent,#ffffff17,transparent);transform:rotate(-24deg);z-index:-1}
.booster-art-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff35 36%,transparent 52%);transform:translateX(-90%);opacity:.45}
.booster-art-top{font:900 13px/1 Barlow,Arial,sans-serif;letter-spacing:.12em;color:#f6f2e9}.booster-art-top b{color:#0a0c0c;background:var(--pack);padding:1px 3px;margin-left:2px}.booster-art-mark{align-self:center;justify-self:center;font:italic 900 clamp(52px,6vw,82px)/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:-.1em;color:#ffffff1e;text-shadow:1px 1px 0 #0003}.booster-art-title{font:900 17px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;color:#f9f4e9;letter-spacing:.04em}.booster-art-sub{margin-top:5px;font:700 7px/1.25 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#e2ddd1}.booster-art-cut{position:absolute;left:0;right:0;top:8px;border-top:1px dashed #ffffff6b}

.booster-market{padding-top:12px;border-top:1px solid #ffffff10}.booster-market-note{max-width:760px;font-size:12px}.booster-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.booster-market-card{min-width:0;display:grid;grid-template-columns:120px minmax(0,1fr);gap:15px;padding:16px;border:1px solid #ffffff0e;background:#101416}.booster-market-art .booster-art{width:110px}.booster-market-card h3{margin:4px 0 7px;font-size:21px}.booster-market-card p{font-size:10px;min-height:32px;margin-bottom:10px}.booster-market-meta{display:flex;justify-content:space-between;gap:8px;margin:9px 0 12px;font-size:9px;color:#7e888a;text-transform:uppercase}.booster-market-meta strong{color:#b99d72}.booster-market-card .btn{width:100%;min-height:38px;padding:8px;font-size:8px}.booster-market-empty{grid-column:1/-1;padding:28px;border:1px dashed #ffffff16;background:#0e1213}

.pack-opening-overlay{position:fixed;inset:0;z-index:1250;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at 50% 45%,#34413d44,transparent 36%),#030506f1;backdrop-filter:blur(18px);overflow:hidden}
.pack-opening-shell{position:relative;width:min(720px,100%);height:min(820px,calc(100dvh - 36px));display:grid;grid-template-rows:auto minmax(0,1fr);place-items:center;padding:34px;border:1px solid #ffffff18;background:linear-gradient(155deg,#151a1c,#090c0d);box-shadow:0 40px 100px #000d;overflow:hidden}
.pack-opening-copy{text-align:center;position:relative;z-index:4}.pack-opening-copy h2{margin:7px 0 6px;font-size:clamp(42px,7vw,72px)}.pack-opening-copy p{margin:0;font-size:12px}.pack-opening-close{position:absolute;right:20px;top:20px;z-index:6;width:44px;height:44px;border:1px solid #ffffff10;border-radius:50%;background:#ffffff08;color:#ddd;font-size:26px}
.booster-open-target{position:relative;align-self:center;width:min(310px,72vw);border:0;background:none;padding:0;color:inherit;display:grid;place-items:center;gap:18px;perspective:1000px}.booster-open-target .booster-art{width:100%;transition:transform .3s ease,filter .3s ease}.booster-open-target:hover .booster-art{transform:rotate(-1deg) translateY(-8px) scale(1.025);filter:brightness(1.08)}.booster-open-target:hover .booster-art-shine{animation:foil-sweep .7s ease both}.booster-open-hint{font:900 10px/1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em;color:#c3c1ba}
@keyframes foil-sweep{from{transform:translateX(-100%)}to{transform:translateX(110%)}}
.pack-opening-overlay.is-opening .booster-art{animation:pack-shake .18s linear 4}.pack-opening-overlay.is-opening .booster-art-cut{border-color:#fff;box-shadow:0 0 12px #fff8}.pack-opening-overlay.is-torn .booster-art{animation:pack-rip .42s cubic-bezier(.3,.8,.2,1) forwards}
@keyframes pack-shake{0%,100%{transform:rotate(-1deg) translateX(0)}25%{transform:rotate(-2deg) translateX(-5px)}75%{transform:rotate(0deg) translateX(5px)}}@keyframes pack-rip{0%{transform:scale(1);opacity:1;clip-path:inset(0)}45%{transform:scale(1.06) rotate(1deg);clip-path:polygon(0 0,100% 0,100% 48%,54% 45%,48% 53%,0 49%)}100%{transform:scale(1.18);opacity:0;clip-path:polygon(0 0,100% 0,100% 38%,55% 34%,47% 62%,0 56%)}}

.weekly-duel-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:22px;border:1px solid #b18b4944;background:radial-gradient(circle at 82% 50%,#b18b4920,transparent 26%),linear-gradient(145deg,#181a18,#101312)}.weekly-duel-copy h2{margin:5px 0 8px;font:900 32px/1 'Barlow Condensed','Arial Narrow',sans-serif}.weekly-duel-copy p{margin:0;max-width:680px}.weekly-duel-badge{min-width:190px;padding:15px;border:1px solid #b18b4944;background:#0d100f;text-align:right}.weekly-duel-badge span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:#8d908a}.weekly-duel-badge strong{display:block;margin-top:5px;color:#d2af6a;font-size:12px;text-transform:uppercase}
.admin-player-actions{display:flex;gap:7px;justify-content:flex-end}.admin-player-actions .btn{min-height:36px;padding:7px 10px;font-size:8px;box-shadow:none}.admin-player-reset{background:transparent!important}

@media(max-width:1100px){.booster-inventory-grid{grid-template-columns:1fr}.booster-stock{grid-template-columns:180px minmax(0,1fr)}.booster-stock-art{min-height:250px}.booster-market-grid{grid-template-columns:1fr 1fr}.admin-player-actions{grid-column:1/-1}}
@media(max-width:760px){.account{gap:7px}.header-packs{width:38px;height:38px}.header-pack-icon{width:17px;height:22px}.account-role{display:none!important}.booster-shop-hero{min-height:0;padding:24px 18px;grid-template-columns:1fr}.booster-shop-kpi{width:120px;aspect-ratio:auto;padding:16px;justify-self:start}.booster-shop-kpi strong{font-size:48px}.booster-inventory-grid{gap:10px}.booster-stock{grid-template-columns:112px minmax(0,1fr);gap:12px;padding:12px}.booster-stock-art{min-height:180px}.booster-stock-copy h3{font-size:21px}.booster-stock-count{font-size:23px}.booster-market-grid{grid-template-columns:1fr}.booster-market-card{grid-template-columns:96px minmax(0,1fr)}.booster-market-art .booster-art{width:88px}.pack-opening-shell{height:calc(100dvh - 12px);padding:24px 12px;border-radius:0}.pack-opening-close{right:12px;top:12px}.booster-open-target{width:min(300px,76vw)}.weekly-duel-panel{grid-template-columns:1fr}.weekly-duel-badge{text-align:left;min-width:0}.admin-player-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin-player-actions .btn{width:100%}}
@media(max-width:430px){.account-profile{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booster-stock{grid-template-columns:92px minmax(0,1fr)}.booster-stock-art{min-height:145px}.booster-stock-copy p{display:none}.booster-stock-copy .eyebrow{font-size:8px}.booster-stock-copy h3{font-size:18px}.booster-stock-count{font-size:20px;margin-bottom:10px}.booster-market-card{grid-template-columns:78px minmax(0,1fr);padding:11px}.booster-market-art .booster-art{width:72px}.booster-market-card p{display:none}}
@media(prefers-reduced-motion:reduce){.header-packs.has-packs,.pack-opening-overlay.is-opening .booster-art,.pack-opening-overlay.is-torn .booster-art{animation:none}}


/* v0.27.1 — booster reveal cards use catalogue sizing; wrap instead of shrinking. */
.pack-reveal{
  align-items:start;
  overflow-y:auto;
  overflow-x:hidden;
  padding:16px;
}
.pack-sheet{
  width:min(1120px,calc(100vw - 32px));
  height:auto;
  min-height:0;
  max-height:none;
  margin:auto;
  grid-template-rows:auto auto auto;
  overflow:visible;
}
.pack-stage{
  display:block;
  min-height:0;
  overflow:visible;
}
.pack-stage::before{
  top:50%;
  height:88%;
}
.pack-cards{
  width:min(100%,920px);
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  justify-content:center!important;
  align-items:flex-start;
  align-content:flex-start;
  gap:24px;
  overflow:visible;
  padding:28px 12px 34px;
  scroll-snap-type:none;
}
.pack-card{
  flex:0 0 280px!important;
  width:280px;
  min-width:280px;
  max-width:280px;
  scroll-snap-align:none;
}
.pack-card .d9-card{
  width:100%!important;
  max-width:360px!important;
}
.pack-card .d9-nameplate>span{font-size:11px}
.pack-card .d9-nameplate>strong{font-size:12px}
.pack-card .d9-value b{font-size:22px}
.pack-card .d9-brand-logo,.pack-card .d9-brand-emblem{width:32px;height:32px}
.pack-card .d9-flag{font-size:26px}
.pack-card .d9-specs{font-size:9px}
.pack-card .d9-footer{font-size:10px}
.pack-actions{
  position:sticky;
  bottom:0;
  margin:0 -4px -4px;
  padding:18px 4px 4px;
  background:linear-gradient(180deg,transparent,#0b0f11 28%);
}

@media(max-width:900px){
  .pack-sheet{width:min(760px,calc(100vw - 24px))}
  .pack-cards{width:min(100%,620px);gap:20px}
  .pack-card{
    flex-basis:280px!important;
    width:280px;
    min-width:280px;
    max-width:280px;
  }
}
@media(max-width:620px){
  .pack-reveal{padding:6px}
  .pack-sheet{
    width:100%;
    height:auto;
    min-height:calc(100dvh - 12px);
    padding:18px 14px 14px;
  }
  .pack-stage{margin-inline:0}
  .pack-cards{
    width:100%;
    display:flex;
    gap:18px;
    padding:18px 0 24px;
  }
  .pack-card{
    flex:0 0 min(84vw,320px)!important;
    width:min(84vw,320px);
    min-width:min(84vw,320px);
    max-width:min(84vw,320px);
  }
  .pack-actions{
    margin:0;
    padding:14px 0 0;
    background:#0b0f11;
  }
}


/* v0.27.3 — readable long brands and visible synergy identity during duels. */
.d9-card.collector-card .d9-nameplate{
  grid-template-columns:minmax(0,45%) minmax(0,55%);
  gap:10px;
}
.d9-card.collector-card .d9-nameplate>span{
  white-space:normal;
  overflow:hidden;
  text-overflow:clip;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow-wrap:anywhere;
  max-height:2.6em;
}
.d9-card.collector-card.brand-long .d9-nameplate>span{
  font-size:10px;
  letter-spacing:.045em;
}

/* The logo and flag are game information: they must remain visible in hand and board cards. */
.d9-card.game-card .d9-emblems{
  display:flex!important;
  position:absolute;
  z-index:2;
  left:5px;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  justify-content:space-between;
  align-items:center;
  gap:0;
  padding:0!important;
  pointer-events:none;
}
.d9-card.game-card .d9-brand-emblem{
  width:clamp(18px,1.65vw,24px);
  height:clamp(18px,1.65vw,24px);
  padding:2px;
  border:1px solid #ffffff44;
  border-radius:50%;
  background:#f1f2ed;
  box-shadow:0 2px 6px #0007;
}
.d9-card.game-card .d9-brand-logo{
  width:100%!important;
  height:100%!important;
  object-fit:contain;
}
.d9-card.game-card .d9-signature{
  color:#26322e;
  font-size:clamp(7px,.72vw,10px)!important;
  letter-spacing:-.04em;
}
.d9-card.game-card .d9-flag{
  min-width:clamp(22px,1.9vw,28px);
  min-height:clamp(18px,1.55vw,22px);
  display:grid;
  place-items:center;
  padding:1px 3px;
  border:1px solid #ffffff28;
  border-radius:4px;
  background:#0d1112c9;
  box-shadow:0 2px 6px #0007;
  font-size:clamp(15px,1.45vw,20px)!important;
  line-height:1!important;
}
.d9-card.game-card.synergy-brand .d9-brand-emblem{
  border-color:#efb05f;
  box-shadow:0 0 0 2px #efb05f88,0 0 13px #efb05f66,0 2px 6px #0008;
  transform:scale(1.12);
}
.d9-card.game-card.synergy-country .d9-flag{
  border-color:#6db59a;
  box-shadow:0 0 0 2px #6db59a88,0 0 13px #6db59a66,0 2px 6px #0008;
  transform:scale(1.08);
}
.d9-card.game-card .d9-synergy-badge{
  z-index:5;
}

/* Hand cards are where matching decisions are made: make identity slightly stronger. */
.d9-card.game-card-hand .d9-brand-emblem{
  width:clamp(20px,1.9vw,27px);
  height:clamp(20px,1.9vw,27px);
}
.d9-card.game-card-hand .d9-flag{
  min-width:clamp(24px,2.1vw,30px);
  font-size:clamp(16px,1.6vw,21px)!important;
}

/* Long brands remain legible on compact gameplay cards instead of becoming an ellipsis. */
.d9-card.game-card.brand-long .d9-nameplate>span{
  font-size:clamp(4.5px,.55vw,6px);
  letter-spacing:.035em;
  white-space:normal;
  overflow:hidden;
  text-overflow:clip;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

@media(max-width:520px){
  .d9-card.collector-card .d9-nameplate{
    grid-template-columns:minmax(0,46%) minmax(0,54%);
  }
  .d9-card.game-card .d9-emblems{left:3px;right:3px}
  .d9-card.game-card .d9-brand-emblem{
    width:17px;
    height:17px;
    padding:1px;
  }
  .d9-card.game-card .d9-flag{
    min-width:20px;
    min-height:16px;
    padding:1px 2px;
    font-size:14px!important;
  }
  .d9-card.game-card-hand .d9-brand-emblem{width:18px;height:18px}
  .d9-card.game-card-hand .d9-flag{min-width:21px;font-size:15px!important}
}
@media(prefers-reduced-motion:reduce){
  .d9-card.game-card.synergy-brand .d9-brand-emblem,
  .d9-card.game-card.synergy-country .d9-flag{transition:none}
}


/* v0.28 — shadow Catalogue V2 rebuild pipeline. */
.admin-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.admin-nav-v2>span::after{
  content:"V2";
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:15px;
  margin-left:6px;
  padding:0 4px;
  border:1px solid #ef6b43aa;
  color:#ef805f;
  font:900 7px/1 Barlow,Arial,sans-serif;
  letter-spacing:.05em;
  vertical-align:2px;
}
.v2-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  margin-bottom:18px;
  padding:30px;
  border-color:#ef6b4333;
  background:
    radial-gradient(circle at 82% 20%,#ef6b4315,transparent 30%),
    linear-gradient(145deg,#171c1e,#0d1112);
}
.v2-hero h2{margin:6px 0 10px;font:900 clamp(34px,4.2vw,62px)/.95 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:-.025em}
.v2-hero p{max-width:900px;margin:0}
.v2-shadow-lock{
  min-width:190px;
  padding:18px;
  border:1px solid #6f9f7d55;
  background:#0c1510;
  text-align:right;
}
.v2-shadow-lock strong{display:block;color:#8ec49d;font:900 13px/1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.v2-shadow-lock span{display:block;margin-top:6px;color:#77857a;font-size:9px;text-transform:uppercase;letter-spacing:.07em}
.v2-kpis{margin-bottom:18px}
.v2-kpis article:last-child{border-color:#6fa98955;background:#102018}
.v2-kpis article:last-child strong{color:#8cc59d}

.v2-pipeline-panel{padding:24px;margin-bottom:18px}
.v2-flow{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:20px 0;
}
.v2-step{
  appearance:none;
  min-width:0;
  min-height:108px;
  padding:14px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto 1fr auto;
  gap:4px 9px;
  text-align:left;
  color:#dde2df;
  border:1px solid #ffffff12;
  background:linear-gradient(145deg,#151a1c,#0e1213);
  cursor:pointer;
  transition:transform .15s ease,border-color .15s ease,background .15s ease;
}
.v2-step:hover:not(:disabled){transform:translateY(-2px);border-color:#ef6b4355;background:#191f20}
.v2-step:disabled{cursor:progress;opacity:.55}
.v2-step b{
  grid-row:1/3;
  color:#ef714d;
  font:900 24px/.9 'Barlow Condensed','Arial Narrow',sans-serif;
}
.v2-step span{font:900 11px/1.1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.v2-step small{grid-column:2;color:#737e80;font-size:9px;line-height:1.25}
.v2-main-actions{align-items:center;flex-wrap:wrap}
.v2-main-actions .danger{margin-left:auto}
.v2-status{min-height:1.45em;margin-top:12px;color:#9fa7a5}

.v2-source-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}
.v2-source-card{min-width:0;padding:20px}
.v2-source-card h3{margin:5px 0 18px;font-size:21px}
.v2-source-card>strong{display:block;color:#f0eee8;font:900 42px/.9 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-source-card>span:not(.eyebrow){display:block;margin-top:5px;color:#758082;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.v2-source-card>small{display:block;margin-top:9px;color:#788284;font-size:9px;line-height:1.35}
.v2-source-progress{height:5px;margin-top:15px;overflow:hidden;background:#ffffff0a}
.v2-source-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#ef6b43,#bf9a62,#6fa989);transition:width .25s ease}

.v2-gate-panel{padding:24px}
.v2-quality-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:18px 0;
}
.v2-quality-summary article{padding:13px;border:1px solid #ffffff0d;background:#0f1314}
.v2-quality-summary span{display:block;color:#768083;font-size:8px;text-transform:uppercase;letter-spacing:.08em}
.v2-quality-summary strong{display:block;margin-top:5px;color:#e9ece8;font:900 25px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-vehicle-list{display:grid;gap:6px}
.v2-vehicle-row{
  display:grid;
  grid-template-columns:minmax(260px,1.2fr) auto minmax(260px,1fr);
  gap:14px;
  align-items:center;
  padding:12px 13px;
  border:1px solid #ffffff0d;
  background:#0e1213;
}
.v2-vehicle-row.ready{border-left:3px solid #6fa989}
.v2-vehicle-row.blocked{border-left:3px solid #725448}
.v2-vehicle-main{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;align-items:center}
.v2-vehicle-main .v2-state{grid-row:1/3;padding:5px 6px;border:1px solid #ffffff16;color:#9ba4a3;font:900 7px/1 Barlow,Arial,sans-serif;letter-spacing:.06em}
.v2-vehicle-row.ready .v2-state{border-color:#6fa98988;color:#8ec49d}
.v2-vehicle-main strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.v2-vehicle-main small{color:#6f7a7c;font-size:9px}
.v2-source-chips{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}
.v2-source-chips span{padding:4px 6px;border:1px solid #ffffff12;color:#9ba3a1;font:800 7px/1 Barlow,Arial,sans-serif;letter-spacing:.05em}
.v2-issues{min-width:0;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.v2-issues span{padding:4px 6px;border:1px solid #754d3f55;background:#241510;color:#c98b76;font-size:8px}
.v2-issues span.ok{border-color:#4d785c66;background:#0f1c14;color:#83b891}
.v2-issues small{flex-basis:100%;text-align:right;color:#a76e5e;font-size:8px}
.v2-cutover-panel{
  margin-top:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-style:dashed;
  opacity:.82;
}
.v2-cutover-panel h2{margin:5px 0 7px}
.v2-cutover-panel p{margin:0;max-width:850px}

@media(max-width:1050px){
  .admin-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .v2-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v2-flow .v2-step:last-child{grid-column:1/-1}
  .v2-source-grid{grid-template-columns:1fr}
  .v2-vehicle-row{grid-template-columns:1fr auto}
  .v2-issues{grid-column:1/-1;justify-content:flex-start}
  .v2-issues small{text-align:left}
}
@media(max-width:760px){
  .admin-nav{display:flex!important}
  .v2-hero{grid-template-columns:1fr;padding:20px}
  .v2-shadow-lock{text-align:left;min-width:0}
  .v2-flow{grid-template-columns:1fr 1fr}
  .v2-main-actions{display:grid;grid-template-columns:1fr 1fr}
  .v2-main-actions .btn{width:100%;margin:0}
  .v2-quality-summary{grid-template-columns:1fr 1fr}
  .v2-vehicle-row{grid-template-columns:1fr}
  .v2-source-chips{justify-content:flex-start}
  .v2-cutover-panel{align-items:flex-start;flex-direction:column}
}
@media(max-width:460px){
  .v2-flow{grid-template-columns:1fr}
  .v2-flow .v2-step:last-child{grid-column:auto}
  .v2-main-actions{grid-template-columns:1fr}
  .v2-quality-summary{grid-template-columns:1fr 1fr}
  .v2-vehicle-main{grid-template-columns:1fr}
  .v2-vehicle-main .v2-state{grid-row:auto;width:max-content}
}


/* v0.28.5 — Catalogue V2 diagnostics: explain quarantine, not just count it. */
.v2-diagnostics-panel{padding:24px;margin-bottom:18px;border-color:#bc805044;background:linear-gradient(145deg,#181a19,#111414)}
.v2-diagnostics-panel h2{margin:5px 0 8px;font-size:24px}
.v2-diagnostics-panel>p{max-width:980px;color:#9ba29f}

.v2-adac-states{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  margin:20px 0;
}
.v2-adac-states article{
  min-width:0;
  padding:14px;
  border:1px solid #ffffff0e;
  background:#0f1313;
  cursor:pointer;
  transition:border-color .15s ease,transform .15s ease,background .15s ease;
}
.v2-adac-states article:hover{transform:translateY(-1px);border-color:#ef6b4355;background:#141817}
.v2-adac-states span{display:block;color:#79817f;font:800 8px/1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.v2-adac-states strong{display:block;margin-top:7px;color:#eeeae2;font:900 30px/.95 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-adac-states small{display:block;margin-top:5px;color:#68706e;font-size:8px;line-height:1.25}
.v2-adac-states [data-v2-adac-card="complete"]{border-left:3px solid #659477}
.v2-adac-states [data-v2-adac-card="no_match"]{border-left:3px solid #806a4f}
.v2-adac-states [data-v2-adac-card="review"]{border-left:3px solid #c99a58}
.v2-adac-states [data-v2-adac-card="error"]{border-left:3px solid #a45945}
.v2-adac-states [data-v2-adac-card="pending"]{border-left:3px solid #65727a}

.v2-diagnostic-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:12px}
.v2-diagnostic-block{padding:17px;border:1px solid #ffffff0d;background:#0d1111}
.v2-diagnostic-title{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:13px}
.v2-diagnostic-title>span{font:900 11px/1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em;color:#d9d9d3}
.v2-diagnostic-title>small{color:#68716f;font-size:8px;text-align:right}

.v2-blocker-list{display:grid;gap:5px}
.v2-blocker-row{
  appearance:none;
  width:100%;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 64px;
  gap:9px;
  align-items:center;
  padding:8px;
  border:1px solid transparent;
  background:#111515;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.v2-blocker-row:hover{border-color:#ef6b433e;background:#151918}
.v2-blocker-rank{color:#59615f;font:900 9px/1 Barlow,Arial,sans-serif}
.v2-blocker-copy{min-width:0}
.v2-blocker-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.v2-blocker-copy i{display:block;height:3px;margin-top:6px;background:#ffffff08;overflow:hidden}
.v2-blocker-copy i b{display:block;height:100%;background:linear-gradient(90deg,#ef6845,#bd8e5e,#6e9c7c)}
.v2-blocker-number{text-align:right;color:#e9e5dd;font:900 16px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-blocker-number small{display:block;margin-top:3px;color:#65706d;font:700 7px/1 Barlow,Arial,sans-serif}

.v2-readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.v2-readiness-grid button{
  appearance:none;
  padding:11px;
  border:1px solid #ffffff0c;
  background:#111515;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.v2-readiness-grid button:hover{border-color:#6f9e7d55;background:#131a16}
.v2-readiness-grid span{display:block;color:#707a77;font-size:8px;text-transform:uppercase;letter-spacing:.07em}
.v2-readiness-grid strong{display:block;margin-top:4px;font:900 25px/.95 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-source-coverage{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px;padding-top:11px;border-top:1px solid #ffffff0a}
.v2-source-coverage span{padding:5px 7px;border:1px solid #ffffff0d;background:#101414;color:#747d7a;font-size:8px}
.v2-source-coverage b{color:#c8cec9}

.v2-action-plan{margin-top:12px;padding:17px;border:1px solid #ffffff0d;background:#0d1111}
.v2-action-list{display:grid;gap:6px}
.v2-action-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #ffffff0c;background:#111515}
.v2-action-index{color:#ef6b43;font:900 18px/.9 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-action-item strong{display:block;font-size:10px}
.v2-action-item small{display:block;margin-top:3px;color:#727a78;font-size:8px;line-height:1.3}
.v2-action-item .btn{min-height:32px;padding:7px 10px;font-size:8px}

.v2-quality-summary{grid-template-columns:repeat(6,minmax(0,1fr))}
.v2-list-tools{display:grid;grid-template-columns:minmax(190px,1fr) minmax(210px,1.4fr) auto;gap:8px;align-items:center;margin:15px 0}
.v2-list-tools select{
  width:100%;
  min-height:38px;
  padding:0 11px;
  color:#d9dcda;
  border:1px solid #ffffff14;
  background:#101719;
  font:800 9px/1 Barlow,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.v2-list-tools .pill{justify-self:end}
.v2-adac-chip{border-color:#ffffff18!important}
.v2-adac-chip.complete{color:#86b996!important;border-color:#5c8d6b66!important}
.v2-adac-chip.no_match{color:#b29a78!important;border-color:#7b674b66!important}
.v2-adac-chip.review{color:#d5a461!important;border-color:#9a754366!important}
.v2-adac-chip.error{color:#cb806a!important;border-color:#8d4d3d66!important}
.v2-adac-chip.pending{color:#89979c!important}
.v2-issues button{
  appearance:none;
  padding:4px 6px;
  border:1px solid #754d3f55;
  background:#241510;
  color:#c98b76;
  font:inherit;
  font-size:8px;
  cursor:pointer;
}
.v2-issues button:hover{border-color:#bd785f88;background:#2d1913}

@media(max-width:1050px){
  .v2-adac-states{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v2-diagnostic-grid{grid-template-columns:1fr}
  .v2-quality-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .v2-adac-states{grid-template-columns:1fr 1fr}
  .v2-diagnostic-title{align-items:flex-start;flex-direction:column}
  .v2-diagnostic-title>small{text-align:left}
  .v2-list-tools{grid-template-columns:1fr}
  .v2-list-tools .pill{justify-self:start}
  .v2-action-item{grid-template-columns:28px minmax(0,1fr)}
  .v2-action-item .btn{grid-column:2;width:100%}
}
@media(max-width:480px){
  .v2-adac-states{grid-template-columns:1fr}
  .v2-readiness-grid{grid-template-columns:1fr 1fr}
  .v2-quality-summary{grid-template-columns:1fr 1fr}
}


/* v0.28.6 — Catalogue V2 operator workflow: verify, correct, publish. */
.v2-pipeline-panel.finished{
  padding:16px 20px;
  opacity:.78;
}
.v2-pipeline-panel.finished .v2-flow{display:none}
.v2-pipeline-panel.finished .v2-main-actions{margin-top:10px}
.v2-pipeline-panel.finished #v2-run-all{background:transparent;color:#b7b2aa;border:1px solid #ffffff18;box-shadow:none}
.v2-pipeline-panel.finished #v2-pause{display:none}

.v2-now-panel{
  margin-bottom:18px;
  padding:24px;
  border-color:#ef6b4350;
  background:
    radial-gradient(circle at 88% 12%,#ef6b4315,transparent 30%),
    linear-gradient(145deg,#191c1b,#111414);
}
.v2-now-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.v2-now-panel h2{margin:5px 0 8px;font-size:30px}
.v2-now-panel>p{max-width:1050px;color:#a5aaa6}
.v2-now-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.v2-now-steps article{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:16px;
  border:1px solid #ffffff10;
  background:#0f1313;
}
.v2-now-steps article.ready{border-color:#63917155;background:#101913}
.v2-now-steps article>b{color:#ef6b43;font:900 25px/.9 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-now-steps article div{min-width:0}
.v2-now-steps article span{display:block;color:#767f7d;font:800 8px/1 Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.v2-now-steps article strong{display:block;margin-top:6px;font-size:12px;line-height:1.25}
.v2-now-steps article strong i{font:900 24px/.85 'Barlow Condensed','Arial Narrow',sans-serif;font-style:normal;color:#ece9e2;margin-right:4px}
.v2-now-steps article small{display:block;margin-top:7px;color:#77807e;font-size:8px;line-height:1.35}
.v2-now-steps article .btn{grid-column:1/-1;width:100%;margin-top:5px}

.v2-vehicle-row{
  grid-template-columns:minmax(250px,1.15fr) auto minmax(240px,1fr) auto;
}
.v2-vehicle-row.published{border-left:3px solid #5d8d6a;background:#0c1510}
.v2-vehicle-row.published .v2-state{border-color:#5c8c6966;color:#8fbd99}
.v2-row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.v2-row-actions .btn{min-height:32px;padding:7px 10px;font-size:8px;white-space:nowrap}

.v2-review-dialog{
  width:min(1180px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  padding:0;
  border:1px solid #ffffff1a;
  background:#0d1112;
  color:#e7e6e0;
  box-shadow:0 24px 80px #000b;
}
.v2-review-dialog::backdrop{background:#020405d9;backdrop-filter:blur(5px)}
.v2-review-shell{display:flex;flex-direction:column;max-height:calc(100vh - 30px)}
.v2-review-shell>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:20px 22px;
  border-bottom:1px solid #ffffff0e;
  background:linear-gradient(180deg,#171b1c,#121617);
}
.v2-review-shell>header h2{margin:4px 0 3px;font-size:25px}
.v2-review-shell>header p{margin:0;color:#7e8885;font-size:9px}
.v2-dialog-close{
  appearance:none;
  width:40px;height:40px;border:1px solid #ffffff14;border-radius:50%;
  background:#171b1c;color:#ddd;font-size:23px;cursor:pointer;
}
.v2-review-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:0;min-height:0;overflow:auto}
.v2-review-layout>aside{padding:18px;border-right:1px solid #ffffff0e;background:#0b0f10}
.v2-review-image{
  aspect-ratio:4/3;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #ffffff12;
  background:#070a0b;
  position:relative;
}
.v2-review-image img{width:100%;height:100%;object-fit:cover}
.v2-review-image>span:not(.empty){position:absolute;left:8px;bottom:8px;padding:5px 7px;background:#0a0d0ddd;color:#d7d9d5;font-size:8px;text-transform:uppercase}
.v2-review-image .empty{color:#5f6765;font:900 24px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.v2-review-blockers,.v2-review-sources{margin-top:14px;padding-top:12px;border-top:1px solid #ffffff0b}
.v2-review-blockers>strong,.v2-review-sources>strong{display:block;margin-bottom:8px;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.v2-review-blockers>span{display:inline-block;margin:0 4px 4px 0;padding:5px 7px;border:1px solid #7a4d3f55;background:#21130f;color:#cf8b76;font-size:8px}
.v2-review-blockers>strong.ok,.v2-review-blockers>span.ok{color:#87b995;border-color:#4f7d5c55;background:#101b14}
.v2-review-sources{display:grid;gap:6px}
.v2-review-sources>a{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 8px;padding:8px;border:1px solid #ffffff0d;background:#101414;color:inherit;text-decoration:none}
.v2-review-sources>a:hover{border-color:#ef6b4344}
.v2-review-sources>a b{grid-row:1/3;color:#ef7b58;font-size:8px}
.v2-review-sources>a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}
.v2-review-sources>a small{color:#68716f;font-size:7px}

.v2-review-fields{padding:20px;min-width:0}
.v2-review-help{padding:12px 13px;margin-bottom:14px;border:1px solid #5b7d6550;background:#101814}
.v2-review-help strong{display:block;color:#94c09e;font-size:10px}
.v2-review-help span{display:block;margin-top:5px;color:#85908b;font-size:9px;line-height:1.4}
.v2-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.v2-form-grid label,.v2-wide-field{display:grid;gap:5px}
.v2-form-grid label>span,.v2-wide-field>span{color:#737d7a;font-size:8px;text-transform:uppercase;letter-spacing:.06em}
.v2-form-grid input,.v2-wide-field input{
  width:100%;min-height:38px;padding:8px 10px;
  border:1px solid #ffffff13;background:#0c1112;color:#e6e6e1;
}
.v2-wide-field{margin-top:9px}
.v2-manual-validation{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.v2-manual-validation label{display:grid;grid-template-columns:auto 1fr;gap:9px;padding:11px;border:1px solid #ffffff0e;background:#101414;cursor:pointer}
.v2-manual-validation input{margin-top:2px}
.v2-manual-validation strong{display:block;font-size:9px}
.v2-manual-validation small{display:block;margin-top:3px;color:#707a77;font-size:8px;line-height:1.3}
.v2-review-shell>footer{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:14px 20px;border-top:1px solid #ffffff0e;background:#111516;
}
.v2-review-shell>footer>span{color:#8c9692;font-size:9px}
.v2-review-shell>footer .actions{display:flex;gap:7px;flex-wrap:wrap}
.v2-review-shell>footer .btn{min-height:36px}

@media(max-width:1050px){
  .v2-now-steps{grid-template-columns:1fr}
  .v2-vehicle-row{grid-template-columns:1fr auto}
  .v2-row-actions{grid-column:1/-1;justify-content:flex-start}
  .v2-review-layout{grid-template-columns:280px minmax(0,1fr)}
  .v2-form-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .v2-now-head{flex-direction:column}
  .v2-review-dialog{width:100vw;max-height:100vh;border:0}
  .v2-review-shell{max-height:100vh}
  .v2-review-layout{grid-template-columns:1fr}
  .v2-review-layout>aside{border-right:0;border-bottom:1px solid #ffffff0e}
  .v2-review-image{max-height:260px}
  .v2-form-grid{grid-template-columns:1fr}
  .v2-manual-validation{grid-template-columns:1fr}
  .v2-review-shell>footer{align-items:flex-start;flex-direction:column}
  .v2-review-shell>footer .actions{width:100%;display:grid;grid-template-columns:1fr}
}


/* v0.28.7 — source-neutral eligibility and automatic source-photo recovery. */
.v2-auto-photo{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid #6d8f7655;
  background:#0f1813;
}
.v2-auto-photo[hidden]{display:none!important}
.v2-auto-photo strong{display:block;color:#9cc4a6;font-size:10px}
.v2-auto-photo span{display:block;margin-top:4px;color:#7d8a82;font-size:8px;line-height:1.35}
.v2-auto-photo .btn{flex:0 0 auto;white-space:nowrap}
@media(max-width:760px){
  .v2-auto-photo{align-items:stretch;flex-direction:column}
  .v2-auto-photo .btn{width:100%}
}

/* v0.28.9 — a compact logged-in home with one clear primary action. */
.home-dashboard{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:22px 0 24px;padding:24px 28px;border:1px solid #f56a4055;background:linear-gradient(115deg,#1b1c1b,#211814);min-height:0}
.home-dashboard h1{font-size:clamp(31px,3.4vw,48px);line-height:1;margin:7px 0 6px;white-space:normal}
.home-dashboard p{font-size:14px;line-height:1.4;margin:0;color:#c7bdb1}
.home-quick-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;flex:0 1 600px}
.home-quick-actions .btn{min-height:42px;padding:8px 13px;font-size:11px;box-shadow:none;white-space:nowrap}
.home-progression{border:1px solid #494743;background:#171a19;margin:20px 0}
.home-progression summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 20px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;list-style:none}
.home-progression summary::-webkit-details-marker{display:none}
.home-progression summary::after{content:'⌄';color:#f56a40;font-size:20px;line-height:0;margin-left:auto}
.home-progression[open] summary::after{transform:rotate(180deg)}
.home-progression summary span{font-size:11px;color:#b7b4ab;font-weight:600;letter-spacing:0;text-transform:none}
.home-progression .progression-panel{margin:0;border:0;border-top:1px solid #494743}
.header-packs{width:42px;height:42px;color:#f56a40;border-color:#f56a4077;background:#241813}
.header-packs .header-pack-icon{display:block;width:25px;height:31px;transform:none;border:0;background:none;overflow:visible}
.header-packs.is-empty{opacity:.7}
@media(max-width:760px){
  .home-dashboard{display:block;margin:14px 0 18px;padding:18px 16px}
  .home-dashboard h1{font-size:clamp(30px,8vw,38px);margin:6px 0}
  .home-dashboard p{font-size:13px}
  .home-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:17px}
  .home-quick-actions .btn{min-width:0;width:100%;min-height:42px;padding:8px 6px;font-size:10px}
  .home-quick-actions .btn:first-child{grid-column:1/-1;font-size:12px;background:#f56a40;color:#111}
  .header-packs{flex:0 0 38px;width:38px;height:38px}
  .header-packs .header-pack-icon{width:23px;height:29px}
  .account-profile{display:none!important}
  .account{gap:8px}
  .account img{width:30px;height:30px}
  .account button{font-size:11px;text-decoration:none;border:1px solid #ffffff33;padding:8px;color:#c7bdb1}
  .home-progression summary{padding:14px}
}

.catalogue-bulk{display:grid;gap:12px;margin-bottom:18px}.catalogue-bulk .actions{display:flex;gap:10px;flex-wrap:wrap}.catalogue-bulk label{display:grid;gap:8px}.catalog-reset{border-top:1px solid var(--line,rgba(255,255,255,.15));padding-top:14px}.catalog-reset summary{cursor:pointer;font-weight:700}.catalog-reset p{max-width:65ch}

.photo-choice{display:grid;gap:10px}.photo-file{display:inline-flex;align-items:center;justify-content:center;width:max-content;cursor:pointer;padding:10px 16px;border:1px solid currentColor;border-radius:10px;font-weight:700}.photo-file input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.series-card-choice{display:flex;gap:10px;align-items:center;cursor:pointer}.series-card-choice input{accent-color:#e8bf65}.admin-list+.admin-list{margin-top:16px}#series-name{max-width:330px}

/* Admin catalogue: let the form and card list follow the page scroll. */
#admin-cards .admin-form{position:static!important;top:auto!important;align-self:start}
#admin-cards .admin-items{max-height:none;overflow:visible}

#admin-boosters .admin-form{position:static!important;top:auto!important}
.series-panel{margin-top:18px}
.series-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}
.series-controls .input{flex:1 1 240px;min-width:0}
.series-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:420px;overflow:auto;margin:14px 0 22px}
.series-candidate{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #494743;background:#121413;cursor:pointer}
.series-candidate:has(input:disabled){opacity:.5;cursor:default}
.series-candidate input{accent-color:#f27045;flex:0 0 auto}
.series-candidate span{display:grid;gap:3px;min-width:0}.series-candidate strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.series-candidate small{color:var(--muted)}
@media(max-width:680px){.series-candidates{grid-template-columns:1fr;max-height:none}}
#card-brand-other[hidden]{display:none!important}
#card-form select[name="brand"]{appearance:auto;min-height:54px}

/* Catalogue administration: the inventory comes first, creation remains below. */
.catalogue-layout{grid-template-columns:1fr}
.catalogue-layout>.admin-list{order:-1}
.catalogue-layout .admin-items{max-height:none}
.image-control>summary{cursor:pointer;font-weight:700;padding:8px 0}
.catalog-card-progress{font-weight:700;color:#d4d5ce}
.catalogue-editor>summary{cursor:pointer;font-weight:700;padding:16px;border:1px solid #44473f;background:#1a1c19}

#admin-card-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.admin-catalogue-card{min-width:0;padding:12px;border:1px solid #44473f;background:#111310;display:flex;flex-direction:column;gap:12px}
.admin-catalogue-card>.d9-card{width:100%;margin:0}
.admin-catalogue-meta{display:grid;gap:8px}
.admin-catalogue-meta span{display:block;font-size:12px;line-height:1.5}
.admin-catalogue-card .admin-item-actions{display:flex!important;flex-wrap:wrap;gap:6px}
.admin-catalogue-card .btn{font-size:11px;padding:10px}
.admin-catalogue-card.archived{opacity:.65}
.catalogue-reports>summary{cursor:pointer;font-weight:700;padding:8px}
@media(max-width:600px){#admin-card-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-catalogue-card{padding:6px}.admin-catalogue-card .btn{padding:8px;font-size:10px}}

.admin-nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.admin-catalogue-card>.d9-card{max-width:none}
@media(max-width:600px){.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* v0.33.2 — keep the diamond clear of the two-line technical description. */
.d9-card.collector-card{grid-template-rows:12% 50% 30% 8%!important}
.d9-card.collector-card .d9-diamond{transform:translate(-50%,-75%) rotate(45deg)}
.d9-card .d9-specs{
  white-space:normal;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  max-height:2.5em;
}
@media(max-width:760px){
  .d9-card.collector-card{grid-template-rows:12% 48% 32% 8%!important}
  .d9-card.collector-card .d9-diamond{transform:translate(-50%,-85%) rotate(45deg)}
  .d9-card.collector-card .d9-specs{left:5px;right:5px;bottom:5px;font-size:8px}
}

/* ==========================================================================
   v0.34 — Pit Lane cards
   One card component for collection, board, hand and booster reveals.
   Sizes use container units (--u = 1% of the card), so every variant scales
   from the same rules. Rarity: frame + stripe + tag colour; SR, UR and SS add
   a holographic foil. Ownership on the board uses the player colours.
   ========================================================================== */
@font-face{font-family:'Barlow Condensed';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:800 900;font-style:normal;font-display:swap;src:url(fonts/barlow-condensed-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-weight:800 900;font-style:italic;font-display:swap;src:url(fonts/barlow-condensed-latin-800-italic.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/barlow-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/barlow-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:800 900;font-style:normal;font-display:swap;src:url(fonts/barlow-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/barlow-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/barlow-latin-700-normal.woff2) format('woff2')}

.pl-card{
  --pl-r:#b9bec4;--pl-r2:#6b737c;--u:1cqi;
  --pl-ink:#f5f2ec;--pl-muted:#a7afb6;--pl-base:#14171b;
  --pl-frame:0 0 0 2px var(--pl-r);
  container-type:inline-size;position:relative;display:block;width:100%;aspect-ratio:5/7;
  overflow:hidden;isolation:isolate;border-radius:10px;background:var(--pl-base);color:var(--pl-ink);
  box-shadow:var(--pl-frame),0 12px 22px #000a;
  font-family:'Barlow',system-ui,sans-serif;text-align:left;line-height:1.1;user-select:none;
}
.pl-card.rarity-c{--pl-r:#b9bec4;--pl-r2:#6b737c}
.pl-card.rarity-nc{--pl-r:#7ad98b;--pl-r2:#2f7a44}
.pl-card.rarity-r{--pl-r:#69a4ff;--pl-r2:#2a5fb8}
.pl-card.rarity-sr{--pl-r:#b181ff;--pl-r2:#5b3fd1}
.pl-card.rarity-ur{--pl-r:#f2d354;--pl-r2:#a0741a}
.pl-card.rarity-ss{--pl-r:#ff665c;--pl-r2:#a01f1f}
.pl-card.rarity-sr,.pl-card.rarity-ur,.pl-card.rarity-ss{
  --pl-frame:0 0 0 2px var(--pl-r),0 0 0 3px color-mix(in srgb,var(--pl-r2) 70%,#000);
}

/* photo */
.pl-photo{position:absolute;inset:0 0 calc(100% - var(--pl-split,64%)) 0;z-index:0;overflow:hidden;
  background:radial-gradient(120% 85% at 50% 100%,color-mix(in srgb,var(--pl-r) 28%,#1d2228),#0d0f12 72%)}
.pl-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pl-photo::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(#0000 0%,#0000 70%,color-mix(in srgb,var(--pl-base) 80%,transparent) 100%)}
.pl-placeholder{position:absolute;inset:0;display:grid;place-items:center;font:800 italic calc(var(--u)*34)/1 'Barlow Condensed',sans-serif;
  color:color-mix(in srgb,var(--pl-r) 22%,transparent);letter-spacing:-.02em}

/* holographic foil from SR */
.pl-holo{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;mix-blend-mode:color-dodge;
  background:linear-gradient(115deg,transparent 28%,#ff9de64d 40%,#8ff7ff4d 48%,#fff38a4d 56%,transparent 68%);background-size:220% 100%;background-position:100% 0}
.pl-card.rarity-sr .pl-holo{opacity:.75}
.pl-card.rarity-ur .pl-holo{opacity:.9;background-image:linear-gradient(115deg,transparent 26%,#ffe2854d 38%,#fff6c966 47%,#ffc94d4d 56%,transparent 68%)}
.pl-card.rarity-ss .pl-holo{opacity:1;background-image:linear-gradient(115deg,transparent 22%,#ff8a8a55 34%,#ffe09a55 42%,#9df6ff55 50%,#d9a1ff55 58%,transparent 70%)}
.pl-collector.rarity-sr .pl-holo,.pl-collector.rarity-ur .pl-holo,.pl-collector.rarity-ss .pl-holo{animation:pl-foil 6s ease-in-out infinite}
@keyframes pl-foil{0%,100%{background-position:100% 0}50%{background-position:0 0}}

/* rarity line at the photo edge, fading at both sides */
.pl-stripe{position:absolute;left:0;right:0;top:var(--pl-split,64%);height:max(2px,calc(var(--u)*.7));z-index:2;transform:translateY(-50%);
  background:linear-gradient(90deg,transparent,var(--pl-r) 22%,var(--pl-r) 78%,transparent)}

/* identity: translucent black band across the top, photo still visible
   behind; model in the rarity colour, brand in white underneath */
.pl-head{position:absolute;top:0;left:0;right:0;z-index:3;padding:calc(var(--u)*3.6) calc(var(--u)*5) calc(var(--u)*3.2);
  background:#08090bb3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-bottom:1px solid #ffffff14}
.pl-model{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font:800 italic calc(var(--u)*11)/.95 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.01em;color:var(--pl-r)}
.pl-brand{display:block;margin-top:calc(var(--u)*1.2);font:700 calc(var(--u)*4.4)/1.1 'Barlow',sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#f3f0ea;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* stat diamond, centred on the photo edge: four separate cardinal tiles,
   a 2x2 grid turned 45 degrees so each value sits on its own card edge */
.pl-details{position:absolute;inset:0;z-index:4;pointer-events:none}
.pl-diamond{position:absolute;left:50%;top:var(--pl-split,64%);width:calc(var(--u)*33);aspect-ratio:1;transform:translate(-50%,-50%) rotate(45deg);
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:calc(var(--u)*1.4)}
.pl-value{display:grid;place-items:center;min-width:0;min-height:0;background:#0b0d10;border:max(1.5px,calc(var(--u)*.7)) solid var(--pl-r);
  border-radius:calc(var(--u)*1.2);box-shadow:0 calc(var(--u)*1.5) calc(var(--u)*4) #000a}
.pl-value.north{grid-area:1/1}.pl-value.east{grid-area:1/2}.pl-value.south{grid-area:2/2}.pl-value.west{grid-area:2/1}
.pl-value b{transform:rotate(-45deg);font:800 calc(var(--u)*8.6)/1 'Barlow Condensed',sans-serif;color:#fff;font-variant-numeric:tabular-nums}
.pl-synergy-badge{position:absolute;left:50%;top:calc(var(--pl-split,64%) - var(--u)*27);transform:translateX(-50%);white-space:nowrap;
  padding:calc(var(--u)*1) calc(var(--u)*2.4);border-radius:calc(var(--u)*6);font:800 calc(var(--u)*4.6)/1 'Barlow',sans-serif;letter-spacing:.08em;
  background:#5b8fe2;color:#08111f}
.pl-card.synergy-country .pl-synergy-badge{background:#59b77b}
.pl-card.synergy-brand .pl-value b{color:#9cc2ff}
.pl-card.synergy-country .pl-value b{color:#9ee0b1}

/* emblem, flag, specs, footer */
.pl-emblem{position:absolute;left:calc(var(--u)*5);top:calc(var(--pl-split,64%) + var(--u)*5);z-index:3;width:calc(var(--u)*14);height:calc(var(--u)*14);
  border-radius:50%;background:#f3f0ea;display:grid;place-items:center;overflow:hidden;
  box-shadow:0 0 0 max(1px,calc(var(--u)*.4)) color-mix(in srgb,var(--pl-r) 55%,transparent),0 calc(var(--u)*1) calc(var(--u)*3) #0008;transition:background-color .2s ease}
.pl-emblem img{width:72%;height:72%;object-fit:contain}
/* light or white logos (measured in app.js) sit on a dark disc instead */
.pl-emblem.is-light-logo{background:#101317}
.pl-emblem.is-mixed-logo{background:#8d949c}
/* logos shipped on their own square: the disc takes that colour (set inline) */
.pl-emblem.is-filled-logo img{width:70%;height:70%}
.pl-signature{font:800 italic calc(var(--u)*6.4)/1 'Barlow Condensed',sans-serif;color:#15181c}
.pl-flag{position:absolute;right:calc(var(--u)*5);top:calc(var(--pl-split,64%) + var(--u)*6);z-index:3;font-size:calc(var(--u)*9);line-height:1}
.pl-specs{position:absolute;left:calc(var(--u)*5);right:calc(var(--u)*5);bottom:calc(var(--u)*12);z-index:3;text-align:center;
  font:600 calc(var(--u)*4.3)/1.2 'Barlow',sans-serif;color:var(--pl-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-foot{position:absolute;left:calc(var(--u)*5);right:calc(var(--u)*5);bottom:calc(var(--u)*4);z-index:3;display:flex;justify-content:space-between;align-items:center;gap:calc(var(--u)*2);
  font:700 calc(var(--u)*4.3)/1 'Barlow',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-muted)}
.pl-foot b{color:var(--pl-r);letter-spacing:.08em}
.pl-foot-main{display:flex;align-items:center;gap:calc(var(--u)*1.6);min-width:0}
.pl-foot-main>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-foot .d9-energy-icon{width:calc(var(--u)*5);height:calc(var(--u)*5);display:inline-grid;place-items:center;flex:none;font-size:calc(var(--u)*3.4)}
.pl-foot .d9-energy-icon svg{width:100%;height:100%}

/* ---- compact variants: board and hand ---- */
.pl-card.game-card{border-radius:7px}
.pl-card.game-card .pl-photo{inset:0}
.pl-card.game-card .pl-photo::after{background:linear-gradient(#0000 0%,#0000 50%,#000c 100%)}
.pl-card.game-card .pl-emblem,.pl-card.game-card .pl-specs,.pl-card.game-card .pl-foot,.pl-card.game-card .pl-brand{display:none}
.pl-card.game-card .pl-head{right:0;padding:calc(var(--u)*4) calc(var(--u)*6) calc(var(--u)*3.5)}
.pl-card.game-card .pl-model{font-size:calc(var(--u)*11.5);-webkit-line-clamp:2}
.pl-card.game-card .pl-stripe{top:auto;bottom:calc(var(--u)*5);transform:none;height:max(2px,calc(var(--u)*1))}
.pl-card.game-card .pl-diamond{top:60%;width:calc(var(--u)*42);gap:calc(var(--u)*1.8)}
.pl-card.game-card .pl-value b{font-size:calc(var(--u)*12.2)}
.pl-card.game-card .pl-value{border-width:max(1.5px,calc(var(--u)*.9))}
.pl-card.game-card .pl-flag{top:auto;bottom:calc(var(--u)*9);right:calc(var(--u)*5);font-size:calc(var(--u)*11)}
.pl-card.game-card .pl-synergy-badge{top:auto;bottom:calc(var(--u)*1.5);font-size:calc(var(--u)*6.5)}

/* board cells and hand slots are not 5:7: fill the slot and size from its smaller side */
.pl-card.pl-board,.pl-card.pl-hand{container-type:size;--u:1cqmin;width:100%;height:100%;aspect-ratio:auto}
.cell.occupied{padding:3px}
.pl-card.pl-board.owned{--own:var(--you,#ff6b3d)}
.pl-card.pl-board.enemy{--own:var(--rival,#62a7ff)}
.pl-card.pl-board.owned,.pl-card.pl-board.enemy{
  box-shadow:0 0 0 2px var(--pl-r),0 0 0 calc(2px + max(3px,var(--u)*2.4)) var(--own),0 6px 14px #000a}
.pl-card.pl-board.owned::after,.pl-card.pl-board.enemy::after{content:'';position:absolute;left:0;right:0;bottom:0;height:max(3px,calc(var(--u)*2.2));background:var(--own);z-index:5}
.placement-preview .pl-card{width:100%;height:100%;opacity:.9}

/* hand */
.pl-card.pl-hand{transition:transform .18s ease,box-shadow .18s ease}
.pl-card.pl-hand.selected{transform:translateY(-8px);box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--gold,#f56a40),0 16px 26px #000c}
.drag-ghost.pl-card{width:112px!important;height:128px!important}
.pl-card.synergy-brand{box-shadow:0 0 0 2px var(--pl-r),0 0 22px #5b8fe280,0 6px 14px #000a}
.pl-card.synergy-country{box-shadow:0 0 0 2px var(--pl-r),0 0 22px #59b77b80,0 6px 14px #000a}

/* collection grid and booster reveal host the collector card at its own ratio */
.collection-item .pl-card,.pack-card .pl-card{width:100%;max-width:none}
.cards-grid:has(.pl-card){grid-template-columns:repeat(auto-fill,minmax(min(200px,calc(50% - 8px)),1fr));gap:22px 16px}
@media(max-width:560px){.cards-grid:has(.pl-card){grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}}

@media (hover:hover){
  .collection-item .pl-card{transition:transform .2s ease,box-shadow .2s ease}
  .collection-item .pl-card:hover{transform:translateY(-4px);box-shadow:var(--pl-frame),0 0 26px color-mix(in srgb,var(--pl-r) 35%,transparent),0 16px 28px #000c}
}
@media (prefers-reduced-motion:reduce){
  .pl-collector .pl-holo{animation:none!important}
  .pl-card,.collection-item .pl-card{transition:none!important}
}

/* ==========================================================================
   v0.35 — Pit Lane site
   Shared tokens and components for every screen, matching the Pit Lane
   cards: Barlow type, one surface colour, condensed italic headings, a
   single accent. Rules are scoped with #app / .shell so they win over the
   older per-version layers above without !important.
   ========================================================================== */
:root{
  --pl-bg:#0b0d10;--pl-surface:#13161a;--pl-surface-2:#1a1e23;--pl-raise:#20252b;
  --pl-line:#ffffff17;--pl-line-strong:#ffffff2e;--pl-text:#f3f0ea;--pl-soft:#c9c4bb;--pl-dim:#9aa3ab;
  --pl-accent:#f56a40;--pl-accent-ink:#140c08;--pl-ok:#6fcf8e;--pl-warn:#f2b84b;
  --pl-radius:14px;--pl-radius-sm:10px;
  --surface:var(--pl-surface);--surface2:var(--pl-surface-2);--line:var(--pl-line-strong);--muted:var(--pl-dim);--gold:var(--pl-accent);
}
body{background:radial-gradient(1200px 520px at 80% -10%,#f56a4026,transparent 60%),radial-gradient(900px 420px at 0% 0%,#62a7ff12,transparent 60%),var(--pl-bg);color:var(--pl-text)}

/* shell: header and footer */
.shell>.top{height:72px;border-bottom:1px solid var(--pl-line)}
.shell .brand{font:800 italic 26px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.04em}
.shell .brand-mark{font:800 italic 14px/1 'Barlow Condensed','Arial Narrow',sans-serif;border-radius:6px;transform:skew(-8deg)}
.shell .account{font:600 13px/1 Barlow,Arial,sans-serif;color:var(--pl-dim)}
.shell .account .account-profile{color:var(--pl-text);font-weight:700;text-decoration:none}
.shell .account .account-role{font:700 10px/1 Barlow,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:4px 7px;border:1px solid var(--pl-line-strong);border-radius:999px;color:var(--pl-dim)}
.shell .account button{font:600 13px/1 Barlow,Arial,sans-serif;color:var(--pl-dim)}
.shell>footer{margin:56px 0 24px;padding-top:16px;border-top:1px solid var(--pl-line);font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.16em;color:var(--pl-dim)}
.shell>footer::before{content:'';position:absolute;left:0;right:0;height:3px;margin-top:-18px;
  background:repeating-linear-gradient(90deg,var(--pl-accent) 0 26px,transparent 26px 32px);opacity:.55}
.shell>footer{position:relative}

/* type scale */
#app h1{font:800 italic clamp(42px,5.6vw,76px)/.92 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.005em;margin:8px 0 14px;color:var(--pl-text)}
#app h1 em{font-style:inherit;color:var(--pl-accent)}
#app h2{font:800 italic clamp(26px,2.5vw,34px)/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.01em;margin:6px 0 10px;color:var(--pl-text)}
#app h3{font:800 italic 22px/1.05 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.01em;margin:4px 0 6px}
#app .eyebrow{font:700 11px/1.2 Barlow,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--pl-accent)}
#app p{color:var(--pl-soft);line-height:1.5}
#app .small{font-size:13px;color:var(--pl-dim)}
#app .back{display:inline-flex;align-items:center;gap:6px;margin:22px 0 6px;font:700 13px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--pl-dim);text-decoration:none}
#app .back:hover{color:var(--pl-text)}

/* controls */
#app .btn,.pack-reveal .btn,.pack-opening-overlay .btn{
  min-height:46px;padding:0 20px;border-radius:var(--pl-radius-sm);border:1px solid var(--pl-accent);background:var(--pl-accent);color:var(--pl-accent-ink);
  font:800 italic 18px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.03em;text-transform:uppercase;box-shadow:none;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:filter .15s ease,background-color .15s ease,border-color .15s ease}
#app .btn:hover:not(:disabled){filter:brightness(1.1)}
#app .btn.secondary{background:transparent;color:var(--pl-text);border-color:color-mix(in srgb,var(--pl-accent) 70%,transparent)}
#app .btn.secondary:hover:not(:disabled){background:#f56a4018;filter:none}
#app .btn.ghost{background:transparent;color:var(--pl-soft);border-color:var(--pl-line-strong)}
#app .btn.ghost:hover:not(:disabled){border-color:var(--pl-text);color:var(--pl-text);filter:none}
#app .btn:disabled{opacity:.45}
#app .btn:focus-visible,#app .input:focus-visible,#app a:focus-visible,#app summary:focus-visible{outline:2px solid var(--pl-text);outline-offset:2px}
#app .input{min-height:46px;padding:0 14px;border-radius:var(--pl-radius-sm);border:1px solid var(--pl-line-strong);background:#0e1115;color:var(--pl-text);
  font:600 15px/1 Barlow,Arial,sans-serif;letter-spacing:.01em;text-transform:none;width:100%;max-width:none}
#app .input::placeholder{color:#7d858d}
#app .input:focus{border-color:var(--pl-accent);outline:none}
#app select.input{padding-right:34px}
#app label{display:grid;gap:7px;font:700 11px/1.2 Barlow,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-dim)}
#app .pill{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--pl-line-strong);background:transparent;
  font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-soft);white-space:nowrap}
#app .pill.deck-ready{border-color:#6fcf8e66;color:var(--pl-ok)}
#app .pill.deck-waiting{border-color:#f2b84b66;color:var(--pl-warn)}
#app .row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* surfaces: every boxed block shares one look */
#app .panel,#app .home-dashboard,#app .play-panel,#app .home-duels,#app .pack-economy-panel,#app .weekly-duel-panel,#app .home-progression,
#app .booster-shop-hero,#app .booster-stock,#app .booster-market-card,#app .booster-market-empty,#app .profile-hero,#app .progression-panel,
#app .catalogue-intro{
  background:linear-gradient(180deg,var(--pl-surface-2),var(--pl-surface));border:1px solid var(--pl-line);border-radius:var(--pl-radius);box-shadow:0 10px 30px #0006}
#app .panel,#app .play-panel,#app .home-duels,#app .pack-economy-panel,#app .weekly-duel-panel,#app .progression-panel{padding:22px}
#app .section{margin:0 0 20px}

/* lists */
#app .list{display:grid;gap:8px}
#app .match-link,#app .profile-match{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:var(--pl-radius-sm);
  border:1px solid var(--pl-line);background:var(--pl-surface-2);text-decoration:none;color:var(--pl-text);transition:border-color .15s ease}
#app .match-link:hover,#app .profile-match:hover{border-color:color-mix(in srgb,var(--pl-accent) 60%,transparent)}
#app .match-link strong,#app .profile-match strong{font:800 italic 19px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.02em}
#app .match-link .muted{font:600 13px/1.2 Barlow,Arial,sans-serif;color:var(--pl-dim)}

/* ---------- home ---------- */
#app .home-dashboard{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:22px 0 20px;padding:28px 30px}
#app .home-dashboard::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;
  background:repeating-linear-gradient(90deg,var(--pl-accent) 0 34px,transparent 34px 42px);opacity:.8}
#app .home-dashboard h1{margin:6px 0 8px}
#app .home-dashboard p{margin:0;max-width:560px}
#app .home-quick-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.home-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:20px;align-items:start}
.home-main,.home-side{display:grid;gap:20px;min-width:0}
.home-main>.section,.home-side>.section,.home-side>details{margin:0}
#app .play-format{max-width:360px;margin-top:6px}
#app .play-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
#app .play-option{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--pl-radius-sm);border:1px solid var(--pl-line);background:#0f1216}
#app .play-option p{font-size:14px;margin:0 0 8px;flex:1}
#app .play-option-no{position:absolute;right:14px;top:10px;font:800 italic 30px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:transparent;-webkit-text-stroke:1px #ffffff30}
#app .play-option .btn{width:100%}
#app .solo-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}
#app .solo-levels .btn{padding:0 6px;font-size:16px}
#app #join{display:grid;gap:8px;margin:0}
#app #invite{text-transform:uppercase;letter-spacing:.2em;font-weight:700}
#app .pack-economy-panel{display:flex;flex-direction:column;align-items:stretch;gap:14px}
#app .pack-economy-panel .btn{width:100%}
#app .pack-economy-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font:600 13px/1.2 Barlow,Arial,sans-serif;color:var(--pl-dim)}
#app .pack-economy-meta .deck-ready{color:var(--pl-ok)}#app .pack-economy-meta .deck-waiting{color:var(--pl-warn)}
#app .weekly-duel-panel{border-color:#62a7ff40;background:linear-gradient(180deg,#16202c,var(--pl-surface))}
#app .weekly-duel-panel .eyebrow{color:#8dbdff}
#app .home-progression{padding:0;overflow:hidden}
#app .home-progression>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 22px;cursor:pointer;list-style:none;
  font:800 italic 22px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase}
#app .home-progression>summary::-webkit-details-marker{display:none}
#app .home-progression>summary span{font:700 12px/1 Barlow,Arial,sans-serif;letter-spacing:.08em;color:var(--pl-dim);text-transform:none}
#app .home-progression>summary::after{content:'+';font:700 22px/1 Barlow,Arial,sans-serif;color:var(--pl-accent)}
#app .home-progression[open]>summary::after{content:'−'}
#app .home-progression .progression-panel{border:0;border-top:1px solid var(--pl-line);border-radius:0;box-shadow:none;margin:0;background:transparent}
#app .rules{padding:20px 22px;border:1px dashed var(--pl-line-strong);border-radius:var(--pl-radius)}
#app .rule-steps{display:grid;grid-template-columns:1fr;gap:10px}
#app .rule-steps p{margin:0;padding:10px 0 0;border-top:1px solid var(--pl-line);font-size:14px}
#app .rule-steps b{display:inline;margin:0 8px 0 0;font:800 italic 20px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--pl-accent)}

/* progression (home + profile) */
#app .progression-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
#app .progression-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
#app .progression-bars>div{padding:12px 14px;border:1px solid var(--pl-line);border-radius:var(--pl-radius-sm);background:#0f1216}
#app .progression-bars span{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font:700 12px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
#app .progression-bars small{color:var(--pl-dim);font-weight:600;text-transform:none;letter-spacing:0}
#app .progression-bars i{display:block;height:6px;border-radius:99px;background:#ffffff14;overflow:hidden}
#app .progression-bars i b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--pl-accent),#ffb36b)}
#app .daily-missions-head{display:flex;justify-content:space-between;font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.16em;color:var(--pl-dim);margin:6px 0 8px}
#app .daily-missions{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
#app .daily-missions article{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--pl-line);border-radius:var(--pl-radius-sm);background:#0f1216}
#app .daily-missions article.complete{border-color:#6fcf8e55;background:#6fcf8e0d}
#app .daily-missions strong{display:block;font:700 13px/1.2 Barlow,Arial,sans-serif}
#app .daily-missions small{display:block;font:500 12px/1.3 Barlow,Arial,sans-serif;color:var(--pl-dim)}
#app .mission-check{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--pl-line-strong);font:700 11px/1 Barlow,Arial,sans-serif;color:var(--pl-soft)}
#app .daily-missions article.complete .mission-check{border-color:var(--pl-ok);color:var(--pl-ok)}

/* ---------- collection ---------- */
#app .catalogue-intro{padding:14px 18px;margin:0 0 14px}
#app .catalogue-intro p{margin:0}
#app .catalogue-toolbar{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:center;margin:0 0 20px;
  position:sticky;top:0;z-index:5;padding:10px 0;background:linear-gradient(var(--pl-bg) 70%,transparent)}

/* ---------- boosters ---------- */
#app .booster-shop-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;margin:10px 0 24px}
#app .booster-shop-kpi{display:grid;place-items:center;min-width:170px;padding:22px;border-radius:var(--pl-radius);border:1px solid #f56a4066;background:#f56a4012}
#app .booster-shop-kpi strong{font:800 italic 64px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--pl-accent)}
#app .booster-shop-kpi span{font:700 11px/1.2 Barlow,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pl-dim);text-align:center}
#app .booster-inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#app .booster-stock{display:grid;grid-template-columns:minmax(0,120px) minmax(0,1fr);gap:16px;align-items:center;padding:16px}
#app .booster-stock.empty{opacity:.62}
#app .booster-stock-count{font:800 italic 30px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--pl-text)}
#app .booster-stock-copy p{font-size:13px;margin:6px 0 12px}
#app .booster-stock-copy .btn{width:100%}
#app .booster-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
#app .booster-market-card{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:16px;align-items:center}
#app .booster-market-meta{display:flex;justify-content:space-between;gap:8px;margin:8px 0 10px;font:700 12px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;color:var(--pl-dim);text-transform:uppercase}
#app .booster-market-meta strong{color:var(--pl-warn)}
#app .booster-market-note{font-size:14px;margin:0 0 14px}

/* ---------- profile ---------- */
#app .profile-hero{display:flex;align-items:center;gap:20px;padding:24px 26px;margin:10px 0 14px}
#app .profile-hero h1{margin:4px 0 2px}
#app .profile-hero p{margin:0}
#app .profile-hero .profile-role{margin-left:auto}
#app .profile-avatar{flex:none;width:76px;height:76px;border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid var(--pl-accent);background:#0f1216;
  font:800 italic 26px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--pl-accent)}
#app .profile-avatar img{width:100%;height:100%;object-fit:cover}
#app .profile-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}
#app .profile-kpis article{padding:16px 18px;border:1px solid var(--pl-line);border-radius:var(--pl-radius);background:linear-gradient(180deg,var(--pl-surface-2),var(--pl-surface))}
#app .profile-kpis span{display:block;font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pl-dim)}
#app .profile-kpis strong{display:block;margin:8px 0 4px;font:800 italic 44px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:var(--pl-text)}
#app .profile-kpis small{font:600 12px/1.3 Barlow,Arial,sans-serif;color:var(--pl-dim)}
#app .profile-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2fr);gap:20px;align-items:start;margin:20px 0}
#app .profile-form{display:grid;gap:14px;margin-top:10px}
#app .deck-toolbar{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 10px}
#app .deck-legality{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
#app .deck-legality span{padding:5px 10px;border-radius:999px;border:1px solid var(--pl-line-strong);font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
#app .deck-legality .ok{border-color:#6fcf8e66;color:var(--pl-ok)}#app .deck-legality .no{border-color:#ff665c55;color:#ff8a80}
#app .deck-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;max-height:520px;overflow:auto;padding-right:4px}
#app .deck-pick{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--pl-radius-sm);border:1px solid var(--pl-line);background:#0f1216;min-height:60px}
#app .deck-pick.selected{border-color:color-mix(in srgb,var(--pl-accent) 65%,transparent);background:#f56a400f}
#app .deck-pick-flag{font-size:22px;line-height:1}
#app .deck-pick-copy{flex:1;min-width:0}
#app .deck-pick-copy strong{display:block;font:700 14px/1.2 Barlow,Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .deck-pick-copy small{display:block;margin-top:3px;font:500 12px/1.2 Barlow,Arial,sans-serif;color:var(--pl-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .deck-stepper{display:flex;align-items:center;gap:2px;border:1px solid var(--pl-line-strong);border-radius:999px;padding:2px}
#app .deck-stepper button{width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--pl-text);font:700 18px/1 Barlow,Arial,sans-serif}
#app .deck-stepper button:hover:not(:disabled){background:#ffffff14}
#app .deck-stepper b{min-width:18px;text-align:center;font:800 italic 20px/1 'Barlow Condensed','Arial Narrow',sans-serif}
#app .garage-owned-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,calc(50% - 8px)),1fr));gap:22px 16px;margin-top:14px}
#app .garage-source{display:block;margin-top:8px;font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-dim)}

/* ---------- responsive ---------- */
@media(max-width:1020px){
  .home-grid{grid-template-columns:1fr}
  #app .play-options{grid-template-columns:1fr}
  #app .booster-inventory-grid{grid-template-columns:1fr}
  #app .profile-layout{grid-template-columns:1fr}
  #app .catalogue-toolbar{grid-template-columns:1fr 1fr}
  #app .catalogue-toolbar .catalogue-search{grid-column:1/-1}
}
@media(max-width:640px){
  .shell>.top{height:60px}
  .shell .brand{font-size:22px}
  #app .home-dashboard{flex-direction:column;align-items:stretch;padding:20px 18px 24px}
  #app .home-quick-actions{justify-content:stretch}
  #app .home-quick-actions .btn{flex:1}
  #app .panel,#app .play-panel,#app .home-duels,#app .pack-economy-panel,#app .weekly-duel-panel,#app .progression-panel{padding:18px 16px}
  #app .progression-bars{grid-template-columns:1fr}
  #app .booster-shop-hero{flex-direction:column;align-items:stretch;padding:22px 18px}
  #app .booster-stock,#app .booster-market-card{grid-template-columns:96px minmax(0,1fr)}
  #app .profile-hero{flex-wrap:wrap;padding:20px 18px}
  #app .profile-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .deck-toolbar{grid-template-columns:1fr 1fr}
  #app .deck-toolbar #deck-search{grid-column:1/-1}
  #app .deck-picker{grid-template-columns:1fr;max-height:none}
}
#app .home-main>*,#app .home-side>*{margin:0}
#app .booster-shop-kpi{box-shadow:none}
#app .booster-shop-hero h1{font-size:clamp(46px,6.4vw,92px)}
#app .home-quick-actions{flex:0 0 auto}

/* ---------- duel (layout unchanged, Pit Lane surfaces) ---------- */
body.match-mode #app h3{font-size:18px;margin:2px 0}
body.match-mode #app .board-panel,body.match-mode #app .race-panel,body.match-mode #app .hand-panel{
  background:linear-gradient(180deg,var(--pl-surface-2),var(--pl-surface));border:1px solid var(--pl-line);border-radius:var(--pl-radius);box-shadow:0 10px 30px #0006}
body.match-mode #app .board{background:transparent}
body.match-mode #app .cell.empty{border:1px dashed #ffffff26;background:#ffffff05;border-radius:8px;color:#ffffff40}
body.match-mode #app .cell.empty.available,body.match-mode #app .cell.empty.drop-ready:hover{border-color:var(--pl-accent);background:#f56a4012}
body.match-mode #app .match-rule-btn{border:1px solid var(--pl-line-strong);border-radius:var(--pl-radius-sm);background:transparent;color:var(--pl-text);
  font:800 italic 16px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.04em;text-transform:uppercase}
body.match-mode #app .turn-light{border-radius:var(--pl-radius-sm);font:800 italic 16px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.04em;box-shadow:none}
body.match-mode #app .match-context strong{font:800 italic 26px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase}
body.match-mode #app .race-panel>*{border-color:var(--pl-line)}
body.match-mode{--board-max:calc(100dvh - var(--hand-h) - 196px)}
body.match-mode #app .board{max-width:min(560px,var(--board-max));max-height:var(--board-max)}
@media(max-width:1020px){
  body.match-mode #app .hand-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;overflow:visible}
  body.match-mode #app .hand-grid .hand-card,body.match-mode #app .hand-grid .hand-slot-empty{height:auto;min-height:0;aspect-ratio:5/7}
  body.match-mode #app .hand-grid .pl-card.pl-hand{height:100%}
  body.match-mode #app .pl-card.pl-hand .pl-model{font-size:calc(var(--u)*13);-webkit-line-clamp:2}
  body.match-mode #app .pl-card.pl-hand .pl-diamond{width:calc(var(--u)*61);top:62%}
  body.match-mode #app .pl-card.pl-hand .pl-value b{font-size:calc(var(--u)*17)}
  body.match-mode #app .pl-card.pl-hand .pl-flag,body.match-mode #app .pl-card.pl-hand .pl-stripe{display:none}
  body.match-mode #app .pl-card.pl-hand .pl-head{padding:calc(var(--u)*5) calc(var(--u)*7) calc(var(--u)*4)}
}
#app .btn.danger{background:transparent;color:#ff8a80;border-color:#ff665c80}
#app .btn.danger:hover:not(:disabled){background:#ff665c1a;color:#ffb3ab;filter:none}
/* admin keeps dense tools: smaller buttons, actions on one wrapping row */
#app .admin-item-actions,#app .admin-player-actions{display:flex;flex-wrap:wrap;gap:6px}
#app [class*="admin"] .btn{min-height:38px;padding:0 12px;font-size:15px}

/* booster reveal: five Pit Lane cards on one row, scroll sideways on phones */
.pack-reveal .pack-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;width:100%;margin:18px 0;overflow:visible}
.pack-reveal .pack-card{flex:1 1 auto!important;width:auto;min-width:0;max-width:none}
.pack-reveal h2,.pack-opening-overlay h2{font:800 italic clamp(30px,4vw,48px)/.95 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase}
.pack-reveal .eyebrow,.pack-opening-overlay .eyebrow{font:700 11px/1.2 Barlow,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--pl-accent)}
.pack-reveal .pack-count-badge{border-radius:999px;border-color:#f56a4080;background:#f56a401a}
@media(max-width:900px){
  .pack-reveal .pack-cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .pack-reveal .pack-cards{flex-direction:row;flex-wrap:nowrap}
  .pack-reveal .pack-card{flex:0 0 min(62vw,240px)!important;width:min(62vw,240px);scroll-snap-align:center}
}

/* rules dialog */
.rules-card{border-radius:var(--pl-radius);border-color:var(--pl-line)!important;background:linear-gradient(180deg,var(--pl-surface-2),var(--pl-surface))!important}
.rules-grid article{border-radius:var(--pl-radius-sm);border-left-color:var(--pl-accent);background:#0f1216}
.rules-grid b{font-style:italic}
.pack-reveal .pack-sheet{max-width:calc(100vw - 16px);min-width:0}
.pack-reveal .pack-stage,.pack-reveal .pack-cards{min-width:0;max-width:100%}
.pack-reveal .pack-sheet>*{min-width:0}
#app input[type=file].input{height:auto;padding:10px 12px;line-height:1.3}

/* flags: bundled 4:3 SVGs with a thin edge so white flags stay visible */
.flag-icon{display:inline-block;width:1.34em;height:1em;vertical-align:-.12em;border-radius:2px;object-fit:cover;
  box-shadow:0 0 0 1px #ffffff2e,0 1px 3px #0009}
.flag-emoji{display:inline-block;line-height:1}
.pl-flag{display:grid;place-items:center}
.pl-flag .flag-icon{width:calc(var(--u)*11);height:calc(var(--u)*8.25);border-radius:calc(var(--u)*1)}
.pl-card.game-card .pl-flag .flag-icon{width:calc(var(--u)*12);height:calc(var(--u)*9)}
#app .deck-pick-flag .flag-icon{width:26px;height:19.5px}
/* v0.37 series auto + missing logos */
.series-auto{border:1px solid var(--line,#2a2f35);border-radius:12px;padding:14px;margin:12px 0 18px}
.series-auto .rarity-grid{margin:10px 0}
.series-panel .check,.series-auto .check{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:14px}
/* v0.38 card stages + edit dialog */
.admin-catalogue-card.stage-draft{border-color:#6b7076}
.admin-catalogue-card.stage-ready{border-color:#e8b62c;box-shadow:inset 0 0 0 1px #e8b62c55}
.admin-catalogue-card.stage-active{border-color:#3fbf6a;box-shadow:inset 0 0 0 1px #3fbf6a55}
.stage-badge{align-self:flex-start;font:800 10px/1 var(--font-display,inherit);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:99px}
.stage-badge.stage-draft{background:#6b707633;color:#c3c7cc}
.stage-badge.stage-ready{background:#e8b62c26;color:#f1c54a}
.stage-badge.stage-active{background:#3fbf6a26;color:#5fd98a}
.stage-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.stage-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:-4px}
.stage-dot.stage-draft{background:#6b7076}.stage-dot.stage-ready{background:#e8b62c}.stage-dot.stage-active{background:#3fbf6a}
.admin-catalogue-card .btn.ready-card{background:#e8b62c!important;color:#111!important;border-color:#e8b62c!important}
.admin-catalogue-card .ready-card:disabled{opacity:.45;cursor:not-allowed}
.card-dialog{width:min(920px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;background:transparent;color:inherit;overflow:auto}
.card-dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}
.card-dialog .admin-form{position:static!important;margin:0}
.card-dialog .admin-form>.row{position:sticky;top:0;z-index:2;background:inherit}
#card-new{margin-left:auto}
/* v0.39 brand catalogue */
.admin-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}
@media(max-width:760px){.admin-nav{grid-template-columns:none!important}}
.brands-list{display:grid;gap:8px}
.brand-row{display:grid;grid-template-columns:64px minmax(120px,.8fr) minmax(130px,.7fr) minmax(0,1.3fr) minmax(0,.9fr) auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:#ffffff08;border:1px solid transparent}
.brand-row.is-missing{border-color:#e8b62c66}
.brand-row .input{width:100%;max-width:none;text-transform:none;letter-spacing:0}
.brand-row input[type=file]{min-width:0;font-size:12px}
.brand-logo-preview{width:56px;height:56px;border-radius:50%;background:#f3f0ea;display:grid;place-items:center;overflow:hidden}
.brand-logo-preview img{width:78%;height:78%;object-fit:contain}
.brand-logo-preview b{font-size:10px;color:#6b7076;text-align:center}
.brand-id{display:grid;gap:2px;min-width:0}.brand-id small{color:var(--muted,#9aa0a6)}
.brand-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.brand-row{grid-template-columns:56px minmax(0,1fr)}.brand-row>.input,.brand-row>input[type=file],.brand-actions{grid-column:1/-1}.brand-actions{justify-content:flex-start}}
/* v0.41 collection album */
.series-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:8px 0 18px;padding-bottom:2px}
.series-tab{flex:0 0 auto;display:grid;gap:2px;text-align:left;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;color:inherit}
.series-tab small{color:var(--muted);font-size:11px}
.series-tab.active{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,transparent)}
.album-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.album-head h2{margin:4px 0 0}
.album-progress{display:grid;gap:6px;min-width:180px;text-align:right}
.album-progress strong{font:900 34px/1 'Barlow Condensed','Arial Narrow',sans-serif}
.album-progress small{font-size:18px;color:var(--muted)}
.album-meter{height:6px;border-radius:9px;background:#ffffff14;overflow:hidden}.album-meter i{display:block;height:100%;background:var(--gold)}
.album-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 20px}
.album-toolbar .input{width:auto!important;max-width:240px!important;text-transform:none;letter-spacing:0}
.album-slot{position:relative;min-width:0}
.album-num{position:absolute;left:8px;bottom:-20px;font-size:11px;color:var(--muted);letter-spacing:.06em}
.album-count{position:absolute;top:-8px;right:-6px;z-index:3;background:var(--gold);color:#111;font-weight:900;font-size:12px;padding:3px 8px;border-radius:99px;box-shadow:0 3px 8px #0008}
.card-back{aspect-ratio:63/88;width:100%;border-radius:12px;border:2px solid #3a3f45;position:relative;display:grid;place-items:center;overflow:hidden;
  background:repeating-linear-gradient(135deg,#ffffff06 0 10px,transparent 10px 20px),radial-gradient(circle at 50% 40%,#2a2f36,#121417 75%);box-shadow:inset 0 0 0 6px #0b0d0f,inset 0 0 0 7px #ffffff14}
.card-back-mark{font:italic 900 clamp(38px,7vw,64px)/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#ffffff1f;letter-spacing:-.04em}
.card-back-brand{position:absolute;top:14%;font:800 10px Barlow,Arial,sans-serif;letter-spacing:.35em;color:#ffffff40}
.card-back-number{position:absolute;bottom:9%;font:700 12px Barlow,Arial,sans-serif;color:#ffffff73;letter-spacing:.08em}
.cards-grid.album-grid{row-gap:34px!important}
/* v0.41 ready counter by rarity */
.stage-rarity{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.stage-rarity span{font-size:12px;padding:5px 9px;border-radius:99px;background:#ffffff0d;border:1px solid #ffffff1a}
.stage-rarity span.done{border-color:#3fbf6a;color:#5fd98a}
/* v0.42 model name: slightly smaller, one line, shrinks with long names
   (size in card units = band width / (0.5 x letters), capped at the base size) */
.pl-model{display:block;white-space:nowrap;text-overflow:ellipsis;-webkit-line-clamp:unset;font-size:calc(var(--u)*min(10,180/var(--name-len,10)))}
.pl-card.game-card .pl-model{-webkit-line-clamp:unset;font-size:calc(var(--u)*min(10.5,176/var(--name-len,10)))}
body.match-mode #app .pl-card.pl-hand .pl-model{-webkit-line-clamp:unset;font-size:calc(var(--u)*min(12,172/var(--name-len,10)))}
#app .home-progression .progression-panel{border-top:0;padding:22px}
/* v0.42 admin catalogue filters + delete */
.admin-catalogue-toolbar{grid-template-columns:repeat(4,minmax(0,1fr)) auto!important}.admin-catalogue-toolbar #admin-card-search{grid-column:1/-1}#admin-card-sort-dir{min-width:46px;padding:0 14px}
@media(max-width:760px){.admin-catalogue-toolbar{grid-template-columns:1fr 1fr!important}.admin-catalogue-toolbar #admin-card-search{grid-column:1/-1}}
.admin-catalogue-card .btn.danger{background:#c8372d!important;border-color:#c8372d!important;color:#fff!important}
.stage-rarity strong{font-size:12px;align-self:center;margin-right:4px}

/* v0.43 collector cards: photo/info line raised from 64% to 52% so 16:9 photos lose less of their sides */
.pl-card.pl-collector{--pl-split:52%}
/* v0.44 the photo line runs through the middle of the top stat tile:
   top tile centre measured ~12.2u above the diamond centre */
.pl-card.pl-collector .pl-diamond{top:calc(var(--pl-split) + var(--u)*12.2)}
.pl-card.pl-collector .pl-synergy-badge{top:calc(var(--pl-split) - var(--u)*16)}
/* model name: smaller base, shrinks with length, then JS trims any residual overflow (--name-fit) */
.pl-model{font-size:calc(var(--u)*min(8.8,170/var(--name-len,10))*var(--name-fit,1))}
.pl-card.game-card .pl-model{font-size:calc(var(--u)*min(9.6,166/var(--name-len,10))*var(--name-fit,1))}
body.match-mode #app .pl-card.pl-hand .pl-model{font-size:calc(var(--u)*min(11,162/var(--name-len,10))*var(--name-fit,1))}
.admin-catalogue-card .btn.ready-card.is-incomplete{opacity:.5}
/* v0.46 update notice */
#update-toast{position:fixed;z-index:1400;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:10px;
  max-width:calc(100vw - 24px);padding:10px 10px 10px 16px;border-radius:14px;background:#15181b;border:1px solid #f56a40;color:#f3f0ea;box-shadow:0 12px 34px #000b;font:600 14px Barlow,Arial,sans-serif}
#update-toast[hidden]{display:none}
#update-toast-apply{border:0;border-radius:10px;padding:9px 14px;background:#f56a40;color:#111;font:800 13px Barlow,Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
#update-toast-later{border:0;background:none;color:#9aa3ab;font-size:16px;padding:6px}
/* v0.48 boosters + series CSV */
.booster-summary{display:block;font-size:12px;color:var(--pl-soft,#c9c4bb);margin-top:2px}
.booster-exclude{display:flex;gap:4px;align-items:center;font-size:11px;margin-top:4px;text-transform:none;letter-spacing:0}
#booster-form.is-editing{outline:2px solid #f56a40;outline-offset:2px}
.series-item{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.series-item>div:first-child{display:grid;gap:2px}
.series-import{cursor:pointer}
/* v0.48.1 home actions on phones / PWA: 2 columns, the main action full width */
@media(max-width:760px){
  #app .home-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
  #app .home-quick-actions .btn{flex:none;min-width:0;width:100%;white-space:normal;line-height:1.1;text-align:center}
  #app .home-quick-actions .btn:first-child:nth-last-child(odd){grid-column:1/-1}
}
/* v0.49 shop: one heading per series, one colour per booster tier */
.booster-market-series{grid-column:1/-1;margin:14px 0 0;font:800 italic 20px/1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em;color:var(--pl-text,#f3f0ea)}
.booster-market-series:first-child{margin-top:0}
.booster-art--tier-basic{--pack:#7f9aa8;--pack2:#24333c}
.booster-art--tier-premium{--pack:#c9a24a;--pack2:#3d2f12}
.booster-art--tier-no_common{--pack:#a87fd1;--pack2:#2f2242}
/* v0.50 tokens */
.header-tokens{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid #f5c04a66;color:#f5c04a;font:800 13px/1 Barlow,Arial,sans-serif;text-decoration:none;white-space:nowrap}
.token-pill{color:#f5c04a!important;border-color:#f5c04a66!important}
/* v0.51 persistent navigation under the header */
.main-nav{position:sticky;top:0;z-index:30;display:flex;gap:4px;margin:0 -18px;padding:8px 18px;background:#0b0c0de6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--pl-line,#ffffff17);overflow-x:auto;scrollbar-width:none}
.main-nav[hidden]{display:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{flex:0 0 auto;padding:9px 14px;border-radius:999px;text-decoration:none;color:var(--pl-soft,#c9c4bb);font:800 13px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.main-nav a:hover{color:#f3f0ea;background:#ffffff0d}
.main-nav a.active{color:#111;background:#f56a40}
body.match-mode .main-nav{display:none}
@media(max-width:760px){.main-nav{margin:0 -12px;padding:6px 12px;gap:2px;justify-content:space-between}.main-nav a{padding:9px 10px;font-size:12px;letter-spacing:.03em}}
#app .admin-nav{top:56px!important}
@media(max-width:760px){#app .admin-nav{top:50px!important}}
/* v0.52 admin rules page */
.rules-page h3{margin:22px 0 8px;font:800 italic 20px/1 'Barlow Condensed',sans-serif;text-transform:uppercase}
.rules-page ul{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--pl-soft,#c9c4bb);line-height:1.5}
.rules-page b{color:var(--pl-text,#f3f0ea)}
@media(max-width:1050px){#app .admin-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(min-width:1051px){#app .admin-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}}
/* v0.52.1 pack titles fit the pack width (long names like RAVITAILLEMENT) */
.booster-art{container-type:inline-size}
.booster-art .booster-art-title{font-size:min(20px,calc(165cqi / var(--len,8)))!important;max-width:100%;white-space:normal;overflow-wrap:normal;letter-spacing:.02em;line-height:1}
.booster-art .booster-art-sub{max-width:100%;overflow-wrap:anywhere;white-space:normal}
#app .home-quick-actions:empty{display:none}
@media(max-width:760px){#app .home-quick-actions .btn:only-child{grid-column:1/-1}}
/* v0.53 card-by-card booster reveal */
.pack-card{perspective:1200px;cursor:pointer}
.pack-flip{position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.pack-card.is-hidden .pack-flip{transform:rotateY(180deg)}
.pack-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pack-back{position:absolute;inset:0;transform:rotateY(180deg)}
.pack-back .card-back{height:100%;aspect-ratio:auto;border-color:#f56a40aa;box-shadow:0 18px 28px #0009,inset 0 0 0 6px #0b0d0f,inset 0 0 0 7px #f56a4033}
.pack-card.is-hidden:hover .pack-back .card-back{border-color:#f56a40}
.pack-card.is-revealed{cursor:default}
.pack-card.is-rare.is-revealed .pack-front{animation:pack-rare-glow 1.4s ease-out 1}
@keyframes pack-rare-glow{0%{filter:drop-shadow(0 0 0 #ffd36a)}35%{filter:drop-shadow(0 0 28px #ffd36a)}100%{filter:drop-shadow(0 0 0 #ffd36a)}}
@media(prefers-reduced-motion:reduce){.pack-flip{transition:none}.pack-card.is-rare.is-revealed .pack-front{animation:none}}
.pack-cards{justify-content:safe center!important}
/* v0.54 series mark, bottom right of collector cards */
.pl-card.pl-collector .pl-specs{bottom:calc(var(--u)*15.5)}
.pl-card.pl-collector .pl-foot{bottom:calc(var(--u)*7.5)}
.pl-set{position:absolute;right:calc(var(--u)*5);bottom:calc(var(--u)*2.6);z-index:3;font:700 calc(var(--u)*3.3)/1 Barlow,Arial,sans-serif;letter-spacing:.08em;color:#f3f0ea99;white-space:nowrap}
.pl-card.game-card .pl-set{display:none}
/* v0.55 duel cards: brand logo bottom left, flag bottom right (board and hand) */
.pl-card.game-card .pl-emblem{display:grid;top:auto;left:calc(var(--u)*5);bottom:calc(var(--u)*8);width:calc(var(--u)*13);height:calc(var(--u)*13);box-shadow:0 1px 4px #0009}
.pl-card.game-card .pl-emblem .pl-signature{font-size:calc(var(--u)*5)}
body.match-mode #app .pl-card.pl-hand .pl-flag{display:block;top:auto;bottom:calc(var(--u)*5);right:calc(var(--u)*5)}
body.match-mode #app .pl-card.pl-hand .pl-flag .flag-icon{width:calc(var(--u)*22);height:calc(var(--u)*16)}
body.match-mode #app .pl-card.pl-hand .pl-emblem{bottom:calc(var(--u)*4);left:calc(var(--u)*4);width:calc(var(--u)*22);height:calc(var(--u)*22)}
/* v0.55 phone duel: board sized so the hand always fits under it */
@media(max-width:900px){
  body.match-mode{--hand-card:calc((min(100vw,540px) - 28px - 24px) / 5);--hand-panel:calc(var(--hand-card) * 1.4 + 58px)}
  body.match-mode #app .board{width:min(100%,calc(100dvh - var(--hand-panel) - 272px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))!important;max-width:none!important;max-height:none!important;margin-inline:auto}
}
/* v0.57 mystery pick (pioche mystère) */
.wonder-feed{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,360px);gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.wonder-item{scroll-snap-align:start;display:grid;gap:10px;padding:14px;border:1px solid #2b3036;border-radius:14px;background:#14171b}
.wonder-item.is-picked{opacity:.62}
.wonder-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.wonder-item-head strong{font-size:15px;color:#f5f2ec}
.wonder-item-head span{font-size:12px;color:#a7afb6;text-align:right}
.wonder-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.wonder-mini{min-width:0;pointer-events:none}
.wonder-mini .pl-card{width:100%}
.wonder-mini.is-mine{outline:2px solid #f56a40;outline-offset:2px;border-radius:6px}
.wonder-item .btn{width:100%}
.wonder-done{font-size:13px;color:#a7afb6;text-align:center;padding:9px 0}
.wonder-choices .pack-front:empty{aspect-ratio:5/7}
.wonder-choices .pack-card.is-hidden:hover .pack-flip{transform:rotateY(180deg) translateY(-6px)}
.wonder-reveal.is-picking .pack-card.is-hidden{cursor:progress}
.wonder-choices .pack-card.is-won .pack-front{filter:drop-shadow(0 0 18px #f56a40aa)}
.pack-reveal .wonder-choices .pack-card.is-other.is-revealed{opacity:.45!important;transform:scale(.94);transition:opacity .4s,transform .4s}
@media(max-width:760px){.wonder-feed{grid-auto-columns:86%}}
@media(max-width:900px){
  .pack-reveal .wonder-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;overflow:visible;scroll-snap-type:none}
  .pack-reveal .wonder-choices .pack-card{grid-column:span 2;width:auto!important;flex:none!important}
  .pack-reveal .wonder-choices .pack-card:nth-child(4){grid-column:2/span 2}
  .wonder-reveal .pack-actions-copy{display:block}
  .wonder-reveal .pack-actions-copy strong{font-size:14px}
}
/* v0.58 rarity + total grade, bottom left (mirrors the series mark) */
.pl-grade{position:absolute;left:calc(var(--u)*5);bottom:calc(var(--u)*2.6);z-index:3;font:700 calc(var(--u)*3.3)/1 Barlow,Arial,sans-serif;letter-spacing:.08em;color:#f3f0ea99;white-space:nowrap}
.pl-card.game-card .pl-grade{display:none}
/* v0.58 Cartes + Decks */
.cards-head{align-items:flex-end;flex-wrap:wrap}
.owned-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:14px 0}
.owned-filters .input{width:100%;text-transform:none;letter-spacing:.02em;padding:10px 12px}
.owned-sort{display:grid;grid-template-columns:1fr auto;gap:6px}.owned-sort .btn{min-height:0;padding:8px 14px}
.owned-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important;gap:18px 14px!important}
.owned-slot{min-width:0;display:grid;gap:8px}
.owned-meta{display:flex;align-items:center;justify-content:space-between;gap:6px}
.owned-meta span{font:700 12px/1.2 Barlow,Arial,sans-serif;color:#a7afb6}
.owned-meta .btn{min-height:0;padding:7px 12px;font-size:12px}
.d9-sheet{position:fixed;inset:0;z-index:60;background:#000a;display:grid;place-items:end center;padding:12px}
@media(min-width:761px){.d9-sheet{place-items:center}}
.d9-sheet-panel{width:min(100%,460px);max-height:min(80dvh,640px);overflow:auto;background:#14171b;border:1px solid #2b3036;border-radius:16px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 20px 60px #000c}
.d9-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.d9-sheet-head h2{font:800 italic 22px/1.05 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;margin:0}
.deck-choice-list{display:grid;gap:8px}
.deck-choice{display:grid;gap:3px;text-align:left;padding:12px 14px;border:1px solid #2b3036;border-radius:12px;background:#0f1216;color:#f3f0ea;cursor:pointer}
.deck-choice:hover:not(:disabled){border-color:#f56a40}
.deck-choice strong{font:800 15px/1.2 Barlow,Arial,sans-serif}.deck-choice strong small{color:#a7afb6;font-weight:700}
.deck-choice span{font-size:12px;color:#a7afb6}
.deck-choice.new{border-style:dashed;border-color:#f56a4088}.deck-choice.new strong{color:#f56a40}
.decks-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:14px}
.deck-tile{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:14px;border:1px solid #2b3036;border-radius:14px;background:#14171b}
.deck-tile.is-active{border-color:#f56a40;box-shadow:0 0 0 1px #f56a4055}
.deck-tile-thumbs{position:relative;height:150px}
.deck-thumb{position:absolute;width:86px;top:0}.deck-thumb:nth-child(1){left:0;z-index:3}.deck-thumb:nth-child(2){left:17px;top:6px;z-index:2;transform:rotate(4deg)}.deck-thumb:nth-child(3){left:34px;top:12px;z-index:1;transform:rotate(8deg)}
.deck-thumb.empty{position:static;width:86px;aspect-ratio:5/7;border:1px dashed #3a3f45;border-radius:8px;display:grid;place-items:center;color:#6b737c;font-size:12px}
.deck-tile-copy{display:grid;gap:8px;align-content:start;min-width:0}
.deck-tile-title{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.deck-tile-title h3{margin:0;font-size:18px;overflow-wrap:anywhere}
.deck-tile.is-active .deck-state{color:#111;background:#f56a40;border-color:#f56a40}
.deck-tile.is-incomplete:not(.is-active) .deck-state{color:#e4b96a;border-color:#e4b96a66}
.deck-meter{height:6px;border-radius:99px;background:#ffffff12;overflow:hidden}.deck-meter i{display:block;height:100%;background:#f56a40}
.deck-tile.is-incomplete .deck-meter i{background:#e4b96a}
.deck-tile-actions{display:flex;flex-wrap:wrap;gap:6px}.deck-tile-actions .btn{min-height:0;padding:8px 12px;font-size:12px}
.deck-editor-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin:8px 0 14px}
.deck-editor-head .btn{min-height:0;padding:9px 14px}
.deck-name{width:100%!important;text-transform:none!important;letter-spacing:.01em!important;font-weight:800;font-size:18px}
.deck-count{font-size:14px!important;font-weight:800}.deck-count.is-full{color:#111!important;background:#6fcf8e;border-color:#6fcf8e}
.deck-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;align-items:start}
.deck-editor-grid .panel{margin:0}
.deck-content{position:sticky;top:64px;max-height:calc(100dvh - 80px);overflow:auto}
.deck-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #ffffff0d}
.deck-row-card .pl-card{width:44px}.deck-row-card{pointer-events:none}
.deck-row-copy{min-width:0;display:grid;gap:2px}.deck-row-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-row-copy small{font-size:12px;color:#a7afb6}
.deck-pool .deck-row.in-deck .deck-row-copy strong{color:#f56a40}
.deck-row .deck-stepper{grid-template-columns:34px 26px 34px}.deck-row .deck-stepper button{height:34px;border-radius:8px;font-size:18px}
.deck-pool-list{max-height:none}
.deck-save-bar{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}
@media(max-width:900px){.deck-editor-grid{grid-template-columns:1fr}.deck-content{position:static;max-height:none}}
@media(max-width:760px){
  .owned-filters{grid-template-columns:1fr 1fr}.owned-filters [data-f="q"]{grid-column:1/-1}.owned-sort{grid-column:1/-1}
  .owned-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 10px!important}
  .deck-tile{grid-template-columns:96px 1fr}.deck-thumb{width:70px}.deck-tile-thumbs{height:124px}
  .deck-editor-head{grid-template-columns:1fr auto}.deck-editor-head #deck-back{grid-column:1/-1;justify-self:start}
  .play-setup{display:grid;gap:4px}
}
.owned-filters{grid-template-columns:1fr!important}
.owned-more summary{cursor:pointer;font:800 12px/1 Barlow,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#a7afb6;padding:6px 0;list-style:none}
.owned-more summary::-webkit-details-marker{display:none}
.owned-more summary::before{content:'▸ ';color:#f56a40}.owned-more[open] summary::before{content:'▾ '}
.owned-more-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-top:6px}
@media(min-width:761px){.owned-more summary{display:none}}
@media(max-width:760px){
  .owned-more-grid{grid-template-columns:1fr 1fr}.owned-more-grid .owned-sort{grid-column:1/-1}
  .cards-head{flex-direction:column;align-items:flex-start;gap:6px}.cards-head h1{margin-bottom:4px}
  .deck-tile-title{flex-direction:column;gap:4px}.deck-tile-title h3{font-size:16px}
  .deck-tile-actions{display:grid;grid-template-columns:1fr 1fr}.deck-tile-actions .btn{padding:8px 6px}
}
/* v0.59 grade in the rarity colour (C stays light grey) */
.pl-grade{color:var(--pl-r);text-shadow:0 1px 2px #000a}
.stage-badge.photo-external{color:#e4b96a;border-color:#e4b96a66;background:#e4b96a14}
.localize-failures{margin-top:8px}.localize-failures summary{cursor:pointer;font-weight:700;color:#e4b96a}.localize-failures a{color:#f3f0ea}.localize-failures small{color:#8b939a}
.wonder-cost{display:inline-block;margin-top:8px;padding:6px 12px;border-radius:999px;font:800 13px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.wonder-cost.is-free{color:#111;background:#6fcf8e}.wonder-cost.is-paid{color:#111;background:#e4b96a}
/* v0.63 header pack button: grey when empty, bright gold when boosters are waiting */
.header-packs{overflow:visible}
.header-packs .header-pack-icon{border:0;background:none;transform:none;width:22px;height:28px}
.header-packs .header-pack-icon::before,.header-packs .header-pack-icon::after{display:none}
.header-packs.is-empty{background:#141719;border-color:#ffffff10}
.header-packs.is-empty .pk-body{fill:#3a3f45;stroke:#5c636b}.header-packs.is-empty .pk-seal{stroke:#24282c}
.header-packs.is-empty .pk-diamond{fill:#24282c;stroke:#7d858c}.header-packs.is-empty .pk-text{fill:#9aa1a7}
.header-packs.has-packs{color:#ffd76a;border-color:#ffd76a99;background:radial-gradient(circle at 50% 35%,#5a4510,#231a06 70%);
  box-shadow:0 0 0 1px #ffd76a33,0 0 18px #ffcf4d66,0 0 34px #ffb80033;animation:header-pack-glow 1.8s ease-in-out infinite}
.header-packs.has-packs .pk-body{fill:#f5c542;stroke:#fff1b0}.header-packs.has-packs .pk-seal{stroke:#8a6512}
.header-packs.has-packs .pk-diamond{fill:#3d2b05;stroke:#fff6cf}.header-packs.has-packs .pk-text{fill:#fff8de}
.header-packs.has-packs .header-pack-icon{filter:drop-shadow(0 0 5px #ffd76aaa)}
.header-pack-shine{position:absolute;inset:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.header-pack-shine::before{content:"";position:absolute;inset:-20% -80%;opacity:0}
.header-packs.has-packs .header-pack-shine::before{opacity:1;background:linear-gradient(115deg,transparent 42%,#fff9 50%,transparent 58%);animation:header-pack-sweep 2.6s ease-in-out infinite}
.header-packs.has-packs .header-pack-badge{background:#ffd76a;color:#1a1204;box-shadow:0 0 10px #ffd76a}
@keyframes header-pack-glow{0%,100%{box-shadow:0 0 0 1px #ffd76a33,0 0 14px #ffcf4d55}50%{box-shadow:0 0 0 1px #ffd76a66,0 0 26px #ffcf4daa,0 0 44px #ffb80055}}
@keyframes header-pack-sweep{0%,55%{transform:translateX(-60%)}85%,100%{transform:translateX(60%)}}
@media(prefers-reduced-motion:reduce){.header-packs.has-packs,.header-packs.has-packs .header-pack-shine::before{animation:none}}
/* v0.63 card error reports */
.report-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid #ffffff1c;background:#0f1216;color:#a7afb6;font-size:15px;cursor:pointer;flex:none}
.report-btn:hover{color:#ffd76a;border-color:#ffd76a66}
.owned-actions{display:flex;gap:6px;align-items:center}
.album-slot{position:relative}
.album-report{position:absolute;left:-6px;top:-8px;z-index:3;width:28px;height:28px;font-size:13px;opacity:.75;background:#14171bcc}
.album-slot:hover .album-report,.album-report:focus-visible{opacity:1}
.report-form{display:grid;gap:12px}.report-form label{display:grid;gap:6px;font-weight:700;font-size:13px}
.report-form .input{width:100%;text-transform:none;letter-spacing:.01em;font:500 15px/1.4 Barlow,Arial,sans-serif;resize:vertical}
.report-form .actions{margin:4px 0 0}
.nav-alert{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:99px;background:#ff665c;color:#fff;font-size:11px;letter-spacing:0;vertical-align:1px}
.admin-reports{margin:0 0 14px;border:1px solid #2b3036;border-radius:14px;background:#14171b;padding:12px 16px}
.admin-reports.has-open{border-color:#ff665c88;box-shadow:0 0 0 1px #ff665c33}
.admin-reports summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;list-style:none}
.admin-reports summary::-webkit-details-marker{display:none}
.admin-reports.has-open summary strong{color:#ff8a80}
#admin-report-list{display:grid;gap:10px;margin-top:12px}
.report-item{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:10px;border:1px solid #ffffff10;border-radius:12px;background:#0f1216}
.report-item.status-done,.report-item.status-rejected{opacity:.55}
.report-card .pl-card{width:84px}.report-card{pointer-events:none}
.report-body{display:grid;gap:4px;min-width:0}.report-body p{margin:4px 0;color:#f3f0ea;overflow-wrap:anywhere}
.report-body a{font-size:13px;color:#e4b96a;overflow-wrap:anywhere}
.report-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.report-actions .btn{min-height:0;padding:7px 12px;font-size:12px}
/* v0.64 trades */
.trade-item{display:grid;gap:10px;padding:14px;margin:10px 0;border:1px solid #2b3036;border-radius:14px;background:#14171b}
.trade-item.status-pending{border-color:#e4b96a55}
.trade-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline}.trade-head small{color:#a7afb6}
.trade-sides{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.trade-arrow{font-size:22px;color:#e4b96a}
.trade-cards{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.trade-mini{position:relative;width:64px;pointer-events:none}.trade-mini .pl-card{width:64px}.trade-mini .album-count{top:-6px;right:-6px;font-size:10px;padding:2px 6px}
.trade-actions{display:flex;flex-wrap:wrap;gap:6px}.trade-actions .btn{min-height:0;padding:8px 14px;font-size:13px}
.trade-history summary{cursor:pointer;list-style:none}.trade-history summary h2{display:inline}
.trade-history .trade-item{opacity:.75}
.trade-item.status-accepted .trade-head span{color:#6fcf8e}
.trade-editor #trade-player{width:100%;text-transform:none;letter-spacing:.01em}
.trade-send{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;padding:12px 16px;border:1px solid #2b3036;border-radius:14px;background:#0f1216f2;backdrop-filter:blur(6px)}
#trade-balance.is-full{color:#111;background:#6fcf8e;border-color:#6fcf8e}
@media(max-width:760px){.trade-sides{grid-template-columns:1fr}.trade-arrow{transform:rotate(90deg);justify-self:center}.trade-mini,.trade-mini .pl-card{width:56px}}
/* v0.65 trade suggestions: cards the other side does not own yet */
.deck-row.is-new{background:linear-gradient(90deg,#6fcf8e14,transparent 70%)}
.trade-new{justify-self:start;display:inline-block;margin:2px 0;padding:2px 7px;border-radius:99px;background:#6fcf8e;color:#0b1a10;font:800 10px/1.4 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;white-space:nowrap}
.trade-useful{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;font:600 14px/1.3 Barlow,Arial,sans-serif;text-transform:none;letter-spacing:0;color:#f3f0ea;cursor:pointer}.trade-useful input{width:18px;height:18px;accent-color:#6fcf8e}.trade-useful[data-summary]::after{flex-basis:100%}
.trade-useful[data-summary]::after{content:attr(data-summary);color:#6fcf8e;font-weight:700;font-size:12px}
.trade-filter{min-height:0;padding:8px 14px;font-size:12px}.trade-filter[aria-pressed="true"]{color:#0b1a10;background:#6fcf8e;border-color:#6fcf8e}
/* v0.66 trades: sized by card count, zoom, exchange animation */
.trade-sides{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important}
.trade-sides .trade-arrow{transform:none!important;align-self:center}
.trade-cards{display:grid!important;grid-template-columns:repeat(var(--cols,1),minmax(0,1fr));gap:6px;max-width:calc(var(--cols,1) * 150px)}
.trade-mini{width:auto!important;padding:0;border:0;background:none;cursor:zoom-in;pointer-events:auto!important;text-align:left}
.trade-mini .pl-card{width:100%!important}
.trade-editor .deck-row-card{padding:0;border:0;background:none;cursor:zoom-in;pointer-events:auto}
.card-zoom{position:fixed;inset:0;z-index:80;display:grid;place-items:center;align-content:center;gap:10px;padding:16px;background:#000c;cursor:zoom-out;animation:zoom-in .18s ease-out}
.card-zoom-card{width:min(86vw,380px,calc((100dvh - 80px) * 5 / 7))}.card-zoom-card .pl-card{width:100%}
.card-zoom p{color:#a7afb6}
@keyframes zoom-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.trade-anim{position:fixed;inset:0;z-index:90;display:grid;place-items:center;align-content:center;gap:14px;background:radial-gradient(circle at 50% 50%,#2a2010,#050505 75%);transition:opacity .25s}
.trade-anim.is-done{opacity:0}
.trade-anim-row{display:flex;gap:8px;justify-content:center}
.trade-anim-card{width:min(22vw,110px);animation:trade-out 2.1s cubic-bezier(.5,0,.3,1) both;animation-delay:calc(var(--i) * 70ms)}
.trade-anim-row.is-get .trade-anim-card{animation-name:trade-in}
.trade-anim-mark{font-size:40px;color:#ffd76a;animation:trade-spin 2.1s ease-in-out both;text-shadow:0 0 18px #ffd76a}
.trade-anim-title{font:800 italic clamp(24px,6vw,40px)/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;color:#f3f0ea;margin:6px 0 0;animation:trade-title 2.1s ease-out both}
@keyframes trade-out{0%{transform:translateY(0);opacity:1}35%{transform:translateY(0)}75%,100%{transform:translateY(70vh) rotate(-12deg);opacity:0}}
@keyframes trade-in{0%,30%{transform:translateY(-70vh) rotate(10deg);opacity:0}70%{transform:translateY(8px);opacity:1}82%,100%{transform:none;opacity:1}}
@keyframes trade-spin{0%{transform:rotate(0) scale(.6);opacity:0}30%{opacity:1;transform:scale(1)}70%,100%{transform:rotate(360deg) scale(1)}}
@keyframes trade-title{0%,55%{opacity:0;transform:translateY(10px)}75%,100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.trade-anim-card,.trade-anim-mark,.trade-anim-title{animation:none}}
/* v0.67 pending offers: cards missing from the receiver's collection */
.trade-mini-wrap{display:grid;gap:4px;min-width:0}.trade-mini-wrap .trade-new{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* v0.68 styled confirmation dialog */
.d9-confirm{z-index:95;place-items:center}
.d9-confirm .d9-sheet-panel{width:min(100%,440px);animation:zoom-in .16s ease-out}
.d9-confirm p{color:#d9d4cc;line-height:1.5;margin:0 0 14px}
.d9-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.d9-confirm-actions .btn{min-height:44px}
.btn.danger{background:#ff665c;border-color:#ff665c;color:#1a0806}
.confirm-trade{margin:0 0 14px;padding:10px;border:1px solid #ffffff12;border-radius:12px;background:#0f1216}
.trade-sides{align-items:start!important}.trade-sides .trade-arrow{align-self:center}
/* v0.70 daily trade limit */
.trade-quota{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 14px;padding:10px 14px;border:1px solid #2b3036;border-radius:12px;background:#14171b;font:700 13px/1.2 Barlow,Arial,sans-serif}
.trade-quota>span{color:#a7afb6;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.trade-quota-dots{display:flex;gap:5px}.trade-quota-dots i{width:14px;height:14px;border-radius:50%;border:2px solid #e4b96a88;background:transparent}
.trade-quota-dots i.on{background:#e4b96a;border-color:#e4b96a}
.trade-quota strong{font-size:16px;color:#f3f0ea}.trade-quota small{color:#a7afb6;font-weight:600}
.trade-quota.is-full{border-color:#ff665c66}.trade-quota.is-full small{color:#ff8a80}
.trade-their-quota{color:#ff8a80}
/* v0.71 board: one clean owner ring (orange = you, blue = rival) around the rarity frame,
   no clipped square outline and no extra bottom bar. */
.board .cell.occupied{overflow:visible!important;padding:5px!important;border:0!important;background:none!important}
.pl-card.pl-board.owned{--own-from:var(--rival,#62a7ff)}
.pl-card.pl-board.enemy{--own-from:var(--you,#ff6b3d)}
.pl-card.pl-board.owned,.pl-card.pl-board.enemy{box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 6px 14px #000a}
.pl-card.pl-board.owned::after,.pl-card.pl-board.enemy::after{display:none}
.pl-card.pl-board.synergy-brand{box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 0 22px #5b8fe2aa,0 6px 14px #000a}
.pl-card.pl-board.synergy-country{box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 0 22px #59b77baa,0 6px 14px #000a}
/* v0.71 slower, sequenced moves: the card lands, then each captured card flips in turn,
   showing the old owner's colour until mid-flip. */
.board .cell.just-played .pl-card.pl-board{animation:d9-land .7s cubic-bezier(.2,.9,.25,1.15) both}
.board .cell.just-played:after{inset:0;border-radius:12px;border-width:3px;animation:impactRing .9s ease-out}
.board .cell.just-captured .pl-card.pl-board{animation:d9-capture 1s cubic-bezier(.45,0,.25,1) both;animation-delay:calc(.65s + var(--cap-i,0) * .3s)}
.board .cell.just-captured:after{border-radius:12px;font-size:clamp(9px,1.4vw,13px);animation:captureFlash 1.2s ease both;animation-delay:calc(.75s + var(--cap-i,0) * .3s)}
@keyframes d9-land{0%{transform:translateY(-44px) scale(1.16);opacity:0}55%{transform:translateY(4px) scale(.98);opacity:1}78%{transform:translateY(-2px)}100%{transform:none;opacity:1}}
@keyframes d9-capture{
  0%{transform:perspective(700px) rotateY(0);box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own-from),0 6px 14px #000a;filter:brightness(1)}
  49%{transform:perspective(700px) rotateY(90deg) scale(.94);box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own-from),0 6px 14px #000a;filter:brightness(1.7)}
  51%{transform:perspective(700px) rotateY(90deg) scale(.94);box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 0 26px var(--own);filter:brightness(1.7)}
  80%{box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 0 26px var(--own)}
  100%{transform:none;box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px var(--own),0 6px 14px #000a;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.board .cell.just-played .pl-card.pl-board,.board .cell.just-captured .pl-card.pl-board,.board .cell.just-captured:after{animation:none!important}}
/* v0.72 booster reveal: one card at a time, full size, then a summary */
.reveal1{--glow:#f56a40;position:fixed;inset:0;z-index:70;display:grid;grid-template-rows:auto 1fr auto;gap:10px;padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));
  background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--glow) 26%,#0b0c0d) 0,#050506 62%);color:#f3f0ea;overflow:hidden;animation:zoom-in .2s ease-out}
.reveal1.rarity-c{--glow:#9aa1a7}.reveal1.rarity-nc{--glow:#7ad98b}.reveal1.rarity-r{--glow:#69a4ff}.reveal1.rarity-sr{--glow:#b181ff}.reveal1.rarity-ur{--glow:#f2d354}.reveal1.rarity-ss{--glow:#ff665c}
.reveal1-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.reveal1-skip{justify-self:end;background:none;border:0;color:#a7afb6;font:700 13px/1 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:8px}
.reveal1-dots{display:flex;gap:6px}.reveal1-dots i{width:10px;height:10px;border-radius:50%;border:2px solid #ffffff44}
.reveal1-dots i.done{background:var(--glow);border-color:var(--glow)}.reveal1-dots i.now{transform:scale(1.25);border-color:#fff}
.reveal1-stage{display:grid;place-items:center;min-height:0}
.reveal1-card{position:relative;width:min(80vw,380px,calc((100dvh - 190px) * 5 / 7));padding:0;border:0;background:none;cursor:pointer;perspective:1400px;animation:reveal1-in .45s cubic-bezier(.2,.9,.25,1.1) both}
.reveal1-flip{position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.3,.8,.25,1);transform:rotateY(180deg)}
.reveal1-card.is-flipped .reveal1-flip{transform:rotateY(0)}
.reveal1-face{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.reveal1-front .pl-card{width:100%}
.reveal1-back{position:absolute;inset:0;transform:rotateY(180deg)}
.reveal1-back .card-back{height:100%;aspect-ratio:auto;border-color:var(--glow);box-shadow:0 22px 40px #000a,0 0 30px color-mix(in srgb,var(--glow) 35%,transparent)}
.reveal1-card:not(.is-flipped):hover .reveal1-flip{transform:rotateY(180deg) translateY(-6px)}
.reveal1.is-rare .reveal1-card.is-flipped .reveal1-front{animation:reveal1-rare 1.6s ease-out .55s both}
.reveal1-badge{position:absolute;left:50%;top:-14px;transform:translateX(-50%);z-index:4;white-space:nowrap;padding:7px 16px;border-radius:999px;font:900 italic 18px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.05em;text-transform:uppercase}
.reveal1-badge.is-new{color:#0b1a10;background:#6fcf8e;box-shadow:0 0 0 3px #0b1a10,0 0 24px #6fcf8ecc;animation:reveal1-pop .55s cubic-bezier(.2,1.6,.4,1) both}
.reveal1-badge.is-dup{color:#d9d4cc;background:#1c2024;border:1px solid #ffffff22;font-size:13px;font-style:normal;animation:reveal1-fade .3s ease-out both}
.reveal1-burst{position:absolute;inset:-30%;z-index:-1;pointer-events:none;opacity:0;border-radius:50%;
  background:repeating-conic-gradient(from 0deg,#6fcf8e55 0 6deg,transparent 6deg 22deg);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%)}
.reveal1-card.is-new .reveal1-burst{animation:reveal1-burst 1.6s ease-out both}
.reveal1-hint{text-align:center;color:#a7afb6;margin:0;font-size:14px}
@keyframes reveal1-in{from{transform:translateX(60px) rotate(4deg);opacity:0}to{transform:none;opacity:1}}
@keyframes reveal1-pop{0%{transform:translateX(-50%) scale(.3) rotate(-8deg);opacity:0}70%{transform:translateX(-50%) scale(1.12) rotate(2deg);opacity:1}100%{transform:translateX(-50%) scale(1)}}
@keyframes reveal1-fade{from{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%)}}
@keyframes reveal1-burst{0%{opacity:0;transform:scale(.6) rotate(0)}25%{opacity:1}100%{opacity:0;transform:scale(1.3) rotate(40deg)}}
@keyframes reveal1-rare{0%{filter:drop-shadow(0 0 0 var(--glow))}35%{filter:drop-shadow(0 0 34px var(--glow))}100%{filter:drop-shadow(0 0 10px var(--glow))}}
.reveal1.is-summary{display:grid;place-items:center;grid-template-rows:1fr;overflow:auto}
.reveal1-summary{width:min(100%,980px);display:grid;gap:16px}
.reveal1-sum-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.reveal1-sum-head h2{font:800 italic clamp(28px,6vw,44px)/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;margin:6px 0}
.reveal1-sum-head p{margin:0;color:#a7afb6}.reveal1-new-count{color:#6fcf8e}
.reveal1-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.reveal1-mini{position:relative;padding:0;border:0;background:none;cursor:zoom-in;animation:reveal1-in .4s ease-out both;animation-delay:calc(var(--i) * 70ms)}
.reveal1-mini .pl-card{width:100%}
.reveal1-mini.is-new .pl-card{box-shadow:0 0 0 2px var(--pl-r),0 0 0 5px #6fcf8e,0 0 20px #6fcf8e88}
.reveal1-mini-badge{position:absolute;left:50%;top:-9px;transform:translateX(-50%);z-index:3;padding:3px 9px;border-radius:999px;background:#6fcf8e;color:#0b1a10;font:900 11px/1.2 Barlow,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.reveal1-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:760px){.reveal1-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.reveal1-mini{grid-column:span 2}.reveal1-mini:nth-child(4){grid-column:2/span 2}
  .reveal1-actions{display:grid;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.reveal1-card,.reveal1-badge,.reveal1-burst,.reveal1-mini,.reveal1 .reveal1-front{animation:none!important}.reveal1-flip{transition:none}}
.reveal1-mini{padding-top:13px}.reveal1-mini-badge{top:0}
.reveal1-card{margin-top:14px}
.reveal1-card{margin-top:30px}.reveal1-badge{top:-38px}
/* v0.73 mystery pick: cards missing from your collection */
.wonder-new-count{justify-self:start;padding:4px 10px;border-radius:999px;background:#6fcf8e;color:#0b1a10;font:800 12px/1.2 Barlow,Arial,sans-serif;letter-spacing:.04em}
.wonder-new-count.is-none{background:#1c2024;color:#8b939a;border:1px solid #ffffff14}
.wonder-mini{position:relative}
.wonder-mini.is-new .pl-card{box-shadow:0 0 0 2px #6fcf8e,0 0 10px #6fcf8e88}
.wonder-new-dot{position:absolute;left:50%;top:-7px;transform:translateX(-50%);z-index:3;padding:1px 5px;border-radius:999px;background:#6fcf8e;color:#0b1a10;font:900 8px/1.3 Barlow,Arial,sans-serif;letter-spacing:.08em}
.wonder-cards{padding-top:7px}
.pack-card.is-new-win{position:relative}
.wonder-win-new{position:absolute;left:50%;top:-12px;transform:translateX(-50%);z-index:4;padding:5px 12px;border-radius:999px;background:#6fcf8e;color:#0b1a10;font:900 italic 14px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;box-shadow:0 0 18px #6fcf8ecc;animation:reveal1-pop .55s cubic-bezier(.2,1.6,.4,1) .55s both}
/* v0.74 instant feedback on "Manche suivante"; no double-tap delay on touch screens */
button,.btn,a.btn{touch-action:manipulation}
#next.is-loading,#next-mobile.is-loading{opacity:.75;cursor:progress;position:relative}
#next.is-loading::after,#next-mobile.is-loading::after{content:'';display:inline-block;width:14px;height:14px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}
/* v0.75 end of round / end of duel */
.endfx{--tone:#ffd76a;position:fixed;inset:0;z-index:85;display:grid;place-items:center;padding:20px;cursor:pointer;
  background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--tone) 22%,transparent),#000c 70%);animation:endfx-bg .35s ease-out both}
.endfx.is-win{--tone:#ff6b3d}.endfx.is-loss{--tone:#62a7ff}.endfx.is-draw{--tone:#c9c4bb}
.endfx.is-out{animation:endfx-out .3s ease-in both}
.endfx-panel{display:grid;justify-items:center;gap:10px;text-align:center;padding:26px 30px;min-width:min(88vw,360px);border-radius:20px;background:#0f1216f2;border:2px solid var(--tone);
  box-shadow:0 0 0 1px #000,0 0 50px color-mix(in srgb,var(--tone) 45%,transparent),0 24px 60px #000c;animation:endfx-in .6s cubic-bezier(.2,1.4,.4,1) both}
.endfx-title{margin:0;font:900 italic clamp(40px,12vw,76px)/.9 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;color:var(--tone);letter-spacing:-.01em;
  text-shadow:0 0 24px color-mix(in srgb,var(--tone) 60%,transparent);animation:endfx-title .8s cubic-bezier(.2,1.5,.4,1) .15s both}
.endfx-sub{margin:0;color:#d9d4cc;font-size:15px}
.endfx-score{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin-top:6px}
.endfx-score span{display:block;font:800 11px/1 Barlow,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#a7afb6;margin-bottom:6px}
.endfx-score b{font:900 28px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#f3f0ea}
.endfx-dots{display:flex;gap:5px;justify-content:center}.endfx-dots i{width:13px;height:13px;border-radius:50%;border:2px solid #ffffff33}
.endfx-dots i.on{animation:endfx-dot .4s cubic-bezier(.2,1.6,.4,1) .55s both}.endfx-dots i.on.you{background:#ff6b3d;border-color:#ff6b3d}.endfx-dots i.on.rival{background:#62a7ff;border-color:#62a7ff}
.endfx small{color:#8b939a;font-size:12px;margin-top:4px}
.endfx.is-final .endfx-panel{padding:34px 34px 26px}
.endfx.is-final.is-loss .endfx-panel{animation:endfx-in .6s ease-out both,endfx-shake .5s ease-in-out .6s}
.endfx-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.endfx-confetti i{position:absolute;top:-20px;left:calc(var(--x) * 1%);width:9px;height:14px;background:var(--c);border-radius:2px;transform:rotate(var(--r));animation:endfx-fall 2.6s cubic-bezier(.25,.6,.4,1) var(--d) both}
@keyframes endfx-bg{from{opacity:0}to{opacity:1}}
@keyframes endfx-out{to{opacity:0}}
@keyframes endfx-in{0%{transform:scale(.6) translateY(30px);opacity:0}100%{transform:none;opacity:1}}
@keyframes endfx-title{0%{transform:scale(1.8);opacity:0;filter:blur(6px)}100%{transform:none;opacity:1;filter:none}}
@keyframes endfx-dot{from{transform:scale(0)}to{transform:none}}
@keyframes endfx-shake{0%,100%{transform:none}20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
@keyframes endfx-fall{0%{transform:translateY(0) rotate(var(--r));opacity:1}100%{transform:translateY(110vh) rotate(calc(var(--r) + 540deg));opacity:.9}}
@media(prefers-reduced-motion:reduce){.endfx,.endfx *{animation:none!important}}
.endfx:not(.is-final){pointer-events:none;cursor:default}
.endfx-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:8px}.endfx-actions .btn{min-height:44px}
/* v0.76 development environment ribbon */
.env-ribbon{position:sticky;top:0;z-index:40;padding:5px 12px;text-align:center;background:repeating-linear-gradient(-45deg,#ffd76a 0 14px,#f5c542 14px 28px);color:#1a1204;font:900 12px/1.2 Barlow,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
body.env-dev .main-nav{top:24px}
.admin-env{display:grid;gap:4px;font:700 11px/1 Barlow,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#a7afb6}
.admin-env .input{width:auto;text-transform:none;letter-spacing:.01em;padding:8px 10px}
.admin-env.is-dev .input{border-color:#ffd76a;color:#ffd76a}
