/* Canonical card geometry shared across every view and size. */
.player-card{--ink:#eee;--metal:var(--rarity);font-family:Impact,'Arial Narrow',sans-serif;max-width:370px;color:#efedf1;container-type:inline-size}.player-card[data-size="gameplay"]{max-width:260px}.player-card[data-size="lineup"]{max-width:175px}.player-card[data-size="collection"]{max-width:250px}.player-card .card-flip{aspect-ratio: .765;perspective:1200px;border-radius:0}.player-card .card-face{border-radius:0;padding:4.2cqw;clip-path:polygon(3% 0,97% 0,100% 2.5%,100% 97.5%,97% 100%,3% 100%,0 97.5%,0 2.5%);background:repeating-linear-gradient(133deg,#ffffff24 0 1px,transparent 1px 7px),linear-gradient(125deg,#fff 0%,var(--rarity) 7%,#18151e 13%,var(--rarity) 20%,#e4ddf0 29%,var(--rarity) 43%,#15121b 59%,var(--rarity) 71%,#fff 83%,var(--rarity) 90%);box-shadow:inset 0 0 0 1px #fff,inset 0 0 0 3px var(--rarity);overflow:hidden}.player-card .card-face:after{content:'';position:absolute;inset:2.1cqw;clip-path:polygon(4% 0,96% 0,100% 3%,100% 97%,96% 100%,4% 100%,0 97%,0 3%);border:1px solid #ece1ff88;pointer-events:none;z-index:6}.player-card .card-front{display:block}.player-card .player-artwork{position:absolute;inset:4.2cqw;min-height:0;border-radius:0;border:2px solid #20192b;clip-path:polygon(9% 0,96% 0,100% 3%,100% 92%,91% 100%,3% 100%,0 96%,0 9%);background:#141824}.player-card .artwork-placeholder{inset:0}.player-card .batter-art{height:100%;width:100%;object-fit:cover}.player-card .player-image{object-position:center center}.player-card .card-rarity{display:none}.player-card .on-base-badge{top:3.2cqw;right:3.2cqw;width:26cqw;height:26cqw;border-radius:50%;z-index:7;background:radial-gradient(circle at 38% 30%,#231d2c,#040308 75%);border:2px solid var(--rarity);outline:1px solid #f5ddff;outline-offset:2px;box-shadow:0 0 0 4px #2b2033,0 0 14px #000a;color:#f1eef3}.player-card .on-base-label{font-size:4.2cqw;letter-spacing:.3px;margin-top:0}.player-card .on-base-number{font-family:Impact,'Arial Narrow',sans-serif;font-size:14cqw;line-height:1.04;letter-spacing:0;background:linear-gradient(#fff,#c9c7cc);background-clip:text;color:transparent;filter:drop-shadow(0 1px #fff)}.player-card .card-identity{position:absolute;left:5cqw;right:9cqw;bottom:4cqw;min-height:0;height:24cqw;padding:3.5cqw 12cqw 2cqw 7cqw;background:linear-gradient(120deg,#19151f,#030306);border:2px solid var(--rarity);outline:1px solid #dbcaef;clip-path:polygon(14% 0,92% 0,100% 35%,85% 100%,5% 100%,0 78%,8% 42%);border-radius:0;z-index:4;box-shadow:inset 0 0 0 4px #292132}.player-card .card-player-name{margin:0;line-height:1;font-family:Impact,'Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.6px;font-weight:900;text-align:center;color:#fff;text-wrap:nowrap;overflow:visible}.player-card .card-first-name{display:block;font-size:6cqw;line-height:1.1}.player-card .card-last-name{display:block;font-size:10cqw;line-height:1.1;transform:scaleX(.87);transform-origin:center;background:linear-gradient(#fff 35%,#c5c2c8 90%);background-clip:text;color:transparent}.player-card .card-front-footer{position:static;margin:0}.player-card .card-edition{display:none}.player-card .card-position{position:absolute;right:-2cqw;bottom:-.2cqw;width:17cqw;height:12cqw;display:grid;place-items:center;background:#07040d;border:2px solid var(--rarity);font-size:8cqw;font-style:italic;color:white;clip-path:polygon(30% 0,100% 0,100% 72%,77% 100%,0 100%);padding-left:3cqw}.player-card .card-back{padding:8cqw 6cqw 5cqw;display:flex;flex-direction:column;gap:0}.player-card .card-back:before{inset:3.7cqw;border-radius:0;background:repeating-linear-gradient(132deg,#ffffff08 0 1px,transparent 1px 4px),linear-gradient(135deg,#08080b,#18161b,#030306);border:1px solid #d1b4ed;clip-path:polygon(6% 0,94% 0,100% 5%,100% 95%,94% 100%,6% 100%,0 95%,0 5%)}.player-card .card-position-name{display:block;font-size:7.3cqw;line-height:1.1;padding:2.5cqw 1cqw;margin:0 5cqw 4.5cqw;background:linear-gradient(#1c1824,#040305);border:2px solid var(--rarity);clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%);letter-spacing:.4px;color:white;white-space:nowrap}.player-card .card-ratings{display:flex;border:2px solid var(--rarity);margin:0 0 3.5cqw;padding:3cqw 3cqw;gap:2cqw;background:linear-gradient(#141216,#030306);clip-path:polygon(3% 0,97% 0,100% 15%,100% 85%,97% 100%,3% 100%,0 85%,0 15%)}.player-card .card-rating{gap:1cqw}.player-card .card-rating span{font-size:4.2cqw;letter-spacing:0;color:white}.player-card .card-rating strong{font-size:7cqw;color:#9fe8ab}.player-card .card-rating:nth-child(2){border-left:1px solid #aaa;padding-left:2.5cqw}.player-card .card-rating:nth-child(2) strong{color:#66cafa}.player-card .chart-heading{font-size:6cqw;letter-spacing:.4px;margin:0;padding:2cqw 0;background:linear-gradient(110deg,var(--rarity),#e8ddee 45%,var(--rarity));color:#08080b;border:1px solid #cab5de;border-radius:0;text-shadow:0 1px #fff9}.player-card .hitting-chart{font-size:4.5cqw;width:100%;border-collapse:separate;border-spacing:1cqw;margin-top:1cqw;table-layout:fixed}.player-card .hitting-chart thead{display:none}.player-card .hitting-chart td{height:8.2cqw;line-height:1;padding:1.5cqw 1cqw;border:1px solid #bab6bf;text-align:center;color:#f0edf2;background:linear-gradient(115deg,#09090c,#26242a);font-weight:500;letter-spacing:.2px}.player-card .hitting-chart td:first-child{width:41%;color:#f0edf2}.player-card .hitting-chart td:last-child{color:#030306!important;background:repeating-linear-gradient(135deg,#ffffff30 0 1px,transparent 1px 5px),linear-gradient(125deg,#f6f5f6,#bbb8bf);font-weight:700}.player-card .card-back-footer{display:none}.player-card .game-on-base{display:none}.player-card .flip-hint{font-family:system-ui,sans-serif}.player-card .card-rotor{transition:transform 650ms cubic-bezier(.2,.7,.25,1)}@media(prefers-reduced-motion:reduce){.player-card .card-rotor{transition:none}}
.player-card .card-front-footer{position:absolute;right:3.5cqw;bottom:3.5cqw;width:18cqw;height:13cqw;z-index:8}.player-card .card-position{right:0;bottom:0;width:100%;height:100%}.player-card .card-identity{right:10cqw;padding-right:9cqw}.player-card[data-size="full"]{max-width:470px}.player-card .card-face{border:1px solid #edceff}.player-card .card-position-name{border-color:var(--rarity);box-shadow:inset 0 0 0 1px #b494ca}
/* Row-count driven sizing: the card frame never changes. */
.player-card .hitting-chart{font-size:calc(4.5cqw * var(--chart-scale,1));border-spacing:calc(1cqw * var(--chart-scale,1));flex-shrink:0}.player-card .hitting-chart td{height:calc(8.2cqw * var(--chart-scale,1));padding:calc(1.5cqw * var(--chart-scale,1)) .8cqw;white-space:nowrap}.player-card--dense-chart .chart-heading{padding:1.7cqw 0;margin-bottom:.3cqw}.player-card--dense-chart .hitting-chart{margin-top:.5cqw}.player-card .card-position-name,.player-card .card-ratings,.player-card .chart-heading{flex-shrink:0}
/* Account section styling must never add margins inside the reusable card. */
.player-card .card-face{margin:0}
/* Crisp live typography: effects stay on the frame, never on gameplay lettering. */
.player-card :is(.on-base-label,.on-base-number,.card-player-name,.card-first-name,.card-last-name,.card-position,.card-position-name,.card-rating span,.card-rating strong,.chart-heading,.hitting-chart td){text-shadow:none;filter:none;opacity:1;font-family:'Arial Narrow',Impact,sans-serif;font-weight:800}
.player-card :is(.on-base-number,.card-first-name,.card-last-name){background:none;background-clip:border-box;-webkit-text-fill-color:#fff;color:#fff}
.player-card .card-last-name{transform:none;font-size:8.7cqw;letter-spacing:.2px;font-weight:900}
.player-card .on-base-label{font-size:max(8.5px,4.2cqw);letter-spacing:0;color:#fff}
.player-card .on-base-number{font-weight:900}
.player-card .card-position-name{color:#fff;letter-spacing:0}
.player-card .card-rating span{font-size:max(8.5px,4.2cqw);color:#fff}
.player-card .card-rating strong{font-weight:900}
.player-card .chart-heading{color:#080808;text-shadow:none;letter-spacing:0}
.player-card .hitting-chart{font-size:clamp(9.5px,calc(4.9cqw * var(--chart-font-scale,1)),25px)}
.player-card .hitting-chart td{padding:calc(1cqw * var(--chart-scale,1)) .6cqw;font-weight:900;letter-spacing:0;line-height:1.05}
.player-card .hitting-chart td:first-child{color:#fff;font-weight:800}
.player-card .hitting-chart td:last-child{color:#080808!important;background:linear-gradient(125deg,#f6f5f6,#bbb8bf);font-weight:900}
/* Shared supplied rarity artwork: portraits / decorative PNG / live text. */
.player-card .card-face{border:0;clip-path:none;background:none;box-shadow:none;padding:0;overflow:hidden}
.player-card .card-face:after{display:none}
.player-card .rarity-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:2;pointer-events:none;user-select:none}
.player-card .player-artwork{inset:0;border:0;clip-path:none;background:#141824;z-index:0}
.player-card .on-base-badge{top:3.5cqw;right:3.5cqw;width:28cqw;height:28cqw;background:none;border:0;outline:0;box-shadow:none;z-index:3}
.player-card .on-base-label{font-size:max(8px,3.3cqw)}
.player-card .on-base-number{font-size:13cqw;line-height:1}
.player-card .card-identity{left:8cqw;right:19cqw;bottom:9cqw;height:20cqw;padding:2cqw 1cqw;background:none;border:0;outline:0;box-shadow:none;clip-path:none;display:flex;align-items:center;justify-content:center;z-index:3}
.player-card .card-player-name{width:100%;text-wrap:wrap;overflow-wrap:anywhere;line-height:1.05;letter-spacing:0}
.player-card .card-first-name{font-size:4.8cqw;line-height:1.05}
.player-card .card-last-name{font-size:6.5cqw;line-height:1.05;letter-spacing:0}
.player-card .card-front-footer{right:2cqw;bottom:2cqw;width:20cqw;height:19cqw;z-index:3}
.player-card .card-position{padding:0;background:none;border:0;clip-path:none;font-size:6cqw}
.player-card .card-back{padding:13cqw 13cqw 12cqw;background:#090c13;gap:0}
.player-card .card-back:before{display:none}
/* Retain the supplied outer border in its original orientation; remove front-only interior decoration. */
.player-card .card-back .rarity-frame{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,11% 10%,11% 90%,89% 90%,89% 10%,11% 10%)}
.player-card .card-back>*:not(.rarity-frame){position:relative;z-index:3}
.player-card .card-position-name{font-size:5.9cqw;line-height:1.08;padding:0;margin:0;text-wrap:wrap;white-space:normal;overflow-wrap:anywhere;background:none;border:0;box-shadow:none;clip-path:none;color:#fff;text-transform:uppercase}
.player-card .card-archetype{color:var(--archetype-color);font:700 max(8px,3.8cqw)/1.2 system-ui,sans-serif;text-align:center;margin:1.5cqw 0 3cqw;flex-shrink:0}
.player-card .card-ratings{margin-bottom:2cqw;padding:2cqw 1cqw;gap:1cqw;clip-path:none;border-width:1px}
.player-card .card-rating span{font-size:max(8px,3.7cqw)}
.player-card .card-rating strong{font-size:6cqw}
.player-card .card-rating:nth-child(2){padding-left:1cqw}
.player-card .chart-heading{font-size:5cqw;padding:1.6cqw 0}
.player-card .hitting-chart{font-size:clamp(9px,calc(4.5cqw * var(--chart-font-scale,1)),23px);border-spacing:calc(.7cqw * var(--chart-scale,1))}
.player-card .hitting-chart td{height:calc(8cqw * var(--chart-scale,1));padding:calc(.8cqw * var(--chart-scale,1)) .5cqw}
/* Approved front design: unchanged 3:4 artwork plus Rajdhani Bold live text. */
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:700;font-display:swap;src:url('/_assets/e94fe19c30cbc1a54c04/card-preview-fonts/LDI2apCSOBg7S-QT7pa8FsOs.ttf') format('truetype')}
.player-card .card-flip{aspect-ratio:3/4}
.player-card .approved-card-front{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.player-card .card-front :is(.on-base-number,.card-player-name,.card-position){font-family:'Rajdhani',sans-serif;font-weight:700;color:#fff;line-height:1;letter-spacing:0;text-shadow:0 1px 2px #000}
/* Optical center: 1% right and .8% up from the comparison-page anchor. */
.player-card .on-base-badge{left:74%;right:auto;top:8.95%;width:18%;height:10.5%;display:flex;align-items:center;justify-content:center;padding:0;background:none;border:0;outline:0;box-shadow:none}
.player-card .on-base-number{font-size:14cqw;letter-spacing:0;line-height:1;margin:0;display:block}
.player-card .card-identity{left:8%;right:auto;top:88%;bottom:auto;width:64%;height:5%;padding:0;border:0;background:none;clip-path:none;display:flex;align-items:center;justify-content:center}
.player-card .card-player-name{font-size:var(--front-name-size,5.8cqw);line-height:1;margin:0;text-wrap:nowrap;white-space:nowrap;text-transform:uppercase;overflow-wrap:normal}
.player-card .card-front-footer{left:80%;right:auto;top:89%;bottom:auto;width:13%;height:5%}
.player-card .card-position{font-size:5cqw;line-height:1;font-style:normal;display:flex;align-items:center;justify-content:center;right:0;bottom:0;width:100%;height:100%;padding:0}

/* Approved clean back shared by all card surfaces. */
.clean-card-back,.clean-card-back *{box-sizing:border-box}.clean-card-back{width:100%;aspect-ratio:3/4;container-type:inline-size;display:grid;grid-template-rows:18% 74% 8%;border:1px solid #344357;background:#101925;color:#fff;font-family:'Rajdhani',sans-serif;font-weight:700;overflow:hidden}.clean-back-header{background:#192638;padding:2.5cqw 3cqw;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;border-bottom:1px solid #344357}.clean-back-name{font:700 var(--name-size,5.6cqw)/1.04 'Rajdhani',sans-serif;text-align:center;text-transform:uppercase;overflow-wrap:anywhere;margin:0}.clean-back-meta{font:600 3.8cqw/1.1 'Rajdhani',sans-serif;color:#a8b8cc;text-align:center;margin:1cqw 0 0}.clean-back-rarity{font-weight:700}.clean-back-chart{margin:0;width:100%;height:100%;min-height:0;display:grid;grid-template-rows:6cqw repeat(var(--rows),minmax(0,1fr));border-collapse:collapse;background:#131f2e}.clean-back-chart thead,.clean-back-chart tbody{display:contents}.clean-back-chart tr{display:grid;grid-template-columns:1fr 1fr;min-height:0;border-bottom:1px solid #344357}.clean-back-chart th,.clean-back-chart td{display:flex;align-items:center;min-width:0;white-space:nowrap;padding:0 5cqw}.clean-back-chart th{font:700 3.5cqw/1 'Rajdhani',sans-serif;letter-spacing:.5px;color:#a8b8cc}.clean-back-chart td{font:700 7.5cqw/1 'Rajdhani',sans-serif;color:#fff}.clean-back-chart th:last-child,.clean-back-chart td:last-child{justify-content:flex-end;text-align:right;font-variant-numeric:tabular-nums}.clean-back-footer{display:flex;justify-content:space-between;align-items:center;padding:0 3cqw;background:#101925;min-height:0}.clean-footer-stat{display:flex;gap:1.5cqw;align-items:baseline;white-space:nowrap;font:600 3.5cqw/1 'Rajdhani',sans-serif;color:#a8b8cc}.clean-footer-stat strong{font-size:5cqw;font-weight:700;color:white}.clean-footer-stat,.clean-footer-stat strong{color:var(--stat-rarity,#d3dce7)}
.clean-back-chart{width:74%;justify-self:center}.clean-back-chart th,.clean-back-chart td{padding-left:3cqw;padding-right:3cqw}

.player-card .card-back.clean-card-back{padding:0;display:grid;grid-template-rows:18% 74% 8%;border:1px solid #344357;background:#101925;box-shadow:none;clip-path:none;gap:0}

/* Universal back: supplied artwork is never tinted, cropped, or stretched. */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('/_assets/e94fe19c30cbc1a54c04/card-preview-fonts/1Ptgg87LROyAm0K0.ttf') format('truetype')}
.clean-card-back.universal-card-back,.player-card .card-back.clean-card-back.universal-card-back{display:block;position:relative;width:100%;aspect-ratio:1086/1448;padding:0;border:0;background:transparent;box-shadow:none;clip-path:none;overflow:visible;border-radius:0}
.player-card .card-back.clean-card-back.universal-card-back{position:absolute;inset:0;height:100%}
.universal-card-back:before,.universal-card-back:after{display:none!important}
.universal-card-back svg{display:block;width:100%;height:100%;overflow:visible;font-family:'Anton',Impact,'Arial Narrow',sans-serif;font-weight:400;fill:#fff;letter-spacing:1px}
.universal-card-back .universal-back-label{fill:#b7cce5;letter-spacing:3px}
.universal-card-back .universal-back-accent{fill:var(--back-accent,#fff);letter-spacing:1px}
.universal-card-back .universal-back-meta{letter-spacing:.5px}
.universal-card-back .universal-back-name{letter-spacing:0}
.universal-back-row:is(.tutorial-hr-highlight,.rolled-range) text{fill:#ffe18a;paint-order:stroke;stroke:#35244b;stroke-width:3px}
