@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600 800;font-display:swap;src:url(/fonts/baloo2.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-weight:500 800;font-display:swap;src:url(/fonts/nunito.woff) format("woff")}:root{--bg: #dcebff;--dots: #c7dbfb;--paper: #ffffff;--paper2: #f1f6ff;--paper3: #e4edfd;--slab: #bfd2f4;--edge: #24305e;--line: #d6e2f7;--line2: #b7c9ec;--ink: #24305e;--text: var(--ink);--muted: #646e98;--sun: #ffc53d;--sky: #4c8dff;--mint: #2fd09f;--coral: #ff6f8b;--grape: #a184ff;--tangerine: #ff9f43;--gold: #a86b00;--cyan: #2366e8;--blue: #2f6fe4;--purple: #6e4ae6;--green: #0f8a62;--red: #d63758;--s0: #2f6fe4;--s1: #e2416e;--s2: #c46f00;--s3: #12946f;--s0-fill: #4c8dff;--s1-fill: #ff6f8b;--s2-fill: #ffc53d;--s3-fill: #2fd09f;--btn: #2f6fe4;--btn-text: #ffffff;--r: 22px;--font-ui: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Baloo 2", "Nunito", system-ui, sans-serif;color-scheme:light}:root[data-theme=malam]{--bg: #181c3f;--dots: #222857;--paper: #262c5b;--paper2: #1f2550;--paper3: #2f376d;--slab: #0f1331;--edge: #0c0f2c;--line: #333b72;--line2: #46508c;--ink: #f3f5ff;--muted: #a6acd4;--gold: #ffc53d;--cyan: #8ab6ff;--blue: #7aa7ff;--purple: #bba6ff;--green: #45e0b1;--red: #ff8099;--s0: #7aa7ff;--s1: #ff86a6;--s2: #ffbd4f;--s3: #45dcae;--btn: #4c8dff;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--bg);background-image:radial-gradient(var(--dots) 2.4px,transparent 2.6px);background-size:26px 26px;background-attachment:fixed;color:var(--text);font-family:var(--font-ui);font-size:15.5px;font-weight:500;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{position:relative;z-index:1}a{color:var(--cyan);text-decoration:none;font-weight:700}h1,h2,h3,.display{font-family:var(--font-display);font-weight:800;letter-spacing:0;margin:0;line-height:1.15}h1{font-size:clamp(26px,4.4vw,38px)}h2{font-size:clamp(19px,2.8vw,24px)}h3{font-size:18px;font-weight:700}p{margin:.3em 0}b,strong{font-weight:800}.muted{color:var(--muted)}.small{font-size:13px}.gold{color:var(--gold)}.cyan{color:var(--cyan)}.red{color:var(--red)}.green{color:var(--green)}.center{text-align:center}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.nowrap{flex-wrap:nowrap}.col{display:flex;flex-direction:column;gap:10px}.grow{flex:1;min-width:0}.stack>*+*{margin-top:12px}@media(max-width:720px){.hide-sm{display:none!important}}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--paper);border-bottom:2px solid var(--line);box-shadow:0 3px 0 var(--slab)}.logo{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.logo-mark{width:44px;height:34px;display:block}.logo-text{font-family:var(--font-display);font-weight:800;font-size:19px;line-height:.95;color:var(--ink);white-space:nowrap}.logo-text span{display:block;font-size:12.5px;font-weight:700;color:var(--muted)}.page{width:100%;max-width:1180px;margin:0 auto;padding:20px 16px 90px;flex:1}.page.wide{max-width:1400px}.conn-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);border:2px solid var(--paper);box-shadow:0 0 0 2px var(--coral)}.conn-dot.online{background:var(--mint);box-shadow:0 0 0 2px var(--mint)}.conn-dot.connecting{background:var(--sun);box-shadow:0 0 0 2px var(--sun)}.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:0 5px 0 var(--slab)}.card.glow{border-color:var(--line2)}.card.gold{border-color:var(--sun);box-shadow:0 5px color-mix(in srgb,var(--sun) 55%,var(--slab))}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.four{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.divider{height:2px;background:var(--line);margin:14px 0;border:0;border-radius:2px}.btn{-webkit-appearance:none;appearance:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;min-height:44px;border:2px solid var(--edge);border-radius:14px;font:800 15px var(--font-ui);color:var(--btn-text);background:var(--btn);box-shadow:0 4px 0 var(--edge);transition:transform .08s,box-shadow .08s,filter .15s;white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:hover{filter:brightness(1.06)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--edge)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:saturate(.4)}.btn.gold{background:var(--sun);color:#24305e}.btn.ghost{background:var(--paper);color:var(--ink)}.btn.ghost:hover{background:var(--paper2);filter:none}.btn.danger{background:var(--coral);color:#24305e}.btn.green{background:var(--mint);color:#24305e}.btn.sm{padding:5px 12px;min-height:34px;font-size:13.5px;border-radius:11px;box-shadow:0 3px 0 var(--edge)}.btn.sm:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.btn.lg{padding:12px 26px;min-height:56px;font-size:18px;border-radius:18px;box-shadow:0 5px 0 var(--edge)}.btn.lg:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--edge)}.btn.block{width:100%}.icon-btn{-webkit-appearance:none;appearance:none;border:0;background:transparent;color:var(--text);cursor:pointer;position:relative;padding:6px;border-radius:12px;font-size:21px;line-height:1}.icon-btn:hover{background:var(--paper2)}.badge{position:absolute;top:-2px;right:-2px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--coral);color:#24305e;border:2px solid var(--paper);font:800 10.5px/15px var(--font-ui);text-align:center}label.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--muted)}.input,select.input,textarea.input{width:100%;padding:10px 14px;min-height:46px;border-radius:14px;border:2px solid var(--line2);background:var(--paper2);color:var(--text);font:600 16px var(--font-ui);outline:none;transition:border-color .15s,box-shadow .15s}textarea.input{min-height:84px;resize:vertical}.input:focus{border-color:var(--sky);box-shadow:0 0 0 4px color-mix(in srgb,var(--sky) 22%,transparent);background:var(--paper)}.input::placeholder{color:var(--muted);opacity:.8}.input.code{font-family:var(--font-display);font-weight:800;letter-spacing:.25em;text-transform:uppercase;text-align:center;font-size:24px}.check{display:inline-flex;gap:10px;align-items:center;cursor:pointer;color:var(--text);font-size:15px;font-weight:600}.check input{width:20px;height:20px;accent-color:var(--sky)}.error-text{color:var(--red);font-size:14px;font-weight:700}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:13px;font-weight:700;background:var(--paper2);border:2px solid var(--line);color:var(--ink);white-space:nowrap}.chip.gold{background:color-mix(in srgb,var(--sun) 28%,var(--paper));border-color:var(--sun);color:var(--ink)}.chip.red{background:color-mix(in srgb,var(--coral) 20%,var(--paper));border-color:var(--coral);color:var(--ink)}.chip.green{background:color-mix(in srgb,var(--mint) 22%,var(--paper));border-color:var(--mint);color:var(--ink)}.chip.cyan{background:color-mix(in srgb,var(--sky) 16%,var(--paper));border-color:color-mix(in srgb,var(--sky) 70%,var(--paper));color:var(--ink)}.tabs{display:flex;gap:4px;flex-wrap:wrap;padding:4px;background:var(--paper3);border-radius:16px;width:fit-content;max-width:100%}.tab{-webkit-appearance:none;appearance:none;border:2px solid transparent;cursor:pointer;padding:7px 14px;border-radius:12px;background:transparent;color:var(--muted);font:800 14px var(--font-ui)}.tab:hover{color:var(--ink)}.tab.active{background:var(--paper);color:var(--ink);border-color:var(--edge);box-shadow:0 3px 0 var(--edge)}.table-wrap{overflow-x:auto;border-radius:16px;border:2px solid var(--line);background:var(--paper)}table.table{width:100%;border-collapse:collapse;font-size:14.5px}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:2px solid var(--line);white-space:nowrap}.table th{font:800 13px var(--font-ui);color:var(--muted);background:var(--paper2)}.table tr:last-child td{border-bottom:0}.table tr.me td{background:color-mix(in srgb,var(--sun) 22%,var(--paper))}.rank{font-family:var(--font-display);font-weight:800;font-size:18px;width:42px}.rank.r1{color:var(--gold)}.rank.r2{color:var(--muted)}.rank.r3{color:#c0622a}.mono{font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums}.home-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 26px;align-items:center;padding:22px 26px;margin-bottom:18px;background:color-mix(in srgb,var(--sun) 30%,var(--paper));border:2px solid var(--edge);border-radius:28px;box-shadow:0 6px 0 var(--edge)}.home-hero .mascot{width:clamp(180px,26vw,250px);height:auto}.home-hero h1{font-size:clamp(28px,4.6vw,42px)}.home-hero .hello{font-size:17px;color:var(--muted);font-weight:700}.home-hero .cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}@media(max-width:640px){.home-hero{grid-template-columns:1fr;justify-items:center;text-align:center;padding:18px 16px 20px}.home-hero .cta{justify-content:center}.home-hero .cta .btn.lg{width:100%}}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 0 22px}.tagline{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--muted)}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.tile{--tc: var(--sky);position:relative;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:14px;min-height:132px;padding:14px;border-radius:20px;background:color-mix(in srgb,var(--tc) 16%,var(--paper));border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);transition:transform .1s,box-shadow .1s;text-align:left;color:var(--text);font:inherit;-webkit-tap-highlight-color:transparent}.tile:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--edge)}.tile:active{transform:translateY(3px);box-shadow:0 1px 0 var(--edge)}.tile .ti{width:46px;height:46px;display:grid;place-items:center;font-size:25px;border-radius:50%;background:var(--tc);border:2px solid var(--edge)}.tile .tl{font-family:var(--font-display);font-weight:800;font-size:18px;line-height:1.15}.tile .ts{font-size:13px;color:var(--muted);font-weight:600;line-height:1.35;margin-top:2px}.tile.primary{grid-column:1 / -1}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;background:var(--paper2);border:2px solid var(--line2);flex-shrink:0;position:relative}.avatar.sm{width:30px;height:30px;font-size:16px}.avatar.lg{width:68px;height:68px;font-size:38px;border-width:3px}.avatar .dot{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--paper);background:var(--mint)}.avatar .dot.off{background:#9aa1c2}button.avatar[aria-pressed=true]{border-color:var(--edge);background:var(--sun);box-shadow:0 3px 0 var(--edge)}.seat-0{--seat: var(--s0);--seat-fill: var(--s0-fill)}.seat-1{--seat: var(--s1);--seat-fill: var(--s1-fill)}.seat-2{--seat: var(--s2);--seat-fill: var(--s2-fill)}.seat-3{--seat: var(--s3);--seat-fill: var(--s3-fill)}.member{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;border-radius:999px;background:color-mix(in srgb,var(--seat-fill, var(--line)) 16%,var(--paper));border:2px solid var(--seat-fill, var(--line2));min-width:0}.member.empty{opacity:.6;border-style:dashed;background:var(--paper2)}.name-tag{font-weight:800;color:var(--seat, var(--cyan))}.who{font-weight:800;padding:0 6px;border-radius:8px;background:color-mix(in srgb,var(--seat-fill, var(--sky)) 24%,transparent);color:var(--seat)}.match-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}@media(max-width:980px){.match-layout{grid-template-columns:1fr}}.hud{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:space-between}.timer{font-family:var(--font-display);font-weight:800;font-size:clamp(32px,5.4vw,46px);font-variant-numeric:tabular-nums;color:var(--ink);line-height:1}.timer.small{font-size:24px}.penalty{color:var(--red);font-size:13.5px;font-weight:700}.progress{display:flex;gap:6px}.progress .seg{flex:1;min-width:20px;height:34px;border-radius:12px;display:grid;place-items:center;font-size:15px;background:var(--paper2);border:2px dashed var(--line2)}.seg-stars{white-space:nowrap;font-size:12px}.seg-stars .short{display:none}@media(max-width:560px){.seg-stars .full{display:none}.seg-stars .short{display:inline}}.progress .seg.done{background:color-mix(in srgb,var(--mint) 30%,var(--paper));border:2px solid var(--mint)}.progress .seg.cur{background:var(--sun);border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge);animation:nudge 2.4s ease-in-out infinite}@keyframes nudge{0%,80%,to{transform:translateY(0)}88%{transform:translateY(-4px)}}.challenge-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.role-card{border-radius:18px;padding:14px 16px;background:color-mix(in srgb,var(--sky) 10%,var(--paper));border:2px dashed color-mix(in srgb,var(--sky) 55%,var(--paper))}.role-name{font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--cyan)}.role-name.gold{color:var(--gold)}.blk+.blk{margin-top:10px}.blk-text.gold{color:var(--gold);font-weight:800}.blk-text.warn{color:#b4501e;font-weight:700}:root[data-theme=malam] .blk-text.warn{color:#ffb38a}.blk-text.info{color:var(--cyan);font-size:14px;font-weight:700}.blk ul,.blk ol{margin:4px 0;padding-left:22px}.blk li{margin:4px 0}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15.5px}.kv .k{color:var(--muted);font-weight:700}.kv .v{font-family:var(--font-display);font-weight:800}.chips{display:flex;gap:6px;flex-wrap:wrap}.sym{min-width:46px;height:46px;padding:0 10px;border-radius:14px;display:grid;place-items:center;font-size:24px;font-weight:800;background:var(--paper);border:2px solid var(--line2);box-shadow:0 3px 0 var(--line2)}.sym.colored{color:#24305e;font-size:14px;font-weight:800;border:2px solid var(--edge);box-shadow:0 3px 0 var(--edge)}.mini-grid{display:inline-grid;gap:4px;padding:4px}.mini-grid .c{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--paper2);border:2px solid var(--line);font-size:20px}.mini-grid .c.on{background:var(--sun);border-color:var(--edge)}.mini-grid .lbl{width:22px;height:38px;display:grid;place-items:center;font-size:12px;color:var(--muted);font-weight:800}.mini-grid .lbl.top{height:20px;width:38px}.shape-box{display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border-radius:14px;background:var(--paper2);border:2px solid var(--line);margin:4px;vertical-align:top}.shape-grid{display:grid;gap:2px}.shape-grid .c{width:20px;height:20px;border-radius:5px;background:var(--paper3)}.shape-grid .c.on{background:var(--grape);box-shadow:inset 0 -3px #00000026}.answer-area{border-radius:18px;padding:14px;background:var(--paper2);border:2px dashed var(--line2)}.answer-area.operator{border:2px solid var(--sun);background:color-mix(in srgb,var(--sun) 12%,var(--paper))}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.choice{-webkit-appearance:none;appearance:none;cursor:pointer;padding:12px;border-radius:14px;border:2px solid var(--line2);background:var(--paper);color:var(--text);font:700 15px var(--font-ui);box-shadow:0 3px 0 var(--line2);transition:transform .08s,box-shadow .08s}.choice:hover:not(:disabled){border-color:var(--edge);box-shadow:0 3px 0 var(--edge)}.choice:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.choice.sel{border-color:var(--edge);background:var(--sun);color:#24305e;box-shadow:0 3px 0 var(--edge)}.code-boxes{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.code-boxes input{width:50px;height:60px;text-align:center;font:800 26px var(--font-display);border-radius:14px;border:2px solid var(--line2);background:var(--paper);color:var(--ink);outline:none;box-shadow:0 3px 0 var(--line2)}.code-boxes input:focus{border-color:var(--edge);box-shadow:0 3px 0 var(--edge),0 0 0 4px color-mix(in srgb,var(--sun) 40%,transparent)}.alloc{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px;border-radius:14px;border:2px solid var(--line2);background:var(--paper)}.stepper .v{font:800 24px var(--font-display);min-width:28px;text-align:center}.switch{-webkit-appearance:none;appearance:none;cursor:pointer;padding:10px 6px;border-radius:16px;border:2px solid var(--line2);background:var(--paper);color:var(--muted);font:800 14px var(--font-display);min-width:66px;display:flex;flex-direction:column;align-items:center;gap:6px}.switch .knob{width:34px;height:56px;border-radius:17px;background:var(--paper3);position:relative;border:2px solid var(--line2)}.switch .knob:after{content:"";position:absolute;left:3px;right:3px;height:24px;bottom:3px;border-radius:12px;background:var(--line2);transition:all .15s}.switch.on{color:var(--green);border-color:var(--edge);box-shadow:0 3px 0 var(--edge)}.switch.on .knob{background:color-mix(in srgb,var(--mint) 30%,var(--paper))}.switch.on .knob:after{bottom:25px;background:var(--mint)}.order-list{display:flex;flex-direction:column;gap:6px}.order-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:14px;background:var(--paper);border:2px solid var(--line2)}.order-item .n{font:800 16px var(--font-display);color:var(--gold);width:22px}.seq-out{display:flex;gap:5px;flex-wrap:wrap;min-height:48px;padding:6px;border-radius:14px;background:var(--paper);border:2px dashed var(--line2)}.hint-box{border:2px solid var(--sun);padding:9px 14px;background:color-mix(in srgb,var(--sun) 16%,var(--paper));border-radius:16px;color:var(--ink);font-weight:600}.event-feed{display:flex;flex-direction:column;gap:4px;max-height:128px;overflow-y:auto;font-size:13.5px}.ev{padding:5px 10px;border-radius:10px;background:var(--paper2);font-weight:600}.ev.wrong,.ev.reset,.ev.bump,.ev.mistake,.ev.wrong_levers,.ev.pair_miss{color:var(--red)}.ev.correct,.ev.info_good,.ev.onemind_match,.ev.pair_hit{color:var(--green)}.ev.hint,.ev.key{color:var(--gold)}.transition-banner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 10px}.transition-banner .mascot{width:170px;height:auto}.transition-banner .big{font-family:var(--font-display);font-weight:800;font-size:28px;color:var(--green)}.memorize-bar{height:10px;border-radius:6px;background:var(--paper3);overflow:hidden;border:2px solid var(--line)}.memorize-bar>div{height:100%;background:var(--sun);transition:width .25s linear}.maze-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.maze-svg{width:100%;max-width:440px;height:auto;touch-action:manipulation}.dpad{display:grid;grid-template-columns:repeat(3,60px);grid-template-rows:repeat(2,60px);gap:8px}.dpad button{font-size:22px}.pipes-svg{width:100%;max-width:520px;height:auto;touch-action:manipulation;-webkit-user-select:none;user-select:none}.levers{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.lever{-webkit-appearance:none;appearance:none;cursor:pointer;width:88px;padding:12px 8px;border-radius:18px;border:2px solid var(--edge);background:color-mix(in srgb,var(--lc) 22%,var(--paper));color:var(--ink);font:800 14px var(--font-display);display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 4px 0 var(--edge);transition:transform .12s}.lever .stick{width:10px;height:54px;border-radius:5px;background:var(--edge);position:relative;transform-origin:bottom center;transition:transform .2s}.lever .stick:before{content:"";position:absolute;top:-12px;left:-8px;width:26px;height:26px;border-radius:50%;background:var(--lc);border:2px solid var(--edge)}.lever.pulled .stick{transform:rotate(38deg)}.lever:disabled{cursor:default;opacity:.85}.chat{display:flex;flex-direction:column;height:min(62vh,560px)}.chat-log{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:4px}.msg{font-size:14.5px;line-height:1.4;word-wrap:break-word}.msg .n{font-weight:800;margin-right:6px}.msg.sys{color:var(--muted);font-size:13px;font-weight:600}.name-btn{background:none;border:0;padding:0;font:inherit;font-weight:800;cursor:pointer;text-decoration:underline dotted 1.5px;text-underline-offset:3px}.name-btn:focus-visible{outline:3px solid var(--sky);border-radius:4px}.danger-zone{border-color:var(--coral)}.legal-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:13px}.legal-links a{color:var(--muted);font-weight:700}.quick{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.quick button{font-size:12.5px;padding:3px 10px;min-height:30px}.chat-form{display:flex;gap:6px}.voice-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.toasts{position:fixed;z-index:100;left:50%;transform:translate(-50%);bottom:18px;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px);pointer-events:none}.toast{padding:11px 16px;border-radius:16px;background:var(--paper);color:var(--ink);border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);font-size:15px;font-weight:700;animation:rise .22s ease-out}.toast.bad{background:color-mix(in srgb,var(--coral) 22%,var(--paper))}.toast.good{background:color-mix(in srgb,var(--mint) 24%,var(--paper))}.toast.gold{background:color-mix(in srgb,var(--sun) 35%,var(--paper))}@keyframes rise{0%{transform:translateY(12px);opacity:0}}.modal-back{position:fixed;inset:0;z-index:90;background:color-mix(in srgb,var(--edge) 55%,transparent);display:grid;place-items:center;grid-template-columns:minmax(0,1fr);padding:16px}.modal{width:min(560px,100%);max-height:88vh;overflow-y:auto;border-color:var(--edge);box-shadow:0 6px 0 var(--edge)}.countdown-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 82%,transparent)}.countdown-num{font-family:var(--font-display);font-size:clamp(110px,26vw,200px);font-weight:800;color:var(--sun);-webkit-text-stroke:6px var(--edge);paint-order:stroke fill;text-shadow:0 10px 0 var(--edge);animation:zoom 1s ease-out infinite}@keyframes zoom{0%{transform:scale(1.35);opacity:.3}to{transform:scale(1);opacity:1}}.result-hero{display:flex;flex-direction:column;align-items:center;gap:4px}.result-hero .mascot{width:clamp(170px,34vw,230px);height:auto;margin-bottom:4px}.result-time{font-family:var(--font-display);font-weight:800;font-size:clamp(54px,13vw,92px);color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}.stat{padding:12px 14px;border-radius:16px;background:var(--paper2);border:2px solid var(--line);text-align:center}.stat .v{font:800 26px var(--font-display);line-height:1.1}.stat .l{font-size:13px;color:var(--muted);font-weight:700}.bar{height:10px;border-radius:6px;background:var(--paper3);overflow:hidden}.bar>div{height:100%;border-radius:6px;background:var(--sky)}.ach{display:flex;gap:12px;align-items:center;padding:12px;border-radius:16px;border:2px solid var(--line);background:var(--paper2)}.ach.locked{opacity:.5;filter:grayscale(.9)}.ach .i{font-size:30px}.empty{padding:30px 10px;text-align:center;color:var(--muted);font-weight:600;display:flex;flex-direction:column;align-items:center;gap:8px}.spinner{width:26px;height:26px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--sky);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.searching{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px}.searching .mascot{width:190px;height:auto}.radar{width:120px;height:120px;border-radius:50%;border:2px solid var(--line2);position:relative;background:var(--paper2);overflow:hidden}.radar:after{content:"";position:absolute;inset:0;background:conic-gradient(from 0deg,color-mix(in srgb,var(--sky) 45%,transparent),transparent 25%);animation:spin 1.6s linear infinite}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:none;justify-content:space-around;padding:6px 6px calc(8px + env(safe-area-inset-bottom));background:var(--paper);border-top:2px solid var(--line);box-shadow:0 -3px 0 var(--slab)}.bottom-nav button{-webkit-appearance:none;appearance:none;border:2px solid transparent;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:1px;font:800 11.5px var(--font-ui);padding:4px 6px;border-radius:14px;cursor:pointer}.bottom-nav button .i{font-size:21px}.bottom-nav button.active{color:var(--ink);background:color-mix(in srgb,var(--sun) 40%,var(--paper));border-color:var(--edge)}@media(max-width:720px){.bottom-nav{display:flex}.page{padding-bottom:104px}html{scroll-padding-bottom:96px}}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;align-items:start}@media(max-width:860px){.admin-layout{grid-template-columns:1fr}}.side-nav{display:flex;flex-direction:column;gap:4px;position:sticky;top:76px}@media(max-width:860px){.side-nav{flex-direction:row;overflow-x:auto;position:static}}.side-nav button{-webkit-appearance:none;appearance:none;border:2px solid transparent;text-align:left;cursor:pointer;padding:9px 12px;border-radius:14px;background:transparent;color:var(--muted);font:800 14.5px var(--font-ui);white-space:nowrap}.side-nav button.active{background:var(--paper);color:var(--ink);border-color:var(--edge);box-shadow:0 3px 0 var(--edge)}.kpi{padding:14px;border-radius:18px;background:var(--paper);border:2px solid var(--line);box-shadow:0 4px 0 var(--slab)}.kpi .v{font:800 28px var(--font-display);line-height:1.1}.kpi .l{font-size:13px;color:var(--muted);font-weight:700}.bars{display:flex;align-items:flex-end;gap:4px;height:120px}.bars>div{flex:1;border-radius:6px 6px 0 0;background:var(--sky);min-height:2px;position:relative}.preview-cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.focus-ring:focus-visible,button:focus-visible,.tile:focus-visible,a:focus-visible{outline:3px solid var(--sky);outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.reduced *{animation:none!important;transition:none!important}.show-sm{display:none}.chat-fab{display:none;position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;width:58px;height:58px;border-radius:50%;font-size:25px;padding:0}.chat-fab .badge{top:-4px;right:-4px}.chat-drawer{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:var(--paper);border:2px solid var(--edge);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -6px color-mix(in srgb,var(--edge) 25%,transparent);animation:rise .2s ease-out}.chat-drawer .card{box-shadow:none;border:0;padding:0}@media(max-width:980px){.chat-side{display:none}.chat-fab{display:grid;place-items:center}}@media(max-width:440px){.topbar:has(.room-chip) .logo-text{display:none}}@media(max-width:720px){.show-sm{display:inline}.topbar{padding:7px 12px;gap:6px}.logo-text{font-size:16.5px}.logo-text span{font-size:11px}.hud{justify-content:center;text-align:center}.hud>*{width:100%;display:flex;flex-direction:column;align-items:center}.hud>.row{flex-direction:row;justify-content:center}.bottom-nav button{flex:1;min-width:0}.page{padding-left:12px;padding-right:12px}.card{padding:15px;border-radius:20px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile{min-height:124px;padding:12px;gap:10px}.tile .ti{width:42px;height:42px;font-size:22px}.tile .tl{font-size:16px}.tile .ts{font-size:12px}.challenge-head h2{font-size:21px}.chat{height:min(56vh,480px)}}.chip.talking{box-shadow:0 0 0 3px var(--mint)}.onemind{display:flex;flex-direction:column;gap:14px}.om-prompt{text-align:center;font:800 clamp(22px,4.2vw,30px) var(--font-display);padding:20px 14px;border-radius:22px;background:color-mix(in srgb,var(--grape) 20%,var(--paper));border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge);text-wrap:balance}.om-history{padding:10px 14px;border-radius:16px;background:var(--paper2);border:2px solid var(--line);display:flex;flex-direction:column;gap:6px}.om-history.match{border-color:var(--mint);background:color-mix(in srgb,var(--mint) 14%,var(--paper))}.style-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.stars{color:#f2a900;letter-spacing:1px}.stars .off{color:var(--line2)}.howto{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:16px;background:color-mix(in srgb,var(--mint) 14%,var(--paper));border:2px dashed color-mix(in srgb,var(--mint) 70%,var(--paper));font-size:14.5px}.celebrate{position:fixed;inset:0;z-index:70;pointer-events:none;display:grid;place-items:center}.celebrate .burst{font:800 clamp(40px,9vw,68px) var(--font-display);color:var(--sun);-webkit-text-stroke:3px var(--edge);paint-order:stroke fill;text-shadow:0 6px 0 var(--edge);animation:pop 1.4s ease-out forwards;text-align:center}.celebrate .burst small{display:block;font:800 19px var(--font-ui);color:var(--ink);-webkit-text-stroke:0;text-shadow:none;margin-top:8px;background:var(--paper);border:2px solid var(--edge);border-radius:999px;padding:4px 14px}.confetti{position:absolute;top:-10px;width:11px;height:16px;border-radius:3px;border:1.5px solid var(--edge);animation:fall 1.6s ease-in forwards}@keyframes pop{0%{transform:scale(.4) rotate(-6deg);opacity:0}20%{transform:scale(1.12) rotate(2deg);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1);opacity:0}}@keyframes fall{to{transform:translateY(105vh) rotate(540deg);opacity:.7}}.result-stars{font-size:clamp(40px,9vw,66px);letter-spacing:4px;line-height:1.1}@media(max-width:720px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}.km-banner{text-align:center;padding:12px 14px;border-radius:18px;background:var(--paper2);border:2px solid var(--line);font-weight:700;font-size:16px}.km-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.km-options .choice{text-align:left}.draw-canvas{width:100%;max-width:640px;aspect-ratio:4 / 3;height:auto;border-radius:18px;border:2px solid var(--line2);background:#fffdf6;touch-action:none;align-self:center;box-shadow:0 4px 0 var(--slab)}.draw-canvas.can-draw{cursor:crosshair;border-color:var(--edge);box-shadow:0 4px 0 var(--edge)}.swatch{width:34px;height:34px;border-radius:50%;border:2px solid var(--edge);cursor:pointer}.swatch.sel{box-shadow:0 0 0 3px var(--paper),0 0 0 6px var(--edge)}.guess-feed{max-height:120px;overflow-y:auto;padding:8px 12px;border-radius:14px;background:var(--paper2);border:2px solid var(--line);display:flex;flex-direction:column;gap:3px}.pairs-grid{display:grid;gap:10px;width:100%;max-width:470px}.pair-card{aspect-ratio:1;border-radius:16px;border:2px solid var(--edge);background:var(--grape);background-image:radial-gradient(rgba(255,255,255,.35) 2px,transparent 2.5px);background-size:14px 14px;color:#fff;font:800 clamp(24px,6.4vw,36px) var(--font-display);cursor:pointer;box-shadow:0 4px 0 var(--edge);transition:transform .12s,box-shadow .12s}.pair-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 0 var(--edge)}.pair-card.up{background:var(--paper);color:var(--ink)}.pair-card.mine{background:color-mix(in srgb,var(--sun) 40%,var(--paper));box-shadow:0 4px 0 var(--edge),0 0 0 4px var(--sun)}.pair-card.matched{background:color-mix(in srgb,var(--mint) 35%,var(--paper));border-color:var(--mint);box-shadow:none;transform:translateY(4px);cursor:default}.simon-seq{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.simon-dot{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:800 15px var(--font-display);color:#24305e;background:var(--paper3);border:2px solid var(--line2)}.simon-dot.cur{border-color:var(--edge);box-shadow:0 3px 0 var(--edge);transform:translateY(-2px)}.simon-dot.done{opacity:.45}.simon-pad{display:grid;grid-template-columns:repeat(2,minmax(120px,170px));gap:14px}.simon-btn{aspect-ratio:1.4;border-radius:22px;border:2px solid var(--edge);background:color-mix(in srgb,var(--sc) 22%,var(--paper));color:var(--ink);font:800 17px var(--font-display);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:0 5px 0 var(--edge);transition:transform .08s,box-shadow .08s}.simon-btn.mine{background:var(--sc);color:#24305e}.simon-btn.mine:active{transform:translateY(4px);box-shadow:0 1px 0 var(--edge)}.simon-btn:disabled{opacity:.55;cursor:default;box-shadow:0 2px 0 var(--edge)}.mascot{display:block;overflow:visible}.mascot .bob-a{animation:bob 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}.mascot .bob-b{animation:bob 3.2s ease-in-out .4s infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes bob{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-5px) scaleY(1.02)}}.mascot.still .bob-a,.mascot.still .bob-b{animation:none}.theme-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.theme-pick button{-webkit-appearance:none;appearance:none;cursor:pointer;padding:10px;border-radius:16px;border:2px solid var(--line2);background:var(--paper);color:var(--ink);font:800 14.5px var(--font-ui);display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 3px 0 var(--line2)}.theme-pick button[aria-pressed=true]{border-color:var(--edge);box-shadow:0 3px 0 var(--edge),0 0 0 4px var(--sun)}.theme-pick .sw{width:100%;height:44px;border-radius:10px;border:2px solid var(--edge)}.style-pick .tile[aria-pressed=true]{background:color-mix(in srgb,var(--tc) 45%,var(--paper));box-shadow:0 4px 0 var(--edge),0 0 0 4px var(--sun)}.style-pick .tile[aria-pressed=false]{opacity:.85}.auth-mascot{width:min(300px,80%);height:auto;margin-bottom:6px}:root[data-theme=malam] .home-hero{background:color-mix(in srgb,var(--grape) 26%,var(--paper))}.link-btn{background:none;border:0;padding:4px;color:var(--btn);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px;align-self:center}.link-btn:hover{color:var(--ink)}.notice{padding:12px 14px;border-radius:14px;border:2px solid var(--edge);background:var(--paper2);font-weight:600}.notice.good{background:color-mix(in srgb,var(--mint) 22%,var(--paper));border-color:var(--mint)}.verify-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px auto 0;max-width:1100px;width:calc(100% - 32px);padding:10px 14px;border-radius:16px;border:2px solid var(--edge);background:color-mix(in srgb,var(--sun) 30%,var(--paper));box-shadow:0 3px 0 var(--edge);font-weight:700;font-size:14px}.chip-btn{padding:6px 12px;border-radius:999px;border:2px solid var(--edge);background:var(--paper);color:var(--ink);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.chip-btn.on,.chip-btn[aria-pressed=true]{background:var(--sun);box-shadow:0 2px 0 var(--edge)}.faces{display:flex;gap:8px;flex-wrap:wrap}.faces button{font-size:26px;width:52px;height:52px;border-radius:16px;border:2px solid var(--line);background:var(--paper2);cursor:pointer;transition:transform .12s}.faces.big button{font-size:32px;width:60px;height:60px}.faces button:hover{transform:translateY(-2px)}.faces button.on{border-color:var(--edge);background:var(--sun);box-shadow:0 3px 0 var(--edge);transform:translateY(-2px) scale(1.06)}.rating-card{align-items:center;text-align:center}.rating-card .faces{justify-content:center}.rating-card .grid,.rating-comment{width:100%;max-width:520px;margin-inline:auto;text-align:left}.rating-comment .input{flex:1;min-width:0}.reply{padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--sky) 18%,var(--paper));border:2px dashed var(--sky)}.backup-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.backup-codes code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px;font-weight:700;padding:8px;text-align:center;border-radius:10px;background:var(--paper2);border:2px solid var(--line)}.secret-key{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;font-weight:800;letter-spacing:1px;text-align:center;padding:12px;border-radius:12px;background:var(--paper2);border:2px dashed var(--edge);word-break:break-all;-webkit-user-select:all;user-select:all}.device-row{padding:8px 10px;border-radius:12px;background:var(--paper2);gap:8px;flex-wrap:wrap}.warn-row td{background:color-mix(in srgb,var(--coral) 12%,transparent)}.feedback-mascot{width:76px;height:76px;flex:none}@media(max-width:560px){.faces button{width:46px;height:46px;font-size:24px}.faces.big button{width:52px;height:52px;font-size:28px}.verify-banner{font-size:13px}}.shell-mascot{width:140px;height:auto}
