/* Profile Design API: solid art in a fixed square badge. Only the
   colour and artwork change; rank and profile layout never shift. */
.tg-profile-avatar{
 --tg-profile-fill:#e0ebf9;--tg-profile-ink:#44688e;
 width:28px;height:28px;box-sizing:border-box;flex:none;
 display:inline-grid;place-items:center;vertical-align:middle;
 border-radius:9px;background:var(--tg-profile-fill);
 border:1px solid color-mix(in srgb,var(--tg-profile-ink) 23%,transparent);
 color:var(--tg-profile-ink);overflow:hidden;
}
.tg-profile-avatar[data-avatar-color="mint"]{--tg-profile-fill:#d8eee4;--tg-profile-ink:#356f5f}
.tg-profile-avatar[data-avatar-color="peach"]{--tg-profile-fill:#f9e5d8;--tg-profile-ink:#936047}
.tg-profile-avatar[data-avatar-color="lilac"]{--tg-profile-fill:#ece4f8;--tg-profile-ink:#765b96}
.tg-profile-avatar[data-avatar-color="gold"]{--tg-profile-fill:#faedcd;--tg-profile-ink:#846831}
.tg-profile-avatar[data-avatar-color="coral"]{--tg-profile-fill:#f9e0e1;--tg-profile-ink:#965b65}
.tg-profile-avatar[data-avatar-color="slate"]{--tg-profile-fill:#e4eaf0;--tg-profile-ink:#506474}
.tg-profile-avatar svg{
 width:73%;height:73%;fill:currentColor;stroke:none;
 overflow:visible;display:block;flex:none;
}
:root body.float-ui .tg-rank-identity.tg-profile-avatar[data-avatar-icon]{
 background:var(--tg-profile-fill)!important;
 color:var(--tg-profile-ink)!important;
 border-color:color-mix(in srgb,var(--tg-profile-ink) 23%,transparent)!important;
 font-size:inherit;
}
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-profile-avatar{
 width:18px;height:19px;border-radius:5px
}
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-profile-avatar svg{
 width:76%;height:76%
}
/* The original portrait host is an inline span. Give it explicit dimensions
   so the nested SVG cannot collapse or drift to one side. */
.profile-portrait #profile-avatar-initials{
 display:grid;place-items:center;width:100%;height:100%;min-width:0;
 line-height:1;
}
.profile-portrait .tg-avatar-portrait{
 width:100%;height:100%;border:0;border-radius:inherit;
 font-size:inherit;display:grid;place-items:center;
}
.profile-portrait .tg-avatar-portrait:not(.tg-premium-avatar) svg{width:66%;height:66%}
.profile-portrait:has(.tg-avatar-portrait){
 background:transparent;border-color:transparent;
}
.profile-personal-motto{color:var(--muted);font-size:12px;font-style:italic;margin:5px 0 0;line-height:1.5}
.profile-personal-motto[hidden]{display:none!important}
/* Compact three-row history; expanding adds at most seven more. */
.page-stats .stats-core{min-height:0}
.page-stats .stats-recent-heading{
 display:flex;align-items:center;justify-content:space-between;
 gap:14px;margin-bottom:11px;
}
.page-stats .stats-recent-heading h2{margin:0;font-size:17px}
.page-stats #player-history-more{
 border:0;background:transparent;color:var(--accent);
 font:inherit;font-size:11px;font-weight:750;cursor:pointer;
 padding:7px 4px;white-space:nowrap
}
.page-stats #player-history-more[hidden],.page-stats .player-history-list li[hidden]{display:none!important}
.page-stats .player-history-list{gap:4px}
.page-stats .stats-history-row.tg-stats-game-row{
 padding:6px 9px;gap:9px;min-height:40px;
 border:0;box-shadow:none;background:transparent
}
.page-stats .stats-history-row.tg-stats-game-row:hover{background:var(--surface-soft)}
.page-stats .stats-history-row .tg-game-icon{
 --tg-icon-size:29px;--tg-icon-art-size:22px;
}
.page-stats .stats-history-row .stats-game-info{gap:1px}
.page-stats .stats-history-row .stats-game-info strong{font-size:12px}
.page-stats .stats-history-row .stats-game-info time{font-size:10px}
.page-stats .stats-history-body{height:auto;max-height:none;min-height:0;overflow:visible}
.page-stats .stats-history-body[data-tg-loading="true"]{min-height:120px}
/* Plus editor */
.profile-custom-feature .tg-profile-editor{display:grid;grid-template-columns:170px minmax(0,1fr);gap:22px}
.profile-custom-feature .tg-profile-editor-preview{
 display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;
 align-self:start;min-height:170px;background:var(--surface-soft);
 border:1px solid var(--line);border-radius:14px;padding:20px 14px;text-align:center
}
.profile-custom-feature #profile-icon-preview{display:grid;place-items:center}
.profile-custom-feature .tg-avatar-preview{width:68px;height:68px;border-radius:19px}
.profile-custom-feature .tg-avatar-preview:not(.tg-premium-avatar) svg{width:70%;height:70%}
.profile-custom-feature .tg-profile-editor-preview strong{font-size:14px}
.profile-custom-feature .tg-profile-editor-preview small{
 display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:6px
}
.profile-custom-feature .tg-profile-editor-fields{
 min-width:0;display:flex;flex-direction:column;gap:18px
}
.profile-custom-feature fieldset{margin:0;padding:0;border:0;min-width:0}
.profile-custom-feature legend,.profile-custom-feature .tg-profile-motto-label{
 display:block;font-size:12px;font-weight:750;margin:0 0 10px;color:var(--text)
}
.profile-custom-feature .tg-profile-motto-label small{
 font-weight:450;color:var(--muted);margin-left:5px
}
.profile-custom-feature :is(.tg-profile-icon-options,.tg-profile-color-options){
 display:flex;flex-wrap:wrap;gap:8px
}
.profile-custom-feature .tg-profile-option{
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
 min-height:50px;min-width:50px;padding:6px;
 border:1px solid var(--line);border-radius:11px;
 background:var(--surface);color:var(--text);
 cursor:pointer;transition:border-color .15s,background .15s
}
.profile-custom-feature .tg-profile-option:disabled{cursor:default}
.profile-custom-feature .tg-profile-option.is-selected{
 border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);
 background:var(--surface-soft)
}
.profile-custom-feature .tg-profile-option small{color:var(--muted);font-size:10px}
.profile-custom-feature .tg-avatar-option{width:35px;height:35px;border-radius:10px}
.profile-custom-feature #profile-tagline{
 width:min(420px,100%);box-sizing:border-box;
 border:1px solid var(--line);border-radius:10px;
 background:var(--surface);color:var(--text);padding:11px 12px;font:inherit;font-size:12px
}
.profile-custom-feature .tg-profile-editor-save{
 grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:12px
}
.profile-custom-feature .tg-profile-editor-save button{
 border:0;border-radius:10px;background:var(--text);color:var(--surface);
 padding:11px 17px;font:inherit;font-size:12px;font-weight:740;cursor:pointer
}
.profile-custom-feature .tg-profile-editor-save button:disabled{opacity:.45;cursor:default}
.profile-custom-feature #profile-appearance-status{font-size:11px;color:var(--muted);line-height:1.5}
.profile-custom-feature #profile-customisation[data-locked="true"] .tg-profile-editor{opacity:.65}
@media(max-width:650px){
 .profile-custom-feature .tg-profile-editor{grid-template-columns:1fr;gap:16px}
 .profile-custom-feature .tg-profile-editor-preview{
  flex-direction:row;justify-content:flex-start;min-height:92px;text-align:left
 }
 .profile-custom-feature .tg-profile-editor-save{grid-column:1}
}



/* Three consistent profile sections: identity, account details and Plus. */
.page-profile>.profile-details-card{
 width:100%;max-width:none;box-sizing:border-box;text-align:left;
 padding:23px 24px;margin-top:22px;border-top:1px solid var(--line)
}
.page-profile>.profile-details-card .profile-details-heading{
 margin:0 0 8px;font-size:20px;font-weight:770;letter-spacing:-.04em
}
.page-profile>.profile-details-card .profile-settings-heading p{margin:0 0 17px}
.page-profile>.profile-details-card .profile-settings-grid{max-width:800px}
.page-profile .profile-portrait,.page-public-profile .profile-portrait{border-radius:17px;overflow:hidden}
.page-profile .profile-portrait .tg-avatar-portrait,.page-public-profile .profile-portrait .tg-avatar-portrait{border-radius:inherit}
.profile-privacy-setting{display:flex;align-items:center;justify-content:space-between;
 gap:20px;border-top:1px solid var(--line);padding:19px 0 3px;margin-top:20px;
 cursor:pointer;max-width:800px}
.profile-privacy-setting>span{display:flex;flex-direction:column;gap:5px;min-width:0}
.profile-privacy-setting strong{font-weight:760;font-size:14px;color:var(--text)}
.profile-privacy-setting small{font-size:12px;color:var(--muted);line-height:1.5}
.profile-privacy-setting input{appearance:none;flex:none;width:45px;height:27px;
 position:relative;border-radius:99px;cursor:pointer;
 background:var(--line);transition:background .2s ease}
.profile-privacy-setting input::before{content:"";position:absolute;top:4px;left:4px;
 width:19px;height:19px;border-radius:50%;background:var(--surface);
 box-shadow:0 1px 4px #0002;transition:transform .2s ease}
.profile-privacy-setting input:checked{background:#48aa7b}
.profile-privacy-setting input:checked::before{transform:translateX(18px)}
.profile-privacy-setting input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.profile-privacy-status{font-size:11px;min-height:15px;color:var(--muted)}
.page-public-profile .public-profile-back{border:0;background:transparent;padding:0;
 color:var(--accent);font:inherit;font-size:11px;font-weight:750;
 letter-spacing:.1em;cursor:pointer}
.page-public-profile .public-profile-back:hover{color:var(--text)}
.page-public-profile .public-profile-back:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.profile-view-loading{color:var(--muted);padding:22px 4px;font-size:14px}
.page-public-profile .profile-main-identity h2{font-size:27px;letter-spacing:-.05em;margin:0 0 7px}
.page-public-profile .profile-main-card .profile-portrait{width:74px;height:74px}
.page-public-profile #public-profile-avatar{display:grid;place-items:center;width:100%;height:100%}
.page-public-profile #public-profile-avatar .tg-profile-avatar{width:100%;height:100%;border-radius:inherit}
.page-public-profile #public-profile-avatar .tg-profile-avatar:not(.tg-premium-avatar) svg{width:66%;height:66%}
.page-public-profile .profile-main-identity .profile-personal-motto{margin:6px 0 8px}
.page-public-profile .public-profile-initials{font-size:12px;color:var(--muted)}
.page-public-profile .public-profile-initials strong{color:var(--text);font-weight:800;letter-spacing:.06em}
.page-public-profile .public-profile-stats>h2{font-size:21px;letter-spacing:-.04em;margin:0 0 19px}
.page-public-profile .public-profile-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.page-public-profile .public-profile-metrics .player-stat-card{min-width:0}
.page-public-profile .public-profile-metrics .player-stat-card strong{overflow-wrap:anywhere}
.page-public-profile .public-profile-global-ranking{display:flex;flex-direction:column;gap:8px;padding-top:7px}
.page-public-profile .public-profile-stats h3{font-size:15px;margin:23px 0 13px}
.page-public-profile .public-profile-games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.page-public-profile .public-profile-games>a{display:flex;align-items:center;gap:10px;min-width:0;
 padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);
 text-decoration:none;transition:background .16s ease,border-color .16s ease}
.page-public-profile .public-profile-games>a:hover{background:var(--surface-soft);border-color:var(--accent)}
.page-public-profile .public-profile-games>a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.page-public-profile .public-profile-games .tg-game-icon{flex:none}
.page-public-profile .public-profile-game-detail{display:flex;flex-direction:column;gap:4px;min-width:0}
.page-public-profile .public-profile-game-detail>span{font-size:12px;color:var(--muted)}
.page-public-profile .public-profile-game-detail strong{display:block;font-size:17px;font-weight:750}
@media(max-width:650px){
 .page-public-profile .public-profile-games,.page-public-profile .public-profile-metrics{grid-template-columns:1fr}
 .page-profile>.profile-details-card{padding:18px}
}

/* Clickable names are never created for guest or private identities. */
body.float-ui :is(.memory-rank-player,.float-dialog-name,.float-board-name,.float-ribbon-name):is(a){
 color:inherit;text-decoration:none;cursor:pointer;
 text-underline-offset:3px
}
body.float-ui :is(.memory-rank-player,.float-dialog-name,.float-board-name,.float-ribbon-name):is(a):hover{
 text-decoration:underline
}
body.float-ui :is(.memory-rank-player,.float-dialog-name,.float-board-name,.float-ribbon-name):is(a):focus-visible{
 outline:2px solid var(--accent);outline-offset:2px;border-radius:3px
}

/* Account flyout: exactly the canonical profile portrait, copied once.
   Suppress flyout span rules and nested badge styling. */
.profile-menu .profile-menu-head{display:flex;align-items:center;gap:11px;min-width:0}
.profile-menu .profile-menu-head .profile-menu-avatar{
  display:grid;place-items:center;flex:none;width:36px;height:36px;
  margin:0;padding:0;overflow:hidden;border-radius:11px;
  background:var(--surface-soft);color:var(--text)
}
.profile-menu .profile-menu-head .profile-menu-avatar:has(>.tg-avatar-menu){background:transparent}
.profile-menu .profile-menu-head .profile-menu-avatar>.tg-avatar-menu{
  display:grid;place-items:center;flex:none;
  width:36px;height:36px;margin:0;border-radius:11px;
  color:var(--tg-profile-ink);background:var(--tg-profile-fill)
}
.profile-menu .profile-menu-head .profile-menu-avatar>.tg-avatar-menu:not(.tg-premium-avatar) svg{
  display:block;width:66%;height:66%;fill:currentColor;stroke:none
}
.profile-menu .profile-menu-head .profile-menu-avatar>svg{display:block;width:20px;height:20px}
.profile-menu .profile-menu-identity{min-width:0;flex:1}
.profile-menu .profile-menu-identity strong{overflow-wrap:anywhere;line-height:1.3}

/* Original Plus enamel portrait collection: all ten 64-unit illustrations
   share the same miniature metal rim, inner inlay and four rich ink layers. */
.tg-profile-avatar.tg-premium-avatar{
 background:radial-gradient(circle at 28% 18%,
  color-mix(in srgb,var(--tg-profile-fill) 82%,white),
  var(--tg-profile-fill) 65%,var(--tg-premium-metal));
 border-color:color-mix(in srgb,var(--tg-premium-metal) 65%,var(--tg-profile-ink))
}
.tg-premium-avatar svg{
 width:82%;height:82%;fill:none;display:block;margin:auto
}
.tg-premium-avatar svg .pa-ground{fill:var(--tg-premium-ground)}
.tg-premium-avatar svg .pa-metal{fill:var(--tg-premium-metal)}
.tg-premium-avatar svg .pa-jewel{fill:var(--tg-premium-jewel)}
.tg-premium-avatar svg .pa-light{fill:var(--tg-premium-light)}
.tg-premium-avatar svg .pa-rim{
 fill:none;stroke:var(--tg-premium-metal);stroke-width:1.2;opacity:.9
}
.tg-premium-avatar svg .pa-rim-inner{
 fill:none;stroke:var(--tg-premium-light);stroke-width:.5;opacity:.57
}
.profile-custom-feature .tg-premium-avatar.tg-avatar-option{
 width:35px;height:35px;border-radius:10px
}
.profile-custom-feature .tg-profile-option:has(.tg-premium-avatar){
 padding:6px;min-height:50px;min-width:50px
}
.profile-custom-feature .tg-premium-avatar svg,
.profile-portrait .tg-avatar-portrait.tg-premium-avatar svg,
.page-public-profile #public-profile-avatar .tg-premium-avatar svg,
.profile-menu .profile-menu-avatar>.tg-avatar-menu.tg-premium-avatar svg,
body.float-ui .tg-rank-identity.tg-premium-avatar svg,
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-premium-avatar svg{
 width:82%;height:82%;fill:none
}
:root body.float-ui .tg-rank-identity.tg-premium-avatar[data-avatar-icon]{
 background:var(--tg-profile-fill)!important
}

/* Glimmer and Shine are badge-local; Halo and sprites paint in the shared
   unclipped canvas appropriate to each leaderboard or dialog context. */
.tg-profile-avatar[data-avatar-effect]:not([data-avatar-effect="none"]){
 position:relative;isolation:isolate;overflow:hidden
}
.tg-profile-avatar[data-avatar-effect]:not([data-avatar-effect="none"]) svg{
 position:relative;z-index:1
}
.tg-profile-avatar[data-avatar-effect]:not([data-avatar-effect="none"])::before,
.tg-profile-avatar[data-avatar-effect]:not([data-avatar-effect="none"])::after{
 position:absolute;pointer-events:none;z-index:2
}
/* GLIMMER: a brief luminous radial pulse with a strong star at the corner.
   This is deliberately NOT a moving reflection stripe like Shine. */
.tg-profile-avatar[data-avatar-effect="glimmer"]::before{
 content:"";inset:-24%;border-radius:50%;
 background:radial-gradient(circle at 84% 17%,
  rgba(255,255,255,1) 0%,rgba(255,250,241,.73) 15%,
  rgba(249,231,213,.21) 36%,transparent 68%);
 transform:scale(.5);opacity:.08;
 animation:tg-avatar-glimmer-pulse 2.6s ease-in-out infinite
}
/* SHINE: restrained, slow diagonal reflection using transform/opacity. */
.tg-profile-avatar[data-avatar-effect="shine"]::before{
 content:"";inset:-4%;width:110%;
 background:linear-gradient(110deg,transparent 0%,transparent 27%,
  rgba(255,255,255,.16) 40%,rgba(255,255,255,.52) 48%,
  rgba(255,255,255,.24) 54%,transparent 71%);
 opacity:0;transform:translateX(-112%);
 animation:tg-avatar-shine-sweep 3.1s cubic-bezier(.34,0,.32,1) infinite
}
/* Real gravity effects use the single shared viewport Canvas renderer.
   Particle emitters and sprite animations do not live inside badge DOM. */
.tg-profile-avatar:is([data-avatar-effect="sparkle"],[data-avatar-effect="prism"],
 [data-avatar-effect="frost"],[data-avatar-effect="petals"],
 [data-avatar-effect="confetti"],[data-avatar-effect="pixelrain"],
 [data-avatar-effect="fireflies"],
 [data-avatar-effect="hearts"],[data-avatar-effect="pixelburst"],
 [data-avatar-effect="coins"]){overflow:visible!important}
.profile-menu .profile-menu-avatar:has(>.tg-profile-avatar[data-avatar-effect]){overflow:visible}
/* HALO: no local pseudo-elements; outer Canvas renders the complete pulse. */
.tg-profile-avatar[data-avatar-effect="halo"]{overflow:visible!important}
@keyframes tg-avatar-glimmer-pulse{
 0%,8%,50%,100%{opacity:.07;transform:scale(.5)}
 21%{opacity:.98;transform:scale(1.25)}
 34%{opacity:.28;transform:scale(1.4)}
}
@keyframes tg-avatar-shine-sweep{
 0%,8%{opacity:0;transform:translateX(-112%)}
 12%{opacity:.55} 47%{opacity:.72;transform:translateX(112%)}
 51%,100%{opacity:0;transform:translateX(112%)}
}
/* Contrast-verified palette pairs: each moving colour stays readable
   against actual light (#fff) and dark (#222827) leaderboard surfaces.
   All four gradient stops are intentional colours, never near-white ink. */
:root:not([data-theme="dark"]) [data-name-effect="aurora"]{
  --tg-name-a:#17646f;--tg-name-b:#563b91;--tg-name-c:#196b75;--tg-name-d:#2e6549;
}
:root[data-theme="dark"] [data-name-effect="aurora"]{
  --tg-name-a:#73b8b9;--tg-name-b:#a899ce;--tg-name-c:#7fc3c6;--tg-name-d:#92be9b;
}
:root:not([data-theme="dark"]) [data-name-effect="prism"]{
  --tg-name-a:#813266;--tg-name-b:#875019;--tg-name-c:#20657e;--tg-name-d:#563a95;
}
:root[data-theme="dark"] [data-name-effect="prism"]{
  --tg-name-a:#ca8fb5;--tg-name-b:#cfad78;--tg-name-c:#85bfce;--tg-name-d:#a799d4;
}
:root:not([data-theme="dark"]) [data-name-effect="shimmer"]{
  --tg-name-a:#354355;--tg-name-b:#505768;--tg-name-c:#34475e;--tg-name-d:#555064;
}
:root[data-theme="dark"] [data-name-effect="shimmer"]{
  --tg-name-a:#929dad;--tg-name-b:#c4c7cb;--tg-name-c:#9ea7b6;--tg-name-d:#b3bbc3;
}
:root:not([data-theme="dark"]) [data-name-effect="pearl"]{
  --tg-name-a:#624180;--tg-name-b:#3e6378;--tg-name-c:#774575;--tg-name-d:#2c696a;
}
:root[data-theme="dark"] [data-name-effect="pearl"]{
  --tg-name-a:#aba0cb;--tg-name-b:#9dbac6;--tg-name-c:#c69dc6;--tg-name-d:#93c2bc;
}
:root:not([data-theme="dark"]) [data-name-effect="ocean"]{
  --tg-name-a:#165c85;--tg-name-b:#176874;--tg-name-c:#374f98;--tg-name-d:#176a61;
}
:root[data-theme="dark"] [data-name-effect="ocean"]{
  --tg-name-a:#72aecc;--tg-name-b:#7dc3c6;--tg-name-c:#8fa5da;--tg-name-d:#80bfad;
}
:root:not([data-theme="dark"]) [data-name-effect="sunset"]{
  --tg-name-a:#973b51;--tg-name-b:#93531e;--tg-name-c:#973e4f;--tg-name-d:#7c4283;
}
:root[data-theme="dark"] [data-name-effect="sunset"]{
  --tg-name-a:#cf9ba5;--tg-name-b:#d2ae87;--tg-name-c:#d09591;--tg-name-d:#ba9bca;
}
:root:not([data-theme="dark"]) [data-name-effect="goldrush"]{
  --tg-name-a:#704d13;--tg-name-b:#845613;--tg-name-c:#765019;--tg-name-d:#7e4b10;
}
:root[data-theme="dark"] [data-name-effect="goldrush"]{
  --tg-name-a:#cfb37e;--tg-name-b:#cca867;--tg-name-c:#d9c693;--tg-name-d:#bb9c69;
}
:root:not([data-theme="dark"]) [data-name-effect="rainbow"]{
  --tg-name-a:#952b55;--tg-name-b:#8b4d17;--tg-name-c:#496721;--tg-name-d:#20685f;
}
:root[data-theme="dark"] [data-name-effect="rainbow"]{
  --tg-name-a:#cf8fb1;--tg-name-b:#d2a779;--tg-name-c:#a8bf7c;--tg-name-d:#87c2b5;
}
:root:not([data-theme="dark"]) [data-name-effect="candy"]{
  --tg-name-a:#8c3374;--tg-name-b:#57449c;--tg-name-c:#256480;--tg-name-d:#963d5e;
}
:root[data-theme="dark"] [data-name-effect="candy"]{
  --tg-name-a:#c795b9;--tg-name-b:#a89fd7;--tg-name-c:#87bad1;--tg-name-d:#ce9ba6;
}
:root:not([data-theme="dark"]) [data-name-effect="twilight"]{
  --tg-name-a:#434f98;--tg-name-b:#664483;--tg-name-c:#8b476c;--tg-name-d:#315f7e;
}
:root[data-theme="dark"] [data-name-effect="twilight"]{
  --tg-name-a:#929ecf;--tg-name-b:#ad9aca;--tg-name-c:#c498b3;--tg-name-d:#92b6c5;
}
:root:not([data-theme="dark"]) [data-name-effect="arcade"]{
  --tg-step-1:#206681;--tg-step-2:#673d80;--tg-step-3:#28685a;--tg-step-outline-1:#c9a3d3;--tg-step-outline-2:#94d2d2;--tg-step-outline-3:#cca57e;
}
:root[data-theme="dark"] [data-name-effect="arcade"]{
  --tg-step-1:#91c3d4;--tg-step-2:#b7a0d8;--tg-step-3:#93ccb6;--tg-step-outline-1:#553d77;--tg-step-outline-2:#367e91;--tg-step-outline-3:#72522c;
}
:root:not([data-theme="dark"]) [data-name-effect="pixelpop"]{
  --tg-step-1:#2e5590;--tg-step-2:#853866;--tg-step-3:#246b61;--tg-step-outline-1:#c07b96;--tg-step-outline-2:#5babb0;--tg-step-outline-3:#b18c48;
}
:root[data-theme="dark"] [data-name-effect="pixelpop"]{
  --tg-step-1:#9caedd;--tg-step-2:#ca97b6;--tg-step-3:#90cdbb;--tg-step-outline-1:#644a91;--tg-step-outline-2:#327575;--tg-step-outline-3:#6e492f;
}

/* Glimmer and Soft Glow have no gradient, so their actual ink remains
   readable inside muted leaderboard labels in either colour theme. */
:root [data-name-effect="glimmer"],
:root [data-name-effect="glow"]{color:var(--text)!important}

/* Name effects apply equally to display names and competitive initials.
   No pseudo-text is appended to the actual player identity. */
[data-name-effect="glimmer"]{
 color:inherit;
 animation:tg-name-glimmer-light 2.1s ease-in-out infinite
}
[data-name-effect="glow"]{
 text-shadow:0 0 3px var(--accent),0 0 13px var(--accent),
  0 0 22px color-mix(in srgb,var(--accent) 55%,transparent);
 animation:tg-name-glow 2.5s ease-in-out infinite
}
/* Exactly repeating colour periods: one full period moves across the text.
   Beginning and ending frames are pixel-identical, without loop snap. */
[data-name-effect="aurora"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 3.8s linear infinite
}
[data-name-effect="prism"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 2.8s linear infinite
}
[data-name-effect="shimmer"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 2.9s linear infinite
}
/* Five additional high-contrast, sharp-ink treatments. Metallic/shifting
   fills only: no text-shadow smears, filters, blur or extra DOM. */
[data-name-effect="pearl"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 3.6s linear infinite
}
[data-name-effect="ocean"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 4.2s linear infinite
}
[data-name-effect="sunset"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 4.6s linear infinite
}
[data-name-effect="arcade"]{
 color:var(--tg-step-1);
 text-shadow:1px 1px 0 var(--tg-step-outline-1);
 animation:tg-name-arcade 2.6s steps(1,end) infinite
}
[data-name-effect="goldrush"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 3.3s linear infinite
}
/* New treatments favour clean ink and geometric movement, NEVER blur. */
[data-name-effect="rainbow"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 3.8s linear infinite
}
[data-name-effect="candy"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 4.3s linear infinite
}
[data-name-effect="pixelpop"]{
 color:var(--tg-step-1);text-shadow:1px 1px 0 var(--tg-step-outline-1);
 animation:tg-name-pixelpop 2.8s steps(1,end) infinite
}
[data-name-effect="twilight"]{
 background:repeating-linear-gradient(90deg,
  var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
  var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 5.1s linear infinite
}
@keyframes tg-name-pixelpop{
 0%,18%,72%,100%{color:var(--tg-step-1);text-shadow:1px 1px 0 var(--tg-step-outline-1)}
 19%,36%{color:var(--tg-step-2);text-shadow:-1px 1px 0 var(--tg-step-outline-2)}
 37%,71%{color:var(--tg-step-3);text-shadow:1px -1px 0 var(--tg-step-outline-3)}
}
@keyframes tg-name-glimmer-light{
 0%,55%,100%{text-shadow:0 0 1px transparent;filter:brightness(1)}
 22%,36%{text-shadow:0 0 4px var(--tg-glimmer-glow,#ffde93),0 0 9px var(--tg-glimmer-glow,#ddb15e);filter:brightness(1.17)}
}
@keyframes tg-name-glow{
 0%,100%{text-shadow:0 0 4px var(--tg-glow-color,var(--accent)),0 0 9px var(--tg-glow-soft,color-mix(in srgb,var(--accent) 60%,transparent))}
 50%{text-shadow:0 0 5px var(--tg-glow-color,var(--accent)),0 0 15px var(--tg-glow-color,var(--accent)),0 0 25px var(--tg-glow-soft,color-mix(in srgb,var(--accent) 82%,transparent))}
}
/* Sunlit Glow and Glimmer need defined pigment, not a larger blurry halo. */
:root:not([data-theme="dark"]) [data-name-effect="glimmer"]{
 animation-name:tg-name-glimmer-day
}
:root:not([data-theme="dark"]) [data-name-effect="glow"]{
 text-shadow:1px 0 0 rgba(22,105,107,.38),0 0 3px rgba(24,111,112,.25);
 animation-name:tg-name-glow-day
}
@keyframes tg-name-glimmer-day{
 0%,55%,100%{text-shadow:0 0 0 transparent;filter:brightness(1)}
 22%,36%{text-shadow:1px 1px 0 var(--tg-glimmer-outline,#bb8b38),0 0 4px var(--tg-glimmer-glow,rgba(161,106,21,.36));filter:brightness(1.07)}
}
@keyframes tg-name-glow-day{
 0%,100%{text-shadow:1px 0 0 var(--tg-glow-color,rgba(22,105,107,.38)),0 0 3px var(--tg-glow-soft,rgba(24,111,112,.25))}
 50%{text-shadow:1px 0 0 var(--tg-glow-color,rgba(14,103,110,.72)),0 0 5px var(--tg-glow-soft,rgba(20,106,113,.42))}
}
@keyframes tg-name-colour-cycle{
 from{background-position:0% 0}to{background-position:100% 0}
}
@keyframes tg-name-arcade{
 0%,49%,100%{color:var(--tg-step-1);text-shadow:1px 1px 0 var(--tg-step-outline-1)}
 50%,75%{color:var(--tg-step-2);text-shadow:1px 1px 0 var(--tg-step-outline-2)}
}
/* Shared edition editor: free icons and colours are always interactive. */
.profile-custom-feature .tg-profile-editor{
 grid-template-columns:220px minmax(0,1fr);gap:24px
}
.profile-custom-feature .tg-profile-editor-preview{
 min-height:205px;gap:10px
}
.profile-custom-feature .tg-profile-editor-preview .tg-mini-board{
 width:100%;min-width:0;margin-top:10px;text-align:left
}
.tg-mini-board-caption{
 display:block;font-size:10px;font-weight:760;letter-spacing:.025em;
 color:var(--muted);margin-bottom:7px
}
.tg-mini-board-row{
 display:flex;align-items:center;gap:8px;min-width:0;
 border:1px solid var(--line);border-radius:11px;padding:9px 7px;
 background:var(--surface)
}
.tg-mini-rank{font-size:12px;font-weight:760;color:var(--muted);min-width:11px}
.tg-mini-board-row>.tg-mini-board-avatar{width:30px;height:30px;border-radius:9px}
.tg-mini-board-row>.tg-mini-board-avatar:not(.tg-premium-avatar) svg{width:72%;height:72%}
.tg-mini-board-person{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.tg-mini-board-person strong{font-size:12px;font-weight:820;letter-spacing:.04em}
.tg-mini-board-person small{
 font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.tg-mini-board-score{font-size:12px;font-weight:800;color:var(--muted)}
.profile-custom-feature .tg-free-description,
.profile-custom-feature .tg-plus-description{
 font-size:10px;font-weight:500;color:var(--muted);margin-left:5px
}
.profile-custom-feature .tg-plus-description{color:var(--accent)}
.profile-custom-feature :is(.tg-profile-icon-options,.tg-profile-color-options,.tg-profile-effect-options){
 display:flex;flex-wrap:wrap;gap:8px
}
.profile-custom-feature .tg-profile-option{position:relative}
.profile-custom-feature .tg-profile-option .tg-option-plus{
 position:absolute;right:-4px;top:-5px;
 display:grid;place-items:center;width:14px;height:14px;border-radius:5px;
 font-size:10px;line-height:1;font-weight:850;background:var(--surface-soft);
 border:1px solid var(--line);color:var(--accent)
}
.profile-custom-feature .tg-profile-option .tg-art-avatar{
 background:linear-gradient(145deg,var(--tg-profile-fill),
 color-mix(in srgb,var(--tg-art-accent) 25%,var(--tg-profile-fill)))
}
.profile-custom-feature .tg-profile-option.tg-effect-choice{
 min-height:34px;min-width:66px;padding:7px 12px;
 font-size:11px;font-weight:720
}
.profile-custom-feature #profile-customisation[data-locked="false"] .tg-profile-editor{
 opacity:1
}
.profile-custom-feature .tg-profile-tier-note{
 color:var(--muted);font-size:11px;line-height:1.5
}
.profile-custom-feature .plus-access .plus-lock-icon{display:none}
@media(max-width:650px){
 .profile-custom-feature .tg-profile-editor{grid-template-columns:1fr;gap:16px}
 .profile-custom-feature .tg-profile-editor-preview{
  display:flex;flex-direction:column;justify-content:center;text-align:center;min-height:0
 }
 .profile-custom-feature .tg-profile-editor-preview .tg-mini-board{
  max-width:240px;margin:7px auto 0
 }
 .profile-custom-feature .tg-profile-editor-save{grid-column:1}
}
@media(prefers-reduced-motion:reduce){
 .tg-profile-avatar::before,.tg-profile-avatar::after,
 .tg-avatar-particle,[data-name-effect]{animation:none!important}
 .tg-avatar-particle{display:none!important}
 .tg-profile-avatar[data-avatar-effect="shine"]::before{display:none}
}

/* Tier-level locks instead of dimming the entire Make it yours panel. */
.profile-custom-feature #profile-customisation[data-plus="false"]
 .tg-profile-option.is-plus:disabled{
 opacity:.32;filter:grayscale(.92);cursor:not-allowed;
 background:var(--surface-soft);border-style:dashed;
}
.profile-custom-feature #profile-customisation[data-plus="false"]
 .tg-profile-option.is-plus:disabled .tg-option-plus{opacity:1;filter:none}
.profile-custom-feature #profile-customisation[data-plus="false"] #profile-tagline:disabled{
 opacity:.38;cursor:not-allowed;background:var(--surface-soft)
}
.profile-custom-feature #profile-customisation[data-plus="false"]
 .tg-profile-motto-label:has(+ #profile-tagline:disabled){opacity:.55}
.profile-custom-feature .tg-mini-board-row{
 justify-content:center;gap:10px;min-height:54px;padding:9px 14px
}
.profile-custom-feature .tg-mini-board-initials{
 color:var(--text);font-size:15px;letter-spacing:.06em;font-weight:850
}
.profile-custom-feature .tg-mini-board-row>.tg-mini-board-avatar{
 width:37px;height:37px;border-radius:11px
}
.profile-custom-feature .tg-name-effect-preview{
 margin-top:10px;padding:13px 15px;border:1px solid var(--line);
 border-radius:11px;background:var(--surface-soft);
 display:flex;align-items:center;min-height:26px;overflow:visible
}
.profile-custom-feature #profile-name-style-preview{
 color:var(--text);font-size:16px;font-weight:770;letter-spacing:-.015em;
 overflow:visible
}
 /* Physical effects are Canvas-based, not CSS backgrounds or faux symbols. */
/* Keep large preview artwork and compact score artwork optically centred. */
.tg-profile-avatar svg{margin:auto}
.profile-menu .profile-menu-avatar>.tg-premium-avatar svg{width:82%;height:82%}

/* Fine-detail Plus artwork slightly smaller than free solid silhouettes. */
.profile-custom-feature .tg-avatar-preview.tg-premium-avatar svg{width:82%;height:82%}
.profile-custom-feature .tg-avatar-preview:not(.tg-premium-avatar) svg{width:70%;height:70%}
.profile-portrait .tg-avatar-portrait.tg-premium-avatar svg,
.page-public-profile #public-profile-avatar .tg-premium-avatar svg,
.profile-menu .profile-menu-avatar>.tg-avatar-menu.tg-premium-avatar svg,
body.float-ui .tg-rank-identity.tg-premium-avatar svg,
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-premium-avatar svg{
 width:82%;height:82%
}
#tegazumi-profile-particle-layer{contain:strict}

/* Standard icons return to their original inner silhouette size; the
   35px badge and premium illustration proportions are unchanged. */
.profile-menu .profile-menu-avatar>.tg-avatar-menu:not(.tg-premium-avatar) svg{
 width:66%;height:66%
}

/* Shared avatar geometry. The SVG's actual path can have its own optical
   correction, but its container is centred in every size: picker, menu,
   profile, rankings, modal, ribbon and persistent floating board.
   Screen-specific styles may choose WIDTH/HEIGHT; they must not move the art. */
body .tg-profile-avatar{
 display:inline-grid!important;place-items:center!important;
 grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);
 padding:0!important;
}
body .tg-profile-avatar>svg{
 display:block!important;grid-area:1 / 1;
 justify-self:center!important;align-self:center!important;
 margin:0!important;flex:none!important;
 position:static!important;max-width:100%;max-height:100%;
}
/* Coloured text is often a span or anchor inside a grid cell with old
   overflow:hidden + ellipsis styling. Keep the cell width allocation, but
   don't crop animated ink, tiny offsets or the Glow/Glimmer shadow itself. */
body :is(.memory-rank-player,.float-board-name,.float-dialog-name,
 .float-ribbon-name,.tg-mini-board-initials,.public-profile-initials)
 [data-name-effect]:not([data-name-effect="none"]),
body :is(.memory-rank-player,.float-board-name,.float-dialog-name,
 .float-ribbon-name,.tg-mini-board-initials,.public-profile-initials)[data-name-effect]:not([data-name-effect="none"]){
 overflow:visible!important;text-overflow:clip!important;
 line-height:1.4!important;padding-block:.24em!important;
 margin-block:-.24em;max-width:none;vertical-align:middle;
}
body.float-ui :is(.memory-rank-row,.float-board-row,.float-dialog-row,
 .float-ribbon-player):has([data-name-effect]:not([data-name-effect="none"])){
 overflow:visible!important
}
body.float-ui .float-ribbon-list:has([data-name-effect]:not([data-name-effect="none"])){
 overflow:visible!important;padding-block:6px;margin-block:-6px
}
body.float-ui .float-dialog-list:has([data-name-effect]:not([data-name-effect="none"])){
 padding-block:6px
}
/* Keep text effects within the site's editorial hierarchy: colour and
   glimmer may extend, but never shrink or shift the leaderboard row. */
body [data-name-effect]:not([data-name-effect="none"]){
 box-decoration-break:clone;-webkit-box-decoration-break:clone
}

/* Stronger micro-edges for compact leaderboard initials, without changing the
   existing row geometry, name layout, effect timing or font size. */
:root:not([data-theme="dark"]) :is(.memory-rank-player,.float-board-name,
 .float-dialog-name,.float-ribbon-name,.tg-mini-board-initials)
 [data-name-effect]:not([data-name-effect="none"]),
:root:not([data-theme="dark"]) :is(.memory-rank-player,.float-board-name,
 .float-dialog-name,.float-ribbon-name,.tg-mini-board-initials)[data-name-effect]:not([data-name-effect="none"]){
 -webkit-text-stroke:.18px color-mix(in srgb,var(--text) 18%,transparent)
}

/* Classic icon inversion is a free, theme-independent palette alternative. */
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="blue"]{--tg-profile-fill:#233d5b;--tg-profile-ink:#abd7ff}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="mint"]{--tg-profile-fill:#1f4c45;--tg-profile-ink:#b8edce}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="peach"]{--tg-profile-fill:#643e34;--tg-profile-ink:#ffcfab}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="lilac"]{--tg-profile-fill:#42335e;--tg-profile-ink:#dec6ff}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="gold"]{--tg-profile-fill:#524017;--tg-profile-ink:#ffe2a0}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="coral"]{--tg-profile-fill:#642f40;--tg-profile-ink:#ffc0ce}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="slate"]{--tg-profile-fill:#303d4b;--tg-profile-ink:#c5e0f5}
/* Full-bleed Plus illustrations are miniature artworks rather than medal seals. */
.tg-profile-avatar.tg-premium-avatar[data-avatar-art="full"]{
 background:var(--tg-premium-ground)!important;
 border-color:color-mix(in srgb,var(--tg-premium-ground) 65%,#fff)!important
}
:root body.float-ui .tg-rank-identity.tg-premium-avatar[data-avatar-art="full"]{
 background:var(--tg-premium-ground)!important
}
body .tg-profile-avatar.tg-premium-avatar[data-avatar-art="full"]>svg,
.profile-custom-feature .tg-avatar-preview.tg-premium-avatar[data-avatar-art="full"] svg,
.profile-portrait .tg-avatar-portrait.tg-premium-avatar[data-avatar-art="full"] svg,
.page-public-profile #public-profile-avatar .tg-premium-avatar[data-avatar-art="full"] svg,
.profile-menu .profile-menu-avatar>.tg-premium-avatar[data-avatar-art="full"] svg,
body.float-ui .tg-rank-identity.tg-premium-avatar[data-avatar-art="full"] svg,
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-premium-avatar[data-avatar-art="full"] svg{
 width:100%!important;height:100%!important;border-radius:inherit;overflow:hidden
}
body :is(.memory-rank-row,.float-board-row,.float-dialog-row,
 .float-ribbon-player):has(.tg-profile-avatar[data-avatar-effect="halo"]){
 overflow:visible!important
}
/* Non-particle icon effects vary in motion and surface treatment. */
.tg-profile-avatar:is([data-avatar-effect="sway"],[data-avatar-effect="bob"],
 [data-avatar-effect="tilt"],[data-avatar-effect="heartbeat"],
 [data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"]){overflow:visible!important}
.tg-profile-avatar[data-avatar-effect="sway"]>svg{
 transform-origin:50% 54%;animation:tg-avatar-sway 3.1s ease-in-out infinite
}
.tg-profile-avatar[data-avatar-effect="bob"]>svg{animation:tg-avatar-bob 2.7s ease-in-out infinite}
.tg-profile-avatar[data-avatar-effect="tilt"]{perspective:190px}
.tg-profile-avatar[data-avatar-effect="tilt"]>svg{
 transform-origin:center;animation:tg-avatar-tilt 3.5s ease-in-out infinite
}
.tg-profile-avatar[data-avatar-effect="heartbeat"]>svg{
 transform-origin:center;animation:tg-avatar-heartbeat 2.8s ease-in-out infinite
}
/* Border animation changes the painted gradient, never rotates the badge or
   its rounded-rectangle geometry. All tracks extend beyond the badge edge. */
@property --tg-avatar-track-angle{
 syntax:"<angle>";inherits:false;initial-value:0deg;
}
.tg-profile-avatar[data-avatar-effect="border-run"]::after,
.tg-profile-avatar[data-avatar-effect="orbit-ring"]::after{
 content:"";position:absolute;pointer-events:none;inset:0;
 padding:1.45px;border-radius:inherit;box-sizing:border-box;z-index:4;
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
 -webkit-mask-composite:xor;
 mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
 mask-composite:exclude;
 animation:tg-avatar-track-move 2.8s linear infinite;
}
.tg-profile-avatar[data-avatar-effect="border-run"]::after{
 background:conic-gradient(from var(--tg-avatar-track-angle),
 transparent 0deg 244deg,var(--tg-run-a,#80d1cb) 268deg,var(--tg-run-b,#f2c782) 305deg,
 var(--tg-run-c,#ed9bc3) 331deg,transparent 359deg);
}
.tg-profile-avatar[data-avatar-effect="orbit-ring"]::after{
 inset:0;padding:1.25px;
 background:repeating-conic-gradient(from var(--tg-avatar-track-angle),
 var(--tg-run-ink,color-mix(in srgb,var(--tg-profile-ink) 80%,#f2c87b)) 0deg 12deg,
 transparent 12deg 28deg);
 animation-duration:5.4s;
}
.tg-profile-avatar[data-avatar-effect="colourwave"]::after{
 content:"";inset:0;border-radius:inherit;
 background:repeating-linear-gradient(90deg,
 transparent 0%,rgba(91,174,197,.35) 12.5%,
 rgba(245,198,105,.42) 25%,rgba(221,126,180,.32) 37.5%,
 transparent 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 animation:tg-avatar-colourwave 4.2s linear infinite
}
@keyframes tg-avatar-sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes tg-avatar-bob{0%,100%{transform:translateY(1px)}50%{transform:translateY(-2px)}}
@keyframes tg-avatar-tilt{0%,100%{transform:rotateY(-28deg) rotateZ(-3deg)}50%{transform:rotateY(28deg) rotateZ(3deg)}}
@keyframes tg-avatar-heartbeat{
 0%,14%,37%,100%{transform:scale(1)}
 19%{transform:scale(1.10)}29%{transform:scale(.96)}41%{transform:scale(1.06)}
}
@keyframes tg-avatar-track-move{to{--tg-avatar-track-angle:360deg}}
@keyframes tg-avatar-colourwave{
 from{background-position:0% 0}to{background-position:100% 0}
}
@media(prefers-reduced-motion:reduce){
 .tg-profile-avatar[data-avatar-effect]>svg{animation:none!important}
}
.profile-custom-feature .tg-icon-invert-toggle{
 display:flex;align-items:center;gap:10px;margin:8px 0 0;
 cursor:pointer;font-size:12px;font-weight:650;color:var(--text);max-width:max-content
}
.profile-custom-feature .tg-icon-invert-toggle input{
 width:17px;height:17px;accent-color:var(--accent);cursor:pointer
}
.profile-custom-feature .tg-icon-invert-toggle:has(input:disabled){opacity:.45;cursor:default}
.profile-custom-feature .tg-icon-invert-toggle small{color:var(--muted);font-size:11px;font-weight:500}

/* Reduced-motion users retain a static Halo without a continuous canvas loop. */
@media(prefers-reduced-motion:reduce){
 .tg-profile-avatar[data-avatar-effect="halo"]{
  outline:2px solid color-mix(in srgb,var(--tg-profile-ink) 65%,#e5ba71);
  outline-offset:2px
 }
}

.tg-profile-avatar[data-avatar-color="plum"]{--tg-profile-fill:#eddaef;--tg-profile-ink:#74417e}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="plum"]{--tg-profile-fill:#40244e;--tg-profile-ink:#e5bee6}
.tg-profile-avatar[data-avatar-color="sky"]{--tg-profile-fill:#d9f0fb;--tg-profile-ink:#34759f}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="sky"]{--tg-profile-fill:#1d4e71;--tg-profile-ink:#abe4ff}
.tg-profile-avatar[data-avatar-color="lavender"]{--tg-profile-fill:#e5e4ff;--tg-profile-ink:#6158a9}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="lavender"]{--tg-profile-fill:#38345f;--tg-profile-ink:#cec7ff}
.tg-profile-avatar[data-avatar-color="cherry"]{--tg-profile-fill:#fbe0e8;--tg-profile-ink:#a34b68}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="cherry"]{--tg-profile-fill:#5c263c;--tg-profile-ink:#ffc5d7}
.tg-profile-avatar[data-avatar-color="jade"]{--tg-profile-fill:#d5f0d6;--tg-profile-ink:#3d8054}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="jade"]{--tg-profile-fill:#244b34;--tg-profile-ink:#b7f4bc}
.tg-profile-avatar[data-avatar-color="aqua"]{--tg-profile-fill:#d2f0ef;--tg-profile-ink:#288184}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="aqua"]{--tg-profile-fill:#1c5055;--tg-profile-ink:#a6f5ef}
.tg-profile-avatar[data-avatar-color="lemon"]{--tg-profile-fill:#fff3c8;--tg-profile-ink:#80681e}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="lemon"]{--tg-profile-fill:#554315;--tg-profile-ink:#ffea9b}
.tg-profile-avatar[data-avatar-color="orange"]{--tg-profile-fill:#ffe5ce;--tg-profile-ink:#aa612d}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="orange"]{--tg-profile-fill:#693b23;--tg-profile-ink:#ffd3a3}
.tg-profile-avatar[data-avatar-color="midnight"]{--tg-profile-fill:#dce0f4;--tg-profile-ink:#3f4d8b}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="midnight"]{--tg-profile-fill:#252e5b;--tg-profile-ink:#b8c5ff}
.tg-profile-avatar[data-avatar-color="raspberry"]{--tg-profile-fill:#f8daed;--tg-profile-ink:#a0457b}
.tg-profile-avatar:not(.tg-premium-avatar)[data-avatar-inverted="true"][data-avatar-color="raspberry"]{--tg-profile-fill:#632550;--tg-profile-ink:#ffc0e1}
/* A complete colour-field icon, not an inset logo. */
.tg-profile-avatar[data-avatar-icon="rainbow-angle"][data-avatar-art="full"]{
 background:linear-gradient(135deg,#ed879d 0%,#f7c67f 25%,#94d9a9 50%,#8dbfea 72%,#ad92e9 100%)!important
}

:root:not([data-theme="dark"]) [data-name-effect="sorbet"]{--tg-name-a:#953553;--tg-name-b:#89501a;--tg-name-c:#7d3c86;--tg-name-d:#a0445b;}

:root[data-theme="dark"] [data-name-effect="sorbet"]{--tg-name-a:#e7a5b8;--tg-name-b:#e7bb88;--tg-name-c:#c6afe9;--tg-name-d:#e5a3b7;}

:root:not([data-theme="dark"]) [data-name-effect="lagoon"]{--tg-name-a:#155d70;--tg-name-b:#265981;--tg-name-c:#295f82;--tg-name-d:#226753;}

:root[data-theme="dark"] [data-name-effect="lagoon"]{--tg-name-a:#8ad0d5;--tg-name-b:#93c9ec;--tg-name-c:#9dbde5;--tg-name-d:#9edcb7;}

:root:not([data-theme="dark"]) [data-name-effect="ultraviolet"]{--tg-name-a:#4d489a;--tg-name-b:#863e7b;--tg-name-c:#325a93;--tg-name-d:#5a3c90;}

:root[data-theme="dark"] [data-name-effect="ultraviolet"]{--tg-name-a:#bbb1f1;--tg-name-b:#e6acdd;--tg-name-c:#9cc9ed;--tg-name-d:#b6abef;}

:root:not([data-theme="dark"]) [data-name-effect="copper"]{--tg-name-a:#76501e;--tg-name-b:#865030;--tg-name-c:#6e512b;--tg-name-d:#894a32;}

:root[data-theme="dark"] [data-name-effect="copper"]{--tg-name-a:#edc591;--tg-name-b:#e7af95;--tg-name-c:#ecd4ab;--tg-name-d:#dba491;}

:root:not([data-theme="dark"]) [data-name-effect="mintshift"]{--tg-name-a:#226450;--tg-name-b:#1d6375;--tg-name-c:#2d6a57;--tg-name-d:#2c617e;}

:root[data-theme="dark"] [data-name-effect="mintshift"]{--tg-name-a:#92dfb2;--tg-name-b:#85c8d3;--tg-name-c:#b2e4bd;--tg-name-d:#9acde7;}

/* Five seamless gradients share the existing crisp gradient animation. */
[data-name-effect="sorbet"],[data-name-effect="lagoon"],
[data-name-effect="ultraviolet"],[data-name-effect="copper"],
[data-name-effect="mintshift"]{
 background:repeating-linear-gradient(90deg,
 var(--tg-name-a) 0%,var(--tg-name-b) 12.5%,var(--tg-name-c) 25%,
 var(--tg-name-d) 37.5%,var(--tg-name-a) 50%);
 background-size:200% 100%;background-repeat:repeat-x;
 background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
 animation:tg-name-colour-cycle 3.7s linear infinite
}
[data-name-effect="ultraviolet"]{animation-duration:2.9s}
[data-name-effect="copper"]{animation-duration:5.2s}
[data-name-effect="mintshift"]{animation-duration:4.6s}
/* Compact ink halos and sharp offsets, never heavy blurred smears. */
:root:not([data-theme="dark"]) [data-name-effect="neon-edge"]{
 --tg-edge-a:#22647d;--tg-edge-b:rgba(36,114,143,.56)
}
:root[data-theme="dark"] [data-name-effect="neon-edge"]{
 --tg-edge-a:#9bddea;--tg-edge-b:rgba(158,224,239,.65)
}
[data-name-effect="neon-edge"]{
 color:var(--tg-edge-a)!important;
 text-shadow:0 0 3px var(--tg-edge-b),0 0 7px var(--tg-edge-b);
 animation:tg-name-neon-edge 3s ease-in-out infinite
}
@keyframes tg-name-neon-edge{
 0%,100%{text-shadow:0 0 2px var(--tg-edge-b)}
 50%{text-shadow:0 0 4px var(--tg-edge-b),0 0 9px var(--tg-edge-b)}
}
:root:not([data-theme="dark"]) [data-name-effect="afterimage"]{
 --tg-after-a:#3f5b88;--tg-after-b:#b04f82;--tg-after-c:#2a827b
}
:root[data-theme="dark"] [data-name-effect="afterimage"]{
 --tg-after-a:#a7bcea;--tg-after-b:#ebaccd;--tg-after-c:#96d9cd
}
[data-name-effect="afterimage"]{
 color:var(--tg-after-a)!important;
 animation:tg-name-afterimage 3.5s steps(1,end) infinite
}
@keyframes tg-name-afterimage{
 0%,100%{text-shadow:.4px 0 0 color-mix(in srgb,var(--tg-after-b) 38%,transparent),
  -.4px 0 0 color-mix(in srgb,var(--tg-after-c) 34%,transparent)}
 35%{text-shadow:.65px 0 0 color-mix(in srgb,var(--tg-after-c) 42%,transparent),
  -.45px 0 0 color-mix(in srgb,var(--tg-after-b) 32%,transparent)}
 70%{text-shadow:-.45px 0 0 color-mix(in srgb,var(--tg-after-b) 37%,transparent),
  .55px 0 0 color-mix(in srgb,var(--tg-after-c) 35%,transparent)}
}
:root:not([data-theme="dark"]) [data-name-effect="spotlight"]{
 --tg-spot-core:#805019;--tg-spot-halo:rgba(144,90,30,.37)
}
:root[data-theme="dark"] [data-name-effect="spotlight"]{
 --tg-spot-core:#f3d595;--tg-spot-halo:rgba(251,209,122,.46)
}
[data-name-effect="spotlight"]{
 color:var(--tg-spot-core)!important;
 animation:tg-name-spotlight 4.5s ease-in-out infinite
}
@keyframes tg-name-spotlight{
 0%,100%{text-shadow:0 0 1px transparent}
 40%,58%{text-shadow:0 0 4px var(--tg-spot-halo),0 0 9px var(--tg-spot-halo)}
}
/* State-driven control, not an unstyled checkbox. */
.profile-custom-feature .tg-icon-invert-toggle{
 display:inline-flex;align-items:center;justify-content:center;
 padding:9px 14px;border:1px solid var(--line);
 border-radius:10px;background:var(--surface);color:var(--text);
 font:inherit;font-size:12px;font-weight:750;cursor:pointer;
 transition:background .15s,border-color .15s
}
.profile-custom-feature .tg-icon-invert-toggle[aria-pressed="true"]{
 background:var(--selected);border-color:var(--accent)
}
.profile-custom-feature .tg-icon-invert-toggle[aria-pressed="true"]::before{
 content:"✓";margin-right:7px;font-weight:850
}
.profile-custom-feature .tg-icon-invert-toggle:disabled{opacity:.45;cursor:not-allowed}

/* One compact swatch language across classic icons, Plus colourways and
   themeable text/effect finishes. */
.profile-custom-feature .tg-profile-editor-fields{gap:27px}
.profile-custom-feature .tg-profile-editor-fields>fieldset+fieldset{
 padding-top:20px;border-top:1px solid var(--line)
}
.profile-custom-feature :is(.tg-profile-color-options,.tg-colour-swatches){
 display:flex;flex-wrap:wrap;gap:5px
}
.profile-custom-feature .tg-profile-option.tg-colour-choice{
 box-sizing:border-box;width:34px;height:34px;min-width:34px;min-height:34px;
 padding:4px;border-radius:10px
}
.profile-custom-feature .tg-colour-swatch{
 display:block;width:24px;height:24px;border:1px solid #0001;border-radius:7px
}
.profile-custom-feature .tg-colour-swatch[data-colourway="original"]{
 background:conic-gradient(#eebd7a,#87cdb8,#ae98e0,#eebd7a)
}
.profile-custom-feature .tg-colour-swatch[data-colourway="sunset"],
.profile-custom-feature .tg-colour-swatch[data-colourway="rose"]{
 background:linear-gradient(135deg,#de7f9b,#efb37b,#f7d194)
}
.profile-custom-feature .tg-colour-swatch[data-colourway="ocean"]{
 background:linear-gradient(135deg,#3875a6,#7bc8da,#a7e6c4)
}
.profile-custom-feature .tg-colour-swatch[data-colourway="violet"]{
 background:linear-gradient(135deg,#6046a2,#b48fdf,#e2bbe1)
}
.profile-custom-feature .tg-colour-swatch[data-colourway="gold"]{
 background:linear-gradient(135deg,#8b6b21,#dfb96b,#f7e19a)
}
.profile-custom-feature .tg-colour-swatch[data-colourway="mono"]{
 background:linear-gradient(135deg,#383c42,#81878e,#dee0e3)
}
.profile-custom-feature .tg-additional-colours{margin-top:14px}
.profile-custom-feature .tg-additional-colours[hidden]{display:none!important}
.profile-custom-feature .tg-colour-label{
 display:block;margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:670
}
/* Identical slider geometry to the profile privacy toggle. */
.profile-custom-feature .tg-invert-setting{max-width:480px;margin:9px 0 0;padding:9px 0 0;border-top:0}
.profile-custom-feature .tg-invert-setting strong{font-size:12px}
.profile-custom-feature .tg-invert-setting small{font-size:11px}
.profile-custom-feature .tg-invert-setting input{
 appearance:none;position:relative;display:block;flex:none;cursor:pointer;
 width:45px;height:27px;border:0;border-radius:99px;
 background:var(--line);transition:background .2s
}
.profile-custom-feature .tg-invert-setting input::before{
 content:"";position:absolute;top:4px;left:4px;width:19px;height:19px;
 border-radius:50%;background:var(--surface);box-shadow:0 1px 4px #0002;
 transition:transform .2s
}
.profile-custom-feature .tg-invert-setting input:checked{background:#48aa7b}
.profile-custom-feature .tg-invert-setting input:checked::before{transform:translateX(18px)}
.profile-custom-feature .tg-invert-setting input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.profile-custom-feature .tg-invert-setting input:disabled{opacity:.5;cursor:default}

/* Independent palette treatments for full-bleed Plus art. SVG artwork changes,
   not just a badge background swatch that the illustration obscures. */
.tg-profile-avatar.tg-premium-avatar[data-avatar-art-colourway="sunset"] svg{
 filter:hue-rotate(75deg) saturate(1.16)
}
.tg-profile-avatar.tg-premium-avatar[data-avatar-art-colourway="ocean"] svg{
 filter:hue-rotate(175deg) saturate(1.1)
}
.tg-profile-avatar.tg-premium-avatar[data-avatar-art-colourway="mono"] svg{
 filter:grayscale(1) contrast(1.09)
}
.tg-profile-avatar[data-avatar-icon="rainbow-angle"][data-avatar-art-colourway="sunset"]{
 background:linear-gradient(135deg,#e68599,#f1aa84,#f6d17c,#dd92b5)!important
}
.tg-profile-avatar[data-avatar-icon="rainbow-angle"][data-avatar-art-colourway="ocean"]{
 background:linear-gradient(135deg,#306b9f,#81c7dd,#8cddbf,#8da5e8)!important
}
.tg-profile-avatar[data-avatar-icon="rainbow-angle"][data-avatar-art-colourway="mono"]{
 background:linear-gradient(135deg,#343a43,#737e89,#d4d9de)!important
}
/* Palette-controlled exterior runner pigments. The outline never turns. */
.tg-profile-avatar[data-avatar-effect-colour="rose"]{
 --tg-run-a:#da7099;--tg-run-b:#ef9aba;--tg-run-c:#ffd0df;--tg-run-ink:#df7da4
}
.tg-profile-avatar[data-avatar-effect-colour="ocean"]{
 --tg-run-a:#3683ab;--tg-run-b:#84d5db;--tg-run-c:#5aa7d6;--tg-run-ink:#4b94b4
}
.tg-profile-avatar[data-avatar-effect-colour="gold"]{
 --tg-run-a:#bd872c;--tg-run-b:#e7b956;--tg-run-c:#ffe19b;--tg-run-ink:#d5a33f
}
/* Colour adjustment is restricted to the named gradient and glow finishes.
   Text outlines and hit boxes remain untouched. */

/* A single, genuinely representative pigment system: small picker chips,
   moving name-gradient stops, border runners and emitted sprite ink share it.
   Each shade has its own light/dark ink, not a CSS hue-rotation approximation. */
#profile-effect-colour-options .tg-colour-swatch[data-colourway]:not([data-colourway="original"]){
 background:linear-gradient(120deg,var(--tg-ink-a) 0 30%,
 var(--tg-ink-b) 30% 64%,var(--tg-ink-c) 64% 100%)!important
}
/* Six curated finishes retain their original animations and shading.
   Colour selection rotates the finished effect's hue, rather than replacing
   keyframes, text-shadow geometry or gradient pigments. */
.tg-profile-avatar[data-avatar-effect-colour]:not([data-avatar-effect-colour="original"]){
 --tg-run-a:var(--tg-ink-a);--tg-run-b:var(--tg-ink-b);
 --tg-run-c:var(--tg-ink-c);--tg-run-ink:var(--tg-ink-a)
}
:root:not([data-theme="dark"]) :is([data-name-colour="ruby"],[data-avatar-effect-colour="ruby"],.tg-colour-swatch[data-colourway="ruby"]){--tg-ink-a:#902d42;--tg-ink-b:#84293d;--tg-ink-c:#95364b;--tg-ink-d:#7c2739;}
:root[data-theme="dark"] :is([data-name-colour="ruby"],[data-avatar-effect-colour="ruby"],.tg-colour-swatch[data-colourway="ruby"]){--tg-ink-a:#f7aeb9;--tg-ink-b:#f8b4be;--tg-ink-c:#f8bbc4;--tg-ink-d:#e6a2ac;}
:root:not([data-theme="dark"]) :is([data-name-colour="coral"],[data-avatar-effect-colour="coral"],.tg-colour-swatch[data-colourway="coral"]){--tg-ink-a:#a6414c;--tg-ink-b:#993c46;--tg-ink-c:#aa4a54;--tg-ink-d:#8f3841;}
:root[data-theme="dark"] :is([data-name-colour="coral"],[data-avatar-effect-colour="coral"],.tg-colour-swatch[data-colourway="coral"]){--tg-ink-a:#ffb4ab;--tg-ink-b:#ffb9b1;--tg-ink-c:#ffc0b8;--tg-ink-d:#eda79f;}
:root:not([data-theme="dark"]) :is([data-name-colour="rose"],[data-avatar-effect-colour="rose"],.tg-colour-swatch[data-colourway="rose"]){--tg-ink-a:#963667;--tg-ink-b:#8a325f;--tg-ink-c:#9b3f6e;--tg-ink-d:#812e59;}
:root[data-theme="dark"] :is([data-name-colour="rose"],[data-avatar-effect-colour="rose"],.tg-colour-swatch[data-colourway="rose"]){--tg-ink-a:#edaed2;--tg-ink-b:#eeb4d5;--tg-ink-c:#f0bbd9;--tg-ink-d:#dca2c3;}
:root:not([data-theme="dark"]) :is([data-name-colour="orange"],[data-avatar-effect-colour="orange"],.tg-colour-swatch[data-colourway="orange"]){--tg-ink-a:#96501b;--tg-ink-b:#8a4a19;--tg-ink-c:#9b5825;--tg-ink-d:#814517;}
:root[data-theme="dark"] :is([data-name-colour="orange"],[data-avatar-effect-colour="orange"],.tg-colour-swatch[data-colourway="orange"]){--tg-ink-a:#efba92;--tg-ink-b:#f0bf9a;--tg-ink-c:#f2c5a3;--tg-ink-d:#dead88;}
:root:not([data-theme="dark"]) :is([data-name-colour="amber"],[data-avatar-effect-colour="amber"],.tg-colour-swatch[data-colourway="amber"]){--tg-ink-a:#805315;--tg-ink-b:#764c13;--tg-ink-c:#865b20;--tg-ink-d:#6e4712;}
:root[data-theme="dark"] :is([data-name-colour="amber"],[data-avatar-effect-colour="amber"],.tg-colour-swatch[data-colourway="amber"]){--tg-ink-a:#efcb86;--tg-ink-b:#f0cf8e;--tg-ink-c:#f2d399;--tg-ink-d:#debd7d;}
:root:not([data-theme="dark"]) :is([data-name-colour="gold"],[data-avatar-effect-colour="gold"],.tg-colour-swatch[data-colourway="gold"]){--tg-ink-a:#745d17;--tg-ink-b:#6b5615;--tg-ink-c:#7a6421;--tg-ink-d:#645014;}
:root[data-theme="dark"] :is([data-name-colour="gold"],[data-avatar-effect-colour="gold"],.tg-colour-swatch[data-colourway="gold"]){--tg-ink-a:#e9d293;--tg-ink-b:#ebd59b;--tg-ink-c:#edd9a4;--tg-ink-d:#d9c389;}
:root:not([data-theme="dark"]) :is([data-name-colour="lime"],[data-avatar-effect-colour="lime"],.tg-colour-swatch[data-colourway="lime"]){--tg-ink-a:#4e6b24;--tg-ink-b:#486221;--tg-ink-c:#56722e;--tg-ink-d:#435c1f;}
:root[data-theme="dark"] :is([data-name-colour="lime"],[data-avatar-effect-colour="lime"],.tg-colour-swatch[data-colourway="lime"]){--tg-ink-a:#c0dda0;--tg-ink-b:#c4dfa7;--tg-ink-c:#cae2af;--tg-ink-d:#b3ce95;}
:root:not([data-theme="dark"]) :is([data-name-colour="mint"],[data-avatar-effect-colour="mint"],.tg-colour-swatch[data-colourway="mint"]){--tg-ink-a:#296c4e;--tg-ink-b:#266348;--tg-ink-c:#337356;--tg-ink-d:#235d43;}
:root[data-theme="dark"] :is([data-name-colour="mint"],[data-avatar-effect-colour="mint"],.tg-colour-swatch[data-colourway="mint"]){--tg-ink-a:#9ee3be;--tg-ink-b:#a5e5c3;--tg-ink-c:#aee7c8;--tg-ink-d:#93d3b1;}
:root:not([data-theme="dark"]) :is([data-name-colour="teal"],[data-avatar-effect-colour="teal"],.tg-colour-swatch[data-colourway="teal"]){--tg-ink-a:#226974;--tg-ink-b:#1f616b;--tg-ink-c:#2c707a;--tg-ink-d:#1d5a64;}
:root[data-theme="dark"] :is([data-name-colour="teal"],[data-avatar-effect-colour="teal"],.tg-colour-swatch[data-colourway="teal"]){--tg-ink-a:#99dbe2;--tg-ink-b:#a0dee4;--tg-ink-c:#a9e1e7;--tg-ink-d:#8eccd2;}
:root:not([data-theme="dark"]) :is([data-name-colour="ocean"],[data-avatar-effect-colour="ocean"],.tg-colour-swatch[data-colourway="ocean"]){--tg-ink-a:#245b83;--tg-ink-b:#215479;--tg-ink-c:#2e6289;--tg-ink-d:#1f4e71;}
:root[data-theme="dark"] :is([data-name-colour="ocean"],[data-avatar-effect-colour="ocean"],.tg-colour-swatch[data-colourway="ocean"]){--tg-ink-a:#a2c8ef;--tg-ink-b:#a9ccf0;--tg-ink-c:#b1d1f2;--tg-ink-d:#97bade;}
:root:not([data-theme="dark"]) :is([data-name-colour="sky"],[data-avatar-effect-colour="sky"],.tg-colour-swatch[data-colourway="sky"]){--tg-ink-a:#27687b;--tg-ink-b:#246071;--tg-ink-c:#316f81;--tg-ink-d:#22596a;}
:root[data-theme="dark"] :is([data-name-colour="sky"],[data-avatar-effect-colour="sky"],.tg-colour-swatch[data-colourway="sky"]){--tg-ink-a:#a9e2ed;--tg-ink-b:#afe4ee;--tg-ink-c:#b7e7f0;--tg-ink-d:#9dd2dc;}
:root:not([data-theme="dark"]) :is([data-name-colour="blue"],[data-avatar-effect-colour="blue"],.tg-colour-swatch[data-colourway="blue"]){--tg-ink-a:#34579a;--tg-ink-b:#30508e;--tg-ink-c:#3d5f9f;--tg-ink-d:#2d4b84;}
:root[data-theme="dark"] :is([data-name-colour="blue"],[data-avatar-effect-colour="blue"],.tg-colour-swatch[data-colourway="blue"]){--tg-ink-a:#acc1f5;--tg-ink-b:#b2c5f6;--tg-ink-c:#b9cbf7;--tg-ink-d:#a0b3e4;}
:root:not([data-theme="dark"]) :is([data-name-colour="violet"],[data-avatar-effect-colour="violet"],.tg-colour-swatch[data-colourway="violet"]){--tg-ink-a:#5d4097;--tg-ink-b:#563b8b;--tg-ink-c:#64499c;--tg-ink-d:#503782;}
:root[data-theme="dark"] :is([data-name-colour="violet"],[data-avatar-effect-colour="violet"],.tg-colour-swatch[data-colourway="violet"]){--tg-ink-a:#cab3f3;--tg-ink-b:#ceb8f4;--tg-ink-c:#d2bff5;--tg-ink-d:#bca6e2;}
:root:not([data-theme="dark"]) :is([data-name-colour="pink"],[data-avatar-effect-colour="pink"],.tg-colour-swatch[data-colourway="pink"]){--tg-ink-a:#973e82;--tg-ink-b:#8b3978;--tg-ink-c:#9c4788;--tg-ink-d:#823570;}
:root[data-theme="dark"] :is([data-name-colour="pink"],[data-avatar-effect-colour="pink"],.tg-colour-swatch[data-colourway="pink"]){--tg-ink-a:#f3b9e6;--tg-ink-b:#f4bee8;--tg-ink-c:#f5c4ea;--tg-ink-d:#e2acd6;}
:root:not([data-theme="dark"]) :is([data-name-colour="mono"],[data-avatar-effect-colour="mono"],.tg-colour-swatch[data-colourway="mono"]){--tg-ink-a:#46525c;--tg-ink-b:#404b55;--tg-ink-c:#4e5a63;--tg-ink-d:#3c474f;}
:root[data-theme="dark"] :is([data-name-colour="mono"],[data-avatar-effect-colour="mono"],.tg-colour-swatch[data-colourway="mono"]){--tg-ink-a:#d0d5db;--tg-ink-b:#d3d8de;--tg-ink-c:#d8dce1;--tg-ink-d:#c1c6cc;}

/* Runners are positioned exactly on the outer edge; avoid profile portrait
   overflow clipping, including the compact editor leaderboard preview. */
.tg-profile-avatar:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"]){
 overflow:visible!important
}
/* Keep the avatar's own rounded clipping: runners are painted just inside
   their edge rather than expanding the main portrait into a square. */
:is(.page-profile,.page-public-profile) .profile-portrait:has(.tg-profile-avatar:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"])){
 overflow:hidden!important;border-radius:17px!important
}
.profile-custom-feature .tg-avatar-preview:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"]),
:is(.page-profile,.page-public-profile) .profile-portrait .tg-avatar-portrait:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"]){
 overflow:hidden!important;border-radius:inherit!important
}
:is(.page-profile,.page-public-profile) .profile-portrait .tg-avatar-portrait:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"])::after,
.profile-custom-feature .tg-avatar-preview:is([data-avatar-effect="border-run"],[data-avatar-effect="orbit-ring"])::after{
 inset:1px!important;border-radius:inherit!important
}

/* A default identity is the familiar unstyled player symbol, not a coloured
   fake premium tile, across the editor and account view. */
.profile-custom-feature .tg-avatar-default-option{
 display:inline-grid;place-items:center;width:35px;height:35px;
 font-size:19px;font-weight:650;color:var(--muted);background:var(--surface-soft);
 border-radius:10px
}

/* Original preserves a design's actual colours. Avoid misleading rainbow chips. */
.profile-custom-feature .tg-colour-swatch[data-colourway="original"]{
 background:var(--surface-soft)!important;border-color:var(--line);
 position:relative;display:grid;place-items:center
}
.profile-custom-feature .tg-colour-swatch[data-colourway="original"]::after{
 content:"↺";font-size:16px;font-weight:700;line-height:1;color:var(--muted)
}
.profile-custom-feature #profile-colour-options[hidden]{display:none!important}

/* Hue families and source hues provide predictable, theme-independent tuning.
   No animation names or shadows are replaced by the colour selector. */
[data-name-colour="ruby"],[data-avatar-effect-colour="ruby"],.tg-colour-swatch[data-colourway="ruby"]{--tg-target-hue:355deg}
[data-name-colour="coral"],[data-avatar-effect-colour="coral"],.tg-colour-swatch[data-colourway="coral"]{--tg-target-hue:10deg}
[data-name-colour="rose"],[data-avatar-effect-colour="rose"],.tg-colour-swatch[data-colourway="rose"]{--tg-target-hue:330deg}
[data-name-colour="orange"],[data-avatar-effect-colour="orange"],.tg-colour-swatch[data-colourway="orange"]{--tg-target-hue:25deg}
[data-name-colour="amber"],[data-avatar-effect-colour="amber"],.tg-colour-swatch[data-colourway="amber"]{--tg-target-hue:38deg}
[data-name-colour="gold"],[data-avatar-effect-colour="gold"],.tg-colour-swatch[data-colourway="gold"]{--tg-target-hue:52deg}
[data-name-colour="lime"],[data-avatar-effect-colour="lime"],.tg-colour-swatch[data-colourway="lime"]{--tg-target-hue:85deg}
[data-name-colour="mint"],[data-avatar-effect-colour="mint"],.tg-colour-swatch[data-colourway="mint"]{--tg-target-hue:146deg}
[data-name-colour="teal"],[data-avatar-effect-colour="teal"],.tg-colour-swatch[data-colourway="teal"]{--tg-target-hue:180deg}
[data-name-colour="ocean"],[data-avatar-effect-colour="ocean"],.tg-colour-swatch[data-colourway="ocean"]{--tg-target-hue:205deg}
[data-name-colour="sky"],[data-avatar-effect-colour="sky"],.tg-colour-swatch[data-colourway="sky"]{--tg-target-hue:193deg}
[data-name-colour="blue"],[data-avatar-effect-colour="blue"],.tg-colour-swatch[data-colourway="blue"]{--tg-target-hue:228deg}
[data-name-colour="violet"],[data-avatar-effect-colour="violet"],.tg-colour-swatch[data-colourway="violet"]{--tg-target-hue:278deg}
[data-name-colour="pink"],[data-avatar-effect-colour="pink"],.tg-colour-swatch[data-colourway="pink"]{--tg-target-hue:316deg}
[data-name-colour="mono"],[data-avatar-effect-colour="mono"],.tg-colour-swatch[data-colourway="mono"]{--tg-target-hue:0deg}
[data-name-effect="glimmer"],#profile-name-colour-options[data-effect-name="glimmer"]{--tg-native-hue:41deg}
[data-name-effect="glow"],#profile-name-colour-options[data-effect-name="glow"]{--tg-native-hue:155deg}
[data-name-effect="arcade"],#profile-name-colour-options[data-effect-name="arcade"]{--tg-native-hue:192deg}
[data-name-effect="ultraviolet"],#profile-name-colour-options[data-effect-name="ultraviolet"]{--tg-native-hue:265deg}
[data-name-effect="afterimage"],#profile-name-colour-options[data-effect-name="afterimage"]{--tg-native-hue:225deg}
[data-name-effect="neon-edge"],#profile-name-colour-options[data-effect-name="neon-edge"]{--tg-native-hue:195deg}


/* Direct pigments, not rotation of each effect's mixed original colours.
   The selected swatch hue is the source of truth for ink, light, ghosts and
   decorative shadows across both themes and all six active name finishes. */
:root [data-name-effect]:not([data-name-effect="none"])[data-name-colour]:not([data-name-colour="original"]){
 --tg-name-hue-shift:0deg;
 --tg-name-pigment-sat:95%;
 --tg-name-pigment-hue:var(--tg-target-hue,210deg);
 --tg-name-pigment-alt-hue:calc(var(--tg-name-pigment-hue) + 12deg);
 --tg-name-a:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 66%);
 --tg-name-b:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 72%);
 --tg-name-c:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 57%);
 --tg-name-d:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 62%);
 --tg-step-1:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 72%);
 --tg-step-2:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 61%);
 --tg-step-outline-1:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 36% / .62);
 --tg-step-outline-2:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 36% / .6);
 --tg-glimmer-glow:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 68% / .67);
 --tg-glimmer-outline:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 47% / .65);
 --tg-glow-color:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 61% / .48);
 --tg-glow-soft:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 72% / .25);
 --tg-edge-b:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 65% / .6);
 --tg-after-b:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 68%);
 --tg-after-c:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 58%);
 filter:none;
}
:root [data-name-effect]:not([data-name-effect="none"])[data-name-colour="mono"]:not([data-name-colour="original"]){--tg-name-pigment-sat:0%}
:root:not([data-theme="dark"]) [data-name-effect]:not([data-name-effect="none"])[data-name-colour]:not([data-name-colour="original"]){
 --tg-name-pigment-ink:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 36%);
 --tg-name-a:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 36%);
 --tg-name-b:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 46%);
 --tg-name-c:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 29%);
 --tg-name-d:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 40%);
 --tg-step-1:var(--tg-name-pigment-ink);
 --tg-step-2:hsl(var(--tg-name-pigment-alt-hue) var(--tg-name-pigment-sat) 43%);
 --tg-glow-color:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 43% / .45);
 --tg-glow-soft:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 52% / .25);
}
:root[data-theme="dark"] [data-name-effect]:not([data-name-effect="none"])[data-name-colour]:not([data-name-colour="original"]){
 --tg-name-pigment-ink:hsl(var(--tg-name-pigment-hue) var(--tg-name-pigment-sat) 73%);
}
:root :is([data-name-effect="glimmer"],[data-name-effect="glow"],[data-name-effect="arcade"],
 [data-name-effect="afterimage"],[data-name-effect="neon-edge"])[data-name-colour]:not([data-name-colour="original"]){
 color:var(--tg-name-pigment-ink)!important;
}
:root [data-name-effect="neon-edge"][data-name-colour]:not([data-name-colour="original"]){
 --tg-edge-a:var(--tg-name-pigment-ink);
}
:root [data-name-effect="afterimage"][data-name-colour]:not([data-name-colour="original"]){
 --tg-after-a:var(--tg-name-pigment-ink);
}
/* Strong, trustworthy chips show the selected hue, not a hue-rotated blend.
   The Plus icon effect chips use the same pigment as the emitted effects. */
#profile-name-colour-options .tg-colour-swatch[data-colourway]:not([data-colourway="original"]),
#profile-effect-colour-options .tg-colour-swatch[data-colourway]:not([data-colourway="original"]){
 background:linear-gradient(135deg,
  hsl(var(--tg-target-hue) 98% 74%) 0%,
  hsl(var(--tg-target-hue) 96% 56%) 100%)!important;
 filter:none;opacity:1;
}
#profile-name-colour-options .tg-colour-swatch[data-colourway="mono"],
#profile-effect-colour-options .tg-colour-swatch[data-colourway="mono"]{
 background:linear-gradient(135deg,#f4f4f4,#8b9198)!important;
}
.tg-profile-avatar[data-avatar-effect-colour]:not([data-avatar-effect-colour="original"]){
 --tg-ink-a:hsl(var(--tg-target-hue) 90% 67%);
 --tg-ink-b:hsl(var(--tg-target-hue) 94% 76%);
 --tg-ink-c:hsl(var(--tg-target-hue) 89% 59%);
 --tg-ink-d:hsl(var(--tg-target-hue) 89% 66%);
 --tg-run-a:var(--tg-ink-a);
 --tg-run-b:var(--tg-ink-b);
 --tg-run-c:var(--tg-ink-c);
 --tg-run-ink:var(--tg-ink-a);
}
.tg-profile-avatar[data-avatar-effect-colour="mono"]{
 --tg-ink-a:#bdc4cc;--tg-ink-b:#e1e5e9;
 --tg-ink-c:#858e97;--tg-ink-d:#a0aab3;
}

/* Monochrome overrides must beat the generic pigmented chip/particle rules.
   Hue zero is RED at 90-98% saturation, not greyscale. Keep mono's
   effective saturation at zero in both the editor and rendered effects. */
#profile-name-colour-options .tg-colour-swatch[data-colourway="mono"]:not([data-colourway="original"]),
#profile-effect-colour-options .tg-colour-swatch[data-colourway="mono"]:not([data-colourway="original"]){
 background:linear-gradient(135deg,#ecedf1 0%,#a3aab2 54%,#68727d 100%)!important;
 filter:none!important;opacity:1;
}
:root [data-name-effect]:not([data-name-effect="none"])[data-name-colour="mono"]:not([data-name-colour="original"]){
 --tg-name-pigment-sat:0%;
 --tg-name-pigment-hue:0deg;
 --tg-name-pigment-alt-hue:0deg;
}
:root[data-theme] .tg-profile-avatar[data-avatar-effect-colour="mono"]:not([data-avatar-effect-colour="original"]){
 --tg-target-hue:0deg;
 --tg-ink-a:#bdc4cc;--tg-ink-b:#e1e5e9;
 --tg-ink-c:#858e97;--tg-ink-d:#a0aab3;
 --tg-run-a:var(--tg-ink-a);--tg-run-b:var(--tg-ink-b);
 --tg-run-c:var(--tg-ink-c);--tg-run-ink:var(--tg-ink-a);
}

/* Quiet profile editor: uniform labels, contained preview and no privacy rule. */
#player-profile-data .profile-privacy-setting{border-top:0;padding-top:9px;margin-top:10px}
.page-profile .profile-settings-heading p,
.page-profile .profile-custom-feature .plus-feature-description{font-size:13px;line-height:1.5}
.page-profile .profile-setting>label,
.page-profile .profile-custom-feature :is(legend,.tg-profile-motto-label){font-size:13px;font-weight:700;line-height:1.35}
/* Single rhythm for the profile editor: compact label-to-control spacing,
   spacious block-to-block spacing, and generous room for nested options.
   Explicit groups avoid fieldset/legend's inconsistent border placement. */
.page-profile .profile-custom-feature .tg-profile-editor-fields{
 --tg-editor-heading-gap:6px;
 --tg-editor-block-gap:22px;
 --tg-editor-subgroup-gap:25px;
 display:flex;flex-direction:column;gap:var(--tg-editor-block-gap);
}
.page-profile .profile-custom-feature .tg-profile-editor-group,
.page-profile .profile-custom-feature .tg-profile-motto-field{
 display:flex;flex-direction:column;align-items:stretch;min-width:0;margin:0;padding:0;
}
.page-profile .profile-custom-feature :is(.tg-profile-group-heading,.tg-profile-motto-label){
 display:block;line-height:1.35;font-size:13px;font-weight:700;color:var(--text);
 margin:0 0 var(--tg-editor-heading-gap);padding:0;
}
.page-profile .profile-custom-feature .tg-profile-editor-group + .tg-profile-editor-group{
 border-top:1px solid var(--line);padding-top:14px;
}
.page-profile .profile-custom-feature .tg-profile-editor-group .tg-invert-setting{
 margin:var(--tg-editor-subgroup-gap) 0 0;
 padding:0;border:0;max-width:480px;
}
.page-profile .profile-custom-feature .tg-profile-editor-group .tg-invert-setting strong{
 font-size:13px;font-weight:700;
}
.page-profile .profile-custom-feature .tg-profile-editor-group .tg-additional-colours{
 margin-top:var(--tg-editor-subgroup-gap);
}
.page-profile .profile-custom-feature .tg-profile-editor-group .tg-colour-label{
 margin:0 0 var(--tg-editor-heading-gap);font-size:12px;font-weight:650;
}
.page-profile .profile-custom-feature .tg-profile-motto-field{
 margin-top:13px;
}

.profile-custom-feature .tg-profile-editor-preview .tg-name-effect-preview{
 box-sizing:border-box;width:100%;margin:3px 0 0;padding:10px 9px;min-height:42px;
 justify-content:center;text-align:center
}
.profile-custom-feature .tg-profile-editor-preview #profile-name-style-preview{
 font-size:14px;line-height:1.4;max-width:100%;overflow-wrap:anywhere;
 min-width:0;text-align:center
}
.profile-custom-feature #profile-appearance-save:disabled{
 opacity:.46;filter:grayscale(1);cursor:default
}


/* Bit family: the same higher-definition 40px sprite in every existing avatar slot. */
.tg-profile-avatar.tg-bit-avatar{
 --bit-body:#6395c8;--bit-edge:#44688e;
 position:relative;isolation:isolate;
}
.tg-profile-avatar.tg-bit-avatar > svg{
 display:block;width:94%;height:94%;flex:none;
 shape-rendering:crispEdges;overflow:visible;fill:none;
}
.tg-bit-avatar .bit-edge{fill:var(--bit-edge)}
.tg-bit-avatar .bit-body{fill:var(--bit-body)}
.tg-bit-avatar .bit-shade{fill:color-mix(in srgb,var(--bit-edge) 62%,var(--bit-body))}
.tg-bit-avatar .bit-highlight{fill:color-mix(in srgb,#fff 63%,var(--bit-body))}
.tg-bit-avatar .bit-face{fill:#1b2834}
.tg-bit-avatar .bit-detail{fill:#ffe2a0}
.tg-bit-avatar .bit-glint{fill:#f9fcff}
.tg-bit-avatar:has([data-bit-variant="cat"]) .bit-detail,
.tg-bit-avatar:has([data-bit-variant="fox"]) .bit-detail,
.tg-bit-avatar:has([data-bit-variant="pup"]) .bit-detail{fill:#ffd7e4}
.profile-portrait .tg-avatar-portrait.tg-bit-avatar > svg,
.page-public-profile #public-profile-avatar .tg-bit-avatar > svg{
 width:93%;height:93%;
}
.profile-menu .profile-menu-avatar>.tg-avatar-menu.tg-bit-avatar svg,
body.float-ui .tg-rank-identity.tg-bit-avatar svg,
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-bit-avatar svg{
 width:95%;height:95%;
}
.profile-custom-feature .tg-avatar-preview.tg-bit-avatar{
 width:90px;height:90px;border-radius:20px;
}
.profile-custom-feature .tg-avatar-preview.tg-bit-avatar > svg,
.profile-custom-feature .tg-avatar-option.tg-bit-avatar > svg{width:95%;height:95%}
.profile-custom-feature .tg-avatar-option.tg-bit-avatar{
 width:43px;height:43px;border-radius:11px;
}
.profile-custom-feature .tg-profile-option:has(.tg-bit-avatar){min-width:57px;min-height:57px}
.tg-bit-avatar.tg-bit-animated .bit-eyes{
 animation:tg-bit-blink var(--bit-blink-duration,6.7s) var(--bit-blink-offset,0s) infinite;
 transform-box:fill-box;transform-origin:center;
}
@keyframes tg-bit-blink{
 0%,84%,88%,94%,100%{transform:scaleY(1)}
 85%,87%,95%{transform:scaleY(.13)}
}
@media(prefers-reduced-motion:reduce){
 .tg-bit-avatar .bit-eyes{animation:none!important}
}
/* One consistent, obvious edit action on private and owner-visible public cards. */
#account-panel .profile-main-top .profile-actions,
.page-public-profile .profile-main-top .profile-actions{
 align-self:center;justify-content:flex-end;margin:0 0 0 auto;
}
.tg-edit-profile-button.profile-primary{
 display:inline-flex;align-items:center;justify-content:center;
 min-height:47px;padding:12px 20px;border:1px solid var(--text);
 border-radius:11px;background:var(--text);color:var(--surface);
 font-size:14px;font-weight:750;letter-spacing:-.01em;white-space:nowrap;
}
.tg-edit-profile-button.profile-primary:hover{opacity:.88}
.tg-edit-profile-button[hidden]{display:none!important}
/* Shared profile links keep the same saved skin while staying unobtrusive. */
.tg-bit-shortcut{
 display:inline-flex;align-items:center;gap:9px;width:max-content;
 margin-top:13px;padding:5px 13px 5px 6px;border-radius:11px;
 border:1px solid var(--line);background:var(--surface);color:var(--text);
 font-size:12px;font-weight:750;text-decoration:none;
 transition:border-color .15s,background .15s;
}
.tg-bit-shortcut:hover{border-color:var(--accent);background:var(--surface-soft)}
.tg-bit-shortcut[hidden]{display:none!important}
.tg-bit-shortcut-host{width:36px;height:36px;display:inline-grid;place-items:center}
.tg-bit-shortcut-host>.tg-bit-avatar{width:36px;height:36px;border-radius:9px}
@media(max-width:700px){
 #account-panel .profile-main-top .profile-actions,
 .page-public-profile .profile-main-top .profile-actions{
  margin:7px 0 0;width:100%;justify-content:flex-start
 }
 .tg-edit-profile-button.profile-primary{min-height:44px}
}

/* The Bit sprite IS the avatar; let it occupy the whole identity slot. */
.tg-profile-avatar.tg-bit-avatar,
.profile-menu .profile-menu-avatar > .tg-bit-avatar,
body.float-ui .tg-rank-identity.tg-profile-avatar.tg-bit-avatar[data-avatar-icon],
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-bit-avatar{
 background:transparent!important;border:0!important;box-shadow:none!important;
 border-radius:0!important;overflow:visible!important;
}
.tg-profile-avatar.tg-bit-avatar > svg,
.profile-custom-feature .tg-avatar-preview.tg-bit-avatar > svg,
.profile-custom-feature .tg-avatar-option.tg-bit-avatar > svg,
.profile-portrait .tg-avatar-portrait.tg-bit-avatar > svg,
.page-public-profile #public-profile-avatar .tg-bit-avatar > svg,
.profile-menu .profile-menu-avatar > .tg-avatar-menu.tg-bit-avatar svg,
body.float-ui .tg-rank-identity.tg-bit-avatar svg,
body.float-ui :is(.float-player-kind,.float-ribbon-icon).tg-bit-avatar svg{
 width:100%!important;height:100%!important;display:block;
 max-width:none!important;max-height:none!important;
}
.tg-bit-avatar .bit-shade{fill:color-mix(in srgb,var(--bit-edge) 15%,var(--bit-body))}
.tg-bit-avatar .bit-highlight{fill:color-mix(in srgb,#fff 10%,var(--bit-body))}
.tg-bit-avatar .bit-detail{fill:var(--bit-accent,#ffe2a0)}
.tg-bit-avatar:has([data-bit-variant="cat"]) .bit-detail,
.tg-bit-avatar:has([data-bit-variant="fox"]) .bit-detail,
.tg-bit-avatar:has([data-bit-variant="pup"]) .bit-detail{fill:var(--bit-accent,#ffe2a0)}
.profile-portrait:has(.tg-bit-avatar){
 background:transparent!important;border-color:transparent!important;
 box-shadow:none!important;overflow:visible!important;
}
.profile-custom-feature .tg-avatar-preview.tg-bit-avatar{
 width:98px;height:98px;border-radius:0;
}
.profile-custom-feature .tg-avatar-option.tg-bit-avatar{
 width:46px;height:46px;border-radius:0;
}
.profile-custom-feature .tg-profile-option:has(.tg-bit-avatar){min-width:62px;min-height:62px}
#profile-accent-options .tg-colour-swatch{border:1px solid color-mix(in srgb,var(--text) 14%,transparent)}
.tg-bit-shortcut-host>.tg-bit-avatar{border-radius:0}
@media(prefers-reduced-motion:reduce){.tg-bit-avatar .bit-eyes{animation:none!important}}

/* Mini Bit uses a separate 24-unit sprite, not a smaller full sprite. */
.tg-profile-avatar.tg-bit-mini{background:transparent!important;border:0!important;border-radius:0!important}
.tg-profile-avatar.tg-bit-mini > svg{width:100%!important;height:100%!important;shape-rendering:crispEdges}
.tg-bit-mini .bit-shade,.tg-bit-mini .bit-highlight,.tg-bit-mini .bit-glint{display:none}

/* Consistent Bit artwork, at every size:
   Mini Bit now uses the full 40-unit silhouette and costume, with only
   one-pixel eye correction. Keep compact slots and leaderboard rows unchanged. */
.tg-bit-avatar.tg-bit-mini .bit-shade{
 display:block;
 fill:color-mix(in srgb,var(--bit-edge) 9%,var(--bit-body));
}
.tg-bit-avatar.tg-bit-mini .bit-highlight{
 display:block;
 fill:color-mix(in srgb,#fff 5%,var(--bit-body));
}
.tg-bit-avatar.tg-bit-mini .bit-glint{display:block}
.tg-bit-avatar:not(.tg-bit-mini) .bit-shade{
 fill:color-mix(in srgb,var(--bit-edge) 7%,var(--bit-body));
}
.tg-bit-avatar:not(.tg-bit-mini) .bit-highlight{
 fill:color-mix(in srgb,#fff 5%,var(--bit-body));
}

/* Whole-body finishes: paint inside the SVG's union of actual Bit pixels,
   including costume ears and hats. Never cover the surrounding square. */
.tg-bit-avatar:is([data-avatar-effect="glimmer"],[data-avatar-effect="shine"],
 [data-avatar-effect="colourwave"])::before,
.tg-bit-avatar:is([data-avatar-effect="glimmer"],[data-avatar-effect="shine"],
 [data-avatar-effect="colourwave"])::after{content:none!important;display:none!important}
.tg-bit-avatar svg .bit-fx-overlay{pointer-events:none;opacity:0;
 transform-box:view-box;transform-origin:center}
.tg-bit-avatar svg .bit-fx-glimmer{
 animation:tg-bit-ink-glimmer 3.6s ease-in-out infinite
}
.tg-bit-avatar svg .bit-fx-shine{
 animation:tg-bit-ink-shine 3.8s ease-in-out infinite
}
.tg-bit-avatar svg .bit-fx-colourwave{
 animation:tg-bit-ink-wave 5s ease-in-out infinite
}
@keyframes tg-bit-ink-glimmer{
 0%,9%,63%,100%{opacity:0}21%,32%{opacity:.85}
}
@keyframes tg-bit-ink-shine{
 0%,12%{opacity:0;transform:translateX(-45%)}
 20%{opacity:1}49%{opacity:1;transform:translateX(45%)}
 53%,100%{opacity:0;transform:translateX(45%)}
}
@keyframes tg-bit-ink-wave{
 0%{opacity:.28;transform:translateX(-35%)}
 45%{opacity:.65}100%{opacity:.28;transform:translateX(35%)}
}
@media(prefers-reduced-motion:reduce){
 .tg-bit-avatar svg .bit-fx-overlay{animation:none!important;opacity:.12}
}

/* Feathered oversized colour sheet: its edge never enters Bit's silhouette. */
.tg-bit-avatar svg .bit-fx-glimmer{animation:tg-bit-soft-glimmer 3.9s ease-in-out infinite}
.tg-bit-avatar svg .bit-fx-shine{animation:tg-bit-soft-shine 4.2s ease-in-out infinite}
.tg-bit-avatar svg .bit-fx-colourwave{animation:tg-bit-soft-wave 5.8s ease-in-out infinite}
@keyframes tg-bit-soft-glimmer{0%,100%{opacity:.07}35%{opacity:.63}60%{opacity:.22}}
@keyframes tg-bit-soft-shine{
 0%{opacity:0;transform:translateX(-30px)}15%{opacity:.55}
 48%{opacity:.95}78%{opacity:.45}100%{opacity:0;transform:translateX(30px)}
}
@keyframes tg-bit-soft-wave{
 0%{opacity:.32;transform:translateX(-28px)}
 50%{opacity:.67;transform:translateX(0px)}
 100%{opacity:.32;transform:translateX(28px)}
}
@media(prefers-reduced-motion:reduce){
 .tg-bit-avatar svg .bit-fx-overlay{animation:none!important;opacity:.12}
}

/* Hue/intensity controls: the hue track is the primary control, intensity
   short and capped at 70. No static palette swatches in these three groups. */
.tg-tint-editor{display:grid;gap:10px;min-width:0}
.tg-tint-top{display:flex;align-items:center;gap:10px;min-height:25px}
.tg-tint-indicator{display:block;width:21px;height:21px;flex:none;border-radius:7px;
 border:1px solid color-mix(in srgb,var(--text) 15%,transparent);
 background:#79abc9}
.tg-tint-rainbow{border:1px solid var(--line);border-radius:9px;
 background:var(--surface-soft);color:var(--text);font-size:12px;font-weight:700;
 padding:5px 10px;cursor:pointer}
.tg-tint-rainbow.is-selected{outline:2px solid var(--text);outline-offset:1px}
.tg-tint-rainbow:disabled{opacity:.55;cursor:default}
.tg-tint-tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:17px;align-items:end;min-width:0}
.tg-tint-track{display:flex;flex-direction:column;gap:8px;min-width:0;
 font-size:11px;color:var(--muted);font-weight:700}
.tg-tint-track input{appearance:none;-webkit-appearance:none;
 display:block;width:100%;height:11px;margin:0;border:1px solid #80858b33;
 border-radius:999px;outline-offset:5px;cursor:pointer}
.tg-tint-hue input{background:linear-gradient(to right,
 hsl(0 64% 58%),hsl(45 64% 58%),hsl(90 64% 58%),hsl(145 64% 58%),
 hsl(190 64% 58%),hsl(245 64% 58%),hsl(300 64% 58%),hsl(360 64% 58%))}
.tg-tint-intensity input{background:linear-gradient(to right,
 hsl(210 12% 58%),hsl(210 35% 58%),hsl(210 64% 58%))}
.tg-tint-track input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;
 background:#f2f5f7;border:3px solid #60666e;border-radius:50%;
 box-shadow:0 1px 3px #0005}
.tg-tint-track input::-moz-range-thumb{width:12px;height:12px;
 background:#f2f5f7;border:3px solid #60666e;border-radius:50%;
 box-shadow:0 1px 3px #0005}
.tg-tint-tracks.is-inactive{opacity:.5}
@media(max-width:480px){.tg-tint-tracks{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

/* Inverted line glow uses the saved accent rainbow without tinting faces. */
.tg-bit-rainbow-accent svg .bit-detail{animation:tg-bit-accent-rainbow 3.1s linear infinite}
@keyframes tg-bit-accent-rainbow{
 0%,100%{fill:#f3a6bd}23%{fill:#f4d991}45%{fill:#a1dfbb}
 69%{fill:#9bbcf5}86%{fill:#d5aff2}
}

/* Pigment is stationary in geometry. GradientTransform animates pigment
   beneath the union-of-pixels clip, so there is no travelling rectangle edge. */
.tg-bit-avatar svg .bit-fx-overlay{transform:none!important;
 animation:none!important;opacity:1;pointer-events:none}
.tg-bit-avatar svg .bit-fx-glimmer{animation:tg-visible-glimmer 1.85s ease-in-out infinite!important}
@keyframes tg-visible-glimmer{0%,100%{opacity:.11}35%{opacity:.95}56%{opacity:.58}}
.tg-bit-avatar svg .bit-fx-shine{opacity:.92!important}
.tg-bit-avatar svg .bit-fx-colourwave{opacity:.82!important}
.tg-bit-avatar svg .bit-fx-scanline{opacity:.88!important}
.tg-bit-avatar svg .bit-fx-aurora-pulse{opacity:.82!important}
.tg-bit-avatar svg .bit-fx-neon-grid{opacity:.68!important}
.tg-bit-avatar svg .bit-fx-emberwash{opacity:.77!important}

/* Independent name tint; respects dark/light backgrounds by keeping bounded
   luminance and applies to text in profiles and scoreboards alike. */
[data-name-tint^="h"]:not([data-name-effect="none"]){
 --tg-edge-a:var(--tg-custom-name);
 --tg-edge-b:color-mix(in srgb,var(--tg-custom-name) 53%,transparent);
 --tg-after-a:var(--tg-custom-name);
 --tg-after-b:var(--tg-name-b);--tg-after-c:var(--tg-name-c);
 --tg-step-1:var(--tg-name-a);--tg-step-2:var(--tg-name-b);
 --tg-step-3:var(--tg-name-c);
}
[data-name-tint^="h"][data-name-effect="none"]{
 color:var(--tg-custom-name)!important
}
:root:not([data-theme="dark"]) [data-name-tint^="h"][data-name-effect="none"]{
 color:var(--tg-custom-name-dark)!important
}
[data-name-tint="rainbow"]{
 background:linear-gradient(90deg,#ec9bb8,#e6cd82,#92d6b6,#9cafef,#d8aaf0,#ec9bb8);
 background-size:240% 100%;background-clip:text;-webkit-background-clip:text;
 color:transparent!important;-webkit-text-fill-color:transparent!important;
 animation:tg-name-rainbow-tint 3s linear infinite
}
@keyframes tg-name-rainbow-tint{from{background-position:0 50%}to{background-position:240% 50%}}

/* Unique, readable wordmark animations; no oversized neon blur. */
[data-name-effect="glow-wave"]{color:var(--tg-name-a,var(--text))!important;
 animation:tg-name-glow-wave 2.65s ease-in-out infinite}
@keyframes tg-name-glow-wave{
 0%,100%{text-shadow:0 0 1px transparent}
 28%{text-shadow:0 0 5px var(--tg-name-b,#91baf0),0 0 10px var(--tg-name-c,#a2bce4)}
 63%{text-shadow:0 0 2px var(--tg-name-b,#91baf0)}
}
[data-name-effect="glow-sweep"]{
 background:linear-gradient(105deg,var(--tg-name-a,#81a6d3) 15%,
 var(--tg-name-a,#81a6d3) 36%,#f6fafb 49%,
 var(--tg-name-b,#9fbadd) 55%,var(--tg-name-a,#81a6d3) 72%);
 background-size:230% 100%;background-clip:text;-webkit-background-clip:text;
 -webkit-text-fill-color:transparent!important;color:transparent!important;
 animation:tg-name-glow-sweep 2.1s ease-in-out infinite
}
@keyframes tg-name-glow-sweep{from{background-position:170% 50%}to{background-position:-30% 50%}}
[data-name-effect="signal-flicker"]{color:var(--tg-name-a,var(--text))!important;
 animation:tg-name-signal 3s steps(1,end) infinite}
@keyframes tg-name-signal{
 0%,13%,17%,56%,60%,100%{opacity:1;text-shadow:none}
 14%,15%,57%{opacity:.7;text-shadow:1px 0 0 var(--tg-name-b,#b8c9e7)}
 16%,58%{opacity:1;text-shadow:-1px 0 0 var(--tg-name-c,#93d4d1)}
}
[data-name-effect="underline-trace"]{
 color:var(--tg-name-a,var(--text))!important;
 text-decoration-line:underline;text-decoration-thickness:2px;
 text-underline-offset:.24em;animation:tg-name-underline 2.7s ease-in-out infinite
}
@keyframes tg-name-underline{0%,100%{text-decoration-color:transparent}
 35%,65%{text-decoration-color:var(--tg-name-b,#91baf0)}}
[data-name-effect="pixel-echo"]{color:var(--tg-name-a,var(--text))!important;
 animation:tg-name-pixel-echo 2.9s steps(1,end) infinite}
@keyframes tg-name-pixel-echo{
 0%,75%,100%{text-shadow:none}12%,15%{text-shadow:2px 1px 0 var(--tg-name-b,#b5ace4)}
 16%,23%{text-shadow:-2px 0 0 var(--tg-name-c,#8fd2c8)}
}
@media(prefers-reduced-motion:reduce){
 .tg-bit-avatar svg .bit-fx-overlay,[data-name-tint="rainbow"],
 [data-name-effect="glow-wave"],[data-name-effect="glow-sweep"],
 [data-name-effect="signal-flicker"],[data-name-effect="underline-trace"],
 [data-name-effect="pixel-echo"]{animation:none!important}
}

/* Director revision: real-time H/S/B controls and a persistent Your Bit tray. */
.profile-custom-feature .tg-tint-top{flex-wrap:wrap;gap:8px}
.profile-custom-feature .tg-tint-default{
 appearance:none;border:1px solid var(--line);border-radius:9px;padding:5px 10px;
 background:var(--surface-soft);font:inherit;font-size:12px;font-weight:650;
 color:var(--text);cursor:pointer;margin-left:auto
}
.profile-custom-feature .tg-tint-default:hover:not(:disabled){background:var(--surface)}
.profile-custom-feature .tg-tint-default:disabled{opacity:.45;cursor:default}
.profile-custom-feature .tg-tint-hue{grid-column:1 / -1}
.profile-custom-feature .tg-tint-brightness{grid-column:auto;max-width:none}
.profile-custom-feature .tg-tint-brightness input{
 background:linear-gradient(to right,#555,#888,#c3c3c3,#fff)
}
.profile-custom-feature .tg-tint-intensity input{
 background:linear-gradient(to right,hsl(210 0% 59%),hsl(210 32% 59%),hsl(210 63% 59%))
}
.page-profile .profile-custom-feature,
.page-profile .profile-custom-feature>.plus-feature-body,
.page-profile #profile-customisation{overflow:visible}
.page-profile .profile-custom-feature .tg-profile-editor{align-items:start}
.page-profile .profile-custom-feature .tg-profile-editor-preview{
 position:sticky;top:86px;z-index:5;align-self:start;
 max-height:calc(100dvh - 106px);box-sizing:border-box;
 overflow-y:auto;scrollbar-width:thin;
 box-shadow:0 5px 15px #0000000b
}
.page-profile #account-panel-heading[data-name-effect],
.page-profile #profile-name-style-preview[data-name-effect]{
 display:inline-block;overflow:visible;will-change:auto
}
/* Glow Sweep's peak is 70% of the previous white highlight. */
[data-name-effect="glow-sweep"]{
 background-image:linear-gradient(105deg,
 var(--tg-name-a,#81a6d3) 15%,var(--tg-name-a,#81a6d3) 36%,
 color-mix(in srgb,#f6fafb 70%,var(--tg-name-a,#81a6d3)) 49%,
 var(--tg-name-b,#9fbadd) 55%,var(--tg-name-a,#81a6d3) 72%)
}
/* Bright top-right point of light fading into Bit's chosen colour. */
.tg-bit-avatar svg .bit-fx-glimmer{
 animation:tg-warm-point-glimmer 2.7s ease-in-out infinite!important
}
@keyframes tg-warm-point-glimmer{
 0%,100%{opacity:0}
 27%{opacity:.65}
 41%{opacity:.92}
 61%{opacity:.35}
}
/* The three colour cycling finishes move a repeating SVG gradient one full
   period. CSS never translates their rectangular overlay. */
.tg-bit-avatar svg :is(.bit-fx-colourwave,.bit-fx-aurora-pulse,.bit-fx-emberwash){
 transform:none!important;animation:none!important
}
@media(max-width:700px){
 .page-profile .profile-custom-feature .tg-profile-editor-preview{
  top:63px;z-index:8;display:grid;grid-template-columns:53px minmax(0,1fr);
  gap:8px 12px;align-items:center;justify-content:start;
  width:100%;max-height:none;min-height:0;padding:10px 12px;text-align:left;
  overflow:visible;box-shadow:0 7px 15px #0000001c
 }
 .page-profile .profile-custom-feature .tg-profile-editor-preview>#profile-icon-preview{
  grid-column:1;grid-row:1;min-width:0
 }
 .page-profile .profile-custom-feature .tg-profile-editor-preview #profile-icon-preview .tg-avatar-preview{
  width:50px;height:50px
 }
 .page-profile .profile-custom-feature .tg-profile-editor-preview>div:has(>strong),
 .page-profile .profile-custom-feature .tg-profile-editor-preview>.tg-mini-board{
  display:none!important
 }
 .page-profile .profile-custom-feature .tg-profile-editor-preview .tg-name-effect-preview{
  grid-column:2;grid-row:1;min-height:40px;max-width:100%;margin:0;padding:3px 0;
  text-align:left;justify-content:flex-start
 }
 .page-profile .profile-custom-feature .tg-profile-editor-preview #profile-name-style-preview{
  font-size:13px;text-align:left
 }
}
@media(prefers-reduced-motion:reduce){
 .tg-bit-avatar svg .bit-fx-glimmer{animation:none!important;opacity:.24}
}

/* Override older generic colour-options flex rules: the three new editors
   are composed vertically, each with two levels of range controls. */
.profile-custom-feature .tg-profile-color-options.tg-tint-editor,
.profile-custom-feature #profile-name-colour-options.tg-tint-editor{
 display:grid!important;grid-template-columns:minmax(0,1fr);
 flex-wrap:initial;gap:10px;max-width:480px;width:100%;min-width:0
}
.profile-custom-feature .tg-tint-tracks{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}
.profile-custom-feature .tg-tint-track{min-width:0}

/* Make brightness genuinely visible on light-themed names as well; very light
   inks receive a restrained dark stroke so white is still readable. */
:root:not([data-theme="dark"]) [data-name-tint^="h"][data-name-effect="none"]{
 color:var(--tg-custom-name)!important;
 text-shadow:0 1px 1px #26303a50
}
:root:not([data-theme="dark"]) [data-name-tint$="-100"][data-name-effect="none"]{
 color:#fff!important;text-shadow:0 1px 2px #23313dbb,0 0 2px #23313d7a
}

/* Effect pigments use precisely the same responsive H/S/B control layout.
   Remove any remaining legacy swatch-row sizing from their container. */
#profile-effect-colour-options.tg-tint-editor{
 display:grid!important;grid-template-columns:minmax(0,1fr);
 width:100%;max-width:480px;min-width:0;gap:10px
}
#profile-effect-colour-options.tg-tint-editor .tg-tint-tracks{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0
}
#profile-effect-colour-options.tg-tint-editor .tg-tint-hue{
 grid-column:1 / -1
}

/* Seasonal Plus collection: horizontally browseable even on small screens. */
.tg-season-feature,.tg-theme-feature{margin-block:18px}
.tg-season-description{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 15px}
#profile-season-status{font-size:13px;line-height:1.55;color:var(--muted)}
.tg-season-track{display:grid;gap:12px;margin-top:12px;min-width:0}
.tg-season-meter{display:grid;gap:6px}
.tg-season-meter-track{display:block;height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.tg-season-meter-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffa35c,#b78ad9,#76c5b2);transition:width .3s ease}
.tg-season-meter small{font-size:11px;color:var(--muted)}
.tg-season-rewards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(116px,1fr);
 gap:9px;overflow-x:auto;scroll-snap-type:x proximity;padding:3px 2px 13px}
.tg-season-reward{display:grid;grid-template-rows:73px auto auto auto;gap:5px;align-content:start;
 text-align:center;justify-items:center;border-radius:13px;border:1px solid var(--line);
 background:var(--surface);padding:12px 6px;min-width:0;scroll-snap-align:start;
 opacity:.65;transition:opacity .2s ease,border-color .2s ease}
.tg-season-reward[data-earned="true"]{opacity:1;border-color:color-mix(in srgb,var(--accent) 49%,var(--line))}
.tg-season-reward-art{display:grid;place-items:center;min-width:0;min-height:70px}
.tg-season-reward-art .tg-profile-avatar{width:62px!important;height:62px!important;border:0!important;box-shadow:none!important}
.tg-season-effect-symbol{font-size:37px;color:var(--accent)}
.tg-season-reward strong{font-size:11px;line-height:1.35}
.tg-season-reward small{font-size:10px;line-height:1.3;color:var(--muted)}
.tg-season-reward-tier{font-size:9px;font-weight:790;letter-spacing:.09em;
 border:1px solid var(--line);border-radius:5px;padding:3px 7px;color:var(--muted)}
.tg-season-reward[data-earned="true"] .tg-season-reward-tier{color:var(--accent)}
.tg-theme-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:11px}
.tg-theme-card{display:flex;flex-direction:column;gap:7px;min-width:0;padding:9px 10px 11px;
 text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:13px;
 color:var(--text);cursor:pointer}
.tg-theme-card[data-selected="true"]{outline:2px solid var(--accent);outline-offset:1px}
.tg-theme-card[data-locked="true"]{opacity:.62;cursor:not-allowed}
.tg-theme-card>strong{font-size:12px}
.tg-theme-card>small{font-size:10px;line-height:1.4;color:var(--muted)}
.tg-theme-sample{height:52px;width:100%;border-radius:8px;position:relative;
 background:linear-gradient(130deg,#f7f7f3,#f2ede7)}
.tg-theme-sample::before{content:"";position:absolute;inset:12px auto 12px 13px;width:26px;border-radius:50%;background:#a8beb7}
.tg-theme-sample::after{content:"";position:absolute;left:49px;right:16px;top:17px;height:6px;border-radius:4px;background:#abb7b1;box-shadow:0 12px 0 #d9e0dc}
.tg-theme-card[data-theme="midnight"] .tg-theme-sample{background:linear-gradient(135deg,#111c36,#22365c,#48296a)}
.tg-theme-card[data-theme="midnight"] .tg-theme-sample::before{background:#ee75e1}
.tg-theme-card[data-theme="botanical"] .tg-theme-sample{background:linear-gradient(135deg,#e0ead8,#a9c9a4)}
.tg-theme-card[data-theme="botanical"] .tg-theme-sample::before{background:#497b5e}
.tg-theme-card[data-theme="cosmos"] .tg-theme-sample{background:radial-gradient(circle at 78% 21%,#fff3c3 0 2px,transparent 3px),linear-gradient(135deg,#10142d,#36325b)}
.tg-theme-card[data-theme="cosmos"] .tg-theme-sample::before{background:#9aabef}
.tg-theme-card[data-theme="paper"] .tg-theme-sample{background:repeating-linear-gradient(0deg,#f6f1e7 0 11px,#e9e1d4 12px)}
.tg-theme-card[data-theme="paper"] .tg-theme-sample::before{background:#bf957b}
.tg-theme-card[data-theme="aurora"] .tg-theme-sample{background:linear-gradient(135deg,#163e51,#386c67,#684d95)}
.tg-theme-card[data-theme="aurora"] .tg-theme-sample::before{background:#a7eac9}
.tg-theme-card[data-theme="golden"] .tg-theme-sample{background:linear-gradient(135deg,#ffefc8,#efac81,#d38675)}
.tg-theme-card[data-theme="golden"] .tg-theme-sample::before{background:#b87d53}
.tg-theme-card[data-theme="candy"] .tg-theme-sample{background:linear-gradient(135deg,#f9d0dd,#d0dfff,#d4eed3)}
.tg-theme-card[data-theme="candy"] .tg-theme-sample::before{background:#ce78ac}
.tg-theme-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:15px}
#profile-theme-save{padding:10px 17px;border:0;border-radius:9px;background:var(--text);color:var(--canvas);font-size:12px;font-weight:730}
#profile-theme-save:disabled{opacity:.45;cursor:not-allowed}
#profile-theme-status{font-size:12px;color:var(--muted)}
.stats-extended-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:12px 0 20px}
.stats-extended-metrics article{display:grid;align-content:start;gap:7px;padding:15px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.stats-extended-metrics article span{font-size:11px;color:var(--muted)}
.stats-extended-metrics article strong{font-size:18px;line-height:1.25;overflow-wrap:anywhere}
.stats-extended-metrics article small{font-size:10px;line-height:1.45;color:var(--muted)}
@media(max-width:820px){.stats-extended-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.tg-season-rewards{grid-auto-columns:122px}.tg-theme-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.tg-season-meter-fill,.tg-season-reward{transition:none}}

/* Mastery-only Bit silhouettes have their own understated special treatment.
   No gameplay bonus or enlarged leaderboard hitboxes. */
.tg-profile-avatar[data-avatar-icon="reward-prism"] .bit-detail{
 animation:tg-mastery-prism 4.2s ease-in-out infinite;
}
.tg-profile-avatar[data-avatar-icon="reward-core"] .bit-detail{
 animation:tg-mastery-core 2.8s ease-in-out infinite;
}
.tg-profile-avatar[data-avatar-icon="reward-legend"] .bit-detail,
.tg-profile-avatar[data-avatar-icon="reward-crown"] .bit-detail{
 animation:tg-mastery-gold 5s ease-in-out infinite;
}
.tg-profile-avatar[data-avatar-icon="reward-arcade"] .bit-detail{
 animation:tg-mastery-arcade 3.4s steps(2,end) infinite;
}
.tg-profile-avatar[data-avatar-icon="reward-sunrise"] .bit-detail{
 animation:tg-mastery-sunrise 6s ease-in-out infinite;
}
.tg-profile-avatar[data-avatar-icon="reward-explorer"] .bit-detail{
 animation:tg-mastery-explorer 4.5s ease-in-out infinite;
}
@keyframes tg-mastery-prism{0%,100%{fill:#92d6fa;opacity:.83}33%{fill:#e8a7f0;opacity:1}66%{fill:#f0d391;opacity:1}}
@keyframes tg-mastery-core{0%,100%{fill:#6ae0d0;opacity:.62}50%{fill:#caffef;opacity:1}}
@keyframes tg-mastery-gold{0%,70%,100%{fill:#ddb55d;opacity:.9}84%{fill:#fff0ae;opacity:1}}
@keyframes tg-mastery-arcade{0%,100%{fill:#87a8ff;opacity:.8}50%{fill:#ff9eea;opacity:1}}
@keyframes tg-mastery-sunrise{0%,100%{fill:#f8b17f}50%{fill:#ffecb3}}
@keyframes tg-mastery-explorer{0%,100%{fill:#83c2aa}50%{fill:#d6edb9}}
.tg-bit-mini[data-avatar-icon^="reward-"] .bit-detail{animation:none!important}
@media(prefers-reduced-motion:reduce){
 .tg-profile-avatar[data-avatar-icon^="reward-"] .bit-detail{animation:none!important}
}

/* Cards are deliberately scoped to the card itself, not the profile page. */
.profile-main-card[data-card-design]{
 --card-bg:var(--surface);--card-ink:var(--text);--card-sub:var(--muted);
 --card-border:var(--line);--card-detail:var(--accent);
 --card-trim:linear-gradient(120deg,var(--line),var(--muted),var(--line));
 background:var(--card-bg)!important;color:var(--card-ink)!important;
 border:2px solid var(--card-border)!important;border-radius:18px!important;
 position:relative;isolation:isolate;overflow:hidden;
 box-shadow:0 12px 30px #00000010
}
.profile-main-card[data-card-design] .profile-main-identity h2,
.profile-main-card[data-card-design] .profile-main-identity p,
.profile-main-card[data-card-design] .tg-card-feature{color:var(--card-ink)}
.profile-main-card[data-card-design] :is(.profile-since,.profile-personal-motto){color:var(--card-sub)!important}
.profile-main-card[data-card-design]>.profile-main-top,.profile-main-card[data-card-design]>.tg-card-feature{
 position:relative;z-index:2
}
.profile-main-card[data-card-design]::before{
 content:"";position:absolute;inset:0;
 background:var(--card-ornament,none);
 pointer-events:none;z-index:0
}
.profile-main-card[data-card-design]::after{
 content:"";position:absolute;inset:5px;border-radius:12px;
 border:2px solid var(--card-detail);opacity:.65;pointer-events:none;z-index:1
}
.profile-main-card[data-card-design="classic"]::after{display:none}
.profile-main-card[data-card-design="classic"]{border-width:1px!important}
.profile-main-card[data-card-design="ink"]{
 --card-bg:#f3efe7;--card-ink:#242421;--card-sub:#6c665d;--card-border:#4b4840;
 --card-detail:#5e5951;
 --card-ornament:repeating-linear-gradient(0deg,transparent 0 22px,#37332d0a 23px 24px),
 linear-gradient(90deg,transparent 0 77%,#403a3322 77% 78%,transparent 78%)
}
.profile-main-card[data-card-design="grid"]{
 --card-bg:#e9f3f2;--card-ink:#163c3f;--card-sub:#54757a;--card-border:#5b9695;
 --card-detail:#4a999b;
 --card-ornament:linear-gradient(#3a999113 1px,transparent 1px),
 linear-gradient(90deg,#3a999113 1px,transparent 1px);
 background-size:100% 22px,22px 100%
}
.profile-main-card[data-card-design="midnight"]{
 --card-bg:linear-gradient(126deg,#101c38,#322450);--card-ink:#f2edff;
 --card-sub:#b9bad5;--card-border:#a286dc;--card-detail:#d0b9ff;
 --card-ornament:radial-gradient(circle at 87% 23%,#c37cec88,transparent 36%),
 repeating-linear-gradient(90deg,transparent 0 23px,#ffffff0a 24px 25px)
}
.profile-main-card[data-card-design="botanical"]{
 --card-bg:linear-gradient(128deg,#e4efe0,#cae3ce);--card-ink:#244532;
 --card-sub:#56755f;--card-border:#87a78c;--card-detail:#679777;
 --card-ornament:radial-gradient(ellipse at 89% 8%,#6cb2756b,transparent 43%),
 repeating-linear-gradient(42deg,transparent 0 29px,#3f8d5318 30px 32px)
}
.profile-main-card[data-card-design="cosmos"]{
 --card-bg:linear-gradient(124deg,#222446,#4c3b70);--card-ink:#f2edff;
 --card-sub:#c4b8de;--card-border:#b79bea;--card-detail:#dbd0ff;
 --card-ornament:radial-gradient(circle at 87% 25%,#ffe9b0 0 3px,transparent 4px),
 radial-gradient(circle at 73% 65%,#ffe1f0 0 2px,transparent 3px),
 radial-gradient(circle at 25% 81%,#fff 0 1px,transparent 2px)
}
.profile-main-card[data-card-design="paper"]{
 --card-bg:repeating-linear-gradient(0deg,#f3e9d9 0 18px,#ece0cd 19px 20px);
 --card-ink:#47382c;--card-sub:#826d5a;--card-border:#b99674;--card-detail:#c49e76;
 --card-ornament:linear-gradient(90deg,transparent 0 90%,#ba846128 90% 92%,transparent 92%)
}
.profile-main-card[data-card-design="aurora"]{
 --card-bg:linear-gradient(125deg,#143b4d,#276e66 53%,#554889);
 --card-ink:#effff9;--card-sub:#b4e4d8;--card-border:#6ecac2;--card-detail:#a1f2d9;
 --card-ornament:radial-gradient(ellipse at 75% 11%,#6fffe05e,transparent 43%)
}
.profile-main-card[data-card-design="golden"]{
 --card-bg:linear-gradient(125deg,#f8dbb2,#e9ae8d);--card-ink:#4c312b;
 --card-sub:#865b4c;--card-border:#be895b;--card-detail:#a77949;
 --card-ornament:radial-gradient(circle at 84% 25%,#fff4d2,transparent 38%)
}
.profile-main-card[data-card-design="candy"]{
 --card-bg:linear-gradient(125deg,#ffdef1,#dadcfc 54%,#c9eddc);
 --card-ink:#4d345b;--card-sub:#7d6388;--card-border:#ce90b7;--card-detail:#c880b5;
 --card-ornament:radial-gradient(circle at 86% 28%,#ffffffc4 0 9px,transparent 10px),
 radial-gradient(circle at 95% 78%,#d9fcff 0 6px,transparent 7px)
}
.profile-main-card[data-card-design="halloween"]{
 --card-bg:linear-gradient(125deg,#21182a,#4b2954 57%,#5c301c);
 --card-ink:#ffedce;--card-sub:#d3b4cb;--card-border:#df8645;--card-detail:#b974e6;
 --card-ornament:radial-gradient(circle at 88% 16%,#ffad508c,transparent 28%),
 repeating-conic-gradient(from 15deg at 85% 65%,#a265bd18 0deg 12deg,transparent 12deg 40deg)
}
.profile-main-card[data-card-design="christmas"]{
 --card-bg:linear-gradient(122deg,#e7f2e9,#d0e4d7 54%,#f5dcdc);
 --card-ink:#254634;--card-sub:#5d7564;--card-border:#af554d;--card-detail:#418467;
 --card-ornament:repeating-linear-gradient(55deg,transparent 0 25px,#f6fff74d 26px 29px),
 radial-gradient(circle at 86% 18%,#fff 0 8px,transparent 9px)
}
.profile-main-card[data-card-design="easter"]{
 --card-bg:linear-gradient(125deg,#fff1dc,#e4edfa 53%,#daf3e4);
 --card-ink:#494364;--card-sub:#766e90;--card-border:#c5a3d5;--card-detail:#ab86c7;
 --card-ornament:radial-gradient(ellipse at 89% 23%,#f6b4dfb5 0 12px,transparent 13px),
 radial-gradient(ellipse at 78% 74%,#b6e8c6a1 0 8px,transparent 9px)
}
:root[data-theme="dark"] .profile-main-card[data-card-design="ink"]{
 --card-bg:#292623;--card-ink:#f4e8d4;--card-sub:#c3ad96;
 --card-border:#b49573;--card-detail:#d2b28b
}
:root[data-theme="dark"] .profile-main-card[data-card-design="grid"]{
 --card-bg:#173d42;--card-ink:#eafbf9;--card-sub:#a3cfce;
 --card-border:#5faaaa;--card-detail:#8adad2
}
:root[data-theme="dark"] .profile-main-card[data-card-design="botanical"]{
 --card-bg:linear-gradient(124deg,#203a2b,#30543b);--card-ink:#e7f9e7;
 --card-sub:#b7d7bd;--card-border:#7daf89;--card-detail:#94c69c
}
:root[data-theme="dark"] .profile-main-card[data-card-design="paper"]{
 --card-bg:repeating-linear-gradient(0deg,#3e332c 0 18px,#473c32 19px 20px);
 --card-ink:#fbebda;--card-sub:#d1bca7;--card-border:#ad8a6d;--card-detail:#dbb997
}
:root[data-theme="dark"] .profile-main-card[data-card-design="golden"]{
 --card-bg:linear-gradient(122deg,#392728,#65432e);--card-ink:#ffeac5;
 --card-sub:#e6bc92;--card-border:#dbad76;--card-detail:#f1c892
}
:root[data-theme="dark"] .profile-main-card[data-card-design="candy"]{
 --card-bg:linear-gradient(125deg,#482c51,#39456a 60%,#2a5550);
 --card-ink:#f6e4fe;--card-sub:#d8c1e8;--card-border:#cb91dd;--card-detail:#e3afe3
}
:root[data-theme="dark"] .profile-main-card[data-card-design="christmas"]{
 --card-bg:linear-gradient(122deg,#19382c,#31533f 58%,#5a3335);
 --card-ink:#f2ffef;--card-sub:#bedcca;--card-border:#c97c74;--card-detail:#90cfa8
}
:root[data-theme="dark"] .profile-main-card[data-card-design="easter"]{
 --card-bg:linear-gradient(120deg,#463750,#344e5e 54%,#31554d);
 --card-ink:#ffecfa;--card-sub:#d9c2df;--card-border:#bc9ccf;--card-detail:#d5b2e6
}
.tg-card-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.tg-card-name-row h2{margin-bottom:0}
.tg-card-equipped-badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}
.tg-card-equipped-badge .tg-achievement-badge{width:22px!important;height:22px!important;min-width:22px!important}
.tg-card-feature{margin-top:15px;padding:10px 14px;border:1px solid currentColor;border-radius:10px;
 display:flex;align-items:baseline;gap:11px;width:fit-content;max-width:100%;background:#ffffff13}
.tg-card-feature[hidden]{display:none}
.tg-card-feature span{font-size:11px;opacity:.78}
.tg-card-feature strong{font-size:15px;font-variant-numeric:tabular-nums}
.profile-main-card[data-card-design] .profile-secondary{color:var(--card-ink)}
/* The marker bar follows the reader on long editor pages, but never traps
   the scroll or transforms sections into isolated tabs. */
.tg-profile-section-nav{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:none;
 position:sticky;top:56px;z-index:22;padding:8px;margin:10px 0 15px;border:1px solid var(--line);
 border-radius:12px;background:color-mix(in srgb,var(--surface) 93%,transparent);
 backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.tg-profile-section-nav::-webkit-scrollbar{display:none}
.tg-profile-section-nav a{flex:1 0 auto;min-width:66px;padding:7px 10px;
 border-radius:8px;text-decoration:none;text-align:center;color:var(--muted);
 font-size:11px;font-weight:650;white-space:nowrap;transition:background .15s,color .15s}
.tg-profile-section-nav a[aria-current="location"]{color:var(--text);background:var(--surface-soft);
 box-shadow:inset 0 -2px var(--accent)}
.page-profile [id="player-profile-data"],.page-profile [id="profile-card-designs"],
.page-profile [id="profile-season-collection"],.page-profile [id="profile-customisation"],
.page-profile [id="profile-achievements"]{scroll-margin-top:130px}
.tg-card-stat-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
 padding:17px 0 2px;margin-top:15px;border-top:1px solid var(--line)}
.tg-card-stat-picker label{font-size:12px;font-weight:680}
.tg-card-stat-picker select{min-width:190px;flex:1;padding:9px;border-radius:9px;
 background:var(--surface);border:1px solid var(--line);color:var(--text)}
.tg-card-stat-picker button{padding:9px 13px;border-radius:9px;
 background:var(--text);color:var(--canvas);border:0}
.tg-card-stat-picker button:disabled{opacity:.48}
#profile-card-stat-status{font-size:11px;color:var(--muted)}
/* Locked cards remain focusable previews; their appearance matches locked Bits below. */
.tg-theme-card[data-tier="seasonal"]::after{content:"SEASON"}
.tg-theme-card[data-tier="free"]::after{display:none}
.tg-theme-card[data-theme="ink"] .tg-theme-sample{background:repeating-linear-gradient(0deg,#efe8d9 0 9px,#dbd1bc 10px)}
.tg-theme-card[data-theme="grid"] .tg-theme-sample{background:linear-gradient(#90b6a633 1px,transparent 1px),
 linear-gradient(90deg,#90b6a633 1px,transparent 1px),#e7f1eb;background-size:12px 12px}
.tg-theme-card[data-theme="halloween"] .tg-theme-sample{background:linear-gradient(120deg,#1e182f,#5f2c5d,#a25724)}
.tg-theme-card[data-theme="christmas"] .tg-theme-sample{background:linear-gradient(120deg,#e1f4e3,#8dbfa8,#efc4c7)}
.tg-theme-card[data-theme="easter"] .tg-theme-sample{background:linear-gradient(120deg,#ffe5de,#dddbfb,#d3f4dd)}
@media(max-width:700px){
 .tg-profile-section-nav{top:53px;margin-top:8px;padding:6px;gap:3px}
 .tg-profile-section-nav a{padding:8px 11px;min-width:unset}
 .tg-card-feature{width:100%;box-sizing:border-box}
}
@media(prefers-reduced-motion:reduce){.tg-profile-section-nav a{transition:none}}

/* Daylight variants of the nocturnal cards retain the same motifs but use
   lighter inks, while night-mode holiday designs remain appropriately dark. */
:root:not([data-theme="dark"]) .profile-main-card[data-card-design="midnight"]{
 --card-bg:linear-gradient(122deg,#e6e7fa,#c2c8f0);--card-ink:#31294f;
 --card-sub:#5f5c80;--card-border:#8579ba;--card-detail:#765db3
}
:root:not([data-theme="dark"]) .profile-main-card[data-card-design="cosmos"]{
 --card-bg:linear-gradient(123deg,#f1ebfc,#d5daf8);--card-ink:#302f59;
 --card-sub:#65698c;--card-border:#8b85ca;--card-detail:#8474bc
}
:root:not([data-theme="dark"]) .profile-main-card[data-card-design="aurora"]{
 --card-bg:linear-gradient(120deg,#d9f1ee,#b7e7d6 55%,#dddaf5);
 --card-ink:#204e4a;--card-sub:#577d78;--card-border:#6daea4;--card-detail:#539b94
}
:root:not([data-theme="dark"]) .profile-main-card[data-card-design="halloween"]{
 --card-bg:linear-gradient(125deg,#f5e5d6,#dfc8e9 60%,#efc69e);
 --card-ink:#492a4c;--card-sub:#855b7e;--card-border:#c081a3;--card-detail:#be794e
}
.profile-main-card[data-card-design="grid"]::before{background-size:22px 22px}

/* Seasonal UX: readable quest and unmistakably unavailable inventory. */
.tg-season-quest{display:grid;gap:5px;margin:0 0 13px;padding:13px 15px;
 background:color-mix(in srgb,var(--accent) 9%,var(--surface));
 border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));
 border-radius:12px;line-height:1.45}
.tg-season-quest strong{font-size:13px;color:var(--text)}
.tg-season-quest span{font-size:12px;color:var(--muted)}
.tg-season-reward{position:relative}
.tg-season-reward[data-earned="false"]{opacity:.75;border-style:dashed}
.tg-season-reward[data-earned="false"] .tg-season-reward-art{
 filter:grayscale(1) saturate(0) brightness(.84);opacity:.44
}
.tg-season-reward[data-earned="true"] .tg-season-reward-art{filter:none;opacity:1}
.tg-season-reward:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Native disabled buttons suppress hover in some mobile/desktop browsers.
   aria-disabled locked controls remain focusable and show the instructions. */
.profile-custom-feature .tg-profile-option[data-locked="true"]{
 opacity:.68;cursor:help;border-style:dashed
}
.profile-custom-feature .tg-profile-option[data-locked="true"] .tg-profile-avatar,
.profile-custom-feature .tg-profile-option[data-locked="true"] .tg-avatar-option{
 filter:grayscale(1) saturate(0) brightness(.82);opacity:.48
}
.profile-custom-feature .tg-profile-option[aria-disabled="true"]:not(:disabled){cursor:help}
.profile-custom-feature .tg-profile-option[data-locked="true"] .tg-option-plus{
 filter:none;opacity:1
}
.tg-profile-tooltip{
 position:fixed;z-index:999999;width:max-content;max-width:min(280px,calc(100vw - 20px));
 padding:10px 12px;background:#1c2532;color:#f8fafc;border:1px solid #46576f;
 box-shadow:0 8px 24px #0005;border-radius:10px;font-size:11.5px;font-weight:550;
 line-height:1.55;letter-spacing:.005em;white-space:normal;pointer-events:none;
 text-align:left
}
.tg-profile-tooltip[hidden]{display:none!important}
:root[data-theme="dark"] .tg-profile-tooltip{
 background:#eaf0f7;color:#182236;border-color:#becbd9;box-shadow:0 12px 30px #0008
}
/* Preview selection never changes server state until Save is pressed. */
.tg-theme-card{position:relative;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.tg-theme-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.tg-theme-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.tg-theme-card[data-selected="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.tg-theme-card[data-locked="true"]{opacity:.68;cursor:help;border-style:dashed}
.tg-theme-card[data-locked="true"]::after{
 content:"PLUS";position:absolute;top:13px;right:14px;z-index:1;
 padding:2px 5px;border-radius:4px;background:#0008;color:white;
 font-size:8px;font-weight:800;letter-spacing:.09em
}
.tg-theme-card[data-locked="true"]:hover{opacity:.68}
.tg-theme-card[data-locked="true"]>small{opacity:.9}
.tg-theme-sample{overflow:hidden;border:1px solid #ffffff4a;transition:background .2s ease}
.tg-theme-card[data-theme="classic"] .tg-theme-sample{
 background:linear-gradient(125deg,#f0f2f0,#dbe2df)
}

/* Profile editor polish: reuse site tokens, segmented controls, and card variables.
   Keep the player card at one size at all scroll positions. */
.page-profile .tg-profile-sticky-head {
  position:sticky;top:0;z-index:24;padding:5px 0 3px;
  background:var(--canvas)
}
.page-profile .tg-profile-sticky-head .profile-main-card {
  box-sizing:border-box;min-width:0
}
.page-profile .tg-profile-sticky-head .profile-main-top,
.page-public-profile .profile-main-top {min-width:0}
.page-profile .tg-profile-sticky-head .profile-main-identity,
.page-public-profile .profile-main-identity {min-width:0}
.page-profile .tg-profile-sticky-head .profile-actions {min-width:0}
.page-profile .tg-profile-sticky-head .profile-actions :is(button,a) {white-space:nowrap}
.tg-profile-section-nav {
  position:relative;top:auto;display:block;overflow-x:auto;scrollbar-width:none;
  padding:7px 0;margin:6px 0 9px;border:0;border-radius:0;
  background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none
}
.tg-profile-section-nav .tg-profile-section-tabs {
  display:flex;align-items:center;gap:3px;min-width:max-content;
  width:100%;padding:3px;border-radius:10px
}
.tg-profile-section-nav .tg-profile-section-tabs>button {
  flex:1 0 auto;min-width:75px;min-height:33px;padding:8px 10px;
  border:0;background:transparent;color:var(--muted);
  border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer
}
.tg-profile-section-nav .tg-profile-section-tabs>button[aria-selected="true"] {color:var(--text)}
.tg-profile-section-nav .tg-profile-section-tabs>button:focus-visible {outline:2px solid var(--accent);outline-offset:2px}
.page-profile [id="player-profile-data"],.page-profile [id="profile-card-designs"],
.page-profile [id="profile-card-bests"],.page-profile [id="profile-season-collection"],
.page-profile [id="profile-customisation"],.page-profile [id="profile-achievements"] {
  scroll-margin-top:var(--tg-profile-sticky-height,190px)
}
/* A personal best is inline identity metadata, not another card inside the card. */
.tg-card-name-row,.public-profile-title-row {display:flex;align-items:center;flex-wrap:wrap;gap:7px 10px;min-width:0}
.tg-card-name-row h2,.public-profile-title-row h2 {
  margin:0;max-width:100%;min-width:0;overflow-wrap:anywhere
}
.tg-card-name-row .tg-card-feature,.public-profile-title-row .tg-card-feature {
  margin:0;padding:0;display:inline-flex;align-items:center;gap:6px;
  width:auto;max-width:100%;border:0;border-radius:0;background:transparent;
  color:var(--card-sub,var(--muted));line-height:1.25;box-shadow:none
}
.tg-card-name-row .tg-card-feature[hidden],.public-profile-title-row .tg-card-feature[hidden] {display:none}
.tg-card-feature .tg-game-icon {display:inline-flex;flex:none;width:20px;height:20px}
.tg-card-feature .tg-game-icon svg,.tg-card-feature .tg-game-icon img {width:100%;height:100%}
.tg-card-feature .tg-card-feature-name {font-size:11px;opacity:.85}
.tg-card-feature .tg-card-feature-score {font-size:12px;font-weight:750;white-space:nowrap}
.profile-main-card[data-card-design] .tg-card-feature {color:var(--card-ink);opacity:.88}
/* Bests use the same light/dark surfaces and borders as other site options. */
.tg-card-stat-picker {display:block;padding:0;margin:0;border:0}
.tg-card-stat-picker #profile-card-stat-select[hidden] {display:none!important}
.tg-card-best-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,185px),1fr));gap:10px}
.page-profile .tg-card-best-option {
  display:flex;gap:11px;align-items:center;text-align:left;min-width:0;
  padding:13px 12px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);border-radius:12px;box-shadow:none;cursor:pointer
}
.page-profile .tg-card-best-option:hover {background:var(--surface-soft)}
.page-profile .tg-card-best-option[aria-pressed="true"] {
  border-color:var(--accent);background:var(--accent-soft);
  box-shadow:inset 0 0 0 1px var(--accent)
}
.tg-card-best-option .tg-game-icon {width:26px;height:26px;flex:none}
.tg-card-best-option .tg-game-icon svg,.tg-card-best-option .tg-game-icon img {width:100%;height:100%}
.tg-card-best-copy {min-width:0;display:grid;gap:4px}
.tg-card-best-copy strong {font-size:12px;line-height:1.25;color:var(--text)}
.tg-card-best-copy small {font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.tg-card-best-actions {display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px}
.tg-card-best-actions button {padding:10px 15px;border:0;border-radius:9px;
 background:var(--text);color:var(--canvas);font-size:12px;font-weight:730}
.tg-card-best-actions button:disabled {opacity:.45;cursor:default}
/* The seasonal strip uses the very same themed surface in both site modes. */
.tg-season-feature .tg-season-quest {display:block;padding:0;margin:0 0 12px;border:0;background:transparent}
.tg-season-feature .tg-season-quest strong {font-size:clamp(19px,2.4vw,26px);font-weight:850;
 letter-spacing:-.035em;color:#d68140}
.tg-season-feature .tg-season-quest[data-season="christmas"] strong {color:#50a47e}
.tg-season-feature .tg-season-quest[data-season="easter"] strong {color:#be81bd}
.tg-season-feature #profile-season-status {font-size:11px;color:var(--muted)}
.tg-season-feature .tg-season-track {gap:9px;margin-top:9px}
.tg-season-feature .tg-season-meter {gap:6px}
.tg-season-feature .tg-season-meter-track {height:5px}
.tg-season-feature .tg-season-rewards {gap:9px;padding:3px 1px 10px;grid-auto-columns:minmax(118px,1fr)}
.tg-season-feature .tg-season-reward {
  position:relative;min-height:150px;grid-template-rows:77px auto auto;gap:4px;
  padding:11px 8px 10px;border-radius:12px;
  background:var(--surface);color:var(--text);border:1px solid var(--line);
  opacity:1;box-shadow:none
}
.tg-season-feature .tg-season-reward::before {
 content:"";position:absolute;inset:0 0 auto;height:3px;border-radius:12px 12px 0 0;
 background:linear-gradient(90deg,#d7904c,#b58ccf);opacity:.78
}
.tg-season-feature .tg-season-reward strong {color:var(--text);font-size:11px;line-height:1.3}
.tg-season-feature .tg-season-reward small {color:var(--muted);font-size:10px}
.tg-season-feature .tg-season-reward .tg-season-reward-tier {
  color:var(--muted);border-color:var(--line);margin-top:2px
}
.tg-season-feature .tg-season-reward[data-earned="true"] {
  background:var(--accent-soft);border-color:var(--accent)
}
.tg-season-feature .tg-season-reward[data-earned="false"] {
  opacity:1;border-style:solid
}
.tg-season-feature .tg-season-reward[data-earned="false"] .tg-season-reward-art {
  filter:grayscale(.45);opacity:.7
}
.tg-season-feature .tg-season-reward[data-earned="true"] .tg-season-reward-art {filter:none;opacity:1}
.tg-season-feature .tg-season-reward[data-season="christmas"]::before {background:linear-gradient(90deg,#76b29b,#cf7776)}
.tg-season-feature .tg-season-reward[data-season="easter"]::before {background:linear-gradient(90deg,#deb0dd,#9accb1)}
/* Profile motto belongs to the details form, with native site form styling. */
.page-profile .profile-details-card .tg-profile-motto-field {
  display:flex;flex-direction:column;gap:8px;max-width:650px;margin:20px 0 4px
}
.page-profile .profile-details-card .tg-profile-motto-field label {
 font-size:12px;font-weight:650;color:var(--muted)
}
.page-profile .profile-details-card #profile-tagline {
 min-width:0;flex:1;width:100%;border:1px solid var(--line);
 border-radius:9px;background:var(--surface);color:var(--text);
 padding:10px 12px;min-height:40px;font:inherit;font-size:13px
}
.page-profile .profile-details-card #profile-tagline:disabled {opacity:.55;cursor:not-allowed}
.page-profile .profile-details-card #profile-tagline-save:disabled {opacity:.5;cursor:not-allowed}
.page-profile .profile-details-card #profile-tagline-tier-note,
.page-profile .profile-details-card #profile-tagline-status {font-size:11px;color:var(--muted)}
.tg-season-feature #profile-season-quest[hidden],.tg-share-dialog .tg-share-theme-row[hidden] {display:none!important}
@media(max-width:780px) {
 .page-profile .profile-main-top,.page-public-profile .profile-main-top {
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px
 }
 .page-profile .profile-main-top>.profile-actions,.page-public-profile .profile-main-top>.profile-actions {
  grid-column:1 / -1;width:100%;justify-content:flex-start
 }
 .page-profile .profile-main-card,.page-public-profile .profile-main-card {padding:17px}
 .page-profile .tg-profile-sticky-head .profile-portrait,.page-public-profile .profile-portrait {
  width:56px;height:56px;border-radius:14px
 }
 .page-profile .tg-profile-sticky-head .profile-actions {gap:7px}
 .tg-profile-section-nav .tg-profile-section-tabs>button {min-width:70px}
}
@media(max-width:500px) {
 .page-profile .tg-profile-sticky-head .profile-actions :is(button,a),
 .page-public-profile .profile-actions :is(button,a) {
  flex:1 1 auto;min-width:0;text-align:center;padding:9px
 }
 .page-profile .tg-profile-sticky-head .profile-main-card {padding:12px}
 .page-profile .profile-main-identity h2,.page-public-profile .profile-main-identity h2 {
  font-size:clamp(15px,4vw,19px);letter-spacing:-.025em
 }
 .tg-card-best-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .page-profile .tg-card-best-option {padding:9px;gap:7px}
 .tg-card-best-option .tg-game-icon {width:22px;height:22px}
 .page-profile .profile-details-card .tg-profile-motto-field .profile-edit-row {flex-wrap:wrap}
 .page-profile .profile-details-card #profile-tagline-save {flex:0 0 auto}
}

/* Edit Profile final consistency pass: use the site's shared tokens, not
   alternate palettes or inherited opacity on meaningful game artwork. */
.page-profile .tg-card-name-row,.page-public-profile .public-profile-title-row{column-gap:18px;row-gap:8px}
.page-profile .tg-card-name-row .tg-card-feature,
.page-public-profile .public-profile-title-row .tg-card-feature{
 gap:9px;opacity:1!important;color:var(--card-ink,var(--text));
 padding-left:17px;border-left:1px solid var(--card-border,var(--line))
}
.page-profile .tg-card-feature .tg-game-icon,.page-public-profile .tg-card-feature .tg-game-icon{
 opacity:1!important;filter:none!important;--tg-icon-size:23px;
 width:23px;height:23px;min-width:23px;min-height:23px;flex:0 0 23px
}
.page-profile .tg-card-feature .tg-game-icon>*,.page-public-profile .tg-card-feature .tg-game-icon>*{
 opacity:1!important;filter:none!important
}
.page-profile .tg-card-feature .tg-card-feature-name,.page-public-profile .tg-card-feature .tg-card-feature-name{opacity:1;font-size:11px}
.page-profile .tg-card-feature .tg-card-feature-score,.page-public-profile .tg-card-feature .tg-card-feature-score{font-size:13px}
/* Give default card/best options the same "No badge" icon and presentation. */
.tg-theme-card[data-default="true"]{justify-content:center;align-items:center;text-align:center;gap:8px}
.tg-theme-card[data-default="true"] .tg-no-badge-icon,
.tg-card-best-default .tg-no-badge-icon{width:33px;height:33px;min-width:33px}
.tg-theme-card{position:relative}
.tg-theme-card>.tg-option-plus{
 position:absolute;right:8px;top:8px;display:grid;place-items:center;
 width:17px;height:17px;border-radius:5px;background:var(--surface);
 color:var(--accent);border:1px solid var(--line);
 font-size:12px;font-weight:850;line-height:1;z-index:2
}
.tg-theme-card[data-tier="plus"][data-locked="true"]{opacity:.58}
.tg-theme-card[data-tier="seasonal"]{opacity:1!important}
.tg-theme-card[data-tier="seasonal"]::after{content:"QUEST"}
.tg-theme-card[data-tier="seasonal"] .tg-theme-sample{opacity:1}
.tg-theme-card[data-tier="plus"]:not([data-locked="true"]){opacity:1}
.tg-card-best-default{justify-content:center}
.tg-card-best-default .tg-card-best-copy small{display:none}
.tg-theme-card[data-default="true"]>small{display:none}
/* Do not show separate save actions; one floating save/discard handles all. */
.page-profile :is(#player-display-form,#player-initials-form) button[type="submit"],
.page-profile :is(#profile-tagline-save,#profile-appearance-save,#profile-theme-save,#profile-card-stat-save){
 display:none!important
}
.page-profile .tg-profile-editor-save:empty,
.page-profile .tg-theme-actions:empty{display:none}
.page-profile .tg-profile-save-bar[hidden]{display:none!important}
.page-profile .tg-profile-save-bar{
 position:fixed;z-index:60;bottom:18px;left:50%;transform:translateX(-50%);
 width:min(548px,calc(100vw - 28px));min-height:66px;
 display:flex;align-items:center;gap:10px;flex-wrap:wrap;
 padding:12px 13px;border:1px solid var(--line);border-radius:14px;
 background:var(--surface);color:var(--text);box-shadow:var(--shadow)
}
.tg-profile-save-hint{flex:1 1 142px;min-width:0;font-size:12px;color:var(--muted);line-height:1.35}
.tg-profile-save-hint[data-error="true"]{color:var(--accent)}
.page-profile .tg-profile-save-bar button{
 border-radius:9px;padding:10px 16px;font-size:12px;font-weight:750;white-space:nowrap
}
.page-profile .tg-profile-save-bar #profile-discard-all{
 background:var(--surface-soft);border:1px solid var(--line);color:var(--text)
}
.page-profile .tg-profile-save-bar #profile-save-all{
 background:var(--text);border:1px solid var(--text);color:var(--canvas)
}
.page-profile .tg-profile-save-bar button:disabled{opacity:.5;cursor:default}
/* The Bit preview floats immediately beneath the combined sticky card/nav.
   The CSS custom property is updated from measured header height. */
.page-profile .profile-custom-feature .tg-profile-editor-preview{
 top:calc(var(--tg-profile-sticky-height,190px) + 10px)!important;
 max-height:max(140px,calc(100dvh - var(--tg-profile-sticky-height,190px) - 30px))
}
.page-profile .tg-achievements-more{
 display:inline-flex;align-items:center;justify-content:center;
 margin-top:12px;padding:7px 10px;border:1px solid var(--line);
 border-radius:8px;background:var(--surface-soft);font-size:11px;font-weight:700;color:var(--muted)
}
.page-profile .tg-achievements-more[hidden]{display:none!important}
@media(max-width:700px){
 .page-profile .profile-custom-feature .tg-profile-editor-preview{
  top:calc(var(--tg-profile-sticky-height,190px) + 8px)!important;
  max-height:max(140px,calc(100dvh - var(--tg-profile-sticky-height,190px) - 16px))
 }
 .page-profile .tg-profile-save-bar{bottom:calc(80px + env(safe-area-inset-bottom))}
 .page-profile .tg-card-name-row,.page-public-profile .public-profile-title-row{column-gap:12px}
}
@media(max-width:420px){
 .page-profile .tg-profile-save-bar{gap:8px;padding:9px}
 .page-profile .tg-profile-save-bar button{padding:9px 12px}
}

/* One plan marker per design; remove the legacy duplicate PLUS pseudo-label. */
.tg-theme-card[data-tier="plus"]::after{content:none!important}
.tg-theme-card[data-tier="seasonal"]::after{
 content:"QUEST";left:8px;right:auto;top:8px;
 background:var(--surface-soft);color:var(--muted);
 border:1px solid var(--line);font-size:9px;padding:3px 6px
}

/* Multi-best identity: three compact, legible game rows beside the name. */
.page-profile .tg-card-name-row .tg-card-feature,
.page-public-profile .public-profile-title-row .tg-card-feature{
 display:flex;align-items:center;flex-wrap:wrap;gap:9px 13px;min-width:0;
 border-left:1px solid color-mix(in srgb,var(--card-ink,var(--text)) 12%,transparent);
 padding-left:18px;max-width:100%;opacity:1!important
}
.tg-card-feature-item{display:inline-flex;align-items:center;gap:8px;min-width:0}
.tg-card-feature-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.tg-card-feature-item .tg-game-icon{
 --tg-icon-size:27px!important;
 width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;
 flex:0 0 27px!important;align-self:center!important;filter:none!important;opacity:1!important
}
.tg-card-feature-item .tg-game-icon>*{filter:none!important;opacity:1!important}
.tg-card-feature-item .tg-card-feature-name{font-size:10px;line-height:1.1;opacity:.85}
.tg-card-feature-item .tg-card-feature-score{font-size:12px;line-height:1.1;font-weight:770}
.tg-card-best-option{position:relative}
.tg-card-best-position{position:absolute;right:7px;top:6px;font-weight:800;font-size:10px;
 color:var(--accent)}
.tg-card-best-position:empty{display:none}
.tg-card-best-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,184px),1fr))}
.page-profile .tg-profile-save-bar{
 left:var(--tg-profile-save-centre,50%);
 border:1px solid color-mix(in srgb,var(--accent) 65%,var(--line));
 background:color-mix(in srgb,var(--accent-soft) 32%,var(--surface));
 box-shadow:0 14px 38px #0003,0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)
}
.page-profile .tg-profile-save-bar::before{
 content:"";display:block;flex:0 0 7px;height:7px;border-radius:50%;
 background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)
}
.page-profile .tg-profile-save-bar #profile-save-all{
 background:var(--accent);border-color:var(--accent);
 color:var(--canvas);box-shadow:0 2px 7px #0002;font-weight:800
}
.page-profile .tg-profile-save-bar #profile-save-all:hover:not(:disabled){filter:brightness(1.06)}
@media(max-width:700px){
 .page-profile .tg-card-name-row .tg-card-feature,
 .page-public-profile .public-profile-title-row .tg-card-feature{
  flex-basis:100%;border-left:0;padding-left:0;border-top:1px solid
  color-mix(in srgb,var(--card-ink,var(--text)) 12%,transparent);padding-top:9px
 }
 .page-profile .tg-profile-save-bar{left:50%}
}

.tg-card-best-instruction{font-size:11px;color:var(--muted);margin:0 0 11px}

/* Milestone always visible, whether locked, reached, or collected. */
.page-profile .tg-season-reward>small{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);opacity:.84}

/* Bit gradient geometry is stationary. SVG stop colours rotate with a single
   exact-period loop, without translating or fading the overlay.
   Glimmer is rendered as clipped point-stars, never a moving highlight. */
.tg-bit-avatar svg .bit-fx-overlay{animation:none!important;transform:none!important}
.tg-bit-avatar[data-avatar-effect="glimmer"]::before,
.tg-bit-avatar[data-avatar-effect="glimmer"]::after{content:none!important;display:none!important}
.tg-bit-avatar svg .bit-fx-glimmer-star{pointer-events:none}

/* Fall 2026: distinct cosmetic tiers and honest solid-colour name option. */
[data-name-effect="none"][data-name-tint]{
 color:inherit!important;-webkit-text-fill-color:currentColor!important;
 background:none!important;animation:none!important;text-shadow:none!important;
 filter:none!important
}
:root [data-name-effect="colour"][data-name-tint^="h"]{
 color:var(--tg-custom-name)!important;background:none!important;
 background-clip:initial!important;-webkit-text-fill-color:currentColor!important;
 text-shadow:none!important;filter:none!important;animation:none!important;
 -webkit-text-stroke:0!important
}
:root [data-name-effect="colour"][data-name-tint="rainbow"]{
 color:var(--text)!important;-webkit-text-fill-color:currentColor!important;
 background:none!important;animation:none!important
}
:root:not([data-theme="dark"]) [data-name-effect="colour"][data-name-tint^="h"]{
 color:var(--tg-custom-name-dark,var(--tg-custom-name))!important
}
.tg-profile-option[data-locked="true"]{cursor:pointer}
.tg-theme-card[data-tier="seasonal"]::after{content:none!important;display:none!important}
.tg-option-plus.tg-option-seasonal{
 background:#e7d7ef!important;color:#703e89!important;
 border-color:#bfa3d2!important;font-size:14px!important;font-weight:900
}
.tg-option-plus.tg-option-supporter{
 background:#f4dde1!important;color:#9e4b67!important;
 border-color:#d4a0ae!important;font-size:12px!important
}
.tg-season-paging{display:flex;justify-content:flex-end;align-items:center;gap:13px;margin:6px 0}
.tg-season-page-arrow{display:grid;place-items:center;width:34px;height:31px;
 background:var(--surface);color:var(--text);border:1px solid var(--line);
 border-radius:8px;font:inherit;font-size:21px;cursor:pointer}
.tg-season-page-arrow:disabled{opacity:.3;cursor:default}
.tg-season-page-number{font-size:11px;font-weight:750;color:var(--muted)}
.tg-season-feature .tg-season-rewards{
 grid-auto-flow:initial;grid-template-columns:repeat(7,minmax(0,1fr));
 grid-auto-columns:unset;overflow:visible
}
.tg-season-feature .tg-season-reward{min-width:0}
.tg-season-card-preview{display:block;position:relative;width:65px;height:43px;border-radius:6px;
 border:2px solid #ffffff9e;box-shadow:0 3px 12px #0003;
 background:linear-gradient(127deg,#493051,#ce8a70)}
.tg-season-card-preview::after{content:"";position:absolute;inset:6px;
 border:1px solid #ffffff90;border-radius:3px}
.tg-season-card-preview[data-theme^="christmas"]{background:linear-gradient(130deg,#284c45,#87bda1,#d0a1a5)}
.tg-season-card-preview[data-theme^="easter"]{background:linear-gradient(130deg,#f6d1d6,#acc9e4,#8abda3)}
.tg-season-card-preview[data-theme="halloween-moon"]{background:linear-gradient(140deg,#181c3d,#775280,#c58c73)}
.tg-season-card-preview[data-theme="halloween-pumpkin"]{background:linear-gradient(130deg,#f4b65a,#be7e3f,#6c4c6f)}
.tg-season-card-preview[data-theme="halloween-library"]{background:linear-gradient(130deg,#463731,#866148,#c7a77a)}
.tg-season-card-preview[data-theme="halloween-parade"]{background:linear-gradient(130deg,#29304c,#63649b,#e08a9b)}
@media(max-width:1000px){
 .tg-season-feature .tg-season-rewards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:580px){
 .tg-season-feature .tg-season-rewards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* New artistic Plus-only designs: each carefully inverted for night mode. */
.profile-main-card[data-card-design="topographic"]{
 --card-bg:linear-gradient(128deg,#e7e9dc,#b4cdba);--card-ink:#254e46;
 --card-sub:#53796d;--card-border:#5a9984;--card-detail:#80b59b;
 --card-ornament:repeating-radial-gradient(ellipse at 83% 13%,transparent 0 17px,#5a9b8140 18px 20px,transparent 21px 30px)
}
.profile-main-card[data-card-design="dusk"]{
 --card-bg:linear-gradient(120deg,#c9d7f4,#d1cde7,#f2cbbd);
 --card-ink:#3d3959;--card-sub:#716789;--card-border:#9b8db9;--card-detail:#aa8bac;
 --card-ornament:radial-gradient(ellipse at 90% 20%,#fff7f6aa,transparent 48%)
}
.profile-main-card[data-card-design="retro"]{
 --card-bg:linear-gradient(130deg,#ffd8a7,#f3a59e,#c59bdf);
 --card-ink:#54384b;--card-sub:#906172;--card-border:#b87987;--card-detail:#b77594;
 --card-ornament:repeating-linear-gradient(0deg,transparent 0 13px,#ffffff21 14px 15px)
}
.profile-main-card[data-card-design="ocean"]{
 --card-bg:linear-gradient(128deg,#d6f0ec,#9dcec9,#9abfd6);
 --card-ink:#204b59;--card-sub:#507680;--card-border:#4e8c97;--card-detail:#64b2b4;
 --card-ornament:repeating-radial-gradient(ellipse at 94% 96%,transparent 0 22px,#ffffff5e 23px 25px,transparent 26px 43px)
}
.profile-main-card[data-card-design="glass"]{
 --card-bg:linear-gradient(132deg,#e1dcf6,#b5c9ed,#efcee1);
 --card-ink:#433b67;--card-sub:#6b638a;--card-border:#9587bb;--card-detail:#8a82c8;
 --card-ornament:linear-gradient(118deg,transparent 10%,#ffffff96 35%,transparent 52%,#ffffff4c 70%,transparent 90%)
}
.profile-main-card[data-card-design="kinetic"]{
 --card-bg:linear-gradient(135deg,#e9e9e2,#b8bfb3,#c1cdd3);
 --card-ink:#243a38;--card-sub:#5b6b68;--card-border:#788d84;--card-detail:#67887f;
 --card-ornament:repeating-conic-gradient(from 25deg at 93% 19%,transparent 0 23deg,#4169572c 25deg 28deg,transparent 30deg 52deg)
}
.profile-main-card[data-card-design="supporter"]{
 --card-bg:linear-gradient(129deg,#f7e8e7,#f0ced5 55%,#e3c4d6);
 --card-ink:#603747;--card-sub:#85606c;--card-border:#b6788a;--card-detail:#bc718a;
 --card-ornament:radial-gradient(circle at 83% 19%,#ffffffb0,transparent 32%),
 radial-gradient(circle at 93% 76%,#d986a163,transparent 25%)
}
.profile-main-card[data-card-design="halloween-moon"]{
 --card-bg:linear-gradient(125deg,#1b1b35,#413058,#77475a);
 --card-ink:#fcebf1;--card-sub:#d6bbd7;--card-border:#ac8ad7;--card-detail:#d9a6df;
 --card-ornament:radial-gradient(circle at 86% 22%,#f7e4ae9e 0 27px,transparent 28px)
}
.profile-main-card[data-card-design="halloween-pumpkin"]{
 --card-bg:linear-gradient(125deg,#f6d8a2,#d69f71,#ad858a);
 --card-ink:#563b42;--card-sub:#865962;--card-border:#b67555;--card-detail:#cb8b48;
 --card-ornament:radial-gradient(circle at 90% 80%,#f6b84b8c,transparent 41%)
}
.profile-main-card[data-card-design="halloween-library"]{
 --card-bg:linear-gradient(120deg,#3e342e,#70513b,#856e5c);
 --card-ink:#ffefd3;--card-sub:#e4cba9;--card-border:#ae8d60;--card-detail:#e8bc78;
 --card-ornament:repeating-linear-gradient(90deg,transparent 0 42px,#e6b86a21 43px 46px)
}
.profile-main-card[data-card-design="halloween-parade"]{
 --card-bg:linear-gradient(130deg,#242c49,#49416b,#ae6885);
 --card-ink:#fff0f8;--card-sub:#ddcbe6;--card-border:#b59dd9;--card-detail:#dfb3d5;
 --card-ornament:radial-gradient(circle at 88% 25%,#ffcada87,transparent 38%)
}
.profile-main-card[data-card-design="christmas-star"]{
 --card-bg:linear-gradient(130deg,#e5f4f1,#b7d9d9,#d8d0ee);
 --card-ink:#2e4c54;--card-sub:#617c82;--card-border:#92b5bd;--card-detail:#6b9ba5;
 --card-ornament:radial-gradient(circle at 83% 22%,#fff 0 5px,transparent 6px),
 radial-gradient(circle at 75% 65%,#ffffffc7 0 3px,transparent 4px)
}
.profile-main-card[data-card-design="easter-bloom"]{
 --card-bg:linear-gradient(125deg,#ffeadb,#e0deee,#bce4cd);
 --card-ink:#4b4663;--card-sub:#7f7291;--card-border:#b9a1ce;--card-detail:#9c82b9;
 --card-ornament:radial-gradient(ellipse at 81% 25%,#f8aed7b0,transparent 36%),
 radial-gradient(ellipse at 95% 81%,#8cd4acb0,transparent 30%)
}
/* Winter Postcard: no striped texture in either mode. */
.profile-main-card[data-card-design="christmas"]{
 --card-ornament:radial-gradient(circle at 82% 18%,#ffffffd8 0 3px,transparent 4px),
 radial-gradient(circle at 91% 64%,#ffffffbf 0 2px,transparent 3px),
 radial-gradient(circle at 75% 80%,#ffffff8b 0 1px,transparent 2px)
}
:root[data-theme="dark"] .profile-main-card[data-card-design="topographic"]{
 --card-bg:linear-gradient(128deg,#1d3636,#294c41);--card-ink:#dff3e6;
 --card-sub:#a6cabb;--card-border:#639681;--card-detail:#77ae94
}
:root[data-theme="dark"] .profile-main-card[data-card-design="dusk"]{
 --card-bg:linear-gradient(125deg,#202a4c,#403a61,#67445e);--card-ink:#f1eafa;
 --card-sub:#c8bad8;--card-border:#9386b8;--card-detail:#bda3d3
}
:root[data-theme="dark"] .profile-main-card[data-card-design="retro"]{
 --card-bg:linear-gradient(125deg,#38263b,#6e3950,#815146);--card-ink:#ffe8df;
 --card-sub:#e2bcb8;--card-border:#ba7c88;--card-detail:#e2a4b0
}
:root[data-theme="dark"] .profile-main-card[data-card-design="ocean"]{
 --card-bg:linear-gradient(125deg,#163744,#226471,#314c75);--card-ink:#e4ffff;
 --card-sub:#a9d5de;--card-border:#5da5b5;--card-detail:#7fc8d0
}
:root[data-theme="dark"] .profile-main-card[data-card-design="glass"]{
 --card-bg:linear-gradient(125deg,#302c4a,#434469,#694361);--card-ink:#f7eafa;
 --card-sub:#d1c0e1;--card-border:#9481b9;--card-detail:#b3a0d2
}
:root[data-theme="dark"] .profile-main-card[data-card-design="kinetic"]{
 --card-bg:linear-gradient(125deg,#202f30,#31453f,#3c4d59);--card-ink:#ebfaf3;
 --card-sub:#afcec2;--card-border:#648f7f;--card-detail:#83b29f
}
:root[data-theme="dark"] .profile-main-card[data-card-design="supporter"]{
 --card-bg:linear-gradient(125deg,#302335,#553447,#734459);--card-ink:#ffeaf2;
 --card-sub:#ebc0d0;--card-border:#b47c98;--card-detail:#e2a6bd
}
:root[data-theme="dark"] .profile-main-card[data-card-design="halloween-pumpkin"]{
 --card-bg:linear-gradient(123deg,#47312d,#62422e,#6d4452);
 --card-ink:#ffe7ce;--card-sub:#e4b99f;--card-border:#b7836a;--card-detail:#e4af83
}
:root[data-theme="dark"] .profile-main-card[data-card-design="christmas-star"]{
 --card-bg:linear-gradient(120deg,#1b3b46,#264f57,#42456a);
 --card-ink:#ecfaff;--card-sub:#bbd5df;--card-border:#78adb9;--card-detail:#a0d0d8
}
:root[data-theme="dark"] .profile-main-card[data-card-design="easter-bloom"]{
 --card-bg:linear-gradient(120deg,#3e354b,#3f5061,#315a4d);
 --card-ink:#fff1fb;--card-sub:#d4c3db;--card-border:#b49ac2;--card-detail:#d7b4d4
}
/* Active profile cards can afford compositor-friendly motion; Free cards remain still. */
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="classic"],
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="ink"],
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="grid"]{
 animation:none!important
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design]:not([data-card-design="classic"]):not([data-card-design="ink"]):not([data-card-design="grid"]){
 background-size:230% 230%!important;
 animation:tg-card-ambient 18s ease-in-out infinite
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="christmas"]::before,
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="christmas-star"]::before{
 background-image:radial-gradient(circle,#ffffffc2 0 1px,transparent 2px),
 radial-gradient(circle,#ffffff96 0 2px,transparent 3px),
 radial-gradient(circle,#ffffff7d 0 1px,transparent 2px)!important;
 background-size:43px 43px,81px 81px,57px 57px!important;
 animation:tg-profile-snow 19s linear infinite!important
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="halloween-moon"]::before,
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="cosmos"]::before{
 background-size:120% 120%;animation:tg-card-starlight 12s ease-in-out infinite
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="easter-bloom"]::before,
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="botanical"]::before{
 animation:tg-card-petal-breeze 15s ease-in-out infinite
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="kinetic"]::before,
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="halloween-parade"]::before{
 animation:tg-card-ornament-drift 24s linear infinite
}
:is(.page-profile,.page-public-profile) .profile-main-card[data-card-design="supporter"]::before{
 animation:tg-card-starlight 9s ease-in-out infinite
}
@keyframes tg-card-ambient{
 0%,100%{background-position:0% 50%}50%{background-position:100% 50%}
}
@keyframes tg-profile-snow{
 0%{transform:translateY(-43px)}100%{transform:translateY(0)}
}
@keyframes tg-card-starlight{
 0%,100%{opacity:.48;transform:scale(1)}50%{opacity:.92;transform:scale(1.045)}
}
@keyframes tg-card-petal-breeze{
 0%,100%{opacity:.56;transform:translateX(0)}50%{opacity:1;transform:translateX(-12px)}
}
@keyframes tg-card-ornament-drift{
 from{transform:rotate(0deg) scale(1.2)}to{transform:rotate(360deg) scale(1.2)}
}
@media(prefers-reduced-motion:reduce){
 :is(.page-profile,.page-public-profile) .profile-main-card[data-card-design],
 :is(.page-profile,.page-public-profile) .profile-main-card[data-card-design]::before{
  animation:none!important;transform:none!important
 }
}
.page-profile .tg-profile-save-bar .profile-history-action{
 padding:8px 12px;border:1px solid var(--line);background:var(--surface);
 color:var(--text);font-size:20px;line-height:1;min-width:37px
}
@media(max-width:520px){
 .page-profile .tg-profile-save-bar .profile-history-action{padding:8px;min-width:29px}
}

/* A Supporter badge never displaces the selected achievement. */
.tg-card-equipped-badge{display:inline-flex;align-items:center;gap:6px}
.tg-supporter-badge{display:inline-flex;align-items:center;justify-content:center;
 width:16px;height:16px;min-width:16px;padding:0;box-sizing:border-box;
 background:none!important;border:0!important;border-radius:0!important;
 color:#e84e64!important;-webkit-text-fill-color:#e84e64!important;
 font-size:15px;font-weight:750;line-height:1;cursor:help;box-shadow:none!important;
 text-shadow:none!important}
.tg-supporter-badge:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tg-supporter-badge[hidden],.tg-supporter-display-setting[hidden]{display:none!important}
/* Scoreboard recognition is as quiet as an equipped achievement: one red heart. */
body :is(.memory-rank-player,.float-ribbon-name,.float-board-name,
 .float-dialog-name,.kk-score-name,.kk-full-name,.rankings-combined-player,.tg-mini-board-row)
 .tg-supporter-badge{
 width:11px;height:11px;min-width:11px;max-width:11px;
 font-size:11px;line-height:1;margin-inline-start:2px;flex:0 0 11px;
}

/* Accurate miniature artwork colours in both picker modes. */
.tg-theme-card[data-theme="midnight"] .tg-theme-sample{background:linear-gradient(125deg,#e6e7fa,#c2c8f0)}
:root[data-theme="dark"] .tg-theme-card[data-theme="midnight"] .tg-theme-sample{background:linear-gradient(125deg,#101c38,#322450)}
.tg-theme-card[data-theme="botanical"] .tg-theme-sample{background:linear-gradient(125deg,#e4efe0,#cae3ce)}
:root[data-theme="dark"] .tg-theme-card[data-theme="botanical"] .tg-theme-sample{background:linear-gradient(125deg,#203a2b,#30543b)}
.tg-theme-card[data-theme="cosmos"] .tg-theme-sample{background:linear-gradient(125deg,#f1ebfc,#d5daf8)}
:root[data-theme="dark"] .tg-theme-card[data-theme="cosmos"] .tg-theme-sample{background:linear-gradient(125deg,#222446,#4c3b70)}
.tg-theme-card[data-theme="paper"] .tg-theme-sample{background:linear-gradient(125deg,#f3e9d9,#ece0cd)}
:root[data-theme="dark"] .tg-theme-card[data-theme="paper"] .tg-theme-sample{background:linear-gradient(125deg,#3e332c,#473c32)}
.tg-theme-card[data-theme="aurora"] .tg-theme-sample{background:linear-gradient(125deg,#d9f1ee,#b7e7d6,#dddaf5)}
:root[data-theme="dark"] .tg-theme-card[data-theme="aurora"] .tg-theme-sample{background:linear-gradient(125deg,#143b4d,#276e66,#554889)}
.tg-theme-card[data-theme="golden"] .tg-theme-sample{background:linear-gradient(125deg,#f8dbb2,#e9ae8d)}
:root[data-theme="dark"] .tg-theme-card[data-theme="golden"] .tg-theme-sample{background:linear-gradient(125deg,#392728,#65432e)}
.tg-theme-card[data-theme="candy"] .tg-theme-sample{background:linear-gradient(125deg,#ffdef1,#dadcfc,#c9eddc)}
:root[data-theme="dark"] .tg-theme-card[data-theme="candy"] .tg-theme-sample{background:linear-gradient(125deg,#482c51,#39456a,#2a5550)}
.tg-theme-card[data-theme="topographic"] .tg-theme-sample{background:linear-gradient(125deg,#e7e9dc,#b4cdba)}
:root[data-theme="dark"] .tg-theme-card[data-theme="topographic"] .tg-theme-sample{background:linear-gradient(125deg,#1d3636,#294c41)}
.tg-theme-card[data-theme="dusk"] .tg-theme-sample{background:linear-gradient(125deg,#c9d7f4,#d1cde7,#f2cbbd)}
:root[data-theme="dark"] .tg-theme-card[data-theme="dusk"] .tg-theme-sample{background:linear-gradient(125deg,#202a4c,#403a61,#67445e)}
.tg-theme-card[data-theme="retro"] .tg-theme-sample{background:linear-gradient(125deg,#ffd8a7,#f3a59e,#c59bdf)}
:root[data-theme="dark"] .tg-theme-card[data-theme="retro"] .tg-theme-sample{background:linear-gradient(125deg,#38263b,#6e3950,#815146)}
.tg-theme-card[data-theme="ocean"] .tg-theme-sample{background:linear-gradient(125deg,#d6f0ec,#9dcec9,#9abfd6)}
:root[data-theme="dark"] .tg-theme-card[data-theme="ocean"] .tg-theme-sample{background:linear-gradient(125deg,#163744,#226471,#314c75)}
.tg-theme-card[data-theme="glass"] .tg-theme-sample{background:linear-gradient(125deg,#e1dcf6,#b5c9ed,#efcee1)}
:root[data-theme="dark"] .tg-theme-card[data-theme="glass"] .tg-theme-sample{background:linear-gradient(125deg,#302c4a,#434469,#694361)}
.tg-theme-card[data-theme="kinetic"] .tg-theme-sample{background:linear-gradient(125deg,#e9e9e2,#b8bfb3,#c1cdd3)}
:root[data-theme="dark"] .tg-theme-card[data-theme="kinetic"] .tg-theme-sample{background:linear-gradient(125deg,#202f30,#31453f,#3c4d59)}
.tg-theme-card[data-theme="supporter"] .tg-theme-sample{background:linear-gradient(125deg,#f7e8e7,#f0ced5,#e3c4d6)}
:root[data-theme="dark"] .tg-theme-card[data-theme="supporter"] .tg-theme-sample{background:linear-gradient(125deg,#302335,#553447,#734459)}
.tg-theme-card[data-theme="halloween"] .tg-theme-sample{background:linear-gradient(125deg,#f5e5d6,#dfc8e9,#efc69e)}
:root[data-theme="dark"] .tg-theme-card[data-theme="halloween"] .tg-theme-sample{background:linear-gradient(125deg,#21182a,#4b2954,#5c301c)}
.tg-theme-card[data-theme="halloween-moon"] .tg-theme-sample{background:linear-gradient(125deg,#1b1b35,#413058,#77475a)}
:root[data-theme="dark"] .tg-theme-card[data-theme="halloween-moon"] .tg-theme-sample{background:linear-gradient(125deg,#1b1b35,#413058,#77475a)}
.tg-theme-card[data-theme="halloween-pumpkin"] .tg-theme-sample{background:linear-gradient(125deg,#f6d8a2,#d69f71,#ad858a)}
:root[data-theme="dark"] .tg-theme-card[data-theme="halloween-pumpkin"] .tg-theme-sample{background:linear-gradient(125deg,#47312d,#62422e,#6d4452)}
.tg-theme-card[data-theme="halloween-library"] .tg-theme-sample{background:linear-gradient(125deg,#3e342e,#70513b,#856e5c)}
:root[data-theme="dark"] .tg-theme-card[data-theme="halloween-library"] .tg-theme-sample{background:linear-gradient(125deg,#3e342e,#70513b,#856e5c)}
.tg-theme-card[data-theme="halloween-parade"] .tg-theme-sample{background:linear-gradient(125deg,#242c49,#49416b,#ae6885)}
:root[data-theme="dark"] .tg-theme-card[data-theme="halloween-parade"] .tg-theme-sample{background:linear-gradient(125deg,#242c49,#49416b,#ae6885)}
.tg-theme-card[data-theme="christmas"] .tg-theme-sample{background:linear-gradient(125deg,#e7f2e9,#d0e4d7,#f5dcdc)}
:root[data-theme="dark"] .tg-theme-card[data-theme="christmas"] .tg-theme-sample{background:linear-gradient(125deg,#19382c,#31533f,#5a3335)}
.tg-theme-card[data-theme="christmas-star"] .tg-theme-sample{background:linear-gradient(125deg,#e5f4f1,#b7d9d9,#d8d0ee)}
:root[data-theme="dark"] .tg-theme-card[data-theme="christmas-star"] .tg-theme-sample{background:linear-gradient(125deg,#1b3b46,#264f57,#42456a)}
.tg-theme-card[data-theme="easter"] .tg-theme-sample{background:linear-gradient(125deg,#fff1dc,#e4edfa,#daf3e4)}
:root[data-theme="dark"] .tg-theme-card[data-theme="easter"] .tg-theme-sample{background:linear-gradient(125deg,#463750,#344e5e,#31554d)}
.tg-theme-card[data-theme="easter-bloom"] .tg-theme-sample{background:linear-gradient(125deg,#ffeadb,#e0deee,#bce4cd)}
:root[data-theme="dark"] .tg-theme-card[data-theme="easter-bloom"] .tg-theme-sample{background:linear-gradient(125deg,#3e354b,#3f5061,#31554d)}
.tg-theme-card[data-tier="seasonal"] .tg-theme-sample::after{content:"✧";position:absolute;right:10px;bottom:3px;color:#ffffffcf;font-size:24px;text-shadow:0 2px 6px #0004;pointer-events:none}
.tg-theme-card[data-tier="supporter"] .tg-theme-sample::after{content:"♥";position:absolute;right:10px;bottom:1px;color:#ffffffd8;font-size:22px;text-shadow:0 2px 6px #0005;pointer-events:none}

/* Card colour uses the SAME tint header, preview swatch, range track and
   cross-browser thumb as the existing Bit Hue control. */
.tg-theme-feature .tg-card-tint-editor{
 display:grid;grid-template-columns:minmax(0,1fr);width:100%;max-width:480px;
 gap:10px;margin:13px 0 16px;min-width:0
}
.tg-theme-feature .tg-card-tint-editor .tg-tint-top{min-height:25px;gap:9px}
.tg-theme-feature .tg-card-tint-editor .tg-tint-default{
 margin-left:auto;appearance:none;border:1px solid var(--line);border-radius:9px;
 padding:5px 10px;background:var(--surface-soft);color:var(--text);
 font:inherit;font-size:12px;font-weight:650;cursor:pointer
}
.tg-theme-feature .tg-card-tint-editor .tg-tint-default:hover{background:var(--surface)}
.tg-theme-feature .tg-card-tint-editor .tg-tint-tracks{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:17px;align-items:end;min-width:0
}
.tg-theme-feature .tg-card-tint-editor :is(.tg-tint-hue){grid-column:1/-1}
.tg-theme-feature .tg-card-tint-editor :is(.tg-tint-intensity,.tg-tint-brightness){grid-column:auto}
.tg-theme-feature .tg-card-tint-editor .tg-tint-brightness input{
 background:linear-gradient(to right,#555,#999,#fff)
}
.tg-theme-feature .tg-card-tint-editor .tg-tint-hue{grid-column:1 / -1}

/* No premium text overlay on a Supporter card. ♥ is supplied by the tier API. */
.tg-theme-card[data-tier="supporter"]::after{content:none!important;display:none!important}

/* Absolute Default name appearance.
   Uses the final canonical Tegazumi --text tokens in styles.css:
   Light #28262B, Dark #F2F4F5. Old saved tint/effect attributes may
   linger on a DOM node, but cannot recolour the Default state. */
:root:not([data-theme="dark"]) [data-name-effect="none"]{
 color:#28262B!important;
 -webkit-text-fill-color:#28262B!important
}
:root[data-theme="dark"] [data-name-effect="none"]{
 color:#F2F4F5!important;
 -webkit-text-fill-color:#F2F4F5!important
}
:root [data-name-effect="none"]{
 background:none!important;
 background-image:none!important;
 background-clip:border-box!important;
 -webkit-background-clip:border-box!important;
 text-shadow:none!important;
 -webkit-text-stroke:0!important;
 filter:none!important;
 animation:none!important;
 transition:none!important;
 mix-blend-mode:normal!important
}
/* The same locked-state styling as Bit/effect choices. Seasonal, Plus and
   Supporter designs are deliberately still clickable for previewing. */
.page-profile .tg-theme-card[data-locked="true"]{
 opacity:.68;cursor:help;border-style:dashed
}
.page-profile .tg-theme-card[data-locked="true"] .tg-theme-sample{
 filter:grayscale(1) saturate(0) brightness(.82);opacity:.48
}
.page-profile .tg-theme-card[data-locked="true"] .tg-option-plus{
 filter:none;opacity:1
}
.page-profile .tg-theme-card[data-locked="true"]:hover{
 opacity:.68;cursor:help
}
.page-profile .tg-theme-card[data-locked="false"] .tg-theme-sample{
 filter:none;opacity:1
}


/* Canonical scoreboard identity: initials → equipped achievement → supporter.
   Preserve badge visibility even beside animated name effects or narrow strips. */
body :is(.memory-rank-player,.float-ribbon-name,.float-board-name,
 .float-dialog-name,.kk-score-name,.kk-full-name):has(.tg-supporter-badge){
 overflow:visible!important;text-overflow:clip!important;white-space:nowrap
}
body :is(.memory-rank-player,.float-ribbon-name,.float-board-name,
 .float-dialog-name,.kk-score-name,.kk-full-name)>.tg-supporter-badge{
 margin-inline-start:.25em;vertical-align:middle;flex-shrink:0
}
