:root{--tcg-gold: #ffcc00;--tcg-gold-soft: #ffd54f;--tcg-orange: #e8940a;--tcg-line: #d48806;--tcg-black: #0a0a0a;--tcg-ink: #111111;--tcg-slot-empty: #4a4a4a;--tcg-text: #f5f5f5;--tcg-muted: #9a9a9a;--tcg-player-h: clamp(40px, 5.4vh, 68px);--tcg-between-matches: clamp(14px, 3vh, 44px);--tcg-footer-space: clamp(52px, 9vh, 96px);--tcg-level-count: 2;--tcg-match-border: 3px;--tcg-match-block-h: calc( var(--tcg-player-h) * 2 + var(--tcg-match-border) * 2 );--tcg-player-w: clamp( 160px, calc(70vw/max(var(--tcg-level-count), 2)) , 440px );--tcg-leader-w: clamp(60px, calc(var(--tcg-player-w) * .28), 128px);--tcg-match-gap: 0px;--tcg-col-gap: clamp(10px, 1.4vw, 32px);--tcg-connector-w: clamp(28px, 3.2vw, 48px);--tcg-next-w: var(--tcg-player-w);--tcg-title-size: clamp(18px, 3.2vh, 40px);--tcg-title-block: calc(var(--tcg-title-size) + clamp(18px, 2.8vh, 36px));--tcg-name-size: clamp(12px, calc(var(--tcg-player-w) * .048), 22px);--tcg-font: "Arial Black", "Helvetica Neue", Impact, sans-serif;--tcg-font-ui: "Segoe UI", "Helvetica Neue", Arial, sans-serif}.tcg-bracket{position:relative;width:100%;height:100%;min-height:0;max-height:100%;overflow:hidden;color:var(--tcg-text);font-family:var(--tcg-font-ui);background-color:#1a1a1a;background-image:var(--tcg-bg-image, none);background-size:cover;background-position:center bottom;background-repeat:no-repeat;padding:clamp(6px,1.2vh,16px) clamp(12px,2vw,40px) var(--tcg-footer-space);box-sizing:border-box;display:flex;flex-direction:column}.tcg-bracket:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000002e,#00000014 55%,#0000 82%);pointer-events:none}.tcg-bracket__inner{position:relative;z-index:1;flex:1;min-height:0;width:100%;max-width:1680px;margin:0 auto;display:flex;flex-direction:column}.tcg-badge-wrap{display:flex;justify-content:center;flex-shrink:0;margin-bottom:clamp(8px,1.6vh,18px)}.tcg-badge{display:inline-flex;align-items:center;justify-content:center;padding:clamp(4px,.6vh,7px) clamp(12px,1.2vw,22px);border-radius:999px;background:var(--tcg-gold);color:#111;font-family:var(--tcg-font);font-size:clamp(11px,1.2vw,15px);letter-spacing:.03em;text-transform:uppercase}.tcg-rounds{flex:1;min-height:0;display:flex;flex-direction:row;flex-wrap:nowrap;column-gap:var(--tcg-col-gap);align-items:center;justify-content:center;overflow:hidden;padding-block:clamp(4px,1vh,16px)}.tcg-round-block{display:flex;flex-direction:row;align-items:flex-start;gap:var(--tcg-col-gap);min-width:0;min-height:0}.tcg-round-title{margin:0 0 clamp(18px,2.8vh,36px);height:var(--tcg-title-size);color:var(--tcg-gold);font-family:var(--tcg-font);font-size:var(--tcg-title-size);line-height:1;letter-spacing:.01em;text-transform:uppercase;text-shadow:0 2px 0 rgba(0,0,0,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcg-round-col{display:flex;flex-direction:column;min-width:0;width:var(--tcg-player-w);flex-shrink:0}.tcg-match-list{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--tcg-between-matches);flex:none}.tcg-match-list--next{gap:0;margin-top:0}.tcg-match-list--next .tcg-next-slot{height:calc(2 * var(--tcg-match-block-h) + var(--tcg-between-matches));flex:none;display:flex;align-items:center;min-height:0}.tcg-match-list--next .tcg-next-slot+.tcg-next-slot{margin-top:0}.tcg-match{display:flex;flex-direction:column;gap:var(--tcg-match-gap);width:var(--tcg-player-w);border:var(--tcg-match-border) solid var(--tcg-orange);box-sizing:border-box;background:#000;overflow:hidden;flex-shrink:0}.tcg-match__row{position:relative;display:block}.tcg-win-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);z-index:3;border:0;border-radius:6px;padding:4px 8px;min-width:64px;background:#000000c7;color:var(--tcg-gold);font-family:var(--tcg-font-ui);font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}.tcg-win-btn:hover{background:#000000eb}.tcg-win-btn.is-active{background:var(--tcg-orange);color:#111}.tcg-player{position:relative;display:grid;grid-template-columns:1fr var(--tcg-leader-w);width:100%;height:var(--tcg-player-h);border:0;box-shadow:none;overflow:hidden;background:var(--tcg-slot-empty)}.tcg-player+.tcg-player,.tcg-match__row+.tcg-match__row .tcg-player{border-top:1px solid rgba(0,0,0,.45)}.tcg-player--empty .tcg-player__name{background-color:#5a5a5a;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='80' viewBox='0 0 200 80'%3E%3Cg fill='none' stroke='%23777777' stroke-width='1' opacity='0.45'%3E%3Cpath d='M10 50c30-28 60-28 90 0s60 28 90 0'/%3E%3Ccircle cx='48' cy='28' r='10'/%3E%3Cpath d='M120 18h40M140 10v20'/%3E%3C/g%3E%3C/svg%3E");background-size:cover;background-position:center}.tcg-player--empty .tcg-player__leader{background:#1c1c1c}.tcg-player--winner{outline:none;box-shadow:inset 0 0 0 3px var(--tcg-orange)}.tcg-player--loser{opacity:.42;filter:grayscale(.75)}.tcg-player__won{position:absolute;left:6px;top:50%;transform:translateY(-50%);z-index:2;padding:2px 5px;border-radius:3px;background:var(--tcg-orange);color:#111;font-family:var(--tcg-font-ui);font-size:9px;font-weight:800;letter-spacing:.04em}.tcg-player__name{position:relative;display:flex;align-items:center;justify-content:center;padding:0 clamp(8px,.8vw,14px);background-color:var(--tcg-gold);background-size:cover;background-position:left center;color:#111;font-family:var(--tcg-font);font-size:var(--tcg-name-size);letter-spacing:.01em;text-transform:uppercase;text-align:center;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:2px solid #111}.tcg-player__leader{position:relative;width:var(--tcg-leader-w);background:#111;overflow:hidden}.tcg-player__leader img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}.tcg-player__leader-empty{width:100%;height:100%;background:linear-gradient(180deg,#2a2a2a,#111)}.tcg-next-empty{width:var(--tcg-player-w);height:var(--tcg-player-h);display:grid;grid-template-columns:1fr clamp(72px,6vw,110px);border:2px solid #2a2a2a;background:#5a5a5a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='80' viewBox='0 0 240 80'%3E%3Cg fill='none' stroke='%237a7a7a' stroke-width='1' opacity='0.5'%3E%3Cpath d='M20 55c40-35 80-35 120 0s80 35 120 0'/%3E%3Ccircle cx='70' cy='30' r='12'/%3E%3Cpath d='M150 22h50M175 10v24'/%3E%3C/g%3E%3C/svg%3E") center/cover;position:relative;box-sizing:border-box}.tcg-next-empty__body{border-right:1px solid #333}.tcg-next-empty__tail{background:#1a1a1a;position:relative}.tcg-next-empty__tail:after{content:"";position:absolute;left:0;right:10px;top:50%;height:2px;background:#8a8a8a;transform:translateY(-50%)}.tcg-next-empty__tail:before{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;background:#8a8a8a;transform:translateY(-50%) rotate(45deg)}.tcg-next-filled{width:var(--tcg-player-w);display:flex;flex-direction:column;gap:0;border:var(--tcg-match-border) solid var(--tcg-orange);overflow:hidden;background:#000}.tcg-next-filled .tcg-player{width:100%}.tcg-connectors{position:relative;width:var(--tcg-connector-w);min-width:28px;max-width:52px;margin-top:var(--tcg-title-block);flex:none;flex-shrink:0;height:calc(var(--tcg-from-count, 4) * var(--tcg-match-block-h) + (var(--tcg-from-count, 4) - 1) * var(--tcg-between-matches));align-self:flex-start}.tcg-connector-svg{display:block;width:100%;height:100%;overflow:visible}.tcg-footer{display:none}@media(max-width:900px){.tcg-bracket{overflow:auto;height:auto;min-height:100%}.tcg-rounds{flex-direction:column;align-items:stretch}.tcg-round-block{flex-direction:column}.tcg-connectors{display:none}.tcg-round-col,.tcg-match,.tcg-next-empty,.tcg-next-filled{width:100%}.tcg-match-list{justify-content:flex-start}.tcg-match-list--next .tcg-next-slot{height:auto;min-height:var(--tcg-match-block-h);margin-bottom:12px}}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}body{background:#111;color:#f5f5f5;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}.client-shell{width:100%;height:100dvh;max-height:100dvh;overflow:hidden}.client-status{padding:24px;text-align:center;color:#ccc}.client-error{color:#ff8a80}
