:root{
  --yellow:#ffcf24;
  --orange:#f36b2b;
  --cream:#fff8d7;
  --ink:#121212;
  --white:#fff;
  --muted:#584b3a;
  --display:"Archivo Black",Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  --body:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --pad:clamp(24px,5vw,86px);
  --radius:clamp(24px,3vw,46px);
  --header-h:96px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.55;overflow-x:hidden;text-rendering:optimizeLegibility}
body.nav-open{overflow:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit}
figure{margin:0}
::selection{background:var(--orange);color:#fff}
.progress{position:fixed;left:0;right:0;top:0;height:5px;z-index:2000;background:transparent}.progress span{display:block;width:0;height:100%;background:var(--orange)}
.skip-link{position:fixed;left:16px;top:-100px;z-index:3000;background:#fff;border:3px solid var(--ink);padding:12px 18px;font-weight:900}.skip-link:focus{top:16px}
.section-pad{padding:clamp(78px,10vw,150px) var(--pad)}
.eyebrow{margin:0 0 24px;color:var(--orange);font-weight:900;letter-spacing:.14em;font-size:clamp(13px,1vw,16px)}
.display{margin:0;font-family:var(--display);font-size:clamp(54px,7vw,118px);line-height:.91;letter-spacing:-.055em;text-wrap:balance}
.display em{color:var(--orange);font-style:normal}
.display-light{color:#fff}.eyebrow-light{color:var(--yellow)}

.site-header{position:sticky;top:0;z-index:1000;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:10px var(--pad);background:color-mix(in srgb,var(--cream) 93%,transparent);border-bottom:3px solid var(--ink);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:15px;min-width:260px}.brand img{width:68px;height:68px;object-fit:contain;border-radius:50%;background:#fff}.brand-copy{display:grid;line-height:1}.brand-copy strong{font-family:var(--display);font-size:21px;letter-spacing:-.03em}.brand-copy small{margin-top:7px;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--muted)}
.site-nav{display:flex;align-items:center;gap:clamp(15px,2vw,32px);font-weight:900;font-size:16px}.site-nav a{position:relative;padding:12px 2px}.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:7px;height:3px;background:var(--orange);transition:right .25s}.site-nav a:hover::after,.site-nav a:focus-visible::after{right:0}.nav-cta{padding:13px 24px!important;background:var(--yellow);border:3px solid var(--ink);border-radius:999px;box-shadow:4px 4px 0 var(--ink);transition:transform .2s,box-shadow .2s}.nav-cta:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.menu-toggle{display:none;align-items:center;gap:12px;border:3px solid var(--ink);border-radius:999px;background:var(--yellow);padding:11px 17px;font-weight:900;box-shadow:3px 3px 0 var(--ink);cursor:pointer}.menu-lines{display:grid;gap:4px;width:27px}.menu-lines i{display:block;height:3px;background:var(--ink);border-radius:3px;transition:.25s}.menu-toggle[aria-expanded="true"] .menu-lines i:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] .menu-lines i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] .menu-lines i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);align-items:center;gap:clamp(40px,6vw,110px);min-height:calc(100svh - var(--header-h));padding-top:clamp(55px,7vw,100px);padding-bottom:clamp(70px,8vw,120px);overflow:hidden}
.hero::before{content:"";position:absolute;z-index:-2;width:420px;height:420px;border-radius:50%;background:var(--yellow);right:-180px;top:-190px;filter:blur(.2px)}
.hero-copy{position:relative;z-index:3;max-width:900px}.hero-eyebrow{opacity:0;animation:introUp .65s .1s both}.hero h1{margin:0;font-family:var(--display);font-size:clamp(72px,8.4vw,156px);line-height:.84;letter-spacing:-.075em}.hero-line{display:block;width:max-content;max-width:100%;opacity:0;transform:translateY(55px);animation:introUp .85s cubic-bezier(.18,.85,.25,1) both}.hero-line:nth-child(1){animation-delay:.16s}.hero-line:nth-child(2){animation-delay:.26s}.hero-line:nth-child(3){animation-delay:.36s}.hero-line-accent{color:var(--orange)}
.hero-lead{max-width:720px;margin:42px 0 0;font-size:clamp(21px,1.8vw,30px);line-height:1.35;font-weight:500;opacity:0;animation:introUp .75s .5s both}.hero-actions{display:flex;flex-wrap:wrap;gap:18px;margin-top:38px;opacity:0;animation:introUp .75s .62s both}
.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:58px;padding:15px 27px;border:3px solid var(--ink);border-radius:999px;font-weight:900;font-size:18px;transition:transform .22s,box-shadow .22s,background .22s}.button span{font-size:1.25em}.button-dark{background:var(--ink);color:#fff;box-shadow:8px 8px 0 var(--orange)}.button-dark:hover{transform:translate(-3px,-3px);box-shadow:12px 12px 0 var(--orange)}.button-ghost{background:transparent;box-shadow:0 0 0 var(--ink)}.button-ghost:hover{background:#fff;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.hero-collage{position:relative;min-height:min(760px,72vw);opacity:0;animation:introScale 1s .38s cubic-bezier(.2,.8,.2,1) both}.hero-photo{position:absolute;overflow:hidden;border:3px solid var(--ink);box-shadow:12px 12px 0 var(--ink);will-change:transform}.hero-photo-main{inset:4% 6% 3% 8%;border-radius:48% 48% 28px 28px;transform:rotate(2deg);animation:floatMain 7s 1.2s ease-in-out infinite}.hero-photo-main img{object-position:50% 50%}.hero-photo-small{width:43%;height:34%;right:-2%;bottom:1%;border-radius:50%;transform:rotate(-6deg);box-shadow:8px 8px 0 var(--yellow);animation:floatSmall 6s 1.4s ease-in-out infinite}.hero-badge{position:absolute;z-index:4;left:0;top:8%;width:clamp(120px,12vw,184px);aspect-ratio:1;display:grid;place-content:center;text-align:center;background:var(--yellow);border:3px solid var(--ink);border-radius:50%;box-shadow:7px 7px 0 var(--orange);transform:rotate(-8deg);animation:badgePulse 4.6s 1s ease-in-out infinite}.hero-badge span{font-family:var(--display);font-size:clamp(38px,4vw,64px);line-height:.9}.hero-badge small{font-weight:900;font-size:11px;letter-spacing:.08em;margin-top:7px}.orbit{position:absolute;border:3px solid var(--ink);border-radius:50%;opacity:.14}.orbit-one{width:78%;aspect-ratio:1;left:6%;top:4%;animation:spin 28s linear infinite}.orbit-two{width:42%;aspect-ratio:1;right:1%;bottom:6%;border-style:dashed;animation:spinReverse 20s linear infinite}

.marquee{overflow:hidden;border-block:3px solid var(--ink);background:var(--yellow);padding:15px 0}.marquee-track{display:flex;align-items:center;width:max-content;animation:marquee 23s linear infinite}.marquee span{font-family:var(--display);font-size:clamp(22px,2.2vw,39px);white-space:nowrap}.marquee i{font-style:normal;font-size:28px;margin:0 30px;color:var(--orange)}
.statement{background:#fff}.statement-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:clamp(45px,7vw,130px);align-items:end}.statement-copy{max-width:650px}.statement-copy p{font-size:clamp(21px,1.8vw,30px);line-height:1.38;margin:0 0 32px}.text-link{display:inline-flex;gap:18px;align-items:center;font-weight:900;border-bottom:3px solid var(--ink);padding-bottom:7px;font-size:18px}.text-link span{transition:transform .2s}.text-link:hover span{transform:translateX(8px)}
.section-heading{max-width:1180px;margin-bottom:clamp(52px,7vw,100px)}

.programs{background:var(--cream)}
.program-card{position:relative;display:grid;grid-template-columns:86px minmax(310px,.8fr) minmax(0,1.2fr);min-height:580px;margin-top:34px;border:3px solid var(--ink);border-radius:var(--radius);overflow:hidden;box-shadow:10px 10px 0 var(--ink);transform-style:preserve-3d;transition:box-shadow .3s,transform .3s}.program-card:hover{box-shadow:15px 18px 0 var(--ink)}
.program-orange{background:var(--orange);color:#fff}.program-yellow{background:var(--yellow)}.program-cream{background:#fff}
.program-number{display:flex;align-items:flex-start;justify-content:center;padding-top:42px;border-right:3px solid currentColor;font-family:var(--display);font-size:34px}.program-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,5vw,80px)}.card-kicker{font-weight:900;letter-spacing:.12em;font-size:14px;margin:0 0 26px}.program-copy h3{font-family:var(--display);font-size:clamp(44px,4.6vw,78px);line-height:.93;letter-spacing:-.045em;margin:0 0 32px;text-wrap:balance}.program-copy>p:not(.card-kicker){font-size:clamp(19px,1.45vw,25px);line-height:1.43;margin:0;max-width:600px}.program-copy a{width:max-content;margin-top:38px;font-weight:900;border-bottom:3px solid currentColor;padding-bottom:6px;font-size:18px}.program-card figure{position:relative;min-height:580px;border-left:3px solid var(--ink);overflow:hidden}.program-card figure::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 48%,rgba(255,255,255,.42) 50%,transparent 52%);transform:translateX(-140%);transition:transform .8s}.program-card:hover figure::after{transform:translateX(140%)}.program-card figure img{transition:transform .8s cubic-bezier(.2,.75,.2,1)}.program-card:hover figure img{transform:scale(1.055)}.program-yellow figure img{object-position:50% 42%}

