/* Noto Sans KR stays consistent; size and weight carry the hierarchy. */
body{font-size:17px;font-weight:500;line-height:1.65}
h1,h2,h3{font-weight:700}
#main h2{font-size:40px;font-weight:700;line-height:1.4;letter-spacing:-1.35px}
#main h3{font-weight:700}
.detail-title{font-size:52px;font-weight:700;letter-spacing:-1.7px;line-height:1.35}
.brand b{font-size:29px}.brand small{font-size:12px;font-weight:500}
.desktop-nav{font-size:18px;font-weight:700}.header-caption{font-size:15px;font-weight:500}
.header-actions .button.small{font-size:17px;min-height:48px;font-weight:700}
.mobile-nav{font-size:18px;font-weight:700}
.section-kicker,#philosophy .section-kicker,#programs .section-kicker,.library-view .section-kicker{font-size:15px;font-weight:700;line-height:1.6}
.body-copy,#philosophy .body-copy{font-size:18px;line-height:1.95;font-weight:500}
.section-heading>p,#programs .section-heading>p{font-size:17px;line-height:1.85}
.section-heading .text-link,.text-link,#philosophy .text-link{font-size:17px;font-weight:700;line-height:1.5}
.program-quick b{font-size:19px;font-weight:700}.program-quick small{font-size:13px}
.quick-intro{font-size:19px;font-weight:500}.quick-intro strong{font-weight:700}
#philosophy .value-number{font-size:54px;font-weight:500}.value-number small,#philosophy .value-number small{font-size:15px;font-weight:500}
#philosophy .value-word{font-size:40px}.value p,#philosophy .value p{font-size:15px;line-height:1.8;font-weight:500}
#programs .program-card-copy h3{font-size:33px;font-weight:700}
#programs .program-card-copy p,#programs .program-secondary p{font-size:17px;line-height:1.85;font-weight:500}
#programs .program-card-copy>small{font-size:14px;font-weight:500}.program-tag,#programs .program-tag{font-size:14px;font-weight:700}
#programs .program-secondary h3{font-size:24px;font-weight:700}
.country-tabs button{font-size:19px;font-weight:700}.country-tabs button span{font-size:13px;font-weight:500}
.country-info>small{font-size:14px;font-weight:500}.country-info h3{font-size:34px;font-weight:700}
.country-info>p{font-size:17px;line-height:1.85}.country-tags span{font-size:13px;font-weight:500}.country-info .text-link{font-size:16px}
.letter-copy>p:not(.section-kicker){font-size:17px;line-height:1.9}.letter-copy .text-link{font-size:16px}.signature b{font-size:27px;font-weight:700}.signature span{font-size:14px}
.letter-caption{font-size:38px;font-weight:500}.letter-caption small{font-size:14px}
.journal-card h3{font-size:22px;line-height:1.65;font-weight:700}.journal-card>small{font-size:14px;font-weight:500}.journal-card>p{font-size:14px}.journal-image>span{font-size:13px;font-weight:700}.image-note{font-size:12px}
.interviews-lead{font-size:17px;line-height:1.9}.interview-preview>small{font-size:14px}.interview-preview h3{font-size:24px;font-weight:700}.interview-preview>p,.interview-preview ul{font-size:15px}.preview-link{font-size:16px;font-weight:700}
.process-grid h3{font-size:23px;font-weight:700}.process-grid p{font-size:16px;line-height:1.85}.process-grid small{font-size:16px;font-weight:700}
.contact-layout p{font-size:16px}.contact-layout h2{font-weight:700}.contact-layout .button{font-size:18px;font-weight:700}.contact-layout a{font-size:14px}
.footer-top>p,.footer-top>div{font-size:15px}.footer-bottom,.footer-bottom button{font-size:13px}.footer-top .brand b{font-size:27px}.footer-top .brand small{font-size:11px}
.detail-subtitle,.library-view .detail-subtitle{font-size:18px;line-height:1.9;font-weight:500}
.reading-content{font-size:17px;line-height:1.95;font-weight:500}
#main .reading-content h2{font-size:30px;margin-top:34px;margin-bottom:18px}#main .reading-content h3{font-size:25px}
.reading-content summary{font-size:20px;font-weight:700;line-height:1.6}.about-statement{font-size:29px;font-weight:700}
.detail-sidebar h3{font-size:23px;font-weight:700}.detail-sidebar p{font-size:16px}.detail-sidebar .button,.detail-sidebar>a{font-size:16px}
.interview-intro{font-size:17px}.interview-toolbar{font-size:17px}.interview-facts{font-size:16px}.interview-item h3{font-size:26px;font-weight:700}.interview-item details li{font-size:16px}.interview-item summary{font-size:17px;font-weight:700}
.library-view .library-controls input,.library-view .library-controls select{font-size:17px;min-height:56px}.library-view .library-count{font-size:16px}
#school-results .school-card-body h3{font-size:22px;font-weight:700;line-height:1.55;min-height:68px}.school-card-body>small{font-size:15px}.school-kind{font-size:14px}.school-read{font-size:16px;font-weight:500}.school-photo-credit{font-size:12px;flex-wrap:wrap}.school-resource{font-size:16px}
.school-pagination button,.school-pagination>span{font-size:16px}.country-guide>summary{font-size:19px;font-weight:700}.reading-content .guide-note{font-size:14px}
input,select,textarea{font-size:17px;min-width:0}form label{font-size:16px;font-weight:700}.dialog-description{font-size:16px}.dialog-top{font-size:14px}.form-note{font-size:14px}.button{font-size:17px;font-weight:700}.button.outline{font-weight:500}
dialog h2{font-size:30px;font-weight:700}#privacy-dialog p{font-size:16px}#consult-result h3{font-size:23px;font-weight:700}#consult-summary{font-size:15px;line-height:1.85}#consult-result .button,#edit-consult,#copy-status{font-size:16px}
@media(max-width:1200px){.desktop-nav{font-size:17px}.header-caption{font-size:14px}.program-quick b{font-size:18px}}
@media(max-width:1020px){.header-caption{font-size:13px}.program-quick b{font-size:17px}.program-quick small{font-size:12px}.value-number small,#philosophy .value-number small{font-size:13px}#philosophy .value p{font-size:14px}#programs .program-card-copy h3{font-size:29px}#programs .program-card-copy p{font-size:16px}}
@media(max-width:700px){
 body{font-size:16px}.brand b{font-size:23px}.brand small{font-size:10px}.header-actions .button.small{font-size:14px;padding:10px 12px;gap:10px;min-height:42px}.header-actions .search-trigger{width:28px}.header-inner{gap:8px}
 #main h2{font-size:31px;line-height:1.45;letter-spacing:-1px}.detail-title{font-size:36px;line-height:1.4}.section-kicker,#philosophy .section-kicker,#programs .section-kicker,.library-view .section-kicker{font-size:14px}
 .body-copy,#philosophy .body-copy,.section-heading>p,#programs .section-heading>p{font-size:16px}.text-link,.section-heading .text-link,#philosophy .text-link{font-size:16px}
 .program-quick b{font-size:16px}.program-quick small{font-size:11px}.quick-intro{font-size:16px}.program-quick{padding:13px 8px}.quick-intro{padding-left:8px}
 #philosophy .value-number{font-size:45px}#philosophy .value-word,#philosophy .value:last-child .value-number{font-size:31px}#philosophy .value p{font-size:13px}.value-number small,#philosophy .value-number small{font-size:12px;margin-left:8px}
 #programs .program-card-copy h3{font-size:30px}#programs .program-card-copy p,#programs .program-secondary p{font-size:16px}#programs .program-tag{font-size:13px}#programs .program-secondary h3{font-size:23px}
 .country-tabs{gap:22px}.country-tabs button{font-size:17px}.country-tabs button span{font-size:12px}.country-info h3{font-size:29px}.country-info>p,.letter-copy>p:not(.section-kicker){font-size:16px}.country-tags span{font-size:12px}
 .journal-card h3{font-size:22px}.journal-card>small,.journal-card>p{font-size:14px}.interviews-lead{font-size:16px}.interview-preview>p,.interview-preview ul{font-size:15px}.process-grid h3{font-size:20px}.process-grid p{font-size:15px}.process-grid{gap:30px 17px}
 .contact-layout .button{font-size:16px}.footer-top>div{font-size:14px;gap:15px}.footer-bottom,.footer-bottom button{font-size:12px}.footer-bottom{gap:12px}
 .detail-subtitle,.library-view .detail-subtitle,.reading-content,.interview-intro{font-size:16px}#main .reading-content h2{font-size:26px}.reading-content summary{font-size:18px}.detail-sidebar p,.detail-sidebar>a{font-size:15px}
 .interview-facts{font-size:15px}.interview-item h3{font-size:23px}.interview-item details li{font-size:15px}.interview-item summary{font-size:17px}.interview-toolbar{font-size:16px}.about-statement{font-size:24px}
 .library-view .library-controls input,.library-view .library-controls select{font-size:16px}.library-view .library-count{font-size:14px}#school-results .school-card-body h3{font-size:23px;min-height:0}.school-card-body>small{font-size:14px}.school-kind{font-size:13px}.school-photo-credit{font-size:12px}.school-pagination button,.school-pagination>span{font-size:15px}
 .form-row{grid-template-columns:1fr}dialog h2{font-size:26px}.dialog-description{font-size:15px}form label{font-size:15px}.form-note{font-size:13px}input,select,textarea{font-size:16px}#privacy-dialog p{font-size:15px}
}
@media(max-width:380px){.brand b{font-size:21px}.brand small{font-size:9px}.header-actions .search-trigger{display:none}.header-actions .button.small{font-size:13px}.program-quick b{font-size:15px}.program-quick small{font-size:10px}#philosophy .value-number small{font-size:11px;margin-left:5px}#philosophy .value:last-child .value-number{font-size:28px}}

/* Scroll scenes: headings lead, then images and cards enter in sequence. */
.reveal-target{opacity:0;transform:translate3d(0,64px,0);filter:blur(8px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms);will-change:transform,opacity}
.reveal-target.reveal-heading{transform:translate3d(0,45px,0);filter:blur(5px)}
.reveal-target.reveal-photo{clip-path:inset(8% 4% 8% 4%);transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,1,.3,1),filter 1s ease,clip-path 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-target.is-revealed{opacity:1;transform:translate3d(0,0,0);filter:blur(0);clip-path:inset(0 0 0 0);will-change:auto}
.scroll-progress{position:absolute;left:0;right:0;bottom:0;height:3px;pointer-events:none;overflow:hidden}
.scroll-progress>span{display:block;width:100%;height:100%;background:#37bfff;transform:scaleX(0);transform-origin:left center;transition:transform .12s linear}
@media(prefers-reduced-motion:reduce){.reveal-target,.reveal-target.reveal-heading,.reveal-target.reveal-photo{opacity:1;transform:none;filter:none;clip-path:none;transition:none;will-change:auto}.scroll-progress>span{transition:none}}
