
:root{--bg:#F4F6F9;--c:#fff;--t:#0E1B2C;--m:#566478;--l:#DDE3EB;--l2:#C5CEDA;--bl:#1F4FD8;--co:#C93D15;--gr:#1F7A4D;--hl:#E6ECFF;--onbl:#fff;--onco:#fff}
@media(prefers-color-scheme:dark){:root{--bg:#0E1520;--c:#18212E;--t:#EEF2F7;--m:#9AA9BD;--l:#2A3544;--l2:#3A4759;--bl:#7FA0FF;--co:#FF8A63;--gr:#5FD39A;--hl:#1E2B4A;--onbl:#0E1520;--onco:#0E1520}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--t);font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;padding-bottom:90px}
main{max-width:520px;margin:auto;padding:24px 16px 100px;min-height:100vh;display:flex;flex-direction:column;gap:14px}
h1,.d{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;margin:0}h1{font-size:32px;line-height:1.2}
button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.m{color:var(--m);font-size:14px}
.card{background:var(--c);border-radius:16px;padding:16px;margin-bottom:14px}.hero{background:var(--t);color:var(--bg);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.hero .m{color:inherit;opacity:.75}
.btn{height:48px;padding:0 20px;border-radius:24px;border:2px solid var(--t);background:none;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.p{background:var(--bl);border-color:var(--bl);color:var(--onbl)}.btn.s{background:var(--co);border-color:var(--co);color:var(--onco)}.btn.k{background:var(--t);color:var(--bg)}.btn.o{border-color:var(--l2)}
.btn:focus-visible,.chip:focus-visible,.sen:focus-visible,nav a:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
.row{display:flex;gap:8px;flex-wrap:wrap}.row>.btn{flex:1}.grid2{display:flex;gap:12px;flex-wrap:wrap}.grid2>*{flex:1}
.seg{display:flex;border:2px solid var(--t);border-radius:12px;overflow:hidden}.seg button{flex:1;height:44px;border:0;background:none;font-weight:700;cursor:pointer}.seg .on{background:var(--t);color:var(--bg)}
.chip{height:44px;padding:0 16px;border-radius:22px;border:1px solid var(--l2);background:var(--c);cursor:pointer;font-weight:500}.chip.on{background:var(--bl);border-color:var(--bl);color:var(--onbl)}
.li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--l)}.li .d{font-size:19px}.st{font-size:14px;font-weight:700;color:var(--bl)}.st.ok{color:var(--gr)}
label{font-size:14px;font-weight:700;color:var(--m);display:block;margin-bottom:6px}
.in{width:100%;background:var(--c);border:1px solid var(--l2);border-radius:14px;padding:12px 14px;font-size:20px;resize:vertical}
.sen{padding:14px 16px;border-radius:14px;cursor:pointer;opacity:.7}.sen.on{background:var(--hl);opacity:1}.sen .d{font-size:22px;line-height:1.35}.sen.me{margin-left:18px}
nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;display:flex;background:var(--c);border-top:1px solid var(--l);z-index:100}
nav a{flex:1;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:13px;font-weight:700;color:var(--m)}nav a.on{background:var(--t);color:var(--bg)}
#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:var(--t);color:var(--bg);padding:10px 18px;border-radius:20px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:101}#toast.on{opacity:1}
.w{border-bottom:2px dotted var(--bl);cursor:pointer}main.rd{padding-bottom:140px}
.bar{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);width:100%;max-width:520px;display:flex;gap:8px;padding:10px 14px;background:var(--c);border-top:1px solid var(--l);z-index:100}.bar .btn{flex:1;height:52px;padding:0 8px;background:var(--c)}.bar .btn.s{background:var(--co)}
.sheet{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:520px;background:var(--c);border-radius:20px 20px 0 0;padding:18px 20px;box-shadow:0 -4px 24px rgba(14,27,44,.2);display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;z-index:110}.sbox{background:var(--bg);border-radius:12px;padding:10px 12px}.sheet .row .btn{padding:0 12px}
:root{--die:#B3261E}@media(prefers-color-scheme:dark){:root{--die:#FF7B7B}}
.opt{width:100%;justify-content:flex-start;text-align:left;min-height:52px;height:auto;padding:12px 16px;border-radius:14px;font-weight:500}.opt.ok{border-color:var(--gr);background:var(--hl)}.opt.no{border-color:var(--co)}

    
/* iOS-inspired application system */
:root{color-scheme:light;--bg:#f5f5f7;--c:#fff;--t:#1d1d1f;--m:#73737b;--l:#e8e8ed;--l2:#d6d6dd;--bl:#007aff;--co:#007aff;--gr:#248a53;--hl:#eaf3ff;--onbl:#fff;--onco:#fff;--die:#d83a46}
html{background:var(--bg);scroll-padding-bottom:190px}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.25px;padding-bottom:0;-webkit-tap-highlight-color:transparent}button,a,input,textarea{touch-action:manipulation}button,a{transition:background .18s,transform .18s}button:active,a.feature:active{transform:scale(.98)}
.app-header{height:82px;max-width:860px;padding:20px 30px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:8px;font-size:21px;font-weight:750;letter-spacing:-.7px}.brand-mark{background:#1d1d1f;color:white;display:grid;place-items:center;width:33px;height:33px;border-radius:11px;font-size:25px}.brand-dot{font-size:9px;color:#007aff;margin-left:1px}.header-note{font-size:12px;color:var(--m)}
main{max-width:800px;padding:22px 30px 130px;min-height:calc(100vh - 82px);gap:18px}h1{font-size:38px;letter-spacing:-1.5px;line-height:1.08;font-weight:750}h2{font-size:21px;letter-spacing:-.65px;margin:0;font-weight:700}.eyebrow{font-size:11px;letter-spacing:1.1px;text-transform:uppercase;font-weight:650;color:var(--m)}.welcome{display:flex;align-items:center;justify-content:space-between;gap:16px}.level-badge{background:#e7ebf1;border:1px solid #dfe3eb;padding:12px;border-radius:16px;font-size:16px;font-weight:650;color:#626977}.intro{color:var(--m);font-size:15px;margin:-7px 0 8px}.card{border-radius:24px;padding:22px;margin:0;box-shadow:0 3px 18px #24243a03}.btn{border:0;border-radius:15px;background:#eef0f5;min-height:48px;height:auto;padding:13px 18px;font-weight:600;font-size:15px;line-height:1.25}.btn.p,.btn.s,.btn.k{background:#007aff;color:white;border:0}.btn.o{background:#eff2f7;color:#2369b7}.row{gap:9px}.row>.btn{min-width:100px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.m{line-height:1.55}.seg{background:#e7e7ec;border:0;border-radius:13px;padding:4px;gap:3px;flex-shrink:0}.seg button{height:37px;border-radius:10px;font-size:14px;color:#73737b}.seg .on{background:#fff;color:var(--t);box-shadow:0 2px 5px #00000012}.chip{border:0;background:#fff;color:#74747d;font-size:13px;height:38px;padding:0 15px;font-weight:600}.chip.on{background:#e6f1ff;color:#007aff}.in{border:1px solid #e4e5eb;border-radius:17px;font-size:17px;padding:15px}label{font-weight:600;font-size:13px}
.feature{display:block;border-radius:28px;overflow:hidden;background:#e8efff;position:relative;min-height:350px}.feature-top{display:flex;justify-content:space-between;align-items:center;padding:23px 25px;position:relative;z-index:2;color:#325c9e}.pill{font-size:10px;font-weight:750;letter-spacing:1.4px;padding:8px 11px;border-radius:20px;background:#ffffffa6}.feature-top>span:last-child{font-size:24px}.feature-copy{position:relative;z-index:2;padding:45px 26px 24px;max-width:65%}.feature-copy .eyebrow{color:#607ba5;font-size:10px}.feature h2{font-size:31px;letter-spacing:-1.1px;margin:9px 0 5px;color:#17335b}.feature p{color:#60799e;font-size:15px;margin:0 0 21px}.feature-cta{display:inline-flex;gap:22px;align-items:center;color:white;background:#007aff;border-radius:14px;padding:14px 18px;font-size:13px;font-weight:650}.feature-cta span{font-size:19px}.scene-art{position:absolute;width:280px;height:240px;right:-10px;bottom:13px;opacity:.95}.orb{position:absolute;right:35px;top:0;background:#fff1c9;width:140px;height:140px;border-radius:50%}.shop{position:absolute;bottom:25px;right:28px;width:170px;height:143px;background:#f8fafc;border-radius:13px 13px 3px 3px;box-shadow:9px 10px 0 #b8c9e94d;transform:rotate(-5deg)}.awning{height:32px;background:repeating-linear-gradient(90deg,#7b9ed2 0px,#7b9ed2 20px,#e4ecf7 20px,#e4ecf7 40px);border-radius:12px 12px 8px 8px}.shop-name{text-align:center;font-size:11px;font-weight:700;color:#55719b;padding-top:13px}.shop-window{position:absolute;bottom:17px;left:16px;width:75px;height:53px;background:#d0e3f4;border:5px solid #edf1f6;border-radius:7px}.shop-window:after{content:'🥐';font-size:30px;position:absolute;bottom:-6px;left:10px}.shop-door{position:absolute;bottom:0;right:18px;width:44px;height:73px;background:#9cb9dc;border-radius:6px 6px 0 0;border:5px solid #e9eff8}.tree{position:absolute;width:43px;height:70px;border-radius:50%;background:#92b9a2;bottom:45px;right:0;box-shadow:inset -10px -5px #83ab96}.tree:after{content:'';position:absolute;width:5px;height:50px;background:#789283;top:45px;left:19px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 0}.section-title>span{font-size:12px;color:#92929b}.stats .card{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.stat-icon{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;font-size:24px}.blue{background:#edf4ff;color:#007aff}.green{background:#eaf7ee;color:#248a53}.stats strong{font-size:36px;letter-spacing:-1.5px;font-weight:650}.stats strong small{font-size:17px;color:#a4a4ad;font-weight:500;letter-spacing:0}.stats .m{font-size:13px}.stat-link{font-size:11px;color:#007aff;margin-top:7px}.goal-card .section-title{margin:0}.goal-card h2{font-size:18px}.progress{height:7px;background:#f0f0f5;border-radius:8px;overflow:hidden;margin-top:19px}.progress span{display:block;height:100%;border-radius:8px;background:#007aff}.goal-card p{font-size:13px}.goal-card .chip{background:#f4f5f8}.goal-card .chip.on{background:#e6f1ff}.capture{display:flex;align-items:center;gap:13px;background:white;border-radius:22px;padding:18px}.capture b{font-size:14px}.capture .m{font-size:12px;margin-top:4px}.capture>span:last-child{margin-left:auto;font-size:24px;color:#a4a4ad}.backup{color:#8a8a94;font-size:12px;padding:10px 5px}.backup summary{cursor:pointer}.backup .row{margin-top:12px}.backup label{margin:0;color:#2369b7}
nav{bottom:max(14px,env(safe-area-inset-bottom));max-width:430px;width:calc(100% - 32px);border:1px solid #ffffffb3;border-radius:27px;background:#ffffffdd;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:6px;box-shadow:0 8px 38px #30364d1c;z-index:100}nav a{height:57px;border-radius:21px;font-size:10px;gap:4px;color:#9999a2}nav a svg{width:22px;height:22px;stroke-width:1.7}nav a.on{background:#edf4ff;color:#007aff}.li{padding:19px 16px;background:white;border-radius:18px;border:0;margin-bottom:9px}.li .d{font-size:18px;font-weight:650;letter-spacing:-.4px}.li .m{font-size:12px;margin-top:4px}.li .st{font-size:11px;background:#edf4ff;padding:7px 10px;border-radius:10px}.li .st.ok{background:#eaf7ee}.sen{background:white;opacity:1;border:1px solid transparent;padding:20px;margin-bottom:12px;border-radius:21px}.sen .d{font-size:22px;line-height:1.5;letter-spacing:-.5px}.sen .m{color:#868690}.sen.me{margin-left:24px;background:#f0f5ff}.sen.on{background:#eaf3ff;border-color:#b9d9ff}.w{border-bottom:1px dotted #90b7e7}.bar{bottom:calc(94px + env(safe-area-inset-bottom));width:calc(100% - 32px);max-width:570px;border:1px solid #fff;border-radius:23px;background:#ffffffdf;backdrop-filter:blur(20px);padding:8px;box-shadow:0 4px 24px #30364d12;gap:6px}.bar .btn{height:46px;min-width:0;border-radius:16px;font-size:13px;background:#f0f4fa;color:#346aa8}.bar .btn.s{background:#007aff;color:white}main.rd{padding-bottom:225px}.sheet{max-width:570px;bottom:0!important;padding:27px 22px calc(24px + env(safe-area-inset-bottom));border-radius:30px 30px 0 0;box-shadow:0 -10px 90px #17203730;max-height:75dvh;border:1px solid #ececf2}.sheet:before{content:'';width:34px;height:4px;border-radius:4px;background:#d8d8df;align-self:center;margin:-16px 0 12px}.sbox{background:#f5f5f7;padding:15px;border-radius:15px}#toast{bottom:175px;max-width:90%;font-size:13px;text-align:center;box-shadow:0 6px 30px #0002}.opt{font-size:16px;background:#fff!important;color:var(--t)!important;border:2px solid transparent!important}.opt.ok{border-color:#34c759!important;background:#edf9ef!important}.opt.no{border-color:#ff6c6c!important}.btn:disabled{opacity:.45;cursor:default}
@media(min-width:1000px){main{padding-top:35px}.feature{min-height:325px}.scene-art{right:35px;transform:scale(1.15);transform-origin:bottom right}.feature-copy{padding-top:28px}.app-header{border-bottom:1px solid #e9e9ee}nav{bottom:20px}}
@media(max-width:540px){.app-header{height:70px;padding:17px 23px}.header-note{font-size:11px}main{padding:15px 22px 125px;gap:18px}h1{font-size:34px}.intro{font-size:13px}.feature{min-height:350px}.feature-copy{max-width:100%;padding-top:113px}.feature h2{font-size:29px}.scene-art{bottom:100px;right:8px;transform:scale(.72);transform-origin:right bottom}.feature-top{padding:20px}.feature-copy{padding-left:22px}.feature-copy .eyebrow{max-width:65%}.feature p{font-size:14px}.section-title h2{font-size:20px}.section-title>span{font-size:10px}.card{padding:19px;border-radius:22px}.stats .m{font-size:11px}.stats strong{font-size:32px}.stat-link{font-size:10px}.capture{padding:16px 13px;gap:10px}.capture .m{font-size:11px}.grid2{gap:12px}.sen .d{font-size:20px}.sheet .row{flex-wrap:wrap}.sheet .row>.btn{flex:1 1 40%}.li{padding:17px 13px}.li .d{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.reader-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--m)}.icon-button{border:0;background:#edf3fc;color:#007aff;width:44px;height:44px;border-radius:15px;cursor:pointer;font-size:25px;flex-shrink:0}.reader-tabs{display:flex;gap:5px;border-bottom:1px solid var(--l);padding-bottom:10px}.reader-tabs button{border:0;background:transparent;border-radius:12px;padding:11px 16px;font-weight:650;color:#85858e;font-size:14px;cursor:pointer}.reader-tabs button.on{background:#e6f1ff;color:#007aff}.reader-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.reader-controls label{display:flex;align-items:center;gap:5px;margin:0;margin-left:auto;font-size:12px}.reader-controls select{border:0;padding:10px;background:white;border-radius:12px;color:#2369b7;font:inherit}.sen .d{font-size:var(--reading-size,20px)}.hide-translations .sen>.m:last-child{display:none}.lesson-notes{display:grid;gap:14px}.lesson-notes .card>p{font-size:15px;line-height:1.75;color:#73737b}.lesson-notes h2{margin-top:10px}.vocab-list{display:grid;gap:10px}.vocab-list article{display:flex;align-items:center;justify-content:space-between;gap:12px}.vocab-list strong{font-size:22px;letter-spacing:-.5px}.vocab-list p{margin:6px 0 0}.back-link{color:#007aff;font-weight:650}.search-box{display:flex;align-items:center;gap:8px;padding:5px 7px 5px 15px;background:#eaeaf0;border-radius:16px}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:15px;padding:10px 0}.search-box:focus-within{outline:2px solid #99caff}.search-box .chip{background:#fff}.topic-scroll{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.topic-scroll .chip{flex-shrink:0}.saved-filter{align-self:flex-start}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.story-tile{background:white;border-radius:24px;overflow:hidden;box-shadow:0 4px 20px #25254305;transition:transform .15s}.story-tile:hover{transform:translateY(-3px)}.tile-art{height:130px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.tile-art>span{font-size:61px;line-height:1;color:#506b8c;transform:rotate(-9deg)}.tile-art:before,.tile-art:after{content:'';position:absolute;border:1px solid #ffffff70;width:160px;height:160px;border-radius:50%;right:-60px;bottom:-60px}.tile-art:after{width:200px;height:200px;right:-80px;bottom:-80px}.tile-art small{position:absolute;top:14px;left:15px;background:#ffffffb5;border-radius:8px;padding:5px 8px;font-size:10px;font-weight:700}.art-0{background:#e3edff}.art-1{background:#e8f2e8}.art-2{background:#f7eade}.art-3{background:#eee9f8}.tile-copy{padding:20px}.tile-copy .eyebrow{font-size:9px;letter-spacing:.8px}.tile-copy h2{font-size:21px;line-height:1.3;margin:9px 0 5px}.tile-copy p{font-size:13px;color:var(--m);margin:0 0 19px;line-height:1.5}.tile-bottom{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#007aff;gap:8px}.week-strip{display:flex;justify-content:space-between;gap:7px;margin-top:24px}.week-day{display:flex;flex-direction:column;align-items:center;gap:12px;color:#8b8b95;font-size:12px}.week-day b{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#f4f4f7}.week-day.active b{background:#e6f5eb;color:#248a53}.setting{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0;border-bottom:1px solid var(--l);font-size:14px}.setting .chip{background:#edf4ff;color:#007aff}.review-help{font-size:12px;text-align:center;padding:0 10px}.btn small{display:block;font-size:10px;opacity:.7;margin-top:5px;font-weight:500}nav{max-width:480px}nav a{min-width:0;font-size:10px}.w:focus-visible{outline:2px solid #007aff}.btn.opt{width:100%}
@media(max-width:540px){.story-grid{gap:12px}.tile-art{height:105px}.tile-art>span{font-size:46px}.tile-copy{padding:15px}.tile-copy h2{font-size:17px}.tile-copy .eyebrow{font-size:8px}.tile-copy p{font-size:12px;min-height:36px;margin-bottom:12px}.tile-bottom{font-size:9px}.reader-tabs button{padding:10px 13px}.reader-controls{gap:5px}.reader-controls .chip{font-size:12px;padding:0 12px}.reader-controls label{margin-left:auto}.reader-meta{font-size:11px}.row:has([data-a=grade]){flex-wrap:nowrap}.row>[data-a=grade]{min-width:0;flex:1;padding:12px 8px;font-size:13px}nav a{height:55px}.week-day b{width:30px;height:30px}}
