:root{--ink:#111211;--paper:#ffffff;--lime:#ffd000;--muted:#a9aaa2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}a{color:inherit}header{min-height:98px;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:white;gap:30px}.brand{font-size:30px;font-weight:900;letter-spacing:-1.5px;line-height:1;text-decoration:none;display:inline-block}.brand span{display:block;font-size:10px;letter-spacing:1.15px;margin-top:9px;font-weight:600}nav{display:flex;align-items:center;gap:26px}nav a{font-size:14px;text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--lime);color:var(--ink);padding:17px 24px;font-size:16px;font-weight:700;text-decoration:none;border:1px solid transparent;min-height:54px}.button:hover{background:#edbd00}.button.small{padding:11px 21px;min-height:44px;font-size:14px}.menu{display:none}.hero{background:var(--ink);color:white;display:grid;grid-template-columns:1.05fr 1fr;min-height:660px;padding:58px 5% 66px;gap:48px}.eyebrow{font-size:13px;letter-spacing:2px;font-weight:700;margin:0 0 26px}.hero .eyebrow{color:var(--lime)}h1{font-size:clamp(46px,5.5vw,88px);line-height:.99;letter-spacing:-4px;margin:0 0 29px;font-weight:900}em{font-style:normal;color:var(--lime)}.intro{font-size:18px;max-width:460px;color:#d1d2cb}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:31px}.text-link{font-weight:700;text-underline-offset:6px}.hero-note{font-size:12px;letter-spacing:2px;color:var(--muted);margin-top:34px}.hero-image{position:relative;align-self:stretch;min-height:480px}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;filter:saturate(.85)}.image-label{position:absolute;bottom:20px;left:20px;right:20px;background:var(--lime);color:var(--ink);padding:12px;font-size:12px;font-weight:800;letter-spacing:1px}.ticker{background:var(--lime);display:flex;justify-content:space-around;gap:15px;padding:20px 5%;font-size:17px;letter-spacing:3px;font-weight:900}.section{padding:90px 5%}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:38px}.section-heading .eyebrow{margin-bottom:16px}h2{font-size:clamp(34px,4vw,60px);line-height:1.04;letter-spacing:-2px;margin:0}.section-heading>p{max-width:350px;color:#595b54;margin:0}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}.filters button{font:inherit;font-size:14px;border:1px solid #c5c7bf;background:transparent;padding:10px 18px;cursor:pointer;border-radius:30px}.filters .active{background:var(--ink);color:white;border-color:var(--ink)}.programs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.programs article{border:1px solid #cccec5;padding:30px;display:flex;flex-direction:column;min-height:355px;background:white}.number{font-size:15px;color:#767a6d}h3{font-size:29px;letter-spacing:-1px;line-height:1.1;margin:30px 0 18px}.programs p{color:#595b54;margin:0 0 26px}.tag{font-size:12px;font-weight:700;letter-spacing:1px;margin-top:auto}.programs a{font-size:14px;font-weight:700;margin-top:22px;text-underline-offset:5px}.class-help{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:28px;border-top:1px solid #cccec5;padding-top:24px}.class-help p{max-width:700px;margin:0}.class-help a{white-space:nowrap}.culture{display:grid;grid-template-columns:1fr 1fr;gap:75px;background:var(--ink);color:white;padding:85px 5%}.culture .eyebrow{color:var(--lime)}.culture p:not(.eyebrow){color:#c4c6bd;max-width:490px;font-size:18px}.culture-photo img{width:100%;height:390px;object-fit:cover}.culture-photo p{font-size:12px!important;letter-spacing:1.5px}.locations{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.locations article{border-top:3px solid var(--ink);padding-top:24px}.locations span,.extras span{font-size:12px;letter-spacing:1.3px;font-weight:700}.locations h3{margin-top:17px}.locations p{color:#595b54}.locations a{font-weight:700;font-size:14px;text-underline-offset:5px}.beyond{padding-top:0}.extras{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.extras>a{display:block;text-decoration:none;background:#f3f3f3;padding:30px}.extras>a:hover{background:#fff1b3}.extras h3{margin-top:28px}.extras p{color:#595b54}.extras b{display:block;font-size:14px;text-decoration:underline;text-underline-offset:5px;margin-top:32px}.final-cta{background:var(--lime);padding:68px 5%;text-align:center}.final-cta h2{font-size:clamp(46px,6vw,80px);margin-bottom:30px}.button.dark{background:var(--ink);color:white}.button.dark:hover{background:#34362d}footer{background:var(--ink);color:white;padding:55px 5% 25px;display:grid;grid-template-columns:1fr 1fr;gap:30px}footer p{color:var(--muted);font-size:14px}footer>div:nth-child(2){display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:14px}.copyright{grid-column:1/-1;border-top:1px solid #393b33;padding-top:24px;font-size:12px}a:focus-visible,button:focus-visible{outline:3px solid #7b64ff;outline-offset:5px}[hidden]{display:none!important}@media(min-width:1500px){header,.hero,.section,.culture,footer{padding-left:max(5%,calc((100vw - 1380px)/2));padding-right:max(5%,calc((100vw - 1380px)/2))}}@media(max-width:950px){nav{gap:15px}.hero{gap:25px}h1{letter-spacing:-2px}.programs article{padding:24px}.culture{gap:35px}.hero-image{min-height:410px}}@media(max-width:760px){header{flex-wrap:wrap;min-height:88px}.brand{font-size:27px}.menu{display:block;background:none;color:white;border:1px solid #777;padding:10px 14px;font:inherit;font-size:14px}nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{padding:13px 0}nav .button{margin-top:10px}.hero{grid-template-columns:1fr;padding-top:42px;gap:30px;min-height:0}.hero-image{min-height:330px}h1{font-size:clamp(42px,10vw,70px)}.hero-note{margin-bottom:0}.ticker{font-size:11px;letter-spacing:1px;gap:8px}.section{padding:58px 5%}.section-heading{display:block}.section-heading>p{margin-top:22px;max-width:100%}.programs,.locations,.extras,.culture{grid-template-columns:1fr}.programs article{min-height:290px}.class-help{align-items:flex-start;flex-direction:column;gap:17px}.class-help a{white-space:normal}.culture{padding:58px 5%;gap:32px}.culture-photo img{height:340px}.locations{gap:36px}.beyond{padding-top:0}.final-cta{padding:55px 5%}footer{grid-template-columns:1fr}footer>div:nth-child(2){align-items:flex-start}.copyright{grid-column:1}.actions{gap:20px}.eyebrow{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero-image img{object-position:52% center;filter:none}.culture-photo img{height:auto;max-height:590px;object-fit:contain;object-position:center;background:#0c0c0c}.performance-strip{margin-top:45px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}.performance-strip img{width:100%;max-height:450px;object-fit:cover}.performance-strip p{color:#595b54}.performance-strip h3{font-size:36px}@media(max-width:760px){.performance-strip{grid-template-columns:1fr;gap:15px}}

.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-gallery figure{margin:0}.photo-gallery img{display:block;width:100%;height:360px;object-fit:cover;background:#111}.photo-gallery figure:nth-child(4) img{object-position:center 65%}.photo-gallery figcaption{font-size:14px;font-weight:700;padding:14px 0;border-bottom:1px solid #ddd}@media(max-width:950px){.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.photo-gallery{grid-template-columns:1fr}.photo-gallery img{height:auto;max-height:500px;object-fit:contain}}

.hero-image{overflow:hidden}.hero-image .hero-slide{opacity:0;transition:opacity 1.2s ease;object-fit:cover}.hero-image .hero-slide.current{opacity:1;animation:photo-drift 7s ease-out both}.motion-toggle{position:absolute;right:16px;top:16px;z-index:2;background:#111d;color:white;border:1px solid #ffffff80;padding:10px 14px;font:inherit;font-size:14px;cursor:pointer}.image-label{z-index:2}.photo-gallery img{transition:transform .5s ease}.photo-gallery figure{overflow:hidden}.photo-gallery figure:hover img{transform:scale(1.035)}.programs article,.extras>a{transition:transform .3s ease,box-shadow .3s ease}.programs article:hover,.extras>a:hover{transform:translateY(-5px);box-shadow:0 12px 25px #00000012}.reveal-ready{opacity:0;transform:translateY(35px);transition:opacity .7s ease,transform .7s ease}.reveal-ready.revealed{opacity:1;transform:translateY(0)}@keyframes photo-drift{from{transform:scale(1)}to{transform:scale(1.07)}}@media(prefers-reduced-motion:reduce){.hero-image .hero-slide.current{animation:none}.hero-image .hero-slide,.photo-gallery img,.programs article,.extras>a,.reveal-ready{transition:none}.reveal-ready{opacity:1;transform:none}.programs article:hover,.extras>a:hover,.photo-gallery figure:hover img{transform:none}}
@media(max-width:1050px){header{flex-wrap:wrap}.menu{display:block;background:none;color:white;border:1px solid #777;padding:10px 14px;font:inherit;font-size:14px}header nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}header nav.open{display:flex}header nav a{padding:13px 0}header nav .button{margin-top:10px}}
@media(max-width:1150px){header{flex-wrap:wrap}.menu{display:block;background:none;color:white;border:1px solid #777;padding:10px 14px;font:inherit;font-size:14px}nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{padding:13px 0}nav .button{margin-top:10px}}
/* Keep grid content within the viewport and refresh mobile navigation. */
html,body{max-width:100%;overflow-x:clip}main,header,footer,section{min-width:0}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.hero>*{min-width:0}img,iframe{max-width:100%}header .brand{flex-shrink:0}header nav{flex-wrap:wrap}header nav a{overflow-wrap:normal}p{overflow-wrap:break-word}@media(max-width:1200px){header{flex-wrap:wrap}header .menu{display:block;background:none;color:white;border:1px solid #777;padding:10px 14px;font:inherit;font-size:14px}header nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0}header nav.open{display:flex}header nav a{padding:13px 0}}@media(max-width:760px){.hero{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:clamp(38px,10vw,64px);letter-spacing:-1.5px}.hero-image{width:100%;min-height:330px}.brand span{font-size:10px;letter-spacing:.7px}}
