:root{--bg: #0d0a1f;--bg2: #151033;--card: rgba(255, 255, 255, .05);--card-strong: rgba(255, 255, 255, .09);--border: rgba(255, 255, 255, .1);--text: #f1eefc;--muted: #a49cc8;--violet: #7c5cff;--cyan: #22d3ee;--pink: #ff4fa3;--green: #22c55e;--red: #ef4444;--amber: #f59e0b;--radius: 16px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{font-family:Outfit,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 10% -10%,rgba(124,92,255,.25),transparent 60%),radial-gradient(900px 500px at 110% 10%,rgba(34,211,238,.15),transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:clamp(1.6rem,4vw,2.3rem);margin:0 0 .5rem;letter-spacing:-.02em}h2{font-size:1.15rem;margin:0 0 .75rem}h3{margin:0}img{max-width:100%}.grad{background:linear-gradient(90deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:#fca5a5}.success{color:#86efac}.notice{background:#f59e0b1f;border:1px solid rgba(245,158,11,.35);padding:.6rem .9rem;border-radius:12px}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row>.input{flex:1;min-width:180px}.spread{justify-content:space-between}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.1rem;border-radius:12px;border:1px solid var(--border);background:var(--card-strong);color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:transform .08s,background .15s,opacity .15s;text-decoration:none}.btn:hover{background:#ffffff24;text-decoration:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--violet),#5b3df5);border-color:transparent;box-shadow:0 6px 20px #7c5cff59}.btn-primary:hover{background:linear-gradient(135deg,#8d71ff,#6a4ff7)}.btn-ghost{background:transparent}.btn-lg{padding:.9rem 1.6rem;font-size:1.1rem}.btn-sm{padding:.4rem .75rem;font-size:.9rem}.btn-xs{padding:.15rem .45rem;font-size:.8rem;border-radius:8px}.btn-spotify{background:#1db954;border-color:transparent;color:#04140a;margin-top:.75rem}.link-btn{background:none;border:0;color:inherit;font:inherit;cursor:pointer;display:flex;align-items:center;gap:.6rem;padding:0;text-align:left}.link-btn img{width:36px;height:36px;border-radius:6px}.input{width:100%;padding:.7rem .9rem;border-radius:12px;border:1px solid var(--border);background:#00000040;color:var(--text);font:inherit;outline:none}.input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #7c5cff40}.input-lg{font-size:1.15rem;padding:.9rem 1rem}input[type=range]{width:100%;accent-color:var(--violet)}.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.4rem 0 .9rem}.chip{padding:.45rem .8rem;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-size:.92rem;cursor:pointer}.chip.active{background:var(--violet);border-color:transparent}.chip:disabled{cursor:default}.chip:disabled:not(.active){opacity:.6}.tag{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--card-strong);margin-left:.4rem;font-weight:500}.tag.warn{background:#f59e0b40}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;flex-shrink:0;font-weight:700;color:#fff;background:#333}.avatar img{width:100%;height:100%;object-fit:cover}.crystal{display:inline-flex;align-items:center;gap:.25rem;font-weight:700}.crystal-icon{filter:drop-shadow(0 0 6px rgba(34,211,238,.6))}.crystal-name{font-weight:500}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:4rem 1rem;color:var(--muted)}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid var(--border);border-top-color:var(--violet);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;padding:.7rem 1.2rem;background:#0d0a1fcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.55rem;color:var(--text);font-size:1.1rem;white-space:nowrap}.brand:hover{text-decoration:none}.nav{display:flex;gap:.25rem;flex:1;overflow-x:auto;scrollbar-width:none}.nav a{color:var(--muted);padding:.45rem .75rem;border-radius:10px;white-space:nowrap}.nav a:hover{color:var(--text);text-decoration:none}.nav a.active{color:var(--text);background:var(--card-strong)}.header-right{display:flex;align-items:center;gap:.75rem}.balance{color:var(--text);background:var(--card-strong);padding:.35rem .75rem;border-radius:999px}.balance:hover{text-decoration:none}.main{max-width:1200px;margin:0 auto;padding:1.5rem 1rem 4rem}.page{max-width:1000px;margin:0 auto}.page.narrow{max-width:720px}.page-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.big-balance{font-size:1.4rem}.login{min-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.login-card{width:min(440px,100%);text-align:center;background:var(--card);border:1px solid var(--border);border-radius:24px;padding:2.2rem 1.6rem;display:flex;flex-direction:column;gap:1rem}.login-logo{margin:0 auto;filter:drop-shadow(0 10px 30px rgba(124,92,255,.5))}.dev-login{display:flex;flex-direction:column;gap:.6rem}.divider{color:var(--muted);font-size:.85rem;margin:.5rem 0}.login-games{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;max-width:640px}.login-chip{border:1px solid;border-radius:999px;padding:.3rem .7rem;font-size:.85rem;color:var(--muted)}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.hero p{max-width:560px}.join-form{display:flex;gap:.5rem}.code-input{width:130px;text-align:center;font-size:1.3rem;letter-spacing:.3em;font-weight:700;text-transform:uppercase}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.game-card{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:1.2rem;border-radius:20px;border:1px solid var(--border);overflow:hidden;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 22%,transparent),var(--card) 55%);transition:transform .15s,border-color .15s}.game-card:not(.soon):hover{transform:translateY(-3px);border-color:var(--accent)}.game-card.soon{opacity:.6}.game-emoji{font-size:2.4rem}.game-body h3{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}.game-body p{color:var(--muted);margin:.35rem 0 0;font-size:.93rem;flex:1}.game-card .btn{margin-top:auto}.soon-badge{margin-top:auto;align-self:flex-start;font-size:.85rem;color:var(--muted);border:1px dashed var(--border);padding:.3rem .7rem;border-radius:999px}.profile-card{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.profile-card .row{width:100%;max-width:420px}.avatar-edit{position:relative;background:none;border:0;cursor:pointer;padding:0;border-radius:50%}.avatar-edit-hint{position:absolute;right:0;bottom:0;background:var(--violet);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}.stat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:.9rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}.stat b{font-size:1.4rem}.stat span{color:var(--muted);font-size:.85rem}.history{list-style:none;padding:0;margin:0}.history li{display:grid;grid-template-columns:1.4fr 1.4fr .8fr .8fr .8fr;gap:.5rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.92rem;align-items:center}.leaderboard,.final-list{list-style:none;padding:.4rem 1rem}.leaderboard li,.final-list li{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.leaderboard li:last-child,.final-list li:last-child{border-bottom:0}.final-list li.me{background:#7c5cff1f;border-radius:10px;padding-left:.5rem}.lb-rank{width:2rem;text-align:center;font-weight:700}.lb-name{flex:1;font-weight:600}.boosters{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem}.booster{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:1rem;display:flex;flex-direction:column;gap:.5rem;text-align:center}.booster.disabled{opacity:.5}.booster-art{aspect-ratio:3 / 4;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(145deg,var(--violet),var(--pink) 60%,var(--cyan));overflow:hidden}.booster-art img{width:100%;height:100%;object-fit:cover}.booster .btn{margin-top:auto}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:1.5rem;width:min(400px,100%)}.source-help{padding-left:1.1rem;margin:.8rem 0 0}.import-job{margin-top:1rem}.progress{height:10px;background:var(--card-strong);border-radius:999px;overflow:hidden;margin-bottom:.4rem}.progress>div{height:100%;background:linear-gradient(90deg,var(--violet),var(--cyan));transition:width .4s}.playlists{list-style:none;padding:0;margin:0}.playlists li{display:flex;align-items:center;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--border)}.playlists li>div{flex:1;display:flex;flex-direction:column}.playlists img,.pl-cover{width:48px;height:48px;border-radius:8px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:var(--card-strong)}.room-top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.room-title{display:flex;align-items:center;gap:.6rem;flex:1}.room-game{padding:.35rem .8rem;border-radius:999px;font-weight:700}.room-code{font-weight:700;letter-spacing:.15em;color:var(--muted)}.room-players-mini{display:flex}.room-players-mini .avatar{margin-left:-6px;border:2px solid var(--bg)}.room-body{display:grid;grid-template-columns:1fr 300px;gap:1rem;align-items:start}.room-main{min-width:0}.chat{position:sticky;top:80px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;height:calc(100vh - 140px);max-height:640px}.chat-toggle{display:none}.chat-list{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.45rem;font-size:.92rem}.chat-msg{display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}.chat-msg .avatar{align-self:center}.chat-sys{color:var(--muted);font-size:.82rem;font-style:italic}.chat-form{padding:.6rem;border-top:1px solid var(--border)}.lobby .invite{display:flex;align-items:center;justify-content:space-between}.big-code{font-size:2.4rem;font-weight:800;letter-spacing:.25em}.tabs{display:flex;gap:.3rem;margin-bottom:.8rem;flex-wrap:wrap}.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);font:inherit;padding:.4rem .6rem;cursor:pointer}.tabs button.active{color:var(--text);border-color:var(--violet)}.cat-group .chips{margin-top:.25rem}.pick-list{list-style:none;padding:0;margin:.6rem 0;max-height:260px;overflow-y:auto}.pick-list li{padding:.4rem 0;border-bottom:1px solid var(--border)}.pick-list label{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;cursor:pointer}.sliders{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}.sliders label{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}.switch{display:flex;align-items:center;gap:.5rem;cursor:pointer}.switch input{width:18px;height:18px;accent-color:var(--violet)}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem}.player-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:12px;background:var(--card)}.player-row.offline{opacity:.45}.player-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-actions{display:flex;gap:.2rem}.teams{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.team{padding:.8rem;border-radius:14px;display:flex;flex-direction:column;gap:.4rem}.team-1{background:#ef44441f;border:1px solid rgba(239,68,68,.35)}.team-2{background:#3b82f61f;border:1px solid rgba(59,130,246,.35)}.start-btn{display:flex;margin:1rem auto;min-width:260px}.waiting{text-align:center;color:var(--muted);padding:1rem}.game{display:flex;flex-direction:column;gap:1rem}.game-head{display:flex;align-items:center;gap:1rem}.round{font-weight:700;white-space:nowrap}.timer{flex:1;display:flex;align-items:center;gap:.6rem}.timer-bar{flex:1;height:10px;border-radius:999px;background:var(--card-strong);overflow:hidden}.timer-fill{height:100%;background:var(--violet);transition:width .1s linear;border-radius:999px}.timer-fill.low{background:var(--red)!important}.timer-secs{font-variant-numeric:tabular-nums;width:2.5rem;text-align:right;font-weight:700}.volume{display:flex;align-items:center;gap:.3rem;width:130px}.bt-stage{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--card);border:1px solid var(--border);border-radius:22px;padding:1.5rem}.bt-msg{font-size:1.3rem;color:var(--muted)}.vinyl-wrap{display:flex;flex-direction:column;align-items:center;gap:1rem}.vinyl{width:150px;height:150px;border-radius:50%;background:repeating-radial-gradient(circle,#111 0 2px,#1d1d1d 2px 4px);position:relative;box-shadow:0 0 40px #ff4fa359}.vinyl:after{content:"";position:absolute;inset:38%;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--violet))}.vinyl.spin{animation:spin 2.4s linear infinite}.found-flags{display:flex;gap:.6rem}.found-flags span{padding:.35rem .8rem;border-radius:999px;background:var(--card-strong);color:var(--muted)}.found-flags span.ok{background:var(--green);color:#052e12;font-weight:700}.reveal-card{display:flex;align-items:center;gap:1.2rem;animation:pop .35s ease-out}.reveal-card img{width:150px;height:150px;border-radius:14px;box-shadow:0 12px 40px #00000080}.reveal-card>div{display:flex;flex-direction:column;gap:.3rem}.reveal-title{font-size:1.6rem;font-weight:800}.reveal-artist{font-size:1.15rem;color:var(--cyan)}@keyframes pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.guess-form{display:flex;gap:.6rem}.guess-log{display:flex;flex-wrap:wrap;gap:.4rem;min-height:1.8rem}.guess{font-size:.85rem;padding:.25rem .6rem;border-radius:999px;background:var(--card-strong)}.guess-title,.guess-artist,.guess-both{background:#22c55e33}.guess-close{background:#f59e0b33}.guess-wrong{opacity:.6}.bt-history{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.3rem}.bt-history-item{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:76px;flex-shrink:0;text-align:center}.bt-history-item img,.bt-history-item>span:first-child{width:64px;height:64px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--card-strong)}.bt-history-item .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.scoreboard{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.sb-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem;border-radius:10px;transition:background .2s}.sb-row.me{background:#7c5cff26}.sb-row.offline{opacity:.45}.sb-rank{width:1.4rem;text-align:center;color:var(--muted);font-weight:700}.sb-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-badge{display:flex;gap:.25rem;align-items:center}.sb-score{font-weight:800;font-variant-numeric:tabular-nums;min-width:3rem;text-align:right}.plus{color:var(--green);font-weight:700;font-size:.85rem}.team-scores{display:flex;justify-content:center;gap:1.5rem;font-size:1.3rem;font-weight:800;padding:.4rem}.question-card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:1.5rem;text-align:center;position:relative}.q-meta{display:flex;justify-content:center;gap:.3rem;margin-bottom:.8rem}.q-meta .tag{margin:0;font-size:.85rem}.diff-1{background:#22c55e40!important}.diff-2{background:#eab30840!important}.diff-3{background:#f973164d!important}.diff-4{background:#ef44444d!important}.q-text{font-size:clamp(1.2rem,3vw,1.7rem);margin:0;line-height:1.3}.q-countdown{font-size:3rem;font-weight:800;color:var(--violet);margin-top:.6rem;animation:pop .5s}.choices{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.choice{display:flex;align-items:center;gap:.8rem;padding:1rem;border-radius:16px;border:2px solid transparent;color:#fff;font:inherit;font-size:1.05rem;font-weight:600;text-align:left;cursor:pointer;transition:transform .1s,opacity .2s,border-color .2s}.choice:not(:disabled):hover{transform:translateY(-2px)}.choice:disabled{cursor:default}.choice-0{background:#7c3aed}.choice-1{background:#0891b2}.choice-2{background:#db2777}.choice-3{background:#d97706}.choice.picked{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d}.choice.correct{background:var(--green);border-color:#fff}.choice.wrong{background:var(--red)}.choice.dim{opacity:.35}.choice-letter{width:2rem;height:2rem;border-radius:8px;background:#00000040;display:flex;align-items:center;justify-content:center;flex-shrink:0}.choice-text{flex:1}.choice-pickers{display:flex;gap:2px}.reveal-banner{border-radius:16px;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.35rem;animation:pop .3s}.reveal-banner.ok{background:#22c55e26;border:1px solid rgba(34,197,94,.4)}.reveal-banner.ko{background:#ef44441f;border:1px solid rgba(239,68,68,.35)}.streak{color:var(--amber);font-weight:700}.text-answers{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.88rem}.text-answers .ok{color:#86efac}.text-answers .ko{color:#fca5a5}.results{display:flex;flex-direction:column;gap:1rem}.podium{display:flex;justify-content:center;align-items:flex-end;gap:.8rem;margin:1rem 0}.podium-step{display:flex;flex-direction:column;align-items:center;gap:.35rem;width:130px;animation:pop .5s}.podium-block{width:100%;border-radius:14px 14px 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:.5rem;font-size:2rem;background:linear-gradient(180deg,#7c5cff80,#7c5cff1a)}.step-1 .podium-block{height:130px;background:linear-gradient(180deg,#facc158c,#facc151a)}.step-2 .podium-block{height:95px;background:linear-gradient(180deg,#cbd5e180,#cbd5e11a)}.step-3 .podium-block{height:70px;background:linear-gradient(180deg,#d9770680,#d977061a)}.podium-step.empty{width:130px}.team-final{display:flex;justify-content:center;gap:1rem;font-size:1.4rem}.team-final>div{padding:.8rem 1.4rem;border-radius:14px}.reward-banner{text-align:center;font-size:1.3rem;background:linear-gradient(90deg,#7c5cff40,#22d3ee40);padding:.8rem;border-radius:14px}@media(max-width:900px){.room-body{grid-template-columns:1fr}.chat{position:fixed;right:12px;bottom:12px;top:auto;width:min(340px,calc(100vw - 24px));height:auto;max-height:none;z-index:30;background:var(--bg2)}.chat:not(.open) .chat-list,.chat:not(.open) .chat-form{display:none}.chat.open .chat-list{height:50vh}.chat-toggle{display:block;background:none;border:0;color:var(--text);font:inherit;font-weight:600;padding:.6rem 1rem;cursor:pointer;text-align:left}}@media(max-width:640px){.main{padding:1rem .75rem 5rem}.header{flex-wrap:wrap;padding:.6rem .8rem;gap:.5rem}.brand span{display:none}.nav{order:3;flex-basis:100%}.header-right{margin-left:auto}.choices{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.sliders,.teams{grid-template-columns:1fr}.history li{grid-template-columns:1fr 1fr 1fr}.history li>span:nth-child(2){display:none}.reveal-card{flex-direction:column;text-align:center}.reveal-card img{width:120px;height:120px}.game-head{flex-wrap:wrap}.volume{width:100%}.podium-step{width:100px}.big-code{font-size:1.9rem}}.tusmo-layout{display:grid;grid-template-columns:1fr 260px;gap:1rem;align-items:start}.tusmo-main{display:flex;flex-direction:column;align-items:center;gap:.8rem}.tusmo-side{display:flex;flex-direction:column;gap:.8rem}.tusmo-grid{display:flex;flex-direction:column;gap:5px;padding:10px;background:#1d4ed8;border-radius:14px;box-shadow:0 12px 40px #1d4ed859}.tusmo-row{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:5px;position:relative}.cell{width:clamp(34px,8.5vw,52px);aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(1.1rem,4vw,1.7rem);font-weight:800;color:#fff;background:#2563eb;border-radius:4px;text-transform:uppercase}.cell.empty{color:#ffffff8c}.cell.hint{color:#ffffff73}.cell.typed{background:#1e40af}.cell.mark-R{background:#dc2626;animation:flip .35s both}.cell.mark-Y{background:#2563eb;position:relative;animation:flip .35s both;z-index:0}.cell.mark-Y:before{content:"";position:absolute;inset:3px;border-radius:50%;background:#eab308;z-index:-1}.cell.mark-no{background:#1e3a8a;animation:flip .35s both}@keyframes flip{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.row-author{position:absolute;right:-34px;top:50%;transform:translateY(-50%)}.answer-banner{background:var(--card-strong);border:1px solid var(--border);border-radius:14px;padding:.7rem 1.2rem;font-size:1.2rem;text-align:center;animation:pop .3s}.answer-banner b{letter-spacing:.08em;color:var(--amber)}.keyboard{display:flex;flex-direction:column;gap:6px;width:100%;max-width:560px}.kb-row{display:flex;gap:5px;justify-content:center}.key{flex:1;max-width:46px;height:50px;border:0;border-radius:8px;background:var(--card-strong);color:var(--text);font:inherit;font-weight:700;cursor:pointer}.key.wide{max-width:80px;flex:1.6;font-size:.8rem}.key:disabled{opacity:.5;cursor:default}.key.mark-R{background:#dc2626}.key.mark-Y{background:#ca8a04}.key.mark-no{background:#1f2937;color:#6b7280}.others{display:flex;flex-wrap:wrap;gap:.6rem}.other-board{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.5rem;display:flex;flex-direction:column;gap:3px;min-width:110px}.other-head{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;margin-bottom:.2rem}.mini-row{display:flex;gap:2px}.mini{width:12px;height:12px;border-radius:2px;background:#1e3a8a}.mini.mark-R{background:#dc2626}.mini.mark-Y{background:#eab308;border-radius:50%}.dle-search{position:relative;max-width:560px;width:100%;margin:0 auto}.dle-suggest{position:absolute;z-index:10;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:.3rem;background:var(--bg2);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 30px #00000080}.dle-suggest button{width:100%;display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;background:none;border:0;color:var(--text);font:inherit;text-align:left;border-radius:8px;cursor:pointer}.dle-suggest button:hover{background:var(--card-strong)}.dle-suggest img{width:32px;height:32px;object-fit:contain;border-radius:4px}.dle-table-wrap{overflow-x:auto}.dle-table{width:100%;border-collapse:separate;border-spacing:4px;font-size:.85rem}.dle-table th{color:var(--muted);font-weight:600;padding:.2rem;text-align:center;white-space:nowrap}.dle-item{display:flex;align-items:center;gap:.4rem;min-width:150px;font-weight:600}.dle-item img{width:40px;height:40px;object-fit:contain;border-radius:6px;background:var(--card)}.dle-cell{text-align:center;padding:.45rem .35rem;border-radius:8px;min-width:80px;font-weight:600;animation:flip .35s both}.st-ok{background:#16a34a}.st-partial{background:#d97706}.st-no,.st-up,.st-down{background:#b91c1c}.arrow{display:block;font-size:1.1rem;line-height:1}.legend{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.dot{display:inline-block;width:12px;height:12px;border-radius:3px}.mini.st-ok{background:#16a34a}.mini.st-partial{background:#d97706}.mini.st-no,.mini.st-up,.mini.st-down{background:#b91c1c}.dle-answer{display:flex;align-items:center;justify-content:center;gap:1rem}.dle-answer img{width:72px;height:72px;object-fit:contain}@media(max-width:900px){.tusmo-layout{grid-template-columns:1fr}.row-author{right:auto;left:-30px}}@media(max-width:640px){.key{height:44px}.row-author{display:none}}.pb-letter-wrap{display:flex;align-items:center;gap:1rem;justify-content:center}.pb-letter{width:84px;height:84px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:3.2rem;font-weight:800;background:linear-gradient(135deg,var(--amber),#ea580c);box-shadow:0 10px 30px #f59e0b59;animation:pop .4s}.pb-stop-msg{color:#fca5a5}.pb-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem}.pb-field{display:flex;flex-direction:column;gap:.3rem;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:.7rem}.pb-field>span{font-weight:600;font-size:.9rem;color:var(--muted)}.pb-field.filled{border-color:#f59e0b99}.pb-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:space-between}.btn-stop{background:linear-gradient(135deg,#ef4444,#b91c1c);border-color:transparent;box-shadow:0 6px 20px #ef444459}.pb-progress{display:flex;gap:.6rem;flex-wrap:wrap}.pb-progress-item{display:flex;align-items:center;gap:.3rem;font-size:.85rem;font-variant-numeric:tabular-nums}.pb-table{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem}.pb-cat{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:.7rem}.pb-cat h3{font-size:.95rem;margin-bottom:.5rem;color:var(--amber)}.pb-answers{display:flex;flex-direction:column;gap:.35rem}.pb-answer{display:flex;align-items:center;gap:.45rem;padding:.4rem .55rem;border-radius:10px;border:1px solid transparent;background:var(--card-strong);color:var(--text);font:inherit;text-align:left;cursor:pointer}.pb-answer:disabled{cursor:default}.pb-answer-text{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis}.pb-answer.ok{border-color:#22c55e66}.pb-answer.rejected{border-color:#ef4444b3;background:#ef444426;text-decoration:line-through}.pb-answer.auto,.pb-answer.empty{opacity:.5}.pb-answer.mine{outline:1px dashed rgba(255,255,255,.25)}.pb-vote{font-weight:800}.pb-count{font-size:.8rem;color:#fca5a5}.res-unique{background:#22c55e33}.res-shared{background:#eab30833}.res-refused,.res-invalid{background:#ef444426;text-decoration:line-through}.res-empty{opacity:.45}.duel-pick{display:flex;align-items:center;gap:.6rem;margin:.3rem 0 .9rem}.duel-pick select{flex:1}.chess-layout{display:grid;grid-template-columns:minmax(0,min(560px,calc(100vh - 240px))) 1fr;gap:1.2rem;align-items:start}.chess-board-wrap{display:flex;flex-direction:column;gap:.5rem}.chess-board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;width:100%;border-radius:10px;overflow:hidden;box-shadow:0 16px 50px #00000080}.sq{position:relative;border:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:default;font:inherit}.sq.light{background:#ebd9b4}.sq.dark{background:#a6794f}.sq.movable{cursor:pointer}.sq.last.light{background:#f3e27a}.sq.last.dark{background:#c9ad44}.sq.selected{box-shadow:inset 0 0 0 4px #7c5cffe6}.sq.check{background:radial-gradient(circle,#ff3b3b 0%,rgba(255,59,59,.35) 55%,transparent 75%),#a6794f}.sq.target{cursor:pointer}.sq.target:after{content:"";width:28%;height:28%;border-radius:50%;background:#14141447}.sq.capture{cursor:pointer;box-shadow:inset 0 0 0 5px #1414144d}.piece{font-size:clamp(1.8rem,6.6vw,3.4rem);line-height:1;font-family:Segoe UI Symbol,DejaVu Sans,"Noto Sans Symbols 2",serif;-webkit-user-select:none;user-select:none;pointer-events:none}.piece.pw{color:#fff;text-shadow:0 0 2px #000,0 0 1px #000,1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.piece.pb{color:#1b1b1b;text-shadow:0 0 1px rgba(255,255,255,.35)}.coord{position:absolute;font-size:.7rem;font-weight:700;color:#00000073}.coord.rank{left:3px;top:2px}.coord.file{right:4px;bottom:1px}.promo{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;gap:.6rem;z-index:2}.promo button{width:72px;height:72px;border-radius:12px;border:0;background:#ebd9b4;cursor:pointer;display:flex;align-items:center;justify-content:center}.chess-player{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:12px;background:var(--card);border:1px solid var(--border)}.chess-player.active{border-color:var(--violet)}.chess-player-info{flex:1;display:flex;flex-direction:column;min-width:0}.captured{display:flex;flex-wrap:wrap;align-items:center;min-height:1.2rem}.captured .piece{font-size:1.05rem}.chess-clock{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:800;background:#00000059;padding:.2rem .6rem;border-radius:8px}.chess-player.active .chess-clock{background:#fff;color:#111}.chess-clock.low{color:#fff!important;background:var(--red)!important}.chess-side{display:flex;flex-direction:column;gap:.8rem}.chess-status{display:flex;flex-direction:column;gap:.2rem}.chess-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.move-list{list-style:none;padding:.6rem;margin:0;background:var(--card);border:1px solid var(--border);border-radius:12px;max-height:360px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem;font-size:.9rem}.naval-grid{display:grid;grid-template-columns:1.2rem repeat(10,1fr);gap:2px;width:min(100%,380px)}.naval-label{font-size:.7rem;color:var(--muted);display:flex;align-items:center;justify-content:center}.ncell{aspect-ratio:1;border:0;border-radius:3px;background:#0e3a5f;padding:0;position:relative}.ncell.can{cursor:crosshair}.ncell.can:hover{background:#1d5d8f}.ncell.n-ship{background:#64748b}.ncell.n-miss:after{content:"";position:absolute;inset:38%;border-radius:50%;background:#ffffff8c}.ncell.n-hit{background:#f97316}.ncell.n-hit:after{content:"✕";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.8rem}.ncell.n-sunk{background:#b91c1c}.ncell.last{box-shadow:0 0 0 2px #fde047;z-index:1}.ncell.preview{background:#22d3ee8c}.naval-boards{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.naval-board{display:flex;flex-direction:column;gap:.5rem;padding:.8rem;border-radius:16px;background:var(--card);border:1px solid var(--border)}.naval-board.aim{border-color:var(--cyan);box-shadow:0 0 24px #22d3ee40}.naval-board-head{display:flex;align-items:center;gap:.5rem}.naval-fleet{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.78rem;color:var(--muted)}.naval-fleet .sunk{color:#fca5a5;text-decoration:line-through}.naval-placing{display:flex;flex-direction:column;align-items:center;gap:.8rem}.naval-tools{display:flex;flex-direction:column;align-items:center;gap:.5rem}.chip.done{border-color:#22c55e99}@media(max-width:900px){.chess-layout{grid-template-columns:1fr}}.sem-layout{display:grid;grid-template-columns:1fr 260px;gap:1rem;align-items:start}.sem-side{display:flex;flex-direction:column;gap:.8rem}.sem-table-wrap{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:.4rem;overflow-x:auto}.sem-table{width:100%;border-collapse:collapse;font-size:.92rem}.sem-table th{color:var(--muted);font-weight:600;text-align:left;padding:.35rem .5rem}.sem-table td{padding:.35rem .5rem;border-top:1px solid var(--border)}.sem-table tr.sem-last td{background:#7c5cff2e;border-top:0;font-weight:700}.sem-word{font-weight:600;display:flex;align-items:center;gap:.3rem}.sem-temp{font-variant-numeric:tabular-nums;white-space:nowrap}.sem-prog{display:flex;align-items:center;gap:.4rem;min-width:140px}.sem-bar{flex:1;height:8px;background:var(--card-strong);border-radius:999px;overflow:hidden}.sem-bar>span{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#ef4444)}.bandle-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.bandle-stage{display:flex;flex-direction:column;gap:.15rem;padding:.5rem;border-radius:12px;background:var(--card);border:1px solid var(--border);font-size:.85rem;text-align:center;opacity:.55}.bandle-stage small{color:var(--muted)}.bandle-stage.current{opacity:1;border-color:var(--violet);box-shadow:0 0 18px #7c5cff59}.bandle-stage.past{opacity:.85}.bandle-stage.won{opacity:1;border-color:var(--green);background:#22c55e2e}@media(max-width:900px){.sem-layout{grid-template-columns:1fr}.bandle-stages{grid-template-columns:repeat(5,minmax(0,1fr));font-size:.7rem}}.shop-filters{margin:1rem 0 0}
