/* A continuous drive: scenery moves with typing cadence, the journey spans all prompts. */
.brand{border:0;background:none;padding:0;text-align:left}
.site-header{height:88px}
.landscape{height:270px;background:#e8f2ed;--road:#e8d7ac;--road-edge:#d3bd92;--lane:#fff6dd;--wheel-turn:0deg;--car-x:32%;--bob:0px;--tilt:0deg}
.landscape[data-mode="intro"]{height:220px}
.landscape[data-theme="coast"]{background:#dff0ec;--road:#e4cba5;--road-edge:#cfaf85;--lane:#fff4d8}
.landscape[data-theme="night"]{background:#283b54;--road:#74878a;--road-edge:#627479;--lane:#cdd2ba}
.sky-art{position:absolute;inset:0;pointer-events:none}
.sky-art svg{width:100%;height:100%;display:block}
.world-track{position:absolute;top:0;bottom:0;left:0;width:2400px;display:flex;pointer-events:none;will-change:transform}
.world-track svg{display:block;width:1200px;height:100%;flex:0 0 1200px}
.far-track{z-index:0}.near-track{z-index:1;top:auto;height:300px}.foreground-track{z-index:2;top:auto;height:300px}
.drive-road{position:absolute;bottom:37px;height:52px;left:0;right:0;background:var(--road);border-block:2px solid var(--road-edge);z-index:2;overflow:hidden}
.road-dashes{position:absolute;left:-80px;right:-80px;top:24px;height:3px;background:repeating-linear-gradient(90deg,var(--lane) 0 26px,transparent 26px 80px);will-change:transform}
.scene-sticker{z-index:3;top:20px;left:24px;font-size:10px}
[data-theme="night"] .scene-sticker{color:#d6e1dc;background:#35506ac9;border-color:#5d6c7a}
.drive-car{left:var(--car-x);bottom:42px;width:182px;height:118px;transition:left .55s ease;z-index:5}
.drive-car>svg{overflow:visible;transform:translateY(var(--bob)) rotate(var(--tilt));transition:none}
.car-speech{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffdf5;color:#5d7255;border:1px solid #d9dfc6;border-radius:14px;padding:8px 15px;font-size:11px;font-weight:700;letter-spacing:.04em;box-shadow:0 3px 0 #6e806411;transition:background .2s}
.car-speech:after{content:"";position:absolute;left:45%;bottom:-7px;width:10px;height:10px;background:inherit;border-right:1px solid #d9dfc6;border-bottom:1px solid #d9dfc6;transform:rotate(45deg)}
.car-speech:empty{display:none}
.face{display:none}.face-ready{display:block}
[data-mood="happy"] .face-ready,[data-mood="zoom"] .face-ready,[data-mood="oops"] .face-ready,[data-mood="finish"] .face-ready{display:none}
[data-mood="happy"] .face-happy,[data-mood="zoom"] .face-zoom,[data-mood="oops"] .face-oops,[data-mood="finish"] .face-zoom{display:block}
[data-mood="zoom"] .car-speech{background:#fff0b9;border-color:#d6bc69;color:#776035}
[data-mood="oops"] .car-speech{background:#fff3de;color:#846b54}
.wheel{transform-box:fill-box;transform-origin:center;transform:rotate(var(--wheel-turn))}
.headlight-beam{display:none}[data-theme="night"] .headlight-beam{display:block}
.speed-trails{position:absolute;left:-39px;top:56px;width:46px;height:40px;opacity:0;transition:opacity .25s;pointer-events:none}
.speed-trails i{position:absolute;right:0;top:4px;height:3px;border-radius:3px;background:#fff7d4;width:35px}
.speed-trails i:nth-child(2){top:16px;right:10px;width:48px}.speed-trails i:nth-child(3){top:28px;right:5px;width:29px}
.speed-trails span{position:absolute;left:-15px;top:-20px;color:#f0cb66;font-size:19px}
[data-mood="zoom"] .speed-trails{opacity:1}
.speed-panel{position:absolute;right:24px;top:19px;z-index:4;border:1px solid #fffcf2;background:#fffdf3e8;border-radius:16px;padding:10px 13px;width:126px;box-shadow:0 3px 0 #6d7f4b08}
.speed-label{display:block;font-size:8px;letter-spacing:.12em;color:#849077}
.speed-bars{height:22px;display:flex;align-items:flex-end;gap:4px;margin:5px 0 7px}
.speed-bars i{height:9px;width:16px;background:#e1e6d3;border-radius:3px;transition:background .2s}
.speed-bars i:nth-child(2){height:12px}.speed-bars i:nth-child(3){height:15px}.speed-bars i:nth-child(4){height:18px}.speed-bars i:nth-child(5){height:22px}
.speed-bars i.lit{background:#91ad71}.speed-bars i.lit:nth-child(4){background:#cfba61}.speed-bars i.lit:nth-child(5){background:#e3a76b}
#speed-word{font-size:10px;font-weight:700;color:#70825c;display:block;min-height:14px}
[data-mood="oops"] #speed-word{color:#a27c5f}
.journey{position:absolute;bottom:9px;left:24px;right:24px;display:flex;align-items:center;gap:14px;z-index:5;font-size:9px;color:#587349;letter-spacing:.04em}
.journey-label{white-space:nowrap}.journey-track{height:5px;background:#fff8eabf;flex:1;border-radius:8px;position:relative;margin-right:10px;max-width:480px}
#journey-fill{height:100%;width:0;background:#91ab6b;border-radius:8px;transition:width .3s}
#journey-car{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);color:#dc815c;line-height:1;font-size:14px;transition:left .3s;text-shadow:0 1px 0 #fff5d8}
.journey-flag{position:absolute;right:-10px;top:-8px;font-size:16px;color:#557046}
[data-theme="night"] .journey{color:#d4dfc6}[data-theme="night"] .journey-track{background:#c8d6d355}[data-theme="night"] .journey-flag{color:#e2e6c7}
#journey-count{white-space:nowrap}
.finish-marker{left:89%;bottom:65px;z-index:3;animation:flag-appear .6s ease both}
[data-theme="night"] .finish-marker{filter:brightness(1.45)}
.landscape{--goal-x:84%}
.landscape.arriving .drive-car,.landscape[data-mode="result"] .drive-car{left:var(--goal-x)}
.landscape.arriving .drive-car{animation:arrive 1s cubic-bezier(.2,.6,.2,1) forwards;transition:none}
.landscape.scene-paused .drive-car{animation-play-state:paused}
.landscape.arriving .car-speech{display:none}
.word-celebration{top:96px;left:auto;right:5%;transform:none;min-width:180px;border:1px solid #e2d8a5;border-radius:15px;padding:10px 17px;box-shadow:0 3px 0 #8b995411;z-index:6}
.word-celebration strong{font-size:17px}.word-celebration b{font-size:15px}.word-celebration span{font-size:10px}
.landscape.arriving .word-celebration{left:50%;right:auto;top:35px;transform:translateX(-50%);padding:15px 28px}
.landscape.arriving .word-celebration strong{font-size:26px}
.start-screen{padding:22px 32px 25px}
.start-title .eyebrow{font-size:10px;letter-spacing:.12em}.start-title h1{font-size:30px;line-height:1.5;margin:5px 0 4px;letter-spacing:.035em}.start-title .intro-copy{font-size:11px;margin:0 0 17px}
.theme-picker,.practice-picker fieldset{border:0;padding:0;margin:0;min-width:0}
.theme-picker legend,.practice-picker legend{font-size:10px;letter-spacing:.06em;color:#7e8e73;text-align:left;padding:0;margin:0 0 8px;font-weight:700}
.theme-picker{max-width:620px;margin:0 auto 18px}
.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.theme-choice{position:relative;display:block;cursor:pointer}
.theme-choice input,.pill-options input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.theme-thumb{display:block;height:60px;border:2px solid #e2e6d6;border-bottom:0;border-radius:13px 13px 0 0;position:relative;overflow:hidden;background:#e6f0e8}
.theme-name{display:flex;align-items:center;justify-content:center;gap:7px;height:31px;background:#fffdf5;border:2px solid #e2e6d6;border-top:0;border-radius:0 0 13px 13px;color:#708466;font-size:11px;font-weight:700;letter-spacing:.06em}
.theme-check{font-size:11px;width:15px;height:15px;line-height:15px;background:#5e8157;color:#fffdf2;border-radius:50%;opacity:0}
.theme-choice input:checked~.theme-thumb{border-color:#78926a}.theme-choice input:checked~.theme-name{border-color:#78926a;background:#f0f3e4;color:#45673d}.theme-choice input:checked~.theme-name .theme-check{opacity:1}
.theme-choice input:focus-visible~.theme-thumb{outline:3px solid #325d7f;outline-offset:3px}.theme-choice:hover .theme-name{background:#f4f4e8}
.thumb-sun{position:absolute;width:18px;height:18px;border-radius:50%;background:#f2d07b;right:26px;top:8px}
.thumb-hill{position:absolute;left:-10px;right:-10px;top:29px;height:70px;background:#b4d09f;border-radius:50% 50% 0 0;transform:rotate(-7deg)}
.thumb-road{position:absolute;left:0;right:0;bottom:4px;background:#e6d0a2;height:10px}.thumb-road:after{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:repeating-linear-gradient(90deg,#fff1d4 0 9px,transparent 9px 22px)}
.theme-thumb>span{position:absolute;bottom:14px;left:24px;font-size:24px;line-height:1;color:#729b66}
.coast-thumb{background:#e0f2f0}.coast-thumb .thumb-hill{border-radius:0;background:#a7d5d1;transform:none;top:27px}.coast-thumb .thumb-road{background:#e6c99e}.coast-thumb>span{color:#eaf7ed;bottom:16px;left:22px;font-size:29px}
.night-thumb{background:#304762}.night-thumb .thumb-hill{background:#536b84}.night-thumb .thumb-sun{background:#ffe7b0;box-shadow:-5px -3px 0 0 #304762 inset;width:19px;height:19px}.night-thumb .thumb-road{background:#7d8e8e}.night-thumb>span{color:#f9df9b;font-size:18px;bottom:25px}
.practice-picker{max-width:810px;margin:0 auto 20px;display:grid;grid-template-columns:1fr 1.45fr;gap:25px;text-align:left;border-top:1px solid #eeecde;padding-top:15px}
.practice-picker legend small{font-size:8px;margin-left:7px;font-weight:400;color:#909a81}
.pill-options{display:flex;gap:5px}.pill-options label{position:relative;cursor:pointer;flex:1;min-width:0}
.pill-options label>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:35px;padding:7px 9px;border:1px solid #e0e4d4;border-radius:9px;background:#fffdf5;font-size:10px;white-space:nowrap;font-weight:700;color:#849179;transition:background .15s}
.pill-options input:checked+span{background:#eaf0dd;color:#4c6b41;border-color:#91a57b}.pill-options input:focus-visible+span{outline:3px solid #325d7f;outline-offset:2px}.pill-options label:hover>span{background:#f3f4e7}
.pill-options small{font:8px/1.5 ui-monospace,monospace;opacity:.8;letter-spacing:1px}
.start-action{display:flex;align-items:center;flex-direction:column;gap:13px}.start-action .primary-button{min-height:52px;font-size:17px;min-width:225px;border-radius:14px}.start-course-note{font-size:9px;color:#8a967b;letter-spacing:.07em}
.session-progress{gap:6px}.progress-dot{width:22px;height:22px}.progress-caption{margin-left:3px}
.word-area{grid-template-columns:130px minmax(0,1fr) 87px;padding:16px 35px;gap:17px;min-height:185px}
.letter-tiles{gap:8px}.letter-tile{width:57px;height:66px;font-size:32px;flex:0 1 57px;min-width:0}
.word-picture svg{width:107px;height:94px}.word-picture h1{font-size:17px}.typing-instruction{font-size:11px}
.keyboard-key.outside-practice{opacity:.33;background:#f3f3e9}.keyboard-row.practice-row .keyboard-key:not(.is-next){border-color:#b9c9a6;color:#728665}
.position-art{width:103px;height:87px;background:#f1f3e4;border:1px solid #dde3cd;border-radius:15px;margin:auto;display:flex;flex-direction:column;gap:6px;padding:18px 11px}
.position-art>span{display:flex;gap:3px;justify-content:center}.position-art i{width:10px;height:11px;border-radius:3px;background:#dce4cf}.position-art span.active i{background:#e9ca70;border:1px solid #c4ae65}.word-picture .drill-label{font-size:12px;letter-spacing:.04em;margin-top:8px}
.result-drive{display:inline-block;background:#f3efda;border:1px solid #e7dfbd;border-radius:30px;padding:6px 14px;font-size:10px;letter-spacing:.06em;color:#8c7b49;margin:2px 0 10px}
.completed-words{flex-wrap:wrap;gap:10px;max-width:650px;margin:14px auto 22px}.completed-word{min-width:59px}.completed-word .mini-keys{font:700 13px/42px ui-monospace,monospace;letter-spacing:2px;padding:0 4px}
.result-screen{padding-top:22px}.result-screen h1{font-size:32px}.result-score>span:first-child{font-size:50px}.result-copy{margin:6px 0 8px}
.scene-paused .world-track,.scene-paused .drive-car{will-change:auto}
@keyframes flag-appear{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(-50%)}}
@keyframes arrive{from{left:var(--car-x)}to{left:var(--goal-x)}}
@media(min-width:1000px) and (max-height:850px){.site-header{height:75px}.game-topline{height:40px}.landscape{height:235px}.landscape[data-mode="intro"]{height:190px}.drive-car{width:160px;height:104px;bottom:42px}.car-speech{font-size:10px;padding:6px 12px;bottom:calc(100% + 2px)}.word-area{min-height:171px;padding-top:10px;padding-bottom:10px}.word-picture svg{height:86px}.start-screen{padding-top:16px;padding-bottom:20px}.start-title h1{font-size:27px}.start-title .intro-copy{margin-bottom:12px}.theme-picker{margin-bottom:14px}.theme-thumb{height:50px}.practice-picker{padding-top:12px;margin-bottom:15px}.page-footer{margin-block:18px}.word-celebration{top:79px}}
@media(max-width:900px){.site-header{height:80px}.landscape{height:245px}.landscape[data-mode="intro"]{height:205px}.drive-car{width:160px;height:104px;bottom:42px}.word-area{grid-template-columns:100px minmax(0,1fr) 67px;gap:12px;padding:17px 22px}.letter-tile{width:49px;height:62px;font-size:30px}.letter-tiles{gap:7px}.score-card{padding-left:10px}.practice-picker{gap:15px}.start-title h1{font-size:27px}.word-picture svg{width:95px}.scene-sticker{font-size:9px}.session-progress{gap:5px}.progress-dot{width:20px;height:20px}}
@media(max-width:620px){.site-header{height:72px}.landscape{height:230px;--car-x:38%}.landscape[data-mode="intro"]{height:185px}.scene-sticker{top:12px;left:12px;font-size:8px;padding:6px 9px}.speed-panel{right:10px;top:45px;width:93px;padding:8px 10px;border-radius:12px}.speed-label{font-size:7px}.speed-bars{height:18px;gap:3px;margin-block:4px 5px}.speed-bars i{width:11px}.speed-bars i:nth-child(5){height:18px}#speed-word{font-size:8px}.drive-car{width:133px;height:87px;bottom:45px;left:var(--car-x)}.car-speech{font-size:9px;padding:6px 10px;bottom:calc(100% + 2px)}.speed-trails{transform:scale(.7);transform-origin:right center;left:-37px;top:35px}.journey{left:13px;right:14px;gap:9px;font-size:8px;bottom:10px}.journey-label{font-size:7px}.journey-track{margin-right:7px}.word-celebration{min-width:125px;right:10px;top:119px;padding:8px 10px}.word-celebration strong{font-size:13px}.word-celebration b{font-size:12px}.word-celebration span{font-size:8px;max-width:150px}.landscape.arriving .drive-car,.landscape[data-mode="result"] .drive-car{left:77%}.finish-marker{left:87%;bottom:64px}.finish-marker svg{width:29px;height:43px}.landscape.arriving .word-celebration{top:36px;padding:10px 20px}.landscape.arriving .word-celebration strong{font-size:22px}.start-screen{padding:20px 15px 22px}.start-title .eyebrow{font-size:8px}.start-title h1{font-size:23px;letter-spacing:.01em;margin-top:7px}.start-title .intro-copy{font-size:10px;margin-bottom:17px}.theme-options{gap:8px}.theme-picker{margin-bottom:17px}.theme-thumb{height:52px}.theme-name{height:29px;font-size:10px}.theme-check{width:13px;height:13px;font-size:9px;line-height:13px}.thumb-sun{right:14px}.theme-thumb>span{left:15px}.practice-picker{display:flex;flex-direction:column;gap:15px;padding-top:15px;margin-bottom:22px}.practice-picker fieldset{width:100%}.pill-options label>span{font-size:10px;min-height:37px;padding:6px}.theme-picker legend,.practice-picker legend{font-size:9px;margin-bottom:7px}.word-area{grid-template-columns:77px minmax(0,1fr);padding:17px 11px;gap:9px;min-height:161px}.word-picture svg{width:76px;height:68px}.word-picture h1{font-size:14px;letter-spacing:.1em}.letter-tile{width:35px;height:48px;font-size:23px;flex-basis:35px;border-radius:8px}.letter-tiles{gap:5px}.typing-instruction{font-size:8px;margin-bottom:13px;letter-spacing:0}.gentle-feedback{font-size:8px;letter-spacing:0;min-height:15px;line-height:1.7}.session-progress{gap:3px}.progress-dot{width:17px;height:17px;font-size:7px}.progress-dot.done{font-size:10px}.course-label{font-size:9px;letter-spacing:.02em}.tiny-flower{margin-right:4px;font-size:18px}.position-art{width:73px;height:66px;padding:12px 7px;gap:4px}.position-art i{width:7px;height:9px}.position-art>span{gap:2px}.word-picture .drill-label{font-size:9px;line-height:1.5}.completed-words{max-width:290px;gap:7px}.completed-word{min-width:59px}.result-screen h1{font-size:29px}.result-drive{font-size:9px}.result-score>span:first-child{font-size:47px}}
@media(prefers-reduced-motion:reduce){.world-track{transform:none!important}.road-dashes{transform:none!important}.wheel{transform:none!important}.drive-car>svg{transform:none!important}.speed-trails{display:none}.finish-marker{animation:none}}
@media(max-width:620px){.landscape{--goal-x:77%}}

/* Practice levels and three clearly separated sources of points. */
.difficulty-picker{border:0;padding:0;margin:0 auto 19px;max-width:620px;min-width:0}
.difficulty-picker legend{font-size:10px;font-weight:700;color:#7e8e73;text-align:left;margin-bottom:8px}
.difficulty-picker .pill-options{gap:8px}.difficulty-picker .pill-options label>span{min-height:46px;gap:3px}
.difficulty-picker small{font-size:9px;line-height:1.5;letter-spacing:.02em}.difficulty-picker p{font-size:9px;color:#8a9579;margin:9px 0 0}
.practice-picker{margin-bottom:16px}
.play-stats{display:flex;align-items:center;gap:18px;padding:13px 35px 0;font-size:10px;color:#7c8c6e}
.difficulty-badge{font-size:9px;font-weight:700;padding:5px 11px;border-radius:20px;background:#eef2e0;color:#6b8253}
.difficulty-badge[data-level="normal"]{background:#f5edcf;color:#99834e}.difficulty-badge[data-level="hard"]{background:#f8e6d8;color:#a97958}
.live-streak{margin-left:auto;font-size:10px}.live-streak b{font:700 18px/1 ui-monospace,monospace;color:#6d8555;margin:0 3px}.live-streak>span{color:#bcac72}.live-streak.streak-glow{color:#9d7436}.live-streak.streak-glow b{color:#b17d36}
.live-score{border-left:1px solid #e1e4d2;padding-left:18px;min-width:90px;text-align:right}.live-score b{font:800 22px/1 ui-monospace,monospace;color:#547c53}
.word-area{grid-template-columns:130px minmax(0,1fr);padding-top:9px;min-height:164px}
.letter-tiles{flex-wrap:wrap;row-gap:14px}.letter-tile{flex-shrink:0}
.long-word .letter-tile{width:45px;flex-basis:45px;height:59px;font-size:29px}
.word-picture h1{overflow-wrap:anywhere;line-height:1.5}
.result-screen{padding:22px 32px 27px}.result-stars{font-size:21px;letter-spacing:10px}
.result-achievement{display:flex;justify-content:center;align-items:center;gap:35px;max-width:550px;margin:10px auto 22px}
.rank-badge{flex:0 0 148px;min-height:145px;border-radius:28px;background:#f2e8c5;border:1px solid #dfce96;box-shadow:0 5px 0 #e3d8ae;color:#8c7439;display:flex;align-items:center;flex-direction:column;justify-content:center;position:relative}
.rank-badge:before,.rank-badge:after{content:'✦';position:absolute;top:54px;font-size:14px;opacity:.6}.rank-badge:before{left:12px}.rank-badge:after{right:12px}
.rank-badge>span{font-size:9px;letter-spacing:.08em}.rank-badge>strong{font:900 64px/1.2 ui-rounded,'Arial Rounded MT Bold',sans-serif;letter-spacing:-4px;margin-left:-4px}.rank-badge>small{font-size:9px;border-radius:14px;padding:3px 12px;background:#ffffff70;margin-top:3px}
.rank-badge[data-family="C"]{background:#ebefe1;border-color:#ced8bf;box-shadow:0 5px 0 #dbe3ce;color:#748863}.rank-badge[data-family="B"]{background:#dfefeb;border-color:#bcd9cc;box-shadow:0 5px 0 #cce2d8;color:#5a8977}.rank-badge[data-family="A"]{background:#e7eaf6;border-color:#c7cde6;box-shadow:0 5px 0 #d5dbee;color:#7886a9}
.result-total{text-align:left}.total-label{font-size:11px;color:#889576;letter-spacing:.1em}.result-total .result-score{margin:3px 0 0;white-space:nowrap}.result-total .result-score>span:first-child{font-size:58px;line-height:1.2}.result-total p{font-size:10px;color:#7a8b68;margin:5px 0 0}
.score-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:640px;margin:auto;text-align:left}
.score-breakdown>div{padding:15px 18px 14px;background:#f4f5e9;border:1px solid #e6e9d7;border-radius:15px;position:relative}
.score-breakdown>div:nth-child(2){background:#fbf1dc;border-color:#eee2be}.score-breakdown>div:nth-child(3){background:#edf3ef;border-color:#dce7db}
.score-number{font:10px/1 ui-monospace,monospace;color:#acb69d;letter-spacing:.05em}.score-breakdown h2{font-size:11px;margin:6px 0 7px;font-weight:700;color:#738166;letter-spacing:.03em}.score-breakdown p{margin:0;display:flex;align-items:baseline;gap:6px}.score-breakdown strong{font:800 29px/1.2 ui-monospace,monospace;color:#5d7956}.score-breakdown p span{font-size:9px;color:#889677}.score-breakdown small{display:block;font-size:8px;color:#98a087;margin-top:7px}
.result-records{display:flex;gap:24px;justify-content:center;font-size:10px;color:#8c977e;margin:14px auto 19px}.result-records b{font:700 14px/1 ui-monospace,monospace;color:#6c815b;margin-left:5px}
.rank-ladder{display:flex;justify-content:center;gap:4px;margin:0 auto 20px;max-width:490px}.rank-ladder span{display:grid;place-items:center;flex:1;min-width:0;padding:7px 0;border-radius:7px;font:700 11px/1 ui-monospace,monospace;color:#a2ab93;background:#f3f3e9}.rank-ladder span.achieved{background:#eee1ae;color:#876c29;outline:1px solid #d7bd6d;box-shadow:0 2px 0 #d7bd6d}
.scoring-rules{padding-left:19px;color:#75816b;line-height:1.8}.scoring-rules li{margin-bottom:10px}.rank-thresholds{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;font-size:11px;color:#80906d;margin-bottom:12px}.rank-thresholds span{background:#f0f1e4;border-radius:5px;padding:4px 7px}
@media(max-width:900px){.word-area{grid-template-columns:100px minmax(0,1fr)}.play-stats{padding-inline:22px}.long-word .letter-tile{width:39px;flex-basis:39px;font-size:26px;height:54px}}
@media(max-width:620px){.difficulty-picker{margin-bottom:20px}.difficulty-picker legend{font-size:9px}.difficulty-picker p{font-size:8px;line-height:1.7}.difficulty-picker .pill-options{gap:6px}.play-stats{padding:12px 12px 0;gap:9px;font-size:8px}.difficulty-badge{font-size:8px;padding:5px 8px}.live-streak{font-size:8px}.live-streak b{font-size:15px}.live-score{padding-left:10px;min-width:65px;font-size:8px}.live-score b{font-size:18px}.word-area{grid-template-columns:70px minmax(0,1fr);gap:8px;padding:12px 11px 15px;min-height:151px}.long-word .letter-tile{width:33px;flex-basis:33px;height:44px;font-size:23px}.letter-tiles{gap:12px 5px}.word-picture h1{font-size:12px;letter-spacing:.02em}.result-screen{padding-inline:14px}.result-achievement{gap:19px;margin-block:10px 22px}.rank-badge{flex-basis:111px;min-height:128px;border-radius:23px}.rank-badge>strong{font-size:54px}.rank-badge:before,.rank-badge:after{font-size:9px;top:52px}.rank-badge:before{left:7px}.rank-badge:after{right:7px}.rank-badge>span{font-size:8px}.result-total .result-score>span:first-child{font-size:42px}.result-total p{font-size:8px;max-width:150px;line-height:1.7}.score-breakdown{gap:6px}.score-breakdown>div{padding:10px 8px;border-radius:11px}.score-breakdown h2{font-size:8px;letter-spacing:0;min-height:25px;line-height:1.5;margin-block:5px}.score-breakdown strong{font-size:23px}.score-breakdown p{gap:3px}.score-breakdown p span{font-size:8px}.score-breakdown small{font-size:7px;line-height:1.7}.result-records{font-size:8px;gap:16px}.result-records b{font-size:12px}.rank-ladder{gap:3px}.rank-ladder span{font-size:9px;padding:6px 0}.completed-word .mini-keys{font-size:10px;letter-spacing:1px}}

.rank-basis{display:block;color:#95a084;font-size:9px;margin:5px 0 9px}

/* Children choose a picture. Practice controls belong to the parent dialog. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.parent-button{font-size:9px;gap:5px;color:#8a947e;padding-inline:11px}.parent-button svg{width:17px;height:17px}
.landscape[data-mode="intro"]{height:180px}.landscape[data-mode="result"]{height:170px}
.landscape[data-mode="intro"] .car-speech{display:none}.landscape[data-mode="result"] .car-speech{font-size:10px;padding:6px 11px}
.landscape[data-mode="result"] .car-speech{display:none}
.landscape[data-mode="result"] .drive-car{transition:none}
.start-screen{padding:20px 32px 24px}.start-title h1{font-size:27px;margin:0 0 17px;line-height:1.4}
.theme-picker{max-width:650px;margin-bottom:23px}.theme-options{gap:18px}.theme-thumb{height:103px;border-width:3px;border-radius:17px 17px 0 0}.theme-name{height:34px;border-width:3px;border-radius:0 0 17px 17px;font-size:11px}
.theme-choice input:checked~.theme-thumb,.theme-choice input:checked~.theme-name{border-color:#668c55}.theme-choice:has(input:checked){transform:translateY(-3px)}
.theme-thumb .thumb-sun{width:25px;height:25px;top:14px;right:24px}.theme-thumb .thumb-hill{top:44px}.theme-thumb .thumb-road{height:19px;bottom:7px}.theme-thumb .thumb-road:after{top:8px;height:2px}.theme-thumb>span{bottom:28px;left:18px;font-size:30px}.theme-thumb .thumb-car{position:absolute;width:79px;height:51px;bottom:8px;left:51%;transform:translateX(-50%)}
.night-thumb .thumb-sun{box-shadow:-7px -4px 0 0 #304762 inset}.coast-thumb .thumb-hill{top:42px}.coast-thumb>span{bottom:29px}.night-thumb>span{font-size:21px;bottom:50px}
.picture-action{display:inline-flex;flex-direction:column;gap:3px;min-width:175px;padding:8px 25px 9px;border-radius:19px}
.start-action .picture-action{min-width:225px;min-height:84px;padding-block:8px;gap:2px}
.action-pictures{display:flex;align-items:center;justify-content:center;gap:22px}.picture-action .action-car{width:72px;height:47px}.picture-action .action-arrow{width:31px;height:31px}.picture-action .action-caption{font-size:12px;letter-spacing:.08em;line-height:1.5}
.result-actions{display:flex;align-items:stretch;justify-content:center;gap:15px;margin:0 auto 23px}.result-actions .picture-action{min-width:155px;min-height:76px}.picture-action .repeat-icon{width:39px;height:39px}
.picture-home{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:94px;border:1px solid #d7dfc6;border-radius:17px;background:#f6f6e9;box-shadow:0 3px 0 #dce2cd;color:#7a8d66;padding:7px 16px;font-size:11px;font-weight:700}.picture-home svg{width:49px;height:39px}.picture-home:hover{background:#eef3df}
.result-achievement{margin-bottom:18px}.result-stars{font-size:17px;line-height:1;margin-bottom:8px}.result-screen h1{font-size:28px}.result-screen{padding-top:18px}.result-copy{font-size:10px}.result-drive{margin-bottom:7px;padding-block:4px}.result-total .result-score>span:first-child{font-size:52px}.rank-badge{min-height:128px;flex-basis:140px}.rank-badge>strong{font-size:58px}
.resume-picture{gap:15px}.resume-picture svg{width:37px;height:37px}
.settings-dialog{width:min(590px,calc(100% - 30px));text-align:left}.settings-dialog .settings-intro{margin-bottom:22px}.settings-dialog .practice-picker{display:flex;flex-direction:column;max-width:none;gap:20px;border:0;padding:0;margin-bottom:23px}.settings-dialog fieldset{width:100%}.settings-dialog legend{font-size:12px;margin-bottom:9px}.settings-dialog .pill-options label>span{font-size:11px;padding-block:10px;min-height:42px}.settings-dialog .difficulty-picker{margin-bottom:25px}.settings-dialog .difficulty-picker p{line-height:1.7}.settings-dialog .primary-button{display:flex;min-width:200px;min-height:48px;margin:auto;font-size:14px}.settings-dialog .text-button{font-size:11px;margin-top:17px}
@media(max-width:620px){.letter-tiles.long-word{display:grid;grid-template-columns:repeat(5,33px);justify-content:center}}
@media(min-width:1000px) and (max-height:750px){.landscape[data-mode="intro"],.landscape[data-mode="result"]{height:150px}.start-screen{padding-block:16px 20px}.start-title h1{font-size:24px;margin-bottom:14px}.theme-thumb{height:88px}.theme-picker{margin-bottom:18px}.start-action .picture-action{min-height:76px}.picture-action .action-car{height:40px;width:63px}.result-achievement{margin-block:7px 14px}.result-copy{margin-block:4px}.result-drive{margin-block:0 4px}.result-screen{padding-top:14px}}
@media(max-width:620px){.parent-button{width:33px;padding:0}.parent-button>span{display:none}.landscape[data-mode="intro"]{height:152px}.landscape[data-mode="result"]{height:150px}.start-screen{padding:22px 14px 24px}.start-title h1{font-size:23px;margin-bottom:19px}.theme-options{gap:8px}.theme-picker{margin-bottom:25px}.theme-thumb{height:92px;border-radius:13px 13px 0 0}.theme-name{font-size:9px;height:30px;border-radius:0 0 13px 13px;gap:2px}.theme-thumb .thumb-car{width:58px;height:38px;bottom:11px}.theme-thumb .thumb-sun{width:20px;height:20px;right:10px;top:11px}.theme-thumb>span{font-size:23px;left:6px;bottom:35px}.night-thumb>span{font-size:17px;bottom:56px}.theme-thumb .thumb-hill{top:39px}.theme-thumb .thumb-road{bottom:10px}.start-action .picture-action{min-width:190px;min-height:86px}.result-actions{gap:12px;margin-bottom:22px}.result-actions .picture-action{min-width:150px;min-height:76px}.picture-home{min-width:90px}.result-total .result-score>span:first-child{font-size:42px}.rank-badge{flex-basis:111px;min-height:125px}.rank-badge>strong{font-size:54px}.settings-dialog{padding:29px 20px}.settings-dialog .pill-options label>span{font-size:9px}.settings-dialog legend{font-size:11px}}

/* Choose what to practice; the background follows the chosen subject. */
.landscape[data-mode="intro"]{display:none}
.start-screen{padding:26px 32px 28px}.start-title h1{margin:5px 0 21px;font-size:31px}.start-title .eyebrow{font-size:10px}
.genre-picker{padding:0;border:0;max-width:680px;margin:0 auto 22px;min-width:0}.genre-picker legend,.child-difficulty legend{font-size:10px;font-weight:700;color:#7e8e73;text-align:left;margin-bottom:10px;letter-spacing:.06em}
.genre-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.genre-choice{position:relative;cursor:pointer;display:block}.genre-choice input,.level-choice input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.genre-art{display:flex;align-items:center;justify-content:center;min-height:122px;gap:0;background:#f1f4e6;border:3px solid #e2e6d6;border-bottom:0;border-radius:20px 20px 0 0;padding:12px 4px 0}.genre-art svg{width:90px;height:90px;min-width:0}.genre-art svg:nth-child(2){width:74px;height:74px;margin-left:-12px;transform:translateY(14px)}
[data-genre-art="food"]{background:#fbefdf}[data-genre-art="everyday"]{background:#eaf0f1}
.genre-name{display:flex;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:700;padding:10px 3px 13px;color:#75836a;border:3px solid #e2e6d6;border-top:0;border-radius:0 0 20px 20px;background:#fffdf5}.genre-name i,.level-choice i{font-style:normal;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#608455;color:#fff;opacity:0;font-size:11px}
.genre-choice input:checked~.genre-art,.genre-choice input:checked~.genre-name{border-color:#72945e}.genre-choice input:checked~.genre-name{background:#eef3e2;color:#4d713d}.genre-choice input:checked~.genre-name i,.level-choice input:checked+span i{opacity:1}.genre-choice input:focus-visible~.genre-art,.level-choice input:focus-visible+span{outline:3px solid #325d7f;outline-offset:3px}.genre-choice:hover .genre-name{background:#f0f4e5}
.child-difficulty{max-width:680px;margin-bottom:24px}.difficulty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.level-choice{position:relative;cursor:pointer}.level-choice>span{display:flex;flex-direction:column;align-items:center;gap:5px;position:relative;background:#fffdf5;border:2px solid #e2e6d6;border-radius:15px;padding:9px 5px 10px;color:#7f8e72;min-height:90px}.level-choice .level-stars{font-size:25px;letter-spacing:5px;color:#d6b55f;line-height:1.15;margin-left:5px}.level-choice b{font-size:11px}.level-choice small{font-size:9px;line-height:1.2;opacity:.85}.level-choice i{position:absolute;right:9px;bottom:11px;width:14px;height:14px;font-size:9px}.level-choice input:checked+span{border-color:#8eaa73;background:#eef3df;color:#4c6c3e}.level-choice input:checked+span .level-stars{color:#b7973e}
.start-action{flex-direction:row;justify-content:center;gap:18px}.start-action .picture-action{min-height:85px}.listen-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#fff9e5;border:2px solid #e0d8b1;color:#9b864c;border-radius:14px;box-shadow:0 3px 0 #e6dfc1;font-size:10px;font-weight:700;padding:7px 10px}.listen-button svg{width:24px;height:24px;fill:currentColor}.listen-button:hover{background:#fff1bb}.listen-button.is-speaking{background:#f5e4a7;border-color:#c6ab57;box-shadow:0 0 0 5px #e3c96a30}.home-listen{flex-direction:column;width:76px;min-height:81px;border-radius:19px;gap:7px}.home-listen svg{width:29px;height:29px}.word-listen{margin:7px auto 0;min-width:58px;padding:5px 9px;border-radius:11px}.word-picture .word-listen svg{width:20px;height:20px}.word-area{min-height:190px}.word-picture>div>svg{height:83px}.word-picture h1{margin-block:4px 0}
.voice-caption{min-height:17px;text-align:center;font-size:10px;color:#879170;margin:13px auto 0;line-height:1.7;max-width:750px}.voice-caption[data-state="playing"]:before{content:'♪ ';color:#a88c44}.voice-caption[data-state="error"]{color:#9b7551}
.keys-preview{min-height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;max-width:680px;margin:0 auto 22px;background:#f1f4e6;border:2px solid #dce5ce;border-radius:20px;color:#778a65;font-size:13px;font-weight:700}.keys-preview .position-art{transform:scale(1.2);margin:7px auto 8px}
@media(min-width:1000px) and (max-height:750px){.start-screen{padding-block:19px 23px}.start-title h1{font-size:27px;margin-bottom:15px}.genre-art{min-height:102px;padding-top:5px}.genre-picker{margin-bottom:17px}.genre-name{padding-block:7px 10px}.child-difficulty{margin-bottom:20px}.level-choice>span{min-height:82px;padding-block:8px}.word-area{min-height:175px}}
@media(max-width:620px){.start-screen{padding:23px 14px}.start-title h1{font-size:26px;margin-bottom:20px}.start-title .eyebrow{font-size:8px}.genre-options,.difficulty-options{gap:8px}.genre-art{min-height:104px;padding-inline:4px;border-radius:14px 14px 0 0}.genre-art svg{width:62px;height:69px}.genre-art svg:nth-child(2){width:43px;height:49px;margin-left:-21px;transform:translateY(22px)}.genre-name{font-size:10px;gap:3px;border-radius:0 0 14px 14px;padding-block:9px}.genre-name i{width:13px;height:13px;font-size:9px}.genre-picker{margin-bottom:20px}.genre-picker legend,.child-difficulty legend{font-size:9px}.level-choice>span{min-height:87px;border-radius:12px}.level-choice .level-stars{font-size:21px;letter-spacing:2px;margin-left:2px}.level-choice b{font-size:10px}.level-choice small{font-size:8px}.level-choice i{right:5px;bottom:8px;width:11px;height:11px;font-size:8px}.child-difficulty{margin-bottom:24px}.home-listen{width:64px;min-height:82px}.start-action{gap:13px}.start-action .picture-action{min-width:170px}.word-area{min-height:178px}.word-picture>div>svg{height:65px}.word-picture .word-listen svg{width:18px;height:18px}.word-listen{min-width:51px;font-size:8px;padding:5px 6px;gap:3px}.voice-caption{font-size:8px;padding-inline:15px;min-height:16px}.page-footer{margin-top:12px}}

.rank-explanation{max-width:620px;margin:0 auto 22px;text-align:left;border:1px solid #e1e5d8;border-radius:12px;padding:11px 15px;color:#6b7b61;font-size:11px;line-height:1.8;background:#fbfcf6}.rank-explanation summary{cursor:pointer;font-weight:700}.rank-explanation p{margin:10px 0}

.rank-progress{display:block;color:#647e50;font-size:10px;margin:5px 0}.rank-thresholds .achieved{background:#eee1ae;color:#715b24;outline:1px solid #d7bd6d}.score-adjustments{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 16px;max-width:640px;margin:9px auto 0;padding:9px 14px;border-radius:10px;background:#f7eee5;color:#92735a;font-size:10px}.score-adjustments strong{font-size:14px}.score-adjustments small{flex-basis:100%;text-align:right;font-size:9px}

/* An explicit picture button keeps the title screen within reach during play. */
.title-home-button{min-height:46px;height:auto;border:2px solid #c6d5b7;border-radius:14px;background:#f1f5e7;padding:5px 12px;gap:7px;font-size:12px;color:#4f7049;box-shadow:0 2px 0 #dce2cd}
.title-home-button svg{width:31px;height:27px}
.title-home-button:hover{background:#e6efda;border-color:#99b285}
.pause-home-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;text-decoration:none;font-size:12px}
.pause-home-button svg{width:29px;height:25px}
@media(max-width:620px){.title-home-button{width:44px;min-height:44px;padding:5px;flex-shrink:0}.title-home-button>span{display:none}.site-header{gap:10px}}
@media(max-width:360px){.site-header:has(.title-home-button:not([hidden])) .brand{font-size:14px;gap:5px}.header-actions{gap:5px}}
