/* Curriculum: stationary rows, masked labels, separately drawn rules. */
.curriculum-list summary .curriculum-label{display:block;flex:1;min-width:0;overflow:hidden;font:inherit;color:inherit;padding-block:.12em;margin-block:-.12em}
.curriculum-label-text{display:block}
.curriculum-list details.has-entrance-rule{position:relative;border-color:transparent}
.curriculum-entrance-rule{position:absolute;pointer-events:none;top:-1px;left:0;right:0;height:1px;background:var(--line)}
.curriculum-entrance-rule--last{top:auto;bottom:-1px}

/* A blue menu curtain echoes the hero's masks and fine curved outlines. */
.menu-toggle span{transition:transform .6s cubic-bezier(.22,1,.36,1)}
@media(max-width:1000px){
  .mobile-nav:not([hidden]){position:fixed;top:74px;bottom:0;display:flex;gap:0;padding:clamp(22px,4svh,44px) var(--gutter) max(22px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:var(--blue);color:white;border:0;isolation:isolate}
  .mobile-nav:before,.mobile-nav:after{content:'';position:absolute;z-index:-1;pointer-events:none;width:140%;height:85%;border:1px solid #ffffff20;border-radius:50%;top:8%;left:-20%;transform:rotate(-28deg)}
  .mobile-nav:after{width:175%;height:110%;top:-4%;left:-37%}
  .mobile-menu-eyebrow{max-width:290px;font-size:10px;line-height:1.65;letter-spacing:.1em;opacity:.7;margin-bottom:clamp(25px,5svh,54px)}
  .mobile-nav>a{position:relative;display:flex;align-items:center;gap:18px;padding:clamp(17px,3svh,29px) 0;font:400 clamp(30px,5.5vw,56px)/1.15 var(--serif);letter-spacing:-.035em;flex:none}
  .mobile-menu-rule{position:absolute;top:0;left:0;right:0;height:1px;background:#ffffff35;pointer-events:none}
  .mobile-menu-number{align-self:center;font:400 10px/1 var(--sans);letter-spacing:0;opacity:.6;flex:none}
  .mobile-menu-mask{display:block;overflow:hidden;padding-block:.16em;margin-block:-.16em;min-width:0;flex:1}
  .mobile-menu-label{display:block}
  .mobile-menu-dot{display:block;width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
  .mobile-menu-footer{display:flex;justify-content:space-between;gap:20px;padding-top:32px;margin-top:auto;font-size:10px;line-height:1.6;letter-spacing:.08em;opacity:.7}
}
@media(max-width:700px){
  .mobile-nav:not([hidden]){top:64px;padding-inline:24px}
  .mobile-nav>a{font-size:clamp(29px,7.3vw,46px);gap:14px}
}
@media(prefers-reduced-motion:reduce){.menu-toggle span{transition:none}}

/* Large photographic fields and a continuous blue / white motion direction. */
.hero{height:max(780px,calc(100svh - 74px));min-height:780px;max-height:1040px}
.hero-topline{display:none}
.hero-center{width:61%;max-width:none;margin:0;padding:65px 0 0 var(--gutter);text-align:left;pointer-events:auto}
.hero-eyebrow{font-size:11px;letter-spacing:.1em;margin:0;max-width:none}
.hero h1{font-size:clamp(58px,5.5vw,96px);line-height:1.13;letter-spacing:-.045em;margin:24px -20px 24px 0}
.title-mask{padding-bottom:.12em}.title-mask+.title-mask{margin-top:-.08em}
.hero-actions{display:flex;gap:28px;align-items:center;max-width:720px}
.hero-intro{font-size:15px;line-height:1.7;margin:0;max-width:370px;flex:1}
.hero-intro br{display:none}.hero-center .button{margin:0;flex:none;min-height:62px;padding:18px 27px;gap:20px}
.hero-image{max-width:none;z-index:2}
.hero-image-left{width:31%;left:auto;right:var(--gutter);top:48px;bottom:86px}
.hero-image-left .image-window{height:calc(100% - 32px);aspect-ratio:auto;border-radius:240px 240px 4px 4px}
.hero-image-left img{object-position:50% 45%}
.hero-image-right{width:50%;right:auto;left:var(--gutter);top:auto;bottom:82px}
.hero-image-right .image-window{height:clamp(250px,21vw,360px);aspect-ratio:auto;border-radius:4px 4px 120px 4px}
.hero-image-right img{object-position:54% 57%}
.hero-image figcaption{display:block;text-align:left;font-size:10px;line-height:1.5;margin-top:14px;letter-spacing:.1em;opacity:.85}
.hero-bottom{bottom:23px;align-items:center}.hero-bottom>p{display:none}.hero-bottom>span{display:block}
.scroll-stroke{height:27px}.hero-lines{opacity:.55}
.hero-lines span{width:140%;height:115%;top:-15%;left:-20%;transform:rotate(-28deg)}
.hero-lines span:nth-child(2){width:155%;height:135%;top:-25%;left:-27%}.hero-lines span:nth-child(3){display:none}

/* A circular fill and a rolling label also respond to keyboard focus. */
.button,.header-contact{--button-rest:var(--blue);--button-ink:#fff;--button-hover:#fff;--button-hover-ink:var(--blue);isolation:isolate;overflow:hidden;position:relative;background:var(--button-rest);color:var(--button-ink);border-color:var(--button-rest);transition:color .38s,border-color .38s;transform:translateZ(0)}
.button-white{--button-rest:#fff;--button-ink:var(--blue);--button-hover:var(--blue);--button-hover-ink:#fff}
.header-contact{--button-rest:#fff;--button-ink:var(--blue);--button-hover:var(--blue);--button-hover-ink:#fff;border-color:var(--blue)}
.button-fill{position:absolute;z-index:-1;width:220%;aspect-ratio:1;left:50%;top:50%;border-radius:50%;background:var(--button-hover);pointer-events:none;transform:translate(-50%,25%) scale(.35);transition:transform .75s cubic-bezier(.22,1,.36,1)}
.button-label{display:block;position:relative;overflow:hidden;line-height:1.5;text-align:inherit}
.button-label>span{display:block;transition:transform .62s cubic-bezier(.22,1,.36,1)}
.button-label>span+span{position:absolute;top:100%;left:0;width:100%;white-space:nowrap}
.button:is(:hover,:focus-visible),.header-contact:is(:hover,:focus-visible){background:var(--button-rest);color:var(--button-hover-ink);border-color:currentColor}
.button:is(:hover,:focus-visible) .button-fill,.header-contact:is(:hover,:focus-visible) .button-fill{transform:translate(-50%,-50%) scale(1)}
.button:is(:hover,:focus-visible) .button-label>span,.header-contact:is(:hover,:focus-visible) .button-label>span,.text-button:is(:hover,:focus-visible) .button-label>span{transform:translateY(-100%)}
.button i{width:8px;height:8px;transition:transform .6s cubic-bezier(.22,1,.36,1);background:currentColor}.button:is(:hover,:focus-visible) i{transform:scale(.65)}
.button:active,.header-contact:active{scale:.98}
.inline-link,.back-top,.text-button{position:relative}.inline-link,.back-top{border-bottom-color:transparent}
.inline-link:after,.back-top:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transition:transform .5s cubic-bezier(.22,1,.36,1)}
.inline-link:is(:hover,:focus-visible):after,.back-top:is(:hover,:focus-visible):after{transform:scaleX(.25)}
.round-button{position:relative;isolation:isolate;overflow:hidden;transition:border-color .4s}
.round-button:before{content:'';position:absolute;inset:0;background:var(--blue);border-radius:50%;transform:scale(0);transition:transform .45s cubic-bezier(.22,1,.36,1);z-index:-1}
.round-button:is(:hover,:focus-visible):before{transform:scale(1)}.round-button:is(:hover,:focus-visible) .chevron{border-color:#fff}

/* Both surfaces contain the same text. The decorative duplicate is aria-hidden. */
.intro-section{position:relative;overflow:clip;padding:0!important;background:#fff}
.intro-surface{padding:112px var(--gutter) 100px}
.intro-surface>.eyebrow{text-align:center;color:var(--muted)}
.intro-surface--blue{position:absolute;inset:0;background:var(--blue);color:#fff;pointer-events:none;clip-path:ellipse(140% 140% at 50% 0%)}
.intro-surface--blue :is(em,strong,p,span,small){color:#fff}
.intro-surface--blue .intro-bottom>p,.intro-surface--blue .intro-facts span{color:#fff;opacity:.85}
.intro-surface--blue .eyebrow{color:#fff;opacity:.7}
.intro-section .intro-statement{font-size:clamp(40px,5.3vw,80px)}
.intro-section .reveal{opacity:1!important;transform:none!important;visibility:visible!important}

/* Program rows become one blue field on interaction. */
.program-cards article:before{background:var(--blue);opacity:1;transform:scaleX(0);transform-origin:left;transition:transform .65s cubic-bezier(.22,1,.36,1);border-radius:2px}
.program-cards article:is(:hover,:focus-within):before{transform:scaleX(1)}
.program-cards article :is(h3,p,.card-index,.card-price,.card-stats,.text-button){transition:color .45s}
.program-cards article:is(:hover,:focus-within) :is(h3,p,.card-index,.card-price,.card-stats,.text-button){color:#fff}
.text-button:hover{opacity:1}
.scene-photo{position:relative;aspect-ratio:3/2;height:auto;min-height:0;align-self:center;width:100%}.practice-scene{will-change:auto}
.practice-story.is-animated .scene-photo{height:auto;min-height:0;aspect-ratio:3/2}
.scene-photo img{width:100%;height:100%;object-fit:contain}
.clinic-panorama{height:clamp(410px,48vw,720px);position:relative}
.contact-section{position:relative;clip-path:inset(0 round 0)}
@media (hover:none){.program-cards article:hover:before{transform:scaleX(0)}.program-cards article:hover :is(h3,.card-price,.text-button){color:var(--blue)}.program-cards article:hover :is(p,.card-index){color:var(--muted)}.program-cards article:hover .card-stats{color:var(--ink)}}
@media(min-width:1700px){.hero-center{padding-top:74px}.hero-image-left{top:48px;right:var(--gutter);bottom:86px}.hero-image-right{left:var(--gutter);right:auto;top:auto;bottom:82px}.hero h1{font-size:96px}}
@media(max-width:1200px) and (min-width:701px){.hero{height:850px;min-height:850px;max-height:none}.hero-center{width:61%;padding-top:62px}.hero h1{font-size:clamp(43px,5.5vw,66px)}.hero-actions{align-items:flex-start;flex-direction:column;gap:21px}.hero-intro{max-width:340px;font-size:15px}.hero-center .button{min-height:54px;padding:15px 25px}.hero-image-left{width:32%;top:83px;bottom:100px}.hero-image-right{width:51%;bottom:88px}.hero-image-right .image-window{height:230px}.hero-image figcaption{font-size:9px}.intro-surface{padding-block:85px}.intro-section .intro-statement{font-size:clamp(40px,5.5vw,63px)}}
@media(max-width:700px){.hero{height:max(790px,calc(100svh - 64px));min-height:790px;max-height:920px}.hero-center{width:100%;padding:46px 24px 0;text-align:center}.hero-eyebrow{font-size:10px;max-width:310px;margin:auto}.hero h1{font-size:clamp(32px,8.6vw,58px);letter-spacing:-.045em;line-height:1.16;margin:21px -6px 22px}.hero-actions{display:flex;flex-direction:column;gap:20px;align-items:center}.hero-intro{font-size:15px;max-width:365px;line-height:1.65;flex:auto}.hero-center .button{min-height:54px;padding:15px 26px;margin:0}.hero-image-left{width:44%;max-width:270px;left:6%;right:auto;top:auto;bottom:86px;height:clamp(310px,78vw,370px);z-index:2}.hero-image-left .image-window{height:100%;border-radius:180px 180px 3px 3px}.hero-image-left img{object-position:50% 34%}.hero-image-right{width:52%;max-width:360px;left:auto;right:5%;bottom:117px;top:auto;z-index:3}.hero-image-right .image-window{height:clamp(175px,49vw,275px);border-radius:3px 3px 80px 3px}.hero-image-right img{object-position:64% 50%}.hero-image figcaption{display:none}.hero-bottom{left:24px;right:24px;bottom:24px}.hero-bottom>span{font-size:10px}.hero-bottom .scroll-link{font-size:9px;max-width:240px}.intro-surface{padding:72px 24px 64px}.intro-section .intro-statement{font-size:clamp(31px,8.3vw,47px)}.intro-surface>.eyebrow{font-size:10px}.clinic-panorama{height:360px}.program-cards article:before{inset:0 -12px}}
@media(max-width:380px){.hero{height:720px;min-height:720px}.hero-center{padding-top:39px}.hero h1{font-size:clamp(28px,8.6vw,32px)}.hero-intro{font-size:14px}.hero-image-left{height:275px;bottom:76px}.hero-image-right{height:auto;bottom:114px}.hero-image-right .image-window{height:178px}.hero-center .button{font-size:13px}.hero-eyebrow{max-width:270px}}
@media(min-width:1101px){.program-cards article{grid-template-columns:180px minmax(240px,1fr) minmax(190px,.85fr) 180px;column-gap:40px}.card-index{max-width:170px}.program-cards h3{font-size:clamp(27px,2.35vw,36px)}}
@media(min-width:701px) and (max-width:1100px){.program-cards article{grid-template-columns:minmax(0,1fr) 190px;column-gap:42px;row-gap:18px;padding-block:32px}.card-index{grid-column:1/-1;grid-row:1;max-width:none}.program-cards h3{grid-column:1;grid-row:2;font-size:32px}.program-cards p{grid-column:1;grid-row:3;max-width:430px}.card-stats{grid-column:1;grid-row:4}.card-price{grid-column:2;grid-row:2}.text-button{grid-column:2;grid-row:4}}
@media(prefers-reduced-motion:reduce){.button-fill,.button-label>span,.program-cards article:before{transition:none}.intro-surface--blue{display:none}.contact-section,.clinic-panorama{clip-path:none!important}}

.practice-story.is-animated .practice-scene{background:transparent;pointer-events:none}
.button:not([data-motion-button]):hover,.header-contact:not([data-motion-button]):hover{background:var(--button-hover);color:var(--button-hover-ink)}

.practice-story.is-animated .scene-photo{max-height:100%}
.practice-story.is-animated .practice-scene{grid-template-rows:minmax(0,1fr);min-height:0}
@media(min-width:900px) and (max-height:750px){.practice-sticky{padding-top:38px;padding-bottom:20px}.practice-heading{margin-bottom:24px}.practice-heading h2{font-size:40px}.scene-copy{padding-block:0}.scene-copy h3{font-size:43px;margin-bottom:18px}.scene-number{font-size:18px;margin-bottom:14px}.scene-copy p{font-size:15px;line-height:1.65}.scene-caption{margin-top:22px}.practice-footer{padding-top:20px}}
@media(min-width:701px) and (max-width:1000px) and (max-height:800px){.hero{height:780px;min-height:780px}}

/* Keep the lower photograph in normal flow so wrapped copy can never cover it. */
@media(min-width:701px){
 .hero{display:flex;flex-direction:column;row-gap:clamp(32px,3.5vw,48px);height:auto;max-height:none}
 .hero-center{flex:none}
 .hero-image-right{position:relative;flex:none;top:auto;bottom:auto;left:auto;right:auto;margin:auto 0 82px var(--gutter)}
}
@media(min-width:701px) and (max-width:1200px){.hero-image-right{margin-bottom:88px}}
@media(min-width:1201px){.hero{min-height:clamp(780px,calc(100svh - 74px),1040px)}}

/* Graduate paths use their own layout; the established hero geometry stays intact. */
.careers{background:#fff}
.career-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,7vw,110px);align-items:end;margin-bottom:64px}
.career-heading .eyebrow{color:var(--muted);margin-bottom:25px}
.career-intro{max-width:450px;color:var(--muted);font-size:17px;line-height:1.8;padding-bottom:8px}
.career-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.5vw,56px)}
.career-card{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--blue);padding-top:25px}
.career-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.career-number{font:400 52px/1 var(--serif);letter-spacing:-.04em;color:var(--blue)}
.career-audience{font-size:10px;line-height:1.6;letter-spacing:.06em;text-align:right;color:var(--muted)}
.career-card h3{font:400 clamp(26px,2.3vw,35px)/1.3 var(--serif);letter-spacing:-.035em;color:var(--blue);min-height:2.6em;margin:0 0 32px}
.career-card h4{font:500 10px/1.6 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.career-skills{flex:1}
.career-skills ul{list-style:none;padding:0;margin:0}
.career-skills li{position:relative;padding-left:18px;font-size:15px;line-height:1.75}
.career-skills li+li{margin-top:15px}
.career-skills li:before{content:'';position:absolute;left:0;top:.68em;width:4px;height:4px;border-radius:50%;background:var(--blue)}
.career-work{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);min-height:145px}
.career-work p,.career-format p{font-size:14px;line-height:1.75}
.career-format{margin-top:20px;background:var(--wash);padding:20px;min-height:132px}
.career-format h4{color:var(--blue);margin-bottom:10px}
.career-card>.text-button{margin-top:26px;align-self:flex-start}
.career-bottom{display:flex;align-items:center;justify-content:space-between;gap:45px;padding-top:44px;margin-top:44px;border-top:1px solid var(--line)}
.career-bottom>p{font-size:12px;line-height:1.8;max-width:720px;color:var(--muted)}
.career-bottom>p a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.career-bottom>.button{flex:none}

/* Enter immediately; keep the active color briefly after the pointer leaves. */
.program-cards article{--highlight-delay:.24s}
.program-cards article:is(:hover,:focus-within){--highlight-delay:0s}
.program-cards article:before,.program-cards article :is(h3,p,.card-index,.card-price,.card-stats,.text-button){transition-delay:var(--highlight-delay)}

/* A larger photographic stage, with independent overlapping image and text layers. */
.practice-story.is-animated .practice-sticky{min-height:0;padding-top:clamp(22px,3.5svh,36px);padding-bottom:20px}
.practice-story.is-animated .practice-heading{margin-bottom:clamp(18px,2.8svh,28px)}
.practice-story.is-animated .practice-heading .eyebrow{margin-top:8px}
.practice-story.is-animated .practice-heading h2{font-size:clamp(32px,3.3vw,50px)}
.practice-story.is-animated .practice-scenes{container-type:size;isolation:isolate}
.practice-story.is-animated .practice-scene{grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:4.5%}
.practice-story.is-animated .scene-photo{width:min(100%,150cqh);max-height:none;justify-self:start;transform-origin:50% 60%}
.practice-story.is-animated .scene-copy{min-width:0;max-width:none;padding:0}
.practice-story.is-animated .scene-number{font-size:20px;margin-bottom:16px}
.practice-story.is-animated .scene-copy h3{font-size:clamp(32px,3.45vw,52px);line-height:1.18;margin-bottom:22px}
.practice-story.is-animated .scene-copy p{font-size:clamp(14px,1.12vw,17px);line-height:1.7;max-width:390px}
.practice-story.is-animated .scene-caption{font-size:10px;line-height:1.6;margin-top:24px}
.practice-story.is-animated .practice-footer{padding-top:18px}
@media(min-width:701px) and (max-width:1100px){
 .practice-story.is-animated .practice-sticky{padding-top:26px;padding-bottom:18px}
 .practice-story.is-animated .practice-heading{display:flex;align-items:start;gap:24px;margin-bottom:22px}
 .practice-story.is-animated .practice-heading .eyebrow{margin:0;font-size:10px}
 .practice-story.is-animated .practice-heading h2{font-size:clamp(27px,3.3vw,36px);margin:0;line-height:1.25;text-align:right}
 .practice-story.is-animated .scene-number{font-size:18px;margin-bottom:12px}
 .practice-story.is-animated .scene-copy h3{font-size:clamp(28px,3.25vw,35px);margin-bottom:16px}
 .practice-story.is-animated .scene-copy p{font-size:14px;line-height:1.7}
 .practice-story.is-animated .scene-caption{font-size:9px;margin-top:18px}
 .practice-story.is-animated .practice-footer{font-size:10px}
}
@media(min-width:701px) and (max-width:1100px) and (min-height:760px) and (max-aspect-ratio:6/5){
 .practice-story.is-animated .practice-scene{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:24px}
 .practice-story.is-animated .scene-photo{flex:none;align-self:center;width:min(100%,78svh);width:min(100%,calc((100cqh - var(--scene-copy-height,206px) - 24px)*1.5))}
 .practice-story.is-animated .scene-copy{display:grid;grid-template-columns:1fr 1.15fr;column-gap:32px;row-gap:10px;flex:none}
 .practice-story.is-animated .scene-number{grid-column:1;grid-row:1;margin:0;font-size:18px}
 .practice-story.is-animated .scene-copy h3{grid-column:1;grid-row:2;font-size:clamp(28px,3.3vw,36px);margin:0}
 .practice-story.is-animated .scene-copy p{grid-column:2;grid-row:1/3;align-self:center;max-width:none}
 .practice-story.is-animated .scene-caption{grid-column:1/-1;grid-row:3;margin-top:3px}
}
@media(min-width:701px) and (max-height:649px){
 .practice-story.is-animated .practice-sticky{padding-top:22px;padding-bottom:16px}
 .practice-story.is-animated .practice-heading{display:flex;align-items:start;gap:25px;margin-bottom:20px}
 .practice-story.is-animated .practice-heading h2{font-size:30px;line-height:1.2;margin:0;text-align:right}
 .practice-story.is-animated .practice-heading .eyebrow{max-width:170px;font-size:10px;margin:0}
 .practice-story.is-animated .scene-number{font-size:17px;margin-bottom:10px}
 .practice-story.is-animated .scene-copy{padding:0}
 .practice-story.is-animated .scene-copy h3{font-size:32px;line-height:1.2;margin-bottom:14px}
 .practice-story.is-animated .scene-copy p{font-size:14px;line-height:1.6}
 .practice-story.is-animated .scene-caption{font-size:9px;margin-top:16px}
 .practice-story.is-animated .practice-footer{padding-top:16px}
}
@media(max-width:700px){
 .practice-story.is-animated .practice-sticky{padding:24px 24px 18px}
 .practice-story.is-animated .practice-heading{margin-bottom:18px}
 .practice-story.is-animated .practice-heading .eyebrow{font-size:9px;margin:0}
 .practice-story.is-animated .practice-heading h2{font-size:clamp(25px,6.7vw,34px);line-height:1.2;margin-top:12px}
 .practice-story.is-animated .practice-scene{display:flex;justify-content:center;align-items:stretch;gap:18px}
 .practice-story.is-animated .scene-photo{flex:none;align-self:center;width:min(100%,48svh);width:min(100%,calc((100cqh - var(--scene-copy-height,232px) - 18px)*1.5));height:auto;aspect-ratio:3/2;max-height:none}
 .practice-story.is-animated .scene-copy{flex:none;padding:0}
 .practice-story.is-animated .scene-number{font-size:17px;width:32px;margin:5px 0 0}
 .practice-story.is-animated .scene-copy h3{font-size:clamp(25px,6.4vw,31px);line-height:1.2;margin:0 0 13px 32px}
 .practice-story.is-animated .scene-copy p{font-size:14px;line-height:1.6;max-width:none}
 .practice-story.is-animated .scene-caption{font-size:9px;line-height:1.5;margin-top:13px}
 .practice-story.is-animated .practice-footer{padding-top:16px;gap:12px;font-size:9px;line-height:1.4}
 .practice-story.is-animated .scene-progress{display:block;width:60px;min-width:35px}
 .practice-story.is-animated .scene-counter{display:block;flex:none;font-size:10px}
}
@media(min-width:701px) and (max-width:1100px){
 .career-heading{grid-template-columns:1fr;gap:25px;margin-bottom:46px}.career-intro{max-width:620px}
 .career-paths{grid-template-columns:1fr;gap:46px}
 .career-card{display:grid;grid-template-columns:1fr 1fr;column-gap:44px;row-gap:25px}
 .career-top{grid-column:1/-1;margin-bottom:0}
 .career-card h3{grid-column:1;grid-row:2;font-size:34px;margin:0;min-height:0}
 .career-skills{grid-column:2;grid-row:2/4}
 .career-work{grid-column:1;grid-row:3;margin:0;min-height:0}
 .career-format{grid-column:2;grid-row:4;margin:0;min-height:0}
 .career-card>.text-button{grid-column:1;grid-row:4;align-self:end;margin:0}
 .career-bottom{align-items:flex-start;flex-direction:column;gap:24px}
}
@media(max-width:700px){
 .career-heading{grid-template-columns:1fr;gap:25px;margin-bottom:42px}.career-heading .eyebrow{margin-bottom:20px}
 .career-intro{font-size:15px;padding:0;max-width:none}
 .career-paths{grid-template-columns:1fr;gap:42px}
 .career-card{padding-top:24px}.career-card h3{font-size:30px;min-height:0;margin-bottom:28px}
 .career-top{margin-bottom:22px}.career-number{font-size:45px}
 .career-work{min-height:0;margin-top:26px;padding-top:22px}.career-format{min-height:0}
 .career-bottom{align-items:flex-start;flex-direction:column;gap:24px;margin-top:35px;padding-top:30px}
}

/* The supplied founder portrait keeps its full original framing. */
.founder-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:8%;row-gap:30px}
.founder-photo{grid-column:1;grid-row:1/3;width:100%;max-width:410px;justify-self:center;align-self:center}
.founder-photo img{width:100%;height:auto;border-radius:3px}
.founder-title{grid-column:2;grid-row:1;align-self:end}
.founder-title>.eyebrow{margin-bottom:24px;font-size:11px}
.founder-title h2{font-size:clamp(36px,4.2vw,64px)}
.founder-copy{grid-column:2;grid-row:2;align-self:start;padding-top:0;max-width:570px}
.founder-copy h3{font-size:clamp(26px,2.3vw,34px);margin-bottom:22px}
.founder-credentials{gap:28px;margin-top:24px;padding-top:20px}
@media(min-width:701px) and (max-width:1000px){
 .founder-grid{column-gap:6%;row-gap:24px}
 .founder-title h2{font-size:clamp(34px,4.2vw,42px)}
 .founder-title>.eyebrow{font-size:10px;margin-bottom:18px}
 .founder-copy h3{font-size:27px;margin-bottom:18px}
 .founder-copy>p{font-size:14px;line-height:1.75}
 .founder-credentials{gap:18px}.founder-credentials span{font-size:10px}
}
@media(max-width:700px){
 .founder-grid{display:flex;flex-direction:column;align-items:stretch;gap:28px}
 .founder-title{order:0;align-self:stretch}
 .founder-title h2{font-size:clamp(36px,10vw,48px)}
 .founder-photo{order:1;max-width:350px;align-self:center}
 .founder-copy{order:2;align-self:stretch;padding:0}
.founder-copy h3{font-size:29px}
}

/* A wrapping, branded menu replaces the OS popup after progressive enhancement. */
.program-select{position:relative;z-index:3}
.program-select-trigger{display:flex;align-items:center;gap:20px;width:100%;min-height:54px;padding:12px 0;background:transparent;border:0;border-bottom:1px solid #a0a0a0;color:var(--ink);text-align:left;font:400 16px/1.5 var(--sans);cursor:pointer;transition:border-color .25s,color .25s}
.program-select-value{flex:1;min-width:0;white-space:normal;overflow-wrap:break-word}
.program-select-arrow{flex:none;width:8px;height:8px;margin:0 5px 4px 0;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s}
.program-select-trigger:hover,.program-select.is-open .program-select-trigger{color:var(--blue);border-bottom-color:var(--blue)}
.program-select.is-open .program-select-arrow{transform:translateY(4px) rotate(225deg)}
.program-select-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:5px;border-radius:2px}
.program-select-trigger:focus:not(:focus-visible){outline:none}
.program-select-options{position:absolute;bottom:calc(100% + 9px);left:-12px;right:-12px;z-index:5;max-height:min(320px,44svh);overflow:auto;overscroll-behavior:contain;list-style:none;margin:0;padding:7px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 38px #2020201a;scrollbar-width:thin;transform-origin:50% 100%;animation:program-menu-enter .24s cubic-bezier(.22,1,.36,1) both}
.program-select-option{position:relative;min-height:46px;padding:13px 34px 13px 14px;border-radius:4px;font-size:14px;line-height:1.5;white-space:normal;cursor:pointer;color:var(--ink)}
.program-select-option+.program-select-option{margin-top:2px}
.program-select-option[data-active=true]{background:var(--blue);color:#fff}
.program-select-option[aria-selected=true]:after{content:'';position:absolute;right:15px;top:20px;width:5px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
@keyframes program-menu-enter{from{opacity:0;transform:translateY(7px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.program-select-options{animation:none}.program-select-trigger,.program-select-arrow{transition:none}}

.career-card.has-wave-rule{position:relative;border-top-color:transparent}
.career-wave-rule{position:absolute;top:-8.5px;left:0;display:block;width:100%;height:16px;overflow:hidden;pointer-events:none;color:var(--blue)}

/* Shared spacing at section boundaries; the pinned photographic stage keeps its height. */
:root{--section-space:clamp(56px,5.5vw,88px)}
.section{padding-block:var(--section-space)}
.intro-surface,.contact-section{padding-block:var(--section-space)}
.practice-story{--practice-top:clamp(22px,3.5svh,36px);--practice-bottom:20px}
.practice-story:not(.is-animated) .practice-sticky{padding-block:var(--section-space)}
.practice-story.is-animated{
 --practice-entry-space:max(0px,calc(var(--section-space) - var(--practice-top)));
 --practice-exit-space:max(0px,calc(var(--section-space) - var(--practice-bottom)));
 padding-block:var(--practice-entry-space) var(--practice-exit-space);
 height:calc(315svh + var(--practice-entry-space) + var(--practice-exit-space));
}
.practice-story.is-animated .practice-sticky{padding-top:var(--practice-top);padding-bottom:var(--practice-bottom)}
@media(min-width:701px) and (max-width:1100px){.practice-story{--practice-top:26px;--practice-bottom:18px}}
@media(min-width:701px) and (max-height:649px){.practice-story{--practice-top:22px;--practice-bottom:16px}}
@media(max-width:700px){.practice-story{--practice-top:24px;--practice-bottom:18px}}
