:root{--ink:#182820;--muted:#62716a;--forest:#164a3b;--forest-dark:#103c30;--mint:#dceee6;--cream:#f8f6ee;--line:#dce3da;--white:#fff;--orange:#db8454}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.65}
button,textarea{font:inherit}
a{color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
:focus-visible{outline:3px solid #d17645;outline-offset:3px}
.skip-link{position:absolute;left:12px;top:-80px;padding:8px 14px;background:var(--white);z-index:10}
.skip-link:focus{top:12px}
.site-nav{max-width:1120px;margin:auto;padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.brand{text-decoration:none;color:var(--forest-dark);font-weight:800;font-size:17px;white-space:nowrap}
.brand span{font-weight:500;color:var(--muted)}
.site-nav nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.site-nav nav a{text-decoration:none;font-size:14px;color:var(--forest-dark)}
.site-nav nav a:hover,.text-link:hover,.lesson-end-links a:hover{text-decoration:underline}
.shell{max-width:1080px;margin:0 auto;padding:0 24px 72px}
.hero{position:relative;background:var(--forest);border-radius:28px;color:#fff;overflow:hidden}
.hero-index{min-height:430px;padding:66px 60px;display:flex;align-items:center}
.hero-copy{position:relative;z-index:2;max-width:610px}
.eyebrow{font-size:12px;letter-spacing:.17em;text-transform:uppercase;font-weight:800;margin:0 0 12px;color:#39715d}
.hero .eyebrow{color:#a6dbc3}
h1,h2,h3,p{margin-top:0}
.hero h1{font-size:clamp(36px,5vw,62px);line-height:1.17;letter-spacing:-.04em;margin:0 0 20px;font-weight:800}
.hero h1 em{font-style:normal;color:#bce7ca}
.lead{font-size:17px;line-height:1.9;max-width:560px;color:#e2eee7;margin-bottom:27px}
.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;border-radius:999px;padding:12px 22px;min-height:46px;text-decoration:none;font-weight:750}
.primary-button{background:#e5a275;color:#21352a}
.primary-button:hover:not(:disabled){background:#f3b58e}
.secondary-button{background:var(--forest);color:#fff}
.review-track [hidden]{display:none!important}
.secondary-button:hover{background:var(--forest-dark)}
.plain-button{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:10px 18px;color:var(--forest-dark)}
.hero-art{position:absolute;inset:0 0 0 55%;overflow:hidden;background:radial-gradient(circle at 60% 38%,#39715d 0,#164a3b 58%)}
.art-orbit{position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%;width:480px;height:480px;right:-110px;top:-45px}
.orbit-two{width:300px;height:300px;right:-20px;top:45px}
.art-circle{position:absolute;right:20%;top:29%;width:160px;height:160px;border-radius:50%;background:#e3f1e7;color:#164a3b;display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:900;box-shadow:0 20px 60px #0d332a88}
.art-circle span{font-size:20px;margin:0 8px}
.art-card{position:absolute;background:#fff;color:var(--forest-dark);border-radius:15px;padding:13px 18px;box-shadow:0 14px 36px #09291e55;font-weight:700;white-space:nowrap}
.card-one{top:19%;right:8%;transform:rotate(7deg)}
.card-two{bottom:18%;right:40%;transform:rotate(-7deg)}
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 64px}
.intro-grid>div{padding:25px;background:#fff;border:1px solid var(--line);border-radius:19px}
.intro-grid .step-num{color:var(--orange);font-weight:800;font-size:13px}
.intro-grid h2{font-size:19px;margin:8px 0 6px}
.intro-grid p{font-size:14px;color:var(--muted);margin:0}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.section-heading h2{font-size:clamp(24px,3vw,32px);line-height:1.3;margin:0;letter-spacing:-.025em}
.count-pill,.hero-tags span{font-size:12px;padding:6px 13px;border-radius:999px;white-space:nowrap}
.count-pill{background:var(--mint);color:var(--forest-dark)}
.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.course-card{display:flex;flex-direction:column;min-height:250px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;text-decoration:none;box-shadow:0 3px 16px #2643310a;transition:transform .18s,box-shadow .18s}
.course-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #2643311c}
.course-meta{display:flex;gap:9px;margin-bottom:23px}
.course-meta span{background:#edf5ed;color:var(--forest-dark);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}
.course-meta span+span{background:#f5f2ea;color:#766b54}
.course-source{font-size:12px;color:var(--muted);margin-bottom:5px}
.course-card h3{font-size:24px;line-height:1.3;margin:0 0 8px}
.course-card>p{font-size:14px;color:var(--muted);margin-bottom:20px}
.card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:var(--forest);font-size:13px;font-weight:800}
.card-arrow{width:32px;height:32px;background:var(--mint);border-radius:50%;display:grid;place-items:center;font-size:19px}
.quiet-note,.privacy-note{font-size:12px;color:var(--muted)}
.quiet-note{margin:17px 0 0}
.note-panel{margin-top:64px;padding:30px 34px;border-radius:22px;border:1px solid #cadfce;background:#eaf4e9;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.note-panel h2{font-size:23px;line-height:1.35;margin-bottom:0}
.note-panel>p{font-size:14px;color:#3c5a4c;margin:0}
.text-link{grid-column:2;margin-top:8px;font-size:14px;font-weight:750;color:var(--forest-dark);text-decoration:none}
.site-footer{max-width:1080px;margin:0 auto;padding:26px 24px 42px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}
.site-footer a{color:inherit}
.lesson-shell{max-width:920px}
.lesson-hero{display:flex;align-items:center;padding:46px 48px;min-height:270px}
.lesson-hero h1{font-size:clamp(32px,4vw,48px);margin-bottom:12px}
.lesson-hero .lead{margin-bottom:18px}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap}
.hero-tags span{background:#ffffff23;color:#edf8f0;border:1px solid #ffffff24}
.hero-symbol{position:absolute;right:5%;top:4%;font-size:220px;line-height:1;font-weight:900;color:#ffffff12}
.goal-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 26px;display:flex;align-items:center;gap:18px;margin:18px 0 24px}
.goal-icon{width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--forest);font-size:28px}
.goal-card h2{font-size:17px;margin:0 0 3px}
.goal-card p{margin:0;color:var(--muted);font-size:14px}
.lesson-nav{display:flex;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);padding:7px;border-radius:16px;margin-bottom:32px}
.lesson-nav a{flex:1;text-align:center;min-width:80px;border-radius:11px;padding:9px 12px;text-decoration:none;color:var(--forest-dark);font-size:13px;font-weight:750}
.lesson-nav a:hover{background:var(--mint)}
.lesson-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px;margin-bottom:22px;scroll-margin-top:16px}
.section-intro{font-size:15px;color:var(--muted);margin-bottom:20px}
.audio-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:17px}
.audio-toolbar #audioStatus{font-size:12px;color:var(--muted)}
.dialogue{border:1px solid var(--line);border-radius:17px;overflow:hidden}
.dialogue-line{display:grid;grid-template-columns:68px 1fr auto;align-items:start;gap:14px;padding:17px 19px;border-bottom:1px solid var(--line);transition:background-color .18s ease}
.dialogue-line:last-child{border-bottom:0}
.dialogue-line.is-reading{background:#e6f4e9;box-shadow:inset 4px 0 0 var(--forest)}
.dialogue-line.is-reading .line-copy p[lang=en]{color:#0d4c34;font-weight:800}
.speaker{font-size:12px;color:var(--forest);font-weight:800;padding-top:3px}
.line-copy p{margin:0}
.line-copy p[lang=en]{font-size:17px;font-weight:650;color:var(--ink)}
.translation{color:var(--muted);font-size:13px;margin-top:4px!important}
.speak-button{border:1px solid var(--line);background:#f6faf7;color:var(--forest-dark);border-radius:50%;width:42px;height:42px;min-width:42px;display:grid;place-items:center;font-size:16px}
.speak-button:hover{background:var(--mint)}
.word-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.word-card{border:1px solid var(--line);border-radius:15px;padding:16px}
.word-top{display:flex;justify-content:space-between;gap:8px;align-items:start}
.word-top h3{font-size:19px;margin:0}
.word-ipa{display:block;color:var(--forest-dark);font-size:14px;line-height:1.55;margin:2px 0 3px}
.word-top p{font-size:13px;color:var(--muted);margin:0}
.word-example{font-size:14px;margin:13px 0 0}
.word-card .translation{margin-bottom:0}
.subheading{font-size:18px;margin:28px 0 12px}
.pattern-list{border-top:1px solid var(--line)}
.pattern{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
.pattern strong{font-size:16px}
.pattern p{font-size:13px;color:var(--muted);margin:2px 0}
.pattern small{font-size:12px;color:#547460}
.grammar-note{background:#f3f8f3;border-left:4px solid #5e9a73;border-radius:0 13px 13px 0;padding:20px 22px;margin-top:25px}
.grammar-note h3{margin:0 0 8px;font-size:19px}
.grammar-note ul{padding-left:20px;margin:0;color:#385347;font-size:14px}
.grammar-note li+li{margin-top:6px}
.question{border:1px solid var(--line);border-radius:15px;padding:18px;margin:0 0 13px;min-width:0}
.question legend{padding:0 5px;font-weight:750;font-size:15px}
.question-number{color:var(--orange);margin-right:9px;font-size:12px}
.answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.answer{display:flex;align-items:center;gap:8px;background:#f7f9f6;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;cursor:pointer;min-height:48px}
.answer:has(input:checked){background:#e7f3e9;border-color:#76ad83}
.answer input{accent-color:#2c7950}
.question.correct{border-color:#83b896}
.question.incorrect{border-color:#dc9c81}
.answer-feedback{font-size:13px;color:#466851;margin:10px 0 0}
.question.incorrect .answer-feedback{color:#9a573c}
.result-message{font-weight:750;min-height:23px;margin:13px 0 0;color:var(--forest)}
.scenario-section{background:#fbfdf9}
.scenario-section [hidden]{display:none!important}
.scenario-ready,.scenario-done{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.scenario-ready a,.scenario-done a{color:var(--forest-dark);font-size:14px;font-weight:750}
.scenario-progress{font-size:12px;color:var(--forest);font-weight:800;margin:0 0 8px}
.scenario-play blockquote{margin:0 0 14px;padding:17px 19px;background:#e8f3eb;border-left:4px solid var(--forest);border-radius:0 12px 12px 0;font-size:18px;font-weight:700}
.scenario-task{font-size:14px;color:var(--muted);margin:0 0 12px}
.scenario-options{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:13px}
.scenario-choice{width:100%;text-align:left;border:1px solid #c6d7ca;background:#fff;color:var(--ink);border-radius:11px;padding:12px 15px;min-height:48px}
.scenario-choice:hover:not(:disabled){background:#edf6ee;border-color:#78ac87}
.scenario-choice.is-right{border-color:#338454;background:#e3f3e7;opacity:1}
.scenario-choice.is-wrong{border-color:#c88975;background:#fff0e9;opacity:.75}
.scenario-feedback{min-height:24px;color:var(--forest-dark);font-size:14px;font-weight:650;margin:0 0 14px}
.scenario-done p{flex-basis:100%;font-size:16px;font-weight:700;color:var(--forest-dark);margin:0}
.output-section .hint-text{background:#f7f9f6;padding:10px 14px;border-radius:10px;font-size:13px;color:#466851}
.textarea-label{display:block;font-size:14px;font-weight:750;margin-bottom:8px}
textarea{width:100%;border:1px solid #bfcfc3;border-radius:12px;padding:13px 14px;resize:vertical;min-height:90px;color:var(--ink);background:#fff}
.privacy-note{margin:7px 0 16px}
.example-panel{background:#f3f8f3;border-radius:13px;padding:12px 16px;margin-bottom:17px}
.example-panel summary{cursor:pointer;font-weight:750;font-size:13px;color:var(--forest-dark)}
.example-panel p{font-size:15px;margin:11px 0 7px}
.example-panel .speak-button{border-radius:999px;width:auto;padding:0 11px;font-size:12px}
.check-row{display:flex;gap:10px;align-items:start;font-size:14px;cursor:pointer}
.check-row input{width:18px;height:18px;accent-color:var(--forest);margin-top:3px}
.review-list{padding-left:23px;margin:0 0 24px;color:#385347;font-size:14px}
.review-list li+li{margin-top:9px}
.finish-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#e9f3e8;border-radius:16px;padding:20px}
.finish-card h3{font-size:17px;margin:0 0 3px}
.finish-card p{font-size:13px;margin:0;color:#426450}
.finish-card button{flex-shrink:0}
.review-track{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:12px;padding:14px 18px;background:#f4f8f1;border-radius:12px}
.review-track p{margin:0;font-size:13px;color:#385347}
.review-track button{flex-shrink:0}
.review-section>.privacy-note{margin:11px 0 0}
.lesson-end-links{display:flex;justify-content:space-between;gap:16px;margin-top:24px}
.lesson-end-links a{color:var(--forest-dark);font-size:14px;font-weight:750;text-decoration:none}
@media(max-width:760px){.hero-index{padding:46px 30px}.hero-art{opacity:.27;inset:0 0 0 38%}.intro-grid{grid-template-columns:1fr;margin-bottom:48px}.note-panel{grid-template-columns:1fr;gap:14px}.text-link{grid-column:1;margin-top:0}.lesson-hero{padding:38px 30px}.answers{grid-template-columns:1fr}}
@media(max-width:620px){.site-nav{padding:15px 18px}.brand{font-size:15px}.brand span{display:none}.site-nav nav{gap:12px}.site-nav nav a{font-size:12px}.shell{padding:0 14px 50px}.hero{border-radius:20px}.hero-index{min-height:400px;padding:42px 25px}.hero-index .lead{font-size:15px}.hero-art{inset:0;opacity:.13}.course-grid,.word-grid{grid-template-columns:1fr}.course-card{min-height:220px}.lesson-hero{padding:34px 24px}.lesson-hero .lead{font-size:15px}.hero-symbol{font-size:140px;right:-3%;top:30%}.goal-card{padding:18px}.lesson-section{padding:22px 18px}.dialogue-line{grid-template-columns:44px 1fr auto;gap:8px;padding:14px 12px}.line-copy p[lang=en]{font-size:15px}.lesson-nav a{min-width:55px;padding:9px 4px}.finish-card{flex-direction:column;align-items:stretch}.finish-card button{width:100%}.lesson-end-links,.site-footer{flex-direction:column}.section-heading{align-items:start}}
@media(max-width:620px){.lesson-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.lesson-nav a{min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.course-card,.dialogue-line{transition:none}}
@media print{.site-nav,.lesson-nav,.audio-toolbar,.speak-button,.site-footer,.lesson-end-links,.primary-button,.plain-button,.skip-link{display:none!important}.shell{padding:0}.hero{color:#000;background:#fff;border:1px solid #ddd}.hero .eyebrow,.hero .lead{color:#333}.lesson-section{break-inside:avoid;border:1px solid #ddd}.answer-feedback{display:none}}
