:root{--paper:#f6f3eb;--white:#fffefa;--ink:#243b35;--muted:#707b72;--green:#2c6655;--light:#e8eee5;--line:#dedfd4;--blue:#296eaf;--orange:#bd7146}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Segoe UI,sans-serif;font-size:15px}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink);padding:11px 17px;transition:background .16s,transform .16s}button:hover{background:var(--light)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #7e9eeb;outline-offset:3px}button:disabled{cursor:default;opacity:.45}a{color:var(--green)}kbd{font-size:11px;padding:3px 5px;background:#e9eade;border-radius:4px;font-family:inherit}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;background:#eef0e7;border-right:1px solid var(--line);padding:30px 20px 105px;overflow-y:auto}.brand{display:flex;gap:13px;text-decoration:none;align-items:center;color:var(--ink);font-family:serif;font-size:35px}.brand span{font:600 18px 'DM Sans',sans-serif}.brand small{display:block;font-size:8px;letter-spacing:1.3px;margin-top:6px;font-weight:500;color:var(--muted)}.lesson-label{margin:36px 0 14px;font-size:11px;letter-spacing:1px;color:var(--muted)}.lesson-label span{float:right;font-size:9px}nav{display:grid;gap:5px}.nav-char{display:flex;align-items:center;width:100%;padding:8px 11px;text-align:left;border-color:transparent;background:transparent}.nav-char.current{background:var(--white);border-color:#ccd6c6;box-shadow:0 2px 5px #30452c06}.nav-char .han{font-size:25px;width:40px;font-family:'KaiTi','STKaiti',serif}.nav-char .pin{font-size:13px}.nav-char .index{margin-left:auto;font-size:10px;color:#9ba495}.nav-char.done .index{color:var(--green)}.side-note{border-top:1px solid var(--line);margin-top:22px;padding-top:20px;color:var(--muted);font-size:13px;line-height:1.6}.side-note small{font-size:11px}.small-icon{font-size:23px;color:var(--orange)}main{margin-left:246px;padding:32px 46px 128px;max-width:1650px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:31px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.5px;color:var(--muted)}header p{font-size:13px;margin:7px 0 0}.top-actions{display:flex;align-items:center;gap:10px}.top-actions label{font-size:12px;color:var(--muted)}select{border:1px solid var(--line);background:var(--white);padding:9px;border-radius:7px;color:var(--ink);font-size:12px}.quiet{background:transparent}.hero{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr);gap:22px}.word-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;gap:26px;align-items:center;min-height:285px}#large-character{width:180px;flex:0 0 180px}#large-character svg{width:100%;display:block}.character-svg .grid{stroke:#e0e6dc;stroke-width:1;vector-effect:non-scaling-stroke}.character-svg .stroke{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.character-svg .faded{stroke:#cad0cb}.character-svg .new{stroke:var(--blue);stroke-width:1.8}.character-svg .direction{stroke:var(--blue);stroke-width:1.1;fill:none;vector-effect:non-scaling-stroke}h1{font-family:'Lora',Georgia,serif;font-size:43px;font-weight:400;margin:9px 0 3px}.meaning{font-size:19px;margin:0 0 20px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#214d40;color:white}.listen{font-size:13px;white-space:nowrap}.whole{font-size:12px;line-height:1.65;color:var(--muted);max-width:330px;margin-bottom:0}.picture-card{border-radius:16px;background:#e7ecdf;padding:25px 25px 20px;display:flex;flex-direction:column;justify-content:space-between}.picture-card svg{display:block;width:100%;height:153px}.picture-card p{font-size:12px;line-height:1.6;color:#596a54;margin:4px 0 0}.section{margin-top:37px;border-top:1px solid var(--line);padding-top:28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:19px}.step{font-size:10px;color:var(--orange);letter-spacing:1px;font-weight:700;display:block;margin-bottom:7px}h2{font-family:'Lora',Georgia,serif;font-size:24px;font-weight:400;margin:0 0 8px}.section-heading p{margin:0;color:var(--muted);font-size:12px}.practice-settings{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);margin-bottom:19px}.practice-settings span{margin-left:auto}.stroke-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:12px}.stroke-card{padding:13px 12px;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:12px;min-height:197px;max-width:230px;position:relative}.stroke-card.active{border-color:#5a89b5;box-shadow:0 0 0 2px #99bad03b;background:#f4f8fb}.stroke-card svg{width:100%;max-width:125px;display:block;margin:0 auto 11px}.stroke-card .stroke-label{display:flex;align-items:baseline;gap:7px;font-size:12px;line-height:1.4}.stroke-card .num{color:var(--orange);font-size:11px;flex-shrink:0}.stroke-card small{display:block;font-size:10px;color:var(--muted);margin:5px 0 0 18px;line-height:1.4}.stroke-card .play-small{position:absolute;right:10px;top:8px;color:var(--green);font-size:10px}.form-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:18px}.parts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.part{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--white);display:flex;gap:17px;align-items:center}.part svg{width:82px;flex:0 0 82px}.part h3{margin:0 0 5px;font-size:17px;font-weight:500}.part .english{font-size:13px;margin:0 0 7px;line-height:1.5}.tag{display:inline-block;font-size:9px;letter-spacing:.3px;border-radius:4px;background:#edf0e8;color:#69775f;padding:4px 6px}.part button{margin-top:12px;padding:7px 10px;font-size:11px}.part .unspoken{font-size:10px;color:var(--muted);margin:10px 0 0}.remember{display:grid;grid-template-columns:1.5fr 1fr;gap:60px}.remember p{font-size:14px;line-height:1.75}.remember .memory-rule{font-size:11px;color:var(--muted)}.finish-card{align-self:center;border-left:1px solid var(--line);padding-left:35px}.finish-card button{display:block;margin-top:15px;font-size:13px}.finish-card p{font-size:11px;color:var(--muted);max-width:260px}footer{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);margin-top:32px;padding-top:18px;font-size:9px;color:var(--muted)}footer a{white-space:nowrap}.audio-bar{position:fixed;bottom:0;left:246px;right:0;min-height:76px;background:#fffefaee;backdrop-filter:blur(15px);border-top:1px solid var(--line);display:flex;align-items:center;gap:17px;padding:14px 46px;box-shadow:0 -5px 25px #25362605}.audio-bar #stop-audio{border-radius:50%;width:38px;height:38px;padding:0;color:var(--green)}.audio-bar strong{font-size:12px;display:block}.audio-bar span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.audio-bar #replay-audio{font-size:12px;margin-left:auto}.wave{display:flex;gap:3px;align-items:center;height:25px;margin-left:10px}.wave i{display:block;width:3px;height:5px;background:#839d83;border-radius:3px}.playing .wave i{animation:wave .8s ease-in-out infinite alternate}.playing .wave i:nth-child(2){animation-delay:.2s}.playing .wave i:nth-child(3){animation-delay:.4s}.playing .wave i:nth-child(4){animation-delay:.1s}.playing .wave i:nth-child(5){animation-delay:.3s}@keyframes wave{to{height:22px}}@media(min-width:1600px){.stroke-grid{grid-template-columns:repeat(7,1fr)}}@media(max-width:1200px){main{padding:25px 27px 120px}.word-card{padding:22px;gap:15px}#large-character{width:130px;flex-basis:130px}.parts-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1.7fr 1fr}.audio-bar{padding:14px 27px}.top-actions label{display:none}}@media(max-width:980px){.sidebar{width:190px;padding:25px 15px 100px}.brand{font-size:28px;gap:9px}.brand span{font-size:15px}.brand small{font-size:6px}.lesson-label{font-size:9px}main{margin-left:190px}.audio-bar{left:190px}.hero{grid-template-columns:1fr}.picture-card{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:4px 20px}.picture-card svg{height:105px}.picture-card #memory-image{grid-column:2;grid-row:1/3}.picture-card p{grid-column:1}.remember{gap:25px}.parts-grid{grid-template-columns:1fr 1fr}.part{padding:14px;gap:9px}.part svg{width:65px;flex-basis:65px}.practice-settings span{display:none}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:19px 18px 14px;border-right:none;border-bottom:1px solid var(--line);overflow:hidden}.brand{font-size:27px}.brand small{font-size:7px}.lesson-label{margin:18px 0 9px}.lesson-label span{float:none;margin-left:15px}.side-note{display:none}nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:5px}.nav-char{width:61px;flex:0 0 61px;display:block;text-align:center;padding:8px 4px}.nav-char .han{display:block;width:auto;font-size:22px}.nav-char .pin{font-size:10px}.nav-char .index{display:none}main{margin:0;padding:22px 18px 130px}header{align-items:flex-start;gap:8px;margin-bottom:20px}.top-actions{gap:5px;flex-wrap:wrap;justify-content:flex-end}.top-actions select{padding:7px 3px;width:72px}.top-actions button{padding:8px;font-size:11px}.top-actions kbd{display:none}header .eyebrow{font-size:8px;letter-spacing:.8px}.word-card{padding:18px;gap:17px;min-height:240px}#large-character{flex-basis:112px;width:112px}h1{font-size:34px}.meaning{font-size:16px}.listen{font-size:11px;padding:10px}.word-info .eyebrow{font-size:8px}.whole{font-size:11px}.picture-card{padding:17px}.picture-card p{font-size:11px}.section{padding-top:22px;margin-top:26px}h2{font-size:21px}.section-heading{align-items:flex-start;gap:12px}.section-heading p{font-size:11px;line-height:1.5}.stroke-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stroke-card{padding:10px 7px;min-height:160px}.stroke-card .stroke-label{font-size:10px;gap:4px}.stroke-card small{font-size:9px;margin-left:14px}.parts-grid{grid-template-columns:1fr}.part svg{width:75px;flex-basis:75px}.remember{grid-template-columns:1fr;gap:20px}.finish-card{border-left:none;border-top:1px solid var(--line);padding:20px 0 0}.audio-bar{left:0;padding:12px 18px;gap:10px}.audio-bar .wave{display:none}.audio-bar strong{font-size:11px}.audio-bar span{font-size:9px;max-width:220px}.audio-bar #replay-audio{padding:8px;font-size:10px}footer{align-items:flex-start;flex-direction:column;line-height:1.5}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.hero{gap:30px}.word-card{min-height:320px}.section{margin-top:52px;padding-top:34px}.stroke-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:20px}.stroke-card{min-height:225px;padding:20px 16px}.parts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}.part{padding:25px;min-height:165px}.part .part-meaning{display:inline-block;margin-right:6px}.example{margin-top:22px;padding:22px;background:#edf0e8;border-radius:12px;line-height:1.8}.example .han{font-size:24px}.example p{margin:4px 0}.meaning-listen{margin-top:14px;font-size:12px}@media(max-width:700px){.stroke-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parts-grid{grid-template-columns:1fr}.word-card{flex-wrap:wrap}.section{margin-top:35px}.part{padding:20px}.hero{gap:20px}}

.build-heading{background:#edf1e7;padding:28px;border-radius:16px;margin:12px 0 24px}.build-heading h3{font-size:23px;font-weight:500;margin:0 0 12px}.build-heading p{font-size:15px;line-height:1.8;max-width:850px}.build-heading button{font-size:13px}.build-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:30px;align-items:start}.component-equation{display:flex;align-items:center;justify-content:center;gap:10px;background:#fffefa;padding:24px 12px;border:1px solid #dedfd4;border-radius:16px;flex-wrap:wrap}.equation-part{flex:1 1 100px;text-align:center;max-width:180px}.assembly-char{display:block;width:100%;max-height:140px;margin:0 auto 12px}.equation-part strong,.equation-part span,.equation-part small{display:block;margin:6px 0}.equation-part strong{font-size:20px}.equation-part span{font-size:12px}.equation-part small{font-size:12px;line-height:1.5}.whole-result{background:#edf1e7;padding:10px;border-radius:10px}.join-sign{font-size:25px;font-weight:400;color:#7a866e}.equation-note{font-size:12px;line-height:1.8;color:#65766b}.mini-video video{width:100%;aspect-ratio:16/9;border-radius:12px;background:#f6f3eb;border:1px solid #dedfd4}.mini-video p{font-size:11px;color:#65766b}.example-pictures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0 36px}.example-pictures article{display:flex;align-items:center;gap:20px;padding:24px;background:#fffefa;border:1px solid #dedfd4;border-radius:16px}.example-pictures svg{width:42%;flex-shrink:0}.example-pictures h4{font-size:25px;font-weight:500;margin:0 0 8px}.example-pictures p{font-size:14px}.example-pictures strong{font-weight:500;font-size:14px;line-height:1.7}@media(max-width:1100px){.build-layout{grid-template-columns:1fr}.mini-video{max-width:680px}.example-pictures article{flex-direction:column;align-items:flex-start}.example-pictures svg{width:70%;align-self:center}}@media(max-width:700px){.build-heading{padding:20px}.example-pictures{grid-template-columns:1fr}.example-pictures article{flex-direction:row}.example-pictures svg{width:38%}.equation-part{flex-basis:90px}.assembly-char{max-height:115px}.component-equation{gap:5px}.join-sign{font-size:18px}}
.watch-along-panel{margin-top:28px;border:1px solid #dedfd4;border-radius:16px;padding:25px;background:#fffefa}.watch-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.watch-heading h3{font-size:23px;font-weight:500;margin:0 0 6px}.watch-heading p{font-size:13px;color:#65766b;margin:0}.watch-content{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(170px,1fr);gap:25px;align-items:center}.watch-content video{display:block;width:100%;aspect-ratio:16/9;background:#f6f3eb;border:1px solid #dedfd4;border-radius:12px}.watch-notes strong{font-size:27px;font-weight:500}.watch-notes p{font-size:13px;line-height:1.9}.watch-notes small{display:block;font-size:11px;line-height:1.7;color:#65766b}.watch-notes label{display:block;font-size:11px;margin:18px 0 7px}@media(max-width:980px){.watch-content{grid-template-columns:1fr}.watch-notes{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.watch-notes p{margin:0}.watch-notes small{flex-basis:100%}.watch-notes label{margin:0}}@media(max-width:700px){.watch-along-panel{padding:16px}.watch-heading{align-items:flex-start}.watch-heading h3{font-size:21px}.watch-heading p{font-size:11px}.watch-notes strong{font-size:22px}}

/* KAFA brand */
:root{--paper:#f6f8fc;--white:#fff;--ink:#17334e;--muted:#66788b;--green:#0874ce;--light:#eaf3fc;--line:#dce6ef;--blue:#296eaf;--orange:#0874ce}body{background:var(--paper)}.sidebar{background:#fff;border-color:#dce6ef;padding-top:25px}.kafa-brand{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.kafa-brand .logo-window{display:block;width:190px;height:62px;overflow:hidden}.kafa-brand .logo-window img{display:block;width:190px;height:190px;max-width:none;transform:translateY(-62px)}.kafa-brand .brand-subtitle{font:600 9px 'Segoe UI',sans-serif;letter-spacing:1.7px;color:#315775}.lesson-label{margin-top:28px;font-size:9px;letter-spacing:.8px}.lesson-label span{font-size:8px}.nav-char.current{background:#edf6ff;border-color:#c7e1f7}.primary:hover{background:#0561ad}.picture-card{background:#edf4fa}.app-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.kafa-tagline{font-size:13px;letter-spacing:.5px;color:#52718c}.app-toolbar>div{display:flex;gap:9px}.app-toolbar button{font-size:12px;padding:10px 14px}.welcome-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px;padding:24px 28px;background:linear-gradient(110deg,#eaf4ff,#f1f7fc);border:1px solid #d6e8f8;border-radius:16px}.welcome-strip h2{font:500 26px 'Segoe UI',sans-serif;letter-spacing:-.6px;margin:9px 0}.welcome-strip p{margin:0;color:#59748b;font-size:13px}.lesson-badge{white-space:nowrap;font-size:10px;color:#0874ce;padding:8px 12px;border:1px solid #bfdbf2;border-radius:30px;background:#ffffffa0}.text-button{border:none;background:none;padding:0;font-size:10px;color:#416987}.footer-brand{font-weight:600}.build-heading{background:#edf4fa}.whole-result{background:#eaf3fc}.example{background:#edf4fa}.tag{background:#edf4fa}.audio-bar{background:#ffffffed}footer{flex-wrap:wrap;justify-content:flex-start;gap:16px}footer>span:last-child{margin-left:auto}.side-note{color:#66788b}.side-note .small-icon{color:#0874ce}dialog{border:1px solid #dce6ef;border-radius:20px;max-width:520px;width:calc(100% - 36px);padding:32px;color:#17334e;box-shadow:0 20px 80px #17334e30}dialog::backdrop{background:#102a454a;backdrop-filter:blur(3px)}dialog h2{font-family:'Segoe UI',sans-serif;font-size:24px;padding-right:25px}dialog p,dialog li{font-size:14px;line-height:1.8}dialog code{word-break:break-all;font-size:12px}.dialog-close{position:absolute;right:15px;top:12px;border:none;font-size:23px;padding:3px 10px}.dialog-link{display:block;width:100%;padding:12px;border:1px solid #dce6ef;border-radius:8px;font:12px 'Segoe UI',sans-serif;color:#315775}.qr-in-dialog{display:block;width:180px;height:180px;margin:18px auto}.install-steps{padding-left:22px}#app-toast{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);background:#17334e;color:white;padding:12px 20px;border-radius:10px;font-size:13px;z-index:20;display:none;max-width:85%;text-align:center}#app-toast.show{display:block}@media(max-width:980px){.kafa-brand .logo-window{width:155px;height:51px}.kafa-brand .logo-window img{width:155px;height:155px;transform:translateY(-51px)}.kafa-brand .brand-subtitle{font-size:7px;letter-spacing:1.2px}.welcome-strip h2{font-size:23px}.lesson-badge{display:none}.kafa-tagline{font-size:11px}}@media(max-width:700px){.kafa-brand{align-items:flex-start}.kafa-brand .logo-window{width:150px;height:49px}.kafa-brand .logo-window img{width:150px;height:150px;transform:translateY(-49px)}.app-toolbar{margin-bottom:18px}.app-toolbar button{font-size:11px;padding:9px}.kafa-tagline{max-width:105px;line-height:1.5}.welcome-strip{padding:20px;margin-bottom:24px}.welcome-strip h2{font-size:22px}.welcome-strip p{font-size:12px;line-height:1.7}footer>span:last-child{margin-left:0}.sidebar{padding-top:16px}}
h1{font-family:Segoe UI,sans-serif;font-weight:500;letter-spacing:-.5px}
