:root{--bg: #FFFFFF;--bg-secondary: #FAF9FF;--bg-tertiary: #F3F4F6;--text: #15131A;--text-muted: #6B7280;--accent: #7C3AED;--accent-hover: #6D28D9;--accent-secondary: #10B981;--accent-success: #10B981;--accent-danger: #EF4444;--accent-warning: #F59E0B;--accent-glow: rgba(124, 58, 237, .15);--accent-dim: #F3EDFF;--border-glow: none;--border: 1px solid #ECE8F3;--border-active: 1px solid var(--accent);--border-radius: 8px;--light-border: #ECE8F3}:root{--page-max-width: 1320px;--page-pad-x: 32px;--page-pad-top: 28px;--page-pad-bottom: 56px;--page-title-size: 32px}@media(max-width:992px){:root{--page-pad-x: 20px;--page-pad-bottom: 48px}}@media(max-width:640px){:root{--page-pad-x: 16px;--page-pad-top: 20px;--page-pad-bottom: 40px;--page-title-size: 28px}}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden}body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Satoshi,Satoshi,sans-serif;-webkit-font-smoothing:antialiased;scrollbar-color:rgba(156,163,175,.4) transparent;scrollbar-width:thin}*{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-button{display:none;width:0;height:0}*::-webkit-scrollbar-thumb{background:#9ca3af59;border-radius:999px;border:1px solid transparent;background-clip:padding-box;box-shadow:none}*::-webkit-scrollbar-thumb:hover{background:#6b728099;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}@font-face{font-family:Qurova;src:url(/fonts/qurova/Qurova-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Qurova;src:url(/fonts/qurova/Qurova-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Qurova;src:url(/fonts/qurova/Qurova-Semibold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Qurova;src:url(/fonts/qurova/Qurova-Bold.otf) format("opentype");font-weight:800;font-style:normal;font-display:swap}h1,h2,h3,h4,.font-heading{font-family:Satoshi,sans-serif;letter-spacing:-.01em}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:18px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}a{text-decoration:none}.btn-primary,.btn-secondary,.btn-danger,.btn-warning,.btn-info{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:10px 20px;font-family:Satoshi,sans-serif;font-size:13px;font-weight:600;letter-spacing:0;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid transparent;position:relative;overflow:hidden;border-radius:8px}.btn-primary:after,.btn-secondary:after,.btn-danger:after,.btn-warning:after,.btn-info:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);transition:transform .6s ease}.btn-primary:hover:after,.btn-secondary:hover:after,.btn-danger:hover:after,.btn-warning:hover:after,.btn-info:hover:after{transform:translate(100%)}.btn-primary:active,.btn-secondary:active,.btn-danger:active,.btn-warning:active,.btn-info:active{transform:scale(.98)}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled,.btn-warning:disabled,.btn-info:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{box-shadow:0 4px 14px #7c3aed40;background:var(--accent-hover)}.btn-secondary{background:#fff;border:1px solid #ECE8F3;color:#15131a}.btn-secondary:hover{background:#faf9ff;border-color:#ece8f3}.btn-danger{background:var(--accent-danger);border:none;color:#fff}.btn-danger:hover{background:#dc2626}.btn-icon{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:#ffffff1a;color:#fff}.btn-icon.danger:hover{background:#ff00551a;color:var(--accent-danger)}.btn-icon.success:hover{background:#00ff881a;color:var(--accent-success)}.card-cyber{background:#fff;border:1px solid #ECE8F3;border-radius:18px;box-shadow:0 4px 20px -2px #0f172a0d;position:relative;transition:all .3s ease}.card-cyber:hover{border-color:#ece8f3;transform:translateY(-2px);box-shadow:0 8px 30px -4px #0f172a14}.input-cyber{width:100%;background:#fff;border:1px solid #ECE8F3;padding:12px 16px;color:#15131a;font-family:Satoshi,sans-serif;font-size:15px;border-radius:8px;transition:all .2s ease}.input-cyber:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #7c3aed1a}input.input-cyber[type=date],input.input-cyber[type=datetime-local],input.input-cyber[type=time]{color-scheme:light}select.input-cyber{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;background-size:1em;padding-right:2.75rem}select.input-cyber option{background:#fff;color:#15131a}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spinner,.spinner-sm{display:inline-block;border:2px solid rgba(255,255,255,.1);border-top-color:var(--accent);animation:spin .8s linear infinite;vertical-align:middle}.spinner{width:24px;height:24px}.spinner-sm{width:18px;height:18px}.animate-fade{animation:fadeIn .4s ease forwards}.text-accent{color:var(--accent)}.text-cyan{color:var(--accent-secondary)}.text-muted{color:var(--text-muted)}.glass{background:#ffffffe0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ECE8F3}.match-stage{--stage-green: #10B981;--stage-purple: #7C3AED;position:fixed;inset:0;z-index:20;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:clamp(.65rem,1.45vh,1.25rem);min-height:100vh;min-height:100dvh;padding:clamp(1rem,2.9vw,2.65rem);overflow:hidden;color:#15131a;background:#fff}.match-stage>*{position:relative;z-index:1}.match-topbar,.players-row,.match-actions{display:grid;align-items:center;gap:1rem}.match-topbar{grid-template-columns:minmax(120px,1fr) auto minmax(160px,1fr)}.match-leave{display:inline-flex;width:fit-content;align-items:center;gap:.75rem;border:0;background:transparent;color:var(--stage-purple);font:500 clamp(.9rem,1vw,1rem) "Satoshi",sans-serif;cursor:pointer}.match-leave svg{width:26px;height:26px}.match-title{display:flex;gap:1rem;margin:0;color:#15131a;font:900 clamp(1.15rem,2.15vw,1.8rem)/1.05 "Satoshi",sans-serif;letter-spacing:-.03em;text-align:center;text-transform:none}.match-vs,.match-opponent,.match-btn--info svg,.round-btn:last-child{color:var(--stage-purple)}.match-stake{justify-self:end;display:inline-flex;align-items:center;gap:.85rem;color:#6b7280}.match-stake strong{display:inline-flex;min-height:54px;align-items:center;gap:.5rem;padding:0 1rem;border:1px solid #ECE8F3;border-radius:14px;background:#fff;color:#15131a;font-size:1.15rem;font-feature-settings:"tnum" 1;box-shadow:0 2px 8px #0f172a0a}.money-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--stage-green);color:#071926;font-weight:900}.match-meta{display:grid;justify-items:center;gap:clamp(.75rem,1.6vh,1.2rem)}.move-clock,.pot-card,.player-card,.match-btn,.round-btn{display:inline-flex;align-items:center}.move-clock{min-height:64px;gap:.7rem;padding:0 1.35rem;border:1px solid #ECE8F3;border-radius:18px;background:#fff;color:#6b7280;font:500 1rem Satoshi,sans-serif;box-shadow:0 4px 14px #0f172a0d;font-feature-settings:"tnum" 1}.move-clock.mine,.move-clock.mine svg{color:var(--stage-green)}.move-clock svg{width:28px;height:28px}.move-clock strong{color:#15131a}.clock-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pot-card{min-width:250px;gap:1.05rem;justify-content:center}.pot-icon{display:grid;width:72px;height:72px;place-items:center;border-radius:50%;background:#f3edff;color:#7c3aed}.pot-icon svg{width:34px;height:34px}.pot-copy,.player-copy{display:grid;gap:.35rem;font-family:Satoshi,sans-serif}.pot-copy strong{color:#15131a;font-size:clamp(1rem,1.4vw,1.25rem);font-feature-settings:"tnum" 1}.pot-copy small{color:#6b7280;font-size:.98rem}.players-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);width:min(100%,1180px);justify-self:center}.player-card{min-width:0;gap:1rem}.player-card--opponent{justify-self:end;text-align:right}.player-card--opponent .player-copy small{justify-self:end}.player-card--opponent .player-copy em{justify-content:end}.player-token{display:grid;width:clamp(78px,8.8vw,126px);height:clamp(78px,8.8vw,126px);flex:0 0 auto;place-items:center;border-radius:50%}.player-token img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(15,23,42,.12))}.player-copy{min-width:0}.player-copy strong{overflow:hidden;color:#15131a;font-size:clamp(1rem,1.5vw,1.25rem);font-weight:900;text-overflow:ellipsis;white-space:nowrap}.player-copy small{justify-self:start;min-width:86px;padding:.45rem 1rem;border-radius:999px;background:#f3edff;color:#7c3aed;font-size:.78rem;font-weight:700;text-align:center;text-transform:uppercase}.player-copy em{display:inline-flex;align-items:center;gap:.45rem;color:#6b7280;font-size:.95rem;font-style:normal}.player-copy em:before{content:"";width:13px;height:13px;border-radius:50%;background:currentColor}.player-copy em.active{color:var(--stage-green)}.board-shell{align-self:center;justify-self:center;display:grid;width:min(72vw,100dvh - 345px,760px);min-width:300px;aspect-ratio:1;padding:0}.match-stage .board{display:grid;grid-template-columns:repeat(var(--board-size),1fr);width:100%;aspect-ratio:1;margin:0;overflow:hidden;border:0;border-radius:10px;box-shadow:none}.match-stage .sq{position:relative;display:grid;min-width:0;min-height:0;place-items:center;padding:0;border:0;border-radius:0;appearance:none}.match-stage .sq.light{background:radial-gradient(circle,rgba(255,255,255,.22),transparent 48%),linear-gradient(135deg,#f0edcf,#dcd6ab)}.match-stage .sq.dark{cursor:pointer;background:radial-gradient(circle,rgba(255,255,255,.08),transparent 48%),linear-gradient(135deg,#53764e,#314f31)}.match-stage .sq.sel{box-shadow:inset 0 0 0 4px #ffd54ceb}.match-stage .sq.capture{box-shadow:inset 0 0 0 4px #ff677feb}.match-stage .sq.target:after{content:"";position:absolute;inset:18%;border-radius:50%;background:#42e9ad1f;box-shadow:inset 0 0 0 2px #42e9ad61}.match-stage .piece{position:relative;z-index:2;display:grid;width:88%;height:88%;place-items:center;border:0;background:transparent;box-shadow:none;pointer-events:none}.match-stage .piece img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 6px rgba(0,0,0,.58))}.match-stage .board.flipped .piece{transform:rotate(180deg)}.match-stage .dot{z-index:1;width:24%;height:24%;background:#42e9adb8;box-shadow:0 0 16px #42e9ad8c}.match-actions{grid-template-columns:minmax(140px,1fr) auto minmax(140px,1fr)}.match-btn,.round-btn{justify-content:center;border:1px solid #ECE8F3;background:#fff;color:#15131a;cursor:pointer;font-family:Satoshi,sans-serif;font-weight:700;box-shadow:0 2px 8px #0f172a0a;transition:all .2s ease}.match-btn:hover,.round-btn:hover{border-color:#7c3aed;background:#faf9ff;transform:translateY(-1px)}.match-btn{width:fit-content;min-width:184px;min-height:72px;gap:.9rem;border-radius:14px;font-size:1.05rem}.match-btn svg{width:28px;height:28px}.match-btn--danger{color:#ef4444}.match-btn--danger:hover{border-color:#ef4444;background:#fef2f2}.round-actions{justify-self:end;display:inline-flex;gap:1.5rem}.round-btn{width:50px;height:50px;border-radius:50%}.round-btn svg{width:20px;height:20px}@media(max-width:900px){.match-stage{display:flex;flex-direction:column;overflow-y:auto}.match-stage>*{flex-shrink:0}.match-title{justify-content:center}.match-topbar{grid-template-columns:1fr auto}.match-title{grid-column:1/-1;grid-row:2}.match-stake{font-size:0}.players-row{grid-template-columns:1fr}.player-card{justify-content:center}.player-card--opponent{justify-self:stretch;text-align:left}.player-card--opponent .player-copy{order:2}.player-card--opponent .player-copy small,.player-card--opponent .player-copy em{justify-self:start;justify-content:start}.board-shell{width:min(94vw,58dvh,620px)}.match-actions{grid-template-columns:1fr auto}.match-btn--info{display:none}}@media(max-width:560px){.match-stage{gap:.8rem;padding:.9rem}.match-stake strong{min-height:44px;padding-inline:.75rem;font-size:.95rem}.move-clock{min-height:50px;border-radius:14px;font-size:.95rem}.pot-card{min-width:0}.player-token{width:64px;height:64px}.board-shell{min-width:0;width:min(96vw,48dvh)}.match-btn{min-width:132px;min-height:56px;gap:.6rem;font-size:.95rem}}body .match-stage>app-game-chat{display:contents}body .match-stage.board-match-stage{grid-template-rows:auto auto minmax(0,1fr) auto;gap:clamp(.45rem,.9vh,.75rem);padding:clamp(.75rem,1.6vw,1.5rem)}body .match-stage.board-match-stage .match-topbar{grid-template-columns:minmax(100px,1fr) auto minmax(120px,1fr)}body .match-stage.board-match-stage .match-title{gap:.65rem;font-size:clamp(1rem,1.45vw,1.35rem)}body .match-stage.board-match-stage .match-leave{gap:.45rem;font-size:.82rem}body .match-stage.board-match-stage .match-leave svg{width:20px;height:20px}body .match-stage.board-match-stage .match-stake strong{min-height:44px;padding:0 .75rem;border-radius:12px;font-size:.92rem}body .match-stage.board-match-stage .money-icon{width:21px;height:21px}body .match-stage.board-match-stage>app-chess-board,body .match-stage.board-match-stage>.board-shell{align-self:center;justify-self:center;width:min(68vw,100dvh - 225px,780px);min-width:280px}body .match-stage.board-match-stage app-chess-board .board-shell,body .match-stage.board-match-stage app-chess-board .board{width:100%}body .match-stage.board-match-stage .match-actions{grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr)}body .match-stage.board-match-stage .match-btn{min-width:132px;min-height:48px;gap:.55rem;border:0;background:transparent;font-size:.82rem}body .match-stage.board-match-stage .match-btn svg{width:22px;height:22px}body .match-stage.board-match-stage .round-actions{gap:.8rem}body .match-stage.board-match-stage .round-btn{width:44px;height:44px}@media(max-width:760px){body .match-stage.board-match-stage{display:flex;flex-direction:column;gap:0;padding:0 0 1rem;overflow-x:hidden;overflow-y:auto}body .match-stage.board-match-stage>*{flex-shrink:0}body .match-stage.board-match-stage .match-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-height:78px;padding:.85rem}body .match-stage.board-match-stage .match-title{grid-column:auto;grid-row:auto;min-width:0;justify-content:center;gap:.35rem;font-size:.88rem;white-space:nowrap}body .match-stage.board-match-stage .match-opponent{overflow:hidden;max-width:32vw;text-overflow:ellipsis}body .match-stage.board-match-stage .match-stake{font-size:0}body .match-stage.board-match-stage .match-stake strong{min-height:40px;padding:0 .6rem;font-size:.8rem}body .match-stage.board-match-stage>app-chess-board,body .match-stage.board-match-stage>.board-shell,body .match-stage.board-match-stage app-chess-board .board-shell{display:block;width:100vw;min-width:0;max-width:none;flex:0 0 auto;border:0;border-radius:0}body .match-stage.board-match-stage .board{width:100vw;max-width:none;border-radius:0}body .match-stage.board-match-stage .match-actions{display:grid;grid-template-columns:1fr auto 1fr;width:100%;min-height:74px;padding:.7rem .85rem max(.7rem,env(safe-area-inset-bottom))}body .match-stage.board-match-stage .match-btn{min-width:0;min-height:46px;justify-self:start;padding:0 .35rem}body .match-stage.board-match-stage .round-actions{gap:.55rem}body .match-stage.board-match-stage .round-btn{width:42px;height:42px}}@media(max-width:390px){body .match-stage.board-match-stage .match-topbar{padding-inline:.65rem}body .match-stage.board-match-stage .match-title{font-size:.78rem}body .match-stage.board-match-stage .match-stake strong{padding-inline:.45rem}body .match-stage.board-match-stage .match-actions{padding-inline:.65rem}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{display:inline-block;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite ease-in-out;border-radius:6px;vertical-align:middle}.skeleton--text{height:14px;width:80%}.skeleton--text-sm{height:10px;width:50%;margin-top:4px}.skeleton--badge{height:22px;width:64px;border-radius:999px}.skeleton--avatar{width:36px;height:36px;border-radius:50%}.skeleton--btn{width:32px;height:32px;border-radius:8px}.skeleton--line{height:14px;width:70%}.skeleton-row td{padding:1rem 1.25rem}
