@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');
:root{--ink:#101010;--green:#4B92DB;--cream:#ffffff;--muted:#606a75;--lime:#4B92DB}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button,a,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4B92DB;outline-offset:3px}header{max-width:1240px;margin:auto;padding:26px 40px;display:flex;align-items:center;gap:45px;border-bottom:1px solid #dfe4e9}.brand{text-decoration:none;color:var(--ink);font-size:25px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.mark{background:var(--green);color:#101010;padding:5px 10px;border-radius:10px;margin-right:8px}.dot{color:#4B92DB}nav{display:flex;gap:24px;margin:auto}nav button{background:none;color:var(--muted);padding:12px 0;font-size:14px}nav button.active{color:var(--ink);border-bottom:2px solid var(--green)}.grade{display:flex;gap:12px;align-items:center;font-size:13px}.grade select{border:1px solid #dfe4e9;border-radius:9px;padding:10px;background:#fff;color:var(--ink)}main{max-width:1240px;padding:0 40px;margin:auto}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;padding:65px 0 48px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--green)}h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:58px;letter-spacing:-3px;line-height:1.13;margin:21px 0}h1 em{font-style:normal;color:#4B92DB}.hero p{max-width:425px;color:var(--muted);font-size:16px;line-height:1.7}.primary,.dark{background:var(--green);color:white;padding:15px 24px;border-radius:9px;font-size:14px;font-weight:600}.primary span,.dark span{margin-left:25px}.hero-note{font-size:12px;color:var(--muted);margin-top:23px}.hero-note span{color:#4B92DB;margin-right:8px}.art{height:345px;position:relative;background:#eef5fd;border-radius:48% 48% 28% 30%;overflow:hidden}.orbit{position:absolute;width:285px;height:285px;border:1px dashed #bad4f0;border-radius:50%;left:105px;top:24px}.sun{position:absolute;width:76px;height:76px;border-radius:50%;background:#4B92DB;left:78px;top:50px}.cloud{width:90px;height:25px;border-radius:40px;background:#ffffff;position:absolute}.cloud:before{content:'';position:absolute;width:45px;height:40px;border-radius:50%;background:inherit;left:20px;top:-20px}.c1{top:72px;right:48px}.c2{top:150px;left:35px;width:70px}.spark{position:absolute;color:#4B92DB;font-size:36px}.s1{right:53px;top:185px}.s2{left:44px;bottom:50px}.stack{position:absolute;box-shadow:6px 9px 0 #c9dcf2;letter-spacing:1px;font-weight:700}.st1{width:178px;height:210px;background:#101010;left:175px;top:46px;transform:rotate(12deg);border-radius:4px 15px 15px 4px;color:#ffffff;padding:30px 20px;font-family:Georgia;font-size:25px;line-height:1.1;border-left:12px solid #303030}.st1 span{display:block;font-size:65px;text-align:center;margin-top:15px}.st2{bottom:66px;left:115px;width:240px;background:#4B92DB;color:#101010;padding:13px;transform:rotate(-6deg);border-radius:5px;font-size:11px}.st3{bottom:38px;left:130px;width:235px;background:#ffffff;padding:13px;color:#101010;border-radius:5px;font-size:10px}.plant{position:absolute;bottom:37px;right:50px;font-size:78px;color:#4B92DB}.art-label{position:absolute;bottom:11px;width:100%;text-align:center;font-size:7px;letter-spacing:2px}.scan-strip{display:flex;align-items:center;gap:20px;background:#eef5fd;border:1px solid #d0e1f4;border-radius:15px;padding:21px 27px}.scan-icon{background:#ffffff;border-radius:13px;width:52px;height:52px;display:grid;place-items:center;font-size:30px}.scan-strip h2{font-size:19px;margin:0 0 6px}.scan-strip p{color:var(--muted);font-size:13px;margin:0}.dark{margin-left:auto;background:var(--ink)}.shelf-head{display:flex;align-items:center;justify-content:space-between;margin:44px 0 19px}h2{font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:-.5px}.shelf-head h2{font-size:28px;margin:8px 0 0}.search{border:1px solid #dfe4e9;background:white;padding:10px 13px;border-radius:8px;color:var(--muted)}input{border:0;outline:0;background:transparent;color:var(--ink);min-width:0}.search input{font-size:13px;width:180px}.filter-row{display:flex;gap:8px;align-items:center;margin-bottom:22px}.chip{border:1px solid #dfe4e9;background:transparent;color:var(--muted);border-radius:25px;padding:8px 16px;font-size:12px}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.filter-row>span{margin-left:auto;color:var(--muted);font-size:11px}.books{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.book{background:white;border:1px solid #dfe4e9;border-radius:15px;overflow:hidden}.cover{height:205px;position:relative;display:grid;place-items:center;overflow:hidden;background:var(--bg)}.cover:before{content:'';width:170px;height:170px;position:absolute;border-radius:50%;border:1px solid #ffffff66}.book-mini{color:var(--fg);background:var(--cover);border-radius:2px 8px 8px 2px;border-left:8px solid #0002;width:125px;height:159px;transform:rotate(-8deg);box-shadow:9px 12px 0 #0001;padding:15px 12px;text-align:center;z-index:1;font-family:Georgia;font-size:18px}.book-mini span{font-size:47px;display:block;margin:15px 0}.cover-badge{position:absolute;top:14px;left:14px;background:#fffc;border-radius:20px;font-size:9px;padding:6px 10px;letter-spacing:1px}.book-body{padding:20px}.book-body h3{font-size:19px;margin:8px 0}.book-body p{font-size:13px;line-height:1.6;color:var(--muted);min-height:41px}.book-meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin:15px 0}.book-actions{display:flex;gap:8px}.book-actions button{flex:1;padding:11px;border-radius:7px;background:#eef5fd;color:var(--ink);font-size:12px;font-weight:700}.book-actions button:first-child{background:var(--green);color:white}.footnote{font-size:10px;color:var(--muted);padding:28px 0;text-align:center;line-height:1.7}footer{max-width:1160px;margin:25px auto 0;border-top:1px solid #dfe4e9;padding:27px 0;display:flex;justify-content:space-between;align-items:center}footer .brand{font-size:18px}footer>span:last-child{color:var(--muted);font-size:12px}section:not(#library){padding:55px 0;min-height:70vh}.sub{color:var(--muted)}.stats,.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.guide-grid{grid-template-columns:repeat(2,1fr)}.stats article,.guide-grid article,.history-item{background:white;border:1px solid #dfe4e9;border-radius:14px;padding:25px}.stats strong{font-size:35px;display:block}.stats span,.guide-grid p,.guide-grid li{color:var(--muted);font-size:14px;line-height:1.8}.history-item{display:flex;gap:20px;justify-content:space-between;margin-bottom:12px;font-size:14px}.history-item small{display:block;color:var(--muted);margin-top:6px}dialog{border:0;border-radius:19px;width:min(760px,94vw);max-height:90vh;padding:28px;color:var(--ink);background:var(--cream)}dialog::backdrop{background:#000000aa;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head button{background:white;border-radius:50%;width:32px;height:32px}dialog h2{font-size:30px}dialog p{line-height:1.8}.story-text{font-family:Georgia;font-size:19px;line-height:1.9;background:white;padding:25px;border-radius:12px}.story-text p:first-child{margin-top:0}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.secondary{padding:12px 20px;background:#edf2f8;color:var(--ink);border-radius:8px}.field{display:block;margin:18px 0}.field input{display:block;background:white;border:1px solid #cbd9e8;border-radius:8px;padding:14px;width:100%;margin-top:8px}.scan-video{width:100%;max-height:250px;background:#101010;border-radius:10px;margin-top:15px}.notice{font-size:13px;color:var(--muted)}.error{color:#101010;min-height:22px;font-size:13px}.answers{display:grid;gap:10px}.answer{background:white;border:1px solid #cbd9e8;border-radius:9px;padding:15px;text-align:left;color:var(--ink);line-height:1.5}.answer.selected{background:#e0efff;border:2px solid var(--green)}.answer span{display:inline-grid;place-items:center;width:26px;height:26px;background:#eef5fd;border-radius:6px;margin-right:12px}.quiz-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:20px}.meter{height:5px;background:#e4eaf2;border-radius:5px;margin:12px 0 26px}.meter i{display:block;height:100%;background:var(--green);border-radius:5px}.result{text-align:center;padding:20px}.result strong{font-size:66px;color:var(--green)}.review{background:white;border-radius:10px;padding:18px;margin:12px 0}.review h3{font-size:15px;margin:0 0 8px}.review p{font-size:13px;margin:4px 0}.empty{padding:35px;color:var(--muted);grid-column:1/-1}button:disabled{opacity:.4;cursor:default}[hidden]{display:none!important}@media(max-width:800px){header{padding:18px 20px;gap:18px;flex-wrap:wrap}.brand{font-size:22px}nav{order:3;width:100%;justify-content:center;gap:35px}.grade{margin-left:auto}main{padding:0 20px}.hero{padding:35px 0;gap:15px}.hero h1{font-size:40px;letter-spacing:-2px}.hero p{font-size:14px}.art{height:290px}.st1{left:85px}.st2{left:25px}.st3{left:40px}.orbit{left:40px}.plant{right:10px}.books{gap:12px}.book-body{padding:14px}.filter-row{flex-wrap:wrap}.filter-row>span{width:100%;margin:7px 0}.book-actions{flex-direction:column}.book-body h3{font-size:17px}footer{margin:20px;padding:20px 0}h1{font-size:40px}.stats{gap:10px}.stats article{padding:15px}.history-item{flex-wrap:wrap}}@media(max-width:560px){.hero{grid-template-columns:1fr}.art{height:255px;margin-top:18px}.st1{left:42%;top:15px;height:185px}.st2{bottom:50px;left:25%}.st3{bottom:24px;left:29%}.sun{left:18%;top:30px}.hero h1{font-size:44px}.scan-strip{flex-wrap:wrap;padding:18px;gap:13px}.scan-strip>div:nth-child(2){flex:1}.scan-strip .dark{width:100%}.shelf-head{gap:18px;flex-wrap:wrap}.search{width:100%}.search input{width:85%}.books{grid-template-columns:1fr}.cover{height:220px}.book-actions{flex-direction:row}.book-body p{min-height:0}.guide-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.stats article{display:flex;gap:15px;align-items:center}.stats strong{font-size:28px}footer>span:last-child{font-size:10px}dialog{padding:20px}.story-text{padding:18px;font-size:18px}}

.point-badge{position:absolute;right:12px;bottom:12px;z-index:2;background:#ffffff;border:1px solid #bad4f0;padding:7px 10px;border-radius:18px;color:#101010;font-size:11px;font-weight:700}.point-detail{font-size:11px;color:var(--green);margin-top:14px}.point-detail span{color:var(--muted)}.award-preview{padding:18px;background:#eef5fd;border-radius:12px;display:grid;gap:8px}.award-preview strong{font-size:22px}.award-preview span,.award-preview small{font-size:13px;color:var(--muted);line-height:1.6}.earned-points{display:inline-block;background:#e0efff;border-radius:20px;padding:10px 20px;font-size:20px;font-weight:700;margin-top:12px}.stats.with-points{grid-template-columns:repeat(4,1fr)}.points-guide{background:#fff;border:1px solid #dfe4e9;border-radius:14px;padding:26px;margin-top:30px}.points-guide p{line-height:1.8;font-size:14px;color:var(--muted)}.points-tables{display:grid;grid-template-columns:1fr 1fr;gap:25px}table{border-collapse:collapse;width:100%;font-size:13px}caption{text-align:left;font-weight:700;padding:12px 0}th,td{text-align:left;padding:11px;border-bottom:1px solid #dfe4e9}th{background:#eef5fd}td:last-child,th:last-child{text-align:right}@media(max-width:800px){.stats.with-points{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.points-tables,.stats.with-points{grid-template-columns:1fr}.cover-badge{font-size:8px}.points-guide{padding:18px}}

.attempt-notice{padding:15px 18px;background:#eef5fd;border:1px solid #d0e1f4;border-radius:10px;margin:16px 0;font-size:14px}.attempt-notice p{font-size:13px;margin:6px 0 0;color:var(--muted)}.attempt-notice.locked{background:#f2f4f7;border-color:#cbd2dc}.attempt-count{font-size:11px!important;min-height:0!important;margin:12px 0;color:var(--green)!important}.pass-status{font-weight:700;color:var(--green)}.admin-title{display:flex;justify-content:space-between;gap:15px;align-items:center}.admin-book{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #dfe4e9}.admin-book small{display:block;color:var(--muted);margin-top:7px;font-size:12px}.admin-area .field{max-width:400px}@media(max-width:560px){.admin-book{align-items:flex-start;flex-direction:column}.admin-title{flex-wrap:wrap}}

header>.brand{display:flex;gap:10px;align-items:center;letter-spacing:0}.brand-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:24px;line-height:1}.brand-name small{display:block;font-size:9px;letter-spacing:2px;margin-top:7px}.mark{margin-right:0;padding:8px 12px;border-radius:9px}.primary{color:#101010;font-weight:800}.primary:hover{background:#71abe5}.dark{color:#ffffff}.art .st3{border:1px solid #cad7e5}.eyebrow{color:#245988}.hero-note span{color:#245988}.chip.active{background:#101010}.book-actions button:first-child{color:#101010}.book-actions button:hover{filter:brightness(.96)}.book-mini{box-shadow:9px 12px 0 #0001}.answer.selected{border-color:#4B92DB;color:#101010}.point-detail,.attempt-count,.pass-status{color:#245988!important}.result strong{color:#245988}.beta-note{display:flex;gap:15px;padding:16px 20px;margin-top:28px;background:#f2f7fd;border-left:3px solid #4B92DB;border-radius:4px;font-size:12px;line-height:1.6}.beta-note strong{white-space:nowrap}.beta-note span{color:#606a75}footer .brand{font-size:16px;letter-spacing:-.3px}.stats strong{color:#245988}@media(max-width:560px){header>.brand{gap:8px}.brand-name{font-size:22px}.brand-name small{font-size:8px}.mark{padding:6px 9px}.grade{gap:6px}.grade label{display:none}.beta-note{flex-direction:column;gap:4px}footer{gap:15px;flex-wrap:wrap}}

.catalog-author{color:var(--muted);font-size:18px}.isbn-label{display:inline-block;background:#eef5fd;border:1px solid #cbd9e8;border-radius:8px;padding:10px 15px;font-size:13px}dialog a{color:#245988}

nav .teacher-nav{font-size:12px;color:#245988;text-decoration:none;padding:12px 0;white-space:nowrap}header nav{gap:18px}@media(max-width:560px){header nav{gap:18px;flex-wrap:wrap}}
