@font-face{font-family:"Instrument Serif";src:url("assets/instrument-serif-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("assets/instrument-serif-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"DM Sans";src:url("assets/dm-sans-latin.woff2") format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}
:root{color-scheme:light;--paper:#f5f2eb;--paper-deep:#ece8df;--ink:#2c2a25;--muted:#777066;--rust:#a84f36;--line:rgba(44,42,37,.19);--display:"Instrument Serif",Georgia,serif;--body:"DM Sans",Arial,sans-serif;--gutter:clamp(1.25rem,6.2vw,6.25rem);font-family:var(--body);color:var(--ink);background:var(--paper);font-synthesis:none;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;scroll-padding-top:2rem}
*,*::before,*::after{box-sizing:border-box}body{margin:0;min-width:320px}img{display:block;max-width:100%}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid var(--rust);outline-offset:5px}.wrap{width:min(100%,1720px);margin-inline:auto;padding-inline:var(--gutter)}.site-header{min-height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.62rem;text-decoration:none;font-size:.95rem;font-weight:550;letter-spacing:-.035em}.brand img{width:36px;height:36px;object-fit:contain;mix-blend-mode:multiply}.header-link{font-size:.88rem;text-decoration:none;font-weight:500}.header-link span{margin-left:.45rem;color:var(--rust)}.hero{min-height:680px;display:grid;grid-template-columns:1fr .96fr;align-content:center;gap:2rem 8%;padding-block:clamp(3.5rem,8vh,6.25rem) 3.1rem;position:relative}.hero-copy{padding-block:3.6rem 2.5rem;align-self:center}.eyebrow,.section-index{font-size:.74rem;line-height:1.6;letter-spacing:.105em;text-transform:uppercase;font-weight:570}.eyebrow{display:flex;align-items:center;gap:.75rem;margin:0 0 1.6rem}.eyebrow-rule{width:27px;height:1px;background:var(--rust)}.eyebrow-separator,.section-index>span{color:var(--rust)}h1,h2,p{margin-top:0}h1,h2,.display{font-family:var(--display);font-weight:400;letter-spacing:-.042em}h1{max-width:680px;font-size:clamp(4rem,8.8vw,8.8rem);line-height:.87;margin-bottom:1.65rem}h1 em,h2 em{color:var(--rust);font-weight:400}.hero-intro{font-size:clamp(1rem,1.3vw,1.17rem);max-width:385px;line-height:1.72;color:#58534b;margin-bottom:1.65rem}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.47rem;font-size:.81rem;letter-spacing:.015em;color:var(--muted);margin-bottom:2.05rem}.meta-dot{color:var(--rust)}.meta-divider{height:14px;width:1px;background:var(--line);margin-inline:.3rem}.button{display:inline-flex;min-height:54px;padding:.1rem 1.3rem;align-items:center;justify-content:center;gap:1.05rem;background:var(--ink);color:white;text-decoration:none;font-size:.89rem;font-weight:500;transition:background-color .2s,transform .2s}.button:hover{background:var(--rust);transform:translateY(-2px)}.button span{font-size:1rem}.hero-caption{margin:.83rem 0 0;color:var(--muted);font-size:.76rem;letter-spacing:.01em}.hero-caption span{padding-inline:.4rem;color:var(--rust)}.hero-image{position:relative;align-self:center;margin:0;min-width:0}.hero-image>img{width:100%;height:clamp(410px,52vw,610px);object-fit:cover;object-position:center 56%;background:#e8dfce}.hero-image figcaption{display:flex;gap:.5rem;align-items:center;padding-top:.72rem;color:var(--muted);font-size:.73rem;letter-spacing:.015em}.caption-dot{font-size:.38rem;color:var(--rust)}.image-index{position:absolute;right:0;bottom:2.7rem;padding:.45rem .58rem;background:var(--paper);font-size:.68rem;letter-spacing:.07em}.scroll-hint{grid-column:1/-1;display:flex;align-items:center;gap:.7rem;align-self:end;margin-top:.4rem;text-decoration:none;color:var(--muted);font-size:.73rem}.scroll-line{width:26px;height:1px;background:var(--rust)}.offering{background:var(--paper-deep)}.offering-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem 10%;padding-block:clamp(5rem,10vw,9rem)}.section-index{color:var(--muted);font-size:.69rem}.section-heading h2,.about h2,.signup h2{font-size:clamp(3.4rem,6.3vw,6.4rem);line-height:.92;margin:1.45rem 0 0}.offering-copy{padding-top:3.45rem;max-width:590px}.offering-copy>p,.about-copy>p,.signup-inner>p:not(.section-index){font-size:1rem;line-height:1.85;color:#59554e}.offering-copy blockquote{margin:2.7rem 0 0;padding:1.25rem 0 0;border-top:1px solid var(--line)}.offering-copy blockquote p{margin:0;font-family:var(--display);font-size:2.45rem;line-height:1.1;letter-spacing:-.025em}.offering-copy blockquote cite{display:block;margin-top:.8rem;color:var(--muted);font-family:var(--body);font-style:normal;font-size:.79rem}.materials{padding-block:clamp(5.5rem,11vw,9rem);display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem 10%}.material-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--line);align-self:center}.material-list li{min-height:66px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px 1fr 20px;gap:.6rem;align-items:center;font-size:.9rem}.material-number{font-size:.68rem;letter-spacing:.06em;color:var(--rust)}.material-mark{font-size:.85rem;color:var(--rust);opacity:0;transform:translate(-4px,4px);transition:opacity .2s,transform .2s}.material-list li:hover .material-mark{opacity:1;transform:translate(0,0)}.details{background:var(--paper-deep)}.details-inner{padding-block:clamp(5rem,9vw,8rem)}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:3.5rem 0 0;border-top:1px solid var(--line)}.detail-item{min-height:171px;padding:1.4rem 1.1rem 1.4rem 0;border-bottom:1px solid var(--line)}.detail-item+ .detail-item{border-left:1px solid var(--line);padding-left:1.25rem}.detail-item dt{margin-bottom:1rem;font-size:.74rem;color:var(--muted);letter-spacing:.03em}.detail-item dd{margin:0;font-family:var(--display);font-size:clamp(1.65rem,2.7vw,2.55rem);line-height:1}.detail-small{display:block;margin-top:.85rem;font-size:.75rem;line-height:1.5;color:var(--muted)}.detail-price dd{display:flex;flex-wrap:wrap;gap:.32rem .48rem;align-items:baseline}.price-period,.price-or{font-family:var(--body);font-size:.75rem;font-weight:400;color:var(--muted)}.detail-price dd .price-or{flex-basis:100%;font-family:var(--body);font-size:.7rem}.detail-location{display:flex;align-items:center;gap:.95rem;padding-top:1.5rem;margin:0}.location-mark{font-size:1.32rem;color:var(--rust)}.location-label{display:block;margin-bottom:.25rem;font-size:.7rem;color:var(--muted)}.detail-location strong{font-size:.86rem;font-weight:500}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,10vw,10rem);align-items:center;padding-block:clamp(5.5rem,11vw,9rem)}.about-image{margin:0;position:relative}.about-image>img{width:100%;max-height:540px;object-fit:cover;object-position:center 37%;filter:saturate(.76)}.about-image figcaption{display:flex;align-items:center;gap:.3rem;padding-top:.75rem;font-size:.73rem;letter-spacing:.01em;color:var(--muted)}.about-image figcaption:first-letter{color:var(--ink)}.about-copy{max-width:550px}.about-copy h2{margin-bottom:1.75rem}.text-link{display:inline-flex;align-items:center;gap:.7rem;margin-top:.5rem;padding:.25rem 0;text-decoration:none;font-size:.85rem;border-bottom:1px solid var(--rust)}.text-link .arrow-icon{color:var(--rust)}.signup{background:var(--rust);color:var(--paper)}.signup-inner{padding-block:clamp(5rem,10vw,8rem)}.signup .section-index,.signup-inner>p:not(.section-index){color:rgba(255,255,255,.79)}.signup .section-index span{color:var(--paper)}.signup h2{margin:1.4rem 0 1.35rem}.signup h2 em{color:#f1c8ae}.signup-inner>p:not(.section-index){max-width:420px;margin-bottom:1.75rem}.button-light{background:var(--paper);color:var(--ink)}.button-light:hover{background:white;color:var(--rust)}.email-note{margin:1rem 0 0;font-size:.78rem;color:rgba(255,255,255,.82)}.email-note a{text-underline-offset:3px}.email-note span{padding-inline:.3rem}.site-footer{min-height:96px;display:grid;grid-template-columns:auto 1fr auto;gap:1rem 2rem;align-items:center}.footer-brand{text-decoration:none;font-family:var(--display);font-size:1.35rem;letter-spacing:-.03em}.footer-brand span{color:var(--rust)}.footer-copy{font-size:.71rem;color:var(--muted)}.footer-links{display:flex;gap:1rem;font-size:.76rem}.footer-links a{text-decoration:none;color:var(--muted)}.footer-links a:hover,.header-link:hover{color:var(--rust)}
@media(min-width:1500px){.hero{min-height:770px}.hero-image>img{height:620px}}
@media(max-width:760px){:root{--gutter:1.3rem}.site-header{min-height:69px}.brand{font-size:.87rem}.brand img{width:33px;height:33px}.header-link{font-size:.82rem}.hero{min-height:auto;grid-template-columns:1fr;gap:2rem;padding-block:3.5rem 2.1rem}.hero-copy{padding-block:0}.eyebrow{margin-bottom:1.35rem;font-size:.68rem}.hero h1{font-size:clamp(4rem,15vw,6.2rem);margin-bottom:1.3rem}.hero-intro{max-width:365px;font-size:1rem;margin-bottom:1.3rem}.hero-meta{font-size:.75rem;margin-bottom:1.6rem;gap:.4rem}.hero .button{min-height:52px}.hero-image{width:100%}.hero-image>img{height:clamp(290px,96vw,460px);object-position:center 54%}.scroll-hint{margin-top:.4rem}.offering-inner,.materials{grid-template-columns:1fr;gap:2rem;padding-block:4.5rem}.section-heading h2,.about h2,.signup h2{font-size:clamp(3.45rem,13vw,5.25rem)}.offering-copy{padding-top:0}.offering-copy>p,.about-copy>p,.signup-inner>p:not(.section-index){font-size:.96rem;line-height:1.78}.offering-copy blockquote{margin-top:2rem}.offering-copy blockquote p{font-size:2.15rem}.materials{padding-block:4.5rem}.material-list li{min-height:64px;font-size:.87rem;grid-template-columns:36px 1fr 16px;gap:.55rem}.details-inner{padding-block:4.5rem}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2.35rem}.detail-item{min-height:137px;padding-block:1rem}.detail-item:nth-child(3){border-left:0;padding-left:0}.detail-item:nth-child(2){padding-left:1rem}.detail-item:nth-child(4){padding-left:1rem}.detail-item dt{margin-bottom:.75rem}.detail-item dd{font-size:2rem}.detail-small{font-size:.72rem;margin-top:.65rem}.about{grid-template-columns:1fr;gap:2.35rem;padding-block:4.5rem}.about-image{max-width:480px}.about-image>img{max-height:470px;object-position:center 31%}.about-copy h2{margin-top:1.15rem}.signup-inner{padding-block:4.5rem}.site-footer{grid-template-columns:1fr auto;min-height:112px;gap:.35rem 1rem;padding-block:1.1rem}.footer-copy{grid-row:2;font-size:.67rem}.footer-links{grid-column:2;grid-row:1/3;flex-direction:column;gap:.7rem;align-items:flex-end;font-size:.74rem}}
@media(max-width:390px){:root{--gutter:1.05rem}.hero h1{font-size:3.7rem}.hero-meta{gap:.32rem;font-size:.71rem}.meta-divider{margin-inline:.17rem}.detail-item dd{font-size:1.8rem}.price-period{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.draft-value{font-style:italic;opacity:.86}.about{grid-template-columns:1.05fr .95fr}.about-note{padding:clamp(1.6rem,4vw,3rem);background:var(--paper-deep)}.about-note-index{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.about-note p{margin:2.6rem 0;font-family:var(--display);font-size:clamp(2rem,4vw,3.4rem);line-height:1.12;letter-spacing:-.03em}.about-note p em{color:var(--rust);font-weight:400}.about-note-rule{display:block;width:3rem;height:2px;background:var(--rust)}.signup-inner{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);column-gap:clamp(2rem,7vw,7rem);row-gap:1.2rem;align-items:start}.signup-inner>.section-index{grid-column:1/-1;margin:0}.signup-heading h2{margin-top:.6rem}.signup-heading>p{max-width:370px;margin:1.4rem 0 0;color:rgba(255,255,255,.87);font-size:.96rem;line-height:1.8}.signup-form{min-width:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1rem}.field{display:grid;align-content:start;gap:.45rem;min-width:0;font-size:.79rem;font-weight:500;color:var(--paper)}.field>span,.field-group legend{line-height:1.45}.field :is(input,textarea){min-height:47px;width:100%;padding:.72rem .8rem;border:1px solid rgba(255,255,255,.46);border-radius:0;background:rgba(255,255,255,.09);color:white;font:400 .87rem/1.4 var(--body)}.field :is(input,textarea)::placeholder{color:rgba(255,255,255,.73)}.field :is(input,textarea):focus-visible,.field-group input:focus-visible,.signup-form button:focus-visible,.consent a:focus-visible{outline:3px solid #fff;outline-offset:2px}.field-group{min-width:0;padding:0;margin:0;border:0}.field-group legend{padding:0;margin:0 0 .75rem;font-size:.79rem;font-weight:500;color:var(--paper)}.address-group,.days-group,.privacy-group{grid-column:1/-1}.address-group{display:grid;grid-template-columns:1.2fr .8fr;gap:.55rem 1rem}.address-group legend{grid-column:1/-1}.address-city{display:grid;grid-template-columns:.62fr 1fr;gap:1rem}.field-hint{font-size:.72rem;font-weight:400;color:rgba(255,255,255,.81)}.days-group{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem}.days-group legend{grid-column:1/-1}.day-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.42rem .38rem;align-items:center;min-height:67px;padding:.52rem .47rem;border:1px solid rgba(255,255,255,.4);font-size:.68rem;line-height:1.35;color:#fff;cursor:pointer}.day-option:has(input:checked){background:var(--paper);color:var(--ink);border-color:var(--paper)}.day-option input,.consent input{width:17px;height:17px;margin:0;accent-color:var(--rust);cursor:pointer}.day-option small{grid-column:2;font-size:.64rem;color:rgba(255,255,255,.79)}.day-option:has(input:checked) small{color:var(--muted)}.field-error{grid-column:1/-1;margin:0;font-size:.83rem;color:#fff0d5}.privacy-group{padding-top:.1rem}.consent{display:flex;align-items:flex-start;gap:.7rem;font-size:.78rem;line-height:1.65;color:rgba(255,255,255,.94)}.consent input{flex:none;margin-top:.12rem}.consent a{text-underline-offset:3px}.form-note{margin:1.4rem 0 1.1rem;font-size:.76rem;line-height:1.65;color:rgba(255,255,255,.84)}.form-submit{min-height:51px;border:0;font-family:var(--body);cursor:pointer}.form-status{min-height:1.2em;margin:.6rem 0 0;font-size:.77rem;color:white}.signup-form .email-note{margin-top:.5rem}
@media(max-width:760px){.about{grid-template-columns:1fr;gap:2rem}.about-note{padding:1.35rem}.about-note p{font-size:2.35rem;margin:1.65rem 0}.signup-inner{grid-template-columns:minmax(0,1fr);gap:1.5rem;padding-block:4.5rem}.signup-inner>.section-index{grid-column:1}.signup-heading h2{margin-top:.7rem}.signup-heading>p{margin-top:.95rem}.form-grid{gap:.95rem .75rem}.field :is(input,textarea){padding-inline:.65rem}.days-group{grid-template-columns:repeat(2,minmax(0,1fr))}.day-option{grid-template-columns:auto minmax(0,1fr);min-height:66px;padding:.5rem .6rem;font-size:.75rem}.form-note{font-size:.75rem}.address-group{grid-template-columns:minmax(0,1fr)}.address-group legend{grid-column:1}.address-city{grid-template-columns:.65fr 1fr}.signup .signup-inner>p:not(.section-index){margin-bottom:1rem}}
@media(max-width:370px){.form-grid{grid-template-columns:minmax(0,1fr)}.address-group,.days-group,.privacy-group{grid-column:1}.address-group{grid-template-columns:minmax(0,1fr)}.field-hint{display:block}.hero-meta{line-height:1.65}}

.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.signup-form button:disabled{opacity:.65;cursor:wait}
.privacy-content{max-width:760px;padding-block:4rem 6rem}.privacy-content h1{margin:1rem 0 3rem;font-family:var(--display);font-size:clamp(3rem,12vw,6.5rem);font-weight:400;line-height:.98;letter-spacing:-.055em}.privacy-content h2{margin:2rem 0 .75rem;font-family:var(--display);font-size:1.65rem;font-weight:400}.privacy-content p{max-width:66ch;font-size:.96rem;line-height:1.85}.privacy-content a{color:var(--rust);text-underline-offset:3px}
.day-option{transition:background-color .18s,border-color .18s,transform .18s,color .18s}.day-option:hover{background:rgba(255,255,255,.15);border-color:#fff;transform:translateY(-2px)}.day-option:has(input:checked):hover{background:var(--paper-deep);border-color:var(--paper-deep)}.day-option:focus-within{outline:3px solid #fff;outline-offset:3px}.day-label{grid-column:2;display:grid;gap:.15rem;line-height:1.2}.day-label span:first-child{font-size:.69rem;font-weight:600;white-space:nowrap}.day-label span:last-child{font-size:.68rem;white-space:nowrap}button.privacy-open{appearance:none;display:inline;margin:0;padding:0;border:0;background:transparent!important;box-shadow:none;color:inherit;font:inherit;line-height:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.site-dialog{width:min(92vw,620px);max-width:none;max-height:85vh;padding:0;border:0;border-top:2px solid var(--rust);background:var(--paper);color:var(--ink);box-shadow:0 1.5rem 5rem rgba(22,20,17,.2)}.site-dialog::backdrop{background:rgba(74,72,68,.56);backdrop-filter:blur(2px)}.dialog-card{position:relative;max-height:85vh;overflow:auto;padding:clamp(1.5rem,6vw,3rem)}.dialog-card::after{display:block;width:3.5rem;height:2px;margin-top:1.8rem;background:var(--rust);content:""}.dialog-card h2{margin:.8rem 2.5rem 1.5rem 0;font-family:var(--display);font-size:clamp(2.6rem,9vw,4.5rem);font-weight:400;line-height:.98;letter-spacing:-.045em}.dialog-card h3{margin:1.6rem 0 .5rem;font-family:var(--display);font-size:1.45rem;font-weight:400}.dialog-card p{font-size:.9rem;line-height:1.75}.dialog-card a{color:var(--rust);text-underline-offset:3px}.dialog-close{position:absolute;top:1.1rem;right:1.15rem;width:2.5rem;height:2.5rem;border:1px solid var(--line);background:transparent;font-size:1.6rem;cursor:pointer}.dialog-close:focus-visible,.dialog-done:focus-visible{outline:3px solid var(--rust);outline-offset:3px}.dialog-done{margin-top:.6rem;cursor:pointer}.site-dialog[open]{animation:dialog-in .18s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.day-option,.site-dialog[open]{animation:none;transition:none}}
@media(max-width:960px){.days-group{grid-template-columns:repeat(2,minmax(0,1fr))}}
.days-group{display:block}
.course-calendar{padding:1rem 1.05rem 1.05rem;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.055)}
.calendar-month{margin-bottom:1rem;color:var(--paper);font-family:var(--display);font-size:1.5rem;line-height:1.1}
.calendar-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}
.calendar-week+.calendar-week{margin-top:.8rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.2)}
.calendar-week-label{margin-bottom:.45rem;color:rgba(255,255,255,.76);font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}
.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.16rem;min-width:0;min-height:4.1rem;padding:.35rem .1rem;border:1px solid rgba(255,255,255,.36);color:var(--paper);cursor:pointer;transition:background-color .18s,border-color .18s,color .18s,transform .18s}
.calendar-day:has(input:disabled){opacity:.45;cursor:not-allowed}
.calendar-day:has(input:disabled) .calendar-day-number{text-decoration:line-through}
.calendar-day:not(:has(input:disabled)):hover{transform:translateY(-2px);border-color:#fff;background:rgba(255,255,255,.15)}
.calendar-day:has(input:checked){border-color:var(--paper);background:var(--paper);color:var(--ink)}
.calendar-day:has(input:checked):hover{border-color:var(--paper-deep);background:var(--paper-deep)}
.calendar-day input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.calendar-day:focus-within{outline:3px solid #fff;outline-offset:3px;z-index:1}
.calendar-weekday{font-size:.78rem;font-weight:550;line-height:1.1;letter-spacing:-.02em;text-align:center;white-space:nowrap}
.calendar-day-number{font-size:.62rem;line-height:1;opacity:.76}
.calendar-day-check{position:absolute;top:.18rem;right:.24rem;font-size:.6rem;opacity:0}
.calendar-day:has(input:checked) .calendar-day-check{opacity:1}
.days-group[aria-invalid="true"] .calendar-day{border-color:#ffe0d3}
@media(max-width:760px){.calendar-grid{gap:.3rem}.calendar-day{padding-inline:0}.calendar-weekday{font-size:.69rem}.calendar-day-number{font-size:.58rem}}
@media(max-width:370px){.course-calendar{padding:.8rem .55rem}.calendar-grid{gap:.2rem}.calendar-day{min-height:3.7rem}.calendar-weekday{font-size:.58rem;letter-spacing:-.025em}.calendar-day-number{font-size:.52rem}}
/* Keep interface arrows as vector artwork so mobile emoji fonts cannot turn them into boxed symbols. */
.arrow-icon{display:inline-block;width:1em;height:1em;flex:none;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter;vertical-align:-.12em}
.header-link,.button{gap:.55rem}
.field-error-message{font-size:.72rem;font-weight:450;line-height:1.45;color:#ffe0d3}.field-invalid :is(input,textarea){border-color:#ffe0d3;background:rgba(92,27,15,.18);box-shadow:inset 3px 0 #ffe0d3}.days-group[aria-invalid="true"] .day-option{border-color:#ffe0d3}.days-group[aria-invalid="true"] legend{color:#ffe0d3}
.submit-art{position:relative;display:none;width:5.8rem;height:5.8rem;margin:0 0 1.5rem;color:var(--rust);align-items:center;justify-content:center}.submit-dialog[data-state="loading"] .submit-art-loading,.submit-dialog[data-state="success"] .submit-art-success,.submit-dialog[data-state="error"] .submit-art-error{display:flex}.submit-art svg{width:3.4rem;height:3.4rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.submit-art-loading>svg{width:3rem;height:3rem;fill:var(--rust);stroke:none;animation:art-breathe 2.2s ease-in-out infinite}.art-orbit{position:absolute;inset:.25rem;border:1px solid rgba(168,79,54,.23);border-radius:50%;animation:art-orbit 7s linear infinite}.art-orbit i{position:absolute;width:.48rem;height:.48rem;border-radius:50%;background:var(--rust)}.art-orbit i:nth-child(1){top:.25rem;left:50%;transform:translateX(-50%)}.art-orbit i:nth-child(2){right:.4rem;bottom:.85rem;width:.34rem;height:.34rem;background:#c2945c}.art-orbit i:nth-child(3){left:.35rem;bottom:1.05rem;width:.28rem;height:.28rem;background:#657367}.submit-art-success{border-radius:50%;background:#e6e9df}.submit-art-success svg{width:5.4rem;height:5.4rem;stroke:#657367;stroke-width:2}.submit-art-success svg circle{fill:none;stroke:#657367;stroke-width:1.5}.submit-art-success svg path:first-of-type{stroke-width:2.4}.submit-art-success .art-spark{stroke:#c2945c;stroke-width:1.5}.submit-dialog[data-state="success"] .submit-art-success{animation:art-pop .5s cubic-bezier(.2,.8,.3,1.2) both}.submit-art-error{border-radius:50%;background:#f1e2d8}.submit-art-error svg circle{fill:none;stroke:var(--rust)}.submit-art-error svg path{stroke:var(--rust);stroke-width:2.4}
@keyframes art-orbit{to{transform:rotate(360deg)}}@keyframes art-breathe{50%{transform:scale(.9) rotate(8deg)}}@keyframes art-pop{from{opacity:0;transform:scale(.72) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media(prefers-reduced-motion:reduce){.art-orbit,.submit-art-loading>svg{animation:none}}
@media(max-width:760px){.hero-meta{flex-wrap:nowrap;white-space:nowrap;gap:.28rem;font-size:clamp(.64rem,3.15vw,.75rem)}.hero-meta .meta-divider{margin-inline:.08rem}}
@media(max-width:390px){.hero-meta{gap:.22rem;font-size:clamp(.61rem,3.05vw,.69rem)}.hero-meta .meta-divider{margin-inline:.04rem}}
@media(max-width:520px){.dialog-card>.section-index,.dialog-card h2{max-width:calc(100% - 3.25rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.brand{gap:0;font-family:var(--display);font-size:1.45rem;font-weight:400;letter-spacing:-.03em}.brand-wordmark span{color:var(--rust)}.brand img{display:none}
@media(max-width:760px){.brand{font-size:1.2rem}}

/* Compact sections, personal imagery and clear booking controls. */
:root {
  --copy: #59554e;
  --on-rust: #fff;
  --on-rust-soft: rgba(255,255,255,.87);
  --on-rust-line: rgba(255,255,255,.46);
  --section-space: clamp(3.5rem,6vw,5.5rem);
}
[hidden] { display: none !important; }
.hero { min-height: auto; padding-block: 2.5rem; gap: 1.5rem 7%; }
.hero-copy { padding-block: 1.5rem; }
.hero-intro { max-width: 28rem; margin-bottom: 1rem; }
.hero-group { margin-bottom: 1.1rem; color: var(--rust); font-size: .88rem; font-weight: 600; }
.hero-meta { margin-bottom: 1.4rem; }
.hero-image > img { height: clamp(360px,43vw,550px); }
.hero-caption { font-size: .85rem; }
.offering-inner,.details-inner,.about,.signup-inner { padding-block: var(--section-space); }
.offering-inner { gap: 3rem 8%; }
.offering-copy { padding-top: 0; }
.materials-heading { margin: 1.6rem 0 .75rem; font-size: 1rem; font-weight: 600; }
.material-list li { min-height: 48px; grid-template-columns: 2rem 1fr; }
.offering-copy .material-note { margin: 1rem 0 0; font-size: .88rem; }
.offering-copy blockquote { margin-top: 1.5rem; }
.offering-copy blockquote p { font-size: 2rem; }
.detail-grid { margin-top: 2.25rem; }
.detail-item { min-height: 150px; }
.detail-booking { max-width: 48rem; margin: 1rem 0 0; color: var(--copy); font-size: .9rem; line-height: 1.7; }
.about { gap: 4rem 9%; }
.about-image > img { height: 500px; object-position: 78% center; filter: none; }
.about-image figcaption { line-height: 1.6; font-size: .82rem; }
.faq { display: grid; grid-template-columns: .85fr 1.15fr; gap: 3rem 8%; padding-block: var(--section-space); border-top: 1px solid var(--line); }
.faq .section-heading h2,.sharing h2 { font-size: clamp(3.3rem,5vw,5rem); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { padding-block: 1.25rem; border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; font-size: 1rem; font-weight: 500; line-height: 1.6; }
.faq-list summary::marker { color: var(--rust); }
.faq-list summary:focus-visible { outline: 2px solid var(--rust); outline-offset: 5px; }
.faq-list p { margin: 1rem 0 0; font-size: .95rem; line-height: 1.8; color: var(--copy); }
.signup-heading .signup-payment { padding-top: 1.4rem; border-top: 1px solid var(--on-rust-line); font-size: .88rem; line-height: 1.9; }
.field,.field-group legend { font-size: .88rem; }
.field :is(input,textarea) { min-height: 50px; font-size: 1rem; }
.form-section-label { grid-column: 1/-1; margin: .75rem 0 0; font-size: 1rem; font-weight: 600; }
.calendar-week-header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .6rem; }
.calendar-week-label { margin: 0; font-size: .74rem; color: var(--on-rust-soft); }
.week-select { min-height: 44px; padding: .5rem .7rem; border: 1px solid var(--on-rust-line); color: var(--paper); background: transparent; font: 500 .82rem/1.3 var(--body); cursor: pointer; }
.week-select:hover { background: var(--paper); color: var(--ink); }
.week-select[aria-pressed="true"] { background: var(--paper); color: var(--ink); }
.calendar-day { min-height: 76px; gap: .5rem; }
.calendar-day-number { font-size: 1.3rem; opacity: 1; }
.calendar-day-check { font-size: .8rem; }
.price-rule { margin: .9rem 0 0; font-size: .84rem; line-height: 1.7; color: var(--on-rust-soft); }
.selection-summary { grid-column: 1/-1; padding: 1.2rem; background: var(--paper); color: var(--ink); }
.selection-total { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .9rem; }
.selection-total strong { flex: none; text-align: right; font-family: var(--display); font-size: 2.3rem; font-weight: 400; line-height: 1.1; }
.selection-total small { display: block; margin-top: .4rem; font: 400 .72rem/1.4 var(--body); color: var(--copy); }
.selection-summary p { margin: 1rem 0 0; padding-top: .85rem; border-top: 1px solid var(--line); color: var(--copy); font-size: .82rem; line-height: 1.7; }
.form-note { font-size: .88rem; color: var(--on-rust-soft); }
.form-submit { font-size: 1rem; }
.sharing { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 3rem 7%; padding-block: var(--section-space); }
.sharing h2 { margin-bottom: 1.25rem; line-height: 1; }
.sharing p:not(.section-index) { max-width: 28rem; color: var(--copy); font-size: .95rem; line-height: 1.75; }
.share-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.copy-link { font-family: var(--body); border: 1px solid var(--ink); cursor: pointer; }
.copy-link:focus-visible { outline: 3px solid var(--rust); outline-offset: 4px; }
.button-outline { border: 1px solid var(--ink); color: var(--ink); background: transparent; }
.button-outline:hover { color: var(--paper); }
.sharing .share-status { min-height: 1.75em; margin: .8rem 0; font-size: .85rem; }
.copy-fallback { display: grid; gap: .5rem; margin-block: 1rem; font-size: .85rem; }
.copy-fallback input { width: 100%; min-width: 0; padding: .8rem; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: 1rem var(--body); }
.copy-fallback input:focus-visible { outline: 2px solid var(--rust); }
.calendar-weekday-short { display: none; }
@media(max-width:760px) {
  .hero { padding-block: 2.5rem 2rem; gap: 1.8rem; }
  .hero-copy { padding-block: 0; }
  .hero-meta { flex-wrap: wrap; white-space: normal; font-size: .85rem; gap: .4rem; line-height: 1.6; }
  .hero-meta .meta-divider,.hero-meta .meta-divider + span { display: none; }
  .hero-image > img { height: 330px; }
  .hero-group { font-size: .84rem; }
  .about { gap: 2rem; }
  .about-image > img { height: 380px; }
  .faq,.sharing { grid-template-columns: 1fr; gap: 2rem; }
  .faq .section-heading h2,.sharing h2 { font-size: 3.4rem; }
  .form-grid { grid-template-columns: minmax(0,1fr); gap: 1.2rem; }
  .calendar-weekday-long { display: none; }
  .calendar-weekday-short { display: inline; }
  .calendar-weekday { font-size: .8rem; }
  .calendar-day-number { font-size: 1.25rem; }
  .calendar-day { min-height: 72px; }
  .calendar-week-label { font-size: .7rem; }
  .selection-summary { padding: 1rem; }
  .form-submit { width: 100%; }
  .share-buttons { flex-direction: column; }
  .share-buttons .button { width: 100%; }
}

/* Compact identity and practice description. */
.site-header { display: grid; grid-template-columns: minmax(0, 1fr); gap: .65rem; min-height: 0; padding-block: 1rem; }
.brand { flex-direction: column; align-items: flex-start; min-width: 0; max-width: 100%; }
.brand-wordmark { line-height: 1.1; }
.brand-claim { margin-top: .2rem; font-family: var(--body); font-size: .8rem; line-height: 1.4; letter-spacing: .01em; }
.brand-services { margin: 0; padding-top: .65rem; border-top: 1px solid var(--line); font-family: var(--body); font-size: .72rem; line-height: 1.6; letter-spacing: 0; color: var(--muted); }
@media (min-width: 761px) {
  .site-header { grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; }
  .brand-services { padding: 0 0 0 1.5rem; border-top: 0; border-left: 1px solid var(--line); font-size: .76rem; }
}

.field-notes { grid-column: 1 / -1; }
.field textarea { resize: vertical; min-height: 7rem; }

@media (max-width: 760px) {
  .site-header:has(.brand-services) { gap: .7rem; padding-block: 1.15rem 1rem; text-align: center; }
  .site-header:has(.brand-services) .brand { align-items: center; justify-self: center; }
  .site-header .brand-wordmark { font-size: 1.7rem; }
  .site-header .brand-claim { margin-top: .25rem; font-size: .75rem; }
  .site-header .brand-services { padding: 0; border: 0; font-size: .67rem; line-height: 1.55; }
}

.event-links{margin-block:2rem}.event-links h3{font-size:1rem;font-weight:500}.event-links ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.25rem 1.5rem;list-style:none;padding:0}.event-links a{display:inline-block;padding:.65rem 0;text-underline-offset:.2em;color:var(--rust)}
.event-page{max-width:60rem;padding-block:3rem}.event-page h1{font-family:var(--display);font-size:clamp(3rem,9vw,6rem);font-weight:400;line-height:1;margin:1.5rem 0}.event-page h1 em{color:var(--rust);font-weight:400}.event-page p{line-height:1.75}.event-date{font-weight:500}.event-facts{display:grid;gap:1.25rem;margin-block:2rem;padding-block:1.5rem;border-block:1px solid var(--line)}.event-facts dt{color:var(--muted);font-size:.85rem;margin-bottom:.35rem}.event-facts dd{margin:0;line-height:1.65}.event-page h2{font-family:var(--display);font-weight:400;font-size:2rem}.event-page .button{white-space:normal;text-align:center;max-width:100%}
