@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
.race-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:23px;margin-top:22px;border-radius:20px;background:#f3e4bf;border:1px solid #e9d49d}.race-banner h3{font-size:23px;margin-top:5px}.race-banner p{font-size:13px;line-height:1.5;margin-top:7px;color:#685c3b}.race-banner .primary{flex-shrink:0}.race-page{max-width:520px;margin:auto}.race-page h1{margin:10px 0;font-size:36px}.race-lobby{display:flex;flex-direction:column;align-items:center;gap:17px;text-align:center;padding:24px;background:#fff;border:1px solid #e5e7df;border-radius:24px;margin-top:20px}.race-car-preview{width:min(100%,300px);background:#e8eddf;border-radius:20px}.race-car-preview svg{width:100%;display:block}.race-lobby p{line-height:1.6;font-size:14px;color:#61715e}.race-lobby select{font:inherit;padding:13px;border:1px solid #c4cfbb;border-radius:12px;width:100%;background:#f7f8f2;color:var(--green)}.race-lobby .primary{width:100%}.race-lobby label{font-size:13px}.race-hud{display:flex;align-items:center;justify-content:space-between;background:#e6ecd9;padding:8px 15px;border-radius:14px 14px 0 0;font-size:15px}.race-stage{position:relative;max-width:360px;margin:auto;background:#43564f;overflow:hidden;border-radius:0 0 18px 18px}.race-stage canvas{display:block;width:100%;height:auto;max-height:53dvh;object-fit:contain;touch-action:none}.race-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;text-align:center;background:#193d34d9;color:#fff;padding:24px}.race-overlay[hidden]{display:none}.race-overlay p{line-height:1.5}.race-overlay .primary{background:#f5be55;color:#233c31;min-width:180px}.race-controls{display:flex;gap:14px;margin-top:14px}.race-controls button{width:50%;font-size:18px;min-height:62px;touch-action:manipulation;user-select:none}.race-page .section-title{gap:12px;margin-top:10px}.race-page .section-title h2{font-size:22px}.race-page .section-title button{font-size:12px;padding:10px}.race-page .footer-note{margin:13px 0}@media(max-width:650px){.race-banner{flex-direction:column;align-items:stretch;padding:19px}.race-banner .primary{width:100%}.race-banner h3{font-size:22px}}
.activity .letter.word-badge{gap:3px;width:104px;font-size:24px;padding:8px}.word-badge>span{display:grid;place-items:center;width:20px;height:32px;border-radius:5px;background:#ffffffb8;box-shadow:0 2px 0 #6975a520}.activity .letter.phrase-badge{position:relative;width:104px;font-size:17px;line-height:1.2;justify-content:flex-start;padding:7px 13px;border-radius:14px 14px 14px 4px}.phrase-badge b{font-weight:700}.phrase-bubble-tail{position:absolute;bottom:-5px;left:12px;width:10px;height:10px;transform:skewY(-35deg);background:var(--tint)}
.reward-dialog{position:fixed;inset:0;margin:auto;width:min(390px,calc(100vw - 36px));max-height:calc(100dvh - 36px);padding:0;border:0;border-radius:28px;background:transparent;color:var(--green);overflow:auto;box-shadow:0 25px 90px #10271c55;animation:reward-arrive 1.8s cubic-bezier(.2,.65,.3,1) both}.reward-dialog::backdrop{background:#10271cb0;backdrop-filter:blur(5px)}.reward-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 22px 24px;background:radial-gradient(ellipse at 50% 50%,#fff9df 0%,#f0edda 65%,#e1e9d7 100%);border:3px solid #f0c465;border-radius:28px;overflow:hidden}.reward-emblem{display:grid;place-items:center;border-radius:50%;height:44px;width:44px;background:#f7cb64;color:#765118;font-size:28px;margin-bottom:15px}.reward-card h2{font-size:34px;margin:8px 0}.reward-card #reward-description{font-size:14px;color:#60715d;line-height:1.5}.reward-car{width:100%;margin:8px 0;background:radial-gradient(ellipse,#fffaf0 20%,transparent 70%)}.reward-car svg{width:100%;display:block}.reward-card h3{font-size:24px}.reward-type{font-size:13px;color:#60715d;margin:5px 0 20px}.reward-card .primary{width:100%;background:#204e3b;min-height:56px;font-size:17px}@keyframes reward-arrive{0%{transform:translateY(60px) rotate(-720deg) scale(.12);opacity:0}12%{opacity:1}65%{transform:translateY(-8px) rotate(12deg) scale(1.04)}85%{transform:translateY(3px) rotate(-4deg) scale(.99)}100%{transform:translateY(0) rotate(0) scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.reward-dialog{animation:none}.reward-dialog::backdrop{backdrop-filter:none}}@media(max-height:600px){.reward-card{padding:14px 20px}.reward-emblem{display:none}.reward-card h2{font-size:27px}.reward-car{max-width:220px}.reward-type{margin-bottom:12px}}
.settings select{width:100%;max-width:100%;font:inherit;color:var(--green);background:#f7f8f2;border:1px solid #c8d2bf;border-radius:12px;padding:13px;min-height:48px}.settings select:focus-visible{outline:3px solid #db8b22;outline-offset:3px}
.mystery-car{aspect-ratio:360/190;display:flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-size:clamp(48px,10vw,90px);font-weight:700;color:#8b9986;user-select:none}
.canvas-wrap.trace-success{background:#ccefd7;border:2px solid #348454;animation:trace-pulse 1s ease-in-out 2}.canvas-wrap.trace-retry{background:#ffdfb8;border:2px solid #c47b27;animation:trace-pulse 1s ease-in-out 2}.trace-result{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.trace-success-content{display:grid;justify-items:center;gap:14px;padding:22px 32px;border-radius:20px;background:#e7f9ecf0;box-shadow:0 6px 25px #163b2520;pointer-events:auto}.trace-success-content strong{font-size:30px;color:#23653b}.trace-success-content button{min-width:180px}.trace-retry-label{position:absolute;bottom:9px;background:#fff3e3;padding:6px 12px;border-radius:10px;font-weight:700;font-size:13px;color:#895014}@keyframes trace-pulse{50%{background-color:#fafaf6}}@media(prefers-reduced-motion:reduce){.canvas-wrap.trace-success,.canvas-wrap.trace-retry{animation:none}}
:root{font-family:'DM Sans',sans-serif;color:#203d35;background:#f7f5ef;font-synthesis:none;--green:#183e35;--yellow:#f6bd55;--muted:#6f7c73}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #db8b22;outline-offset:4px}button:disabled{opacity:.55;cursor:default}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Outfit,sans-serif}header{max-width:1100px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:25px 28px}.brand{display:flex;align-items:center;gap:10px;font-family:Outfit;font-weight:700;font-size:20px}.brand span:first-child{background:var(--green);color:#fff;padding:9px;border-radius:12px}.plain{background:none;border:0;padding:12px;border-radius:12px}.parent{font-size:13px;color:var(--muted)}main{max-width:1044px;margin:15px auto 100px;padding:0 24px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:var(--muted)}hero,.hero{position:relative;background:#e8eddf;border-radius:28px;padding:38px;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden;gap:15px}.hero h1{font-size:clamp(35px,5vw,56px);line-height:1.05;margin:13px 0 16px;letter-spacing:-1.5px}.hero p{line-height:1.6;max-width:320px;color:#576b5c}.pill{font-size:11px;display:inline-block;padding:7px 11px;border-radius:20px;background:#ffffffaa;font-weight:700}.primary{background:var(--green);color:white;border:0;border-radius:14px;padding:16px 24px;font-weight:700;min-height:52px}.hero .primary{margin-top:24px}.scene{position:relative;align-self:center}.scene:before{content:'';position:absolute;inset:15% 0;background:#d7dfc7;border-radius:50%}.scene svg{position:relative;width:100%;transform:rotate(-7deg)}.scene .badge{position:absolute;bottom:0;right:10px;background:#fffaf0;border-radius:13px;padding:12px;font-size:12px;transform:rotate(5deg);box-shadow:0 8px 25px #203d3510}.section-title{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px}.section-title h2{font-size:24px}.section-title small{color:var(--muted)}.activities{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.activity{background:#fff;border:1px solid #e5e7df;border-radius:20px;text-align:left;padding:21px;position:relative;min-height:184px;transition:transform .15s}.activity:hover{transform:translateY(-3px)}.activity .letter{font-family:Outfit;font-size:30px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;background:var(--tint);height:60px;min-width:60px;padding:8px;border-radius:16px;margin-bottom:17px}.activity h3{font-size:19px;margin-bottom:5px}.activity p{font-size:12px;color:var(--muted)}.activity .arrow{position:absolute;right:18px;bottom:20px}.garage-banner{margin-top:24px;background:#fff;border:1px solid #e5e7df;border-radius:20px;padding:22px;display:flex;align-items:center;gap:22px}.garage-banner svg{width:135px}.garage-banner p{font-size:13px;color:var(--muted);margin-top:6px}.garage-banner button{margin-left:auto}.progress{display:flex;gap:6px;margin-top:12px}.progress i{height:7px;width:33px;background:#e6e9df;border-radius:10px}.progress i.on{background:#d99f37}.footer-note{text-align:center;font-size:12px;color:var(--muted);margin:25px 0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fffffff5;backdrop-filter:blur(12px);border-top:1px solid #e5e7df;display:flex;justify-content:center;gap:50px;padding:9px 18px calc(9px + env(safe-area-inset-bottom));z-index:5}.bottom-nav button{border:0;background:none;color:var(--muted);font-size:11px;display:grid;gap:3px;min-width:70px;padding:4px}.bottom-nav button.active{color:var(--green);font-weight:700}.bottom-nav b{font-size:21px}.exercise{max-width:650px;margin:auto}.back{margin-bottom:14px}.tabs{display:flex;background:#e9ece3;padding:5px;border-radius:15px;margin:22px 0}.tabs button{flex:1;border:0;padding:13px 8px;border-radius:11px;background:none;font-weight:600}.tabs button.active{background:#fff;box-shadow:0 2px 5px #00000008}.task-card{background:white;border:1px solid #e5e7df;border-radius:24px;text-align:center;padding:26px 20px}.task-card h2{font-size:22px}.target{font-family:Outfit;font-size:clamp(52px,12vw,85px);letter-spacing:6px;padding:24px 0;overflow-wrap:anywhere}.target.phrase{font-size:36px;letter-spacing:1px}.task-card .subtitle{color:var(--muted);font-size:14px;margin:10px 0 20px;line-height:1.5}.actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px}.secondary{background:#f1f2e9;border:1px solid #e3e7d9;border-radius:13px;padding:14px 17px;font-weight:600;min-height:48px}.help{background:#fff3d6;border-color:#f5dfac}.feedback{padding:14px;margin-top:16px;border-radius:12px;background:#edf2e5;line-height:1.5;font-size:14px}.helpbox{background:#fff6e3}.micro-note{color:var(--muted);font-size:12px;line-height:1.6;margin-top:15px}.canvas-wrap{position:relative;height:230px;background:#fafaf6;border:1px dashed #c4ccbd;border-radius:16px;overflow:hidden;margin-top:15px}.canvas-wrap canvas{width:100%;height:100%;touch-action:none;display:block}.check-label{display:flex;justify-content:center;gap:8px;font-size:13px;padding:12px}.collection{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.car-card{border:1px solid #e2e5da;border-radius:21px;padding:20px;background:white;text-align:center}.car-card svg{width:100%}.car-card h3{font-size:18px;margin:8px 0}.car-card p{font-size:12px;color:var(--muted)}.car-card.locked{background:#eceee6}.car-card.locked svg{filter:grayscale(1);opacity:.3}.car-card.chosen{border:2px solid #b08027}.toast{background:#fff1c9;border:1px solid #efd896;padding:18px;border-radius:16px;margin:18px 0}.settings{max-width:650px}.settings section{padding:22px;background:white;border:1px solid #e5e7df;border-radius:18px;margin-top:18px}.settings h2{font-size:20px;margin-bottom:12px}.settings p{font-size:14px;line-height:1.7;color:#5d6f61}.settings label{display:block;padding:12px 0}.settings input{accent-color:var(--green)}a{color:var(--green)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:650px){header{padding:17px 20px}.brand{font-size:17px}.parent{font-size:0}.parent:first-letter{font-size:18px}main{margin-top:8px;padding:0 17px}.hero{padding:27px 23px;grid-template-columns:1fr}.hero h1{font-size:39px;max-width:280px}.hero p{max-width:260px;font-size:14px}.scene{width:220px;justify-self:end;margin-top:-10px;margin-bottom:5px}.hero .primary{margin-top:17px}.activities{grid-template-columns:1fr 1fr;gap:11px}.activity{min-height:158px;padding:16px}.activity .letter{height:49px;min-width:49px;font-size:25px;margin-bottom:12px}.activity h3{font-size:18px}.garage-banner{gap:12px;padding:16px;flex-wrap:wrap}.garage-banner svg{width:95px}.garage-banner button{width:100%;margin-top:5px}.collection{grid-template-columns:1fr 1fr;gap:11px}.car-card{padding:13px}.section-title h2{font-size:23px}.section-title small{font-size:11px}.target{letter-spacing:3px}.bottom-nav{gap:35px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
