:root{--font-ui:"Segoe UI", Roboto, system-ui, -apple-system, sans-serif;--bg:#0a0d10;--panel:#1d1a16;--panel-2:#262119;--line:#3a342c;--rule:#4a4238;--line-strong:#b9ab93;--cell:#191612;--text:#efe7d8;--dim:#9b917f;--accent:#8fb4d6;--accent-dim:#33465a;--cage:#6d6456;--sum:#d7cbb2;--mark:#9b917f;--single:#7fbf8e;--single-bg:#7fbf8e21;--tallied:#b27ce04d;--spotlit:#d6b25e4d;--error:#e2564b;--clash:#a8564a;--sel:#d6b25e42;--peer:#ffffff0b;--cage-peer:#d6b25e12;--same:#8fb4d621;--shadow:#0000008c;--panel-rgb:29 26 22;--panel-2-rgb:38 33 25;--inc-rgb:47 107 63;--exc-rgb:168 55 45;--k-digit:#232019;--k-digit-line:#4a4236;--k-digit-text:#efe7d8;--k-edit:#1e1b16;--k-edit-line:#3a342c;--k-edit-text:#cabfa9;--k-aid:#1e1b16;--k-aid-line:#3a342c;--k-aid-text:#8fb4d6;--k-session:#1e1b16;--k-session-line:#3a342c;--k-session-text:#d99a86;--k-tally:#2a2034;--k-tally-line:#6b4d85;--k-tally-text:#d9c2ee}:root[data-theme=day]{--bg:#dfe4e9;--panel:#f6f1e6;--panel-2:#ece5d6;--line:#cdc3b1;--rule:#a89e8d;--line-strong:#16120c;--cell:#faf6ec;--text:#16120c;--dim:#6b6357;--accent:#2f4f6f;--accent-dim:#b9cad9;--cage:#8a8072;--sum:#2f2921;--mark:#7a7264;--single:#3f6b46;--single-bg:#3f6b461f;--tallied:#7c46b033;--spotlit:#be963c6b;--error:#a8221c;--clash:#b8604f;--sel:#be963c52;--peer:#16120c0b;--cage-peer:#6b635714;--same:#2f4f6f1a;--shadow:#3c322338;--panel-rgb:246 241 230;--panel-2-rgb:236 229 214;--inc-rgb:47 107 63;--exc-rgb:168 34 28;--k-digit:#fffdf8;--k-digit-line:#cdc3b1;--k-digit-text:#16120c;--k-edit:#ece5d6;--k-edit-line:#cdc3b1;--k-edit-text:#4a443a;--k-aid:#f6f1e6;--k-aid-line:#cdc3b1;--k-aid-text:#2f4f6f;--k-session:#f6f1e6;--k-session-line:#cdc3b1;--k-session-text:#8a4a3a;--k-tally:#f3ecf9;--k-tally-line:#cdb4e0;--k-tally-text:#6b3f96}:root[data-theme=contrast]{--bg:#000;--panel:#000;--panel-2:#101014;--line:#8a8a8a;--rule:#8a8a8a;--line-strong:#fff;--cell:#000;--text:#fff;--dim:#c9c9c9;--accent:#56b4e9;--accent-dim:#0072b2;--cage:#fff;--sum:#f0e442;--mark:#56b4e9;--single:#33e0b0;--single-bg:#009e7338;--tallied:#cc79a761;--spotlit:#56b4e959;--error:#d55e00;--clash:#e69f00;--sel:#56b4e957;--peer:#ffffff1a;--cage-peer:#f0e4421f;--same:#56b4e92e;--shadow:#000000e6;--panel-rgb:0 0 0;--panel-2-rgb:16 16 20;--inc-rgb:0 114 178;--exc-rgb:213 94 0;--k-digit:#002218;--k-digit-line:#33e0b0;--k-digit-text:#fff;--k-edit:#262100;--k-edit-line:#f0e442;--k-edit-text:#fff;--k-aid:#001d2e;--k-aid-line:#56b4e9;--k-aid-text:#fff;--k-session:#2b1000;--k-session-line:#e69f00;--k-session-text:#fff;--k-tally:#26001d;--k-tally-line:#cc79a7;--k-tally-text:#fff}:root[data-theme=contrast] .cages path{stroke-width:.055px}:root[data-theme=contrast] .btn{border-width:2px}:root[data-theme=contrast] .cell.error .big{text-decoration:line-through;text-decoration-thickness:2px}:root[data-theme=contrast] .cell.single{box-shadow:inset 0 0 0 2px var(--single)}:root[data-theme=contrast] .cell.tallied:after{content:"";background:var(--k-tally-line);z-index:3;border-radius:50%;width:14%;height:14%;position:absolute;top:6%;right:6%}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-text-size-adjust:100%;overscroll-behavior:none}#app{justify-content:center;min-height:100%;display:flex}.screen{flex-direction:column;gap:8px;width:100%;max-width:520px;padding:8px 8px 16px;display:flex}.titlebar{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;min-height:42px;padding:6px 8px;display:flex}.titlebar .target{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:12px}.titlebar .target.past{color:var(--error)}.timer .target{color:var(--dim);margin-top:2px;font-size:9.5px;font-weight:600;line-height:1.1;display:block}.timer .target.past{color:var(--error)}.titlebar .id{letter-spacing:.5px;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.titlebar .candidates{color:var(--mark);font-variant-numeric:tabular-nums;gap:5px;min-height:18px;margin-left:auto;font-size:15px;display:flex}.titlebar .candidates b{color:var(--accent);font-weight:700}.titlebar .candidates .cands{color:var(--mark);letter-spacing:.5px}.iconbtn{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:7px;flex:none;place-items:center;gap:3px;width:32px;height:28px;padding:5px 6px;display:grid}.iconbtn i{background:var(--text);width:100%;height:2px;display:block}.board{aspect-ratio:1;border:2px solid var(--line-strong);background:var(--cell);width:100%;box-shadow:0 6px 22px var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));display:grid;position:relative}.cell{border-top:1px solid var(--rule);border-left:1px solid var(--rule);background:var(--cell);cursor:pointer;place-items:center;min-width:0;min-height:0;font-size:min(6.4vw,33px);display:grid;position:relative;overflow:hidden}.board .row{display:contents}.row .cell:first-child{border-left:none}.row:first-child .cell{border-top:none}.cell:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;z-index:3}.cell.box-l{border-left:2px solid var(--line-strong)}.cell.box-t{border-top:2px solid var(--line-strong)}.cell.peer{background:var(--peer)}.cell.cage-peer{background:var(--cage-peer)}.cell.same{background:var(--same)}.cell.single{background:var(--single-bg)}.cell.tallied{background:var(--tallied)}.cell.sel{background:var(--sel)}.cell.clash .big{color:var(--clash)}.cell.error{background:var(--error)}.cell.error .big{color:#fff}.cages{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.cages path{fill:none;stroke:var(--cage);stroke-width:.028px;stroke-linejoin:round;stroke-linecap:round}.sum{color:var(--sum);z-index:2;font-variant-numeric:tabular-nums;font-size:.42em;font-weight:800;line-height:1;position:absolute;top:8%;left:9%}.big{color:var(--text);z-index:2;font-weight:700;line-height:1}.marks{color:var(--mark);z-index:1;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(5,1fr);font-size:.32em;font-weight:700;line-height:1;display:grid;position:absolute;inset:41% 13% 13%}.mark{place-items:center;display:grid}.cell.spotlit{background:var(--spotlit);box-shadow:inset 0 0 0 2px var(--accent)}.cell.single .marks{color:var(--single);font-weight:800}.controls{gap:8px;display:flex}:root[data-keypad=right] .controls{flex-direction:row-reverse}:root[data-keypad=right] .controls .actions{direction:rtl}:root[data-keypad=right] .controls .actions>*{direction:ltr}:root[data-keypad=right] .under-keys,:root[data-keypad=right] .under-actions{flex-direction:row-reverse}.controls-left{flex-direction:column;flex:0 0 54%;gap:6px;min-width:0;display:flex}.controls-right{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.numpad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.under-keys,.under-actions{gap:6px;min-width:0;display:flex}.under-keys .key.clear,.under-keys .undo-pair{flex:1 1 0;min-width:0;margin:0}.under-actions .tally{flex:auto;min-width:0;margin:0}.controls .actions{flex:auto;grid-template-rows:repeat(3,1fr);grid-template-columns:1fr 1fr;grid-auto-flow:column;gap:5px;min-width:0;margin:0;display:grid}.controls .actions .btn{padding:4px 2px;font-size:13px}.undo-pair{grid-template-columns:1fr 1fr;gap:5px;min-width:0;display:grid}.btn.icon{place-items:center;padding:0;display:grid}.btn.icon svg{display:block}.pause-btn{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;touch-action:manipulation;border-radius:9px;flex:0 0 48px;justify-content:center;align-items:center;gap:4px;display:flex}.pause-btn i{background:var(--text);border-radius:1px;width:4px;height:16px;display:block}.pause-btn:active{background:var(--accent-dim)}.key,.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font-family:var(--font-ui);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:9px;padding:10px 4px;font-size:20px;font-weight:600;position:relative}.key:active,.btn:active{background:var(--accent-dim)}.numpad .key{background:var(--k-digit);border-color:var(--k-digit-line);color:var(--k-digit-text)}.key.clear,.undo-pair .btn.icon{background:var(--k-edit);border-color:var(--k-edit-line);color:var(--k-edit-text)}.btn.aid{background:var(--k-aid);border-color:var(--k-aid-line);color:var(--k-aid-text)}.tally{background:var(--k-tally);border-color:var(--k-tally-line);color:var(--k-tally-text)}.btn.session{background:var(--k-session);border-color:var(--k-session-line);color:var(--k-session-text)}.key.done{color:var(--dim);opacity:.45}.key .count{color:var(--dim);font-size:10px;font-weight:500;position:absolute;top:1px;right:3px}.key.clear{letter-spacing:1px;padding:12px 4px;font-size:14px}.tally,.timer{border:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;padding:6px 4px}.tally{flex:auto;place-items:center;font-size:18px;font-weight:700;line-height:1.1;display:grid}.tally small{opacity:.75;font-size:10px;font-weight:500;display:block}.timer{background:var(--panel);color:var(--text);place-items:center;font-size:17px;font-weight:700;line-height:1;display:grid}.actions{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.btn{padding:11px 4px;font-size:15px}.btn[disabled]{opacity:.4;cursor:default}.btn.wide{grid-column:span 3}.btn.primary{background:var(--accent-dim);border-color:var(--accent)}.hero{text-align:center;padding:10px 0 2px}.hero h1{letter-spacing:1px;margin:0;font-size:30px;font-weight:800}.hero h1 span{color:var(--accent)}.hero p{color:var(--dim);margin:4px 0 0;font-size:13px}.levels{flex-direction:column;gap:7px;display:flex}.level{background:var(--panel);border:1px solid var(--line);-webkit-user-select:none;user-select:none;border-radius:6px;grid-template-columns:minmax(64px,.85fr) minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:6px;min-width:0;padding:7px 8px;display:grid}.level-head{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-direction:column;justify-content:center;gap:3px;padding:2px 18px 2px 0;display:flex;position:relative}.level-head:hover,.level-head:focus-visible{background:var(--accent-dim);outline:1px solid var(--accent)}.level-info-badge{border:1px solid var(--dim);width:15px;height:15px;color:var(--dim);border-radius:50%;place-items:center;font-size:10px;font-weight:800;display:grid;position:absolute;top:50%;right:2px;translate:0 -50%}.level .level .name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.source-row{gap:4px;min-width:0;display:flex}.source{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;text-align:left;min-width:0;color:var(--text);touch-action:manipulation;border-radius:5px;flex:auto;padding:6px 5px;display:block}.pick{background:var(--panel-2);border:1px solid var(--line);color:var(--dim);cursor:pointer;touch-action:manipulation;border-radius:5px;flex:0 0 26px;font-size:14px;font-weight:700}.pick:active{background:var(--accent-dim);color:var(--text)}.pick[disabled]{opacity:.4;cursor:default}.source:active{background:var(--accent-dim)}.source[disabled]{opacity:.4;cursor:default}.source-name{font-size:14px;font-weight:700;line-height:1.2;display:block}.source.random .source-name{color:var(--accent)}.source-meta{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11.5px;line-height:1.2;display:block;overflow:hidden}.hint-line{color:var(--dim);text-align:center;font-size:12px}.build-stamp{color:var(--dim);opacity:.65;text-align:center;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:10.5px}.overlay{z-index:50;background:#000000b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay.undimmed{background:0 0}.overlay.see-through{--glass:1;background:rgb(0 0 0/calc(var(--glass) * .22))}.overlay.see-through .panel{background:rgb(var(--panel-rgb) / var(--glass));border-color:var(--accent-dim)}.overlay.see-through .panel-footer{background:rgb(var(--panel-rgb) / var(--glass))}.overlay.see-through .results{background:rgb(var(--panel-2-rgb) / calc(var(--glass) * .88))}.level-info-panel{max-width:390px}.level-info-panel h2{margin-top:5px}.level-info-lead{color:var(--text);margin:0 0 10px;font-weight:650}.level-techniques{color:var(--text);margin:0 0 13px;padding-left:20px}.level-techniques li{margin:6px 0}.glass-slider{color:var(--dim);align-items:center;gap:8px;display:flex}.glass-slider svg{flex:none;display:block}.glass-slider input[type=range]{min-width:0;accent-color:var(--accent);flex:auto;height:20px}.footer-buttons{gap:6px;display:grid}.footer-buttons.three{grid-template-columns:repeat(3,1fr)}.panel{background:var(--panel);border:1px solid var(--line);width:100%;max-width:480px;max-height:86vh;box-shadow:0 10px 40px var(--shadow);border-radius:12px;padding:14px;overflow:auto}.panel h2{color:var(--accent);margin:0 0 10px;font-size:19px}.panel-footer{padding:10px 14px calc(14px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);gap:6px;margin:10px -14px -14px;display:grid;position:sticky;bottom:-14px}.panel-footer.two{grid-template-columns:1fr 1fr}.panel-footer.three{grid-template-columns:repeat(3,1fr)}.panel h3{color:var(--accent);margin:14px 0 6px;font-size:14px}.panel p,.panel li{color:var(--text);font-size:13px;line-height:1.5}.paused{color:var(--accent);z-index:60;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000;place-items:center;display:grid;position:fixed;inset:0}.paused h2{letter-spacing:3px;margin:0;font-size:40px}.paused p{color:var(--dim);margin:8px 0 0}.menu-list{flex-direction:column;gap:6px;display:flex}.menu-list button{text-align:left;font-size:15px}.setting{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:8px;padding:6px 2px;font-size:13.5px;display:flex}.setting:last-child{border-bottom:none}.setting.stacked{cursor:default;display:block}.setting.stacked .tabs{gap:6px;margin-top:6px;display:flex}.setting.stacked .tabs .btn{flex:1 1 0;padding:7px 4px;font-size:13px}.setting.stacked .tabs .btn.on{border-color:var(--accent);color:var(--accent);font-weight:700}.setting .label{flex:auto}.setting .label small{color:var(--dim);margin-top:1px;font-size:11px;line-height:1.3;display:block}.switch{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;flex:none;width:44px;height:24px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--dim);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch.on{background:var(--accent-dim);border-color:var(--accent)}.switch.on:after{background:var(--accent);transform:translate(20px)}.picker{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:5px;max-height:46vh;display:grid;overflow-y:auto}.picker-jump{color:var(--dim);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.picker-jump input[type=number]{text-align:center;background:var(--panel-2);width:74px;color:var(--text);border:1px solid var(--line);border-radius:4px;flex:0 0 74px;padding:6px;font-size:15px}.picker-jump .btn{flex:none;padding:7px 14px}.picker-ranges{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.picker-ranges .btn{font-variant-numeric:tabular-nums;flex:none;padding:5px 8px;font-size:12px}.picker-ranges .btn.on{background:var(--accent-dim);border-color:var(--accent)}.picker button{font-variant-numeric:tabular-nums;padding:9px 2px;font-size:13px}.statrow{font-variant-numeric:tabular-nums;cursor:pointer;border-radius:4px;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:grid}.statrow.locked{background:#dc78a02e}.statrow.released{background:#78d28c29}.unfinished-row{gap:5px;margin-bottom:5px;display:flex}.unfinished-row .statrow.open{flex:auto;min-width:0;margin-bottom:0}.rowx{background:var(--panel-2);border:1px solid var(--line);color:var(--error);cursor:pointer;touch-action:manipulation;border-radius:4px;flex:0 0 38px;place-items:center;font-size:14px;display:grid}.rowx svg{display:block}.rowx:active{background:var(--error);color:#fff}.statrow.open{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--text);text-align:left;grid-template-columns:1fr auto auto auto auto;margin-bottom:5px;font-size:13px}.statrow .hold{color:var(--dim);letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--line);border-radius:3px;padding:1px 4px;font-size:9.5px}.section-label{color:var(--accent);letter-spacing:.6px;text-transform:uppercase;margin:14px 0 6px;font-size:12px;font-weight:700}.statrow.open:active{background:var(--accent-dim)}.statrow .when{color:var(--dim);font-size:11.5px}.statrow .when.since{color:var(--text);font-weight:700}.tabs{gap:5px;margin-bottom:8px;display:flex}.tabs button{flex:auto;padding:8px 2px;font-size:14px}.tabs button.on{background:var(--accent-dim);border-color:var(--accent)}.summary{color:var(--dim);margin:0 0 8px;font-size:12.5px}.panel.calc{width:min(100%,336px)}.calc .row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.calc label{color:var(--dim);font-size:13px}.calc input[type=number]{background:var(--panel-2);width:66px;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:7px;font-size:15px}.calc-body{grid-template-columns:150px 148px;align-items:stretch;gap:8px;display:grid}:root[data-keypad=right] .calc-body{grid-template-columns:148px 150px}:root[data-keypad=right] .calc-body>.calc-left{grid-area:1/2}:root[data-keypad=right] .calc-body>.results{grid-area:1/1}.calc-left{flex-direction:column;gap:6px;min-width:0;display:flex}.calc-keys{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:5px;height:168px;display:grid}.calc-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.unfinished-picker{max-height:min(52dvh,420px);padding-right:2px;overflow-y:auto}.unfinished-picker .statrow.open{grid-template-columns:auto minmax(0,1fr) auto auto}.calc-fields label{color:var(--dim);grid-template-columns:auto 40px;align-items:center;gap:3px;font-size:11px;display:grid}.calc-fields input[type=number]{background:var(--k-aid);border-color:var(--k-aid-line);width:40px;min-width:0;color:var(--k-aid-text);text-align:center;appearance:textfield;padding:5px 2px;font-size:16px;font-weight:750}.calc-fields input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.calc-fields input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.calc-keys button{background:var(--k-digit);border-color:var(--k-digit-line);color:var(--k-digit-text);padding:0;font-size:21px}.calc-keys button.inc{background:rgb(var(--inc-rgb) / var(--glass,1));color:#fff;text-shadow:0 1px 2px #000000bf;border-color:#64e39b;font-weight:800}.calc-keys button.exc{background:rgb(var(--exc-rgb) / var(--glass,1));color:#fff;text-shadow:0 1px 2px #000000bf;border-color:#ff9090;font-weight:800;text-decoration:line-through}.overlay.bottom-sheet{padding:8px 16px max(20px, calc(8px + env(safe-area-inset-bottom,0px)));align-items:end}.calc .results{font-variant-numeric:tabular-nums;background:var(--panel-2);border:1px solid var(--line);border-radius:5px;max-height:220px;padding:5px 7px;font-size:14px;line-height:1.55;overflow:hidden auto}.calc .results div.none{color:var(--dim);letter-spacing:0}.calc .combo{cursor:pointer;border-radius:3px;padding:1px 5px;position:relative}.calc .combo:hover{background:var(--panel)}.calc .combo .d{text-align:center;min-width:1.05em;display:inline-block}.calc .combo .d.placed{color:var(--accent);border-bottom:2px solid var(--accent);font-weight:800}.calc .combo .d.blocked{color:var(--error);opacity:.8;border-bottom:2px dotted var(--error)}.calc .combo.struck{opacity:.5}.calc .combo.struck:after{content:"";background:var(--error);pointer-events:none;border-radius:1px;height:2px;margin-top:-1px;position:absolute;top:50%;left:3px;right:3px}.calc .combo.struck .d.placed{color:var(--dim);border-bottom-color:#0000}.totals{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.totals .tile{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:6px;min-width:0;padding:7px 4px}.totals .tile b{color:var(--accent);font-variant-numeric:tabular-nums;font-size:19px;line-height:1.1;display:block}.totals .tile small{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:10.5px;display:block;overflow:hidden}.totals .spread{text-align:center;color:var(--dim);grid-column:1/-1;margin:0;font-size:11.5px}.won{text-align:center}.won .verdict{color:var(--text);justify-content:center;align-items:center;gap:6px;font-weight:650;display:flex}.won .verdict.up{color:var(--accent)}.won .verdict.down{color:var(--dim)}.won .actions .btn{padding:11px 6px;font-size:15px}.technique-list{color:var(--dim);margin:0 0 12px;padding-left:20px}.technique-list li{margin:4px 0}.technique-list li.hardest{color:var(--text);font-weight:650}.won .time{color:var(--accent);font-variant-numeric:tabular-nums;margin:6px 0;font-size:34px;font-weight:800}.toast{background:var(--panel);border:1px solid var(--accent);color:var(--text);z-index:70;box-shadow:0 6px 20px var(--shadow);pointer-events:none;border-radius:20px;padding:9px 16px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.tutorial{text-align:center;max-width:390px}.tutorial .eyebrow{color:var(--accent);letter-spacing:1.5px;font-size:11px;font-weight:800}.tutorial-demo{border:1px solid var(--accent);background:var(--accent-dim);border-radius:8px;place-items:center;min-height:126px;margin:14px 0 10px;padding:18px 12px;display:grid}.tutorial-picture{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.tutorial-caption{color:var(--dim);text-align:left;max-width:90px;font-size:11px}.tutorial-grid{border:2px solid var(--line-strong);grid-template-columns:repeat(3,1fr);width:96px;height:96px;display:grid}.tutorial-cell{border:1px solid var(--line);background:var(--cell);color:var(--sum);place-items:start;padding:2px;font-size:9px;display:grid}.tutorial-cell.peer{background:var(--peer)}.tutorial-cell.selected{background:var(--sel);outline:2px solid var(--accent);outline-offset:-2px}.tutorial-large-cell{border:2px solid var(--cage);background:var(--cell);width:82px;height:82px;color:var(--text);place-items:center;font-size:36px;font-weight:800;display:grid}.tutorial-marks{width:62px;height:62px;color:var(--mark);grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(5,1fr);align-content:end;font-size:12px;display:grid}.tutorial-marks span{place-items:center;display:grid}.tutorial-key-row{gap:4px;display:flex}.tutorial-key-row:before{content:"Tap";color:var(--dim);align-self:center;margin-right:2px;font-size:11px}.tutorial-key-row{color:var(--k-digit-text);font-size:15px;font-weight:800}.tutorial-key-row span{border:1px solid var(--k-digit-line);background:var(--k-digit);border-radius:3px;min-width:28px;padding:6px 4px}.tutorial-key{border:1px solid var(--k-digit-line);background:var(--k-digit);width:56px;height:64px;color:var(--k-digit-text);border-radius:5px;place-items:center;font-size:25px;font-weight:800;display:grid}.tutorial-key small{color:var(--dim);font-size:8px;display:block}.tutorial-arrow{color:var(--accent);font-size:25px}.answer-cell{color:var(--text)}.tutorial-mini-keys{grid-template-columns:repeat(3,28px);gap:3px;display:grid}.tutorial-mini-keys span{border:1px solid var(--k-digit-line);background:var(--k-digit);color:var(--k-digit-text);border-radius:3px;padding:5px 0;font-weight:800}.tutorial-combos{border:1px solid var(--line);background:var(--panel-2);text-align:left;font-variant-numeric:tabular-nums;border-radius:4px;gap:2px;padding:5px 10px;font-size:12px;display:grid}.tutorial-combos b{color:var(--accent);margin-bottom:2px}.tutorial-tally-demo{font-size:20px;font-weight:800}.tutorial-cage{border:2px dashed var(--cage);background:var(--cell);width:52px;height:52px;color:var(--sum);place-items:center;display:grid}.tutorial-cage.counted{background:var(--tallied);box-shadow:inset 0 0 0 2px var(--k-tally-line)}.tutorial-tally-demo strong{border:1px solid var(--k-tally-line);background:var(--k-tally);min-width:58px;color:var(--k-tally-text);border-radius:4px;padding:7px}.tutorial-tally-demo strong small{font-size:8px;font-weight:500;display:block}.tutorial-ready{flex-wrap:wrap}.tutorial-ready span{border:1px solid var(--line);background:var(--panel-2);border-radius:4px;padding:9px 12px;font-size:12px;font-weight:750}.tutorial-copy{min-height:58px}.tutorial-progress{color:var(--accent);letter-spacing:5px;margin:12px 0}.tutorial-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tutorial-skip{color:var(--dim);cursor:pointer;background:0 0;border:0;margin-top:12px;text-decoration:underline}.update-notice{z-index:80;border:1px solid var(--accent);background:var(--panel);max-width:calc(100vw - 32px);color:var(--text);box-shadow:0 6px 20px var(--shadow);border-radius:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;padding:9px 10px 9px 14px;font-size:13px;display:flex;position:fixed;bottom:16px;right:16px}.update-notice .btn{padding:7px 12px;font-size:15px}.update-notice span{flex:auto;min-width:0}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin:0 auto 12px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (orientation:landscape) and (max-height:560px){#app{align-items:flex-start}.screen.play{--board:min(calc(100dvh - 56px), calc(100vw - 236px));grid-template-columns:var(--board) minmax(0, 1fr);grid-template-rows:auto minmax(0,1fr);gap:6px;max-width:none;height:100dvh;padding:6px;display:grid}.screen.play>.titlebar{grid-column:1/-1;min-height:34px;padding:3px 8px}:root[data-keypad=left] .screen.play{grid-template-columns:minmax(0, 1fr) var(--board)}:root[data-keypad=left] .screen.play>.board{grid-column:2}:root[data-keypad=left] .screen.play>.controls{grid-area:2/1}.screen.play>.board{width:var(--board);height:var(--board);font-size:min(3.4vh,26px)}.screen.play>.controls{height:100%}.controls-left{flex:0 0 52%}.numpad{flex:auto;grid-auto-rows:minmax(0,1fr)}.controls .actions{grid-template-rows:repeat(3,minmax(0,1fr))}.key,.btn{padding:2px 4px;font-size:17px}.key.clear{padding:2px 4px}.controls .actions .btn{font-size:12.5px}.under-keys,.under-actions{flex:0 0 34px}.pause-btn{flex:0 0 40px}}.belt{flex:none;display:block}.level-info-belt{justify-content:center;margin-bottom:4px;display:flex}.level-head .name{flex-direction:column;line-height:1.15;display:flex}.level-head .name small{color:var(--dim);font-size:11px;font-weight:600}.level-info-descriptor{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:650}@media (max-width:380px){.btn{font-size:13.5px}.key{padding:9px 4px;font-size:18px}}@media (orientation:landscape) and (max-height:560px){#app{align-items:flex-start}.screen.play{--board:min(calc(100dvh - 16px), calc(100vw - 336px), 720px);grid-template-columns:var(--board) minmax(0, 264px);grid-template-rows:auto minmax(0,1fr);justify-content:center;gap:8px;width:100%;max-width:none;height:100dvh;padding:8px;display:grid}.screen.play>.board{width:var(--board);height:var(--board);grid-area:1/1/span 2}.screen.play>.titlebar{grid-area:1/2;gap:6px;min-height:34px;padding:3px 6px}.titlebar.with-clock .timer{border-radius:7px;min-width:56px;margin-left:auto;padding:2px 6px;font-size:13px}.titlebar.with-clock .pause-btn{border-radius:7px;flex:0 0 32px;height:26px}.titlebar.with-clock .pause-btn i{width:3px;height:12px}.titlebar.with-clock .candidates{margin-left:0}.under-actions{display:none}.controls .actions .tally{border-radius:9px;margin:0}.screen.play>.controls{grid-area:2/2;height:100%}.screen.play>.titlebar,.screen.play>.controls{justify-self:center;width:100%;max-width:264px}:root[data-keypad=left] .screen.play{grid-template-columns:minmax(0, 264px) var(--board)}:root[data-keypad=left] .screen.play>.board{grid-column:2}:root[data-keypad=left] .screen.play>.titlebar,:root[data-keypad=left] .screen.play>.controls{grid-column:1}.screen.play>.controls,:root[data-keypad=right] .screen.play>.controls{flex-direction:column}.controls-left{flex:0 0 56%}.controls-left,.controls-right{min-height:0}.numpad{flex:auto;grid-auto-rows:minmax(0,1fr)}.controls .actions,.numpad{grid-template-rows:repeat(3,minmax(0,1fr));min-height:0}.key,.btn{padding:2px 4px;font-size:17px}.key.clear{padding:2px 4px}.controls .actions .btn{font-size:12.5px}.under-keys,.under-actions{flex:0 0 34px}.under-actions .tally{padding:2px 4px;line-height:1.05}.under-actions .tally small{font-size:8px}.pause-btn{flex:0 0 42px}}
