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}}

/* Locked content: keep the cover recognizable; leave the timer crisp. */
.module-card .locked-cover{background:#091b31a6;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);justify-content:center;padding:14px 9px;gap:11px}
.module-card .locked-cover b{line-height:1.25}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;width:100%;max-width:340px;white-space:normal;letter-spacing:0}
.countdown-part{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:9px 2px;border:1px solid #ffffff3d;background:#ffffff16;border-radius:8px}
.countdown .countdown-part b{font:800 19px/1.05 Arial,sans-serif;font-variant-numeric:tabular-nums;color:inherit}
.countdown .countdown-part small{font:600 8px/1.2 Arial,sans-serif;color:inherit;opacity:.85;letter-spacing:0;text-transform:uppercase}
.locked-detail{width:min(430px,calc(100% - 32px));padding:28px 24px;box-sizing:border-box}
.locked-detail .countdown{margin:auto;color:#173e4c;font-size:inherit}
.locked-detail .countdown-part{background:#edf3f4;border-color:#cbdadd;padding:14px 3px}
.locked-detail .countdown .countdown-part b{font-size:30px}
.locked-detail .countdown .countdown-part small{font-size:10px}
.locked-preview{inset:-14px;filter:blur(8px);opacity:.38;overflow:hidden}
.locked-preview img{width:100%;height:100%;object-fit:cover;object-position:center 42%;transform:scale(1.06)}
.locked-lesson{background:#d8dfe3}
@media(max-width:700px){.module-card .locked-cover{padding:12px 7px;gap:8px}.locked-cover .countdown{gap:3px}.locked-cover .countdown-part{padding:8px 1px;border-radius:6px}.locked-cover .countdown .countdown-part b{font-size:clamp(13px,3.8vw,20px)}.locked-cover .countdown .countdown-part small{font-size:7px}.locked-detail{margin:16px;padding:24px 15px}.locked-detail .countdown{gap:5px}.locked-detail .countdown .countdown-part b{font-size:clamp(21px,6vw,29px)}.locked-detail .countdown .countdown-part small{font-size:8px}}

.locked-cover .lock-icon{width:clamp(38px,4vw,50px);height:clamp(38px,4vw,50px);border-radius:15px;background:linear-gradient(145deg,#fbf1da22,#ffffff08);border:1px solid #e8d6aa7a;color:#fff2d6;box-shadow:0 6px 22px #0002,inset 0 1px 0 #ffffff26;flex:none}
.lock-icon svg{width:55%;height:55%;display:block}
.big-lock{display:grid;place-items:center;margin:0 auto 16px;width:66px;height:66px;border-radius:20px;background:linear-gradient(145deg,#fff9ed,#eee2c8);border:1px solid #dbcba8;color:#173e4c;box-shadow:0 7px 20px #193e4c12,inset 0 1px 0 #fff}
.big-lock svg{width:32px;height:32px}.material-icon svg{width:27px;height:27px}.side-num svg{width:13px;height:13px}
@media(max-width:700px){.locked-cover .lock-icon{width:39px;height:39px;border-radius:12px}.big-lock{width:56px;height:56px;border-radius:17px}.big-lock svg{width:28px;height:28px}}
.locked-cover .lock-icon{color:#fff;border-color:#ffffff70;background:linear-gradient(145deg,#ffffff24,#ffffff0a)}
.big-lock{color:#fff;background:linear-gradient(145deg,#284b5d,#173444);border-color:#ffffff42;box-shadow:0 8px 24px #17344422,inset 0 1px 0 #ffffff24}
.material-hero-locked .material-icon{background:#284b5d;color:#fff}
.course-sidebar .side-pending .side-num{background:#284b5d;color:#fff}
@media(max-width:700px){
 .catalog-content .grid,.extra-grid{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:14px;margin-inline:-16px;padding:4px 16px 18px;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:thin;scrollbar-color:#b7c6cf transparent;-webkit-overflow-scrolling:touch}
 .catalog-content .grid .module-card,.extra-grid .module-card{flex:0 0 clamp(210px,70vw,260px);width:clamp(210px,70vw,260px);max-width:none;scroll-snap-align:start;aspect-ratio:2/3}
 .catalog-content .grid::-webkit-scrollbar,.extra-grid::-webkit-scrollbar{height:3px}
 .catalog-content .grid::-webkit-scrollbar-thumb,.extra-grid::-webkit-scrollbar-thumb{background:#b7c6cf;border-radius:9px}
 .catalog-content .grid+.catalog-divider{margin-top:28px}
}


.module-card.order-bump-card{aspect-ratio:2/3}.order-bump-card .portrait-cover img{object-fit:cover}

.extra-grid{grid-template-columns:repeat(4,minmax(0,235px));align-items:start}

.purchase-chip{position:absolute;top:12px;left:12px;right:12px;z-index:3;display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 10px;border:1px solid #ffffff80;border-radius:10px;background:#fff9eb;color:#163c37;font-size:13px;font-weight:800;box-shadow:0 4px 18px #0003;transition:background .2s,transform .2s}.module-card:hover .purchase-chip{background:#fff;transform:translateY(-1px)}.module-card:focus-visible{outline:3px solid #c9a55b;outline-offset:4px}.lesson-buy{margin-top:15px}.purchase-chip span{font-size:18px}

.needs-purchase .portrait-cover{filter:none}.purchase-information{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;padding:78px 14px 18px;background:linear-gradient(180deg,#071c2966 0%,#071c2988 18%,#071c29e8 45%,#071c29fa 100%);color:white;text-align:left}.purchase-information>small{font-size:9px;font-weight:700;letter-spacing:.1em;color:#e8d8b5}.purchase-information>strong{font-family:Georgia,serif;font-size:19px;line-height:1.12}.purchase-information>span{font-size:11px;line-height:1.5;color:#e4eced}.needs-purchase .purchase-chip{padding:10px 7px}.needs-purchase .portrait-cover>img{filter:none!important}@media(max-width:700px){.purchase-information{padding:84px 16px 20px;gap:12px}.purchase-information>strong{font-size:23px}.purchase-information>span{font-size:13px}}

/* Simple mobile-first email-code login */
.access-layout.access-single{display:block;width:calc(100% - 32px);max-width:420px;margin:96px auto 32px;border:1px solid #e3e7ed;border-radius:14px;box-shadow:0 8px 30px #14283d08}.access-panel{padding:27px 22px;background:#fff}.access-panel h1{font-size:27px;line-height:1.2;margin:12px 0 16px}.access-panel p{font-size:14px}.access-panel label{margin:22px 0 16px}.access-panel input{min-height:50px;border-radius:8px}.access-panel .btn{min-height:50px;border-radius:8px;font-size:15px}.access-panel .access-help{font-size:13px;line-height:1.6}.access-panel input[name="code"]{letter-spacing:5px;font-size:23px;text-align:center}.access-reset{display:block;width:100%;text-align:center;min-height:44px;padding:12px 0}.access-panel #auth-message:empty{display:none}@media(min-width:700px){.access-layout.access-single{margin-top:130px}.access-panel{padding:32px}}

.access-email-alert{margin-top:16px;padding:13px 14px;background:#fff1f1;border:1px solid #e7a2a2;border-left:4px solid #c43d3d;border-radius:8px;color:#922b2b;font-size:13px;line-height:1.55}.access-email-alert strong,.access-email-alert span{display:block}.access-email-alert strong{margin-bottom:4px}
/* Refined mobile login */
.access-layout.access-single{margin-top:96px;border-color:#e4e9ef;box-shadow:0 12px 35px #172a4010;border-radius:18px;overflow:visible}.access-panel{border-radius:18px;padding:28px 23px}.access-panel .section-kicker{font-size:10px;letter-spacing:1.5px;color:#586c85}.access-panel h1{font-size:28px;font-weight:700;letter-spacing:-1px;margin:12px 0 16px}.access-panel>p{color:#66758a;font-size:14px}.access-panel>p strong{display:block;color:#34445b;font-weight:600;margin-bottom:5px}.access-panel label{font-size:13px;color:#34445b;margin-top:24px}.access-panel input{border:1px solid #ced7e2;background:#fbfcfe;border-radius:10px;padding:13px 14px;box-shadow:none;transition:border-color .15s}.access-panel input:focus{outline:3px solid #2563eb20;outline-offset:0;border-color:#2563eb;background:#fff}.access-panel .btn.btn-primary{background:#2464cc;background-image:none;box-shadow:none;color:#fff;font-size:15px;font-weight:600;min-height:51px;border:1px solid #2464cc;border-radius:10px;margin-top:5px}.access-panel .btn.btn-primary:hover{background:#1d55b3;transform:none;box-shadow:none}.access-email-alert{margin-top:19px;background:#fff5f4;border-color:#efd0ce;border-left:3px solid #c95048;padding:13px 14px;color:#85413b;font-size:12px;line-height:1.6;border-radius:8px}.access-email-alert strong{color:#a03932;font-size:13px;margin-bottom:4px}.access-email-alert b{font-weight:700}.access-panel #auth-message{margin:12px 0;color:#b43d35}@media(min-width:700px){.access-layout.access-single{margin-top:125px}.access-panel{padding:32px 29px}}
