/* Practice stays in one viewport on laptops, while the target scrolls only vertically. */
.header-logout{white-space:nowrap}.family-fields{border:1px solid #d6e3ce;border-radius:13px;padding:16px;display:grid;gap:13px}.family-fields legend{font-weight:850;font-size:.88rem;padding:0 7px}#family-settings .btn{margin-top:14px}#family-settings hr{border:0;border-top:1px solid var(--line);margin:24px 0}.play-budget{font-size:.77rem;font-weight:850;color:#825312;white-space:nowrap}.game-mode .topbar{height:56px}.game-mode .game-main{padding:14px 22px;max-width:1400px}.game-mode .game-top{margin-bottom:10px;gap:14px}.game-mode .game-heading{margin-bottom:12px}.game-mode .game-heading h1{font-size:1.6rem}.game-mode .game-board{padding:16px}.game-mode .game-layout{grid-template-columns:minmax(0,1fr) 185px;gap:18px}.game-mode .game-stats{margin-bottom:10px}.game-mode .game-stats strong{font-size:1.1rem;margin-top:2px}.game-mode .game-scene{height:44px;margin-bottom:10px}.game-mode .scene-track{bottom:8px}.game-mode .scene-runner{font-size:28px;bottom:8px}.game-mode .scene-finish{font-size:23px;bottom:9px}.game-mode .scene-word{top:5px;padding:3px 12px;font-size:1rem}.game-mode .typing-area{min-height:0;height:128px;padding:12px;overflow:hidden}.game-mode .typing-text{font-size:1.35rem;line-height:1.65;letter-spacing:0;max-height:none;height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;overflow-anchor:none;scroll-behavior:auto;white-space:pre-wrap;word-break:normal;position:relative}.typing-text .mistake{background:#ffdad6!important;color:#b01824!important;border-bottom:3px solid #cf2233!important;animation:none!important}.game-mode .capture{overflow:hidden}.game-mode .game-hint{margin:5px 0;min-height:18px;font-size:.77rem}.game-mode .finger-guide{margin-top:8px;gap:12px}.game-mode .start-overlay{padding:10px 15px}.game-mode .start-overlay>.pet{display:none}.game-mode .start-overlay h2{font-size:1.4rem}.game-mode .start-overlay p{margin:8px 0;font-size:.88rem;line-height:1.5}.game-mode .start-overlay .notice{padding:8px 12px}.game-mode .start-overlay .btn{min-height:40px;padding:10px 18px;margin-top:6px}.keyboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.72rem;color:#667660;margin:8px 0}.keyboard-toolbar button{font-size:.72rem;text-decoration:underline;text-underline-offset:3px;color:#235e45;padding:3px}.physical-keyboard{--key-height:34px;--key-gap:4px;background:#e4e9e0;border:1px solid #c9d3c2;border-bottom:5px solid #b9c5b1;border-radius:13px;padding:9px;display:grid;grid-template-columns:minmax(0,1fr) 12%;gap:7px;user-select:none}.physical-keyboard.full-keyboard{grid-template-columns:minmax(0,1fr) 11% 18%}.keyboard-functions{grid-column:1/-1;display:grid;grid-template-columns:repeat(64,minmax(0,1fr));gap:var(--key-gap);height:21px}.keyboard-main{display:grid;grid-template-columns:repeat(60,minmax(0,1fr));grid-template-rows:repeat(5,var(--key-height));gap:var(--key-gap)}.keyboard-navigation{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(5,var(--key-height));gap:var(--key-gap)}.keyboard-numpad{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));grid-template-rows:repeat(5,var(--key-height));gap:var(--key-gap)}.physical-key{min-width:0;position:relative;display:flex;align-items:center;justify-content:center;background:#fafbf8;border:1px solid #c3cdbd;border-bottom:3px solid #bbc6b4;border-radius:5px;font-family:inherit;line-height:1.1;color:#354c30;transition:background .08s;overflow:hidden;box-shadow:0 1px 0 #fefefe inset}.physical-key .key-label{font-size:clamp(.45rem,.65vw,.68rem);font-weight:800;text-align:center;line-height:1.1}.physical-key .key-primary{font-family:'Courier New',monospace;font-size:clamp(.75rem,1.05vw,1.05rem);font-weight:750}.physical-key .key-secondary{position:absolute;top:2px;left:4px;font-size:.57rem;line-height:1}.physical-key .key-alt{position:absolute;bottom:3px;right:3px;font-size:.55rem;color:#5f6657;line-height:1}.physical-key:has(.key-secondary) .key-primary{transform:translate(3px,4px);font-size:.82rem}.physical-key.enter-iso{clip-path:polygon(0 0,100% 0,100% 100%,17% 100%,17% 52%,0 52%);z-index:1}.physical-key.enter-iso .key-label{transform:translateY(8px)}.physical-key.home-key:after{content:'';position:absolute;bottom:3px;left:40%;width:20%;height:2px;background:#6b7d62;border-radius:2px}.physical-key.next{background:#d5efa4!important;border-color:#7dab4a;box-shadow:0 0 0 1px #87b45a inset}.physical-key.pressed{background:#b5d9e5;border-bottom-width:1px;transform:translateY(1px)}.physical-key.wrong{background:#ffced0!important;color:#a91525;border-color:#c92c3b}.physical-key[data-finger="0"],.physical-key[data-finger="9"]{background-color:#faeeea}.physical-key[data-finger="1"],.physical-key[data-finger="8"]{background-color:#faf1dd}.physical-key[data-finger="2"],.physical-key[data-finger="7"]{background-color:#edf4e1}.physical-key[data-finger="3"],.physical-key[data-finger="6"]{background-color:#e6f1f6}.game-mode .rain .scene-word{animation:none}.game-mode .game-pet .pet{font-size:70px}.game-mode .game-pet .speech{font-size:.8rem;padding:10px}.game-mode .sidebar-bottom{gap:10px}.game-mode .mini-promo{display:none}.game-mode .game-layout .game-pet .smallcaps{font-size:.65rem}.game-mode #toast{bottom:10px}.admin-actions{flex-wrap:wrap;max-width:360px}
@media(max-height:850px) and (min-width:900px){.game-mode .game-layout{grid-template-columns:minmax(0,1fr)}.game-mode .game-pet{display:none}.game-mode .game-main{max-width:1160px;padding:10px 20px}.game-mode .game-heading{margin-bottom:8px}.game-mode .game-top{margin-bottom:6px}.game-mode .physical-keyboard{--key-height:29px}.game-mode .typing-area{height:108px}.game-mode .game-board{padding:12px 16px}.game-mode .finger-guide{margin-top:5px}.game-mode .game-scene{height:36px;margin-bottom:6px}.game-mode .game-stats{margin-bottom:8px}.game-mode .game-hint{margin:3px 0}.game-mode .start-overlay p:last-of-type{display:none}}
@media(max-height:700px) and (min-width:900px){.game-mode .game-heading .eyebrow{display:none}.game-mode .game-heading h1{font-size:1.25rem}.game-mode .game-top .btn{padding:5px 12px;min-height:31px}.game-mode .physical-keyboard{--key-height:26px;padding:7px}.game-mode .typing-area{height:85px}.game-mode .game-stats{font-size:.7rem}.game-mode .game-stats strong{font-size:.95rem}.game-mode .finger-guide{display:none}}
@media(max-width:1050px){.game-mode .game-layout{grid-template-columns:minmax(0,1fr)}.game-mode .game-pet{display:none}.physical-key .key-label{font-size:.56rem}.physical-key .key-secondary,.physical-key .key-alt{font-size:.5rem}}
@media(max-width:760px){.game-mode .game-main{padding:12px}.game-mode .game-board{padding:12px}.physical-keyboard{--key-height:32px;--key-gap:2px;padding:6px;gap:4px}.physical-key .key-primary{font-size:.85rem}.physical-key .key-label{font-size:.48rem}.keyboard-functions{height:19px}.physical-key .key-alt{right:1px;bottom:2px}.physical-key .key-secondary{left:2px;top:1px}.game-mode .typing-area{height:130px}.game-mode .game-hint{font-size:.7rem}.keyboard-toolbar{font-size:.64rem}.keyboard-toolbar button{font-size:.64rem}.game-mode .play-budget{font-size:.67rem}.header-logout{font-size:.72rem!important;padding:7px 10px!important;min-height:32px!important}}
@media(max-width:540px){.topbar:before{font-size:1rem}.top-actions .lang{max-width:76px}.top-actions .avatar-small{display:none}.header-logout{display:inline-flex!important}.game-mode .physical-keyboard{--key-height:29px;--key-gap:1px;padding:4px}.physical-key{border-bottom-width:2px;border-radius:3px}.physical-key .key-label{font-size:.4rem}.physical-key .key-primary{font-size:.66rem}.physical-key:has(.key-secondary) .key-primary{font-size:.6rem;transform:translate(1px,5px)}.physical-key .key-secondary,.physical-key .key-alt{font-size:.38rem}.game-mode .game-main{padding:10px 6px}.game-mode .game-board{padding:10px 7px}.game-mode .game-heading h1{font-size:1.3rem}.game-mode .game-top{flex-wrap:wrap}.game-mode .game-label{font-size:.6rem}.game-mode .play-budget{margin-left:auto}.keyboard-functions{height:17px}.keyboard-toolbar{font-size:.59rem}.keyboard-toolbar button{font-size:.59rem}.game-mode .finger-guide{font-size:.59rem;gap:7px}.game-mode .typing-text{font-size:1.15rem}.game-mode #toast{bottom:78px}}
.phone-play-notice{margin:0 0 18px}[data-phone-blocked]{opacity:.55;cursor:not-allowed!important}
[hidden]{display:none!important}.keyboard-setup{display:grid;gap:10px}.keyboard-setup>small{line-height:1.5}.setup-keyboard-details{margin:4px 0 10px}.setup-keyboard-details summary{cursor:pointer;color:#176749;font-weight:700;font-size:.85rem}.setup-keyboard-preview{margin-top:12px;--key-height:30px}.setup-keyboard-preview .keyboard-toolbar button{display:none}.setup-keyboard-preview .key-label{font-size:7px}.setup-keyboard-preview .physical-keyboard{padding:5px;gap:3px}.setup-keyboard-preview .key-primary{font-size:11px}.setup-keyboard-preview .key-secondary,.setup-keyboard-preview .key-alt{font-size:7px}.keyboard-check-panel{padding:18px;background:#f0f5e9;border:1px solid #c5d9b5;border-radius:16px;display:grid;gap:12px}.keyboard-check-panel h4,.keyboard-check-panel p{margin:0}.keyboard-check-panel p{font-size:.85rem;line-height:1.5}.probe-drawing{display:grid;gap:3px}.probe-drawing>div{display:flex;gap:3px}.probe-drawing span{flex:1;background:white;border:1px solid #becdb7;border-bottom-width:3px;border-radius:4px;min-width:0;height:24px;font-size:9px;text-align:center;line-height:22px}.probe-drawing .probe-target{background:#176749;color:white;font-size:18px;box-shadow:0 0 0 2px #a6c75d}.probe-error{color:#a53c3c}.keyboard-probe-input:focus{outline:3px solid #8cac4b}#support-contact{position:fixed;bottom:18px;right:20px;z-index:30;box-shadow:0 5px 25px #173d3520;border-radius:12px}body:has(#support-contact) .main{padding-bottom:85px}@media(max-width:600px){#support-contact{right:10px;bottom:10px}#support-contact a{font-size:.75rem}.setup-keyboard-preview .key-label{font-size:5px}.setup-keyboard-preview .key-primary{font-size:8px}.setup-keyboard-preview .key-secondary,.setup-keyboard-preview .key-alt{font-size:5px}}