.collaboration{display:grid;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);gap:clamp(50px,7vw,120px);background:var(--orange);color:#fff;align-items:center}.collab-intro>p:last-child{font-size:clamp(20px,1.5vw,25px);max-width:720px}.collab-wheel{display:grid;grid-template-columns:1fr 1fr;gap:18px;transform:rotate(2deg)}.collab-item{position:relative;min-height:245px;padding:34px;display:flex;flex-direction:column;justify-content:space-between;background:#fff;color:var(--ink);border:3px solid var(--ink);border-radius:50% 50% 32px 32px;box-shadow:7px 7px 0 var(--yellow);transition:transform .3s}.collab-item:nth-child(even){border-radius:32px 32px 50% 50%;transform:translateY(28px)}.collab-item:hover{transform:translateY(-8px) rotate(-2deg)}.collab-item:nth-child(even):hover{transform:translateY(18px) rotate(2deg)}.collab-item span{font-family:var(--display);color:var(--orange);font-size:20px}.collab-item strong{font-family:var(--display);font-size:clamp(25px,2.2vw,39px);line-height:1.05}

.fields{background:var(--cream)}.fields-head{max-width:1050px}.fields-head>p:last-child{font-size:clamp(20px,1.45vw,25px);margin-top:30px;max-width:900px}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:70px}.field-card{min-height:360px;background:#fff;border:3px solid var(--ink);border-radius:32px;padding:40px;box-shadow:8px 8px 0 var(--yellow);transition:box-shadow .25s,transform .25s;transform-style:preserve-3d}.field-card:hover{box-shadow:12px 16px 0 var(--yellow)}.field-icon{display:grid;place-items:center;width:78px;height:78px;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;font-size:34px}.field-card h3{font-family:var(--display);font-size:clamp(29px,2.4vw,42px);margin:35px 0 18px;line-height:1}.field-card p{font-size:19px;margin:0}.study-strip{margin-top:70px;border-top:3px solid var(--ink);padding-top:45px}.study-list{display:flex;flex-wrap:wrap;gap:14px}.study-list span{background:var(--orange);color:#fff;border:2px solid var(--ink);border-radius:999px;padding:13px 21px;font-weight:900;font-size:17px;box-shadow:3px 3px 0 var(--ink);transition:transform .2s}.study-list span:hover{transform:translateY(-4px) rotate(-1deg)}

.journey{background:#fff}.journey-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.journey-step figure{height:clamp(360px,31vw,510px);margin:0 0 24px;border:3px solid var(--ink);border-radius:160px 160px 24px 24px;overflow:hidden}.journey-step:nth-child(even) figure{border-radius:24px 24px 160px 160px}.journey-step figure img{transition:transform .75s cubic-bezier(.2,.75,.2,1)}.journey-step:hover figure img{transform:scale(1.06)}.journey-step span{font-family:var(--display);color:var(--orange)}.journey-step h3{font-family:var(--display);font-size:clamp(24px,2vw,34px);line-height:1.05;margin:8px 0}

.gallery{background:var(--ink);color:#fff}.gallery-head{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:end;margin-bottom:60px}.gallery-head>p{font-size:18px;text-align:right}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:270px;gap:16px}.gallery-item{padding:0;border:0;background:#222;overflow:hidden;border-radius:26px;cursor:zoom-in;position:relative}.gallery-item::after{content:"↗";position:absolute;right:16px;top:16px;width:50px;height:50px;display:grid;place-items:center;border:3px solid var(--ink);border-radius:50%;background:var(--yellow);color:#111;font-size:26px;font-weight:900;opacity:0;transform:scale(.55) rotate(-20deg);transition:.25s}.gallery-item:hover::after{opacity:1;transform:scale(1) rotate(0)}.gallery-item img{transition:transform .75s}.gallery-item:hover img{transform:scale(1.06)}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}

.director{display:grid;grid-template-columns:minmax(390px,.85fr) minmax(0,1.15fr);gap:clamp(55px,8vw,150px);align-items:center;background:var(--yellow)}.director-photo{height:min(760px,71vw);max-height:760px;border:3px solid var(--ink);border-radius:50% 50% 30px 30px;overflow:hidden;box-shadow:12px 12px 0 var(--ink)}.director-photo img{object-position:50% 40%;transition:transform .8s}.director-photo:hover img{transform:scale(1.035)}.director-copy h2{font-family:var(--display);font-size:clamp(52px,6vw,100px);line-height:.93;letter-spacing:-.05em;margin:0}.director-copy h2 span{color:var(--orange)}.director-copy>p:last-child{font-size:clamp(20px,1.55vw,26px);max-width:700px;margin-top:35px}

.contact{background:var(--cream);display:grid;grid-template-columns:1.05fr .95fr;gap:26px}.contact-card,.contact-map{border:3px solid var(--ink);border-radius:42px;overflow:hidden;box-shadow:9px 9px 0 var(--ink)}.contact-card{background:var(--orange);color:#fff;padding:clamp(45px,6vw,90px);display:flex;flex-direction:column;justify-content:center}.contact-card .eyebrow{color:var(--yellow)}.contact-card>p:not(.eyebrow){font-size:clamp(20px,1.5vw,25px)}.contact-card .button-ghost{background:#fff;color:#111}.contact-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}.contact-map{min-height:650px}.contact-map iframe{width:100%;height:100%;border:0;filter:saturate(.75) contrast(1.08)}

.site-footer{background:var(--ink);color:#fff;padding:45px var(--pad);display:grid;grid-template-columns:1fr auto;gap:35px;align-items:center}.footer-brand{display:flex;align-items:center;gap:18px}.footer-brand img{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:50%}.footer-brand div{display:grid}.footer-brand strong{font-family:var(--display);font-size:23px}.footer-brand small{font-size:15px;color:#bbb;margin-top:5px}.footer-links{display:flex;gap:24px;font-weight:800;font-size:16px}.site-footer>p{grid-column:1/-1;border-top:1px solid #444;padding-top:24px;margin:0;color:#aaa;font-size:15px}

.reveal{opacity:0;transform:translateY(46px) scale(.985);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.from-left{transform:translateX(-46px)}.reveal.from-right{transform:translateX(46px)}.reveal.is-visible{opacity:1;transform:none}
.lightbox{width:min(92vw,1300px);height:min(90vh,900px);padding:0;border:0;border-radius:25px;background:#111;box-shadow:0 30px 100px rgba(0,0,0,.55)}.lightbox::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.lightbox img{width:100%;height:100%;object-fit:contain}.lightbox-close{position:absolute;right:16px;top:16px;width:54px;height:54px;border:3px solid #111;border-radius:50%;background:var(--yellow);font-size:34px;font-weight:900;cursor:pointer;z-index:2}

@keyframes introUp{from{opacity:0;transform:translateY(44px)}to{opacity:1;transform:none}}
@keyframes introScale{from{opacity:0;transform:scale(.92) rotate(2deg)}to{opacity:1;transform:none}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes floatMain{0%,100%{transform:rotate(2deg) translateY(0)}50%{transform:rotate(.5deg) translateY(-12px)}}
@keyframes floatSmall{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(-3deg) translateY(13px)}}
@keyframes badgePulse{0%,100%{transform:rotate(-8deg) scale(1)}50%{transform:rotate(-3deg) scale(1.05)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinReverse{to{transform:rotate(-360deg)}}

@media (max-width:1180px){
  :root{--header-h:88px}
  .site-header{height:var(--header-h)}.brand img{width:58px;height:58px}.brand-copy strong{font-size:18px}.brand-copy small{display:none}.site-nav{gap:14px;font-size:14px}
  .hero{grid-template-columns:1fr;min-height:auto}.hero-copy{max-width:1000px}.hero h1{font-size:clamp(82px,12vw,145px)}.hero-collage{min-height:680px;max-width:900px;width:100%;margin:0 auto}
  .statement-grid,.collaboration,.director,.contact{grid-template-columns:1fr}.collab-wheel{max-width:900px}.program-card{grid-template-columns:74px minmax(300px,.9fr) minmax(0,1.1fr)}.program-card figure{min-height:540px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-head{grid-template-columns:1fr}.gallery-head>p{text-align:left}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-map{min-height:500px}
}

@media (max-width:820px){
  :root{--pad:22px;--header-h:78px}
  body{font-size:17px}.site-header{height:var(--header-h);padding:8px 14px}.brand{min-width:0;gap:10px}.brand img{width:52px;height:52px}.brand-copy strong{font-size:16px;line-height:.92}.menu-toggle{display:flex;min-height:48px;padding:9px 15px}.site-nav{position:fixed;inset:calc(var(--header-h) + 10px) 14px auto 14px;display:grid;gap:0;padding:18px;background:var(--yellow);border:3px solid var(--ink);border-radius:24px;box-shadow:8px 8px 0 var(--ink);transform:translateY(-24px) scale(.97);opacity:0;pointer-events:none;transition:.25s}.site-nav.open{opacity:1;transform:none;pointer-events:auto}.site-nav a{font-family:var(--display);font-size:23px;padding:12px;border-bottom:2px solid rgba(0,0,0,.14)}.nav-cta{margin-top:10px;text-align:center;border-radius:14px!important;background:var(--orange);color:#fff;box-shadow:none!important}
  .section-pad{padding-block:82px}.hero{display:block;padding-top:56px;padding-bottom:72px}.hero::before{width:240px;height:240px;right:-120px;top:-120px}.hero-copy{max-width:none}.hero-eyebrow{font-size:12px;line-height:1.4;margin-bottom:24px}.hero h1{font-size:clamp(53px,14.2vw,78px);line-height:.88;letter-spacing:-.065em}.hero-line{width:auto;max-width:none;white-space:nowrap}.hero-lead{font-size:20px;line-height:1.42;margin-top:30px}.hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}.button{min-height:54px;padding:12px 17px;font-size:16px}.button-dark{box-shadow:6px 6px 0 var(--orange)}
  .hero-collage{min-height:480px;margin-top:62px}.hero-photo-main{inset:3% 4% 6% 3%;border-radius:48% 48% 24px 24px;box-shadow:8px 8px 0 var(--ink)}.hero-photo-small{width:46%;height:34%;right:-1%;bottom:0}.hero-badge{left:-2%;top:2%;width:108px;box-shadow:5px 5px 0 var(--orange)}.hero-badge span{font-size:34px}.hero-badge small{font-size:9px}.orbit-one{width:85%;left:2%}.orbit-two{width:45%}
  .display{font-size:clamp(43px,12.5vw,68px);line-height:.94;letter-spacing:-.052em}.statement-grid{grid-template-columns:1fr;gap:38px}.statement-copy p{font-size:20px}.section-heading{margin-bottom:48px}
  .program-card{grid-template-columns:1fr;min-height:auto;border-radius:28px;box-shadow:7px 7px 0 var(--ink);margin-top:26px;transform:none!important}.program-number{position:absolute;z-index:3;top:14px;left:14px;width:58px;height:58px;display:grid;place-items:center;padding:0;border:3px solid var(--ink);border-radius:50%;background:var(--yellow);color:var(--ink);font-size:22px}.program-copy{padding:92px 24px 38px}.program-copy h3{font-size:clamp(42px,11.5vw,62px);margin-bottom:24px}.program-copy>p:not(.card-kicker){font-size:19px}.program-copy a{margin-top:30px;font-size:17px}.program-card figure{min-height:0;height:auto;aspect-ratio:16/10;border-left:0;border-top:3px solid var(--ink)}
  .collaboration{gap:55px}.collab-wheel{grid-template-columns:1fr;transform:none}.collab-item,.collab-item:nth-child(even){min-height:175px;border-radius:30px;transform:none}.collab-item:hover,.collab-item:nth-child(even):hover{transform:none}.collab-item strong{font-size:30px}
  .field-grid{grid-template-columns:1fr;margin-top:48px}.field-card{min-height:0;padding:32px;transform:none!important}.field-card h3{font-size:34px}.study-strip{margin-top:54px}.study-list span{font-size:15px;padding:11px 16px}
  .journey-grid{grid-template-columns:1fr}.journey-step figure{height:auto;aspect-ratio:4/5;border-radius:120px 120px 24px 24px}.journey-step:nth-child(even) figure{border-radius:24px 24px 120px 120px}.journey-step h3{font-size:31px;margin-bottom:26px}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:auto}.gallery-item,.gallery-item.wide,.gallery-item.tall{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.gallery-item::after{opacity:1;transform:scale(.8)}
  .director{gap:60px}.director-photo{height:auto;aspect-ratio:3/4;max-height:none;border-radius:50% 50% 26px 26px;box-shadow:8px 8px 0 var(--ink)}.director-copy h2{font-size:clamp(45px,11.7vw,65px)}.director-copy>p:last-child{font-size:20px}
  .contact-card{padding:42px 24px}.contact-actions{display:grid}.contact-map{min-height:390px}.site-footer{grid-template-columns:1fr;padding:42px 22px}.footer-links{flex-wrap:wrap;gap:16px}.footer-brand strong{font-size:19px}.footer-brand small{font-size:13px}
}

@media (max-width:480px){
  :root{--pad:18px}
  .brand-copy strong{font-size:15px}.menu-toggle b{font-size:15px}.menu-lines{width:24px}
  .hero{padding-top:46px}.hero h1{font-size:clamp(46px,12vw,62px)}.hero-line{white-space:nowrap}.hero-lead{font-size:18px}.hero-actions{grid-template-columns:1fr}.hero-collage{min-height:410px;margin-top:50px}.hero-photo-main{inset:2% 1% 7% 2%}.hero-photo-small{width:45%;height:31%}.hero-badge{width:96px}.hero-badge span{font-size:30px}
  .program-copy h3{font-size:40px}.program-copy>p:not(.card-kicker){font-size:18px}.collab-item strong{font-size:27px}.contact-map{min-height:330px}
}

@media (hover:none){.tilt-card{transform:none!important}.program-card:hover,.field-card:hover{box-shadow:8px 8px 0 var(--ink)}.program-card:hover figure img,.journey-step:hover figure img,.gallery-item:hover img{transform:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track,.hero-photo-main,.hero-photo-small,.hero-badge,.orbit,.hero-eyebrow,.hero-line,.hero-lead,.hero-actions,.hero-collage{animation:none!important;opacity:1!important;transform:none!important}.reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}


/* =========================================================
   V3 — desktop/mobile refinement and lightweight animation
   ========================================================= */
:root{--page-max:1680px}
main{overflow:clip}
.hero,.statement,.programs,.collaboration,.fields,.journey,.gallery,.director,.contact,.site-footer{
  width:100%;max-width:var(--page-max);margin-inline:auto
}
.site-header{max-width:none}
.hero-copy,.hero h1,.hero-line{min-width:0;max-width:100%}
.hero{
  grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:clamp(36px,5vw,86px)
}
.hero h1{
  width:100%;
  font-size:clamp(64px,6.15vw,112px);
  line-height:.88;
  letter-spacing:-.065em
}
.hero-line{
  display:block;
  width:100%;
  max-width:100%;
  white-space:normal;
  overflow:visible
}
.hero-lead{max-width:660px}
.hero-collage{
  min-height:clamp(500px,48vw,720px);
  max-height:760px
}
.hero-spark{
  position:absolute;
  z-index:2;
  font-family:var(--display);
  color:var(--orange);
  line-height:1;
  pointer-events:none;
  animation:v3SparkFloat 4.8s ease-in-out infinite
}
.hero-spark-one{
  top:14%;left:47%;
  font-size:clamp(28px,3vw,54px);
  animation-delay:.25s
}
.hero-spark-two{
  right:3.5%;bottom:14%;
  font-size:clamp(22px,2.2vw,40px);
  color:var(--yellow);
  text-shadow:2px 2px 0 var(--ink);
  animation-delay:1.1s
}
.program-card{max-width:1500px;margin-inline:auto}
.program-card::before,.field-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.22),transparent 34%);
  opacity:0;
  transition:opacity .25s
}
.program-card:hover::before,.field-card:hover::before{opacity:1}
.program-card.is-visible figure img{
  animation:v3ImageReveal .9s cubic-bezier(.2,.8,.2,1) both
}
.program-copy a span,.button span{
  display:inline-block;
  animation:v3ArrowNudge 1.8s ease-in-out infinite
}
.field-card{position:relative;overflow:hidden}
.field-card.is-visible .field-icon{
  animation:v3IconBounce .7s .22s cubic-bezier(.2,.9,.2,1) both
}
.journey-step.is-visible figure{
  animation:v3SoftRise .8s cubic-bezier(.2,.8,.2,1) both
}
.gallery-item.is-visible{
  animation:v3GalleryPop .72s cubic-bezier(.2,.85,.2,1) both
}
.contact-card.is-visible{
  animation:v3ContactGlow 1.1s ease-out both
}

@keyframes v3SparkFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}
  50%{transform:translate3d(0,-14px,0) rotate(12deg) scale(1.08)}
}
@keyframes v3ImageReveal{
  from{opacity:.72;transform:scale(1.08)}
  to{opacity:1;transform:scale(1)}
}
@keyframes v3ArrowNudge{
  0%,65%,100%{transform:translate(0,0)}
  78%{transform:translate(5px,5px)}
}
@keyframes v3IconBounce{
  from{opacity:0;transform:translateY(16px) scale(.7) rotate(-12deg)}
  to{opacity:1;transform:none}
}
@keyframes v3SoftRise{
  from{opacity:.5;transform:translateY(24px) scale(.98)}
  to{opacity:1;transform:none}
}
@keyframes v3GalleryPop{
  from{opacity:0;transform:translateY(22px) scale(.965)}
  to{opacity:1;transform:none}
}
@keyframes v3ContactGlow{
  0%{box-shadow:9px 9px 0 var(--ink)}
  55%{box-shadow:15px 15px 0 var(--yellow)}
  100%{box-shadow:9px 9px 0 var(--ink)}
}

@media (min-width:821px) and (max-width:1180px){
  .hero h1{font-size:clamp(72px,9.7vw,112px)}
  .hero-collage{min-height:620px}
}

@media (max-width:1020px){
  .program-card{
    grid-template-columns:76px minmax(0,1fr);
    min-height:0
  }
  .program-card figure{
    grid-column:1/-1;
    border-left:0;
    border-top:3px solid var(--ink);
    min-height:0;
    aspect-ratio:16/9
  }
  .program-copy{padding:58px clamp(28px,5vw,60px)}
  .program-number{grid-row:1;border-right:3px solid currentColor}
  .field-grid{grid-template-columns:1fr}
}

@media (max-width:820px){
  :root{
    --pad:clamp(18px,5vw,26px);
    --header-h:72px
  }
  body{font-size:16px}
  .site-header{
    height:var(--header-h);
    padding:7px 12px;
    gap:10px
  }
  .brand{gap:8px;min-width:0;flex:1}
  .brand img{width:46px;height:46px;flex:0 0 46px}
  .brand-copy strong{
    font-size:14px;
    line-height:.92;
    letter-spacing:-.02em
  }
  .brand-copy small{display:none}
  .menu-toggle{
    display:flex;
    flex:0 0 auto;
    min-height:44px;
    padding:8px 13px;
    gap:9px;
    box-shadow:2px 2px 0 var(--ink)
  }
  .menu-toggle b{font-size:14px}
  .menu-lines{width:22px;gap:3px}
  .menu-lines i{height:2.5px}
  .site-nav{
    inset:calc(var(--header-h) + 8px) 12px auto 12px;
    max-height:calc(100svh - var(--header-h) - 24px);
    overflow:auto
  }
  .section-pad{padding-block:clamp(64px,16vw,90px)}
  .hero{
    display:grid;
    grid-template-columns:1fr;
    min-height:auto;
    padding-top:34px;
    padding-bottom:62px;
    gap:0
  }
  .hero-copy{width:100%;max-width:100%}
  .hero-eyebrow{
    margin-bottom:18px;
    font-size:11px;
    line-height:1.35;
    letter-spacing:.11em
  }
  .hero h1{
    width:100%;
    font-size:clamp(47px,12.8vw,68px);
    line-height:.91;
    letter-spacing:-.055em
  }
  .hero-line{
    display:block;
    width:100%;
    max-width:100%;
    white-space:normal;
    overflow:visible
  }
  .hero-lead{
    max-width:34ch;
    margin-top:24px;
    font-size:clamp(17px,4.8vw,20px);
    line-height:1.42
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    margin-top:27px
  }
  .button{
    width:100%;
    min-height:52px;
    padding:12px 18px;
    font-size:16px
  }
  .hero-collage{
    width:100%;
    min-height:clamp(360px,90vw,480px);
    margin-top:44px
  }
  .hero-photo-main{
    inset:3% 3% 8% 3%;
    border-radius:42% 42% 22px 22px;
    box-shadow:7px 7px 0 var(--ink)
  }
  .hero-photo-small{
    width:43%;
    height:30%;
    right:0;
    bottom:1%;
    box-shadow:5px 5px 0 var(--yellow)
  }
  .hero-badge{
    left:0;
    top:0;
    width:92px;
    box-shadow:4px 4px 0 var(--orange)
  }
  .hero-badge span{font-size:29px}
  .hero-badge small{font-size:8px}
  .hero-spark-one{
    top:48%;
    left:auto;
    right:3%;
    font-size:28px
  }
  .hero-spark-two{display:none}
  .orbit-one{width:80%;left:7%}
  .orbit-two{width:42%}
  .display{
    font-size:clamp(39px,10.9vw,59px);
    line-height:.97;
    letter-spacing:-.045em
  }
  .statement-grid{gap:28px}
  .statement-copy p{font-size:18px}
  .program-card{
    grid-template-columns:1fr;
    min-height:0;
    margin-top:22px;
    border-radius:24px;
    box-shadow:6px 6px 0 var(--ink);
    overflow:hidden;
    transform:none!important
  }
  .program-number{
    position:absolute;
    top:13px;
    left:13px;
    width:52px;
    height:52px;
    padding:0;
    display:grid;
    place-items:center;
    border:3px solid var(--ink);
    border-radius:50%;
    background:var(--yellow);
    color:var(--ink);
    font-size:20px;
    z-index:3
  }
  .program-copy{padding:82px 21px 32px}
  .card-kicker{
    margin-bottom:19px;
    font-size:11px;
    line-height:1.4
  }
  .program-copy h3{
    margin-bottom:20px;
    font-size:clamp(36px,10.6vw,48px);
    line-height:.98
  }
  .program-copy>p:not(.card-kicker){
    font-size:17px;
    line-height:1.48
  }
  .program-copy a{
    margin-top:25px;
    font-size:16px
  }
  .program-card figure{
    grid-column:auto;
    min-height:0;
    aspect-ratio:4/3;
    border-left:0;
    border-top:3px solid var(--ink)
  }
  .program-yellow figure img{object-position:50% 50%}
  .collaboration{gap:42px;padding-inline:var(--pad)}
  .collab-item,.collab-item:nth-child(even){
    min-height:145px;
    padding:24px;
    border-radius:24px;
    transform:none
  }
  .collab-item strong{
    font-size:25px;
    line-height:1.03
  }
  .fields-head>p:last-child{font-size:17px}
  .field-grid{
    grid-template-columns:1fr;
    gap:17px;
    margin-top:38px
  }
  .field-card{
    min-height:0;
    padding:26px;
    box-shadow:5px 5px 0 var(--ink);
    transform:none!important
  }
  .field-card h3{font-size:29px}
  .study-strip{margin-top:44px;padding-top:26px}
  .study-list{gap:9px}
  .study-list span{font-size:14px;padding:9px 13px}
  .journey-grid{grid-template-columns:1fr;gap:28px}
  .journey-step figure{
    height:auto;
    aspect-ratio:16/11;
    border-radius:72px 72px 20px 20px
  }
  .journey-step:nth-child(even) figure{
    border-radius:20px 20px 72px 72px
  }
  .journey-step h3{
    margin-bottom:18px;
    font-size:27px
  }
  .gallery{padding-inline:var(--pad)}
  .gallery-grid{
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    gap:14px
  }
  .gallery-item,.gallery-item.wide,.gallery-item.tall{
    grid-column:auto;
    grid-row:auto;
    aspect-ratio:4/3;
    border-radius:20px
  }
  .director{grid-template-columns:1fr;gap:44px}
  .director-photo{
    width:100%;
    max-width:520px;
    height:auto;
    aspect-ratio:3/4;
    margin-inline:auto
  }
  .director-copy h2{
    font-size:clamp(38px,10.5vw,55px)
  }
  .director-copy>p:last-child{
    margin-top:25px;
    font-size:18px
  }
  .contact{
    grid-template-columns:1fr;
    gap:18px
  }
  .contact-card,.contact-map{
    border-radius:25px;
    box-shadow:6px 6px 0 var(--ink)
  }
  .contact-card{padding:36px 22px}
  .contact-card>p:not(.eyebrow){font-size:17px}
  .contact-actions{display:grid}
  .contact-map{min-height:320px}
  .site-footer{
    grid-template-columns:1fr;
    padding:34px 18px
  }
  .footer-brand img{width:54px;height:54px}
  .footer-links{font-size:14px}
}

@media (max-width:420px){
  .hero h1{font-size:clamp(43px,12.2vw,53px)}
  .hero-lead{font-size:17px}
  .brand-copy strong{font-size:13px}
  .menu-toggle{padding-inline:11px}
  .menu-toggle b{font-size:13px}
  .hero-collage{min-height:350px}
  .program-copy h3{font-size:36px}
}

@media (hover:none){
  .program-card::before,.field-card::before{display:none}
  .program-card.is-visible,.field-card.is-visible{
    animation:v3MobileCardIn .68s cubic-bezier(.18,.85,.25,1) both
  }
  .button:active,.menu-toggle:active{transform:scale(.97)}
}
@keyframes v3MobileCardIn{
  from{opacity:0;transform:translateY(25px) scale(.98)}
  to{opacity:1;transform:none}
}

@media (prefers-reduced-motion:reduce){
  .hero-spark,
  .program-card.is-visible figure img,
  .program-copy a span,
  .button span,
  .field-card.is-visible .field-icon,
  .journey-step.is-visible figure,
  .gallery-item.is-visible,
  .contact-card.is-visible{
    animation:none!important
  }
}


/* V4 — gallery supplied by the user */
.departure-gallery .gallery-item img{object-position:center}
.departure-gallery .gallery-item:nth-child(1) img{object-position:center 42%}
.departure-gallery .gallery-item:nth-child(2) img{object-position:center 48%}
.departure-gallery .gallery-item:nth-child(3) img{object-position:center 45%}
.departure-gallery .gallery-item:nth-child(4) img{object-position:center 48%}
.departure-gallery .gallery-item:nth-child(5) img{object-position:center 48%}
.program-yellow figure img{object-position:center 48%}

@media (max-width:820px){
  .departure-gallery{gap:18px}
  .departure-gallery .gallery-item,
  .departure-gallery .gallery-item.wide,
  .departure-gallery .gallery-item.tall{
    aspect-ratio:4/3;
    min-height:0;
    border:2px solid rgba(255,255,255,.08)
  }
  .program-yellow figure{aspect-ratio:16/9}
}


/* =========================================================
   V5 — text fitting and four-language selector
   ========================================================= */
.language-switcher{
  display:flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:#fff;
  box-shadow:3px 3px 0 var(--ink);
}
.language-button{
  min-width:40px;
  min-height:34px;
  padding:5px 8px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  font-family:var(--body);
  font-size:12px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:background .2s,color .2s,transform .2s;
}
.language-button:hover,
.language-button:focus-visible{background:var(--cream)}
.language-button.is-active{
  background:var(--orange);
  color:#fff;
}
.language-button:active{transform:scale(.94)}

/* Keep all four collaboration labels inside their shapes. */
.collab-wheel{
  align-items:stretch;
}
.collab-item{
  min-width:0;
  min-height:238px;
  padding:30px 30px 34px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  align-items:start;
  overflow:hidden;
}
.collab-item span{
  position:relative;
  z-index:1;
  line-height:1;
}
.collab-item strong{
  position:relative;
  z-index:1;
  align-self:center;
  width:100%;
  max-width:100%;
  margin:0;
  font-size:clamp(22px,1.7vw,31px);
  line-height:1.04;
  letter-spacing:-.035em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}

/* The contact title previously exceeded its orange box. */
.contact-card{
  min-width:0;
  padding:clamp(42px,4.8vw,76px);
}
.contact-card .display{
  width:100%;
  max-width:100%;
  font-size:clamp(43px,4.6vw,76px);
  line-height:.96;
  letter-spacing:-.045em;
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
}
.contact-card>p:not(.eyebrow){
  max-width:720px;
}

/* Chinese pages use native system CJK fonts for clearer rendering. */
html[data-language="tw"] body,
html[data-language="cn"] body{
  font-family:"Noto Sans TC","Noto Sans SC","PingFang TC","PingFang SC",
              "Microsoft JhengHei","Microsoft YaHei",system-ui,sans-serif;
}
html[data-language="tw"] .display,
html[data-language="tw"] h1,
html[data-language="tw"] h2,
html[data-language="tw"] h3,
html[data-language="tw"] .collab-item strong,
html[data-language="tw"] .brand-copy strong,
html[data-language="cn"] .display,
html[data-language="cn"] h1,
html[data-language="cn"] h2,
html[data-language="cn"] h3,
html[data-language="cn"] .collab-item strong,
html[data-language="cn"] .brand-copy strong{
  font-family:"Noto Sans TC","Noto Sans SC","PingFang TC","PingFang SC",
              "Microsoft JhengHei","Microsoft YaHei",system-ui,sans-serif;
  font-weight:900;
  letter-spacing:-.035em;
}
html[data-language="en"] .collab-item strong{
  font-size:clamp(19px,1.43vw,27px);
  line-height:1.08;
}
html[data-language="en"] .contact-card .display{
  font-size:clamp(40px,4vw,67px);
}
html[data-language="tw"] .collab-item strong,
html[data-language="cn"] .collab-item strong{
  font-size:clamp(25px,1.8vw,34px);
  line-height:1.18;
}
html[data-language="tw"] .contact-card .display,
html[data-language="cn"] .contact-card .display{
  font-size:clamp(45px,4.25vw,70px);
  line-height:1.12;
}

@media (max-width:1180px) and (min-width:821px){
  .site-nav{gap:13px;font-size:14px}
  .language-button{min-width:35px;padding-inline:6px}
  .collaboration{
    grid-template-columns:minmax(0,.74fr) minmax(480px,1.26fr);
    gap:45px;
  }
  .collab-item{min-height:220px;padding:27px}
  .collab-item strong{font-size:clamp(20px,2.05vw,28px)}
  html[data-language="en"] .collab-item strong{font-size:clamp(18px,1.7vw,23px)}
}

@media (max-width:820px){
  .site-nav{
    padding-bottom:20px;
  }
  .language-switcher{
    width:100%;
    justify-content:space-between;
    margin-top:8px;
    padding:6px;
    box-shadow:4px 4px 0 var(--ink);
  }
  .language-button{
    flex:1;
    min-height:42px;
    font-size:13px;
  }
  .collab-item,
  .collab-item:nth-child(even){
    min-height:160px;
    padding:23px 24px 26px;
    display:grid;
    grid-template-rows:auto 1fr;
  }
  .collab-item strong{
    align-self:center;
    font-size:clamp(25px,7.4vw,31px);
    line-height:1.03;
  }
  html[data-language="en"] .collab-item strong{
    font-size:clamp(21px,6.1vw,27px);
    line-height:1.06;
  }
  html[data-language="tw"] .collab-item strong,
  html[data-language="cn"] .collab-item strong{
    font-size:clamp(26px,7.5vw,32px);
    line-height:1.16;
  }
  .contact-card .display{
    font-size:clamp(39px,10.4vw,52px);
    line-height:.98;
  }
  html[data-language="en"] .contact-card .display{
    font-size:clamp(36px,9.4vw,47px);
  }
  html[data-language="tw"] .contact-card .display,
  html[data-language="cn"] .contact-card .display{
    font-size:clamp(39px,10vw,50px);
    line-height:1.12;
  }
}

@media (max-width:420px){
  .collab-item strong{font-size:25px}
  html[data-language="en"] .collab-item strong{font-size:21px}
  .contact-card .display{font-size:38px}
  html[data-language="en"] .contact-card .display{font-size:34px}
}


/* =========================================================
   V6 — foundation/director names and visible collaboration numbers
   ========================================================= */
.brand-copy strong{
  display:block;
  max-width:190px;
  line-height:.9;
  text-wrap:balance;
}
html[data-language="en"] .brand-copy strong{
  font-size:clamp(17px,1.42vw,23px);
  line-height:.94;
}
html[data-language="tw"] .brand-copy strong,
html[data-language="cn"] .brand-copy strong{
  font-size:clamp(19px,1.55vw,26px);
  line-height:1.08;
  white-space:nowrap;
}

/* Show every sequence number as a clear badge, including 01 and 03. */
.collab-item{
  position:relative;
  overflow:visible;
  grid-template-rows:1fr;
  padding-top:48px;
}
.collab-item span{
  position:absolute;
  top:20px;
  left:24px;
  width:42px;
  height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  border:2px solid var(--ink);
  border-radius:50%;
  background:var(--yellow);
  color:var(--ink);
  font-family:var(--display);
  font-size:15px;
  line-height:1;
  box-shadow:3px 3px 0 var(--ink);
  z-index:5;
}
.collab-item strong{
  align-self:center;
  padding:10px 8px 0;
}

/* Director's Mandarin name is shorter, so keep it visually balanced. */
html[data-language="tw"] .director-copy h2,
html[data-language="cn"] .director-copy h2{
  font-size:clamp(58px,6.4vw,105px);
  line-height:1.05;
  letter-spacing:-.035em;
}
html[data-language="tw"] .director-copy h2 span,
html[data-language="cn"] .director-copy h2 span{
  font-family:var(--body);
  font-size:.42em;
  letter-spacing:.02em;
}

/* Footer foundation name follows the selected language. */
.footer-brand strong{
  display:block;
  max-width:260px;
}
html[data-language="tw"] .footer-brand strong,
html[data-language="cn"] .footer-brand strong{
  font-family:"Noto Sans TC","Noto Sans SC","PingFang TC","PingFang SC",
              "Microsoft JhengHei","Microsoft YaHei",system-ui,sans-serif;
  font-weight:900;
}

@media (max-width:820px){
  .brand-copy strong{max-width:150px}
  html[data-language="en"] .brand-copy strong{
    font-size:12px;
    line-height:1;
  }
  html[data-language="tw"] .brand-copy strong,
  html[data-language="cn"] .brand-copy strong{
    font-size:14px;
    line-height:1.05;
  }
  .collab-item,
  .collab-item:nth-child(even){
    padding-top:53px;
  }
  .collab-item span{
    top:16px;
    left:18px;
    width:38px;
    height:38px;
    font-size:13px;
  }
  html[data-language="tw"] .director-copy h2,
  html[data-language="cn"] .director-copy h2{
    font-size:clamp(48px,13vw,66px);
  }
}


/* =========================================================
   V7 — localized academic degree titles
   ========================================================= */
html[data-language="en"] .director-copy h2{
  font-size:clamp(47px,5.25vw,88px);
  line-height:.98;
}
html[data-language="en"] .director-copy h2 span{
  display:block;
  margin-top:18px;
  font-family:var(--body);
  font-size:clamp(17px,1.35vw,23px);
  font-weight:800;
  line-height:1.35;
  letter-spacing:0;
}
html[data-language="tw"] .director-copy h2 span,
html[data-language="cn"] .director-copy h2 span{
  display:block;
  margin-top:18px;
  font-size:.38em;
  line-height:1.42;
}

@media (max-width:820px){
  html[data-language="en"] .director-copy h2{
    font-size:clamp(38px,10.4vw,50px);
  }
  html[data-language="en"] .director-copy h2 span{
    margin-top:14px;
    font-size:15px;
    line-height:1.35;
  }
  html[data-language="tw"] .director-copy h2 span,
  html[data-language="cn"] .director-copy h2 span{
    margin-top:14px;
    font-size:.34em;
  }
}


/* =========================================================
   V8 — visible and reliable animation on mobile/iOS
   ========================================================= */
@media (max-width:820px){
  html.js-ready.motion-enabled .site-header{
    animation:v8HeaderDrop .62s cubic-bezier(.2,.8,.2,1) both;
  }

  html.js-ready.motion-enabled .hero-eyebrow{
    opacity:0;
    animation:v8FadeUp .6s .08s cubic-bezier(.2,.8,.2,1) both;
  }
  html.js-ready.motion-enabled .hero-line{
    opacity:0;
    animation:v8TitleIn .72s cubic-bezier(.18,.86,.22,1) both;
  }
  html.js-ready.motion-enabled .hero-line:nth-child(1){animation-delay:.14s}
  html.js-ready.motion-enabled .hero-line:nth-child(2){animation-delay:.24s}
  html.js-ready.motion-enabled .hero-line:nth-child(3){animation-delay:.34s}
  html.js-ready.motion-enabled .hero-lead{
    opacity:0;
    animation:v8FadeUp .68s .44s cubic-bezier(.2,.8,.2,1) both;
  }
  html.js-ready.motion-enabled .hero-actions{
    opacity:0;
    animation:v8FadeUp .68s .54s cubic-bezier(.2,.8,.2,1) both;
  }
  html.js-ready.motion-enabled .hero-collage{
    opacity:0;
    animation:v8CollageIn .9s .30s cubic-bezier(.18,.86,.22,1) both;
  }

  /* Continuous, subtle movement so the mobile page does not feel static. */
  html.js-ready.motion-enabled .hero-photo-main{
    animation:v8MainFloat 6.5s 1.2s ease-in-out infinite;
  }
  html.js-ready.motion-enabled .hero-photo-small{
    animation:v8SmallFloat 5.4s 1.35s ease-in-out infinite;
  }
  html.js-ready.motion-enabled .hero-badge{
    animation:v8BadgePulse 4s 1.2s ease-in-out infinite;
  }
  html.js-ready.motion-enabled .orbit-one{
    animation:spin 18s linear infinite;
  }
  html.js-ready.motion-enabled .orbit-two{
    animation:spinReverse 14s linear infinite;
  }
  html.js-ready.motion-enabled .marquee-track{
    animation-duration:20s;
  }

  /* Mobile scroll reveals: keyframes are clearer than the earlier transitions. */
  html.js-ready.motion-enabled .reveal{
    opacity:0;
    transform:translate3d(0,38px,0) scale(.975);
    transition:none!important;
    will-change:opacity,transform;
  }
  html.js-ready.motion-enabled .reveal.from-left,
  html.js-ready.motion-enabled .reveal.from-right{
    transform:translate3d(0,38px,0) scale(.975);
  }
  html.js-ready.motion-enabled .reveal.is-visible{
    animation:v8MobileReveal .72s var(--reveal-delay,0ms) cubic-bezier(.18,.86,.22,1) both;
  }

  html.js-ready.motion-enabled .program-card.is-visible figure img{
    animation:v8PhotoZoom .9s calc(var(--reveal-delay,0ms) + 120ms) cubic-bezier(.2,.8,.2,1) both;
  }
  html.js-ready.motion-enabled .collab-item.is-visible{
    animation:v8ShapePop .72s var(--reveal-delay,0ms) cubic-bezier(.18,.9,.25,1) both;
  }
  html.js-ready.motion-enabled .field-card.is-visible .field-icon{
    animation:v8IconPop .72s calc(var(--reveal-delay,0ms) + 120ms) cubic-bezier(.18,.9,.25,1) both;
  }
  html.js-ready.motion-enabled .journey-step.is-visible figure,
  html.js-ready.motion-enabled .gallery-item.is-visible{
    animation:v8PhotoReveal .78s calc(var(--reveal-delay,0ms) + 80ms) cubic-bezier(.18,.86,.22,1) both;
  }

  .button.is-pressed,
  .language-button.is-pressed,
  .menu-toggle.is-pressed{
    transform:scale(.96)!important;
  }

  .site-nav.open{
    animation:v8MenuOpen .32s cubic-bezier(.2,.8,.2,1) both;
  }

  /* Improve rendering and scrolling performance on phones. */
  .statement,.programs,.collaboration,.fields,.journey,.gallery,.director,.contact{
    content-visibility:auto;
    contain-intrinsic-size:1px 900px;
  }

  html[data-language="en"] .program-yellow .card-kicker{
    max-width:36ch;
    font-size:10px;
    line-height:1.35;
  }
}

@keyframes v8HeaderDrop{
  from{opacity:0;transform:translate3d(0,-20px,0)}
  to{opacity:1;transform:none}
}
@keyframes v8FadeUp{
  from{opacity:0;transform:translate3d(0,24px,0)}
  to{opacity:1;transform:none}
}
@keyframes v8TitleIn{
  from{opacity:0;transform:translate3d(-22px,20px,0) scale(.96)}
  to{opacity:1;transform:none}
}
@keyframes v8CollageIn{
  from{opacity:0;transform:translate3d(0,44px,0) scale(.94)}
  to{opacity:1;transform:none}
}
@keyframes v8MobileReveal{
  from{opacity:0;transform:translate3d(0,38px,0) scale(.975)}
  to{opacity:1;transform:none}
}
@keyframes v8PhotoZoom{
  from{opacity:.55;transform:scale(1.12)}
  to{opacity:1;transform:scale(1)}
}
@keyframes v8ShapePop{
  0%{opacity:0;transform:translate3d(0,34px,0) scale(.92) rotate(-1.5deg)}
  72%{opacity:1;transform:translate3d(0,-4px,0) scale(1.012) rotate(.4deg)}
  100%{opacity:1;transform:none}
}
@keyframes v8IconPop{
  from{opacity:0;transform:translate3d(0,18px,0) scale(.65) rotate(-12deg)}
  to{opacity:1;transform:none}
}
@keyframes v8PhotoReveal{
  from{opacity:0;transform:translate3d(0,22px,0) scale(.94)}
  to{opacity:1;transform:none}
}
@keyframes v8MenuOpen{
  from{opacity:0;transform:translate3d(0,-12px,0) scale(.98)}
  to{opacity:1;transform:none}
}
@keyframes v8MainFloat{
  0%,100%{transform:rotate(1.2deg) translate3d(0,0,0)}
  50%{transform:rotate(.2deg) translate3d(0,-10px,0)}
}
@keyframes v8SmallFloat{
  0%,100%{transform:rotate(-4deg) translate3d(0,0,0)}
  50%{transform:rotate(-2deg) translate3d(0,9px,0)}
}
@keyframes v8BadgePulse{
  0%,100%{transform:rotate(-7deg) scale(1)}
  50%{transform:rotate(-3deg) scale(1.055)}
}

@media (prefers-reduced-motion:reduce){
  html.js-ready .reveal,
  html.js-ready .hero-eyebrow,
  html.js-ready .hero-line,
  html.js-ready .hero-lead,
  html.js-ready .hero-actions,
  html.js-ready .hero-collage{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
}


/* V9: lightweight animations for Chrome, Safari, Firefox, Samsung Internet and in-app browsers. */
html.motion-lite .site-header{animation:v9Header .5s cubic-bezier(.2,.8,.2,1) both}
html.motion-lite .hero-eyebrow{animation:v9Up .5s .05s cubic-bezier(.2,.8,.2,1) both}
html.motion-lite .hero-line{animation:v9Title .62s cubic-bezier(.18,.86,.22,1) both}
html.motion-lite .hero-line:nth-child(1){animation-delay:.10s}
html.motion-lite .hero-line:nth-child(2){animation-delay:.18s}
html.motion-lite .hero-line:nth-child(3){animation-delay:.26s}
html.motion-lite .hero-lead{animation:v9Up .55s .31s cubic-bezier(.2,.8,.2,1) both}
html.motion-lite .hero-actions{animation:v9Up .55s .38s cubic-bezier(.2,.8,.2,1) both}
html.motion-lite .hero-collage{animation:v9Collage .72s .17s cubic-bezier(.18,.86,.22,1) both}
html.motion-lite .hero-photo-main{animation:v9FloatMain 7s 1s ease-in-out infinite}
html.motion-lite .hero-photo-small{animation:v9FloatSmall 6s 1.1s ease-in-out infinite}
html.motion-lite .hero-badge{animation:v9FloatBadge 5s 1s ease-in-out infinite}
html.motion-lite .reveal{opacity:0;transform:translate3d(0,26px,0) scale(.986);transition:none!important;will-change:opacity,transform}
html.motion-lite .reveal.is-visible{animation:v9Reveal .6s var(--reveal-delay,0ms) cubic-bezier(.18,.86,.22,1) both}
html.motion-lite .program-card.is-visible figure img,html.motion-lite .gallery-item.is-visible img{animation:v9Image .7s ease-out both}
html.motion-lite .field-card.is-visible .field-icon{animation:v9Icon .55s .06s cubic-bezier(.18,.9,.25,1) both}
html.motion-lite .collab-item.is-visible{animation:v9Pop .6s cubic-bezier(.18,.9,.25,1) both}
html.motion-lite .button span,html.motion-lite .program-copy a span{animation:v9Arrow 2.4s ease-in-out infinite}
.director-photo img{object-position:center 33%}
@media(max-width:820px){
 html.motion-lite .reveal{transform:translate3d(0,22px,0) scale(.99)}
 html.motion-lite .reveal.is-visible{animation-duration:.56s}
 .director-photo{aspect-ratio:4/5;max-width:430px}
 .director-photo img{object-position:center 28%}
}
@media(prefers-reduced-motion:reduce){
 html.motion-lite .hero-photo-main,html.motion-lite .hero-photo-small,html.motion-lite .hero-badge,html.motion-lite .button span,html.motion-lite .program-copy a span{animation:none!important}
 html.motion-lite .reveal.is-visible,html.motion-lite .site-header,html.motion-lite .hero-eyebrow,html.motion-lite .hero-line,html.motion-lite .hero-lead,html.motion-lite .hero-actions,html.motion-lite .hero-collage{animation-duration:.2s!important}
}
@keyframes v9Header{from{opacity:0;transform:translate3d(0,-14px,0)}to{opacity:1;transform:none}}
@keyframes v9Up{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
@keyframes v9Title{from{opacity:0;transform:translate3d(-16px,14px,0) scale(.97)}to{opacity:1;transform:none}}
@keyframes v9Collage{from{opacity:0;transform:translate3d(0,28px,0) scale(.96)}to{opacity:1;transform:none}}
@keyframes v9Reveal{from{opacity:0;transform:translate3d(0,26px,0) scale(.986)}to{opacity:1;transform:none}}
@keyframes v9Image{from{opacity:.75;transform:scale(1.055)}to{opacity:1;transform:scale(1)}}
@keyframes v9Icon{from{opacity:0;transform:translate3d(0,12px,0) scale(.78) rotate(-7deg)}to{opacity:1;transform:none}}
@keyframes v9Pop{0%{opacity:0;transform:translate3d(0,22px,0) scale(.965)}75%{opacity:1;transform:translate3d(0,-2px,0) scale(1.004)}100%{opacity:1;transform:none}}
@keyframes v9FloatMain{0%,100%{transform:rotate(1deg) translate3d(0,0,0)}50%{transform:rotate(.25deg) translate3d(0,-7px,0)}}
@keyframes v9FloatSmall{0%,100%{transform:rotate(-3deg) translate3d(0,0,0)}50%{transform:rotate(-1.5deg) translate3d(0,6px,0)}}
@keyframes v9FloatBadge{0%,100%{transform:rotate(-6deg) scale(1)}50%{transform:rotate(-3deg) scale(1.03)}}
@keyframes v9Arrow{0%,72%,100%{transform:translate3d(0,0,0)}82%{transform:translate3d(4px,4px,0)}}
