:root{--cream:#f5efe4;--cream-deep:#e9ddca;--paper:#fffdf8;--paper-strong:#fff;--ink:#203039;--muted:#59666b;--teal:#176d68;--teal-dark:#0c514f;--teal-pale:#dbece8;--coral:#d86649;--coral-dark:#ae4128;--coral-pale:#f9e4dc;--gold:#c6963d;--line:#d9cebd;--shadow:0 18px 44px #3c31221c;--font-scale:1;--radius-lg:32px;--radius-md:22px;--radius-sm:16px}:root[data-font-size=larger]{--font-scale:1.16}:root[data-contrast=high]{--cream:#fffdf5;--paper:#fff;--ink:#10181c;--muted:#354045;--teal:#075b57;--teal-dark:#003e3b;--line:#8f8a80}*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth;-webkit-text-size-adjust:100%;min-width:320px}body{background:radial-gradient(circle at 7% 16%, #ffffffc7, transparent 27rem), var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:calc(20px * var(--font-scale));margin:0;line-height:1.55}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:is(button:focus-visible,input:focus-visible){outline-offset:3px;outline:4px solid #e6a63a}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{font-weight:750}.app-shell{min-height:100dvh;padding-bottom:112px}.topbar{z-index:20;background:color-mix(in srgb, var(--cream) 92%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 72%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:24px;min-height:82px;padding:12px clamp(24px,4vw,64px);display:flex;position:sticky;top:0}.brand{min-height:58px;color:var(--ink);cursor:pointer;font-size:calc(27px * var(--font-scale));letter-spacing:.02em;background:0 0;border:0;align-items:center;gap:14px;padding:0;font-weight:800;display:inline-flex}.brand-seal{border:2px solid color-mix(in srgb, var(--teal) 20%, white);background:var(--teal);color:#fff;border-radius:18px 18px 15px;flex:0 0 54px;place-items:center;width:54px;height:54px;font-family:Songti SC,STSong,serif;font-size:27px;display:grid;transform:rotate(-2deg);box-shadow:inset 0 -5px #00000012,0 6px 15px #176d682e}.top-actions{gap:12px;display:flex}.utility-button{border:1px solid var(--line);min-width:102px;min-height:58px;color:var(--ink);cursor:pointer;font-size:calc(19px * var(--font-scale));background:#fffdf8c7;border-radius:18px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:inline-flex}.utility-button:hover,.utility-button:active{background:var(--paper);border-color:var(--teal)}.button-icon{background:#ffffff3d;border-radius:50%;flex:0 0 35px;place-items:center;width:35px;height:35px;font-size:21px;line-height:1;display:inline-grid}.utility-button .button-icon{background:var(--teal-pale);width:32px;height:32px;color:var(--teal-dark);flex-basis:32px;font-size:18px}.main-content{width:min(1400px,100% - 48px);margin:0 auto;padding:42px 0 72px}.eyebrow{color:var(--teal-dark);font-size:calc(17px * var(--font-scale));letter-spacing:.07em;margin-bottom:10px;font-weight:800}.welcome-row{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:28px;display:flex}.welcome-row h1,.page-heading h1{font-size:calc(clamp(34px, 4vw, 49px) * var(--font-scale));letter-spacing:-.035em;margin-bottom:0;line-height:1.18}.progress-pill{border:1px solid var(--line);background:#fffdf8b3;border-radius:20px;justify-content:center;align-items:center;gap:13px;min-width:178px;min-height:78px;padding:10px 18px;display:flex}.progress-pill strong{color:var(--coral-dark);font-size:calc(34px * var(--font-scale));line-height:1}.progress-pill span{max-width:82px;color:var(--muted);font-size:calc(16px * var(--font-scale));line-height:1.35}.today-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);min-height:490px;box-shadow:var(--shadow);grid-template-columns:minmax(360px,.95fr) minmax(430px,1.05fr);display:grid;overflow:hidden}.scene-photo{background-image:url(/scenes-grid.png);background-repeat:no-repeat;background-size:300% 200%;background-color:var(--cream-deep)}.today-photo{border-right:1px solid var(--line);min-height:490px}.today-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(34px,5vw,72px);display:flex}.today-copy h2{font-size:calc(clamp(43px, 5.3vw, 68px) * var(--font-scale));letter-spacing:-.045em;margin-bottom:6px;line-height:1.08}.translation{color:var(--ink);font-size:calc(29px * var(--font-scale));margin-bottom:22px}.gentle-note{color:var(--muted);font-size:calc(20px * var(--font-scale));margin-bottom:30px}.today-actions{flex-wrap:wrap;gap:16px;width:100%;display:flex}.primary-button,.secondary-button,.listen-compact,.card-button,.modal-primary,.next-button{cursor:pointer;border-radius:20px;justify-content:center;align-items:center;gap:10px;min-height:68px;font-weight:800;display:inline-flex}.primary-button{border:2px solid var(--teal);background:var(--teal);color:#fff;font-size:calc(23px * var(--font-scale));padding:12px 25px;box-shadow:0 9px 20px #176d6838}.primary-button:hover,.primary-button:active{background:var(--teal-dark);border-color:var(--teal-dark);transform:translateY(1px)}.listen-compact,.secondary-button{border:2px solid var(--teal);background:var(--paper);color:var(--teal-dark);font-size:calc(21px * var(--font-scale));padding:11px 23px}.listen-compact .button-icon,.secondary-button .button-icon{background:var(--teal-pale)}.home-section{margin-top:60px}.section-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.section-heading h2,.progress-card h2,.word-group h2{font-size:calc(31px * var(--font-scale));margin-bottom:0;line-height:1.25}.text-button,.back-button{min-height:56px;color:var(--teal-dark);cursor:pointer;font-size:calc(19px * var(--font-scale));background:0 0;border:0;font-weight:800}.text-button{padding:8px 4px}.back-button{border:1px solid var(--line);background:#ffffff9e;border-radius:16px;align-items:center;gap:9px;padding:8px 16px;display:inline-flex}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.quick-card{border:1px solid var(--line);background:var(--paper);min-height:156px;color:var(--ink);cursor:pointer;text-align:left;border-radius:24px;grid-template-columns:142px 1fr;align-items:center;gap:20px;padding:0 22px 0 0;display:grid;position:relative;overflow:hidden;box-shadow:0 9px 24px #3c312212}.quick-card:hover,.quick-card:active{border-color:var(--teal);box-shadow:0 12px 28px #176d6824}.quick-photo{width:142px;height:156px}.quick-card-copy{flex-direction:column;gap:5px;display:flex}.quick-card-copy strong{font-size:calc(24px * var(--font-scale))}.quick-card-copy span{color:var(--muted);font-size:calc(17px * var(--font-scale))}.done-badge{background:var(--teal-pale);color:var(--teal-dark);border-radius:999px;padding:5px 11px;font-size:14px;font-weight:800;position:absolute;top:13px;right:13px}.progress-card{background:linear-gradient(115deg,#fff7e8,#f8ebd3);border:1px solid #dfcaa4;border-radius:26px;grid-template-columns:96px 1fr;align-items:center;gap:26px;margin-top:28px;padding:28px 34px;display:grid}.progress-card p:last-child{color:var(--muted);font-size:calc(18px * var(--font-scale));margin:7px 0 0}.progress-art{background:var(--coral);color:#fff;border-radius:27px 27px 23px;place-items:center;width:82px;height:82px;display:grid;transform:rotate(-3deg);box-shadow:inset 0 -7px #6f2a1824}.progress-art span{font-size:43px;transform:rotate(3deg)}.bottom-nav{z-index:18;border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf8f0;border-radius:28px;grid-template-columns:repeat(3,1fr);width:min(600px,100% - 28px);min-height:86px;padding:8px;display:grid;position:fixed;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 16px 38px #30271b2e}.bottom-nav button{min-height:68px;color:var(--muted);cursor:pointer;font-size:calc(18px * var(--font-scale));background:0 0;border:0;border-radius:21px;justify-content:center;align-items:center;gap:9px;display:flex}.bottom-nav button>span{text-align:center;min-width:32px;font-size:25px;font-weight:800}.bottom-nav button.active{background:var(--teal);color:#fff}.page-section{max-width:1320px;margin:0 auto}.page-heading{max-width:820px;margin-bottom:34px}.page-heading .back-button{margin-bottom:28px}.page-heading>p:last-child{color:var(--muted);font-size:calc(21px * var(--font-scale));margin:13px 0 0}.scene-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;display:grid}.scene-card{border:1px solid var(--line);background:var(--paper);border-radius:28px;grid-template-columns:44% 56%;min-height:290px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 28px #3c312214}.scene-card-photo{min-height:290px}.scene-card-body{flex-direction:column;justify-content:center;align-items:flex-start;padding:30px;display:flex}.scene-number{color:var(--coral-dark);font-size:calc(15px * var(--font-scale));letter-spacing:.06em;margin-bottom:7px;font-weight:800}.scene-card h2{font-size:calc(31px * var(--font-scale));margin-bottom:6px;line-height:1.2}.scene-card p{color:var(--muted);font-size:calc(17px * var(--font-scale));margin-bottom:22px}.card-button{border:1px solid var(--teal);background:var(--teal-pale);width:100%;min-height:58px;color:var(--teal-dark);font-size:calc(18px * var(--font-scale));justify-content:space-between;padding:8px 17px}.scene-done{top:17px;right:18px}.word-groups{gap:28px;display:grid}.word-group{border:1px solid var(--line);background:var(--paper);border-radius:28px;padding:26px}.word-group-heading{align-items:center;gap:18px;margin-bottom:22px;display:flex}.word-group-heading span{color:var(--muted);font-size:calc(16px * var(--font-scale))}.word-scene-photo{border-radius:23px;flex:0 0 86px;width:86px;height:86px}.word-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.word-card{border:1px solid var(--line);min-height:132px;color:var(--ink);cursor:pointer;text-align:left;background:#fffaf1;border-radius:20px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;padding:18px;display:flex;position:relative}.word-card:hover,.word-card:active{border-color:var(--teal);background:var(--teal-pale)}.word-card strong{max-width:100%;font-size:calc(25px * var(--font-scale));overflow-wrap:anywhere;line-height:1.2}.word-card>span:not(.sound-dot){color:var(--muted);font-size:calc(18px * var(--font-scale))}.sound-dot{background:var(--teal-pale);width:31px;height:31px;color:var(--teal-dark);border-radius:50%;place-items:center;font-size:17px;display:grid;position:absolute;top:11px;right:11px}.lesson-main{width:min(1500px,100% - 48px);padding-top:30px}.lesson-toolbar{grid-template-columns:1fr auto 1fr;align-items:center;gap:22px;margin-bottom:14px;display:grid}.lesson-context{color:var(--muted);font-size:calc(21px * var(--font-scale));text-align:center;font-weight:800}.step-count{font-size:calc(19px * var(--font-scale));justify-self:end;font-weight:800}.step-track{grid-template-columns:repeat(5,1fr);gap:10px;width:min(620px,100%);margin:0 auto 26px;display:grid}.step-track span{background:#d6cdbf;border-radius:999px;height:8px}.step-track span.active{background:var(--coral)}.lesson-stage{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);min-height:600px;box-shadow:var(--shadow);grid-template-columns:minmax(390px,.95fr) minmax(500px,1.05fr);display:grid;overflow:hidden}.lesson-photo{border-right:1px solid var(--line);min-height:600px}.lesson-copy{flex-direction:column;justify-content:center;align-items:stretch;padding:clamp(32px,4.5vw,66px);display:flex}.lesson-copy h1,.lesson-phrase{font-size:calc(clamp(45px, 5.8vw, 72px) * var(--font-scale));letter-spacing:-.045em;margin-bottom:8px;line-height:1.08}.lesson-speed-control{border:1px solid var(--line);background:#fffaf1;border-radius:19px;grid-template-columns:auto repeat(2,minmax(0,1fr));align-items:center;gap:10px;width:100%;margin:4px 0 18px;padding:10px;display:grid}.lesson-speed-control>span{color:var(--muted);font-size:calc(16px * var(--font-scale));padding:0 8px;font-weight:800}.lesson-speed-control button{min-height:58px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:2px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:flex-start;padding:8px 14px;display:flex}.lesson-speed-control button strong{font-size:calc(18px * var(--font-scale))}.lesson-speed-control button small{color:var(--muted);font-size:calc(13px * var(--font-scale));margin-top:2px}.lesson-speed-control button.active{border-color:var(--teal);background:var(--teal-pale);color:var(--teal-dark)}.page-section>.lesson-speed-control{max-width:720px;margin:0 0 26px}.tap-word-hint{color:var(--teal-dark);font-size:calc(16px * var(--font-scale));margin:0 0 10px;font-weight:800}.tap-word-hint span{margin-right:6px}.clickable-sentence{color:var(--ink)}.sentence-word{color:inherit;cursor:pointer;font:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;background:0 0;border:0;border-bottom:3px dotted #176d6852;border-radius:7px 7px 4px 4px;padding:0 3px 2px;display:inline}:is(.sentence-word:hover,.sentence-word:focus-visible,.sentence-word.selected){border-bottom-color:var(--coral);background:var(--coral-pale);color:#7d2f22;outline:0}.word-insight-card{border:2px solid var(--teal);background:var(--teal-pale);border-radius:22px;margin:8px 0 18px;padding:20px 22px;position:relative;box-shadow:0 10px 24px #176d681f}.word-insight-top{align-items:center;gap:14px;padding-right:42px;display:flex}.word-insight-top>div{flex:1}.word-insight-top>div span,.word-meaning span,.word-in-sentence span{color:var(--muted);font-size:calc(14px * var(--font-scale));margin-bottom:2px;font-weight:800;display:block}.word-insight-top strong{color:var(--teal-dark);font-size:calc(34px * var(--font-scale));line-height:1.1}.word-replay{border:1px solid var(--teal);background:var(--paper);min-height:52px;color:var(--teal-dark);cursor:pointer;font-size:calc(16px * var(--font-scale));border-radius:15px;padding:8px 14px;font-weight:800}.word-replay span{margin-right:6px}.word-close{width:38px;height:38px;color:var(--muted);cursor:pointer;background:#ffffffb8;border:0;border-radius:50%;font-size:25px;position:absolute;top:12px;right:12px}.word-meaning,.word-in-sentence{color:var(--ink);font-size:calc(21px * var(--font-scale));margin:14px 0 0;font-weight:750}.word-in-sentence{color:var(--muted);font-size:calc(17px * var(--font-scale));border-top:1px solid #176d6833;padding-top:12px;font-weight:600}.lesson-translation{font-size:calc(30px * var(--font-scale));margin-bottom:14px}.lesson-tip{color:var(--muted);font-size:calc(18px * var(--font-scale));margin-bottom:24px}.lesson-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.action-button{border:2px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;text-align:left;border-radius:23px;align-items:center;gap:14px;min-height:92px;padding:13px 16px;display:flex}.action-button .button-icon{background:#fff3;flex-basis:51px;width:51px;height:51px;font-size:29px}.action-button strong,.action-button small{display:block}.action-button strong{font-size:calc(22px * var(--font-scale))}.action-button small{opacity:.9;font-size:calc(14px * var(--font-scale));margin-top:2px}.record-button{border-color:var(--coral);background:var(--coral)}.action-button.is-active,.action-button.is-recording{animation:1.45s ease-in-out infinite gentle-pulse}@keyframes gentle-pulse{50%{box-shadow:0 0 0 8px #d8664929}}.recording-result{background:#edf7f3;border:1px solid #b8d6ce;border-radius:20px;justify-content:space-between;align-items:center;gap:18px;min-height:76px;margin-top:15px;padding:12px 14px 12px 19px;display:flex}.recording-result strong,.recording-result span{display:block}.recording-result strong{font-size:calc(18px * var(--font-scale))}.recording-result span{color:var(--muted);font-size:calc(14px * var(--font-scale))}.recording-result button{background:var(--teal);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:15px;align-items:center;gap:7px;min-height:52px;padding:7px 14px;font-weight:800;display:inline-flex}.recording-result .button-icon{flex-basis:29px;width:29px;height:29px;font-size:15px}.next-button{border:2px solid var(--ink);background:var(--ink);color:#fff;width:100%;font-size:calc(22px * var(--font-scale));margin-top:17px;padding:12px 24px}.next-button span{margin-left:auto;font-size:30px}.completion{border:1px solid var(--line);background:var(--paper);max-width:860px;box-shadow:var(--shadow);text-align:center;border-radius:36px;margin:24px auto 0;padding:clamp(36px,6vw,72px)}.completion-mark{background:var(--teal);color:#fff;border-radius:31px 31px 26px;place-items:center;width:92px;height:92px;margin:0 auto 22px;font-size:51px;display:grid;transform:rotate(-3deg);box-shadow:inset 0 -8px #00000014}.completion h1{font-size:calc(clamp(39px, 5vw, 58px) * var(--font-scale));margin-bottom:12px;line-height:1.18}.completion-copy{color:var(--muted);font-size:calc(22px * var(--font-scale));margin-bottom:24px}.completion-photo{aspect-ratio:16/8;border-radius:24px;width:min(460px,100%);margin:0 auto 28px}.completion-actions{flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.modal-backdrop,.onboarding{z-index:50;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#151f228c;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal,.onboarding-card{border:1px solid var(--line);background:var(--paper);border-radius:30px;width:min(680px,100%);max-height:calc(100dvh - 48px);padding:30px;overflow-y:auto;box-shadow:0 28px 72px #0000003d}.modal-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.modal-heading h2{font-size:calc(32px * var(--font-scale));margin:0}.close-button{border:1px solid var(--line);background:var(--cream);width:56px;height:56px;color:var(--ink);cursor:pointer;border-radius:50%;font-size:32px;line-height:1}.setting-row,.toggle-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:92px;padding:17px 0;display:flex}.setting-row strong,.setting-row span,.toggle-row strong,.toggle-row small{display:block}.setting-row strong,.toggle-row strong{font-size:calc(21px * var(--font-scale))}.setting-row span,.toggle-row small{color:var(--muted);font-size:calc(15px * var(--font-scale))}.segmented{border:1px solid var(--line);background:var(--cream);border-radius:16px;padding:4px;display:flex}.segmented button{min-width:82px;min-height:50px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:12px;padding:6px 13px;font-weight:800}.segmented button.active{background:var(--teal);color:#fff;box-shadow:0 4px 10px #176d6833}.toggle-row{cursor:pointer}.toggle-row input{opacity:0;pointer-events:none;position:absolute}.toggle-row i{background:#c9c2b6;border:2px solid #a9a295;border-radius:999px;flex:0 0 72px;width:72px;height:42px;transition:all .2s;position:relative}.toggle-row i:after{content:"";background:#fff;border-radius:50%;width:30px;height:30px;transition:all .2s;position:absolute;top:4px;left:5px;box-shadow:0 2px 5px #0000002e}.toggle-row input:checked+i{border-color:var(--teal);background:var(--teal)}.toggle-row input:checked+i:after{transform:translate(30px)}.toggle-row input:focus-visible+i{outline-offset:3px;outline:4px solid #e6a63a}.danger-text-button{color:#9e3522;cursor:pointer;min-height:56px;font-size:calc(17px * var(--font-scale));background:0 0;border:0;margin:10px 0 16px;padding:8px 4px;font-weight:800}.modal-primary{border:2px solid var(--teal);background:var(--teal);color:#fff;width:100%;font-size:calc(21px * var(--font-scale));padding:10px 22px}.help-card{border-top:1px solid var(--line);grid-template-columns:54px 1fr;align-items:start;gap:15px;padding:18px 0;display:grid}.help-card>span{background:var(--teal-pale);width:48px;height:48px;color:var(--teal-dark);border-radius:17px;place-items:center;font-size:23px;font-weight:800;display:grid}.help-card strong{font-size:calc(21px * var(--font-scale))}.help-card p{color:var(--muted);font-size:calc(17px * var(--font-scale));margin:3px 0 0}.install-help{background:var(--coral-pale);border-radius:21px;margin:14px 0;padding:20px 22px}.install-help h3{font-size:calc(22px * var(--font-scale));margin-bottom:8px}.install-help ol{margin:0;padding-left:1.45em}.privacy-note{color:var(--muted);font-size:calc(15px * var(--font-scale))}.onboarding{z-index:60;background:linear-gradient(#14272894,#14272894),url(/scenes-grid.png) 50%/cover}.onboarding-card{text-align:center;width:min(760px,100%);padding:clamp(28px,5vw,54px)}.onboarding-seal{margin:0 auto 18px}.onboarding-card h1{font-size:calc(clamp(36px, 5vw, 50px) * var(--font-scale));margin-bottom:11px;line-height:1.2}.onboarding-card>p:not(.eyebrow){color:var(--muted);font-size:calc(19px * var(--font-scale));margin-bottom:27px}.onboarding-choice{text-align:left;margin-top:22px}.onboarding-choice>strong{font-size:calc(20px * var(--font-scale));margin-bottom:10px;display:block}.size-options,.speed-options{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.size-options button,.speed-options button{border:2px solid var(--line);background:var(--cream);min-height:84px;color:var(--ink);cursor:pointer;border-radius:21px;justify-content:center;align-items:center;gap:12px;display:flex}.size-options button.active,.speed-options button.active{border-color:var(--teal);background:var(--teal-pale);box-shadow:inset 0 0 0 1px var(--teal)}.size-options button{flex-direction:column;gap:1px}.size-options span{font-size:28px;font-weight:750}.size-options .larger-sample{font-size:36px}.size-options small{color:var(--muted);font-size:16px}.speed-options{text-align:center}.speed-options button{font-size:calc(21px * var(--font-scale));font-weight:800}.speed-options .button-icon{background:var(--teal);color:#fff}.onboarding-start{width:100%;margin-top:27px}.toast{z-index:80;color:#fff;width:max-content;max-width:calc(100% - 40px);min-height:58px;font-size:calc(18px * var(--font-scale));text-align:center;background:#1f3336;border:1px solid #ffffff40;border-radius:18px;place-items:center;padding:12px 23px;display:grid;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 14px 32px #0000003d}.loading-screen{min-height:100dvh;color:var(--muted);place-content:center;justify-items:center;gap:17px;font-size:21px;display:grid}.loading-screen p{margin:0}@media (max-width:1120px){.quick-grid{grid-template-columns:1fr}.quick-card{grid-template-columns:160px 1fr}.quick-photo{width:160px}.word-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scene-card{grid-template-columns:42% 58%}}@media (max-width:900px){.main-content,.lesson-main{width:min(100% - 32px,760px);padding-top:28px}.today-card,.lesson-stage{grid-template-columns:1fr}.today-photo{border-right:0;border-bottom:1px solid var(--line);min-height:410px}.today-copy{padding:38px}.scene-grid{grid-template-columns:1fr}.lesson-photo{border-right:0;border-bottom:1px solid var(--line);min-height:430px}.lesson-copy{padding:38px}.lesson-toolbar{grid-template-columns:1fr auto}.lesson-context{display:none}}@media (max-width:680px){body{font-size:calc(18px * var(--font-scale))}.app-shell{padding-bottom:104px}.topbar{min-height:72px;padding:9px 14px}.brand{font-size:calc(21px * var(--font-scale));gap:9px}.brand-seal{border-radius:15px;flex-basis:46px;width:46px;height:46px;font-size:23px}.top-actions{gap:7px}.utility-button{min-width:54px;min-height:54px;padding:0}.utility-button>span:last-child{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.main-content,.lesson-main{width:min(100% - 24px,620px);padding:23px 0 40px}.welcome-row{flex-direction:column;align-items:stretch;gap:16px}.progress-pill{align-self:flex-start}.today-photo,.lesson-photo{min-height:330px}.today-copy,.lesson-copy{padding:26px 22px}.today-actions,.completion-actions{flex-direction:column}.today-actions>*,.completion-actions>*{width:100%}.section-heading{flex-direction:column;align-items:flex-start;gap:4px}.quick-card{grid-template-columns:116px 1fr;gap:14px;min-height:132px;padding-right:14px}.quick-photo{width:116px;height:132px}.progress-card{grid-template-columns:68px 1fr;gap:18px;padding:23px}.progress-art{border-radius:21px;width:64px;height:64px}.scene-card{grid-template-columns:1fr}.scene-card-photo{min-height:280px}.word-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-actions{grid-template-columns:1fr}.lesson-toolbar{gap:8px}.step-count{font-size:calc(16px * var(--font-scale))}.recording-result{flex-direction:column;align-items:stretch}.recording-result button{justify-content:center}.modal-backdrop,.onboarding{padding:12px}.modal,.onboarding-card{border-radius:25px;max-height:calc(100dvh - 24px);padding:24px 20px}.setting-row{flex-direction:column;align-items:stretch;gap:10px}.segmented button{flex:1}.size-options,.speed-options{grid-template-columns:1fr}.bottom-nav{border-radius:25px;min-height:78px;bottom:8px}.bottom-nav button{min-height:62px;font-size:calc(15px * var(--font-scale));flex-direction:column;gap:0}.bottom-nav button>span{font-size:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.voice-preview-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin:18px 0 10px;display:grid}.voice-preview-row button{border:1px solid var(--line);min-height:62px;color:var(--ink);cursor:pointer;font-size:calc(18px * var(--font-scale));background:#fffaf1;border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-weight:800;display:flex}.voice-dot{border-radius:50% 50% 45% 55%;width:20px;height:20px;box-shadow:inset 0 -3px #382d1f1f}.voice-dot.woman,.speaker-avatar.woman{background:#d56d5d}.voice-dot.man,.speaker-avatar.man{background:var(--teal)}.course-overview{margin-top:54px}.level-roadmap{grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;display:grid}.level-card{border:1px solid var(--line);background:var(--paper);min-height:184px;color:var(--ink);cursor:pointer;text-align:left;border-radius:23px;flex-direction:column;align-items:flex-start;padding:20px;display:flex;box-shadow:0 8px 22px #3c31220f}.level-card:hover,.level-card:active,.level-card.active{border-color:var(--teal);box-shadow:0 10px 26px #176d681f}.level-number,.level-summary-number{background:var(--teal-pale);color:var(--teal-dark);border-radius:15px;flex:none;place-items:center;font-weight:900;display:inline-grid}.level-number{width:42px;height:42px;font-size:calc(19px * var(--font-scale));margin-bottom:12px}.level-card-copy{flex-direction:column;gap:4px;width:100%;display:flex}.level-card-copy strong{font-size:calc(19px * var(--font-scale));line-height:1.25}.level-card-copy span{color:var(--muted);font-size:calc(15px * var(--font-scale))}.mini-progress{background:#e7dfd2;border-radius:999px;width:100%;height:7px;margin-top:auto;overflow:hidden}.mini-progress span{border-radius:inherit;background:var(--coral);height:100%;display:block}.curriculum-heading{max-width:none}.level-selector,.word-category-selector{scrollbar-width:thin;gap:10px;margin:-4px 0 24px;padding:4px 2px 12px;display:flex;overflow-x:auto}.level-selector button,.word-category-selector button{border:1px solid var(--line);background:var(--paper);min-height:54px;color:var(--ink);cursor:pointer;font-size:calc(17px * var(--font-scale));border-radius:17px;flex:none;padding:10px 17px;font-weight:800}.level-selector button.active,.word-category-selector button.active{border-color:var(--teal);background:var(--teal);color:#fff}.level-summary{background:linear-gradient(110deg,#fff7e8,#f9eedc);border:1px solid #dfcaa4;border-radius:24px;grid-template-columns:auto minmax(0,1fr) minmax(220px,.45fr);align-items:center;gap:20px;margin-bottom:26px;padding:22px 25px;display:grid}.level-summary-number{background:var(--coral);color:#fff;width:58px;height:58px;font-size:calc(26px * var(--font-scale))}.level-summary h2{font-size:calc(27px * var(--font-scale));margin:0 0 4px}.level-summary p,.difficulty-note,.scene-voice-mini{color:var(--muted)}.level-summary p{font-size:calc(17px * var(--font-scale));margin:0}.level-summary-progress{font-size:calc(17px * var(--font-scale));text-align:right;font-weight:800}.difficulty-note{font-size:calc(16px * var(--font-scale));margin-top:-12px}.scene-voice-mini{font-size:calc(15px * var(--font-scale));align-items:center;gap:8px;margin:-11px 0 17px;display:flex}.active-word-group{box-shadow:var(--shadow);border-color:#dfcaa4}.dynamic-track{display:flex;overflow:hidden}.dynamic-track span{flex:20px}.speaker-heading{align-items:center;gap:12px;margin-bottom:14px;display:flex}.speaker-avatar{color:#fff;border:4px solid #ffffffe6;border-radius:50% 47% 51% 49%;flex:0 0 46px;place-items:center;width:46px;height:46px;font-size:21px;font-weight:900;display:grid;box-shadow:0 3px 10px #382d1f26}.speaker-heading strong{font-size:calc(20px * var(--font-scale));display:block}.speaker-heading span{color:var(--muted);font-size:calc(15px * var(--font-scale))}.sound-dot.playing{background:var(--coral);color:#fff;animation:1s ease-in-out infinite voice-pulse}@keyframes voice-pulse{50%{transform:scale(1.12);box-shadow:0 0 0 7px #d7705824}}.dialogue-page{max-width:1180px;margin:0 auto}.dialogue-hero{border:1px solid var(--line);background:var(--paper);min-height:310px;box-shadow:var(--shadow);border-radius:30px;grid-template-columns:minmax(310px,.8fr) minmax(430px,1.2fr);margin-bottom:24px;display:grid;overflow:hidden}.dialogue-photo{border-right:1px solid var(--line);min-height:310px}.dialogue-hero-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:36px 42px;display:flex}.dialogue-hero-copy h1{font-size:calc(clamp(38px, 4.5vw, 58px) * var(--font-scale));margin:5px 0 8px;line-height:1.1}.dialogue-hero-copy>p:not(.eyebrow){color:var(--muted);font-size:calc(20px * var(--font-scale));margin:0 0 24px}.dialogue-hero-copy .lesson-speed-control{margin-bottom:16px}.dialogue-hint{text-align:center;margin:0 0 16px}.dialogue-list{gap:13px;display:grid}.dialogue-line{border:1px solid var(--line);background:var(--paper);border-radius:22px;grid-template-columns:64px minmax(0,1fr) 82px;align-items:center;gap:18px;min-height:114px;padding:18px 20px;display:grid}.dialogue-line:nth-child(2n){background:#fff8ec;margin-left:7%}.dialogue-person{background:var(--teal);color:#fff;width:58px;height:58px;font-size:calc(20px * var(--font-scale));border-radius:50% 46% 51% 49%;place-items:center;font-weight:900;display:grid}.dialogue-line:nth-child(2n) .dialogue-person{background:var(--coral)}.dialogue-copy .dialogue-english{color:var(--ink);font-size:calc(27px * var(--font-scale));margin:0;font-weight:850;line-height:1.25;display:block}.dialogue-copy em{color:var(--muted);font-size:calc(19px * var(--font-scale));margin-top:4px;font-style:normal;display:block}.dialogue-sound{background:var(--teal-pale);width:78px;min-height:68px;color:var(--teal-dark);cursor:pointer;border:0;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;font-size:24px;display:flex}.dialogue-sound small{font-size:11px;font-weight:800}.dialogue-sound i{font-style:normal}.dialogue-finish{justify-content:center;margin-top:26px;display:flex}@media (max-width:1080px){.level-roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.level-card{min-height:154px}}@media (max-width:820px){.level-summary{grid-template-columns:auto 1fr}.level-summary-progress{text-align:left;grid-column:1/-1}.dialogue-hero{grid-template-columns:1fr}.dialogue-photo{border-right:0;border-bottom:1px solid var(--line);min-height:280px}}@media (max-width:680px){.voice-preview-row,.level-roadmap{grid-template-columns:1fr}.level-card{min-height:140px}.level-selector,.word-category-selector{margin-right:-18px}.level-summary{grid-template-columns:1fr;padding:20px}.level-summary-progress{grid-column:auto}.dialogue-hero-copy{padding:28px 24px}.lesson-speed-control{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-speed-control>span{grid-column:1/-1;padding:0 3px}.lesson-speed-control button{min-height:64px;padding:8px 10px}.word-insight-top{flex-direction:column;align-items:flex-start}.word-replay{width:100%}.dialogue-line,.dialogue-line:nth-child(2n){grid-template-columns:48px minmax(0,1fr) 56px;gap:12px;margin-left:0;padding:15px 13px}.dialogue-person,.dialogue-sound{width:46px;height:46px}.dialogue-sound{width:54px;min-height:54px}.dialogue-sound small{display:none}.dialogue-copy .dialogue-english{font-size:calc(23px * var(--font-scale))}}
