/* Player surfaces share the site's type, navigation and color tokens. */
.player-nav{position:relative;font:14px var(--body);flex-shrink:0}.player-signin{display:flex;align-items:center;min-height:44px;border:1px solid var(--ac);padding:0 14px;color:var(--ac);text-decoration:none}.player-menu summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;min-height:40px}.player-avatar-mini{display:grid;place-items:center;width:30px;height:30px;background:var(--ac-soft);color:var(--ac);border:1px solid var(--ac)}.player-menu nav{position:absolute;right:0;top:44px;min-width:215px;background:var(--bg2);border:1px solid var(--soft);box-shadow:0 15px 45px #0007;z-index:110;padding:8px}.player-menu nav a,.player-menu nav button{display:block;width:100%;padding:13px 12px;text-align:left;border:0;text-decoration:none;background:transparent;color:var(--ink);font:13px var(--mono)}.player-menu nav a:hover,.player-menu nav button:hover{background:var(--bg3)}
/* Signed in: Add cards sits beside the account menu on every page. */
.player-nav:has(.player-add){display:flex;align-items:center;gap:10px}.player-add{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;background:transparent;color:var(--ink);border:1px solid var(--ink);font:600 15px var(--body);text-decoration:none;white-space:nowrap}.player-add:hover{background:var(--ac-soft);color:var(--ink);text-decoration:none}.player-add>span[aria-hidden]{font-size:20px;line-height:1;margin-top:-2px}.player-add[aria-current=page]{background:var(--ac);color:var(--ac-ink)}.player-add:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
@media(max-width:700px){.player-add-more{display:none}.player-add{padding:0 11px}}
.player-page{margin:36px auto 80px;max-width:1320px}.player-page:has(>.intro){display:grid;grid-template-columns:1fr minmax(300px,440px);gap:70px;padding:40px 0}.player-page .intro h1{font-size:clamp(54px,6vw,84px);line-height:1.03}.player-page .intro h1>span:not(.heading-slash),.player-page .accent{color:var(--ac)}.player-page .eyebrow,.player-kicker{font:500 14px/1.5 var(--body)}.player-page .lede{font-size:16px;max-width:470px;line-height:1.7;color:var(--muted)}.player-page .features>div{display:flex;gap:22px;border-top:1px solid var(--soft);padding:20px 0}.player-page .features{margin-top:36px;max-width:380px}.player-page .features b{flex:0 0 92px;color:var(--ink);font:600 15px/1.5 var(--body)}.player-page .signin{background:var(--bg2);padding:32px;border:1px solid var(--soft);align-self:center}.player-page .signin h2{font-size:42px}.player-page .provider{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;margin:12px 0;border:1px solid var(--soft);background:var(--bg);padding:15px;color:var(--ink);font:14px var(--body)}.player-page .provider svg{width:23px;height:23px}.player-page .provider.discord svg{width:24px;height:24px}.player-page .privacy,.player-page .small{font-size:13px;line-height:1.8;color:var(--muted)}.player-page .account{max-width:700px;margin:auto}.player-page .account h1{font-size:60px}.player-page .profile-form{display:grid;gap:22px;margin:30px 0}.player-page .profile-form label{display:grid;gap:8px}.player-page .profile-form label span{font-size:13px;color:var(--muted)}.player-page :is(input:not([type=radio]),select,textarea){width:100%;background:var(--bg2);border:1px solid var(--soft);padding:13px;color:var(--ink);font:14px var(--body);min-width:0}.player-page .primary{background:var(--ac);color:var(--ac-ink);border:1px solid var(--ac);padding:14px 20px;cursor:pointer}.player-page .text-button{padding:12px 0;border:0;background:none;color:var(--ac);text-decoration:underline;font:13px var(--body)}.player-page .connections{margin:40px 0;border-top:1px solid var(--soft);padding-top:25px}.player-page .connections h2{font-size:36px}.player-page .connection{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--soft)}.player-page .connected{color:var(--ac);font:13px var(--mono)}.player-back{font:13px var(--mono)}
.player-profile{--profile-ac:#6ee3dd;--profile-line:#353a40;--profile-bg:#131619;--profile-muted:#adb2bb;color:#f3f3ef;background:var(--profile-bg);border:1px solid var(--profile-line)}[data-accent=cyan]{--profile-ac:#6ee3dd}[data-accent=violet]{--profile-ac:#bfacff}[data-accent=rose]{--profile-ac:#ffa3bd}[data-accent=gold]{--profile-ac:#edd18e}[data-accent=green]{--profile-ac:#52f7a3}.player-profile .heading-slash{color:var(--profile-ac)}.player-profile .button{border-color:var(--profile-line);background:#1a2024;color:#f3f3ef;font:13px var(--mono);padding:13px 17px}.player-profile a{text-decoration:none}.player-profile a:hover{color:var(--profile-ac)}.player-profile .player-kicker{color:var(--profile-ac)}/* clip, not hidden: the focal-point shift pushes the art past the edge, and a hidden box can still be scrolled by focus or scrollIntoView. */
.player-hero{min-height:395px;position:relative;overflow:hidden;overflow:clip;border-bottom:1px solid var(--profile-line);isolation:isolate}.player-hero-art{position:absolute;inset:0 0 0 33%;z-index:-2}.player-hero-art img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}.player-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#131619 0%,#131619ed 30%,#13161999 57%,#13161922 100%),linear-gradient(0deg,#131619 1%,transparent 55%);z-index:-1}.player-hero-pattern{position:absolute;right:3%;top:12px;font:700 clamp(80px,12vw,170px)/.85 var(--head);letter-spacing:-5px;color:#3b49493b;transform:rotate(-7deg);z-index:-1}.player-hero-pattern span{color:#62c8c744}.player-hero-content{padding:35px 38px 26px;max-width:770px}.player-private{border:1px solid #61716e;color:#bdd2cf;padding:4px 8px;font-size:13px;margin-left:16px}.player-identity{display:flex;align-items:center;gap:21px;margin:26px 0 15px}.player-avatar{width:84px;height:84px;flex-shrink:0;border:2px solid var(--profile-ac);background:#243535;display:grid;place-items:center;font:700 50px var(--head);color:var(--profile-ac);overflow:hidden}.player-avatar img{width:100%;height:100%;object-fit:cover;object-position:center}.player-identity h1{font:700 clamp(40px,5vw,64px)/.93 var(--head);letter-spacing:-1px;margin:0 0 10px;overflow-wrap:anywhere}.player-handle{font:14px var(--body);color:#c1c6cd;margin:0}.player-bio{font-size:13px;line-height:1.75;max-width:480px;margin:0 0 19px;color:#c2c7ce;overflow-wrap:anywhere}.player-customize{display:inline-block}.player-legends{display:flex;gap:9px;margin-top:25px;flex-wrap:wrap}.player-legends a{display:flex;align-items:center;gap:10px;padding:7px 13px 7px 7px;border:1px solid #57605c66;background:#151b1ed9;min-width:135px;color:#f3f3ef}.player-legends img{width:31px;height:38px;object-fit:cover;object-position:center}.player-legends span{display:grid;gap:4px}.player-legends small{font:13px var(--body);color:#b8c2c7}.player-legends b{font:700 18px var(--head);text-transform:uppercase}.player-legends .player-pick-legend{font:13px var(--mono);padding:13px 16px;gap:22px}.player-totals{position:absolute;right:36px;bottom:32px;display:flex;gap:32px}.player-totals>div{display:grid;gap:7px}.player-totals b{font:700 36px var(--head);color:var(--profile-ac)}.player-totals span{font:13px var(--body);color:#c3c8cd}.player-tabs{display:flex;gap:30px;padding:0 38px;border-bottom:1px solid var(--profile-line);background:#171b1e}.player-tabs a{padding:22px 0 19px;color:#acb5bd;font:13px var(--mono);border-bottom:3px solid transparent}.player-tabs a[aria-current]{color:var(--profile-ac);border-bottom-color:var(--profile-ac)}.player-tabs a>span{font-size:13px;border:1px solid #414a50;padding:2px 5px;margin-left:5px}.player-tabs .player-settings-link{margin-left:auto;font-size:13px}.player-content{padding:32px 38px 35px}.player-section-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:22px}.player-section-head .player-kicker{font-size:13px;margin:0 0 7px}.player-section-head h2{font-size:36px;margin:0;letter-spacing:.1px}.player-section-head>a{font:13px var(--mono);color:#c2c9cc;flex-shrink:0}.player-section-gap{margin-top:40px}.player-empty{border:1px dashed #40494e;min-height:155px;padding:30px;text-align:center;background:linear-gradient(130deg,#1a242622,#1c1d2433)}.player-empty h3{font-size:26px;margin:10px 0}.player-empty p{color:#b2bac1;font-size:13px;line-height:1.8;max-width:500px;margin:10px auto 18px}.player-empty-mark{font:24px var(--mono);color:var(--profile-ac)}.player-empty .button{display:inline-block}.player-note{color:#b5bcc3;font-size:13px;line-height:1.85;margin-bottom:23px}.player-note a{color:var(--profile-ac);text-decoration:underline}.player-privacy-note{margin-top:30px;margin-bottom:0}.player-deck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.player-deck{border:1px solid var(--profile-line);background:#191e22;min-width:0}.player-deck-art{position:relative;aspect-ratio:2.25;overflow:hidden;background:linear-gradient(135deg,#263d3a,#22242e)}.player-deck-art img{width:100%;height:100%;object-fit:cover;object-position:center}.player-deck-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#101519bb)}.player-deck-art>span{position:absolute;bottom:12px;left:16px;z-index:1;color:#f1f6f4;font:13px var(--mono);letter-spacing:1px}.player-deck-info{padding:18px 17px 12px}.player-deck-info .player-kicker{font-size:13px;margin:0 0 8px}.player-deck-info h3{font-size:27px;color:#f3f3ef;margin:0 0 12px;overflow-wrap:anywhere}.player-deck-info>p:last-child{font:13px var(--mono);color:#acb6bd}.player-deck-edit{display:block;padding:12px 17px;border-top:1px solid #343c40;color:#bcd2d1;font:13px var(--mono)}.player-display{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.player-display img,.player-inventory-card>a>img{width:100%;height:auto;aspect-ratio:744/1039;object-fit:contain;border-radius:8px;background:#101214;transition:transform .2s}.player-display a:hover img{transform:translateY(-5px)}.player-display h3{font-size:19px;margin:13px 0 6px;color:#eef0ef}.player-display p{font:13px var(--mono);color:#aeb7bc}.player-counter{display:flex;align-items:center;gap:0;padding:8px;background:var(--bg2);border:1px solid var(--soft);color:var(--ink);font:13px var(--mono);min-height:47px}.player-counter>span{flex:1;white-space:nowrap;padding:0 7px 0 2px}.player-counter b{color:var(--ac);font-weight:400;padding-left:3px}.player-counter button{display:grid;place-items:center;min-width:32px;min-height:32px;background:var(--bg3);color:var(--ink);border:1px solid var(--soft);font:17px var(--mono);cursor:pointer;margin-left:4px}.player-counter button:disabled{opacity:.35;cursor:default}.player-counter button:not(:disabled):hover{border-color:var(--ac);color:var(--ac)}.player-card-wrap{min-width:0}.player-card-wrap>.card-tile{height:auto}.reference-art>.player-counter{margin:16px 0}.reference-tile>.player-counter{border-width:1px 0 0}.player-profile .player-counter{--bg2:#191e22;--bg3:#262e32;--ink:#f3f3ef;--soft:#384247;--ac:var(--profile-ac)}.player-collection-filters{display:flex;gap:18px;align-items:end;margin:20px 0}.player-collection-filters label{display:grid;gap:9px;font:13px var(--body);min-width:0}.player-collection-filters label:first-child{flex:1}.player-profile :is(input:not([type=radio]),select){background:#1d2529;border-color:#4a555b;color:#eff3f2}.player-collection-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 19px}.player-inventory-card{min-width:0}.player-inventory-card>a{display:block;color:#f3f3ef}.player-inventory-card h3{font-size:21px;line-height:1.1;margin:10px 0 6px}.player-inventory-card p{font:13px var(--mono);color:#b6bec4;min-height:24px}.player-load-more{display:block;margin:30px auto}.player-custom-form fieldset{border:0;border-bottom:1px solid #354047;margin:0 0 28px;padding:0 0 28px;min-width:0}.player-custom-form legend{font:700 26px var(--head);text-transform:uppercase;padding:0}.player-custom-form fieldset>p{font-size:13px;color:#b6bec4;line-height:1.8}.player-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.player-form-grid label{display:grid;gap:9px;font:13px var(--body);color:#b9c5c9}.player-colors{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.player-colors label{--profile-ac:#6ee3dd;display:flex;align-items:center;gap:10px;padding:12px 18px;border:1px solid #414c52;cursor:pointer;font:13px var(--mono);text-transform:capitalize}.player-colors label[data-accent=violet]{--profile-ac:#bfacff}.player-colors label[data-accent=rose]{--profile-ac:#ffa3bd}.player-colors label[data-accent=gold]{--profile-ac:#edd18e}.player-colors label[data-accent=green]{--profile-ac:#52f7a3}.player-colors input{accent-color:var(--profile-ac)}.player-colors span{border-bottom:3px solid var(--profile-ac);padding-bottom:4px}.player-form-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.player-profile .primary{background:var(--profile-ac);color:#142022}.player-form-actions a{font:13px var(--mono);color:#bec8cc}.player-form-actions p{font-size:13px;color:#edc5ba}.player-loading{padding:60px 0;font:13px var(--mono)}
@media(min-width:900px) and (hover:hover){.reference-tile>.player-counter{opacity:.55;transition:opacity .15s}.reference-tile:hover>.player-counter,.reference-tile:focus-within>.player-counter{opacity:1}}
@media(max-width:950px){.player-totals{right:25px;gap:18px}.player-hero-content{padding-left:25px;max-width:640px}.player-content{padding:28px 25px}.player-tabs{padding:0 25px}.player-collection-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.player-display{grid-template-columns:repeat(3,minmax(0,1fr))}.player-page:has(>.intro){gap:30px}.player-hero-art{left:20%}.player-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.player-nav .player-menu summary>span:last-child{display:none}.player-page{margin:20px auto 45px}.player-page:has(>.intro){grid-template-columns:1fr;padding:0}.player-page .features{display:none}.player-hero-content{padding:24px 20px 20px}.player-hero-art{left:5%;opacity:.6}.player-hero:after{background:linear-gradient(90deg,#131619ed,#13161988),linear-gradient(0deg,#131619,transparent)}.player-identity{gap:15px}.player-avatar{width:65px;height:65px}.player-identity h1{font-size:44px}.player-bio{max-width:90%;font-size:13px}.player-hero-pattern{top:30px;font-size:95px}.player-totals{position:relative;right:auto;bottom:auto;padding:0 20px 25px;gap:30px}.player-totals>div{display:flex;align-items:center;gap:10px}.player-totals b{font-size:28px}.player-totals span{font-size:13px;max-width:80px}.player-legends{gap:6px}.player-legends a{min-width:0;padding:6px}.player-legends small{font-size:13px}.player-legends b{font-size:16px}.player-tabs{gap:19px;padding:0 20px}.player-tabs a{font-size:13px;padding-top:18px}.player-tabs .player-settings-link{font-size:13px}.player-tabs a>span{display:none}.player-content{padding:25px 18px}.player-section-head h2{font-size:30px}.player-section-head>a{font-size:13px}.player-deck-grid{grid-template-columns:1fr}.player-deck-art{aspect-ratio:2.8}.player-empty{padding:24px 16px}.player-empty h3{font-size:24px}.player-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.player-collection-filters{flex-wrap:wrap;gap:12px}.player-collection-filters label:first-child{flex-basis:100%}.player-collection-filters label{width:100%}.player-counter{padding:6px}.player-counter button{min-width:33px;min-height:36px}.player-display{gap:15px 10px}.player-display h3{font-size:17px}.player-display p{font-size:13px;line-height:1.6}.player-form-grid{grid-template-columns:1fr}.player-private{font-size:13px;margin-left:8px}.player-colors label{padding:10px 13px}.player-profile .player-note{font-size:13px}}
@media(prefers-reduced-motion:reduce){.player-display img{transition:none}}
@media(max-width:700px){.site-header:has(.player-nav) .wordmark{font-size:clamp(29px,8.5vw,34px)}.site-header:has(.player-nav) .header-actions{gap:8px}}

/* Connected-account polish: workspaces stay compact; the showcase keeps its hero. */
.player-profile :is(a,button,input,select):focus-visible,.player-nav :is(a,button,summary):focus-visible{outline:2px solid var(--profile-ac,var(--ac));outline-offset:4px}.player-menu summary::-webkit-details-marker{display:none}.player-menu summary:after{content:'⌄';color:var(--muted)}.player-menu[open] summary:after{content:'⌃'}.player-menu nav button{cursor:pointer}.player-menu nav form{border-top:1px solid var(--soft);margin-top:4px;padding-top:4px}.player-menu summary>span:last-child{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-workspace .player-hero{min-height:0}.player-workspace .player-hero-content{padding:24px 38px;max-width:70%}.player-workspace .player-kicker{margin-top:0}.player-workspace .player-identity{margin:12px 0}.player-workspace .player-avatar{width:50px;height:50px;font-size:30px}.player-workspace .player-identity h1{font-size:34px;margin-bottom:7px}.player-workspace .player-bio,.player-workspace .player-legends{display:none}.player-workspace .player-customize{padding:0;background:transparent;border:0;font-size:13px;color:var(--profile-ac)}.player-workspace .player-hero-art{opacity:.55}.player-workspace .player-hero-pattern{font-size:100px}.player-workspace .player-totals{bottom:30px}.player-workspace .player-totals b{font-size:30px}.player-totals{gap:24px}.player-totals span{max-width:85px;line-height:1.5}.player-identity>div:last-child{min-width:0}.player-profile .button[hidden]{display:none}.player-clear{min-height:46px;white-space:nowrap}.player-section-head h2{scroll-margin-top:100px}.player-profile [tabindex='-1']:focus,dialog [tabindex='-1']:focus{outline:none}
.player-step{font:13px var(--mono);color:var(--profile-ac);vertical-align:middle;margin-right:12px}.player-slot{min-width:0;border:1px solid #36434a;background:#191f23;padding:14px}.player-slot label{display:grid;gap:10px}.player-slot-preview{display:flex;align-items:center;gap:16px;min-height:122px;margin-top:15px;overflow:hidden}.player-slot-preview img{width:78px;height:110px;object-fit:contain;border-radius:4px;flex-shrink:0}.player-slot-preview>div{display:grid;gap:9px;min-width:0}.player-slot-preview b{font:700 25px/1.1 var(--head);text-transform:uppercase;overflow-wrap:anywhere}.player-slot-preview span:not(.player-slot-placeholder),.player-slot-preview small{font:13px/1.6 var(--body);color:#b9c5c9}.player-slot-preview p{font:13px/1.6 var(--body);color:#96a5ad;max-width:140px}.player-slot-placeholder{display:grid;place-items:center;flex-shrink:0;width:78px;height:110px;border:1px dashed #43535b;color:#576972;font:40px var(--head)}.player-colors label:has(input:checked){border-color:var(--profile-ac);background:#ffffff08}.player-inline-empty{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px dashed #415059;padding:24px;font:13px/1.7 var(--body);color:#b9c5c9}.player-inline-empty a{color:var(--profile-ac);font:13px/1.7 var(--mono);white-space:nowrap}.player-form-actions{position:sticky;bottom:12px;z-index:4;padding:18px 20px;background:#1b2429;border:1px solid #46565e;box-shadow:0 8px 32px #0006}.player-form-actions>div{margin-right:auto}.player-form-actions [data-dirty-status]{margin:0 0 5px;color:#edf4f3;font:13px var(--mono)}.player-form-actions .player-note{font-size:13px}.player-form-actions [data-showcase-status]{width:100%;margin:0}.player-form-actions [data-showcase-status]:empty{display:none}.player-profile button:disabled{opacity:.5;cursor:not-allowed}.player-form-actions .button{min-height:44px}.player-page .notice{border:1px solid var(--ac);background:var(--ac-soft);padding:15px 18px;font:13px/1.7 var(--body);margin:20px 0}.player-page .provider:not(:disabled){cursor:pointer;transition:border-color .15s,background .15s}.player-page .provider:not(:disabled):hover{border-color:var(--ac);background:var(--bg3)}.player-page .provider:disabled{opacity:.5}.player-page .account{padding:32px;background:var(--bg2);border:1px solid var(--soft)}.player-page .account h1{font-size:48px;margin-top:14px}.player-page .account .lede{font-size:14px}.player-page .bio-meta{display:flex;justify-content:space-between;gap:12px}.player-page .profile-form button{justify-self:start;min-width:170px}.player-page .profile-form input:focus-visible,.player-page .profile-form textarea:focus-visible{outline:2px solid var(--ac);outline-offset:3px}.player-page .profile-form input{scroll-margin-top:100px}/* The page holds a screen of height while the account loads, so the footer never jumps into view. */
[data-player-app]{min-height:calc(100svh - 120px)}.player-loading{min-height:calc(100svh - 160px);display:grid;place-content:center;gap:14px;color:var(--muted)}.player-loading:before{content:'';display:block;width:42px;height:3px;background:var(--ac);animation:player-pulse 1s ease-in-out infinite alternate}@keyframes player-pulse{to{opacity:.25;transform:scaleX(.5)}}
@media(min-width:951px){.player-hero:not(.player-workspace .player-hero) .player-hero-content{padding-bottom:40px}}
@media(max-width:950px){.player-workspace .player-hero-content{padding:24px 25px;max-width:60%}.player-totals{gap:15px}.player-workspace .player-totals{gap:12px;right:25px}.player-workspace .player-totals span{font-size:13px;max-width:80px}.player-slot-preview{gap:12px}}
@media(max-width:700px){.player-workspace .player-hero-content{max-width:100%;padding:22px 20px 16px}.player-workspace .player-totals{padding:0 20px 20px;right:auto;bottom:auto;gap:20px}.player-workspace .player-totals>div{display:grid;gap:5px}.player-totals>div{display:grid;gap:5px}.player-totals{gap:22px}.player-workspace .player-totals b{font-size:26px}.player-content .player-section-head{align-items:start;flex-wrap:wrap}.player-section-head h2{font-size:28px}.player-form-actions{padding:15px;gap:15px;bottom:8px}.player-form-actions>div{width:100%}.player-form-actions .button{flex:1}.player-inline-empty{align-items:start;flex-direction:column;gap:10px;padding:18px}.player-slot-preview{min-height:112px}.player-slot-preview img,.player-slot-placeholder{width:78px}.player-slot-preview b{font-size:27px}.player-page .account{padding:23px 20px}.player-page .account h1{font-size:40px}.player-counter button{min-height:44px}.player-clear{width:100%}.player-tabs{gap:17px}.player-display{grid-template-columns:repeat(2,minmax(0,1fr))}.player-nav .player-menu summary:after{display:none}}
@media(max-width:430px){.player-collection-grid .player-counter{flex-wrap:wrap;gap:7px}.player-collection-grid .player-counter>span{flex-basis:100%;padding:3px}.player-collection-grid .player-counter button{flex:1;margin:0}.player-tabs{gap:13px;padding:0 16px}.player-tabs .player-settings-link{font-size:13px}.player-profile .player-private{display:inline-block}.player-form-grid{gap:14px}}
@media(prefers-reduced-motion:reduce){.player-loading:before{animation:none}.player-page .provider{transition:none}}
.player-discard{max-width:min(480px,calc(100vw - 32px));padding:30px;background:var(--bg2);color:var(--ink);border:1px solid var(--soft);box-shadow:0 20px 80px #0009}.player-discard::backdrop{background:#000b;backdrop-filter:blur(3px)}.player-discard h2{font-size:34px;line-height:1.1}.player-discard>p:not(.player-kicker){font:14px/1.8 var(--body);color:var(--muted)}.player-discard>div{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.player-discard .button{min-height:44px;font:13px var(--mono)}.player-discard .primary{background:var(--ac);color:var(--ac-ink)}
.player-deck-search{display:grid;gap:10px;max-width:440px;font:600 15px var(--body);color:#d6dde0;margin:22px 0 15px}.player-counter[aria-busy=true]{border-color:var(--ac)}.player-deck-main{display:block}.player-deck{transition:border-color .15s,transform .15s}.player-deck:hover{border-color:var(--profile-ac);transform:translateY(-2px)}.player-deck-art:empty:before{content:'YOUR NEXT IDEA';position:absolute;inset:0;display:grid;place-items:center;color:#74858a;font:13px var(--mono)}
@media(prefers-reduced-motion:reduce){.player-deck{transition:none}.player-deck:hover{transform:none}}
.player-hero-art{mask-image:linear-gradient(90deg,transparent,#000 20%)}

.player-danger{margin:2rem 0;padding:1.25rem;border:1px solid #b96565}.player-danger summary{font-weight:700;cursor:pointer}.player-danger p{max-width:65ch}.player-danger input{display:block;width:100%;max-width:24rem;padding:.8rem;margin:.5rem 0 1rem;background:var(--surface,#191919);color:inherit;border:1px solid currentColor}.player-danger button{padding:.8rem 1rem;min-height:44px;color:inherit;background:transparent;border:1px solid #b96565}.connections form{margin:.75rem 0}

/* Art-first profile studio. All edits remain a preview until Save. */
.pe-studio>.player-hero{display:none}.pe-studio .player-content{padding:36px}.pe-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.pe-heading h1{font:700 clamp(36px,5vw,64px)/.95 var(--head);text-transform:uppercase;margin:12px 0}.pe-heading>div>p:last-child{color:#a7b7bd;font:14px/1.6 var(--body)}.pe-heading>a{font:14px var(--body);color:var(--profile-ac);white-space:nowrap;margin-top:20px}.pe-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);gap:36px;align-items:start}.pe-tabs{display:flex;border-bottom:1px solid #35434b;gap:24px;margin-bottom:28px}.pe-tabs button{display:flex;align-items:center;gap:8px;padding:0 0 17px;background:none;border:0;border-bottom:2px solid transparent;color:#8fa0a8;cursor:pointer;font:13px var(--mono);min-height:44px}.pe-tabs button small{font-size:13px;opacity:.6}.pe-tabs button[aria-pressed=true]{color:var(--profile-ac);border-color:var(--profile-ac)}.pe-section-title h3{font:700 30px/1.05 var(--head);text-transform:uppercase;margin:10px 0}.pe-section-title>p:last-child{color:#a7b7bd;font:13px/1.7 var(--body);margin-bottom:24px}.pe-lineup{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px}.pe-slot{position:relative;min-width:0}.pe-slot select[hidden]{display:none!important}.pe-slot-button{display:flex;flex-direction:column;width:100%;padding:0;text-align:left;color:#edf4f3;background:#111a20;border:1px solid #3c4c55;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .15s}.pe-slot-button:hover{border-color:var(--profile-ac);transform:translateY(-3px)}.pe-slot-label{padding:12px 10px;font:600 13px var(--body);color:#acbec8}.pe-lineup .pe-slot:first-child .pe-slot-label{color:var(--profile-ac)}.pe-slot [data-preview]{display:flex;flex-direction:column;position:relative;width:100%;min-height:190px;background:linear-gradient(150deg,#29333a,#141c22)}.pe-slot [data-preview]>img{width:100%;height:auto;aspect-ratio:372/520;object-fit:contain;display:block}.pe-slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;aspect-ratio:372/520;width:100%;min-height:165px;background:repeating-linear-gradient(135deg,transparent,transparent 12px,#ffffff02 12px,#ffffff02 13px)}.pe-slot-empty>b{font:36px var(--head);color:var(--profile-ac);opacity:.65}.pe-slot-empty small{font:13px var(--mono);text-align:center;color:#8da1ab;padding:0 8px}.pe-slot-caption{display:flex;flex-direction:column;gap:7px;padding:12px;min-height:66px}.pe-slot-caption b{font:700 20px/1.05 var(--head);text-transform:uppercase;overflow-wrap:anywhere}.pe-slot-caption small{font:13px var(--mono);color:#93a6b1}.pe-slot-action{font:13px var(--mono);padding:12px;border-top:1px solid #31414a;color:var(--profile-ac);width:100%}.pe-clear{position:absolute;right:3px;top:0;border:0;background:transparent;color:#b7c6cf;cursor:pointer;width:34px;height:34px;font-size:20px}.pe-clear[hidden]{display:none}.pe-accent-field{border:0!important;border-top:1px solid #35434b!important;margin:28px 0 0!important;padding:24px 0 0!important}.pe-accent-field legend{font:700 24px var(--head)!important;text-transform:uppercase;padding:0 12px 0 0!important}.pe-accent-field p{font:13px var(--body);color:#a7b7bd;margin:12px 0 18px}.pe-accent-field .player-colors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.pe-accent-field .player-colors label{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 4px;min-height:46px;font-size:13px}.pe-accent-field input{accent-color:var(--profile-ac)}.pe-live{position:sticky;top:calc(var(--top-bar,0px) + 100px);border:1px solid #43525c;background:#11191f;box-shadow:0 18px 60px #0004}.pe-preview-heading{display:flex;justify-content:space-between;gap:12px;padding:15px;font:600 13px var(--body);border-bottom:1px solid #35434b;color:#aab9c2}.pe-preview-heading span{color:var(--profile-ac)}.pe-preview-heading i{display:inline-block;width:5px;height:5px;border-radius:100%;background:var(--profile-ac);margin-right:6px}.pe-preview-heading small{font-size:13px}.pe-preview-hero{height:215px;position:relative;overflow:hidden;overflow:clip;background:#17262e}.pe-preview-art{position:absolute;inset:0}.pe-preview-art img{width:100%;height:100%;object-fit:cover;object-position:center}.pe-preview-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#11191f,transparent 95%),linear-gradient(90deg,#11191fbb,transparent)}.pe-preview-pattern{font:900 85px/.82 var(--head);letter-spacing:-3px;position:absolute;right:-5px;top:25px;color:var(--profile-ac);opacity:.1;transform:rotate(-8deg)}.pe-preview-identity{position:absolute;bottom:15px;left:22px;right:22px}.pe-avatar{width:45px;height:45px;background:#26343d;border:1px solid var(--profile-ac);display:grid;place-items:center;overflow:hidden;margin-bottom:12px;color:var(--profile-ac);font:700 25px var(--head)}.pe-avatar img{width:100%;height:100%;object-fit:cover;object-position:center}.pe-preview-identity .player-kicker{font-size:13px}.pe-preview-identity h3{font:700 36px/.95 var(--head);text-transform:uppercase;margin:8px 0;overflow-wrap:anywhere}.pe-preview-identity>span:last-child{font:13px var(--body);color:#a6bac5}.pe-preview-body{padding:0 22px 22px}.pe-preview-body>p{font:13px/1.7 var(--body);color:#9fb0b9;margin:4px 0 20px}.pe-preview-legends{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pe-preview-legends>div{min-width:0}.pe-preview-legends img,.pe-preview-legends>div>span{display:block;width:100%;height:63px;object-fit:cover;object-position:50% 14%;background:#1c2932;border:1px solid #344550}.pe-preview-legends>div>span{display:grid;place-items:center;color:#617681}.pe-preview-legends small{display:block;margin-top:7px;font:13px var(--body);color:#adc1cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pe-preview-section{display:flex;justify-content:space-between;font:600 13px var(--body);color:#a5b8c3;margin:23px 0 12px}.pe-preview-section small{color:var(--profile-ac);font-size:13px}.pe-preview-empty{padding:17px;border:1px dashed #35454f;color:#647c89;text-align:center;font:13px var(--body)}.pe-preview-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.pe-preview-cards img,.pe-preview-cards>span{width:100%;height:auto;aspect-ratio:372/520;object-fit:contain;background:#1b2932;border:1px solid #35454f}.pe-preview-cards>span{display:grid;place-items:center;color:#617681;font:14px var(--mono)}.pe-preview-note{margin:0;padding:12px 20px;border-top:1px solid #35434b;font:13px/1.5 var(--body);color:#8ca3af}.pe-mini-deck{display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:#20303a;margin:6px 0}.pe-mini-deck b{font:13px var(--head)}.pe-mini-deck>span{color:var(--profile-ac)}.pe-mini-deck small{font:13px var(--mono);margin-left:auto;color:#9badb7}.pe-deck-slots{display:grid;gap:12px}.pe-deck-slots .pe-slot [data-preview]{min-height:90px;flex-direction:row;align-items:center}.pe-deck-slots .pe-slot [data-preview]>img{width:72px;height:100px}.pe-deck-slots .pe-slot-empty{aspect-ratio:auto;min-height:85px;flex-direction:row}.pe-deck-slots .pe-slot-action{padding:9px}.pe-display-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pe-display-slots .pe-slot [data-preview]{min-height:100px}.pe-display-slots .pe-slot-empty{min-height:130px}.pe-context{border-left:2px solid var(--profile-ac);padding:4px 0 4px 16px;margin-top:26px;color:#a7bac4;font:13px/1.7 var(--body)}.pe-context a{color:var(--profile-ac);font:13px var(--mono)}.pe-form .player-form-actions{margin-top:32px;bottom:12px}.pe-studio button:focus-visible,.pe-picker button:focus-visible,.pe-picker input:focus-visible{outline:2px solid var(--profile-ac,var(--ac));outline-offset:3px}.pe-picker{width:min(880px,calc(100vw - 32px));max-height:85dvh;padding:0;background:#111b22;color:#edf4f3;border:1px solid #49616f;box-shadow:0 30px 120px #0009}.pe-picker::backdrop{background:#03090de0;backdrop-filter:blur(5px)}.pe-picker header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 28px 12px}.pe-picker h2{font:700 36px/1 var(--head);text-transform:uppercase;margin:12px 0}.pe-picker [data-picker-close]{width:44px;height:44px;background:#23333e;border:1px solid #49616f;color:#c9d8e1;font-size:24px;cursor:pointer}.pe-picker-search{display:block;padding:0 28px;font:13px var(--mono);color:#9eb5c3}.pe-picker-search span{display:block;margin-bottom:10px}.pe-picker-search input{width:100%;padding:14px;background:#1d2b35;border:1px solid #435a68;color:#edf4f3;font:13px var(--body)}.pe-picker-count{padding:0 28px;margin:15px 0;font:13px var(--mono);color:#96adbb}.pe-picker-grid{padding:0 28px 24px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;min-height:180px}.pe-choice{padding:0;background:transparent;border:0;text-align:left;color:#edf4f3;cursor:pointer;min-width:0}.pe-choice>div{position:relative;background:#243640;aspect-ratio:372/520;border:2px solid transparent;border-radius:8px;overflow:hidden;transition:border-color .15s,transform .15s}.pe-choice img{display:block;width:100%;height:100%;object-fit:contain}.pe-choice:hover>div,.pe-choice[aria-pressed=true]>div{border-color:#b3ef63;transform:translateY(-2px)}.pe-choice:disabled{opacity:.45;cursor:not-allowed}.pe-choice>div>b{position:absolute;bottom:0;left:0;right:0;padding:8px 3px;background:#162510eb;color:#b3ef63;text-align:center;font:13px var(--mono)}.pe-choice strong{display:block;font:700 17px/1.1 var(--head);margin:10px 0 5px}.pe-choice small{font:13px/1.5 var(--mono);color:#9db4c2;display:block}.pe-picker footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 28px;border-top:1px solid #344a58;font:13px var(--mono);color:#96adbb}.pe-picker footer button{background:#b3ef63;color:#14220e;border:0;padding:12px;cursor:pointer;font:13px var(--mono)}.pe-picker-empty{grid-column:1/-1;text-align:center;margin:auto;color:#9eb5c3}.pe-picker-empty h3{font:30px var(--head);text-transform:uppercase}.pe-picker-empty p{font:13px var(--body)}
@media(max-width:1050px){.pe-layout{gap:22px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.pe-studio .player-content{padding:26px}.pe-slot-label{font-size:13px}.pe-slot-caption{padding:9px}.pe-slot-caption b{font-size:18px}.pe-lineup{gap:8px}}
@media(max-width:780px){.pe-layout{grid-template-columns:1fr}.pe-live{position:static;max-width:500px;width:100%;margin:10px auto 0}.pe-heading{gap:12px}.pe-heading>a{font-size:13px}.pe-studio .player-content{padding:22px 16px}.pe-lineup{gap:10px}.pe-slot [data-preview]{min-height:130px}.pe-slot-empty{min-height:130px}.pe-tabs{gap:22px}.pe-tabs button{font-size:13px}.pe-preview-hero{height:230px}.pe-form .player-form-actions{bottom:6px}.pe-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 18px 20px}.pe-picker header{padding:20px 18px 8px}.pe-picker h2{font-size:30px}.pe-picker-search{padding:0 18px}.pe-picker-count{padding:0 18px}.pe-picker footer{padding:14px 18px}.pe-display-slots{gap:8px}.pe-slot-caption small{font-size:13px}}
@media(max-width:400px){.pe-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pe-heading{flex-direction:column}.pe-heading>a{margin:0}.pe-accent-field .player-colors label{font-size:13px;gap:3px}.pe-slot-label{letter-spacing:0;font-size:13px}.pe-tabs{gap:15px}.pe-lineup .pe-slot-empty small{font-size:13px}}
@media(prefers-reduced-motion:reduce){.pe-slot-button,.pe-choice>div{transition:none}.pe-slot-button:hover,.pe-choice:hover>div{transform:none}}
.pe-lineup .pe-slot-button{height:100%}.pe-lineup .pe-slot [data-preview]{flex:1}.pe-lineup .pe-slot-empty{flex:1}

/* One profile, shared with visitors without exposing owner editing controls. */
.player-visibility-link{display:inline-block;margin:18px 0 0 18px;font-size:13px;color:var(--profile-ac,var(--ac));font-weight:700}
.player-share-url{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px;border:1px solid var(--soft);overflow-wrap:anywhere}
.player-share-confirm{display:flex!important;align-items:flex-start;gap:12px;line-height:1.6;margin:20px 0}
.player-share-confirm input{width:20px!important;height:20px;flex-shrink:0;margin-top:4px;accent-color:var(--ac)}
.player-public-search{display:flex;gap:12px;align-items:end;margin:24px 0;flex-wrap:wrap}
.player-public-search label{display:grid;gap:8px;flex:1;min-width:200px;font-size:13px;font-weight:700}
.player-public-search input{width:100%;padding:14px;background:var(--bg2);color:var(--ink);border:1px solid var(--soft);font:inherit}
.player-public-search a{padding:14px}
.player-public-count{padding:12px;font-size:13px;font-weight:700;border-top:1px solid var(--soft);color:var(--profile-ac,var(--ac))}
.player-public-pagination{display:flex;gap:20px;justify-content:center;align-items:center;margin-top:32px;font-size:13px;flex-wrap:wrap}
.player-tabs button.player-settings-link{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:20px 0;font-size:13px;font-weight:700}
.player-public-deck{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.player-public-deck section{border:1px solid var(--soft);background:var(--bg2);min-width:0}
.player-public-deck h3{display:flex;justify-content:space-between;padding:16px 20px;margin:0;font:700 26px var(--head);border-bottom:1px solid var(--soft)}
.player-public-row{display:flex;align-items:center;gap:14px;min-height:78px;border-bottom:1px solid var(--soft);padding:10px 16px;text-decoration:none}
.player-public-row:hover{background:var(--bg3)}
.player-public-row img{width:40px;height:56px;object-fit:cover;border-radius:3px;flex-shrink:0}
.player-public-row>b{color:var(--profile-ac,var(--ac));font-size:16px;min-width:28px}
.player-public-row>span{font-weight:700;overflow-wrap:anywhere;min-width:0}
.player-public-row small{display:block;font-size:13px;letter-spacing:.06em;color:var(--muted);font-weight:400;margin-top:4px}
@media(max-width:650px){.player-public-deck{grid-template-columns:1fr}.player-visibility-link{margin:14px 0 0;display:block}.player-tabs button.player-settings-link{font-size:13px}.player-public-search .button{padding:14px}.player-share-url{padding:12px;font-size:13px}}
@media(max-width:440px){.site-header:has(.player-nav) .header-actions>.header-search{display:none}}
/* One profile, with owner controls in context. */
.player-profile-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0}.player-profile-actions .player-customize{margin:0}.player-visitor-link{font:13px var(--mono);color:var(--muted);padding:12px 0}.player-visibility-button{cursor:pointer;background:transparent;color:inherit;font:inherit;min-height:32px}.player-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--soft);padding:14px 20px;margin-bottom:16px;font:14px var(--body)}.player-share-dialog{width:min(540px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:32px;background:var(--bg);color:var(--ink);border:1px solid var(--soft)}.player-share-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}.player-share-dialog h2{font:32px var(--head);text-transform:uppercase;margin:12px 0}.player-share-dialog p{line-height:1.6;margin:14px 0}.player-share-dialog form{margin-top:20px}.player-dialog-close{float:right;width:36px;height:36px;background:transparent;border:1px solid var(--soft);color:inherit;font-size:23px;cursor:pointer}.pe-identity-fields{display:grid;gap:16px;padding:0 0 28px;margin-bottom:24px;border-bottom:1px solid var(--soft)}.pe-identity-fields label{display:grid;gap:8px;font:14px var(--body)}.pe-identity-fields input,.pe-identity-fields textarea{width:100%;min-width:0;padding:12px;border:1px solid var(--soft);background:var(--bg);color:var(--ink);font:14px var(--body);border-radius:0}.pe-identity-fields small{color:var(--muted);font:13px/1.5 var(--mono)}.pe-identity-fields textarea{resize:vertical}.db-profile-byline{display:inline-block;margin-top:12px;font:13px var(--mono);color:var(--ac)}
@media(max-width:620px){.player-preview-bar{align-items:flex-start;font-size:13px;padding:12px}.player-preview-bar .button{white-space:nowrap}.player-profile-actions{gap:8px}.player-profile-actions .button{padding:12px}.player-share-dialog{padding:22px}.player-visitor-link{flex-basis:100%}.pe-identity-fields input,.pe-identity-fields textarea{font-size:16px}}
.player-feature-card{display:block;width:100%;margin:12px 0}.player-feature-slots{display:grid;gap:8px;margin:20px 0}.player-feature-slots .button{text-align:left;white-space:normal}

/* Shared source-pixel crops keep the subject, not the card frame, in view. */
.player-art-picture{display:block;width:100%;height:100%}
.player-art-picture img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.player-deck-art>.player-art-picture{position:absolute;inset:0}
.player-hero-art{left:28%;transform:translateX(var(--profile-art-shift,0%))}
.player-hero:after{background:linear-gradient(90deg,#131619 0%,#131619ed 28%,#13161966 53%,#13161900 78%),linear-gradient(0deg,#131619 0%,#13161955 22%,transparent 65%)}
.pe-preview-art:after{background:linear-gradient(0deg,#11191f 0%,#11191f88 26%,transparent 78%),linear-gradient(90deg,#11191f66,transparent 60%)}
@media(max-width:1000px){.player-hero-art{left:20%}}
@media(max-width:600px){
 .player-hero-art{inset:0 0 auto;height:260px;opacity:1;mask-image:none;transform:none}
 .player-workspace .player-hero-art{opacity:1}
 .player-hero:after{background:linear-gradient(180deg,transparent 80px,#13161933 145px,#131619 265px)}
 .player-hero-content{padding:192px 20px 24px;max-width:none}
 .player-hero-content>.player-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px}
 .player-identity{margin-top:18px;gap:15px}
 .player-avatar{width:76px;height:76px;box-shadow:0 4px 16px #0005}
 .player-legends{gap:7px}
 .player-legends a{flex:1;min-width:0;padding:8px 6px;gap:6px}
 .player-legends b{font-size:15px}
 .player-legends small{font-size:13px;letter-spacing:0}
 .player-legends img{width:28px;height:32px}
 .player-totals{padding:0 20px 24px;gap:20px}
 .player-hero-pattern{font-size:100px;top:25px}
}

/* Never substitute another printing's art for a collection-only record. */
.player-art-placeholder{display:flex;aspect-ratio:744/1039;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem;background:var(--surface,#191b21);border:1px solid var(--line,#383c46);text-align:center;color:var(--muted,#aab0bd)}
.player-art-placeholder strong{color:var(--ink,#eef1f7)}
.player-art-placeholder small{text-transform:uppercase;letter-spacing:.1em;font-size:.65rem}

.player-counter{flex-wrap:wrap}
.player-counter>span{flex-basis:100%;display:block}
.player-counter [data-finish-summary],.player-public-count>small{display:block;font-size:.68rem;font-weight:400;color:var(--muted);margin-top:.3rem;line-height:1.5}

/* Connected-player polish: consistent controls, quiet metadata, and usable small screens. */
body:has(dialog[open]){overflow:hidden}
.player-profile{color-scheme:dark}.player-page{padding-inline:24px;max-width:1370px}
.player-profile .button.primary{background:var(--profile-ac);border-color:var(--profile-ac);color:#101719}
.player-profile :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--profile-ac);outline-offset:3px}
.player-profile button,.player-profile input,.player-profile select,.player-profile textarea{border-radius:0}
.player-profile .player-kicker{font-size:14px}.player-note,.player-profile .player-note{font:13px/1.7 var(--body)}
.player-profile .button{font:13px var(--body);min-height:44px;text-transform:none}
.player-identity h1{line-height:1.03}.player-bio{font-size:14px;line-height:1.7}
.player-private{font:13px var(--body);min-height:36px;background:#111a20b8}.player-profile-actions{gap:10px 18px}
.player-visitor-link{font:13px var(--body);text-underline-offset:4px}.player-visitor-link:hover{text-decoration:underline}
.player-tabs{gap:30px;align-items:center}.player-tabs a{font:13px var(--body);min-height:48px}.player-tabs .player-settings-link{font:13px var(--body)}
.player-totals b{font-variant-numeric:tabular-nums}.player-totals span{font:13px/1.5 var(--body)}
.player-section-head{margin-bottom:16px}.player-section-head h2{font-size:34px}.player-section-head>a{font:13px var(--body)}
.player-section-head .player-kicker{font-size:13px}.player-section-gap{margin-top:44px}
.player-empty{padding:36px 24px;border-style:solid;border-color:#303d43;background:#182126}
.player-empty h3{font-size:30px}.player-empty p{font-size:14px;line-height:1.65}.player-empty .button{margin-top:4px}
.player-deck-info h3{font-size:28px;line-height:1.08}.player-deck-info>p:last-child{font:13px/1.6 var(--body)}.player-deck-info .player-kicker{font-size:13px}
.player-deck{transition:border-color .15s}.player-deck:hover{border-color:var(--profile-ac)}.player-deck-edit{font:13px var(--body);min-height:44px;display:flex;align-items:center}
.player-display h3{font-size:21px;line-height:1.15}.player-display p{font:13px/1.6 var(--body)}.player-display .player-note{font-size:13px;margin:0}
.player-collection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}.player-collection-actions>a{font:13px var(--body);color:var(--profile-muted);min-height:44px;display:flex;align-items:center}
.player-collection-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(130px,1fr));gap:12px;padding:18px 0;border-block:1px solid var(--profile-line);margin:22px 0 12px}
.player-collection-filters label{font:13px var(--body);width:auto}.player-page .player-collection-filters :is(input,select){font:14px var(--body);width:100%;min-height:46px;padding:10px 12px}
.player-collection-filters .player-clear{grid-column:1/-1;justify-self:start;width:auto;font-size:13px;min-height:36px;padding:8px 12px}
.player-note[data-collection-results]{font:13px/1.6 var(--body);margin:12px 0 24px}
.player-collection-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 20px}
.player-inventory-card{display:flex;flex-direction:column}.player-inventory-card>a{flex:1}.player-inventory-card h3{font-size:23px;line-height:1.15}
.player-inventory-card p{font:13px/1.5 var(--body);margin:6px 0 14px}.player-inventory-card .player-counter{margin-top:auto}
/* Ownership controls, shared across card pages and collection results. */
.player-counter{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px;background:var(--bg2);border:1px solid var(--soft);font:13px var(--body);min-width:0}
.player-counter>.player-counter-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:0;white-space:normal;min-height:36px}
.player-counter-heading>span{font:13px var(--body)}.player-counter [data-owned-count]{font-size:15px;font-weight:600;padding-left:4px;font-variant-numeric:tabular-nums}
.player-counter [data-finish-summary]{flex-basis:100%;font:13px/1.5 var(--body);margin:0;color:var(--muted);overflow-wrap:anywhere}
.player-counter [data-finish-summary]:empty{display:none}
.player-quantity-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:stretch;border:1px solid var(--soft);background:var(--bg)}
.player-counter .player-quantity-stepper button{width:44px;height:42px;min-width:44px;min-height:42px;padding:0;margin:0;border:0;background:transparent;font:22px var(--body)}
.player-quantity-stepper>span{display:flex;align-items:center;justify-content:center;gap:4px;border-inline:1px solid var(--soft)}
.player-counter .player-quantity-stepper b{font:600 15px var(--body);padding:0;color:var(--ink);font-variant-numeric:tabular-nums}.player-quantity-stepper small{font:13px var(--body);color:var(--muted)}
.player-counter .player-quantity-stepper button:not(:disabled):hover{background:var(--ac-soft,#ffffff0a)}
.player-counter-retry{display:grid;gap:6px;border-top:1px solid var(--soft);padding-top:8px;font:13px/1.5 var(--body);color:var(--ink)}
.player-counter-retry[hidden]{display:none}.player-counter .player-counter-retry button{font:13px var(--body);margin:0;min-height:40px;width:100%;border-color:var(--ac)}
.reference-tile>.player-counter{border:1px solid var(--soft);margin-top:10px}.reference-grid[data-view=text] .player-counter{margin-left:94px}
.reference-art>.player-counter{margin:16px 0}.player-profile .player-counter{--bg:#151c20;--muted:#abb9c0}

/* Studio actions stay in the flow above the editor, never over a text field. */
.pe-heading{margin-bottom:20px}.pe-heading h1{font-size:48px}.pe-heading>a{font:13px var(--body);min-height:44px;display:flex;align-items:center;margin-top:0}
.pe-form .player-form-actions{position:sticky;top:calc(var(--top-bar,0px) + 76px);bottom:auto;margin:0 0 28px;padding:12px 16px;gap:12px 20px;box-shadow:0 8px 20px #0002}
.pe-form .player-form-actions>div{width:auto;flex:1}.pe-form .player-form-actions [data-dirty-status]{font:13px/1.5 var(--body);margin:0}
.pe-form .player-form-actions .player-note{font-size:13px}.pe-form .player-form-actions .button{flex:none;min-width:130px}
.pe-form .player-form-actions a{font:13px var(--body);min-height:44px;display:flex;align-items:center}
.pe-form .player-form-actions:has(button:not(:disabled)){border-color:var(--profile-ac)}
.pe-form .player-form-actions [data-showcase-status]{font:13px/1.6 var(--body);color:#f1c3af}
.pe-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.9fr);gap:32px}.pe-live{top:168px}
.pe-identity-fields{grid-template-columns:1fr 1fr;gap:20px}.pe-identity-fields label:last-child{grid-column:1/-1}.pe-identity-fields label{font:13px var(--body)}
.pe-identity-fields small{font:13px/1.5 var(--body)}.pe-identity-fields .pe-bio-count{text-align:right;margin-top:-4px;font-variant-numeric:tabular-nums}
.pe-identity-fields :is(input,textarea){scroll-margin-top:200px}
.pe-section-title>p:last-child,.pe-context,.pe-accent-field p{font:13px/1.7 var(--body)}.pe-tabs button{font:13px var(--body)}
.pe-slot-label{font:600 13px var(--body);min-height:42px;padding:12px 36px 12px 12px;line-height:1.5}
.pe-clear{width:36px;height:42px;top:0;right:0;background:#162129;color:#c4d0d5}
.pe-clear:hover{color:var(--profile-ac);background:#25353c}.pe-slot-caption small{font:13px/1.5 var(--body)}.pe-slot-action{font:13px var(--body);min-height:44px;display:flex;align-items:center}
.pe-lineup{grid-template-columns:repeat(3,minmax(0,1fr))}.pe-lineup .pe-slot [data-preview]{min-height:0;flex:1}
.pe-lineup .pe-slot [data-preview]>img{aspect-ratio:1;height:auto;object-fit:cover}.pe-lineup .pe-slot-empty{aspect-ratio:1;min-height:0;flex:1}
.pe-lineup .pe-slot-caption{min-height:70px}.pe-lineup .pe-slot-empty small{font:13px var(--body)}
.pe-accent-field .player-colors label{font:13px var(--body);gap:8px}.pe-preview-heading{font-size:13px}.pe-preview-heading small{font:13px var(--body)}
.pe-preview-body>p{font:13px/1.7 var(--body)}.pe-preview-note{font:13px/1.6 var(--body)}.pe-preview-legends small{font:13px/1.5 var(--body)}
.pe-preview-section{font-size:13px}.pe-preview-section small{font-size:13px}.pe-mini-deck b{font-size:17px}.pe-mini-deck small{font:13px var(--body)}
.pe-picker{--profile-ac:var(--ac);overscroll-behavior:contain}.pe-picker[data-accent=violet]{--profile-ac:#bfacff}.pe-picker[data-accent=rose]{--profile-ac:#ffa3bd}.pe-picker[data-accent=gold]{--profile-ac:#edd18e}.pe-picker[data-accent=green]{--profile-ac:#52f7a3}
.pe-choice:hover>div,.pe-choice[aria-pressed=true]>div{border-color:var(--profile-ac)}.pe-choice>div>b{color:var(--profile-ac);background:#10191ef2;font:13px var(--body)}
.pe-picker .player-kicker{color:var(--profile-ac)}.pe-picker .heading-slash{color:var(--profile-ac)}.pe-picker-search{font:13px var(--body)}
.pe-picker-count{font:13px var(--body)}.pe-choice strong{font-size:20px;line-height:1.15}.pe-choice small{font:13px/1.5 var(--body)}.pe-picker footer{font:13px var(--body)}.pe-picker footer button{font:13px var(--body);min-height:44px;background:var(--profile-ac);color:#101719}
.player-dialog-close{width:44px;height:44px}.player-share-dialog .player-kicker{font-size:14px}.player-share-dialog .player-note{font-size:13px}
.player-page .account{max-width:760px;padding:32px;background:var(--bg2);border:1px solid var(--soft)}.player-page .account h1{font-size:48px;line-height:1.06}.player-page .account .small{font-size:13px;line-height:1.7}.player-page .connection{gap:20px}.player-page .profile-form input,.player-page .profile-form textarea{background:var(--bg)}
@media(max-width:1100px){.player-collection-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.player-collection-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.player-collection-filters label:first-child{grid-column:1/-1}.pe-layout{gap:24px;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr)}.pe-identity-fields{grid-template-columns:1fr}.pe-slot-label{font-size:13px;padding-left:8px}.player-workspace .player-hero-content{max-width:64%}}
@media(max-width:780px){.player-page{padding-inline:16px}.pe-layout{grid-template-columns:1fr}.pe-live{position:static;max-width:none}.pe-heading h1{font-size:40px}.pe-form .player-form-actions{top:0;padding:10px 12px;margin-bottom:22px}.pe-form .player-form-actions>div{flex:1;min-width:100px}.pe-form .player-form-actions .player-note,.pe-form .player-form-actions>a{display:none}.pe-form .player-form-actions .button{min-width:122px;padding:12px}.pe-identity-fields :is(input,textarea){scroll-margin-top:95px}.pe-slot-label{font-size:13px}.pe-picker-search input{font-size:16px}.pe-display-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.pe-clear{width:40px;min-height:44px}.pe-slot-label{min-height:44px;padding-right:48px}.pe-accent-field .player-colors label{font-size:13px;gap:5px}}
@media(max-width:700px){.player-page{margin-top:16px}.player-tabs{flex-wrap:wrap;gap:0 22px;padding:0 18px}.player-tabs a{padding:16px 0;font-size:13px}.player-tabs .player-settings-link{font-size:13px;margin-left:0}.player-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}.player-collection-filters{padding:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.player-collection-filters label:first-child{grid-column:1/-1}.player-collection-filters label:nth-child(4){grid-column:1/-1}.player-page .player-collection-filters :is(input,select){font-size:16px}.player-counter{padding:9px;gap:8px}.player-counter>.player-counter-heading{padding:0}.player-counter .player-quantity-stepper button{min-height:44px;height:44px}.player-quantity-stepper small{display:none}.player-inventory-card h3{font-size:22px}.player-inventory-card p{font-size:13px;min-height:36px}.player-collection-actions{width:100%;gap:16px}.player-collection-actions>.primary{flex:1}.player-section-head>a{font-size:13px}.player-empty{padding:26px 18px}.player-empty h3{font-size:28px}.player-display h3{font-size:21px}.player-display p{font-size:13px}.player-profile .player-note{font-size:13px}.reference-grid[data-view=text] .player-counter{margin-left:0}.player-page .account{padding:24px 18px}.player-page .account h1{font-size:40px}.player-page :is(input:not([type=radio],[type=checkbox]),select,textarea){font-size:16px}.player-collection-grid .player-counter .player-quantity-stepper button{margin:0}.pe-lineup{gap:8px}.pe-slot-caption{padding:10px 8px}.pe-slot-caption b{font-size:19px}.pe-slot-caption small{font-size:13px}.pe-slot-action{font-size:13px;padding:10px 8px}.pe-slot-label{font-size:13px;padding:10px 30px 10px 8px}.pe-clear{width:30px}.pe-preview-hero{height:250px}}
@media(max-width:600px){
 /* Full showcase gets a distinct art band. Working tabs get a compact identity. */
 .player-profile:not(.player-workspace) .player-hero-content{padding:200px 18px 22px}.player-profile:not(.player-workspace) .player-hero:after{background:linear-gradient(180deg,transparent 50px,#13161955 145px,#131619 260px)}
 .player-profile:not(.player-workspace) .player-hero-art{height:270px}.player-profile:not(.player-workspace) .player-hero-content>.player-kicker{flex-wrap:wrap}
 .player-workspace .player-hero-art{inset:0 0 0 38%;height:auto;opacity:.48}.player-workspace .player-hero:after{background:linear-gradient(90deg,#131619 20%,#13161999 58%,#13161944),linear-gradient(0deg,#131619,transparent)}
 .player-workspace .player-hero-content{padding:18px;max-width:none}.player-workspace .player-hero-content>.player-kicker{font-size:13px;gap:6px}.player-workspace .player-private{font-size:13px;margin:0}.player-workspace .player-identity{margin:10px 0 0;gap:12px}.player-workspace .player-identity h1{font-size:32px}.player-workspace .player-profile-actions{margin:12px 0 0;gap:8px 16px}.player-workspace .player-profile-actions .button{padding:8px 12px;min-height:36px;font-size:13px}.player-workspace .player-profile-actions .player-customize{padding-left:0}.player-workspace .player-visitor-link{flex-basis:auto;min-height:36px;display:flex;align-items:center;font-size:13px;padding:0}.player-workspace .player-totals{padding:0 18px 18px;gap:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.player-workspace .player-totals>div{gap:4px}.player-workspace .player-totals b{font-size:25px}.player-workspace .player-totals span{font:13px/1.5 var(--body);max-width:none;letter-spacing:0}
 .player-content{padding:24px 16px}.player-section-head h2{font-size:30px}.player-section-head .player-kicker{font-size:13px}.player-profile .player-bio{font-size:14px;max-width:none}.player-avatar{width:65px;height:65px}.player-profile:not(.player-workspace) .player-identity h1{font-size:40px}.player-profile:not(.player-workspace) .player-legends{gap:8px}.player-legends a{min-width:100px}.player-legends small{font:13px var(--body)}.player-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-inline:18px}.player-totals span{font-size:13px}.player-tabs .player-settings-link{flex-basis:100%;border-top:1px solid var(--profile-line);padding:10px 0;min-height:36px}.player-tabs{gap:0 24px}
}
@media(max-width:380px){.player-page{padding-inline:8px}.player-content{padding-inline:12px}.pe-studio .player-content{padding-inline:12px}.pe-lineup{grid-template-columns:1fr}.pe-lineup .pe-slot-button{display:grid;grid-template-columns:1fr}.pe-lineup .pe-slot [data-preview]{flex-direction:row;align-items:center;min-height:90px}.pe-lineup .pe-slot [data-preview]>img{width:90px;height:90px}.pe-lineup .pe-slot-empty{aspect-ratio:auto;min-height:90px;flex-direction:row}.pe-lineup .pe-slot-label{font-size:13px}.pe-lineup .pe-slot-action{font-size:13px}.pe-clear{width:44px}.pe-slot-label{padding-right:44px}.player-collection-filters{padding:10px}.player-counter{padding:8px}.player-quantity-stepper{grid-template-columns:40px minmax(0,1fr) 40px}.player-counter .player-quantity-stepper button{width:40px;min-width:40px}}
@media(prefers-reduced-motion:reduce){.player-deck{transition:none}}
.pe-studio>.player-tabs{display:none}.pe-identity-fields label{align-content:start}.pe-identity-fields input{min-height:48px}.pe-heading>div>p:last-child{margin-bottom:0}
@media(max-width:780px){.pe-heading{margin-bottom:16px;gap:8px}.pe-heading>a{min-height:36px}.pe-studio .player-content{padding-top:20px}.pe-form .player-form-actions{margin-bottom:18px}}
/* Player showcases intentionally keep their art-led dark palette in either site theme. */
.player-profile{--bg:#131619;--bg2:#191f24;--bg3:#263139;--ink:#f3f3ef;--muted:#b0bcc3;--soft:#3b484f;--ac:var(--profile-ac);--ac-soft:#ffffff0b;--ac-ink:#11191d}
.reference-tile>.player-counter{opacity:1}
.player-page:has(>.intro){padding-inline:24px}
.player-page .signin .privacy,.player-page .signin .small{font-size:13px}
@media(max-width:950px){.player-page:has(>.intro){grid-template-columns:minmax(0,1fr);gap:28px}.player-page .intro{max-width:650px}.player-page .signin{width:100%;max-width:540px;justify-self:start}}
@media(max-width:700px){.player-page:has(>.intro){padding:16px;gap:24px}.player-page .intro h1{font-size:clamp(38px,11.5vw,50px)}.player-page .intro .lede{font-size:15px;margin-bottom:0}.player-page .signin{padding:24px 20px}.player-page .signin h2{font-size:36px}}
@media(max-width:600px){
 .player-workspace .player-hero-content>.player-kicker,.player-workspace .player-profile-actions{display:none}
 .player-workspace .player-hero-content{padding:16px 18px}.player-workspace .player-identity{margin:0}
 .player-workspace .player-tabs .player-settings-link{display:none}
 .player-workspace .player-totals{padding-bottom:16px}.player-workspace .player-totals b{font-size:23px}
}

/* Exact finish counts stay visible. No per-card selector or hidden quantity. */
.player-counter[data-collection-counter]{grid-template-columns:minmax(0,1fr);gap:8px;padding:10px;font:13px var(--body)}
.player-counter[data-collection-counter]>.player-counter-heading{display:flex;justify-content:space-between;gap:4px 8px;min-height:0;margin-bottom:2px}
.player-counter[data-collection-counter]>.player-counter-heading>span{font:13px var(--body)}
.player-counter[data-collection-counter]>.player-counter-heading>small{font:13px var(--body);color:var(--muted)}
.player-counter .player-finish-row{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}
.player-finish-label{font:13px/1.4 var(--body);color:var(--muted);overflow-wrap:anywhere}
.player-counter .player-quantity-stepper{display:grid;grid-template-columns:44px minmax(20px,1fr) 44px;align-items:center}
.player-counter .player-quantity-stepper button{min-width:44px;min-height:44px;width:44px;height:44px;color:var(--ink);cursor:pointer}
.player-counter .player-quantity-stepper button:disabled{opacity:.3;cursor:default}
.player-counter .player-quantity-stepper>[data-finish-owned]{display:flex;align-items:center;justify-content:center;min-height:44px;border-inline:1px solid var(--soft);font:600 15px var(--body)}
.player-counter[data-collection-counter] .player-counter-retry{font:13px/1.5 var(--body)}
.player-counter[data-collection-counter] .player-counter-retry button{font:13px var(--body);min-height:44px}
.player-counter button:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.reference-art .player-counter .player-finish-row{grid-template-columns:minmax(0,1fr) minmax(120px,1fr);align-items:center;gap:12px}
@media(max-width:380px){.player-counter[data-collection-counter]{padding:6px}}
/* Compact tile ownership: one row, exact finishes one tap away. */
.player-counter.is-compact{display:block;padding:0;border:1px solid var(--soft);background:transparent}
.player-counter-bar{display:flex;align-items:stretch;min-height:40px}
.player-counter .player-counter-toggle{flex:1;display:flex;align-items:center;gap:6px;min-width:0;margin:0;padding:0 8px 0 10px;border:0;background:transparent;color:var(--ink);font:13px var(--body);text-align:left;cursor:pointer;min-height:40px}
.player-counter-toggle:hover{background:var(--bg2)}
.player-counter-total{white-space:nowrap}
.player-counter.is-compact [data-owned-count]{font-size:14px;color:var(--ac);padding-left:2px}
.player-counter.is-compact[data-owned="0"] [data-owned-count]{display:none}
.player-counter.is-compact[data-owned="0"] .player-counter-total{color:var(--muted)}
.player-counter.is-compact [data-finish-summary]{flex:1 1 auto;flex-basis:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:13px var(--body);color:var(--muted)}
.player-counter.is-compact [data-finish-summary]:not(:empty):before{content:'· '}
.player-counter-toggle>i{flex:none;width:7px;height:7px;margin-left:auto;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.player-counter-toggle[aria-expanded=true]>i{transform:translateY(2px) rotate(-135deg)}
.player-counter .player-counter-quick{flex:none;width:44px;min-width:44px;min-height:40px;margin:0;padding:0;border:0;border-left:1px solid var(--soft);background:transparent;color:var(--ink);font:20px/1 var(--body);cursor:pointer}
.player-counter .player-counter-quick:not(:disabled):hover{background:var(--bg2);color:var(--ac)}
.player-counter .player-counter-quick:disabled{opacity:.35;cursor:default}
.player-counter.is-compact[data-owned="1"]{border-color:color-mix(in srgb,var(--ac) 45%,var(--soft))}
.player-counter.is-compact{position:relative}
.player-counter-finishes{display:grid;gap:6px;padding:8px 8px 8px 10px;border-top:1px solid var(--soft)}
.reference-tile .player-counter-finishes{position:absolute;z-index:6;top:100%;left:-1px;right:-1px;margin-top:4px;border:1px solid var(--soft);background:var(--bg);box-shadow:0 12px 30px #0007}
.player-counter-finishes[hidden]{display:none}
.player-counter.is-compact .player-counter-retry{margin:0 8px 8px}
/* Finish rows: label left, stepper right, in tiles and on the card page. */
.player-counter .player-finish-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}
.player-counter .player-quantity-stepper{grid-template-columns:36px 36px 36px;background:transparent}
.player-counter .player-quantity-stepper button{width:36px;min-width:36px;height:36px;min-height:36px;font:18px var(--body)}
.player-counter .player-quantity-stepper>[data-finish-owned]{min-height:36px;font:600 14px var(--body)}
.player-counter[data-collection-counter]:not(.is-compact){gap:8px;padding:14px}
.player-counter[data-collection-counter]:not(.is-compact)>.player-counter-heading{align-items:baseline;margin-bottom:4px}
.player-counter[data-collection-counter]:not(.is-compact)>.player-counter-heading>span:first-child{font:600 13px var(--body);color:var(--ink)}
.player-counter[data-collection-counter]:not(.is-compact)>.player-counter-heading [data-owned-count]{font-size:15px;color:var(--ac);padding:0}
.player-counter[data-owned="1"]:not(.is-compact){border-color:color-mix(in srgb,var(--ac) 45%,var(--soft))}
@media(pointer:coarse){.player-counter .player-counter-toggle,.player-counter .player-counter-quick,.player-counter-bar{min-height:44px}.player-counter .player-quantity-stepper{grid-template-columns:44px 36px 44px}.player-counter .player-quantity-stepper button{width:44px;min-width:44px;height:44px;min-height:44px}.player-counter .player-quantity-stepper>[data-finish-owned]{min-height:44px}}

/* Foil-only printings: one count, no finish split */
.player-counter.is-compact.is-single .player-counter-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 0 10px;min-height:40px}
.player-counter.is-compact.is-single .player-counter-total{font:13px var(--body);color:var(--ink)}
.player-counter.is-compact.is-single .player-quantity-stepper{grid-template-columns:40px 40px;border-width:0 0 0 1px}
.player-counter.is-compact.is-single .player-quantity-stepper button{width:40px;min-width:40px;height:40px;min-height:40px;font-size:18px}
.player-counter.is-compact.is-single .player-quantity-stepper b{display:none}
.player-counter.is-single .player-finish-label small{display:block;font:13px var(--body);color:var(--muted)}
.player-counter.is-single:not(.is-compact) .player-quantity-stepper b{display:flex;align-items:center;justify-content:center}
.player-deck-info .player-deck-illegal{margin-top:6px;color:#f08a7e;font:13px/1.5 var(--body)}.player-deck-illegal span{display:inline-block;margin-right:6px;padding:0 6px;border:1px solid #f08a7e;font-weight:600;font-size:13px}
/* Profile v2: grails lead, and the owner's name carries a logo-tight slash. */
.player-name-last{white-space:nowrap}.player-name-slash{color:var(--profile-ac);margin-left:.03em}
.player-content>section+section{margin-top:56px}
.player-grail-hero{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:30px}
.player-grail-card{display:block;position:relative;overflow:hidden;border-radius:4.6%/3.3%;background:#101214;box-shadow:0 16px 30px #0009;color:inherit}
.player-grail-card img{display:block;width:100%;height:auto;aspect-ratio:744/1039;object-fit:cover}
.player-grail-hero .player-grail-card{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .15s ease-out}
.player-grail-hero .player-grail-card::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,28%),#ffffff45,#fff0 45%);opacity:0;transition:opacity .2s}
.player-grail-hero .player-grail-card:hover::before{opacity:1}
@media(prefers-reduced-motion:reduce){.player-grail-hero .player-grail-card{transform:none;transition:none}}
.player-grail-meta h3{font:700 clamp(30px,3.4vw,46px)/1 var(--head);text-transform:uppercase;margin:0 0 14px}
.player-chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 14px;padding:0}
.player-chips li{font:13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border:1px solid #4a555b;color:#f3f3ef}
.player-chips li.is-code{text-transform:none;letter-spacing:.02em}
.player-chips li.is-overnumbered,.player-chips li.is-signature{border-color:#edd18e;color:#edd18e}
.player-chips li.is-alternate{border-color:var(--profile-ac);color:var(--profile-ac)}
.player-grail-caption{font:italic 16px/1.5 var(--body);color:#c7ccd2;margin:0;max-width:46ch;overflow-wrap:anywhere}
.player-grail-row,.player-peek-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.player-peek-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.player-grail-row h3,.player-peek-grid h3{font:600 16px/1.25 var(--body);margin:10px 0 4px;text-transform:none;letter-spacing:0}
.player-grail-kind{font:13px/1.45 var(--mono);letter-spacing:.03em;color:#aeb7bc;margin:0}
.player-grail-row .player-grail-caption{font-size:13px;margin-top:6px}
.player-set-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 40px}
.player-set-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.player-set-head h3{font:700 24px/1 var(--head);text-transform:uppercase;margin:0}
.player-set-head span{font:14px var(--mono);font-variant-numeric:tabular-nums}
.player-set progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:8px;border:0;background:#263139;color:var(--profile-ac)}
.player-set progress::-webkit-progress-bar{background:#263139}.player-set progress::-webkit-progress-value{background:var(--profile-ac)}.player-set progress::-moz-progress-bar{background:var(--profile-ac)}
.player-set p{font:13px/1.5 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:#aeb7bc;margin:8px 0 0}
.player-legend-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.player-legend-tiles a{display:flex;align-items:stretch;background:#191f24;border:1px solid var(--profile-line);color:#f3f3ef;min-height:112px}
.player-legend-tiles img{width:132px;height:auto;aspect-ratio:1;object-fit:cover;flex-shrink:0}
.player-legend-tiles span{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px 18px}
.player-legend-tiles small{font:13px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#aeb7bc}
.player-legend-tiles b{font:700 30px/1 var(--head);text-transform:uppercase}
.player-legend-section .player-pick-legend{display:inline-flex;gap:12px;padding:14px 16px;border:1px dashed #4a555b;font:14px var(--body);color:#f3f3ef}
.player-peek>.player-note{margin:-6px 0 14px}
.player-binder-link{display:inline-flex;align-items:center;margin-top:20px}
.player-make-yours{border:1px solid var(--profile-line);background:#191f24;padding:28px 30px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 28px}
.player-make-yours h2{font:700 40px/1 var(--head);text-transform:uppercase;margin:0}
.player-make-yours p{margin:0;color:#c7ccd2;font:16px/1.5 var(--body);grid-column:1}
.player-make-yours .button{grid-column:2;grid-row:1/span 2;display:inline-flex;align-items:center}
.player-binder,.player-qr{padding:28px 32px 40px}
.player-binder-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}
.player-binder-head .player-kicker{margin:0}
.player-binder-head h1{font:700 clamp(40px,5vw,64px)/.95 var(--head);text-transform:uppercase;margin:6px 0 0}
.player-binder .player-collection-filters,.player-binder>.player-note{max-width:760px;margin-inline:auto}
.player-binder-grid{list-style:none;margin:16px auto 20px;padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:760px;background:#191f24;border:1px solid var(--profile-line);box-sizing:border-box}
.player-binder-slot a{display:block}
.player-binder-qty{position:absolute;right:6px;bottom:6px;z-index:3;background:#101010;color:#f3f3ef;font:13px var(--mono);padding:3px 7px}
.player-binder .player-public-pagination{justify-content:center}
.player-binder-qr{display:flex;justify-content:center;max-width:760px;margin:18px auto 0;box-sizing:border-box}
.player-qr{text-align:center}.player-qr .player-binder-head{text-align:left}
.player-qr-code{display:inline-block;padding:20px;background:#f3f3ef;margin:6px auto 16px}
.player-qr-code svg{display:block;width:min(300px,68vw);height:auto}
.player-qr-url{font:15px var(--mono);margin:0 0 8px;overflow-wrap:anywhere}
.player-qr-private{border:1px solid #edd18e;color:#edd18e;padding:12px 14px;font:14px/1.5 var(--body);text-align:left;max-width:520px;margin:0 auto 16px}
.player-qr-actions{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap}
.player-check{display:flex;align-items:center;gap:8px}
.pe-grail-slot{display:grid;gap:8px;align-content:start}
.pe-caption{display:grid;gap:6px;font:13px var(--body);color:#c2c9cc}.pe-caption small{color:#8e989e}
.pe-switch{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:14px;border:1px solid var(--profile-line);background:#191f24;cursor:pointer}
.pe-switch input{width:20px;height:20px;accent-color:var(--profile-ac);margin:2px 0 0;flex-shrink:0}
.pe-switch span{display:grid;gap:4px}.pe-switch b{font:600 15px var(--body)}.pe-switch small{font:13px/1.4 var(--body);color:#aeb7bc}
@media(max-width:780px){
 .player-grail-hero{grid-template-columns:1fr;justify-items:center;text-align:center;gap:18px}
 .player-grail-hero .player-grail-card{width:min(286px,78vw)}
 .player-grail-meta .player-chips{justify-content:center}
 .player-grail-caption{margin-inline:auto}
 .player-grail-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-right:-12px;padding-bottom:6px}
 .player-grail-row>li{flex:0 0 136px;scroll-snap-align:start}
 .player-peek-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 .player-peek-grid h3{font-size:14px}
 .player-set-list{grid-template-columns:1fr}
 .player-legend-tiles{gap:8px}
 .player-legend-tiles a{flex-direction:column;min-height:0}
 .player-legend-tiles img{width:100%;aspect-ratio:1.1}
 .player-legend-tiles span{padding:8px 10px 10px;gap:3px}
 .player-legend-tiles b{font-size:20px}
 .player-legend-tiles small{font-size:13px}
 .player-make-yours{grid-template-columns:1fr;padding:22px 18px}
 .player-make-yours h2{font-size:34px}
 .player-make-yours .button{grid-column:1;grid-row:auto;justify-content:center}
 .player-binder,.player-qr{padding:18px 14px 28px}
 .player-binder-grid{padding:8px;gap:8px}
 .player-profile .player-totals{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
}
.player-code{white-space:nowrap}
@media(min-width:781px){.player-profile:not(.player-workspace) .player-identity h1{font-size:clamp(64px,7vw,112px);line-height:.86;letter-spacing:-1.5px}}
@media(max-width:780px){.player-peek-grid>li:nth-child(n+4){display:none}}
.player-rank-filters{grid-template-columns:minmax(200px,2fr) repeat(2,minmax(140px,1fr)) auto auto;align-items:end}
.player-rank-filters>label{grid-column:auto;min-width:0}
.player-rank-filters .player-check{display:flex;align-items:center;gap:10px;min-height:46px;font:13px var(--body)}
.player-page .player-rank-filters .player-check input{width:20px;height:20px;min-height:0;padding:0;margin:0;accent-color:var(--profile-ac);flex-shrink:0}
.player-rank-filters .button{min-height:46px}
@media(max-width:780px){.player-rank-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.player-rank-filters>label:nth-of-type(1),.player-rank-filters>.player-check,.player-rank-filters>.button,.player-rank-filters>a{grid-column:1/-1}.player-rank-filters>label:nth-of-type(2),.player-rank-filters>label:nth-of-type(3){grid-column:auto}}
.player-qr p{margin-inline:auto;text-align:center;max-width:none}
.player-qr .player-binder-head p{text-align:left;margin-inline:0}
/* The name-slash control is a toggle; outrank the editor's full-width input rule. */
.player-page .pe-switch{flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:16px}
.player-page .pe-switch span{flex:1;min-width:0}
.player-page .pe-switch input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:52px;min-width:52px;height:30px;padding:0;margin:0;border:1px solid #4a555b;border-radius:15px;background:#263139 radial-gradient(circle at 15px 50%,#f3f3ef 10px,transparent 10.5px) no-repeat;cursor:pointer}
.player-page .pe-switch input[type=checkbox]:checked{background:var(--profile-ac) radial-gradient(circle at 36px 50%,#101719 10px,transparent 10.5px) no-repeat;border-color:var(--profile-ac)}
.player-page .pe-switch input[type=checkbox]:focus-visible{outline:2px solid var(--profile-ac);outline-offset:3px}
/* Wide screens: grails are one composition: hero card left; its story, then the other grails, fill the column beside it. */
.player-grail-facts{font:13px/1.5 var(--body);color:#aeb7bc;margin:-4px 0 14px}
@media(min-width:781px) and (max-width:1199px){.player-grail-hero{align-items:center}}
@media(min-width:1200px){
 .player-grails{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);column-gap:48px;align-items:start}
 .player-grails>.player-section-head{grid-column:1/-1}
 .player-grails .player-grail-hero{display:contents}
 .player-grails .player-grail-hero>.player-grail-card{grid-column:1;grid-row:2/span 2}
 .player-grails .player-grail-meta{grid-column:2;grid-row:2;align-self:start;padding-top:4px}
 .player-grails>.player-grail-row{grid-column:2;grid-row:3;align-self:end;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:24px}
 .player-grails:not(:has(.player-grail-row)) .player-grail-meta{grid-row:2/span 2;align-self:center}
}
/* Depth: every grail card tilts toward the pointer; small ones lift. The inspect view shows one card up close. */
.player-grail-card[data-grail-tilt]{transform:perspective(900px) translateY(var(--lift,0px)) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .18s ease-out,box-shadow .18s ease-out}
@media(hover:hover){.player-grail-card[data-grail-tilt=soft]:hover{--lift:-4px;box-shadow:0 22px 36px #000b}}
.player-binder-grid{touch-action:pan-y}
.player-inspect:not([data-accent]){--profile-ac:#6ee3dd}
.player-inspect{border:0;padding:0;margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;background:transparent;color:#f3f3ef;overflow:auto}
.player-inspect::backdrop{background:#090b0dee;backdrop-filter:blur(8px)}
/* The card and its details are one group, centred in the screen; the card column is exactly the card's width. */
.player-inspect[open]{display:grid;grid-template-columns:auto minmax(0,440px);justify-content:center;align-items:center;gap:56px;padding:56px 112px;box-sizing:border-box}
.player-inspect-stage{display:flex;justify-content:center;animation:player-inspect-in .28s cubic-bezier(.2,.8,.2,1) both}
.player-inspect-card{width:min(440px,40vw,calc((100dvh - 112px)*.716));border-radius:4.6%/3.3%;transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .12s ease-out;box-shadow:0 40px 80px #000d}
.player-inspect-card::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,25%),#ffffff38,#fff0 48%)}
.player-inspect-card img{display:block;width:100%;height:auto;aspect-ratio:744/1039}
.player-inspect-info{animation:player-inspect-in .32s .04s cubic-bezier(.2,.8,.2,1) both}
.player-inspect-info h2{font:700 clamp(34px,3.6vw,54px)/.98 var(--head);text-transform:uppercase;margin:0 0 16px}
.player-inspect-info .player-grail-caption{font-size:18px;margin:4px 0 22px}
.player-inspect-info .button{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid #4a555b;color:#f3f3ef;font:14px var(--body);background:#1a2024}
.player-inspect-info .button:hover{border-color:var(--profile-ac);color:var(--profile-ac)}
.player-inspect-count{font:13px var(--mono);letter-spacing:.08em;color:var(--profile-ac);margin:0 0 10px}
.player-inspect-close,.player-inspect-prev,.player-inspect-next{position:fixed;display:grid;place-items:center;width:52px;height:52px;border:1px solid #4a555b;background:#131619cc;color:#f3f3ef;font:28px/1 var(--body);cursor:pointer;z-index:3}
.player-inspect-close{top:18px;right:18px}
.player-inspect-prev,.player-inspect-next{top:50%;transform:translateY(-50%);border-radius:50%}
.player-inspect-prev{left:24px}.player-inspect-next{right:24px}
.player-inspect :is(button,a):focus-visible{outline:2px solid var(--profile-ac);outline-offset:3px}
@keyframes player-inspect-in{from{opacity:0;transform:translateY(14px) scale(.96)}}
@media(max-width:780px){
 .player-inspect[open]{grid-template-columns:1fr;align-content:start;justify-items:center;text-align:center;gap:22px;padding:72px 20px 40px}
 .player-inspect-stage{justify-content:center}
 .player-inspect-card{width:min(330px,80vw)}
 .player-inspect-info .player-chips{justify-content:center}
 .player-inspect-info .player-grail-caption{margin-inline:auto}
 .player-inspect-prev,.player-inspect-next{top:auto;bottom:18px;transform:none;width:48px;height:48px}
 .player-inspect-prev{left:18px}.player-inspect-next{right:18px}
 .player-inspect-close{top:12px;right:12px;width:48px;height:48px}
}
@media(prefers-reduced-motion:reduce){.player-grail-card[data-grail-tilt],.player-inspect-card{transform:none;transition:none}.player-inspect-stage,.player-inspect-info{animation:none}}
.player-inspect-close{border-radius:50%}
/* Share dialog: see your link preview, then share the link or a story image. */
.player-share-preview{margin:14px 0 12px;display:grid;gap:8px}
.player-share-shot{display:grid;aspect-ratio:1200/630;background:#191f24;border:1px solid var(--profile-line)}
.player-share-shot>*{grid-area:1/1}
.player-share-wait{place-self:center;font:14px var(--body);color:#aeb7bc}
.player-share-preview img{display:block;width:100%;height:100%;object-fit:cover}
.player-share-preview figcaption{font:13px/1.5 var(--body);color:#aeb7bc}
.player-share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}
/* Hero, third pass: identity only. The Legend art sits behind the name, the brag stats read under it,
   and actions stay out of the way, so the grails reach the first screen on every device. */
.player-profile .player-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;min-height:0}
.player-profile .player-hero>.player-hero-content{grid-column:1;grid-row:1;max-width:none}
.player-profile:not(.player-workspace) .player-hero>.player-hero-content{padding:44px 38px 38px}
.player-profile .player-hero>.player-profile-actions{grid-column:2;grid-row:1;margin:0;padding:32px 36px 0 0;flex-wrap:nowrap}
.player-profile .player-hero .player-identity{margin:0}
.player-profile .player-hero .player-hero-content>.player-kicker{margin:0 0 18px}
.player-profile .player-hero .player-hero-content>.player-kicker:empty{display:none}
.player-profile .player-hero .player-totals{position:static;display:flex;flex-wrap:wrap;gap:8px 28px;margin:24px 0 0;padding:0;grid-template-columns:none}
.player-profile .player-hero .player-totals>div{display:flex;align-items:baseline;gap:8px}
.player-profile .player-hero .player-totals b{font:700 34px/1 var(--head);letter-spacing:0}
.player-profile .player-hero .player-totals span{font:14px/1.2 var(--body);max-width:none;color:#c9ced3}
.player-profile .player-hero .player-bio{margin:16px 0 0}
.player-workspace .player-hero>.player-hero-content{padding:24px 38px}
.player-workspace .player-hero .player-totals{margin-top:14px}
.player-workspace .player-hero .player-totals b{font-size:24px}
.player-workspace .player-hero>.player-profile-actions{padding-top:22px}
@media(max-width:950px){
 .player-profile:not(.player-workspace) .player-hero>.player-hero-content,.player-workspace .player-hero>.player-hero-content{padding-left:25px;padding-right:25px}
 .player-profile .player-hero>.player-profile-actions{padding-right:25px}
}
@media(max-width:780px){
 .player-profile .player-hero{grid-template-columns:minmax(0,1fr)}
 .player-profile .player-hero>.player-profile-actions{grid-column:1;grid-row:2;padding:0 25px 24px;flex-wrap:wrap}
 .player-profile:not(.player-workspace) .player-hero>.player-hero-content{padding-bottom:20px}
}
@media(max-width:600px){
 .player-profile:not(.player-workspace) .player-hero-art{inset:0;height:auto;opacity:.55}
 .player-profile:not(.player-workspace) .player-hero-art img{object-position:50% 30%}
 .player-profile:not(.player-workspace) .player-hero:after{background:linear-gradient(180deg,#13161955 0%,#131619bb 55%,#131619 100%)}
 .player-profile:not(.player-workspace) .player-hero>.player-hero-content{padding:22px 18px 18px}
 .player-profile .player-hero .player-totals{gap:6px 20px;margin-top:16px}
 .player-profile .player-hero .player-totals b{font-size:26px}
 .player-profile .player-hero .player-totals span{font-size:13px}
 .player-profile .player-hero>.player-profile-actions{padding:0 18px 20px;gap:8px 14px}
 .player-profile .player-hero>.player-profile-actions .button{min-height:40px;padding:0 16px;display:inline-flex;align-items:center}
 .player-workspace .player-hero>.player-hero-content{padding:16px 18px}
 .player-workspace .player-hero .player-totals b{font-size:21px}
}
/* Grail meta: the kind reads above the code, never a separator stranded at a line end. */
.player-grail-kind>span{display:block}
.player-set p{display:flex;justify-content:space-between;gap:12px;font:13px/1.5 var(--body);letter-spacing:0;text-transform:none}
.player-set p span{font:13px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
/* One share sheet: QR for the table, link for a DM, Story for socials. */
.player-share-dialog:has(.player-share-sheet){width:min(780px,calc(100vw - 32px))}
.player-share-dialog.is-visitor{width:min(600px,calc(100vw - 32px))}
.player-share-sheet{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:26px;align-items:start;margin:20px 0 8px}
.player-share-qr{margin:0;display:grid;gap:10px;justify-items:center;text-align:center}
.player-share-qr img{display:block;width:100%;height:auto;aspect-ratio:1;background:#f3f3ef;padding:10px;box-sizing:border-box;image-rendering:pixelated}
.player-share-qr figcaption{font:13px/1.5 var(--body);color:#aeb7bc}
.player-share-qr a{color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.player-share-main>p{margin-top:0}
.player-share-main .player-share-actions{margin:0 0 16px}
.player-share-main .player-share-preview{margin:0}
@media(max-width:620px){
 .player-share-sheet{grid-template-columns:minmax(0,1fr);gap:18px}
 .player-share-qr img{width:min(220px,64vw)}
 .player-share-main .player-share-actions .button{flex:1 1 auto;justify-content:center}
}
/* The binder lies open: one nine-pocket page on phones, a two-page spread with a spine on wider screens. */
.player-binder .player-binder-head{margin-bottom:16px}
.player-binder .player-binder-head h1{font-size:clamp(34px,3.6vw,48px)}
.player-binder-book{max-width:760px;margin:0 auto}
.player-binder-filter{margin:0 0 14px}
.player-binder-filter>summary{display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none}
.player-binder-filter>summary::-webkit-details-marker{display:none}
.player-binder-filter>summary .button{display:inline-flex;align-items:center;min-height:40px;padding:0 16px}
.player-binder-filter>summary .button:after{content:'⌄';margin-left:8px;transform:translateY(-3px)}
.player-binder-filter[open]>summary .button{border-color:var(--profile-ac);color:var(--profile-ac)}
.player-binder-filter>summary .player-note{margin:0;min-width:0}
.player-binder .player-binder-filter>.player-collection-filters{max-width:none;margin:12px 0 0}
.player-binder-spread{display:flex;justify-content:center;margin:0 auto 18px}
.player-binder-spread>.player-binder-grid{margin:0;width:100%}
.player-binder-right,.player-binder-pager.is-spread{display:none}
@media(min-width:900px){
 .player-binder-book{max-width:none;width:fit-content;min-width:min(100%,760px)}
 .player-binder-book .player-binder-qr{max-width:none}
 .player-binder-spread{--pocket:clamp(118px,calc((100svh - 330px)/3*.716),205px)}
 .player-binder-spread>.player-binder-grid{grid-template-columns:repeat(3,var(--pocket));width:auto;max-width:none;padding:14px;gap:10px}
 .player-binder-spread>.player-binder-right{display:grid;border-left:0;box-shadow:inset 22px 0 26px -22px #000}
 .player-binder-spread:not(.is-single)>.player-binder-left{border-right:2px solid #0b0d0f;box-shadow:inset -22px 0 26px -22px #000}
 .player-binder-pager.is-page{display:none}
 .player-binder-pager.is-spread{display:flex}
}
.player-binder-slot.is-empty{box-sizing:border-box;aspect-ratio:744/1039;border:1px solid #2a3338;background:linear-gradient(160deg,#ffffff06,#ffffff00 40%);border-radius:4.6%/3.3%}
.player-share-dialog[data-accent] .button.primary{background:var(--profile-ac);border-color:var(--profile-ac);color:#101719}
.player-share-dialog[data-accent] .heading-slash{color:var(--profile-ac)}
/* Owner bar: every control the owner has, in one strip above the page everyone else sees. */
.player-owner-bar{display:flex;align-items:center;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;margin:0;padding:10px 36px 10px 38px;border:0;border-bottom:1px solid var(--profile-line);background:#0e1113;font:14px/1.4 var(--body)}
.player-owner-status{display:flex;align-items:center;gap:10px;min-height:38px;margin:0;padding:0;border:0;background:none;color:#f3f3ef;font:inherit;text-align:left}
button.player-owner-status{cursor:pointer}
button.player-owner-status:after{content:'Change';margin-left:4px;color:var(--profile-ac);font-size:13px;text-decoration:underline;text-underline-offset:4px}
button.player-owner-status:hover b{color:var(--profile-ac)}
.player-owner-status i{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#79d69a;box-shadow:0 0 0 4px #79d69a26}
.player-owner-status.is-private i{background:#edd18e;box-shadow:0 0 0 4px #edd18e26}
.player-owner-status.is-preview i{background:var(--profile-ac);box-shadow:0 0 0 4px #ffffff14}
.player-owner-status b{font-weight:600}
.player-owner-status span{color:#aeb7bc}
.player-owner-actions{display:flex;align-items:center;gap:6px 22px;flex-wrap:wrap}
.player-owner-actions>a:not(.button){color:#c9ced3;text-underline-offset:4px}
.player-owner-actions>a:not(.button):hover{color:var(--profile-ac);text-decoration:underline}
.player-profile .player-owner-actions .button{display:inline-flex;align-items:center;min-height:38px;padding:0 16px;margin:0;border:1px solid var(--profile-line);background:#1a2024;color:#f3f3ef;font:13px var(--body)}
.player-profile .player-owner-actions .button:hover{border-color:var(--profile-ac);color:var(--profile-ac)}
.player-owner-actions .is-narrow{display:none}
.pe-studio>.player-owner-bar{display:none}
@media(max-width:950px){.player-owner-bar{padding-inline:25px}}
/* Phones keep the bar to one row: the status taps open, Preview is short, and Settings stays in the account menu. */
@media(max-width:600px){
 .player-owner-bar{padding:8px 18px;gap:4px 16px;flex-wrap:nowrap}
 .player-owner-status span{display:none}
 button.player-owner-status:after{content:'⌄';margin-left:0;color:#aeb7bc;text-decoration:none;transform:translateY(-3px)}
 .player-owner-actions{flex-wrap:nowrap}
 .player-owner-actions .is-wide,.player-owner-settings{display:none}
 .player-owner-actions .is-narrow{display:inline}
 .player-owner-actions{gap:4px 16px;font-size:13px}
 .player-profile .player-owner-actions .button{min-height:36px;padding:0 12px}
}
/* CSS foil: the fallback where the WebGL renderer cannot run (.no-holo). Fine spectral bands behind a soft
   moving window of light, soft-light blended with the alpha in the colours, which Safari and Chrome draw alike.
   On the lead grail it drifts and follows the pointer on hover; in the inspect view it sweeps once, then follows. */
:is(.player-grail-hero,.player-inspect-stage) .player-grail-card.foil.no-holo::after{
 content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;
 background-image:repeating-linear-gradient(118deg,#f7a6b466 0%,#f4d79c66 1.6%,#b6f0c866 3.2%,#9fdcf266 4.8%,#bcb0f566 6.4%,#f0a8dc66 8%,#f7a6b466 9.6%);
 background-size:300% 300%;background-position:35% 35%;mix-blend-mode:soft-light;
 -webkit-mask-image:linear-gradient(118deg,#0000 38%,#0008 45%,#000 50%,#0008 55%,#0000 62%);mask-image:linear-gradient(118deg,#0000 38%,#0008 45%,#000 50%,#0008 55%,#0000 62%);
 -webkit-mask-size:320% 320%;mask-size:320% 320%;-webkit-mask-position:50% 50%;mask-position:50% 50%;
 animation:player-foil-drift 16s cubic-bezier(.45,0,.55,1) infinite
}
@keyframes player-foil-drift{
 0%,100%{-webkit-mask-position:108% 108%;mask-position:108% 108%;background-position:20% 20%}
 50%{-webkit-mask-position:-8% -8%;mask-position:-8% -8%;background-position:55% 55%}
}
@media(hover:hover){.player-grail-hero .player-grail-card.foil.no-holo:hover::after{animation:none;-webkit-mask-position:calc(100% - var(--glare-x,50%)) calc(100% - var(--glare-y,50%));mask-position:calc(100% - var(--glare-x,50%)) calc(100% - var(--glare-y,50%));background-position:calc(var(--glare-x,50%)*.7) calc(var(--glare-y,50%)*.7)}}
.player-inspect-stage .player-inspect-card.foil.no-holo::after{animation:player-foil-open 1.9s cubic-bezier(.2,.7,.2,1) .15s 1 backwards;-webkit-mask-position:calc(100% - var(--glare-x,50%)) calc(100% - var(--glare-y,50%));mask-position:calc(100% - var(--glare-x,50%)) calc(100% - var(--glare-y,50%));background-position:calc(var(--glare-x,50%)*.7) calc(var(--glare-y,50%)*.7)}
@keyframes player-foil-open{from{-webkit-mask-position:110% 110%;mask-position:110% 110%;background-position:10% 10%}}
@media(prefers-reduced-motion:reduce){:is(.player-grail-hero,.player-inspect-stage) .player-grail-card.foil.no-holo::after{animation:none}}
/* The holo renderer draws over the art once it has the pixels; the CSS foil and glare step aside for it. */
/* The canvas rounds its own corners: Safari can let a composited child escape a tilted parent's clip. */
.player-holo{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .7s ease}
.has-holo>.player-holo{opacity:1}
/* Loading reads as the light switching on: the plain print first, then the lit canvas fades up.
   The CSS foil appears only on .no-holo cards, where the renderer cannot run. */
.player-grail-card.has-holo::before{display:none}
/* Inspect: the card already on screen holds the frame until the full size is ready, then fades up. */
.player-inspect-card .player-inspect-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(2px);transform:scale(1.01)}
.player-inspect-card .player-inspect-full{position:relative;opacity:0;transition:opacity .35s ease}
.player-inspect-card .player-inspect-full.is-loaded{opacity:1}
.player-inspect-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:780px){.player-inspect-actions{justify-content:center}}
/* Phones: the collection filters fit in about a fifth of the screen, so the cards show first. */
@media(max-width:780px){.player-collection-filters{gap:10px;padding:12px}.player-collection-filters>label:not(.player-check)>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.player-collection-filters .card-browse-mode>p{font-size:13px;margin:4px 0 0}.player-rank-filters>.player-check{grid-column:1;min-height:46px;line-height:1.3}.player-rank-filters>.button{grid-column:2}}
@media(pointer:coarse){.player-section-head>a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}}
/* Safari ignores the height of a native select, so these draw their own chevron and match the inputs. */
.player-page select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 19px) 50%,calc(100% - 14px) 50%;background-size:5px 5px;background-repeat:no-repeat}
@media(pointer:coarse){.player-owner-actions>a:not(.button){min-height:44px;line-height:44px}}

/* Signed out: Add cards and Sign in sit side by side at one height. */
.player-nav:has(.player-add) .player-signin{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;white-space:nowrap}
/* Phones: Sign in reads as a plain link like Menu, so the wordmark keeps its room. */
@media(max-width:480px){.player-nav:has(.player-signin){gap:4px}.player-nav:has(.player-add) .player-signin{border-color:transparent;padding:0 6px}}
@media(max-width:380px){.site-header:has(.player-signin) .wordmark{font-size:28px}.player-nav:has(.player-signin) .player-add{padding:0 9px}}
.player-deck-playing{display:inline-block;margin:0 0 6px;padding:1px 8px;border:1px solid var(--ac);color:var(--ac);font:600 13px/1.5 var(--body)}
/* Playing now: the deck its owner is playing, one tap from its code. */
.player-playing{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--profile-ac);background:linear-gradient(90deg,color-mix(in srgb,var(--profile-ac) 12%,transparent),transparent 60%),#101315}
.player-playing-main{flex:1 1 280px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;color:#f3f3ef;text-decoration:none}
.player-playing-art{width:64px;height:64px;overflow:hidden;border-radius:50%;border:2px solid var(--profile-ac);background:#1a2024}
.player-playing-art img{display:block;width:100%;height:100%;object-fit:cover}
.player-playing-copy{display:grid;gap:3px;min-width:0}
.player-playing-copy small{font:600 13px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--profile-ac)}
.player-playing-copy b{font:700 26px/1.05 var(--head);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-playing-copy span{font-size:14px;color:var(--profile-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-playing-open{font-size:22px;color:var(--profile-ac);transition:transform .15s}
.player-playing-main:hover b,.player-playing-main:focus-visible b{color:var(--profile-ac)}
.player-playing-main:hover .player-playing-open{transform:translateX(4px)}
@media(max-width:600px){.player-playing{padding:12px}.player-playing .button{flex:1 1 100%;justify-content:center}.player-playing-copy b{font-size:22px}}
@media(prefers-reduced-motion:reduce){.player-playing-open{transition:none}}
.player-deck-info>p.player-deck-count{font:13px/1.6 var(--body);color:#acb6bd}
.player-deck-setting{display:inline-block;margin:0 0 8px;padding:2px 8px;border:1px solid var(--profile-line);font:13px/1.4 var(--body);color:#c9ced3}
.player-deck-setting.is-community{border-color:var(--profile-ac);color:var(--profile-ac)}

/* Visibility: one status line, the consent row as a real control, the action right under it. */
.player-share-state{font-size:17px}
.player-share-dialog .player-share-confirm,#profile-sharing .player-share-confirm{padding:14px 16px;border:1px solid var(--soft);cursor:pointer;margin:18px 0 14px;transition:border-color .15s,background .15s}
.player-share-confirm:has(input:checked){border-color:var(--profile-ac,var(--ac));background:color-mix(in srgb,var(--profile-ac,var(--ac)) 7%,transparent)}
.player-share-confirm input{accent-color:var(--profile-ac,var(--ac))}
.player-visibility-form .button{min-height:48px}
.player-visibility-form .player-note{margin:14px 0 0}
@media(max-width:620px){.player-visibility-form .button{width:100%}}
.player-share-required{display:none;margin:-4px 0 12px;font:13px/1.5 var(--body);color:#f0b3a8}
.player-visibility-form:has(input:user-invalid) .player-share-required{display:block}
.player-share-confirm:has(input:user-invalid){border-color:#c47e76}
/* Nothing to save reads as settled, not as a broken bright button. */
.pe-form .player-form-actions button[type=submit]:disabled{opacity:1;background:transparent;border-color:#46565e;color:#9fb0b9}
.player-owner-status{min-height:44px}
.player-menu summary{min-height:44px;min-width:44px;justify-content:center}
/* Phones: the ways to share come first; the QR follows for showing across the table. */
@media(max-width:620px){.player-share-main{order:-1}.player-share-qr{max-width:200px;margin:0 auto}.player-share-qr a{display:inline-block;padding:12px 4px;margin:-12px 0}}
.player-page .profile-form label span{font-size:13px;line-height:1.5}
@media(max-width:620px){.player-page .profile-form button{justify-self:stretch;min-height:48px}}

/* Mobile polish: builder, Add cards, collection. */
.player-filter-toggle{display:none}
@media(max-width:620px){.player-collection-intro{font-size:13px;margin:0 0 4px}.player-collection-intro>span{display:none}.player-page .player-owner-filters{grid-template-columns:minmax(0,1fr) auto;padding:10px 0;margin:14px 0 8px}.player-owner-filters>label:first-child{grid-column:1}.player-owner-filters>:not(label:first-child,.player-filter-toggle){grid-column:1/-1}.player-owner-filters:not(.is-open)>:not(label:first-child,.player-filter-toggle,.player-clear){display:none}.player-profile .player-filter-toggle{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 16px;font:15px var(--body)}.player-filter-toggle:after{content:'⌄';transform:translateY(-3px)}.player-owner-filters.is-open .player-filter-toggle{border-color:var(--profile-ac);color:var(--profile-ac)}.player-filter-toggle b{min-width:20px;padding:1px 6px;border-radius:10px;background:var(--profile-ac);color:#101719;font:600 13px/18px var(--body);text-align:center}.player-filter-toggle b:empty{display:none}}


/* Mobile polish: browse. The profile's hero actions read at body size on phones. */
@media(max-width:620px){.player-profile .player-hero>.player-profile-actions .button{min-height:44px;font:600 14px var(--body)}}
/* Profile marks (PROFILE-MARKS.md). Founder reads like a collector number; Signature prints the name in foil.
   Foil, top layer first: a shine that sweeps across every 8s, chrome shading (bright edges, a dark horizon
   through the middle), then holo colour bands drifting under it. The share images use the same layers. */
.player-marks{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.player-mark{display:inline-flex;align-items:center;gap:9px;padding:6px 10px;border:1px solid var(--profile-ac);background:#131619b3;color:var(--profile-ac);font:13px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:default}
.player-mark b{font-weight:400;color:#f3f3ef}
.player-mark.is-signature{border-color:transparent;color:#f3f3ef;background:linear-gradient(#171b1e,#171b1e) padding-box,linear-gradient(100deg,#c9ccd3,#fff 12%,#f2b8c9 24%,#fbe3a6 33%,#fff 42%,#a9e3f3 55%,#c8b9f6 66%,#fff 76%,#bfeed2 88%,#c9ccd3) border-box}
.player-name-foil{background-image:linear-gradient(105deg,transparent 40%,#ffffffe6 50%,transparent 60%),linear-gradient(180deg,#ffffff8c 0%,#fff0 30%,#181c266b 50%,#fff0 64%,#ffffff66 100%),linear-gradient(100deg,#f7a8c8 0%,#ffe08a 12%,#fff6e0 20%,#9ef0d0 30%,#8fd8ff 40%,#c4b2ff 50%,#f7a8c8 60%,#ffe08a 72%,#fff6e0 80%,#9ef0d0 90%,#f7a8c8 100%);background-size:250% 100%,100% 100%,200% 100%;background-repeat:no-repeat,no-repeat,repeat;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:player-name-foil 8s linear infinite}
.player-name-foil .player-name-slash{color:transparent}
@keyframes player-name-foil{0%{background-position:160% 0,0 0,0% 0}40%{background-position:-60% 0,0 0,80% 0}100%{background-position:-60% 0,0 0,200% 0}}
.player-mark-note{margin:0 0 19px;max-width:440px;padding:11px 15px;border-left:2px solid var(--profile-ac);background:#ffffff0a}
.player-mark-note blockquote{margin:0;font:15px/1.55 var(--body);color:#eef0ef;overflow-wrap:anywhere}
.player-mark-note figcaption{margin-top:5px;font:13px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#adb2bb}
.player-mark-note figcaption span[aria-hidden]{color:var(--profile-ac)}
@media(prefers-reduced-motion:reduce){.player-name-foil{animation:none;background-position:-60% 0,0 0,35% 0}}
.pe-marks-field .pe-switch{margin-top:10px}.pe-marks-field .pe-switch small{overflow-wrap:anywhere}
.pe-preview-identity .player-marks{margin-top:10px;gap:6px}.pe-preview-identity .player-mark{padding:4px 7px;font-size:13px;gap:6px}
.player-profile .player-hero .player-mark-note{margin:16px 0 0}.player-workspace .player-mark-note{display:none}.player-workspace .player-marks{margin-top:8px}
/* Signature smoke (site/players/smoke.mjs). The canvas sits over the hero art and its shade; the handle,
   badges, bio and stats lift above it. The name's own text turns transparent only once smoke has drawn,
   so anything that stops the smoke leaves the foil name in place. */
.player-smoke{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.has-smoke :is(.player-handle,.player-marks,.player-bio,.player-mark-note,.player-avatar,.pe-avatar,.pe-preview-identity>span){position:relative;z-index:1}
.has-smoke .player-totals{z-index:1}
.is-smoke,.is-smoke *{color:transparent!important;-webkit-text-fill-color:transparent!important;background:none!important;animation:none!important}
.pe-smoke{margin-top:18px;padding:18px;border:1px solid var(--profile-line);background:linear-gradient(160deg,#ffffff0a,#ffffff02)}
.pe-smoke-head h4{font:700 22px/1 var(--head);text-transform:uppercase;margin:0 0 8px}
.pe-smoke-head p{font:13px/1.6 var(--body);color:#aeb7bc;margin:0}
.pe-smoke .pe-switch{margin-top:14px}
.pe-smoke-options{display:grid;gap:18px;margin-top:18px}
.pe-smoke-options[hidden]{display:none}
.pe-seg{border:0!important;margin:0!important;padding:0!important;min-width:0}
.pe-seg legend{font:13px var(--mono)!important;letter-spacing:.08em;text-transform:uppercase;color:#aeb7bc;margin-bottom:8px;padding:0!important}
.pe-seg>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.pe-seg label{position:relative;display:block;cursor:pointer;min-width:0}
.pe-seg input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pe-seg label>span{display:grid;gap:4px;height:100%;padding:11px 12px;border:1px solid #3a474f;background:#161c20;transition:border-color .15s,background-color .15s}
.pe-seg b{font:600 14px var(--body);color:#eef1f0}
.pe-seg small{font:13px/1.45 var(--body);color:#9fabb2}
.pe-seg label:hover>span{border-color:#5d6c74}
.pe-seg input:checked+span{border-color:var(--profile-ac);background:color-mix(in srgb,var(--profile-ac) 11%,#161c20);box-shadow:inset 0 0 0 1px var(--profile-ac)}
.pe-seg input:checked+span b{color:var(--profile-ac)}
.pe-seg input:focus-visible+span{outline:2px solid var(--profile-ac);outline-offset:2px}
.pe-smoke-play{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pe-smoke-play span{font:13px/1.5 var(--body);color:#9fabb2}
@media(prefers-reduced-motion:reduce){.pe-seg label>span{transition:none}}

/* Account settings share the profile panel's width: the heading and actions across, the sections in two columns. */
.account.account-settings{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;align-items:start;padding:36px 38px}
.account-settings>*{grid-column:1/-1}
.account-settings>section.connections{grid-column:auto;margin:28px 0 8px}
.account-settings .player-back{font:500 15px var(--body)}
@media(max-width:900px){.account.account-settings{grid-template-columns:minmax(0,1fr);padding:24px 18px}}

/* Teardown fixes, Oct 1. */
.player-set p{max-width:none}
.player-avatar-mini.has-art{padding:0;overflow:hidden}
.player-avatar-mini img{display:block;width:100%;height:100%;object-fit:cover}
.player-profile.pe-studio>.player-hero{display:none}
.player-deck-art>span{font:600 13px var(--body);letter-spacing:0}
.player-deck-art:empty:before{content:'Your next idea';font:600 14px var(--body)}
.player-deck-grid:has(>.player-deck:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:701px){
 .player-deck-grid:has(>.player-deck:only-child){grid-template-columns:minmax(0,1fr)}
 .player-deck-grid>.player-deck:only-child{display:grid;grid-template-columns:minmax(0,1fr)}
 .player-deck-grid>.player-deck:only-child>.player-deck-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
 .player-deck-grid>.player-deck:only-child .player-deck-art{aspect-ratio:auto;min-height:230px}
 .player-deck-grid>.player-deck:only-child .player-deck-info{align-self:center;padding:24px 28px}
}
/* Binder: pockets sized so a laptop screen shows the whole spread and its pager. */
.player-binder-spread{--pocket:clamp(88px,calc((100svh - 410px)/3*.716),205px)}
.player-binder-book>.player-binder-head{margin-bottom:14px}
.player-binder-book .player-binder-qr{display:flex;width:fit-content;margin:8px auto 0}
.player-binder .player-binder-pager{margin-top:4px}
.player-binder-jump{display:flex;align-items:center;gap:8px;margin-left:12px}
.player-binder-jump label{font:14px var(--body);color:var(--profile-muted);white-space:nowrap}
.player-binder-jump select{min-height:44px;padding:0 10px;background:#191f24;color:#f3f3ef;border:1px solid var(--profile-line);font:15px var(--body)}
.player-binder-jump .button{min-height:44px}
@media(max-width:700px){.player-binder-jump{margin:10px 0 0;flex-basis:100%;justify-content:center}}
.player-legend-tiles small{font:600 14px var(--body);letter-spacing:0;text-transform:none}
.pe-mini-deck>span:first-child{display:none}
.account-settings .small a,.account-settings .muted a{color:var(--ac);text-decoration:underline;text-underline-offset:3px}
/* Deck tiles name their domains with dots like every other deck list on the site. */
.player-deck-domains{display:flex;flex-wrap:wrap;gap:2px 12px;margin:0 0 6px;color:var(--profile-muted);font:14px/1.45 var(--body)}
.player-deck-domains>span{display:inline-flex;align-items:center;gap:6px}
.player-profile .domain-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--soft)}
.player-profile .domain-fury{background:var(--fury)}.player-profile .domain-calm{background:var(--calm)}.player-profile .domain-mind{background:var(--mind)}.player-profile .domain-body{background:var(--body-color)}.player-profile .domain-chaos{background:var(--chaos)}.player-profile .domain-order{background:var(--order)}
/* Phone grail rail: a thin bar in the profile line colour and a fade at the open edge that says the row keeps going. */
@media(max-width:780px){.player-grail-row{scrollbar-width:thin;scrollbar-color:var(--profile-line) transparent;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 44px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 44px),#0000)}.player-grail-row[data-end]{-webkit-mask-image:none;mask-image:none}}
/* Owner's set bars are links to the missing cards. */
a.player-set{display:block;color:inherit;text-decoration:none}
.player-set-missing{display:inline-block;margin-top:8px;color:var(--profile-ac);font:600 14px/1.4 var(--body)}
a.player-set:hover .player-set-missing{text-decoration:underline;text-underline-offset:3px}
a.player-set:focus-visible{outline:2px solid var(--profile-ac);outline-offset:6px}

/* Deck library: every tile's Edit deck row sits at the same height; names keep their own case, two lines at most. */
.player-deck{display:flex;flex-direction:column}.player-deck-main{flex:1 0 auto}
.player-deck-info h3{text-transform:none;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
/* A card taken to 0 on the Owned list stays in place, dimmed, with Undo (players/client.mjs ghost()). */
.player-collection-grid>.is-removed{position:relative}.player-collection-grid>.is-removed>:not(.player-ghost){opacity:.3;pointer-events:none}.player-ghost{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:10px;font:600 15px var(--body);color:var(--ink)}.player-ghost button{min-height:44px;padding:0 18px;border:1px solid var(--ink);background:var(--bg);color:var(--ink);font:600 15px var(--body);cursor:pointer}
/* One stepper (C-22): − count +, 44 px targets, only as wide as its content, wherever it sits. */
:root .player-counter .player-quantity-stepper{display:inline-grid;width:fit-content;max-width:100%;grid-template-columns:44px minmax(36px,auto) 44px;align-items:stretch;justify-self:end}
:root .player-counter .player-quantity-stepper button{width:44px;min-width:44px;height:44px;min-height:44px}
:root .player-counter .player-quantity-stepper>:is(b,[data-finish-owned],[data-single-owned]){min-width:36px;padding:0 6px}
:root .player-counter.is-compact.is-single .player-quantity-stepper{grid-template-columns:44px 44px}
:root .player-counter.is-compact.is-single .player-quantity-stepper button{width:44px;min-width:44px;height:44px;min-height:44px;font-size:18px}
:root .pe-clear{width:44px;min-width:44px;height:44px}
/* Collection tab (W2b, Rethink 2): a tool, not a profile section. The hero is one identity row and the
   section intro steps aside at every width; on phones the owner bar and heading step aside too, and search
   with Owned / Missing / All stays pinned under the header, so the first cards start on the first screen. */
.player-scope{margin:0;padding:0;min-width:0}
.player-scope span{white-space:nowrap}
.player-page .player-owner-filters:not(.is-open)>.player-scope{display:flex}
.player-page .player-owner-filters>.player-scope{grid-column:auto;align-self:end}
.player-page .player-collection-filters .player-scope span{min-height:46px;display:flex;align-items:center;justify-content:center;padding:0 12px;box-sizing:border-box;font-size:14px}
.player-profile.player-tab-collection .player-hero{min-height:0;background:#131619}
.player-profile.player-tab-collection .player-hero:after{display:none}
.player-profile.player-tab-collection .player-hero :is(.player-hero-art,.player-hero-pattern,.player-totals,.player-marks,.player-handle,.player-mark-note,.player-profile-actions){display:none}
.player-profile.player-tab-collection .player-hero>.player-hero-content{padding:14px 38px}
.player-profile.player-tab-collection .player-identity{gap:12px;align-items:center;margin:0}
.player-profile.player-tab-collection .player-avatar{width:40px;height:40px;font-size:22px}
.player-profile.player-tab-collection .player-identity h1{font-size:28px;margin:0}
.player-tab-collection .player-collection-intro{display:none}
.player-tab-collection .player-section-head{margin-bottom:0}
.player-tab-collection .player-section-head h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:700px){
 .player-tab-collection>.player-owner-bar{display:none}
 .player-profile.player-tab-collection .player-hero>.player-hero-content{padding:10px 16px}
 .player-profile.player-tab-collection .player-avatar{width:36px;height:36px;font-size:20px}
 .player-profile.player-tab-collection .player-identity h1{font-size:24px}
 .player-tab-collection .player-section-head{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
 .player-page:has(.player-tab-collection){margin-top:6px}
 .player-profile.player-tab-collection .player-content{padding-top:4px}
 .player-tab-collection [data-collection-results]{margin:4px 0 12px}
 .player-tab-collection .player-owner-filters>.player-scope{grid-column:1/-1}
 .player-page .player-tab-collection .player-scope span{min-height:44px;padding:0 10px}
}
/* Where Filters folds away (620 px and below), search and the scope stay pinned. Open, the panel stays
   pinned too and scrolls inside itself, so opening it mid-list never sends it off screen. The side shadows
   cover the gutters, so no tile shows beside the bar. */
@media(max-width:620px){
 .player-page .player-tab-collection .player-owner-filters{position:sticky;top:var(--top-bar,0px);z-index:6;margin:0;padding:8px 0;gap:8px;background:var(--bg);grid-template-columns:minmax(0,1fr) auto;box-shadow:-16px 0 var(--bg),16px 0 var(--bg)}
 .player-page .player-tab-collection .player-owner-filters.is-open{max-height:calc(100dvh - var(--top-bar,0px) - 16px);overflow-y:auto;overscroll-behavior:contain}
}
@media(min-width:621px) and (max-width:700px){
 .player-page .player-tab-collection .player-owner-filters{margin:0 0 4px;padding:8px 0;gap:8px}
}
/* Tablets and narrow desktops: search across the top, then the scope, finish, sort and view on one row. */
@media(min-width:701px) and (max-width:1100px){
 .player-page .player-tab-collection .player-collection-filters{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto}
 .player-page .player-tab-collection .player-collection-filters>label:first-child{grid-column:1/-1}
 .player-page .player-tab-collection .player-collection-filters>.card-browse-mode{grid-column:auto;align-self:end;margin:0;padding:0;border:0}
}
/* Desktop: Cards / Printings joins the filter row instead of taking a row of its own. */
@media(min-width:1101px){
 .player-page .player-tab-collection .player-collection-filters{grid-template-columns:minmax(200px,2fr) auto minmax(130px,1fr) minmax(130px,1fr) auto}
 .player-page .player-tab-collection .player-collection-filters>.card-browse-mode{grid-column:auto;align-self:end;margin:0;padding:0;border:0}
}
@media(min-width:701px){
 .player-page .player-tab-collection .player-collection-filters>.card-browse-mode .card-scope span{min-height:38px;box-sizing:border-box;display:flex;align-items:center}
 .player-profile.player-tab-collection .player-content{padding-top:16px}
}
/* An empty collection leads with its first step (C-19). */
.player-empty-lead{margin:24px 0}
.player-empty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
/* Move one copy to the other finish (C-07): a quiet full-width action under the finish's stepper. */
.player-counter .player-finish-row>.player-finish-move{grid-column:1/-1;justify-self:start;min-height:44px;padding:0 2px;border:0;background:none;color:var(--ink);font:14px var(--body);cursor:pointer;text-decoration:underline;text-decoration-color:var(--soft);text-underline-offset:4px}
.player-counter .player-finish-row>.player-finish-move:disabled{opacity:.5;cursor:default}
/* Light theme (generated by scripts/players-light-css.py from the dark rules above; the hero and card art stay dark). */
:root[data-theme=light] .player-profile{--profile-bg:#f6f6f1;--profile-line:#d3d7d3;--profile-muted:#50575b;color:#161615}
:root[data-theme=light] .player-share-dialog{background:#fafaf6;color:#161615}
:root[data-theme=light] .player-profile{--bg:#f6f6f1;--bg2:#ffffff;--bg3:#e7e9e4;--ink:#161615;--muted:#50575b;--soft:#c5cbc7;--ac-soft:#0000000a}
:root[data-theme=light] .player-profile .player-counter{--bg:#ffffff;--bg2:#ffffff;--bg3:#e7e9e4;--ink:#161615;--soft:#c5cbc7;--muted:#50575b}
:root[data-theme=light] .player-collection-filters>.card-browse-mode,:root[data-theme=light] .reference-grid.player-collection-grid{--bg2:#ffffff;--ink:#161615}
:root[data-theme=light] .pe-preview-hero{color:#f3f3ef;--ink:#f3f3ef;--muted:#b0bcc3}
:root[data-theme=light] .player-hero{color:#f3f3ef;--bg:#131619;--bg2:#191f24;--bg3:#263139;--ink:#f3f3ef;--muted:#b0bcc3;--soft:#3b484f}
:root[data-theme=light] .player-profile:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-profile .heading-slash:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-profile .button:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .player-profile a:hover:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-profile .player-kicker:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-private:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-handle:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-bio:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-legends a:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .player-legends small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-totals b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-totals span:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-tabs:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .player-tabs a:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-tabs a[aria-current]:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-tabs a>span:not(.player-hero *){border:1px solid #cfd4d0}
:root[data-theme=light] .player-section-head>a:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-empty:not(.player-hero *){border:1px dashed #cfd4d0;background:linear-gradient(130deg,#ffffff,#ffffff)}
:root[data-theme=light] .player-empty p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-empty-mark:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-note:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-note a:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-deck:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .player-deck-info h3:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-deck-info>p:last-child:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-deck-edit:not(.player-hero *){border-top:1px solid #cfd4d0;color:#50575b}
:root[data-theme=light] .player-display img:not(.player-hero *),:root[data-theme=light] .player-inventory-card>a>img:not(.player-hero *){background:#eef0eb}
:root[data-theme=light] .player-display h3:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-display p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-profile :is(input:not([type=radio]):not(.player-hero *),:root[data-theme=light] select):not(.player-hero *){background:#ffffff;border-color:#cfd4d0;color:#161615}
:root[data-theme=light] .player-inventory-card>a:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-inventory-card p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-custom-form fieldset:not(.player-hero *){border-bottom:1px solid #cfd4d0}
:root[data-theme=light] .player-custom-form fieldset>p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-form-grid label:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-colors label:not(.player-hero *){border:1px solid #cfd4d0}
:root[data-theme=light] .player-form-actions a:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-form-actions p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-workspace .player-customize:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-step:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-slot:not(.player-hero *){border:1px solid #cfd4d0;background:#ffffff}
:root[data-theme=light] .player-slot-preview span:not(.player-slot-placeholder):not(.player-hero *),:root[data-theme=light] .player-slot-preview small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-slot-preview p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-slot-placeholder:not(.player-hero *){border:1px dashed #cfd4d0}
:root[data-theme=light] .player-inline-empty:not(.player-hero *){border:1px dashed #cfd4d0;color:#50575b}
:root[data-theme=light] .player-inline-empty a:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-form-actions:not(.player-hero *){background:#ffffff;border:1px solid #cfd4d0}
:root[data-theme=light] .player-form-actions [data-dirty-status]:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-discard::backdrop{background:#eef0eb}
:root[data-theme=light] .player-deck-search:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-danger input:not(.player-hero *){background:var(--surface,#ffffff)}
:root[data-theme=light] .pe-heading>div>p:last-child:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-heading>a:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-tabs:not(.player-hero *){border-bottom:1px solid #cfd4d0}
:root[data-theme=light] .pe-tabs button:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-tabs button[aria-pressed=true]:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-section-title>p:last-child:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-slot-button:not(.player-hero *){color:#161615;background:#ffffff;border:1px solid #cfd4d0}
:root[data-theme=light] .pe-slot-label:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-lineup .pe-slot:first-child .pe-slot-label:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-slot [data-preview]:not(.player-hero *){background:linear-gradient(150deg,#ffffff,#ffffff)}
:root[data-theme=light] .pe-slot-empty>b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-slot-empty small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-slot-caption small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-slot-action:not(.player-hero *){border-top:1px solid #cfd4d0;color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-clear:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-accent-field:not(.player-hero *){border-top:1px solid #cfd4d0!important}
:root[data-theme=light] .pe-accent-field p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-live:not(.player-hero *){border:1px solid #cfd4d0;background:#ffffff}
:root[data-theme=light] .pe-preview-heading:not(.player-hero *){border-bottom:1px solid #cfd4d0;color:#50575b}
:root[data-theme=light] .pe-preview-heading span:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-preview-pattern:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-preview-body>p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-preview-legends img:not(.player-hero *),:root[data-theme=light] .pe-preview-legends>div>span:not(.player-hero *){background:#ffffff;border:1px solid #cfd4d0}
:root[data-theme=light] .pe-preview-legends small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-preview-section:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-preview-section small:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-preview-empty:not(.player-hero *){border:1px dashed #cfd4d0;color:#50575b}
:root[data-theme=light] .pe-preview-cards img:not(.player-hero *),:root[data-theme=light] .pe-preview-cards>span:not(.player-hero *){background:#ffffff;border:1px solid #cfd4d0}
:root[data-theme=light] .pe-preview-note:not(.player-hero *){border-top:1px solid #cfd4d0;color:#50575b}
:root[data-theme=light] .pe-mini-deck:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .pe-mini-deck>span:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-mini-deck small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-context:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-context a:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-picker:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .pe-picker::backdrop{background:#eef0eb}
:root[data-theme=light] .pe-picker [data-picker-close]:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .pe-picker-search:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-picker-search input:not(.player-hero *){background:#ffffff;border:1px solid #cfd4d0;color:#161615}
:root[data-theme=light] .pe-picker-count:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-choice:not(.player-hero *){color:#161615}
:root[data-theme=light] .pe-choice>div:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .pe-choice>div>b:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .pe-choice small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-picker footer:not(.player-hero *){border-top:1px solid #cfd4d0;color:#50575b}
:root[data-theme=light] .pe-picker-empty:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-share-dialog::backdrop{background:#eef0eb}
:root[data-theme=light] .player-private:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .player-empty:not(.player-hero *){border-color:#cfd4d0;background:#ffffff}
:root[data-theme=light] .pe-form .player-form-actions [data-showcase-status]:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-clear:not(.player-hero *){background:#ffffff;color:#50575b}
:root[data-theme=light] .pe-clear:hover:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111);background:#ffffff}
:root[data-theme=light] .pe-choice>div>b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111);background:#ffffff}
:root[data-theme=light] .pe-picker .player-kicker:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .pe-picker .heading-slash:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-name-slash:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-chips li:not(.player-hero *){border:1px solid #cfd4d0;color:#161615}
:root[data-theme=light] .player-chips li.is-alternate:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-grail-caption:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-grail-kind:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-set progress:not(.player-hero *){background:#ffffff;color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-set progress::-webkit-progress-bar{background:#ffffff}
:root[data-theme=light] .player-set p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-legend-tiles a:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .player-legend-tiles small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-legend-section .player-pick-legend:not(.player-hero *){border:1px dashed #cfd4d0;color:#161615}
:root[data-theme=light] .player-make-yours:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .player-make-yours p:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-binder-qty:not(.player-hero *){background:#eef0eb;color:#161615}
:root[data-theme=light] .pe-caption:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-caption small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-switch:not(.player-hero *){background:#ffffff}
:root[data-theme=light] .pe-switch small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-page .pe-switch input[type=checkbox]:not(.player-hero *){border:1px solid #cfd4d0;background:#ffffff radial-gradient(circle at 15px 50%,#f3f3ef 10px,transparent 10.5px) no-repeat}
:root[data-theme=light] .player-page .pe-switch input[type=checkbox]:checked:not(.player-hero *){background:var(--profile-ac) radial-gradient(circle at 36px 50%,#ffffff 10px,transparent 10.5px) no-repeat}
:root[data-theme=light] /* Wide screens: grails are one composition: hero card left; its story:not(.player-hero *),:root[data-theme=light] then the other grails:not(.player-hero *),:root[data-theme=light] fill the column beside it. */
.player-grail-facts:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-inspect:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-inspect::backdrop{background:#eef0eb}
:root[data-theme=light] .player-inspect-info .button:not(.player-hero *){border:1px solid #cfd4d0;color:#161615;background:#ffffff}
:root[data-theme=light] .player-inspect-info .button:hover:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-inspect-count:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-inspect-close:not(.player-hero *),:root[data-theme=light] .player-inspect-prev:not(.player-hero *),:root[data-theme=light] .player-inspect-next:not(.player-hero *){border:1px solid #cfd4d0;background:#ffffff;color:#161615}
:root[data-theme=light] .player-share-wait:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-share-preview figcaption:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-binder-filter[open]>summary .button:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
@media(min-width:900px){:root[data-theme=light] .player-binder-spread:not(.is-single)>.player-binder-left:not(.player-hero *){border-right:2px solid #cfd4d0}}
:root[data-theme=light] .player-share-dialog[data-accent] .heading-slash:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] /* Owner bar: every control the owner has:not(.player-hero *),:root[data-theme=light] in one strip above the page everyone else sees. */
.player-owner-bar:not(.player-hero *){background:#eef0eb}
:root[data-theme=light] .player-owner-status:not(.player-hero *){color:#161615}
:root[data-theme=light] button.player-owner-status:after{color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] button.player-owner-status:hover b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-owner-status span:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-owner-actions>a:not(.button):not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-owner-actions>a:not(.button):hover:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-profile .player-owner-actions .button:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .player-profile .player-owner-actions .button:hover:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] button.player-owner-status:after{color:#50575b}
:root[data-theme=light] /* Playing now: the deck its owner is playing:not(.player-hero *),:root[data-theme=light] one tap from its code. */
.player-playing:not(.player-hero *){background:linear-gradient(90deg,color-mix(in srgb,var(--profile-ac) 12%,transparent),transparent 60%),#eef0eb}
:root[data-theme=light] .player-playing-main:not(.player-hero *){color:#161615}
:root[data-theme=light] .player-playing-copy small:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-playing-open:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-playing-main:hover b:not(.player-hero *),:root[data-theme=light] .player-playing-main:focus-visible b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-deck-info>p.player-deck-count:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-deck-setting:not(.player-hero *){color:#50575b}
:root[data-theme=light] .player-deck-setting.is-community:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-share-required:not(.player-hero *){color:#50575b}
:root[data-theme=light] /* Nothing to save reads as settled:not(.player-hero *),:root[data-theme=light] not as a broken bright button. */
.pe-form .player-form-actions button[type=submit]:disabled:not(.player-hero *){border-color:#cfd4d0;color:#50575b}
@media(max-width:620px){:root[data-theme=light] .player-owner-filters.is-open .player-filter-toggle:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}}
:root[data-theme=light] .pe-seg legend:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-seg label>span:not(.player-hero *){border:1px solid #cfd4d0;background:#ffffff}
:root[data-theme=light] .pe-seg b:not(.player-hero *){color:#161615}
:root[data-theme=light] .pe-seg small:not(.player-hero *){color:#50575b}
:root[data-theme=light] .pe-seg input:checked+span:not(.player-hero *){background:color-mix(in srgb,var(--profile-ac) 11%,#ffffff)}
:root[data-theme=light] .pe-seg input:checked+span b:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}
:root[data-theme=light] .player-binder-jump select:not(.player-hero *){background:#ffffff;color:#161615}
:root[data-theme=light] .player-set-missing:not(.player-hero *){color:color-mix(in srgb,var(--profile-ac) 55%,#111)}

/* A bounded three-step workflow. Only the content area scrolls. */
.ci-dialog{--ci-ac:var(--profile-ac,var(--ac,#36d5dc));width:min(920px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid var(--soft,#484852);background:var(--bg,#111);color:var(--ink,#f4f4f5);box-shadow:0 24px 100px #0008;overflow:hidden;box-sizing:border-box}
.ci-dialog[open]{display:flex;flex-direction:column}.ci-dialog::backdrop{background:#030709bb;backdrop-filter:blur(5px)}.ci-dialog *{box-sizing:border-box}.ci-dialog [hidden]{display:none!important}.ci-header{display:flex;justify-content:space-between;align-items:start;gap:16px;padding:24px 28px 18px;flex-shrink:0}.ci-header .player-kicker{margin:0 0 6px;color:var(--ci-ac)}.ci-header h2{margin:0;font:700 clamp(26px,4vw,38px)/1.05 var(--head);text-transform:uppercase}.ci-dialog .heading-slash{color:var(--ci-ac)}.ci-header>button{display:grid;place-items:center;font:26px var(--body);width:44px;height:44px;flex-shrink:0;background:transparent;color:var(--muted);border:1px solid var(--soft);cursor:pointer}.ci-header>button:hover{border-color:var(--ci-ac);color:var(--ci-ac)}
.ci-steps{display:flex;list-style:none;gap:28px;padding:0 28px;margin:0;border-bottom:1px solid var(--soft);flex-shrink:0}.ci-steps li{display:flex;align-items:center;gap:8px;padding:12px 0;font:13px var(--body);color:var(--muted);border-bottom:2px solid transparent}.ci-steps li>span{font:13px var(--mono);opacity:.7}.ci-steps [aria-current]{border-color:var(--ci-ac);color:var(--ink)}.ci-steps .is-complete>span{color:var(--ci-ac);opacity:1}.ci-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px 28px;scrollbar-gutter:stable}.ci-dialog p{line-height:1.65;margin:0 0 16px;font-size:14px}.ci-intro{max-width:65ch;color:var(--muted)}.ci-intro strong{color:var(--ink);font-weight:500}.ci-upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;padding:24px 16px;border:1px dashed var(--soft);background:var(--bg2);text-align:center;cursor:pointer}.ci-upload:hover,.ci-upload:focus-within,.ci-upload.is-dragging{border-color:var(--ci-ac);background:color-mix(in srgb,var(--ci-ac) 6%,var(--bg2))}.ci-upload-icon{color:var(--ci-ac);font:30px/1 var(--body)}.ci-upload strong{font-size:16px}.ci-upload>span:not(.ci-upload-icon),.ci-upload small{font-size:13px;color:var(--muted)}.ci-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.ci-dialog .ci-file-summary{font:13px/1.6 var(--body);margin:10px 0 24px;overflow-wrap:anywhere;color:var(--muted)}.ci-file-summary[data-ready=true]{color:var(--ci-ac)}.ci-modes{padding:0;border:0;margin:0 0 22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ci-modes legend{font:600 14px var(--body);padding:0 0 12px}.ci-modes label{display:flex;gap:10px;padding:16px 12px;background:var(--bg2);border:1px solid var(--soft);cursor:pointer}.ci-modes label:has(:checked){border-color:var(--ci-ac);background:color-mix(in srgb,var(--ci-ac) 7%,var(--bg2))}.ci-modes label:has([value=replace]:checked){border-color:#dfb47d;background:#a6753510}.ci-modes strong{font:600 14px var(--body)}.ci-modes small{display:block;font:13px/1.6 var(--body);color:var(--muted);margin-top:6px}.ci-modes em{font:13px var(--mono);font-style:normal;color:#dfb47d;display:block;margin-top:12px}.ci-modes input,.ci-check input{width:18px;height:18px;flex-shrink:0;margin:0;accent-color:var(--ci-ac)}
.ci-format-help{border-block:1px solid var(--soft);padding:14px 0;margin:10px 0 16px}.ci-format-help summary{font-size:13px;cursor:pointer;min-height:24px}.ci-format-help[open] summary{margin-bottom:16px}.ci-format-help p{color:var(--muted);font-size:13px}.ci-dialog .ci-footnote{font:13px/1.7 var(--body);color:var(--muted);margin:12px 0 0}.ci-actions,.ci-downloads{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.ci-dialog .button{min-height:44px;font:14px var(--body);white-space:normal;cursor:pointer;text-transform:none;padding:12px 16px}.ci-dialog .primary{background:var(--ci-ac);border-color:var(--ci-ac);color:#101617}.ci-footer{flex-shrink:0;padding:16px 28px;border-top:1px solid var(--soft);background:var(--bg2);box-shadow:0 -6px 24px #0001;max-height:45dvh;overflow:auto}.ci-footer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.ci-footer-actions>[data-ci-done]{margin-left:auto}.ci-safe-note{font:13px/1.5 var(--body);color:var(--muted)}.ci-dialog [data-ci-status]{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px;font:13px/1.5 var(--body);color:var(--ci-ac)}.ci-dialog [data-ci-status]:empty{display:none}.ci-dialog [data-ci-status][data-tone=error]{color:var(--ink);border-left:2px solid #dfb47d;padding-left:10px}.ci-notice,.ci-errors{border-left:3px solid #d6ab71;padding:14px 16px;background:#b98b5010;margin:16px 0;font-size:14px}.ci-errors{border-color:#eb9393;background:#b94d4d10}.ci-notice p,.ci-errors p{font-size:13px;margin:8px 0}.ci-notice ul,.ci-errors ul{max-height:180px;overflow:auto;padding-left:24px;overflow-wrap:anywhere;font-size:13px;line-height:1.7}.ci-notice summary{cursor:pointer;font-size:13px;margin:12px 0}.ci-privacy{color:var(--muted);padding-left:12px;border-left:2px solid var(--soft);font-size:13px!important}.ci-review-context{display:flex;align-items:center;gap:16px}.ci-review-context p{margin:0;min-width:0}.ci-review-context small{display:block;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.ci-mode-badge{padding:7px 10px;border:1px solid var(--soft);color:var(--ci-ac);font:13px var(--mono);white-space:nowrap}.ci-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:22px 0 14px;border:1px solid var(--soft);background:var(--bg2)}.ci-summary>span{padding:16px;border-right:1px solid var(--soft)}.ci-summary>span:last-child{border:0}.ci-summary small{display:block;font:13px var(--body);color:var(--muted)}.ci-summary b{display:block;font:700 36px/1.2 var(--head);font-variant-numeric:tabular-nums;margin-top:7px}.ci-positive{color:#84d3b4}.ci-negative{color:#eca6a0}.ci-unchanged{color:var(--muted)}.ci-result{background:color-mix(in srgb,var(--ci-ac) 6%,var(--bg2));color:var(--ci-ac)}.ci-downloads .button{font:13px var(--body);padding:8px 0;min-height:44px;border:0;background:none;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.ci-downloads{gap:24px;margin:12px 0}.ci-filters{display:flex;gap:24px;align-items:end;margin-top:20px}.ci-filters>label:first-child{flex:1;min-width:0}.ci-filters label:not(.ci-check),.ci-word-label{display:grid;gap:8px;font:13px var(--body)}.ci-dialog input:not([type=checkbox],[type=radio],[type=file]){width:100%;min-width:0;padding:12px;background:var(--bg2);color:inherit;border:1px solid var(--soft);font:14px var(--body);border-radius:0}.ci-filters .ci-check{font-size:13px;margin:0;min-height:44px}.ci-dialog .ci-row-count{font-size:13px;color:var(--muted);margin:12px 0}.ci-table-wrap{max-width:100%;max-height:360px;overflow:auto;border:1px solid var(--soft);scrollbar-gutter:stable;overscroll-behavior:contain}.ci-dialog table{width:100%;border-collapse:collapse;font:14px var(--body)}.ci-dialog th,.ci-dialog td{text-align:right;padding:13px 12px;border-bottom:1px solid var(--soft);font-variant-numeric:tabular-nums}.ci-dialog th:first-child{text-align:left;width:50%;min-width:180px;overflow-wrap:anywhere;font-weight:500}.ci-dialog thead th{font-size:13px;font-weight:500;color:var(--muted);position:sticky;top:0;background:var(--bg2);z-index:1;white-space:nowrap}.ci-dialog td:last-child{background:color-mix(in srgb,var(--ci-ac) 4%,transparent)}.ci-dialog tbody small{display:block;font-weight:400;font-size:13px;color:var(--muted);margin-top:4px}.ci-empty-results{text-align:center!important;color:var(--muted);padding:28px!important;line-height:1.6}.ci-check{display:flex;gap:12px;align-items:start;line-height:1.6;margin:20px 0;font-size:13px;cursor:pointer}.ci-check input{margin-top:2px}.ci-confirmation{margin-top:20px;padding:0 16px 16px;border:1px solid var(--soft);background:var(--bg2)}.ci-confirmation .ci-check:last-child{margin-bottom:0}.ci-word-label{max-width:280px}.ci-danger{border-color:#c47e76!important;background:#ad564515!important;color:var(--ink)!important}.ci-danger:not(:disabled):hover{background:#ad564530!important}.ci-invalid{color:#fa9292}.ci-dialog button:disabled{opacity:.4;cursor:not-allowed}.ci-dialog :focus-visible{outline:2px solid var(--ci-ac);outline-offset:3px}.ci-dialog #ci-title:focus{outline:none}.ci-success{text-align:center;padding:20px 0}.ci-success>span{display:grid;place-items:center;margin:0 auto 20px;width:56px;height:56px;border:1px solid var(--ci-ac);color:var(--ci-ac);font-size:26px}.ci-success h3{font:700 32px var(--head);text-transform:uppercase;margin:12px 0}.ci-success .ci-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.ci-no-changes{padding:16px;background:var(--bg2);border:1px solid var(--soft)}
@media(max-width:600px){.ci-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.ci-header{padding:18px 16px 12px}.ci-header h2{font-size:28px}.ci-header .player-kicker{font-size:13px}.ci-steps{padding:0 16px;gap:0;justify-content:space-between}.ci-steps li{font-size:13px;gap:5px}.ci-steps li>span{font-size:13px}.ci-body{padding:18px 16px}.ci-modes{grid-template-columns:1fr;gap:8px}.ci-modes label{padding:13px}.ci-modes em{display:inline-block;margin-top:6px}.ci-upload{padding:20px 12px}.ci-footer{padding:12px 16px}.ci-safe-note{display:none}.ci-footer-actions>.primary:only-of-type{width:100%}.ci-footer-actions>button{padding:12px;min-width:0}.ci-footer-actions>[data-ci-review],.ci-footer-actions>[data-ci-done]{width:100%}.ci-footer-actions>[data-ci-apply]{flex:1}.ci-summary>span{padding:12px 8px}.ci-summary b{font-size:28px}.ci-summary small{font-size:13px}.ci-review-context{align-items:start;flex-direction:column;gap:10px}.ci-filters{flex-direction:column;align-items:stretch;gap:8px}.ci-filters .ci-check{min-height:36px;align-items:center}.ci-dialog input:not([type=checkbox],[type=radio],[type=file]){font-size:16px}.ci-dialog table{font-size:13px}.ci-dialog th,.ci-dialog td{padding:12px 7px}.ci-dialog th:first-child{min-width:145px}.ci-dialog thead th{font-size:13px}.ci-downloads{gap:8px 20px}.ci-table-wrap{max-height:310px}.ci-success h3{font-size:28px}}
.ci-dialog[data-accent]{--bg:#11171c;--bg2:#1b2329;--ink:#f0f3f4;--muted:#b2bbc3;--soft:#3d4b54;color-scheme:dark}
