/* TWDCC: full-bleed photography, monochrome interface. */
:root{--plum:#000;--violet:#333;--lilac:#f2f2f2;--paper:#fff;--muted:#555;--line:#d9d9d9;--ink:#000;--carbon:#000;--sand:#fff;--clay:#eee;--clay-2:#ddd;--stone:#999;--taupe:#555;--terracotta:#000;--terracotta-dark:#333;--espresso:#000;--fog:#fafafa;--display:'DM Sans',Arial,sans-serif;--r-card:0px;--r-bento:0px;--r-bento-sm:0px}
body{background:white;color:black}.twd-header{background:#000;color:#fff;border-bottom:1px solid #ffffff30;height:88px}.twd-brand{color:white}.twd-wordmark{font-size:30px;letter-spacing:-1.8px;font-weight:700;line-height:1}.twd-brand-name{font-weight:400;font-size:9px;border-left:1px solid #ffffff60;padding-left:14px}.twd-nav{font-size:11px;letter-spacing:.02em}.twd-nav>a:hover,.twd-about>summary:hover{color:#ccc}.twd-nav .twd-nav-give{background:white;color:black;border-radius:0}.twd-nav .twd-nav-give:hover{background:#ddd;color:black}.twd-about>div{background:black;border-color:#444;border-radius:0}.twd-about a:hover{background:#292929}.twd-menu-button{color:white;border-color:#888;border-radius:0}.page-index .twd-header{position:absolute;left:0;right:0;top:0;background:linear-gradient(#000b,#0000);border:0}.stage-home{background:#000;color:white}.stage-hero{position:relative;min-height:760px;height:100svh;max-height:1200px;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:126px var(--gutter) 44px}.stage-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.stage-hero>.stage-image{object-position:center 52%}.stage-hero:after,.stage-feature:after,.stage-tile:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0005 0%,#0000 45%,#000b 100%);z-index:-1}.stage-topline{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.15em}.stage-hero-copy{margin-top:28px;align-self:flex-start;margin-bottom:auto}.stage-hero-copy .kicker{margin-bottom:18px;font-size:10px}.stage-hero h1{font-size:clamp(64px,7.5vw,118px);font-weight:400;line-height:.95;letter-spacing:-.065em;margin:0;text-shadow:0 2px 20px #0004}.stage-hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.stage-hero-bottom>p{font-size:14px;line-height:1.5;margin:0}.stage-hero-bottom>div{display:flex;gap:12px;margin-left:auto}.stage-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;border:1px solid white;background:white;color:black;padding:17px 22px;min-height:54px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;line-height:1.4;transition:background .2s,color .2s}.stage-button:hover{background:#ddd;border-color:#ddd;color:black}.stage-button.outline{background:#0003;color:white}.stage-button.outline:hover{background:white;color:black}.stage-button.black{background:black;color:white;border-color:black}.stage-scroll{border:1px solid #ffffff80;border-radius:50%;width:52px;height:52px;display:grid;place-items:center;font-size:25px}.stage-intro{padding:100px var(--gutter);display:grid;grid-template-columns:1fr 2fr;gap:80px}.stage-intro>.kicker{padding-top:8px;max-width:24ch;font-size:10px;color:#aaa}.stage-intro h2{font-size:clamp(38px,4.5vw,70px);font-weight:400;line-height:1.07;letter-spacing:-.05em}.stage-intro p:not(.kicker){font-size:17px;line-height:1.8;max-width:58ch;color:#bbb;margin:30px 0}.stage-intro .text-link{color:white;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.stage-feature{position:relative;min-height:740px;height:88svh;max-height:1000px;isolation:isolate;display:flex;align-items:flex-end;padding:72px var(--gutter)}.stage-feature:after{background:linear-gradient(90deg,#0009,#0002),linear-gradient(0deg,#0008,transparent 70%)}.stage-feature-copy{max-width:630px}.stage-feature h2{font-size:clamp(48px,5.8vw,86px);font-weight:400;line-height:1.02;letter-spacing:-.055em}.stage-feature p:not(.kicker){max-width:43ch;font-size:15px;line-height:1.7;margin:26px 0}.stage-feature .kicker{font-size:11px;font-weight:500}.stage-caption{position:absolute;right:var(--gutter);bottom:32px;font-size:9px;letter-spacing:.1em;text-transform:uppercase}.adult-feature{justify-content:flex-end}.adult-feature:not(.rentals-feature):not(.companies-feature)>.stage-image{object-position:center top}.adult-feature:after{background:linear-gradient(270deg,#000b,#0001),linear-gradient(0deg,#0007,transparent)}.adult-feature>.stage-feature-copy{width:50%}.companies-feature>.stage-image{object-position:center 50%}.stage-duo{display:grid;grid-template-columns:1fr 1fr}.stage-tile{position:relative;min-height:600px;isolation:isolate;display:flex;align-items:flex-end;padding:48px var(--gutter);overflow:hidden}.stage-tile:after{background:linear-gradient(0deg,#000c,#0000 95%)}.stage-tile h2{font-size:clamp(36px,3.7vw,56px);font-weight:400;line-height:1.05;letter-spacing:-.04em}.stage-tile .text-link{margin-top:22px;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.stage-tile .stage-image{transition:transform .5s}.stage-tile:hover .stage-image{transform:scale(1.025)}.stage-community{background:white;color:black;display:grid;grid-template-columns:1fr 1fr;align-items:center}.stage-community>div{padding:72px var(--gutter)}.stage-community>img{width:100%;height:100%;min-height:600px;object-fit:cover}.stage-community h2{font-size:clamp(40px,4.3vw,65px);line-height:1.05;font-weight:400;letter-spacing:-.05em}.stage-community p:not(.kicker){font-size:15px;max-width:38ch;color:#555;margin:26px 0}.stage-support{padding:110px var(--gutter);background:#000;color:white;text-align:center}.stage-support h2{font-size:clamp(52px,6.6vw,96px);font-weight:400;line-height:1.02;letter-spacing:-.055em}.stage-support p:not(.kicker){max-width:49ch;margin:28px auto;color:#bbb;font-size:15px}.twd-footer{background:#000;border-top:1px solid #333}.twd-footer h2,.twd-support h2{font-size:clamp(36px,4vw,55px);font-weight:400;letter-spacing:-.05em}.twd-footer .kicker,.twd-footer p:not(.kicker),.footer-links a,.twd-footer-bottom{color:#bbb}.twd-button,.btn,.btn-blue,.btn-solid,.btn-accent,.twd-about a,.people-tile,.people-cap,.frame,.path-card,.scheduler-glass,.gallery-glass,.rental-form-wrap,.level-tab,.twd-day-filter button,.rf-pill,.signup-modal-inner{border-radius:0}.twd-support{background:#f2f2f2}.twd-support h2{font-size:clamp(40px,5vw,72px)}.page-intro{background:#000;color:#fff}.page-intro h1{font-size:clamp(48px,6vw,82px);font-weight:400;letter-spacing:-.05em}.page-intro>p:last-child{color:#bbb}.bar-title,.people-title,.table-head h2,.founder-title,.mv-title,.equity-title,.company-heading,.class-level-title{font-weight:400;letter-spacing:-.04em}.class-row-item h3{text-transform:none}.hero-banner--bleed{height:calc(100svh - 88px);min-height:620px}.class-hero-title{font-size:clamp(60px,9vw,125px);font-weight:400;letter-spacing:-.055em}.hero-bleed-bottom-left{display:block;position:absolute;left:var(--gutter);bottom:52px;max-width:55%;z-index:3}.hero-bleed-title{position:static;transform:none;width:auto;margin:0;text-align:left;font-size:clamp(48px,6vw,82px);font-weight:400;text-transform:none;letter-spacing:-.05em;line-height:1.02;text-shadow:none}.hero-bleed-text{position:static;margin:25px 0 0;text-align:left;max-width:440px}.hero-bleed-dates{border-radius:0;background:#000c;right:var(--gutter);bottom:52px;max-width:330px;text-align:left}.hero-bleed-text .btn{background:white;border-color:white;color:black}.hero-banner--bleed::after{background:linear-gradient(0deg,#000c,transparent 95%)}.rentals-hero{height:70svh;min-height:460px}.rentals-hero-title,.story-hero-title{font-weight:400;letter-spacing:-.05em}.rental-form-title{font-weight:400;font-size:46px}.callout-blue,.callout-blue strong{color:black}.twd-day-filter button[aria-pressed=true],.level-tab.active{background:black}.twd-media-toggle{border-radius:0}.twd-header a:focus-visible,.stage-home a:focus-visible{outline-color:white}
@media(max-width:1000px){.stage-hero{padding-top:120px}.stage-hero-bottom>p{display:none}.stage-hero-bottom>div{margin-left:0}.stage-intro{gap:35px;grid-template-columns:1fr 2fr}.stage-tile{padding:35px;min-height:480px}.twd-brand-name{display:none}.adult-feature>.stage-feature-copy{width:65%}.hero-bleed-dates{max-width:290px}.hero-bleed-bottom-left{max-width:48%}}
@media(max-width:900px){.twd-header{height:80px}.twd-brand-name{display:block}.twd-nav{background:black;top:79px;border-color:#444}.twd-about>div{background:#151515}.twd-nav>a,.twd-about>summary{font-size:15px}.twd-nav .twd-nav-give{margin-top:12px}.stage-feature{min-height:660px}.hero-bleed-bottom-left{max-width:45%}}
@media(max-width:600px){.twd-wordmark{font-size:27px}.twd-brand-name{font-size:8px;max-width:130px}.twd-brand{gap:10px}.twd-menu-button{padding:8px 12px}.stage-hero{height:calc(100svh);min-height:720px;max-height:none;padding:106px 22px 30px}.stage-topline{font-size:8px;letter-spacing:.1em}.stage-topline span:last-child{display:none}.stage-hero-copy{margin-top:34px}.stage-hero-copy .kicker{font-size:8px;letter-spacing:.08em}.stage-hero h1{font-size:68px;line-height:.98;letter-spacing:-.055em}.stage-hero>.stage-image{object-position:56% center}.stage-hero:after{background:linear-gradient(180deg,#0009,transparent 60%,#000c)}.stage-hero-bottom{gap:15px}.stage-hero-bottom>div{flex-direction:column;gap:10px;width:100%}.stage-button{font-size:10px;min-height:50px;padding:16px 18px;gap:16px}.stage-scroll{display:none}.stage-intro{display:block;padding:56px 22px}.stage-intro>.kicker{max-width:none;margin-bottom:30px;font-size:9px}.stage-intro h2{font-size:39px}.stage-intro p:not(.kicker){font-size:15px;margin:24px 0}.stage-feature{height:83svh;min-height:620px;padding:40px 22px 60px;align-items:flex-end}.stage-feature h2{font-size:48px}.stage-feature .kicker{font-size:9px}.stage-feature p:not(.kicker){font-size:14px;margin:22px 0;max-width:32ch}.stage-feature:after,.adult-feature:after{background:linear-gradient(0deg,#000d,#0001)}.adult-feature>.stage-feature-copy{width:100%}.stage-caption{left:22px;right:auto;bottom:22px;font-size:8px}.stage-duo{grid-template-columns:1fr}.stage-tile{min-height:530px;padding:34px 22px}.stage-tile h2{font-size:43px}.stage-community{grid-template-columns:1fr}.stage-community>div{padding:56px 22px}.stage-community h2{font-size:45px}.stage-community>img{min-height:0;height:380px;object-position:center}.stage-support{padding:70px 22px}.stage-support h2{font-size:49px}.stage-support p:not(.kicker){font-size:14px}.twd-footer h2{font-size:38px}.hero-banner--bleed{min-height:500px;height:70svh}.class-hero-title{font-size:62px}.page-youth-program .hero-banner--bleed{display:block;min-height:0;height:auto;padding-top:430px;overflow:hidden}.page-youth-program .hero-banner--bleed>img{position:absolute;top:0;left:0;height:430px;width:100%;object-fit:cover}.page-youth-program .hero-banner--bleed:after{display:block;position:absolute;top:0;height:430px;background:linear-gradient(0deg,#000b,transparent);z-index:1}.hero-bleed-bottom-left{position:relative;left:auto;bottom:auto;max-width:none;padding:30px 22px;background:#000}.hero-bleed-title{font-size:46px;margin:0;position:static;text-align:left;transform:none}.hero-bleed-text{margin:22px 0 0;position:static;text-align:left}.hero-bleed-dates{position:relative;right:auto;bottom:auto;margin:0 22px 28px;max-width:none;padding:20px;background:black;z-index:3}.page-youth-program .hero-banner--bleed .hero-bleed-title{color:white}.rentals-hero{height:60svh;min-height:390px}.rentals-hero-title{font-size:54px}.rental-form-title{font-size:36px}.people-cap h4{font-size:18px}.page-intro h1{font-size:46px}.twd-support h2{font-size:43px}}
.rf-days-row{flex-wrap:wrap;overflow:visible}.rf-days-row .rf-checkbox{max-width:100%;min-height:44px;flex-shrink:1}.rf-checkbox:focus-within .rf-checkbox-mark{outline:2px solid #000;outline-offset:3px}.rf-field,.rf-group{min-width:0}.rental-form input,.rental-form textarea,.rental-form select{max-width:100%}.scheduler-head h1{font-size:44px;font-weight:400;letter-spacing:-.04em;line-height:1.12;margin:0 0 10px}.twd-menu-button:focus-visible{outline-color:white}
@media(max-width:600px){.stage-hero h1{font-size:clamp(45px,14vw,64px)}.page-youth-program .class-tiles-wrap{padding:0 var(--gutter)}.scheduler-head h1{font-size:38px}}

/* Photo-led youth class directory */
.youth-courses{padding-bottom:0;background:#fff}.youth-courses .table-head{margin-bottom:40px}.youth-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:#fff}.youth-course{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:620px;padding:clamp(28px,4vw,64px);overflow:hidden;color:#fff;background:#000}.youth-course>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s}.youth-course::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 15%,#0006 45%,#000f 100%)}.youth-course-copy{width:100%;max-width:550px}.youth-course h3{font-family:var(--font-sans);font-size:clamp(36px,4vw,60px);font-weight:400;line-height:1.05;letter-spacing:-.045em;color:white;margin:0}.youth-course p{font-size:15px;line-height:1.7;color:#eee;margin:20px 0 27px;max-width:48ch}.youth-course-link{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff70;padding-top:19px;min-height:44px;text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:600}.youth-course-link>span{font-size:23px}.youth-course:hover>img{transform:scale(1.025)}.youth-course:focus-visible{outline:3px solid white;outline-offset:-8px}.youth-course:hover .youth-course-link{text-decoration:underline;text-underline-offset:5px}
@media(max-width:900px){.youth-course{min-height:560px;padding:30px}.youth-course h3{font-size:40px}.youth-course p{font-size:14px}}
@media(max-width:600px){.youth-course-grid{grid-template-columns:1fr}.youth-course{min-height:540px;padding:28px 22px}.youth-course h3{font-size:42px}.youth-course p{max-width:36ch}.youth-courses .table-head{margin-bottom:28px}}

/* Match the FAQ media to its adjacent content, even as answers expand. */
@media(min-width:801px){.page-youth-program .faq-grid{align-items:stretch}.page-youth-program .faq-photo{aspect-ratio:auto;align-self:stretch;min-height:0}.page-youth-program .faq-photo .give-video-crossfade{position:absolute;inset:0}}

/* Portrait cards inspired by the supplied reference. */
.page-our-people .section-white{background:#f6f6f5}
.page-our-people .people-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.page-our-people .people-tile{position:relative;display:block;isolation:isolate;aspect-ratio:3/4;min-height:420px;border:6px solid #fff;border-radius:32px;overflow:hidden;background:#333;box-shadow:0 12px 32px #00000012;transition:transform .25s,box-shadow .25s}
.page-our-people .people-tile>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0}
.page-our-people .people-tile::after{content:"";display:block;position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 35%,#0003 55%,#000e 100%);pointer-events:none}
.page-our-people .people-cap{position:absolute;inset:auto 0 0;z-index:2;margin:0;padding:28px;background:transparent;border:0;border-radius:0;backdrop-filter:none;color:#fff;text-align:left}
.page-our-people .people-cap h4{font-size:clamp(26px,2.5vw,36px);font-weight:700;line-height:1.08;letter-spacing:-.045em;text-transform:none;color:#fff;margin:0 0 12px}
.page-our-people .people-cap p{font-size:15px;line-height:1.5;color:#eee;margin:0;max-width:30ch}
.page-our-people .people-tile:hover{transform:translateY(-4px);box-shadow:0 18px 38px #00000022}
.page-our-people .people-tile:focus-visible{outline:3px solid #000;outline-offset:5px}
@media(max-width:1000px){.page-our-people .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page-our-people .people-grid{grid-template-columns:1fr;gap:28px}.page-our-people .people-tile{min-height:430px;border-radius:28px}.page-our-people .people-cap{padding:25px}.page-our-people .people-cap h4{font-size:32px}}
@media(prefers-reduced-motion:reduce){.page-our-people .people-tile{transition:none}.page-our-people .people-tile:hover{transform:none}}

/* Animated border beam for the Our Story support link. */
@property --support-beam-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.support-beam{--support-beam-angle:0deg;position:relative;isolation:isolate;border:2px solid transparent!important;background:linear-gradient(#080808,#080808) padding-box,conic-gradient(from var(--support-beam-angle),#333 0%,#333 55%,#8b5cf6 70%,#38bdf8 80%,#fff 87%,#f472b6 93%,#333 100%) border-box!important;color:#fff!important;animation:support-beam-orbit 4s linear infinite}
.support-beam::before{content:'';position:absolute;inset:-3px;z-index:-1;border-radius:inherit;background:conic-gradient(from var(--support-beam-angle),transparent 55%,#8b5cf680 70%,#38bdf880 80%,#f472b680 93%,transparent);filter:blur(8px);opacity:.55;pointer-events:none}
.support-beam:hover{filter:brightness(1.15)}
@keyframes support-beam-orbit{to{--support-beam-angle:360deg}}
@media(prefers-reduced-motion:reduce){.support-beam{animation:none}}

/* Keep the calendar workspace within the viewport. */
.page-calendar{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.page-calendar>.twd-header{flex-shrink:0}
.page-calendar>.twd-support,.page-calendar>.twd-footer{display:none}
.page-calendar .studio-a-main--split{flex:1;min-height:0;height:auto;padding:24px var(--gutter);overflow:hidden}
.page-calendar .studio-a-split{height:100%;min-height:0;align-items:stretch}
.page-calendar .studio-a-left,.page-calendar .studio-a-booking{height:100%;min-height:0;position:relative}
.page-calendar .schedule-panel{position:relative;inset:auto;height:100%;min-height:0;overflow:hidden;padding:20px;gap:8px}
.page-calendar .scheduler-head{flex-shrink:0}
.page-calendar .scheduler-head h1,.page-calendar .scheduler-head h2{font-size:30px;margin:0}
.page-calendar .scheduler-head p{margin:0 0 6px}
.page-calendar .cal-grid{min-height:0;flex:1;grid-auto-rows:minmax(0,1fr)}
.page-calendar .cal-day{min-height:0;height:auto;padding:5px}
.page-calendar .schedule-list{overflow-y:auto;overscroll-behavior:contain}
@media(max-width:700px){.page-calendar .studio-a-main--split{padding:12px}.page-calendar .studio-a-split{grid-template-columns:1fr;grid-template-rows:minmax(260px,1.1fr) minmax(0,1fr);gap:12px}.page-calendar .schedule-panel{padding:12px;gap:4px}.page-calendar .scheduler-head h1,.page-calendar .scheduler-head h2{font-size:24px}.page-calendar .cal-nav{margin:0;padding:0}.page-calendar .cal-day{font-size:12px;padding:2px}}

.rf-submit.is-ready:not(:disabled){background:#0066e6;border-color:#0066e6;color:#fff}.rf-submit.is-ready:not(:disabled):hover{background:#0053bd;border-color:#0053bd}



/* Keep Caitlin link text white before hover */
.page-adult-classes .class-row-item a.twd-button:not(:hover) { color: #fff; }


/* Compact Caitlin link button with softened corners */
.page-adult-classes .class-row-item a.twd-button { border-radius: 8px; padding-left: 14px; padding-right: 14px; gap: 10px; width: fit-content; }

