:root{--ink:#263e35;--green:#386b50;--muted:#858e85;--line:#e4e7dd;--paper:#fffefa}*{box-sizing:border-box}body{margin:0;background:#f5f6ef;color:var(--ink);font-family:'DM Sans','Noto Sans SC',system-ui,sans-serif;font-size:14px}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #96b89d;outline-offset:3px}[hidden]{display:none!important}button{border:0;background:none}.app{max-width:1110px;margin:auto;padding:0 44px}header{height:96px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:9px;align-items:center;font-weight:800;font-size:25px;color:var(--ink);text-decoration:none}.brand-icon{color:#56805b;font-size:36px}.brand-en{font-size:10px;letter-spacing:2px;margin-left:10px;font-weight:600}.icon{font-size:24px;padding:8px}.intro{display:flex;justify-content:space-between;align-items:center;margin:45px 0 30px}.eyebrow{font-size:11px;letter-spacing:2px;color:#7d8b7c}.intro h1{font-size:32px;letter-spacing:-1px;margin:12px 0}.intro h1 span{font-size:27px;margin-left:10px}.muted{color:var(--muted);font-size:12px;line-height:1.9}.exam{padding:17px 22px;border:1px solid #dedfcd;background:#eeefdf;border-radius:12px;text-align:left;font-size:11px}.exam strong{display:block;font-size:26px;margin:5px 0}.exam small{color:#8d927d;font-size:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:14px;background:#ffffff80;padding:19px 5px;margin-bottom:38px}.stats>div{display:flex;align-items:center;gap:16px;padding-left:30px;border-right:1px solid var(--line)}.stats>div:last-child{border:0}.stat-icon{font-size:25px;color:#7c937b;background:#edf1e7;border-radius:12px;width:44px;height:44px;display:grid;place-items:center}.stats p{margin:0;color:var(--muted);font-size:11px}.stats strong{display:block;color:var(--ink);font-size:27px;font-weight:600;margin-top:3px}.stats small{font-size:10px;color:var(--muted);font-weight:400}.workspace{display:grid;grid-template-columns:205px 1fr;gap:39px}aside .eyebrow{margin:9px 0 20px}.nav{display:flex;align-items:center;width:100%;gap:13px;padding:15px 14px;margin-bottom:7px;text-align:left;color:#8b958a;border-radius:9px;font-size:17px}.nav span{font-size:13px;flex:1}.nav b{font-size:15px}.nav.active{background:#e4ecdf;color:var(--green);font-weight:600}.nav em{font-size:11px;font-style:normal;background:#e8e9df;padding:2px 7px;border-radius:5px}.book{margin-top:35px;padding:22px 17px;background:#edeedc;border:1px solid #e4e4cf;border-radius:12px}.book>span{display:block;font-size:28px;margin-bottom:15px}.book b{font-size:13px}.book p{font-size:10px;line-height:2;color:#8a907a;margin:9px 0 18px}.book button{background:#fafbf2;border:1px solid #d8dcc6;border-radius:7px;padding:9px;width:100%;font-size:11px}.aside-note{font-size:11px;color:#a0a698;line-height:2;margin:30px 15px}.section-top{display:flex;justify-content:space-between;align-items:center}.section-top h2{font-size:17px;margin:5px 0 8px}.section-top h2 span{font-size:9px;font-weight:400;padding:4px 7px;background:#e8ecdf;color:#7b8c71;border-radius:4px;margin-left:8px}.section-top p{color:#99a092;font-size:10px;margin:0 0 16px}.text-btn{font-size:11px;color:#7c8d79;padding:6px}.progress{height:4px;background:#e3e8dc;border-radius:4px;margin-bottom:20px;overflow:hidden}.progress i{height:100%;display:block;background:#7f9f76;transition:width .3s}.practice-card{background:var(--paper);border:1px solid #e0e5da;border-radius:18px;padding:25px 30px;box-shadow:0 8px 30px #283e3510}.card-top{display:flex;align-items:center;justify-content:space-between}.pill{background:#f0f2e8;color:#889575;font-size:10px;padding:6px 9px;border-radius:5px}.sound{font-size:17px;color:#648263;display:flex;gap:7px;align-items:center;padding:5px}.sound span{font-size:11px}.association{height:176px;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.association #picture{font-size:77px;z-index:1;filter:drop-shadow(0 12px 9px #456c4820);transform:rotate(-6deg)}.orbit{position:absolute;width:225px;height:117px;background:#f0f3e8;border-radius:50%;transform:rotate(-15deg)}.orbit-two{width:155px;height:155px;background:#edf2e280;transform:rotate(30deg)}.spark{position:absolute;color:#a5ba8b;font-size:24px}.s1{left:27%;top:32px}.s2{right:25%;bottom:35px}.picture-caption{position:absolute;bottom:5px;letter-spacing:2px;font-size:8px;color:#a2ab98}.meaning{text-align:center;margin:16px 0 22px}.meaning h3{font-size:24px;margin:0 0 8px;font-weight:600}.meaning p{margin:0;color:#a0a493;font-size:11px}.example{background:#f5f6ef;border:1px solid #eceee3;border-radius:10px;padding:15px 18px;position:relative}.example-label{font-size:9px;color:#9ba58e;letter-spacing:1px}.example>.text-btn{position:absolute;right:12px;top:8px}.example p{font-size:16px;line-height:1.6;margin:10px 0 7px;color:#4e6251}.example small{font-size:11px;color:#9a9f92}.blank{border-bottom:2px solid #89a977;color:#4f7d51;letter-spacing:2px;white-space:nowrap}.answer-area{margin-top:25px}.mode-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mode-row label{font-size:12px}.segmented{display:flex;background:#f0f2e9;border-radius:6px;padding:3px}.segmented button{font-size:10px;padding:5px 9px;border-radius:4px;color:#9ba390}.segmented button.selected{background:white;color:#53724f;box-shadow:0 1px 4px #0000000a}input[type=text],textarea,input[type=date]{width:100%;border:1px solid #d9e0d0;background:#fffefa;border-radius:9px;color:var(--ink);padding:16px;outline:0}input[type=text]{text-align:center;letter-spacing:3px;font-size:20px}input::placeholder{font-size:12px;letter-spacing:1px;color:#b3b7a8}input:focus,textarea:focus{border-color:#7a9e74;box-shadow:0 0 0 3px #dce9d780}.hint-row{display:flex;justify-content:space-between;align-items:center;margin:7px 0 12px;color:#a4aa9b;font-size:10px}.primary{display:block;background:var(--green);color:white;padding:14px 18px;border-radius:9px;width:100%;font-weight:500;font-size:13px}.primary span{float:right;color:#abc0a9}.primary:hover{background:#2d5e43}.skip{display:block;margin:10px auto 0;color:#98a08e;font-size:10px;padding:8px}.bottom-note{text-align:center;font-size:9px;color:#a0a894;margin:20px 0 28px}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin:25px 0 0;padding:23px 0 27px;font-size:10px;color:#a0a795}footer span{font-weight:600;color:#7b8f75}#feedback{font-size:12px;line-height:1.8;margin-bottom:10px;white-space:pre-line}.success{color:#3c7a4e}.error{color:#ad6947}#tile-answer{min-height:58px;border:1px solid #dae2d2;border-radius:9px;padding:9px;text-align:center;letter-spacing:3px;font-size:22px}#tile-answer button{font-size:11px;margin-left:8px;color:#8b9982}#tiles{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;padding-top:12px}#tiles button{border:1px solid #dbe0d3;background:#f0f4e9;border-radius:6px;min-width:34px;height:40px;font-size:18px}.word-row{background:#fffefa;border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;gap:13px;align-items:center;margin:9px 0}.word-row>span{font-size:29px}.word-row div{flex:1}.word-row b{font-size:16px}.word-row p{margin:5px 0;font-size:12px;color:#8b9686}.word-row small{font-size:10px;color:#8b9686}.empty{text-align:center;padding:65px 20px;background:#fffefa;border-radius:15px;border:1px solid var(--line)}.empty span{font-size:50px}.empty p{color:#899581;line-height:1.9}dialog{border:1px solid var(--line);border-radius:18px;padding:26px;width:min(94vw,540px);color:var(--ink);background:var(--paper);max-height:90dvh}dialog::backdrop{background:#203a2b60;backdrop-filter:blur(4px)}.dialog-title{display:flex;justify-content:space-between;align-items:center}.dialog-title h2{font-size:20px;margin:0}dialog p{font-size:12px;line-height:1.9;color:#87947e}dialog pre{font-size:10px;white-space:pre-wrap;background:#f0f3e9;padding:12px;border-radius:8px}dialog label{display:block;margin:16px 0 9px;font-size:12px}textarea{font-size:12px;line-height:1.8;resize:vertical}.dialog-actions{display:flex;gap:10px}.dialog-actions>*{flex:1}.secondary{background:#edf1e5;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px}.toggle{display:flex;align-items:center;gap:9px;padding:10px 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#294734;color:white;border-radius:9px;padding:12px 18px;font-size:12px;z-index:5;display:none;max-width:90vw}
.scope-controls{border:1px solid var(--line);background:#ffffff80;border-radius:13px;padding:20px 22px;margin:-15px 0 30px}.course-heading{display:flex;justify-content:space-between;align-items:center}.course-heading b{font-size:13px}.course-heading p{font-size:10px;color:#8d9985;margin:7px 0 15px}.scope-fields{display:grid;grid-template-columns:1fr 1.4fr 85px;gap:12px}.scope-fields label{font-size:10px;color:#88957f;min-width:0}select{display:block;width:100%;min-width:0;margin-top:7px;padding:10px 25px 10px 10px;background:#fffefa;border:1px solid #dce2d4;border-radius:7px;color:var(--ink);font-size:12px;text-overflow:ellipsis}.proper-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:#829173;margin-top:15px}.proper-toggle small{font-size:9px;color:#a0a891}.proper-toggle input{accent-color:var(--green)}#word-search{width:100%;padding:13px;border:1px solid var(--line);border-radius:9px;background:#fffefa;color:var(--ink);outline:0}.word-row{min-width:0}.word-row div{min-width:0}.word-row b,.word-row small{overflow-wrap:anywhere}.word-row small{display:block;line-height:1.8}.pill{max-width:76%;line-height:1.6}.example p{overflow-wrap:anywhere}.example small{line-height:1.8;display:block}#tile-answer{overflow-wrap:anywhere;white-space:pre-wrap}#answer{letter-spacing:1px}.stats{margin-bottom:32px}
@media(min-width:900px){main{max-width:950px;margin:auto}.practice-card{padding:25px 35px}.association{height:181px}}@media(max-width:700px){.app{padding:0 20px}header{height:70px}.brand{font-size:22px}.brand-icon{font-size:29px}.brand-en{font-size:8px;letter-spacing:1px}.intro{margin:27px 0 23px;align-items:start;gap:10px}.intro h1{font-size:23px;margin:10px 0}.intro h1 span{font-size:20px;margin-left:3px}.intro .muted{font-size:10px;max-width:200px}.eyebrow{font-size:9px;letter-spacing:1px}.exam{padding:10px 12px;font-size:9px;min-width:95px}.exam strong{font-size:21px}.exam small{font-size:8px}.stats{padding:14px 0;margin-bottom:24px}.stats>div{padding-left:13px;gap:8px}.stat-icon{font-size:19px;width:30px;height:35px;border-radius:8px}.stats strong{font-size:23px}.stats p{font-size:9px}.workspace{display:block}aside{display:flex;gap:5px;margin-bottom:22px}aside .eyebrow,.book,.aside-note{display:none}.nav{margin:0;padding:12px 10px;gap:7px;justify-content:center}.nav span{font-size:11px;flex:none}.nav b{display:none}.nav em{font-size:9px;padding:2px 4px}.section-top h2{font-size:15px}.section-top h2 span{font-size:8px}.section-top p{font-size:9px}.practice-card{padding:18px 19px;border-radius:15px}.association{height:155px}.association #picture{font-size:69px}.meaning{margin:14px 0 20px}.meaning h3{font-size:23px}.example{padding:13px}.example p{font-size:16px}.answer-area{margin-top:22px}.bottom-note{font-size:8px;line-height:1.8}.primary{padding:16px}footer{font-size:8px;margin-top:15px}.s1{left:20%}.s2{right:18%}#tiles button{min-width:32px}.dialog-actions{flex-direction:column}.scope-controls{padding:16px;margin:0 0 22px}.scope-fields{grid-template-columns:1fr 75px;gap:10px}.scope-fields label:nth-child(2){grid-row:2;grid-column:1 / -1}.scope-fields label:last-child{grid-column:2;grid-row:1}.proper-toggle{font-size:10px}.proper-toggle small{font-size:8px}.course-heading b{font-size:12px}.course-heading p{font-size:9px;line-height:1.7}select{font-size:12px;padding:11px 24px 11px 9px}.meaning h3{font-size:21px;line-height:1.6}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

summary.course-heading{cursor:pointer;list-style:none}summary.course-heading::-webkit-details-marker{display:none}.scope-controls:not([open]) .course-heading p{margin-bottom:0}.scope-controls[open] .course-heading{margin-bottom:7px}@media(max-width:700px){.scope-fields{grid-template-columns:1fr 95px}.intro{margin:20px 0}.intro .eyebrow,.intro .muted{display:none}.intro h1{font-size:22px;line-height:1.6}.exam{min-width:93px}.exam strong{font-size:20px}.stats{margin-bottom:18px}.scope-controls{margin-bottom:18px;padding:14px}.course-heading .text-btn{font-size:10px;white-space:nowrap}.course-heading p{max-width:215px}.association{height:142px}}
