/* v1.1 product polish. Shared geometry for F/G/H; theme variables retain identity. */
:root{--sanyi-sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;--sanyi-display:var(--sanyi-sans);--serif:var(--sanyi-sans)}
body{font-family:var(--sanyi-sans);font-size:15px;line-height:1.65;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}
[hidden]{display:none!important}a,button{ -webkit-tap-highlight-color:transparent}
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
input,select,textarea{font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}
body :is(h1,h2,h3){font-family:var(--sanyi-sans);letter-spacing:-.025em;line-height:1.35;font-weight:650}
body h1{font-size:32px}body h2{font-size:24px}body h3{font-size:18px}
.review{min-height:40px;height:auto;padding:8px 24px;position:relative}.review b,.review>span{font-size:11px;letter-spacing:.08em}.review a{font-size:12px;padding:6px 12px;min-height:32px;border-radius:6px}.review>div{gap:4px}
.nav,.yt-top{height:76px}.nav>nav a{font-size:15px;padding:24px 0}.brand b{font-size:16px;letter-spacing:.08em}.brand small{font-size:10px}.account{font-size:13px;min-height:40px;border-radius:8px}
.yt-side a{font-size:14px;min-height:48px}.global-search{max-width:420px}.global-search input{font-size:14px}
.scene,.aurora,.particles,.scanline{animation:none!important}.aurora,.particles,.scanline{display:none!important}.scene{transform:none!important}
.welcome h1 em{animation:none!important;background:none!important;-webkit-text-fill-color:currentColor;color:var(--accent)}
.fade,.reveal{opacity:1;transform:none;transition:none}
/* A real fixed image, not a moving CSS scene. Slides change only on request. */
body[data-page="home"] .hero-slider{width:min(1260px,calc(100% - 48px));height:360px;min-height:360px;margin:24px auto 0;border:1px solid var(--edge);border-radius:16px;background:var(--surface)}
body[data-page="home"] .hero-slide{padding:36px 40px 104px;display:flex;align-items:center;transform:none!important;transition:opacity .25s ease,visibility .25s;background:var(--surface);overflow:hidden}
.hero-fixed-image{position:absolute;inset:0 0 0 auto;width:62%;height:100%;object-fit:cover;object-position:65% center;display:block;animation:none;transform:none;filter:none}
.hero-slide:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--surface) 0%,var(--surface) 37%,transparent 75%)}
body[data-page="home"] .hero-slide .welcome{position:relative;z-index:2;width:67%;margin:0;color:var(--fg)}
body[data-page="home"] .hero-slide .welcome h1{font:650 clamp(28px,3vw,40px)/1.35 var(--sanyi-sans);margin:10px 0 14px;letter-spacing:-.035em}
body[data-page="home"] .welcome>p{font-size:11px;letter-spacing:.12em;color:var(--accent);margin:0}.welcome>span{font-size:14px;color:var(--muted);line-height:1.7;max-width:520px;display:block}
body[data-page="home"] .hero-slide .slide-today{z-index:2;position:absolute;left:40px;right:auto;bottom:64px;top:auto;width:auto;min-height:0;padding:0;border:0;background:none;box-shadow:none;transform:none;backdrop-filter:none}
.hero-slide .slide-today>div{display:none}body[data-page="home"] .hero-slide .slide-today a{display:inline-flex;gap:22px;align-items:center;padding:10px 18px;font-size:14px;font-weight:600;background:var(--accent);color:#fff;border-radius:8px;min-height:42px}
body[data-page="home"] .slider-ui{left:36px;bottom:12px;gap:8px}.slider-ui>button{width:34px;height:34px;background:var(--surface)!important;border:1px solid var(--edge)!important;border-radius:6px;color:var(--fg)!important;backdrop-filter:none}.slider-ui>span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.dots{gap:0}.dots button{width:25px;height:34px;padding:13px 7px}.dots i{width:7px;height:7px;border-radius:50%;background:var(--edge)}.dots button.on i{background:var(--accent)}.dots button.on i:after{display:none}
/* Denser task-oriented pages, with a consistent readable hierarchy. */
body:not([data-page="teachers"]) .page-hero{min-height:174px;height:auto;padding:30px max(24px,calc((100% - 1204px)/2));background:var(--surface2);border-bottom:1px solid var(--edge)}
body:not([data-page="teachers"]) .page-hero .scene{display:none}.page-copy{max-width:800px}.page-copy h1{font:650 32px/1.3 var(--sanyi-sans);margin:8px 0 10px}.page-copy>p{font-size:11px;letter-spacing:.12em}.page-copy>span{font-size:15px;color:var(--muted)}.page-stat b{font-size:32px}.page-stat span{font-size:13px;color:var(--muted)}
.learning-shell,.utility,.listing{padding:28px 24px 48px;max-width:1260px;margin:auto;min-width:0}.learning-shell>header{margin-bottom:18px}.learning-shell>header h2{font-size:24px}.learning-shell>header p{font-size:11px}.learning-shell>header input{font-size:14px}
.learning-modules{gap:14px}.learning-module{min-height:180px;padding:22px}.learning-module>span{width:38px;height:38px}.learning-module h3{font-size:20px;margin:15px 0 8px}.learning-module>p{font-size:14px;line-height:1.6;max-width:none}.learning-module>small{font-size:11px}.learning-module>em{font-size:12px}.learning-module>b{right:18px;bottom:18px}
.learning-dashboard{gap:20px;margin-top:24px}.learning-practice,.learning-updates,.school-calendar{padding:22px;border-radius:12px}.learning-practice h3,.learning-updates h3,.school-calendar h3{font-size:20px}.learning-side-stack{gap:20px}.learning-side-stack header a{font-size:13px}.learning-side-stack header small,.school-calendar header small{font-size:11px}
.learning-practice dd{font-size:12px}.learning-progress-ring{width:116px;height:116px;margin:20px auto}.learning-progress-ring b{font-size:28px}.learning-progress-ring span{font-size:12px}.learning-practice>p{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.65}
.learning-updates>div>a{grid-template-columns:38px minmax(0,1fr);min-height:76px;gap:8px 12px;padding:12px 0}.learning-updates>div>a>span{width:36px;height:36px;font-size:12px;grid-row:1/3;border-radius:8px}.learning-updates>div>a b{font-size:14px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.learning-updates>div>a small{font-size:12px;margin-top:4px}.learning-updates>div>a em{font-size:11px;grid-column:2;color:var(--muted)}
.school-calendar>header{gap:14px;flex-wrap:wrap}.school-calendar>header p{font-size:13px}.school-calendar nav button{min-width:38px;min-height:38px;border-radius:7px}.school-calendar nav b{font-size:16px}.school-calendar .calendar-days{gap:5px}.school-calendar .calendar-days>*{min-height:72px;border-radius:6px;font-size:14px;padding:8px}.school-calendar .calendar-days small{font-size:11px;line-height:1.5}.school-calendar .calendar-days em{font-size:10px}.school-calendar>footer{padding:16px 0 0!important;font-size:12px;background:none!important}.school-calendar>footer span,.school-calendar>footer small{font-size:12px}
.schedule-panel{margin-top:24px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);padding:20px 24px;scroll-margin-top:96px}.schedule-panel>summary{font-size:18px;font-weight:650;cursor:pointer}.schedule-panel>summary small{font-size:12px;font-weight:400;color:var(--muted);margin-left:12px}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0}.schedule-toolbar input{padding:9px 12px;border:1px solid var(--edge);border-radius:8px;background:var(--bg);color:var(--fg)}.schedule-toolbar p{font-size:13px;color:var(--muted)}.schedule-list{display:grid;gap:8px}.schedule-list article{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:16px;padding:15px;background:var(--surface2);border-radius:8px}.schedule-list article>div>*{display:block}.schedule-list article small{font-size:12px;color:var(--muted)}.schedule-list a{font-size:13px;color:var(--accent)}
.home-course-index{width:min(1260px,calc(100% - 48px));margin:20px auto 0;border-radius:12px;box-shadow:none;background:var(--surface)}.home-course-index>header{padding:18px 22px;gap:16px}.home-course-index>header p{font-size:10px}.home-course-index>header h2{font-size:22px}.home-course-index>header div>span{font-size:12px}.home-course-index>header aside small,.home-course-index>header aside em{font-size:11px}.home-course-index>header aside b{font-size:19px}.home-course-index>header>a{font-size:13px;border-radius:8px;min-height:38px}.course-index-row{grid-template-columns:86px minmax(0,1fr);min-height:58px}.course-index-row>small{display:none}.course-index-row>strong{font-size:13px}.course-index-row>strong i{display:none}.course-index-scroll{gap:6px;padding:9px 12px}.course-index-scroll button,.course-index-scroll a{font-size:14px;min-height:38px;padding:8px 14px;border-radius:7px}.home-course-index>footer{padding:10px 22px!important;background:var(--surface2)!important}.home-course-index>footer span{font-size:12px}.home-course-index>footer em{display:none}
body[data-page="home"] .notice{width:min(1260px,calc(100% - 48px));margin:24px auto 40px;padding:24px;border:1px solid var(--edge);border-radius:12px;background:var(--surface)}.notice>header{margin-bottom:18px}.notice header p{font-size:11px}.notice header h2{font-size:24px}.notice header span{font-size:13px}.notice header a{font-size:13px}.notice-rich{padding:16px 10px!important;grid-template-columns:60px 54px minmax(0,1fr) 48px!important;gap:16px!important;text-align:left;min-height:100px;cursor:pointer!important}.notice-rich>span,.notice-rich>i,.notice-rich>strong{font-size:12px}.notice-rich b{font-size:15px;line-height:1.6}.notice-rich small{font-size:13px}.notice-rich nav em{font-size:11px}.notice-rich:hover{background:var(--surface2)!important}.notice-brief{min-height:170px;padding:30px 24px}.notice-brief h1{font-size:32px}.notice-page{max-width:1260px;margin:auto;padding:28px 24px 48px}
.section-tabs{top:76px;padding:12px max(24px,calc((100% - 1204px)/2));gap:8px;min-height:64px;box-shadow:none}.section-tabs button,.filters button{font-size:14px;min-height:40px;border-radius:8px;padding:8px 14px}.section-tabs label{border-radius:8px}.listing-head{gap:20px;margin-bottom:22px}.listing-head h2{font-size:24px}.video-grid{gap:28px 20px;grid-template-columns:repeat(3,minmax(0,1fr))}.video-thumb{border-radius:10px;filter:none!important}.video-copy h3{font-size:16px}.video-copy p,.video-copy small{font-size:12px}.video-card[role="button"]{cursor:pointer}.video-card:hover h3{color:var(--accent)}
.catalog-layout{grid-template-columns:230px minmax(0,1fr);gap:20px}.catalog-nav{border-radius:12px;overflow:hidden;top:96px}.course-heading{padding:22px;min-height:120px;gap:20px;border-radius:12px 12px 0 0}.course-heading h2{font-size:26px}.course-heading input{width:min(240px,25vw)}.chapter-filter{padding:18px 22px}.actual-course-list{border-radius:10px;overflow:hidden}.actual-course-list>header,.actual-course-row{grid-template-columns:minmax(150px,.8fr) minmax(180px,1.3fr) 136px}.course-pagination button{min-height:38px;border-radius:6px}.actual-course-row button{min-height:38px;border-radius:7px}.exam-row{grid-template-columns:32px minmax(0,1fr) 120px 96px;border-radius:10px}.exam-row h3{font-size:17px}.exam-row>button{min-height:40px;border-radius:8px}.exam-rules{border-radius:12px}.exam-rules ol{font-size:14px;line-height:2}.exam-rules>div>*{font-size:13px}
/* Keep the requested faculty personality, without moving the reading surface excessively. */
.faculty-page>.page-hero{min-height:360px;padding:42px max(24px,calc((100% - 1204px)/2))}.faculty-page .page-copy h1{font-size:40px}.faculty-listing .listing-head{padding:20px 24px;border-radius:12px}.faculty-list-actions{gap:12px}.faculty-click-hint{font-size:12px}.faculty-listing .faculty-copy strong{font-size:23px}.faculty-listing .faculty-copy p{font-size:14px;line-height:1.75}.faculty-listing .faculty-copy small,.faculty-listing .faculty-copy i,.faculty-listing .faculty-copy>em{font-size:12px}.faculty-listing .faculty-card{border-radius:12px}.faculty-listing .faculty-card:hover,.faculty-listing .faculty-card:focus-visible{animation:faculty-gentle-pulse 4s ease-in-out infinite}.faculty-listing .faculty-card:hover:before{animation-duration:6s}.faculty-listing .faculty-card:hover:after{animation-duration:5s}
@keyframes faculty-gentle-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
.teacher-dialog-copy h2{font-size:32px}.teacher-dialog-copy h3{font-size:16px}.teacher-dialog-copy>div{font-size:15px;line-height:1.85}.teacher-dialog-copy dl{font-size:13px}.teacher-dialog-copy dt,.teacher-dialog-copy dd{font-size:13px}.teacher-dialog .close{width:40px;height:40px}.teacher-dialog-portrait img{animation:none}.teacher-dialog:before{animation-duration:18s}.teacher-dialog:after{animation-duration:10s}
/* Personal pages use the selected theme, rather than hardcoded green. */
.member-page,.records-page{background:var(--bg)}.member-mini-cover,.member-cover,.records-hero{background:var(--surface2);color:var(--fg);box-shadow:none;border:1px solid var(--edge);border-radius:12px}.member-mini-cover{padding:24px;min-height:130px}.member-mini-cover h1{font-size:28px}.member-mini-cover p,.member-mini-cover span,.member-mini-cover>a{color:var(--muted);font-size:13px}.member-avatar{background:var(--accent);color:#fff}.member-nav,.member-panel,.member-overview article,.record-panel,.records-summary article{background:var(--surface);border-color:var(--edge);box-shadow:none;border-radius:12px}.member-nav{top:96px}.member-nav a,.member-nav button{font-size:14px;min-height:44px;color:var(--muted)}.member-nav>a.on,.member-nav>a:hover{background:var(--surface2);color:var(--accent)}.member-panel{padding:24px}.member-panel h2,.record-panel h2{font-size:23px;color:var(--fg)}.member-panel h3,.member-hub-grid h3,.member-info-grid b,.material-list h3,.document-card h3,.imprint-timeline h3{color:var(--fg)}.member-panel header p,.record-panel header p{font-size:11px;color:var(--accent)}.member-panel header span,.record-panel header span{font-size:14px;color:var(--muted)}.member-overview b,.records-summary b{font-size:28px;color:var(--accent)}.member-overview small,.member-overview span,.records-summary small,.records-summary span{font-size:12px;color:var(--muted)}.member-hub-grid a{border-color:var(--edge);border-radius:10px}.member-hub-grid a>span{background:var(--surface2);color:var(--accent)}.member-hub-grid p,.member-info-grid small{font-size:13px;color:var(--muted)}.member-info-grid b{font-size:15px}.member-panel button,.record-panel button{background:var(--accent);color:#fff;border-radius:8px;font-size:13px;min-height:40px}.member-panel a{color:var(--accent)}.member-page-title{padding:0 0 16px}.member-page-title h2{font-size:24px}.member-page-title p{font-size:11px}.member-page-title span{font-size:14px}.records-hero h1{color:var(--fg);font-size:30px}.records-hero>div>span,.records-hero>div>small{color:var(--muted)}.archive-ring:before{background:var(--surface)}.archive-ring b{color:var(--accent)}.archive-ring span{color:var(--muted)}.records-tabs{box-shadow:none;border-color:var(--edge);background:var(--surface)}.records-tabs a.on,.records-tabs a:hover{background:var(--surface2);color:var(--accent)}.record-panel,.records-privacy{border-radius:12px}.records-privacy{background:var(--surface2);color:var(--muted)}.document-card footer{padding:14px 0 0!important;background:transparent!important;border:0!important}.imprint-book{background:var(--accent)}
.prototype-dialog{width:min(640px,calc(100% - 32px));max-height:85vh;overflow:auto;padding:30px;border:1px solid var(--edge);border-radius:16px;background:var(--surface);color:var(--fg);box-shadow:0 24px 80px #0003}.prototype-dialog::backdrop{background:rgba(17,30,37,.48);backdrop-filter:blur(3px)}.prototype-dialog h2{font-size:23px;margin:0 40px 20px 0;line-height:1.5}.prototype-dialog p{font-size:15px;letter-spacing:0;color:var(--muted);line-height:1.85}.prototype-dialog button{min-height:40px;min-width:40px;border:1px solid var(--edge);border-radius:8px;background:var(--surface2);color:var(--fg);padding:8px 14px}.prototype-dialog .close{position:absolute;right:12px;top:12px;padding:0;font-size:23px}.prototype-empty{padding:28px;text-align:center;color:var(--muted);font-size:14px;border:1px dashed var(--edge);border-radius:10px;background:var(--surface)}
body>#app>footer{padding:28px max(24px,calc((100% - 1204px)/2));gap:24px;background:var(--surface2)}body>#app>footer p,body>#app>footer>small{font-size:12px}.demo-toast{font-size:14px;max-width:min(600px,calc(100% - 32px));border-radius:10px;text-align:center}
.learning-center .learning-module{display:block;min-height:214px;height:214px;padding:18px 20px 46px;border-radius:10px}.learning-center .learning-module>span{width:30px;height:30px}.learning-center .learning-module h3{font-size:20px;margin:12px 0 8px}.learning-center .learning-module p{font-size:13px;margin:0;line-height:1.6}.learning-center .learning-module>em{position:absolute;bottom:18px;left:20px;margin:0}.school-calendar-slide[aria-hidden="true"]{visibility:hidden}.school-calendar-slide[aria-hidden="false"]{visibility:visible}.learning-progress-ring{background:conic-gradient(var(--accent) 0 66.666%,var(--edge) 66.666%)}
.prototype-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.prototype-dialog>header h2{margin:0 0 18px;flex:1}.prototype-dialog-close{white-space:nowrap;font-size:13px}.prototype-dialog-body>small{display:block;margin-top:12px;font-size:12px;color:var(--muted)}.prototype-results-status{font-size:13px;color:var(--muted);margin:16px 0}.prototype-search-results{display:grid;gap:10px}.prototype-search-results a{display:block;padding:12px;background:var(--surface2);color:var(--accent);border-radius:8px}
@media(min-width:1600px){.video-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.learning-modules{gap:10px}.learning-module{padding:18px;min-height:180px}.learning-module h3{font-size:18px}.learning-module>p{font-size:13px}.learning-dashboard{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr)}.nav>nav{gap:18px}.home-course-index>header aside{display:none}.catalog-layout{grid-template-columns:200px minmax(0,1fr)}.actual-course-list>header,.actual-course-row{grid-template-columns:minmax(120px,.7fr) minmax(140px,1fr) 120px;gap:10px}.actual-course-row{padding:12px}.course-heading{align-items:flex-start;flex-direction:column}.course-heading input{width:100%}.course-heading label{width:100%}.video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.section-tabs{flex-wrap:wrap}.section-tabs label{min-width:200px}}
@media(max-width:760px){.review{padding:6px 10px}.review>div{position:static;transform:none}.review a{font-size:11px;padding:6px 8px}.nav,.yt-top{height:68px}.nav>nav{top:68px}.nav>nav a{padding:10px}.nav .brand b{font-size:15px}body[data-page="home"] .hero-slider{width:calc(100% - 24px);height:350px;min-height:350px;margin:12px auto 0;border-radius:12px}body[data-page="home"] .hero-slide{padding:26px 24px 108px}.hero-fixed-image{width:100%;opacity:.3}.hero-slide:after{background:linear-gradient(90deg,var(--surface) 5%,transparent 150%)}body[data-page="home"] .hero-slide .welcome{width:100%}body[data-page="home"] .hero-slide .welcome h1{font-size:29px}.welcome>span{font-size:13px}body[data-page="home"] .hero-slide .slide-today{left:24px;bottom:66px}body[data-page="home"] .slider-ui{left:20px;bottom:14px}.dots{display:flex!important}.home-course-index{width:calc(100% - 24px);margin-top:12px}.home-course-index>header{padding:15px;grid-template-columns:1fr auto;gap:8px}.home-course-index>header div>span{display:none}.home-course-index>header h2{font-size:20px}.home-course-index>header>a{font-size:12px;padding:7px}.course-index-row{grid-template-columns:54px minmax(0,1fr)}.course-index-scroll{overflow:auto;flex-wrap:nowrap}.course-index-row>strong{padding-left:12px;font-size:12px}.home-course-index>footer{padding:9px 14px!important}body[data-page="home"] .notice{width:calc(100% - 24px);padding:18px 14px;margin:16px auto 24px}.notice>header{align-items:flex-start;gap:14px}.notice header span{display:none}.notice-rich{grid-template-columns:42px minmax(0,1fr)!important;gap:8px 12px!important;padding:16px 0!important}.notice-rich>i,.notice-rich>strong{display:none}.notice-rich>div{min-width:0}.notice-rich small{display:block;font-size:12px}.notice-rich nav{flex-wrap:wrap}.notice-rich nav em{display:inline-flex;font-size:10px}.notice-rich b{font-size:14px}.learning-shell,.utility,.listing{padding:20px 14px 36px}.learning-modules{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-module{min-height:184px}.learning-dashboard{grid-template-columns:1fr}.learning-side-stack{grid-template-columns:1fr}.learning-shell>header{flex-wrap:wrap;gap:12px}.learning-shell>header label{width:100%}.learning-practice,.learning-updates,.school-calendar{padding:18px}.school-calendar .calendar-days>*{min-height:64px;padding:6px}.school-calendar .calendar-days small{font-size:10px}.schedule-panel{padding:18px}.schedule-toolbar{align-items:flex-start;flex-direction:column}.schedule-list article{grid-template-columns:95px 1fr;gap:10px}.schedule-list a{grid-column:2}.schedule-panel>summary small{display:block;margin-left:0}.catalog-layout{grid-template-columns:1fr}.catalog-nav{position:static}.actual-course-list>header{display:none}.actual-course-row{grid-template-columns:1fr auto}.actual-course-row>span{grid-column:1/-1}.actual-course-row nav{grid-column:2;grid-row:2}.course-pagination{gap:12px;flex-wrap:wrap}.section-tabs{position:static;padding:12px 14px}.section-tabs label{width:100%;min-width:0;margin:0}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.video-copy{grid-template-columns:1fr}.channel-mark{display:none}.video-copy h3{font-size:14px}.video-copy p{font-size:11px}.faculty-page>.page-hero{min-height:280px;padding:32px 20px}.faculty-page .page-copy h1{font-size:32px}.teacher-dialog-copy h2{font-size:27px}.member-mini-cover{padding:20px}.member-panel,.record-panel{padding:18px}.member-mini-cover h1{font-size:24px}.member-nav{position:static}.prototype-dialog{padding:24px 20px}.prototype-dialog h2{font-size:21px}.prototype-dialog p{font-size:14px}.demo-toast{bottom:90px}.exam-row{grid-template-columns:28px 1fr}.exam-row>em,.exam-row>button{grid-column:2}.course-heading input{font-size:16px}body>#app>footer{padding:24px 18px 96px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.faculty-listing .faculty-card:hover{transform:none}}
