/* ＆rich: the supplied symbol becomes a moving backdrop; photographs stand on their own. */
:root{--c-depth:var(--c-brand-tint6);--c-depth-ink:#2b2a28}
.sh__k{transform:translateX(var(--optical-offset,1px))}
.frame{padding-top:calc(90px + var(--tail));padding-bottom:145px}
.frame__in{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(50px,8vw,120px);align-items:center}
.frame__visual{position:relative;margin-top:45px}
.frame__visual .photo-slot{aspect-ratio:4/5;max-width:none;border-radius:4px;box-shadow:none}
.frame__visual .photo-slot img{object-position:47% 50%}
.frame__copy{position:relative;z-index:2}
.frame__copy .frame__vt{margin:0 0 40px auto;padding:0;font-size:clamp(26px,2.6vw,36px);line-height:1.8}
.frame__copy p{font-size:16px;font-weight:500;line-height:2;margin-top:24px}
.frame__mark--l{left:-28%;top:20%;width:46vw;opacity:.16}
.frame__mark--r{right:-25%;bottom:-15%;width:44vw;opacity:.22}

/* A single two-column chapter. The entire photo/copy sequence is readable without JS. */
.reasons{position:relative;isolation:isolate;background:var(--c-depth);color:var(--c-depth-ink);padding:0}
.reason-curves{position:sticky;top:0;height:100svh;margin-bottom:-100svh;overflow:hidden;pointer-events:none;z-index:0}
.reason-curve{position:absolute;inset:12% auto auto -18%;width:128%;height:78%;color:var(--c-primary);opacity:0;pointer-events:none;transition:opacity 850ms}
.reason-curve svg{display:block;width:100%;height:100%;mask-image:linear-gradient(180deg,transparent 0%,#000 20%,#000 65%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 20%,#000 65%,transparent 100%)}
.reason-curve.is-active{opacity:1}
.reason-curve--0{transform:rotate(-9deg);top:3%;height:85%}
.reason-curve--1{transform:rotate(-25deg);width:138%;height:100%;left:-25%;top:0}
.reason-curve--2{transform:rotate(12deg);width:120%;height:104%;left:-24%;top:10%}
.reason-curve--3{transform:rotate(-24deg);height:150%;width:100%;left:-12%;top:-35%}
.reason-curve--4{transform:rotate(27deg);width:140%;height:105%;left:-30%;top:5%}
.reason-layout{position:relative;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(65px,8vw,120px);padding-block:110px 95px;z-index:1}
.reason-rail{position:sticky;top:145px;align-self:start;min-width:0}
.reason-rail .sh{margin:0 0 72px}
.reason-rail .sh h2{font-size:clamp(27px,2.5vw,36px);line-height:1.6;letter-spacing:.025em;color:var(--c-depth-ink);white-space:nowrap}
.reason-rail .sh__k{color:var(--c-depth-ink);font-size:13px;margin-bottom:17px}
.reason-titles{display:none}
.reason-title{grid-area:1/1;visibility:hidden}
.reason-title.is-active{visibility:visible}
.reason-count{font-family:var(--ff-label);font-size:15px;letter-spacing:.13em;line-height:1.6;display:block}
.reason-title>p{font-size:clamp(26px,2.65vw,38px);font-weight:500;line-height:1.8;letter-spacing:.035em;margin-top:26px;text-wrap:balance}
.reason-name{display:block;font-size:15px;font-weight:500;margin-top:30px}
.reason-item{position:relative;min-height:calc(100svh - 90px);padding-bottom:115px;scroll-margin-top:110px}
.reason-item:last-child{padding-bottom:0}
.reason-item__heading{margin-bottom:28px}
.reason-item__heading h3{font-size:28px;color:inherit;margin-top:16px;line-height:1.8}
.reason-photo{aspect-ratio:5/4;border-radius:4px;box-shadow:none;background:var(--c-depth)}
.reason-photo img{object-position:var(--photo-position)}
.reason-item__copy{margin-top:30px;max-width:580px}
.reason-label{font:13px var(--ff-label);letter-spacing:.14em;display:block;margin-bottom:15px}
.reason-item__copy p{font-size:17px;font-weight:500;line-height:2;letter-spacing:.035em}
.reason-story-ready .reason-titles{display:grid}
.reason-story-ready .reason-item__heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:no-preference){
 .reason-story-ready .reason-curve.is-active{animation:curve-across 2600ms cubic-bezier(.25,.55,.3,1) both}
 .reason-story-ready .reason-curve--1.is-active{animation-name:curve-diagonal}
 .reason-story-ready .reason-curve--2.is-active{animation-name:curve-up}
 .reason-story-ready .reason-curve--3.is-active{animation-name:curve-diagonal}
 .reason-story-ready .reason-curve--4.is-active{animation-name:curve-back}
 /* The active title comes into focus like every other element (css/focus.css); the outgoing one fades in place. */
 .reason-story-ready .reason-title{opacity:0;transform:none;visibility:hidden;transition:opacity 220ms ease,visibility 0s 220ms}
 .reason-story-ready.is-in-view .reason-title.is-active{opacity:1;transform:none;visibility:visible;transition:opacity 0s,visibility 0s;animation:fx-focus 440ms cubic-bezier(.25,.5,.35,1) both}
}
@keyframes curve-across{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes curve-back{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
@keyframes curve-up{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes curve-diagonal{from{clip-path:polygon(100% 0,100% 0,100% 0)}to{clip-path:polygon(-100% 0,100% 0,100% 200%)}}


/* Aligned headings, confident body weight and unadorned photographs. */
.program-home{position:relative;background:var(--c-bg);padding-top:115px;padding-bottom:125px}
.program-home .sh__k{grid-column:1}.program-home .sh h2{grid-column:1;font-size:34px}
.program-home .sh__lead{grid-column:2;grid-row:1/span 2;align-self:end;margin:0;font-size:17px;font-weight:500;line-height:1.95}
.program-home p{font-weight:500;font-size:16px;line-height:1.95}
.program-home .more{margin-left:auto;display:flex;width:340px}

/* A warm paper spread, with restrained course headings and precisely aligned prices. */
.pricing-home{background:var(--c-brand-tint18);padding-block:100px 115px;position:relative}
.pricing-home .sh h2{font-size:34px}.pricing-home .sh__k{color:var(--c-text)}
.pricing-home .fee{gap:clamp(32px,5vw,70px)}
.pricing-home .fee__c{background:none;border:0;padding:0;color:var(--c-text)}
.pricing-home .fee__name{display:flex;gap:0;align-items:baseline;padding-bottom:24px;margin:0 0 10px;border-bottom:1px solid var(--c-brand-tint65)}
.pricing-home .fee__name b,.pricing-home .fee__name span{font-family:var(--ff-body);font-size:24px;font-weight:500;line-height:1.5;letter-spacing:.025em}
.pricing-home .fee__c dl>div{padding:18px 0;border-color:var(--c-brand-tint40)}
.pricing-home .fee__c dt,.pricing-home .fee__c dt b{font-family:var(--ff-body);font-size:15px;font-weight:500;letter-spacing:.015em;padding:0}
.pricing-home .fee__c dd{gap:6px}
.pricing-home .fee__c dd b{font-family:var(--ff-body);font-size:22px;font-weight:500;letter-spacing:.01em;line-height:1.4;font-variant-numeric:tabular-nums}
.pricing-home .fee__c dd span{font-size:14px;font-weight:500}
.pricing-home .fee__note{font-size:14px;font-weight:500;line-height:2;margin-top:36px;max-width:850px}
.pricing-home .more{margin-top:8px}

.staff-home{background:var(--c-bg-alt);margin:0;padding-block:100px 115px}
.staff-home .sh h2{font-size:34px}
.staff-home .staff{gap:32px;align-items:start}.staff-home .staff>div{padding-top:0}
.staff-home .staff__ph{border-radius:4px;box-shadow:none}
.staff-home .staff__r{font-weight:500}.staff-home .more{margin-left:auto;display:flex;width:340px}
.faq-home{padding-block:110px}.access-home{background:var(--c-bg-alt);padding-block:95px 110px}
.access-home .sh h2{font-size:34px}

@media(min-width:1024px) and (max-height:700px){.reason-rail{top:105px}.reason-rail .sh{margin-bottom:25px}.reason-title>p{font-size:27px;margin-top:18px}.reason-name{margin-top:18px}}
@media(max-width:1199px) and (min-width:1024px){.reason-layout{gap:55px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.reason-title>p{font-size:28px}}
@media(max-width:1023px){
 .frame{padding-bottom:100px}.frame__in{grid-template-columns:1fr 1fr;gap:40px}.frame__visual{margin-top:0}.frame__copy .frame__vt{font-size:26px}.frame__copy p{font-size:16px}
 .reason-layout{display:block;padding-block:0 85px}.reason-rail{top:70px;background:var(--c-depth);z-index:3;padding-block:22px 20px;margin-bottom:32px}.reason-rail .sh{margin:0}.reason-rail .sh h2{font-size:30px}.reason-rail .sh__k{margin-bottom:10px}.reason-story-ready .reason-titles{display:none}
 .reason-story-ready .reason-item__heading{position:static;width:auto;height:auto;margin:0 0 28px;overflow:visible;clip-path:none;white-space:normal}
 .reason-item{min-height:0;padding-bottom:80px;scroll-margin-top:225px}.reason-item__heading h3{font-size:27px;max-width:580px}.reason-photo{aspect-ratio:4/3}.reason-item__copy{max-width:none}
 .reason-curve{width:180%;left:-50%}.reason-curve--3{left:-55%;width:165%}
 .program-home{padding-block:85px 100px}.program-home>.wrap>.sh{column-gap:35px}.program-home .sh__lead{font-size:16px}
 .pricing-home .fee{gap:25px}.pricing-home .fee__name b,.pricing-home .fee__name span{font-size:22px}.pricing-home .fee__c dd b{font-size:20px}.staff-home .staff{gap:36px}
}
@media(max-width:767px){
 .frame{padding-top:calc(55px + var(--tail));padding-bottom:90px}.frame__in{display:flex;flex-direction:column;gap:42px;padding-inline:24px}.frame__visual{width:100%;margin:0}.frame__visual .photo-slot{aspect-ratio:5/4}.frame__copy .frame__vt{font-size:27px;margin:0 0 30px auto;writing-mode:vertical-rl;white-space:nowrap;text-align:left}.frame__copy p{font-size:16px;line-height:2}.frame__mark--l{top:8%;width:75vw;left:-45%}.frame__mark--r{right:-48%;width:80vw;bottom:3%}
 .reason-layout{padding-bottom:55px}.reason-rail{padding-block:17px;margin-bottom:30px}.reason-rail .sh h2{font-size:25px}.reason-rail .sh__k{font-size:13px;margin-bottom:8px}.reason-item{padding-bottom:65px}.reason-item__heading h3{font-size:24px;line-height:1.8;margin-top:16px}.reason-count{font-size:14px}.reason-photo{aspect-ratio:4/5}.reason-item__copy{margin-top:26px}.reason-item__copy p{font-size:16px;line-height:2}.reason-label{font-size:13px}
 .program-home{padding-block:75px 85px}.program-home>.wrap>.sh{display:block;margin-bottom:38px}.program-home .sh h2{font-size:29px}.program-home .sh__lead{margin-top:24px}.program-home .more{width:100%}
 .pricing-home{padding-block:75px 85px}.pricing-home .sh h2{font-size:29px}.pricing-home .fee{gap:35px}.pricing-home .fee__name{padding-bottom:18px}.pricing-home .fee__name b,.pricing-home .fee__name span{font-size:23px}.pricing-home .fee__c dd b{font-size:22px}.pricing-home .fee__c dl>div{padding:14px 0}.pricing-home .fee__note{margin-top:28px}
 .trial-home{padding-block:75px 85px}.trial-home .sh h2{font-size:29px}
 .staff-home{padding-block:75px 85px}.staff-home .sh h2{font-size:29px}.staff-home .staff{gap:30px 18px}.staff-home .staff>div{padding-top:0}.staff-home .more{width:100%}.staff-home .staff__r{font-size:13px;letter-spacing:0}
 .faq-home{padding-block:80px}.access-home{padding-block:75px 85px}.access-home .sh h2{font-size:28px}
}
@media(prefers-reduced-motion:reduce){.reason-curve,.reason-title>p{animation:none!important;transition:none!important}}

/* Light paper and a visibly grained symbol. Text sits above both texture layers. */
.reason-curves::before{content:"";position:absolute;inset:0;background-image:var(--grain);background-size:110px;opacity:.38;mix-blend-mode:multiply}
.reason-rail .sh__k,.reason-label{font-family:var(--ff-label);font-weight:500;letter-spacing:.025em}
.reason-count{font-family:var(--ff-label);font-size:16px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.reason-title>p,.reason-item__heading h3{letter-spacing:.015em;line-height:1.75}
.reason-item__copy p{letter-spacing:.02em}
.program-home>.wrap>.sh{display:grid;grid-template-columns:1fr 1fr;gap:0 72px;margin-bottom:42px}
.program-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.program-card{min-width:0;display:flex;flex-direction:column}
.program-card__photo{position:relative;margin-bottom:25px}
.program-card__photo .home-photo{aspect-ratio:16/10;border-radius:4px}
.program-card__tag{position:absolute;bottom:14px;left:14px;border-radius:3px;background:var(--c-bg);padding:5px 11px;font-size:13px;font-weight:500;color:var(--c-text)}
.program-card__body{flex:1;display:flex;flex-direction:column}
.program-card__en{font:500 14px/1.5 var(--ff-label);letter-spacing:.015em;margin-bottom:9px}
.program-card h3{font-size:24px;font-weight:500;line-height:1.6;letter-spacing:.015em;margin:0 0 20px}
.program-home .program-card__for{font-size:14px;line-height:1.9;margin:0 0 18px;min-height:3.8em}
.program-card__body>p{margin:0;font-size:16px;line-height:1.95;font-weight:500}
.program-home .program-card__time{font-size:14px;border-top:1px solid var(--c-line-strong);padding-top:16px;margin:24px 0 0}
.program-home .more,.staff-home .more{width:max-content;margin-left:auto;display:flex}
.pricing-home .fee{gap:36px;align-items:stretch}
.pricing-home .fee__c{padding:28px 30px;background:var(--c-bg);border-radius:4px}
.pricing-home .fee__name{margin:0 0 8px;padding-bottom:20px;border-color:var(--c-brand-tint40)}
.pricing-home .fee__name b{font-family:var(--ff-label);font-size:26px;letter-spacing:0;margin-right:3px}
.pricing-home .fee__name span{font-size:20px}
.pricing-home .fee__c dl>div{display:grid;grid-template-columns:4em max-content;justify-content:start;align-items:baseline;column-gap:26px;border:0;padding:12px 0}
.pricing-home .fee__c dd{display:flex;justify-content:flex-end;gap:5px;min-width:105px}
.pricing-home .fee__c dd b{font:500 24px/1.5 var(--ff-label);font-variant-numeric:tabular-nums;letter-spacing:0}
.trial-home{padding-block:100px;background:var(--c-bg)}
.trial-sheet{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.8fr);gap:80px;align-items:start}
.trial-sheet .sh{margin-bottom:27px}.trial-sheet .sh h2{font-size:34px}
.trial-sheet .flow__note{margin:0;font-size:16px;font-weight:500;line-height:1.95}
.trial-steps{list-style:none;padding:0;margin:0;border-top:1px solid var(--c-brand-tint40)}
.trial-steps li{display:grid;grid-template-columns:28px 170px minmax(0,1fr);gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--c-brand-tint40)}
.trial-step__number{font:500 14px/1.7 var(--ff-label);letter-spacing:0;color:var(--c-primary-text);font-variant-numeric:tabular-nums}
.trial-steps h3{font-size:20px;line-height:1.7;font-weight:500;letter-spacing:0;margin:0}
.trial-steps p{font-size:16px;line-height:1.9;font-weight:500;margin:0}
@media(max-width:1199px) and (min-width:1024px){.program-list{gap:26px}.program-card h3{font-size:21px}.pricing-home .fee__c{padding:24px 22px}.pricing-home .fee{gap:24px}.trial-sheet{gap:42px}.trial-steps li{grid-template-columns:24px minmax(0,1fr);gap:9px 18px}.trial-steps p{grid-column:2}}
@media(max-width:1023px){
 .program-list{grid-template-columns:1fr;gap:38px}.program-card{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:30px}.program-card__photo{margin:0}.program-card__photo .home-photo{aspect-ratio:4/3}.program-home .program-card__for{min-height:0;margin-bottom:12px}.program-card h3{font-size:24px;margin-bottom:16px}.program-home .program-card__time{margin-top:16px}
 .pricing-home .fee{grid-template-columns:1fr;gap:20px}.pricing-home .fee__c{display:grid;grid-template-columns:155px 1fr;gap:32px;padding:26px 30px}.pricing-home .fee__name{border:0;padding:8px 0;margin:0;align-self:start}.pricing-home .fee__c dl>div{grid-template-columns:4em max-content;column-gap:26px;padding:8px 0}
 .trial-sheet{grid-template-columns:1fr;gap:35px}.trial-sheet__intro{max-width:600px}.trial-steps li{grid-template-columns:28px 170px minmax(0,1fr)}
}
@media(max-width:767px){
 .program-home>.wrap>.sh{display:block;margin-bottom:34px}.program-card{display:flex;gap:0}.program-card__photo{margin-bottom:22px}.program-card__photo .home-photo{aspect-ratio:16/9;max-height:225px}.program-list{gap:42px}.program-card h3{font-size:23px}.program-card__en{font-size:13px}.program-home .program-card__for{font-size:14px;min-height:0}.program-home .more,.staff-home .more{margin-left:0}
 .pricing-home .fee__c{display:block;padding:24px}.pricing-home .fee__name{padding:0 0 16px;border-bottom:1px solid var(--c-brand-tint40);margin-bottom:10px}.pricing-home .fee__c dl>div{padding:10px 0;column-gap:26px}.pricing-home .fee__name b{font-size:25px}.pricing-home .fee__name span{font-size:20px}
 .trial-home{padding-block:75px 85px}.trial-sheet{gap:34px}.trial-sheet .sh h2{font-size:29px}.trial-steps li{grid-template-columns:25px minmax(0,1fr);gap:8px 18px;padding:25px 0}.trial-step__number{padding-top:4px}.trial-steps h3{font-size:21px}.trial-steps p{grid-column:2;font-size:16px}.trial-sheet__intro>p:last-child{margin-top:26px!important}
}

.program-card__photo{align-self:start;width:100%}
@media(min-width:1024px){.program-card__body>p{margin-bottom:24px}.program-home .program-card__time{margin-top:auto}}
.reason-curves::before{filter:grayscale(1)}
@media(max-width:1023px){
 .reason-rail{isolation:isolate;margin-inline:calc(-1 * var(--pad-x));padding-inline:var(--pad-x)}
 .reason-rail::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);background-size:110px;opacity:.38;filter:grayscale(1);mix-blend-mode:multiply}
}
