@view-transition { navigation: auto }
::view-transition-old(root){animation:studio-out .18s ease both}
::view-transition-new(root){animation:studio-in .32s cubic-bezier(.22,.68,.25,1) both}
@keyframes studio-out{to{opacity:0}}
@keyframes studio-in{from{opacity:0;transform:translateY(5px)}}
.pointer-note{position:fixed;inset:0 auto auto 0;width:24px;height:24px;pointer-events:none;z-index:2147483647;opacity:0;transition:opacity .22s ease}
.pointer-note.visible{opacity:1}
.pointer-note img{display:block;width:100%;height:100%;position:relative}
@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .pointer-note{display:none}
}

/* Keep the original Latin display faces and give Chinese its own lighter type. */
:root {
  --studio-chinese: "PingFang SC", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
}
:lang(zh-Hans) :is(p,h1,h2,a,button,label,legend,dt,dd,summary,input,textarea,li,.duration,.label strong,.label span),
[lang="zh-Hans"]:is(button,a) {
  font-family: var(--studio-chinese);
  font-weight: 300;
  font-synthesis: none;
}
:lang(zh-Hans) :is(h1,h2) { font-style: normal; }
:lang(zh-Hans) :is(.hero nav a,.category-links a,.category-links button,.categories summary) {
  transform: scaleX(.93);
  transform-origin: left center;
}
:lang(zh-Hans) .category-links :is(a,button) { transform-origin: right center; }
:lang(zh-Hans) .hero h1 { font-family:"Bodoni 72",Didot,"Times New Roman",serif; }
:lang(zh-Hans) .about .copy h2 {
  letter-spacing:.12em;
  transform:scaleX(.88);
  transform-origin:left center;
}
html:lang(zh-Hans) .about .copy #about-text p {
  font-family:var(--studio-chinese);
  font-weight:300;
  box-sizing:border-box;
  width:100%;
  max-width:none;
  transform:scaleX(.925);
  transform-origin:left top;
  font-size:clamp(.95rem,1.36vw,1.45rem);
  line-height:1.65;
  letter-spacing:.045em;
}

/* Chinese text outside the landing hero and enrollment form. */
html:lang(zh-Hans) :is(.teaching-intro,.teaching-frame,#events-panel,.policies-page,.lessons-page,.performances-page)
:is(h1,h2,h3,p,li,a,button,dt,dd,.label strong,.label span,.lane-name,.duration,.cover-title,.cover-hint,.teaching-caption):not(:lang(en)){
  font-family:var(--studio-chinese);
  font-weight:300;
  font-synthesis:none;
  font-style:normal;
  letter-spacing:.045em;
}
html:lang(zh-Hans) .teaching-copy #about-title,
html:lang(zh-Hans) :is(.lessons-page,.performances-page) h1{
  font-size:clamp(1.25rem,2.5vw,2.2rem);
  font-family:var(--studio-chinese);font-weight:300;transform-origin:left center;
  scale:.82 1;
}
html:lang(zh-Hans) :is(.teaching-copy p,.teaching-notes p,.teaching-caption){
  font-size:clamp(.85rem,1.25vw,1.12rem);
  line-height:1.6;
  scale:.87 1;
}
html:lang(zh-Hans) .teaching-notes p{transform-origin:left center}
html:lang(zh-Hans) :is(.policy-rules li,.chapter,.cover-title,.cover-hint,.label strong,.label span,.lane-name,.duration,.detail-copy p,.detail-copy dt,.detail-copy dd,.events-tabs button,#events-note){
  scale:.88 1;
  transform-origin:left center;
}
html:lang(zh-Hans) :is(.policies-page .chapter,.policies-page .cover-title,.lessons-page .lane-name){
  font-size:clamp(1rem,1.8vw,1.55rem);
}
html:lang(zh-Hans) :is(.policy-rules li,.detail-copy p,.detail-copy dt,.detail-copy dd,.events-tabs button){
  font-size:clamp(.86rem,1.3vw,1.05rem);
}

html:lang(zh-Hans) body :is(#about-title,#performance-title,#policy-cover-title):is(h1,h2,.cover-title) {
  font-family:"Kaiti SC",STKaiti,KaiTi,"Songti SC",serif !important;
  font-weight:400 !important;
  letter-spacing:.08em;
  transform:skewX(-9deg) !important;
  transform-origin:center;
  scale:.95 1;
}
html:lang(zh-Hans) body #about-title{font-size:clamp(1.65rem,3.25vw,3.2rem)}
html:lang(zh-Hans) body #performance-title{font-size:clamp(2.15rem,5vw,5.1rem)}
html:lang(zh-Hans) body #policy-cover-title{
  font-size:clamp(1.55rem,3.4vw,2.35rem);
  white-space:nowrap;
}

html:lang(zh-Hans) body.policies-page .closed-cover #policy-cover-title{
  font-family:var(--studio-chinese) !important;
  font-weight:300 !important;
  font-size:1.35rem;
  line-height:1.2;
  transform:none !important;
  scale:.82 1;
}
