/* Callsign editor: original MW2 artwork with a searchable, bounded library. */
.ranked-profile{color:var(--text);font-family:var(--body);--profile-surface:#202720;--profile-ink:#cbd3bf;--profile-line:rgba(213,225,190,.22)}
.profile-heading{margin-bottom:32px}.profile-heading p{margin-top:10px;color:var(--muted);font-size:16px}
.profile-layout{display:grid;grid-template-columns:minmax(280px,330px) minmax(0,1fr);align-items:start;gap:32px}
.profile-preview{position:sticky;top:24px;padding:24px;background:linear-gradient(110deg,#30362aed,#1b231dec),url('/assets/mw2-fog.png') center/cover;border:1px solid var(--profile-line)}
.profile-preview h2{font:700 italic 27px/1.1 var(--display);letter-spacing:.015em;margin-bottom:24px}
.ranked-callsign{--callsign-inset:12px;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;max-width:400px;min-width:0;padding:var(--callsign-inset);background:#121710;color:var(--text)}
/* Rank is lettering, not a second badge: one compact 44px row. */
[data-rating-finish]{--rank-ink:#c1cbbb;--rank-edge:#8e9b79;--rank-shadow:#101810}
[data-rating-finish=bronze]{--rank-ink:#edbd91;--rank-edge:#a7734b;--rank-shadow:#4d3020}
[data-rating-finish=silver]{--rank-ink:#e2e9ed;--rank-edge:#9fbbc9;--rank-shadow:#394a50}
[data-rating-finish=gold]{--rank-ink:#ffe09a;--rank-edge:#d5b36a;--rank-shadow:#634726}
[data-rating-finish=platinum]{--rank-ink:#bcebe2;--rank-edge:#6ec8bb;--rank-shadow:#23534a}
[data-rating-finish=diamond]{--rank-ink:#ceeaff;--rank-edge:#83c1ed;--rank-shadow:#285475}
[data-rating-finish=master]{--rank-ink:#ffb6bd;--rank-edge:#dd697d;--rank-shadow:#642437}
[data-rating-finish=grandmaster]{--rank-ink:#ff8178;--rank-edge:#e34e49;--rank-shadow:#702b2a}
[data-rating-finish=top5]{--rank-ink:#fff0ba;--rank-edge:#edc76d;--rank-shadow:#805720}
.rank-title{display:inline-block;color:var(--rank-ink);font:700 italic 22px/1 var(--display);text-transform:uppercase;letter-spacing:.015em;white-space:nowrap;text-shadow:0 1px 0 var(--rank-shadow),0 3px 5px #080c09cc}
.rank-title[data-rating-finish=diamond]{letter-spacing:.045em;text-shadow:0 1px 0 #fff5,0 2px 0 var(--rank-shadow),0 4px 6px #080c09cc}
.rank-title:is([data-rating-finish=master],[data-rating-finish=grandmaster]){text-shadow:0 1px 0 var(--rank-shadow),0 2px 0 var(--rank-shadow),0 5px 7px #080c09cc;-webkit-text-stroke:.25px var(--rank-ink)}
.rank-title.rank-position{min-width:1ch;padding-inline:3px;font-size:34px;line-height:.95;letter-spacing:-.025em;text-shadow:1px 1px 0 #9e763c,2px 2px 0 #785028,0 5px 6px #080c09b3;-webkit-text-stroke:.35px #fff3cc}
.rank-title[data-leaderboard-position="1"]{color:#fff9dc;text-shadow:1px 1px 0 #c6a366,2px 2px 0 #805728,0 5px 7px #080c09cc}
.ranked-callsign-rating{position:relative;grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 calc(-1 * var(--callsign-inset)) calc(-1 * var(--callsign-inset));min-height:44px;padding:5px 12px;border-top:1px solid color-mix(in srgb,var(--rank-edge) 45%,transparent);background:#080e0b42;color:var(--rank-ink);min-width:0}
.ranked-callsign-rating[data-rating-finish=top5]{border-top-color:#eac97680}
.callsign-rating-score{display:flex;align-items:baseline;justify-content:flex-end;flex:none;gap:5px;min-width:0;color:#eef0e5}
.callsign-rating-score>strong{font:700 italic 24px/1 var(--display);letter-spacing:.01em;font-variant-numeric:tabular-nums}
.callsign-rating-unit{font:600 11px/1 var(--body);color:#bfc8b9}
.callsign-rating-empty{font:600 12px/1.2 var(--display);text-align:right;color:#bfc8b9}
.ranked-callsign-rating.is-unrated .rank-title{font-size:18px}
.callsign-streak{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font:600 11px/1.2 var(--body);color:var(--rank-ink);margin-left:auto}
/* Streaks light only the lettering. No canvas, particles, frame effects or loops. */
.ranked-callsign{--streak-glow-size:0px;--streak-glow-ink:transparent;--streak-name-glow:transparent}
.ranked-callsign[data-streak-level=shine]{--streak-glow-size:3px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 25%,transparent)}
.ranked-callsign[data-streak-level=electric]{--streak-glow-size:4px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 32%,transparent)}
.ranked-callsign[data-streak-level=charged]{--streak-glow-size:5px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 40%,transparent)}
.ranked-callsign[data-streak-level=surge]{--streak-glow-size:6px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 46%,transparent)}
.ranked-callsign[data-streak-level=inferno]{--streak-glow-size:8px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 52%,transparent)}
.ranked-callsign[data-streak-level=tempest]{--streak-glow-size:10px;--streak-glow-ink:color-mix(in srgb,var(--rank-ink) 60%,transparent)}
.ranked-callsign:not([data-streak-level=none]){--streak-name-glow:color-mix(in srgb,var(--rank-ink) 25%,transparent)}
.ranked-callsign:not([data-streak-level=none]) .rank-title{text-shadow:0 1px 0 var(--rank-shadow),0 2px 3px #080c09cc,0 0 var(--streak-glow-size) var(--streak-glow-ink)}
.ranked-callsign:not([data-streak-level=none]) .callsign-player-name strong{color:var(--rank-ink);text-shadow:0 1px 2px #030905cc,0 0 5px var(--streak-name-glow)}
.player-callsign-slot .ranked-callsign{container-type:inline-size}
@container(max-width:250px){.player-callsign-slot .rank-title{font-size:18px;letter-spacing:0}.player-callsign-slot .rank-position{font-size:30px}.player-callsign-slot .ranked-callsign-rating{gap:8px;padding-inline:8px}.player-callsign-slot .callsign-rating-score>strong{font-size:22px}.player-callsign-slot .streak-word{display:none}}
@container(max-width:190px){.player-callsign-slot .ranked-callsign-rating{flex-wrap:wrap;gap:4px 12px}.player-callsign-slot .callsign-rating-score{margin-left:auto}}
.ranked-callsign-emblem{display:block;width:64px;height:64px;max-width:100%;object-fit:contain;flex:none}.callsign-emblem-sprite{background-repeat:no-repeat}
.ranked-callsign-body{min-width:0}.callsign-banner-art{position:relative;display:block;width:100%;aspect-ratio:var(--banner-ratio,5/1);container-type:inline-size;flex:none}
.ranked-callsign-banner{display:block;width:100%;height:auto;object-fit:contain}
.callsign-banner-title{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 4%;font:600 clamp(11px,7.2cqi,18px)/1.05 var(--display);letter-spacing:0;text-align:center;text-shadow:0 1px 2px #000b;pointer-events:none}
.ranked-callsign-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font:600 15px/1.4 var(--body);padding:6px 2px 0;overflow-wrap:anywhere}.ranked-callsign-name strong{font-weight:600}.ranked-callsign-clan{color:var(--accent);font-weight:400}
.profile-preview-note,.profile-preview-footnote{font-size:14px;line-height:1.6;color:var(--muted);max-width:38ch}.profile-preview-note{margin-top:18px}.profile-preview-footnote{margin-top:24px}
.profile-record{margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--profile-line);display:grid;gap:16px;font-size:14px}.profile-record>div{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.profile-record dt{color:var(--muted)}.profile-record dd{margin:0;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}
.profile-record .profile-link-status{display:flex;align-items:center;gap:9px;font:700 20px/1.2 var(--display);letter-spacing:.035em;color:#d3e9a4;margin-top:4px}
.profile-link-mark{display:inline-grid;place-items:center;width:25px;height:25px;border:1px solid #b8ce7a70;background:#92b34918;flex:none}
.profile-link-mark svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:square;stroke-linejoin:miter}
.profile-record .profile-link-status.is-unlinked{color:#e5aaa0}.profile-link-status.is-unlinked .profile-link-mark{border-color:#c5817770;background:#ab605018}
.profile-link-hint{font-size:14px;color:var(--muted);line-height:1.5;margin-top:3px}
.profile-editor{min-width:0;container:profile-editor/inline-size}.profile-fields{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(130px,1fr);gap:24px;margin-bottom:32px}
.profile-field label{display:block;font-size:16px;font-weight:600;margin-bottom:10px}.profile-field label span{font-size:14px;font-weight:400;color:var(--muted)}
.profile-field input,.profile-dialog input,.profile-library-search input{display:block;min-width:0;width:100%;min-height:48px;padding:11px 14px;background:#161e17;border:1px solid var(--line-strong);border-radius:0;color:var(--text);caret-color:var(--accent);font:16px/1.4 var(--body);transition:border-color 160ms,background 160ms}
.profile-field input:hover:not(:disabled),.profile-dialog input:hover,.profile-library-search input:hover:not(:disabled){border-color:#85936c}.profile-field input:focus,.profile-dialog input:focus,.profile-library-search input:focus{background:#222b1e;border-color:var(--accent)}
.profile-field input:disabled,.profile-library-search input:disabled{opacity:.6;cursor:wait}.profile-field p{margin-top:8px;color:var(--muted);font-size:14px}
.profile-clan-entry{display:flex;align-items:center;min-height:48px;padding:0 12px;border:1px solid var(--line-strong);background:#161e17;color:var(--accent)}.profile-clan-entry:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:4px}.profile-clan-entry input{border:0;padding:11px 5px;min-height:46px;text-align:center;background:transparent}.profile-clan-entry input:focus{outline:0;background:transparent}
.profile-collection-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}.profile-collection h2{font:700 italic 28px/1.1 var(--display);letter-spacing:.015em}.profile-collection-heading>span{font-size:14px;color:var(--profile-ink);text-align:right}
.profile-library-tabs{display:flex;gap:0;border-bottom:1px solid var(--profile-line)}.profile-library-tabs button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px;min-width:150px;padding:14px 22px;border:0;background:transparent;color:var(--profile-ink);font:600 16px/1.3 var(--body)}.profile-library-tabs button span{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.profile-library-tabs button:hover:not(:disabled){background:#c5d9960b;color:var(--text)}.profile-library-tabs button[aria-selected=true]{color:var(--accent);background:#c6d89212}.profile-library-tabs button[aria-selected=true]:after{content:'';position:absolute;height:2px;background:var(--accent);inset:auto 18px -1px}
.profile-library-tools{display:flex;align-items:center;gap:12px;padding-top:20px}.profile-library-search{flex:1;min-width:0}.profile-library-search input::placeholder{color:#b8c2ac;opacity:1}.profile-library-tools .button{flex:none;min-height:48px}
.profile-library-selection{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;font-size:14px;color:var(--muted);min-width:0}.profile-library-selection>span:first-child{min-width:0;overflow-wrap:anywhere}.profile-library-selection strong{color:var(--text);font-weight:600}.profile-library-count{flex:none;font-variant-numeric:tabular-nums}
.profile-library-results{height:560px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:#77845b #192018;padding:4px 8px 4px 4px;border-block:1px solid var(--profile-line);background:#141c141c}
.profile-library-results:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.profile-picks{display:grid;gap:12px;align-content:start;padding-block:10px}.profile-banners{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-emblems{grid-template-columns:repeat(6,minmax(0,1fr))}
.profile-pick{position:relative;display:flex;align-items:stretch;flex-direction:column;justify-content:flex-start;min-width:0;min-height:128px;gap:8px;padding:10px;background:#1a221abf;border:1px solid var(--profile-line);border-radius:0;text-align:left;transition:background 160ms,border-color 160ms}
.profile-pick:hover:not(:disabled){background:#303a29;border-color:#97a779}.profile-pick:active:not(:disabled){background:#3b472e}.profile-pick.is-selected{background:linear-gradient(100deg,#3a472ded,#283323ed);border-color:var(--accent)}
.profile-pick-art{height:64px;display:flex;align-items:center;justify-content:center;min-width:0}.profile-pick-art .callsign-banner-art{width:min(100%,240px)}.profile-pick-art .ranked-callsign-emblem{width:min(64px,100%);height:auto;max-height:64px;aspect-ratio:1;object-fit:contain}.profile-pick-art .callsign-emblem-sprite{height:auto;aspect-ratio:1}
.profile-pick-label{color:var(--profile-ink);font-size:14px;line-height:1.3;padding-right:14px;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.profile-pick.is-selected .profile-pick-label{color:var(--text)}
.profile-pick-check{position:absolute;right:5px;bottom:7px;display:none;place-items:center;width:18px;height:18px;background:#c4cc8b;color:#182013}.profile-pick.is-selected .profile-pick-check{display:grid}.profile-pick-check svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.profile-library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;gap:14px;padding:32px 24px;text-align:center;color:var(--muted);font-size:16px}.profile-library-empty strong{color:var(--text);font-size:18px;font-weight:600}.profile-library-empty .button{margin-top:4px}
.profile-library-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px}.profile-library-pagination>span{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.profile-library-pagination strong{font-weight:600;color:var(--text)}.profile-library-pagination .button{min-width:100px}
.profile-save-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;padding:20px 0 0;border-top:1px solid var(--profile-line)}.profile-feedback{min-height:1.6em;font-size:14px;line-height:1.5;color:var(--accent);overflow-wrap:anywhere}.profile-feedback.is-error{color:#efb7a5}.profile-save-actions{display:flex;gap:10px;flex-shrink:0}
.ranked-profile .button,.profile-dialog .button{font:600 14px/1.3 var(--body);letter-spacing:0;text-transform:none;padding:12px 16px;min-height:46px}
.profile-account{margin-top:48px;padding-top:32px;border-top:1px solid var(--line-strong)}.profile-account-heading h2{font:700 italic 30px/1.1 var(--display);letter-spacing:.015em;margin-bottom:12px}.profile-account-heading p{color:var(--muted);font-size:16px;margin-bottom:28px}
.profile-account-row{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:24px 0;border-top:1px solid var(--profile-line)}.profile-account-row h3{font:600 17px/1.4 var(--body);letter-spacing:0;margin-bottom:8px}.profile-account-row p{color:var(--muted);max-width:66ch;font-size:16px;line-height:1.6}.profile-account-row .button{min-width:176px;flex-shrink:0}
.profile-loading p{color:var(--muted);margin:18px 0}.profile-loading .profile-feedback.is-error{color:#efb7a5}.profile-skeleton{display:grid;grid-template-columns:1fr 1.8fr;gap:24px;max-width:900px}.profile-skeleton>div{height:100px;background:#263026}.profile-skeleton>div:first-child{grid-row:span 2;height:224px;background:linear-gradient(125deg,#303c2a,#222b22)}
.profile-dialog{width:min(520px,calc(100% - 36px));padding:32px;border:1px solid var(--line-strong);color:var(--text);font-family:var(--body);background:#252e25;box-shadow:0 24px 70px #0009;max-height:calc(100dvh - 36px);overflow-y:auto}.profile-dialog::backdrop{background:#090e0cd6}.profile-dialog h2{font:700 italic 32px/1.1 var(--display);letter-spacing:.015em;margin:0 0 20px}.profile-dialog p{font-size:16px;color:var(--muted);line-height:1.6;margin:0 0 16px}.profile-dialog label{display:block;font-size:16px;margin:24px 0 10px}.profile-dialog a{color:var(--text);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.profile-dialog a:hover{color:var(--accent)}.profile-dialog input{font-family:var(--mono);letter-spacing:.06em}.profile-dialog .profile-dialog-error{margin:16px 0 0;color:#efb7a5;overflow-wrap:anywhere}.profile-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}
@container profile-editor (max-width:620px){.profile-banners{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-emblems{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-save-row{align-items:stretch;flex-direction:column;gap:12px}.profile-save-actions{justify-content:flex-end}}
@media(max-width:1250px){.profile-layout{grid-template-columns:1fr;gap:32px}.profile-preview{position:static;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:32px}.profile-preview h2{grid-column:1/-1;margin-bottom:20px}.profile-preview [data-profile-preview]{grid-column:1}.profile-preview-note{grid-column:1;margin-top:14px}.profile-record{grid-column:2;grid-row:2/4;margin:0;padding:0;border:0;align-content:center}.profile-record>div{display:grid;gap:6px}.profile-record dd{text-align:left}.profile-preview-footnote{grid-column:1/-1;margin-top:18px;max-width:none}}
@media(max-width:700px){.profile-library-results{height:420px}.profile-banners{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-emblems{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-library-tabs button{min-width:0;flex:1}.profile-account-row{align-items:flex-start;flex-direction:column;gap:18px}.profile-account-row .button{min-width:0}.profile-collection-heading{align-items:flex-start;flex-direction:column;gap:8px}}
@media(max-width:560px){.profile-preview{display:block;padding:20px}.profile-preview h2{margin-bottom:18px}.profile-preview-note{max-width:none}.profile-record{display:flex;justify-content:space-between;gap:20px;margin-top:20px;padding-top:18px;border-top:1px solid var(--profile-line)}.profile-record>div{flex:1}.profile-preview-footnote{margin-top:18px}.profile-fields{grid-template-columns:minmax(0,1.3fr) minmax(108px,1fr);gap:16px}.profile-field label span{display:block;font-size:14px}.profile-field:first-child label{min-height:44px}.profile-library-tools{flex-wrap:wrap;gap:10px}.profile-library-search{flex-basis:100%}.profile-library-tools .button{min-height:44px}.profile-library-selection{align-items:flex-start;gap:10px;font-size:14px}.profile-library-count{white-space:nowrap}.profile-library-results{padding-right:4px}.profile-picks{gap:8px}.profile-pick{padding:8px;min-height:126px}.profile-pick-label{font-size:14px;padding-right:8px}.profile-pick-check{right:3px;bottom:4px;width:16px;height:16px}.profile-library-pagination{gap:8px}.profile-library-pagination .button{min-width:82px;padding-inline:12px}.profile-library-pagination>span{font-size:14px;white-space:nowrap}.profile-save-actions{display:grid;grid-template-columns:1fr 1fr}.profile-save-actions .button{padding-inline:10px}.profile-account{margin-top:36px}.profile-dialog{padding:24px}.profile-dialog-actions{flex-direction:column-reverse}.profile-dialog-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){.profile-pick,.profile-field input,.profile-dialog input,.profile-library-search input{transition:none}}
.profile-emblem{display:inline-flex;align-items:center;justify-content:center;flex:none}.profile-emblem .ranked-callsign-emblem{width:100%;height:100%;max-width:100%;object-fit:contain}

/* Original atlas cells, read left-to-right and then down; no interpolation between frames. */
.callsign-emblem-animated{animation-name:mw2-emblem-columns,mw2-emblem-rows;animation-duration:var(--emblem-row-duration),var(--emblem-cycle-duration);animation-timing-function:steps(var(--emblem-columns),end),steps(var(--emblem-rows),end);animation-delay:var(--emblem-phase),var(--emblem-phase);animation-iteration-count:infinite}
@keyframes mw2-emblem-columns{from{background-position-x:0%}to{background-position-x:var(--emblem-end-x)}}
@keyframes mw2-emblem-rows{from{background-position-y:0%}to{background-position-y:var(--emblem-end-y)}}
@media(prefers-reduced-motion:reduce){.callsign-emblem-animated{animation:none}}
