/* Warm neutrals and a single amber accent; the photography carries the color. */
:root{--paper:#f4f1eb;--surface:#e9e4dc;--ink:#222321;--muted:#62635d;--line:#d3cfc6;--accent:#d4b17a;--night:#20221f;--white:#faf8f3;--stage:#272c29;--stage-muted:#d1d0c6;--studio:#171b19;--invitation:#e8dfd0;--invitation-line:#b9a991;--radius:3px}
html[data-theme=dark]{--paper:#252623;--surface:#30322d;--ink:#f2efe8;--muted:#b9b9b0;--line:#494b44}
:focus-visible{outline-color:#77572e}
html[data-theme=dark] :focus-visible{outline-color:var(--accent)}
html[data-theme=dark] .contact-banner :focus-visible,html[data-theme=dark] .subpage-cta :focus-visible{outline-color:#77572e}
.button:hover{background:#e2c99e}
.hero-line-last,.hero-line em{color:var(--white)}
.title-period{color:var(--accent)}
.hero-note .button{box-shadow:none}
.hero-note .button:hover{background:#e2c99e}

/* Light and dark editorial surfaces give the photographs breathing room. */
.intro{background:var(--paper);color:var(--ink);max-width:none;position:relative;isolation:isolate;overflow:clip}
.intro>.intro-label,.intro>.intro-main{max-width:1472px;margin-inline:auto}
.intro-copy .text-link{border-bottom-width:1px}
.experience-section{--paper:var(--stage);--ink:var(--white);--muted:var(--stage-muted);--line:#ffffff38;--surface:var(--stage);background:var(--stage);color:var(--ink);position:relative;isolation:isolate;overflow:clip}
.experience-section .motion-line:nth-child(2){color:var(--accent)}
.experience-section .occasion-tabs button[aria-selected=true]{background:var(--accent);color:var(--night);border-color:var(--accent)}
.experience-section .occasion-tabs button:hover:not([aria-selected=true]){background:#ffffff10}
.experience-section :focus-visible{outline-color:var(--accent)}
.occasion-panel{gap:8%}
.occasion-photo{box-shadow:none;margin-right:0;margin-bottom:0}
.occasion-photo>span{background:var(--night);color:var(--white)}
.occasion-copy h3{color:var(--white)}
.occasion-copy .button{background:var(--accent);color:var(--night)}
.occasion-copy .button:hover{background:#e2c99e}
.occasion-copy .share-group{margin-top:2px}

.work-section .section-heading h2{color:var(--ink)}
.work-caption{padding:22px 0 0;margin-top:20px;border-top:1px solid var(--line);background:transparent;color:var(--ink)}
.work-caption span{color:var(--muted)}
.work-aside p{border-left:2px solid var(--accent);padding-left:20px}
.work-image{--photo-curtain:var(--paper)}
.studio{background:var(--studio);color:var(--white)}
.studio-film{--photo-curtain:var(--studio)}
.studio-year{color:var(--white)}
.studio-copy p,.studio-archive figcaption{color:var(--stage-muted)}
.studio-services{color:#e1dfd7}
.studio .text-link{color:var(--accent)}
.year-rule{background:var(--accent);height:3px}

/* Fine rings retain the invitation's movement without dominating the page. */
.contact-banner{background:var(--invitation);color:var(--night);position:relative;overflow:clip;isolation:isolate}
.contact-prelude,.contact-link,.contact-alternative,.contact-share{position:relative;z-index:1}
.contact-link h2{max-width:82%}
.contact-art{position:absolute;right:-240px;top:80px;width:700px;height:700px;border:1px solid var(--invitation-line);border-radius:50%;z-index:0;pointer-events:none;transform:translateX(calc((1 - var(--enter-progress,1))*90px))}
.contact-art:before,.contact-art:after{content:"";position:absolute;inset:58px;border:1px solid var(--invitation-line);border-radius:50%}
.contact-art:after{inset:118px}
.contact-link-caption{font-weight:600;border-bottom-width:1px}
.contact-alternative{border-color:#20221f40;max-width:80%}
.contact-share{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #20221f40;padding-top:24px;margin-top:24px}
.contact-share>p{font:600 clamp(25px,3.2vw,44px)/1 var(--display);max-width:500px}
.share-group{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;position:relative}
.share-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;border-bottom:1px solid currentColor;padding:10px 0;font-size:12px;font-weight:600}
.share-symbol{display:grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;font-size:12px;font-weight:600;transform:rotate(-7deg);transition:transform .2s}
.share-button:hover .share-symbol{transform:rotate(7deg)}
.share-status{font-size:12px;line-height:1.4;max-width:260px}
.share-fallback{display:grid;gap:7px;width:min(100%,420px);font-size:13px;color:inherit}
.share-fallback input{width:100%;min-height:44px;padding:10px;border:1px solid currentColor;border-radius:0;background:var(--white);color:var(--night);font-size:13px}
.event-share{margin-top:22px}
.event-masthead h1,.work-masthead h1{color:var(--ink)}
.subpage-cta{background:var(--invitation);color:var(--night)}
.site-footer{border-top:1px solid var(--line)}
.site-footer .footer-brand{color:var(--ink)}
@media(max-width:1100px){.contact-art{right:-370px}.contact-link h2{max-width:100%}}
@media(max-width:700px){
 .work-caption{padding:18px 0 0}.work-caption h3{font-size:34px}
 .work-aside p{padding-left:14px}
 .contact-art{width:320px;height:320px;right:-215px;top:80px;opacity:.7}
 .contact-art:before{inset:28px}.contact-art:after{inset:58px}
 .contact-link h2{position:relative}.contact-alternative{max-width:none}
 .contact-share{align-items:start;flex-direction:column;padding-top:22px}.contact-share>p{font-size:29px;max-width:250px}
 .share-button{font-size:11px}.share-status{font-size:11px}.share-group{gap:8px 14px}
 .occasion-copy .share-group{margin-top:4px}
}
@media(prefers-reduced-motion:reduce){.contact-art,.share-symbol{transform:none!important;transition:none!important}}

/* Restrained corners and a visible route from browsing to an event request. */
:root{--control-line:#777a70;--radius:8px;--photo-radius:14px;--section-radius:0px}
html[data-theme=dark]{--control-line:#7d8075}
html{scroll-padding-top:112px}
.site-header{height:88px;position:sticky;top:0;background:var(--paper);border-bottom-color:var(--line);padding-block:16px}
.home-page .site-header{position:sticky;inset:auto;top:0;background:var(--night);border-color:#ffffff24}
.header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 23px;border:1px solid transparent;border-radius:8px;background:var(--accent);color:var(--night);font-size:13px;line-height:1.2;white-space:nowrap;transition:background .2s}
.header-cta:hover{background:#e2c99e}
.home-page .site-header :focus-visible{outline-color:var(--accent)}








.booking-path{display:grid;grid-template-columns:.85fr 1.5fr;gap:7%;padding-block:70px 64px}
.booking-intro{display:grid;gap:20px;align-content:start}
.booking-intro h2{font-size:clamp(40px,4.4vw,68px);line-height:.96}
.booking-intro .text-link{justify-self:start;font-size:13px}
.booking-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:start}
.booking-steps li{display:grid;gap:18px}
.step-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);color:var(--ink);font-size:13px}
.booking-steps h3{font-size:16px;font-weight:600;letter-spacing:-.02em;margin-bottom:10px}
.booking-steps p{font-size:13px;line-height:1.75;color:var(--muted);max-width:260px}
.intro{padding-top:65px}
.experience-section,.studio,.contact-banner,.subpage-cta{margin-inline:0;border-radius:var(--section-radius)}
.experience-section{padding-block:78px}
.occasion-tabs{gap:24px;padding-block:7px;scroll-padding-inline:var(--space)}
.occasion-tabs button,.occasion-tabs button:first-child{border:0;border-bottom:2px solid var(--line);border-radius:0;padding:14px 0;min-height:48px}
.experience-section .occasion-tabs button[aria-selected=true]{background:transparent;color:var(--accent);border-bottom:2px solid var(--accent)}
.experience-section .occasion-tabs button:hover:not([aria-selected=true]){background:transparent;color:var(--accent)}
.occasion-photo,.work-image,.studio-film,.event-image-button,.archive-photo{border-radius:var(--photo-radius)}
.occasion-photo{border-radius:0;overflow:visible}
.occasion-photo img{height:calc(100% - 28px);border-radius:var(--photo-radius)}
.occasion-photo>span{position:static;display:block;background:transparent;color:var(--stage-muted);padding:10px 0 0;border-radius:0;font-size:9px;line-height:1.2}
.work-stage .work-image{border-radius:var(--photo-radius)}
.image-view,.photo-open{border-radius:6px;padding:9px 14px}
.occasion-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px}
.occasion-actions .button{margin-top:0}
.occasion-actions .text-link{font-size:12px}
.share-symbol{border-radius:50%;transform:none}
.share-button:hover .share-symbol{transform:rotate(8deg)}
.share-fallback input{border-radius:14px}
.studio{overflow:clip}
.contact-banner{width:auto;margin-block:0;padding-block:48px 36px}
.contact-link-caption{background:var(--night);color:var(--white);padding:17px 27px;border:0;border-radius:8px;font-size:14px}
.contact-link:hover .contact-link-caption{background:#3b4039}
.event-deck .event-next-step{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 0;max-width:280px}
.event-archive-spread{margin-inline:var(--space);padding:20px;border-radius:16px}
.event-archive-image{margin-inline:var(--space)}
.event-archive-image figcaption{padding-inline:0}
.subpage-cta{margin-bottom:0}
.lightbox{border-radius:12px}
.lightbox-close{border-radius:0 0 0 8px}
.field input,.field select,.field textarea{border:1px solid var(--control-line);border-radius:10px;padding:15px 16px;background:var(--paper)}
.field input::placeholder,.field textarea::placeholder{opacity:1}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--muted)}
.form-status{border-radius:14px}
.optional-details{border:1px solid var(--line);border-radius:10px;padding:20px}
.success-symbol{border-radius:50%}
.inquiry-section{gap:7%;padding-block:64px 90px;align-items:start}
.inquiry-intro h1{font-size:clamp(72px,8vw,116px)}
.inquiry-intro .inquiry-reassurance{font-size:13px;line-height:1.7;margin-top:24px;max-width:320px}
.inquiry-form-wrap{padding:30px;background:var(--surface);border-radius:16px;border:1px solid var(--line)}
.inquiry-contact-mobile{display:none}
.form-footnote{font-size:11px;line-height:1.7;display:block;max-width:470px}
@media(max-width:1100px){
 
 .booking-path{grid-template-columns:1fr;gap:38px}.booking-intro{grid-template-columns:1fr 1fr;align-items:end}.booking-intro>.eyebrow{grid-column:1/-1}.booking-intro .text-link{justify-self:end}.booking-intro h2{font-size:58px}
 .inquiry-form-wrap{padding:24px}
}
@media(max-width:800px){
 html{scroll-padding-top:100px}.site-header{height:80px}.mobile-menu{inset:80px 0 0;border-radius:0}.header-actions{gap:16px}.header-cta{font-size:12px;padding:12px 18px;min-height:44px}
 
 .booking-steps{gap:22px}.booking-steps h3{font-size:15px}
 .experience-section{padding-block:60px}.occasion-actions{align-items:start;flex-direction:column;gap:4px}.occasion-actions .button{font-size:13px;padding:16px 22px}
 .inquiry-section{gap:5%;padding-top:42px}.inquiry-intro h1{font-size:76px}.inquiry-form-wrap{padding:20px}.form-grid{gap:18px}
}
@media(max-width:550px){
 html{scroll-padding-top:94px}.site-header{height:78px;padding-block:15px;gap:14px}.header-actions{gap:12px}.header-cta{font-size:11px;padding:12px 15px}.mobile-menu{inset:78px 0 0}.menu-toggle{width:32px}
 .hero-bottom p{max-width:170px}
 .booking-path{padding-block:45px;gap:30px}.booking-intro{display:grid;grid-template-columns:1fr;gap:16px}.booking-intro h2{font-size:48px}.booking-intro .text-link{justify-self:start}.booking-steps{grid-template-columns:1fr;gap:23px}.booking-steps li{grid-template-columns:34px 1fr;gap:16px}.step-number{width:34px;height:34px}.booking-steps h3{margin-bottom:6px;font-size:16px}.booking-steps p{font-size:13px;max-width:none}.intro{padding-top:30px}
 .occasion-tabs button,.occasion-tabs button:first-child{padding:12px 0;font-size:12px}.occasion-tabs{margin-bottom:22px}.occasion-photo{height:340px}.occasion-actions{flex-direction:row;align-items:center;gap:8px 20px}.occasion-actions .text-link{font-size:11px}
 .contact-banner{padding-block:32px}.contact-link-caption{font-size:13px;padding:16px 23px}.event-archive-spread{padding:12px}.event-archive-story{padding:28px 12px}.subpage-cta .wrap{padding-inline:24px}
 .inquiry-section{padding-top:30px;gap:28px}.inquiry-intro .eyebrow{margin-bottom:18px;font-size:10px}.inquiry-intro h1{font-size:19vw;margin-bottom:18px}.inquiry-intro>p{font-size:14px;max-width:none}.inquiry-intro .inquiry-reassurance{font-size:12px;margin-top:16px;max-width:none}.inquiry-contact-desktop{display:none}.inquiry-contact-mobile{display:grid;margin-top:28px}.inquiry-contact-mobile .eyebrow{display:block}.inquiry-form-wrap{padding:22px 18px;border-radius:14px}.form-grid{grid-template-columns:1fr}.field input,.field select,.field textarea{font-size:16px;min-height:52px}.field label{font-size:12px}.field small{font-size:10px}.form-header{font-size:9px;gap:10px}.form-footnote{font-size:10px}.optional-details{padding:16px}
}
@media(max-width:360px){.header-cta{padding-inline:12px;font-size:10px}.header-actions{gap:8px}.booking-intro h2{font-size:43px}}

/* A clear editorial opening: typography and photography have their own space. */
.hero-editorial{display:grid;grid-template-columns:48% 52%;height:clamp(720px,calc(100svh - 88px),960px);min-height:0;max-height:none;background:var(--night);border-radius:0;overflow:clip;isolation:isolate}
.hero-editorial .hero-copy{display:grid;grid-template-rows:auto 1fr auto auto;gap:32px;min-width:0;padding:36px var(--space) 30px}
.hero-editorial .hero-topline{position:static;inset:auto;display:flex;align-items:start;justify-content:space-between;gap:24px;font-size:9px;line-height:1.6;letter-spacing:.045em}
.hero-editorial .hero-topline>span:first-child{max-width:170px}
.hero-editorial .hero-title{position:static;inset:auto;width:auto;align-self:center;font-size:clamp(98px,12.4vw,190px);line-height:.81;letter-spacing:-.035em;pointer-events:auto}
.hero-editorial .hero-line{padding:0 0 .08em;animation:none;transform:none;opacity:1;overflow:visible}
.hero-editorial .hero-line-last{font-size:1.1em!important;letter-spacing:-.038em}
.hero-editorial .hero-line em{font-size:.43em;margin:8px 0 0 6px}
.hero-editorial .hero-note{position:static;inset:auto;display:grid;gap:16px;width:auto;max-width:360px;z-index:auto;align-items:start;justify-content:stretch}
.hero-editorial .hero-note p{text-shadow:none}
.hero-editorial .hero-service{font-size:25px;line-height:1.25;font-weight:400;letter-spacing:-.02em}
.hero-editorial .hero-note .button{justify-self:start;width:auto;min-height:54px;padding:16px 26px;font-size:14px}
.hero-editorial .hero-next-step{font-size:12px;line-height:1.65;color:#d1d0c6;max-width:290px}
.hero-editorial .hero-bottom{position:static;inset:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff28;padding-top:20px}
.hero-editorial .hero-bottom>span{font-size:8px;letter-spacing:.025em;color:#d1d0c6;text-align:right}
.hero-editorial .scroll-link{font-size:11px;text-decoration:underline;text-underline-offset:5px}
.hero-photograph{min-width:0;min-height:0;width:100%;max-width:690px;justify-self:end;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px;padding:32px var(--space) 28px 25px}
.hero-editorial .hero-scene{position:relative;inset:auto;z-index:auto;min-width:0;min-height:0;overflow:hidden;border-radius:10px;background:var(--studio)}
.hero-editorial .hero-scene img{position:static;inset:auto;display:block;width:100%;height:100%;object-fit:cover;object-position:center 57%;mask-image:none;filter:none;transform:none;animation:none;will-change:auto}
.hero-photograph figcaption{display:flex;justify-content:space-between;gap:20px;font-size:9px;line-height:1.4;letter-spacing:.035em;color:#d1d0c6}
.hero-photograph figcaption>span:first-child{color:var(--white)}
@media(min-width:1600px){.hero-editorial .hero-copy{padding-left:max(var(--space),calc((100vw - 1520px)/2))}.hero-photograph{max-width:760px;margin-right:max(0px,calc((100vw - 1600px)/2));padding-right:40px}.hero-editorial .hero-title{font-size:190px}}
@media(max-width:1100px){.hero-editorial{grid-template-columns:49% 51%;height:clamp(660px,calc(100svh - 88px),900px)}.hero-editorial .hero-copy{gap:26px}.hero-editorial .hero-title{font-size:12.4vw}.hero-editorial .hero-topline{font-size:8px;gap:14px}.hero-photograph{padding-left:10px}.hero-photograph figcaption{font-size:8px;gap:12px}.hero-editorial .hero-service{font-size:23px}.hero-editorial .hero-bottom>span{max-width:110px}}
@media(max-width:800px){
 .hero-editorial{display:grid;grid-template-columns:1fr;height:auto;min-height:0;max-height:none}
 .hero-editorial .hero-copy{grid-template-rows:auto auto auto auto;gap:30px;padding:28px var(--space) 32px}
 .hero-editorial .hero-topline{font-size:9px;gap:20px}
 .hero-editorial .hero-title{font-size:clamp(100px,20vw,155px);width:max-content;max-width:100%;padding-block:14px 0;align-self:auto}
 .hero-editorial .hero-note{max-width:none;grid-template-columns:1fr auto;column-gap:30px;align-items:center;justify-content:stretch}
 .hero-editorial .hero-service{font-size:24px}
 .hero-editorial .hero-note .button{justify-self:end;font-size:14px}
 .hero-editorial .hero-next-step{grid-column:1/-1;font-size:12px;max-width:none}
 .hero-editorial .hero-bottom{padding-top:18px}.hero-editorial .hero-bottom>span{max-width:none}
 .hero-photograph{width:100%;max-width:none;padding:0 var(--space) 30px;gap:13px}
 .hero-editorial .hero-scene{aspect-ratio:4/5;max-height:780px}
 .hero-photograph figcaption{font-size:9px}
}
@media(max-width:550px){
 .hero-editorial .hero-copy{gap:25px;padding-top:26px;padding-bottom:28px}
 .hero-editorial .hero-topline{font-size:8px;letter-spacing:.04em}
 .hero-editorial .hero-title{font-size:27vw;padding-top:6px}
 .hero-editorial .hero-line em{margin-top:6px}
 .hero-editorial .hero-note{grid-template-columns:1fr;gap:15px}
 .hero-editorial .hero-service{font-size:23px}
 .hero-editorial .hero-service br{display:block}
 .hero-editorial .hero-note .button{width:100%;justify-self:stretch;font-size:14px;min-height:54px}
 .hero-editorial .hero-next-step{font-size:12px;max-width:300px}
 .hero-editorial .hero-bottom{gap:20px;padding-top:18px}
 .hero-editorial .hero-bottom>span{font-size:8px}
 .hero-editorial .hero-scene{aspect-ratio:4/5;border-radius:10px}
 .hero-photograph figcaption{font-size:8px;gap:12px}
}

/* Overlay every occasion in one intrinsic grid track to keep the section steady.
   Inactive content contributes its size but stays invisible and inert. */
.occasion-panels.tabs-ready{display:grid}
.tabs-ready>.occasion-panel{grid-area:1/1;min-width:0;align-items:start;align-content:start;row-gap:0}
.tabs-ready>.occasion-panel[hidden]{display:grid!important;visibility:hidden;pointer-events:none}
.tabs-ready>.occasion-panel.entering .occasion-copy{animation:none}
