:root{--bg:#2b1d14;--panel:#3a281b;--panel-2:#4a3322;--btn:#6b4526;--btn-active:#7d5230;--border:#6b4526;--text:#f4e6d0;--text-dim:#c4ad8c;--accent:#e8b04a;--accent-active:#f0c063;--accent-text:#2b1d14;--frame-1:#6b4526;--frame-2:#5b3a1e;--sq-light:#ecd3a6;--sq-dark:#a26a3a;--sq-last:#b98a3e;--piece-w-hi:#fffdf5;--piece-w-lo:#d8c7a3;--piece-w-edge:#8f7f5e;--piece-w-groove:#b9a67f;--piece-b-hi:#5a5350;--piece-b-lo:#14110f;--piece-b-edge:#000;--piece-b-groove:#6a625e;--crown:#e8b04a;--frame-w:6px;--frame-art:none;--bg-art:none;--bg-size:auto;--btn-edge:#3f2814;--panel-edge:#20150d;--accent-edge:#a8741f;--good:#5cc04a;--good-edge:#2f7d25;--radius:14px;--board-size:min(100vw - 16px, 100dvh - 290px, 620px);--page-width:min(100vw - 32px, 420px)}*{box-sizing:border-box}html,body{background-color:var(--bg);background-image:var(--bg-art);background-size:var(--bg-size);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background-attachment:fixed;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;transition:background-color .2s}.app{min-height:100dvh;padding:8px 8px calc(12px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:8px;display:flex}.app>*{width:var(--board-size)}.page{gap:12px;padding-top:12px}.page>*{width:var(--page-width)}button{--edge:var(--btn-edge);min-height:46px;font:inherit;color:var(--text);background:linear-gradient(#ffffff14, #0000) var(--btn);border-radius:var(--radius);box-shadow:inset 0 1px 0 #ffffff2e, 0 4px 0 var(--edge), 0 6px 10px #0000004d;cursor:pointer;border:0;flex:1;margin-bottom:4px;font-weight:700;transition:transform 80ms,box-shadow 80ms,background-color .15s}button:active{background-color:var(--btn-active);box-shadow:inset 0 1px 0 #ffffff2e, 0 1px 0 var(--edge), 0 2px 4px #0000004d;transform:translateY(3px)}button:disabled{opacity:.45;cursor:default;transform:none}button.primary{--edge:var(--accent-edge);letter-spacing:.3px;background:linear-gradient(var(--accent-active), var(--accent));min-height:56px;color:var(--accent-text);flex:none;font-size:19px;font-weight:800}button.primary:active{background:var(--accent)}button.good{--edge:var(--good-edge);background:linear-gradient(#ffffff26, #0000) var(--good);color:#fff;text-shadow:0 1px #0005}button.secondary{--edge:var(--panel-edge);background:linear-gradient(#ffffff0d, #0000) var(--panel)}button.link{min-height:32px;box-shadow:none;color:var(--text-dim);background:0 0;flex:none;margin:0;padding:0 10px 0 4px;font-weight:500}button.link:active{color:var(--text);box-shadow:none;background:0 0;transform:none}.panel{background:linear-gradient(#ffffff0a, #0000) var(--panel);border-radius:var(--radius);box-shadow:inset 0 1px 0 #ffffff17, 0 3px 0 var(--panel-edge)}.ico-tile{--tile:#6b7a90;color:#fff;background:linear-gradient(#ffffff40, #0000 60%) var(--tile);border-radius:11px;flex:none;place-items:center;width:36px;height:36px;display:grid;box-shadow:inset 0 -2px #0003,0 2px #0004}.ico-tile .icon{stroke-width:2.4px;filter:drop-shadow(0 1px #0004);width:21px;height:21px}.ico-tile.t-play{--tile:#f0a020}.ico-tile.t-live{--tile:#e5484d}.ico-tile.t-ai{--tile:#3d8bfd}.ico-tile.t-friends{--tile:#9b5de5}.ico-tile.t-local{--tile:#2bb3a3}.ico-tile.t-learn{--tile:#3d8bfd}.ico-tile.t-leader{--tile:#f4a62a}.ico-tile.t-shop{--tile:#e5487a}.ico-tile.t-stats{--tile:#2bb3a3}.ico-tile.t-settings{--tile:#7a8699}button.link.small{align-self:center;margin-top:8px;font-size:13px;text-decoration:underline}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.top{grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;min-height:40px;display:grid}.top h1{letter-spacing:.3px;text-align:center;text-shadow:0 2px #0005;white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:19px;font-weight:800;overflow:hidden}.top-end{justify-content:flex-end;display:flex}button.round{--edge:var(--panel-edge);background-color:var(--panel);width:40px;height:36px;min-height:0;box-shadow:inset 0 1px 0 #ffffff2e, 0 3px 0 var(--edge);border-radius:12px;flex:none;place-items:center;margin:0 0 3px;padding:0;display:grid}button.round:active{box-shadow:inset 0 1px 0 #ffffff2e, 0 0 0 var(--edge)}button.round .icon{stroke-width:2.5px;width:22px;height:22px}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--text-dim);font-size:13px}.seg{gap:6px;display:flex}.seg button{--edge:var(--panel-edge);background-color:var(--panel);border:2px solid #0000;padding:0 4px;font-size:14px;font-weight:600}.seg button.on{border-color:var(--accent);background-color:var(--panel-2);color:var(--accent);font-weight:800}select{width:100%;min-height:42px;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:0 10px}.hint{color:var(--text-dim);margin:4px 2px 0;font-size:13px;line-height:1.4}.hint.center{text-align:center}.chip{border:1px solid #0006;border-radius:50%;flex:none;width:22px;height:22px}.chip.w{background:radial-gradient(circle at 35% 30%, var(--piece-w-hi), var(--piece-w-lo))}.chip.b{background:radial-gradient(circle at 35% 30%, var(--piece-b-hi), var(--piece-b-lo))}.chip.mini{border-color:#fff4;width:13px;height:13px}.chip.big{width:44px;height:44px;box-shadow:0 3px 6px #0006}.resume,.player,.tile,.level-card,.offer,.shop-look,.leaders,.seeking,.banner,.status.result,.card,.feedback.ok,.feedback.retry{border-radius:var(--radius);box-shadow:inset 0 1px 0 #ffffff17, 0 3px 0 var(--panel-edge)}.home{padding-bottom:calc(8dvh + env(safe-area-inset-bottom));justify-content:center}.hero{flex-direction:column;align-items:center;margin:0 0 16px;display:flex}.hero-board{background:linear-gradient(135deg, var(--frame-1), var(--frame-2));border-radius:12px;width:132px;padding:6px;transform:rotate(-4deg);box-shadow:0 8px 22px #0008}.hero-squares{aspect-ratio:1;background:repeating-conic-gradient(var(--sq-dark) 0 25%, var(--sq-light) 0 50%) 0 0 / 50% 50%;border-radius:4px;position:relative}.hero-squares .chip{width:21%;height:21%;margin:2%;position:absolute;box-shadow:0 2px 3px #0006}.logo{text-align:center;letter-spacing:1px;margin:18px 0 4px;font-size:36px}.home button.primary{justify-content:center;align-items:center;gap:10px;display:flex}.menu-row{gap:12px;display:flex}.menu-row button.menu-item{white-space:nowrap;flex:1 1 0;gap:8px;min-width:0;padding:0 6px;font-size:15px}.tagline{color:var(--text-dim);text-align:center;margin:0;font-size:14px}button.menu-item{--edge:var(--panel-edge);background-color:var(--panel);flex:none;justify-content:center;align-items:center;gap:10px;min-height:50px;display:flex}button.menu-item:active{background-color:var(--panel-2)}.badge{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.resume{background:var(--panel);border:2px solid var(--accent);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.resume span{flex:1}.resume button{flex:none;min-height:40px;padding:0 16px}button.toggle{--edge:var(--panel-edge);background-color:var(--panel);text-align:left;flex:none;align-items:center;gap:12px;min-height:50px;padding:6px 12px;font-weight:600;display:flex}button.toggle:active{background-color:var(--panel-2)}.toggle-text{flex-direction:column;flex:1;gap:2px;display:flex}.toggle-text small{color:var(--text-dim);font-size:12px;font-weight:400}.switch{background:#0006;border-radius:13px;flex:none;width:44px;height:26px;transition:background-color .15s;position:relative}.switch:after{content:"";background:var(--text-dim);border-radius:50%;width:20px;height:20px;transition:transform .15s,background-color .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent)}.switch.on:after{background:var(--accent-text);transform:translate(18px)}.looks{gap:6px;display:flex}button.look{--edge:var(--panel-edge);background-color:var(--panel);border:2px solid #0000;flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:0;padding:8px 4px;font-size:14px;font-weight:600;display:flex}button.look.on{border-color:var(--accent);background-color:var(--panel-2);font-weight:800}.look-art{border-radius:8px;justify-content:center;align-items:center;width:52px;height:52px;padding:5px;display:flex;box-shadow:0 2px 5px #0006}.look-squares{border-radius:3px;width:100%;height:100%}.look-art .chip{width:26px;height:26px;box-shadow:0 2px 3px #0006}.look-art .chip+.chip{margin-left:-8px}.look-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tiles{gap:8px;display:flex}.tile{background:var(--panel);text-align:center;border-radius:10px;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;min-width:0;padding:12px 4px;display:flex}.tile strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:24px;line-height:1.1}.tile strong small{color:var(--text-dim);font-size:11px;font-weight:500}.tile span{color:var(--text-dim);font-size:12px;line-height:1.2}.level-card{background:var(--panel);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.level-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.level-head span{color:var(--text-dim);font-size:13px}.ratio{background:#0004;border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.ratio i{min-width:0}.ratio .win{background:#8bd48b}.ratio .tie{background:var(--text-dim)}.ratio .loss{background:#ff8a65}.wdl{color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;gap:6px;font-size:13px;display:flex}.wdl b{color:var(--text);font-size:16px}.wdl .win b{color:#8bd48b}.wdl .loss b{color:#ff8a65}.player{background:var(--panel);border:2px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;transition:border-color .2s;display:flex}.player.active{border-color:var(--accent)}.player .name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.player .clock{flex:none}.taken{flex:none;align-items:center;gap:5px;display:flex}.taken-stack{display:flex}.taken-stack .chip+.chip{margin-left:-7px}.taken-n{min-width:1.2em;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.clock{text-align:center;font-variant-numeric:tabular-nums;background:#0004;border-radius:6px;min-width:58px;padding:3px 8px;font-weight:700}.clock.low{color:#ff8a65}.board-wrap{height:var(--board-size);border:var(--frame-w) solid transparent;border-image:var(--frame-art) 12 round;background:linear-gradient(135deg, var(--frame-1), var(--frame-2)) border-box;border-radius:10px;position:relative;box-shadow:0 6px 18px #0008}.board{touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.sq-light{fill:var(--sq-light)}.sq-dark{fill:var(--sq-dark);cursor:pointer}.sq-dark.last{fill:var(--sq-last)}.sq-num{fill:#fff7;pointer-events:none;font-size:1.9px}.piece{pointer-events:none;transition:transform .22s ease-out,opacity .2s}.piece.dim{opacity:.35}.shadow{fill:#0005}.pw{stroke:var(--piece-w-edge);stroke-width:.25px}.pb{stroke:var(--piece-b-edge);stroke-width:.25px}.groove-w{fill:none;stroke:var(--piece-w-groove);stroke-width:.3px}.groove-b{fill:none;stroke:var(--piece-b-groove);stroke-width:.3px}.crown{fill:var(--crown);stroke:#0008;stroke-width:.25px;stroke-linejoin:round;transform-box:fill-box;transform-origin:50%;animation:.45s ease-out crown-in}@keyframes crown-in{0%{transform:scale(0)}60%{transform:scale(1.35)}to{transform:scale(1)}}.king-flash{fill:none;stroke:var(--crown);stroke-width:.6px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:.6s ease-out flash}@keyframes flash{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}.vanish{transform-box:fill-box;transform-origin:50%;animation:.38s ease-in forwards vanish}@keyframes vanish{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(.3)}}.ring-must{fill:none;stroke:#ff7043;stroke-width:.6px}.ring-sel{fill:none;stroke:#ffe45c;stroke-width:.7px}.ring-hint{fill:none;stroke:#4fc3f7;stroke-width:.7px}.target{fill:#7be07b;stroke:#0005;stroke-width:.2px;pointer-events:none}.target-hint{fill:#4fc3f7;stroke:#0005;stroke-width:.2px;pointer-events:none}.game>.top{margin-bottom:auto}.game>.controls{margin-top:auto}.status{text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;height:46px;padding:0 10px;font-size:15px;font-weight:600;line-height:1.25;display:flex}.status.thinking{color:var(--text-dim)}.status.result{background:var(--panel);border:2px solid var(--border);animation:.35s ease-out pop}.status.result strong{font-size:17px}.status.result span{color:var(--text-dim);font-size:12px;font-weight:500}.status.result.win{border-color:var(--accent)}.status.result.win strong{color:var(--accent)}.status.result.lose strong{color:#ff8a65}@keyframes pop{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{transform:scale(1)}}.controls{gap:10px;min-height:54px;display:flex}.controls button{justify-content:center;align-items:center;gap:8px;min-width:0;padding:0 6px;display:flex}.controls button.primary{flex:2;min-height:54px;font-size:16px}.controls button.tool{white-space:nowrap;flex-direction:column;gap:3px;min-height:54px;font-size:12.5px}.controls button.tool.busy .icon{animation:.8s ease-in-out infinite blink}@keyframes blink{50%{opacity:.3}}.overlay{background:#0007;border-radius:10px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card{background:var(--panel);border:2px solid var(--accent);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:10px;width:min(88%,300px);padding:20px;display:flex}.card strong{font-size:22px}.card span{color:var(--text-dim);font-size:14px}.card .row{gap:10px;width:100%;display:flex}.card button{white-space:nowrap;flex:1 1 0;min-width:0;padding:0 8px}.card .row.stack{flex-direction:column;gap:8px}.card .row.stack button{flex:none;width:100%}button.danger{color:#ff8a65}.lesson h2{margin:0 0 4px;font-size:18px}.lesson p{min-height:4.2em;color:var(--text-dim);margin:0;font-size:14px;line-height:1.4}.tutorial{--board-size:min(100vw - 16px, 100dvh - 330px, 620px)}.feedback{text-align:center;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:4px 10px;font-size:14px;font-weight:600;line-height:1.3;display:flex}.feedback.ok{color:#8bd48b;background:var(--panel);animation:.35s ease-out pop}.feedback.retry{color:#ff8a65;background:var(--panel);animation:.35s ease-out pop}.dots{justify-content:center;display:flex}.dots button{width:26px;min-height:26px;box-shadow:none;background:0 0;flex:none;margin:0;padding:0;position:relative;transform:none}.dots button:after{content:"";background:var(--text-dim);opacity:.35;border-radius:50%;transition:transform .15s,background-color .15s;position:absolute;inset:9px}.dots button.past:after{opacity:.8}.dots button.on:after{background:var(--accent);opacity:1;transform:scale(1.5)}.controls button.wide{flex:2}.offer,.shop-look{background:var(--panel);border:2px solid #0000;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}.shop-look.on{border-color:var(--accent)}.offer-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.offer-text strong{font-size:15px}.offer-text small{color:var(--text-dim);font-size:12px;line-height:1.3}.shop-look .look-art{flex:none;width:46px;height:46px}.shop-actions{flex-direction:column;flex:none;align-items:stretch;gap:6px;display:flex}.shop-actions button,.offer button{white-space:nowrap;flex:none;min-height:36px;padding:0 12px;font-size:13px}button.buy{background:var(--accent);color:var(--accent-text);font-weight:700}button.buy:active{background:var(--accent-active)}button.try{justify-content:center;align-items:center;gap:6px;display:flex}button.try .icon{width:16px;height:16px}.tag{flex:none;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.tag.owned{color:#8bd48b}.tag .icon{width:16px;height:16px}.shop-message{color:#ff8a65;background:#0004;border-radius:8px;margin:0;padding:8px 12px;font-size:13px}button.look{position:relative}button.look.locked .look-art{opacity:.55}.look-lock{background:var(--accent);color:var(--accent-text);border-radius:50%;padding:3px;display:flex;position:absolute;top:4px;right:4px}.look-lock .icon{width:12px;height:12px}.controls button.tool{position:relative}.controls .count{font-variant-numeric:tabular-nums;background:#0005;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;display:flex;position:absolute;top:4px;right:6px}.controls .count.ad{background:var(--accent);color:var(--accent-text)}.controls .count .icon{width:12px;height:12px}.card button.with-icon{justify-content:center;align-items:center;gap:6px;display:flex}.card button.with-icon .icon{width:18px;height:18px}button.primary.with-icon{justify-content:center;align-items:center;gap:10px;display:flex}.game-list{flex-direction:column;gap:6px;display:flex}button.game-row{--edge:var(--panel-edge);background-color:var(--panel);text-align:left;border:2px solid #0000;flex:none;align-items:center;gap:12px;min-height:58px;padding:8px 12px;font-weight:600;display:flex}button.game-row.mine{border-color:var(--accent)}button.game-row:active{background-color:var(--panel-2)}.game-row-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.game-row-text small{color:var(--text-dim);font-size:12px}button.game-row>.icon{color:var(--text-dim);width:16px;height:16px}.name-tag{min-width:0;height:36px;line-height:36px;display:block;position:relative;overflow:hidden}.name-fallback{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.name-slot{display:none;position:absolute;inset:0}.name-slot.on{display:block}.name-slot{overflow:hidden}.name-slot.on:after{content:"";background:linear-gradient(to right, transparent, var(--panel));pointer-events:none;width:28px;height:100%;position:absolute;top:0;right:0}.name-slot iframe{pointer-events:none;border:0;width:600px;max-width:none;height:36px;display:block}.player.social{min-height:52px}.you-rank{flex-direction:row;flex:none;justify-content:center;align-items:baseline;gap:10px}.leaders{background:var(--panel);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.leader{border-top:1px solid #0003;align-items:center;gap:12px;padding:10px 14px;display:flex}.leader:first-child{border-top:0}.leader.me{background:var(--panel-2)}.leader-rank{width:28px;color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.leader-name{flex:1;min-width:0;font-weight:600}.leader-rating{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.seeking{background:var(--panel);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:14px;padding:28px 12px;display:flex}.seeking strong{font-size:18px}.seeking-time{color:var(--text-dim);font-variant-numeric:tabular-nums}.seeking button{flex:none;min-width:160px}.spinner{border:4px solid var(--panel-2);border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ai-offer{width:100%;color:var(--text-dim);border-top:1px solid #0003;flex-direction:column;align-items:center;gap:8px;padding-top:10px;font-size:13px;display:flex}.banner{background:var(--panel);border:2px solid var(--accent);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.banner span{flex:1;min-width:0}.room-entry{grid-template-columns:1fr 1fr;gap:10px;display:grid}.room-entry button{text-align:center;flex-direction:column;align-items:center;gap:4px;min-height:96px;padding:12px 8px;display:flex}.room-entry button small{opacity:.8;white-space:normal;font-size:12px;font-weight:500;line-height:1.3}.room-code{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:18px 12px;display:flex}.room-code .code{letter-spacing:4px;font-variant-numeric:tabular-nums;color:var(--accent);font-size:44px;line-height:1}.room-code button{flex:none;min-width:180px}.lobby{flex-direction:column;gap:8px;display:flex}.lobby-player{background:var(--panel);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.lobby-player.empty{opacity:.6;border:2px dashed var(--panel-2);background:0 0}.lobby-name{flex-direction:column;min-width:0;font-weight:700;display:flex}.lobby-name small{color:var(--text-dim);font-size:12px;font-weight:500}.code-input{box-sizing:border-box;border:2px solid var(--panel-2);background:var(--panel);width:100%;color:var(--text);text-align:center;letter-spacing:6px;font-variant-numeric:tabular-nums;border-radius:12px;padding:14px 12px;font:700 32px/1.1 inherit}.code-input:focus{border-color:var(--accent);outline:none}.banner button{flex:none;min-height:36px;padding:0 12px;font-size:13px}.controls button.tool:disabled{opacity:.5}.legal{color:var(--text-dim);text-align:center;overflow-wrap:anywhere;flex-direction:column;align-items:center;gap:4px;margin-top:4px;font-size:12px;display:flex}.legal a{color:var(--text-dim)}.legal .player-id{-webkit-user-select:all;user-select:all;font-variant-numeric:tabular-nums}.tabbed .app,.tabbed .app.home{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.tabbar{z-index:10;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:linear-gradient(var(--panel-2), var(--panel));justify-content:center;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:inset 0 1px #ffffff1f,0 -6px 16px #0006}button.tab{min-width:0;max-width:96px;min-height:62px;box-shadow:none;color:var(--text-dim);background:0 0;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:4px;margin:0;padding:4px 2px;font-size:11.5px;font-weight:700;display:flex;position:relative}button.tab:active{box-shadow:none;background:0 0;transform:none}button.tab:active .ico-tile{transform:scale(.9)}.tab .ico-tile{filter:saturate(.3)brightness(.8);transition:transform .15s}.tab.on{color:var(--accent);background:#ffffff10}.tab.on .ico-tile{filter:none;transform:translateY(-3px)scale(1.1)}.tab.main .ico-tile{filter:none;width:48px;height:48px;box-shadow:inset 0 -3px 0 #0003, 0 3px 0 #0005, 0 0 0 3px var(--panel-2);border-radius:15px;margin-top:-18px}.tab.main .ico-tile .icon{width:27px;height:27px}.tab-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab .dot{border:2px solid var(--panel-2);background:#ff4d4f;border-radius:50%;width:11px;height:11px;position:absolute;top:2px;left:calc(50% + 12px)}.learn-progress{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.learn-count{align-items:baseline;gap:8px;display:flex}.learn-count strong{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.learn-count span{color:var(--text-dim);font-size:14px}.bar{background:#0005;border-radius:5px;height:10px;overflow:hidden}.bar i{background:linear-gradient(#ffffff40, #0000) var(--good);border-radius:5px;height:100%;transition:width .3s;display:block}.lesson-list{flex-direction:column;gap:8px;display:flex}button.lesson-row{--edge:var(--panel-edge);background-color:var(--panel);text-align:left;border:2px solid #0000;flex:none;align-items:center;gap:12px;min-height:54px;padding:6px 14px 6px 10px;display:flex}.lesson-row.next{border-color:var(--accent)}.lesson-num{width:32px;height:32px;color:var(--text-dim);background:#0004;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.lesson-num .icon{stroke-width:3px;width:18px;height:18px}.lesson-row.done .lesson-num{background:var(--good);color:#fff}.lesson-row.next .lesson-num{background:var(--accent);color:var(--accent-text)}.lesson-title{flex:1;min-width:0}.lesson-row>.icon{width:16px;height:16px;color:var(--text-dim)}.tabbed .home{justify-content:flex-start}.hub-top{align-items:center;gap:10px;min-height:40px;margin-bottom:auto;display:flex}.hub-profile{flex:1;min-width:0}.home .modes{margin-bottom:auto}.home .hero{margin:4px 0 6px}.home .hero-board{width:112px}.home .logo{text-shadow:0 3px #0006;margin:14px 0 0;font-size:32px;font-weight:900}.play-row{gap:10px;display:flex}button.play-big{flex:1;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:72px;padding:6px 12px;display:flex}button.play-big .icon{fill:currentColor;stroke-width:1.5px;width:30px;height:30px}.play-text{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.play-text>span{text-transform:uppercase;letter-spacing:.5px;font-size:26px;font-weight:900;line-height:1.05}.play-text small{text-overflow:ellipsis;white-space:nowrap;opacity:.75;max-width:100%;font-size:12.5px;font-weight:700;overflow:hidden}button.change{--edge:var(--accent-edge);background:linear-gradient(var(--accent-active), var(--accent));width:58px;min-height:72px;color:var(--accent-text);flex:none;place-items:center;padding:0;display:grid}button.change .icon{stroke-width:2.5px;width:24px;height:24px}.modes{grid-template-columns:1fr 1fr;gap:10px;display:grid}button.mode{--edge:var(--panel-edge);background-color:var(--panel);text-align:left;align-items:center;gap:10px;min-width:0;min-height:64px;padding:8px 10px;display:flex}button.mode:active{background-color:var(--panel-2)}.mode-text{flex-direction:column;gap:1px;min-width:0;display:flex}.mode-text strong{font-size:15px;font-weight:800;line-height:1.2}.mode-text small{color:var(--text-dim);font-size:11.5px;font-weight:600;line-height:1.25}.resume button.good{margin-bottom:4px}.avatar{background:radial-gradient(circle at 50% 35%, var(--panel-2), var(--bg));border:3px solid var(--accent);width:44px;height:44px;box-shadow:0 2px 0 var(--accent-edge);border-radius:50%;flex:none;place-items:center;display:grid}.avatar .chip{width:26px;height:26px;box-shadow:0 2px 3px #0006}.avatar.big{border-width:4px;width:72px;height:72px}.avatar.big .chip{width:42px;height:42px}button.profile-chip{--edge:var(--panel-edge);background-color:var(--panel);max-width:100%;min-height:0;box-shadow:inset 0 1px 0 #ffffff2e, 0 3px 0 var(--edge);text-align:left;border-radius:999px;flex:none;align-items:center;gap:10px;margin:0 0 3px;padding:4px 14px 4px 4px;display:flex}button.profile-chip:active{box-shadow:inset 0 1px 0 #ffffff2e, 0 0 0 var(--edge)}.pc-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.pc-text .name-tag{height:24px;font-size:15px;font-weight:800;line-height:24px}.pc-text .guest{font-size:15px;font-weight:800}.pc-text small{color:var(--text-dim);white-space:nowrap;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.pc-text small .icon{width:13px;height:13px;color:var(--accent)}.profile-card{align-items:center;gap:14px;padding:14px 16px;display:flex}.profile-name{flex-direction:column;flex:1;gap:4px;min-width:0;font-size:18px;font-weight:800;display:flex}.profile-rating{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.profile-rating b{color:var(--accent);font-size:18px}.profile-rating .icon{width:16px;height:16px;color:var(--accent)}h2.section{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);margin:6px 2px -4px;font-size:13px;font-weight:800}.label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);font-size:12px;font-weight:800}.group{border-radius:var(--radius);background:var(--panel);box-shadow:inset 0 1px 0 #ffffff17, 0 3px 0 var(--panel-edge);flex-direction:column;display:flex;overflow:hidden}.group button.toggle{box-shadow:none;background:0 0;border-radius:0;margin:0}.group button.toggle:active{background:#ffffff0d;transform:none}.group button.toggle+button.toggle{border-top:1px solid #0004}.podium{align-items:flex-end;gap:6px;padding-top:8px;display:flex}.step{flex-direction:column;flex:1 1 0;align-items:center;gap:4px;min-width:0;display:flex;position:relative}.step .avatar{width:52px;height:52px}.step.p1 .avatar{border-color:#ffd34d;width:64px;height:64px}.step.p2 .avatar{border-color:#cfd8e3;box-shadow:0 2px #7f8a99}.step.p3 .avatar{border-color:#e09a5a;box-shadow:0 2px #8a5528}.medal{z-index:1;color:#3a2208;background:#ffd34d;border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;font-weight:900;display:grid;position:absolute;top:-8px;box-shadow:0 2px #0005}.p2 .medal{background:#cfd8e3}.p3 .medal{background:#e09a5a}.step-name{text-align:center;max-width:100%;font-size:13px;font-weight:700}.step-name .name-tag{height:24px;line-height:24px}.step-rating{color:var(--accent);font-variant-numeric:tabular-nums;font-size:15px}.step .block{background:linear-gradient(#ffffff1f, #0000) var(--panel-2);border-radius:10px 10px 0 0;width:100%;box-shadow:inset 0 1px #ffffff26}.p1 .block{height:56px}.p2 .block{height:38px}.p3 .block{height:26px}.step.me .step-name{color:var(--accent)}.leaders:empty{display:none}@media (width<=340px){button.mode{flex-direction:column;align-items:flex-start;gap:6px;padding:10px}.mode-text strong{font-size:14px}}@media (height<=640px){.home .hero-board{width:76px;padding:4px}.home .logo{margin-top:8px;font-size:24px}}
