*:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:var(--bg-primary)}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}*{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg-primary)}:root{--bg-primary: #0a0e17;--bg-secondary: #111827;--bg-card: #1a1f2e;--bg-hover: #252b3d;--border: #2a3042;--border-light: #3a4058;--color-text: #e0e6ed;--color-muted: #6b7280;--color-positive: #00ff88;--color-negative: #ff4444;--color-breakout: #ffd700;--color-accent: #00aaff;--panel-left: 264px;--panel-right: 286px;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "JetBrains Mono", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--font-header: "Orbitron", var(--font-mono);font-family:var(--font-mono);line-height:1.4;color:var(--color-text);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.player-name--human{font-family:var(--font-header)}.player-name--bot{font-family:var(--font-mono);font-style:italic}*{margin:0;padding:0;box-sizing:border-box}html{touch-action:manipulation}html,body,#root{min-height:100dvh;overscroll-behavior:none}body{background-color:var(--bg-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.matrix-rain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.12;will-change:transform;contain:strict}@media(prefers-reduced-motion:reduce){.matrix-rain{display:none}}.app-container{display:flex;flex-direction:column;min-height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:12px}.app-header__title{color:var(--color-positive);font-family:var(--font-header);font-weight:700;font-size:14px;letter-spacing:2px}.app-header__info{color:var(--color-muted)}.app-header__back{background:transparent;border:1px solid var(--border);color:var(--color-muted);font-family:var(--font-mono);font-size:11px;padding:4px 12px;cursor:pointer;transition:all .2s}.app-header__back:hover{color:var(--color-text);border-color:var(--color-text)}.app-players{display:flex;flex-direction:column;gap:2px;flex:1}.app-player-view{flex:1;border-bottom:1px solid var(--border);overflow:auto}.seed-display{font-family:var(--font-mono, monospace)}.seed-display__letter{color:var(--color-accent)}.seed-display__digit{color:var(--color-positive)}.lobby{display:flex;flex-direction:column;align-items:center;min-height:100dvh;padding:32px}.lobby__title{font-family:var(--font-header);font-size:clamp(2rem,8vw,48px);font-weight:700;color:var(--color-positive);letter-spacing:8px;margin-bottom:8px}.lobby__subtitle{font-family:var(--font-header);color:var(--color-muted);font-size:14px;margin-bottom:48px;text-wrap:balance}.lobby__form{display:flex;flex-direction:column;gap:20px;width:100%;max-width:400px}.lobby__field{display:flex;flex-direction:column;gap:6px}.lobby__label{font-size:11px;color:var(--color-muted);letter-spacing:1px}.lobby__deck-section{margin:12px 0}.lobby__field--seed{margin-top:12px;margin-bottom:12px}.lobby__hint{display:block;font-size:10px;color:var(--color-muted);opacity:.7;margin-top:4px;letter-spacing:.3px}.lobby__input,.lobby__select{background:var(--bg-secondary);border:1px solid var(--border);color:var(--color-text);font-family:var(--font-mono);font-size:14px;padding:10px 12px;height:44px;box-sizing:border-box;outline:none;transition:border-color .2s}.lobby__input:focus,.lobby__select:focus{border-color:var(--color-accent)}.lobby__select option{background:var(--bg-secondary);color:var(--color-text)}.lobby__start{margin-top:16px;background:var(--color-accent);color:var(--bg-primary);border:none;font-family:var(--font-header);font-size:16px;font-weight:700;padding:14px;cursor:pointer;letter-spacing:2px;transition:opacity .2s}.lobby__start:hover{background:#3bf;box-shadow:0 0 16px #0af6;transform:translateY(-1px)}.lobby__row{display:flex;gap:20px}.lobby__row>.lobby__field{flex:1}@media(min-width:768px){.lobby__field--deck-select{display:none}.lobby__form{max-width:840px}.lobby__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 32px;align-items:start}}@media(max-width:767px){.lobby__field--deck-picker{display:none}.lobby__row{flex-direction:column}.lobby__grid{display:flex;flex-direction:column;gap:28px}}.btn-group{display:flex;gap:0}.btn-group__btn{flex:1;padding:10px 8px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--color-muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.5px;cursor:pointer;transition:all .15s ease}.btn-group__btn:not(:first-child){border-left:none}.btn-group__btn:first-child{border-radius:4px 0 0 4px}.btn-group__btn:last-child{border-radius:0 4px 4px 0}.btn-group__btn:hover:not(.btn-group__btn--active){background:var(--bg-hover);color:var(--color-text)}.btn-group__btn--active{background:var(--color-accent);color:var(--bg-primary);border-color:var(--color-accent);font-weight:700}.btn-group__btn--active+.btn-group__btn{border-left:none}.toggle{position:relative;display:flex;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;overflow:hidden}.toggle__option{flex:1;padding:10px 16px;background:transparent;border:none;color:var(--color-muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.5px;cursor:pointer;position:relative;z-index:1;transition:color .2s ease}.toggle__option--active{color:var(--bg-primary);font-weight:700}.toggle__indicator{position:absolute;top:2px;left:2px;width:calc(50% - 2px);height:calc(100% - 4px);background:var(--color-accent);border-radius:3px;transition:transform .2s ease}.toggle__indicator--right{transform:translate(100%)}.deck-picker{display:none}@media(min-width:768px){.deck-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}}.deck-picker__card{display:flex;flex-direction:column;align-items:center;padding:16px 12px 12px;background:var(--bg-secondary);border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:center}.deck-picker__card:hover:not(.deck-picker__card--selected){border-color:var(--border-light);background:var(--bg-hover)}.deck-picker__card--selected{border-color:var(--color-accent);box-shadow:0 0 20px #00aaff26}.deck-picker__fan{display:flex;justify-content:center;align-items:flex-end;height:100px;margin-bottom:12px;position:relative}.deck-picker__fan-card{transform-origin:50% 100%;pointer-events:none;scale:.7;margin:0 -42px;text-align:left}.deck-picker__name{font-family:var(--font-header);font-size:14px;font-weight:700;color:var(--color-text);letter-spacing:2px;margin-bottom:2px}.deck-picker__stats{font-size:11px;color:var(--color-muted);margin-bottom:8px}.deck-picker__desc{font-size:11px;color:var(--color-text);line-height:1.4;margin-bottom:6px;opacity:.8}.deck-picker__tagline{font-size:10px;color:var(--color-muted);font-style:italic;letter-spacing:.5px}.bgio-client{height:100%;overflow:hidden}.game-board{position:relative;height:100dvh;overflow:hidden}.game-board__toggle{position:absolute;top:50%;transform:translateY(-50%);z-index:30;background:var(--bg-card);border:1px solid var(--border);color:var(--color-muted);font-size:18px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;border-radius:3px;transition:left .3s ease,right .3s ease,color .15s,background .15s;line-height:1}.game-board__toggle:hover{color:var(--color-accent);background:var(--bg-primary)}.game-board__toggle--left{left:calc(var(--panel-left) - 1px);border-radius:0 3px 3px 0}.game-board--left-collapsed .game-board__toggle--left{left:0}.game-board__toggle--right{right:calc(var(--panel-right) - 1px);border-radius:3px 0 0 3px}.game-board--right-collapsed .game-board__toggle--right{right:0}.game-board__left{position:absolute;top:0;left:0;bottom:0;width:var(--panel-left);z-index:25;background:var(--bg-primary);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:12px;transform:translate(0);transition:transform .3s ease}.game-board--left-collapsed .game-board__left{transform:translate(-100%)}.game-board__center{display:flex;flex-direction:column;height:100%;padding:12px;overflow-x:clip;overflow-y:auto;overscroll-behavior:contain;min-height:0}.game-board__right{position:absolute;top:0;right:0;bottom:0;width:var(--panel-right);z-index:25;background:var(--bg-primary);border-left:1px solid var(--border);overflow:hidden;padding:12px;display:flex;flex-direction:column;transform:translate(0);transition:transform .3s ease;min-width:220px}.game-board--right-collapsed .game-board__right{transform:translate(100%)}.game-board__resize-handle{position:absolute;top:0;left:-3px;width:6px;bottom:0;cursor:col-resize;z-index:30}.game-board__resize-handle:hover,.game-board__resize-handle:active{background:#00aaff26}.game-board__hand-area{transition:opacity .3s ease,max-height .3s ease;max-height:300px;overflow:hidden}.game-board__hand-area--hidden{opacity:0;max-height:0;pointer-events:none}.game-board__player-bar{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 4px}.game-board__player-bar:before{content:"";display:block;width:120px;height:3px;background:var(--team-color, transparent);margin-bottom:4px;border-radius:3px}.game-board__player-name{font-size:12px;color:var(--color-accent);letter-spacing:1px}.game-board__team-paren{color:var(--color-muted);font-size:10px}.game-board__team-symbol{color:var(--color-accent)}.game-board__player-name--active:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-positive);box-shadow:0 0 6px var(--color-positive);margin-right:6px;vertical-align:middle;animation:active-dot-pulse 1.5s ease-in-out infinite}.game-board__player-stats{display:flex;align-items:baseline;gap:8px;font-size:11px}.game-board__player-score{color:var(--color-muted)}.game-board__player-trick-pill{display:inline-flex;align-items:center;justify-content:center;padding:1px 4px;font-size:10px;color:var(--color-muted);background:transparent;border:1px solid var(--border);border-radius:3px;font-family:var(--font-mono);line-height:1}.game-board__sort-button{background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--color-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:.5px;padding:3px 8px;cursor:pointer;transition:color .15s,border-color .15s;margin-top:6px}.game-board__sort-button:hover{color:var(--color-accent);border-color:var(--color-accent)}.game-board__opponents{display:flex;justify-content:center;gap:16px;padding:8px 0;flex-wrap:wrap}.card{display:flex;flex-direction:column;width:110px;min-width:110px;height:150px;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--suit-color, var(--border));border-radius:6px;padding:8px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none;flex-shrink:0;position:relative;overflow:hidden}.card:hover:not(.card--disabled):not(.card--played){border-color:var(--suit-color, var(--border-light));border-left-width:4px}.card--breakout{box-shadow:0 0 12px #ffd70040;animation:breakout-pulse 2s ease-in-out infinite}@keyframes breakout-pulse{0%,to{box-shadow:0 0 12px #ffd70040}50%{box-shadow:0 0 20px #ffd70073,0 0 4px #ffd70026}}.card--breakout .card__power{color:var(--color-breakout);font-weight:700}.card__breakout-badge{position:absolute;top:4px;right:4px;font-size:8px;font-weight:700;color:var(--bg-primary);background:var(--color-breakout);border-radius:2px;padding:1px 3px;line-height:1;cursor:default}.card__breakout-tooltip{position:fixed;width:200px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--color-breakout);border-radius:4px;color:var(--color-breakout);font-size:10px;font-weight:400;line-height:1.5;white-space:pre-line;pointer-events:none;z-index:10000}.card__breakout-tooltip-title{font-weight:700;font-size:11px;margin-bottom:2px}.card__breakout-tooltip-desc{margin-bottom:6px;color:var(--color-text)}.card__breakout-tooltip-rank{font-weight:700;font-size:10px;margin-bottom:2px}.card__breakout-tooltip-list{margin:0;padding-left:18px;list-style:decimal}.card__breakout-tooltip-list li{padding-left:2px}.card--disabled{cursor:not-allowed;isolation:isolate}.card--disabled:after{content:"";position:absolute;inset:0;background:var(--bg-card);opacity:.75;pointer-events:none;z-index:1}.card--played{cursor:default}.card--rule-highlight:not(.card--disabled){box-shadow:0 0 8px 2px #00ff8840}.card__watermark{position:absolute;top:50%;right:-4px;transform:translateY(-50%);font-size:72px;color:var(--suit-color, var(--color-muted));opacity:.06;pointer-events:none;line-height:1}.card__suit{font-size:9px;color:var(--suit-color, var(--color-muted));text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card__suit-icon{margin-right:3px;font-size:10px}.card__name{font-size:11px;color:var(--color-text);margin-top:4px;line-height:1.2;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card__name--medium,.card__name--short{display:none}.card__power{font-size:22px;font-weight:700;color:var(--color-text);text-align:left}.card__power-label{font-size:9px;font-weight:400;color:var(--color-muted);margin-left:2px;vertical-align:baseline}.card__vol{margin-top:3px;line-height:0}.card__data{display:flex;flex-direction:column;margin-top:auto;font-variant-numeric:tabular-nums}.card__price{font-size:9px;color:var(--color-muted)}.card__change{font-size:9px}.card-back{width:110px;min-width:110px;height:150px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;position:relative;overflow:hidden;flex-shrink:0}.card-back__pattern{position:absolute;inset:6px;border:1px solid var(--border-light);border-radius:3px;background:repeating-linear-gradient(0deg,transparent,transparent 7px,rgba(42,48,66,.3) 7px,rgba(42,48,66,.3) 8px),repeating-linear-gradient(90deg,transparent,transparent 7px,rgba(42,48,66,.3) 7px,rgba(42,48,66,.3) 8px)}.opponent-seat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;position:relative;border-top:2px solid var(--team-color, transparent);border-radius:4px}.opponent-seat--active .opponent-seat__name:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-positive);box-shadow:0 0 6px var(--color-positive);margin-right:5px;vertical-align:middle;animation:active-dot-pulse 1.5s ease-in-out infinite}@keyframes active-dot-pulse{0%,to{opacity:1;box-shadow:0 0 6px var(--color-positive)}50%{opacity:.4;box-shadow:0 0 2px var(--color-positive)}}.opponent-seat--winner .opponent-seat__score{color:var(--color-positive)}.opponent-seat__stack{position:relative;width:60px;height:84px;border-radius:6px;transition:box-shadow .3s ease}.opponent-seat--active .opponent-seat__stack{box-shadow:0 0 16px 4px #00e67633}.opponent-seat__card-wrapper{position:absolute;top:calc(var(--stack-index, 0) * 2px);left:calc(var(--stack-index, 0) * 1px);transform:scale(.55);transform-origin:top left;transition:all .3s ease}.opponent-seat__count{position:absolute;bottom:0;right:0;font-size:10px;color:var(--color-muted);background:var(--bg-primary);padding:1px 4px;border-radius:3px;border:1px solid var(--border);font-family:var(--font-mono)}.opponent-seat__empty{width:60px;height:84px;display:flex;align-items:center;justify-content:center;color:var(--color-muted);font-size:16px;border:1px dashed var(--border);border-radius:4px}.opponent-seat__name{position:relative;z-index:1;margin-top:6px;font-size:11px;color:var(--color-text);font-family:var(--font-mono);letter-spacing:.5px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-seat__name--teammate{color:var(--color-accent)}.opponent-seat__team-paren{color:var(--color-muted);font-size:10px}.opponent-seat__team-symbol{color:var(--color-muted)}.opponent-seat__name--teammate .opponent-seat__team-symbol{color:var(--color-accent)}.opponent-seat__stats{position:relative;z-index:1;display:flex;align-items:baseline;gap:6px}.opponent-seat__score{font-size:10px;color:var(--color-muted);font-family:var(--font-mono);transition:color .3s}.opponent-seat__trick-pill{display:inline-flex;align-items:center;justify-content:center;padding:1px 4px;font-size:9px;color:var(--color-muted);background:transparent;border:1px solid var(--border);border-radius:3px;font-family:var(--font-mono);line-height:1}.opponent-seat__score--flash{animation:score-flash .6s ease}@keyframes score-flash{0%{color:var(--color-muted)}30%{color:var(--color-positive);transform:scale(1.2)}to{color:var(--color-muted);transform:scale(1)}}.table-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;min-height:200px}.table-center__status{font-size:13px;margin-top:24px;margin-bottom:16px;letter-spacing:.5px;min-height:20px;text-transform:uppercase}.table-center__waiting{color:var(--color-muted)}.table-center__prompt{color:var(--color-accent);display:inline-flex}.table-center__wave-letter{display:inline-block;animation:wave-key 2s ease-in-out infinite}@keyframes wave-key{0%,to{transform:translateY(0)}20%{transform:translateY(-4px)}40%{transform:translateY(0)}}.table-center__winner{color:var(--color-positive);font-weight:700}.table-center__cards{position:relative;width:100%;flex:1;min-height:180px;overflow:hidden}.table-center__play{position:absolute;top:50%;left:50%;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(calc(-50% + var(--offset-x, 0px)),calc(-50% + var(--offset-y, 0px))) rotate(var(--rotation, 0deg)) scale(var(--card-scale, .8));transition:transform .225s ease-out,opacity .225s ease}.table-center__play:hover{transform:translate(calc(-50% + var(--offset-x, 0px)),calc(-50% + var(--offset-y, 0px) - 16px)) rotate(var(--rotation, 0deg)) scale(calc(var(--card-scale, .8) * 1.125));z-index:10}.table-center__play--winner{z-index:2}.table-center__play--winner .card{border-color:var(--color-positive);box-shadow:0 0 16px #00ff884d;transform:scale(1.06)}.table-center__play--loser{opacity:.5}.table-center__play--sweep{transform:translate(calc(-50% + var(--offset-x, 0px)),calc(-50% + var(--offset-y, 0px))) scale(0);opacity:0;transition:transform .4s ease-in,opacity .4s ease-in;transition-delay:var(--stagger, 0ms)}.table-center__player-tag{font-size:9px;color:var(--color-muted);letter-spacing:1px;font-family:var(--font-mono);text-align:center}.table-center__player-tag--ally{color:var(--color-accent)}.table-center__team-paren,.table-center__team-symbol{color:var(--color-muted)}.table-center__team-symbol--ally{color:var(--color-accent)}.table-center__value-pop{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:14px;font-weight:700;color:var(--color-positive);font-family:var(--font-mono);pointer-events:none;animation:value-pop 1s ease-out forwards;animation-delay:var(--stagger, 0ms);opacity:0}@keyframes value-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-60%) scale(1.1)}to{opacity:0;transform:translate(-50%,-120%) scale(1)}}.table-center__led-suit{font-family:var(--font-mono);font-size:11px;color:var(--color-muted);letter-spacing:1px;margin-top:4px;text-align:center}.table-center__led-suit-name{font-weight:700}.hand{position:relative;z-index:2;padding:4px 0 28px}.hand__cards{display:flex;flex-wrap:nowrap;justify-content:center;perspective:800px}.hand__cards>.card{transition:transform .19s ease,box-shadow .19s ease;flex-shrink:0;position:relative}.hand__cards>.card:hover{transform:translateY(-16px) scale(1.125);z-index:100;box-shadow:0 12px 32px #00000080}.hand__empty{color:var(--color-muted);font-size:13px;padding:24px}.rule-stack{display:flex;flex-direction:column;gap:16px;font-size:12px}.rule-stack__header{border-bottom:1px solid var(--border);padding-bottom:12px}.rule-stack__title,.rule-stack__subtitle{font-family:var(--font-header);color:var(--color-accent);font-size:11px;letter-spacing:1px;margin-bottom:8px}.rule-stack__meta{display:flex;flex-direction:column;gap:4px;color:var(--color-muted);font-size:11px}.rule-stack__status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:1px}.rule-stack__status-dot--connected{background:var(--color-positive)}.rule-stack__status-dot--reconnecting{background:#fa0;animation:pulse-dot 1.5s ease-in-out infinite}.rule-stack__status-dot--disconnected{background:var(--color-negative)}.rule-stack__scores{border-bottom:1px solid var(--border);padding-bottom:12px}.rule-stack__score-table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}.rule-stack__score-table th{font-size:9px;color:var(--color-muted);letter-spacing:.5px;font-weight:400;text-align:left;padding:2px 0 4px;border-bottom:1px solid var(--border)}.rule-stack__score-table th:not(:first-child){text-align:right}.rule-stack__score-table td{padding:3px 0}.rule-stack__score-table td:not(:first-child){text-align:right}.rule-stack__score-tricks{color:var(--color-muted)}.rule-stack__score-value{color:#fff;font-weight:700}.rule-stack__score-change{text-align:right;font-size:10px}.rule-stack__pos{font-size:8px;margin-right:4px}.rule-stack__pos--up{color:var(--color-positive)}.rule-stack__pos--down{color:var(--color-negative)}.rule-stack__pos--same{color:var(--color-muted);font-size:10px}.rule-stack__rules{display:flex;flex-direction:column;gap:8px}.rule-stack__empty{color:var(--color-muted);font-style:italic}.rule-stack__rule{position:relative;background:linear-gradient(165deg,rgba(224,230,237,.04) 0%,var(--bg-primary) 100%);border:1px solid rgba(224,230,237,.2);border-top:3px solid var(--color-text);border-radius:2px;padding:10px 10px 8px;cursor:default}.rule-stack__rule:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(224,230,237,.2),transparent)}.rule-stack__rule--breakout{background:linear-gradient(165deg,rgba(255,215,0,.06) 0%,var(--bg-primary) 100%);border-color:#ffd70040;border-top-color:var(--color-breakout)}.rule-stack__rule--breakout:before{background:linear-gradient(90deg,transparent,rgba(255,215,0,.3),transparent)}.rule-stack__rule--price{background:linear-gradient(165deg,rgba(0,255,136,.06) 0%,var(--bg-primary) 100%);border-color:#00ff8840;border-top-color:var(--color-positive)}.rule-stack__rule--price:before{background:linear-gradient(90deg,transparent,rgba(0,255,136,.3),transparent)}.rule-stack__rule-name{color:var(--color-text);font-size:11px;font-weight:700;margin-bottom:4px}.rule-stack__rule-desc{color:var(--color-muted);font-size:10px;line-height:1.3;margin-bottom:8px}.rule-stack__rule-footer{display:flex;justify-content:space-between;align-items:center}.rule-stack__rule-type{font-size:8px;text-transform:uppercase;letter-spacing:1px;padding:2px 6px;border-radius:1px}.rule-stack__rule-type--powerScore{color:var(--color-text);background:#e0e6ed14;border:1px solid rgba(224,230,237,.15)}.rule-stack__rule-type--breakout{color:var(--color-breakout);background:#ffd7001a;border:1px solid rgba(255,215,0,.15)}.rule-stack__rule-type--price{color:var(--color-positive);background:#00ff881a;border:1px solid rgba(0,255,136,.15)}.rule-stack__tooltip{width:280px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:4px;color:var(--color-text);font-size:11px;line-height:1.5;z-index:100;box-shadow:0 4px 16px #00000080;pointer-events:none}.rule-stack__tooltip-mechanic{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);color:var(--color-breakout);font-size:10px;line-height:1.5;white-space:pre-line}.rule-stack__tooltip-breakout-intro{color:var(--color-text);margin-bottom:4px;white-space:normal}.rule-stack__tooltip-breakout-formation{color:var(--color-muted);font-style:italic;margin-bottom:8px;white-space:normal}.draft-panel__option-mechanic{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,215,0,.15);color:var(--color-breakout);font-size:10px;line-height:1.5;white-space:pre-line}.market-ticker{font-size:11px;flex:4;min-height:0;display:flex;flex-direction:column}.market-ticker__header{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-header);color:var(--color-accent);font-size:11px;letter-spacing:1px;margin-bottom:12px}.market-ticker__countdown{font-family:var(--font-mono);font-size:10px;color:var(--color-muted);letter-spacing:.5px;margin-left:auto;text-align:right}.market-ticker__list{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block:2em;min-height:0}.market-ticker__table{width:100%;border-collapse:collapse;font-size:10px;font-variant-numeric:tabular-nums}.market-ticker__table thead th{font-size:9px;color:var(--color-muted);letter-spacing:.5px;font-weight:400;text-align:left;padding:2px 2px 4px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-primary)}.market-ticker__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.market-ticker__th--sortable:hover{color:var(--color-accent)}.market-ticker__sort-arrow{display:inline-block;width:8px;font-size:7px;text-align:center}.market-ticker__table thead th:nth-child(n+3){text-align:right}.market-ticker__table td{padding:3px 2px;border-bottom:1px solid rgba(42,48,66,.5)}.market-ticker__row--highlighted{background:#00aaff1f}.market-ticker__row--highlighted .market-ticker__name{color:var(--color-accent)}.market-ticker__suit-icon{font-size:10px;line-height:1;text-align:center;width:16px}.market-ticker__name{color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.market-ticker__vol{width:36px;padding:0 2px;line-height:0;text-align:center}.market-ticker__power{color:var(--color-text);font-weight:700;text-align:right}.market-ticker__power--breakout{color:var(--color-breakout)}.market-ticker__price{color:var(--color-muted);text-align:right}.market-ticker__change{text-align:right;white-space:nowrap}.htp-overlay{position:fixed;inset:0;z-index:900;display:flex;align-items:center;justify-content:center;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.htp-modal{background:var(--color-bg);border:1px solid var(--color-accent);border-radius:8px;padding:32px 36px 24px;max-width:440px;width:90%;text-align:center}.htp-modal__step-indicator{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.htp-modal__dot{width:8px;height:8px;border-radius:50%;background:var(--color-muted);transition:background .2s}.htp-modal__dot--active{background:var(--color-accent);box-shadow:0 0 6px var(--color-accent)}.htp-modal__dot--done{background:var(--color-accent);opacity:.5}.htp-modal__step-number{font-family:var(--font-header);font-size:10px;color:var(--color-muted);letter-spacing:.1em;margin-bottom:16px}.htp-modal__title{font-family:var(--font-header);font-size:16px;color:var(--color-accent);letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.htp-modal__body{font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--color-text);margin:0 0 24px}.htp-modal__actions{display:flex;gap:12px;justify-content:center;margin-bottom:16px}.htp-modal__btn{font-family:var(--font-header);font-size:12px;letter-spacing:.08em;padding:8px 24px;border-radius:4px;cursor:pointer;border:1px solid var(--color-accent);transition:background .15s,color .15s}.htp-modal__btn--next{background:var(--color-accent);color:var(--color-bg)}.htp-modal__btn--next:hover{filter:brightness(1.15)}.htp-modal__btn--back,.htp-modal__btn--skip{background:transparent;color:var(--color-muted);border-color:var(--color-muted)}.htp-modal__btn--back:hover,.htp-modal__btn--skip:hover{color:var(--color-text);border-color:var(--color-text)}.htp-modal__remember{display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--color-muted);cursor:pointer}.htp-modal__remember input[type=checkbox]{accent-color:var(--color-accent)}.htp-card{display:flex;flex-direction:column;gap:2px;width:72px;padding:6px;background:var(--bg-card, #1a1f2e);border:1px solid var(--border, #2a3042);border-left:3px solid #888;border-radius:4px;font-family:var(--font-mono);position:relative;transition:opacity .2s}.htp-card--winner{border-color:var(--color-accent);box-shadow:0 0 8px #00aaff4d}.htp-card--breakout{border-color:var(--color-breakout, #ffd700);box-shadow:0 0 10px #ffd70040}.htp-card--dimmed{opacity:.4}.htp-card__badge{position:absolute;top:2px;right:2px;font-size:7px;font-weight:700;background:var(--color-breakout, #ffd700);color:#000;padding:1px 3px;border-radius:2px;line-height:1}.htp-card__suit{font-size:8px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.htp-card__name{font-size:10px;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.htp-card__power{font-size:16px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.htp-card__power--breakout{color:var(--color-breakout, #ffd700)}.htp-card__change{font-size:8px;font-variant-numeric:tabular-nums}.htp-card__change--up{color:var(--color-positive, #00ff88)}.htp-card__change--down{color:var(--color-negative, #ff4444)}.htp-illust{margin:16px 0}.htp-illust__label{font-family:var(--font-header);font-size:9px;color:var(--color-muted);letter-spacing:.1em;text-align:center;margin-bottom:8px}.htp-illust__trick{display:flex;justify-content:center;gap:8px}.htp-illust__callouts{display:flex;justify-content:center;gap:24px;margin-top:8px}.htp-illust__callout{font-family:var(--font-mono);font-size:9px;color:var(--color-muted)}.htp-illust__callout--winner{color:var(--color-accent)}.htp-illust__callout--dimmed{color:var(--color-muted);opacity:.6}.htp-illust__market-compare{display:flex;align-items:center;justify-content:center;gap:16px}.htp-illust__market-col{display:flex;flex-direction:column;align-items:center}.htp-illust__arrow{font-size:20px;color:var(--color-accent);font-weight:700;margin-top:12px}.htp-illust__vs{display:flex;align-items:flex-start;justify-content:center;gap:16px}.htp-illust__vs-col{display:flex;flex-direction:column;align-items:center}.htp-illust__vs-divider{font-family:var(--font-header);font-size:12px;color:var(--color-muted);margin-top:32px;text-transform:uppercase}.htp-illust__note{font-family:var(--font-mono);font-size:9px;color:var(--color-muted);margin-top:6px;text-align:center;max-width:100px}.htp-illust__note--gold{color:var(--color-breakout, #ffd700)}.htp-illust__draft{display:flex;justify-content:center;gap:10px}.htp-illust__rule{display:flex;flex-direction:column;gap:4px;width:150px;padding:10px;background:linear-gradient(165deg,rgba(224,230,237,.04) 0%,var(--bg-primary, #0a0e17) 100%);border:1px solid rgba(224,230,237,.15);border-top:3px solid var(--color-text);border-radius:2px;position:relative}.htp-illust__rule--voted{border-color:var(--color-accent);border-top-color:var(--color-accent);background:linear-gradient(165deg,rgba(0,170,255,.06) 0%,var(--bg-primary, #0a0e17) 100%)}.htp-illust__rule-name{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--color-text)}.htp-illust__rule-desc{font-family:var(--font-mono);font-size:9px;color:var(--color-muted)}.htp-illust__rule-badge{font-family:var(--font-header);font-size:8px;color:var(--color-muted);background:#6b728026;border:1px solid rgba(107,114,128,.3);padding:2px 6px;border-radius:2px;width:fit-content;text-transform:uppercase;letter-spacing:.05em}.htp-illust__rule-badge--price{color:var(--color-positive, #00ff88);background:#00ff8814;border-color:#00ff8840}.htp-illust__vote-check{position:absolute;top:6px;right:8px;font-size:14px;color:var(--color-accent);font-weight:700}.htp-illust__draft-hint{font-family:var(--font-mono);font-size:9px;color:var(--color-muted);text-align:center;margin-top:8px}.draft-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.draft-panel__title{font-family:var(--font-header);color:var(--color-accent);font-size:14px;letter-spacing:1px;margin-bottom:20px;text-shadow:0 0 12px rgba(0,170,255,.4)}.draft-panel__waiting{color:var(--color-muted);font-size:13px}.draft-panel__options{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;align-items:stretch}.draft-panel__option{background:linear-gradient(165deg,rgba(224,230,237,.04) 0%,var(--bg-primary) 100%);border:1px solid rgba(224,230,237,.2);border-top:3px solid var(--color-text);border-radius:2px;padding:16px 16px 12px;width:240px;cursor:pointer;font-family:var(--font-mono);text-align:left;transition:all .15s;position:relative;display:flex;flex-direction:column}.draft-panel__option:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(224,230,237,.2),transparent)}.draft-panel__option:hover{border-color:#e0e6ed59;border-top-color:var(--color-text);transform:translateY(-3px);box-shadow:0 8px 24px #0006,0 0 12px #e0e6ed0f}.draft-panel__option--breakout{background:linear-gradient(165deg,rgba(255,215,0,.06) 0%,var(--bg-primary) 100%);border-color:#ffd70040;border-top-color:var(--color-breakout)}.draft-panel__option--breakout:before{background:linear-gradient(90deg,transparent,rgba(255,215,0,.3),transparent)}.draft-panel__option--breakout:hover{border-color:#ffd70080;border-top-color:var(--color-breakout);box-shadow:0 8px 24px #0006,0 0 12px #ffd7001a}.draft-panel__option-name{color:var(--color-text);font-size:13px;font-weight:700;margin-bottom:8px;letter-spacing:.3px}.draft-panel__option-desc{color:var(--color-muted);font-size:11px;line-height:1.4;margin-bottom:10px}.draft-panel__option-type{font-size:9px;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:1px;display:inline-block}.draft-panel__option .draft-panel__option-type{color:var(--color-text);background:#e0e6ed14;border:1px solid rgba(224,230,237,.15)}.draft-panel__option--breakout .draft-panel__option-type{color:var(--color-breakout);background:#ffd7001a;border:1px solid rgba(255,215,0,.15)}.draft-panel__option--price{background:linear-gradient(165deg,rgba(0,255,136,.06) 0%,var(--bg-primary) 100%);border-color:#00ff8840;border-top-color:var(--color-positive)}.draft-panel__option--price:before{background:linear-gradient(90deg,transparent,rgba(0,255,136,.3),transparent)}.draft-panel__option--price:hover{border-color:#00ff8880;border-top-color:var(--color-positive);box-shadow:0 8px 24px #0006,0 0 12px #00ff881a}.draft-panel__option--price .draft-panel__option-type{color:var(--color-positive);background:#00ff881a;border:1px solid rgba(0,255,136,.15)}.draft-panel__team-label{font-family:var(--font-header);color:var(--color-accent);font-size:14px;letter-spacing:1px;margin-bottom:8px;text-shadow:0 0 12px rgba(0,170,255,.4)}.draft-panel__header{margin-bottom:12px}.draft-panel__prompt{font-family:var(--font-header);color:var(--color-accent);display:inline-flex;font-size:14px;letter-spacing:1px;text-shadow:0 0 12px rgba(0,170,255,.4)}.draft-panel__prompt--urgent .draft-panel__wave-letter{color:var(--color-negative)}.draft-panel__wave-letter{display:inline-block;animation:wave-key 2s ease-in-out infinite}.draft-panel__vote-count{color:var(--color-muted);font-size:11px;margin-bottom:12px;letter-spacing:.5px}.draft-panel__option--voted{border-width:3px;border-color:#0af6!important;border-top:5px solid var(--color-accent)!important;background:linear-gradient(165deg,rgba(0,170,255,.08) 0%,var(--bg-primary) 100%);box-shadow:0 0 16px #00aaff1f}.draft-panel__option--voted:before{background:linear-gradient(90deg,transparent,rgba(0,170,255,.4),transparent)!important}.draft-panel__option--winner{border-width:3px;border-color:#00aaff80!important;border-top:5px solid var(--color-accent)!important;background:linear-gradient(165deg,rgba(0,170,255,.1) 0%,var(--bg-primary) 100%);box-shadow:0 0 24px #0af3;cursor:default}.draft-panel__option--winner:before{background:linear-gradient(90deg,transparent,rgba(0,170,255,.5),transparent)!important}.draft-panel__option--winner:hover{transform:none;box-shadow:0 0 24px #0af3}.draft-panel__option-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px}.draft-panel__option-votes{color:var(--color-accent);font-size:10px;letter-spacing:.5px}.draft-panel__selected{margin-bottom:16px;text-align:center}.draft-panel__selected-label{font-family:var(--font-header);color:var(--color-accent);font-size:10px;letter-spacing:2px;margin-bottom:8px;text-shadow:0 0 12px rgba(0,170,255,.4)}.tiebreak-spinner{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.tiebreak-spinner__label{font-family:var(--font-header);color:var(--color-accent);font-size:14px;letter-spacing:2px;animation:timer-pulse .8s ease-in-out infinite}.tiebreak-spinner__options{display:flex;gap:16px}.tiebreak-spinner__option{position:relative;background:linear-gradient(165deg,rgba(0,170,255,.06) 0%,var(--bg-primary) 100%);border:1px solid rgba(0,170,255,.25);border-top:3px solid var(--color-accent);border-radius:2px;padding:16px 16px 12px;width:240px;font-family:var(--font-mono);text-align:left;opacity:.4;transition:opacity .06s,border-color .06s,box-shadow .06s}.tiebreak-spinner__option:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,170,255,.3),transparent)}.tiebreak-spinner__option--active{opacity:1;border-color:#00aaff80;border-top-color:var(--color-accent);box-shadow:0 0 16px #00aaff4d}.tiebreak-spinner__option--winner{opacity:1;border-color:#0af6;border-top-color:var(--color-accent);background:linear-gradient(165deg,rgba(0,170,255,.08) 0%,var(--bg-primary) 100%);box-shadow:0 0 24px #00aaff59;animation:winner-glow .6s ease-out}.tiebreak-spinner__option--winner:before{background:linear-gradient(90deg,transparent,rgba(0,170,255,.4),transparent)}@keyframes winner-glow{0%{box-shadow:0 0 8px #0af3}50%{box-shadow:0 0 32px #00aaff80}to{box-shadow:0 0 24px #00aaff59}}.tiebreak-spinner__option-name{color:var(--color-text);font-size:13px;font-weight:700;margin-bottom:8px;letter-spacing:.3px}.tiebreak-spinner__option-desc{color:var(--color-muted);font-size:11px;line-height:1.4;margin-bottom:10px}.tiebreak-spinner__option-footer{display:flex;justify-content:space-between;align-items:center}.tiebreak-spinner__option-type{font-size:9px;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:1px}.tiebreak-spinner__option-type--powerScore{color:var(--color-accent);background:#00aaff1a;border:1px solid rgba(0,170,255,.15)}.tiebreak-spinner__option-type--breakout{color:var(--color-breakout);background:#ffd7001a;border:1px solid rgba(255,215,0,.15)}.scoring-panel{flex:1;display:flex;align-items:center;justify-content:center}.scoring-panel__title{font-family:var(--font-header);color:var(--color-positive);font-size:16px;letter-spacing:2px}.scoring-receipt{width:100%;max-width:720px;max-height:80vh;display:flex;flex-direction:column;font-family:var(--font-data);color:var(--color-text)}.scoring-receipt__teams{display:flex;gap:16px;flex:1;min-height:0;overflow-y:auto}.scoring-receipt__team{flex:1;min-width:0;opacity:.6}.scoring-receipt__team--mine{opacity:1}.scoring-receipt__team-name{font-family:var(--font-header);font-size:11px;letter-spacing:2px;color:var(--color-muted);padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--color-border)}.scoring-receipt__team--mine .scoring-receipt__team-name{color:var(--color-accent)}@media(max-width:600px){.scoring-receipt{max-width:420px}.scoring-receipt__teams{flex-direction:column;gap:12px}}.scoring-receipt__header{font-family:var(--font-header);font-size:14px;letter-spacing:2px;color:var(--color-accent);padding-bottom:8px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.scoring-receipt__body{flex:1;overflow-y:auto;min-height:0}.scoring-receipt__empty{color:var(--color-muted);font-size:12px;padding:24px 0;text-align:center}.scoring-receipt__trick{margin-bottom:12px}.scoring-receipt__trick-header{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1px;color:var(--color-positive);padding-bottom:4px;border-bottom:1px dashed var(--color-border);margin-bottom:4px}.scoring-receipt__line{display:flex;align-items:baseline;gap:8px;font-size:12px;padding:2px 0 2px 8px;line-height:1.4}.scoring-receipt__card-name{flex:1;min-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scoring-receipt__base{min-width:64px;text-align:right;color:var(--color-text)}.scoring-receipt__breakout{color:var(--color-breakout);font-size:11px;white-space:nowrap}.scoring-receipt__corner{color:var(--color-accent);font-size:11px;white-space:nowrap}.scoring-receipt__corners{font-size:11px;color:var(--color-accent);padding:8px 0;border-top:1px solid var(--color-border);letter-spacing:1px}.scoring-receipt__totals{border-top:1px solid var(--color-border);padding-top:8px;margin-top:4px}.scoring-receipt__round-total,.scoring-receipt__game-total{display:flex;justify-content:space-between;font-size:13px;padding:2px 0}.scoring-receipt__round-total{color:var(--color-positive);font-weight:600}.scoring-receipt__game-total{color:var(--color-text)}.scoring-receipt__continue{margin-top:12px;padding:8px 16px;font-family:var(--font-header);font-size:12px;letter-spacing:2px;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;transition:background .15s,color .15s}.scoring-receipt__continue:hover:not(:disabled){background:var(--color-accent);color:var(--color-bg)}.scoring-receipt__continue--confirmed{color:var(--color-muted);border-color:var(--color-muted);cursor:default}.autoplay-paused{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--color-warning, #f59e0b);color:#000;border-radius:4px;font-family:var(--font-mono, monospace);font-size:.75rem;font-weight:700;letter-spacing:.05em}.autoplay-paused__btn{background:#000;color:var(--color-warning, #f59e0b);border:none;padding:2px 10px;border-radius:3px;font-family:inherit;font-size:.75rem;font-weight:700;cursor:pointer;letter-spacing:.05em}.autoplay-paused__btn:hover{background:#222}.game-over{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:48px}.game-over__title{font-family:var(--font-header);font-size:32px;font-weight:700;color:var(--color-positive);letter-spacing:4px;margin-bottom:32px}.game-over__scores{display:flex;flex-direction:column;gap:8px;width:300px}.game-over__row{display:flex;justify-content:space-between;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;font-size:14px}.game-over__row--winner{border-color:var(--color-breakout);color:var(--color-breakout)}.game-over__lobby-btn{margin-top:24px;padding:10px 24px;background:transparent;border:1px solid var(--color-muted);color:var(--color-text);font-family:var(--font-header);font-size:13px;letter-spacing:1px;cursor:pointer;transition:border-color .2s,color .2s}.game-over__lobby-btn:hover{border-color:var(--color-breakout);color:var(--color-breakout)}.game-over__team-name{display:flex;align-items:center;gap:6px}.game-over__team-icon{width:14px;height:14px}.app-placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-muted);font-size:16px;letter-spacing:1px}.lobby__tabs{display:flex;gap:0;margin-bottom:32px;border-bottom:1px solid var(--border);width:100%;max-width:400px}.lobby__tab{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-muted);font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:2px;padding:10px 0;cursor:pointer;transition:all .2s}.lobby__tab:hover{color:var(--color-text)}.lobby__tab--active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.lobby__subtabs{display:flex;gap:0;width:100%;max-width:300px;margin-bottom:24px;border:1px solid var(--border);border-radius:4px;overflow:hidden}.lobby__subtab{flex:1;background:transparent;border:none;color:var(--color-muted);font-family:var(--font-header);font-size:11px;letter-spacing:1px;padding:8px 0;cursor:pointer;transition:all .2s}.lobby__subtab:first-child{border-right:1px solid var(--border)}.lobby__subtab:hover{color:var(--color-text)}.lobby__subtab--active{background:var(--color-accent);color:var(--bg-primary)}.lobby__error{color:var(--color-negative);font-size:12px;padding:8px 0}.lobby__input--code{text-align:center;letter-spacing:8px;font-size:20px;text-transform:uppercase}.lobby__input--code::placeholder{font-size:14px;letter-spacing:1px}.lobby__start:disabled{opacity:.5;cursor:not-allowed}.lobby__browser-section{margin-top:24px;width:90vw;max-width:900px;margin-left:50%;transform:translate(-50%)}.lobby__browser-header{font-family:var(--font-header);font-size:11px;color:var(--color-accent);letter-spacing:1px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.pgb{width:100%}.pgb__table{width:100%;border-collapse:collapse;font-size:11px}.pgb__th{text-align:left;color:var(--color-muted);font-size:10px;letter-spacing:1px;padding:6px 8px;border-bottom:1px solid var(--border);font-weight:400}.pgb__row{transition:background .15s}.pgb__row:hover{background:var(--bg-hover)}.pgb__td{padding:6px 8px;border-bottom:1px solid rgba(42,48,66,.5);color:var(--color-text);white-space:nowrap}.pgb__td--mono{font-family:var(--font-mono, monospace);font-size:10px;color:var(--color-muted)}.pgb__join-btn{background:transparent;border:1px solid var(--color-positive);color:var(--color-positive);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:4px 10px;cursor:pointer;transition:all .2s}.pgb__join-btn:hover{background:var(--color-positive);color:var(--bg-primary)}.pgb__empty{color:var(--color-muted);font-size:12px;padding:16px 0;text-align:center}.pgb__error{color:var(--color-negative)}.wr{display:flex;flex-direction:column;align-items:center;padding:32px;flex:1;max-width:480px;margin:0 auto;width:100%}.wr__loading{color:var(--color-muted);font-size:14px;padding:48px 0}.wr__error{color:var(--color-negative);font-size:12px;padding:8px 0}.wr__code-section{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.wr__code-label{font-family:var(--font-header);font-size:10px;color:var(--color-muted);letter-spacing:2px;margin-bottom:8px}.wr__code{font-size:36px;font-weight:700;color:var(--color-positive);letter-spacing:12px;margin-bottom:12px;-webkit-user-select:all;user-select:all}.wr__copy-btn{background:transparent;border:1px solid var(--border);color:var(--color-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:1px;padding:6px 16px;cursor:pointer;transition:all .2s}.wr__copy-btn:hover{color:var(--color-text);border-color:var(--color-text)}.wr__info{width:100%;border:1px solid var(--border);background:var(--bg-secondary);padding:12px 16px;margin-bottom:24px}.wr__info-row{display:flex;justify-content:space-between;padding:4px 0;font-size:12px}.wr__info-label{font-family:var(--font-header);color:var(--color-muted);letter-spacing:1px;font-size:10px}.wr__info-value{color:var(--color-text);font-size:12px}.wr__info-value--mono{font-size:11px;letter-spacing:1px}.wr__slots-label{align-self:flex-start;font-family:var(--font-header);font-size:11px;color:var(--color-accent);letter-spacing:1px}.wr__slots-hint{align-self:flex-start;font-size:11px;color:var(--text-dim);margin-top:2px;margin-bottom:8px}.wr__slots{width:100%;display:flex;flex-direction:column;gap:2px;margin-bottom:24px}.wr__teams{width:100%;display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.wr__team{display:flex;flex-direction:column;gap:2px}.wr__team--unassigned .wr__slot{background:#ffffff08}.wr__team-label{font-family:var(--font-header);font-size:10px;color:var(--color-accent);letter-spacing:1px;padding:4px 14px;background:#3b82f614;border:1px solid var(--border);border-bottom:none;display:flex;justify-content:space-between;align-items:center}.wr__team-count{color:var(--color-muted);font-size:10px}.wr__team-slots{display:flex;flex-direction:column;gap:2px}.wr__team-buttons{margin-left:auto;display:flex;gap:4px}.wr__team-join-btn{font-size:10px;padding:3px 10px;background:var(--bg-primary);color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;letter-spacing:1px;font-family:inherit;display:inline-flex;align-items:center;gap:4px}.wr__team-join-label{font-family:var(--font-header);font-size:9px;text-transform:uppercase;letter-spacing:1px}.wr__team-join-btn:hover:not(:disabled){background:var(--color-accent);color:var(--bg-primary)}.wr__team-join-btn:disabled{opacity:.3;cursor:not-allowed}.wr__slot--empty{opacity:.3}.wr__slot-name--empty{font-style:italic;color:var(--color-muted)}.wr__slot{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);font-size:13px}.wr__slot-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wr__slot-dot--connected{background:var(--color-positive);box-shadow:0 0 6px var(--color-positive)}.wr__slot-dot--disconnected{background:#eab308;box-shadow:0 0 6px #eab308}.wr__slot-dot--bot{background:var(--color-muted)}.wr__slot-name{color:var(--color-text)}.wr__slot-host{color:var(--color-accent);font-size:10px}.wr__slot-bot{color:var(--color-muted);font-size:10px}.wr__slot-status{color:#eab308;font-size:11px}.wr__slot-leave{margin-left:auto;background:none;border:1px solid var(--border);color:var(--color-muted);font-size:14px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px}.wr__slot-leave:hover{color:var(--color-negative);border-color:var(--color-negative)}.wr__host-controls{display:flex;gap:8px;width:100%;margin-bottom:12px}.wr__auto-assign-btn{flex:0 0 auto;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);font-family:var(--font-header);font-size:11px;padding:12px 16px;cursor:pointer;letter-spacing:1px;transition:background .2s,color .2s;white-space:nowrap}.wr__auto-assign-btn:hover{background:var(--color-accent);color:var(--bg-primary)}.wr__start-btn{flex:1;background:var(--color-accent);color:var(--bg-primary);border:none;font-family:var(--font-header);font-size:14px;font-weight:700;padding:12px;cursor:pointer;letter-spacing:2px;transition:opacity .2s}.wr__start-btn:hover:not(:disabled){background:#3bf;box-shadow:0 0 16px #0af6;transform:translateY(-1px)}.wr__start-btn:disabled{opacity:.5;cursor:not-allowed}.wr__leave-btn{width:100%;background:transparent;border:1px solid var(--border);color:var(--color-muted);font-family:var(--font-mono);font-size:12px;padding:10px;cursor:pointer;letter-spacing:1px;transition:all .2s}.wr__leave-btn:hover:not(:disabled){color:var(--color-negative);border-color:var(--color-negative)}.wr__leave-btn:disabled{opacity:.5;cursor:not-allowed}.connection-status{display:flex;flex-direction:column;gap:4px;font-size:11px;font-family:var(--font-mono);padding:8px 12px;border-bottom:1px solid var(--border)}.connection-status__row{display:flex;align-items:center;gap:6px}.connection-status__key{color:var(--color-muted);font-size:10px;letter-spacing:1px}.connection-status__dot{display:inline-block;width:8px;height:8px;border-radius:50%}.connection-status__dot--green{background:var(--color-positive)}.connection-status__dot--yellow{background:#fa0}.connection-status__dot--red{background:var(--color-negative)}.connection-status__dot--pulse{animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.connection-status__label{color:var(--color-text);letter-spacing:.5px;font-size:10px}.connection-status__retry{background:transparent;border:1px solid var(--color-negative);color:var(--color-negative);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:2px 8px;cursor:pointer;transition:all .2s}.connection-status__retry:hover{background:var(--color-negative);color:var(--bg-primary)}.chat{margin-top:16px;border-top:1px solid var(--border);padding-top:8px;flex:2;min-height:0;display:flex;flex-direction:column}.chat__toggle{background:transparent;border:none;color:var(--color-accent);font-family:var(--font-mono);font-size:11px;letter-spacing:1px;cursor:pointer;padding:4px 0;width:100%;text-align:left;transition:color .2s}.chat__toggle:hover{color:var(--color-text)}.chat__toggle--unread{color:var(--color-positive);animation:chat-pulse 1.5s ease-in-out infinite}@keyframes chat-pulse{0%,to{opacity:1}50%{opacity:.5}}.chat__messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 0;display:flex;flex-direction:column;gap:2px}.chat__empty{color:var(--color-muted);font-size:10px;font-style:italic;padding:8px 0}.chat__message{font-size:10px;line-height:1.4;word-break:break-word}.chat__role-badge{font-weight:700;font-size:9px;letter-spacing:.5px}.chat__role-badge--host{color:var(--color-positive)}.chat__role-badge--player{color:var(--color-text)}.chat__role-badge--spectator{color:var(--color-muted)}.chat__sender{color:var(--color-text);font-weight:700}.chat__text{color:var(--color-muted)}.chat__form{display:flex;gap:4px;margin-top:4px}.chat__input{flex:1;background:var(--bg-secondary);border:1px solid var(--border);color:var(--color-text);font-family:var(--font-mono);font-size:11px;padding:6px 8px;outline:none;min-width:0;transition:border-color .2s}.chat__input:focus{border-color:var(--color-accent)}.chat__send{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:4px 10px;cursor:pointer;transition:all .2s;flex-shrink:0}.chat__send:hover{background:var(--color-accent);color:var(--bg-primary)}.spectator{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.spectator__header{display:flex;align-items:center;gap:16px;padding:8px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:12px}.spectator__title{font-family:var(--font-header);color:var(--color-muted);font-weight:700;letter-spacing:2px}.spectator__code{color:var(--color-positive);font-weight:700;letter-spacing:4px;font-size:14px}.spectator__status{color:var(--color-accent);font-size:11px;letter-spacing:1px;margin-left:auto;margin-right:12px}.spectator__loading{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-muted);font-size:14px}.spectator__error{color:var(--color-negative);font-size:12px;padding:8px 16px}.spectator__body{display:flex;flex:1;overflow:hidden}.spectator__info{flex:1;padding:24px;overflow-y:auto;overscroll-behavior:contain}.spectator__section-label{font-family:var(--font-header);font-size:11px;color:var(--color-accent);letter-spacing:1px;margin-bottom:8px;margin-top:16px}.spectator__section-label:first-child{margin-top:0}.spectator__slots{display:flex;flex-direction:column;gap:2px;margin-bottom:16px}.spectator__slot{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);font-size:12px}.spectator__slot-name{color:var(--color-text)}.spectator__takeover-section{margin-bottom:16px}.spectator__takeover-btn{display:block;width:100%;margin-top:4px;background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:1px;padding:8px 12px;cursor:pointer;transition:all .2s}.spectator__takeover-btn:hover:not(:disabled){background:var(--color-accent);color:var(--bg-primary)}.spectator__takeover-btn:disabled{opacity:.5;cursor:not-allowed}.spectator__meta{display:flex;flex-direction:column;gap:4px}.spectator__meta-row{display:flex;justify-content:space-between;font-size:11px}.spectator__meta-label{color:var(--color-muted)}.spectator__meta-value{color:var(--color-text)}.spectator__chat-panel{width:280px;border-left:1px solid var(--border);padding:12px;overflow-y:auto;overscroll-behavior:contain}@media(min-width:1101px){.game-board{display:flex}.game-board__left{position:relative;flex-shrink:0;width:var(--panel-left);transform:none;transition:width .3s ease,padding .3s ease,border-width .3s ease}.game-board--left-collapsed .game-board__left{width:0;padding:0;border-right-width:0;transform:none;overflow:hidden}.game-board__center{flex:1;min-width:0}.game-board__right{position:relative;flex-shrink:0;width:var(--panel-right);transform:none;transition:width .3s ease,padding .3s ease,border-width .3s ease}.game-board--right-collapsed .game-board__right{width:0;min-width:0;padding:0;border-left-width:0;transform:none;overflow:hidden}}.card{min-height:44px;min-width:44px}@media(max-width:1100px){:root{--panel-left: 220px;--panel-right: 242px}.card{width:90px;min-width:90px;height:130px}.card__suit,.card__name{font-size:9px}.card__name--full{display:none}.card__name--medium{display:inline}.draft-panel__option{width:200px;padding:12px 12px 10px}.card-back{width:90px;min-width:90px;height:130px}.opponent-seat__stack{width:50px;height:72px}.opponent-seat__card-wrapper{transform:scale(.45)}.table-center__cards{min-height:100px}}@media(max-width:900px){:root{--panel-left: 187px;--panel-right: 209px}.card{width:80px;min-width:80px;height:115px;padding:6px}.card__suit,.card__name{font-size:8px}.card__power{font-size:11px}.draft-panel__options{flex-direction:column;align-items:center}.draft-panel__option{width:100%;max-width:300px}.card-back{width:80px;min-width:80px;height:115px}.opponent-seat__stack{width:44px;height:64px}.opponent-seat__card-wrapper{transform:scale(.4)}.table-center__cards{min-height:80px}}@media(max-width:768px){.spectator__body{flex-direction:column}.spectator__chat-panel{width:100%;max-height:40vh;border-left:none;border-top:1px solid var(--border)}.game-board__opponents{gap:8px}.opponent-seat{padding:4px}.opponent-seat__name{font-size:9px}.card__name--full,.card__name--medium{display:none}.card__name--short{display:inline}}@media(max-width:600px){.card{width:64px;min-width:64px;height:95px;padding:4px}.card__suit,.card__name{font-size:7px}.card__power{font-size:10px}.card__name--full,.card__name--medium{display:none}.card__name--short{display:inline}.card-back{width:64px;min-width:64px;height:95px}.game-board__center{padding:6px 4px}.game-board__toggle{width:32px;height:32px;font-size:14px}.game-board__opponents{gap:4px;padding:4px 0}.opponent-seat{padding:2px}.opponent-seat__stack{width:36px;height:52px}.opponent-seat__card-wrapper{transform:scale(.35)}.opponent-seat__name{font-size:8px}.table-center__cards{min-height:70px;gap:4px}.hand{padding:2px 0 24px}.hand__cards>.card:hover{transform:translateY(-12px) scale(1.08)}.game-board__player-bar{padding:4px 0 2px}.game-board__player-name{font-size:10px}.game-board__player-stats{font-size:9px}.draft-panel__options{flex-direction:column;align-items:center}.draft-panel__option{width:100%;max-width:280px;padding:10px}}.terminal-mode{filter:hue-rotate(90deg) saturate(.7);background:#000a00!important}.terminal-mode:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0px,rgba(0,0,0,.35) 2px,transparent 2px,transparent 4px);animation:crt-flicker 4s linear infinite}.terminal-mode:after{content:"";position:fixed;inset:-6%;pointer-events:none;z-index:9998;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,10,0,.4) 60%,rgba(0,0,0,.8) 80%,rgba(0,0,0,1) 100%);border-radius:18%}.terminal-mode>*{transform:perspective(600px) rotateX(.6deg) scale(.985);transform-origin:center center}.terminal-mode *{text-shadow:0 0 3px rgba(0,255,65,.5),0 0 8px rgba(0,255,65,.15)}@keyframes crt-flicker{0%,to{opacity:1}2%{opacity:.92}4%{opacity:1}31%{opacity:.95}33%{opacity:1}67%{opacity:.9}69%{opacity:1}88%{opacity:.94}90%{opacity:1}}@keyframes crt-roll{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}.terminal-mode .game-board__center:before{content:"";position:fixed;left:0;width:100%;height:6px;background:linear-gradient(transparent,rgba(0,255,65,.08),rgba(0,255,65,.12),rgba(0,255,65,.08),transparent);pointer-events:none;z-index:9997;animation:crt-roll 4s linear infinite}.terminal-inspector{position:fixed;bottom:8px;left:8px;width:360px;max-height:50vh;overflow:auto;background:#000a00eb;border:1px solid rgba(0,255,0,.3);border-radius:2px;z-index:10000;font-family:var(--font-mono);font-size:10px;color:#00ff41}.terminal-inspector__title{padding:6px 10px;font-family:var(--font-header);font-size:11px;letter-spacing:2px;color:#00ff41;border-bottom:1px solid rgba(0,255,0,.2);background:#00ff000d}.terminal-inspector__content{padding:8px 10px;margin:0;white-space:pre-wrap;word-break:break-all;line-height:1.5}.ks-section{margin-bottom:40px}.ks-heading{font-family:var(--font-header);font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--color-accent);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.ks-typography{display:flex;flex-direction:column;gap:12px}.ks-type-sample{display:flex;align-items:baseline;gap:16px}.ks-type-label{font-size:10px;color:var(--color-muted);letter-spacing:1px;text-transform:uppercase;min-width:120px;flex-shrink:0}.ks-instruction{color:var(--color-text);font-style:italic;opacity:.85}.ks-deck-row{margin-bottom:24px}.ks-rule-grid{display:flex;gap:12px;flex-wrap:wrap}.ks-rule-grid .rule-stack__rule{width:220px;flex-shrink:0}.ks-deck-label{font-family:var(--font-header);font-size:13px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.ks-card-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.ks-card-label-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;width:110px}.ks-card-label{font-size:10px;color:var(--color-muted);letter-spacing:1px;text-transform:uppercase}.ks-sort-controls{display:flex;gap:8px;margin-bottom:12px}.ks-sort-btn{background:transparent;border:1px solid var(--border);color:var(--color-muted);font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:4px 12px;cursor:pointer;transition:all .15s}.ks-sort-btn--active,.ks-sort-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.ks-panels{display:flex;gap:24px;align-items:flex-start}.ks-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;overflow:auto;padding:8px}.ks-opponent-row{display:flex;gap:24px;align-items:flex-start}.ks-button-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.ks-input-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.ks-color-grid{display:flex;gap:12px;flex-wrap:wrap}.ks-color-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;width:80px}.ks-color-box{width:48px;height:48px;border-radius:4px;border:1px solid var(--border-light)}.ks-color-label{font-size:9px;color:var(--color-muted);letter-spacing:1px;text-transform:uppercase}.ks-draft-row{display:flex;gap:16px;flex-wrap:wrap}
