:root{--ink:#1a1715;--mist:#f2f4f3;--paper:#fff;--stone:#d5d9d6;--lacquer:#8c2f3e;--lacquer-deep:#6f2430;--sage:#6f8578;--blush:#e8d8d4;--soft:#1a171514;--font-display:"Fraunces", Georgia, serif;--font-body:"Figtree", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-sm:2px;--radius-md:6px;--shadow-soft:0 12px 40px var(--soft);--ease:cubic-bezier(.22, 1, .36, 1);--max:1120px;--wide:1400px;--header-h:72px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--mist);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}button,input,textarea{font:inherit;color:inherit}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:500;line-height:1.12}h1{font-size:clamp(2.4rem,5vw,4.5rem)}h2{font-size:clamp(1.85rem,3.2vw,2.75rem)}h3{font-size:clamp(1.25rem,2vw,1.55rem)}p{margin:0 0 1em}p:last-child{margin-bottom:0}.skip-link{background:var(--lacquer);color:var(--paper);z-index:1000;padding:.75rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{top:1rem;left:1rem}:focus-visible{outline:2px solid var(--lacquer);outline-offset:3px}.container{width:min(100% - 2.5rem, var(--max));margin-inline:auto}.container-wide{width:min(100% - 2.5rem, var(--wide));margin-inline:auto}.site-header{z-index:70;height:var(--header-h);transition:background .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease);align-items:center;display:flex;position:sticky;top:0}.site-header.is-solid{background:var(--mist);box-shadow:0 1px 0 var(--stone);color:var(--ink)}.site-header.is-menu-open{background:var(--mist);color:var(--ink)}.site-header.is-over-hero:not(.is-solid):not(.is-menu-open){color:var(--paper);background:0 0}.site-header.is-over-hero:not(.is-solid):not(.is-menu-open) .nav-link:hover,.site-header.is-over-hero:not(.is-solid):not(.is-menu-open) .nav-link[aria-current=page]{color:var(--paper)}.site-header.is-over-hero:not(.is-solid):not(.is-menu-open) .nav-link[aria-current=page]:after{background:var(--paper)}.header-inner{width:min(100% - 2rem, var(--wide));justify-content:space-between;align-items:center;gap:1.5rem;margin-inline:auto;display:flex}.brand{flex-shrink:0;align-items:center;gap:.75rem;text-decoration:none;display:inline-flex}.brand img{width:auto;height:44px}.site-header.is-over-hero:not(.is-solid):not(.is-menu-open) .brand img{filter:brightness(0)invert()}.nav{align-items:center;gap:.15rem 1.35rem;display:flex}.nav-link{opacity:.82;transition:opacity .25s var(--ease), color .25s var(--ease);padding:.35rem 0;font-size:.95rem;font-weight:500;text-decoration:none;position:relative}.nav-link:hover,.nav-link[aria-current=page]{opacity:1}.nav-link[aria-current=page]:after{content:"";background:var(--lacquer);height:2px;position:absolute;bottom:0;left:0;right:0}.btn{border-radius:var(--radius-md);letter-spacing:.01em;cursor:pointer;min-height:44px;transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.55rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--lacquer);color:var(--paper)}.btn-primary:hover{background:var(--lacquer-deep)}.btn-ghost{color:inherit;background:0 0;border-color:currentColor}.btn-ghost:hover{background:#ffffff1a}.btn-on-light.btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-on-light.btn-ghost:hover{background:#1a17150d}.menu-toggle{cursor:pointer;color:inherit;background:0 0;border:0;min-width:44px;min-height:44px;margin-right:-.35rem;padding:.65rem;display:none}.menu-toggle span{width:22px;height:2px;transition:transform .3s var(--ease), opacity .3s var(--ease);background:currentColor;margin:5px auto;display:block}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-nav{display:none}@media (width<=900px){.nav-desktop{display:none}.menu-toggle{place-items:center;display:grid}.mobile-nav{inset:0;top:var(--header-h);z-index:60;color:var(--ink);-webkit-overflow-scrolling:touch;animation:panelIn .32s var(--ease);background:#f2f4f3;padding:1.5rem 1.5rem 2.5rem;display:block;position:fixed;overflow-y:auto}.mobile-nav-links{flex-direction:column;align-items:stretch;gap:.15rem;max-width:28rem;display:flex}.mobile-nav-link{font-family:var(--font-display);color:var(--ink);border-bottom:1px solid var(--stone);padding:.85rem 0;font-size:clamp(1.65rem,7vw,2rem);font-weight:500;line-height:1.2;text-decoration:none;display:block}.mobile-nav-link[aria-current=page]{color:var(--lacquer)}.mobile-nav-cta{width:100%;margin-top:1.5rem}.mobile-nav-secondary{gap:1.5rem;margin-top:1.75rem;padding-top:.25rem;display:flex}.mobile-nav-secondary a{color:var(--sage);font-size:1rem;font-weight:600;text-decoration:none}}@keyframes panelIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.hero{min-height:min(92vh,900px);color:var(--paper);margin-top:calc(var(--header-h) * -1);align-items:end;display:grid;position:relative;overflow:hidden}.hero-media{background:#2a2623;position:absolute;inset:0}.hero-media img{object-fit:cover;object-position:28% center;width:100%;height:100%;animation:heroSettle 1.4s var(--ease) forwards;transform:scale(1.04)}@keyframes heroSettle{to{transform:scale(1)}}.hero-scrim{background:linear-gradient(#1a171559 0%,#1a171547 55%,#1a1715c7 100%),linear-gradient(100deg,#1a17158c 0%,#1a17151f 55%,#0000 100%);position:absolute;inset:0}.hero-content{z-index:1;width:min(100% - 2.5rem, var(--wide));padding:calc(var(--header-h) + 4rem) 0 4.5rem;justify-self:start;max-width:36rem;margin:0 auto;position:relative}.hero-brand{font-family:var(--font-display);opacity:0;animation:rise .8s var(--ease) .15s forwards;margin-bottom:1.25rem;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:500}.hero h1{opacity:0;animation:rise .85s var(--ease) .28s forwards;margin-bottom:1rem}.hero-lead{opacity:0;max-width:28rem;animation:rise .85s var(--ease) .4s forwards;margin-bottom:1.75rem;font-size:1.1rem;line-height:1.55}.hero-actions{opacity:0;animation:rise .85s var(--ease) .52s forwards;flex-wrap:wrap;gap:.75rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (width<=700px){.hero{min-height:100svh}.hero-media img.desktop-only{display:none}.hero-media img.mobile-only{object-position:center top;display:block}.hero-scrim{background:linear-gradient(#1a171533 0%,#1a171559 45%,#1a1715d1 100%)}.hero-content{max-width:none;padding-bottom:3rem}}@media (width>=701px){.hero-media img.mobile-only{display:none}}.section{padding:var(--space-9) 0}.section-tight{padding:var(--space-8) 0}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:.85rem;font-size:.78rem;font-weight:600;display:inline-block}.split{grid-template-columns:1.25fr .85fr;align-items:center;gap:clamp(2rem,5vw,5rem);display:grid}.split.reverse{grid-template-columns:.85fr 1.25fr}.split.reverse .split-media{order:2}.split-media{position:relative}.split-media img{object-fit:cover;width:100%;height:min(74vh,680px)}.split-copy .lede{color:#1a1715c7;margin:1rem 0 1.5rem;font-size:1.15rem}@media (width<=900px){.split,.split.reverse{grid-template-columns:1fr}.split.reverse .split-media{order:0}.split-media img{height:52vw;min-height:280px}}.band{background:var(--ink);color:var(--paper);padding:var(--space-8) 0}.band .section-label{color:var(--blush)}.stats{grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.5rem;display:grid}.stat strong{font-family:var(--font-display);margin-bottom:.4rem;font-size:clamp(2rem,4vw,3rem);font-weight:500;line-height:1;display:block}.stat span{opacity:.75;font-size:.95rem}@media (width<=700px){.stats{grid-template-columns:1fr;gap:1.5rem}}.course-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem 1.5rem;margin-top:2.5rem;display:grid}.course-item{border-bottom:1px solid var(--stone);transition:opacity .25s var(--ease);flex-direction:column;gap:.85rem;padding-bottom:1.25rem;text-decoration:none;display:flex}.course-item:hover{opacity:.82}.course-item img{aspect-ratio:4/3;object-fit:cover;width:100%}.course-item h3{font-family:var(--font-body);letter-spacing:0;font-size:1.05rem;font-weight:600}.course-item p{color:#1a1715b3;margin:0;font-size:.92rem}@media (width<=900px){.course-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.course-grid{grid-template-columns:1fr}}.dates{max-width:40rem;margin-top:2rem}.dates-month+.dates-month{margin-top:2.5rem}.dates-month-label{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);text-transform:capitalize;border-bottom:0;margin:0 0 .35rem;padding-bottom:0;font-size:1.25rem;font-weight:500}.dates-month-label:after{content:"";background:var(--lacquer);width:2.5rem;height:2px;margin-top:.55rem;margin-bottom:.85rem;display:block}.dates-list{background:var(--paper);border:1px solid #d5d9d6f2;margin:0;padding:0;list-style:none}.date-row{transition:background .25s var(--ease);border-bottom:1px solid #d5d9d6d9;grid-template-columns:4.75rem 1fr;align-items:center;gap:1.15rem;margin:0;padding:.85rem 1rem;display:grid}.date-row:last-child{border-bottom:0}.date-row:hover{background:#e8d8d473}.date-stamp{border:0;border-top:3px solid var(--lacquer);text-align:center;background:#e8d8d48c;flex-direction:column;justify-content:center;align-items:center;min-height:3.75rem;padding:.4rem .25rem;line-height:1.1;display:flex}.date-day{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:500}.date-rest{letter-spacing:.08em;text-transform:uppercase;color:var(--lacquer);margin-top:.2rem;font-size:.7rem;font-weight:700}.date-title{font-size:1.02rem;font-weight:500;line-height:1.35}.dates-compact .date-row{padding:.8rem .85rem}.section-intro{color:#1a1715b3;max-width:36rem;margin:.85rem 0 0;font-size:1.05rem}.section-dates{background:#e8d8d46b}.dates-more{margin-top:1.75rem}.dates-more a{color:var(--lacquer);font-weight:600;text-decoration:none}.dates-more a:hover{text-decoration:underline}.quote-block{text-align:center;max-width:40rem;padding:var(--space-9) 1.25rem;margin:0 auto}.quote-block blockquote{font-family:var(--font-display);margin:0;font-size:clamp(1.5rem,3vw,2.15rem);font-style:italic;font-weight:400;line-height:1.35}.quote-block cite{color:var(--sage);margin-top:1.25rem;font-size:.9rem;font-style:normal;display:block}.gallery-mosaic{columns:3 240px;column-gap:.85rem}.gallery-mosaic a{break-inside:avoid;margin-bottom:.85rem;display:block;overflow:hidden}.gallery-mosaic img{width:100%;transition:transform .6s var(--ease)}.gallery-mosaic a:hover img{transform:scale(1.03)}.page-hero{padding:calc(var(--header-h) + 3rem) 0 2.5rem}.page-hero h1{max-width:16ch}.page-hero p{color:#1a1715bf;max-width:38rem;margin-top:1rem;font-size:1.1rem}.page-hero-pricing{padding-bottom:1.75rem}.pricing-meta{color:var(--sage);flex-wrap:wrap;align-items:center;gap:.65rem .85rem;margin-top:1.35rem;font-size:.88rem;font-weight:600;display:flex}.pricing-meta-dot{background:var(--lacquer);opacity:.7;border-radius:50%;width:4px;height:4px}.pricing-section{padding-top:.5rem}.pricing-wrap{gap:1.5rem;max-width:48rem;display:grid}.price-group{background:var(--paper);border:1px solid var(--stone);border-left:3px solid var(--blush);margin:0;padding:1.35rem 1.35rem .85rem}.price-group-featured{border-left-color:var(--lacquer);background:linear-gradient(135deg, var(--paper) 0%, #e8d8d459 100%)}.price-group-head{border-bottom:1px solid var(--stone);margin-bottom:.35rem;padding-bottom:.85rem}.price-group h2{margin:0;font-size:1.35rem}.price-group .note{color:#1a17159e;max-width:38rem;margin:.45rem 0 0;font-size:.9rem}.price-rows{display:grid}.price-row{border-bottom:1px solid #d5d9d6e6;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:1rem 0;display:flex}.price-row:last-child{border-bottom:0}.price-row .name{font-weight:500;line-height:1.35}.price-row .meta{color:#1a171594;margin-top:.2rem;font-size:.85rem;font-weight:400;display:block}.price-row .amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--lacquer);letter-spacing:-.01em;font-size:1.15rem;font-weight:500}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:3rem;display:grid}.contact-details{gap:1.25rem;margin:1.75rem 0;display:grid}.contact-details a{color:var(--lacquer);font-weight:600;text-decoration:none}.contact-details a:hover{text-decoration:underline}.studio-photos{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.5rem;display:grid}.studio-photos img{aspect-ratio:3/4;object-fit:cover;width:100%}.contact-form{background:var(--paper);border:1px solid var(--stone);gap:1.1rem;padding:1.75rem;display:grid}.field{gap:.35rem;display:grid}.field label{font-size:.85rem;font-weight:600}.field input,.field textarea{border:0;border-bottom:1px solid var(--stone);resize:vertical;width:100%;transition:border-color .2s var(--ease);background:0 0;border-radius:0;padding:.7rem 0}.field input:focus,.field textarea:focus{border-bottom-color:var(--lacquer);outline:none}.form-note{color:#1a171599;font-size:.85rem}.form-note a{color:var(--sage)}.story-prose{max-width:40rem}.story-prose p{margin-bottom:1.15em}.story-aside{border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);font-family:var(--font-display);margin:2.5rem 0;padding:1.5rem 0;font-size:1.35rem;font-style:italic;line-height:1.4}.timeline{gap:1.25rem;margin-top:2.5rem;display:grid}.timeline-item{border-bottom:1px solid var(--stone);grid-template-columns:5.5rem 1fr;gap:1rem;padding-bottom:1.25rem;display:grid}.timeline-item strong{color:var(--lacquer);font-variant-numeric:tabular-nums}.site-footer{border-top:1px solid var(--stone);padding:2.5rem 0 2rem;font-size:.9rem}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:2rem;display:grid}.footer-brand{font-family:var(--font-display);margin-bottom:.75rem;font-size:1.35rem}.footer-meta{color:#1a1715a6;line-height:1.7}.footer-meta a{color:inherit}.footer-nav{flex-direction:column;gap:.55rem;display:flex}.footer-nav a{text-decoration:none}.footer-nav a:hover{color:var(--lacquer)}.footer-bottom{border-top:1px solid var(--stone);color:#1a17158c;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.25rem;font-size:.82rem;display:flex}@media (width<=800px){.footer-grid,.contact-grid{grid-template-columns:1fr}}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media img,.hero-brand,.hero h1,.hero-lead,.hero-actions,.reveal,.gallery-mosaic img{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.lightbox{z-index:100;background:#1a1715d1;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:min(94vw,1100px);max-height:min(88vh,900px)}.lightbox-close{color:var(--paper);cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:1.5rem;position:absolute;top:1rem;right:1rem}.cta-strip{border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding:2rem 0;display:flex}.cta-strip h2{max-width:18ch;font-size:clamp(1.4rem,2.5vw,1.9rem)}.online-list{gap:0;margin-top:1.5rem;display:grid}.online-item{border-bottom:1px solid var(--stone);grid-template-columns:1fr auto;align-items:baseline;gap:1rem;padding:1.15rem 0;text-decoration:none;display:grid}.online-item:hover h3{color:var(--lacquer)}.online-item h3{font-family:var(--font-body);transition:color .25s var(--ease);font-size:1.05rem;font-weight:600}.online-item p{color:#1a1715a6;margin:.25rem 0 0;font-size:.92rem}.online-item span{color:var(--sage);white-space:nowrap;font-size:.85rem;font-weight:600}@media (width<=700px){:root{--header-h:64px}body{font-size:16px}.container,.container-wide{width:min(100% - 1.5rem, var(--max))}.header-inner{width:min(100% - 1.25rem, var(--wide))}.brand img{height:36px}h1{font-size:clamp(2rem,9vw,2.55rem)}h2{font-size:clamp(1.55rem,6.5vw,1.95rem)}.section{padding:4rem 0}.section-tight{padding:3rem 0}.hero{min-height:100svh}.hero-content{width:min(100% - 1.5rem, var(--wide));padding:calc(var(--header-h) + 2.5rem) 0 2.25rem}.hero-brand{margin-bottom:.85rem;font-size:1.35rem}.hero-lead{margin-bottom:1.35rem;font-size:1.02rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.hero-scrim{background:linear-gradient(#1a171538 0%,#1a171573 58%,#1a1715e0 100%)}.page-hero{padding:calc(var(--header-h) + 1.75rem) 0 1.5rem}.page-hero h1{max-width:none}.page-hero p{font-size:1.02rem}.split-media img{aspect-ratio:4/3;height:auto;min-height:0}.split-copy .lede{font-size:1.05rem}.band{padding:3rem 0}.stats{gap:1.35rem}.course-grid{gap:0;margin-top:1.75rem}.course-item{grid-template-columns:5.5rem 1fr;align-items:center;gap:1rem;padding:1rem 0;display:grid}.course-item img{aspect-ratio:1;object-fit:cover;height:5.5rem}.date-row{grid-template-columns:3.85rem 1fr;gap:.85rem;padding:.8rem .75rem}.date-stamp{min-height:3.35rem}.date-day{font-size:1.4rem}.date-title{font-size:.98rem}.dates-compact .date-row{padding:.75rem}.quote-block{text-align:left;padding:3.5rem 1rem}.gallery-mosaic{columns:2 140px;column-gap:.55rem}.gallery-mosaic a{margin-bottom:.55rem}.price-group{padding:1.15rem 1rem .65rem}.price-row{flex-direction:column;align-items:flex-start;gap:.3rem;padding:.95rem 0}.price-row .amount{font-size:1.2rem}.online-item{grid-template-columns:1fr;gap:.35rem}.online-item span{justify-self:start}.contact-form{padding:1.25rem}.studio-photos{gap:.5rem}.cta-strip{flex-direction:column;align-items:stretch;gap:1rem;padding:1.75rem 0}.cta-strip .btn{width:100%}.timeline-item{grid-template-columns:4.25rem 1fr;gap:.75rem}.story-aside{margin:1.75rem 0;font-size:1.2rem}.footer-grid{gap:1.75rem}.footer-nav{flex-flow:wrap;gap:.75rem 1.25rem}.footer-bottom{flex-direction:column;gap:.5rem}.lightbox{padding:3.5rem .75rem 1rem}.lightbox-close{top:.65rem;right:.35rem}.btn:hover{transform:none}}@media (width<=380px){.hero-actions .btn{font-size:.92rem}.course-item{grid-template-columns:4.5rem 1fr}.course-item img{height:4.5rem}}
