/* Sovereign • shared presentation contract. No gameplay geometry or audio ownership. */
:root[data-ts-premium]{
 --ts-ink:#090604;--ts-depth:#120c08;--ts-surface:#1b120c;--ts-raised:#281a10;--ts-interactive:#352216;
 --ts-line:#3a291c;--ts-line-strong:#8d744c;--ts-text:#f3ead8;--ts-secondary:#c4b49b;--ts-muted:#907e66;
 --ts-gold:#d8b36b;--ts-gold-hi:#f3dfad;--ts-crystal:#d8b36b;--ts-danger:#e69094;--ts-success:#92cfb4;--ts-warning:#eac37e;
 --ts-t1:#9daab3;--ts-t2:#85cbb4;--ts-t3:#90bfff;--ts-t4:#dec186;--ts-t5:#dba9ef;
 --ts-accent:var(--ts-gold);--ts-font:"Trebuchet MS","Avenir Next",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 --ts-display:"Rockwell","Avenir Next","Trebuchet MS",ui-sans-serif,system-ui,sans-serif;--ts-space-1:4px;--ts-space-2:8px;--ts-space-3:12px;--ts-space-4:16px;--ts-space-6:24px;--ts-space-8:32px;--ts-space-12:48px;
 --ts-radius-sm:4px;--ts-radius:8px;--ts-radius-panel:12px;--ts-radius-modal:16px;
 --ts-shadow:0 12px 32px #0005;--ts-shadow-float:0 24px 64px #0008;--ts-shadow-modal:0 36px 100px #000b;
 --ts-fast:140ms;--ts-standard:280ms;--ts-major:440ms;--ts-out:cubic-bezier(.16,1,.3,1);--ts-in:cubic-bezier(.7,0,.84,0);--ts-spring:cubic-bezier(.2,.9,.24,1.12);
 --ts-z-nav:7800;--ts-z-modal:12000;
 /* Bridge existing primitives to the new palette. */
 --tsf-gold:var(--ts-gold);--tsf-gold-hi:var(--ts-gold-hi);--tsf-ink:var(--ts-ink);--tsf-panel:var(--ts-depth);--tsf-panel-raised:var(--ts-raised);--tsf-line:var(--ts-line);--tsf-line-strong:var(--ts-line-strong);--tsf-text:var(--ts-text);--tsf-muted:var(--ts-muted);--tsf-radius-sm:4px;--tsf-radius-md:8px;--tsf-radius-lg:12px;
 color-scheme:dark;scrollbar-color:var(--ts-line-strong) var(--ts-ink);
}
html[data-ts-premium][data-ts-theme=light]{color-scheme:dark}
html[data-ts-premium] body{color:var(--ts-text);font-family:var(--ts-font);text-rendering:optimizeLegibility}
html[data-ts-premium] body:not(.duel-interface){background-color:var(--ts-ink)}
html[data-ts-premium] :is(button,input,select,textarea){font:inherit}
html[data-ts-premium] :is(button,a){-webkit-tap-highlight-color:transparent}
html[data-ts-premium] :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--ts-crystal);outline-offset:4px}
html[data-ts-premium] :is(.ts-currency,.stat-tile,.deck-counter,.rank-pos,.bp-level-medal,.quest-progress,.challenge-progress){font-variant-numeric:tabular-nums lining-nums}
html[data-ts-premium] :is(.live-kicker,.deck-kicker,.bp-kicker,.menu-kicker,.home-eyebrow){font:650 11px/1.5 var(--ts-font);letter-spacing:.2em;color:var(--ts-accent)}
html[data-ts-premium] :is(.live-hero,.profile-v2-heading,.events-intro,.ranking-head,.launch-heading,.deck-home-panel) h1{font:400 clamp(32px,4vw,58px)/1.04 var(--ts-display);letter-spacing:-.035em;color:var(--ts-text);text-wrap:balance;margin:12px 0 16px}
html[data-ts-premium] :is(.live-card,.event-card,.challenge-card,.quest,.dynamic-store-product,.cosmetic-product,.profile-cosmetic-tile,.series-row,.stat-tile,.vip-panel,.bp-progress-card){border:1px solid var(--ts-line);border-radius:var(--ts-radius-panel);background:linear-gradient(135deg,#ffffff03,transparent 55%),var(--ts-depth);box-shadow:var(--ts-shadow);color:var(--ts-text)}
html[data-ts-premium] :is(.live-card,.event-card,.dynamic-store-product,.cosmetic-product) :is(p,small){color:var(--ts-secondary)}
html[data-ts-premium] :is(.live-btn,.deck-btn,.bp-claim,.btn-save,.home-btn,.match-reward-close,.options-actions button,.collection-home-choices button,.deck-home-actions button){position:relative;min-height:42px;padding:11px 20px;border:1px solid var(--ts-line-strong);border-radius:var(--ts-radius-sm);background:var(--ts-surface);color:var(--ts-gold-hi);font:650 12px/1.3 var(--ts-font);letter-spacing:.06em;box-shadow:inset 0 1px #ffffff08;transition:background var(--ts-fast),color var(--ts-fast),border-color var(--ts-fast),transform var(--ts-fast) var(--ts-out);cursor:pointer}
html[data-ts-premium] :is(.live-btn.primary,.deck-btn.primary,.bp-claim,.btn-save,.home-btn-primary){background:linear-gradient(120deg,var(--ts-gold-hi),var(--ts-gold));border-color:var(--ts-gold);color:#19222a;text-shadow:none;box-shadow:0 6px 20px #0004,inset 0 1px #fff6}
html[data-ts-premium] :is(.live-btn.jade,.live-btn.abyss){background:var(--ts-surface);color:var(--ts-success);border-color:#609d89}
html[data-ts-premium] :is(.live-btn.secondary,.deck-btn.secondary){background:transparent;color:var(--ts-secondary);border-color:var(--ts-line)}
html[data-ts-premium] :is(.live-btn,.deck-btn,.bp-claim,.btn-save,.home-btn,.match-reward-close):hover:not(:disabled){transform:translateY(-2px);border-color:var(--ts-gold-hi);filter:brightness(1.08)}
html[data-ts-premium] :is(.live-btn,.deck-btn,.bp-claim,.btn-save,.home-btn):active:not(:disabled){transform:translateY(1px) scale(.985)}
html[data-ts-premium] :is(button:disabled,[aria-disabled=true]){cursor:default;filter:none;opacity:.48}
html[data-ts-premium] :is(.cosmetic-owned-button,.profile-cosmetic-tile.selected){opacity:1}
html[data-ts-premium] :is(.deck-search input,.deck-title-fields input,.deck-library-toolbar select,.profile-wardrobe-search input,.option-row select,.friends-search input,.admin-main input,.admin-main select,.admin-main textarea){min-height:40px;border:1px solid var(--ts-line);border-radius:var(--ts-radius-sm);background:var(--ts-ink);color:var(--ts-text);padding:10px 12px;box-shadow:inset 0 2px 4px #0002}
html[data-ts-premium] input::placeholder{color:var(--ts-muted)}
html[data-ts-premium] :is(input[type=range],input[type=checkbox],input[type=radio]){accent-color:var(--ts-gold)}
html[data-ts-premium] :is(.shop-tabs,.quest-tabs,.profile-subtabs,.ranking-tabs,.profile-wardrobe-filters){display:flex;gap:4px;max-width:100%;overflow-x:auto;scrollbar-width:thin;border-bottom:1px solid var(--ts-line);padding:0 0 8px;background:transparent;border-radius:0;box-shadow:none}
html[data-ts-premium] :is(.shop-tabs,.quest-tabs,.profile-subtabs,.ranking-tabs,.profile-wardrobe-filters)>:is(button,a){flex-shrink:0;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ts-secondary);padding:12px 18px;font:600 12px/1.25 var(--ts-font);box-shadow:none;transition:background var(--ts-fast),color var(--ts-fast)}
html[data-ts-premium] :is(.shop-tabs,.quest-tabs,.profile-subtabs,.ranking-tabs,.profile-wardrobe-filters)>:is(.is-active,.active,[aria-selected=true]){color:var(--ts-gold-hi);background:var(--ts-raised);border-color:var(--ts-line);box-shadow:inset 0 -2px var(--ts-accent)}
html[data-ts-premium] :is(.shop-tabs,.quest-tabs,.profile-subtabs,.ranking-tabs,.profile-wardrobe-filters)>:hover{background:var(--ts-surface);color:var(--ts-text)}
html[data-ts-premium] :is(.options-panel,.friends-panel,.resource-pack-panel,.purchase-confirmation-dialog,.collection-game-popup-dialog,.collection-prismatic-dialog,.recommended-dialog,.booster-rules-dialog,.paypal-panel){max-height:calc(100dvh - 32px);overflow-y:auto;border:1px solid var(--ts-line-strong);border-radius:var(--ts-radius-modal);background:linear-gradient(150deg,#d7bd8510,transparent 38%),var(--ts-depth);color:var(--ts-text);box-shadow:var(--ts-shadow-modal);padding:clamp(20px,3vw,40px)}
html[data-ts-premium] :is(.live-message,.deck-message,.notification){border:1px solid var(--ts-line-strong);border-left:3px solid var(--ts-crystal);border-radius:var(--ts-radius);background:var(--ts-raised);color:var(--ts-text);box-shadow:var(--ts-shadow-float)}
html[data-ts-premium] :is(.live-message.error,.deck-message.error,.purchase-confirmation-error){border-color:var(--ts-danger);color:var(--ts-danger)}
html[data-ts-premium] :is(.live-pill,.live-badge,.event-kind,.dynamic-store-badge){border:1px solid var(--ts-line);border-radius:4px;background:var(--ts-surface);color:var(--ts-accent);letter-spacing:.05em}
html[data-ts-premium] :is(.progress-track,.bp-progress-track){height:5px;border:0;border-radius:2px;background:var(--ts-line);overflow:hidden}
html[data-ts-premium] :is(.progress-track,.bp-progress-track)>i{display:block;height:100%;background:linear-gradient(90deg,#8c7955,var(--ts-gold-hi));border-radius:inherit}
html[data-ts-premium] .series-holo-track>i{background:linear-gradient(90deg,#387fbb,var(--ts-crystal))}
html[data-ts-premium] :is(.deck-no-results,.challenge-empty,.events-empty,.ranking-empty,.profile-wardrobe-empty,.profile-series-empty,.shop-store-empty,.bp-empty,.launch-empty,.deck-home-empty){padding:clamp(24px,5vw,64px);grid-column:1/-1;border:1px solid var(--ts-line);border-radius:var(--ts-radius-panel);background:var(--ts-depth);color:var(--ts-secondary);text-align:center;line-height:1.7}
html[data-ts-premium] :is(.deck-no-results,.challenge-empty,.events-empty,.profile-wardrobe-empty)::before{content:"◇";display:block;font:36px/1.5 var(--ts-display);color:var(--ts-accent);margin-bottom:12px}
/* One navigation rail, fixed dimensions before the first paint. The few important
   declarations below supersede historical !important layout patches. */
html[data-ts-premium] body.has-game-navigation{--game-nav-size:76px}
html[data-ts-premium] .game-navigation{height:var(--game-nav-size)!important;padding:8px 20px!important;gap:16px!important;background:linear-gradient(180deg,#1a110cfa,#090604fc)!important;border-bottom:1px solid var(--ts-line-strong)!important;box-shadow:0 12px 36px #0004!important;backdrop-filter:none!important;view-transition-name:none}
html[data-ts-premium] .game-navigation-brand{width:44px;height:44px;flex:0 0 44px;border-radius:8px;border-color:var(--ts-line-strong);background:var(--ts-surface)}
html[data-ts-premium] .game-navigation-links{position:relative;justify-content:flex-start!important;overflow-x:auto!important;overflow-y:hidden;scrollbar-width:none;gap:4px!important;overscroll-behavior-inline:contain;scroll-padding:12px}
html[data-ts-premium] .game-navigation-links::-webkit-scrollbar{display:none}
html[data-ts-premium] .game-navigation-link{height:56px!important;flex:1 0 auto;min-width:68px!important;padding:8px 10px!important;flex-direction:column;gap:5px!important;font:600 10px/1 var(--ts-font)!important;letter-spacing:.035em!important;border-radius:4px!important;border-color:transparent!important;background:transparent!important;color:#aebac4!important;box-shadow:none!important;transform:none!important}
html[data-ts-premium] .game-navigation-icon img{width:22px!important;height:22px!important;object-fit:contain;filter:none}
html[data-ts-premium] .game-navigation-label{display:block!important}
html[data-ts-premium] .game-navigation-link:is(:hover,.is-active){color:#f3e2ba!important;background:#d7bd850d!important}
html[data-ts-premium] .game-navigation-link.is-active{box-shadow:inset 0 -2px var(--ts-gold)!important}
html[data-ts-premium] .game-navigation-wallet{border:0!important;border-radius:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;min-width:86px;color:#f3e2ba}
html[data-ts-premium] .ts-nav-cursor{position:absolute;bottom:0;left:0;height:2px;background:var(--ts-crystal);pointer-events:none;opacity:0;transition:transform 220ms var(--ts-out),width 220ms var(--ts-out),opacity 140ms}
/***** Shared motion: local UI only. PERF FIX5 disables cross-document root snapshots. *****/
/* Cross-document View Transitions intentionally disabled: normal navigation paints immediately. */
::view-transition-old(root){animation:ts-space-out 180ms cubic-bezier(.7,0,.84,0) both}
::view-transition-new(root){animation:ts-space-in 340ms cubic-bezier(.16,1,.3,1) both}
::view-transition-old(sovereign-navigation){animation:none;opacity:0}
::view-transition-new(sovereign-navigation){animation:none}
::view-transition-group(sovereign-navigation){z-index:1;animation-duration:0s}
@keyframes ts-space-out{to{opacity:0;transform:translateX(-22px) scale(.993)}}
@keyframes ts-space-in{from{opacity:0;transform:translateX(38px) scale(1.006);clip-path:inset(0 0 0 3%)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes ts-panel-enter{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes ts-streak{0%{opacity:0;transform:translateX(-45%) scaleX(.4)}25%{opacity:.65}100%{opacity:0;transform:translateX(100%) scaleX(1.3)}}
@keyframes ts-ambient-drift{from{transform:translate3d(-2%,1%,0);opacity:.38}to{transform:translate3d(2%,-2%,0);opacity:.65}}
html[data-ts-premium] .ts-space-streak{display:none!important}
html[data-ts-premium] .ts-atmosphere{position:fixed;inset:76px 0 0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 85% 8%,#8b552314,transparent 48%),linear-gradient(120deg,transparent 45%,#d7bd8505 45.1%,transparent 45.3%)}
html[data-ts-premium] .ts-atmosphere::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 65% 30%,#7bd5e514,transparent 40%);animation:none}
html[data-ts-premium] :is(.shop-tab-panel,.profile-tab-panel,.quest-panel).is-active{animation:ts-panel-enter 280ms var(--ts-out) both}
html[data-ts-premium] :is(.options-overlay,.friends-overlay,.purchase-confirmation,.collection-prismatic-modal):not([hidden])>:first-child{animation:ts-panel-enter 280ms var(--ts-out) both}
@media(max-width:1100px){html[data-ts-premium] .game-navigation{padding-inline:12px!important;gap:8px!important}html[data-ts-premium] .game-navigation-brand{display:none}html[data-ts-premium] .game-navigation-link{flex-grow:0}}
@media(max-width:600px){html[data-ts-premium] .game-navigation-wallet{min-width:60px;padding:0 4px;font-size:11px}html[data-ts-premium] .game-navigation-wallet img{width:19px}html[data-ts-premium] .game-navigation-link{min-width:70px!important}html[data-ts-premium] :is(.shop-tabs,.quest-tabs,.profile-subtabs)>:is(button,a){padding:12px}}
html[data-ts-premium][data-ts-motion=reduced] :is(.ts-atmosphere::after,.ts-space-streak,.shop-tab-panel,.profile-tab-panel,.quest-panel){animation:none}
html[data-ts-premium][data-ts-motion=reduced] .ts-space-streak{display:none}
html[data-ts-premium][data-ts-motion=reduced]::view-transition-old(root),html[data-ts-premium][data-ts-motion=reduced]::view-transition-new(root){animation:none}
html[data-ts-premium][data-ts-motion=reduced] :is(.ts-nav-cursor,.live-btn,.deck-btn,.game-navigation-link){transition:none}
html[data-ts-premium][data-ts-motion=standard] .ts-atmosphere::after,html[data-ts-premium][data-ts-admin] .ts-atmosphere::after{animation:none}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}html[data-ts-premium] *,html[data-ts-premium] *::before,html[data-ts-premium] *::after{scroll-behavior:auto!important}html[data-ts-premium] :is(.ts-atmosphere::after,.ts-space-streak,.shop-tab-panel,.profile-tab-panel,.quest-panel){animation:none}html[data-ts-premium] .ts-space-streak{display:none}}
/* Explicit compatibility with the fixed 64px legacy body offset. */
html[data-ts-premium] body.has-game-navigation{padding-top:var(--game-nav-size)!important}
html[data-ts-premium] .game-navigation-wallet{height:42px;border-radius:0;background:transparent}
html[data-ts-premium] .game-navigation-link::before{display:none}
html[data-ts-premium] body{--tsv2-void:var(--ts-ink);--tsv2-ink:var(--ts-depth);--tsv2-panel:var(--ts-surface);--tsv2-gold:var(--ts-gold);--tsv2-ivory:var(--ts-text);--tsv2-muted:var(--ts-muted);--tsv2-line:var(--ts-line)}
/* Internal reduced mode also stops the new modal and tactile CSS motions. */
html[data-ts-premium][data-ts-motion=reduced] :is(.options-overlay,.friends-overlay,.purchase-confirmation,.collection-prismatic-modal):not([hidden])>:first-child{animation:none}
html[data-ts-premium][data-ts-motion=reduced] :is(.event-card,.dynamic-store-art img,.profile-cosmetic-tile,.hall-duel,.hall-core-action,.collection-home-choices button){transition:none}
html[data-ts-premium][data-ts-motion=reduced] :is(.event-card,.dynamic-store-art img,.profile-cosmetic-tile,.hall-duel,.hall-core-action,.collection-home-choices button):hover{transform:none}
@media(prefers-reduced-motion:reduce){html[data-ts-premium] :is(.options-overlay,.friends-overlay,.purchase-confirmation,.collection-prismatic-modal):not([hidden])>:first-child{animation:none}html[data-ts-premium] :is(.event-card,.dynamic-store-art img,.profile-cosmetic-tile,.hall-duel,.hall-core-action,.collection-home-choices button){transition:none}html[data-ts-premium] :is(.event-card,.dynamic-store-art img,.profile-cosmetic-tile,.hall-duel,.hall-core-action,.collection-home-choices button):hover{transform:none}}
@media(orientation:landscape) and (max-height:620px) and (pointer:coarse){html[data-ts-premium] body.has-game-navigation{padding-top:0!important}html[data-ts-premium] .ts-atmosphere{display:none}}

/* SOVEREIGN PERF R6 — hide only the dormant page surfaces, never the game frame
   or T5 overlays hosted directly by the fullscreen parent. */
body.ts-fullscreen-shell-host > :is(.menu-scene,.game-navigation,.ts-atmosphere,.ts-ambient-hero-bg,.deck-shell,.live-shell,.collection-home,.deck-home){display:none!important}
/* Only ambient loops are paused. Finite cinematic timelines remain engine-owned. */
html.ts-presentation-hidden :is(.braise-duel,.lueur-feu,.action-ready-ring,.status-vfx-aura),
html.ts-presentation-hidden .deck-card-tile::before,
html.ts-presentation-hidden .deck-card-image::before,
html.ts-presentation-hidden .deck-card-image::after{animation-play-state:paused!important}
/* Old translucent panels do not need to resample a moving video background. */
html[data-ts-premium] :is(.deck-panel,.collection-panel,.collection-layout>section){backdrop-filter:none;-webkit-backdrop-filter:none}
/* R7 effect tiers only affect decorative loops, not finite game timelines. */
html[data-ts-quality="standard"] :is(.braise-duel:nth-child(n+13),.lueur-feu){animation-play-state:paused!important}
html[data-ts-quality="performance"] :is(.braise-duel,.lueur-feu){display:none!important}
html[data-ts-quality="performance"] :is(.action-ready-ring,.status-vfx-aura){animation-play-state:paused!important}
html[data-ts-quality="performance"] :is(.options-overlay,.collection-game-popup,.friends-overlay){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* The animated aura already supplies the glow. Do not filter the complete
   target subtree again (art, status layers, text and animated pseudo-elements). */
html[data-ts-premium] .duel-interface .carte-unite.zone-depot-valide{
 filter:none!important;
 box-shadow:0 0 0 2px var(--ts-target-aura),0 0 18px var(--ts-target-aura)!important;
}
html[data-ts-premium] .duel-interface .carte-unite:is(.provocation-forcee,.zone-depot-valide,.zone-depot-survol).cible-valide-ennemie::after,
html[data-ts-premium] .duel-interface .carte-unite.provocation-forcee::after{filter:none}
