:root{--ink:#172f39;--muted:#53646a;--paper:#faf8f3;--white:#fff;--line:#d5dcd9;--mist:#ecf0ed;--serif:Georgia,'Times New Roman',serif;--sans:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:100%;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-underline-offset:.25em}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ab641d;outline-offset:6px}img{display:block;max-width:100%}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1.08}h2{font-size:clamp(2.6rem,4.3vw,4.25rem)}h3{font-weight:500}p{max-width:70ch}.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.16em;font-weight:600;margin-bottom:1.5rem;line-height:1.6}.section{width:min(1280px,calc(100% - 112px));margin-inline:auto;padding-block:112px}.section-heading p:not(.eyebrow){color:var(--muted);margin-top:1.5rem;max-width:31ch}.site-header{min-height:98px;padding:18px 3.9%;display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,47,57,.12)}.wordmark{font-family:var(--serif);font-size:2.55rem;line-height:1;text-decoration:none;letter-spacing:-.055em;display:flex;align-items:baseline;gap:.75rem}.wordmark span{font-family:var(--sans);text-transform:uppercase;font-size:.75rem;letter-spacing:.17em}.site-header nav{display:flex;gap:2rem;align-items:center;font-size:.875rem}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.nav-cta{border:1px solid var(--ink);padding:.75rem 1rem;display:flex;gap:1.8rem}.menu-button{display:none}.hero{display:grid;grid-template-columns:57% 43%;background:var(--ink);color:var(--paper);min-height:720px}.hero-copy{padding:64px max(48px,calc((100vw - 1280px)/2)) 66px 6.25vw;padding-right:5.8vw}.hero h1{font-size:clamp(2.55rem,3.95vw,4.1rem);max-width:16ch;line-height:1.1}.hero h1 span{color:#e1e3dc}.hero .eyebrow{color:#c3cece;font-weight:400;font-size:.75rem;letter-spacing:.15em}.hero-intro{font-size:1rem;line-height:1.7;color:#d0d9d8;max-width:48ch;margin-top:1.7rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 1.35rem;text-decoration:none;border:1px solid var(--ink);font-size:.9375rem;font-weight:500;line-height:1.5;transition:background .2s,color .2s}.button span[aria-hidden]{font-size:1.3rem;line-height:1}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button-light:hover{background:#dfe8e4;border-color:#dfe8e4}.hero .button{margin-top:2rem}.hero-photo{position:relative;min-width:0}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:51% center;position:absolute;inset:0}.image-scroll{position:absolute;bottom:0;left:0;right:0;padding:1.75rem 2rem;background:linear-gradient(transparent,rgba(0,0,0,.7));text-decoration:none;font-size:.875rem;display:flex;justify-content:space-between;align-items:center}.image-scroll span{font-size:1.5rem}.credential-strip{display:flex;justify-content:space-between;gap:2rem;max-width:100%;padding:24px 6.25%;font-size:.75rem;letter-spacing:.01em;border-bottom:1px solid var(--line)}.credential-strip span+span{border-left:1px solid var(--line);padding-left:2rem}.about{display:grid;grid-template-columns:.85fr 1.5fr;gap:10%}.portrait{margin-top:2.5rem;max-width:280px}.portrait img{width:280px;height:auto;aspect-ratio:1;object-fit:cover}.portrait>span{display:block;margin-top:.875rem;font-size:.75rem;color:var(--muted)}.about-copy>p{margin-bottom:1.5rem;color:var(--muted)}.about-copy .lead{font-size:1.25rem;line-height:1.6;color:var(--ink)}.credentials{margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid var(--line)}.credentials h3{font-size:.875rem;font-weight:600}.credentials ul{padding:0;margin:1.2rem 0 0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 2rem}.credentials li{font-size:.875rem;color:var(--muted);padding-left:1rem;position:relative;line-height:1.6}.credentials li:before{content:'·';position:absolute;left:0;color:var(--ink)}.work-section{background:var(--mist)}.work-layout,.faq-layout{display:grid;grid-template-columns:.85fr 1.5fr;gap:10%}.work-layout h2{max-width:10ch}.challenge{border-bottom:1px solid #bcc9c7}.challenge:first-child{border-top:1px solid #bcc9c7}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.challenge summary{display:grid;grid-template-columns:2rem 1fr 1.5rem;gap:1rem;padding:1.5rem 0;align-items:center}.index{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.challenge h3{font-family:var(--serif);font-size:1.45rem;line-height:1.25;letter-spacing:-.02em}.toggle{width:1.25rem;height:1.25rem;position:relative;display:block}.toggle:before,.toggle:after{content:'';width:13px;height:1px;background:currentColor;position:absolute;left:4px;top:10px}.toggle:after{transform:rotate(90deg);transition:transform .15s}details[open] .toggle:after{transform:rotate(0)}.challenge-body{padding:0 2.5rem 1.75rem 3rem;color:#41575e}.challenge-body h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin:1.3rem 0 .6rem;color:var(--ink)}.text-link{font-size:.8125rem;display:inline-flex;align-items:center;gap:.7rem;margin-top:1.5rem}.closing-note{margin-top:2rem;color:var(--muted);font-size:.875rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:3.25rem 0 5rem;gap:3rem}.step-number{font-family:var(--serif);font-size:2.5rem;letter-spacing:-.05em;display:block;padding-bottom:1.1rem;border-bottom:1px solid var(--line);margin-bottom:1.5rem;color:#5e777d}.steps h3{font-family:var(--serif);font-size:1.6rem;letter-spacing:-.03em;line-height:1.3;max-width:20ch}.steps p{margin-top:1rem;color:var(--muted)}.fees-heading{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin-bottom:1.5rem}.fees-heading h3{font-size:1rem;font-weight:500}.fees-heading span{font-size:.8125rem;color:var(--muted)}.packages{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid #9fadae;padding:2rem 0}.package{padding:0 1.75rem;border-right:1px solid var(--line)}.package:first-child{padding-left:0}.package:last-child{border:0;padding-right:0}.package h4{font-size:.9375rem;font-weight:500}.price{font-size:2.8rem;font-family:var(--serif);line-height:1.2;letter-spacing:-.045em;margin-top:1.5rem}.price span{font-family:var(--sans);font-size:.75rem;color:var(--muted);letter-spacing:0;white-space:nowrap}.session-count{font-size:.875rem;margin-top:1.25rem}.total{font-size:.8125rem;color:var(--muted);margin-top:.25rem}.faq-section{background:#f0eee8}.faq-layout{padding-block:90px}.faq summary{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.4rem 0;min-height:72px}.faq h3{font-size:1rem;line-height:1.5}.faq{border-bottom:1px solid #c9ceca}.faq:first-child{border-top:1px solid #c9ceca}.faq .toggle{flex-shrink:0}.faq>p{padding:0 2.5rem 1.5rem 0;color:var(--muted)}.schedule{background:var(--ink);color:var(--paper)}.schedule-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:13%;padding-block:96px}.schedule h2{font-size:clamp(2.65rem,4.25vw,4.3rem);max-width:13ch}.schedule-layout>div>p:not(.eyebrow){margin-top:1.8rem;color:#c5d1d1;max-width:40ch}.schedule .eyebrow{color:#c5d1d1}.booking{border:1px solid #5b737c;padding:2.25rem;align-self:center}.booking-time{font-family:var(--serif);font-size:1.3rem!important;margin:0!important;color:var(--paper)!important;line-height:1}.booking-time span{font-size:4rem;letter-spacing:-.06em}.booking h3{font-size:1rem;margin-top:1.75rem}.booking>p:not(.booking-time){font-size:.9375rem;margin-top:.75rem!important}.booking .button{width:100%;margin-top:1.7rem;gap:.75rem}.booking .booking-disclosure{font-size:.75rem!important;color:#d7d9c7!important;margin-top:1.2rem!important;line-height:1.5}.contact{display:grid;grid-template-columns:.85fr 1.5fr;gap:10%;padding-block:82px}.contact p:not(.eyebrow){color:var(--muted);max-width:46ch}.email-link{font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2.5rem);letter-spacing:-.03em;display:inline-flex;gap:2rem;align-items:center;line-height:1.4;margin-top:1.5rem}.email-link span{font-family:var(--sans);font-size:1.5rem}footer{width:min(1280px,calc(100% - 112px));margin:auto;padding-bottom:2.5rem}.footer-top{border-top:1px solid var(--line);padding-block:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-top>span,.back-top{font-size:.75rem;color:var(--muted)}.back-top{padding-block:.75rem;display:flex;gap:1rem}.legal{display:grid;grid-template-columns:1fr 1fr;gap:4rem;padding-top:1.8rem;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem;line-height:1.75}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;background:var(--paper);padding:1rem}.skip-link:focus{top:1rem}
@media(min-width:1600px){.hero-copy{padding-left:max(7%,calc((100vw - 1440px)/2));padding-block:80px}.hero{min-height:760px}.hero h1{font-size:4.35rem}.hero-intro{font-size:1.125rem}}
@media(max-width:1100px){.site-header nav{gap:1.25rem}.site-header{gap:1.25rem}.wordmark{font-size:2.25rem}.wordmark span{font-size:.75rem}.nav-cta{gap:1rem;padding:.7rem}.section,footer{width:calc(100% - 80px)}.hero-copy{padding:56px 40px}.hero{min-height:690px;grid-template-columns:58% 42%}.hero h1{font-size:3.2rem}.hero-intro{font-size:.9375rem}.credential-strip{padding-inline:40px;gap:1.25rem}.credential-strip span+span{padding-left:1.25rem}.about,.work-layout,.faq-layout,.contact{gap:7%;grid-template-columns:.9fr 1.4fr}.schedule-layout{gap:7%;grid-template-columns:1.15fr 1fr}.booking{padding:1.5rem}.package{padding-inline:1.25rem}.price{font-size:2.4rem}.price span{display:block;margin-top:.4rem}.steps{gap:2rem}}
@media(max-width:900px){.site-header{min-height:84px;padding-inline:32px;flex-wrap:wrap}.menu-button{display:flex;background:transparent;border:1px solid var(--ink);padding:.6rem .8rem;align-items:center;gap:1rem;min-height:44px;font-size:.875rem}.menu-icon{width:16px;height:10px;border-block:1px solid currentColor}.site-header nav{display:none;flex-basis:100%;padding:.75rem 0 1rem;flex-direction:column;align-items:stretch;gap:0}.site-header nav a{padding:.8rem 0}.site-header nav .nav-cta{padding:.8rem 1rem;margin-top:.5rem}.site-header.menu-open nav{display:flex}.hero{grid-template-columns:60% 40%;min-height:660px}.hero-copy{padding:48px 32px}.hero h1{font-size:2.8rem}.hero .eyebrow{max-width:30ch}.hero .button{font-size:.875rem;padding:1rem;gap:1rem}.credential-strip{padding-inline:32px;font-size:.75rem}.section,footer{width:calc(100% - 64px)}.section{padding-block:80px}.about,.work-layout,.faq-layout,.contact{grid-template-columns:1fr 1.5fr;gap:6%}.credentials ul{grid-template-columns:1fr;gap:.8rem}.portrait{max-width:240px}.challenge summary{gap:.75rem;grid-template-columns:1.5rem 1fr 1.25rem}.challenge h3{font-size:1.25rem}.challenge-body{padding-left:2.25rem;padding-right:.5rem}.schedule-layout{gap:5%;grid-template-columns:1fr 1fr}.schedule h2{font-size:2.75rem}.booking{padding:1.25rem}.booking .button{font-size:.875rem}.steps{gap:1.5rem}.steps h3{font-size:1.45rem}.steps p{font-size:.9375rem}.package{padding-inline:1rem}.package h4{font-size:.8125rem}.legal{gap:2rem}}
@media(max-width:680px){html{scroll-padding-top:6rem}.site-header{padding:17px 24px;min-height:82px}.wordmark{font-size:2.2rem}.wordmark span{font-size:.75rem}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 24px 44px}.hero h1{font-size:clamp(2.5rem,7.4vw,3.7rem);max-width:18ch;line-height:1.1}.hero .eyebrow{max-width:none;margin-bottom:1.6rem;font-size:.75rem;letter-spacing:.13em}.hero-intro{font-size:1rem;max-width:45ch;margin-top:1.5rem}.hero .button{margin-top:1.75rem;font-size:.9375rem;padding:1rem 1.15rem;gap:2rem}.hero-photo{height:360px}.hero-photo>img{object-position:center 67%}.image-scroll{padding:2rem 24px 1.4rem}.credential-strip{padding:22px 24px;display:grid;grid-template-columns:1fr;gap:.45rem;font-size:.75rem;line-height:1.6}.credential-strip span+span{border:0;padding-left:0}.section,footer{width:calc(100% - 48px)}.section{padding-block:64px}h2{font-size:2.7rem;line-height:1.1}.eyebrow{margin-bottom:1rem}.about,.work-layout,.faq-layout,.contact,.schedule-layout{grid-template-columns:1fr;gap:2.5rem}.about .section-heading{display:grid;grid-template-columns:1fr 126px;align-items:start;gap:0 1rem}.about .section-heading .eyebrow{grid-column:1;grid-row:1}.about h2{grid-column:1;grid-row:2;align-self:start;font-size:2.65rem}.portrait{grid-column:2;grid-row:1/4;margin:0;width:126px}.portrait img{width:126px}.portrait>span{font-size:.75rem;margin-top:.6rem}.about-copy .lead{font-size:1.125rem}.about-copy>p{margin-bottom:1.25rem}.credentials{margin-top:2rem}.credentials ul{grid-template-columns:1fr;gap:.8rem}.work-layout h2{max-width:12ch}.section-heading p:not(.eyebrow){max-width:40ch}.challenge summary{padding:1.25rem 0;grid-template-columns:1.25rem 1fr 1.25rem;gap:.75rem}.challenge h3{font-size:1.35rem}.challenge-body{padding-left:2rem;padding-right:.25rem}.closing-note{margin-top:1.5rem}.steps{grid-template-columns:1fr;gap:2rem;margin:2.5rem 0 3.5rem}.steps li{position:relative;padding-left:3.5rem}.step-number{position:absolute;top:-.3rem;left:0;font-size:2rem;border:0;padding:0;margin:0}.steps h3{font-size:1.5rem;max-width:none}.steps p{font-size:1rem;margin-top:.65rem}.steps li+li{border-top:1px solid var(--line);padding-top:1.75rem}.steps li+li .step-number{top:1.5rem}.packages{grid-template-columns:1fr 1fr;padding:0;gap:0}.package{padding:1.75rem 0!important;border:0}.package:nth-child(odd){border-right:1px solid var(--line);padding-right:1rem!important}.package:nth-child(even){padding-left:1.5rem!important}.package:nth-child(-n+2){border-bottom:1px solid var(--line)}.package h4{font-size:.875rem}.price{font-size:2.6rem;margin-top:1rem}.price span{display:inline;font-size:.75rem}.session-count{margin-top:1rem}.faq-layout{gap:2rem}.faq h3{font-size:1rem}.faq>p{padding-right:.5rem}.faq-layout h2 br{display:none}.schedule-layout{gap:2.5rem}.schedule h2{font-size:2.9rem;max-width:15ch}.schedule-layout>div>p:not(.eyebrow){margin-top:1.3rem}.booking{padding:1.5rem}.booking .button{font-size:.9375rem}.booking>p{max-width:none!important}.booking-time span{font-size:3.5rem}.contact{gap:1.5rem}.email-link{font-size:1.75rem;gap:1.25rem}.footer-top{flex-wrap:wrap;padding-block:1.75rem;row-gap:1.5rem}.footer-top .wordmark{flex-basis:100%}.legal{grid-template-columns:1fr;gap:1rem;padding-top:1.5rem}footer{padding-bottom:1.5rem}}
@media(max-width:360px){.site-header{padding-inline:20px}.hero-copy{padding-inline:20px}.section,footer{width:calc(100% - 40px)}.hero h1{font-size:2.35rem}.hero .eyebrow{font-size:.75rem;letter-spacing:.1em}.hero .button{font-size:.875rem;gap:1.5rem}.hero-photo{height:300px}.credential-strip{padding-inline:20px}.about .section-heading{grid-template-columns:1fr 110px}.portrait,.portrait img{width:110px}.about h2{font-size:2.4rem}.package:nth-child(even){padding-left:1rem!important}.price{font-size:2.25rem}.price span{display:block}.schedule h2{font-size:2.65rem}.booking{padding:1.25rem}.booking .button{font-size:.8125rem;padding:1rem .8rem}.email-link{font-size:1.5rem;gap:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media print{.site-header{position:static}.menu-button,.image-scroll,.button,.back-top{display:none!important}nav{display:none!important}.hero{min-height:0}.hero-copy{padding:2rem}.section{padding-block:2rem}details>*{display:block!important}.challenge,.faq,.package{break-inside:avoid}body{background:white;color:black}}

@media(max-width:900px){html:not(.js) .site-header nav{display:flex}html:not(.js) .menu-button{display:none}}
/* Intrinsic sizing keeps content readable when visitors enlarge their text. */
body{overflow-wrap:break-word}.site-header{flex-wrap:wrap}.site-header nav{flex-wrap:wrap;min-width:0}.wordmark{flex-wrap:wrap;max-width:100%}.hero-copy,.section-heading,.about-copy,.challenges,.booking,.package,.schedule-layout>div,.contact>div{min-width:0}h1,h2,h3,h4,.email-link,.button{overflow-wrap:anywhere}.button{max-width:100%}.button>span[aria-hidden]{flex-shrink:0}.about,.work-layout,.faq-layout,.contact{grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr)}.schedule-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.steps{grid-template-columns:repeat(3,minmax(0,1fr))}.packages{grid-template-columns:repeat(4,minmax(0,1fr))}.price span{white-space:normal}.email-link{max-width:100%}.email-link>span{flex-shrink:0}
@media(max-width:1100px){.about,.work-layout,.faq-layout,.contact{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}.schedule-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
@media(max-width:900px){.about,.work-layout,.faq-layout,.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.schedule-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.hero,.about,.work-layout,.faq-layout,.contact,.schedule-layout,.steps{grid-template-columns:minmax(0,1fr)}.packages{grid-template-columns:repeat(2,minmax(0,1fr))}.about .section-heading{grid-template-columns:minmax(0,1fr) 126px}}
@media(max-width:360px){.about .section-heading{grid-template-columns:minmax(0,1fr) 110px}}
.site-header.menu-open{max-height:100svh;overflow-y:auto}

#main:focus{outline:none}
@media(max-width:360px){.site-header{gap:.5rem}}

/* Photography gives the long-form content a more varied rhythm. */
.credentials{padding-block:0;border-bottom:1px solid var(--line)}
.credentials summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.25rem;min-height:64px}
.credentials summary .toggle{flex-shrink:0}
.credentials ul{margin:0;padding:0 0 1.5rem}
.landscape-break{width:100%;background:var(--mist)}
.landscape-break img{width:100%;height:clamp(280px,28vw,440px);object-fit:cover;object-position:50% 56%}
.work-layout{grid-template-areas:"intro patterns" "image patterns";row-gap:2.5rem;align-items:start}
.work-layout .section-heading{grid-area:intro}
.work-layout .challenges{grid-area:patterns}
.practice-photo{grid-area:image;margin:0;min-width:0;align-self:start}
.practice-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:60% 50%}
.practice-photo .closing-note{margin-top:1.4rem;line-height:1.7;max-width:40ch}
@media(min-width:681px){.work-layout{grid-template-rows:auto 1fr}}
@media(max-width:680px){
 .hero h1{font-size:clamp(2.2rem,6.8vw,3.2rem);max-width:none}
 .hero-break{display:none}
 .landscape-break img{height:260px;object-position:60% 50%}
 .work-layout{grid-template-areas:"intro" "patterns" "image";gap:2rem}
 .practice-photo img{aspect-ratio:3/2}
 .practice-photo .closing-note{max-width:none;margin-top:1.2rem}
 .credentials{margin-top:1.75rem}
}
