:root{--bg0: #120d2a;--bg2: #2b1d6b;--card: rgba(255,255,255,.06);--card-line: rgba(255,255,255,.12);--card-solid: #1a1340;--fg: #f4f1ff;--fg-soft: #b3abd6;--fg-dim: #7c74a3;--gold: #ffc43d;--bull: #ff5d3b;--cow: #5cc8ff;--ok: #52e39a;--err: #ff6b8a;--display: "Unbounded", "Arial Black", sans-serif;--body: "Manrope", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--body);color:var(--fg);font-size:15px;line-height:1.5;background:var(--bg0);background-image:radial-gradient(1200px 600px at 20% -10%,var(--bg2),transparent 60%),radial-gradient(900px 500px at 110% 20%,#4a1e6e,transparent 60%),linear-gradient(var(--bg0),#0d0a1f);background-attachment:fixed;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:18px 40px;overflow-x:hidden;position:relative}img{max-width:100%}.blob{position:fixed;border-radius:50%;filter:blur(70px);opacity:.45;pointer-events:none;z-index:0}.blob.a{width:420px;height:420px;background:var(--bull);left:-140px;top:30%;animation:drift 18s ease-in-out infinite alternate}.blob.b{width:380px;height:380px;background:var(--cow);right:-120px;top:55%;animation:drift 22s ease-in-out infinite alternate-reverse}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(60px,-80px) scale(1.15)}}.wrap{position:relative;z-index:1;max-width:1000px;margin:0 auto;display:grid;gap:18px}header{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px}h1{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,5vw,2.8rem);margin:0;line-height:1.05;letter-spacing:-.02em;display:flex;gap:.35em;flex-wrap:wrap}h1 span{display:inline-block;animation:rise .7s cubic-bezier(.2,1.4,.4,1) both}h1 .b{color:var(--bull);text-shadow:0 0 30px rgba(255,93,59,.5)}h1 .c{color:var(--cow);text-shadow:0 0 30px rgba(92,200,255,.5);animation-delay:.25s}h1 .i{color:var(--fg-soft);font-weight:500;animation-delay:.12s}@keyframes rise{0%{transform:translateY(24px) rotate(-4deg);opacity:0}to{transform:none;opacity:1}}.tagline{color:var(--fg-soft);margin:6px 0 0;font-size:.92rem}.tagline b{font-weight:800}.tagline .b{color:var(--bull)}.tagline .c{color:var(--cow)}.topbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--card-line);border-radius:999px;padding:4px;flex-wrap:wrap}.tabs button{border:0;background:transparent;color:var(--fg-soft);font:600 .88rem var(--body);padding:8px 14px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}.tabs button[aria-selected=true]{background:var(--gold);color:#1a1340}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--card-line);background:var(--card);color:var(--fg);font-size:1.1rem;cursor:pointer}.who{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--card-line);border-radius:999px;padding:4px 12px 4px 4px;font-size:.85rem;font-weight:600;max-width:260px}.who img{width:30px;height:30px;border-radius:50%}.who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who .btn.slim{height:28px;padding:0 10px;font-size:.78rem}.who.guest{padding-left:12px;color:var(--fg-soft)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:720px){main{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--card-line);border-radius:20px;padding:20px;min-width:0;display:grid;gap:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fade .6s ease both}.panel.right{animation-delay:.15s}.panel.wide{grid-column:1 / -1}@keyframes fade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);font-weight:800}.opts{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.opts label{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--fg-soft)}select,input[type=text],input[type=email]{font:600 .9rem var(--body);color:var(--fg);background:var(--card-solid);border:1px solid var(--card-line);border-radius:8px;padding:5px 8px}input.code-in{font-family:var(--mono);text-transform:uppercase;letter-spacing:.2em;width:120px;height:46px;text-align:center;font-size:1.1rem}input[type=email]{height:46px;min-width:200px;flex:1}input[type=checkbox]{accent-color:var(--gold);width:16px;height:16px}.duelstrip{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:linear-gradient(90deg,#ff5d3b2e,#5cc8ff2e);border:1px solid var(--card-line);border-radius:14px;padding:10px 12px;font-size:.88rem}.duelstrip .pp{display:flex;align-items:center;gap:6px;background:#00000040;border-radius:999px;padding:3px 10px 3px 3px;font-weight:700}.duelstrip .pp img,.duelstrip .pp .av{width:24px;height:24px;border-radius:50%}.duelstrip .pp.done{box-shadow:inset 0 0 0 2px var(--ok)}.slots{display:flex;gap:10px;justify-content:center}.slots.shake{animation:shake .4s}@keyframes shake{20%{transform:translate(-10px)}40%{transform:translate(9px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.slot{width:clamp(52px,14vw,68px);aspect-ratio:3/4;max-width:100%;border:2px solid var(--card-line);border-radius:14px;display:grid;place-items:center;font:800 2.1rem var(--mono);font-variant-numeric:tabular-nums;background:#00000040;position:relative;transition:border-color .2s,box-shadow .2s}.slot.active{border-color:var(--gold);box-shadow:0 0 0 4px #ffc43d2e,0 0 24px #ffc43d40}.slot.active:after{content:"";width:40%;height:3px;background:var(--gold);position:absolute;bottom:12px;border-radius:2px;animation:blink 1s steps(2) infinite}@keyframes blink{to{opacity:0}}.slot.known{border-color:var(--ok);color:var(--ok)}.slot.filled{animation:pop .25s cubic-bezier(.2,1.6,.4,1)}.slot.won{border-color:var(--ok);background:#52e39a2e;color:var(--ok);animation:flipin .6s cubic-bezier(.2,1.2,.4,1) both}.slot.lost{border-color:var(--err);color:var(--err);animation:flipin .6s both}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}@keyframes flipin{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.msg{min-height:1.6em;text-align:center;color:var(--fg-soft);font-size:.95rem;font-weight:600}.msg.err{color:var(--err)}.msg.win{color:var(--ok);font-size:1.05rem}.verdict{display:flex;gap:6px;justify-content:center;min-height:44px;flex-wrap:wrap}.tok{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:1.35rem;animation:tokin .5s cubic-bezier(.2,1.6,.4,1) both}.tok.b{background:#ff5d3b33;box-shadow:inset 0 0 0 2px var(--bull)}.tok.c{background:#5cc8ff33;box-shadow:inset 0 0 0 2px var(--cow)}.tok.z{background:var(--card);box-shadow:inset 0 0 0 2px var(--card-line);font-size:1rem;width:auto;padding:0 14px;border-radius:999px;color:var(--fg-soft);font-weight:700}@keyframes tokin{0%{transform:scale(0) rotate(-40deg);opacity:0}to{transform:none;opacity:1}}.keys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.keys button{height:54px;border:1px solid var(--card-line);border-radius:12px;background:#ffffff12;color:var(--fg);font:800 1.3rem var(--mono);cursor:pointer;position:relative;overflow:hidden;transition:transform .08s,background .2s,opacity .2s;user-select:none;-webkit-user-select:none;touch-action:manipulation}.keys button:hover{background:#ffffff24}.keys button:active{transform:scale(.92)}.keys button.used{opacity:.35}.keys button.excl{color:var(--fg-dim);text-decoration:line-through;opacity:.4}.keys button.sure{box-shadow:inset 0 0 0 2px var(--ok);color:var(--ok);background:#52e39a26}.keys button:disabled{cursor:default;opacity:.3}.ripple{position:absolute;border-radius:50%;background:#ffffff59;transform:scale(0);animation:ripple .5s ease-out forwards;pointer-events:none}@keyframes ripple{to{transform:scale(4);opacity:0}}.actions{display:grid;grid-template-columns:1fr 1fr 2fr;gap:8px}.btn{height:48px;border:1px solid var(--card-line);border-radius:12px;background:#ffffff12;color:var(--fg);font:700 .95rem var(--body);cursor:pointer;padding:0 14px;transition:transform .08s,background .2s,filter .2s;position:relative;overflow:hidden}.btn:hover{background:#ffffff24}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(135deg,var(--gold),#ff9f43);color:#1a1340;border:0;box-shadow:0 8px 24px #ffaa3d4d}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{background:linear-gradient(135deg,var(--bull),#ff8a3b);color:#1a1340;border:0}.btn:disabled{opacity:.4;cursor:default;transform:none}.btn.slim{height:36px;font-size:.85rem}.help{font-size:.82rem;color:var(--fg-dim);margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:#00000038;border-radius:12px;padding:10px 12px;display:grid}.stat b{font:800 1.35rem var(--mono);font-variant-numeric:tabular-nums}.bar{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cow),var(--gold));transition:width .6s cubic-bezier(.2,1,.3,1)}.log{display:grid;gap:6px;max-height:52vh;overflow-y:auto;padding-right:2px}.row{display:grid;grid-template-columns:2ch 1fr auto;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;background:#00000038;font-variant-numeric:tabular-nums;animation:slidein .4s cubic-bezier(.2,1.2,.4,1) both}@keyframes slidein{0%{transform:translate(-16px);opacity:0}to{transform:none;opacity:1}}.row .n{color:var(--fg-dim);font-size:.8rem;text-align:right;font-weight:700}.row .g{font:800 1.3rem var(--mono);letter-spacing:.3em}.row .r{display:flex;gap:6px}.pill{font:800 .85rem var(--mono);padding:3px 10px;border-radius:999px}.pill.b{background:#ff5d3b33;color:var(--bull)}.pill.c{background:#5cc8ff33;color:var(--cow)}.row.win{box-shadow:inset 0 0 0 2px var(--ok)}.empty{color:var(--fg-dim);font-size:.9rem;text-align:center;padding:20px 10px}.records{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:.82rem;color:var(--fg-soft)}.records div{background:#00000038;border-radius:12px;padding:8px 12px;display:grid}.records b{font:800 1.1rem var(--mono);color:var(--gold)}.cguess{text-align:center;font:800 clamp(2.4rem,9vw,3.4rem) var(--mono);letter-spacing:.3em;padding-left:.3em;color:var(--gold);text-shadow:0 0 30px rgba(255,196,61,.35);min-height:1.2em}.cguess.think{color:var(--fg-soft);text-shadow:none}.steppers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.step{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;border:1px solid var(--card-line);border-radius:14px;overflow:hidden;background:#00000038}.step button{height:64px;border:0;background:#ffffff0f;color:var(--fg);font:800 1.4rem var(--mono);cursor:pointer}.step button:active{background:#ffffff2e}.step output{text-align:center;font:800 1.8rem var(--mono);line-height:1.1}.step.b output{color:var(--bull)}.step.c output{color:var(--cow)}.step small{display:block;font:800 .68rem var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim)}.rules{font-size:.88rem;color:var(--fg-soft)}.rules p{margin:0 0 6px}.code{font:800 2.4rem var(--mono);letter-spacing:.35em;padding-left:.35em;color:var(--gold);text-align:center}.peers{display:grid;gap:6px}.peer{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;background:#00000038;border-radius:12px;padding:6px 10px}.peer img,.av{width:36px;height:36px;border-radius:50%;background:var(--bg2);display:grid;place-items:center;font-weight:800;color:var(--gold)}.peer .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.peer .st{font:800 .9rem var(--mono);color:var(--fg-soft)}.peer.me .nm:after{content:" (ти)";color:var(--fg-dim);font-weight:600}.peer.done .st{color:var(--ok)}.joinrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.reacts{display:flex;gap:6px;flex-wrap:wrap}.reacts button{width:44px;height:44px;border-radius:50%;border:1px solid var(--card-line);background:var(--card);font-size:1.3rem;cursor:pointer}.float{position:fixed;z-index:7;font-size:2.6rem;pointer-events:none;animation:floatup 1.6s ease-out forwards}@keyframes floatup{0%{transform:translateY(0) scale(.6);opacity:0}15%{opacity:1;transform:scale(1.2)}to{transform:translateY(-160px) scale(1);opacity:0}}.segs{display:flex;gap:4px;background:#00000038;border-radius:999px;padding:4px;width:max-content;max-width:100%;flex-wrap:wrap}.segs button{border:0;background:transparent;color:var(--fg-soft);font:700 .85rem var(--body);padding:6px 14px;border-radius:999px;cursor:pointer}.segs button[aria-selected=true]{background:#ffffff24;color:var(--fg)}.board{display:grid;gap:6px}.brow{display:grid;grid-template-columns:2.2ch 36px 1fr auto;align-items:center;gap:10px;background:#00000038;border-radius:12px;padding:6px 12px 6px 10px;animation:slidein .4s both}.brow.me{box-shadow:inset 0 0 0 2px var(--gold)}.brow:nth-child(1) .rk{color:var(--gold)}.brow:nth-child(2) .rk{color:#d6d6e0}.brow:nth-child(3) .rk{color:#d59a5b}.brow .rk{font:800 1rem var(--mono);text-align:right}.brow img{width:36px;height:36px;border-radius:50%}.brow .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.brow .nm small{display:block;color:var(--fg-dim);font-weight:600;font-size:.75rem}.brow .sc{font:800 1.15rem var(--mono);color:var(--gold);text-align:right}.brow .sc small{display:block;font:600 .72rem var(--body);color:var(--fg-dim)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080514b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:8;padding:16px;animation:fade .3s both}.result{background:var(--card-solid);border:1px solid var(--card-line);border-radius:24px;padding:28px 24px;width:min(420px,100%);display:grid;gap:14px;text-align:center;animation:pop .5s cubic-bezier(.2,1.5,.4,1) both;box-shadow:0 30px 80px #0009}.result h2{font-family:var(--display);font-size:1.5rem;margin:0;color:var(--gold)}.stars{display:flex;justify-content:center;gap:4px;font-size:2rem}.stars span{opacity:.2;filter:grayscale(1);animation:star .5s cubic-bezier(.2,1.6,.4,1) both}.stars span.on{opacity:1;filter:none}@keyframes star{0%{transform:scale(0) rotate(-90deg)}to{transform:none}}.score{font:800 3.4rem var(--mono);color:var(--fg);line-height:1}.score small{display:block;font:800 .75rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);margin-top:4px}.rating{font-weight:800;font-size:1.1rem}.break{display:grid;gap:4px;font-size:.9rem;color:var(--fg-soft);text-align:left;background:#00000040;border-radius:12px;padding:10px 14px}.break div{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.break b{color:var(--fg);font-family:var(--mono)}.saved{font-size:.85rem;color:var(--ok);font-weight:700;min-height:1.4em}.saved.no{color:var(--fg-dim);font-weight:600}.result .actions{grid-template-columns:1fr 1fr}canvas#fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.bigwin{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:6;font:800 clamp(3rem,12vw,7rem) var(--display);color:var(--gold);text-shadow:0 10px 40px rgba(0,0,0,.5);animation:bigwin 1.8s cubic-bezier(.2,1.4,.4,1) forwards}@keyframes bigwin{0%{transform:scale(.3) rotate(-8deg);opacity:0}25%{transform:scale(1.1) rotate(2deg);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1.2);opacity:0}}.banner{background:#ffc43d1f;border:1px solid rgba(255,196,61,.35);border-radius:12px;padding:10px 14px;font-size:.88rem;color:var(--fg-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
