:root{--purple:#590bd7;--violet:#655cf0;--ink:#252333;--muted:#686575;--pale:#f4f2ff;--yellow:#ffda4d;--line:#e9e5ef}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:white;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #be9afa;outline-offset:5px}button{border:0}img{width:100%;height:100%;object-fit:cover;display:block}.wrap{max-width:1200px;margin-inline:auto;width:calc(100% - 96px)}.preview-note{background:var(--violet);color:white;text-align:center;padding:10px 20px;font-size:12px;letter-spacing:1px}header{height:100px;padding:0 48px;max-width:1440px;margin:auto;display:flex;align-items:center;gap:35px;background:white}.brand{display:flex;align-items:center;gap:9px;color:var(--purple);font-size:27px;font-weight:850;white-space:nowrap}.brand-symbol{font-size:46px;line-height:1}.brand small{display:block;font-size:9px;letter-spacing:2.1px;margin-top:1px}nav{display:flex;gap:30px;margin:auto;font-size:14px;font-weight:550}nav a:hover,.text-link:hover{color:var(--purple)}.member{padding:12px 20px;background:var(--pale);color:var(--purple);border-radius:25px;font-size:14px}.member span{margin-left:15px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding-block:55px 75px;min-height:650px}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:600;display:flex;align-items:center;gap:9px}.eyebrow>span{width:7px;height:7px;background:var(--purple);border-radius:50%}.purple{color:var(--purple)}h1{font-size:70px;line-height:1.23;letter-spacing:2px;margin:25px 0 26px;font-weight:850}.highlight{position:relative;z-index:0}.highlight i{position:absolute;left:-5px;right:-8px;bottom:5px;height:20px;border-radius:60% 25% 50% 20%;background:var(--yellow);z-index:-1;transform:rotate(-2deg)}.hero-copy>p{font-size:16px;line-height:1.9;color:var(--muted)}.placeholder{font-size:10px;line-height:1.7;padding:1px 5px;border:1px solid #ddd4ef;border-radius:4px;color:#766489;display:inline-block;vertical-align:middle;margin-right:6px;font-weight:400;letter-spacing:0}.actions{display:flex;align-items:center;gap:25px;margin-top:28px}.button{padding:16px 24px;border-radius:50px;display:inline-flex;align-items:center;justify-content:center;gap:24px;font-size:14px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--purple);color:white}.primary:hover{background:#4605b3}.text-link{font-size:14px;font-weight:500}.text-link span{margin-left:8px}.hero-foot{display:flex;align-items:center;gap:10px;margin-top:32px;font-size:12px;color:#716b7e}.little-star{font-size:25px;color:var(--purple)}.hero-art{position:relative;height:490px}.art-backdrop{position:absolute;inset:35px -5px 20px 30px;background:#efebff;border-radius:48% 48% 38% 35%;transform:rotate(7deg)}.hero-photo{position:absolute;margin:0;inset:8px 20px 34px 20px;border-radius:180px 180px 90px 90px;overflow:hidden;transform:rotate(-4deg)}.hero-photo img{object-position:52% center;transform:scale(1.05) rotate(4deg)}figcaption,.photo-tag{position:absolute;top:15px;left:16px;font-size:10px;background:#ffffffde;border-radius:5px;padding:4px 8px;color:#544c61}.floating-label{position:absolute;right:-13px;top:57px;background:var(--yellow);padding:13px 21px;border-radius:28px;transform:rotate(6deg);font-weight:650;font-size:14px}.floating-label span{margin-right:10px}.photo-caption{position:absolute;bottom:0;left:-8px;background:var(--violet);color:white;border-radius:20px;padding:22px 28px;width:250px;box-shadow:0 12px 30px #34207713;transform:rotate(-3deg)}.photo-caption .placeholder{color:#efecff;border-color:#ffffff60}.photo-caption p{font-size:24px;line-height:1.5;margin:9px 0 0;font-weight:600}.caption-arrow{position:absolute;right:25px;bottom:27px;font-size:32px;color:var(--yellow)}.orbit{position:absolute;right:-20px;bottom:25px;color:var(--purple);font-size:87px;line-height:1}.tiny-dot{width:16px;height:16px;border-radius:50%;background:var(--yellow);position:absolute;left:-4px;top:26px}.values{background:var(--pale);padding:24px 0}.values .wrap{display:flex;justify-content:space-around;align-items:center}.values span{font-weight:600;font-size:16px;letter-spacing:2px}.values b{font-size:11px;color:var(--violet);margin-right:14px}.values i{font-style:normal;color:#c0b4e8}.section{padding-block:85px}.section-heading{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:34px}h2{font-size:32px;line-height:1.4;letter-spacing:-.5px;margin:13px 0 0}.section-heading p{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.course-card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}.course-picture{height:220px;position:relative}.course-picture img{transition:transform .4s}.course-card:hover img{transform:scale(1.035)}.course-number{position:absolute;bottom:-20px;right:22px;width:43px;height:43px;background:#e6dfff;border-radius:50%;display:grid;place-items:center;color:var(--purple);font-weight:700;font-size:14px;border:4px solid white}.yellow{background:var(--yellow)}.pink{background:#f9daf0}.course-body{padding:26px 24px 20px}.category{font-size:11px;letter-spacing:1px;color:var(--purple)}h3{font-size:20px;margin:12px 0;line-height:1.5}.course-body p{color:var(--muted);font-size:13px;line-height:1.9;min-height:51px}.course-link{background:none;padding:17px 0 0;border-top:1px solid var(--line);width:100%;display:flex;justify-content:space-between;color:var(--purple);font-size:13px;font-weight:600}.small-note{font-size:12px;color:var(--muted)}.schedule-section{padding:65px 0 75px;background:#faf9fe}.event{display:flex;align-items:center;gap:35px;background:white;border:1px solid var(--line);padding:30px;border-radius:23px}.event-date{background:var(--pale);border-radius:15px;padding:22px;min-width:165px;display:flex;flex-direction:column;text-align:center;color:var(--purple);gap:5px}.event-date>span:first-child{font-size:10px;letter-spacing:2px}.event-date strong{font-size:39px;letter-spacing:-3px}.event-date>span{font-size:12px}.event-date small{font-size:10px;color:var(--muted);margin-top:5px}.event-info{flex:1}.event-tags{display:flex;gap:9px;font-size:10px}.event-tags span{background:var(--pale);padding:4px 8px;border-radius:5px;color:var(--purple)}.event-tags span+span{background:#fff4c8;color:#716000}.event-info h3{font-size:26px;margin:11px 0}.event-info p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.event-meta{font-size:11px;margin-top:17px;color:var(--muted)}.event-meta i{margin:0 9px;font-style:normal}.event-action{display:flex;flex-direction:column;align-items:center;gap:15px;font-size:15px}.event-action small{color:#8b8695;font-size:11px}.about-section{margin-top:85px;background:var(--violet);border-radius:28px;padding:56px;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;color:white}.about-heading h2{font-size:39px;margin-top:22px}.about-heading p{font-size:13px;line-height:2;max-width:340px;color:#f0edff;margin:22px 0 25px}.light{color:#f2ecff;border-color:#ffffff55}.white{background:white;color:var(--purple)}.beliefs>div{display:flex;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid #ffffff40}.beliefs>div:last-child{border:0}.beliefs>div>span{align-self:flex-start;margin-top:10px;font-size:11px;color:#dedaff}.beliefs h3{margin:0 0 7px;font-size:23px}.beliefs p{font-size:12px;line-height:1.9;margin:0;color:#f0edff}.beliefs b{font-size:44px;font-weight:400;color:var(--yellow);margin-left:auto}.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:42px}.steps li{position:relative}.steps li:not(:last-child):after{content:'→';position:absolute;top:10px;right:12px;color:#c9c0df}.steps li>span{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;background:var(--pale);color:var(--purple);font-size:13px;font-weight:600}.steps h3{font-size:17px;margin:18px 0 8px}.steps p{font-size:13px;line-height:1.9;color:var(--muted);margin:0}.faq-section{border-top:1px solid var(--line);padding-block:65px 85px;display:grid;grid-template-columns:.85fr 1.15fr;gap:60px}.faq-section>div>p{font-size:13px;color:var(--muted);line-height:2}.faq-section a{color:var(--purple)}details{border-bottom:1px solid var(--line);padding:19px 0}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;font-size:14px;font-weight:550;line-height:1.7}summary::-webkit-details-marker{display:none}summary span{color:var(--purple)}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;line-height:1.9;color:var(--muted)}.contact-section{background:#ffdf5d;padding:50px 0}.contact-section>.wrap{display:flex;justify-content:space-between;gap:45px;align-items:center}.contact-section h2{font-size:28px}.contact-section p{font-size:13px;margin:14px 0 0}.contacts{min-width:265px}.contacts a{display:flex;justify-content:space-between;gap:30px;padding:10px 0;border-bottom:1px solid #46371925;font-size:13px}.contacts a:last-child{border:0}.contacts span{font-size:12px}footer{display:flex;align-items:center;justify-content:space-between;padding-block:35px;color:var(--muted);font-size:12px;line-height:1.9}.footer-brand strong{color:var(--purple);font-size:22px;display:block}.footer-brand span{font-size:11px}footer small{color:#91899e;font-size:10px}dialog{border:0;border-radius:24px;padding:38px;max-width:650px;width:calc(100% - 32px);max-height:85vh;color:var(--ink);box-shadow:0 20px 100px #24114440}dialog::backdrop{background:#20123d66;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:16px;top:10px;background:none;font-size:30px;color:var(--muted);padding:5px 10px}dialog h2{font-size:25px;margin-bottom:20px}dialog p,dialog li{font-size:14px;line-height:1.9}dialog .button{margin-top:20px}dialog table{width:100%;border-collapse:collapse;font-size:12px;margin:20px 0}dialog th,dialog td{padding:10px 5px;text-align:left;border-bottom:1px solid var(--line)}dialog th{background:var(--pale)}.dialog-label{color:var(--purple);font-size:12px!important}.modal-list{display:grid;gap:10px}.modal-list span{padding:12px 16px;background:var(--pale);border-radius:10px;font-size:14px}
@media(min-width:1450px){.hero{padding-top:70px;padding-bottom:90px}}@media(max-width:1050px){header{gap:20px;padding-inline:30px}nav{gap:16px;font-size:12px}.wrap{width:calc(100% - 60px)}.hero{gap:20px}h1{font-size:59px}.hero-art{height:450px}.hero-photo{inset:20px 10px 40px}.floating-label{right:-5px}.hero-foot{font-size:10px}.course-body{padding-inline:18px}.course-body h3{font-size:17px}.course-picture{height:185px}.about-section{padding:40px;gap:40px}.event{gap:22px;padding:24px}.event-date{min-width:140px;padding:18px}.event-meta{font-size:10px}.event-action .button{padding:14px 17px}.actions{gap:15px}.hero-copy .button{padding:15px 19px;font-size:13px}.text-link{font-size:12px}}
@media(max-width:760px){html{scroll-padding-top:80px}.preview-note{font-size:10px;padding:8px 12px;letter-spacing:0}header{height:78px;padding:0 22px;gap:13px;position:relative;z-index:5}.brand{font-size:23px;gap:5px}.brand-symbol{font-size:36px}.brand small{font-size:7px;letter-spacing:1.8px}.member{margin-left:auto;padding:10px 13px;font-size:11px}.member span{display:none}.menu-toggle{display:block;background:none;color:var(--purple);font-size:23px;padding:7px}nav{display:none;position:absolute;top:78px;left:0;right:0;padding:20px 25px;background:white;box-shadow:0 12px 20px #35206415;font-size:14px;gap:0}nav.open{display:grid}nav a{padding:13px 0;border-bottom:1px solid var(--line)}.wrap{width:calc(100% - 44px)}.hero{grid-template-columns:1fr;gap:30px;padding:28px 0 45px;min-height:0}.eyebrow{font-size:10px;letter-spacing:1px}h1{font-size:53px;line-height:1.24;letter-spacing:1px;margin:21px 0}.hero-copy>p{font-size:14px;line-height:1.9}.hero-copy .button{font-size:12px;padding:15px 20px}.actions{margin-top:24px;gap:20px}.hero-foot{margin-top:20px;font-size:10px}.hero-art{height:375px;margin:0 9px 0 5px}.hero-photo{inset:0 14px 32px 25px;border-radius:150px 150px 65px 65px}.art-backdrop{inset:20px 3px 10px 30px}.floating-label{font-size:12px;right:-7px;top:38px;padding:11px 14px}.photo-caption{width:205px;padding:18px 22px;left:0}.photo-caption p{font-size:21px}.caption-arrow{right:20px;font-size:26px}.orbit{right:-8px;font-size:66px;bottom:14px}.values{padding:20px 0}.values .wrap{width:calc(100% - 32px)}.values span{font-size:12px;letter-spacing:0}.values b{font-size:9px;margin-right:5px}.values i{font-size:10px}.section{padding-block:54px}.section-heading{display:block;margin-bottom:25px}h2{font-size:25px;letter-spacing:0;margin-top:12px}.section-heading>p{margin-top:14px;font-size:12px}.section-heading p br{display:none}.course-grid{grid-template-columns:1fr;gap:22px}.course-picture{height:210px}.course-body{padding:24px}.course-body h3{font-size:21px}.course-body p{min-height:0}.course-link{margin-top:20px;padding-top:17px}.small-note{display:block;font-size:11px;margin-top:13px;line-height:1.8}.schedule-section{padding:48px 0}.event{display:grid;grid-template-columns:90px 1fr;gap:20px 17px;padding:22px 18px;border-radius:20px;align-items:start}.event-date{min-width:0;padding:17px 5px}.event-date>span:first-child{font-size:8px;letter-spacing:1px}.event-date strong{font-size:26px;letter-spacing:-2px}.event-date>span{font-size:9px}.event-date small{font-size:9px}.event-tags{font-size:9px;gap:4px;flex-wrap:wrap}.event-tags span{padding:3px 5px}.event-info h3{font-size:20px;margin:10px 0}.event-info p{font-size:11px}.event-meta{line-height:1.8;margin-top:10px}.event-meta i{margin:0 3px}.event-action{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px 10px;border-top:1px solid var(--line);padding-top:18px;font-size:13px}.event-action .button{grid-column:2;grid-row:1/3;font-size:12px}.event-action small{font-size:10px}.about-section{margin-top:50px;padding:32px 25px;border-radius:22px;grid-template-columns:1fr;gap:22px}.about-heading h2{font-size:33px}.about-heading p{font-size:12px}.about-heading .button{font-size:12px;padding:13px 20px}.beliefs>div{padding:23px 0;gap:14px}.beliefs h3{font-size:21px}.beliefs p{font-size:11px}.beliefs b{font-size:35px}.steps{grid-template-columns:1fr 1fr;gap:30px 20px;margin:30px 0 0}.steps li:after{display:none}.steps p{font-size:12px}.steps h3{font-size:16px}.faq-section{grid-template-columns:1fr;gap:14px;padding:40px 0 50px}.faq-section>div>p{font-size:12px}summary{font-size:13px}details p{font-size:12px}.contact-section{padding:35px 0}.contact-section>.wrap{display:block}.contact-section h2{font-size:24px;line-height:1.5}.contact-section p{font-size:12px}.contacts{margin-top:22px}.contacts a{padding:13px 0}footer{display:block;padding-block:28px}footer>div+div{margin-top:16px;font-size:11px}.footer-brand strong{font-size:21px}.dialog-close{top:8px;right:10px}dialog{padding:30px 22px}dialog h2{font-size:22px}dialog table{font-size:10px}dialog th,dialog td{padding:9px 3px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero-photo figcaption{top:auto;left:auto;bottom:38px;right:45px;transform:rotate(4deg)}h2>.placeholder{display:table;margin-bottom:8px} .eyebrow>.placeholder{width:auto;height:auto;background:none;border-radius:4px}.floating-label>.placeholder{font-size:9px;margin-right:4px}.about-section h2>.placeholder{color:#f2ecff;border-color:#ffffff55}

/* Course content: compact facts, readable lessons, and a clear inquiry panel. */
.course-facts{display:flex;flex-wrap:wrap;gap:7px;margin:19px 0}.course-facts span{font-size:11px;background:var(--pale);color:#57446f;padding:6px 9px;border-radius:6px}.course-card{display:flex;flex-direction:column}.course-body{flex:1;display:flex;flex-direction:column}.course-body>.course-link{margin-top:auto}.course-body>p{min-height:100px}.teacher-cover{background:#f4f2ff}.teacher-cover img{object-fit:contain}.course-picture.teacher-cover img{mix-blend-mode:multiply}.hero-photo img{object-position:38% center}.breadcrumb{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted);padding:25px 0 35px}.breadcrumb a:hover{color:var(--purple)}.detail-heading{max-width:840px;margin-bottom:30px}.detail-heading h1{font-size:42px;letter-spacing:0;margin:14px 0 18px;line-height:1.35}.detail-heading>p{font-size:17px;line-height:1.9;color:var(--muted)}.teacher-byline{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--purple);margin-top:20px}.teacher-byline img{width:34px;height:34px;border-radius:50%;object-position:50% 20%;object-fit:cover}.teacher-byline span{font-size:12px;color:var(--muted);margin-left:10px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:45px;align-items:start}.detail-main{min-width:0}.detail-cover{height:350px;position:relative;margin:0;border-radius:20px;overflow:hidden;background:var(--pale)}.detail-cover figcaption{top:auto;bottom:16px}.detail-cover.teacher-cover img{mix-blend-mode:multiply}.detail-nav{display:flex;position:static;gap:25px;justify-content:flex-start;margin:22px 0 0;padding:18px 0;border-bottom:1px solid var(--line);font-size:13px;background:white;box-shadow:none}.detail-section{padding:32px 0;border-bottom:1px solid var(--line);scroll-margin-top:20px}.detail-section h2{font-size:25px;margin:0 0 20px}.detail-section h3{font-size:17px}.detail-section p,.learning-list{font-size:14px;line-height:2;color:var(--muted)}.learning-list{padding-left:22px}.learning-list li{padding:5px 0 5px 5px}.learning-list li::marker{color:var(--purple)}.topic-list article{display:flex;gap:18px;padding:18px 0}.topic-list article>span{width:35px;height:35px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:var(--pale);color:var(--purple);font-size:12px}.topic-list h3{margin:3px 0 7px}.topic-list p{margin:0}.course-sidebar{position:sticky;top:24px}.enrollment-card{border:1px solid var(--line);box-shadow:0 8px 35px #2b17460b;border-radius:20px;padding:28px}.enrollment-card h2{font-size:28px;margin:15px 0 25px}.enrollment-card dl{margin:0}.enrollment-card dl>div{padding:13px 0;border-bottom:1px solid var(--line)}.enrollment-card dt{font-size:11px;color:var(--muted);margin-bottom:7px}.enrollment-card dd{font-size:14px;line-height:1.8;margin:0}.enrollment-card .button{width:100%;margin-top:24px}.sidebar-link{display:block;text-align:center;font-size:13px;color:var(--purple);margin:18px 0}.detail-note{font-size:12px!important;line-height:1.9!important;color:var(--muted)}.sidebar-help{padding:24px 20px;background:#fff8df;border-radius:16px;margin-top:20px;font-size:13px}.sidebar-help p{line-height:1.9;color:var(--muted)}.sidebar-help a{color:var(--purple)}.teacher-profile{display:flex;gap:25px;align-items:flex-start}.teacher-profile>img{width:110px;height:135px;object-fit:contain;border-radius:12px;background:var(--pale)}.teacher-profile h3{margin-top:0}.teacher-profile p{margin-bottom:0}.table-scroll{overflow-x:auto}.table-scroll table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap;margin:20px 0}.table-scroll th,.table-scroll td{padding:14px 8px;border-bottom:1px solid var(--line);text-align:left}.table-scroll thead{background:var(--pale)}.table-scroll caption{text-align:left;color:var(--muted);padding-bottom:12px;white-space:normal}.source-note{font-size:11px;line-height:1.9;color:#777180;margin:25px 0}.related-courses{padding:60px 0}.related-courses>div{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}.related-courses>div>a{border:1px solid var(--line);border-radius:15px;padding:24px;transition:background .2s}.related-courses>div>a:hover{background:var(--pale)}.related-courses span{font-size:12px;color:var(--purple)}.related-courses h3{font-size:19px;margin-bottom:0}.course-detail+footer{border-top:1px solid var(--line)}
@media(max-width:1050px){.detail-layout{grid-template-columns:minmax(0,1fr) 285px;gap:25px}.enrollment-card{padding:22px}.detail-nav{gap:18px}.detail-cover{height:300px}.course-body>p{min-height:120px}}
@media(max-width:760px){.breadcrumb{font-size:11px;padding:15px 0 27px}.detail-heading h1{font-size:30px}.detail-heading>p{font-size:14px}.teacher-byline{flex-wrap:wrap;font-size:12px}.teacher-byline span{margin-left:0}.detail-layout{display:flex;flex-direction:column;gap:25px}.detail-main,.course-sidebar{width:100%}.course-sidebar{position:static;order:-1}.enrollment-card{padding:22px}.enrollment-card h2{font-size:25px;margin-bottom:15px}.enrollment-card dl{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.enrollment-card dd{font-size:12px}.enrollment-card .button{margin-top:20px}.sidebar-help{display:none}.detail-cover{height:245px}.detail-nav{display:flex;flex-wrap:wrap;gap:18px;padding:17px 0;font-size:12px}.detail-nav a{padding:0;border:0}.detail-section{padding:27px 0}.detail-section h2{font-size:23px}.teacher-profile{gap:18px}.teacher-profile>img{width:75px;height:100px}.teacher-profile .category{font-size:10px}.related-courses{padding:40px 0}.related-courses>div{grid-template-columns:1fr}.course-body>p{min-height:0}.table-scroll th,.table-scroll td{padding:12px 6px;font-size:11px}}

/* Shared instructor biography. */
button.teacher-byline{background:transparent;padding:0;text-align:left;font-family:inherit}.teacher-more{display:inline-flex;background:var(--pale);color:var(--purple);border-radius:30px;padding:11px 17px;margin-top:18px;font-size:13px}.teacher-more:hover{background:#e9e1fc}.teacher-profile-interactive{cursor:pointer;border-radius:15px;padding:18px;border:1px solid var(--line);transition:border-color .2s,background .2s}.teacher-profile-interactive:hover{border-color:#c5ace9;background:#fcfaff}.teacher-dialog{max-width:800px;padding:38px}.teacher-bio-intro{display:flex;gap:26px;align-items:center;padding:22px;border-radius:16px;background:var(--pale)}.teacher-bio-intro>img{width:125px;height:155px;object-fit:contain;mix-blend-mode:multiply;flex-shrink:0}.teacher-bio-intro p{margin:0}.teacher-bio-intro .category{font-size:12px;line-height:1.9;margin-bottom:10px}.teacher-bio-section{padding:24px 0 10px;border-bottom:1px solid var(--line)}.teacher-bio-section h3{font-size:19px;margin:0 0 15px}.teacher-bio-section p{color:var(--muted);margin:0 0 15px}.teacher-traits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.teacher-traits h4{font-size:14px;color:var(--purple);margin:0 0 10px}.teacher-traits p{font-size:13px}.teacher-dialog .source-note{font-size:11px}.teacher-dialog .dialog-done{margin-top:0}body:has(dialog[open]){overflow:hidden}
@media(max-width:760px){.teacher-dialog{padding:30px 22px}.teacher-bio-intro{gap:16px;padding:17px;align-items:flex-start}.teacher-bio-intro>img{width:75px;height:105px}.teacher-bio-intro p{font-size:13px}.teacher-bio-intro .category{font-size:11px}.teacher-traits{grid-template-columns:1fr;gap:8px}.teacher-bio-section h3{font-size:17px}.teacher-profile-interactive{padding:14px;gap:14px}.teacher-more{font-size:12px;padding:10px 13px}}

/* Student account entry: registration and login preview. */
.auth-dialog{max-width:480px;padding:36px}.auth-dialog>.eyebrow,.auth-dialog>.dialog-done{display:none}.auth-dialog h2{font-size:25px;margin-bottom:8px}.auth-intro{color:var(--muted);margin:0 0 22px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--pale);padding:5px;border-radius:12px;gap:5px;margin-bottom:24px}.auth-tabs button{padding:11px;border-radius:9px;background:transparent;color:var(--muted)}.auth-tabs button[aria-selected=true]{background:white;color:var(--purple);font-weight:600;box-shadow:0 2px 8px #35206410}#account-form label{display:block;font-size:13px;font-weight:600;margin:17px 0 8px}#account-form input{display:block;width:100%;min-width:0;border:1px solid #dcd7e5;border-radius:10px;padding:13px 14px;font:inherit;font-size:16px;background:white;color:var(--ink)}#account-form input:focus{outline:2px solid #be9afa;outline-offset:1px}#account-form input::placeholder{font-size:13px;color:#8b8595}.password-field{position:relative}.password-field input{padding-right:90px!important}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:10px 8px;font-size:12px;background:transparent;color:var(--purple)}.auth-submit{width:100%;margin-top:25px!important}.auth-preview{font-size:12px!important;line-height:1.8!important;color:var(--muted);border-top:1px solid var(--line);padding-top:18px;margin:12px 0 0}.auth-status{font-size:12px!important;line-height:1.8!important;color:var(--purple);margin:12px 0 0}.auth-status:empty{display:none}@media(max-width:760px){.auth-dialog{padding:30px 22px}.auth-dialog h2{font-size:23px}}

/* Single phone verification flow for both new and returning students. */
.sms-field{display:flex;align-items:center;gap:10px}.sms-field input{flex:1}.sms-send{flex-shrink:0;background:var(--pale);color:var(--purple);border-radius:10px;padding:15px 13px;font-size:13px;white-space:nowrap}.sms-send:hover{background:#e9e1fc}.auth-auto-register{font-size:12px!important;line-height:1.8!important;color:var(--muted);margin:15px 0 0}

/* Upcoming courses: a layered accordion with one expanded card. */
.schedule-stack{padding-bottom:4px}.schedule-item{position:relative;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 5px 15px #32204c05;margin:0 10px;transition:margin .2s,box-shadow .2s}.schedule-item+.schedule-item{margin-top:-8px;padding-top:8px}.schedule-item:nth-child(2){background:#fdfcff;margin-inline:18px}.schedule-item:nth-child(3){background:#f7f4ff;margin-inline:36px}.schedule-item.is-open{margin-inline:0;background:white;box-shadow:0 10px 28px #32204c09;z-index:1}.schedule-toggle-heading{margin:0;font-size:inherit}.schedule-toggle{width:100%;display:grid;grid-template-columns:32px 155px minmax(0,1fr) minmax(130px,auto) 20px;align-items:center;gap:18px;text-align:left;background:transparent;padding:26px 30px;color:var(--ink);border-radius:22px}.schedule-toggle:hover{background:#590bd706}.schedule-index{font-size:11px;color:var(--purple);letter-spacing:1px}.schedule-summary-date{font-size:14px;color:var(--purple)}.schedule-summary-title{font-size:17px;font-weight:600}.schedule-summary-place{font-size:13px;color:var(--muted)}.schedule-chevron{font-size:24px;color:var(--purple);text-align:center;line-height:1}.schedule-expanded-label{display:none}.is-open .schedule-toggle{grid-template-columns:32px 1fr 20px;padding:15px 30px 5px}.is-open .schedule-expanded-label{display:block;font-size:11px;color:var(--muted);font-weight:400}.is-open .schedule-summary-date,.is-open .schedule-summary-title,.is-open .schedule-summary-place{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.is-open .schedule-chevron{transform:rotate(180deg)}.schedule-panel[hidden]{display:none}.schedule-panel>.event{border:0;background:transparent;padding-top:16px}.pending-event{padding:22px 30px 35px}.pending-event h3{font-size:25px}.pending-event p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:24px}.schedule-toggle:focus-visible{outline-offset:2px}
@media(max-width:760px){.schedule-item:nth-child(2){margin-inline:7px}.schedule-item:nth-child(3){margin-inline:14px}.schedule-item.is-open{margin-inline:0}.schedule-toggle{grid-template-columns:23px minmax(0,1fr) 20px;gap:9px 10px;padding:23px 18px}.schedule-index{grid-column:1;grid-row:1/4;align-self:start;margin-top:3px}.schedule-summary-date{grid-column:2;grid-row:1;font-size:12px}.schedule-summary-title{grid-column:2;grid-row:2;font-size:15px}.schedule-summary-place{grid-column:2;grid-row:3;font-size:12px}.schedule-chevron{grid-column:3;grid-row:1/4}.is-open .schedule-toggle{grid-template-columns:23px 1fr 20px;padding:13px 18px 3px}.is-open .schedule-index,.is-open .schedule-chevron{grid-row:1}.pending-event{padding:20px 22px 28px}.pending-event h3{font-size:21px}.pending-event p{font-size:13px}}

/* Equal-width cards: perspective, overlap and shadows create depth. */
.schedule-stack{perspective:1400px;perspective-origin:50% 35%;padding-bottom:14px;isolation:isolate}.schedule-item,.schedule-item:nth-child(2),.schedule-item:nth-child(3){margin-inline:0;background:white;transform-origin:50% 0;transform:rotateX(-8deg);box-shadow:0 12px 18px -15px #30204655,inset 0 -3px 0 #ede8f6;transition:transform .25s,box-shadow .25s,background .25s}.schedule-item{z-index:3}.schedule-item:nth-child(2){z-index:2}.schedule-item:nth-child(3){z-index:1}.schedule-item+.schedule-item{margin-top:-12px;padding-top:12px}.schedule-item:not(.is-open){background:linear-gradient(180deg,#f0edf8 0,#fff 26px,#fdfcff 100%)}.schedule-item.is-open{z-index:4;transform:rotateX(0deg) translateZ(0);box-shadow:0 20px 30px -23px #33224d80,0 3px 8px #30204609;background:white}.schedule-item:not(.is-open):hover{transform:rotateX(-3deg);box-shadow:0 12px 22px -16px #30204666}.schedule-toggle:hover{background:transparent}.schedule-item.is-open+.schedule-item{padding-top:17px;margin-top:-17px}.schedule-toggle{padding-top:28px;padding-bottom:26px}@media(max-width:760px){.schedule-stack{perspective:1000px}.schedule-item,.schedule-item:nth-child(2),.schedule-item:nth-child(3),.schedule-item.is-open{margin-inline:0}.schedule-item:not(.is-open){transform:rotateX(-6deg)}.schedule-toggle{padding-top:23px;padding-bottom:23px}}

/* Keep every card rectangular; depth comes from overlap and shadows only. */
.schedule-stack{perspective:none}
.schedule-item,.schedule-item:nth-child(2),.schedule-item:nth-child(3),.schedule-item.is-open,.schedule-item:not(.is-open),.schedule-item:not(.is-open):hover{transform:none}

/* Registration status remains visible in the collapsed course row. */
.enrollment-status{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.enrollment-status.full,.event-tags span.enrollment-status.full{background:#fff3c4;color:#826000}.enrollment-status.enrolling,.event-tags span.enrollment-status.enrolling{background:#e5f5eb;color:#207044}.is-open .schedule-summary-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}.schedule-toggle{grid-template-columns:32px 155px minmax(0,1fr) 100px 20px}.is-open .schedule-toggle{grid-template-columns:32px 1fr 20px}@media(max-width:760px){.schedule-toggle{grid-template-columns:23px minmax(0,1fr) 20px}.schedule-summary-status{grid-column:2;grid-row:3;font-size:11px;padding:3px 8px}}

/* Keep the enrollment badge beside the title, with location on the right. */
.schedule-summary-course{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.schedule-summary-course .schedule-summary-status{flex-shrink:0}.schedule-summary-place{text-align:right}.is-open .schedule-summary-course{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:760px){.schedule-summary-course{grid-column:2;grid-row:2;gap:8px}.schedule-summary-course .schedule-summary-status{font-size:11px;padding:3px 8px}.schedule-summary-place{grid-column:2;grid-row:3;text-align:left}}
@media(max-width:760px){.schedule-summary-place{text-align:right}}

/* Location badge matches the expanded course tag. */
.schedule-toggle{grid-template-columns:32px 155px minmax(0,1fr) auto 20px}.schedule-summary-place{justify-self:end;width:max-content;padding:6px 10px;border-radius:6px;background:var(--pale);color:var(--purple);font-size:12px;line-height:1.5;white-space:nowrap}.is-open .schedule-summary-place{padding:0}.is-open .schedule-toggle{grid-template-columns:32px 1fr 20px}@media(max-width:760px){.schedule-toggle{grid-template-columns:23px minmax(0,1fr) 20px}.schedule-summary-place{font-size:11px;padding:4px 8px}}

/* Dates identify courses; no numbering or extra expanded-state label. */
.schedule-toggle{grid-template-columns:155px minmax(0,1fr) auto 20px}.is-open .schedule-toggle{grid-template-columns:1fr;padding:12px 30px 0;min-height:32px}.is-open .schedule-chevron{grid-column:1;justify-self:end}.schedule-item.is-open .event{padding-top:4px}
@media(max-width:760px){.schedule-toggle{grid-template-columns:minmax(0,1fr) 20px}.schedule-summary-date{grid-column:1;grid-row:1}.schedule-summary-course{grid-column:1;grid-row:2}.schedule-summary-place{grid-column:1;grid-row:3}.schedule-chevron{grid-column:2;grid-row:1/4}.is-open .schedule-toggle{grid-template-columns:1fr;padding:12px 18px 0}.is-open .schedule-chevron{grid-column:1;grid-row:1}}

/* Unambiguous year/month, compact date range, and weekday line. */
.event-date>span:first-child{font-size:13px;letter-spacing:0}.event-date strong{letter-spacing:-1px;white-space:nowrap}.event-date>span:last-child{font-size:12px;margin-top:3px}@media(max-width:760px){.event-date>span:first-child{font-size:10px;letter-spacing:0}.event-date strong{letter-spacing:-1px}.event-date>span:last-child{font-size:10px}}

/* Cross-year date preview: give each endpoint its own explicit year. */
.cross-year-date{gap:8px;min-width:165px;padding:20px 16px}.date-endpoint{display:flex;flex-direction:column;gap:5px}.date-endpoint>span{font-size:12px}.cross-year-date .date-endpoint strong{font-size:25px;letter-spacing:0;line-height:1.3}.cross-year-date .date-connector{font-size:18px;line-height:1;color:#9d79d6}.cross-year-date .cross-year-weekday{font-size:11px;margin-top:4px}.schedule-summary-date{line-height:1.6;overflow-wrap:anywhere}@media(max-width:760px){.cross-year-date{min-width:0;padding:17px 6px}.date-endpoint>span{font-size:10px}.cross-year-date .date-endpoint strong{font-size:17px}.cross-year-date .cross-year-weekday{font-size:10px}}

/* Family course fees are listed by counseling category. */
.event-prices{display:grid;gap:9px;width:100%;min-width:170px}.event-prices>div{display:flex;justify-content:space-between;align-items:baseline;gap:18px}.event-prices span{font-size:12px;color:var(--muted)}.event-prices strong{font-size:18px;font-weight:650;white-space:nowrap}@media(max-width:760px){.event-action .event-prices{grid-column:1/-1;margin-bottom:8px;min-width:0}.event-action:has(.event-prices) .button{grid-column:2;grid-row:2/4}.event-action:has(.event-prices)>small{grid-column:1;grid-row:2;line-height:1.8}.event-prices strong{font-size:17px}}

/* Direct enrollment with staff contact as an optional supporting action. */
.enrollment-dialog{max-width:700px}.enrollment-dialog>.eyebrow,.enrollment-dialog>.dialog-done{display:none}.enroll-intro{color:var(--muted);margin-top:0}#enrollment-form>label,.enroll-fields label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}#enrollment-form select,#enrollment-form input:not([type=radio]),#enrollment-form textarea{width:100%;min-width:0;border:1px solid #dcd7e5;border-radius:10px;padding:12px;font:inherit;font-size:14px;background:white;color:var(--ink)}#enrollment-form textarea{resize:vertical}#enrollment-form :is(input,select,textarea):focus-visible{outline:2px solid #be9afa;outline-offset:2px}.field-hint{font-size:12px!important;color:var(--muted);margin:8px 0 18px}.enroll-options{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.enroll-options legend{font-size:13px;font-weight:600;margin-bottom:10px}.enroll-options legend span,.field-optional{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px}.enroll-options label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:15px;cursor:pointer}.enroll-options label:has(input:checked){background:var(--pale);border-color:var(--purple)}.enroll-options input{accent-color:var(--purple);width:16px;height:16px;flex-shrink:0}.enroll-options label span{display:flex;flex-direction:column;gap:6px;font-size:13px}.enroll-options strong{font-size:19px;color:var(--purple)}.enroll-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.enroll-help{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--pale);border-radius:12px;padding:17px;margin-top:20px}.enroll-help strong{font-size:13px}.enroll-help span{display:block;font-size:11px;color:var(--muted);line-height:1.8;margin-top:5px}.enroll-contact{font-size:12px;color:var(--purple);white-space:nowrap}.enroll-contact:hover{text-decoration:underline}.enroll-submit{width:100%;margin-top:18px!important}.enroll-status{font-size:13px!important;color:var(--purple);line-height:1.8!important}.enroll-status:empty{display:none}@media(max-width:760px){.enrollment-dialog h2{font-size:21px}.enroll-fields{grid-template-columns:1fr;gap:0}.enroll-options{gap:8px}.enroll-options label{padding:12px 8px;gap:6px}.enroll-help{display:block}.enroll-contact{display:inline-block;margin-top:12px}#enrollment-form select,#enrollment-form input:not([type=radio]),#enrollment-form textarea{font-size:16px}}

/* Unnumbered values, course cards, learning topics, and enrollment steps. */
.topic-list article{display:block}.topic-list h3{margin-top:0}.steps h3{margin-top:0}.steps li:not(:last-child):after{top:2px}

/* The goals course opens with its two founding principles. */
.course-philosophy{display:grid;grid-template-columns:1.25fr 1fr;border-radius:24px;overflow:hidden;margin:35px 0 45px;scroll-margin-top:25px}.philosophy-direction{padding:38px 42px;background:var(--pale)}.philosophy-direction h2{font-size:12px;letter-spacing:1.5px;font-weight:600;color:var(--purple);margin:0 0 25px}.course-philosophy blockquote{margin:0}.philosophy-direction p{font-size:23px;line-height:1.95;letter-spacing:.2px;margin:0}.philosophy-direction strong{font-weight:750;color:var(--purple);text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:6px;text-underline-offset:5px;text-decoration-skip-ink:none}.philosophy-devotion{position:relative;padding:38px 45px;background:var(--purple);color:white;display:flex;align-items:center}.philosophy-devotion p{margin:0;font-size:43px;font-weight:750;line-height:1.55;letter-spacing:2px}.philosophy-devotion p>span,.philosophy-devotion p>strong{display:block}.philosophy-devotion strong{color:var(--yellow);font-weight:800}.philosophy-star{position:absolute;right:30px;top:30px;font-size:45px;color:var(--yellow);line-height:1;transform:rotate(12deg)}
@media(max-width:1050px){.philosophy-direction{padding:30px}.philosophy-direction p{font-size:20px}.philosophy-devotion{padding:30px}.philosophy-devotion p{font-size:37px}.philosophy-star{right:20px;top:25px;font-size:34px}}
@media(max-width:760px){.course-philosophy{grid-template-columns:1fr;margin:26px 0 30px;border-radius:20px}.philosophy-direction{padding:27px 22px}.philosophy-direction h2{font-size:11px;margin-bottom:20px}.philosophy-direction p{font-size:clamp(16px,4.4vw,22px);line-height:2}.philosophy-direction strong{text-decoration-thickness:4px}.philosophy-devotion{padding:25px 26px}.philosophy-devotion p{font-size:34px;line-height:1.55;letter-spacing:1px}.philosophy-star{top:27px;right:27px;font-size:43px}}

/* A concise founding principle for the family course. */
.family-philosophy{position:relative;overflow:hidden;background:var(--purple);color:white;border-radius:24px;padding:38px 44px;margin:35px 0 45px;scroll-margin-top:25px}.family-philosophy h2{font-size:12px;font-weight:500;letter-spacing:1.5px;color:#e3d5ff;margin:0 0 23px}.family-philosophy blockquote{margin:0}.family-philosophy p{font-size:56px;font-weight:800;line-height:1.4;letter-spacing:5px;margin:0}.family-philosophy p>span{color:var(--yellow)}.family-philosophy-mark{position:absolute;right:45px;top:50%;transform:translateY(-35%) rotate(12deg);font-size:70px;color:var(--yellow);line-height:1}@media(max-width:760px){.family-philosophy{padding:27px 22px;margin:26px 0 30px;border-radius:20px}.family-philosophy h2{font-size:11px;letter-spacing:1px;margin-bottom:20px}.family-philosophy p{font-size:clamp(29px,8.4vw,42px);letter-spacing:2px}.family-philosophy-mark{font-size:23px;right:22px;top:28px;transform:rotate(12deg)}}

/* Direct course registration entry and page. */
.enrollment-banner{display:flex;justify-content:center;align-items:center;gap:28px;padding:13px 24px;background:var(--purple);color:#fff;font-size:16px;line-height:1.5}.enrollment-banner:hover{background:#4605b3}.banner-course{font-weight:600}.banner-date{font-size:14px;font-weight:400}.banner-action{flex-shrink:0;background:var(--yellow);color:#30223e;border-radius:24px;padding:7px 17px;font-size:14px;font-weight:700}.registration{padding-block:28px 70px}.registration-back{font-size:14px;color:var(--purple);text-decoration:underline;text-underline-offset:4px}.registration-heading{margin:30px 0}.registration-heading h1{font-size:38px;line-height:1.3;margin:12px 0;letter-spacing:0}.registration-heading>p:last-child{font-size:16px;color:var(--muted)}.registration-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:32px;align-items:start}.registration-card{border:1px solid var(--line);border-radius:24px;padding:32px;min-width:0}.registration-card p{font-size:16px;line-height:1.8}.registration-card #enrollment-form>label,.registration-card .enroll-fields label,.registration-card .enroll-options legend,.registration-card .enroll-options label span{font-size:16px}.registration-card #enrollment-form :is(input,select,textarea){font-size:16px}.registration-card .field-hint,.registration-card .auth-preview,.registration-card .field-optional,.registration-card .enroll-options legend span,.registration-card .enroll-help span,.registration-card .enroll-help strong,.registration-card .enroll-contact{font-size:14px!important}.registration-card .auth-preview{padding:14px;background:#fff9df;border-radius:10px;color:#5a4712}.registration-card .enroll-status{font-size:16px!important}.registration-aside{padding:28px;background:var(--pale);border-radius:24px}.registration-aside h2{font-size:22px;margin:0 0 22px}.registration-aside ol{padding-left:22px}.registration-aside li{padding-left:5px;margin-bottom:24px;font-size:16px}.registration-aside p{font-size:14px;line-height:1.8;color:var(--muted)}.registration-note{padding-top:18px;border-top:1px solid #dcd7e5}.registration-aside .text-link{display:inline-block;margin-top:10px;color:var(--purple)}
@media(max-width:760px){.enrollment-banner{gap:12px;padding:12px 18px;justify-content:space-between}.banner-course{font-size:14px}.banner-date{display:block;font-size:14px}.banner-action{padding:8px 12px}.registration{padding-top:20px}.registration-heading h1{font-size:30px}.registration-layout{grid-template-columns:1fr;gap:24px}.registration-card{padding:22px 18px}.registration-heading{margin:26px 0}.registration-aside{padding:24px}.registration-card .enroll-options{grid-template-columns:1fr}.registration-card .enroll-options label{padding:15px}.registration-card .enroll-options label span{flex:1;flex-direction:row;align-items:center;justify-content:space-between}}

.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.registration-card #enrollment-form .enroll-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.8;font-weight:400}.registration-card #enrollment-form .enroll-consent input{width:18px;height:18px;flex-shrink:0;margin-top:4px;accent-color:var(--purple)}.registration-card .enrollment-success{background:#eef8f1;border:1px solid #bddbc7;color:#205b35;border-radius:12px;padding:18px;white-space:pre-line}.enroll-submit:disabled{opacity:.65;cursor:default}

/* Homepage: aligned course covers with consistent spacing and quiet framing. */
.course-collage{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:225px 225px;gap:16px;min-width:0;padding:12px 0 18px}

/* A restrained lavender backing frames the three covers without changing their alignment. */
.course-collage::before{content:"";position:absolute;inset:-8px -20px -2px;background:#f3effa;border-radius:32px;z-index:-1;pointer-events:none}
.collage-tile{position:relative;display:block;overflow:hidden;border-radius:20px;box-shadow:0 2px 10px #32204c08;transition:box-shadow .2s;min-width:0}
.collage-tile:hover{box-shadow:0 3px 14px #32204c18}
.collage-goals{grid-row:1/3;align-self:stretch;height:100%;background:#f0e8db}
.collage-goals>img{height:78%;object-fit:cover;object-position:50% 15%;mix-blend-mode:multiply}
.collage-family>img{object-position:38% center}
.collage-family:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,#21152ee6 100%)}
.collage-copy{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:flex;flex-direction:column;gap:8px}
.collage-copy small{font-size:10px;letter-spacing:.8px}.collage-copy strong{font-size:22px;line-height:1.4;letter-spacing:.3px}
.collage-goals .collage-copy{background:linear-gradient(#f0e8db00,#f0e8db 25%);left:0;right:0;bottom:0;padding:35px 20px 23px;color:#3d3049}
.collage-family .collage-copy{color:white}
.collage-detail{display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:8px}.collage-detail b{font-size:22px;font-weight:400}
.collage-order{color:#34214e}.collage-order>img{object-position:center 38%}.collage-order .collage-copy{right:18px;bottom:16px;gap:3px}.collage-order .collage-copy strong{font-size:27px}.collage-price{font-size:24px;font-weight:650}
.online-label{position:absolute;top:17px;left:18px;background:#ffffffd9;padding:5px 10px;border-radius:20px;font-size:10px}

.student-course-entry{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px;color:var(--purple);margin:0 0 20px;line-height:1.8}.student-course-entry>span{text-decoration:underline;text-underline-offset:3px}
.order-cover{position:relative;background:#d6c7f3}.order-cover-title{position:absolute;left:27px;bottom:25px;font-size:35px;font-weight:700;letter-spacing:4px;color:#34214e}.order-course-meta{display:flex;align-items:center;gap:14px;margin:12px 0 25px}.order-course-meta strong{font-size:28px;color:var(--purple)}.order-course-meta>span{font-size:12px;color:var(--muted)}.course-pending{color:var(--muted);font-weight:400}
@media(max-width:1050px) and (min-width:761px){.course-collage{grid-template-rows:200px 200px;gap:12px}.collage-copy{left:13px;right:13px}.collage-copy strong{font-size:17px}.collage-goals .collage-copy{padding-inline:13px}.collage-copy small{font-size:9px;letter-spacing:0}.collage-detail{font-size:10px}}
@media(max-width:760px){.course-collage{width:100%;max-width:520px;justify-self:center;grid-template-rows:205px 205px;gap:13px;padding:8px 5px 15px}.collage-copy{left:15px;right:15px;bottom:17px}.collage-copy strong{font-size:18px}.collage-goals .collage-copy{padding:30px 15px 21px}.collage-copy small{font-size:9px;letter-spacing:0}.collage-detail{font-size:10px}.collage-order{margin-left:0;margin-right:0}.collage-order .collage-copy strong{font-size:25px}.student-course-entry{font-size:12px}}
@media(max-width:380px){.course-collage{grid-template-rows:185px 185px;gap:10px}.collage-copy strong{font-size:16px}.collage-copy{left:11px;right:11px}.collage-goals .collage-copy{padding-inline:11px}.collage-detail{font-size:9px}}
@media(prefers-reduced-motion:reduce){.collage-tile{transition:none}}

@media(max-width:760px){.course-collage::before{inset:-6px -10px -1px;border-radius:26px}}
/* Two-step enrollment: keep initial contact and verification compact. */
.registration [hidden]{display:none!important}.enrollment-steps{list-style:none;padding:0;display:flex;gap:12px;margin:0 0 28px}.enrollment-steps li{flex:1;background:#f4f1f8;border:1px solid var(--line);padding:15px 18px;border-radius:12px;color:var(--muted);font-size:15px}.enrollment-steps li[aria-current]{color:var(--purple);background:var(--pale);border-color:var(--purple);font-weight:600}.enrollment-steps span{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;flex:0 0 26px;width:26px;height:26px;padding:0;line-height:1;margin-right:6px;border:1px solid currentColor;border-radius:50%;font-size:13px}.registration #enrollment-basic-form label:not(.enroll-consent){display:block;font-size:16px;font-weight:600;margin:18px 0 8px}.registration #enrollment-basic-form .enroll-options label{display:flex;margin:0;font-weight:400}.registration #enrollment-basic-form :is(input:not([type=radio]):not([type=checkbox]),select){width:100%;min-width:0;padding:12px;border:1px solid #dcd7e5;border-radius:10px;font:inherit;background:#fff;color:var(--ink)}.registration #enrollment-basic-form :is(input,select):focus-visible{outline:2px solid #be9afa;outline-offset:2px}.enroll-phone-row{display:flex;gap:12px;align-items:center}.enroll-phone-row input{flex:1}.enroll-phone-row button{flex-shrink:0;white-space:nowrap}.enroll-review-notice{padding:22px;background:var(--pale);border:1px solid #d9cbea;border-radius:14px;margin:0 0 24px}.enroll-review-notice h2{font-size:22px;margin:6px 0 12px}.enroll-review-notice p{margin:8px 0;font-size:15px;line-height:1.85}.enroll-review-notice .eyebrow{font-size:12px}.enroll-summary{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.enroll-summary p{white-space:pre-line;font-size:14px;color:var(--muted)}#enroll-detail-fields>.flow-form{padding:20px 0;border-bottom:1px solid var(--line)}#enroll-detail-fields label{display:block;font-size:14px;line-height:1.8;margin:12px 0 4px}.registration #enrollment-basic-form .enroll-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.8;margin-top:18px}.registration #enrollment-basic-form input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin-top:4px;accent-color:var(--purple)}#enrollment-title:focus{outline:none;scroll-margin-top:100px}#enroll-code-message{overflow-wrap:anywhere}#enroll-code-send:disabled{opacity:.6}#enroll-verified{color:#286045}@media(max-width:760px){.enrollment-steps{gap:8px}.enrollment-steps li{padding:12px 10px;font-size:13px;line-height:1.7}.enrollment-steps span{display:flex;margin-bottom:6px}.enroll-review-notice{padding:18px}.enroll-phone-row{gap:8px}.enroll-phone-row button{padding:12px 10px;font-size:13px}.registration #enrollment-basic-form :is(input,select){font-size:16px}}

#enroll-review-notice:focus{outline:none}


.enroll-identity-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px}.enroll-identity-row>div{min-width:0}@media(max-width:480px){.enroll-identity-row{grid-template-columns:minmax(0,1fr) 96px;gap:10px}}

/* Course selection: status is readable in text as well as color. */
.enroll-course-fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.enroll-course-fieldset>legend{font-size:17px;font-weight:750;margin-bottom:5px}
.enroll-course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.enroll-course-card{appearance:none;display:flex;flex-direction:column;gap:5px;position:relative;text-align:left;min-width:0;padding:12px;border:1.5px solid #d9ceef;border-radius:12px;background:#fff;color:#302642;font:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.enroll-course-card:hover:not(:disabled){border-color:#7954bb;background:#faf7ff}
.enroll-course-card.is-selected{border:2px solid #7954bb;background:#f5efff;box-shadow:0 0 0 3px #7954bb12;padding:11.5px}
.enroll-course-card:focus-visible{outline:3px solid #ab84ed;outline-offset:3px}
.enroll-course-card.is-unavailable{background:#f3f4f6;border-color:#e3e4e8;color:#62636d;cursor:not-allowed;box-shadow:none;opacity:1}
.course-card-top{font-size:11px;letter-spacing:.04em;color:#77658c}
.course-card-title{font-size:15px;font-weight:750;line-height:1.45}
.course-card-date{font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;margin-top:2px}
.course-card-location{font-size:12px;line-height:1.5;color:#6e647c}
.course-card-status{align-self:flex-start;font-size:11px;font-weight:700;background:#e9ddfb;color:#624094;padding:3px 8px;border-radius:6px;margin-top:4px}
.is-unavailable .course-card-top,.is-unavailable .course-card-location{color:#73747d}
.is-unavailable .course-card-status{background:#e6e7eb;color:#60616b}
@media(max-width:999px){.enroll-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.enroll-course-card{padding:10px}.enroll-course-card.is-selected{padding:9.5px}.course-card-title{font-size:14px}}

.staff-contacts{display:grid;gap:14px;min-width:250px}
.staff-contact{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 0;border-bottom:1px solid #ffffff30}
.staff-contact h3{font-size:18px;margin:0;min-width:44px}
.contacts.staff-contacts a{display:inline;padding:0;border:0;font-size:15px;font-variant-numeric:tabular-nums}
.wechat-contact{border-radius:8px;padding:8px 12px;font-size:13px;color:#423155;background:#ffffffbb;border:1px solid #c4a43b}
.wechat-contact[hidden]{display:none}
.wechat-dialog{width:min(400px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:28px 24px;text-align:center;border:0;border-radius:20px;color:var(--ink)}
.wechat-dialog::backdrop{background:#17102299}
.wechat-dialog h2{font-size:21px;margin:12px 0 20px;padding-right:12px}
.wechat-close{position:absolute;right:10px;top:8px;background:transparent;color:var(--muted);font-size:30px;width:40px;height:40px}
#wechat-image img{display:block;max-width:100%;width:auto;height:auto;max-height:55dvh;object-fit:contain;margin:auto}
.wechat-dialog p{font-size:14px;line-height:1.7;color:var(--muted)}
#wechat-phone{display:inline-block;font-size:14px;color:var(--purple);padding:8px}
@media(max-width:600px){.staff-contacts{min-width:0}.staff-contact{gap:10px}.wechat-dialog{padding:22px 18px}}

/* Home accordion depth; registration uses its independent enroll-course-grid. */
#schedule .schedule-stack>.schedule-item:nth-child(4){z-index:0}
#schedule .schedule-stack>.schedule-item.is-open{z-index:4}
