/* The score: shared craft, two distinct tempos. Local index preview only. */
:root{--phrase:cubic-bezier(.22,.68,.12,1);--tempo:850ms}
html[data-variant=C]{--tempo:1200ms}
html{scroll-behavior:auto}
/* Touch screens settle near a scene boundary; tall scenes remain freely readable.
   Snap the entire section (not just its heading) so long content is accessible. */
@media(max-width:800px),(pointer:coarse){
 html{scroll-snap-type:y proximity}
 .scene{scroll-snap-align:start;scroll-snap-stop:normal}
 html.paused,html:has(body.menu-open,body.chat-open,.phone-dialog[open],#site-inquiry-modal,.variant-picker:not([hidden])){scroll-snap-type:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}}
.site-header{height:84px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header nav a{opacity:.64;transition:opacity .25s,color .25s}
.site-header nav a:is(:hover,:focus-visible,[aria-current]){opacity:1}
.site-header nav a:after{height:2px;bottom:3px;transform-origin:center}
.site-header .header-contact{font-family:var(--sans);font-weight:700;font-size:15px;gap:17px}
.site-header .brand-name{font-size:20px}
html[data-variant] .scene>.chapter{font-size:12px;letter-spacing:.06em;line-height:1.6}
html[data-variant] #staff-canvas{opacity:1;z-index:2}
html[data-variant] .ambient{display:block;opacity:.09;transition:opacity 1s}
.ambient i{background:var(--active-color);filter:blur(75px)}
.ambient i:nth-child(2){background:#bd9b56}
.ambient i:nth-child(3){background:#588978}
html[data-surface=light] .ambient{opacity:.045}
.scene :is(.about-layout,.admission-layout,.faculty-directory,.program-layout,.news-layout,.branch-list,.contact-main){transform:translate3d(0,var(--content-drift,0px),0)}
.scene .chapter{transform:translate3d(0,var(--label-drift,0px),0)}
.reveal-media{overflow:hidden}
.reveal-media img{transform:scale(1.055) translate3d(0,var(--image-drift,0px),0);will-change:transform}
.text-link,.faculty-full-link{position:relative}
.text-link:after,.faculty-full-link:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--scene-color,currentColor);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--phrase)}
.text-link:is(:hover,:focus-visible):after,.faculty-full-link:is(:hover,:focus-visible):after{transform:scaleX(1);transform-origin:left}

/* Wordmark on a quiet stage; the five pigments belong to the same score. */
[data-variant=B] .brand-stage{position:relative;transform:translate3d(0,var(--brand-drift,0px),0)}
[data-variant=B] .hero-b h1{font-size:clamp(38px,5.2vw,84px);letter-spacing:-.024em}
[data-variant=B] .brand-subline{font-size:19px;letter-spacing:.025em;color:#b6b5ae;margin-top:34px}
.brand-pigments{gap:10px;margin-top:36px}
.brand-pigments i{height:3px;transform-origin:center;animation:pigment-breath 9s ease-in-out infinite}
.brand-pigments i:nth-child(2){animation-delay:-1.2s}.brand-pigments i:nth-child(3){animation-delay:-2.4s}.brand-pigments i:nth-child(4){animation-delay:-3.6s}.brand-pigments i:nth-child(5){animation-delay:-4.8s}
@keyframes pigment-breath{0%,100%{transform:scaleX(.78);opacity:.65}50%{transform:scaleX(1);opacity:1}}
.brand-baseline{font-size:11px}
.brand-baseline a{display:flex;gap:24px;align-items:center;font-size:14px}
.brand-baseline a span{font-size:20px}
[data-variant=C] .paper-hero-grid figure{padding:12px;overflow:hidden;border-color:#82745d44;transform:translate3d(0,var(--brand-drift,0px),0)}
[data-variant=C] .paper-hero-grid figure img{filter:grayscale(.3);transform:scale(1.045) translate3d(0,var(--image-drift,0px),0)}
[data-variant=C] .paper-kicker{font-size:12px;letter-spacing:.04em}
[data-variant=C] .paper-baseline{font-size:10px;letter-spacing:.11em}

/* An editorial opening spread, framed by a restrained line of pigment. */
html[data-variant] .about-photo{border-radius:0;border-bottom:4px solid var(--scene-color);max-height:none}
html[data-variant] .about-word h2{font-size:clamp(44px,5.15vw,82px);line-height:1.32;letter-spacing:-.025em}
html[data-variant] .about-word em{color:inherit;text-decoration:none;position:relative}
.about-word em:after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:3px;background:var(--scene-color);transform:scaleX(var(--reveal,1));transform-origin:left}
html[data-variant] .about-note p{font-size:17px;line-height:1.9;max-width:390px}
[data-variant=C] .about-layout{grid-template-columns:1.1fr 1.1fr;column-gap:7vw;row-gap:30px}
[data-variant=C] .about-word{grid-column:1;grid-row:1}
[data-variant=C] .about-photo{grid-column:2;grid-row:1/3;height:min(52vh,560px);align-self:stretch}
[data-variant=C] .about-note{grid-column:1;grid-row:2;align-self:end;padding:0}
[data-variant=C] .heritage-number{display:none}
html[data-variant] .admission-large{font-family:var(--wordmark);font-size:clamp(96px,14vw,212px);font-weight:900;letter-spacing:-.065em;line-height:1.15}
html[data-variant] .admission-large span{display:inline-block;margin-left:7px;color:#aa8e53!important;-webkit-text-stroke:0;font-family:var(--sans);font-weight:400;vertical-align:10%}
.admission-steps>div{transition:border-color .3s}
.admission-steps h3{font-size:24px}.admission-steps p{font-size:14px;line-height:1.8;max-width:280px;opacity:.8}

/* The faculty gallery uses instruments, with stable text and precise tab colors. */
html[data-variant] .faculty-directory{grid-template-columns:1fr 1fr;gap:7vw}
.faculty-heading{margin-bottom:25px}
html[data-variant] .faculty-heading h2{font-size:clamp(38px,4.3vw,66px)}
.faculty-tabs{align-self:stretch;display:flex;flex-direction:column}
html[data-variant] .faculty-tab{flex:1;min-height:57px;padding-top:17px;padding-bottom:17px}
html[data-variant] .faculty-tab strong{font-size:clamp(17px,1.7vw,25px);line-height:1.55}
.faculty-detail{justify-content:flex-start;padding:0 0 18px}
.faculty-media{height:clamp(170px,24vh,300px);margin-bottom:20px;border-bottom:3px solid var(--discipline);background:#201f1d}
.media-stack{position:relative;overflow:hidden;isolation:isolate}
.media-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .65s var(--phrase),transform 1.3s var(--phrase);pointer-events:none}
.media-stack img.is-selected{opacity:1;transform:scale(1);z-index:1}
[data-variant=B] .faculty-media img{filter:grayscale(1)}
[data-variant=C] .faculty-media img{filter:saturate(.58)}
.faculty-media img[src*="microphone"]{object-position:50% 43%}
.faculty-media img[src*="piano"],.faculty-media img[src*="black-score"]{object-position:50% 55%}
.faculty-media img[src*="guitar"]{object-position:50% 52%}
.faculty-detail-top{font-family:var(--sans);font-size:11px;letter-spacing:.1em;opacity:.65}
html[data-variant] .faculty-detail h3{font-size:clamp(28px,3vw,46px);margin:12px 0 12px;line-height:1.4;text-wrap:initial}
html[data-variant] .faculty-detail dl{font-size:15px;line-height:1.7;margin:0 0 10px}
.faculty-detail dl>div{padding:3px 0}
.faculty-full-link{max-width:none;font-size:14px;padding:9px 0}
.faculty-staff{display:none}
.faculty-tab[aria-selected=true]>span{transform:rotate(0)}

html[data-variant] .program-layout{grid-template-columns:1fr 1.15fr;column-gap:7vw;row-gap:28px}
html[data-variant] .program-heading{display:flex;grid-column:1/-1;align-items:baseline;justify-content:space-between;margin-bottom:0}
.program-heading p{font-size:16px!important}
html[data-variant] .program-image{height:clamp(225px,34vh,420px);border-bottom:3px solid var(--course-color)}
[data-variant=B] .program-image{border-color:var(--course-light)}
html[data-variant] .program-row strong{font-size:clamp(27px,3vw,43px)}
html[data-variant] .program-row{padding:22px 18px}
.program-row strong{transition:transform .5s var(--phrase)}
.program-row.selected strong{padding-left:0!important;transform:translateX(5px)}
.program-detail .program-number{font-size:11px;margin:17px 0 7px}
html[data-variant] .program-detail h3{font-size:30px}
html[data-variant] .program-detail p{font-size:16px;margin:6px 0}
.program-detail .text-link{font-size:14px;padding:9px 0}

/* News reads as a publication; member-only rows retain their lock. */
.news-item{position:relative}
.news-item:before{content:'';position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--scene-color);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--phrase)}
.news-item:is(:hover,:focus-visible):before{transform:scaleX(1)}
.news-expanded .news-item{transition:background .35s,padding .35s}
html[data-variant] .news-expanded .news-item:hover{background:color-mix(in srgb,var(--scene-color) 5%,transparent)}
.news-expanded .news-item h3{font-size:21px;line-height:1.65}
.news-expanded .news-date{font-size:12px}
.news-expanded .news-tag{font-size:12px}
.branch-list{gap:30px}
html[data-variant] .branch{--branch-color:#b94a39}
html[data-variant] .branch:nth-child(2){--branch-color:#438a75}
html[data-variant] .branch:nth-child(3){--branch-color:#bd984b}
html[data-variant] .branch .branch-title{border-bottom:3px solid var(--branch-color);padding-bottom:18px;margin-bottom:15px}
html[data-variant] .branch .branch-title>span{color:var(--branch-color);opacity:1}
.branch-photo{height:clamp(200px,31vh,360px)}
.branch-photo img{transition:filter .75s,transform 1.1s var(--phrase)}
[data-variant=B] .branch-photo:is(:hover,:focus-visible) img{filter:grayscale(.1);transform:scale(1.08)}
html[data-variant] .branch>p{font-size:15px;line-height:1.8;min-height:3.6em}
html[data-variant] .branch-tel{font-size:20px}
.contact-circle{transition:background .35s,color .35s,box-shadow .35s!important}
.contact-circle>span{transition:transform .5s var(--phrase)}
.contact-circle:hover>span{transform:translate(4px,-4px)}
[data-variant=B] .contact-circle:hover{box-shadow:0 0 0 9px #edc34f14}

/* A compact, fully operable scene rail. */
.scene-index{right:14px;transform:translateY(-50%);mix-blend-mode:normal;color:var(--rail-ink,#eeede7);font:10px var(--sans);text-align:center}
html[data-surface=light] .scene-index{--rail-ink:#353530}
.scene-index>div{height:auto;width:28px;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;margin:15px auto}
.scene-index a{display:flex;align-items:center;justify-content:center;width:28px;height:25px;position:relative}
.scene-index a i{position:static!important;display:block;width:8px;height:1px;background:currentColor;opacity:.35;transition:width .4s,background .4s,opacity .4s}
.scene-index a[aria-current] i{width:23px;height:3px;background:var(--rail-color);opacity:1}
.scene-index a span{position:absolute;right:35px;white-space:nowrap;background:#f5f3ed;color:#302d28;border:1px solid #302d2822;padding:5px 10px;opacity:0;transform:translateX(5px);pointer-events:none;transition:opacity .2s,transform .2s;font-size:13px}
.scene-index a:is(:hover,:focus-visible) span{opacity:1;transform:none}
.scene-index a:is(:hover,:focus-visible) i{width:23px;background:var(--rail-color);opacity:1}
/* Pointer indicates action without a trailing trail or covering text. */
html[data-variant] .custom-cursor{width:26px;height:26px;border:1px solid color-mix(in srgb,var(--cursor-ink) 45%,transparent);border-radius:50%;background:none;transition:width .2s,height .2s,border-color .2s;mix-blend-mode:normal;z-index:160}
html[data-variant] .custom-cursor .cursor-point{position:absolute;left:50%;top:50%;width:3px;height:3px;transform:translate(-50%,-50%);border-radius:50%;background:var(--cursor-color,var(--active-light))}
html[data-variant] .custom-cursor .cursor-staff{display:none}
html[data-variant] .custom-cursor.active{width:36px;height:36px;border-color:var(--cursor-color,var(--active-light))}
html[data-variant] .custom-cursor>span{left:36px;top:25px;background:#262521;color:#faf7ef;font-size:11px;padding:3px 10px;border-radius:0;letter-spacing:0}
html[data-surface=dark] .custom-cursor>span{background:#f1eee5;color:#292824}
html[data-variant].paused :is(.brand-pigments i,.ambient i){animation-play-state:paused}

@media(min-width:801px) and (max-height:820px){
 html[data-variant] .scene{padding-top:108px;padding-bottom:90px}
 html[data-variant] .scene>.chapter{margin-bottom:22px}
 html[data-variant] .faculty-heading{margin-bottom:17px}
 .faculty-media{height:155px;margin-bottom:12px}
 html[data-variant] .faculty-detail h3{font-size:30px;margin:7px 0}
 html[data-variant] .faculty-tab{min-height:50px;padding-top:12px;padding-bottom:12px}
 html[data-variant] .faculty-detail dl{font-size:14px}
 html[data-variant] .program-row{padding:16px 16px}
 html[data-variant] .program-row strong{font-size:29px}
 html[data-variant] .program-image{height:215px}
 html[data-variant] .program-layout{row-gap:22px}
 html[data-variant] .about-photo{height:44vh;min-height:260px}
 html[data-variant] .about-note p{font-size:16px}
 html[data-variant] .news-expanded .news-item{min-height:85px}
 html[data-variant] .news-expanded .news-item h3{font-size:19px}
 html[data-variant] .branch-photo{height:220px}
}
@media(max-width:1100px){.site-header{gap:18px}.site-header .brand-name{font-size:18px}.site-header nav{gap:16px}.site-header nav a{font-size:13px}.site-header .header-contact{font-size:14px}.scene-index{right:8px}}
@media(max-width:800px){
 html[data-variant] .scene{padding-top:108px;padding-bottom:145px}
 .site-header{height:76px}.site-header .brand-name{font-size:17px}
 html[data-variant] .scene>.chapter{font-size:11px;margin-bottom:27px}
 html[data-variant] .hero-b h1{font-size:clamp(22px,6.8vw,53px);margin-top:8px}
 [data-variant=B] .brand-lockup{gap:14px}
 [data-variant=B] .hero-flame{width:clamp(32px,9vw,58px)}
 [data-variant=B] .brand-subline{font-size:16px;margin-top:25px}
 .brand-pigments{margin-top:26px;gap:7px}
 [data-variant=C] .paper-kicker{font-size:10px;letter-spacing:0}
 [data-variant=C] .paper-baseline{font-size:9px;letter-spacing:0;margin-top:28px}
 [data-variant=C] .paper-hero-grid{margin:30px 0}
 [data-variant=C] .paper-hero-grid figure{padding:8px;height:clamp(200px,34vh,360px)}
 html[data-variant] .about-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 html[data-variant] .about-word{grid-column:1;grid-row:1}
 html[data-variant] .about-word h2{font-size:clamp(38px,8.6vw,64px)}
 html[data-variant] .about-photo{grid-column:1;grid-row:2;height:clamp(240px,70vw,440px);min-height:0}
 html[data-variant] .about-note{grid-column:1;grid-row:3;display:block}
 html[data-variant] .about-note p{font-size:17px;line-height:1.85;margin-bottom:16px}
 html[data-variant] .faculty-directory{grid-template-columns:minmax(0,1fr);gap:25px}
 html[data-variant] .faculty-tabs{display:grid;grid-template-columns:1fr 1fr}
 html[data-variant] .faculty-tab{min-height:60px;padding:12px 10px;gap:8px}
 html[data-variant] .faculty-tab strong{font-size:15px}
 .faculty-media{height:clamp(180px,52vw,300px);margin-bottom:20px}
 html[data-variant] .faculty-detail h3{font-size:32px;margin:14px 0}
 html[data-variant] .faculty-detail dl{font-size:15px;margin-bottom:17px}
 html[data-variant] .program-layout{grid-template-columns:minmax(0,1fr);gap:24px}
 html[data-variant] .program-heading{display:flex;gap:15px}
 .program-heading p{font-size:14px!important;white-space:nowrap}
 html[data-variant] .program-list{display:flex;border:1px solid color-mix(in srgb,currentColor 25%,transparent)}
 html[data-variant] .program-row{flex:1;min-width:0;min-height:52px;padding:10px 3px!important;justify-content:center;border:0;box-shadow:none}
 html[data-variant] .program-row strong{font-size:16px!important;transform:none}
 .program-row>span{display:none}
 html[data-variant] .program-row.selected{box-shadow:inset 0 -3px var(--course-color)}
 [data-variant=B] .program-row.selected{box-shadow:inset 0 -3px var(--course-light)!important}
 html[data-variant] .program-image{height:clamp(240px,62vw,420px)}
 html[data-variant] .admission-large{font-size:clamp(88px,23vw,180px)}
 .admission-copy{padding:0}
 .admission-steps{grid-template-columns:1fr;gap:0}
 .admission-steps>div,.admission-steps>div:not(:first-child){border-left:0;border-bottom:1px solid currentColor;padding:17px 0;display:grid;grid-template-columns:24px 70px 1fr;align-items:baseline;gap:12px}
 .admission-steps h3{font-size:20px;margin:0}.admission-steps p{font-size:14px;margin:0;max-width:none}
 .scene-index{display:none}
 .branch-list{grid-template-columns:1fr;gap:36px}
 html[data-variant] .branch-photo{height:clamp(240px,64vw,390px)}
 html[data-variant] .branch>p{min-height:0;font-size:16px}
 html[data-variant] .branch-tel{font-size:21px}
 .scene :is(.about-layout,.admission-layout,.faculty-directory,.program-layout,.news-layout,.branch-list,.contact-main),.scene .chapter{transform:none}
 .news-expanded .news-item{min-height:100px}
 html[data-variant] .news-expanded .news-item h3{font-size:19px}
}
@media(max-width:360px){.site-header .brand-name{font-size:16px}html[data-variant] .faculty-tab strong{font-size:14px}.faculty-tab small{font-size:9px;min-width:12px}.admission-steps>div,.admission-steps>div:not(:first-child){grid-template-columns:20px 60px 1fr;gap:8px}.program-heading p{font-size:12px!important}}
@media(prefers-reduced-motion:reduce){.scene *{animation:none!important;transition:none!important;transform:none!important}.media-stack img{transform:none!important}}
html.paused .scene :is(.about-layout,.admission-layout,.faculty-directory,.program-layout,.news-layout,.branch-list,.contact-main,.chapter,.brand-stage){transform:none}
html.paused .media-stack img,html.paused .scene .reveal-media{transition:none!important}

html[data-variant] .custom-cursor.edge-left>span{left:auto;right:36px}
html[data-variant] .custom-cursor.edge-bottom>span{top:auto;bottom:25px}
html[data-variant] .custom-cursor>span:empty{display:none}

/* The paper edition has a clear, framed invitation even on its opening spread. */
[data-variant=C] .paper-aside .round-link{width:150px;height:58px;flex-direction:row;gap:25px;border-radius:2px;border:2px solid #987540;color:#725326;font:900 15px var(--wordmark)}
[data-variant=C] .paper-aside .round-link span{font-size:23px}
[data-variant=C] .paper-aside .round-link:hover{transform:none;background:#8a632d;color:#fff}
@media(max-width:800px){[data-variant=C] .paper-aside .round-link{width:135px;height:55px;font-size:14px;gap:18px}}
@media(max-width:360px){[data-variant=C] .paper-aside .round-link{width:118px;font-size:13px;gap:13px}}

/* The photograph briefly remains inside the original title as the spread turns. */
@media(min-width:801px){
 .about-word .type-film{position:absolute;inset:0;white-space:nowrap;background:url('images/recording-console.jpg') 50% 50%/cover;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:var(--type-film,0);pointer-events:none}
 .about-photo{opacity:var(--photo-presence,1)}
}
html.paused .about-word .type-film{opacity:0}html.paused .about-photo{opacity:1}

@media(max-width:800px){.about-word .type-film{display:none}}

/* Direct access to the original inquiry forms, in the same typography. */
.footer-inquiry{padding:0;text-align:left;font:inherit;line-height:inherit;opacity:.7;transition:opacity .2s}
.footer-inquiry:hover,.footer-inquiry:focus-visible{opacity:1;text-decoration:underline;text-underline-offset:5px}
#site-inquiry-modal{font-family:var(--sans)!important;color:#24221f;cursor:auto}
#site-inquiry-modal>div{border-radius:8px!important;box-shadow:0 20px 70px #0004!important}
#site-inquiry-modal input:focus-visible,#site-inquiry-modal textarea:focus-visible{outline:2px solid #a74435!important;outline-offset:2px}
#site-inquiry-modal button{font-family:var(--sans)!important}
@media(max-width:800px){#site-inquiry-modal{padding:12px!important}#site-inquiry-modal>div{max-height:calc(100dvh - 24px)!important}}

/* Production controls: keep the approved artwork free of comparison UI. */
.motion-control{position:fixed;z-index:70;left:20px;bottom:20px;border:1px solid #7775;background:#f7f5f0e8;color:#292620;backdrop-filter:blur(12px);border-radius:50%;box-shadow:0 3px 15px #0001}
.motion-control .motion-toggle{display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:50%;font:18px/1 sans-serif}
.news-status{padding:36px 0;min-height:120px;font-size:16px;color:inherit}
.news-list[aria-busy=true]{min-height:480px}
@media(max-width:800px){.motion-control{left:12px;bottom:calc(14px + env(safe-area-inset-bottom))}.motion-control .motion-toggle{width:36px;height:36px}.news-list[aria-busy=true]{min-height:360px}}
