@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700;800&family=Source+Serif+4:wght@600;700&display=swap";:root{color-scheme:dark;--bg: #080c14;--panel: rgba(18, 24, 36, .88);--panel-soft: rgba(255, 255, 255, .06);--text: #f7f0df;--muted: #9da9ba;--gold: #f0c765;--gold-2: #b9822f;--blue: #48c8ff;--red: #f26a4f;--green: #62e6a3;--line: rgba(255, 255, 255, .12);--radius: 8px;--board-size: min( calc(100vw - 24px) , calc(100svh - 316px) , 620px)}*{box-sizing:border-box}html,body{min-height:100%;width:100%;margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif}button{font:inherit}.app-stage{min-height:100svh;width:100%;display:grid;place-items:center;padding:max(14px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 4%,rgba(72,200,255,.14),transparent 32%),linear-gradient(180deg,#101827,#090d16 58%,#07080d)}.accent-gold{background:radial-gradient(circle at 50% 4%,rgba(240,199,101,.15),transparent 32%),linear-gradient(180deg,#111a27,#090d16 58%,#07080d)}.accent-boss{background:radial-gradient(circle at 50% 3%,rgba(242,106,79,.18),transparent 34%),linear-gradient(180deg,#1b1111,#090d16 56%,#07080d)}.mobile-card,.round-intro,.vs-screen,.gameplay-shell{width:min(100%,430px)}.mobile-card,.round-intro{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 22px 70px #0000006b;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.lobby-card{display:grid;gap:24px;padding:18px;position:relative}.player-pill,.hud,.bottom-action,.opponent-mini,.versus-row,.competitor{display:flex;align-items:center}.player-pill{gap:12px;min-height:64px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft)}.player-pill>div:nth-child(2),.opponent-mini>div:nth-child(2){display:grid;gap:2px;min-width:0}.player-pill span,.opponent-mini span,.competitor span{color:var(--muted);font-size:12px;font-weight:700}.player-pill b{margin-left:auto;color:var(--gold);display:inline-flex;align-items:center;gap:5px}.player-pill b img,.score-chip img,.tournament-card-top strong img{width:18px;height:18px;object-fit:contain}.player-name-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:fit-content;max-width:190px;padding:0;border:0;color:var(--text);background:transparent;font-size:20px;font-weight:800;line-height:1.1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.player-name-button:focus-visible{outline:2px solid rgba(245,198,92,.85);outline-offset:3px;border-radius:4px}.name-popover-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;border-radius:var(--radius);background:#04070c5c}.username-popover{position:absolute;top:92px;left:18px;right:18px;display:grid;gap:10px;padding:14px;border:1px solid rgba(240,199,101,.34);border-radius:12px;background:#121824fa;box-shadow:0 18px 46px #0000007a}.username-popover label{color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.username-popover input{width:100%;height:42px;min-width:0;border:1px solid var(--line);border-radius:8px;background:#ffffff0f;color:var(--text);padding:0 12px;outline:none;font:inherit;font-weight:800}.username-popover input:focus{border-color:#f5c65cb8;box-shadow:0 0 0 3px #f5c65c1f}.username-popover-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.username-popover-actions button{height:38px;border:0;border-radius:8px;color:#1b1304;background:linear-gradient(180deg,#f8d979,#bd8130);font:inherit;font-weight:900}.username-popover-actions .ghost-btn{color:var(--text);background:#ffffff14;border:1px solid var(--line)}.username-form{display:grid;grid-template-columns:1fr auto;gap:8px}.username-form input,.username-form button{height:42px;border-radius:8px;font:inherit;font-weight:800}.username-form input{min-width:0;border:1px solid var(--line);background:#ffffff0f;color:var(--text);padding:0 12px;outline:none}.username-form input:focus{border-color:#f5c65cb8;box-shadow:0 0 0 3px #f5c65c1f}.username-form button{border:0;color:#1b1304;background:linear-gradient(180deg,#f8d979,#bd8130);padding:0 14px}.avatar,.match-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#08101c;background:linear-gradient(180deg,#f8d979,#bd8130);box-shadow:0 0 0 3px #f0c76526,0 10px 24px #00000052;font-weight:900}.avatar.small{width:38px;height:38px}.image-avatar{overflow:hidden;background:#ffffff14}.image-avatar img{width:115%;height:115%;object-fit:contain;display:block}.brand-stack{display:grid;gap:8px;padding:14px 4px 10px;text-align:center}.hero-piece{width:min(138px,36vw);justify-self:center;margin-bottom:2px;filter:drop-shadow(0 16px 24px rgba(72,200,255,.18))}.brand-stack span,.round-intro span,.mobile-card>span,.instruction span{color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}h1,h2{margin:0;font-family:"Source Serif 4",Georgia,serif;letter-spacing:0;line-height:1.03}h1{font-size:clamp(34px,13vw,54px)}h2{font-size:clamp(32px,12vw,48px)}.stage-preview{display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:800;text-align:center}.stage-preview i{height:2px;border-radius:999px;background:#ffffff29}.play-button,.primary-action,.tournament-nav-btn,.back-btn,.secondary-action{min-height:54px;border:0;border-radius:var(--radius);cursor:pointer;font-weight:900;letter-spacing:.02em}.play-button,.primary-action{width:100%;color:#111018;background:linear-gradient(180deg,#ffe08a,#c99034);box-shadow:0 12px 30px #c9903440,inset 0 1px #ffffff8c}.play-button{min-height:66px;font-size:20px;text-transform:uppercase}.tournament-nav-btn,.back-btn{color:var(--text);background:#48c8ff1f;border:1px solid rgba(72,200,255,.26)}.tournament-nav-btn{width:100%;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:9px}.tournament-nav-btn img{width:30px;height:30px;object-fit:contain}.play-button:disabled,.primary-action:disabled{cursor:not-allowed;color:#8d96a6;background:#ffffff1a;box-shadow:none}.cooldown-line,.mobile-card p,.round-intro p,.instruction p{margin:0;color:var(--muted);line-height:1.45}.cooldown-line{text-align:center;font-weight:800}.match-card{display:grid;gap:18px;padding:28px 18px;text-align:center}.tournament-page{width:min(100%,520px);display:grid;gap:16px;align-self:start}.tournament-head{display:flex;align-items:end;justify-content:space-between;gap:12px}.tournament-head div{display:grid;gap:3px;text-align:right}.tournament-head span,.tournament-card-top span{color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.tournament-head h1{font-size:clamp(34px,12vw,52px)}.back-btn{min-height:42px;padding:0 14px}.icon-close-btn{width:46px;padding:0;display:grid;place-items:center}.icon-close-btn img{width:25px;height:25px;object-fit:contain}.tournament-list{display:grid;gap:14px}.tournament-card{display:grid;gap:14px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);box-shadow:0 22px 70px #00000057;overflow:hidden;position:relative}.tournament-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--blue)}.tournament-gold:before{background:var(--gold)}.tournament-boss:before{background:var(--red)}.tournament-card-top{display:flex;justify-content:space-between;gap:14px;align-items:start}.tournament-card-top div{display:grid;gap:4px}.tournament-card h2{font-size:clamp(28px,9vw,42px)}.tournament-card-top strong{min-height:40px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border-radius:var(--radius);color:#111018;background:linear-gradient(180deg,#ffe08a,#c99034);white-space:nowrap}.tournament-card p{margin:0;color:var(--muted);line-height:1.45}.tournament-progress-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.tournament-progress-bar{height:12px;border-radius:999px;overflow:hidden;background:#ffffff1a;border:1px solid rgba(255,255,255,.08)}.tournament-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--gold));transition:width .22s ease}.tournament-boss .tournament-progress-bar span{background:linear-gradient(90deg,var(--gold),var(--red))}.tournament-progress-row b{color:var(--text);font-size:18px}.tournament-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tournament-meta-grid span{min-height:42px;display:grid;align-content:center;gap:2px;padding:8px 10px;border-radius:var(--radius);color:var(--muted);background:var(--panel-soft);font-size:12px;font-weight:800}.tournament-meta-grid b{color:var(--text)}.standings-preview{display:grid;gap:7px;padding:10px;border-radius:var(--radius);background:#00000029;border:1px solid rgba(255,255,255,.08)}.standings-preview span{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:12px;font-weight:900}.standings-preview b{color:var(--gold)}.versus-row{justify-content:center;gap:22px}.match-avatar{width:72px;height:72px;font-size:28px}.match-avatar.ghost{color:#d7dde8;background:#ffffff1f}.match-avatar.red{color:#fff1eb;background:linear-gradient(180deg,#f47b61,#8b2e26)}.match-avatar.image-avatar img{width:118%;height:118%}.search-ring{width:44px;height:44px;display:grid;place-items:center}.search-ring span{width:28px;height:28px;border:3px solid rgba(72,200,255,.2);border-top-color:var(--blue);border-radius:50%;animation:spin .85s linear infinite}.vs-screen{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;animation:popFade .45s ease both}.competitor{flex-direction:column;gap:9px;text-align:center}.vs-screen b{color:var(--gold);font-size:34px;text-shadow:0 0 24px rgba(240,199,101,.38)}.round-intro{display:grid;gap:12px;padding:26px 18px 18px;text-align:center;animation:popFade .42s ease both}.auto-count{min-height:48px;display:grid;place-items:center;border-radius:var(--radius);color:var(--blue);background:#48c8ff1a;border:1px solid rgba(72,200,255,.2);font-weight:900}.gameplay-shell{display:grid;gap:10px;align-self:start}.hud{justify-content:space-between;min-height:54px;gap:10px}.opponent-mini{gap:10px;min-width:0}.score-chip{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 12px;border-radius:var(--radius);color:var(--gold);background:#f0c7651a;border:1px solid rgba(240,199,101,.22);font-weight:900}.progress-dots{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.progress-dots span{height:8px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.08)}.progress-dots span.stage-warmup{background:var(--blue)}.progress-dots span.stage-challenge{background:var(--gold)}.progress-dots span.stage-boss{background:var(--red)}.progress-dots span:not(.done):not(.active){opacity:.24}.progress-dots span.done{opacity:.72}.progress-dots span.active{opacity:1;box-shadow:0 0 18px #48c8ff52}.progress-dots span.stage-challenge.active{box-shadow:0 0 18px #f0c76557}.progress-dots span.stage-boss.active{box-shadow:0 0 20px #f26a4f5c}.instruction{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:8px 2px 2px}.instruction strong{font-size:18px;grid-column:1 / 2}.instruction>span{grid-column:1 / 2}.timer-badge{grid-row:1 / 3;grid-column:2 / 3;min-width:76px;min-height:70px;display:grid;place-items:center;gap:0;padding:7px 9px;border-radius:var(--radius);color:var(--blue);background:#48c8ff1f;border:1px solid rgba(72,200,255,.28);box-shadow:0 0 24px #48c8ff1f}.timer-badge b{line-height:.92;font-size:clamp(32px,11vw,48px);font-weight:900;letter-spacing:0}.timer-badge span{color:#f7f0dfb8;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.timer-badge.danger{color:#ff907b;background:#f26a4f24;border-color:#f26a4f5c;box-shadow:0 0 28px #f26a4f33}.board-stack{position:relative;width:var(--board-size);min-width:280px;max-width:620px;margin:4px auto 0}.practice-board{display:flex;flex-direction:column;width:100%;min-width:0;max-width:none;aspect-ratio:1 / 1;margin:0;overflow:hidden;border:4px solid rgba(9,12,18,.96);border-radius:var(--radius);background:#0b0e12;box-shadow:0 0 0 1px #f0c7652e,0 18px 44px #00000075;contain:layout paint size;touch-action:none;transition:opacity .22s ease,filter .22s ease,transform .22s ease}.board-stack.transitioning .practice-board{opacity:.38;filter:brightness(.58) saturate(.82);transform:scale(.992)}.board-transition-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-content:center;gap:8px;padding:18px;text-align:center;border-radius:var(--radius);background:#04080f8a;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:popFade .62s ease both}.transition-icon{width:58px;height:50px;object-fit:contain;justify-self:center;margin-bottom:2px;filter:drop-shadow(0 10px 18px rgba(98,230,163,.2))}.board-transition-overlay span{color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.board-transition-overlay h2{color:var(--text);font-size:clamp(34px,11vw,58px);text-shadow:0 14px 34px rgba(0,0,0,.46)}.board-transition-overlay p{margin:0;color:#f7f0dfc2;font-weight:800}.practice-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));flex:1}.practice-square{position:relative;width:100%;aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center;padding:0;border:0;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.practice-square.light{background:#d9c08f}.practice-square.dark{background:#6a7a87}.practice-square img{width:75%;height:75%;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 5px 5px rgba(0,0,0,.45));transition:transform .14s ease,filter .14s ease}.practice-square:active img{transform:scale(.96)}.practice-square.selected{box-shadow:inset 0 0 0 4px var(--blue),inset 0 0 22px #48c8ff6b}.practice-square.highlight:not(.selected){box-shadow:inset 0 0 0 4px #53e699e6,inset 0 0 20px #53e69938}.practice-square.highlight:not(.selected):after{content:"";width:22%;height:22%;border-radius:50%;background:#04121061}.practice-square.last-move{box-shadow:inset 0 0 0 4px #f0c765c2}.file-label,.rank-label{position:absolute;color:#080c1485;font-size:10px;font-weight:900;pointer-events:none}.file-label{right:5px;bottom:3px}.rank-label{left:5px;top:3px}.practice-square.dark .file-label,.practice-square.dark .rank-label{color:#ffffffad}.bottom-action{gap:12px;min-height:78px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.secondary-action{flex:0 0 76px;color:var(--text);background:#48c8ff21;border:1px solid rgba(72,200,255,.24);display:grid;place-items:center;gap:2px;padding:5px}.secondary-action span{font-size:13px;line-height:1}.bottom-action div{display:grid;gap:2px;min-width:0}.bottom-action strong{color:var(--text)}.bottom-action span{color:var(--muted);font-size:12px;line-height:1.35}.feedback-correct strong,.feedback-complete strong{color:#62e6a3}.feedback-incorrect strong{color:#ff907b}.complete-card,.results-card,.chest-card{display:grid;gap:14px;padding:24px 18px 18px;text-align:center;animation:popFade .58s ease both}.complete-card h2,.results-card h2,.chest-card h2{color:var(--gold)}.round-results{display:grid;gap:8px}.round-results div{display:grid;gap:3px;padding:10px;border-radius:var(--radius);background:var(--panel-soft);text-align:left}.round-results span{color:var(--muted);font-size:12px}.reward-chest{position:relative;width:min(230px,70vw);height:186px;justify-self:center;display:grid;place-items:center;border:0;background:transparent;cursor:pointer}.reward-chest>img{width:100%;max-height:170px;object-fit:contain;z-index:2;filter:drop-shadow(0 20px 30px rgba(0,0,0,.42));transition:transform .42s ease,filter .42s ease}.reward-chest.open>img,.reward-chest.opening>img{transform:translateY(-8px) scale(1.04);filter:drop-shadow(0 20px 38px rgba(240,199,101,.28))}.chest-glow{position:absolute;inset:48px 22px auto;height:92px;border-radius:50%;background:radial-gradient(circle,rgba(255,224,138,.75),transparent 68%);opacity:0;transform:scale(.8);transition:opacity .35s ease,transform .35s ease}.reward-chest.open .chest-glow,.reward-chest.opening .chest-glow{opacity:1;transform:scale(1.15)}.reward-coin{width:36px;height:36px;object-fit:contain;vertical-align:-6px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes popFade{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width: 760px){:root{--board-size: min(58vw, calc(100svh - 250px) , 620px)}.gameplay-shell{width:min(96vw,820px)}}@media (max-width: 380px){:root{--board-size: min( calc(100vw - 18px) , calc(100svh - 300px) )}.app-stage{padding-left:9px;padding-right:9px}.bottom-action{min-height:70px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
