/* Cover profile: identity, collection, connections and Premium share one grid. */
.profile-card{display:grid;grid-template-columns:160px minmax(0,1fr);gap:22px;padding:28px;overflow:hidden;max-width:none;border-radius:26px;background:linear-gradient(145deg,rgba(29,28,47,.96),rgba(16,25,39,.97))}
.profile-cover{grid-column:1/-1;position:relative;height:180px;margin:-28px -28px 0;background:radial-gradient(ellipse at 20% 15%,rgba(126,84,197,.2),transparent 65%),radial-gradient(ellipse at 90% 90%,rgba(39,160,193,.13),transparent 65%),linear-gradient(130deg,#19182a,#101a27);border-bottom:1px solid rgba(149,136,213,.26);isolation:isolate}
.profile-cover>img{display:block;width:100%;height:100%;object-fit:cover}.profile-cover-edit,.profile-cover-remove{position:absolute;right:18px;bottom:16px;min-height:42px;padding:9px 13px;border:1px solid rgba(167,196,238,.5);border-radius:12px;background:rgba(12,18,33,.87);color:#e9e7f7;font-family:inherit;font-size:.78rem;font-weight:700;opacity:0;transition:opacity .2s;cursor:pointer}.profile-cover-remove{right:auto;left:18px}.profile-cover:hover button,.profile-cover:focus-within button{opacity:1}
.profile-card .profile-avatar-editor{width:160px;height:160px;margin-top:-60px;border-radius:28%;outline:6px solid #171c2c;align-self:start;z-index:2}.profile-card .profile-avatar-editor>.user-avatar{width:100%;height:100%}
.profile-card .profile-identity{min-height:100px;align-self:center;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;padding:0;margin:0}.profile-card .profile-name-row{order:0;min-height:0;align-self:auto;align-items:center;gap:10px}.profile-card .profile-name-row h3{font-size:clamp(1.6rem,2.7vw,2.5rem);line-height:1.3;padding:2px 0}.profile-card .profile-badges{order:1;align-self:auto}.profile-card .profile-identity>small{order:2;font-size:.85rem;line-height:1.5;align-self:auto}.profile-card .profile-badges .rank-progress-trigger{max-width:100%;min-height:32px;line-height:1.4;padding:5px 10px}.rank-progress-trigger>span{display:block;line-height:1.45;padding-block:1px;overflow:visible}.rank-progress-trigger i{position:relative;flex:none;width:18px;height:18px;font-size:0!important;line-height:0}.rank-progress-trigger i::before{position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-65%,-50%) rotate(-45deg)}
.profile-card dl{grid-column:1/-1;margin:0;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.profile-card dl div{min-height:86px;padding:17px;border:1px solid rgba(144,123,187,.22);background:rgba(255,255,255,.025);border-radius:16px}.profile-card dt{font-size:.8rem;min-height:0}.profile-card dd{font-size:1.8rem}
.profile-account-grid{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;gap:18px;align-items:start}.profile-connections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.profile-connections .telegram-connection{grid-column:auto;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;padding:13px;min-height:82px;border-radius:15px}.profile-connections .telegram-mark{width:34px;height:34px;border-radius:11px}.profile-connections .telegram-connection strong{font-size:.84rem}.profile-connections .telegram-connection small{font-size:.68rem;overflow-wrap:anywhere}.profile-connections .telegram-connection button,.profile-connections .connection-link{grid-column:2/-1;min-height:34px}.profile-account-grid .premium-card{grid-column:auto;width:100%;height:100%;margin:0;gap:9px;padding:16px;min-width:0}.profile-account-grid .premium-card p{font-size:.8rem}.profile-account-grid .premium-card>button{min-height:40px}.profile-account-grid .premium-card>.copy-profile-id{min-height:28px;font-size:.65rem}
.profile-card .profile-community-actions{grid-column:1/-1;margin:0}.profile-card .profile-form{margin:0;padding-top:4px}
.public-profile-cover{grid-column:1/-1;height:150px;margin:-28px -28px 0;border-radius:25px 25px 0 0;background:radial-gradient(ellipse at 20% 15%,rgba(126,84,197,.2),transparent 65%),linear-gradient(130deg,#19182a,#101a27);overflow:hidden}.public-profile-cover img{width:100%;height:100%;object-fit:cover;display:block}.public-profile-hero:has(.public-profile-cover)>.user-avatar{margin-top:-65px;position:relative;z-index:1;outline:5px solid #1b2133}
.cover-editor{width:min(720px,calc(100vw - 24px));max-width:720px}.cover-crop-stage{position:relative;width:100%;aspect-ratio:4/1;overflow:hidden;border-radius:14px;background:#080c16;touch-action:none;cursor:grab;outline:1px solid #716294;margin:18px 0}.cover-crop-stage img{position:absolute;max-width:none;user-select:none;pointer-events:none}.cover-editor p{font-size:.85rem}.cover-editor label{display:grid;gap:8px;margin:16px 0}.cover-editor input[type=range]{width:100%;accent-color:#9e7de0}.cover-editor [role=alert]{color:#ffb1c6;min-height:1.4em}.cover-editor .crop-actions{margin-top:16px}
@media(min-width:701px){.topbar .brand-home{position:absolute;left:50%;top:50%;right:auto;transform:translate(-50%,-50%);width:max-content;max-width:40%;text-align:center}.topbar .topbar-actions{grid-column:3}.topbar .brand-home .main-wordmark{transform:scaleX(1.04);transform-origin:center}.topbar .brand-caption{font-size:clamp(.55rem,.85vw,.82rem)}.topbar .brand-icon-home{grid-column:1}}
@media(min-width:701px) and (max-width:1400px){.topbar .brand-home{position:static;transform:none;grid-column:2;max-width:none;width:auto;justify-self:center}.topbar .brand-home .main-wordmark{font-size:1.7rem}.topbar .brand-caption{font-size:.53rem}}
@media(max-width:1000px){.profile-account-grid{grid-template-columns:1fr}.profile-cover{height:150px}.profile-card .profile-avatar-editor{width:140px;height:140px}.profile-card{grid-template-columns:140px minmax(0,1fr)}}
@media(max-width:600px){.profile-card{width:100%;margin:0;padding:16px;grid-template-columns:92px minmax(0,1fr);gap:16px;border-radius:21px}.profile-cover{height:120px;margin:-16px -16px 0}.profile-card .profile-avatar-editor{width:92px;height:92px;margin-top:-35px;outline-width:4px}.profile-card .profile-identity{min-height:72px;gap:7px}.profile-card .profile-name-row h3{font-size:1.35rem;flex-basis:auto}.profile-card .nickname-customize{min-height:30px;height:30px;font-size:.64rem;padding-inline:9px}.profile-card .profile-badges .rank-badge,.profile-card .profile-badges .special-badge{font-size:.6rem;line-height:1.4;min-height:24px}.profile-card .profile-identity>small{font-size:.7rem}.profile-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-card dl div{min-height:70px;padding:12px}.profile-card dt{min-height:0;font-size:.7rem}.profile-card dd{font-size:1.4rem}.profile-connections{grid-template-columns:1fr}.profile-account-grid{gap:12px}.profile-cover-edit,.profile-cover-remove{opacity:1;bottom:12px;right:12px;min-height:36px;font-size:.7rem;padding:7px 10px}.profile-cover-remove{right:auto;left:12px}.profile-cover-edit span{font-size:.67rem}}
@media(hover:none){.profile-cover button{opacity:1}}
.profile-card .profile-name-row{width:100%;min-width:0}.profile-card .profile-name-row h3{max-width:100%;overflow-wrap:anywhere}.profile-card .profile-name-row .nickname-style{white-space:normal!important;overflow-wrap:anywhere;max-width:100%}
@media(max-width:700px){.topbar{grid-template-columns:32px minmax(0,1fr) auto;gap:7px;padding:12px 10px;min-height:74px;margin-bottom:18px;border-radius:18px}.topbar .brand-icon-home{width:32px;height:36px;border:0;border-radius:10px;background:none;box-shadow:none}.topbar .brand-icon-home img{width:32px;height:32px;border-radius:10px}.topbar .brand-home{position:static;width:auto;max-width:none;text-align:left;transform:none;justify-self:start}.topbar .brand-home .main-wordmark{font-size:clamp(1rem,4.4vw,1.3rem);letter-spacing:-.045em;transform:none;padding:0;white-space:nowrap}.topbar .brand-caption{display:none}.topbar .topbar-actions{grid-column:3;grid-row:1;display:flex;align-items:center;justify-self:end;gap:4px;margin:0;padding:0;background:none;border:0;box-shadow:none;border-radius:0;backdrop-filter:none}.topbar .language-trigger{min-height:36px;height:36px;padding-inline:7px;gap:4px;font-size:.68rem;border-radius:10px}.topbar .language-trigger .flag{display:none!important}.topbar .tags-button{width:30px;min-width:30px;min-height:36px;height:36px;padding:0;font-size:0;border-radius:10px}.topbar .tags-button::before{content:'#';font-size:1rem}.topbar .avatar:not(.guest-login){width:36px;min-width:36px;height:36px;padding:2px;border-radius:11px}.topbar .avatar:not(.guest-login) .user-avatar{width:30px;height:30px;border-radius:9px}.topbar .avatar.guest-login{min-width:36px;min-height:36px;height:36px;padding-inline:7px;font-size:.62rem}.topbar .language-menu{top:44px;right:0}}
@media(max-width:700px){.public-profile-cover{height:110px;margin:-18px -18px 0}.public-profile-hero:has(.public-profile-cover)>.user-avatar{margin-top:-35px}}

/* A calm continuous surface replaces the oversized rotating conic layer. */
.profile-card.premium-profile::before{inset:0;animation:none;background:radial-gradient(ellipse at 15% 20%,rgba(117,77,189,.1),transparent 65%),radial-gradient(ellipse at 90% 80%,rgba(47,160,180,.07),transparent 65%)}
.profile-card .profile-avatar-editor{overflow:visible;contain:none;outline:0;background:#171c2c;border:3px solid #171c2c;border-radius:28%}
.profile-card .profile-avatar-editor>.user-avatar{display:block;width:100%;height:100%;border-radius:inherit;margin:0;inset:auto}
.profile-card .profile-avatar-editor>.avatar-effect::after{max-width:none;max-height:none;clip-path:none}
.profile-card .profile-avatar-editor img,.profile-card .profile-avatar-editor video{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.profile-card .profile-avatar-change{inset:0;width:auto;height:auto;border-radius:inherit}
.profile-card .profile-name-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%}.profile-card .profile-name-row h3{flex:0 1 auto;width:max-content;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;padding:.08em .15em .16em;margin:-.08em -.15em -.16em}
.profile-card .profile-name-row .nickname-style{display:inline;white-space:nowrap!important;overflow-wrap:normal;max-width:none;padding:0;margin:0}
.profile-connections{align-content:start}.profile-connections .profile-community-actions{grid-column:1/-1;align-self:start;gap:10px}.profile-connections .profile-badge-picker{grid-column:1/-1;margin:0;min-width:0;padding:14px 12px;border:1px solid rgba(143,120,194,.22);border-radius:16px;background:rgba(15,20,34,.35)}
.profile-connections:not(:has(.google-connection))>.telegram-connection{grid-column:1/-1}.profile-cover-edit{opacity:.8}.profile-card.premium-profile::before{border-radius:inherit}
.profile-badge-picker legend{padding-inline:7px;color:#aca4bf;font-size:.8rem;font-weight:700}.profile-badge-picker .avatar-picker{display:flex;flex-wrap:wrap;gap:12px;padding:8px 3px}.profile-account-grid{align-items:start}.profile-account-grid .premium-card{height:auto}
@media(max-width:700px){.topbar{min-height:84px;padding:14px 10px;grid-template-columns:38px minmax(0,1fr) auto;gap:8px}.topbar .brand-icon-home{width:38px;height:40px}.topbar .brand-icon-home img{width:38px;height:38px}.topbar .brand-home .main-wordmark{font-size:clamp(1.12rem,4.8vw,1.55rem);letter-spacing:-.045em}.topbar .language-trigger{height:42px;min-height:42px;padding-inline:8px;font-size:.8rem}.topbar .tags-button{width:36px;min-width:36px;height:42px;min-height:42px}.topbar .tags-button::before{font-size:1.15rem}.topbar .avatar:not(.guest-login){width:42px;min-width:42px;height:42px}.topbar .avatar:not(.guest-login) .user-avatar{width:36px;height:36px}.topbar .language-menu{top:50px}}
@media(max-width:360px){.topbar{padding-inline:8px;grid-template-columns:32px minmax(0,1fr) auto;gap:6px}.topbar .brand-icon-home,.topbar .brand-icon-home img{width:32px}.topbar .brand-home .main-wordmark{font-size:1.06rem}.topbar .language-trigger{padding-inline:6px}.topbar .tags-button{width:32px;min-width:32px}.topbar .topbar-actions{gap:3px}}
@media(max-width:600px){.profile-card .profile-name-row h3{font-size:1.5rem;flex-basis:auto}.profile-card .profile-identity>small{font-size:.8rem}.profile-card .profile-badges .rank-badge,.profile-card .profile-badges .special-badge{font-size:.72rem;line-height:1.45}.profile-card .nickname-customize{font-size:.76rem;min-height:36px;height:36px}.profile-card .profile-avatar-change{inset:auto 2px 2px auto;width:34px;height:34px;border-radius:11px}.profile-connections .telegram-connection strong{font-size:.94rem}.profile-connections .telegram-connection small{font-size:.78rem}}
.profile-badge-picker h4{margin:0 0 14px;padding:0 3px;color:#aca4bf;font-size:.8rem;font-weight:700;line-height:1.5}
.profile-badge-picker .avatar-picker{padding:3px;align-items:center}
.avatar-heart{background:linear-gradient(135deg,#b23d73,#f17da2)}.avatar-crown{background:linear-gradient(135deg,#99631d,#e8b541)}.avatar-music{background:linear-gradient(135deg,#5e3fa8,#b27de0)}.avatar-snowflake{background:linear-gradient(135deg,#237ba4,#6ed1e0)}
.public-profile-hero:has(.public-profile-cover)>.user-avatar{outline:0}
.copy-profile-id code,.public-copy-id{overflow-wrap:anywhere;word-break:normal}

.profile-cover-remove{left:18px;right:auto;top:16px;bottom:auto;opacity:.85;z-index:3}
@media(max-width:600px){.profile-cover-remove{left:12px;right:auto;top:10px;bottom:auto}}
/* Keep the free avatars as one compact strip, or two balanced phone rows. */
.profile-badge-picker .avatar-picker{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:8px;padding:3px;align-items:center}
.profile-badge-picker .avatar-picker label{display:grid;place-items:center;min-width:0;min-height:32px}
.profile-badge-picker .avatar-picker .user-avatar{width:100%;max-width:48px;height:auto;aspect-ratio:1;border-radius:30%;font-size:clamp(.85rem,1.3vw,1.3rem)}
.profile-badge-picker .avatar-picker label:has(input:checked) .user-avatar{outline-offset:2px}
@media(max-width:1200px) and (min-width:1001px){.profile-account-grid{grid-template-columns:1fr}}
@media(max-width:700px){.profile-badge-picker .avatar-picker{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px 6px}.profile-badge-picker .avatar-picker .user-avatar{font-size:clamp(.9rem,3.5vw,1.2rem)}}

.profile-cover{height:140px}.public-profile-cover{height:120px}
@media(max-width:1000px){.profile-cover{height:120px}}
@media(max-width:600px){.profile-cover,.public-profile-cover{height:100px}.profile-card .profile-avatar-editor{margin-top:-25px}}
.cover-crop-stage img{max-height:none!important;max-width:none!important;object-fit:fill;transform:none}

/* The page and crop editor share one immutable frame on every screen. */
.profile-card .profile-cover,.public-profile-cover{height:auto!important;aspect-ratio:4/1;min-height:0}
.profile-cover>img,.public-profile-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.public-profile-cover{position:relative}
.cover-editor{width:min(960px,calc(100vw - 24px));max-width:960px}
.cover-crop-stage{aspect-ratio:4/1;min-height:0}

@media(max-width:600px){.profile-card .profile-avatar-editor{margin-top:0}.profile-cover-remove{top:8px;left:10px;min-height:32px;padding:5px 9px}.profile-cover-edit{bottom:8px;right:10px;min-height:32px;padding:5px 9px}}

@media(min-width:701px){.profile-card .profile-cover,.public-profile-cover{aspect-ratio:8/1}}

/* Original cover height; the editor measures this exact visible area. */
.profile-card .profile-cover{height:180px!important;aspect-ratio:auto}
.public-profile-cover{height:150px!important;aspect-ratio:auto}
@media(max-width:1000px){.profile-card .profile-cover{height:150px!important}}
@media(max-width:600px){.profile-card .profile-cover{height:120px!important}.public-profile-cover{height:110px!important}}

/* Messaging is paused; keep the profile identity in two columns. */
.public-profile-hero{grid-template-columns:160px minmax(0,1fr)}
@media(max-width:700px){.public-profile-hero{grid-template-columns:100px minmax(0,1fr)}}
@media(min-width:1201px){.profile-account-grid{align-items:stretch}.profile-connections{grid-template-rows:auto auto minmax(0,1fr)}.profile-account-grid>.premium-card{align-self:stretch}.profile-connections>.profile-badge-picker{align-self:stretch}}

/* Crystal Noir masthead, retaining the established controls and wordmark. */
.topbar{background-image:linear-gradient(90deg,rgba(8,10,25,.08),rgba(8,10,25,.2) 26%,rgba(8,10,25,.78) 45%,rgba(8,10,25,.9) 78%),url('./assets/tellyplay-site-masthead-v2.webp');background-position:left 36%;background-size:cover}
@keyframes masthead-scene{from{background-position:left 36%}to{background-position:1.5% 39%}}
/* Desktop density resembles a modest zoom out, with unchanged mobile targets. */
@media(min-width:1200px){html{zoom:.9}}
@media(min-width:1600px){.game-grid{grid-template-columns:repeat(8,minmax(0,1fr))}}

/* The transparent wordmark needs no filtered rectangular compositing layer. */
.splash-brand{background:transparent;border:0;box-shadow:none;backdrop-filter:none;filter:none;overflow:visible}
.splash-brand-shine{display:none}
.splash-wordmark{filter:none!important;-webkit-mask-image:none;mask-image:none;animation:splash-wordmark-clean .8s cubic-bezier(.18,.82,.22,1) .2s both}
@keyframes splash-wordmark-clean{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Move one composited picture instead of repainting background-position on iOS. */
.topbar{background:#090c1b;animation:none!important}
.topbar::before{inset:0;background:linear-gradient(90deg,rgba(8,10,25,.08),rgba(8,10,25,.2) 26%,rgba(8,10,25,.78) 45%,rgba(8,10,25,.9) 78%),url('./assets/tellyplay-site-masthead-v2.webp') left 36%/cover no-repeat;transform-origin:35% 50%;will-change:transform;animation:header-art-drift 18s ease-in-out infinite alternate;backface-visibility:hidden}
@keyframes header-art-drift{from{transform:translate3d(-2px,0,0) scale(1.015)}to{transform:translate3d(2px,-1px,0) scale(1.035)}}
@media(prefers-reduced-motion:reduce){.topbar::before{animation:none;will-change:auto;transform:none}.splash-wordmark{animation:none}}

/* Clip only the moving artwork, leaving language menus free to open outside. */
.topbar::before{content:none;animation:none}
.topbar>.masthead-art{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none;contain:paint}
.masthead-art::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,25,.08),rgba(8,10,25,.2) 26%,rgba(8,10,25,.78) 45%,rgba(8,10,25,.9) 78%),url('./assets/tellyplay-site-masthead-v2.webp') left 36%/cover no-repeat;transform-origin:35% 50%;will-change:transform;backface-visibility:hidden;animation:header-art-drift 18s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){.masthead-art::before{animation:none;will-change:auto;transform:none}}

/* A visible, continuous drift rather than nearly stationary subpixel movement. */
.masthead-art::before{animation-duration:12s}
@keyframes header-art-drift{from{transform:translate3d(-9px,1px,0) scale(1.04)}to{transform:translate3d(9px,-3px,0) scale(1.075)}}
@media(max-width:700px){.masthead-art::before{animation-name:header-art-drift-mobile;animation-duration:10s}}
@keyframes header-art-drift-mobile{from{transform:translate3d(-5px,1px,0) scale(1.04)}to{transform:translate3d(5px,-2px,0) scale(1.09)}}
@media(prefers-reduced-motion:reduce){.masthead-art::before{animation:none}}

/* Selected light crystal facets retain the existing title geometry. */
.splash-brand .main-wordmark,.telegram-header-wordmark .main-wordmark,.topbar .brand-home .main-wordmark,html.telegram-app .topbar .brand-home .main-wordmark{
 position:relative;isolation:isolate;
 background-image:linear-gradient(115deg,#fff 0 15%,#c5b7e8 18%,#f7f4ff 22% 34%,#dacbff 39%,#a26aee 43%,#eadbff 46%,#b77af5 67%,#e8d8ff 72%,#a77ee2 78%,#fff 95%);
 background-size:220% 100%;background-clip:text;-webkit-background-clip:text;
 -webkit-text-stroke:.45px #ddd1ff50;
 animation:tp-crystal-flow 6s ease-in-out infinite alternate;
}
.splash-brand .main-wordmark::after,.telegram-header-wordmark .main-wordmark::after,.topbar .brand-home .main-wordmark::after{
 content:"TELLYGAME";position:absolute;inset:0;padding:inherit;color:transparent;pointer-events:none;
 background:linear-gradient(110deg,transparent 20%,#ffffff00 40%,#ffffffdb 49%,#cbf8ff60 53%,#ffffff00 63%,transparent 80%);
 background-size:300% 100%;background-clip:text;-webkit-background-clip:text;
 opacity:.6;animation:tp-crystal-scan 7s ease-in-out infinite;
}
@keyframes tp-crystal-flow{from{background-position:0 50%}to{background-position:100% 50%}}
@keyframes tp-crystal-scan{0%,25%{background-position:130% 0}85%,100%{background-position:-30% 0}}
html.window-inactive .telegram-header-wordmark .main-wordmark::after,html.window-inactive .topbar .brand-home .main-wordmark::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
 .topbar .brand-home .main-wordmark,html.telegram-app .topbar .brand-home .main-wordmark,.telegram-header-wordmark .main-wordmark::after,.topbar .brand-home .main-wordmark::after{animation:none}
}

/* Only supported mobile fullscreen clients expose this space between native controls. */
.telegram-header-wordmark{display:none;position:fixed;z-index:100;left:50%;top:var(--telegram-title-y);transform:translate(-50%,-50%);width:calc(100% - 208px);max-width:220px;text-align:center;pointer-events:none}
.telegram-header-title body.is-ready>.telegram-header-wordmark{display:block}
.telegram-header-title .topbar .brand-home{visibility:hidden}
.telegram-header-wordmark .main-wordmark{margin:0;padding:0;font-size:clamp(16px,4.8vw,22px);font-weight:950;letter-spacing:-.04em;line-height:1.3;white-space:nowrap;color:transparent;filter:drop-shadow(0 0 10px #9465ff55)}
.telegram-header-wordmark .main-wordmark span{color:inherit}
@media(prefers-reduced-motion:reduce){.telegram-header-wordmark .main-wordmark,.telegram-header-wordmark .main-wordmark::after{animation:none}}

/* Flags and explicit tags make the compact controls readable without guessing. */
.topbar .language-trigger{justify-content:center;width:46px;padding-inline:8px}
.topbar .language-trigger b,.topbar .language-trigger i{display:none}
.topbar .language-trigger .flag{display:inline-block!important;width:24px!important;height:17px}
.topbar .tags-button::before{content:none}
.topbar .tags-button .tag-symbol{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
@media(max-width:700px){
 .topbar .topbar-actions{gap:6px}
 .topbar .language-trigger{width:44px;height:46px;min-height:46px;padding:8px}
 .topbar .tags-button{width:auto;min-width:66px;height:46px;min-height:46px;padding:0 8px;gap:5px;font-size:.76rem}
 .topbar .avatar:not(.guest-login){width:56px;min-width:56px;height:56px;padding:3px;border-radius:16px}
 .topbar .avatar:not(.guest-login) .user-avatar{width:48px;height:48px;border-radius:13px}
 .topbar .language-menu{top:54px}
}
@media(max-width:400px){
 .topbar .brand-home .main-wordmark{font-size:clamp(.82rem,3.8vw,1rem)}
 .topbar .topbar-actions{gap:4px}
 .topbar .tags-button{min-width:62px;padding-inline:6px;gap:4px;font-size:.72rem}
 .topbar .avatar:not(.guest-login){width:52px;min-width:52px;height:52px}
 .topbar .avatar:not(.guest-login) .user-avatar{width:44px;height:44px}
}

@media(max-width:700px){
 .topbar .avatar.guest-login{display:flex;align-items:center;justify-content:center;flex:none;width:auto;min-width:62px;height:46px;min-height:46px;padding:0 8px;border-radius:12px;font-size:.74rem;line-height:1;white-space:nowrap;text-align:center}
 .topbar .avatar.guest-login::before{content:none;display:none}
}
@media(max-width:360px){
 .topbar .language-trigger{width:40px}
 .topbar .tags-button{min-width:52px}
 .topbar .tags-button .tag-symbol{display:none}
 .topbar .avatar.guest-login{min-width:56px;padding-inline:6px;font-size:.7rem}
}

/* Public text-only homepage works before client initialization and without JS. */
.public-discovery{max-width:1100px;margin:24px auto;padding:24px;color:#e5ddf5;line-height:1.6}
.public-discovery h2{font-size:clamp(24px,4vw,36px);line-height:1.2}
.public-discovery a{color:#b9dfff;text-underline-offset:3px}
.public-discovery .segment-nav{display:flex;flex-wrap:wrap;gap:10px 18px;margin:24px 0}
.public-discovery .public-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.public-discovery .public-grid a{display:flex;flex-direction:column;padding:16px;border:1px solid #59446f;border-radius:14px;overflow-wrap:anywhere;text-decoration:none}
.public-discovery .public-grid span,.public-discovery .public-grid small{font-size:13px;color:#bcb3cc}
.is-loading .public-discovery{visibility:hidden;pointer-events:none}
.public-discovery summary{cursor:pointer;font-weight:700;color:#cbb7ee}
.public-discovery:not([open]){padding-block:12px;margin-block:8px}

#ageGate .age-catalog-link{margin:8px 0;font-size:.84rem;text-align:center}
#ageGate .age-catalog-link a{color:#bcd8ff;text-underline-offset:3px}
#ageGate .age-catalog-heading{margin:0;color:#cbb7ee;font-size:.9rem;line-height:1.45;font-weight:750}
#ageGate .age-catalog-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 14px;margin:8px 0;font-size:.78rem;line-height:1.6}

/* Loading screen shares the established crystal lettering; masthead is unchanged. */
.splash-brand{width:auto;max-width:100%;padding:4px 10px;overflow:visible;line-height:1.2}
.splash-brand .main-wordmark{display:inline-block;margin:0;padding:3px 0;font-family:inherit;font-size:clamp(2rem,9vw,3.5rem);font-weight:950;letter-spacing:.015em;line-height:1.2;white-space:nowrap;color:transparent;filter:drop-shadow(0 0 12px #a16bf52b)}
.splash-brand .main-wordmark span{color:inherit}
.splash-mark.crystal-logo{animation:crystal-logo-float 4.8s ease-in-out infinite alternate;filter:none}
.splash-mark.crystal-logo::before{content:none}
.splash-mark.crystal-logo::after{inset:12%;background:radial-gradient(circle,#5bcaff22,#9258ff15 45%,transparent 70%);filter:blur(14px);animation:none}
.splash-mark.crystal-logo .splash-icon{animation:crystal-logo-arrive .75s ease-out both;filter:drop-shadow(0 0 12px #56cfff24)}
.crystal-logo .splash-mark-shine{-webkit-mask-image:url('./assets/tellyplay-crystal-play-v2.png');mask-image:url('./assets/tellyplay-crystal-play-v2.png');animation-duration:4.8s}
.crystal-sparkle{position:absolute;z-index:4;display:block;width:12px;height:12px;background:#eaffff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0;pointer-events:none;animation:crystal-logo-sparkle 3.8s ease-in-out infinite}
.sparkle-a{left:22%;top:18%;animation-delay:.2s}.sparkle-b{right:17%;top:42%;animation-delay:1.4s}.sparkle-c{left:21%;bottom:17%;width:9px;height:9px;animation-delay:2.5s}
@keyframes crystal-logo-sparkle{0%,35%,100%{opacity:0;transform:scale(.4)}48%,58%{opacity:.95;transform:scale(1)}70%{opacity:0;transform:scale(.5)}}
@keyframes crystal-logo-float{from{transform:translateY(0)}to{transform:translateY(-5px)}}
@keyframes crystal-logo-arrive{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.splash-mark.crystal-logo{width:144px;margin-bottom:14px}.splash-brand{width:auto;max-width:calc(100vw - 32px)}}
@media(min-width:601px){.splash-mark.crystal-logo{width:186px}.splash-brand{justify-self:start}.splash-brand .main-wordmark{font-size:clamp(2.5rem,5.6vw,3.75rem)}}
@media(prefers-reduced-motion:reduce){.splash-brand .main-wordmark,.splash-brand .main-wordmark::after,.splash-mark.crystal-logo,.splash-mark.crystal-logo .splash-icon,.crystal-sparkle{animation:none}.crystal-sparkle{opacity:.65}.crystal-logo .splash-mark-shine{display:none}}

/* One reserved layout and one arrival for the entire loading scene. */
#splash .splash-content{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"icon" "brand" "caption" "progress" "meta";place-items:center;align-content:center;width:min(92vw,420px);padding:20px 16px;gap:12px;animation:tp-splash-scene-in .22s ease-out both}
#splash .splash-mark{grid-area:icon;margin:0 0 4px;width:136px}
#splash .splash-brand{display:flex;align-items:center;justify-content:center;font-size:0;line-height:1;grid-area:brand;justify-self:center;max-width:100%;width:100%;padding:0;margin:0;text-align:center}
#splash .splash-brand .main-wordmark{display:inline-block;margin:0;padding:3px 0;font-size:clamp(1.95rem,9.5vw,3.7rem);line-height:1.2;letter-spacing:.015em}
#splash .splash-brand .main-wordmark>span{background:none;animation:none;color:inherit;text-shadow:none}
#splash .splash-content>p{grid-area:caption;display:block;justify-self:center;width:100%;max-width:100%;margin:0;opacity:1;transform:none;animation:none;text-align:center;white-space:normal;line-height:1.5;font-size:.74rem;letter-spacing:.1em}
#splash .splash-content>p::before,#splash .splash-content>p::after{content:none}
#splash .splash-progress{grid-area:progress;justify-self:center;width:min(100%,320px);margin:4px 0 0;height:8px;opacity:1;transform:none;animation:none}
#splash .splash-meta{grid-area:meta;display:flex;align-items:center;justify-content:center;justify-self:center;width:100%;min-height:24px;margin:0;gap:8px;opacity:1;transform:none;animation:none;text-align:center}
#splash .splash-mark .splash-icon{opacity:1;transform:none;animation:none}
@keyframes tp-splash-scene-in{from{opacity:0}to{opacity:1}}
@media(min-width:601px){
 #splash .splash-content{width:min(92vw,820px);padding:24px;grid-template-columns:170px minmax(0,1fr);grid-template-areas:"icon brand" "icon caption" "icon progress" "icon meta";column-gap:36px;row-gap:13px}
 #splash .splash-mark{width:170px;margin:0}
 #splash .splash-brand .main-wordmark{font-size:clamp(2.2rem,4.9vw,3.7rem)}
 #splash .splash-content>p{font-size:.8rem}
 #splash .splash-progress{width:min(100%,360px);margin-top:3px}
}
@media(prefers-reduced-motion:reduce){#splash .splash-content{animation:none;opacity:1}}

/* Unified Play wordmark. All decorative motion uses transforms or opacity. */
#splash{background:radial-gradient(ellipse at center,#16233f 0,#0a1424 48%,#070b13 86%)}
#splash .splash-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:min(90vw,1100px);padding:40px 16px;box-sizing:border-box;animation:none}
#splash .tp-loading-brand{display:flex;align-items:center;justify-content:center;gap:30px;max-width:100%;position:relative}
#splash .tp-loading-play{position:relative;flex:none;width:102px;height:102px;border-radius:28px;border:1px solid #c6c3f040;background:linear-gradient(145deg,#c8b5ef20,#8cd7e90c);box-shadow:0 0 45px #9277dc22;display:grid;place-items:center;isolation:isolate;animation:tp-play-breathe 4s ease-in-out infinite}
#splash .tp-loading-play i{width:0;height:0;border-top:24px solid transparent;border-bottom:24px solid transparent;border-left:38px solid #d0c2f4;margin-left:8px}
#splash .tp-loading-play:before,#splash .tp-loading-play:after{content:"";position:absolute;inset:-14px;border:1px solid #bca9f342;border-radius:50%;transform:rotate(-30deg) scaleY(.58);animation:tp-play-orbit 7s linear infinite;pointer-events:none}
#splash .tp-loading-play:after{inset:-25px;border-color:#94dbed38;animation-direction:reverse;animation-duration:11s}
#splash .splash-brand{width:auto;max-width:100%;padding:0;margin:0;flex:none;display:flex;justify-content:center;align-items:center;line-height:1;font-size:0;text-shadow:none}
#splash .splash-brand .main-wordmark{font-family:Arial,Helvetica,sans-serif;font-size:clamp(64px,5.8vw,104px);font-weight:950;letter-spacing:-.025em;line-height:1.15;padding:5px 0;margin:0;background:linear-gradient(105deg,#d9d3f5 12%,#f9f6ff 35%,#c3b7ef 54%,#a7d5ed 78%,#d9d3f5 95%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;filter:none;animation:tp-loading-sheen 6s ease-in-out infinite}
#splash .splash-brand .main-wordmark:after{content:none}
#splash .splash-content>p{margin:0;width:100%;font-size:15px;line-height:1.6;font-weight:650;letter-spacing:.14em;text-align:center;color:#d0d0e9;opacity:1;transform:none;animation:none}
#splash .splash-content>p:before,#splash .splash-content>p:after{content:none}
#splash .splash-progress{width:min(68vw,480px);height:6px;padding:0;border:0;margin:4px 0 0;background:#ced3ff18;box-shadow:none;border-radius:10px;overflow:hidden;opacity:1;transform:none;animation:none}
#splash .splash-progress i{width:38%;background:linear-gradient(90deg,#b6a1ee,#a2e5ef);box-shadow:0 0 14px #9fd7ef60;animation:tp-loading-slide 2.6s ease-in-out infinite alternate}
#splash .splash-progress i:after{content:none}
#splash .splash-meta{width:100%;min-height:24px;margin:0;display:flex;justify-content:center;align-items:center;gap:12px;font-size:12px;line-height:1.5;letter-spacing:.06em;color:#b4c2d9;opacity:1;transform:none;animation:none}
#splash .splash-meta .splash-age{height:auto;min-width:0;border:0;background:none;color:#c9b4ed;font-size:11px}
#splash .splash-meta>span:before{content:none}
#splash:before{width:min(115vw,1500px);height:min(65vw,740px);background:linear-gradient(110deg,#15264055,#5136a95c 42%,#12627c4d 80%,#12203844);box-shadow:0 0 100px #3048ab20,inset 0 0 70px #1a244040;filter:none;animation:tp-loading-planet 13s ease-in-out infinite alternate}
#splash:after{width:min(82vw,1120px);filter:none;opacity:.65;animation:splash-field-turn 24s linear infinite}
#splash .splash-glow{background:radial-gradient(ellipse at center,#44429115,transparent 68%);animation:none;opacity:1}
#splash .tp-loading-stars{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#splash .tp-loading-stars>i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#bac9ec;opacity:0;animation:tp-star-twinkle var(--duration) ease-in-out var(--delay) infinite}
#splash .tp-loading-stars>i.near{border-radius:0;background:linear-gradient(#e4d8ff,#a9e1f4);clip-path:polygon(50% 0,59% 40%,100% 50%,59% 59%,50% 100%,41% 59%,0 50%,41% 40%)}
#splash .splash-progress.has-retry{width:auto;height:auto;overflow:visible;background:none}
@keyframes tp-loading-sheen{0%,20%{background-position:100% 0}75%,100%{background-position:0 0}}
@keyframes tp-play-breathe{50%{transform:translateY(-3px)}}
@keyframes tp-play-orbit{to{transform:rotate(330deg) scaleY(.58)}}
@keyframes tp-loading-planet{from{transform:rotate(-13deg) scale(1)}to{transform:rotate(-7deg) scale(1.05)}}
@keyframes tp-loading-slide{from{transform:translateX(-85%)}to{transform:translateX(255%)}}
@keyframes tp-star-twinkle{0%,18%,80%,100%{opacity:0;transform:scale(.65)}38%,53%{opacity:.72;transform:scale(1)}}
@media(max-width:900px){#splash .tp-loading-brand{gap:22px}#splash .tp-loading-play{width:76px;height:76px;border-radius:22px}#splash .tp-loading-play i{border-top-width:18px;border-bottom-width:18px;border-left-width:29px}#splash .splash-brand .main-wordmark{font-size:clamp(40px,7.5vw,64px)}}
@media(max-width:600px){#splash .splash-content{width:100%;padding:36px 22px;gap:23px}#splash .tp-loading-brand{gap:14px}#splash .tp-loading-play{width:48px;height:48px;border-radius:15px}#splash .tp-loading-play i{border-top-width:12px;border-bottom-width:12px;border-left-width:19px;margin-left:5px}#splash .tp-loading-play:before{inset:-7px}#splash .tp-loading-play:after{inset:-13px}#splash .splash-brand .main-wordmark{font-size:clamp(27px,7.3vw,44px)}#splash .splash-content>p{font-size:11px;letter-spacing:.07em}#splash .splash-progress{width:min(82vw,350px)}#splash .splash-meta{font-size:11px}#splash:before{width:150vw;height:100vw}#splash:after{width:125vw}#splash .tp-loading-stars>i:nth-child(n+19){display:none}}
@media(max-height:480px){#splash .splash-content{gap:14px;padding-block:20px}#splash .tp-loading-play{width:58px;height:58px}#splash .splash-brand .main-wordmark{font-size:44px}}
@media(prefers-reduced-motion:reduce){#splash:before,#splash:after,#splash .tp-loading-play,#splash .tp-loading-play:before,#splash .tp-loading-play:after,#splash .splash-brand .main-wordmark,#splash .splash-progress i,#splash .tp-loading-stars>i{animation:none!important}#splash .tp-loading-stars>i{opacity:.45}#splash .splash-progress i{width:65%;transform:none}}

/* Keep the background visibly moving even during a short first load. */
#splash:before{animation:tp-background-drift 8s ease-in-out -2s infinite alternate}
#splash:after{opacity:.9;animation:tp-background-spin 13s linear -3s infinite}
#splash .splash-glow:before{opacity:.24;animation-duration:6s}
#splash .splash-glow:after{border-color:#9bbef72b;animation:tp-background-ring 4s ease-in-out -1s infinite alternate}
#splash .tp-loading-stars>i{animation-name:tp-visible-star;animation-timing-function:ease-in-out}
#splash .tp-loading-stars>i.near{filter:drop-shadow(0 0 3px #b9dafa66)}
@keyframes tp-background-drift{from{transform:translate3d(-1.2%,1%,0) rotate(-15deg) scale(.98)}to{transform:translate3d(1.2%,-1%,0) rotate(-3deg) scale(1.06)}}
@keyframes tp-background-spin{from{transform:rotate(-25deg)}to{transform:rotate(335deg)}}
@keyframes tp-background-ring{from{transform:translate(-50%,-50%) scale(.94);opacity:.45}to{transform:translate(-50%,-50%) scale(1.07);opacity:.8}}
@keyframes tp-visible-star{0%,10%,85%,100%{opacity:0;transform:scale(.6)}30%,52%{opacity:.9;transform:scale(1.05)}68%{opacity:.24;transform:scale(.8)}}
@media(prefers-reduced-motion:reduce){#splash:before,#splash:after,#splash .splash-glow:before,#splash .splash-glow:after,#splash .tp-loading-stars>i{animation:none!important}#splash .tp-loading-stars>i{opacity:.45}}

/* A transparent full-photo target preserves tap and keyboard access. */
@media(max-width:600px),(hover:none) and (pointer:coarse){
 .profile-card .profile-avatar-change{inset:0;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:none;box-shadow:none;opacity:1;transform:none;backdrop-filter:none;-webkit-backdrop-filter:none}
 .profile-card .profile-avatar-change>span,.profile-card .profile-avatar-change>b{display:none}
 .profile-card .profile-avatar-editor:hover>.user-avatar{filter:none}
 .profile-card .profile-avatar-change:focus-visible{outline:2px solid #8ce8ff;outline-offset:3px;background:none}
}

/* Shared artwork coordinates keep the eye registered at every banner size. */
.masthead-art .masthead-wink-canvas{position:absolute;inset:0;width:100%;height:100%;display:none;object-fit:cover;object-position:left 36%;transform-origin:20% 38%;pointer-events:none}
.masthead-art.has-wink .masthead-wink-canvas{display:block;animation:masthead-wink-ambient 9s ease-in-out infinite alternate}
.masthead-art.has-wink:before{z-index:1;background-image:linear-gradient(90deg,rgba(8,10,25,.08),rgba(8,10,25,.2) 26%,rgba(8,10,25,.78) 45%,rgba(8,10,25,.9) 78%);animation:none;transform:none;will-change:auto}
@keyframes masthead-wink-ambient{to{transform:scale(1.004) translateY(-.3px)}}
@media(prefers-reduced-motion:reduce){.masthead-art.has-wink .masthead-wink-canvas{animation:none}}

/* Pan the entire registered image, including its animated eye. */
.masthead-art.has-wink .masthead-wink-canvas{transform:none;animation:masthead-face-pan 12s ease-in-out -3s infinite alternate}
@keyframes masthead-face-pan{from{object-position:left 12%}to{object-position:left 62%}}
@media(max-width:700px){.masthead-art.has-wink .masthead-wink-canvas{animation-duration:10s}}
@media(prefers-reduced-motion:reduce){.masthead-art.has-wink .masthead-wink-canvas{animation:none;object-position:left 36%;transform:none}}

/* Half the travel around the same center; twice the cycle duration. */
.masthead-art.has-wink .masthead-wink-canvas{animation-name:masthead-face-pan-soft;animation-duration:24s;animation-delay:-6s}
@keyframes masthead-face-pan-soft{from{object-position:left 24.5%}to{object-position:left 49.5%}}
@media(max-width:700px){.masthead-art.has-wink .masthead-wink-canvas{animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.masthead-art.has-wink .masthead-wink-canvas{animation:none;object-position:left 36%}}

/* Move an uncropped texture on the compositor, never animate object-position. */
.masthead-art.has-wink .masthead-wink-canvas{inset:0 auto auto 0;width:var(--masthead-canvas-width,100%);height:var(--masthead-canvas-height,100%);object-fit:fill;object-position:0 0;backface-visibility:hidden;will-change:transform;animation:masthead-face-glide 24s ease-in-out -6s infinite alternate}
@keyframes masthead-face-glide{from{transform:translate3d(0,var(--masthead-pan-start,0px),0)}to{transform:translate3d(0,var(--masthead-pan-end,0px),0)}}
@media(max-width:700px){.masthead-art.has-wink .masthead-wink-canvas{animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.masthead-art.has-wink .masthead-wink-canvas{animation:none;will-change:auto;transform:translate3d(0,var(--masthead-pan-rest,0px),0)}}
