/* Visual alignment with the four approved section mockups, 2026-10-15. */
:root {
  --pink: #ff168d;
  --pink-button: #ec0078;
  --pink-text: #d50069;
  --paper: #faf9fe;
  --ink: #0d0d14;
  --muted: #5d657b;
  --section-space: clamp(88px, 8vw, 120px);
}
body { font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
h1, h2, h3 { font-family: var(--font-sans); }
h2 { font-weight: 850; letter-spacing: -.055em; line-height: 1.23; }
button, input, textarea, select { font-family: inherit; }
.home-page main h2 { font-size: clamp(36px, 4.25vw, 60px); font-weight: 880; }
.home-page main h2 em { color: var(--pink); }
.home-page .header nav { font-size: 15px; font-weight: 650; }
.home-page .wordmark strong { font-weight: 800; }
.home-page .section { min-height: 90svh; }
.heading-row p, .feature-heading p:not(.eyebrow), .inquiry-main-heading p { font-size: 20px; }
.eyebrow { font-size: 15px; font-weight: 700; }
.pink-button, .outline-button, .secondary-button { font-size: 16px; font-weight: 750; border-radius: 8px; min-height: 52px; }
.pink-button { box-shadow: 0 5px 18px #ff168d1c; }
.pink-button:hover { background: #d20069; }
.text-action { font-size: 16px; }

/* Video library: large portraits and a clear two-row gallery. */
.home-page .videos { background: #101016; }
.videos .heading-row { margin-bottom: 44px; }
.videos .heading-row h2 { font-size: clamp(38px, 4.8vw, 68px); }
.videos .filters button { min-width: 90px; font-weight: 700; }
.lecture-grid { gap: 36px 20px; }
.thumbnail { padding: 0; border-radius: 8px; }
.thumbnail>strong, .thumbnail .subject { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.thumbnail :is(img,.teacher-explain-video) { width: 95%; height: 230%; max-width: none; left: -9%; right: auto; top: -4%; bottom: auto; object-fit: contain; object-position: top; }
.thumbnail :is(img,.teacher-explain-video)[src$="teacher-notes.png"] { width: 85%; height: 180%; top: -12%; left: 0; }
.thumbnail::after { content: '✦'; position: absolute; right: 8%; top: 14%; font-size: 65px; color: #fffc; transform: rotate(12deg); }
.thumbnail.tone-0 { background: #ff9bc8; }
.thumbnail.tone-1 { background: #292b35; }
.thumbnail.tone-2 { background: #fce2ef; }
.thumbnail.tone-2::after { color: #ec3689; }
.thumbnail.tone-3 { background: #ff288f; }
.lecture h3 { text-align: center; font-size: 22px; font-weight: 750; margin-top: 15px; }
.video-pending { text-align: center; margin-top: 48px; font-size: 13px; color: #a09ca9; }

/* The teacher scene is artwork, while all headings remain selectable text. */
.home-page .section.teacher-section { grid-template-columns: 1.08fr 1fr; gap: 5%; background: var(--paper); padding-block: 80px; }
.teacher-art { min-height: 0; display: block; }
.teacher-art img, .teacher-art .teacher-desk-video { display: block; width: 100%; height: auto; max-width: none; margin: 0; border-radius: 0; mix-blend-mode: multiply; }
.teacher-copy h2 { font-size: clamp(34px, 3.55vw, 52px)!important; }
.teacher-copy h2 em { font-size: 1.2em; font-weight: 920; }
.teacher-copy .teacher-lead { font-size: 23px!important; font-weight: 650; line-height: 1.7; margin-top: 28px; }
.teacher-copy>p:last-of-type { font-size: 18px; }
.teacher-copy>p:not(.eyebrow):not(.teacher-lead):not(.teacher-cheer) { font-size: 18px; line-height: 1.8; color: #5f6383; }
.teacher-cta { margin-top: 28px; padding-inline: 28px; }
.teacher-copy .teacher-cheer { margin-top: 38px; color: #db5299; font-size: 19px; font-weight: 600; transform: rotate(-5deg); }

/* Timetable: the visual scale fits the recurring weekly grid in one section. */
.program-section { padding: 76px 0 66px; min-height: 100svh; align-content: center; }
.program-heading { min-height: 220px; margin-bottom: 0; }
.program-heading h2 { font-size: clamp(44px, 5.4vw, 76px)!important; }
.program-heading h2>span { display: block; font-size: .58em; margin-bottom: 8px; }
.program-heading p { font-size: 19px; margin-top: 15px; }
.schedule-character { width: 400px; max-width: 42%; height: 240px; overflow: hidden; position: relative; align-self: end; }
.schedule-character :is(img,.teacher-explain-video) { width: 260px; height: 350px; object-fit: cover; object-position: top; position: absolute; right: 0; top: 0; clip-path: none; }
.schedule-character>span { position: absolute; top: 30px; left: 0; z-index: 1; padding: 16px 22px; background: #fffc; border: 2px solid #ffd4eb; font-size: 17px; font-weight: 650; line-height: 1.5; }
.calendar-toolbar { margin-bottom: 14px; }
.calendar-toolbar>span { font-size: 14px; }
.campus-tabs button { min-width: 90px; font-size: 15px; font-weight: 650; }
.calendar-scroll { border-color: #d9d3f7; background: #ffffffa6; }
.day-name { height: 54px; font-size: 18px; }
.day-track { background: repeating-linear-gradient(to bottom, transparent 0, transparent 51px, #ebe9f6 51px, #ebe9f6 52px); }
.time-track>span { left: 12px; font-size: 12px; color: #787797; }
.class-block { padding: 9px 8px 6px 11px; gap: 3px; border-radius: 5px; }
.class-block strong { font-size: 16px; font-weight: 750; }
.class-block>span { font-size: 12px; }
.class-block .class-time { font-size: 12px; }
.class-block small { font-size: 10px; }
.section-foot .small-note { font-size: 13px; }

/* Achievement plaques: decorative badges do not imply student ranking. */
.honors-section { background: #0c0c14; isolation: isolate; overflow: hidden; min-height: 100svh; }
.honors-section::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(#0c0c14c9,#0c0c14ed),url('assets/news-space.png') center/cover; }
.honors-section::after { content: ''; position: absolute; z-index: -1; width: 850px; height: 300px; border: 1px solid #fa67bd36; border-radius: 50%; transform: rotate(-35deg); right: -100px; top: 210px; }
.honors-section .feature-heading { margin-bottom: 70px; }
.honors-grid { gap: 30px; padding-inline: 30px; }
.honor-card { overflow: visible; border-color: #928a9f; background: #101019de; border-radius: 15px; min-height: 510px; padding: 38px 27px 26px; gap: 13px; }
.honor-card:first-child { border: 2px solid #ff62b3; box-shadow: 0 0 7px #ff168d,0 0 25px #ff168d8a,inset 0 0 18px #ff168d25; }
.achievement-medal { position: absolute; top: -31px; left: calc(50% - 31px); width: 62px; height: 62px; border: 3px solid #ffe6ac; border-radius: 50%; display: grid; place-items: center; color: #fff7d9; font-size: 35px; background: linear-gradient(135deg,#fff0ac,#eeb342 45%,#b97124); box-shadow: 0 2px 0 #7e4824,0 5px 15px #0006,inset 0 0 0 4px #fff4; }
.achievement-medal::before,.achievement-medal::after { content: '❧'; position: absolute; top: 16px; left: -25px; font-size: 36px; color: #e6b956; transform: rotate(-30deg); }
.achievement-medal::after { left: auto; right: -25px; transform: scaleX(-1) rotate(-30deg); }
.honor-card:nth-child(3n+2) .achievement-medal { background: linear-gradient(135deg,#fff,#bcbfc8 45%,#737684); border-color: #e0e1e7; }
.honor-card:nth-child(3n+3) .achievement-medal { background: linear-gradient(135deg,#ffdacb,#bd8b75 45%,#775347); border-color: #dfb8a5; }
.honor-orbit { display: none; }
.honor-top { order: 4; }
.honor-portrait { width: 145px; height: 145px; margin: 2px auto 0; background: #d6d6e0; flex-shrink: 0; }
.portrait-placeholder { position: relative; width: 100%; height: 100%; display: block; overflow: hidden; }
.portrait-placeholder i { position: absolute; left: 34%; top: 16%; width: 32%; height: 37%; border-radius: 50%; background: #a7a7b1; }
.portrait-placeholder b { position: absolute; left: 17%; top: 48%; width: 66%; height: 65%; border-radius: 50% 50% 0 0; background: #a7a7b1; }
.portrait-placeholder small { position: absolute; bottom: 15px; left: 0; width: 100%; color: #fff; font-size: 13px; font-weight: 600; }
.honor-name { font-size: 23px; font-weight: 750; }
.honor-card>strong { font-size: clamp(50px,5.5vw,80px); color: #ff2995; font-weight: 850; letter-spacing: -.05em; }
.honor-exam { font-size: 17px; border-color: #a58baf; }
.honor-story { order: 5; font-size: 16px; color: #e4d4e6; line-height: 1.75; }
.honor-read { order: 6; font-size: 13px; padding-top: 8px; }
.privacy-caption { font-size: 12px; }

/* Notes: centered heading, illustration on the left, three readable links. */
.home-page .section.notes { display: grid; grid-template-columns: .95fr 1.05fr; gap: 48px 65px; background: var(--paper); min-height: 100svh; }
.notes-heading { grid-column: 1/-1; text-align: center; }
.notes-heading p { margin-top: 20px; font-size: 20px; }
.notes-art { align-self: center; min-width: 0; }
.notes-art img { width: 100%; height: auto; mix-blend-mode: multiply; }
.notes-art p { color: var(--pink-text); font-size: 19px; font-weight: 650; text-align: center; transform: rotate(-5deg); margin: 8px 0 20px; }
.notes-articles { align-self: center; }
.notes .article-row { position: relative; padding: 30px 40px 30px 0; border-color: #dcd6e3; }
.notes .article-row:first-child { padding-top: 0; border-top: 0; }
.notes .article-row:last-child { border-bottom: 0; }
.notes .article-row>span:first-child { padding: 5px 17px; font-size: 13px; font-weight: 700; background: #ffd3e9; color: #c2005e; }
.notes .article-row h3 { font-size: 24px; font-weight: 750; margin: 14px 0 10px; line-height: 1.4; }
.notes .article-row p { font-size: 17px; color: #686779; line-height: 1.65; }
.notes .article-row .read { position: absolute; right: 0; top: 61px; font-size: 31px; color: var(--ink); }
.notes .article-row:first-child .read { top: 31px; }

.news-section { background: #14141b; align-content: center; }
.news-section .feature-heading { margin-bottom: 48px; }
.news-section .feature-heading .eyebrow { display: none; }
.news-grid { gap: 28px; }
.news-card { background: #15151c; border-color: #33313b; border-radius: 12px; }
.news-art { aspect-ratio: 1.4; }
.news-art::before,.news-art::after { display: none; }
.news-copy { padding: 23px; }
.category-tag { border-radius: 20px; font-size: 13px; background: #7b1448; }
.news-copy h3 { font-size: 25px; font-weight: 750; margin-top: 16px; }
.news-copy>p { font-size: 17px; line-height: 1.65; }
.news-meta { font-size: 13px; }
.reviews-heading h2 { font-size: clamp(32px,3.8vw,54px)!important; }
.reviews-heading>p:last-child { font-size: 19px; }
.review-card { font-family: var(--font-sans); }
.review-write { font-size: 17px; border-radius: 8px; }

/* Inquiries: larger public titles and an organic word cloud. */
.inquiries-section { align-content: center; padding-block: 110px; }
.inquiry-main-heading { margin-bottom: 75px; }
.inquiry-main-heading h2 { font-size: clamp(35px,4.15vw,58px)!important; }
.inquiry-layout { grid-template-columns: .35fr .65fr; gap: 38px; }
.keyword-panel { padding-right: 28px; border-color: #ffd7ed; }
.keyword-panel h3,.board-heading h3 { font-size: 33px; font-weight: 800; }
.keyword-panel>p { font-size: 17px; }
.keyword { font-weight: 850; line-height: 1.15; }
.keyword:nth-child(3n+1) { color: #f5007c; }
.keyword-cloud { height: 390px; margin-top: 30px; }
.keyword-0 { top: 60px; left: 1%; transform: rotate(-5deg); }
.keyword-1 { top: 155px; left: 13%; }
.keyword-2 { top: 230px; right: 0; transform: rotate(-7deg); }
.keyword-3 { top: 240px; left: 0; transform: rotate(-9deg); }
.keyword-4 { top: 305px; left: 12%; }
.keyword-5 { top: 165px; right: 0; }
.keyword-8,.keyword-9 { top: 365px; }
.keyword-panel .small-note { font-size: 13px; line-height: 1.7; }
.board-heading { margin-bottom: 16px; }
.board-heading .text-action { font-size: 16px; }
.inquiry-row { font-size: 17px; min-height: 78px; padding: 19px 22px; gap: 16px; grid-template-columns: minmax(0,1fr) 80px 94px; }
.inquiry-title { font-weight: 550; line-height: 1.55; }
.inquiry-author { font-size: 15px; color: #65708a; }
.inquiry-row.table-head { font-size: 15px; min-height: 55px; }
.answer-state { font-size: 13px; padding: 5px 12px; }
.board-footer .small-note { font-size: 13px; }
.board-footer .pink-button { min-width: 185px; font-size: 19px; }

/* Contact restores the large headline and white conversation panel. */
.home-page .contact-section { background: #ff168d; padding-block: 90px; min-height: 62svh; }
.contact-inner { gap: 60px; }
.contact-inner h2 { font-size: clamp(40px,4.4vw,64px)!important; font-weight: 900; }
.contact-inner .eyebrow { display: none; }
.contact-subtitle { font-size: 23px; font-weight: 650; margin-top: 20px; }
.contact-inner .location-tabs { gap: 18px; margin-top: 30px; }
.contact-inner .location-tabs button { padding: 9px 24px; border: 1px solid #291325; border-radius: 30px; font-size: 17px; }
.contact-inner .location-tabs button.active { padding: 9px 24px; border-radius: 30px; }
.contact-inner #location-title { font-size: 20px; margin-top: 20px; }
.contact-inner #location-address { font-size: 15px; }
.contact-action { width: 43%; min-width: 340px; padding: 44px 38px; border-radius: 16px; background: #fffbfd; }
.contact-action>div { width: 100%; }
.contact-action h3 { font-size: 28px; line-height: 1.4; font-weight: 850; letter-spacing: -.05em; }
.contact-action .contact-invite { font-size: 17px; margin: 12px 0 22px; color: #606c82; }
.contact-action #phone { display: block; font-size: 20px; }
.contact-action #phone-note { font-size: 13px; }
.contact-action button { width: 100%; font-size: 19px; min-height: 58px; border-radius: 8px; margin-top: 24px; text-align: center; justify-content: center; }
.contact-bubbles { display: block; position: relative; width: 100px; height: 65px; margin-bottom: 24px; }
.contact-bubbles i { font-style: normal; position: absolute; left: 0; top: 8px; border: 3px solid #181723; border-radius: 50%; width: 58px; height: 45px; line-height: 30px; text-align: center; font-size: 38px; background: #fffbfd; z-index: 1; }
.contact-bubbles b { position: absolute; right: 4px; top: 0; width: 55px; height: 43px; border-radius: 50%; background: #ffb1d8; }
.contact-bubbles i::after { content: ''; position: absolute; bottom: -7px; left: 6px; width: 12px; height: 12px; border-left: 3px solid #181723; transform: skew(-25deg); background: #fffbfd; }
.admin-page h1,.board-page h1 { font-weight: 850; }
.admin-page .admin-brand strong,.admin-page .admin-login-brand strong { font-weight: 850; }

@media (max-width:1100px) {
  .home-page .header nav { font-size: 13px; }
  .teacher-copy .teacher-lead { font-size: 20px!important; }
  .honors-grid { padding-inline: 0; }
  .honor-card { padding-inline: 20px; }
  .notes .article-row h3 { font-size: 21px; }
  .notes .article-row p { font-size: 15px; }
  .inquiry-layout { grid-template-columns: .32fr .68fr; gap: 25px; }
  .keyword { font-size: calc(var(--weight)*.74); }
  .inquiry-row { font-size: 15px; padding-inline: 15px; grid-template-columns: minmax(0,1fr) 65px 85px; gap: 12px; }
  .inquiry-author { font-size: 13px; }
  .answer-state { font-size: 12px; padding-inline: 8px; }
  .keyword-panel h3,.board-heading h3 { font-size: 29px; }
  .contact-inner { gap: 30px; }
  .contact-action { padding: 30px; }
}
@media (min-width:901px) and (max-width:1100px) {
  .lecture-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .lecture h3 { font-size: 18px; }
  .keyword-7 { top: 0; right: 0; }
  .keyword-0 { top: 75px; }
}
@media (max-width:900px) {
  .home-page .section.teacher-section { gap: 30px; }
  .teacher-copy h2 { font-size: 32px!important; }
  .teacher-copy .teacher-lead { font-size: 18px!important; }
  .teacher-copy>p:not(.eyebrow):not(.teacher-lead):not(.teacher-cheer) { font-size: 15px; }
  .teacher-copy .teacher-cheer { font-size: 15px; }
  .home-page .section.notes { column-gap: 30px; }
  .notes-art p { font-size: 15px; }
  .inquiry-layout { grid-template-columns: 1fr; gap: 42px; }
  .keyword-panel { border: 0; padding: 0; }
  .keyword-cloud { max-width: 480px; height: 390px; }
  .keyword { font-size: var(--weight); }
  .news-copy { padding: 20px; }
  .news-copy h3 { font-size: 21px; }
  .news-copy>p { font-size: 15px; }
  .news-meta { font-size: 11px; gap: 8px; }
  .contact-action { width: 100%; max-width: 520px; }
}
@media (max-width:650px) {
  :root { --section-space: 76px; }
  .home-page main h2 { font-size: 34px; }
  .home-page .section { min-height: auto; }
  .heading-row p,.feature-heading p:not(.eyebrow),.inquiry-main-heading p { font-size: 16px; }
  .pink-button,.outline-button,.secondary-button { font-size: 14px; min-height: 48px; }
  .videos .heading-row h2 { font-size: 36px; }
  .videos .filters button { min-width: 75px; }
  .lecture h3 { font-size: 17px; }
  .thumbnail::after { font-size: 40px; }
  .video-pending { font-size: 12px; line-height: 1.7; }
  .home-page .section.teacher-section { grid-template-columns: 1fr; padding-top: 55px; }
  .teacher-art { min-height: 0; max-width: 440px; }
  .teacher-art img, .teacher-art .teacher-desk-video { margin: 0; height: auto; max-width: 100%; }
  .teacher-copy h2 { font-size: 36px!important; }
  .teacher-copy .teacher-lead { font-size: 20px!important; }
  .teacher-copy .teacher-cheer { margin-top: 28px; font-size: 16px; }
  .program-section { padding-block: 70px; min-height: auto; }
  .program-heading { min-height: 155px; margin-bottom: 20px; gap: 0; }
  .program-heading h2 { font-size: 43px!important; }
  .program-heading h2>span { font-size: .52em; }
  .program-heading p { font-size: 14px; max-width: 210px; }
  .schedule-character { width: 115px; height: 155px; max-width: 32%; }
  .schedule-character :is(img,.teacher-explain-video) { width: 145px; height: 195px; right: -12px; }
  .schedule-character>span { display: none; }
  .campus-tabs button { min-width: 0; font-size: 13px; }
  .calendar-toolbar>span { font-size: 12px; }
  .section-foot .small-note { font-size: 12px; }
  .honors-section .feature-heading { margin-bottom: 60px; }
  .honors-grid { gap: 54px; padding-inline: 8px; }
  .honor-card { min-height: 0; grid-template-columns: 100px 1fr; padding: 40px 24px 24px; gap: 13px 20px; }
  .honor-portrait { width: 100px; height: 100px; grid-column: 1; grid-row: 1/4; }
  .honor-name { font-size: 21px; grid-row: 1; }
  .honor-card>strong { font-size: 49px; grid-row: 2; }
  .honor-exam { font-size: 16px; }
  .honor-top { grid-column: 1/-1; }
  .honor-story { font-size: 15px; }
  .home-page .section.notes { grid-template-columns: 1fr; gap: 30px; min-height: auto; }
  .notes-heading { text-align: left; }
  .notes-heading h2 { max-width: 330px; }
  .notes-heading p { font-size: 16px; margin-top: 16px; }
  .notes-art { max-width: 330px; margin: auto; }
  .notes .article-row { padding: 27px 30px 27px 0; }
  .notes .article-row h3 { font-size: 21px; }
  .notes .article-row p { font-size: 16px; }
  .notes .article-row .read { font-size: 26px; }
  .news-section .feature-heading { margin-bottom: 35px; }
  .news-art { aspect-ratio: 1.5; }
  .news-copy { padding: 25px; }
  .news-copy h3 { font-size: 25px; }
  .news-copy>p { font-size: 17px; }
  .news-meta { font-size: 13px; }
  .reviews-heading h2 { font-size: 30px!important; }
  .reviews-heading>p:last-child { font-size: 16px; }
  .inquiries-section { padding-block: 76px; }
  .inquiry-main-heading { margin-bottom: 45px; }
  .inquiry-main-heading h2 { font-size: 35px!important; }
  .keyword-panel h3,.board-heading h3 { font-size: 28px; }
  .keyword-cloud { max-width: 345px; height: 380px; }
  .keyword { font-size: calc(var(--weight)*.85); }
  .keyword-7 { right: 12%; }
  .keyword-10 { top: 120px; right: 0; }
  .keyword-11 { top: 305px; right: 0; left: auto; }
  .board-heading .text-action { font-size: 14px; }
  .inquiry-row { grid-template-columns: minmax(0,1fr) 76px; padding: 18px 14px; gap: 9px 12px; }
  .inquiry-row .inquiry-title { font-size: 15px; }
  .inquiry-row .inquiry-author { font-size: 12px; }
  .inquiry-row .answer-state { font-size: 11px; }
  .inquiry-row.table-head { font-size: 13px; }
  .board-footer .pink-button { font-size: 17px; }
  .contact-inner h2 { font-size: 44px!important; }
  .contact-subtitle { font-size: 18px; }
  .contact-action { min-width: 0; padding: 30px 24px; }
  .contact-action h3 { font-size: 25px; }
  .contact-action .contact-invite { font-size: 16px; }
  .contact-action button { font-size: 17px; }
}
