@font-face{font-family:Overwriter Noto Sans Mono;src:url(../fonts/overwriter-standard.woff2) format("woff2");font-display:block;font-weight:700;font-style:normal}:root{--bg-dark: rgb(245, 227, 183);--bg: rgb(255, 238, 199);--bg-light: rgb(255, 246, 224);--surface: rgb(255, 250, 238);--text: rgb(26, 6, 0);--text-muted: rgb(61, 46, 0);--border: rgb(157, 123, 11);--border-muted: rgb(188, 153, 56);--primary: rgb(61, 46, 0);--danger: rgb(157, 69, 57);--warning: rgb(87, 77, 0);--success: rgb(0, 170, 116);--info: rgb(56, 99, 168);--font-ui: "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Noto Sans Mono", monospace;--page-paper-texture: url(../textures/paper-texture2.webp)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}html{background:linear-gradient(135deg,#fff6e0eb,#f5e3b7c2),url(../dots.png);background-color:var(--bg);width:100%;min-height:100%;overflow:hidden;overscroll-behavior:none}#app{min-height:100dvh;overflow:hidden;overscroll-behavior:none;background:transparent;touch-action:auto;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body{min-height:100dvh;min-width:320px;color:var(--text);background:linear-gradient(135deg,#fff6e0eb,#f5e3b7c2),url(../dots.png);font-family:var(--font-ui);line-height:1.45;overflow:hidden;overscroll-behavior:none;touch-action:auto;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button,input,select,a,[role=button]{font:inherit;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.shop-tabs .shop-tab,.shop-subtabs .shop-subtab{touch-action:pan-x}.app-shell[data-theme=theme-dark]{--bg-dark: rgb(42, 35, 29);--bg: rgb(50, 42, 35);--bg-light: rgb(67, 56, 45);--surface: rgb(76, 64, 52);--text: rgb(255, 238, 199);--text-muted: rgb(222, 199, 147);--border: rgb(181, 143, 44);--border-muted: rgb(128, 101, 34);--primary: rgb(255, 238, 199);--danger: rgb(226, 96, 83);--warning: rgb(232, 205, 83);--success: rgb(73, 205, 151);--info: rgb(111, 154, 223);--panel-bg: rgba(67, 56, 45, .9);--panel-header-bg: rgba(82, 69, 55, .88);--hover-bg: rgb(82, 69, 55);--preview-bg: rgba(37, 31, 26, .78);--soft-text: rgba(255, 238, 199, .74);--hud-bg: rgba(18, 15, 13, .62);--overlay-bg: rgba(0, 0, 0, .48);--modal-bg: rgba(67, 56, 45, .98);--shadow-color: rgba(0, 0, 0, .32);--theme-vignette-strong: rgba(0, 0, 0, .5);--theme-vignette-soft: rgba(181, 143, 44, .14);--theme-focus-bg: rgba(181, 143, 44, .24);--theme-hover-tint: rgba(181, 143, 44, .22);--theme-row-border: rgba(181, 143, 44, .42);--theme-empty-health: rgba(255, 238, 199, .24);--theme-preview-border: rgba(255, 238, 199, .28);--theme-pace-border: rgba(255, 238, 199, .16);--theme-broken-bg: rgba(226, 96, 83, .16);--theme-broken-border: rgba(226, 96, 83, .66);--theme-danger-zone-bg: rgba(157, 69, 57, .42);--theme-danger-zone-line: rgb(226, 96, 83);--app-paper-overlay: rgba(92, 63, 33, .12);--app-paper-blend: multiply;--app-paper-size: 320px 320px;--coin-float-color: rgb(255, 206, 96);--coin-float-highlight: rgba(26, 6, 0, .55);--coin-float-shade: rgba(0, 0, 0, .45);--coin-float-glow: rgba(255, 196, 64, .35)}.app-shell[data-theme=theme-pixel]{--control-radius: calc(2px * var(--ui-scale));--border-width: 3px;--bg-dark: rgb(239, 217, 160);--bg: rgb(255, 235, 178);--bg-light: rgb(255, 247, 205);--surface: rgb(255, 250, 229);--text: rgb(24, 6, 0);--text-muted: rgb(61, 46, 0);--border: rgb(98, 76, 0);--border-muted: rgb(150, 117, 15);--panel-bg: rgb(255, 241, 188);--panel-header-bg: rgb(255, 248, 220);--hover-bg: rgb(255, 250, 229);--preview-bg: rgba(215, 196, 140, .82);--hud-bg: rgba(98, 76, 0, .35);--modal-bg: rgba(255, 247, 205, .98);--theme-vignette-strong: rgba(24, 6, 0, .28);--theme-vignette-soft: rgba(98, 76, 0, .2);--range-track-height: calc(14px * var(--ui-scale));--range-thumb-size: calc(34px * var(--ui-scale));--range-track-bg: rgb(215, 196, 140);--shadow-color: rgb(98, 76, 0);--app-paper-overlay: transparent;--app-paper-blend: normal;--pixel-texture: url(../textures/pixel-surface.svg);--pixel-texture-ui: url(../textures/pixel-ui.svg);--pixel-texture-panel: url(../textures/pixel-panel.svg);--pixel-texture-size: calc(80px * var(--ui-scale));--pixel-ui-wash: linear-gradient(rgb(255 247 205 / .9), rgb(255 247 205 / .9));--pixel-panel-wash: linear-gradient(rgb(255 241 188 / .92), rgb(255 241 188 / .92));background-color:var(--bg);background-image:var(--pixel-texture);background-size:var(--pixel-texture-size) var(--pixel-texture-size);image-rendering:pixelated}.app-shell[data-theme=theme-terminal]{--bg-dark: rgb(12, 12, 12);--bg: rgb(18, 18, 18);--bg-light: rgb(32, 32, 32);--surface: rgb(40, 40, 40);--text: rgb(238, 238, 238);--text-muted: rgb(186, 186, 186);--border: rgb(184, 184, 184);--border-muted: rgb(102, 102, 102);--primary: rgb(238, 238, 238);--danger: rgb(255, 95, 95);--warning: rgb(232, 221, 128);--success: rgb(168, 255, 168);--info: rgb(168, 204, 255);--panel-bg: rgba(28, 28, 28, .94);--panel-header-bg: rgba(46, 46, 46, .92);--hover-bg: rgb(46, 46, 46);--preview-bg: rgba(8, 8, 8, .78);--soft-text: rgba(238, 238, 238, .78);--hud-bg: rgba(0, 0, 0, .68);--overlay-bg: rgba(0, 0, 0, .56);--modal-bg: rgba(28, 28, 28, .98);--shadow-color: rgba(255, 255, 255, .12);--control-radius: calc(3px * var(--ui-scale));--theme-vignette-strong: rgba(0, 0, 0, .72);--theme-vignette-soft: rgba(255, 255, 255, .08);--theme-focus-bg: rgba(238, 238, 238, .16);--theme-hover-tint: rgba(238, 238, 238, .14);--theme-row-border: rgba(184, 184, 184, .42);--theme-empty-health: rgba(238, 238, 238, .22);--theme-preview-border: rgba(238, 238, 238, .28);--theme-pace-border: rgba(238, 238, 238, .18);--theme-broken-bg: rgba(255, 95, 95, .14);--theme-broken-border: rgba(255, 95, 95, .68);--theme-danger-zone-bg: rgba(255, 95, 95, .34);--theme-danger-zone-line: rgb(255, 95, 95);--app-paper-overlay: transparent;--app-paper-blend: normal;background:linear-gradient(180deg,#080808,#121212);background-repeat:no-repeat}.app-shell[data-theme=theme-matrix]{--bg-dark: rgb(0, 12, 5);--bg: rgb(0, 18, 8);--bg-light: rgb(3, 35, 16);--surface: rgb(5, 48, 22);--text: rgb(180, 255, 193);--text-muted: rgb(92, 196, 111);--border: rgb(0, 210, 74);--border-muted: rgb(0, 114, 44);--primary: rgb(180, 255, 193);--danger: rgb(255, 76, 76);--warning: rgb(190, 255, 94);--success: rgb(0, 255, 115);--info: rgb(99, 236, 135);--panel-bg: rgba(0, 24, 10, .94);--panel-header-bg: rgba(0, 44, 18, .9);--hover-bg: rgb(0, 50, 20);--preview-bg: rgba(0, 8, 3, .82);--soft-text: rgba(180, 255, 193, .78);--hud-bg: rgba(0, 8, 3, .72);--overlay-bg: rgba(0, 0, 0, .62);--modal-bg: rgba(0, 24, 10, .98);--shadow-color: rgba(0, 255, 115, .18);--control-radius: calc(5px * var(--ui-scale));--theme-vignette-strong: rgba(0, 0, 0, .8);--theme-vignette-soft: rgba(0, 255, 115, .14);--theme-focus-bg: rgba(0, 255, 115, .22);--theme-hover-tint: rgba(0, 255, 115, .18);--theme-row-border: rgba(0, 210, 74, .42);--theme-empty-health: rgba(180, 255, 193, .22);--theme-preview-border: rgba(180, 255, 193, .28);--theme-pace-border: rgba(180, 255, 193, .18);--theme-broken-bg: rgba(255, 76, 76, .14);--theme-broken-border: rgba(255, 76, 76, .66);--theme-danger-zone-bg: rgba(255, 76, 76, .3);--theme-danger-zone-line: rgb(255, 76, 76);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 50% 0%,rgba(0,255,115,.06),transparent 42%),linear-gradient(180deg,#000803,#001208);background-repeat:no-repeat}.app-shell[data-theme=theme-blueprint]{--bg-dark: rgb(9, 32, 52);--bg: rgb(12, 45, 72);--bg-light: rgb(29, 72, 105);--surface: rgb(38, 84, 118);--text: rgb(228, 247, 255);--text-muted: rgb(159, 212, 236);--border: rgb(116, 212, 246);--border-muted: rgb(62, 139, 178);--primary: rgb(228, 247, 255);--danger: rgb(255, 102, 112);--warning: rgb(255, 214, 105);--success: rgb(100, 235, 184);--info: rgb(116, 212, 246);--panel-bg: rgba(21, 62, 94, .92);--panel-header-bg: rgba(42, 90, 124, .9);--hover-bg: rgb(40, 86, 120);--preview-bg: rgba(6, 25, 43, .72);--soft-text: rgba(228, 247, 255, .78);--hud-bg: rgba(4, 20, 35, .68);--overlay-bg: rgba(1, 10, 18, .6);--modal-bg: rgba(16, 52, 80, .98);--shadow-color: rgba(116, 212, 246, .16);--control-radius: calc(5px * var(--ui-scale));--theme-vignette-strong: rgba(0, 0, 0, .48);--theme-vignette-soft: rgba(116, 212, 246, .12);--theme-focus-bg: rgba(116, 212, 246, .22);--theme-hover-tint: rgba(116, 212, 246, .16);--theme-row-border: rgba(116, 212, 246, .36);--theme-empty-health: rgba(228, 247, 255, .2);--theme-preview-border: rgba(116, 212, 246, .42);--theme-pace-border: rgba(116, 212, 246, .2);--theme-broken-bg: rgba(255, 102, 112, .14);--theme-broken-border: rgba(255, 102, 112, .68);--theme-danger-zone-bg: rgba(255, 102, 112, .28);--theme-danger-zone-line: rgb(255, 102, 112);background:linear-gradient(rgba(116,212,246,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(116,212,246,.08) 1px,transparent 1px),var(--bg);background-size:calc(36px * var(--ui-scale)) calc(36px * var(--ui-scale))}.app-shell[data-theme=theme-paper-ink]{--bg-dark: rgb(232, 223, 202);--bg: rgb(248, 241, 222);--bg-light: rgb(255, 251, 239);--surface: rgb(255, 251, 239);--text: rgb(31, 20, 15);--text-muted: rgb(93, 74, 60);--border: rgb(56, 38, 29);--border-muted: rgb(128, 102, 79);--primary: rgb(31, 20, 15);--danger: rgb(151, 42, 39);--warning: rgb(159, 109, 25);--success: rgb(44, 125, 82);--info: rgb(49, 97, 132);--panel-bg: rgba(255, 251, 239, .9);--panel-header-bg: rgba(244, 234, 211, .9);--hover-bg: rgb(244, 234, 211);--preview-bg: rgba(223, 211, 187, .66);--soft-text: rgba(31, 20, 15, .74);--hud-bg: rgba(86, 68, 49, .28);--modal-bg: rgba(255, 251, 239, .98);--shadow-color: rgba(56, 38, 29, .16);--theme-vignette-strong: rgba(56, 38, 29, .18);--theme-vignette-soft: rgba(146, 38, 35, .08);--theme-focus-bg: rgba(146, 38, 35, .16);--theme-hover-tint: rgba(146, 38, 35, .12);--theme-row-border: rgba(56, 38, 29, .28);--theme-empty-health: rgba(31, 20, 15, .18);--theme-preview-border: rgba(31, 20, 15, .26);--theme-pace-border: rgba(31, 20, 15, .12);--theme-broken-bg: rgba(151, 42, 39, .12);--theme-broken-border: rgba(151, 42, 39, .62);--theme-danger-zone-bg: rgba(151, 42, 39, .34);--theme-danger-zone-line: rgb(151, 42, 39);background:radial-gradient(circle at 18% 14%,rgba(56,38,29,.06),transparent 26%),radial-gradient(circle at 84% 78%,rgba(146,38,35,.05),transparent 28%),linear-gradient(0deg,rgba(56,38,29,.05) 1px,transparent 1px),var(--bg);background-size:auto,auto,100% calc(28px * var(--ui-scale)),auto}.app-shell[data-theme=theme-neon-arcade]{--bg-dark: rgb(8, 10, 30);--bg: rgb(10, 12, 38);--bg-light: rgb(28, 31, 70);--surface: rgb(35, 37, 82);--text: rgb(245, 252, 255);--text-muted: rgb(176, 193, 214);--border: rgb(0, 225, 255);--border-muted: rgb(126, 54, 183);--primary: rgb(245, 252, 255);--danger: rgb(255, 70, 92);--warning: rgb(255, 224, 72);--success: rgb(34, 245, 178);--info: rgb(0, 225, 255);--panel-bg: rgba(22, 24, 62, .94);--panel-header-bg: rgba(36, 38, 88, .9);--hover-bg: rgb(45, 48, 108);--preview-bg: rgba(6, 8, 27, .78);--soft-text: rgba(245, 252, 255, .78);--hud-bg: rgba(0, 0, 0, .7);--overlay-bg: rgba(0, 0, 0, .62);--modal-bg: rgba(22, 24, 62, .98);--shadow-color: rgba(255, 70, 192, .2);--theme-vignette-strong: rgba(0, 0, 0, .62);--theme-vignette-soft: rgba(0, 225, 255, .12);--theme-focus-bg: rgba(255, 70, 192, .24);--theme-hover-tint: rgba(0, 225, 255, .18);--theme-row-border: rgba(0, 225, 255, .34);--theme-empty-health: rgba(245, 252, 255, .22);--theme-preview-border: rgba(0, 225, 255, .38);--theme-pace-border: rgba(255, 70, 192, .22);--theme-broken-bg: rgba(255, 70, 92, .14);--theme-broken-border: rgba(255, 70, 92, .7);--theme-danger-zone-bg: rgba(255, 70, 92, .32);--theme-danger-zone-line: rgb(255, 70, 92);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 18% 12%,rgba(0,225,255,.14),transparent 38%),radial-gradient(circle at 84% 16%,rgba(255,70,192,.11),transparent 34%),linear-gradient(165deg,#050616,#0a0c26);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-e-ink]{--bg-dark: rgb(224, 224, 218);--bg: rgb(242, 242, 236);--bg-light: rgb(252, 252, 248);--surface: rgb(252, 252, 248);--text: rgb(10, 10, 10);--text-muted: rgb(70, 70, 66);--border: rgb(10, 10, 10);--border-muted: rgb(120, 120, 112);--primary: rgb(10, 10, 10);--danger: rgb(138, 34, 34);--warning: rgb(96, 96, 88);--success: rgb(28, 98, 68);--info: rgb(54, 54, 54);--panel-bg: rgba(252, 252, 248, .92);--panel-header-bg: rgba(232, 232, 224, .92);--hover-bg: rgb(232, 232, 224);--preview-bg: rgba(210, 210, 202, .66);--soft-text: rgba(10, 10, 10, .74);--hud-bg: rgba(10, 10, 10, .14);--modal-bg: rgba(252, 252, 248, .98);--shadow-color: rgba(10, 10, 10, .14);--control-radius: calc(4px * var(--ui-scale));--theme-vignette-strong: rgba(10, 10, 10, .12);--theme-vignette-soft: rgba(10, 10, 10, .06);--theme-focus-bg: rgba(10, 10, 10, .13);--theme-hover-tint: rgba(10, 10, 10, .1);--theme-row-border: rgba(10, 10, 10, .3);--theme-empty-health: rgba(10, 10, 10, .2);--theme-preview-border: rgba(10, 10, 10, .28);--theme-pace-border: rgba(10, 10, 10, .14);--theme-broken-bg: rgba(138, 34, 34, .1);--theme-broken-border: rgba(138, 34, 34, .62);--theme-danger-zone-bg: rgba(138, 34, 34, .26);--theme-danger-zone-line: rgb(138, 34, 34);background:linear-gradient(rgba(10,10,10,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.035) 1px,transparent 1px),var(--bg);background-size:100% calc(18px * var(--ui-scale)),calc(18px * var(--ui-scale)) 100%,auto}.app-shell[data-theme=theme-old-lcd]{--bg-dark: rgb(156, 170, 132);--bg: rgb(188, 200, 164);--bg-light: rgb(214, 224, 198);--surface: rgb(222, 232, 208);--text: rgb(16, 34, 20);--text-muted: rgb(48, 68, 44);--border: rgb(36, 62, 38);--border-muted: rgb(82, 104, 78);--primary: rgb(16, 34, 20);--danger: rgb(132, 44, 34);--warning: rgb(98, 82, 24);--success: rgb(18, 84, 50);--info: rgb(44, 76, 76);--panel-bg: rgba(226, 236, 212, .96);--panel-header-bg: rgba(206, 220, 184, .96);--hover-bg: rgb(198, 212, 176);--preview-bg: rgba(132, 150, 116, .52);--soft-text: rgba(16, 34, 20, .74);--hud-bg: rgba(36, 62, 38, .22);--modal-bg: rgba(226, 236, 212, .98);--shadow-color: rgba(36, 62, 38, .22);--control-radius: calc(6px * var(--ui-scale));--theme-vignette-strong: rgba(16, 34, 20, .14);--theme-vignette-soft: rgba(36, 62, 38, .08);--theme-focus-bg: rgba(36, 62, 38, .18);--theme-hover-tint: rgba(36, 62, 38, .14);--theme-row-border: rgba(36, 62, 38, .32);--theme-empty-health: rgba(16, 34, 20, .2);--theme-preview-border: rgba(16, 34, 20, .28);--theme-pace-border: rgba(16, 34, 20, .14);--theme-broken-bg: rgba(132, 44, 34, .14);--theme-broken-border: rgba(132, 44, 34, .64);--theme-danger-zone-bg: rgba(132, 44, 34, .32);--theme-danger-zone-line: rgb(132, 44, 34);--app-paper-overlay: transparent;--app-paper-blend: normal;background:linear-gradient(rgba(16,34,20,.07) 1px,transparent 1px),radial-gradient(circle at 50% 14%,rgba(255,255,228,.28),transparent 58%),linear-gradient(180deg,#b0be9a,#c6d2b0);background-repeat:repeat,no-repeat,no-repeat;background-size:100% calc(6px * var(--ui-scale)),auto,auto}.app-shell[data-theme=theme-amber-terminal]{--bg-dark: rgb(24, 13, 3);--bg: rgb(32, 17, 4);--bg-light: rgb(52, 29, 8);--surface: rgb(62, 35, 10);--text: rgb(255, 188, 75);--text-muted: rgb(205, 136, 45);--border: rgb(255, 164, 42);--border-muted: rgb(125, 77, 24);--primary: rgb(255, 188, 75);--danger: rgb(255, 86, 65);--warning: rgb(255, 218, 95);--success: rgb(180, 231, 93);--info: rgb(255, 191, 98);--panel-bg: rgba(38, 20, 5, .94);--panel-header-bg: rgba(60, 34, 10, .9);--hover-bg: rgb(74, 43, 13);--preview-bg: rgba(8, 4, 0, .78);--soft-text: rgba(255, 188, 75, .76);--hud-bg: rgba(8, 4, 0, .7);--overlay-bg: rgba(0, 0, 0, .58);--modal-bg: rgba(38, 20, 5, .98);--shadow-color: rgba(255, 164, 42, .16);--control-radius: calc(3px * var(--ui-scale));--theme-vignette-strong: rgba(0, 0, 0, .66);--theme-vignette-soft: rgba(255, 164, 42, .12);--theme-focus-bg: rgba(255, 164, 42, .22);--theme-hover-tint: rgba(255, 164, 42, .18);--theme-row-border: rgba(255, 164, 42, .34);--theme-empty-health: rgba(255, 188, 75, .2);--theme-preview-border: rgba(255, 164, 42, .36);--theme-pace-border: rgba(255, 164, 42, .18);--theme-broken-bg: rgba(255, 86, 65, .14);--theme-broken-border: rgba(255, 86, 65, .68);--theme-danger-zone-bg: rgba(255, 86, 65, .3);--theme-danger-zone-line: rgb(255, 86, 65);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 50% 0%,rgba(255,164,42,.08),transparent 40%),linear-gradient(180deg,#0c0600,#201104);background-repeat:no-repeat}.app-shell[data-theme=theme-notebook]{--bg-dark: rgb(230, 236, 246);--bg: rgb(249, 250, 244);--bg-light: rgb(255, 255, 250);--surface: rgb(255, 255, 250);--text: rgb(25, 31, 45);--text-muted: rgb(72, 82, 101);--border: rgb(38, 92, 162);--border-muted: rgb(132, 157, 194);--primary: rgb(25, 31, 45);--danger: rgb(194, 55, 67);--warning: rgb(170, 116, 28);--success: rgb(34, 132, 87);--info: rgb(38, 92, 162);--panel-bg: rgba(255, 255, 250, .9);--panel-header-bg: rgba(235, 243, 255, .92);--hover-bg: rgb(235, 243, 255);--preview-bg: rgba(220, 230, 246, .68);--soft-text: rgba(25, 31, 45, .74);--hud-bg: rgba(38, 92, 162, .18);--modal-bg: rgba(255, 255, 250, .98);--shadow-color: rgba(38, 92, 162, .16);--theme-vignette-strong: rgba(25, 31, 45, .12);--theme-vignette-soft: rgba(194, 55, 67, .08);--theme-focus-bg: rgba(194, 55, 67, .14);--theme-hover-tint: rgba(38, 92, 162, .12);--theme-row-border: rgba(38, 92, 162, .28);--theme-empty-health: rgba(25, 31, 45, .18);--theme-preview-border: rgba(38, 92, 162, .26);--theme-pace-border: rgba(38, 92, 162, .14);--theme-broken-bg: rgba(194, 55, 67, .12);--theme-broken-border: rgba(194, 55, 67, .62);--theme-danger-zone-bg: rgba(194, 55, 67, .28);--theme-danger-zone-line: rgb(194, 55, 67);background:linear-gradient(90deg,transparent calc(42px * var(--ui-scale)),rgba(194,55,67,.22) calc(42px * var(--ui-scale)),rgba(194,55,67,.22) calc(44px * var(--ui-scale)),transparent calc(44px * var(--ui-scale))),linear-gradient(rgba(38,92,162,.12) 1px,transparent 1px),var(--bg);background-size:auto,100% calc(32px * var(--ui-scale)),auto}.app-shell[data-theme=theme-synthwave-minimal]{--bg-dark: rgb(18, 15, 30);--bg: rgb(24, 20, 38);--bg-light: rgb(49, 45, 62);--surface: rgb(58, 54, 74);--text: rgb(255, 238, 224);--text-muted: rgb(209, 185, 194);--border: rgb(255, 126, 87);--border-muted: rgb(118, 91, 126);--primary: rgb(255, 238, 224);--danger: rgb(255, 91, 114);--warning: rgb(255, 183, 83);--success: rgb(100, 232, 173);--info: rgb(86, 217, 255);--panel-bg: rgba(42, 38, 54, .92);--panel-header-bg: rgba(58, 54, 74, .9);--hover-bg: rgb(66, 61, 86);--preview-bg: rgba(15, 14, 24, .74);--soft-text: rgba(255, 238, 224, .76);--hud-bg: rgba(13, 12, 20, .7);--overlay-bg: rgba(0, 0, 0, .54);--modal-bg: rgba(42, 38, 54, .98);--shadow-color: rgba(86, 217, 255, .16);--theme-vignette-strong: rgba(0, 0, 0, .58);--theme-vignette-soft: rgba(255, 126, 87, .1);--theme-focus-bg: rgba(86, 217, 255, .2);--theme-hover-tint: rgba(255, 126, 87, .16);--theme-row-border: rgba(255, 126, 87, .28);--theme-empty-health: rgba(255, 238, 224, .2);--theme-preview-border: rgba(255, 126, 87, .3);--theme-pace-border: rgba(86, 217, 255, .18);--theme-broken-bg: rgba(255, 91, 114, .14);--theme-broken-border: rgba(255, 91, 114, .66);--theme-danger-zone-bg: rgba(255, 91, 114, .3);--theme-danger-zone-line: rgb(255, 91, 114);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 20% 18%,rgba(86,217,255,.1),transparent 36%),radial-gradient(circle at 84% 10%,rgba(255,126,87,.09),transparent 32%),linear-gradient(180deg,#0c0a16,#181426);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-high-contrast]{--bg-dark: rgb(0, 0, 0);--bg: rgb(0, 0, 0);--bg-light: rgb(18, 18, 18);--surface: rgb(24, 24, 24);--text: rgb(255, 255, 255);--text-muted: rgb(218, 218, 218);--border: rgb(255, 255, 255);--border-muted: rgb(128, 128, 128);--primary: rgb(255, 255, 255);--danger: rgb(255, 64, 64);--warning: rgb(255, 222, 0);--success: rgb(0, 255, 128);--info: rgb(0, 210, 255);--panel-bg: rgba(0, 0, 0, .94);--panel-header-bg: rgba(24, 24, 24, .94);--hover-bg: rgb(38, 38, 38);--preview-bg: rgba(24, 24, 24, .84);--soft-text: rgba(255, 255, 255, .82);--hud-bg: rgba(255, 255, 255, .12);--overlay-bg: rgba(0, 0, 0, .72);--modal-bg: rgba(0, 0, 0, .98);--shadow-color: rgba(255, 222, 0, .24);--control-radius: calc(4px * var(--ui-scale));--theme-vignette-strong: rgba(0, 0, 0, 0);--theme-vignette-soft: rgba(255, 222, 0, .08);--theme-focus-bg: rgba(255, 222, 0, .26);--theme-hover-tint: rgba(255, 222, 0, .2);--theme-row-border: rgba(255, 255, 255, .42);--theme-empty-health: rgba(255, 255, 255, .28);--theme-preview-border: rgba(255, 255, 255, .36);--theme-pace-border: rgba(255, 255, 255, .24);--theme-broken-bg: rgba(255, 64, 64, .2);--theme-broken-border: rgba(255, 64, 64, .82);--theme-danger-zone-bg: rgba(255, 64, 64, .38);--theme-danger-zone-line: rgb(255, 64, 64);--app-paper-overlay: transparent;--app-paper-blend: normal;--coin-float-color: rgb(255, 222, 0);--coin-float-highlight: rgba(0, 0, 0, .75);--coin-float-shade: rgba(0, 0, 0, .55);--coin-float-glow: rgba(255, 222, 0, .28);background:#000;background-repeat:no-repeat}.app-shell[data-theme=theme-candy]{--bg-dark: rgb(246, 221, 233);--bg: rgb(255, 238, 246);--bg-light: rgb(255, 250, 252);--surface: rgb(255, 250, 252);--text: rgb(47, 29, 43);--text-muted: rgb(104, 76, 99);--border: rgb(202, 95, 142);--border-muted: rgb(168, 125, 164);--primary: rgb(47, 29, 43);--danger: rgb(210, 75, 95);--warning: rgb(214, 155, 48);--success: rgb(78, 174, 130);--info: rgb(80, 166, 206);--panel-bg: rgba(255, 250, 252, .9);--panel-header-bg: rgba(255, 229, 242, .92);--hover-bg: rgb(246, 232, 251);--preview-bg: rgba(228, 212, 246, .62);--soft-text: rgba(47, 29, 43, .74);--hud-bg: rgba(202, 95, 142, .2);--modal-bg: rgba(255, 250, 252, .98);--shadow-color: rgba(202, 95, 142, .18);--control-radius: calc(14px * var(--ui-scale));--theme-vignette-strong: rgba(47, 29, 43, .12);--theme-vignette-soft: rgba(80, 166, 206, .1);--theme-focus-bg: rgba(80, 166, 206, .18);--theme-hover-tint: rgba(202, 95, 142, .14);--theme-row-border: rgba(202, 95, 142, .28);--theme-empty-health: rgba(47, 29, 43, .18);--theme-preview-border: rgba(202, 95, 142, .26);--theme-pace-border: rgba(80, 166, 206, .14);--theme-broken-bg: rgba(210, 75, 95, .12);--theme-broken-border: rgba(210, 75, 95, .62);--theme-danger-zone-bg: rgba(210, 75, 95, .28);--theme-danger-zone-line: rgb(210, 75, 95);background:radial-gradient(circle,rgba(80,166,206,.16) 0 2px,transparent 3px) 0 0 / calc(26px * var(--ui-scale)) calc(26px * var(--ui-scale)),radial-gradient(circle,rgba(202,95,142,.12) 0 2px,transparent 3px) calc(13px * var(--ui-scale)) calc(13px * var(--ui-scale)) / calc(26px * var(--ui-scale)) calc(26px * var(--ui-scale)),var(--bg)}.app-shell[data-theme=theme-solarized-dark]{--bg-dark: rgb(0, 32, 40);--bg: rgb(0, 43, 54);--bg-light: rgb(11, 59, 69);--surface: rgb(23, 72, 81);--text: rgb(147, 161, 161);--text-muted: rgb(101, 123, 129);--border: rgb(42, 161, 152);--border-muted: rgb(42, 103, 105);--primary: rgb(147, 161, 161);--danger: rgb(220, 50, 47);--warning: rgb(181, 137, 0);--success: rgb(133, 153, 0);--info: rgb(38, 139, 210);--panel-bg: rgba(7, 54, 66, .94);--panel-header-bg: rgba(11, 59, 69, .92);--hover-bg: rgb(23, 72, 81);--preview-bg: rgba(0, 20, 26, .78);--soft-text: rgba(147, 161, 161, .78);--hud-bg: rgba(0, 20, 26, .66);--overlay-bg: rgba(0, 0, 0, .55);--modal-bg: rgba(7, 54, 66, .98);--shadow-color: rgba(42, 161, 152, .18);--theme-vignette-strong: rgba(0, 0, 0, .55);--theme-vignette-soft: rgba(42, 161, 152, .1);--theme-focus-bg: rgba(38, 139, 210, .22);--theme-hover-tint: rgba(42, 161, 152, .14);--theme-row-border: rgba(42, 161, 152, .32);--theme-empty-health: rgba(147, 161, 161, .22);--theme-preview-border: rgba(42, 161, 152, .32);--theme-pace-border: rgba(38, 139, 210, .2);--theme-broken-bg: rgba(220, 50, 47, .14);--theme-broken-border: rgba(220, 50, 47, .66);--theme-danger-zone-bg: rgba(220, 50, 47, .34);--theme-danger-zone-line: rgb(220, 50, 47);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 20% 16%,rgba(42,161,152,.1),transparent 36%),linear-gradient(180deg,#001e26,#002b36);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-ocean]{--bg-dark: rgb(3, 14, 28);--bg: rgb(6, 20, 38);--bg-light: rgb(13, 34, 58);--surface: rgb(20, 44, 70);--text: rgb(214, 236, 255);--text-muted: rgb(140, 175, 205);--border: rgb(76, 201, 240);--border-muted: rgb(45, 90, 130);--primary: rgb(214, 236, 255);--danger: rgb(255, 107, 107);--warning: rgb(255, 200, 87);--success: rgb(110, 231, 170);--info: rgb(76, 201, 240);--panel-bg: rgba(6, 20, 38, .94);--panel-header-bg: rgba(13, 34, 58, .92);--hover-bg: rgb(28, 56, 86);--preview-bg: rgba(2, 8, 18, .78);--soft-text: rgba(214, 236, 255, .78);--hud-bg: rgba(2, 8, 18, .68);--overlay-bg: rgba(0, 0, 0, .55);--modal-bg: rgba(6, 20, 38, .98);--shadow-color: rgba(76, 201, 240, .18);--theme-vignette-strong: rgba(0, 0, 0, .58);--theme-vignette-soft: rgba(76, 201, 240, .1);--theme-focus-bg: rgba(76, 201, 240, .22);--theme-hover-tint: rgba(76, 201, 240, .14);--theme-row-border: rgba(76, 201, 240, .3);--theme-empty-health: rgba(214, 236, 255, .2);--theme-preview-border: rgba(76, 201, 240, .32);--theme-pace-border: rgba(76, 201, 240, .2);--theme-broken-bg: rgba(255, 107, 107, .14);--theme-broken-border: rgba(255, 107, 107, .66);--theme-danger-zone-bg: rgba(255, 107, 107, .32);--theme-danger-zone-line: rgb(255, 107, 107);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 22% 18%,rgba(76,201,240,.12),transparent 36%),radial-gradient(circle at 84% 12%,rgba(67,97,238,.14),transparent 32%),linear-gradient(180deg,#030c1a,#061426);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-taiga]{--bg-dark: rgb(8, 20, 14);--bg: rgb(13, 28, 19);--bg-light: rgb(26, 46, 32);--surface: rgb(34, 58, 40);--text: rgb(222, 240, 220);--text-muted: rgb(150, 185, 155);--border: rgb(158, 201, 120);--border-muted: rgb(70, 95, 72);--primary: rgb(222, 240, 220);--danger: rgb(230, 110, 90);--warning: rgb(230, 190, 100);--success: rgb(140, 220, 130);--info: rgb(140, 200, 220);--panel-bg: rgba(13, 28, 19, .94);--panel-header-bg: rgba(26, 46, 32, .92);--hover-bg: rgb(38, 62, 44);--preview-bg: rgba(5, 12, 8, .78);--soft-text: rgba(222, 240, 220, .78);--hud-bg: rgba(5, 12, 8, .68);--overlay-bg: rgba(0, 0, 0, .55);--modal-bg: rgba(13, 28, 19, .98);--shadow-color: rgba(158, 201, 120, .16);--theme-vignette-strong: rgba(0, 0, 0, .58);--theme-vignette-soft: rgba(158, 201, 120, .1);--theme-focus-bg: rgba(140, 200, 220, .22);--theme-hover-tint: rgba(158, 201, 120, .14);--theme-row-border: rgba(158, 201, 120, .3);--theme-empty-health: rgba(222, 240, 220, .2);--theme-preview-border: rgba(158, 201, 120, .32);--theme-pace-border: rgba(140, 200, 220, .2);--theme-broken-bg: rgba(230, 110, 90, .14);--theme-broken-border: rgba(230, 110, 90, .66);--theme-danger-zone-bg: rgba(230, 110, 90, .32);--theme-danger-zone-line: rgb(230, 110, 90);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 20% 16%,rgba(158,201,120,.1),transparent 36%),linear-gradient(180deg,#07110b,#0d1c13);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-kraft]{--bg-dark: rgb(178, 146, 100);--bg: rgb(201, 168, 118);--bg-light: rgb(220, 190, 142);--surface: rgb(230, 204, 160);--text: rgb(58, 42, 24);--text-muted: rgb(110, 84, 52);--border: rgb(122, 84, 40);--border-muted: rgb(150, 116, 70);--primary: rgb(58, 42, 24);--danger: rgb(170, 60, 40);--warning: rgb(140, 110, 20);--success: rgb(60, 140, 80);--info: rgb(50, 110, 150);--panel-bg: rgba(226, 198, 150, .92);--panel-header-bg: rgba(230, 204, 160, .92);--hover-bg: rgb(232, 208, 166);--preview-bg: rgba(178, 146, 100, .7);--soft-text: rgba(58, 42, 24, .74);--hud-bg: rgba(122, 84, 40, .3);--overlay-bg: rgba(58, 42, 24, .34);--modal-bg: rgba(226, 198, 150, .98);--shadow-color: rgba(122, 84, 40, .24);--theme-vignette-strong: rgba(58, 42, 24, .22);--theme-vignette-soft: rgba(122, 84, 40, .16);--theme-focus-bg: rgba(50, 110, 150, .2);--theme-hover-tint: rgba(122, 84, 40, .16);--theme-row-border: rgba(122, 84, 40, .42);--theme-empty-health: rgba(58, 42, 24, .2);--theme-preview-border: rgba(122, 84, 40, .4);--theme-pace-border: rgba(58, 42, 24, .2);--theme-broken-bg: rgba(170, 60, 40, .12);--theme-broken-border: rgba(170, 60, 40, .62);--theme-danger-zone-bg: rgba(170, 60, 40, .3);--theme-danger-zone-line: rgb(170, 60, 40);background:radial-gradient(circle at 20% 14%,rgba(255,244,224,.28),transparent 34%),linear-gradient(135deg,#d6b684,#be9c6c);background-repeat:no-repeat;background-size:auto}.app-shell[data-theme=theme-dracula]{--bg-dark: rgb(28, 30, 40);--bg: rgb(40, 42, 54);--bg-light: rgb(52, 54, 74);--surface: rgb(68, 71, 90);--text: rgb(248, 248, 242);--text-muted: rgb(160, 166, 200);--border: rgb(189, 147, 249);--border-muted: rgb(98, 114, 164);--primary: rgb(248, 248, 242);--danger: rgb(255, 85, 85);--warning: rgb(241, 250, 140);--success: rgb(80, 250, 123);--info: rgb(139, 233, 253);--panel-bg: rgba(40, 42, 54, .94);--panel-header-bg: rgba(52, 54, 74, .92);--hover-bg: rgb(68, 71, 90);--preview-bg: rgba(20, 21, 30, .8);--soft-text: rgba(248, 248, 242, .78);--hud-bg: rgba(15, 16, 24, .7);--overlay-bg: rgba(0, 0, 0, .55);--modal-bg: rgba(40, 42, 54, .98);--shadow-color: rgba(189, 147, 249, .2);--theme-vignette-strong: rgba(0, 0, 0, .58);--theme-vignette-soft: rgba(189, 147, 249, .12);--theme-focus-bg: rgba(139, 233, 253, .22);--theme-hover-tint: rgba(189, 147, 249, .16);--theme-row-border: rgba(189, 147, 249, .3);--theme-empty-health: rgba(248, 248, 242, .2);--theme-preview-border: rgba(189, 147, 249, .32);--theme-pace-border: rgba(139, 233, 253, .2);--theme-broken-bg: rgba(255, 85, 85, .14);--theme-broken-border: rgba(255, 85, 85, .66);--theme-danger-zone-bg: rgba(255, 85, 85, .32);--theme-danger-zone-line: rgb(255, 85, 85);--app-paper-overlay: transparent;--app-paper-blend: normal;background:radial-gradient(circle at 22% 18%,rgba(189,147,249,.12),transparent 36%),radial-gradient(circle at 84% 12%,rgba(255,121,198,.1),transparent 32%),linear-gradient(180deg,#1e202a,#282a36);background-repeat:no-repeat;background-size:auto}.app-shell{--ui-scale: 1;--font-visual-scale: 1;--font-safe-line-height: 1.24;--font-inline-overhang: .08em;--shell-border: 4px;--border-width: 2px;--app-edge: calc(22px * var(--ui-scale));--header-height: calc(54px * var(--ui-scale));--icon-button-size: calc(66px * var(--ui-scale));--icon-button-height: calc(42px * var(--ui-scale));--control-height: calc(58px * var(--ui-scale));--control-radius: calc(8px * var(--ui-scale));--control-x: calc(14px * var(--ui-scale));--font-title: calc(64px * var(--ui-scale) * var(--font-visual-scale));--font-control: calc(28px * var(--ui-scale) * var(--font-visual-scale));--font-label: calc(28px * var(--ui-scale) * var(--font-visual-scale));--font-panel-title: calc(30px * var(--ui-scale) * var(--font-visual-scale));--mode-card-height: calc(58px * var(--ui-scale));--bottom-hud-height: calc(78px * var(--ui-scale));--visual-keyboard-band: 0px;--touch-keyboard-height-vh: 0;--touch-keyboard-bottom-space: calc(var(--touch-keyboard-height-vh) * 1vh);--touch-key-size-scale: 1;--safe-area-bottom: max(env(safe-area-inset-bottom, 0px), env(safe-area-max-inset-bottom, 0px));--coin-float-vk-band: 0px;--coin-float-color: rgb(214, 168, 42);--coin-float-highlight: rgba(255, 252, 236, .88);--coin-float-shade: rgba(90, 62, 8, .22);--coin-float-glow: rgba(230, 186, 64, .28);--panel-bg: rgba(255, 241, 204, .84);--panel-header-bg: rgba(255, 252, 244, .72);--hover-bg: rgb(255, 252, 244);--preview-bg: rgba(217, 212, 195, .75);--soft-text: rgba(26, 6, 0, .72);--hud-bg: rgba(148, 141, 103, .55);--overlay-bg: rgba(26, 6, 0, .28);--modal-bg: rgba(255, 246, 224, .97);--shadow-color: rgba(157, 123, 11, .24);--theme-vignette-strong: rgba(26, 6, 0, .26);--theme-vignette-soft: rgba(157, 123, 11, .18);--theme-focus-bg: rgba(157, 123, 11, .2);--theme-hover-tint: rgba(157, 123, 11, .16);--theme-row-border: rgba(157, 123, 11, .42);--theme-empty-health: rgba(26, 6, 0, .2);--theme-preview-border: rgba(26, 6, 0, .28);--theme-pace-border: rgba(26, 6, 0, .14);--theme-broken-bg: rgba(157, 69, 57, .12);--theme-broken-border: rgba(157, 69, 57, .62);--theme-danger-zone-bg: rgba(255, 112, 82, .58);--theme-danger-zone-line: rgb(255, 83, 71);--range-track-height: calc(10px * var(--ui-scale));--range-thumb-size: calc(30px * var(--ui-scale));--range-track-bg: rgba(217, 212, 195, .75);--range-thumb-bg: var(--border);--range-thumb-border: var(--border);--game-keyboard-inset: var(--keyboard-inset-bottom, 0px);--app-paper-overlay: rgba(255, 248, 238, .22);--app-paper-blend: multiply;--app-paper-size: calc(320px * var(--ui-scale)) calc(320px * var(--ui-scale));--app-paper-repeat: repeat;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100dvh;min-height:0;overflow:hidden;background:linear-gradient(var(--app-paper-overlay),var(--app-paper-overlay)),var(--page-paper-texture),linear-gradient(var(--bg),var(--bg));background-repeat:repeat,var(--app-paper-repeat),no-repeat;background-size:auto,var(--app-paper-size),auto;background-position:0 0,center,0 0;background-blend-mode:normal,var(--app-paper-blend),normal;border-left:var(--shell-border) solid var(--text);border-right:var(--shell-border) solid var(--text);font-kerning:none;font-synthesis:none;font-variant-ligatures:none;transform:translateY(var(--app-viewport-offset-top, 0));overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app-shell--scrollable{touch-action:auto}.app-shell[data-mobile-effects=reduced]{--app-paper-overlay: transparent;--app-paper-blend: normal;--theme-vignette-strong: transparent;--theme-vignette-soft: transparent;background:var(--bg);background-image:none}.app-shell[data-mobile-effects=reduced]:before,.app-shell[data-mobile-effects=reduced]:after{display:none}.app-shell[data-mobile-effects=reduced] *,.app-shell[data-mobile-effects=reduced] *:before,.app-shell[data-mobile-effects=reduced] *:after{animation:none!important;background-image:none!important;box-shadow:none!important;filter:none!important;text-shadow:none!important;transition:none!important}.app-shell[data-mobile-effects=reduced] .fall-word.is-exiting{transition:opacity .42s ease,filter .42s ease!important;filter:saturate(1.25)!important}.app-shell[data-mobile-effects=reduced] .typing-target.is-success{box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 24%,transparent)!important}.app-shell[data-mobile-effects=reduced] .specials-card--correct .specials-card__char,.app-shell[data-mobile-effects=reduced] .specials-card--wrong .specials-card__char{transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease!important}.app-shell[data-mobile-effects=reduced] .specials-card--correct .specials-card__char{border-color:var(--success)!important;background:color-mix(in srgb,var(--success) 12%,var(--preview-bg) 88%)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 24%,transparent)!important;color:var(--success)!important}.app-shell[data-mobile-effects=reduced] .specials-card--wrong .specials-card__char{border-color:var(--danger)!important;background:#9d45391f!important;color:var(--danger)!important}.app-shell[data-font=font-standard]{--font-visual-scale: 1;--font-ui: "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-pixel]{--font-visual-scale: 1.1;--font-ui: "Overwriter Tiny5", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Tiny5", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-comic]{--font-visual-scale: .98;--font-ui: "Overwriter Comic", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Comic", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-soft]{--font-visual-scale: 1.02;--font-ui: "Overwriter Soft", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Soft", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-caveat]{--font-visual-scale: 1.16;--font-inline-overhang: .34em;--font-ui: "Overwriter Caveat", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Caveat", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-comforter]{--font-visual-scale: 1.12;--font-inline-overhang: .38em;--font-ui: "Overwriter Comforter", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Comforter", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-great-vibes]{--font-visual-scale: 1.18;--font-inline-overhang: .42em;--font-ui: "Overwriter Great Vibes", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Great Vibes", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-pacifico]{--font-visual-scale: .95;--font-inline-overhang: .28em;--font-ui: "Overwriter Pacifico", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Pacifico", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-shantell-sans]{--font-visual-scale: 1.03;--font-ui: "Overwriter Shantell Sans", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Shantell Sans", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-tektur]{--font-visual-scale: 1.03;--font-ui: "Overwriter Tektur", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Tektur", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-kelly-slab]{--font-visual-scale: 1.02;--font-ui: "Overwriter Kelly Slab", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Kelly Slab", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-underdog]{--font-visual-scale: 1.03;--font-ui: "Overwriter Underdog", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Underdog", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-golos]{--font-ui: "Overwriter Golos Text", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Golos Text", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-literata]{--font-visual-scale: 1.02;--font-ui: "Overwriter Literata", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Literata", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-jetbrains]{--font-ui: "Overwriter JetBrains Mono", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter JetBrains Mono", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-unbounded]{--font-visual-scale: .92;--font-ui: "Overwriter Unbounded", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Unbounded", "Overwriter Noto Sans Mono", monospace}.app-shell[data-font=font-pangolin]{--font-visual-scale: 1.06;--font-ui: "Overwriter Pangolin", "Overwriter Noto Sans Mono", monospace;--font-mono: "Overwriter Pangolin", "Overwriter Noto Sans Mono", monospace}.app-shell[data-theme=theme-pixel] .ui-button,.app-shell[data-theme=theme-terminal] .ui-button,.app-shell[data-theme=theme-matrix] .ui-button,.app-shell[data-theme=theme-pixel] .app-select__button,.app-shell[data-theme=theme-terminal] .app-select__button,.app-shell[data-theme=theme-matrix] .app-select__button,.app-shell[data-theme=theme-pixel] .app-select__menu,.app-shell[data-theme=theme-terminal] .app-select__menu,.app-shell[data-theme=theme-matrix] .app-select__menu,.app-shell[data-theme=theme-pixel] .app-multiselect__button,.app-shell[data-theme=theme-terminal] .app-multiselect__button,.app-shell[data-theme=theme-matrix] .app-multiselect__button,.app-shell[data-theme=theme-pixel] .app-multiselect__menu,.app-shell[data-theme=theme-terminal] .app-multiselect__menu,.app-shell[data-theme=theme-matrix] .app-multiselect__menu,.app-shell[data-theme=theme-pixel] .shop-card,.app-shell[data-theme=theme-terminal] .shop-card,.app-shell[data-theme=theme-matrix] .shop-card,.app-shell[data-theme=theme-pixel] .ui-panel,.app-shell[data-theme=theme-terminal] .ui-panel,.app-shell[data-theme=theme-matrix] .ui-panel,.app-shell[data-theme=theme-pixel] .settings-group,.app-shell[data-theme=theme-terminal] .settings-group,.app-shell[data-theme=theme-matrix] .settings-group,.app-shell[data-theme=theme-pixel] .typing-card,.app-shell[data-theme=theme-terminal] .typing-card,.app-shell[data-theme=theme-matrix] .typing-card,.app-shell[data-theme=theme-pixel] .typing-target,.app-shell[data-theme=theme-terminal] .typing-target,.app-shell[data-theme=theme-matrix] .typing-target,.app-shell[data-theme=theme-pixel] .level-card,.app-shell[data-theme=theme-terminal] .level-card,.app-shell[data-theme=theme-matrix] .level-card,.app-shell[data-theme=theme-pixel] .result-modal,.app-shell[data-theme=theme-terminal] .result-modal,.app-shell[data-theme=theme-matrix] .result-modal,.app-shell[data-theme=theme-pixel] .bottom-hud__panel{border-radius:var(--control-radius)}.app-shell[data-theme=theme-pixel] .ui-button,.app-shell[data-theme=theme-pixel] .app-select__button,.app-shell[data-theme=theme-pixel] .app-select__menu,.app-shell[data-theme=theme-pixel] .app-multiselect__button,.app-shell[data-theme=theme-pixel] .app-multiselect__menu,.app-shell[data-theme=theme-pixel] .shop-card,.app-shell[data-theme=theme-pixel] .ui-panel,.app-shell[data-theme=theme-pixel] .settings-group,.app-shell[data-theme=theme-pixel] .typing-card,.app-shell[data-theme=theme-pixel] .typing-target,.app-shell[data-theme=theme-pixel] .level-card,.app-shell[data-theme=theme-pixel] .result-modal,.app-shell[data-theme=theme-pixel] .bottom-hud__panel,.app-shell[data-theme=theme-pixel] .range-line output,.app-shell[data-theme=theme-pixel] .shop-tab,.app-shell[data-theme=theme-pixel] .visual-keyboard{border-radius:var(--control-radius)}.app-shell[data-theme=theme-pixel] .ui-panel h2,.app-shell[data-theme=theme-pixel] .settings-group h2,.app-shell[data-theme=theme-pixel] .ui-panel__header{border-radius:var(--control-radius) var(--control-radius) 0 0;background-color:var(--panel-header-bg);background-image:linear-gradient(#fff8dcf0,#fff8dcf0),var(--pixel-texture-panel);background-size:auto,var(--pixel-texture-size) var(--pixel-texture-size);image-rendering:pixelated}.app-shell[data-theme=theme-pixel] .app-select__menu,.app-shell[data-theme=theme-pixel] .app-multiselect__menu{box-shadow:0 calc(8px * var(--ui-scale)) 0 var(--shadow-color)}.app-shell[data-theme=theme-pixel] .app-select.is-drop-up .app-select__menu,.app-shell[data-theme=theme-pixel] .app-multiselect.is-drop-up .app-multiselect__menu{box-shadow:0 calc(-8px * var(--ui-scale)) 0 var(--shadow-color)}.app-shell[data-theme=theme-pixel] .bottom-hud__cell--bank{border-left-width:var(--border-width)}.app-shell[data-theme=theme-pixel] .ui-button,.app-shell[data-theme=theme-pixel] .mode-card,.app-shell[data-theme=theme-pixel] .shop-tab,.app-shell[data-theme=theme-pixel] .shop-subtab,.app-shell[data-theme=theme-pixel] .app-select__button,.app-shell[data-theme=theme-pixel] .app-multiselect__button{box-shadow:calc(4px * var(--ui-scale)) calc(4px * var(--ui-scale)) 0 var(--border)}.app-shell[data-theme=theme-pixel] .ui-button:active,.app-shell[data-theme=theme-pixel] .mode-card:active,.app-shell[data-theme=theme-pixel] .shop-tab:active,.app-shell[data-theme=theme-pixel] .shop-subtab:active,.app-shell[data-theme=theme-pixel] .app-select__button:active,.app-shell[data-theme=theme-pixel] .app-multiselect__button:active{box-shadow:calc(2px * var(--ui-scale)) calc(2px * var(--ui-scale)) 0 var(--border);transform:translate(calc(2px * var(--ui-scale)),calc(2px * var(--ui-scale)))}.app-shell[data-theme=theme-pixel] .ui-button:disabled,.app-shell[data-theme=theme-pixel] .shop-tab:disabled{box-shadow:calc(2px * var(--ui-scale)) calc(2px * var(--ui-scale)) 0 var(--border);transform:none}.app-shell[data-theme=theme-pixel] .ui-button,.app-shell[data-theme=theme-pixel] .mode-card,.app-shell[data-theme=theme-pixel] .shop-tab,.app-shell[data-theme=theme-pixel] .shop-subtab,.app-shell[data-theme=theme-pixel] .app-select__button,.app-shell[data-theme=theme-pixel] .app-multiselect__button,.app-shell[data-theme=theme-pixel] .app-select__menu,.app-shell[data-theme=theme-pixel] .app-multiselect__menu,.app-shell[data-theme=theme-pixel] .setup-score,.app-shell[data-theme=theme-pixel] .scorebar__item,.app-shell[data-theme=theme-pixel] .result-stat,.app-shell[data-theme=theme-pixel] .keyboard-key,.app-shell[data-theme=theme-pixel] .visual-keyboard__key,.app-shell[data-theme=theme-pixel] .bottom-hud__panel,.app-shell[data-theme=theme-pixel] .screen-header{background-color:var(--bg-light);background-image:var(--pixel-ui-wash),var(--pixel-texture-ui);background-size:auto,var(--pixel-texture-size) var(--pixel-texture-size);image-rendering:pixelated}.app-shell[data-theme=theme-pixel] .shop-card,.app-shell[data-theme=theme-pixel] .ui-panel,.app-shell[data-theme=theme-pixel] .settings-group,.app-shell[data-theme=theme-pixel] .typing-card,.app-shell[data-theme=theme-pixel] .typing-target,.app-shell[data-theme=theme-pixel] .level-card,.app-shell[data-theme=theme-pixel] .result-modal,.app-shell[data-theme=theme-pixel] .mode-intro-card,.app-shell[data-theme=theme-pixel] .fall-word{background-color:var(--panel-bg);background-image:var(--pixel-panel-wash),var(--pixel-texture-panel);background-size:auto,var(--pixel-texture-size) var(--pixel-texture-size);image-rendering:pixelated}.app-shell[data-theme=theme-pixel] .ui-button:hover,.app-shell[data-theme=theme-pixel] .mode-card:hover,.app-shell[data-theme=theme-pixel] .shop-tab:hover,.app-shell[data-theme=theme-pixel] .shop-subtab:hover{background-color:var(--hover-bg);background-image:linear-gradient(#fffae5e6,#fffae5e6),var(--pixel-texture-ui)}.app-shell[data-theme=theme-pixel] .shop-tab.is-active,.app-shell[data-theme=theme-pixel] .shop-tab.is-active:hover,.app-shell[data-theme=theme-pixel] .shop-subtab.is-active,.app-shell[data-theme=theme-pixel] .shop-subtab.is-active:hover{background-color:var(--text);background-image:none;color:var(--bg-light)}.app-shell[data-theme=theme-pixel] .shop-card,.app-shell[data-theme=theme-pixel] .ui-panel,.app-shell[data-theme=theme-pixel] .settings-group,.app-shell[data-theme=theme-pixel] .typing-card,.app-shell[data-theme=theme-pixel] .level-card,.app-shell[data-theme=theme-pixel] .result-modal,.app-shell[data-theme=theme-pixel] .mode-intro-card,.app-shell[data-theme=theme-pixel] .fall-word{box-shadow:calc(4px * var(--ui-scale)) calc(4px * var(--ui-scale)) 0 var(--border)}.app-shell[data-theme=theme-terminal] .ui-panel h2,.app-shell[data-theme=theme-terminal] .settings-group h2,.app-shell[data-theme=theme-terminal] .ui-panel__header,.app-shell[data-theme=theme-matrix] .ui-panel h2,.app-shell[data-theme=theme-matrix] .settings-group h2,.app-shell[data-theme=theme-matrix] .ui-panel__header,.app-shell[data-theme=theme-blueprint] .ui-panel h2,.app-shell[data-theme=theme-blueprint] .settings-group h2,.app-shell[data-theme=theme-blueprint] .ui-panel__header,.app-shell[data-theme=theme-neon-arcade] .ui-panel h2,.app-shell[data-theme=theme-neon-arcade] .settings-group h2,.app-shell[data-theme=theme-neon-arcade] .ui-panel__header,.app-shell[data-theme=theme-e-ink] .ui-panel h2,.app-shell[data-theme=theme-e-ink] .settings-group h2,.app-shell[data-theme=theme-e-ink] .ui-panel__header,.app-shell[data-theme=theme-old-lcd] .ui-panel h2,.app-shell[data-theme=theme-old-lcd] .settings-group h2,.app-shell[data-theme=theme-old-lcd] .ui-panel__header,.app-shell[data-theme=theme-amber-terminal] .ui-panel h2,.app-shell[data-theme=theme-amber-terminal] .settings-group h2,.app-shell[data-theme=theme-amber-terminal] .ui-panel__header,.app-shell[data-theme=theme-synthwave-minimal] .ui-panel h2,.app-shell[data-theme=theme-synthwave-minimal] .settings-group h2,.app-shell[data-theme=theme-synthwave-minimal] .ui-panel__header,.app-shell[data-theme=theme-high-contrast] .ui-panel h2,.app-shell[data-theme=theme-high-contrast] .settings-group h2,.app-shell[data-theme=theme-high-contrast] .ui-panel__header,.app-shell[data-theme=theme-candy] .ui-panel h2,.app-shell[data-theme=theme-candy] .settings-group h2,.app-shell[data-theme=theme-candy] .ui-panel__header{border-radius:var(--control-radius) var(--control-radius) 0 0}body:has(.app-shell[data-theme=theme-dark]),html:has(.app-shell[data-theme=theme-dark]){background:linear-gradient(135deg,#1a1612f0,#322a23db),url(../dots.png)}body:has(.app-shell[data-theme=theme-terminal]),html:has(.app-shell[data-theme=theme-terminal]){background:#000}body:has(.app-shell[data-theme=theme-matrix]),html:has(.app-shell[data-theme=theme-matrix]){background:linear-gradient(180deg,#000a04,#000)}body:has(.app-shell[data-theme=theme-pixel]),html:has(.app-shell[data-theme=theme-pixel]){background-color:#6f5b21;background-image:url(../textures/pixel-earth.svg);background-size:80px 80px;image-rendering:pixelated}body:has(.app-shell[data-theme=theme-blueprint]),html:has(.app-shell[data-theme=theme-blueprint]){background:linear-gradient(rgba(116,212,246,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(116,212,246,.1) 1px,transparent 1px),#05121f;background-size:36px 36px}body:has(.app-shell[data-theme=theme-paper-ink]),html:has(.app-shell[data-theme=theme-paper-ink]){background:radial-gradient(circle at 18% 12%,rgba(56,38,29,.1),transparent 28%),radial-gradient(circle at 78% 74%,rgba(146,38,35,.08),transparent 26%),linear-gradient(0deg,rgba(56,38,29,.06) 1px,transparent 1px),#e8dfca;background-size:auto,auto,100% 30px,auto}body:has(.app-shell[data-theme=theme-neon-arcade]),html:has(.app-shell[data-theme=theme-neon-arcade]){background:radial-gradient(circle at 18% 12%,rgba(0,225,255,.16),transparent 32%),radial-gradient(circle at 82% 18%,rgba(255,70,192,.14),transparent 30%),#050616}body:has(.app-shell[data-theme=theme-e-ink]),html:has(.app-shell[data-theme=theme-e-ink]){background:linear-gradient(rgba(10,10,10,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.04) 1px,transparent 1px),#e0e0da;background-size:100% 18px,18px 100%,auto}body:has(.app-shell[data-theme=theme-old-lcd]),html:has(.app-shell[data-theme=theme-old-lcd]){background:linear-gradient(rgba(16,34,20,.08) 1px,transparent 1px),linear-gradient(180deg,#94a27e,#bcc8a4);background-size:100% 6px,auto}body:has(.app-shell[data-theme=theme-amber-terminal]),html:has(.app-shell[data-theme=theme-amber-terminal]){background:#080400}body:has(.app-shell[data-theme=theme-notebook]),html:has(.app-shell[data-theme=theme-notebook]){background:linear-gradient(90deg,transparent 40px,rgba(194,55,67,.22) 40px,rgba(194,55,67,.22) 42px,transparent 42px),linear-gradient(rgba(38,92,162,.13) 1px,transparent 1px),#e6ecf6;background-size:auto,100% 32px,auto}body:has(.app-shell[data-theme=theme-synthwave-minimal]),html:has(.app-shell[data-theme=theme-synthwave-minimal]){background:radial-gradient(circle at 22% 20%,rgba(86,217,255,.12),transparent 34%),radial-gradient(circle at 82% 8%,rgba(255,126,87,.12),transparent 34%),#0a0812}body:has(.app-shell[data-theme=theme-high-contrast]),html:has(.app-shell[data-theme=theme-high-contrast]){background:#000}body:has(.app-shell[data-theme=theme-candy]),html:has(.app-shell[data-theme=theme-candy]){background:radial-gradient(circle,rgba(80,166,206,.2) 0 2px,transparent 3px) 0 0 / 28px 28px,radial-gradient(circle,rgba(202,95,142,.16) 0 2px,transparent 3px) 14px 14px / 28px 28px,#f6dde9}body:has(.app-shell[data-theme=theme-solarized-dark]),html:has(.app-shell[data-theme=theme-solarized-dark]){background:linear-gradient(180deg,#001a22,#002b36)}body:has(.app-shell[data-theme=theme-ocean]),html:has(.app-shell[data-theme=theme-ocean]){background:radial-gradient(circle at 22% 18%,rgba(76,201,240,.12),transparent 36%),radial-gradient(circle at 84% 12%,rgba(67,97,238,.14),transparent 32%),#040f1e}body:has(.app-shell[data-theme=theme-taiga]),html:has(.app-shell[data-theme=theme-taiga]){background:radial-gradient(circle at 20% 16%,rgba(158,201,120,.1),transparent 36%),#08140e}body:has(.app-shell[data-theme=theme-kraft]),html:has(.app-shell[data-theme=theme-kraft]){background:linear-gradient(135deg,#d6b684,#be9c6c)}body:has(.app-shell[data-theme=theme-dracula]),html:has(.app-shell[data-theme=theme-dracula]){background:radial-gradient(circle at 22% 18%,rgba(189,147,249,.12),transparent 36%),radial-gradient(circle at 84% 12%,rgba(255,121,198,.1),transparent 32%),#1e202a}.app-shell:before,.app-shell:after{content:"";position:absolute;z-index:10;inset:0;pointer-events:none}.app-shell:before{box-shadow:inset 0 0 calc(30px * var(--ui-scale)) calc(8px * var(--ui-scale)) var(--theme-vignette-strong)}.app-shell:after{box-shadow:inset 0 0 calc(10px * var(--ui-scale)) calc(2px * var(--ui-scale)) var(--theme-vignette-soft)}.menu-corners{position:absolute;z-index:5;top:var(--app-edge);right:var(--app-edge);left:var(--app-edge);display:flex;justify-content:space-between;pointer-events:none}.menu-corners .ui-button{pointer-events:auto}.menu-corners__start{display:flex;gap:calc(8px * var(--ui-scale));pointer-events:none}.screen-header{display:grid;grid-template-columns:var(--icon-button-size) minmax(0,1fr) var(--icon-button-size);align-items:center;gap:calc(12px * var(--ui-scale));min-height:var(--header-height);padding:calc(5px * var(--ui-scale)) calc(14px * var(--ui-scale)) calc(5px * var(--ui-scale)) calc(10px * var(--ui-scale));border-bottom:4px solid var(--border);background:var(--bg-light)}.screen-header--with-accessory{grid-template-columns:var(--icon-button-size) minmax(0,1fr) minmax(min-content,max-content)}.screen-header h1{min-width:0;margin:-.16em 0;overflow:hidden;padding:.16em 0;color:var(--text);font-family:var(--font-mono);font-size:calc(36px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);text-align:left;text-overflow:clip;white-space:nowrap}.header-spacer{width:1px;height:1px}.header-accessory{display:flex;align-items:center;justify-content:flex-end;min-width:0}.header-actions{display:flex;align-items:center;gap:calc(4px * var(--ui-scale))}.header-accessory:has(.header-wallet){flex-shrink:0;min-width:max-content}.header-health{display:flex;align-items:center;gap:calc(7px * var(--ui-scale));height:var(--icon-button-height);overflow:hidden;color:var(--danger);font-family:var(--font-mono);font-size:min(calc(44px * var(--ui-scale) * var(--font-visual-scale)),calc(var(--icon-button-height) * .88));font-weight:900;line-height:1;white-space:nowrap}.header-health span{display:grid;width:.72em;height:1em;place-items:center;line-height:1}.health-heart-icon{display:block;width:.72em;height:.72em;fill:currentColor}.header-health .is-empty{color:var(--theme-empty-health)}.currency-amount,.currency-symbol{font-variant-numeric:tabular-nums}.currency-symbol{padding:0 5px}.header-wallet{display:block;flex-shrink:0;color:var(--text);font-family:var(--font-mono);font-size:calc(30px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;font-variant-numeric:tabular-nums;line-height:var(--font-safe-line-height);text-align:right;white-space:nowrap}.stage{min-height:0;overflow:auto;padding:var(--app-edge) var(--app-edge) calc(var(--app-edge) + 4px + var(--safe-area-bottom))}.stage--scrollable{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:auto}.stage--menu{grid-row:1 / -1;display:grid;overflow:hidden;padding:0 var(--app-edge)}.stage--game{position:relative;overflow:hidden;padding:0}.ui-button{display:inline-grid;align-items:center;justify-content:center;min-height:var(--control-height);border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:var(--font-control);font-weight:900;letter-spacing:0;line-height:var(--font-safe-line-height);padding:0 var(--control-x);text-align:center;box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color);transition:box-shadow .12s ease,background .12s ease}.ui-button:hover{background:var(--hover-bg)}.ui-button:disabled{cursor:wait;opacity:.68;box-shadow:0 calc(2px * var(--ui-scale)) 0 var(--shadow-color)}.ui-button:disabled:hover{background:var(--bg-light)}.ui-button:active{box-shadow:0 calc(2px * var(--ui-scale)) 0 var(--shadow-color)}.ui-button:focus-visible,input:focus-visible,.app-select__button:focus-visible,.app-select__option:focus-visible{outline:3px solid rgba(56,99,168,.38);outline-offset:2px}.ui-button--icon{display:grid;width:var(--icon-button-size);height:var(--icon-button-height);min-width:var(--icon-button-size);min-height:var(--icon-button-height);padding:0;place-items:center;line-height:1}.ui-button--icon svg{display:block;width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale))}.shop-currency-icon{display:block;font-family:var(--font-mono);font-size:calc(30px * var(--ui-scale));font-weight:900;line-height:1}.ui-button--ghost{min-height:var(--control-height);padding:0 var(--control-x)}.menu-screen{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;align-items:center;padding:calc(var(--app-edge) + var(--icon-button-height) + 8px) 0 var(--app-edge)}.menu-screen:after{content:"";flex:1 1 0;min-height:0}.menu-screen__title-zone{display:flex;flex:1 1 0;align-items:center;justify-content:center;width:100%;min-height:0}.menu-screen .main-title{width:min(100%,660px);padding-inline:calc(12px * var(--ui-scale));transform-origin:center center;animation:main-title-pulse 3.4s ease-in-out infinite}.main-title{max-width:100%;margin:0;padding:0;color:var(--text);font-family:var(--font-mono);font-size:clamp(calc(24px * var(--ui-scale) * var(--font-visual-scale)),min(8.2vw,8vh),var(--font-title));font-weight:900;line-height:.94;text-align:center;white-space:nowrap}@keyframes main-title-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.mode-list{display:grid;width:min(100%,620px);justify-items:center;gap:calc(10px * var(--ui-scale))}.mode-card{display:inline-grid;min-height:var(--mode-card-height);width:auto;max-width:100%;padding:0 calc(18px * var(--ui-scale));place-items:center;text-align:center}.mode-card__title{display:block;width:max-content;margin:-.16em 0;overflow:visible;padding:.16em var(--font-inline-overhang);font-size:calc(30px * var(--ui-scale) * var(--font-visual-scale));line-height:var(--font-safe-line-height);white-space:nowrap}.demo-tour-button{position:fixed;right:calc(16px * var(--ui-scale));bottom:calc(16px * var(--ui-scale));z-index:30;margin:0;min-height:calc(34px * var(--ui-scale));padding:0 calc(12px * var(--ui-scale));font-size:calc(13px * var(--ui-scale));letter-spacing:.12em;opacity:.55}.demo-tour-button[data-tour-active]{opacity:1}.mode-intro-card{display:grid;gap:calc(10px * var(--ui-scale));border:2px solid var(--border);border-radius:9px;padding:calc(18px * var(--ui-scale)) calc(16px * var(--ui-scale));background:var(--panel-bg)}.mode-intro-card p{margin:0;font-family:var(--font-mono)}.mode-intro-card p{color:var(--text);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1.3}.mode-intro-card__note{color:var(--soft-text);padding-top:calc(8px * var(--ui-scale));border-top:1px solid var(--border-muted)}.mode-intro-card__setting{padding-top:calc(4px * var(--ui-scale));border-top:1px solid var(--border-muted)}.async-state-card{display:grid;gap:calc(14px * var(--ui-scale));width:min(100%,560px);justify-items:center;margin:0 auto;border:2px solid var(--border);border-radius:9px;padding:calc(22px * var(--ui-scale)) calc(18px * var(--ui-scale));background:var(--panel-bg);text-align:center}.async-state-card--compact{width:100%;gap:calc(10px * var(--ui-scale));padding:calc(14px * var(--ui-scale))}.async-state-card__spinner{display:inline-grid;grid-auto-flow:column;gap:calc(7px * var(--ui-scale))}.async-state-card__spinner span{width:calc(12px * var(--ui-scale));height:calc(12px * var(--ui-scale));border-radius:999px;background:var(--border);animation:async-state-pulse .9s ease-in-out infinite}.async-state-card__spinner span:nth-child(2){animation-delay:.12s}.async-state-card__spinner span:nth-child(3){animation-delay:.24s}.async-state-card__content{display:grid;gap:calc(8px * var(--ui-scale))}.async-state-card__content strong,.async-state-card__content p{margin:0;font-family:var(--font-mono)}.async-state-card__content strong{color:var(--text);font-size:calc(26px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1}.async-state-card--compact .async-state-card__content strong{font-size:calc(20px * var(--ui-scale) * var(--font-visual-scale))}.async-state-card__content p{color:var(--soft-text);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1.3}.async-state-card--compact .async-state-card__content p{font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale))}.async-state-card__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(10px * var(--ui-scale))}@keyframes async-state-pulse{0%,80%,to{opacity:.28;transform:scale(.88)}40%{opacity:1;transform:scale(1)}}.settings-screen,.setup-screen,.placeholder-screen,.fallwords-screen{width:min(100%,900px);margin:0 auto}.rhythm-input-capture{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.rhythm-game{display:grid;align-content:start;justify-items:center;width:min(100%,900px);min-height:100%;margin:0 auto;padding:calc(18px * var(--ui-scale)) 0}.rhythm-run{position:relative;display:flex;flex-direction:column;width:100%;min-height:calc(100% - var(--bottom-hud-height) - var(--visual-keyboard-band) - var(--game-keyboard-inset, 0px));max-height:calc(100% - var(--bottom-hud-height) - var(--visual-keyboard-band) - var(--game-keyboard-inset, 0px));overflow:hidden}.rhythm-run__offset{position:absolute;top:0;right:0;left:0;display:block;margin:0;padding:0 calc(12px * var(--ui-scale));text-align:center;color:var(--soft-text);font-family:var(--font-mono);font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1.25}.rhythm-run__offset .rhythm-beat{margin-right:calc(8px * var(--ui-scale));vertical-align:baseline}.rhythm-beat{display:inline-block;width:calc(12px * var(--ui-scale));height:calc(12px * var(--ui-scale));border-radius:50%;background:var(--success);animation:rhythm-beat-flash .5s ease-out}@keyframes rhythm-beat-flash{0%{opacity:1;transform:scale(1.4)}to{opacity:.35;transform:scale(1)}}.rhythm-line{position:relative;display:flex;flex:1 1 auto;align-items:center;align-self:stretch;width:100%;min-height:0;overflow:hidden;border:none;background:transparent;padding:clamp(calc(16px * var(--ui-scale)),4vw,calc(34px * var(--ui-scale)));font-family:var(--font-mono);font-size:clamp(calc(28px * var(--ui-scale) * var(--font-visual-scale)),5.6vw,calc(46px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1.25}.rhythm-center-guides,.overwriter-sprint-center-guides{position:absolute;inset:0;z-index:1;pointer-events:none}.rhythm-center-guide,.overwriter-sprint-center-guide{position:absolute;top:50%;left:50%;width:max(1px,calc(2px * var(--ui-scale)));height:calc(11px * var(--ui-scale));border-radius:calc(1px * var(--ui-scale));background:color-mix(in srgb,var(--text) 24%,transparent);opacity:.38}.rhythm-center-guide--top,.overwriter-sprint-center-guide--top{transform:translate(-50%,calc(-.72em - calc(10px * var(--ui-scale))))}.rhythm-center-guide--bottom,.overwriter-sprint-center-guide--bottom{transform:translate(-50%,calc(.72em - calc(1px * var(--ui-scale))))}.rhythm-track{position:relative;z-index:2;display:flex;flex-wrap:nowrap;align-items:baseline;width:max-content;will-change:transform;font-family:var(--font-mono);font-weight:900}.rhythm-word{display:flex;flex-wrap:nowrap;white-space:nowrap}.rhythm-char{display:inline-block;min-width:.62em;border-radius:4px;color:var(--soft-text);font-size:1em;line-height:1.25;text-align:center}.rhythm-char.is-typed{color:var(--text);opacity:.45}.rhythm-char.is-typed.is-zone-green{color:var(--success);opacity:1}.rhythm-char.is-typed.is-zone-yellow{color:var(--warning);opacity:1}.rhythm-char.is-typed.is-zone-red{color:var(--danger);opacity:1}.rhythm-char.is-current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text)}.rhythm-char.is-pending{color:var(--text)}.settings-screen{padding-bottom:var(--settings-bottom-spacer, 0px)}.game-screen{width:100%;margin:0}.game-screen--loading{display:grid;min-height:100%;align-content:center;padding:calc(18px * var(--ui-scale))}.settings-grid,.setup-screen{display:grid;gap:calc(18px * var(--ui-scale))}.overwriter-setup{align-content:start}.ui-panel,.settings-group{overflow:visible;border:2px solid var(--border);border-radius:9px;background:var(--panel-bg)}.ui-panel h2,.settings-group h2{border-radius:7px 7px 0 0;display:flex;align-items:center;gap:calc(8px * var(--ui-scale));margin:2px 2px 0;padding:calc(10px * var(--ui-scale)) calc(24px * var(--ui-scale));background:var(--panel-header-bg);color:var(--text);font-family:var(--font-mono);font-size:var(--font-panel-title);font-weight:900;line-height:1}.ui-panel__header{position:relative;z-index:4;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:calc(8px * var(--ui-scale));margin:2px 2px 0;padding:calc(10px * var(--ui-scale)) calc(24px * var(--ui-scale));border-radius:7px 7px 0 0;background:var(--panel-header-bg)}.ui-panel__header h2{margin:0;padding:0;background:transparent}.ui-panel__body,.settings-group__body{display:grid;gap:calc(16px * var(--ui-scale));padding:calc(18px * var(--ui-scale)) calc(14px * var(--ui-scale)) calc(14px * var(--ui-scale))}.control-row,.field{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,.7fr);align-items:center;gap:calc(12px * var(--ui-scale));min-height:var(--control-height)}.control-row span,.field span,.typing-card__label,.typing-input span{color:var(--text);font-family:var(--font-mono);font-size:var(--font-label);font-weight:900;line-height:1;text-align:left;text-transform:none}.app-select{position:relative;justify-self:end;width:max-content;min-width:0;max-width:100%}.language-row .app-select{width:100%;min-width:0}.app-select.is-disabled .app-select__button{grid-template-columns:minmax(0,1fr);cursor:default}.app-select__button{display:grid;grid-template-columns:minmax(0,1fr) calc(16px * var(--ui-scale));align-items:center;width:100%;max-width:100%;min-width:0;height:var(--control-height);border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:var(--font-control);font-weight:900;line-height:var(--font-safe-line-height);padding:0 calc(4px * var(--ui-scale)) 0 var(--control-x);text-align:left}.app-select__button span:first-child{display:block;min-width:0;margin:-.16em 0;overflow:hidden;padding:.16em 0;line-height:var(--font-safe-line-height);text-align:left;text-overflow:ellipsis;white-space:nowrap}.app-select__dots{display:grid;width:calc(16px * var(--ui-scale));height:100%;place-items:center;line-height:1;text-align:center}.app-select__menu{position:absolute;z-index:20;top:calc(100% + 6px);right:0;width:max-content;min-width:100%;max-width:min(82vw,460px);overflow:hidden;border:2px solid var(--border);border-radius:8px;background:var(--bg-light);box-shadow:0 8px 0 var(--shadow-color)}.app-select.is-drop-up .app-select__menu{top:auto;bottom:calc(100% + 6px);box-shadow:0 -8px 0 var(--shadow-color)}.app-select__option{display:grid;align-items:center;width:100%;white-space:nowrap;min-height:calc(50px * var(--ui-scale));border:0;border-bottom:1px solid var(--theme-row-border);background:transparent;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:calc(26px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);padding:0 calc(12px * var(--ui-scale));text-align:left}.app-select__option:last-child{border-bottom:0}.app-select__option:hover,.app-select__option.is-selected{background:var(--theme-hover-tint)}.level-filter-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.level-filter-actions__language .app-select__button{height:calc(40px * var(--ui-scale));min-width:calc(128px * var(--ui-scale));font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));padding:0 calc(4px * var(--ui-scale)) 0 calc(10px * var(--ui-scale))}.app-multiselect{position:relative}.app-multiselect__button{display:grid;grid-template-columns:minmax(0,max-content) calc(24px * var(--ui-scale));align-items:center;justify-content:start;column-gap:calc(12px * var(--ui-scale));min-width:0;height:calc(40px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);padding:0 calc(8px * var(--ui-scale)) 0 calc(10px * var(--ui-scale));text-align:left}.app-multiselect__button span{display:block;min-width:0;margin:-.16em 0;overflow:hidden;padding:.16em 0;line-height:var(--font-safe-line-height);text-align:left;text-overflow:ellipsis;white-space:nowrap}.app-multiselect__button strong{display:grid;width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));place-items:center;border-radius:50%;background:var(--border);color:var(--bg-light);font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale))}.app-multiselect__menu{position:absolute;z-index:30;top:calc(100% + 6px);right:0;display:grid;min-width:max(100%,calc(210px * var(--ui-scale)));max-width:calc(100vw - var(--app-edge) * 2);overflow:hidden;border:var(--border-width) solid var(--border);border-radius:8px;background:var(--bg-light);box-shadow:0 8px 0 var(--shadow-color);user-select:none;-webkit-user-select:none}.app-multiselect.is-align-start .app-multiselect__menu{right:auto;left:0}.app-multiselect.is-drop-up .app-multiselect__menu{top:auto;bottom:calc(100% + 6px);box-shadow:0 -8px 0 var(--shadow-color)}.app-multiselect__option{display:grid;grid-template-columns:calc(28px * var(--ui-scale)) minmax(0,1fr) auto;align-items:center;justify-items:start;column-gap:calc(8px * var(--ui-scale));min-height:calc(42px * var(--ui-scale));border:0;border-bottom:1px solid var(--theme-row-border);background:transparent;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);padding:0 calc(10px * var(--ui-scale));text-align:left}.app-multiselect__option:hover,.app-multiselect__option.is-selected{background:var(--theme-hover-tint)}.app-multiselect__check{color:var(--border);font-size:calc(20px * var(--ui-scale) * var(--font-visual-scale))}.app-multiselect__label{min-width:0}.app-multiselect__meta{color:var(--text-muted);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));justify-self:end}.app-multiselect__ok{justify-self:end;min-height:calc(36px * var(--ui-scale));margin:calc(8px * var(--ui-scale));padding:0 calc(14px * var(--ui-scale));font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale))}.range-line{display:grid;grid-template-columns:minmax(70px,1fr) calc(112px * var(--ui-scale));gap:calc(10px * var(--ui-scale));align-items:center;min-width:0}.range-label{display:flex;align-items:center;justify-content:space-between;gap:calc(12px * var(--ui-scale));min-width:0}.range-label>span{min-width:0}.field--muted .range-line input[type=range]{opacity:.45;cursor:not-allowed}.field--muted .range-line output{opacity:.45}.field input[type=range]{appearance:none;-webkit-appearance:none;min-width:0;width:100%;height:var(--range-thumb-size);margin:0;background:transparent;cursor:pointer}.field input[type=range]:focus,.field input[type=range]:focus-visible{outline:none;box-shadow:none}.field input[type=range]::-webkit-slider-runnable-track{height:var(--range-track-height);border:calc(1px * var(--ui-scale)) solid var(--border-muted);border-radius:var(--control-radius);background:var(--range-track-bg)}.field input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:var(--range-thumb-size);height:var(--range-thumb-size);margin-top:calc((var(--range-track-height) - var(--range-thumb-size)) / 2 - 1px * var(--ui-scale));border:var(--border-width) solid var(--range-thumb-border);border-radius:var(--control-radius);background:var(--range-thumb-bg);box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color)}.field input[type=range]::-moz-range-track{height:var(--range-track-height);border:calc(1px * var(--ui-scale)) solid var(--border-muted);border-radius:var(--control-radius);background:var(--range-track-bg)}.field input[type=range]::-moz-range-thumb{width:var(--range-thumb-size);height:var(--range-thumb-size);border:var(--border-width) solid var(--range-thumb-border);border-radius:var(--control-radius);background:var(--range-thumb-bg);box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color)}.app-shell[data-theme=theme-pixel] .field input[type=range]::-webkit-slider-runnable-track,.app-shell[data-theme=theme-pixel] .field input[type=range]::-webkit-slider-thumb,.app-shell[data-theme=theme-pixel] .field input[type=range]::-moz-range-track,.app-shell[data-theme=theme-pixel] .field input[type=range]::-moz-range-thumb{border:var(--border-width) solid var(--border);border-radius:var(--control-radius)}.app-shell[data-theme=theme-pixel] .field input[type=range]::-webkit-slider-thumb{box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color)}.app-shell[data-theme=theme-pixel] .field input[type=range]::-moz-range-thumb{box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color)}.range-line output{display:grid;box-sizing:border-box;height:calc(52px * var(--ui-scale));padding:0 calc(8px * var(--ui-scale));place-items:center;border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);font-family:var(--font-mono);font-size:calc(30px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;text-align:center}.round-toggle,.panel-radio{appearance:none;display:inline-grid;width:calc(34px * var(--ui-scale));height:calc(34px * var(--ui-scale));justify-self:end;place-items:center;border:2px solid var(--border);border-radius:50%;background:var(--bg-light)}.round-toggle:checked:after{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));border-radius:50%;background:var(--border);content:""}.curriculum-hands{display:flex;align-items:center;justify-content:flex-end;gap:calc(10px * var(--ui-scale))}.curriculum-hand-toggle{display:grid;width:calc(44px * var(--ui-scale));height:calc(44px * var(--ui-scale));place-items:center;padding:0;border:0;background:transparent;color:var(--primary);font:inherit;opacity:.28;cursor:pointer}.curriculum-hand-toggle.is-checked{opacity:1}.curriculum-hand-toggle__icon{width:calc(42px * var(--ui-scale));height:calc(42px * var(--ui-scale));display:block;background:currentColor;-webkit-mask-image:var(--curriculum-hand-icon);mask-image:var(--curriculum-hand-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.curriculum-hand-toggle--right .curriculum-hand-toggle__icon{transform:scaleX(-1)}.curriculum-hand-toggle:focus-visible{outline:var(--border-width) solid var(--border);outline-offset:calc(3px * var(--ui-scale))}.play-button{justify-self:center;min-height:calc(58px * var(--ui-scale));padding:0 calc(12px * var(--ui-scale));font-size:calc(34px * var(--ui-scale) * var(--font-visual-scale));font-weight:900}.setup-score{display:grid;gap:calc(8px * var(--ui-scale));justify-self:center;position:relative;margin:0;padding:0;color:var(--text);font-family:var(--font-mono);font-weight:900;line-height:1;text-align:center}.setup-score__button{display:grid;gap:calc(8px * var(--ui-scale));justify-items:center;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;line-height:1;text-align:center;padding:0 calc(8px * var(--ui-scale))}.setup-score__caret{font-size:.6em;vertical-align:middle}.setup-score span{font-size:calc(26px * var(--ui-scale) * var(--font-visual-scale));line-height:1}.setup-score strong{font-size:calc(40px * var(--ui-scale) * var(--font-visual-scale));line-height:1}.shop-screen{display:grid;width:min(100%,900px);margin:0 auto;gap:calc(14px * var(--ui-scale))}.ach-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:calc(18px * var(--ui-scale)) calc(10px * var(--ui-scale))}.ach-group--wide{grid-column:1 / -1}.ach-group h2,.ach-card__top h3{margin:0;color:var(--text);font-family:var(--font-mono);font-weight:900;line-height:1.1}.ach-group h2{font-size:calc(30px * var(--ui-scale) * var(--font-visual-scale))}.ach-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(10px * var(--ui-scale));margin-top:calc(8px * var(--ui-scale))}.ach-group--compact .ach-list{grid-template-columns:minmax(0,1fr)}@media(max-width:620px){.ach-groups{grid-template-columns:minmax(0,1fr)}.ach-group--wide{grid-column:auto}.ach-list{grid-template-columns:minmax(0,1fr)}}.ach-card{border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text)}.ach-card{display:grid;gap:calc(8px * var(--ui-scale));min-width:0;padding:calc(14px * var(--ui-scale)) calc(14px * var(--ui-scale))}.ach-card__top{display:flex;align-items:baseline;justify-content:space-between;gap:calc(12px * var(--ui-scale))}.ach-card__top h3{min-width:0;font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale))}.ach-card__top span{flex:0 0 auto;white-space:nowrap;color:var(--text);font-family:var(--font-mono);font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));font-weight:700}.ach-card p{color:var(--text-muted);font-family:var(--font-mono);font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));font-weight:700}.ach-card p{margin:0}.ach-card.is-unlocked .ach-card__bar{display:none}.ach-card__bar{position:relative;height:calc(18px * var(--ui-scale));overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 35%,var(--bg))}.ach-card__fill{position:absolute;top:0;bottom:0;left:0;background:var(--text)}.ach-card__tick{position:absolute;top:0;bottom:0;width:calc(3px * var(--ui-scale));background:var(--bg);transform:translate(-50%)}.stats-groups{display:grid;gap:calc(22px * var(--ui-scale))}.stats-group{overflow:hidden;border:2px solid var(--border);border-radius:9px;background:var(--panel-bg)}.stats-group h2{display:flex;align-items:center;margin:2px 2px 0;padding:calc(10px * var(--ui-scale)) calc(24px * var(--ui-scale));border-radius:7px 7px 0 0;background:var(--panel-header-bg);color:var(--text);font-family:var(--font-mono);font-size:var(--font-panel-title);font-weight:900;line-height:1}.stats-list{margin:0;padding:calc(10px * var(--ui-scale)) calc(14px * var(--ui-scale)) calc(8px * var(--ui-scale))}.stats-row{display:flex;align-items:baseline;justify-content:space-between;gap:calc(16px * var(--ui-scale));min-height:calc(42px * var(--ui-scale));padding:calc(7px * var(--ui-scale)) 0;border-bottom:var(--border-width) solid color-mix(in srgb,var(--border) 55%,transparent)}.stats-row:last-child{border-bottom-color:transparent}.stats-row dt,.stats-row dd{margin:0;color:var(--text);font-family:var(--font-mono);font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));font-weight:700;line-height:1.15}.stats-row dd{flex:0 0 auto;font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale));font-weight:900}.shop-tabs{display:flex;gap:calc(8px * var(--ui-scale));margin-inline:calc(-14px * var(--ui-scale));overflow-x:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch;padding:0 calc(14px * var(--ui-scale)) calc(4px * var(--ui-scale));scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 calc(18px * var(--ui-scale)),#000 calc(100% - 18px * var(--ui-scale)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 calc(18px * var(--ui-scale)),#000 calc(100% - 18px * var(--ui-scale)),transparent 100%)}.shop-tabs::-webkit-scrollbar{display:none}.shop-tab{flex:0 0 auto;min-height:calc(42px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:calc(20px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;padding:0 calc(12px * var(--ui-scale))}.shop-tab.is-active,.shop-tab.is-active:hover{background:var(--text);color:var(--bg-light)}.shop-subtabs{display:flex;gap:calc(8px * var(--ui-scale));margin-top:calc(-2px * var(--ui-scale));margin-inline:calc(-14px * var(--ui-scale));padding:0 calc(14px * var(--ui-scale)) calc(8px * var(--ui-scale));overflow-x:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch}.shop-subtab{flex:1 1 0;min-width:calc(132px * var(--ui-scale));min-height:calc(38px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:color-mix(in srgb,var(--bg-light) 88%,var(--text-muted));color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));font-weight:800;line-height:1.05;padding:0 calc(10px * var(--ui-scale))}.shop-subtab.is-active,.shop-subtab.is-active:hover{background:var(--text);color:var(--bg-light)}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:calc(12px * var(--ui-scale))}@media(max-width:620px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(8px * var(--ui-scale))}.shop-card{gap:calc(8px * var(--ui-scale));padding:calc(10px * var(--ui-scale))}.shop-card__body{gap:calc(6px * var(--ui-scale))}.shop-card h2{font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale))}.shop-card p{font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale))}.shop-card p.shop-card__preview{font-size:calc(18px * var(--ui-scale) * var(--shop-preview-scale, 1))}.shop-card__button{min-height:calc(42px * var(--ui-scale));font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale))}}.shop-grid--font-loading{pointer-events:none}.shop-card{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:calc(12px * var(--ui-scale));min-width:0;min-height:calc(190px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--panel-bg);padding:calc(14px * var(--ui-scale))}.shop-card--skeleton{overflow:hidden}.shop-skeleton-line{border-radius:calc(6px * var(--ui-scale));background:linear-gradient(90deg,color-mix(in srgb,var(--border-muted) 35%,transparent),color-mix(in srgb,var(--surface) 70%,var(--border-muted)) 45%,color-mix(in srgb,var(--border-muted) 35%,transparent));background-size:200% 100%;animation:shop-skeleton-shimmer 1.15s ease-in-out infinite}.shop-skeleton-line--title{width:58%;height:calc(26px * var(--ui-scale))}.shop-skeleton-line--body{width:100%;height:calc(16px * var(--ui-scale));margin-top:calc(4px * var(--ui-scale))}.shop-skeleton-line--short{width:72%}.shop-skeleton-line--button{width:100%;height:calc(44px * var(--ui-scale))}@keyframes shop-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.shop-card.is-equipped{box-shadow:inset 0 0 0 3px #24915a47}.shop-card__body{display:grid;align-content:start;gap:calc(8px * var(--ui-scale));min-width:0}.shop-card h2{margin:0;overflow-wrap:anywhere;color:var(--text);font-family:var(--font-mono);font-size:calc(26px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1}.shop-card p{margin:0;color:var(--soft-text);font-family:var(--font-mono);font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1.18}.shop-card p.shop-card__preview{font-size:calc(20px * var(--ui-scale) * var(--shop-preview-scale, 1));line-height:var(--shop-preview-line-height, 1.22)}.shop-card__meta{color:var(--soft-text);font-family:var(--font-mono);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height)}.shop-card__meta--warning{color:var(--danger)}.shop-card h2.shop-card__font-title{font-size:calc(28px * var(--ui-scale) * var(--shop-title-scale, var(--shop-preview-scale, 1)));line-height:1.08}.shop-card__font-title[data-preview-font=font-standard],.shop-card__preview[data-preview-font=font-standard]{font-family:Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-pixel],.shop-card__preview[data-preview-font=font-pixel]{font-family:Overwriter Tiny5,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-comic],.shop-card__preview[data-preview-font=font-comic]{font-family:Overwriter Comic,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-soft],.shop-card__preview[data-preview-font=font-soft]{font-family:Overwriter Soft,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-caveat],.shop-card__preview[data-preview-font=font-caveat]{--shop-preview-scale: 1.48;--shop-preview-line-height: 1.12;--shop-title-scale: 1.12;font-family:Overwriter Caveat,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-comforter],.shop-card__preview[data-preview-font=font-comforter]{--shop-preview-scale: 1.58;--shop-preview-line-height: 1.08;--shop-title-scale: 1.14;font-family:Overwriter Comforter,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-great-vibes],.shop-card__preview[data-preview-font=font-great-vibes]{--shop-preview-scale: 1.62;--shop-preview-line-height: 1.08;--shop-title-scale: 1.16;font-family:Overwriter Great Vibes,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-pacifico],.shop-card__preview[data-preview-font=font-pacifico]{font-family:Overwriter Pacifico,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-shantell-sans],.shop-card__preview[data-preview-font=font-shantell-sans]{font-family:Overwriter Shantell Sans,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-tektur],.shop-card__preview[data-preview-font=font-tektur]{font-family:Overwriter Tektur,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-kelly-slab],.shop-card__preview[data-preview-font=font-kelly-slab]{font-family:Overwriter Kelly Slab,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-underdog],.shop-card__preview[data-preview-font=font-underdog]{font-family:Overwriter Underdog,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-golos],.shop-card__preview[data-preview-font=font-golos]{font-family:Overwriter Golos Text,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-literata],.shop-card__preview[data-preview-font=font-literata]{font-family:Overwriter Literata,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-jetbrains],.shop-card__preview[data-preview-font=font-jetbrains]{font-family:Overwriter JetBrains Mono,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-unbounded],.shop-card__preview[data-preview-font=font-unbounded]{--shop-preview-scale: .92;font-family:Overwriter Unbounded,Overwriter Noto Sans Mono,monospace}.shop-card__font-title[data-preview-font=font-pangolin],.shop-card__preview[data-preview-font=font-pangolin]{--shop-preview-scale: 1.08;font-family:Overwriter Pangolin,Overwriter Noto Sans Mono,monospace}.shop-card__footer{display:flex;flex-wrap:nowrap;align-items:stretch;gap:calc(10px * var(--ui-scale))}.shop-card__footer--with-listen .shop-card__primary{flex:1 1 auto;min-width:0}.shop-card__footer:not(.shop-card__footer--with-listen) .shop-card__primary{flex:1 1 auto}.shop-card__listen{flex:0 0 calc(46px * var(--ui-scale));aspect-ratio:1;min-height:calc(46px * var(--ui-scale));padding:0;display:inline-grid;place-items:center}.shop-card__listen-play{display:block;width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale))}.shop-card__primary{display:grid}.shop-card__button{width:100%;min-height:calc(46px * var(--ui-scale));font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));font-variant-numeric:tabular-nums;grid-auto-flow:column}.shop-card__iap-price{display:inline-flex;align-items:center;justify-content:center;gap:calc(6px * var(--ui-scale))}.shop-card__iap-price img{width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));object-fit:contain}.shop-card__button:disabled,.shop-tab:disabled{cursor:default;opacity:.58}.stage.stage--game[data-coin-float-vk-band=true]{--coin-float-vk-band: clamp(130px, 25vh, 260px)}.coin-float-layer{position:absolute;z-index:45;inset:0 0 calc(var(--bottom-hud-height) + var(--coin-float-vk-band) + var(--game-keyboard-inset, 0px) + 14px) 0;overflow:hidden;pointer-events:none}.coin-float{position:absolute;display:block;text-align:center;color:var(--coin-float-color);font-family:var(--font-mono);font-size:calc(36px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;text-shadow:0 1px 0 var(--coin-float-highlight),0 calc(2px * var(--ui-scale)) calc(3px * var(--ui-scale)) var(--coin-float-shade),0 0 calc(14px * var(--ui-scale)) var(--coin-float-glow);transform:translate(-50%,-50%);animation:coin-float-pop .52s ease-out forwards;will-change:opacity,transform}.language-row{display:grid;grid-template-columns:minmax(0,1fr) calc(50px * var(--ui-scale)) minmax(0,1fr);column-gap:calc(14px * var(--ui-scale));align-items:center;justify-items:stretch}.swap-button,.direction-button{width:calc(50px * var(--ui-scale));min-width:calc(50px * var(--ui-scale));min-height:calc(50px * var(--ui-scale));justify-self:center;padding:0}.direction-button{display:inline-flex;align-items:center;justify-content:center;line-height:0}.direction-button__icon{display:block;width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale))}.swap-button{font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale))}.level-list{display:grid;gap:calc(10px * var(--ui-scale))}.level-card{display:grid;grid-template-columns:calc(58px * var(--ui-scale)) minmax(0,1fr) auto;gap:calc(10px * var(--ui-scale));align-items:center;width:100%;border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);cursor:pointer;font-family:var(--font-mono);padding:calc(10px * var(--ui-scale));text-align:left}.level-card:hover{background:var(--hover-bg)}.level-medal{display:block;width:calc(42px * var(--ui-scale));height:calc(42px * var(--ui-scale));flex-shrink:0;font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));align-self:center;justify-self:center}.medal-icon--empty{display:grid;place-items:center;border-radius:50%;border:var(--border-width, 2px) dashed var(--border-muted);color:var(--soft-text);font-family:var(--font-mono);font-weight:900;box-sizing:border-box;aspect-ratio:1}.medal-svg{display:block;width:100%;height:100%;overflow:visible}.level-card__main{display:grid;gap:4px;justify-items:start;min-width:0}.level-card__main strong{width:100%;min-width:0;overflow:hidden;font-size:clamp(calc(18px * var(--ui-scale) * var(--font-visual-scale)),4.4vw,calc(28px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1;text-overflow:ellipsis;white-space:nowrap}.level-card__main span{display:-webkit-box;overflow:hidden;color:var(--soft-text);font-size:clamp(calc(13px * var(--ui-scale) * var(--font-visual-scale)),3.2vw,calc(18px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1.18;text-align:left;-webkit-box-orient:vertical;-webkit-line-clamp:2}.level-card__meta{display:grid;gap:calc(4px * var(--ui-scale));justify-items:end;font-size:clamp(calc(12px * var(--ui-scale) * var(--font-visual-scale)),3vw,calc(16px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;white-space:nowrap}.level-card__complexity[data-complexity=easy]{color:var(--success)}.level-card__complexity[data-complexity=normal]{color:var(--info)}.level-card__complexity[data-complexity=hard]{color:var(--warning)}.level-card__complexity[data-complexity=expert]{color:var(--danger)}.empty-levels{border:2px dashed var(--border);border-radius:8px;padding:14px;color:var(--text);font-family:var(--font-mono);font-size:clamp(18px,4vw,24px);font-weight:900;text-align:center}.is-disabled h2{padding-left:38px}.scorebar{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:calc(8px * var(--ui-scale));margin-bottom:calc(14px * var(--ui-scale))}.scorebar__item{min-width:0;border:var(--border-width) solid var(--border);border-radius:var(--control-radius);padding:calc(8px * var(--ui-scale)) calc(10px * var(--ui-scale));background:var(--bg-light)}.scorebar__item span{display:block;color:var(--text);font-family:var(--font-mono);font-size:13px;font-weight:900}.scorebar__item strong{display:block;overflow:hidden;font-family:var(--font-mono);font-size:20px;text-overflow:ellipsis;white-space:nowrap}.game-screen{position:relative;display:grid;grid-template-rows:minmax(0,1fr);height:100%;min-height:0;justify-items:center;overflow:hidden}.game-content{display:grid;align-content:center;justify-items:center;width:100%;height:100%;min-height:0;padding-bottom:calc(var(--bottom-hud-height) + var(--visual-keyboard-band) + var(--game-keyboard-inset, 0px) + 14px)}.game-screen[data-visual-keyboard=true],.fallwords-screen[data-visual-keyboard=true]{--visual-keyboard-band: clamp(130px, 25vh, 260px)}.game-screen[data-touch-keyboard=true],.fallwords-screen[data-touch-keyboard=true]{--visual-keyboard-band: calc(clamp(190px, 31vh, 340px) + var(--touch-keyboard-bottom-space))}.typing-card{display:grid;width:min(560px,calc(100% - 24px * var(--ui-scale)));gap:calc(24px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:calc(9px * var(--ui-scale));padding:clamp(calc(16px * var(--ui-scale)),4vw,calc(24px * var(--ui-scale)));background:var(--panel-bg)}.typing-card--translation{justify-items:stretch}.typing-target{box-sizing:border-box;max-width:100%;overflow:hidden;border:var(--border-width) solid var(--theme-preview-border);border-radius:var(--control-radius);background:var(--preview-bg);color:color-mix(in srgb,var(--text) 52%,var(--bg) 48%);font-family:var(--font-mono);font-size:clamp(calc(38px * var(--ui-scale) * var(--font-visual-scale)),5vw,calc(48px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1.08;padding-block:calc(14px * var(--ui-scale));padding-inline:clamp(calc(18px * var(--ui-scale)),5vw,calc(34px * var(--ui-scale)));text-align:center;overflow-wrap:normal;white-space:normal;word-break:normal}.typing-target--translation{justify-self:stretch;width:auto;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:normal}.typing-target--speed,.typing-target--dictation{display:grid;min-block-size:clamp(calc(90px * var(--ui-scale)),13vh,calc(96px * var(--ui-scale)));place-items:center;padding-inline:clamp(calc(24px * var(--ui-scale)),7vw,calc(22px * var(--ui-scale)));overflow-wrap:normal;justify-content:center}.typing-target--speed.typing-target--emergency-wrap,.typing-target--dictation.typing-target--emergency-wrap{overflow-wrap:break-word}.typing-target__content{display:block;width:100%;max-width:100%;text-align:center}.typing-target--single-word .typing-target__content{width:max-content;max-width:none;transform:scale(var(--typing-target-fit-scale, 1));transform-origin:center}.typing-target__explicit{display:block;box-sizing:border-box;max-width:100%;margin:0 auto;text-align:center}.typing-target__line{display:block;width:100%;text-align:center;white-space:pre;line-height:inherit}.typing-target__run{display:inline;white-space:pre;border-radius:4px}.typing-target__run--pending{opacity:1}.typing-target__run--current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text)}.typing-target__run--correct{color:var(--success)}.typing-target__run--wrong{background:#9d453924;color:var(--danger)}.typing-target__run--destroyed{color:var(--danger)}.typing-target__token{display:inline-block;max-width:100%;white-space:nowrap}.typing-target--speed .typing-target__token{display:inline-block;max-width:100%;overflow-wrap:normal;vertical-align:baseline;white-space:nowrap}.typing-target--speed .typing-target__token--dash-wrap{display:inline;white-space:normal;overflow-wrap:normal}.typing-target--speed.typing-target--emergency-wrap .typing-target__token{display:inline;overflow-wrap:break-word;white-space:normal}.typing-target__token--operator{margin:0 .04em}.typing-target__char{display:inline-block;border-radius:4px;white-space:pre}.typing-target__char.is-pending{opacity:1}.typing-target__char.is-current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text)}.typing-target__char.is-correct{color:var(--success)}.typing-target__char.is-wrong{background:#9d453924;color:var(--danger)}.typing-target.is-broken{border-color:var(--theme-broken-border);background:var(--theme-broken-bg)}.typing-target.is-success{border-color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--preview-bg) 88%);box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 24%,transparent)}.typing-target__char.is-destroyed{color:var(--danger)}.typing-input{display:grid;gap:8px}.typing-input-capture{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.specials-card{position:relative;justify-items:center;text-align:center}.specials-card__label{font-family:var(--font-mono);font-size:clamp(calc(20px * var(--ui-scale) * var(--font-visual-scale)),4.5vw,calc(30px * var(--ui-scale) * var(--font-visual-scale)));font-weight:800;color:var(--text);line-height:var(--font-safe-line-height);max-width:min(100%,560px)}.specials-card__char{min-height:calc(72px * var(--ui-scale));display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:clamp(calc(40px * var(--ui-scale) * var(--font-visual-scale)),12vw,calc(72px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1;color:var(--text);border:var(--border-width) solid var(--theme-preview-border);border-radius:var(--control-radius);background:var(--preview-bg);padding:calc(16px * var(--ui-scale)) calc(24px * var(--ui-scale));width:min(100%,calc(280px * var(--ui-scale)))}.specials-card__hint{margin:0;max-width:min(100%,520px);font-family:var(--font-mono);font-size:clamp(calc(18px * var(--ui-scale) * var(--font-visual-scale)),3.6vw,calc(24px * var(--ui-scale) * var(--font-visual-scale)));font-weight:700;line-height:var(--font-safe-line-height);color:var(--text)}.specials-mac-qwerty-note{margin:calc(8px * var(--ui-scale)) 0 0;max-width:min(100%,520px);font-size:clamp(calc(13px * var(--ui-scale) * var(--font-visual-scale)),2.6vw,calc(16px * var(--ui-scale) * var(--font-visual-scale)));font-weight:600;line-height:var(--font-safe-line-height);color:var(--soft-text)}.specials-unicode-field{display:flex;align-items:center;justify-content:center;gap:calc(6px * var(--ui-scale));margin-top:calc(10px * var(--ui-scale));width:min(100%,calc(380px * var(--ui-scale)));max-width:min(100%,520px)}.specials-unicode-prefix{flex:0 0 auto;font-family:var(--font-mono);font-size:clamp(calc(20px * var(--ui-scale) * var(--font-visual-scale)),4vw,calc(28px * var(--ui-scale) * var(--font-visual-scale)));font-weight:800;color:var(--text);line-height:1}.specials-unicode-hex{flex:1 1 auto;min-width:0;height:calc(52px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);font-family:var(--font-mono);font-size:clamp(calc(18px * var(--ui-scale) * var(--font-visual-scale)),3.5vw,calc(24px * var(--ui-scale) * var(--font-visual-scale)));font-weight:700;padding:0 calc(12px * var(--ui-scale));letter-spacing:.04em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.specials-card--correct .specials-card__char{border-color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--preview-bg) 88%);box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 24%,transparent);color:var(--success)}.specials-card--wrong .specials-card__char{border-color:var(--danger);background:#9d45391f;color:var(--danger)}.typing-input input{width:100%;height:52px;border:2px solid var(--border);border-radius:8px;background:var(--bg-light);color:var(--text);font-family:var(--font-mono);font-size:22px;font-weight:900;padding:0 12px;text-align:center;-webkit-user-select:none;user-select:none}.timer-stack{display:grid;justify-items:center;justify-self:center;gap:calc(8px * var(--ui-scale))}.timer{display:inline-flex;gap:calc(12px * var(--ui-scale));align-items:baseline;justify-self:center;color:var(--success);font-family:var(--font-mono);font-size:calc(22px * var(--ui-scale) * var(--font-visual-scale));font-weight:900}.timer span{color:var(--text)}.timer.is-danger{color:var(--danger)}.dictation-replay{width:calc(42px * var(--ui-scale));height:calc(42px * var(--ui-scale));min-width:calc(42px * var(--ui-scale));min-height:calc(42px * var(--ui-scale))}.dictation-replay svg{width:calc(26px * var(--ui-scale));height:calc(26px * var(--ui-scale))}.typing-target__run--placeholder{color:color-mix(in srgb,var(--text) 28%,var(--bg) 72%)}.typing-target__run--typed{color:var(--text)}.typing-target--translation.is-dictation-masked{color:color-mix(in srgb,var(--text) 28%,var(--bg) 72%)}.translation-meta{display:grid;gap:calc(3px * var(--ui-scale));justify-items:center;color:var(--soft-text);font-family:var(--font-mono);font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);text-align:center}.translation-meta span{display:block}.translation-part-of-speech{font-size:1em}.translation-answer{min-height:calc(52px * var(--ui-scale));display:grid;place-items:center;justify-self:stretch;width:auto;min-width:0;max-width:100%;border:var(--border-width) solid var(--theme-preview-border);border-radius:var(--control-radius);background:var(--bg-light);color:var(--text);font-family:var(--font-mono);font-size:clamp(calc(22px * var(--ui-scale) * var(--font-visual-scale)),4.4vw,calc(34px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:var(--font-safe-line-height);padding:calc(6px * var(--ui-scale)) calc(12px * var(--ui-scale));text-align:center;white-space:normal;overflow-wrap:anywhere}.translation-answer--typing{display:grid;place-items:center}.translation-answer--typing .typing-target__token{white-space:normal;overflow-wrap:anywhere}.translation-answer.is-empty{color:color-mix(in srgb,var(--text) 42%,var(--bg) 58%);opacity:1}.translation-answer.is-correct,.typing-card.is-translation-correct .typing-target,.typing-card.is-translation-correct .translation-answer--typing{border-color:var(--success);color:var(--success)}.translation-answer.is-wrong,.typing-card.is-translation-wrong .typing-target,.typing-card.is-translation-wrong .translation-answer--typing{border-color:var(--danger);color:var(--danger)}.keyboard-preview{display:grid;gap:6px;width:min(620px,100%);margin:18px 0}.keyboard-preview__row{display:flex;justify-content:center;gap:6px}.keyboard-key{display:grid;width:clamp(24px,7vw,44px);aspect-ratio:1.1;place-items:center;border:1px solid var(--border-muted);border-radius:6px;background:var(--panel-header-bg);font-family:var(--font-mono);font-size:13px;font-weight:900}.keyboard-key.is-active{background:var(--success);color:#fff}.keyboard-key.is-error{background:var(--danger)}.fallwords-screen{position:relative;display:grid;grid-template-rows:minmax(0,1fr);width:100%;height:100%;min-height:0;margin:0 auto;overflow:hidden}.overwriter-game{align-items:start;background:transparent;min-height:0}.overwriter-text-viewport,.overwriter-sprint-viewport{width:100%;max-height:calc(100% - var(--bottom-hud-height) - var(--visual-keyboard-band) - var(--game-keyboard-inset, 0px));overflow:hidden;padding:clamp(calc(16px * var(--ui-scale)),4vw,calc(34px * var(--ui-scale)));background:transparent}.overwriter-text-track{will-change:transform;transition:transform .18s ease}.overwriter-sprint-track{position:relative;z-index:2;display:inline-block;line-height:1.25;will-change:transform}.overwriter-text{width:100%;background:transparent;color:color-mix(in srgb,var(--text) 40%,var(--bg) 60%);font-family:var(--font-mono);font-size:clamp(calc(28px * var(--ui-scale) * var(--font-visual-scale)),5.6vw,calc(46px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1.25;overflow-wrap:normal;word-break:normal;white-space:pre-wrap}.overwriter-game[data-display-mode=sprint] .overwriter-sprint-viewport{position:relative;display:flex;align-items:center;min-height:calc(100% - var(--bottom-hud-height) - var(--visual-keyboard-band) - var(--game-keyboard-inset, 0px));font-size:clamp(calc(28px * var(--ui-scale) * var(--font-visual-scale)),5.6vw,calc(46px * var(--ui-scale) * var(--font-visual-scale)))}.overwriter-text--sprint{display:inline-block;width:auto;max-width:none;white-space:nowrap}.overwriter-game[data-display-mode=sprint] .overwriter-word{display:inline;white-space:nowrap}.overwriter-game[data-display-mode=sprint] .overwriter-char{display:inline-block;line-height:1.25}.overwriter-game--curriculum .overwriter-curriculum-run{display:inline-flex;white-space:nowrap}.overwriter-game--curriculum .overwriter-curriculum-run .overwriter-char+.overwriter-char{margin-left:.08em}.overwriter-game--curriculum .overwriter-curriculum-run:not(:last-child){margin-right:.72em}@media(prefers-reduced-motion:reduce){.overwriter-text-track{transition:none}}.overwriter-word{display:inline-block;white-space:nowrap}.overwriter-game[data-display-mode=page] .overwriter-word{max-width:100%;white-space:normal;overflow-wrap:break-word}.overwriter-game[data-display-mode=page] .overwriter-word .overwriter-char{white-space:pre-wrap}.overwriter-char{border-radius:4px;white-space:pre}.overwriter-char.is-current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text)}.overwriter-char.is-correct{color:var(--success)}.overwriter-char.is-wrong{background:#9d453924;color:var(--danger)}.overwriter-char.is-pending{opacity:1}.overwriter-input-capture{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fall-arena{position:relative;z-index:0;isolation:isolate;min-height:100%;overflow:hidden}.fall-word--measure{position:absolute;top:0;left:-9999px;visibility:hidden;pointer-events:none}.fall-pace{position:absolute;z-index:0;top:calc(12px * var(--ui-scale));left:calc(14px * var(--ui-scale));pointer-events:none;border:var(--border-width) solid var(--theme-pace-border);border-radius:var(--control-radius);background:color-mix(in srgb,var(--panel-bg) 38%,transparent);color:color-mix(in srgb,var(--text) 42%,transparent);font-family:var(--font-mono);font-size:calc(20px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;opacity:.72;padding:calc(6px * var(--ui-scale)) calc(8px * var(--ui-scale))}.fall-word{position:absolute;z-index:1;top:0;left:0;display:grid;justify-items:center;align-content:center;box-sizing:border-box;min-width:0;min-height:0;border:2px solid var(--theme-preview-border);border-radius:var(--control-radius);padding:7px 11px;background:var(--preview-bg);color:color-mix(in srgb,var(--text) 52%,var(--bg) 48%);font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:calc(28px * var(--ui-scale));font-weight:900;line-height:1.24;text-align:center;white-space:normal;overflow:hidden;overflow-wrap:normal;word-break:normal;hyphens:none;will-change:transform;transition:opacity .42s ease,filter .42s ease}.fall-word--emergency-wrap{overflow-wrap:break-word}.fall-word--translation{gap:calc(3px * var(--ui-scale));white-space:normal;overflow:hidden;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:var(--font-safe-line-height)}.fall-word__prompt,.fall-word__answer,.fall-word__hint,.fall-word__meta,.fall-word__text,.fall-word__resolved{display:block}.fall-word__prompt{max-width:100%;overflow:hidden;color:var(--text);text-align:center;text-overflow:ellipsis}.fall-word--translation .fall-word__prompt{max-width:100%;overflow:hidden;text-overflow:clip;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}.fall-word__text{position:relative;box-sizing:border-box;width:100%;max-width:100%;min-width:0;justify-self:center;margin:0 auto;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center}.fall-word__line{display:block;width:100%;text-align:center;white-space:pre;line-height:1.24}.fall-word__run{display:inline;white-space:pre;border-radius:4px}.fall-word__run--pending{opacity:1}.fall-word__run--correct{color:var(--success)}.fall-word__run--wrong{background:#9d453924;color:var(--danger)}.fall-word__run--current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text);border-radius:4px}.fall-word__caret{position:absolute;z-index:2;box-sizing:border-box;min-width:8px;pointer-events:none;border-radius:4px;background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border)}.fall-word__resolved{box-sizing:border-box;max-width:100%;min-width:0}.fall-word__token{display:inline-block;box-sizing:border-box;max-width:100%;vertical-align:baseline;white-space:nowrap}.fall-word__token--dash-wrap{display:inline;white-space:normal;overflow-wrap:normal}.fall-word--emergency-wrap .fall-word__token{display:inline;max-width:100%;overflow-wrap:break-word;white-space:normal}.fall-word__token-letters{display:inline-block;max-width:100%;white-space:nowrap;vertical-align:baseline}.fall-word__token-gap{display:inline;white-space:pre;vertical-align:baseline}.fall-word__token-tail{display:inline;white-space:pre}.fall-word--emergency-wrap .fall-word__token-letters{display:inline;overflow-wrap:break-word;white-space:normal}.fall-word__meta,.fall-word__hint span:last-child{color:var(--soft-text);font-size:.72em;line-height:var(--font-safe-line-height)}.fall-word__hint{display:grid;gap:calc(2px * var(--ui-scale));margin-top:calc(4px * var(--ui-scale));color:var(--soft-text);font-size:.68em;line-height:var(--font-safe-line-height)}.fall-word__answer{justify-self:center;width:max-content;max-width:min(calc(100dvw - 48px),calc(420px * var(--ui-scale)));margin:0 auto calc(5px * var(--ui-scale));border-bottom:1px solid var(--theme-row-border);color:var(--text);line-height:var(--font-safe-line-height);text-align:center;text-overflow:clip;white-space:nowrap;overflow:hidden;overflow-wrap:normal}.fall-word--translation .fall-word__answer{width:auto;max-width:100%;white-space:normal;overflow:visible;overflow-wrap:normal;word-break:normal;hyphens:none}.fall-word__answer.is-empty{color:color-mix(in srgb,var(--text) 42%,var(--bg) 58%);opacity:1}.fall-word.is-correct{border-color:var(--success);color:var(--success)}.fall-word.is-wrong{border-color:var(--danger);color:var(--danger)}.fall-word.is-correct .fall-word__prompt,.fall-word.is-correct .fall-word__answer{color:var(--success)}.fall-word.is-wrong .fall-word__prompt,.fall-word.is-wrong .fall-word__answer{color:var(--danger)}.fall-word.is-correct:not(.is-exiting),.fall-word.is-wrong:not(.is-exiting){z-index:0;opacity:.48;transition:none}.fall-word.is-exiting{z-index:0;opacity:0;filter:saturate(1.25);transition:opacity .42s ease,filter .42s ease}.fall-word--successor{opacity:.72}.fall-word.is-focused{z-index:3;border-color:var(--border);background:var(--bg-light);color:color-mix(in srgb,var(--text) 46%,var(--bg) 54%);box-shadow:0 4px 0 var(--shadow-color);opacity:1}.fall-word.is-focused.is-correct{border-color:var(--success);color:var(--success)}.fall-word.is-focused.is-wrong{border-color:var(--danger);color:var(--danger)}.fall-word__char{display:inline;border-radius:4px;white-space:pre}.fall-word__char.is-current{background:var(--theme-focus-bg);box-shadow:inset 0 -4px 0 var(--border);color:var(--text)}.fall-word__char.is-correct{color:var(--success)}.fall-word__char.is-wrong{background:#9d453924;color:var(--danger)}.fall-word__char.is-pending{opacity:1}.red-zone{position:absolute;z-index:4;right:0;bottom:var( --fallwords-bottom-stack, calc(var(--bottom-hud-height) + var(--game-keyboard-inset, 0px)) );left:0;height:calc(var(--fallwords-red-zone-height, 46px) * var(--ui-scale));border-top:4px solid var(--theme-danger-zone-line);background:var(--theme-danger-zone-bg)}.fallwords-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.bottom-hud{position:absolute;z-index:5;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:calc(4px * var(--ui-scale));box-sizing:border-box;width:100%;min-height:var(--bottom-hud-height);height:auto;padding-top:calc(8px * var(--ui-scale));padding-bottom:max(calc(10px * var(--ui-scale)),var(--safe-area-bottom));border-top:4px solid var(--border);background:var(--hud-bg)}.bottom-hud--with-visual-keyboard{justify-content:flex-end;padding-top:calc(6px * var(--ui-scale));padding-bottom:max(calc(12px * var(--ui-scale)),calc(var(--safe-area-bottom) + var(--game-keyboard-inset, 0px) + var(--touch-keyboard-bottom-space)))}.bottom-hud__keyboard{display:flex;flex-shrink:0;justify-content:center;width:100%;container-type:inline-size}.bottom-hud__keyboard--touch{padding-top:calc(2px * var(--ui-scale))}.bottom-hud__panel{flex-shrink:0;display:grid;grid-template-columns:minmax(calc(132px * var(--ui-scale)),max-content) minmax(calc(112px * var(--ui-scale)),max-content);align-items:stretch;width:max-content;max-width:calc(100% - var(--app-edge) * 2);overflow:hidden;border:2px solid var(--border);border-radius:8px;background:var(--bg-light)}.bottom-hud__cell{display:inline-flex;align-items:center;justify-content:center;min-height:calc(46px * var(--ui-scale));color:var(--text);font-family:var(--font-mono);font-size:calc(28px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;font-variant-numeric:tabular-nums;line-height:1.05;text-align:center;white-space:nowrap;padding:calc(6px * var(--ui-scale)) calc(16px * var(--ui-scale))}.bottom-hud__cell--combo{--bottom-hud-streak-slot: calc(16px * var(--ui-scale));--bottom-hud-streak-gap: calc(4px * var(--ui-scale));--bottom-hud-streak-inset: calc(3px * var(--ui-scale));position:relative;gap:calc(5px * var(--ui-scale));justify-content:flex-end}.bottom-hud__cell--streak-2{--bottom-hud-streak-slot: calc(24px * var(--ui-scale))}.bottom-hud__cell--streak-3{--bottom-hud-streak-slot: calc(26px * var(--ui-scale))}.bottom-hud__cell--combo-hot{padding-right:calc(var(--bottom-hud-streak-slot) + var(--bottom-hud-streak-gap) + var(--bottom-hud-streak-inset))}.bottom-hud__cell--combo-hot .bottom-hud__multiplier{min-width:0}.bottom-hud__combo-main{display:inline-flex;align-items:center;gap:calc(5px * var(--ui-scale));min-width:0}.bottom-hud__cell--bank{justify-content:flex-start;border-left:2px solid var(--border)}.bottom-hud__multiplier,.bottom-hud__cell--bank strong{display:inline-block;min-width:calc(78px * var(--ui-scale))}.bottom-hud__cell--bank strong{font-weight:900}.bottom-hud__streak{position:absolute;top:calc(2px * var(--ui-scale));right:var(--bottom-hud-streak-inset);z-index:1;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:var(--bottom-hud-streak-slot);height:calc(16px * var(--ui-scale));color:var(--success);font-family:var(--font-mono);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.03em;text-align:center;pointer-events:none;-webkit-text-stroke:calc(.7px * var(--ui-scale)) var(--border);paint-order:stroke fill;text-shadow:0 1px 0 color-mix(in srgb,var(--bg-light) 90%,transparent),0 0 calc(6px * var(--ui-scale)) color-mix(in srgb,var(--success) 36%,transparent);transform-origin:50% 0%;animation:bottom-hud-streak-pop .42s ease-out;will-change:transform,opacity}.bottom-hud__streak--digits-2{letter-spacing:-.04em}.bottom-hud__streak--digits-3{letter-spacing:-.05em;-webkit-text-stroke:calc(.55px * var(--ui-scale)) var(--border);text-shadow:0 1px 0 color-mix(in srgb,var(--bg-light) 90%,transparent),0 0 calc(5px * var(--ui-scale)) color-mix(in srgb,var(--success) 32%,transparent)}@keyframes bottom-hud-streak-pop{0%{opacity:0;transform:scale(.55)}28%{opacity:1;transform:scale(1.22)}62%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}.placeholder-screen{border:2px solid var(--border);border-radius:9px;padding:clamp(22px,5vw,40px);background:var(--panel-bg)}.placeholder-screen h1{margin:0 0 12px;font-family:var(--font-mono);font-size:clamp(30px,6vw,46px)}.placeholder-screen p{margin:0;font-family:var(--font-mono);font-size:clamp(18px,4vw,28px);font-weight:900;text-align:center}.result-overlay{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:var(--app-edge);background:var(--overlay-bg);animation:result-fade-in .18s ease-out}.build-info-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:var(--app-edge);background:var(--overlay-bg)}.build-info-panel{display:grid;gap:calc(12px * var(--ui-scale));width:min(100%,calc(420px * var(--ui-scale)));border:calc(3px * var(--ui-scale)) solid var(--border);border-radius:calc(10px * var(--ui-scale));padding:calc(16px * var(--ui-scale));background:var(--modal-bg);box-shadow:0 calc(10px * var(--ui-scale)) 0 var(--shadow-color);color:var(--text);font-family:var(--font-mono)}.build-info-panel__header{display:flex;align-items:center;justify-content:space-between;gap:calc(12px * var(--ui-scale))}.build-info-panel__title{margin:0;font-size:clamp(calc(22px * var(--ui-scale) * var(--font-visual-scale)),5vw,calc(28px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1.1}.build-info-panel__close{display:grid;place-items:center;width:calc(36px * var(--ui-scale));height:calc(36px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);background:var(--panel-bg);color:var(--text);font-size:calc(24px * var(--ui-scale));line-height:1;cursor:pointer}.build-info-panel__meta{display:grid;gap:calc(10px * var(--ui-scale));margin:0}.build-info-panel__meta>div{display:grid;gap:calc(2px * var(--ui-scale))}.build-info-panel__meta dt{margin:0;color:var(--soft-text);font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale));font-weight:700;text-transform:uppercase;letter-spacing:.04em}.build-info-panel__meta dd{margin:0;font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:var(--font-safe-line-height);word-break:break-word}.build-info-panel__hint{margin:0;color:var(--soft-text);font-size:calc(13px * var(--ui-scale) * var(--font-visual-scale));font-weight:700}.build-info-panel__debug{display:grid;gap:calc(8px * var(--ui-scale));border-top:var(--border-width) solid var(--theme-row-border);padding-top:calc(10px * var(--ui-scale))}.build-info-panel__debug-title{margin:0;color:var(--soft-text);font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale));font-weight:700;text-transform:uppercase;letter-spacing:.04em}.build-info-panel__check{display:flex;align-items:flex-start;gap:calc(10px * var(--ui-scale));color:var(--text);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));font-weight:700;line-height:var(--font-safe-line-height);cursor:pointer}.build-info-panel__check input{flex:0 0 auto;width:calc(18px * var(--ui-scale));height:calc(18px * var(--ui-scale));margin-top:.15em;accent-color:var(--border);cursor:pointer}.build-info-panel__check-hint{display:inline;color:var(--soft-text);font-size:.88em;font-weight:600}.build-info-panel__field{display:grid;gap:calc(6px * var(--ui-scale));color:var(--text);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));font-weight:700;line-height:var(--font-safe-line-height)}.build-info-panel__field-label{display:block}.build-info-panel__field-row{display:flex;align-items:center;gap:calc(8px * var(--ui-scale))}.build-info-panel__field-row input[type=number]{box-sizing:border-box;width:calc(96px * var(--ui-scale));min-height:calc(36px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);padding:calc(6px * var(--ui-scale)) calc(8px * var(--ui-scale));background:var(--panel-bg);color:var(--text);font-family:var(--font-mono);font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale));font-weight:900}.build-info-panel__field-reset{min-height:calc(36px * var(--ui-scale));border:var(--border-width) solid var(--border);border-radius:var(--control-radius);padding:0 calc(10px * var(--ui-scale));background:var(--panel-bg);color:var(--text);font-family:var(--font-mono);font-size:calc(13px * var(--ui-scale) * var(--font-visual-scale));font-weight:800;cursor:pointer}.build-info-panel__field-reset:disabled{opacity:.45;cursor:default}.build-info-panel__copy{display:none}.result-modal{display:grid;justify-items:center;gap:calc(14px * var(--ui-scale));width:min(100%,calc(460px * var(--ui-scale)));border:calc(3px * var(--ui-scale)) solid var(--border);border-radius:calc(10px * var(--ui-scale));padding:calc(18px * var(--ui-scale));background:var(--modal-bg);box-shadow:0 calc(12px * var(--ui-scale)) 0 var(--shadow-color);transform-origin:center;animation:result-pop-in .18s ease-out}.result-modal h2{margin:0;color:var(--text);font-family:var(--font-mono);font-size:clamp(calc(28px * var(--ui-scale) * var(--font-visual-scale)),7vw,calc(44px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1;text-align:center}.result-medal{display:block;width:calc(88px * var(--ui-scale));height:calc(88px * var(--ui-scale));font-size:calc(36px * var(--ui-scale) * var(--font-visual-scale))}.result-hero{display:flex;align-items:center;justify-content:center;gap:calc(20px * var(--ui-scale));width:100%;padding:calc(16px * var(--ui-scale)) 0}.result-hero__score{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;text-align:center}.result-hero__score span{color:var(--soft-text);font-family:var(--font-mono);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1.1;text-transform:uppercase}.result-hero__score strong{color:var(--text);font-family:var(--font-mono);font-size:calc(52px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1}.result-hero__score small{color:var(--soft-text);font-family:var(--font-mono);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;margin-top:calc(4px * var(--ui-scale))}.result-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(8px * var(--ui-scale));width:100%}.result-medal-guide{display:grid;gap:calc(10px * var(--ui-scale));width:100%;border:var(--border-width) solid var(--border-muted);border-radius:var(--control-radius);padding:calc(12px * var(--ui-scale));background:var(--panel-header-bg)}.result-medal-guide h3{margin:0;color:var(--text);font-family:var(--font-mono);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;text-align:center;text-transform:uppercase}.result-medal-guide__list{display:grid;gap:calc(8px * var(--ui-scale))}.result-medal-guide__item{position:relative;display:grid;grid-template-columns:calc(42px * var(--ui-scale)) minmax(0,1fr);gap:calc(10px * var(--ui-scale));align-items:center;padding:calc(8px * var(--ui-scale));border:2px solid transparent;border-radius:9px}.result-medal-guide__item--earned{background:linear-gradient(135deg,color-mix(in srgb,var(--text) 10%,var(--panel-bg)),color-mix(in srgb,var(--border) 14%,var(--panel-bg)));border-color:var(--text);box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 20%,transparent),0 calc(6px * var(--ui-scale)) calc(18px * var(--ui-scale)) color-mix(in srgb,var(--text) 12%,transparent)}.result-medal-guide__icon{width:calc(42px * var(--ui-scale));height:calc(42px * var(--ui-scale));font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale))}.result-medal-guide__item--earned .result-medal-guide__icon{transform:scale(1.08);filter:drop-shadow(0 0 calc(12px * var(--ui-scale)) color-mix(in srgb,var(--text) 28%,transparent))}.result-medal-guide__copy{display:grid;gap:calc(4px * var(--ui-scale));min-width:0}.result-medal-guide__header{display:flex;align-items:center;gap:calc(8px * var(--ui-scale));flex-wrap:wrap}.result-medal-guide__title,.result-medal-guide__requirement{display:block;min-width:0;font-family:var(--font-mono);font-weight:900}.result-medal-guide__title{color:var(--text);font-size:calc(18px * var(--ui-scale) * var(--font-visual-scale));line-height:1.05}.result-medal-guide__title--earned{color:var(--text);text-decoration:underline;text-decoration-thickness:calc(2px * var(--ui-scale));text-underline-offset:calc(3px * var(--ui-scale))}.result-medal-guide__earned{display:inline-flex;align-items:center;padding:calc(3px * var(--ui-scale)) calc(7px * var(--ui-scale));border-radius:999px;border:1px solid var(--text);background:var(--text);color:var(--bg-light);font-size:calc(12px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;letter-spacing:.02em;line-height:1;vertical-align:middle;box-shadow:0 calc(2px * var(--ui-scale)) 0 color-mix(in srgb,var(--text) 18%,transparent)}.result-medal-guide__requirement{color:var(--soft-text);font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale));line-height:1.2}.result-medal-guide__requirement--earned{color:var(--text)}.result-stat{display:flex;flex-direction:column;align-items:center;flex:1 1 auto;gap:calc(4px * var(--ui-scale));min-width:0;border:var(--border-width) solid var(--border-muted);border-radius:var(--control-radius);padding:calc(8px * var(--ui-scale));background:var(--panel-header-bg);font-family:var(--font-mono);font-weight:900;line-height:1}.result-stat span{overflow:hidden;color:var(--soft-text);font-size:calc(15px * var(--ui-scale) * var(--font-visual-scale));text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase}.result-stat strong{overflow:hidden;color:var(--text);font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale));text-overflow:ellipsis;white-space:nowrap}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(10px * var(--ui-scale));width:100%}.result-actions .ui-button{min-height:calc(48px * var(--ui-scale));font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale))}.result-actions .result-action--icon{position:relative;width:calc(80px * var(--ui-scale));min-width:calc(80px * var(--ui-scale));height:calc(64px * var(--ui-scale));min-height:calc(64px * var(--ui-scale))}.result-action__icon{display:block;width:calc(32px * var(--ui-scale));height:calc(32px * var(--ui-scale));background:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.result-action__icon--menu{-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z'/%3e%3c/svg%3e")}.result-action__icon--restart{-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M339.5-108.5q-65.5-28.5-114-77t-77-114Q120-365%20120-440h80q0%20117%2081.5%20198.5T480-160q117%200%20198.5-81.5T760-440q0-117-81.5-198.5T480-720h-6l62%2062-56%2058-160-160%20160-160%2056%2058-62%2062h6q75%200%20140.5%2028.5t114%2077q48.5%2048.5%2077%20114T840-440q0%2075-28.5%20140.5t-77%20114q-48.5%2048.5-114%2077T480-80q-75%200-140.5-28.5Z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M339.5-108.5q-65.5-28.5-114-77t-77-114Q120-365%20120-440h80q0%20117%2081.5%20198.5T480-160q117%200%20198.5-81.5T760-440q0-117-81.5-198.5T480-720h-6l62%2062-56%2058-160-160%20160-160%2056%2058-62%2062h6q75%200%20140.5%2028.5t114%2077q48.5%2048.5%2077%20114T840-440q0%2075-28.5%20140.5t-77%20114q-48.5%2048.5-114%2077T480-80q-75%200-140.5-28.5Z'/%3e%3c/svg%3e")}.result-action__icon--next{-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='m560-240-56-58%20142-142H160v-80h486L504-662l56-58%20240%20240-240%20240Z'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='m560-240-56-58%20142-142H160v-80h486L504-662l56-58%20240%20240-240%20240Z'/%3e%3c/svg%3e")}.result-action__shortcut{position:absolute;right:calc(5px * var(--ui-scale));top:calc(3px * var(--ui-scale));font-size:calc(13px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1}@keyframes result-fade-in{0%{opacity:0}to{opacity:1}}@keyframes result-pop-in{0%{opacity:0;transform:translateY(calc(10px * var(--ui-scale))) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes coin-float-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}55%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}.fall-combo-float-layer{position:absolute;z-index:6;inset:0;overflow:hidden;pointer-events:none}.fall-combo-float{position:absolute;display:block;color:var(--success);font-family:var(--font-mono);font-size:calc(33px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;line-height:1;-webkit-text-stroke:calc(1.2px * var(--ui-scale)) var(--border);paint-order:stroke fill;text-shadow:0 calc(2px * var(--ui-scale)) 0 color-mix(in srgb,var(--preview-bg) 90%,transparent),0 0 calc(10px * var(--ui-scale)) color-mix(in srgb,var(--success) 45%,transparent);transform:translate(-50%,-50%);animation:fall-combo-float-pop .52s ease-out forwards;will-change:opacity,transform}@keyframes fall-combo-float-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}55%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@keyframes fall{0%{transform:translateY(0)}to{transform:translateY(calc(100dvh - 190px))}}@media(min-width:1280px)and (orientation:landscape){.app-shell{max-width:min(1120px,calc(100vw - 48px));margin:0 auto}}@media(max-width:620px),(max-height:820px){.app-shell{--ui-scale: .82;--app-edge: calc(18px * var(--ui-scale))}}@media(hover:none)and (pointer:coarse),(max-width:620px){.app-shell{--shell-border: 0px}}@media(max-width:360px),(max-height:700px){.app-shell{--ui-scale: .76;--app-edge: calc(16px * var(--ui-scale))}}@media(prefers-reduced-motion:reduce){.menu-screen .main-title{animation:none}}@media(max-width:430px),(max-height:760px){.menu-screen{padding-top:calc(var(--app-edge) + var(--icon-button-height) + 6px);padding-bottom:var(--app-edge)}.main-title{line-height:1}.mode-list{width:min(100%,520px);gap:calc(8px * var(--ui-scale))}.mode-card{padding:0 calc(14px * var(--ui-scale))}.ui-panel h2,.settings-group h2,.ui-panel__header{padding:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale))}.ui-panel__body,.settings-group__body{gap:calc(10px * var(--ui-scale));padding:calc(14px * var(--ui-scale)) calc(10px * var(--ui-scale)) calc(10px * var(--ui-scale))}.control-row,.field{gap:8px;min-height:var(--control-height)}.control-row span,.field span,.typing-card__label,.typing-input span{font-size:calc(26px * var(--ui-scale) * var(--font-visual-scale))}.play-button{min-height:calc(52px * var(--ui-scale));font-size:calc(30px * var(--ui-scale) * var(--font-visual-scale))}.setup-score span{font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale))}.setup-score strong{font-size:calc(38px * var(--ui-scale) * var(--font-visual-scale))}}@media(max-width:620px){.stage{padding-right:var(--app-edge);padding-left:var(--app-edge)}.stage--game{padding:0}.screen-header{grid-template-columns:var(--icon-button-size) minmax(0,1fr) minmax(min-content,max-content);gap:calc(10px * var(--ui-scale));padding:calc(4px * var(--ui-scale)) calc(10px * var(--ui-scale)) calc(5px * var(--ui-scale)) calc(8px * var(--ui-scale));border-bottom-width:3px}.screen-header h1{font-size:clamp(calc(20px * var(--ui-scale) * var(--font-visual-scale)),7.2vw,calc(36px * var(--ui-scale) * var(--font-visual-scale)))}.screen-header--with-accessory h1{font-size:clamp(calc(18px * var(--ui-scale) * var(--font-visual-scale)),6vw,calc(36px * var(--ui-scale) * var(--font-visual-scale)));padding-right:calc(6px * var(--ui-scale))}.header-health{gap:calc(5px * var(--ui-scale));font-size:min(calc(40px * var(--ui-scale) * var(--font-visual-scale)),calc(var(--icon-button-height) * .82))}.control-row,.field{grid-template-columns:minmax(120px,1fr) minmax(130px,.82fr)}.settings-grid,.setup-screen{gap:calc(18px * var(--ui-scale))}.ui-panel__header{align-items:start;justify-content:start}.overwriter-setup .ui-panel__header{display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr);align-items:start;justify-content:normal}.overwriter-setup .ui-panel__header h2{grid-column:1;align-self:center;width:100%;text-align:center}.overwriter-setup .ui-panel__header .level-filter-actions{grid-column:2;width:100%}.level-filter-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:calc(8px * var(--ui-scale));width:100%}.app-multiselect__button{column-gap:calc(8px * var(--ui-scale));height:calc(36px * var(--ui-scale));padding-right:calc(7px * var(--ui-scale));padding-left:calc(9px * var(--ui-scale))}.level-filter-actions__language .app-select__button{height:calc(36px * var(--ui-scale));min-width:calc(108px * var(--ui-scale));font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale))}.language-row{grid-template-columns:minmax(0,1fr) calc(50px * var(--ui-scale)) minmax(0,1fr)}.scorebar{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.level-card{grid-template-columns:calc(52px * var(--ui-scale)) minmax(0,1fr)}.level-card__meta{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:start}}@media(max-width:520px){.settings-screen .field:has(.range-line){grid-template-columns:minmax(0,1fr);align-items:stretch;gap:calc(8px * var(--ui-scale))}.settings-screen .field:has(.range-line)>span{white-space:normal}.settings-screen .range-line{width:100%}}@media(max-width:440px){.level-filter-actions{display:flex;flex-wrap:wrap}.control-row,.field{grid-template-columns:minmax(110px,1fr) minmax(90px,max-content);gap:calc(8px * var(--ui-scale))}.ui-panel__header{align-items:flex-start}.round-toggle{justify-self:end}.language-row{grid-template-columns:minmax(0,1fr) calc(50px * var(--ui-scale)) minmax(0,1fr)}}@media(max-width:380px){.settings-screen{width:100%;max-width:100%}.control-row,.field{grid-template-columns:minmax(0,1fr);align-items:stretch}.main-title{font-size:clamp(calc(22px * var(--ui-scale) * var(--font-visual-scale)),7.5vw,calc(34px * var(--ui-scale) * var(--font-visual-scale)))}.mode-card__title{font-size:calc(27px * var(--ui-scale) * var(--font-visual-scale))}.mode-intro-card{padding:calc(14px * var(--ui-scale)) calc(12px * var(--ui-scale))}.mode-intro-card p{font-size:calc(16px * var(--ui-scale) * var(--font-visual-scale))}.screen-header--with-accessory{gap:calc(6px * var(--ui-scale))}.screen-header--with-accessory h1{font-size:clamp(calc(16px * var(--ui-scale) * var(--font-visual-scale)),5.2vw,calc(28px * var(--ui-scale) * var(--font-visual-scale)))}.header-health{gap:calc(4px * var(--ui-scale));font-size:min(calc(36px * var(--ui-scale) * var(--font-visual-scale)),calc(var(--icon-button-height) * .8))}.level-card{grid-template-columns:calc(46px * var(--ui-scale)) minmax(0,1fr)}.control-row:has(.round-toggle),.field:has(.round-toggle){grid-template-columns:minmax(0,1fr) max-content;align-items:center}.app-select{justify-self:stretch;width:100%}.range-line{grid-template-columns:minmax(0,1fr) calc(92px * var(--ui-scale));gap:calc(8px * var(--ui-scale))}.range-line output{height:calc(44px * var(--ui-scale));font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale))}}.visual-keyboard{--vk-key-size: clamp(18px, 4.6vw, calc(50px * var(--ui-scale)));--vk-gap: clamp(1px, .55vw, calc(6px * var(--ui-scale)));pointer-events:none;user-select:none;align-self:center;margin:0 auto;padding:calc(12px * var(--ui-scale));box-sizing:border-box;width:fit-content;max-width:100%;border-radius:calc(10px * var(--ui-scale));border:var(--border-width, 2px) solid var(--border);background:var(--panel-bg);display:flex;flex-direction:column;gap:calc(6px * var(--ui-scale));text-transform:none}.visual-keyboard__row{display:flex;flex-wrap:nowrap;gap:var(--vk-gap);justify-content:center;width:fit-content}.visual-keyboard__key--bottom-mod{flex:0 0 auto;width:calc(var(--vk-key-size) * 1.75);min-width:calc(var(--vk-key-size) * 1.1)}.visual-keyboard__row--bottom-pc .visual-keyboard__key--bottom-mod,.visual-keyboard__row--bottom-mac .visual-keyboard__key--bottom-mod{width:calc(var(--vk-key-size) * 1.75)}.visual-keyboard__glyph--mod-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(2px * var(--ui-scale));text-align:center;line-height:1.05}.visual-keyboard__glyph--mod-sub{font-size:calc(8.5px * var(--ui-scale) * var(--font-visual-scale));font-weight:800;line-height:1;text-transform:none}.visual-keyboard__key{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:var(--vk-key-size);height:var(--vk-key-size);padding:calc(4px * var(--ui-scale)) calc(4px * var(--ui-scale)) calc(6px * var(--ui-scale));border-radius:var(--control-radius);border:var(--border-width, 2px) solid var(--border);background:var(--bg-light);color:var(--text);font-size:calc(14px * var(--ui-scale) * var(--font-visual-scale));line-height:1.1;box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color)}.visual-keyboard__key--single{justify-content:center}.visual-keyboard__key--intl{width:var(--vk-key-size)}.visual-keyboard__icon{display:block;width:calc(var(--vk-key-size) * .48);height:calc(var(--vk-key-size) * .48);fill:currentColor}.visual-keyboard__key--target{box-shadow:inset 0 0 0 2px var(--success),0 calc(2px * var(--ui-scale)) 0 var(--shadow-color);background:color-mix(in srgb,var(--bg-light) 50%,var(--success) 16%);color:var(--success)}.visual-keyboard__key--target-modified{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--info) 84%,black 16%),0 calc(2px * var(--ui-scale)) 0 var(--shadow-color);background:color-mix(in srgb,var(--bg-light) 34%,var(--info) 28%);color:color-mix(in srgb,var(--info) 82%,black 18%)}.visual-keyboard__flash-overlay{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2}.visual-keyboard__flash-overlay--correct{animation:visual-keyboard-flash-correct .52s ease-out forwards}.visual-keyboard__flash-overlay--wrong{animation:visual-keyboard-flash-wrong .52s ease-out forwards}@keyframes visual-keyboard-flash-correct{0%{background:color-mix(in srgb,var(--success) 52%,transparent);opacity:1}to{background:transparent;opacity:0}}@keyframes visual-keyboard-flash-wrong{0%{background:color-mix(in srgb,var(--danger) 50%,transparent);opacity:1}to{background:transparent;opacity:0}}.visual-keyboard__key--mod{justify-content:center;font-size:calc(11px * var(--ui-scale) * var(--font-visual-scale));opacity:.8}.visual-keyboard__key--mod.visual-keyboard__key--held{opacity:1;background:color-mix(in srgb,var(--bg-light) 24%,var(--info) 44%);color:color-mix(in srgb,var(--info) 90%,var(--text) 10%);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--info) 74%,white 26%),0 0 calc(12px * var(--ui-scale)) color-mix(in srgb,var(--info) 52%,transparent),0 calc(2px * var(--ui-scale)) 0 var(--shadow-color)}.visual-keyboard__key--backspace,.visual-keyboard__key--tab{width:calc(var(--vk-key-size) * 1.5)}.visual-keyboard__key--caps{width:calc(var(--vk-key-size) * 1.75)}.visual-keyboard__key--enter{width:calc(var(--vk-key-size) * 1.75 + var(--vk-gap))}.visual-keyboard__key--shift-l{width:calc(var(--vk-key-size) * 1.65)}.visual-keyboard__key--shift-r{width:calc(var(--vk-key-size) * 1.85 + var(--vk-gap))}.visual-keyboard__key--space{flex:0 0 calc(var(--vk-key-size) * 5 + var(--vk-gap) * 8);width:calc(var(--vk-key-size) * 5 + var(--vk-gap) * 8);max-width:calc(var(--vk-key-size) * 5 + var(--vk-gap) * 8);justify-content:center}.visual-keyboard__glyph{font-weight:600;text-transform:none}.visual-keyboard__glyph--mod{font-weight:900;text-transform:none}.visual-keyboard__glyph--shift{font-size:calc(12px * var(--ui-scale) * var(--font-visual-scale));opacity:.75;margin-bottom:calc(2px * var(--ui-scale))}.visual-keyboard__glyph--space{font-size:calc(13px * var(--ui-scale) * var(--font-visual-scale));opacity:.45;letter-spacing:.08em;text-transform:none}.visual-keyboard__bump{position:absolute;bottom:calc(8px * var(--ui-scale));left:50%;transform:translate(-50%);width:calc(8px * var(--ui-scale));height:calc(2px * var(--ui-scale));border-radius:calc(2px * var(--ui-scale));background:color-mix(in srgb,var(--text) 40%,transparent)}.touch-keyboard{--touch-key-size: clamp( calc(34px * var(--ui-scale) * var(--touch-key-size-scale)), calc(10vw * var(--touch-key-size-scale)), calc(64px * var(--ui-scale) * var(--touch-key-size-scale)) );--touch-key-gap: 3px;position:relative;display:flex;flex-direction:column;gap:var(--touch-key-gap);width:100%;padding:calc(3px * var(--ui-scale));box-sizing:border-box;user-select:none;touch-action:none;overscroll-behavior:contain}.touch-keyboard--swipe{touch-action:none}.touch-keyboard__swipe-trail{position:absolute;z-index:3;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.touch-keyboard__swipe-trail polyline{fill:none;stroke:color-mix(in srgb,var(--primary) 82%,white 18%);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 calc(4px * var(--ui-scale)) color-mix(in srgb,var(--primary) 72%,transparent));opacity:.86}.touch-keyboard__swipe-trail svg{display:block;width:100%;height:100%;overflow:visible}.touch-keyboard__swipe-dot{position:absolute;z-index:1;width:16px;width:calc(16px * var(--ui-scale));height:16px;height:calc(16px * var(--ui-scale));border-radius:50%;transform:translate(-50%,-50%);background:color-mix(in srgb,var(--primary) 70%,white 30%);filter:drop-shadow(0 0 calc(7px * var(--ui-scale)) color-mix(in srgb,var(--primary) 80%,transparent));opacity:.92;pointer-events:none}.touch-keyboard__swipe-trail.is-fading{animation:touch-keyboard-swipe-fade .26s ease-out forwards}@keyframes touch-keyboard-swipe-fade{0%{opacity:1}to{opacity:0}}.touch-keyboard__row{display:flex;gap:var(--touch-key-gap);width:100%}.touch-keyboard--shifted .touch-keyboard__key--letter{text-transform:uppercase}.touch-keyboard__key{display:flex;flex:1 1 0;align-items:center;justify-content:center;min-width:0;height:var(--touch-key-size);padding:0 calc(3px * var(--ui-scale));border:none;border-radius:calc(7px * var(--ui-scale));background:var(--bg-light);color:var(--text);box-shadow:0 calc(3px * var(--ui-scale)) 0 var(--shadow-color);font:inherit;font-size:clamp(16px,4.6vw,calc(24px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.touch-keyboard__icon{display:block;width:calc(24px * var(--ui-scale));height:calc(24px * var(--ui-scale));background:currentColor;-webkit-mask-image:var(--touch-keyboard-icon);mask-image:var(--touch-keyboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.touch-keyboard__icon--shift{--touch-keyboard-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M320-120v-320H120l360-440%20360%20440H640v320H320Zm80-80h160v-320h111L480-754%20289-520h111v320Zm80-320Z'/%3e%3c/svg%3e")}.touch-keyboard__icon--backspace{--touch-keyboard-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='m456-320%20104-104%20104%20104%2056-56-104-104%20104-104-56-56-104%20104-104-104-56%2056%20104%20104-104%20104%2056%2056Zm-96%20160q-19%200-36-8.5T296-192L80-480l216-288q11-15%2028-23.5t36-8.5h440q33%200%2056.5%2023.5T880-720v480q0%2033-23.5%2056.5T800-160H360ZM180-480l180%20240h440v-480H360L180-480Zm400%200Z'/%3e%3c/svg%3e")}.touch-keyboard__icon--enter{--touch-keyboard-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M360-240%20120-480l240-240%2056%2056-144%20144h488v-160h80v240H272l144%20144-56%2056Z'/%3e%3c/svg%3e")}.touch-keyboard__icon--space{--touch-keyboard-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23e3e3e3'%3e%3cpath%20d='M160-360v-240h80v160h480v-160h80v240H160Z'/%3e%3c/svg%3e")}.touch-keyboard-ghost{--touch-keyboard-ghost-key-size: clamp( calc(34px * var(--ui-scale) * var(--touch-keyboard-ghost-scale)), calc(10vw * var(--touch-keyboard-ghost-scale)), calc(52px * var(--ui-scale) * var(--touch-keyboard-ghost-scale)) );position:fixed;z-index:20;right:0;bottom:calc(var(--safe-area-bottom) + var(--touch-keyboard-ghost-bottom));left:50%;display:flex;flex-direction:column;gap:var(--touch-key-gap);width:min(100%,calc(560px * var(--ui-scale)));padding:calc(3px * var(--ui-scale));border:1px dashed color-mix(in srgb,var(--primary) 62%,transparent);background:color-mix(in srgb,var(--bg) 72%,transparent);opacity:.5;pointer-events:none;transform:translate(-50%)}.touch-keyboard-ghost__row{display:flex;gap:var(--touch-key-gap);width:100%}.touch-keyboard-ghost__key{display:flex;flex:1 1 0;align-items:center;justify-content:center;min-width:0;height:var(--touch-keyboard-ghost-key-size);border:1px solid color-mix(in srgb,var(--primary) 42%,transparent);border-radius:calc(7px * var(--ui-scale));background:color-mix(in srgb,var(--bg-light) 70%,var(--primary) 18%);color:var(--text);font-size:clamp(12px,3.4vw,calc(18px * var(--ui-scale) * var(--font-visual-scale)));font-weight:900;line-height:1}.touch-keyboard-ghost__key--space{flex:4 1 0}.touch-keyboard__key:active,.touch-keyboard__key.is-active{transform:translateY(calc(2px * var(--ui-scale)));background-color:var(--bg-dark);background-color:color-mix(in srgb,var(--bg-light) 58%,var(--primary) 42%);background-image:none;box-shadow:0 calc(1px * var(--ui-scale)) 0 var(--shadow-color)}.touch-keyboard__key.is-pressed{background-color:var(--bg-dark);background-color:color-mix(in srgb,var(--bg-light) 58%,var(--primary) 42%);background-image:none;animation:touch-key-press-flash .12s ease-out both}@keyframes touch-key-press-flash{0%{background-color:var(--bg-dark)}to{background-color:var(--bg-light)}}.app-shell[data-mobile-effects=reduced] .touch-keyboard__key.is-pressed{animation:touch-key-press-flash .12s ease-out both!important}.touch-keyboard__key:disabled{cursor:default;opacity:.9}.touch-keyboard__key.is-target{border-color:var(--success);background:color-mix(in srgb,var(--bg-light) 68%,var(--success) 18%);color:var(--success)}.touch-keyboard__key--control{flex:1.4 1.4 0;font-size:clamp(14px,3.8vw,calc(20px * var(--ui-scale) * var(--font-visual-scale)))}.touch-keyboard__key--space{flex:4 1 0;font-size:clamp(10px,2.8vw,calc(14px * var(--ui-scale) * var(--font-visual-scale)));font-weight:700;opacity:.82}.touch-keyboard--numpad{width:min(100%,calc(520px * var(--ui-scale)));align-self:center}.touch-keyboard__numpad-layout{display:grid;grid-template-columns:minmax(0,.78fr) repeat(3,minmax(0,1fr)) minmax(0,.78fr);gap:var(--touch-key-gap)}.touch-keyboard__numpad-operators,.touch-keyboard__numpad-digits,.touch-keyboard__numpad-actions{display:grid;gap:var(--touch-key-gap);min-width:0}.touch-keyboard__numpad-operators{grid-template-rows:repeat(4,minmax(0,1fr))}.touch-keyboard__numpad-digits{grid-column:2 / span 3;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.touch-keyboard__numpad-actions{grid-column:5;grid-template-rows:repeat(4,minmax(0,1fr))}.touch-keyboard__numpad-actions .touch-keyboard__key--backspace{grid-row:3}.touch-keyboard__numpad-actions .touch-keyboard__key--enter{grid-row:4}.touch-keyboard__numpad-layout .touch-keyboard__key{min-width:0}.touch-keyboard__numpad-layout .touch-keyboard__key--auxiliary{font-size:clamp(13px,3.2vw,calc(18px * var(--ui-scale) * var(--font-visual-scale)))}.touch-keyboard__numpad-layout .touch-keyboard__key--operator{font-size:clamp(18px,5vw,calc(27px * var(--ui-scale) * var(--font-visual-scale)))}@media(orientation:landscape)and (max-height:520px){.touch-keyboard{--touch-key-size: clamp( calc(30px * var(--ui-scale) * var(--touch-key-size-scale)), calc(8vh * var(--touch-key-size-scale)), calc(44px * var(--ui-scale) * var(--touch-key-size-scale)) )}.touch-keyboard__key{font-size:clamp(14px,3.2vh,calc(20px * var(--ui-scale) * var(--font-visual-scale)))}}@media(pointer:coarse)and (orientation:portrait)and (min-width:1100px){.game-screen[data-touch-keyboard=true]{--touch-key-gap: 3px;--touch-keyboard-adaptive-key-size: clamp( 34px, calc((100vw - 39px) / 12.8), 82px );--visual-keyboard-band: calc( 5 * var(--touch-keyboard-adaptive-key-size) + 4 * var(--touch-key-gap) + 6px + var(--touch-keyboard-bottom-space) )}.touch-keyboard{--touch-key-size: var(--touch-keyboard-adaptive-key-size, clamp(34px, calc((100vw - 39px) / 12.8), 82px));width:100%;max-width:none}.touch-keyboard--numpad{--touch-key-size: clamp(40px, calc((100vw - 12px)/5) , 82px)}.touch-keyboard:not(.touch-keyboard--numpad) .touch-keyboard__row{justify-content:center}.touch-keyboard:not(.touch-keyboard--numpad) .touch-keyboard__key{flex:0 0 var(--touch-key-size);width:var(--touch-key-size);box-sizing:border-box}.touch-keyboard:not(.touch-keyboard--numpad) .touch-keyboard__key--control{flex-basis:calc(var(--touch-key-size) * 1.4);width:calc(var(--touch-key-size) * 1.4)}.touch-keyboard:not(.touch-keyboard--numpad) .touch-keyboard__key--space{flex-basis:calc(var(--touch-key-size) * 4);width:calc(var(--touch-key-size) * 4)}.touch-keyboard__key{font-size:clamp(16px,calc(var(--touch-key-size) * .42),30px)}.touch-keyboard__key--control{font-size:clamp(14px,calc(var(--touch-key-size) * .34),25px)}.touch-keyboard__key--space{font-size:clamp(10px,calc(var(--touch-key-size) * .24),17px)}.touch-keyboard__icon{width:clamp(20px,calc(var(--touch-key-size) * .42),34px);height:clamp(20px,calc(var(--touch-key-size) * .42),34px)}.touch-keyboard-ghost{--touch-keyboard-ghost-key-size: clamp(34px, calc((100vw - 39px) / 12.8), 82px);width:calc(100vw - 2 * var(--app-edge));max-width:none}.touch-keyboard-ghost__row{justify-content:center}.touch-keyboard-ghost__key{flex:0 0 var(--touch-keyboard-ghost-key-size);width:var(--touch-keyboard-ghost-key-size);box-sizing:border-box}.touch-keyboard-ghost__key--space{flex-basis:calc(var(--touch-keyboard-ghost-key-size) * 4)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.translation-groups-row{grid-template-columns:minmax(150px,1fr) auto}.translation-groups-row .app-multiselect{justify-self:end;width:max-content;max-width:100%}.targets-hud{position:absolute;z-index:0;top:calc(12px * var(--ui-scale));left:calc(14px * var(--ui-scale));display:flex;align-items:center;gap:calc(8px * var(--ui-scale));pointer-events:none}.targets-hud .fall-pace{position:static}.targets-field--danger{box-shadow:inset 0 0 0 calc(2px * var(--ui-scale)) var(--danger)}.targets-count--danger{border-color:var(--danger);color:var(--danger);opacity:1}.fall-word--bonus{border-color:var(--coin-float-color);box-shadow:0 0 0 calc(2px * var(--ui-scale)) var(--coin-float-glow),0 0 calc(18px * var(--ui-scale)) var(--coin-float-glow)}.fall-word--bonus:not(.is-focused){background:color-mix(in srgb,var(--preview-bg) 84%,var(--coin-float-color) 16%)}.fall-word--bonus:after{content:"★";position:absolute;top:calc(2px * var(--ui-scale));right:calc(2px * var(--ui-scale));z-index:0;color:var(--coin-float-color);font-size:calc(15px * var(--ui-scale));line-height:1;text-shadow:0 0 calc(8px * var(--ui-scale)) var(--coin-float-glow);animation:target-bonus-pulse 1.1s ease-in-out infinite}@keyframes target-bonus-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.targets-full-flash{position:absolute;z-index:6;top:50%;left:50%;transform:translate(-50%,-50%);border:calc(2px * var(--ui-scale)) solid var(--danger);border-radius:var(--control-radius);padding:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale));background:color-mix(in srgb,var(--bg) 78%,var(--danger) 22%);color:var(--danger);font-family:var(--font-mono);font-size:calc(24px * var(--ui-scale) * var(--font-visual-scale));font-weight:900;pointer-events:none;animation:fall-combo-float-pop .9s ease-out forwards}
