:root{--bg: #0e1116;--bg-2: #141922;--panel: rgba(24, 29, 39, .82);--panel-solid: #181d27;--panel-2: rgba(40, 47, 62, .7);--line: rgba(255, 255, 255, .08);--line-2: rgba(255, 255, 255, .16);--text: #eef1f6;--muted: #98a2b3;--faint: #667085;--accent: #34d399;--accent-2: #10b981;--gold: #e8c168;--red: #f25c54;--blue: #60a5fa;--radius: 16px;--shadow: 0 20px 60px rgba(0, 0, 0, .45);--serif: "Fraunces", Georgia, serif;--sans: "Inter", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--sq-light: #ebecd0;--sq-dark: #739552;color-scheme:dark}.theme-walnut{--sq-light: #f0d9b5;--sq-dark: #b58863}.theme-ice{--sq-light: #dee3e6;--sq-dark: #8ca2ad}.theme-night{--sq-light: #9aa6b8;--sq-dark: #4b5874}.theme-green{--sq-light: #ebecd0;--sq-dark: #739552}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1100px 600px at 80% -10%,rgba(52,211,153,.08),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(232,193,104,.07),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,select{font:inherit;color:inherit}a{color:inherit}.shell{max-width:1400px;margin:0 auto;padding:0 16px 40px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-mark{font-family:var(--serif);font-weight:800;font-size:22px;letter-spacing:.02em}.brand-mark span{color:var(--gold)}.topbar-right{display:flex;align-items:center;gap:6px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pad{padding:18px}.panel h3{margin:0 0 12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-2);background:var(--panel-2);padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s,background .2s,border-color .2s,opacity .2s;text-decoration:none;white-space:nowrap}.btn:hover{background:#404a60b3;border-color:#ffffff40}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(180deg,#3ee0a6,#10a877);border-color:#5ff0bd;color:#062016;box-shadow:0 8px 30px #10b9814d}.btn-primary:hover{background:linear-gradient(180deg,#50eab2,#12b680)}.btn-gold{background:linear-gradient(180deg,#f3d488,#d4a940);color:#221703;border-color:#ffe39b}.btn-danger{background:#f25c5429;border-color:#f25c5480;color:#ffb3ae}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:#ffffff0f}.btn-lg{padding:14px 24px;font-size:17px;border-radius:14px}.btn-sm{padding:6px 10px;font-size:13px;border-radius:9px}.btn-block{width:100%}.icon-btn{width:38px;height:38px;padding:0}.input{width:100%;background:#00000047;border:1px solid var(--line-2);border-radius:12px;padding:11px 14px;outline:none}.input:focus{border-color:#fff6}.code-input{text-transform:uppercase;letter-spacing:.4em;font-weight:800;font-size:20px;text-align:center;width:150px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}.spacer{flex:1}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:13px}.center{text-align:center}.serif{font-family:var(--serif)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.avatar{--size: 36px;width:var(--size);height:var(--size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:calc(var(--size) * .52);position:relative;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--c) 70%,white),var(--c));box-shadow:0 0 0 2px #0006;color:#111}.pres{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;background:var(--faint);border:2px solid var(--panel-solid)}.pres.on{background:var(--accent)}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:#ffffff14;color:var(--muted);white-space:nowrap}.pill-green{background:#34d39926;color:#6ee7b7}.pill-gold{background:#e8c16829;color:var(--gold)}.pill-red{background:#f25c5429;color:#ff9c95}.pill-blue{background:#60a5fa29;color:#a5c8ff}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding:6vh 0 4vh}.hero h1{font-family:var(--serif);font-size:clamp(46px,7vw,88px);line-height:.95;margin:0 0 16px;letter-spacing:-.02em}.hero h1 em{font-style:normal;color:var(--gold)}.hero p{color:var(--muted);font-size:18px;max-width:520px;margin:0 0 26px}.hero-board{border-radius:14px;overflow:hidden;box-shadow:0 40px 100px #0000008c,0 0 0 1px var(--line);transform:perspective(1400px) rotateY(-10deg) rotateX(6deg);transition:transform .6s}.hero-board:hover{transform:none}.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.feature{padding:18px}.feature b{display:block;font-size:16px;margin:6px 0 4px}.feature span.icon{font-size:26px}.lobby{display:grid;grid-template-columns:1fr 380px;gap:16px;align-items:start}.code-big{font-family:var(--mono);font-size:clamp(40px,7vw,60px);letter-spacing:.15em;font-weight:700;line-height:1}.qr{width:116px;height:116px;border-radius:12px;background:#fff;padding:6px}.seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.seat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 10px;border-radius:14px;border:1px solid var(--line);background:#ffffff06;position:relative;text-align:center;animation:rise .3s ease}.seat .name{font-weight:600;font-size:13.5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat .crown{position:absolute;top:6px;right:8px}.seat .me{position:absolute;top:6px;left:8px;font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.1em}.tc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tc{padding:10px 6px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;cursor:pointer;text-align:center;transition:all .15s}.tc:hover:not(:disabled){border-color:var(--line-2);transform:translateY(-1px)}.tc.on{border-color:var(--accent);background:#34d3991a;box-shadow:0 0 0 1px var(--accent)}.tc b{display:block;font-family:var(--mono);font-size:18px}.tc small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.tc:disabled{cursor:default}.slider-row{display:grid;grid-template-columns:110px 1fr 70px;gap:12px;align-items:center;margin-top:10px;font-size:14px}input[type=range]{width:100%;accent-color:var(--accent)}.seg{display:flex;background:#00000047;border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px;flex-wrap:wrap}.seg button{flex:1;border:none;background:transparent;padding:8px 10px;border-radius:9px;cursor:pointer;font-weight:600;color:var(--muted);font-size:13.5px;white-space:nowrap}.seg button.on{background:#ffffff1a;color:var(--text);box-shadow:0 2px 10px #0000004d}.seg button:disabled{cursor:default}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;font-size:14px}.switch{width:42px;height:24px;border-radius:999px;background:#ffffff24;border:none;position:relative;cursor:pointer;flex-shrink:0;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}.switch.on{background:var(--accent-2)}.switch.on:after{transform:translate(18px)}.switch:disabled{opacity:.5;cursor:default}.setting-label{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between}.preview{padding:12px 14px;border-radius:12px;background:#34d39912;border:1px solid rgba(52,211,153,.25);font-size:14px}.warn{padding:10px 12px;border-radius:12px;background:#e8c1681a;border:1px solid rgba(232,193,104,.3);color:var(--gold);font-size:14px}.arena{display:grid;grid-template-columns:260px minmax(0,1fr) 340px;gap:16px;align-items:start}.event-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px}.event-bar .title{font-family:var(--serif);font-size:22px;font-weight:800}.boards-list{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 170px);overflow:auto;padding-right:2px}.mini{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:8px;border-radius:14px;border:1px solid var(--line);background:#ffffff08;cursor:pointer;transition:border-color .2s,background .2s,transform .12s;position:relative}.mini:hover{border-color:var(--line-2);transform:translate(2px)}.mini.focus{border-color:var(--accent);background:#34d39912}.mini.turn{animation:glow 1.4s ease-in-out infinite;border-color:var(--gold)}@keyframes glow{50%{box-shadow:0 0 0 3px #e8c16840,0 0 24px #e8c16840}}.mini .who{font-weight:700;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini .meta{font-size:12px;color:var(--muted)}.mini .clocks{display:flex;gap:6px;margin-top:4px}.mini .clk{font-family:var(--mono);font-size:12.5px;padding:1px 6px;border-radius:6px;background:#0000004d}.mini .clk.run{background:#e8c16833;color:var(--gold)}.mini .clk.low{background:#f25c5440;color:#ffb3ae}.mini-board{width:92px;height:92px;border-radius:6px;overflow:hidden;pointer-events:none}.mini .badge{position:absolute;top:6px;right:8px}.board-wrap{display:flex;flex-direction:column;gap:10px}.player-bar{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:#ffffff09;border:1px solid var(--line)}.player-bar .nm{font-weight:700}.player-bar .rt{color:var(--muted);font-size:13px}.captured{font-size:17px;letter-spacing:-3px;color:var(--muted);min-height:20px}.clock{margin-left:auto;font-family:var(--mono);font-size:26px;font-weight:700;padding:4px 14px;border-radius:10px;background:#00000059;min-width:118px;text-align:right;transition:background .2s,color .2s}.clock.run{background:#f5f5f0;color:#111}.clock.low{background:var(--red);color:#fff;animation:pulse 1s infinite}.clock.flag{background:#5a1d1a;color:#ffb3ae}@keyframes pulse{50%{transform:scale(1.04)}}.board-frame{position:relative;border-radius:10px;overflow:hidden;box-shadow:0 30px 80px #00000080,0 0 0 1px var(--line)}.board-frame.berserk{box-shadow:0 30px 80px #00000080,0 0 0 3px #f97316}.game-over{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#080a0e8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade .4s ease;z-index:5;pointer-events:none}.game-over .card{pointer-events:auto;text-align:center;padding:22px 28px;border-radius:16px;background:#141820f2;border:1px solid var(--line-2);box-shadow:var(--shadow)}.game-over h2{font-family:var(--serif);font-size:30px;margin:0 0 4px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.controls{display:flex;gap:8px;flex-wrap:wrap}.deadline{height:4px;border-radius:4px;background:#ffffff14;overflow:hidden}.deadline>div{height:100%;background:var(--gold);transition:width .25s linear}.offer{padding:10px 12px;border-radius:12px;background:#60a5fa1a;border:1px solid rgba(96,165,250,.35);display:flex;align-items:center;gap:10px;flex-wrap:wrap;animation:rise .25s}.moves{display:grid;grid-template-columns:38px 1fr 1fr;font-family:var(--mono);font-size:13.5px;max-height:260px;overflow:auto;border-radius:10px;background:#0003}.moves .n{color:var(--faint);padding:4px 8px;background:#ffffff05}.moves .mv{padding:4px 8px;cursor:pointer;border-radius:4px}.moves .mv:hover{background:#ffffff0f}.moves .mv.cur{background:#34d39933;color:#b7f7dc}.tabs{display:flex;gap:4px;padding:10px 10px 0}.tab{padding:7px 12px;border-radius:10px 10px 0 0;border:none;background:transparent;color:var(--muted);font-weight:700;font-size:13px;cursor:pointer;position:relative}.tab.on{background:#ffffff0f;color:var(--text)}.tab .dot{position:absolute;top:5px;right:3px;width:7px;height:7px;border-radius:50%;background:var(--red)}.tab-body{border-top:1px solid var(--line);background:#ffffff05}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px;border-bottom:1px solid var(--line);font-weight:700}.table td{padding:8px;border-bottom:1px solid var(--line);font-size:14px}.table tr.me td{background:#34d39912}.table .num{text-align:right;font-variant-numeric:tabular-nums}.rank{font-family:var(--serif);font-weight:800;font-size:17px;color:var(--muted);width:30px}.rank.r1{color:var(--gold)}.rank.r2{color:#cfd6e6}.rank.r3{color:#e0a36d}.table-wrap{overflow-x:auto}.chat{display:flex;flex-direction:column;height:420px}.chat-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:9px}.msg{display:flex;gap:8px;animation:rise .2s}.msg .avatar{--size: 26px}.msg-name{font-weight:700;font-size:13px}.msg-text{font-size:14px;overflow-wrap:anywhere}.chat-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}.reactions{display:flex;justify-content:space-between;padding:4px 8px 0}.reactions button{background:none;border:none;font-size:18px;cursor:pointer;padding:3px 5px;border-radius:8px;transition:transform .1s}.reactions button:hover{transform:scale(1.25);background:#ffffff0f}.floaters{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;overflow:hidden}.floater{position:absolute;bottom:-40px;font-size:34px;animation:floatUp 3.2s ease-out forwards}.floater small{display:block;font-size:11px;font-weight:700;text-align:center;text-shadow:0 1px 4px #000}@keyframes floatUp{0%{transform:translateY(0) scale(.6);opacity:0}10%{opacity:1;transform:translateY(-10vh) scale(1.1)}to{transform:translateY(-80vh);opacity:0}}.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;padding:20px 10px 0}.step{text-align:center;width:150px}.step .block{border-radius:12px 12px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-family:var(--serif);font-size:34px;font-weight:800}.step.p1 .block{height:150px;background:linear-gradient(180deg,#e8c16873,#e8c16814);color:var(--gold)}.step.p2 .block{height:110px;background:linear-gradient(180deg,#cfd6e659,#cfd6e60f);color:#dfe5f2}.step.p3 .block{height:80px;background:linear-gradient(180deg,#e0a36d59,#e0a36d0f);color:#e0a36d}.step .who{font-weight:700;margin:8px 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cross td,.cross th{text-align:center;padding:6px;font-family:var(--mono);font-size:13px}.cross td.self{background:#ffffff0a}.cross .w{color:var(--accent)}.cross .l{color:var(--red)}.cross .d{color:var(--gold)}.toasts{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;width:min(92vw,460px)}.toast{padding:12px 16px;border-radius:12px;background:#252c3b;border:1px solid var(--line-2);box-shadow:var(--shadow);font-size:14px;animation:rise .25s}.toast.err{border-color:#f25c5480}.kbd{font-family:var(--mono);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--line-2);background:#ffffff0d}.big-empty{padding:60px 20px;text-align:center}.big-empty h2{font-family:var(--serif);font-size:34px;margin:0 0 8px}.emoji-pick{display:flex;flex-wrap:wrap;gap:4px}.emoji-pick button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#ffffff0a;font-size:20px;cursor:pointer}.emoji-pick button.on{border-color:var(--accent);background:#34d39926}.dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:currentColor;margin:0 1.5px;animation:dot 1.2s infinite}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}@keyframes dot{0%,80%,to{opacity:.2}40%{opacity:1}}.theme-dots{display:flex;gap:6px}.theme-dots button{width:22px;height:22px;border-radius:6px;border:2px solid transparent;cursor:pointer}.theme-dots button.on{border-color:#fff}.mobile-strip{display:none}@media(max-width:1180px){.arena{grid-template-columns:220px minmax(0,1fr)}.arena>.side-right{grid-column:1 / -1}}@media(max-width:860px){.hero,.lobby,.cols{grid-template-columns:1fr}.hero-board{transform:none;max-width:420px}.arena{grid-template-columns:1fr}.arena>.side-left{display:none}.mobile-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}.mobile-strip .mini{grid-template-columns:56px auto;min-width:190px}.mobile-strip .mini-board{width:56px;height:56px}.clock{font-size:22px;min-width:96px}.tc-grid{grid-template-columns:repeat(2,1fr)}.hide-mobile{display:none!important}}@media(max-width:480px){.shell{padding:0 10px 40px}.slider-row{grid-template-columns:90px 1fr 60px}.podium .step{width:100px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.fade-in{animation:fade .4s ease}.multi{display:grid;gap:16px;align-items:start}.multi.n2{grid-template-columns:repeat(2,minmax(0,1fr))}.multi.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.board-cell{border-radius:18px;padding:10px;border:2px solid transparent;transition:border-color .2s,box-shadow .2s,background .2s}.board-cell.on{border-color:#34d3998c;background:#34d3990a}.board-cell.flash{box-shadow:0 0 0 4px #34d39959}.board-head{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:8px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;cursor:pointer;text-align:left;font-size:14px}.board-head.on{border-color:#34d39980}.board-head.turn{animation:glow 1.4s ease-in-out infinite;border-color:var(--gold)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.multi.n3 .clock{font-size:20px;min-width:88px;padding:3px 10px}.multi.n3 .player-bar{padding:6px 8px}.arena.single{grid-template-columns:minmax(0,1fr) 340px}@media(max-width:1180px){.multi.n3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.multi.n2,.multi.n3,.arena.single{grid-template-columns:1fr}}
