/* Bookend scenes keep natural scrolling; their controls never wait for an animation. */
.hero[data-hero-sequence]{padding:0;max-height:none;position:relative}
.hero-pin{position:relative;height:100%;min-height:inherit;padding:160px var(--pad) 0;isolation:isolate}
.hero[data-hero-sequence]:after{display:none}
.hero-pin:after{content:'';position:absolute;bottom:95px;left:var(--pad);right:var(--pad);height:1px;background:#a6bc9525;pointer-events:none}
.hero .sculpture-stage{position:absolute;width:59%;height:83%;top:11%;right:-3%;z-index:1;pointer-events:auto}
.hero-journey-copy,.hero-scene-shade,.hero-chapters{display:none}
.hero[data-hero-sequence] .hero-actions{position:absolute;left:var(--pad);bottom:145px;margin:0;z-index:5}
.hero[data-hero-sequence] .hero-bottom{z-index:5}
.hero[data-hero-mode=motion]{height:255svh;min-height:0;max-height:none;overflow:clip}
.hero[data-hero-mode=motion] .hero-pin{position:sticky;top:0;height:100svh;min-height:0;padding:0}
.hero[data-hero-mode=motion] .sculpture-stage{inset:0;width:100%;height:100%;z-index:0}
.hero[data-hero-mode=motion] .hero-copy{position:absolute;left:var(--pad);top:190px;margin:0;width:54%;z-index:3;opacity:var(--hero-title-opacity,1);transform:translateY(var(--hero-title-y,0px));will-change:transform,opacity}
.hero[data-hero-mode=motion] h1{font-size:clamp(76px,7.3vw,118px);line-height:1.05}
.hero[data-hero-mode=motion] .hero-description{font-size:14px;line-height:1.9;max-width:320px;margin-top:30px}
.hero[data-hero-mode=motion] .hero-top{top:130px;z-index:4}
.hero[data-hero-mode=motion] .hero-journey-copy{display:block;position:absolute;left:var(--pad);top:190px;max-width:51%;z-index:3;pointer-events:none;opacity:var(--hero-story-opacity,0);transform:translateY(var(--hero-story-y,45px));will-change:transform,opacity}
.hero-journey-copy>.eyebrow{font-size:8px;color:#a4a18a}
.hero-journey-copy>p{font:300 clamp(65px,6.8vw,108px)/1.07 DM;letter-spacing:-.065em;color:#e6e9df;margin-top:24px}
.hero-journey-copy>p>span,.hero-journey-copy>p>em{display:block}
.hero-journey-copy>p>em{font-family:var(--luxe-serif);font-style:italic;color:#b8c2ae;letter-spacing:-.065em}
.hero[data-hero-mode=motion] .hero-scene-shade{display:block;position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#0b0f0ff0 0%,#0b0f0fd6 26%,#0b0f0f60 43%,transparent 60%),linear-gradient(0deg,#0b0f0ff0 0%,transparent 22%)}
.hero[data-hero-mode=motion] .hero-note{z-index:4;color:#a2aa93;font-size:8px}
.hero[data-hero-mode=motion] .hero-chapters{display:flex}
.cinematic-chapters{align-items:center;justify-content:center;gap:25px}
.cinematic-chapters button{appearance:none;background:transparent;border:0;box-shadow:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:5px 7px;font:7px/1.6 Mono,monospace;color:#75856c;cursor:pointer;position:relative}
.cinematic-chapters button>span{font:9px/1.6 DM;color:#7f8e75;transition:color .3s}
.cinematic-chapters button[aria-pressed=true]{color:#d2b48a}
.cinematic-chapters button[aria-pressed=true]>span{color:#dce2d1}
.cinematic-chapters button[aria-pressed=true]:after{content:'';position:absolute;left:7px;right:7px;bottom:1px;height:1px;background:#b89c7580}
.cinematic-chapters button:focus-visible,.finale-skip:focus-visible{outline:1px solid #d8ba93;outline-offset:3px}
.cinematic-progress{position:absolute;bottom:0;left:0;right:0;height:1px;background:#a6bd8d1f;overflow:hidden}
.cinematic-progress>span{display:block;width:100%;height:100%;background:#c6ad86;transform:scaleX(0);transform-origin:left}
.hero[data-hero-mode=motion] .hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hero[data-hero-mode=motion] .hero-folio{display:none}
/* The contact section is a final full-screen stage on every main page. */
.contact-section.finale{padding:0;background:#0b100f;color:#e4e9dc;isolation:isolate;border-top:1px solid #adbfa020;position:relative;overflow:clip}
.finale-pin{position:relative;padding:115px var(--pad) 85px;min-height:720px;display:grid;grid-template-columns:1.2fr 1fr;gap:45px 80px;isolation:isolate}
.finale-stage,.finale-fallback,.finale-shade,.finale-controls,.finale-story{display:none}
.finale-top{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:24px;border-bottom:1px solid #a8bd8e25;position:relative;z-index:3}
.finale .finale-top>.eyebrow{font-size:8px;color:#a39c83}
.finale-heading{position:relative;z-index:3;align-self:start}
.finale-heading h2{font:300 clamp(58px,7.3vw,108px)/1.05 DM,Arial,sans-serif;letter-spacing:-.07em;text-transform:none;margin:0;color:#e3e8dc}
.finale-heading h2>span,.finale-heading h2>em{display:block;white-space:nowrap}
.finale-heading h2>em{font:italic 400 1.05em/1.04 var(--luxe-serif);letter-spacing:-.065em;color:#adbb9f}
.finale-description{font-size:14px;line-height:1.9;color:#9dab93;max-width:345px;margin-top:30px}
.finale-invitation{position:relative;z-index:4;align-self:end;max-width:410px}
.finale-invitation>.eyebrow{display:block;font-size:7px;color:#9b9e83;max-width:300px;line-height:1.8}
.finale-invitation .button{display:flex;width:max-content;min-width:252px;min-height:56px;margin-top:20px;background:#d7dfcb;border-color:#d7dfcb;color:#24311f;font-size:12px;gap:48px}
.finale-invitation .button:hover{background:#eef1e7;border-color:#eef1e7}
.finale-invitation .email{font-size:11px;color:#b3c3a2;display:flex;width:max-content;margin-top:13px;border-color:#a6bc8e38;min-height:40px;padding:8px 0}
.finale[data-finale-mode=motion]{height:310svh}
.finale[data-finale-mode=motion] .finale-pin{position:sticky;top:0;height:100svh;min-height:0;padding:0;display:block}
.finale[data-finale-mode=motion] .finale-stage{display:block;position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 75% 48%,#475b3c35,transparent 60%)}
#finale-canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1s}
.finale[data-finale-scene=ready] #finale-canvas{opacity:1}
.finale[data-finale-mode=motion] .finale-fallback{display:grid;place-items:center;position:absolute;inset:0;transition:opacity .8s}
.finale-fallback i{position:absolute;width:min(32vw,400px);aspect-ratio:1;border:1px solid #b0bb9b38;border-radius:18%;transform:rotate(-18deg)}
.finale-fallback i:nth-child(2){transform:rotate(-8deg) scale(.8)}
.finale-fallback i:nth-child(3){transform:rotate(6deg) scale(.6)}
.finale[data-finale-scene=ready] .finale-fallback{opacity:0}
.finale[data-finale-mode=motion] .finale-shade{display:block;position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,#0b100ff5 0%,#0b100fe6 27%,#0b100f66 45%,transparent 60%),linear-gradient(0deg,#0b100ff5 0%,transparent 25%)}
.finale[data-finale-mode=motion] .finale-top{position:absolute;top:126px;left:var(--pad);right:var(--pad);padding-bottom:22px}
.finale[data-finale-mode=motion] .finale-heading{position:absolute;left:var(--pad);top:205px;width:49%;min-height:310px}
.finale[data-finale-mode=motion] .finale-heading h2{font-size:clamp(60px,6.4vw,100px);opacity:var(--finale-title-opacity,1);transform:translateY(var(--finale-title-y,0px))}
.finale[data-finale-mode=motion] .finale-description{font-size:13px;line-height:1.9;max-width:325px;opacity:var(--finale-title-opacity,1);transform:translateY(var(--finale-title-y,0px))}
.finale[data-finale-mode=motion] .finale-heading h2>span{clip-path:inset(0 0 calc((1 - var(--finale-enter,1))*100%));transform:translateY(calc((1 - var(--finale-enter,1))*32px))}
.finale[data-finale-mode=motion] .finale-heading h2>em{clip-path:inset(0 0 calc((1 - var(--finale-enter,1))*100%));transform:translateY(calc((1 - var(--finale-enter,1))*48px))}
.finale[data-finale-mode=motion] .finale-story{display:block;position:absolute;top:0;left:0;right:0;opacity:var(--finale-story-opacity,0);transform:translateY(var(--finale-story-y,40px));pointer-events:none}
.finale-story>.eyebrow{font-size:7px;color:#b09f7f}
.finale-story>p{font:300 clamp(58px,6.1vw,96px)/1.08 DM;letter-spacing:-.065em;margin-top:25px;color:#e3e8da}
.finale-story>p>span,.finale-story>p>em{display:block}
.finale-story>p>em{font-family:var(--luxe-serif);font-style:italic;color:#b1c0a2;letter-spacing:-.065em}
.finale-story.chapterchanging>p{animation:finale-text .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes finale-text{from{opacity:0;clip-path:inset(0 0 100%);transform:translateY(24px)}to{opacity:1;clip-path:inset(0);transform:none}}
.finale[data-finale-mode=motion] .finale-invitation{position:absolute;left:var(--pad);bottom:125px}
.finale[data-finale-mode=motion] .finale-controls{display:flex;position:absolute;left:var(--pad);right:var(--pad);bottom:26px;z-index:4;justify-content:space-between;align-items:center;gap:24px;padding-top:20px;border-top:1px solid #a6b98e25}
.finale .cinematic-chapters{display:flex;justify-content:start;gap:35px}
.finale-skip{font:10px/1.6 DM;color:#a4b394;min-height:44px;display:flex;align-items:center;white-space:nowrap}
.finale .cinematic-progress{bottom:-5px}
@media(min-width:1600px){.hero[data-hero-mode=motion] .hero-copy,.hero[data-hero-mode=motion] .hero-journey-copy{top:23vh}.finale[data-finale-mode=motion] .finale-heading{top:23vh}}
@media(max-width:1100px) and (min-width:801px){.finale[data-finale-mode=motion] .finale-heading h2{font-size:63px}.hero[data-hero-mode=motion] h1{font-size:7.8vw}.hero[data-hero-mode=motion] .hero-copy,.hero[data-hero-mode=motion] .hero-journey-copy{top:180px}.cinematic-chapters{gap:15px}.finale .cinematic-chapters{gap:20px}.finale[data-finale-mode=motion] .finale-heading{top:200px}.hero-journey-copy>p{font-size:7.1vw}}
@media(max-width:800px){
 .hero-pin{padding:115px var(--pad) 0}.hero .sculpture-stage{width:108%;height:48%;top:auto;bottom:9%;right:-4%}
 .hero[data-hero-sequence] .hero-actions{bottom:112px}.hero-pin:after{bottom:76px}
 .hero[data-hero-mode=motion]{height:250svh}
 .hero[data-hero-mode=motion] .hero-top{top:100px;left:var(--pad);right:var(--pad)}
 .hero[data-hero-mode=motion] .hero-top>.eyebrow{font-size:6.5px;max-width:290px}
 .hero[data-hero-mode=motion] .hero-copy{top:139px;left:var(--pad);width:calc(100% - var(--pad)*2)}
 .hero[data-hero-mode=motion] h1{font-size:clamp(48px,12.5vw,76px);line-height:1.05}
 .hero[data-hero-mode=motion] .hero-description{font-size:11px;line-height:1.85;max-width:250px;margin-top:21px}
 .hero[data-hero-mode=motion] .hero-journey-copy{top:147px;left:var(--pad);max-width:calc(100% - var(--pad)*2)}
 .hero-journey-copy>p{font-size:clamp(47px,11.5vw,70px);margin-top:17px;line-height:1.06}
 .hero-journey-copy>.eyebrow{font-size:6px}
 .hero[data-hero-mode=motion] .hero-actions{bottom:90px;gap:24px}
 .hero[data-hero-mode=motion] .hero-actions .button{font-size:10px;min-width:155px;min-height:48px}
 .hero[data-hero-mode=motion] .hero-direct{font-size:9px}
 .hero[data-hero-mode=motion] .hero-note{display:none}
 .hero[data-hero-mode=motion] .hero-bottom{height:65px;gap:10px}
 .hero[data-hero-mode=motion] .hero-bottom .scroll-cue{font-size:6px;gap:8px;white-space:nowrap}
 .hero[data-hero-mode=motion] .hero-chapters{gap:3px}
 .hero-chapters button{font-size:7px;gap:5px;padding:0 5px}.hero-chapters button>span{font-size:7px}
 .hero[data-hero-mode=motion] .hero-scene-shade{background:linear-gradient(180deg,#0b0f0fe6 0%,#0b0f0f99 28%,transparent 44%,transparent 66%,#0b0f0ff5 89%)}
 .hero[data-hero-mode=motion] .hero-pin:after{bottom:65px}
 .finale-pin{display:block;padding:90px var(--pad) 80px;min-height:0}
 .finale .finale-top>.eyebrow{font-size:6px;max-width:170px}.finale-top{gap:20px;padding-bottom:20px}
 .finale-heading{margin-top:44px}.finale-heading h2{font-size:clamp(48px,10vw,78px);line-height:1.05}.finale-description{font-size:12px;max-width:340px;margin-top:25px}.finale-invitation{margin-top:35px}
 .finale-invitation .button{min-width:230px;min-height:52px;font-size:11px}.finale-invitation .email{font-size:10px;margin-top:10px}
 .finale[data-finale-mode=motion]{height:285svh}
 .finale[data-finale-mode=motion] .finale-top{top:100px;left:var(--pad);right:var(--pad);padding-bottom:20px}
 .finale[data-finale-mode=motion] .finale-heading{top:156px;left:var(--pad);margin:0;width:calc(100% - var(--pad)*2);min-height:245px}
 .finale[data-finale-mode=motion] .finale-heading h2{font-size:clamp(43px,10vw,66px)}
 .finale[data-finale-mode=motion] .finale-description{font-size:11px;line-height:1.9;max-width:330px;margin-top:22px}
 .finale-story>p{font-size:clamp(42px,9.8vw,64px);line-height:1.1;margin-top:20px}.finale-story>.eyebrow{font-size:6px}
 .finale[data-finale-mode=motion] .finale-invitation{left:var(--pad);bottom:109px;margin:0;max-width:calc(100% - var(--pad)*2)}
 .finale-invitation>.eyebrow{font-size:6px;max-width:280px}.finale-invitation .button{margin-top:15px;min-height:50px}.finale-invitation .email{min-height:36px}
 .finale[data-finale-mode=motion] .finale-controls{bottom:21px;padding-top:13px;gap:12px}
 .finale .cinematic-chapters{gap:10px}.finale .cinematic-chapters button{font-size:6px;gap:5px;padding:0 3px}.finale .cinematic-chapters button>span{font-size:8px}
 .finale-skip{font-size:8px}.finale[data-finale-mode=motion] .finale-shade{background:linear-gradient(180deg,#0b100ff5 0%,#0b100fb0 33%,transparent 48%,transparent 60%,#0b100ff5 83%)}
}
@media(max-width:480px){
 .hero-chapters button>span{display:none}.hero-chapters button{width:34px;justify-content:center}
 .finale[data-finale-mode=motion] .finale-heading{top:152px;min-height:215px}
 .finale[data-finale-mode=motion] .finale-heading h2{font-size:43px}.finale[data-finale-mode=motion] .finale-description{font-size:10px;margin-top:20px;max-width:310px}
 .finale-story>p{font-size:41px}.finale[data-finale-mode=motion] .finale-invitation{bottom:100px}
 .finale .cinematic-chapters{gap:8px}.finale .cinematic-chapters button>span{font-size:7px}.finale-skip{font-size:7px}
}
@media(max-height:740px) and (max-width:800px){
 .hero[data-hero-mode=motion] .hero-top{top:99px}.hero[data-hero-mode=motion] .hero-copy{top:133px}.hero[data-hero-mode=motion] h1{font-size:47px}.hero[data-hero-mode=motion] .hero-description{font-size:11px;margin-top:16px}.hero[data-hero-mode=motion] .hero-journey-copy{top:140px}.hero-journey-copy>p{font-size:46px}
 .finale[data-finale-mode=motion] .finale-top{top:100px;padding-bottom:16px}.finale .finale-top>.eyebrow{font-size:5px}.finale[data-finale-mode=motion] .finale-heading{top:146px;min-height:172px}.finale[data-finale-mode=motion] .finale-heading h2{font-size:36px}.finale[data-finale-mode=motion] .finale-description{font-size:11px;line-height:1.8;max-width:310px;margin-top:15px}.finale-story>p{font-size:35px;margin-top:17px}.finale-story>.eyebrow{font-size:5.5px}.finale-invitation>.eyebrow{font-size:5px}.finale-invitation .button{min-height:46px;margin-top:12px;font-size:10px}.finale-invitation .email{font-size:9px;min-height:32px;margin-top:7px}.finale[data-finale-mode=motion] .finale-invitation{bottom:90px}
 .finale[data-finale-mode=motion] .finale-controls{bottom:13px;padding-top:9px}
}
@media(max-height:760px) and (min-width:801px){
 .hero[data-hero-mode=motion] .hero-top{top:120px}.hero[data-hero-mode=motion] .hero-copy,.hero[data-hero-mode=motion] .hero-journey-copy{top:165px}.hero[data-hero-mode=motion] h1{font-size:72px}.hero-journey-copy>p{font-size:70px}.hero[data-hero-mode=motion] .hero-description{font-size:12px;margin-top:20px}.hero[data-hero-mode=motion] .hero-actions{bottom:120px}
 .finale[data-finale-mode=motion] .finale-top{top:113px;padding-bottom:16px}.finale[data-finale-mode=motion] .finale-heading{top:170px;min-height:250px}.finale[data-finale-mode=motion] .finale-heading h2{font-size:63px}.finale[data-finale-mode=motion] .finale-description{font-size:12px;margin-top:18px;max-width:310px}.finale-story>p{font-size:63px}.finale[data-finale-mode=motion] .finale-invitation{bottom:105px}.finale-invitation .button{min-height:49px}.finale-invitation .email{min-height:34px}
}
html[data-motion=off] .finale *,html[data-motion=off] .hero[data-hero-sequence] *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .finale *,html:not([data-motion=on]) .hero[data-hero-sequence] *{animation:none!important;transition:none!important}}
@media(min-width:600px) and (max-width:800px){
 .finale[data-finale-mode=motion] .finale-heading{top:185px;width:45%;min-height:280px}
 .finale[data-finale-mode=motion] .finale-heading h2{font-size:52px}
 .finale[data-finale-mode=motion] .finale-description{font-size:12px;max-width:280px;line-height:1.9}
 .finale-story>p{font-size:50px}
}
.contact-section.finale{scroll-margin-top:-110px}
