:root{--ink:#242834;--ink-70:#626675;--ink-45:#9296a3;--ink-12:#e9eaf0;--paper:#f5f6fa;--paper-2:#fff;--line:#e7e8ee;--red:#ec648e;--red-soft:#fff0f5;--kai:var(--sans);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:max(env(safe-area-inset-bottom,0px),16px)}
body{background:#f5f6fa;background-image:none;padding:86px 36px 0 254px;user-select:text}button,input,select,textarea{font:inherit}button{transition:background .18s,transform .18s}button:hover{filter:brightness(.97)}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #00aeec;outline-offset:4px}a{color:inherit;text-decoration:none}.app-sidebar{position:fixed;inset:0 auto 0 0;width:218px;background:#fff;border-right:1px solid var(--line);padding:30px 23px;z-index:44;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:21px;line-height:1.3;letter-spacing:1px}.brand-mark{background:#fb7299;color:white;width:45px;height:49px;border-radius:14px;display:grid;place-items:center;font-size:33px;font-weight:900;transform:rotate(-7deg)}.side-label{font-size:9px;letter-spacing:2px;color:#a2a6b4;margin:25px 0 20px}.side-nav{display:flex;flex-direction:column;gap:9px}.side-nav button{text-align:left;padding:13px 12px;border-radius:11px;display:flex;gap:14px;align-items:center;color:#767b8b;font-weight:600;font-size:15px}.side-nav button.on{background:#fff0f5;color:#e75c89}.side-bottom{margin-top:auto;color:#9da1ae;font-size:12px}.mini-stamp{border:1px dashed #e4bdc9;padding:13px;margin-bottom:12px;border-radius:8px;color:#b37a8c;transform:rotate(-3deg);text-align:center}.app-header{position:absolute;top:0;left:218px;right:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid #e7e8ee;background:#fff;font-size:13px;gap:12px}.app-header span{color:#9599a7}.header-actions{display:flex;gap:12px;align-items:center;font-size:11px}.header-actions button{background:#eef8fd;color:#009dcb;padding:8px 12px;border-radius:9px;font-size:12px;font-weight:700}#mobile-rank{display:none}.view{min-height:calc(100vh - 86px);max-width:1540px;margin:auto}.home-hero{background:#fbe9e5;color:var(--ink);border:1px solid #f5dcd8;border-radius:20px;padding:38px 42px;overflow:hidden}.hero-inner{max-width:none;margin:0;min-height:240px}.hero-lines,.seal{display:none}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#9a7f80}.eyebrow span{margin-left:12px;border:1px solid #dba6ae;border-radius:4px;font-size:9px;padding:2px 5px;letter-spacing:1px}.hero-title{font-size:clamp(36px,3.5vw,54px);letter-spacing:-1px;line-height:1.24;margin:17px 0 12px;font-weight:900;position:relative;z-index:2;max-width:64%}.hero-title span{color:#e25e7d}.hero-sub{color:#8b7377;letter-spacing:.2px;font-size:13px;margin:12px 0 23px;max-width:64%}.hero-actions{display:flex;gap:18px;align-items:center}.exam-go{background:#272d3b;border:0;box-shadow:none;border-radius:10px;color:#fff;margin:0;padding:13px 21px;font-size:13px;letter-spacing:0;width:auto}.exam-go span{margin-left:25px}.secondary{font-size:12px;color:#846c72}.hero-fine{font-size:10px;color:#ac8e94;margin-top:20px;letter-spacing:1px}.hero-art{position:absolute;right:0;top:-15px;width:34%;height:280px;text-align:center}.sticker{background-image:url('./images/teacher-stickers.png');background-size:300% 200%;background-repeat:no-repeat;width:180px;aspect-ratio:1;flex-shrink:0}.sticker-0{background-position:0 0}.sticker-1{background-position:50% 0}.sticker-2{background-position:100% 0}.sticker-3{background-position:0 100%}.sticker-4{background-position:50% 100%}.sticker-5{background-position:100% 100%}.hero-art .sticker{width:250px;max-width:100%;margin:10px auto -10px}.hero-art b{display:block;font-size:17px;transform:rotate(-5deg)}.hero-art small{display:block;color:#b5949c;font-size:9px;margin-top:10px}.float-tag{font-style:normal;background:white;border:1px solid #efcccf;border-radius:20px;padding:7px 12px;color:#b57b86;font-size:10px;position:absolute;top:12px;right:-10px;transform:rotate(7deg)}.hero-stats{margin:20px 0 31px;display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--line);border-radius:14px;background:white;padding:20px 0}.hstat{text-align:center;border-right:1px solid var(--line)}.hstat:last-child{border:0}.hstat b,.hstat b.days{font-size:26px;color:#333b4d}.hstat span{color:#9499a6;font-size:10px;letter-spacing:.5px}.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:28px}.library-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 22px}.library-title h2{font-size:23px;letter-spacing:-.5px;margin-top:4px}.library-title .eyebrow{color:#9ba1ad;font-size:9px}.year-filter{font-size:11px;color:#8b91a1}.year-filter select{margin-left:7px;background:white;border:1px solid var(--line);border-radius:8px;padding:7px;color:#62697c}.tabbar{display:none}.container{max-width:none;padding:0 0 40px}.yr-head{font-size:14px;letter-spacing:0;border:0;padding:0;margin:20px 0 12px;color:#6c7485}.paper-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:transparent;border:0;box-shadow:none}.paper-row{display:flex;flex-wrap:wrap;position:relative;align-items:center;gap:8px;border:1px solid #e6e8f0;border-radius:12px;padding:18px;background:white;text-align:left;min-height:122px}.paper-row:hover{border-color:#f4a5be;box-shadow:0 5px 20px #eac7d22e;transform:translateY(-2px)}.pr-name{font-size:14px;font-weight:750;flex:0 0 100%}.pr-name small{font-size:9px;margin-top:9px;color:#9da3b0;letter-spacing:0}.pr-prog{width:auto;flex:1;height:4px;background:#eff0f5;border:0;margin-top:10px}.pr-prog i{background:#fb8aaa}.pr-pct{font-size:9px;margin-top:10px;color:#a1a7b5;min-width:25px}.pr-tag{position:absolute;top:7px;right:7px;font-size:8px;padding:0 4px}.study-aside{display:flex;flex-direction:column;gap:18px}.aside-card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px}.aside-card h3{font-size:18px;line-height:1.5}.aside-card p{font-size:11px;line-height:1.9;color:#9499a6;margin:9px 0}.aside-card label{font-size:11px;color:#8d93a1}.quote-card{text-align:center;background:#eef7fb;border-color:#ddecf3}.quote-card .sticker{width:142px;margin:8px auto}.quote-card h3{font-size:17px}.quote-card .eyebrow{color:#7a9fad;font-size:9px}.text-button{display:block;font-size:11px;font-weight:600;color:#9198a8;margin-top:12px}.quote-card .text-button{margin:12px auto 0}.challenge-card{background:#fff6ed;border-color:#f3e5d6}.challenge-card .eyebrow{color:#b6977a;letter-spacing:1px;font-size:9px}.challenge-card h3{margin-top:10px;color:#8a6c53}.foot-note{color:#aeb1bd;font-size:10px;letter-spacing:0;padding:25px 0}.topbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;top:12px;gap:8px}.tb-btn,.mini-btn,.dp-btn{border:1px solid #e1e5ed;box-shadow:none;border-radius:7px;letter-spacing:0}.tb-btn-solid,.dp-btn.red{background:#ec7297;color:white;border-color:#ec7297}.ex-title{font-size:14px;letter-spacing:0}.sec-tabs{top:69px;border:0;background:#f5f6fa;max-width:none;padding:14px 0;gap:7px}.sec-tab{border:1px solid var(--line);border-radius:8px;box-shadow:none;letter-spacing:0}.sec-tab.on{background:#fff0f5;color:#dc5f8a;border-color:#ffc1d3}.ex-body{max-width:1120px;padding:15px 0 90px;margin:auto}.q-card,.card{border:1px solid var(--line);box-shadow:none;border-radius:12px;background:white}.q-card{padding:24px}.opt{border:1px solid #e6e8ee;box-shadow:none;border-radius:8px;padding:12px;text-align:left;justify-content:flex-start}.opt:hover{background:#fff2f6;border-color:#f1aac0}.passage{font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:2}.dir-box{border:0;border-left:3px solid #00aeec;border-radius:0 9px 9px 0;background:#edf7fc;color:#728293;font-size:12px}.drawer{width:min(340px,90vw);border-left:1px solid var(--line);background:#fff;padding-top:20px}.modal{border:1px solid #e5e7ed;border-radius:16px;box-shadow:0 25px 80px #18233526;background:#fff}.md-head{border-bottom:1px solid var(--line)}.grade-fab{border:0;border-radius:12px;box-shadow:0 6px 24px #ec729733;background:#ec7297;color:white}.listen-note{border-radius:10px;border:1px solid #efdec8;background:#fff8ee;color:#a28662}.paper-input{background:#fafbfe;border:1px solid var(--line);border-radius:10px}.bank-words{background:#fff;border-radius:12px;border:1px solid var(--line)}.bank-chip{border-radius:7px;border:1px solid var(--line);box-shadow:none}.seg{max-width:800px}.empty-tip{padding:100px 20px}.nt-hint{max-width:none;margin:18px 0}.exam-strip{background:#fff0f5;border-radius:10px;border:0;margin-top:10px}.meme-feedback{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #f1c9d5;box-shadow:0 10px 40px #343d5726;border-radius:18px;padding:8px 18px 8px 4px;max-width:360px}.meme-feedback .sticker{width:105px}.meme-feedback strong{font-size:17px;display:block}.meme-feedback small{font-size:11px;display:block;color:#8e94a3}.meme-feedback .real-meme{width:110px;height:85px;object-fit:cover;border-radius:10px}.meme-credit{font-size:9px;color:#b4a0aa}#judge-pop{top:auto;bottom:25px;left:auto;right:28px;transform:none;width:auto;max-width:calc(100vw - 32px)}#judge-pop.show{transform:none;opacity:1}#judge-pop.fade{opacity:0}.meme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px}.meme-tile{text-align:center;background:#f8f9fc;border-radius:10px;padding:10px;font-size:12px}.meme-tile img{width:100%;height:110px;object-fit:contain;border-radius:8px}.meme-tile .sticker{width:100%}.meme-tile small{display:block;font-size:9px;color:#9da1ad}.rank-row{display:flex;gap:14px;padding:14px 4px;align-items:center;border-bottom:1px solid var(--line)}.rank-row b:last-child{margin-left:auto;color:#e76e94}.rank-tools{display:flex;gap:12px;padding:15px 0;align-items:center}.rank-tools select{padding:6px;border:1px solid var(--line);border-radius:7px}.dialog-message{color:#8c93a2;font-size:13px;padding:20px 0}.rp-card{background:#fff7f9;border:1px solid #f2c8d5;box-shadow:none;border-radius:12px}.rp-seal{display:none}.rp-title{font-size:18px;letter-spacing:0}.rp-ft{border-top:1px solid #f1d8e2;letter-spacing:0}.toolbar-hint{font-size:10px;color:#9299a6;margin:15px 0}
@media(min-width:1200px){.ex-body:has(.p-text){max-width:1200px}.ex-body .passage{max-width:82ch}.q-opts{gap:8px}}
@media(max-width:1200px){body{padding-left:222px;padding-right:24px}.app-sidebar{width:198px;padding:26px 17px}.app-header{left:198px;padding:0 24px}.home-layout{grid-template-columns:minmax(0,1fr) 220px;gap:18px}.paper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{padding:30px}.hero-title{font-size:38px}.hero-art .sticker{width:220px}.header-actions>span{display:none}}
@media(max-width:900px){body{padding:76px 20px 0 90px}.app-sidebar{width:70px;padding:22px 10px;align-items:center}.brand b,.side-label,.side-nav span,.side-bottom{display:none}.brand-mark{width:38px;height:40px}.side-nav{margin-top:35px;width:100%}.side-nav button{justify-content:center;padding:13px 0}.app-header{left:70px;height:62px;padding:0 20px}.home-layout{grid-template-columns:1fr}.study-aside{display:grid;grid-template-columns:1fr 1fr}.study-aside>.aside-card:last-child{display:none}.hero-art{right:-10px}.hero-title{font-size:36px}.hero-sub{font-size:11px}.hero-art .sticker{width:200px}.hero-art b{font-size:13px}.float-tag{display:none}.hero-actions{gap:10px}.exam-go{padding:11px 12px;font-size:12px}.secondary{font-size:11px}.paper-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.paper-row{padding:14px}.pr-name{font-size:12px}.hero-stats{margin-bottom:24px}.hstat b{font-size:22px}.hstat span{font-size:9px}}
@media(max-width:600px){body{padding:67px 14px 70px}.app-sidebar{position:fixed;inset:auto 0 0;width:100%;height:64px;padding:3px 8px calc(3px + env(safe-area-inset-bottom,0px));border:0;border-top:1px solid var(--line)}.brand{display:none}.side-nav{margin:0;flex-direction:row;gap:1px;width:100%}.side-nav button{flex:1;flex-direction:column;gap:0;font-size:15px;padding:4px;border-radius:7px}.side-nav span{display:block;font-size:9px}.side-nav #rank-open{display:none}.app-header{left:0;top:0;height:56px;padding:0 14px;position:absolute}.app-header>div>b{font-size:13px}.app-header>div>span{display:none}.header-actions{gap:6px}.header-actions button{font-size:10px;padding:6px 8px}#mobile-rank{display:block}.home-hero{border-radius:14px;padding:22px 18px 18px}.hero-inner{min-height:228px}.hero-title{font-size:31px;max-width:76%;letter-spacing:-1px;margin-top:15px}.eyebrow{font-size:8px;letter-spacing:1px}.eyebrow span{font-size:7px;margin-left:5px}.hero-sub{max-width:63%;font-size:10px;margin:10px 0 18px}.hero-art{width:37%;top:56px;right:-6px;height:170px}.hero-art .sticker{width:145px;margin:0 auto}.hero-art b{font-size:10px}.hero-art small{font-size:7px;margin-top:6px}.hero-fine{font-size:8px;letter-spacing:0}.hero-actions{display:block;position:relative;z-index:2}.exam-go{padding:10px 12px;font-size:11px}.exam-go span{margin-left:10px}.secondary{margin-left:0;display:block;margin-top:10px;font-size:10px}.hero-stats{padding:15px 0;margin-top:14px;gap:2px}.hstat b,.hstat b.days{font-size:21px}.hstat span{font-size:8px;letter-spacing:0}.library-title h2{font-size:20px}.year-filter select{padding:6px;font-size:10px}.paper-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.paper-row{padding:14px 12px;min-height:112px}.pr-name{font-size:12px}.pr-name small{font-size:8px}.study-aside{grid-template-columns:1fr 1fr;gap:10px}.aside-card{padding:14px}.aside-card h3,.quote-card h3{font-size:14px}.quote-card .sticker{width:110px}.challenge-card h3{margin-top:18px}.topbar{padding:9px 7px;gap:4px;flex-wrap:wrap;top:0;border-radius:8px}.tb-btn{padding:6px;font-size:10px;min-height:34px}.ex-title{font-size:11px;min-width:60px}.sec-tabs{top:60px;padding:8px 0;overflow-x:auto;flex-wrap:nowrap}.sec-tab{font-size:11px;white-space:nowrap;flex-shrink:0;padding:8px}.q-card{padding:17px}.passage{font-size:16px}.opt{padding:10px 8px}.ex-body{padding-top:8px}.grade-fab{bottom:82px;right:20px}.meme-grid{grid-template-columns:1fr 1fr}#judge-pop{bottom:83px;right:12px;max-width:calc(100vw - 24px)}.meme-feedback{max-width:320px}.meme-feedback strong{font-size:15px}.meme-feedback .sticker{width:85px}.library-title{margin-bottom:15px}.foot-note{font-size:9px}.modal-wrap{padding:14px}.modal{max-height:85dvh}.meme-tile img{height:100px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.card.paper-grid{background:transparent;border:0;box-shadow:none}.yr-head::after{display:none}.paper-grid .paper-row{border-bottom:1px solid #e6e8f0}.app-sidebar .side-nav button{min-height:44px}
@media(min-width:1050px){.reading-split{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:22px;align-items:start}.reading-split>.q-card{position:sticky;top:142px;max-height:calc(100vh - 165px);overflow:auto;margin-top:0}.reading-questions .q-card:first-child{margin-top:0}.reading-split>.passage{font-size:17px;line-height:1.95}.reading-split .q-opts{grid-template-columns:1fr}.reading-split .passage{font-size:17px}.reading-split button{user-select:none}}.yr-head{background:none}.sec-tab{user-select:none}
.card.paper-grid::before,.card.paper-grid::after{display:none}.card.paper-grid{filter:none}.paper-row .pr-name small{white-space:normal}.app-header #export-backup{background:#f5f6fa;color:#9297a5}
