.tv-filters{position:absolute;width:0;height:0;pointer-events:none}.tv-frame{width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#050710;padding:16px 24px 8px;overflow:hidden}.tv-cabinet{flex:1 1 0;min-height:0;width:100%;max-width:1400px;display:flex;flex-direction:column;position:relative;background:repeating-linear-gradient(92deg,transparent,transparent 18px,rgba(0,0,0,.03) 18px,rgba(0,0,0,.03) 19px,transparent 19px,transparent 37px,rgba(255,255,255,.02) 37px,rgba(255,255,255,.02) 38px),linear-gradient(175deg,#7a5434,#6d4a2c,#7e5838 12%,#6a4628 22%,#755030,#634024 48%,#7a5434,#5e3c22 72%,#6d4a2c 82%,#7a5434 90%,#634024);border-radius:14px 14px 10px 10px;box-shadow:-4px -2px 12px #ffffff08,6px 12px 38px #000000bf,14px 26px 80px #0000008c,inset 2px 2px #ffd6a029,inset 3px 3px 6px #ffc88c0d,inset -2px -2px #0000006b,inset -4px -5px 12px #0000004d;overflow:hidden}.tv-cabinet:before{content:"";position:absolute;inset:0 0 auto 0;height:10px;z-index:2;pointer-events:none;background:linear-gradient(180deg,#ffd8a633,#d2a06817 22%,#00000029 78%,#00000057);border-radius:14px 14px 0 0}.tv-cabinet:after{content:"";position:absolute;inset:auto 0 0 0;height:14px;z-index:2;pointer-events:none;background:linear-gradient(0deg,#0000006b,#0003 45%,#ffd29c1f 96%,#ffd8a629);border-radius:0 0 10px 10px}.tv-wood-grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.55;pointer-events:none;z-index:0;border-radius:inherit;background:repeating-linear-gradient(91deg,#3a210e38,#78522d0f 26px,#2e1a0b33,#845c3412 96px,#341e0d2e 143px,#76502c0d 187px,#3a210e38 232px),repeating-linear-gradient(89.2deg,rgba(30,16,6,.3) 0px,transparent 2px,transparent 9px,rgba(24,13,5,.22) 11px,transparent 13px,transparent 23px,rgba(150,106,62,.09) 25px,transparent 27px,transparent 41px),repeating-linear-gradient(90.6deg,rgba(0,0,0,.16) 0px,transparent 1px,transparent 4px,rgba(255,220,175,.05) 5px,transparent 6px,transparent 11px)}.tv-cabinet .tv-badge{position:absolute;left:50%;bottom:3px;transform:translate(-50%);z-index:3;padding:1px 9px 2px;font-size:.56rem;font-weight:700;letter-spacing:.32em;text-indent:.32em;color:#e8cd9e80;background:linear-gradient(180deg,#5c4226bf,#382614bf);border-radius:2px;box-shadow:inset 0 1px #ffe2b438,inset 0 -1px #0006,0 1px 2px #00000080;pointer-events:none}.tv-upper{flex:1;min-height:0;display:flex;flex-direction:row;position:relative;z-index:1}.tv-screen-bezel{flex:1;margin:22px 4px 16px 24px;padding:8px 10px 10px 8px;background:linear-gradient(145deg,#3a2212,#46291a 15%,#3e2414,#342010 65%,#2c1a0e);border-radius:10px;box-shadow:inset 0 2px #ffce9624,inset 2px 0 #ffce9617,inset 0 -2px #00000080,inset -2px 0 #0000006b,inset 3px 4px 14px #0000009e,inset -2px -3px 10px #00000061,-1px -1px #ffdcaa1a,2px 3px 10px #00000073}.tv-screen{width:100%;height:100%;position:relative;border-radius:22px/24px;overflow:hidden;background:radial-gradient(ellipse at 48% 48%,var(--ptv-table) 0%,var(--ptv-table-dark) 60%,#0d1a10 100%);box-shadow:inset 0 0 60px #0000004d,inset 0 4px 20px #00000040,0 0 12px #1a5c2a14}.tv-screen-content{width:100%;height:100%;position:relative;z-index:1;overflow-y:auto;overflow-x:hidden;min-height:0}.tv-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(0,0,0,.55) 100%);pointer-events:none;z-index:10}.tv-screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.05) 2px,rgba(0,0,0,.05) 4px);pointer-events:none;z-index:11}.tv-glass-highlight{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(ellipse at 25% 18%,rgba(255,255,255,.09) 0%,rgba(255,255,255,.03) 30%,transparent 55%),radial-gradient(ellipse at 70% 80%,rgba(255,255,255,.02) 0%,transparent 40%);pointer-events:none;z-index:12}.tv-panel{width:248px;transition:width .18s ease;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:14px 12px 10px;gap:8px;position:relative;z-index:1;overflow:hidden;margin:16px 14px 12px 0;border-radius:6px;background:linear-gradient(178deg,#1a140ff0,#0f0b08f5);box-shadow:inset 0 3px 9px #0009,inset 3px 0 8px #00000073,inset -2px 0 6px #0000004d,0 -1px #ffd6a22e,0 1px #00000073,-1px 0 #00000059}.tv-channel-window{width:68px;height:30px;background:linear-gradient(180deg,#0e0804,#1a100a 60%,#120c06);border:1.5px solid #3e2c1e;border-radius:3px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 2px 8px #000000b3,inset 0 -1px 2px #0000004d,0 1px #ffffff0a}.tv-channel-num{font-family:SF Mono,Consolas,Monaco,monospace;font-size:var(--ptv-fs-2xs);font-weight:700;color:#d4a84c;letter-spacing:.08em;text-shadow:0 0 5px rgba(212,168,76,.3)}.tv-dial{width:54px;height:54px;padding:0;cursor:pointer;border-radius:50%;background:radial-gradient(circle at 38% 32%,#44382c,#2e2218,#1c140c 80%,#120c08);border:2px solid #50402e;box-shadow:0 3px 8px #00000080,0 1px 2px #0000004d,inset 1px 1px 2px #ffffff14,inset -1px -1px 2px #0006;display:flex;align-items:center;justify-content:center;background-image:repeating-conic-gradient(from 0deg,#ffe2b41c,#ffe2b41c 3deg,#0000004d 3deg,#0000004d 6deg),radial-gradient(circle at 38% 32%,#44382c,#2e2218,#1c140c 80%,#120c08);transition:transform .12s ease,box-shadow .12s ease}.tv-dial:hover:not(:disabled){box-shadow:0 4px 12px #0000008c,inset 1px 1px 2px #ffffff21,inset -1px -1px 2px #0006}.tv-dial:active:not(:disabled){transform:translateY(1px) scale(.98);box-shadow:0 1px 4px #0009,inset 0 2px 5px #00000080}.tv-dial:focus-visible{outline:2px solid var(--ptv-accent);outline-offset:3px}.tv-dial:disabled{cursor:default;opacity:.75}.tv-dial-inner{display:block;transition:transform .26s cubic-bezier(.34,1.4,.64,1);width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.06);background:radial-gradient(circle at 42% 38%,#38281c,#221810 60%,#160e08);position:relative;box-shadow:inset 0 1px 3px #0006}.tv-dial-tick{position:absolute;top:3px;left:50%;transform:translate(-50%);width:2px;height:7px;background:#bfa060;border-radius:1px}.tv-dial-label{font-size:var(--ptv-fs-2xs);font-weight:600;color:#a08050;text-align:center;letter-spacing:.03em;text-shadow:0 1px 2px rgba(0,0,0,.6)}.player-bar{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;background:#00000026;border-radius:3px;border:1px solid rgba(180,140,70,.12)}.player-bar-name{font-family:inherit;font-size:var(--ptv-fs-xs);font-weight:600;color:#c8a860;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;letter-spacing:.02em;background:none;border:none;cursor:pointer;padding:1px 4px;border-radius:2px;transition:background .15s}.player-bar-name:hover{background:#c8a8601f}.player-bar-coins{font-size:var(--ptv-fs-2xs);font-weight:700;color:#e8c840;text-shadow:0 0 4px rgba(232,200,64,.25);letter-spacing:.03em}.player-bar-streak{font-size:var(--ptv-fs-2xs);font-weight:600;color:#e88040;letter-spacing:.02em}.player-bar-logout{font-family:inherit;font-size:var(--ptv-fs-2xs);color:#999;background:none;border:none;cursor:pointer;padding:1px 6px;letter-spacing:.02em;transition:color .15s}.player-bar-logout:hover{color:#bbb}.tv-panel-content{font-size:var(--ptv-fs-sm);line-height:var(--ptv-lh-normal);flex:1;width:100%;overflow-y:auto;overflow-x:hidden;min-height:0}.tv-panel-footer{margin-top:auto;width:100%;display:flex;justify-content:center;padding-top:4px}.tv-guide-btn{font-size:var(--ptv-fs-2xs);font-weight:600;color:#bfa060;text-decoration:none;padding:3px 10px;border:1px solid rgba(180,140,70,.25);border-radius:3px;transition:background .15s;letter-spacing:.03em}.tv-guide-btn:hover{background:#b48c4614}.tv-speaker-grille{height:128px;flex-shrink:0;margin:0 20px 14px;border-radius:5px;position:relative;z-index:1;overflow:hidden;background:linear-gradient(180deg,#140f0bed,#0b0806f5);box-shadow:inset 0 4px 12px #0009,inset 0 -3px 8px #0006,inset 2px 0 6px #00000059,inset -2px 0 6px #00000059,0 -1px #ffd29c24,0 1px #0006}.tv-speaker-content{width:100%;height:100%;position:relative;z-index:1}.tv-speaker-content:not(:empty)+.tv-speaker-cloth{display:none}.tv-speaker-cloth{width:100%;height:100%;background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0px,transparent 1px,transparent 2.5px,rgba(0,0,0,.08) 3px),repeating-linear-gradient(90deg,rgba(0,0,0,.06) 0px,transparent 1px,transparent 2.5px,rgba(0,0,0,.04) 3px),linear-gradient(180deg,#907858,#9a8462 15%,#8a7452 40%,#806a48,#907858,#7a6440);filter:url(#fine-noise)}.tv-legs{display:flex;justify-content:space-between;width:65%;max-width:850px;flex-shrink:0;padding:0 30px}.tv-leg{display:block;width:22px;height:44px;background:linear-gradient(180deg,transparent 0 78%,#7d6230 78%,#d4ae5e 85%,#8a6c36 94%,#5a4522 100%),linear-gradient(90deg,#4a2c17,#6d4527 22%,#966d46 38%,#8e6440 52%,#6d4527 74%,#452a15);clip-path:polygon(4% 0,96% 0,76% 100%,24% 100%);box-shadow:3px 6px 12px #0000008c}.tv-leg-left{transform:rotate(-14deg);transform-origin:top center}.tv-leg-right{transform:rotate(14deg);transform-origin:top center}@media(max-width:1100px){.tv-panel{width:155px;padding:14px 6px 8px;gap:6px}.tv-screen-bezel{margin:12px 0 8px 12px;padding:6px 8px 8px 6px}.tv-dial{width:40px;height:40px}.tv-dial-inner{width:26px;height:26px}.tv-speaker-grille{height:100px;margin:0 12px 8px}}@media(max-width:768px){.tv-frame{height:100dvh;padding:0;overflow:hidden;background:var(--ptv-bg, #0f1118)}.tv-cabinet{flex:1 1 auto;min-height:0;width:100%;max-width:none;background:none;border-radius:0;box-shadow:none;padding:0}.tv-wood-grain,.tv-badge,.tv-speaker-grille,.tv-legs,.tv-glass-highlight,.tv-cabinet:before,.tv-cabinet:after{display:none}.tv-upper{flex-direction:column;flex:1 1 auto;min-height:0;gap:0}.tv-screen-bezel{flex:1 1 auto;min-height:0;margin:0;padding:0;background:none;border:none;border-radius:0;box-shadow:none;max-height:none}.tv-screen{height:100%;border-radius:0;box-shadow:none}.tv-panel{order:-1;width:100%;flex:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;border:none;border-bottom:1px solid #3e2c1e;border-radius:0;overflow:visible;background:linear-gradient(180deg,#241a10,#140e08)}.tv-dial,.tv-dial-label{display:none}.tv-channel-window{order:1;width:54px;height:22px;margin:0}.tv-channel-num{font-size:var(--ptv-fs-2xs)}.tv-panel-toggle{order:2;position:static;width:auto;min-width:30px;height:24px;padding:0 8px}.tv-panel-footer{order:3;margin:0 0 0 auto;padding:0;width:auto;border:none}.tv-panel-content{order:4;flex-basis:100%;width:100%;max-height:34dvh;overflow-y:auto;margin:0}.tv-panel--collapsed{width:100%;padding:6px 10px}.tv-panel--collapsed .tv-panel-content{display:none}}.tv-panel-toggle{width:20px;height:22px;padding:0;cursor:pointer;font-size:var(--ptv-fs-2xs);line-height:1;color:#c9a227;background:#0a0704bf;border:1px solid #3e2c1e;border-radius:3px}.tv-panel-toggle:hover{color:#f0d060;border-color:#6b4f36}@media(min-width:769px){.tv-panel-toggle{position:absolute;top:6px;left:4px;z-index:3}.tv-panel--collapsed{width:28px;padding-left:2px;padding-right:2px}.tv-panel--collapsed>*:not(.tv-panel-toggle){display:none}}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px 60px;text-align:center;position:relative}.hero-logos{display:flex;align-items:center;gap:12px;margin-bottom:20px;position:relative}.hero-logos:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:300px;background:radial-gradient(ellipse,var(--ptv-glow) 0%,transparent 70%);pointer-events:none}.hero-logo{width:150px;height:auto;flex-shrink:0;margin-bottom:-12px;filter:drop-shadow(0 0 20px var(--ptv-glow))}.hero-wordmark-logo{width:315px;max-width:70vw;height:auto;filter:drop-shadow(0 0 16px var(--ptv-glow))}.channel{opacity:0}.channel-1{animation:ch1 12s linear infinite}.channel-2{animation:ch2 12s linear infinite}.channel-3{animation:ch3 12s linear infinite}.channel-4{animation:ch4 12s linear infinite}.channel-5{animation:ch5 12s linear infinite}.channel-6{animation:ch6 12s linear infinite}@keyframes ch1{0%{opacity:1}14.2%{opacity:1}14.5%{opacity:0}to{opacity:0}}@keyframes ch2{0%,16.4%{opacity:0}16.7%{opacity:1}30.8%{opacity:1}31.1%{opacity:0}to{opacity:0}}@keyframes ch3{0%,33%{opacity:0}33.3%{opacity:1}47.5%{opacity:1}47.8%{opacity:0}to{opacity:0}}@keyframes ch4{0%,49.7%{opacity:0}50%{opacity:1}64.2%{opacity:1}64.5%{opacity:0}to{opacity:0}}@keyframes ch5{0%,66.4%{opacity:0}66.7%{opacity:1}80.8%{opacity:1}81.1%{opacity:0}to{opacity:0}}@keyframes ch6{0%,83%{opacity:0}83.3%{opacity:1}97.5%{opacity:1}97.8%{opacity:0}to{opacity:0}}.tv-static{opacity:0;animation:tvStatic 12s linear infinite}@keyframes tvStatic{0%,14%{opacity:0}14.2%{opacity:.7}16.5%{opacity:.7}16.7%{opacity:0}30.6%{opacity:0}30.8%{opacity:.7}33.1%{opacity:.7}33.3%{opacity:0}47.3%{opacity:0}47.5%{opacity:.7}49.8%{opacity:.7}50%{opacity:0}64%{opacity:0}64.2%{opacity:.7}66.5%{opacity:.7}66.7%{opacity:0}80.6%{opacity:0}80.8%{opacity:.7}83.1%{opacity:.7}83.3%{opacity:0}97.3%{opacity:0}97.5%{opacity:.7}99.8%{opacity:.7}to{opacity:0}}.hero-tagline{font-size:1.15rem;color:var(--ptv-text-muted);max-width:400px;line-height:1.5}.tv-guide{max-width:900px;margin:0 auto;padding:0 24px 80px}.guide-scroll{overflow-x:auto}.guide-wrap{min-width:620px;border:1px solid var(--ptv-border);border-radius:8px;overflow:hidden}.guide-header{display:grid;grid-template-columns:52px repeat(6,1fr);background:var(--ptv-accent)}.guide-corner{display:flex;align-items:center;justify-content:center;padding:10px 4px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ptv-accent-text);background:var(--ptv-accent)}.guide-time{display:flex;align-items:center;padding:10px;font-size:.85rem;font-weight:700;color:var(--ptv-accent-text);border-left:1px solid rgba(0,0,0,.1)}.guide-section{padding:8px 16px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ptv-text-muted);background:var(--ptv-bg-surface, #111320);border-top:1px solid var(--ptv-border)}.guide-section-badge{font-size:.6rem;font-weight:700;color:#aaa;background:var(--ptv-border);padding:1px 6px;border-radius:2px;margin-left:8px;vertical-align:middle;letter-spacing:.04em}.guide-row{display:grid;grid-template-columns:52px repeat(6,1fr);border-top:1px solid var(--ptv-bg-raised)}.guide-ch{display:flex;align-items:center;justify-content:center;padding:0 4px;font-size:.82rem;font-weight:700;font-family:SF Mono,Consolas,Monaco,monospace;color:var(--ptv-accent);background:var(--ptv-bg-deep, #0d0f16);border-right:1px solid var(--ptv-bg-raised)}.guide-prog{display:flex;align-items:center;gap:10px;padding:12px 14px;min-height:56px;border-left:1px solid var(--ptv-bg-raised);text-decoration:none;color:inherit;overflow:hidden}.guide-prog-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:1.3rem;line-height:1;text-align:center}.guide-prog-name{font-size:.95rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guide-prog-sub{font-size:.78rem;color:var(--ptv-text-muted);white-space:nowrap}.prog-live{background:#e8c8400f;border-left:3px solid var(--ptv-accent)!important;transition:background .15s}.prog-live:hover{background:#e8c8401f}.prog-live .guide-prog-name{color:var(--ptv-accent)}.prog-event{background:#4088e80f;border-left:3px solid var(--ptv-info)!important}.prog-event .guide-prog-name{color:#6aacf0}.prog-event .guide-prog-sub{color:#4a7aaa}.prog-empty{background:#0a0c12;justify-content:center}.guide-no-signal{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ptv-border)}.guide-badge{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:2px;margin-left:auto;white-space:nowrap;flex-shrink:0}.badge-live{background:var(--ptv-accent);color:var(--ptv-accent-text)}.footer{text-align:center;padding:40px 24px;border-top:1px solid var(--ptv-bg-raised);color:var(--ptv-text-muted);font-size:.85rem}.footer a{color:var(--ptv-accent);text-decoration:none}.footer a:hover{text-decoration:underline}@media(max-width:600px){.hero{padding:60px 20px 40px}.hero-logos{gap:10px}.hero-logo{width:100px}.hero-wordmark-logo{width:220px}.hero-tagline{font-size:1rem}.guide-prog-sub{display:none}.guide-badge{font-size:.6rem;padding:2px 6px}.guide-wrap{min-width:0}.guide-header{grid-template-columns:40px 1fr}.guide-header .guide-time{display:none}.guide-header .guide-time:first-of-type{display:flex}.guide-row{grid-template-columns:40px 1fr}.guide-row .guide-prog{grid-column:2 / -1!important}.guide-row .guide-prog.prog-empty{display:none}}@media(prefers-reduced-motion:reduce){.channel-1,.channel-2,.channel-3,.channel-4,.channel-5,.channel-6{animation:none!important}}:root[data-theme=midnight]{--ptv-accent: #6a9fff;--ptv-accent-hover: #8ab5ff;--ptv-accent-text: #0a1428;--ptv-bg: #0a1428;--ptv-bg-raised: #122040;--ptv-bg-overlay: #1a3060;--ptv-border: #1e3a6e;--ptv-table: #0e2240;--ptv-table-dark: #0a1830;--ptv-text: #c0d8f0;--ptv-text-muted: #5a7a9a;--ptv-card-back: #2a4a8a;--ptv-card-back-dark: #1a2a5a;--ptv-card-selected: #6a9fff;--ptv-glow: rgba(106, 159, 255, .3);--ptv-scanline: .03}:root[data-theme=forest]{--ptv-accent: #8cc63f;--ptv-accent-hover: #a4d65a;--ptv-accent-text: #0e1a08;--ptv-bg: #0e1a0e;--ptv-bg-raised: #1a2e1a;--ptv-bg-overlay: #2a4a2a;--ptv-border: #2a3e2a;--ptv-table: #1a3a1a;--ptv-table-dark: #122c12;--ptv-text: #c8e0c0;--ptv-text-muted: #5a8a5a;--ptv-card-back: #2a5a2a;--ptv-card-back-dark: #1a3a1a;--ptv-card-selected: #8cc63f;--ptv-glow: rgba(140, 198, 63, .3);--ptv-scanline: .04}:root[data-theme=cherry]{--ptv-accent: #e84040;--ptv-accent-hover: #f06060;--ptv-accent-text: #1a0808;--ptv-bg: #1a0e0e;--ptv-bg-raised: #2e1a1a;--ptv-bg-overlay: #4a2a2a;--ptv-border: #3e2a2a;--ptv-table: #3a1a1a;--ptv-table-dark: #2c1212;--ptv-text: #e0c8c0;--ptv-text-muted: #8a5a5a;--ptv-card-back: #8a2a2a;--ptv-card-back-dark: #5a1a1a;--ptv-card-selected: #e84040;--ptv-glow: rgba(232, 64, 64, .3);--ptv-scanline: .04}:root{--ptv-accent: #e8c840;--ptv-accent-hover: #f0d860;--ptv-accent-text: #1a1d2e;--ptv-bg: #0f1118;--ptv-bg-raised: #1a1d2e;--ptv-bg-overlay: #1d1a17;--ptv-panel: var(--ptv-bg-overlay);--ptv-border: #2a2d3e;--ptv-table: #1a5c2a;--ptv-table-dark: #14481f;--ptv-text: #e0e0e0;--ptv-text-muted: #a8a8b0;--ptv-text-on-accent: #333;--ptv-card-bg: #fff;--ptv-card-border: #ccc;--ptv-card-red: #d42;--ptv-card-black: #222;--ptv-card-back: #2a5aa8;--ptv-card-back-dark: #1a3a68;--ptv-card-selected: var(--ptv-accent);--ptv-error: #f66;--ptv-success: #4caf50;--ptv-info: #4088e8;--ptv-fs-2xs: .78rem;--ptv-fs-xs: .88rem;--ptv-fs-sm: .98rem;--ptv-fs-md: 1.08rem;--ptv-fs-lg: 1.24rem;--ptv-fs-xl: 1.5rem;--ptv-fs-2xl: 1.75rem;--ptv-fs-3xl: 2.15rem;--ptv-lh-tight: 1.25;--ptv-lh-normal: 1.45;--ptv-fw-muted: 500;--ptv-glow: rgba(232, 200, 64, .3);--ptv-scanline: .05;--ptv-z-scanline: 9000;--ptv-z-lit: 9100;--ptv-z-overlay: 9500;--ptv-z-toast: 9800}.card{width:clamp(56px,7vw,80px);height:clamp(80px,9.8vw,114px);border-radius:6px;background:var(--ptv-card-bg);border:1px solid var(--ptv-card-border);position:relative;display:inline-flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;transition:transform .15s,box-shadow .15s;flex-shrink:0;box-shadow:0 2px 6px #00000059,0 1px 2px #0003}.card-small{width:clamp(42px,5.2vw,62px);height:clamp(60px,7.3vw,88px);font-size:.85em}:root{--ptv-suit-hearts: var(--ptv-card-red);--ptv-suit-diamonds: #1b6fd4;--ptv-suit-clubs: #1a7f37;--ptv-suit-spades: var(--ptv-card-black)}:root[data-deck=classic]{--ptv-suit-diamonds: var(--ptv-card-red);--ptv-suit-clubs: var(--ptv-card-black)}.card-suit-hearts{color:var(--ptv-suit-hearts)}.card-suit-diamonds{color:var(--ptv-suit-diamonds)}.card-suit-clubs{color:var(--ptv-suit-clubs)}.card-suit-spades{color:var(--ptv-suit-spades)}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;font-size:.85rem;line-height:1;gap:1px}.card-top-left{top:4px;left:5px}.card-bottom-right{bottom:4px;right:5px;transform:rotate(180deg)}.card-rank{font-weight:800;font-size:1.3rem;line-height:1;letter-spacing:-.02em}.card-suit{font-size:1.15rem;line-height:1}.card-center{font-size:2.6rem}.card-small .card-center{font-size:1.7rem}.card-small .card-rank{font-size:1rem}.card-small .card-suit{font-size:.75rem}.card-small .card-corner{font-size:.85rem}.card-playable{cursor:pointer}.card-playable:hover{transform:translateY(-8px);box-shadow:0 4px 16px #0006,0 0 12px var(--ptv-glow);z-index:10}.card-selected{transform:translateY(-16px);box-shadow:0 0 0 3px var(--ptv-card-selected),0 4px 12px #0000004d;animation:card-glow-pulse 1.5s ease-in-out infinite}.card-selected:hover{transform:translateY(-16px)}@keyframes card-glow-pulse{0%,to{box-shadow:0 0 0 3px var(--ptv-card-selected),0 4px 12px #0000004d}50%{box-shadow:0 0 0 3px var(--ptv-card-selected),0 0 18px var(--ptv-glow),0 4px 12px #0000004d}}.card-back{background:linear-gradient(160deg,var(--ptv-card-back),var(--ptv-card-back-dark));border:2px solid rgba(255,255,255,.15);overflow:hidden}.card-back-inner{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid rgba(255,255,255,.1);border-radius:3px;display:flex;align-items:center;justify-content:center}.card-back-logo{width:48px;height:auto;opacity:.3;filter:drop-shadow(0 0 4px rgba(255,255,255,.15))}.card-small .card-back-logo{width:36px}@media(max-width:900px){.card-corner{font-size:.8rem}.card-rank{font-size:1.1rem}.card-suit{font-size:.8rem}.card-center{font-size:2.1rem}.card-small .card-center{font-size:1.45rem}.card-small .card-rank{font-size:.85rem}.card-small .card-suit,.card-small .card-corner{font-size:.65rem}.card-back-logo{width:36px}.card-small .card-back-logo{width:26px}}@media(max-width:600px){.card-corner{font-size:.7rem}.card-rank{font-size:.95rem}.card-suit{font-size:.75rem}.card-center{font-size:1.8rem}.card-small .card-center{font-size:1.2rem}.card-back-logo{width:28px}.card-small .card-back-logo{width:20px}}@media(prefers-reduced-motion:reduce){.card-selected{animation:none!important}}:focus-visible{outline:2px solid var(--ptv-accent, #6366f1);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ptv-accent, #6366f1);outline-offset:2px}.game-board{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.top-bar{padding:6px 10px;background:var(--ptv-bg-raised);border-bottom:2px solid var(--ptv-accent);display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:4px 8px;flex-shrink:0;overflow:hidden}.game-info{display:flex;gap:clamp(.5rem,2vw,1.5rem);font-size:clamp(.75rem,1.2vw,.9rem);color:#fffc}.on-air{display:flex;align-items:center;gap:6px;font-size:var(--ptv-fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f44;margin-right:auto;padding-right:1.5rem}.on-air-dot{width:8px;height:8px;border-radius:50%;background:#f44;animation:on-air-blink 1.5s ease-in-out infinite}@keyframes on-air-blink{0%,to{opacity:1}50%{opacity:.2}}.viewer-count{margin-left:4px;font-size:var(--ptv-fs-2xs);font-weight:600;color:#f88}.table{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);grid-template-rows:auto 1fr;overflow:hidden}.opponent-hand{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.opponent-name{font-size:clamp(.7rem,1.1vw,.9rem);color:#fff;background:#0f1118cc;padding:3px 8px;border-radius:4px;border-left:3px solid var(--ptv-accent);white-space:nowrap;min-width:clamp(60px,8vw,100px)}.bot-badge{display:inline-block;font-size:.7em;font-weight:700;background:#ffffff26;color:#fff9;padding:1px 4px;border-radius:3px;margin-right:4px;vertical-align:middle;letter-spacing:.5px}.nameplate-score{margin-left:6px;font-size:.8em;font-weight:700;color:var(--ptv-accent);opacity:.85}.player-nameplate{display:flex;justify-content:center;padding:0 12px 2px;flex-shrink:0}.player-nameplate .opponent-name{font-size:clamp(.7rem,1.1vw,.85rem)}.turn-indicator{color:var(--ptv-accent);font-style:italic}.turn-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--ptv-accent);margin-left:6px;vertical-align:middle;animation:turn-dot-pulse 1s ease-in-out infinite;box-shadow:0 0 6px var(--ptv-glow)}@keyframes turn-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.opponent-top{grid-column:1 / -1;justify-self:center;padding-top:8px;width:clamp(200px,30vw,400px)}.opponent-left{grid-column:1;grid-row:2;justify-self:end;align-self:center;padding-left:8px;width:clamp(100px,18vw,250px)}.opponent-right{grid-column:3;grid-row:2;justify-self:start;align-self:center;padding-right:8px;width:clamp(100px,18vw,250px)}.opponent-cards{display:flex;gap:0;min-height:clamp(60px,7.3vw,88px)}.opponent-cards .card-back{margin-left:clamp(-28px,-2.5vw,-14px);transition:margin .2s ease}.opponent-cards .card-back:first-child{margin-left:0}.opponent-cards-left,.opponent-cards-right{overflow:hidden}.opponent-cards-left .card-back,.opponent-cards-right .card-back{margin-left:clamp(-46px,-4.8vw,-20px);margin-top:0}.opponent-cards-left,.opponent-cards-right{max-width:100%}.opponent-cards-left .card-back:first-child,.opponent-cards-right .card-back:first-child{margin-left:0}.trick-area{grid-column:2;grid-row:2;justify-self:center;align-self:center;position:relative;width:clamp(120px,18vw,200px);height:clamp(120px,18vw,200px)}.trick-area:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:clamp(140px,20vw,220px);height:clamp(140px,20vw,220px);border-radius:50%;background:radial-gradient(circle,var(--ptv-glow) 0%,transparent 70%);pointer-events:none}.trick-card{position:absolute}.trick-card-bottom{bottom:0;left:50%;transform:translate(-50%);animation:slide-from-bottom .42s cubic-bezier(.22,.68,.35,1)}.trick-card-top{top:0;left:50%;transform:translate(-50%);animation:slide-from-top .42s cubic-bezier(.22,.68,.35,1)}.trick-card-left{left:0;top:50%;transform:translateY(-50%);animation:slide-from-left .42s cubic-bezier(.22,.68,.35,1)}.trick-card-right{right:0;top:50%;transform:translateY(-50%);animation:slide-from-right .42s cubic-bezier(.22,.68,.35,1)}@keyframes slide-from-bottom{0%{transform:translate(-50%) translateY(190px) scale(.82);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}@keyframes slide-from-top{0%{transform:translate(-50%) translateY(-190px) scale(.82);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}@keyframes slide-from-left{0%{transform:translateY(-50%) translate(-230px) scale(.82);opacity:0}to{transform:translateY(-50%) translate(0) scale(1);opacity:1}}@keyframes slide-from-right{0%{transform:translateY(-50%) translate(230px) scale(.82);opacity:0}to{transform:translateY(-50%) translate(0) scale(1);opacity:1}}.trick-collecting .trick-card-bottom{animation:collect-bottom .4s ease-in .3s forwards}.trick-collecting .trick-card-top{animation:collect-top .4s ease-in .3s forwards}.trick-collecting .trick-card-left{animation:collect-left .4s ease-in .3s forwards}.trick-collecting .trick-card-right{animation:collect-right .4s ease-in .3s forwards}@keyframes collect-bottom{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%) translateY(-30px) scale(.85);opacity:0}}@keyframes collect-top{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%) translateY(30px) scale(.85);opacity:0}}@keyframes collect-left{0%{transform:translateY(-50%);opacity:1}to{transform:translateY(-50%) translate(30px) scale(.85);opacity:0}}@keyframes collect-right{0%{transform:translateY(-50%);opacity:1}to{transform:translateY(-50%) translate(-30px) scale(.85);opacity:0}}.trick-collecting{--collect-hold: .62s}.trick-collecting--to-bottom{--sweep-x: 0px;--sweep-y: 120px}.trick-collecting--to-top{--sweep-x: 0px;--sweep-y: -120px}.trick-collecting--to-left{--sweep-x: -150px;--sweep-y: 0px}.trick-collecting--to-right{--sweep-x: 150px;--sweep-y: 0px}.trick-collecting[class*=trick-collecting--to-] .trick-card-bottom,.trick-collecting[class*=trick-collecting--to-] .trick-card-top{animation:collect-sweep-x .46s cubic-bezier(.4,0,.2,1) var(--collect-hold) forwards}.trick-collecting[class*=trick-collecting--to-] .trick-card-left,.trick-collecting[class*=trick-collecting--to-] .trick-card-right{animation:collect-sweep-y .46s cubic-bezier(.4,0,.2,1) var(--collect-hold) forwards}@keyframes collect-sweep-x{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%) translate(var(--sweep-x, 0px),var(--sweep-y, 0px)) scale(.8);opacity:0}}@keyframes collect-sweep-y{0%{transform:translateY(-50%);opacity:1}to{transform:translateY(-50%) translate(var(--sweep-x, 0px),var(--sweep-y, 0px)) scale(.8);opacity:0}}.trick-collecting .trick-card--winner{z-index:5}.trick-collecting .trick-card--winner .card{animation:trick-winner-flash .62s ease-out;box-shadow:0 0 0 2px var(--ptv-accent),0 0 18px 4px var(--ptv-glow);border-radius:6px}@keyframes trick-winner-flash{0%{box-shadow:0 0 0 0 transparent}35%{box-shadow:0 0 0 3px var(--ptv-accent),0 0 26px 8px var(--ptv-glow)}to{box-shadow:0 0 0 2px var(--ptv-accent),0 0 18px 4px var(--ptv-glow)}}.pass-cue{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;pointer-events:none;z-index:20;animation:pass-cue-fade 1.5s ease-out forwards}.pass-cue-label{font-size:var(--ptv-fs-md);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ptv-accent);text-shadow:0 0 10px var(--ptv-glow);background:#0f1118d1;border:1px solid var(--ptv-border);border-radius:4px;padding:8px 16px}.pass-cue-arrow{font-size:var(--ptv-fs-2xl);color:var(--ptv-accent);text-shadow:0 0 10px var(--ptv-glow)}.pass-cue--left .pass-cue-arrow{animation:pass-sweep-left 1.1s ease-out forwards}.pass-cue--right .pass-cue-arrow{animation:pass-sweep-right 1.1s ease-out forwards}.pass-cue--across .pass-cue-arrow{animation:pass-sweep-across 1.1s ease-out forwards}@keyframes pass-cue-fade{0%{opacity:0}15%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes pass-sweep-left{0%{transform:translate(28px)}to{transform:translate(-28px)}}@keyframes pass-sweep-right{0%{transform:translate(-28px)}to{transform:translate(28px)}}@keyframes pass-sweep-across{0%{transform:translateY(22px) scale(.85)}to{transform:translateY(-22px) scale(1.05)}}.turn-clock{display:inline-block;margin-left:8px;font-variant-numeric:tabular-nums;font-size:var(--ptv-fs-sm);font-weight:700;color:var(--ptv-text-dim, #9aa3b2)}.turn-clock--urgent{color:var(--ptv-danger, #e84040);animation:turn-clock-urgent 1s ease-in-out infinite}@keyframes turn-clock-urgent{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.trick-collecting .trick-card-bottom,.trick-collecting .trick-card-top,.trick-collecting .trick-card-left,.trick-collecting .trick-card-right,.pass-cue,.pass-cue-arrow,.turn-clock--urgent{animation-duration:1ms!important;animation-iteration-count:1!important}}.status-bar{padding:6px 12px;background:#0f111899;border-left:3px solid var(--ptv-accent);text-align:center;font-size:clamp(.75rem,1.3vw,1rem);height:32px;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-shrink:0}.status-bar>span:first-child{min-width:12em}.status-my-turn{color:var(--ptv-accent);font-weight:600;animation:status-glow 2s ease-in-out infinite}@keyframes status-glow{0%,to{text-shadow:none}50%{text-shadow:0 0 8px var(--ptv-glow)}}.status-shake{animation:shake .4s ease}.status-shake>span:first-child{color:var(--ptv-error, #f66)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.status-error{color:var(--ptv-error)}.player-hand{display:flex;justify-content:center;padding:8px clamp(4px,1.5vw,16px) clamp(8px,1.5vw,16px);gap:0;min-height:clamp(104px,12.4vw,142px);height:clamp(104px,12.4vw,142px);background:#0003;overflow-x:auto;overflow-y:hidden;flex-shrink:0}.player-hand .card{margin-left:min(-8px,calc(clamp(56px,7vw,80px) * var(--hand-overlap, -.34)));transition:transform .15s,box-shadow .15s,margin .15s;animation:card-deal-in .3s ease-out}@keyframes card-deal-in{0%{opacity:0;transform:translateY(20px)}}.player-hand .card:first-child{margin-left:0}.scoreboard{position:fixed;top:48px;right:8px;background:#0f1118d9;border-radius:8px;padding:12px;font-size:var(--ptv-fs-xs);max-width:300px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--ptv-border);border-top:2px solid var(--ptv-accent)}.scoreboard h3{margin-bottom:6px;font-size:var(--ptv-fs-sm);color:var(--ptv-accent)}.scoreboard table{border-collapse:collapse;width:100%}.scoreboard th,.scoreboard td{padding:2px 6px;text-align:right;border-bottom:1px solid #fff2}.scoreboard th:first-child,.scoreboard td:first-child{text-align:left}.score-total{font-weight:700}.score-ellipsis{color:var(--ptv-text-muted);font-size:.7em;padding:2px!important}.tv-panel-content .scoreboard{position:static;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border:none;border-top:1px solid rgba(255,255,255,.08);border-radius:0;padding:8px 4px;max-width:none;font-size:var(--ptv-fs-sm)}.tv-panel-content .scoreboard h3{font-size:var(--ptv-fs-xs);margin-bottom:4px;color:#c8a060}.tv-panel-content .scoreboard th,.tv-panel-content .scoreboard td{padding:3px 4px;font-size:var(--ptv-fs-xs);border-bottom-color:#ffffff0d}.tv-panel-content .scoreboard td:first-child{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-over-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:var(--ptv-z-overlay, 9500)}.game-over-dialog{background:var(--ptv-bg-overlay);border-radius:16px;padding:clamp(1rem,3vw,2rem);text-align:center;min-width:min(300px,85vw);box-shadow:0 8px 32px #00000080;border:1px solid var(--ptv-border);border-top:3px solid var(--ptv-accent);animation:dialog-enter .3s ease-out}@keyframes dialog-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.game-over-dialog h2{font-size:var(--ptv-fs-3xl);margin-bottom:.5rem}.game-over-title{margin:0 0 .75rem;line-height:var(--ptv-lh-tight)}.game-over-scores{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:2px;text-align:left}.game-over-scores li{display:grid;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;font-size:var(--ptv-fs-md);background:#ffffff08}.game-over-scores li.winner{background:color-mix(in srgb,var(--ptv-accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--ptv-accent) 42%,transparent);font-weight:600}.game-over-place{font-size:var(--ptv-fs-xs);font-weight:700;color:var(--ptv-text-muted);text-align:center}.game-over-scores li.winner .game-over-place{color:var(--ptv-accent)}.game-over-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-over-pts{font-variant-numeric:tabular-nums;font-weight:600}.winner-text{font-size:var(--ptv-fs-xl);color:var(--ptv-accent);margin-bottom:1rem}.leaderboard-rank{font-size:var(--ptv-fs-lg);color:var(--ptv-accent);margin:.5rem 0}.leaderboard-rank strong{font-size:var(--ptv-fs-xl)}.final-scores{margin:1rem 0}.final-score-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #fff2}.final-score-row:first-child{background:#e8c8401a;border-radius:4px;padding:6px 4px;border-left:3px solid var(--ptv-accent)}.final-rank{color:#fffa;width:30px}.final-name{flex:1;text-align:left}.final-score{font-weight:600}.play-again-button{margin-top:1rem}.sound-control{display:flex;align-items:center;gap:6px;margin-left:auto}.sound-toggle{background:none;border:none;color:#fffc;font-size:var(--ptv-fs-lg);cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.sound-toggle:hover{background:#fff2}.sound-slider{width:60px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none;cursor:pointer}.sound-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fffc;cursor:pointer}.sound-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fffc;border:none;cursor:pointer}.connecting{display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--ptv-fs-xl);color:var(--ptv-text-muted);animation:connecting-pulse 1.5s ease-in-out infinite}@keyframes connecting-pulse{0%,to{opacity:.5}50%{opacity:1}}.lobby{display:flex;flex-direction:column;align-items:center;justify-content:safe center;height:100%;gap:8px;padding:8px 24px;overflow-y:auto}.lobby h1{font-size:clamp(1.3rem,3vw,1.8rem);text-shadow:0 0 20px var(--ptv-glow),2px 2px 4px rgba(0,0,0,.5);margin:0}.lobby-form{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;max-width:300px;background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 20px;flex-shrink:0}.lobby-form input{padding:8px 12px;font-size:var(--ptv-fs-md);border:2px solid rgba(255,255,255,.15);border-radius:8px;background:#ffffff0f;color:#fff;outline:none;width:100%;transition:border-color .15s}.lobby-form input::placeholder{color:#ffffff80}.lobby-form input:focus{border-color:var(--ptv-accent)}.lobby-form button{padding:8px 24px;font-size:var(--ptv-fs-md);border:none;border-radius:8px;background:var(--ptv-accent);color:var(--ptv-text-on-accent);cursor:pointer;font-weight:600;width:100%;transition:background .15s,box-shadow .15s}.pass-button,.play-again-button{padding:10px 24px;font-size:var(--ptv-fs-lg);border:none;border-radius:8px;background:var(--ptv-accent);color:var(--ptv-text-on-accent);cursor:pointer;font-weight:600;transition:background .15s,box-shadow .15s}.lobby-form button:hover,.pass-button:hover:not(:disabled),.play-again-button:hover:not(:disabled){background:var(--ptv-accent-hover);box-shadow:0 0 16px var(--ptv-glow)}.pass-button:disabled{opacity:.5;cursor:not-allowed}.lobby-info{color:#ffffff73;font-size:var(--ptv-fs-sm);text-align:center;margin:2px 0 0}.lobby-error{color:var(--ptv-error, #f66);font-size:var(--ptv-fs-sm);font-weight:600;text-align:center}.lobby-label{font-size:var(--ptv-fs-xs);font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.08em;align-self:flex-start}.lobby-hint{font-size:var(--ptv-fs-xs);color:#fff6;text-align:center;line-height:1.3;margin:0}.lobby-welcome{color:var(--ptv-accent, #e8c840);font-size:var(--ptv-fs-lg);font-weight:600;margin:0}.lobby-coins{color:#e8c840;font-size:var(--ptv-fs-md);font-weight:700;text-shadow:0 0 6px rgba(232,200,64,.3);margin:0}.lobby-form-wide{max-width:360px}.lobby-play-now{font-size:var(--ptv-fs-lg)!important;padding:14px 24px!important;margin-top:4px}.lobby-actions{display:flex;gap:8px;width:100%}.lobby-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px!important;background:#ffffff0d!important;border:1px solid rgba(255,255,255,.1)!important;border-radius:8px!important;cursor:pointer;transition:background .15s,border-color .15s;position:relative}.lobby-action-btn:hover{background:#ffffff14!important;border-color:#fff3!important}.lobby-action-icon{font-size:var(--ptv-fs-lg);line-height:1}.lobby-action-label{font-size:var(--ptv-fs-xs);font-weight:600;color:#fff9}.lobby-action-badge{position:absolute;top:-4px;right:-4px;font-size:var(--ptv-fs-2xs);font-weight:700;background:#50b860;color:#fff;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.lobby-view-header{display:flex;align-items:center;gap:8px;width:100%}.lobby-view-header h2{margin:0;font-size:var(--ptv-fs-lg);flex:1}.lobby-back-btn{padding:4px 10px!important;font-size:var(--ptv-fs-sm)!important;width:auto!important;background:#ffffff0f!important;color:#fff9!important}.lobby-back-btn:hover{background:#ffffff1a!important}.lobby-create-btn{padding:6px 14px!important;font-size:var(--ptv-fs-sm)!important;width:auto!important;align-self:flex-end}.lobby-divider{width:100%;height:1px;background:#ffffff14;margin:4px 0}.lobby-code-input{display:flex;gap:6px}.lobby-code-input input{flex:1;text-transform:uppercase;letter-spacing:.15em;font-family:monospace;text-align:center}.lobby-code-input button{width:auto!important;padding:8px 16px!important}.lobby-private-section{display:flex;flex-direction:column;gap:6px;width:100%}.lobby-private-section h3{font-size:var(--ptv-fs-sm);margin:0;color:#ffffffb3}.room-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.room-list-empty{color:#fff6;font-size:var(--ptv-fs-sm);text-align:center;padding:16px 0}.room-list-row{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#ffffff0a;border-radius:6px;border-left:3px solid transparent;transition:background .15s}.room-list-row:hover{background:#ffffff12}.room-status-open{border-left-color:#50b860}.room-status-almost-full{border-left-color:#e8c840}.room-status-playing{border-left-color:#ffffff26}.room-list-info{display:flex;align-items:center;gap:8px;min-width:0}.room-list-name{font-size:var(--ptv-fs-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-list-seats{font-size:var(--ptv-fs-xs);background:#ffffff14;padding:1px 6px;border-radius:4px;font-weight:600;flex-shrink:0}.room-list-settings{display:flex;gap:4px}.room-list-tag{font-size:var(--ptv-fs-2xs);background:#ffffff0f;padding:1px 5px;border-radius:3px;color:#ffffff80}.room-join-btn,.room-spectate-btn{padding:3px 12px;font-size:var(--ptv-fs-xs);border:none;border-radius:5px;cursor:pointer;font-weight:600;transition:background .15s}.room-join-btn{background:var(--ptv-accent);color:var(--ptv-text-on-accent)}.room-join-btn:hover{background:var(--ptv-accent-hover)}.room-spectate-btn{background:#ffffff14;color:#fff9}.room-spectate-btn:hover{background:#ffffff1f}.room-form{display:flex;flex-direction:column;gap:8px;width:100%}.room-form h3{margin:0;font-size:var(--ptv-fs-md)}.room-form-presets{display:flex;flex-direction:column;gap:4px}.room-form-label{font-size:var(--ptv-fs-xs);font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.06em}.room-form-preset-grid{display:flex;gap:6px;flex-wrap:wrap}.room-preset-card{flex:1;min-width:80px;padding:6px 8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;cursor:pointer;text-align:left;color:#fff;transition:background .15s,border-color .15s;display:flex;flex-direction:column;gap:2px}.room-preset-card:hover{background:#ffffff1a;border-color:var(--ptv-accent)}.room-preset-name{font-size:var(--ptv-fs-sm);font-weight:600}.room-preset-desc{font-size:var(--ptv-fs-2xs);color:#ffffff80;line-height:1.3}.room-form-custom-toggle{padding:4px 12px;font-size:var(--ptv-fs-xs);background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:5px;color:#fff9;cursor:pointer;width:fit-content;transition:background .15s}.room-form-custom-toggle:hover{background:#ffffff14}.room-form-settings{display:flex;flex-direction:column;gap:6px;padding:8px;background:#00000026;border-radius:6px}.room-form-field{display:flex;flex-direction:column;gap:2px}.room-form-field select,.room-form-field input[type=number]{padding:5px 8px;font-size:var(--ptv-fs-sm);border:1px solid rgba(255,255,255,.15);border-radius:5px;background:#ffffff0f;color:#fff;outline:none}.room-form-field select:focus,.room-form-field input[type=number]:focus{border-color:var(--ptv-accent)}.room-form-toggle-row{display:flex;align-items:center;gap:8px;font-size:var(--ptv-fs-sm);cursor:pointer;color:#fffc}.room-form-toggle-row input[type=checkbox]{accent-color:var(--ptv-accent)}.room-form-actions{display:flex;gap:8px}.room-form-cancel{flex:1;padding:6px 12px!important;background:#ffffff0f!important;color:#fff9!important}.room-form-submit{flex:2;padding:6px 12px!important}.pre-game-lobby{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:320px}.pre-game-header{display:flex;align-items:center;gap:10px}.pre-game-header h2{margin:0;font-size:var(--ptv-fs-lg);text-shadow:0 0 12px var(--ptv-glow)}.pre-game-starting,.pre-game-countdown{font-size:var(--ptv-fs-sm);color:var(--ptv-accent);font-weight:600;animation:status-glow 2s ease-in-out infinite}.pre-game-invite{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);border-radius:8px;width:100%;justify-content:center}.pre-game-invite-label{font-size:var(--ptv-fs-xs);color:#ffffff80}.pre-game-invite-code{font-family:monospace;font-size:var(--ptv-fs-xl);font-weight:700;letter-spacing:.15em;color:var(--ptv-accent)}.pre-game-invite-copy{padding:3px 10px!important;font-size:var(--ptv-fs-2xs)!important;width:auto!important}.pre-game-seats{display:flex;flex-direction:column;gap:4px;width:100%}.pre-game-seat{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);transition:background .15s,border-color .15s;min-height:38px}.seat-filled{background:#ffffff0d;border-color:#ffffff1a}.seat-ready{border-color:#50b860}.seat-me{border-color:var(--ptv-accent);background:#e8c8400d}.seat-empty{border-style:dashed}.seat-name{font-size:var(--ptv-fs-sm);font-weight:600;display:flex;align-items:center;gap:6px}.seat-ai-badge{font-size:var(--ptv-fs-2xs);padding:1px 5px;border-radius:3px;background:#40c8e826;color:#40c8e8;font-weight:700;text-transform:uppercase}.seat-host-badge{font-size:var(--ptv-fs-2xs);padding:1px 5px;border-radius:3px;background:#e8c84026;color:var(--ptv-accent);font-weight:700;text-transform:uppercase}.seat-status{font-size:var(--ptv-fs-2xs);font-weight:600}.status-ready{color:#50b860}.status-waiting{color:#ffffff59}.seat-placeholder{font-size:var(--ptv-fs-sm);color:#ffffff40;font-style:italic}.seat-kick{background:none;border:none;color:#ffffff4d;cursor:pointer;font-size:var(--ptv-fs-2xs);padding:2px 6px;border-radius:3px;width:auto!important}.seat-kick:hover{background:#ff505026;color:#f66}.pre-game-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;width:100%}.pre-game-ready-btn{background:#50b860!important;color:#fff!important;flex:1}.pre-game-unready-btn{background:#ffffff14!important;color:#fff9!important;flex:1}.pre-game-start-btn{background:var(--ptv-accent)!important;flex:1}.pre-game-start-btn:disabled{opacity:.4;cursor:not-allowed}.pre-game-fill-btn{background:#40c8e81f!important;color:#40c8e8!important;flex:1}.pre-game-leave-btn{background:#ff50501a!important;color:#ff5050b3!important;width:100%!important;font-size:var(--ptv-fs-xs)!important}.pre-game-hint{font-size:var(--ptv-fs-xs);color:#ffffff59;text-align:center;margin:0}.tv-chat{display:flex;flex-direction:column;height:100%;font-size:var(--ptv-fs-sm);color:#e8dcc8;background:#0c0e16d9;border-radius:3px}.tv-chat-messages{flex:1;overflow-y:auto;padding:4px 8px;display:flex;flex-direction:column;gap:1px;min-height:0}.tv-chat-msg{line-height:1.3;word-break:break-word}.tv-chat-sender{font-weight:700;color:#d4a84c}.tv-chat-input-row{display:flex;gap:6px;padding:6px 8px;border-top:1px solid rgba(255,255,255,.1);background:#0003}.tv-chat-input{flex:1;background:#00000073;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#f0e8d8;font-size:var(--ptv-fs-sm);padding:6px 8px;outline:none}.tv-chat-input::placeholder{color:#e0d0b8a6}.tv-chat-input:focus{border-color:#d4a84c66}.tv-chat-send{background:#d4a84c40;border:1px solid rgba(212,168,76,.35);border-radius:4px;color:#d4a84c;font-size:var(--ptv-fs-sm);font-weight:600;padding:5px 12px;cursor:pointer}.tv-chat-send:hover{background:#d4a84c4d}.tv-chat-header{display:flex;align-items:center;justify-content:space-between;padding:2px 8px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.tv-chat-title{font-size:var(--ptv-fs-2xs);font-weight:600;color:#d4a84c;text-transform:uppercase;letter-spacing:.06em}.tv-chat-popout-btn{background:none;border:none;color:#ffffff73;font-size:var(--ptv-fs-sm);cursor:pointer;padding:2px 4px;line-height:1;border-radius:3px;transition:color .15s,background .15s}.tv-chat-popout-btn:hover{color:#d4a84c;background:#ffffff14}.tv-chat-popout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--ptv-z-overlay, 9500);display:flex;align-items:flex-end;justify-content:center;padding:24px;animation:dialog-enter .2s ease-out}.tv-chat-popout{width:100%;max-width:480px;height:50vh;max-height:400px;display:flex;flex-direction:column;background:#0c0e16f2;border:1px solid rgba(212,168,76,.25);border-radius:8px;box-shadow:0 8px 32px #0009;font-size:var(--ptv-fs-sm);color:#e8dcc8}.tv-chat-popout-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.tv-chat-popout .tv-chat-messages{flex:1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:2px;min-height:0}.tv-chat-popout .tv-chat-input-row{padding:8px 12px}.tv-chat-popout .tv-chat-input{font-size:var(--ptv-fs-sm);padding:8px 10px}.tv-chat-censored{animation:censor-flash .6s ease-out}@keyframes censor-flash{0%{background:#ff3c3c4d}to{background:transparent}}.theme-picker{position:relative}.theme-picker-toggle{background:none;border:none;color:#fffc;font-size:var(--ptv-fs-lg);cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.theme-picker-toggle:hover{background:#fff2}.theme-picker-menu{position:absolute;top:100%;right:0;margin-top:4px;background:#0f1118f2;border:1px solid var(--ptv-border);border-radius:6px;padding:4px;min-width:120px;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.theme-picker-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;background:none;color:#e0e0e0;font-size:var(--ptv-fs-xs);cursor:pointer;border-radius:4px;text-align:left}.theme-picker-option:hover{background:#fff1}.theme-picker-option.active{background:#e8c84026;color:var(--ptv-accent)}.theme-swatch{width:14px;height:14px;border-radius:50%;border:2px solid #fff3;flex-shrink:0}.sidebar-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-tab{flex:1;background:none;border:none;color:#fffa;font-size:var(--ptv-fs-sm);font-weight:600;padding:6px 0;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.sidebar-tab:hover{color:#fffc}.sidebar-tab.active{color:#c8a060;border-bottom-color:#c8a060}.history-panel{padding:4px;font-size:var(--ptv-fs-sm);overflow-y:auto;max-height:300px}.history-panel-empty{color:#999;text-align:center;padding:12px 4px;font-style:italic}.history-entry{display:flex;align-items:center;gap:4px;padding:3px 4px;border-bottom:1px solid rgba(255,255,255,.04)}.history-entry:hover{background:#ffffff08}.history-badge{font-size:var(--ptv-fs-2xs);font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0}.history-win{background:#64c86433;color:#8f8}.history-loss{background:#c8646426;color:#f88}.history-detail{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fffc}.history-date{color:#999;font-size:var(--ptv-fs-2xs);flex-shrink:0}.personal-stats{margin:.75rem 0;padding:.5rem .75rem;background:#ffffff0d;border-radius:8px;border-left:2px solid var(--ptv-accent)}.stat-row{display:flex;justify-content:space-between;padding:2px 0;font-size:var(--ptv-fs-sm)}.stat-label{color:#fffa}.stat-value{font-weight:600;color:var(--ptv-accent)}.opponent-left .opponent-name,.opponent-right .opponent-name{max-width:clamp(60px,12vw,140px);overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.sound-slider{width:40px}.opponent-name{padding:2px 6px}.passing-ui{flex-wrap:wrap;padding:8px 12px;gap:.5rem}.passing-ui h3{font-size:var(--ptv-fs-sm)}.passing-ui p{font-size:var(--ptv-fs-xs)}}@media(max-width:600px){.top-bar{padding:4px 8px}.on-air{font-size:var(--ptv-fs-2xs);gap:4px;padding-right:.8rem}.on-air-dot{width:6px;height:6px}.sound-slider{display:none}.opponent-top{padding-top:4px}.opponent-left{padding-left:4px}.opponent-right{padding-right:4px}.opponent-cards-left .card-back:nth-child(n+8),.opponent-cards-right .card-back:nth-child(n+8){display:none}.player-hand{min-height:92px;height:92px;--hand-overlap: -.46;padding:4px 2px calc(8px + env(safe-area-inset-bottom,0px));height:calc(92px + env(safe-area-inset-bottom,0px));box-sizing:border-box}.opponent-name{min-width:0;font-size:var(--ptv-fs-2xs);padding:2px 5px}.opponent-left .opponent-name,.opponent-right .opponent-name{max-width:100%}.table{padding:0 6px;grid-template-rows:auto auto;align-content:center;row-gap:4px}.opponent-hand{max-width:100%}.trick-area{min-height:96px}.top-bar{padding:4px 6px;gap:6px;font-size:var(--ptv-fs-2xs)}.top-bar .ptv-btn{padding:4px 8px;font-size:var(--ptv-fs-2xs);white-space:nowrap}.on-air{white-space:nowrap}.status-bar{padding:4px 8px;height:24px}.lobby{gap:.8rem;padding:12px 16px}.lobby-form{max-width:280px;padding:16px}.game-over-dialog h2{font-size:var(--ptv-fs-xl)}.winner-text{font-size:var(--ptv-fs-md)}.final-scores{font-size:var(--ptv-fs-sm)}.passing-ui{flex-direction:column;padding:6px 10px;gap:4px}.pass-button{padding:.5rem 1rem;font-size:var(--ptv-fs-md)}}.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:var(--ptv-z-toast, 9800);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:10px 20px;border-radius:6px;font-size:var(--ptv-fs-sm);font-weight:600;text-align:center;animation:toast-in .3s ease-out,toast-out .3s ease-in 3.7s forwards;pointer-events:auto;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.toast-reward{animation:toast-in .3s ease-out,toast-out .3s ease-in 4.7s forwards;background:linear-gradient(135deg,#3a2a10,#2a1c08);color:#e8c840;border:1px solid rgba(232,200,64,.3);box-shadow:0 4px 20px #e8c84026,inset 0 1px #e8c8401a;text-shadow:0 0 8px rgba(232,200,64,.3)}.toast-info{background:linear-gradient(135deg,#1a2a3a,#0e1a28);color:#c0d8f0;border:1px solid rgba(100,160,255,.2);box-shadow:0 4px 20px #64a0ff1a}.toast-error{background:linear-gradient(135deg,#3a1a1a,#2a0e0e);color:#f88;border:1px solid rgba(255,100,100,.2);box-shadow:0 4px 20px #ff64641a}.toast-coins{background:linear-gradient(135deg,#3a2a10,#2a1c08);color:#e8c840;border:1px solid rgba(232,200,64,.4);box-shadow:0 4px 24px #e8c84040,inset 0 1px #e8c84026;text-shadow:0 0 10px rgba(232,200,64,.4);font-size:var(--ptv-fs-lg);font-weight:700;letter-spacing:.04em;animation:toast-in .3s ease-out,coin-shimmer .6s ease-in-out .3s,toast-out .3s ease-in 2.7s forwards}.toast-coin-icon{font-size:1.1em;margin:0 6px;display:inline-block;animation:coin-bounce .5s ease-out .4s both}@keyframes coin-bounce{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-6px) scale(1.2)}70%{transform:translateY(1px) scale(.95)}to{transform:translateY(0) scale(1)}}@keyframes coin-shimmer{0%{box-shadow:0 4px 24px #e8c84040,inset 0 1px #e8c84026}50%{box-shadow:0 4px 32px #e8c84080,inset 0 1px #e8c8404d}to{box-shadow:0 4px 24px #e8c84040,inset 0 1px #e8c84026}}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--ptv-z-overlay, 9500);display:flex;align-items:center;justify-content:center;animation:dialog-enter .2s ease-out}.profile-modal{background:linear-gradient(180deg,#1a1d2e,#12141f);border:1px solid #2a2d3e;border-radius:10px;padding:24px;width:420px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 40px #0009}.profile-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.profile-name{font-size:var(--ptv-fs-xl);font-weight:700;color:var(--ptv-accent, #e8c840);margin:0}.profile-coins{font-size:var(--ptv-fs-lg);font-weight:700;color:#e8c840;text-shadow:0 0 6px rgba(232,200,64,.25)}.profile-close{background:none;border:none;color:#888;font-size:var(--ptv-fs-xl);cursor:pointer;padding:8px 12px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color .15s;border-radius:4px}.profile-close:hover{color:#ddd}.profile-section{margin-bottom:16px}.profile-section h3{font-size:var(--ptv-fs-xs);font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid #2a2d3e}.profile-streak{display:flex;gap:20px;align-items:center}.profile-streak-current{font-size:var(--ptv-fs-2xl);font-weight:700;color:#e88040}.profile-streak-best{font-size:var(--ptv-fs-sm);color:#888}.profile-streak-label{font-size:var(--ptv-fs-xs);color:#999;display:block}.profile-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.profile-stat-card{background:#ffffff08;border:1px solid #2a2d3e;border-radius:6px;padding:10px}.profile-stat-game{font-size:var(--ptv-fs-xs);font-weight:600;color:var(--ptv-accent, #e8c840);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.profile-stat-row{display:flex;justify-content:space-between;font-size:var(--ptv-fs-xs);color:#bbb;margin-bottom:2px}.profile-stat-row span:last-child{font-weight:600;color:#e0e0e0}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px}.achievement-badge{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:6px;border:1px solid #2a2d3e;transition:transform .15s ease;cursor:default}.achievement-badge:hover{transform:scale(1.05)}.achievement-unlocked{background:#e8c84014;border-color:#e8c8404d}.achievement-locked{background:#ffffff05;opacity:.4;filter:grayscale(1)}.achievement-icon{font-size:var(--ptv-fs-xl)}.achievement-name{font-size:var(--ptv-fs-2xs);font-weight:600;color:#ccc;text-align:center;line-height:1.2}.achievement-unlocked .achievement-name{color:var(--ptv-accent, #e8c840)}.daily-spin{background:#e8c8400f;border:1px solid rgba(232,200,64,.25);border-radius:8px;padding:8px 12px;text-align:center;width:100%}.daily-spin-title{font-size:var(--ptv-fs-2xs);font-weight:600;color:var(--ptv-accent, #e8c840);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.daily-spin-prizes{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;margin-bottom:6px}.daily-spin-slot{background:#ffffff0f;border:1px solid #3a3d4e;border-radius:4px;padding:2px 8px;font-size:var(--ptv-fs-xs);font-weight:600;color:#ccc;min-width:28px}.daily-spin-slot-flash{animation:slot-flash .3s ease infinite alternate}@keyframes slot-flash{0%{background:#e8c8400d;color:#888}to{background:#e8c84033;color:var(--ptv-accent, #e8c840)}}.daily-spin-button{background:var(--ptv-accent, #e8c840);color:#1a1a2e;border:none;border-radius:6px;padding:6px 24px;font-weight:700;font-size:var(--ptv-fs-sm);cursor:pointer;transition:transform .1s}.daily-spin-button:hover:not(:disabled){transform:scale(1.05)}.daily-spin-button:disabled{opacity:.6;cursor:not-allowed}.daily-spin-result{display:flex;flex-direction:column;align-items:center;gap:2px;animation:spin-reveal .4s ease-out}@keyframes spin-reveal{0%{opacity:0;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.daily-spin-amount{font-size:var(--ptv-fs-3xl);font-weight:700;color:var(--ptv-accent, #e8c840)}.daily-spin-label{font-size:var(--ptv-fs-xs);color:#aaa}.skin-shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.skin-card{background:#ffffff08;border:1px solid #2a2d3e;border-radius:6px;padding:10px;text-align:center;transition:border-color .15s}.skin-card-owned{border-color:#4caf504d}.skin-card-active{border-color:var(--ptv-accent, #e8c840);box-shadow:0 0 8px #e8c84026}.skin-swatch{width:100%;height:32px;border-radius:4px;margin-bottom:6px}.skin-card-name{font-size:var(--ptv-fs-xs);font-weight:600;color:#e0e0e0;margin-bottom:4px}.skin-card-price{font-size:var(--ptv-fs-xs);color:#e8c840;font-weight:700}.skin-card-status{font-size:var(--ptv-fs-2xs);color:#4caf50;font-weight:600}.skin-buy-btn{font-family:inherit;font-size:var(--ptv-fs-xs);font-weight:600;color:#1a1d2e;background:#e8c840;border:none;border-radius:3px;padding:3px 10px;cursor:pointer;transition:background .15s}.skin-buy-btn:hover{background:#f0d860}.skin-buy-btn:disabled{background:#555;color:#999;cursor:not-allowed}.leaderboard-panel h3{font-size:var(--ptv-fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--ptv-accent);margin-bottom:8px}.leaderboard-empty{color:var(--ptv-text-muted);font-size:var(--ptv-fs-sm);font-style:italic}.leaderboard-list{display:flex;flex-direction:column;gap:2px;max-height:400px;overflow-y:auto}.leaderboard-entry{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:var(--ptv-fs-sm);border-radius:3px}.leaderboard-entry:nth-child(odd){background:#ffffff05}.leaderboard-top{background:#e8c8400f!important}.leaderboard-entry .leaderboard-rank{color:var(--ptv-text-muted);font-weight:700;min-width:28px;font-size:var(--ptv-fs-xs)}.leaderboard-top .leaderboard-rank{color:var(--ptv-accent)}.leaderboard-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-weight:700;font-family:SF Mono,Consolas,monospace;color:var(--ptv-accent)}.spectate-player{font-weight:700;color:var(--ptv-accent)}.how-to-play{margin-top:12px;text-align:center}.how-to-play-toggle{background:none;border:1px solid var(--ptv-border, #2a2d3e);color:var(--ptv-text-muted, #aaa);font-size:var(--ptv-fs-sm);padding:6px 16px;border-radius:6px;cursor:pointer;transition:color .15s,border-color .15s}.how-to-play-toggle:hover{color:var(--ptv-accent);border-color:var(--ptv-accent)}.how-to-play-content{text-align:left;margin-top:12px;background:#ffffff08;border:1px solid var(--ptv-border, #2a2d3e);border-radius:8px;padding:12px 16px;max-width:420px;margin-left:auto;margin-right:auto}.how-to-play-section{margin-bottom:10px}.how-to-play-section:last-child{margin-bottom:0}.how-to-play-section h4{font-size:var(--ptv-fs-sm);font-weight:700;color:var(--ptv-accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.how-to-play-section p{font-size:var(--ptv-fs-sm);color:#ccc;line-height:1.5;margin:0}@media(prefers-reduced-motion:reduce){.on-air-dot,.turn-indicator:after,.connecting,.status-glow,.card-glow-anim,.toast,.toast-reward,.toast-reward .toast-icon,.daily-spin-result,.slot-flash,.dialog-enter,.card-slide-bottom,.card-slide-top,.card-slide-left,.card-slide-right,.trick-collect-bottom,.trick-collect-top,.trick-collect-left,.trick-collect-right,.card-deal-in,.profile-modal,.tv-chat-censored{animation:none!important}}.moon-banner{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 12px 6px;padding:10px 16px;border:1px solid var(--ptv-accent);border-radius:4px;background:linear-gradient(180deg,#c9a2272e,#0f1118d9);box-shadow:0 0 18px #c9a22740;font-size:var(--ptv-fs-md);animation:moon-banner-in .42s cubic-bezier(.22,.68,.35,1)}.moon-banner-icon{font-size:var(--ptv-fs-xl);line-height:1}@keyframes moon-banner-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.moon-banner{animation-duration:1ms!important}}.match-feed{display:flex;flex-direction:column;height:100%;min-height:0;gap:6px;padding:6px 10px;text-align:left}.match-feed-lines{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px;font-size:var(--ptv-fs-sm);line-height:1.35}.match-feed-empty{opacity:.45;font-style:italic}.match-feed-line{display:flex;gap:6px}.match-feed-line--status{color:var(--ptv-accent);opacity:.85;font-size:var(--ptv-fs-sm);letter-spacing:.02em}.match-feed-sender{font-weight:700;color:var(--ptv-accent);flex-shrink:0}.match-feed-sender:after{content:":"}.match-feed-text{overflow-wrap:anywhere}.match-feed-input{display:flex;gap:6px;flex-shrink:0}.match-feed-input .ptv-input{flex:1;min-width:0}.now-playing{border:1px solid var(--ptv-border);border-radius:4px;background:#0000006b;overflow:hidden;position:relative;cursor:default;box-shadow:inset 0 2px 6px #0000008c,inset 0 0 0 1px #0006}.now-playing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0px,rgba(255,255,255,.025) 1px,transparent 1px,transparent 3px)}.now-playing-header{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:var(--ptv-fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ptv-accent);background:#00000059;border-bottom:1px solid var(--ptv-border)}.now-playing-body{padding:10px;min-height:56px;display:flex;align-items:center;justify-content:center;opacity:.88;font-size:.92em}.now-playing-idle{opacity:.5;font-size:var(--ptv-fs-sm);font-style:italic}.now-playing-note{margin:0;padding:6px 10px 8px;border-top:1px solid rgba(255,255,255,.06);font-size:var(--ptv-fs-2xs);font-weight:var(--ptv-fw-muted);line-height:var(--ptv-lh-normal);color:var(--ptv-text-muted);text-align:center}.lobby-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lobby-sub{font-size:var(--ptv-fs-sm);opacity:.7;margin-top:2px}.lobby-actions{display:flex;flex-direction:column;gap:10px}.lobby-action-hint{display:block;margin-top:3px;font-size:var(--ptv-fs-xs);font-weight:400;letter-spacing:0;text-transform:none;opacity:.72;white-space:normal}.lobby-actions .ptv-btn{display:block;height:auto;padding-top:10px;padding-bottom:10px;line-height:1.25}.hearts-broken{color:var(--ptv-error);font-weight:600;animation:hearts-break-pulse .6s ease-out}@keyframes hearts-break-pulse{0%{transform:scale(1.4);color:#f66;text-shadow:0 0 12px rgba(255,50,50,.6)}50%{text-shadow:0 0 8px rgba(255,50,50,.4)}to{transform:scale(1);text-shadow:none}}.passing-ui{background:#1a1d2ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--ptv-border);border-top:2px solid var(--ptv-accent);border-radius:10px;padding:12px 20px;text-align:center;display:flex;align-items:center;justify-content:center;gap:1rem}.passing-ui h3{font-size:clamp(.8rem,1.3vw,1rem);color:var(--ptv-accent)}.passing-ui p{font-size:clamp(.7rem,1.1vw,.85rem);color:var(--ptv-text-muted)}@media(prefers-reduced-motion:reduce){.hearts-broken{animation:none!important}}.tetris-layout{display:flex;align-items:center;justify-content:center;gap:clamp(8px,1.5vw,20px);padding:8px clamp(8px,1.5vw,20px);flex:1;min-height:0}.tetris-board-wrap{border:2px solid var(--ptv-border);border-radius:4px;background:#0006;padding:2px;line-height:0}.tetris-board{display:flex;flex-direction:column}.tetris-row{display:flex}.tetris-cell{width:clamp(18px,min(2.4vw,3.4vh),34px);height:clamp(18px,min(2.4vw,3.4vh),34px);border:1px solid rgba(255,255,255,.04)}.tetris-cell-sm{width:clamp(14px,1.7vw,20px);height:clamp(14px,1.7vw,20px)}.cell-0{background:#ffffff05}.cell-1{background:#00e5e5}.cell-2{background:#e5e500}.cell-3{background:#b000e5}.cell-4{background:#00e500}.cell-5{background:#e50000}.cell-6{background:#0050e5}.cell-7{background:#e5a000}.cell-1{background:#00e5e5 linear-gradient(45deg,transparent 40%,rgba(255,255,255,.15) 40%,rgba(255,255,255,.15) 60%,transparent 60%)}.cell-3{background:#b000e5 linear-gradient(0deg,transparent 45%,rgba(255,255,255,.12) 45%,rgba(255,255,255,.12) 55%,transparent 55%)}.cell-5{background:#e50000 linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 40%,rgba(255,255,255,.15) 60%,transparent 60%)}.cell-4{background:#00e500 linear-gradient(90deg,transparent 45%,rgba(255,255,255,.12) 45%,rgba(255,255,255,.12) 55%,transparent 55%)}.cell-active{filter:brightness(1.15);box-shadow:inset 0 0 4px #ffffff4d}.cell-ghost{opacity:.5;background:transparent!important;box-shadow:none!important;border:1px dashed currentColor;outline:none}.cell-trail{animation:drop-trail .2s ease-out forwards}@keyframes drop-trail{0%{opacity:.7;filter:brightness(2)}to{opacity:0}}.cell-clearing{animation:line-clear .3s ease-out forwards}@keyframes line-clear{0%,30%{background:#fff!important;box-shadow:0 0 8px #fff9}to{background:#fff0!important;box-shadow:none}}.tetris-sidebar{display:flex;flex-direction:column;gap:8px;min-width:clamp(80px,10vw,120px);align-self:stretch;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px}.tetris-panel{background:#1a1d2ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--ptv-border);border-radius:8px;padding:clamp(6px,1vw,10px) clamp(8px,1.2vw,14px)}.tetris-panel h3{font-size:clamp(.72rem,1vw,.85rem);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ptv-text-muted);margin-bottom:4px}.tetris-score{font-size:clamp(.8rem,1.3vw,1.1rem);font-weight:700;color:var(--ptv-accent);font-family:SF Mono,Consolas,Monaco,monospace}.next-piece-grid{display:flex;flex-direction:column;align-items:center}.tetris-controls{font-size:var(--ptv-fs-sm)}.tetris-control-list{display:flex;flex-direction:column;gap:3px;color:var(--ptv-text-muted);font-size:var(--ptv-fs-sm)}.tetris-game-over-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--ptv-z-overlay, 9500);display:flex;align-items:center;justify-content:center;background:#0009}.tetris-game-over-dialog{background:#1a1d2ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--ptv-border);border-radius:12px;padding:24px 36px;text-align:center}.tetris-game-over-dialog h2{font-size:var(--ptv-fs-2xl);color:var(--ptv-accent);margin-bottom:12px}.tetris-game-over-dialog p{color:var(--ptv-text-muted);margin-bottom:4px;font-size:var(--ptv-fs-md)}.tetris-final-score{font-size:var(--ptv-fs-3xl);font-weight:700;line-height:var(--ptv-lh-tight);font-variant-numeric:tabular-nums;color:#f4efe4}.tetris-final-meta{display:flex;justify-content:center;gap:14px;margin:4px 0 18px;font-size:var(--ptv-fs-sm);color:var(--ptv-text-muted)}@media(max-width:768px){.tetris-layout{flex-direction:column;align-items:center;gap:6px;padding:6px}.tetris-sidebar{flex-direction:row;flex-wrap:wrap;align-items:stretch;justify-content:center;width:100%;min-width:0;align-self:auto;overflow:visible;padding:0;gap:6px}.tetris-panel{flex:0 1 auto;padding:4px 8px}.tetris-panel h3{margin-bottom:2px;font-size:var(--ptv-fs-2xs)}.tetris-controls{display:none}.tetris-board-wrap{flex:0 0 auto}.tetris-cell{width:clamp(18px,min(8vw,3.4vh),34px);height:clamp(18px,min(8vw,3.4vh),34px)}}.tetris-touch{display:none}@media(pointer:coarse),(max-width:768px){.tetris-touch{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:6px;column-gap:6px;width:100%;max-width:520px;margin:8px auto 0;padding:0 8px calc(6px + env(safe-area-inset-bottom,0px))}.tetris-touch-cluster{display:flex;align-items:center;gap:5px}.tetris-touch-btn{width:clamp(44px,11.8vw,56px);height:clamp(44px,11.8vw,56px);display:grid;place-items:center;padding:0;font-size:1.35rem;line-height:1;color:#f2dd93;background:linear-gradient(180deg,#463a26eb,#221b10f2);border:1px solid rgba(232,200,64,.5);border-radius:10px;box-shadow:inset 0 1px #ffffff1a,0 2px 5px #00000073;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.tetris-touch-btn:active:not(:disabled){background:linear-gradient(180deg,#604f32f2,#342918f2);border-color:var(--ptv-accent);transform:translateY(1px);box-shadow:inset 0 2px 5px #00000080}.tetris-touch-btn:disabled{opacity:.4}.tetris-touch-cluster--drop{flex:1;justify-content:center}.tetris-touch-btn--drop{width:clamp(50px,13.5vw,66px);color:#1a1d2e;background:linear-gradient(180deg,var(--ptv-accent-hover) 0%,var(--ptv-accent) 100%);border-color:#00000073}.tetris-controls{display:none}}.spectator-container{position:relative;width:100%;height:100%}.spectator-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.play-now-button{pointer-events:auto;background:var(--ptv-accent, #6366f1);color:#fff;border:none;border-radius:12px;padding:clamp(10px,1.5vw,16px) clamp(24px,4vw,40px);font-size:clamp(1rem,1.5vw,1.25rem);font-weight:700;cursor:pointer;box-shadow:0 0 20px #6366f180,0 4px 16px #0000004d;transition:transform .15s ease,box-shadow .15s ease}.play-now-button:hover{transform:scale(1.05);box-shadow:0 0 30px #6366f1b3,0 6px 20px #0006}@media(max-width:900px){.tetris-controls h3:not(:first-child){display:none}.tetris-controls .tetris-control-list:last-child{display:none}}@media(max-width:500px){.tetris-cell{width:clamp(18px,min(8.5vw,3.4vh),34px);height:clamp(18px,min(8.5vw,3.4vh),34px)}.tetris-cell-sm{width:clamp(12px,3.6vw,16px);height:clamp(12px,3.6vw,16px)}.tetris-layout{gap:4px;padding:4px}}@media(max-width:600px){.tetris-sidebar{min-width:70px}.tetris-game-over-dialog{padding:16px 20px}.tetris-game-over-dialog h2{font-size:var(--ptv-fs-xl)}.tetris-game-over-dialog p{font-size:var(--ptv-fs-xs)}}@media(prefers-reduced-motion:reduce){.cell-trail,.cell-clearing{animation:none!important}}.tetris-board-wrap{position:relative}.tetris-paused{line-height:1.4;position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center;border-radius:8px;background:#000000b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tetris-paused strong{font-size:var(--ptv-fs-xl);letter-spacing:.08em;text-transform:uppercase}.tetris-paused span{max-width:22ch;font-size:var(--ptv-fs-sm);opacity:.75}.tetris-play-area{display:flex;align-items:flex-start;gap:clamp(8px,1.5vw,20px)}.tetris-aside{display:flex;flex-direction:column;gap:8px;width:clamp(90px,10vw,140px)}.tetris-aside .tetris-panel{text-align:center}.tetris-hint{margin:6px 0 0;font-size:var(--ptv-fs-2xs);line-height:1.3;opacity:.6}.next-piece-grid--dim{opacity:.35}@media(max-width:700px){.tetris-aside{width:auto;flex-direction:row}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--ptv-bg);color:var(--ptv-text);min-height:100vh;min-height:100dvh;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(transparent,transparent 2px,rgba(0,0,0,var(--ptv-scanline)) 2px,rgba(0,0,0,var(--ptv-scanline)) 4px);z-index:var(--ptv-z-scanline, 9000)}#root{width:100%;min-height:100vh;min-height:100dvh}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:40px 24px}.not-found h1{font-size:var(--ptv-fs-3xl);color:var(--ptv-accent);margin-bottom:12px}.not-found p{color:var(--ptv-text-muted);margin-bottom:24px;max-width:400px}.not-found-link{color:var(--ptv-accent);text-decoration:none;font-weight:700;font-size:var(--ptv-fs-lg)}.not-found-link:hover{text-decoration:underline}
