html{scroll-behavior:smooth}body{margin:0;background:var(--app-bg,#fff);color:var(--app-text,#0f172a)}a{text-decoration:none}.topbar{position:fixed;z-index:50;inset:0 0 auto;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--app-border)}.top-inner{max-width:1536px;margin:auto;height:64px;padding:0 clamp(16px,3vw,48px);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;color:#0f172a}.brand-logo{width:44px;height:44px;display:grid;place-items:center;border:1px solid #dbe4ef;border-radius:12px;background:#fff;color:#3b82f6;font-size:24px;font-weight:900;box-shadow:0 1px 5px #16243b12}.brand strong{display:block;font-size:16px;line-height:1;font-weight:900}.brand small{display:block;margin-top:5px;color:#667085;font-size:11px}.top-inner nav{display:flex;gap:4px}.top-inner nav a{padding:9px 14px;border-radius:9px;color:#667085;font-size:14px;font-weight:600}.top-inner nav a.active,.top-inner nav a:hover{background:#f1f5f9;color:#0f172a}.language{color:#475467;border:1px solid #e5eaf0;background:#f8fafc;border-radius:10px;padding:7px 11px;font-size:12px;font-weight:700}
.hero{border-bottom:1px solid #e4e9ef;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(59,130,246,.08),transparent 75%),radial-gradient(circle at 85% 15%,rgba(139,92,246,.05),transparent 50%),#fff;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#64748b 1px,transparent 1px);background-size:28px 28px;opacity:.06;pointer-events:none}.hero-inner{max-width:1536px;margin:auto;padding:145px clamp(16px,3vw,48px) 66px;position:relative}.hero-content{max-width:750px}.eyebrow{display:inline-flex;border:1px solid #c9dffe;border-radius:99px;background:#eff6ff;padding:6px 12px;color:#2473d4;font-size:12px;font-weight:700;margin-bottom:17px}.hero h1{font-size:clamp(37px,5vw,64px);font-weight:900;letter-spacing:-.045em;line-height:1.12;margin:0 0 16px}.hero p{font-size:clamp(15px,1.4vw,18px);color:#667085;line-height:1.58;margin:0 0 26px;max-width:640px}.actions{display:flex;flex-wrap:wrap;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:13px 24px;color:#0f172a;border:1px solid #d9e1eb;background:white;font-weight:700;font-size:15px;box-shadow:0 2px 5px #14213d0b}.btn-primary{background:#3b82f6;color:white;border-color:#3b82f6;box-shadow:0 7px 20px #3b82f650}
.content{max-width:1536px;margin:auto;padding:43px clamp(16px,3vw,48px) 85px}.row-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.row-title h2{font-weight:800;font-size:21px;margin:0}.row-tools{display:flex;align-items:center;gap:6px}.row-tools a{font-size:14px;font-weight:700;color:#3b82f6;margin-right:10px}.row-tools button{border:0;background:transparent;border-radius:50%;height:34px;width:34px;font-size:21px;color:#667085;cursor:pointer}.row-tools button:hover{background:#f2f5f9}.module-row{display:flex;overflow-x:auto;gap:16px;scrollbar-width:none;padding:1px 1px 12px}.module-row::-webkit-scrollbar{display:none}.module-card{position:relative;flex:none;width:clamp(180px,18vw,235px);aspect-ratio:2/3;overflow:hidden;border-radius:14px;background:#172238;color:#fff;box-shadow:0 3px 9px #0f172a1a;transition:transform .2s,box-shadow .2s}.module-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0f172a38}.module-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% 50%}.module-card .shade{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#050b18ee)}.module-num{position:absolute;top:9px;left:9px;padding:3px 7px;border-radius:4px;background:#071321aa;font-size:11px;font-weight:800}.module-caption{position:absolute;bottom:0;left:0;right:0;padding:15px}.module-caption strong{display:block;font-size:15px;line-height:1.25}.module-caption small{display:block;color:#ffffffbf;margin-top:6px;font-size:11px}.locked{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#000a;backdrop-filter:blur(3px);gap:7px;padding:20px;text-align:center}.locked b{font-size:14px}.locked small{font-size:11px;color:#ffffffcf}.locked+.module-caption{display:none}.ribbon{margin-top:25px;display:flex;gap:16px;align-items:center;border:1px solid #e9dbc3;border-radius:16px;padding:20px;background:linear-gradient(110deg,#fff7e9,#f0faf7 55%,#edf6ff)}.gift{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#f59e0b,#10b981);color:white;font-size:20px}.ribbon h3{font-size:16px;margin:0 0 3px}.ribbon p{margin:0;color:#667085;font-size:13px}
.page-head{max-width:1536px;margin:auto;padding:101px clamp(16px,3vw,48px) 27px}.page-head small{font-size:12px;color:#667085;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.page-head h1{font-size:clamp(28px,4vw,42px);font-weight:900;margin:8px 0 5px}.page-head p{color:#667085;margin:0}.rule{max-width:1440px;margin:auto;border:0;border-top:1px solid #e5eaf0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:17px}.grid .module-card{width:100%}.lesson-page{max-width:1536px;margin:auto;padding:107px clamp(16px,3vw,48px) 65px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:29px}.back{color:#3b82f6;font-size:13px;font-weight:700}.lesson-page h1{font-size:clamp(25px,3vw,39px);font-weight:900;margin:17px 0 17px}.lesson-cover{display:block;max-height:390px;width:100%;object-fit:cover;border-radius:14px;border:1px solid #e5eaf0}.pdf-box{margin-top:24px;border:1px solid #e5eaf0;border-radius:14px;overflow:hidden;background:#f8fafc}.pdf-box iframe{width:100%;height:min(75vh,850px);min-height:510px;border:0;display:block}.pdf-bottom{padding:12px;display:flex;justify-content:space-between;gap:8px;color:#667085;font-size:12px}.pdf-bottom a{color:#3b82f6;font-weight:700}.lesson-list{border:1px solid #e5eaf0;border-radius:14px;overflow:hidden;background:white;align-self:start;position:sticky;top:86px}.lesson-list h2{font-size:16px;margin:0;padding:16px;background:#f8fafc;border-bottom:1px solid #e5eaf0}.lesson-list a,.lesson-list span{display:block;padding:12px 16px;border-bottom:1px solid #f0f2f6;font-size:13px;color:#475467}.lesson-list a:hover,.lesson-list a.active{color:#2563eb;background:#f2f7ff}.lesson-list span{color:#98a2b3}.pending{margin-top:24px;border:1px solid #e5eaf0;border-radius:14px;background:#f8fafc;padding:26px;color:#667085}.pending strong{display:block;font-size:18px;color:#0f172a;margin-bottom:8px}
@media(max-width:800px){.language span{display:none}.lesson-page{display:block}.lesson-list{position:static;margin-top:30px}.hero-inner{padding-top:125px}}@media(max-width:520px){.brand strong{font-size:13px}.brand small{font-size:10px}.brand-logo{width:36px;height:36px}.top-inner{gap:6px}.top-inner nav a{padding:7px;font-size:12px}.language{padding:5px}.hero-inner{padding-top:113px}.hero h1{font-size:37px}.btn{width:100%}.module-card{width:176px}.ribbon{padding:15px}}
.module-card img.cover-back{inset:-10%;width:120%;height:120%;object-fit:cover;filter:blur(17px) brightness(.73)}.module-card img.cover-front{inset:25% 0 auto;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;box-shadow:0 8px 25px #0005}.module-card .shade{background:linear-gradient(#07111e88,transparent 25%,transparent 58%,#050b18f2)}
.material-layout{padding-top:64px;display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:100vh}.material-content{min-width:0}.material-hero{min-height:246px;background:linear-gradient(110deg,#ebf8f3,#f9fdfb);border-bottom:1px solid #dbe8e3;padding:65px clamp(24px,4vw,70px) 42px;display:flex;align-items:flex-start;gap:18px}.material-icon{width:55px;height:55px;border-radius:16px;background:#d2f0e5;color:#10a975;display:grid;place-items:center;font-size:28px;flex:none}.material-kicker{font-size:12px;color:#12a373;font-weight:900;letter-spacing:.1em}.material-hero h1{font-size:clamp(26px,3vw,38px);font-weight:900;margin:7px 0 2px}.material-hero p{font-size:14px;color:#667085;margin:0 0 11px}.material-count{display:inline-block;border:1px solid #b8e4d6;background:#d7f2e8;color:#209877;border-radius:99px;font-weight:700;font-size:12px;padding:5px 11px}.material-body{padding:30px clamp(24px,4vw,70px) 80px}.file-intro{color:#667085;font-size:15px;margin:41px 0}.download-panel{border:2px solid #a7e2ce;background:linear-gradient(120deg,#e9f8f3,#fff);border-radius:20px;padding:27px;box-shadow:0 4px 16px #12a3730d}.download-header{display:flex;gap:15px;align-items:flex-start}.download-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#ccefe2;color:#13a777;flex:none;font-size:25px}.download-label{font-size:11px;font-weight:900;color:#199d74}.download-label em{font-style:normal;color:#667085;font-weight:600}.download-panel h2{font-size:19px;font-weight:900;margin:6px 0 2px}.download-panel p{color:#667085;margin:0;font-size:13px}.download-file{margin-top:25px;border:1px solid #d5e8e1;background:white;border-radius:18px;padding:18px;display:flex;align-items:center;gap:15px}.file-icon{width:51px;height:55px;border-radius:14px;background:#e2f7ef;border:1px solid #c6eadc;color:#12a373;display:grid;place-items:center;text-align:center;line-height:1.1;font-weight:900;font-size:12px;flex:none}.file-info{min-width:0;flex:1}.file-info strong{display:block;font-size:15px}.file-info small{color:#88939e;font-size:12px}.download-link{background:#0fad79;color:white;padding:12px 17px;border-radius:13px;box-shadow:0 6px 14px #0fad793b;font-weight:800;font-size:13px;white-space:nowrap}.download-link small{display:block;font-size:10px;font-weight:500;color:#ffffffd5;margin-left:21px}.download-link:hover{background:#099d6c}.course-sidebar{border-left:1px solid #e5eaf0;align-self:stretch;background:white;max-height:calc(100vh - 64px);overflow-y:auto;position:sticky;top:64px}.course-sidebar h2{font-size:15px;margin:0;padding:18px;border-bottom:1px solid #e5eaf0}.course-sidebar details{border-bottom:1px solid #e5eaf0}.course-sidebar summary{cursor:pointer;padding:15px 17px;font-size:13px;font-weight:800;list-style:none}.course-sidebar summary:after{content:'⌄';float:right;color:#667085}.course-sidebar summary small{display:block;color:#88939e;font-size:11px;font-weight:500;margin-top:3px}.course-sidebar details[open] summary{background:#f5f8fc}.course-sidebar a,.side-pending{display:flex;gap:10px;align-items:center;padding:11px 17px;color:#475467;font-size:12px;border-top:1px solid #f2f4f7}.course-sidebar a.active{background:#eaf2ff;color:#2878d6;font-weight:700;border-right:2px solid #3b82f6}.course-sidebar a:hover{background:#f4f8fd}.side-num{width:21px;height:21px;border-radius:50%;background:#e9edf2;color:#64748b;display:grid;place-items:center;flex:none;font-size:10px}.side-pending{color:#98a2b3}.material-body .pending{max-width:800px}
@media(max-width:900px){.material-layout{display:block}.course-sidebar{position:static;max-height:none;border-left:0;border-top:1px solid #e5eaf0}.material-hero{min-height:0;padding:43px 20px 32px}.material-body{padding:27px 20px 48px}}@media(max-width:560px){.download-panel{padding:18px}.download-file{flex-wrap:wrap}.download-link{width:100%;text-align:center}.download-link small{margin-left:0}.material-hero{gap:12px}.material-icon{width:42px;height:42px;font-size:21px}.material-hero h1{font-size:25px}}
.portrait-cover{position:absolute;inset:0;overflow:hidden;background:#162c2d;border:1px solid #d8c49b;border-radius:14px;color:#fff}.portrait-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:16% center;filter:saturate(.82) contrast(1.05)}.cover-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#0f282a86 0%,transparent 28%,#0d243179 53%,#09243df7 79%,#071b30 100%)}.cover-top{position:absolute;top:14px;left:14px;right:14px;font:700 9px Georgia,serif;letter-spacing:.2em;text-shadow:0 1px 5px #000}.cover-copy{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;gap:7px;padding:16px 14px 19px;text-shadow:0 1px 8px #0007}.cover-copy small{font:700 10px Georgia,serif;letter-spacing:.16em;color:#d5b77a}.cover-copy strong{font:700 clamp(20px,2vw,26px)/1.05 Georgia,serif}.cover-copy em{font:italic 12px Georgia,serif;color:#f2e8d1}.module-card:hover .portrait-cover>img{transform:scale(1.05)}.portrait-cover>img{transition:transform .35s}.module-card .locked-cover{position:absolute;inset:0;background:#0a1727ad;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;text-align:center;padding:14px;color:#fff}.locked-cover .lock-icon{width:55px;height:55px;display:grid;place-items:center;background:#fff2;border:1px solid #fff7;border-radius:50%;font-size:25px}.locked-cover b{font:700 15px Georgia,serif}.locked-cover small{font-size:11px;color:#ecedee}.countdown{display:block;font-size:20px;letter-spacing:.03em;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.countdown-units{display:block;font-size:9px;letter-spacing:.05em;text-transform:uppercase;opacity:.8}.cover-illustration{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 60% 25%,#a37a44 0,#35505b 28%,#142d40 63%,#0a1b2b 100%)}.cover-illustration span{font:160px Georgia,serif;color:#ffffff25}.portrait-1 .cover-illustration{background:radial-gradient(circle at 45% 24%,#a88457,#3b5150 35%,#16394a 68%,#0a1b2b)}.portrait-2 .cover-illustration{background:radial-gradient(circle at 55% 25%,#bb9c6c,#5d4f50 35%,#24354f 68%,#101e34)}.extra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,235px));gap:17px}.extras{padding-top:12px}.section-kicker{font-size:10px;font-weight:800;letter-spacing:.14em;color:#a88247}.extras-note{font-size:12px;color:#798391;margin-top:17px}.preview-note{max-width:1440px;margin:14px auto 0;padding:9px 15px;border-radius:9px;background:#fff7e6;color:#8e6431;font-size:11px;text-align:center}.material-hero-locked{background:linear-gradient(110deg,#f3f5f7,#f9fafb)}.material-hero-locked .material-icon{background:#e8ecf0;color:#677585}.material-hero-locked .material-kicker{color:#677585}.locked-lesson{position:relative;margin-top:24px;border:1px solid #dbe2e8;border-radius:17px;background:#f8fafb;min-height:350px;overflow:hidden;display:grid;place-items:center}.locked-preview{position:absolute;inset:25px;filter:blur(5px);opacity:.35}.locked-preview i{display:block;background:#d4dfdf;border-radius:9px;height:24px;margin:22px;width:65%}.locked-preview i:nth-child(2){width:43%}.locked-preview i:nth-child(3){width:75%;height:155px}.locked-detail{position:relative;z-index:1;background:#fffdf9e8;border:1px solid #e1d6c0;border-radius:18px;box-shadow:0 12px 38px #29394920;text-align:center;padding:26px 36px;max-width:430px}.big-lock{font-size:34px}.locked-detail h2{font-size:20px;margin:8px 0 18px}.locked-detail .countdown{font-size:30px;color:#1b4554}.locked-detail .countdown-units{color:#68737e}.locked-detail p{font-size:13px;margin:18px 0 7px}.locked-detail small{font-size:11px;color:#8a919c}.course-sidebar .side-pending{color:#8a97a2}
@media(max-width:700px){.extra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.extra-grid .module-card{width:100%}.cover-copy strong{font-size:20px}.locked-cover .countdown{font-size:14px}.locked-detail{margin:16px;padding:22px}.locked-detail .countdown{font-size:23px}}@media(max-width:470px){.extra-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.extra-grid .module-card{aspect-ratio:2/3}.cover-copy{padding:10px}.cover-copy strong{font-size:17px}.cover-copy em{font-size:10px}}
.page-title-line{display:flex;align-items:end;justify-content:space-between;gap:20px}.page-title-line p{margin-bottom:8px}.catalog-content{padding-top:14px}.catalog-content .grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.catalog-divider{display:flex;align-items:center;gap:22px;margin:25px 0 18px;color:#475467;font-size:12px;letter-spacing:.13em;font-weight:900;text-align:center;white-space:nowrap}.catalog-divider:before,.catalog-divider:after{content:"";height:1px;background:#e0e5e9;flex:1}.catalog-content .grid+.catalog-divider{margin-top:48px}.catalog-content .module-card{max-width:235px}.catalog-content .extras-note{margin-top:18px}
@media(max-width:1100px){.catalog-content .grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:700px){.catalog-content .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.page-title-line{display:block}.catalog-divider{gap:10px;font-size:10px}.catalog-content .grid+.catalog-divider{margin-top:34px}}
.portrait-extra>img{object-position:center;object-fit:cover;filter:none}.portrait-extra .cover-gradient,.portrait-extra .cover-top,.portrait-extra .cover-copy{display:none}.portrait-extra:hover>img{transform:scale(1.03)}
.generated-cover{border:0;background:#f6ecd6}.generated-cover>img{object-fit:contain;object-position:center;filter:none}.module-card:hover .generated-cover>img{transform:none}.module-card .locked-cover{background:linear-gradient(180deg,#07152610 0%,#07152622 36%,#071526d9 73%,#071526f5 100%);backdrop-filter:none;justify-content:flex-end;padding:18px 10px 22px;gap:7px}.locked-cover .lock-icon{width:38px;height:38px;font-size:19px}.locked-cover .countdown{font-size:18px}.locked-cover .countdown-units{font-size:8px}

.access-layout{max-width:1050px;margin:120px auto 60px;display:grid;grid-template-columns:1fr 1fr;border:1px solid #e3dfd5;border-radius:22px;overflow:hidden;box-shadow:0 20px 70px #122c3b12}.access-art{background:#f7edd7;max-height:700px}.access-art img{width:100%;height:100%;object-fit:cover}.access-panel{padding:55px 40px;background:#fffdf8;align-content:center}.access-panel h1{font-size:36px;letter-spacing:-.03em;margin:12px 0}.access-panel p{color:#667085;font-size:14px;line-height:1.6}.access-panel label{display:block;font-size:13px;font-weight:700;color:#263a49;margin:20px 0}.access-panel input{display:block;width:100%;background:white;border:1px solid #d6dce1;border-radius:10px;padding:12px;margin-top:7px;box-sizing:border-box;font-size:16px}.access-panel input:focus{outline:2px solid #2563eb;outline-offset:2px}.access-panel .btn{width:100%;justify-content:center}.access-reset{background:none;border:0;color:#2563eb;font-size:13px;cursor:pointer;padding:18px 0;text-align:left}.access-panel .access-help{font-size:12px;color:#8a929d}.access-single{display:block;max-width:500px}.logout-button{background:#f2f5f8;border:1px solid #e1e6ed;border-radius:8px;color:#475467;font-size:12px;padding:8px 12px;cursor:pointer}.access-panel #auth-message{font-size:12px;color:#a34c35}.access-panel button:disabled{opacity:.6;cursor:wait}@media(max-width:650px){.access-layout{margin:90px 16px 35px;display:block}.access-art{display:none}.access-panel{padding:32px 25px}}
