@font-face{font-family:'Raleway';src:url('fonts/Raleway%5Bwght%5D.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('fonts/BodoniModa%5Bopsz%2Cwght%5D.ttf') format('truetype');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('fonts/BodoniModa-Italic%5Bopsz%2Cwght%5D.ttf') format('truetype');font-weight:400 900;font-style:italic;font-display:swap}
:root{--night:#040f21;--ivory:#fefef4;--muted:#fefef4;--gold:#c8b877;--line:rgba(254,254,244,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--night);color:var(--ivory);font:16px/1.6 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,.track:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h2,h3,p,figure{margin:0}h2{font:400 clamp(38px,4.8vw,74px)/1.07 'Bodoni Moda',Didot,serif;letter-spacing:-2px}h2 em{font-weight:400;color:var(--gold)}.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{position:fixed;top:-100px;left:10px;padding:10px;background:var(--night);z-index:100}.skip:focus{top:10px}.header{position:absolute;top:0;left:0;width:100%;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:clamp(28px,3.5vw,52px)}.logo{display:block;width:46px}.logo img{display:block;width:100%;height:auto}.header nav{display:flex;align-items:center;gap:34px;font-size:13px}.header nav>a{padding:10px 0}.nav-contact{border-bottom:1px solid var(--gold)}.nav-contact span{margin-left:28px;color:var(--gold)}.hero{height:100svh;min-height:680px;position:relative;overflow:hidden}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 82%,rgba(4,15,33,.2) 91%,#040f21 100%)}.hero-bottom{position:absolute;bottom:55px;left:6%;right:6%;z-index:1;display:flex;align-items:flex-end;justify-content:space-between}.eyebrow,.section-marker{font-size:10px;letter-spacing:2.3px;color:var(--gold)}.hero-line{font:400 clamp(30px,3.2vw,48px)/1.1 'Bodoni Moda',Didot,serif;margin-top:15px;letter-spacing:-.7px}.discover{display:flex;align-items:center;gap:25px;font-size:12px}.discover span{border:1px solid var(--line);border-radius:50%;width:45px;height:45px;display:grid;place-items:center;font-size:20px}.section{padding:100px 8%;max-width:1700px;margin:auto}.section-marker{display:flex;align-items:center;gap:25px;margin-bottom:32px}.section-marker span{color:var(--muted);letter-spacing:0}.intro{display:grid;grid-template-columns:24% 76%;padding-top:110px}.intro>.section-marker{align-self:start;padding-top:9px}.intro-body{display:grid;grid-template-columns:1fr 1fr;column-gap:45px;row-gap:28px;margin-top:36px;max-width:800px}.intro-body p,.gallery-heading>p,.contact-copy>p{color:var(--muted);font-size:15px;line-height:1.8}.text-link{grid-column:1/-1;font-size:13px;justify-self:start;border-bottom:1px solid var(--gold);padding-bottom:8px}.text-link span{margin-left:30px;color:var(--gold)}.gallery-section{padding-top:65px}.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:45px}.gallery-heading>p{margin-bottom:8px}.track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.track::-webkit-scrollbar{display:none}.slide{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start}.slide img{width:100%;height:auto;aspect-ratio:3/2;display:block;object-fit:cover}.slide figcaption{display:flex;gap:30px;margin-top:22px}.slide figcaption>span{font-size:10px;letter-spacing:1px;color:var(--gold);padding-top:6px}.slide h3{font:400 26px/1.2 'Bodoni Moda',Didot,serif}.slide figcaption p{font-size:13px;color:var(--muted);margin-top:8px}.carousel-footer{display:flex;align-items:center;justify-content:space-between;margin-top:32px}.carousel-footer>p{font-size:11px;color:var(--muted);letter-spacing:.5px}.carousel-controls{display:flex;align-items:center;gap:22px}.carousel-controls button{border:1px solid var(--line);border-radius:50%;color:var(--ivory);background:none;width:46px;height:46px;cursor:pointer;font-size:20px}.carousel-controls button:hover{background:var(--ivory);color:var(--night)}.carousel-controls button:disabled{opacity:.3;cursor:default}.carousel-controls span{font-size:11px;letter-spacing:1px;color:var(--gold)}.events{padding-top:60px}.event-list{margin-top:45px}.event-list>a{border-top:1px solid var(--line);padding:30px 0;display:flex;align-items:center;gap:40px}.event-list>a:last-child{border-bottom:1px solid var(--line)}.event-no{font-size:11px;color:var(--gold)}.event-list h3{font:400 28px/1.2 'Bodoni Moda',Didot,serif}.event-list p{color:var(--muted);font-size:13px;margin-top:8px}.event-list>a>span:last-child{margin-left:auto;font-size:24px;color:var(--gold)}.event-list>a:hover h3{color:var(--gold)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding-top:80px;padding-bottom:110px}.contact-copy>p{margin-top:30px;max-width:310px}.email{display:inline-block;font-size:13px;margin-top:30px;color:var(--gold)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:27px 25px}.form-grid label{font-size:11px;letter-spacing:.4px}.form-grid label>span{color:var(--gold)}input,select,textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ivory);padding:13px 0;outline:none;font-size:13px;color-scheme:dark}input:focus,select:focus,textarea:focus{border-color:var(--gold)}input::placeholder,textarea::placeholder{color:#8b9da5}select{padding-right:20px}select option{background:var(--night)}textarea{resize:vertical;min-height:85px}.full{grid-column:1/-1}.submit{margin-top:27px;width:100%;padding:16px 20px;text-align:left;background:var(--ivory);color:var(--night);border:0;cursor:pointer;font-size:13px;display:flex;justify-content:space-between}.submit:hover{background:var(--gold)}.form-note{font-size:10px;color:var(--muted);margin-top:15px;line-height:1.7}#form-status{font-size:12px;color:var(--gold);margin-top:12px}footer{border-top:1px solid var(--line);margin:0 8%;padding:32px 0;display:flex;align-items:center;justify-content:space-between}footer p,footer>a:last-child{font-size:11px;color:var(--muted)}.footer-brand{font:26px 'Bodoni Moda',Didot,serif}.footer-brand em{font-size:18px;color:var(--gold)}
@media(min-width:1800px){.hero-photo{object-position:center top}}@media(max-width:850px){.section{padding:65px 6%}.intro{grid-template-columns:1fr}.intro-copy{margin-top:5px}.contact{gap:40px;grid-template-columns:1fr}.contact-copy>p{max-width:450px}.gallery-heading>p{max-width:210px}.header nav{gap:20px}.slide{flex-basis:calc((100% - 24px)/2)}.hero{min-height:600px}}
@media(max-width:550px){h2{letter-spacing:-1.2px}.header{padding:28px}.logo{width:36px}.header nav{gap:18px;font-size:11px}.header nav>a:first-child{display:none}.nav-contact span{margin-left:8px}.hero{min-height:620px;height:100svh;max-height:1000px}.hero-photo{top:105px;height:auto;object-fit:contain;width:140%;max-width:none;left:-20%}.hero:after{background:none}.hero-bottom{bottom:42px;align-items:flex-start;gap:25px;flex-direction:column}.eyebrow{font-size:8px;letter-spacing:1.6px}.hero-line{font-size:34px}.discover{gap:16px;font-size:11px}.discover span{height:32px;width:32px;font-size:16px}.intro-body{grid-template-columns:1fr;gap:20px}.intro-body p{font-size:14px}.gallery-heading{display:block;margin-bottom:28px}.gallery-heading>p{margin-top:24px;max-width:none;font-size:13px}.track{gap:14px}.slide{flex-basis:72%}.slide img{height:auto}.slide figcaption{gap:18px}.slide h3{font-size:22px}.slide figcaption p{font-size:12px}.carousel-footer>p{display:none}.carousel-footer{justify-content:flex-end}.event-list>a{gap:18px;padding:25px 0}.event-list h3{font-size:22px}.event-list p{font-size:12px}.form-grid{gap:22px 18px}.form-grid label{font-size:10px}input,select,textarea{font-size:16px}.email{font-size:12px}footer{margin:0 6%;flex-wrap:wrap;gap:20px}footer p{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.track{scroll-behavior:auto}}
@media(max-width:550px){.hero-photo{-webkit-mask-image:linear-gradient(to bottom,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 88%,transparent 100%)}}

.carousel-footer{justify-content:flex-end}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.submit:disabled{opacity:.6;cursor:wait}

.hero-bottom{text-shadow:0 2px 14px rgba(0,0,0,.65)}

/* Preserve the entire photo height on wide screens, including the arm. */
@media(min-width:551px){
 .hero{height:max(100svh,66.793vw)}
 .hero-photo{object-position:center top}
 .hero:after{background:linear-gradient(to bottom,transparent 82%,rgba(4,15,33,.12) 87%,rgba(4,15,33,.48) 93%,rgba(4,15,33,.82) 97%,#040f21 100%)}
}
@media(max-width:550px){
 .hero-photo{-webkit-mask-image:linear-gradient(to bottom,#000 82%,rgba(0,0,0,.9) 87%,rgba(0,0,0,.55) 93%,transparent 100%);mask-image:linear-gradient(to bottom,#000 82%,rgba(0,0,0,.9) 87%,rgba(0,0,0,.55) 93%,transparent 100%)}
}

/* Gallery controls at the photo edges. */
.carousel{position:relative}
.carousel-footer,.carousel-controls{display:contents}
.track{cursor:grab;-webkit-mask-image:linear-gradient(to right,transparent,#000 30px,#000 calc(100% - 30px),transparent);mask-image:linear-gradient(to right,transparent,#000 30px,#000 calc(100% - 30px),transparent)}
.track.dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.slide{min-width:0}.slide img{user-select:none;-webkit-user-drag:none}
.carousel-controls button{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:46px;height:68px;border:0;border-radius:0;background:transparent;color:var(--ivory);opacity:.75;display:grid;place-items:center;transition:opacity .2s,color .2s}
.carousel-controls #previous{left:-25px}.carousel-controls #next{right:-25px}
.carousel-controls button svg{width:18px;height:30px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.carousel-controls button:hover{background:transparent;color:var(--gold);opacity:1}
@media(max-width:550px){.carousel-controls #previous{left:-20px}.carousel-controls #next{right:-20px}.carousel-controls button{width:40px}.track{-webkit-mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent)}}

h2,.hero-line,.slide h3,.event-list h3,.footer-brand{font-optical-sizing:auto;font-weight:400}h2{letter-spacing:-.035em}.hero-line{letter-spacing:-.02em}

h2,.hero-line,.slide h3,.event-list h3,.footer-brand{font-family:'Raleway',Arial,sans-serif;font-weight:300;letter-spacing:-.035em}h2 em,.footer-brand em{font-style:normal;font-weight:300}.hero-line{font-weight:300;letter-spacing:-.025em}h2{line-height:1.14}.event-list h3{line-height:1.3}

.hero-bottom .eyebrow{margin-left:clamp(18px,2.5vw,48px)}

/* Preserve the introduction's established text alignment without its label. */
.intro-copy{grid-column:2}
.photo-zoom{display:block;width:100%;padding:0;border:0;background:none;color:inherit;cursor:zoom-in;text-align:inherit}
.photo-zoom:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.photo-dialog{border:0;padding:64px 72px;margin:auto;width:96vw;max-width:1500px;height:94svh;max-height:1000px;background:transparent;color:var(--ivory);overflow:visible}
.photo-dialog[open]{display:flex;align-items:center;justify-content:center}
.photo-dialog::backdrop{background:rgba(4,15,33,.94)}
.photo-dialog img{max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto;display:block;box-shadow:0 15px 60px rgba(0,0,0,.25)}
.photo-dialog button{position:absolute;padding:0;border:0;background:none;color:var(--ivory);width:48px;height:48px;cursor:pointer}
.photo-dialog button:hover{color:var(--gold)}
.photo-close{right:8px;top:8px;font:300 38px Arial,sans-serif}
.photo-prev,.photo-next{top:calc(50% - 24px);font:300 48px Arial,sans-serif}
.photo-prev{left:8px}.photo-next{right:8px}
@media(max-width:850px){.intro-copy{grid-column:1}}
@media(max-width:550px){.photo-dialog{width:100vw;height:90svh;padding:64px 16px 80px}.photo-prev,.photo-next{top:auto;bottom:12px}.photo-prev{left:calc(50% - 64px)}.photo-next{right:calc(50% - 64px)}}

/* Uniform enlargement, independent of the source image resolution. */
.photo-dialog img{width:100%;height:100%;object-fit:contain;min-width:0;min-height:0;box-shadow:none}
.hero-bottom{justify-content:flex-start;gap:48px}
.hero-bottom .eyebrow{font-size:clamp(14px,1.05vw,18px);letter-spacing:2.5px;line-height:1.6}
.hero-line{font-size:clamp(36px,3.4vw,58px);line-height:1.22;letter-spacing:.005em;margin-top:20px}
.discover{font-size:14px;gap:15px;flex-shrink:0;margin-bottom:8px}
.contact{max-width:1800px;padding-left:6%;padding-right:6%;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:7%;align-items:start}
.contact-copy>p{max-width:380px;font-size:17px;line-height:1.9}.contact .email{font-size:15px}
.form-grid{gap:38px 36px}
.form-grid>label,.event-picker legend{font-size:17px;font-weight:400;letter-spacing:.2px}
.form-grid input,.form-grid textarea{font-size:15px;padding:19px 0 16px;line-height:1.7}
.form-grid input::placeholder,.form-grid textarea::placeholder{font-size:14px;color:#a9b2c0}
.form-grid textarea{min-height:145px}.submit{padding:22px 26px;font-size:16px;margin-top:38px}
.form-note{font-size:12px;line-height:1.8;margin-top:20px}#form-status{font-size:14px}
.event-picker{padding:0;margin:0;border:0;min-width:0}
.event-picker legend{padding:0;margin-bottom:20px}.event-picker legend>span{color:var(--gold)}
.event-choices{display:flex;flex-wrap:wrap;gap:12px}
.form-grid .event-choice{font-size:14px;letter-spacing:0;position:relative;cursor:pointer}
.event-choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0}
.event-choice span{display:block;padding:12px 17px;border:1px solid var(--line);border-radius:7px;transition:background .15s,border-color .15s;color:var(--ivory)}
.event-choice:hover span{border-color:var(--gold);background:rgba(200,184,119,.08)}
.event-choice input:checked+span{background:var(--gold);color:var(--night);border-color:var(--gold)}
.event-choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:4px}
@media(max-width:1000px){.contact{grid-template-columns:1fr;gap:48px}.contact-copy>p{max-width:600px}}
@media(max-width:550px){.hero-bottom{gap:22px}.hero-bottom .eyebrow{font-size:12px;letter-spacing:1.5px;margin-left:18px}.hero-line{font-size:31px;letter-spacing:0;line-height:1.25;margin-top:16px}.discover{font-size:13px;margin-bottom:0}.form-grid{grid-template-columns:1fr;gap:30px}.form-grid>label,.event-picker legend{font-size:17px}.form-grid input,.form-grid textarea{font-size:16px}.form-grid input::placeholder,.form-grid textarea::placeholder{font-size:14px}.event-choice span{padding:12px 14px}.contact-copy>p{font-size:16px}}

#main{position:relative;isolation:isolate}.hero{z-index:0}.section{position:relative}
.discover{gap:14px;padding:9px 0;border-bottom:1px solid rgba(200,184,119,.55);font-size:14px;letter-spacing:.5px;color:var(--ivory)}.discover svg{width:19px;height:22px;display:block;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.discover:hover{color:var(--gold);border-color:var(--gold)}
footer{display:block;padding:35px 0 25px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:25px}.footer-top>p,.footer-top>a:last-child{font-size:12px}.footer-info{display:flex;flex-wrap:wrap;gap:0 30px;margin-top:26px;border-top:1px solid var(--line);padding-top:18px}.footer-info details{flex:0 0 auto}.footer-info details[open]{flex-basis:100%}.footer-info summary{font-size:13px;color:var(--gold);cursor:pointer;list-style:none;padding:8px 0;display:flex;align-items:center;gap:12px}.footer-info summary::-webkit-details-marker{display:none}.footer-info summary:after{content:'+';font-size:18px;line-height:1}.footer-info details[open]>summary:after{content:'−'}.legal-content{max-width:1000px;padding:20px 0 36px;font-size:15px;line-height:1.8}.legal-content h3{font-family:'Raleway',Arial,sans-serif;font-size:22px;font-weight:400;margin:25px 0 12px}.legal-content h3:first-child{margin-top:0}.legal-content p{margin-bottom:14px}.legal-content a,.legal-trigger{color:var(--gold);text-decoration:underline;text-underline-offset:3px}.footer-info summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
@media(max-width:550px){.footer-top{flex-wrap:wrap}.footer-top>p{display:none}.legal-content{font-size:14px}.legal-content h3{font-size:20px}.discover{font-size:13px}}

/* Decoration spans the complete document, including expanded footer texts. */
body{position:relative;isolation:isolate}#main{z-index:1}footer{position:relative;z-index:1}
.footer-top{display:grid;grid-template-columns:1fr auto 1fr;gap:36px}.footer-top>a:last-child{justify-self:end}.footer-legal-nav{display:flex;align-items:center;gap:32px}.footer-legal-nav a{font-size:13px;color:var(--gold);text-decoration:none;padding:8px 0}.footer-legal-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.footer-info{display:block;border:0;padding:0;margin:0}.footer-info details:not([open]){display:none}.footer-info details[open]{margin-top:28px}.footer-info summary{font-size:12px;color:var(--gold)}.footer-info summary:after{content:'×';font-size:18px}.footer-info details[open]>summary:after{content:'×'}
@media(max-width:650px){.footer-top{grid-template-columns:1fr auto;gap:24px}.footer-legal-nav{grid-row:2;grid-column:1/-1;gap:26px}.footer-legal-nav a{font-size:12px}}

/* A repeating tile keeps the decoration fixed in document coordinates. */

@media(max-width:550px){}

/* Keep the guest count on its own row, aligned with the left column. */
.form-grid input[name="guests"]{width:calc((100% - 36px)/2)}
@media(max-width:550px){.form-grid input[name="guests"]{width:100%}}

.contact-apostrophe{display:inline-block;margin-inline:.045em;letter-spacing:0}

.contact-copy .phone{display:table;margin-top:12px;font-size:13px;color:var(--gold);padding:4px 0}
.contact-copy .phone:hover,.contact-copy .email:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:550px){.contact-copy .phone{font-size:12px}}

/* Contact links share the introductory text's character size. */
.contact-copy .email,.contact-copy .phone{display:flex;align-items:center;gap:12px;width:fit-content;font-size:17px;line-height:1.9;font-weight:400;padding:4px 0;color:var(--gold);text-decoration:none}
.contact-copy .email{margin-top:30px}.contact-copy .phone{margin-top:8px}
.contact-copy .email svg,.contact-copy .phone svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.contact-copy .email:hover span,.contact-copy .phone:hover span{text-decoration:underline;text-underline-offset:5px}
@media(max-width:550px){.contact-copy .email,.contact-copy .phone{font-size:16px}}

.contact-copy .phone{margin-top:30px}.contact-copy .email{margin-top:8px}
.footer-brand{font-size:29px}.footer-brand em{font-size:20px}
.footer-legal-nav a{font-size:11px}
@media(max-width:650px){.footer-legal-nav a{font-size:11px}}

/* Three full photos framed by glimpses of the previous and next images. */
.track{padding-inline:64px;scroll-padding-inline:64px}
.carousel-controls #previous{left:-48px}.carousel-controls #next{right:-48px}
.carousel-controls button{opacity:.9;width:44px}
.carousel-controls button svg{width:22px;height:34px;stroke-width:1.4}
@media(max-width:850px){.track{padding-inline:44px;scroll-padding-inline:44px}.carousel-controls #previous{left:-40px}.carousel-controls #next{right:-40px}}
@media(max-width:550px){.track{padding-inline:24px;scroll-padding-inline:24px}.carousel-controls #previous{left:-24px}.carousel-controls #next{right:-24px}.carousel-controls button{width:28px}.carousel-controls button svg{width:20px;height:32px}}

.contact-copy .instagram{display:flex;align-items:center;gap:12px;width:fit-content;margin-top:12px;padding:4px 0;font-size:17px;line-height:1.9;font-weight:400;color:var(--ivory)}
.contact-copy .instagram svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.contact-copy .instagram .instagram-dot{fill:currentColor;stroke:none}
.contact-copy .instagram:hover span{text-decoration:underline;text-underline-offset:5px}
@media(max-width:550px){.contact-copy .instagram{font-size:16px}}

.header-brand{display:flex;flex-direction:column;align-items:center;gap:24px;width:46px}
.header-instagram{display:grid;place-items:center;width:32px;height:32px;color:#fff}
.header-instagram svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.header-instagram .instagram-dot{fill:currentColor;stroke:none}
.header-instagram:hover{opacity:.75}
.contact-copy .instagram{margin-top:28px}
.contact-copy .instagram span{color:var(--gold)}
.contact-copy .instagram svg{color:#fff}
@media(max-width:550px){.header-brand{width:36px;gap:18px}.header-instagram svg{width:21px;height:21px}}

.header-instagram svg{width:28px;height:28px;stroke-width:.9}
@media(max-width:550px){.header-instagram svg{width:25px;height:25px}}

.instagram-section{padding-top:30px;padding-bottom:100px}
.instagram-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}
.instagram-heading h2{font-size:clamp(36px,3.4vw,56px)}
.instagram-heading p{font-size:17px;margin-top:22px}
.instagram-profile{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:16px;padding-bottom:6px}
.instagram-profile svg,.instagram-emblem svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;flex:none}
.instagram-profile .instagram-dot,.instagram-emblem .instagram-dot{fill:#fff;stroke:none}
.instagram-profile:hover span{text-decoration:underline;text-underline-offset:5px}
.instagram-preview{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(4,15,33,.35)}
.instagram-consent{padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.instagram-emblem svg{width:32px;height:32px}
.instagram-consent>p{font-family:'Raleway',Arial,sans-serif;font-size:27px;font-weight:300}
.instagram-consent button{margin-top:6px;border:1px solid rgba(200,184,119,.65);background:transparent;color:var(--gold);padding:14px 24px;cursor:pointer;font-size:15px}
.instagram-consent button:hover{background:var(--gold);color:var(--night)}
.instagram-consent small{font-size:12px;line-height:1.7;color:#a9b2c0;margin-top:4px}
.instagram-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:30px 0;align-items:start}
.instagram-posts iframe{width:100%;height:540px;border:0;border-radius:5px;background:#fff}
.instagram-help{font-size:13px;margin-top:16px;color:#a9b2c0}.instagram-help a{color:var(--gold);text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.instagram-posts{grid-template-columns:repeat(2,minmax(0,1fr))}.instagram-posts iframe:last-child{display:none}.instagram-heading{align-items:flex-start;flex-direction:column;gap:24px}}
@media(max-width:550px){.instagram-posts{grid-template-columns:1fr;gap:24px}.instagram-posts iframe:last-child{display:block}.instagram-heading p{font-size:16px}.instagram-consent{padding:36px 12px}.instagram-section{padding-bottom:60px}}

/* A small photo strip below contact, with no third-party card chrome. */
.instagram-section{padding-top:0;padding-bottom:80px}
.instagram-heading{align-items:center;gap:30px;margin-bottom:28px}
.instagram-heading h2{font-size:clamp(25px,2vw,35px);line-height:1.3;letter-spacing:-.025em}
.instagram-heading .instagram-profile{font-size:14px;white-space:nowrap;padding:0}
.instagram-heading .instagram-profile svg{width:19px;height:19px}
.instagram-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.instagram-tile{position:relative;display:block;overflow:hidden}
.instagram-tile img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:opacity .2s}
.instagram-tile:hover img{opacity:.8}
.instagram-play{position:absolute;right:10px;top:10px;color:#fff;font-size:13px;text-shadow:0 1px 5px #000}
@media(max-width:1000px){.instagram-heading{flex-direction:column;align-items:flex-start;gap:18px}.instagram-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:550px){.instagram-section{padding-bottom:55px}.instagram-tiles{gap:10px}.instagram-heading h2{font-size:26px}}

.header-instagram{width:36px;height:36px}.header-instagram svg{width:32px;height:32px}
@media(max-width:550px){.header-instagram svg{width:28px;height:28px}}

.instagram-section{padding-top:40px}
.instagram-heading .instagram-profile{font-size:17px;line-height:1.9;font-weight:400;padding:4px 0;gap:12px}
.instagram-heading .instagram-profile svg{width:18px;height:18px;stroke-width:1.6}
.instagram-carousel{position:relative}
.instagram-tiles{display:flex;gap:16px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;padding-inline:36px;scroll-padding-inline:36px;-webkit-mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
.instagram-tiles::-webkit-scrollbar{display:none}
.instagram-tile{flex:0 0 calc((100% - 80px)/6);min-width:0;scroll-snap-align:start}
.instagram-tile img{user-select:none;-webkit-user-drag:none}
.instagram-carousel>button{position:absolute;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--ivory);width:36px;height:56px;padding:0;display:grid;place-items:center;cursor:pointer}
.instagram-carousel>button:hover{color:var(--gold)}
.instagram-carousel>button svg{width:20px;height:30px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.instagram-prev{left:-40px}.instagram-next{right:-40px}.instagram-next svg{transform:rotate(180deg)}
.instagram-tiles{cursor:grab}.instagram-tiles.dragging{scroll-snap-type:none;cursor:grabbing}
@media(max-width:1000px){.instagram-tile{flex-basis:calc((100% - 32px)/3)}}
@media(max-width:550px){.instagram-heading .instagram-profile{font-size:16px}.instagram-tiles{padding-inline:20px;scroll-padding-inline:20px;gap:12px}.instagram-tile{flex-basis:calc((100% - 12px)/2)}.instagram-prev{left:-25px}.instagram-next{right:-25px}.instagram-carousel>button{width:24px}.instagram-section{padding-top:28px}}

/* Fine film grain belongs to the blue background, underneath photos and text. */
body{background-image:url('assets/grain-pellicule.svg?v=soft-30');background-repeat:repeat;background-size:320px 320px;background-blend-mode:soft-light}
.instagram-heading{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:14px 32px}
.instagram-heading .instagram-profile{align-self:baseline}
@media(max-width:1000px){.instagram-heading{flex-direction:row;align-items:baseline;gap:14px 26px}}

/* Let the text, rather than the icon, define the profile link's baseline. */
.instagram-heading{justify-content:space-between}
.instagram-heading .instagram-profile{display:inline-block;position:relative;margin-left:auto;padding:4px 0 4px 30px;align-self:baseline}
.instagram-heading .instagram-profile svg{position:absolute;left:0;top:50%;transform:translateY(-50%)}
@media(max-width:1000px){.instagram-heading{justify-content:space-between}}
@media(max-width:550px){.instagram-heading .instagram-profile{margin-left:auto}}

.baseline-marker{display:inline-block;width:0;height:0;padding:0;margin:0;vertical-align:baseline;overflow:hidden}

/* Fade the photo itself into the textured blue, avoiding an opaque flat edge. */
@media(min-width:551px){
 .hero::after{background:none;pointer-events:none}
 .hero-photo{-webkit-mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,.96) 84%,rgba(0,0,0,.85) 88%,rgba(0,0,0,.60) 92%,rgba(0,0,0,.30) 95%,rgba(0,0,0,.09) 97%,rgba(0,0,0,.015) 99%,transparent 100%);mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,.96) 84%,rgba(0,0,0,.85) 88%,rgba(0,0,0,.60) 92%,rgba(0,0,0,.30) 95%,rgba(0,0,0,.09) 97%,rgba(0,0,0,.015) 99%,transparent 100%)}
}

@media(min-width:551px){.hero-photo{-webkit-mask-image:linear-gradient(to bottom,#000 74%,rgba(0,0,0,0.9855) 76%,rgba(0,0,0,0.9427) 78%,rgba(0,0,0,0.8743) 80%,rgba(0,0,0,0.7840) 82%,rgba(0,0,0,0.6773) 84%,rgba(0,0,0,0.5603) 86%,rgba(0,0,0,0.4397) 88%,rgba(0,0,0,0.3227) 90%,rgba(0,0,0,0.2160) 92%,rgba(0,0,0,0.1257) 94%,rgba(0,0,0,0.0573) 96%,rgba(0,0,0,0.0145) 98%,rgba(0,0,0,0.0000) 100%);mask-image:linear-gradient(to bottom,#000 74%,rgba(0,0,0,0.9855) 76%,rgba(0,0,0,0.9427) 78%,rgba(0,0,0,0.8743) 80%,rgba(0,0,0,0.7840) 82%,rgba(0,0,0,0.6773) 84%,rgba(0,0,0,0.5603) 86%,rgba(0,0,0,0.4397) 88%,rgba(0,0,0,0.3227) 90%,rgba(0,0,0,0.2160) 92%,rgba(0,0,0,0.1257) 94%,rgba(0,0,0,0.0573) 96%,rgba(0,0,0,0.0145) 98%,rgba(0,0,0,0.0000) 100%)}}

/* Begin the decoration a little earlier, still with its progressive reveal. */

@media(max-width:550px){}
/* Optical alignment: both text blocks rest on the same lower line. */
.instagram-heading{align-items:flex-end}
.instagram-heading h2{line-height:1;margin:0}
.instagram-heading .instagram-profile{align-self:flex-end;line-height:1;padding-top:0;padding-bottom:0;transform:translateY(-3px)}
.instagram-heading .instagram-profile svg{top:50%}
@media(max-width:1000px){.instagram-heading{align-items:flex-end}}
.footer-top{align-items:baseline}
.footer-brand{line-height:1.25}
.footer-legal-nav{display:block;line-height:1.25}
.footer-legal-nav a{display:inline-block;padding:0;line-height:1.25;margin-right:32px}
.footer-legal-nav a:last-child{margin-right:0}
.footer-top>a:last-child{line-height:1.25}
@media(max-width:650px){.footer-legal-nav a{margin-right:26px}}

.instagram-heading .instagram-profile{transform:none}

@media(min-width:551px){.hero-bottom{bottom:20px}}

/* Mobile: textured blue header and a subtle fade at the photograph edge. */
@media(max-width:550px){
 .hero{background-color:var(--night);background-image:url("assets/grain-pellicule.svg?v=soft-30"),linear-gradient(to bottom,#01090e 0px,#021019 48px,#03151e 105px,var(--night) 190px);background-size:320px 320px,100% 100%;background-repeat:repeat,no-repeat;background-blend-mode:soft-light,normal}
 .hero::before{content:none}
 .hero-photo{-webkit-mask-image:linear-gradient(to bottom,transparent 0px,rgba(0,0,0,.5) 5px,#000 14px,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0px,rgba(0,0,0,.5) 5px,#000 14px,#000 88%,transparent 100%)}
 .header-brand{flex-direction:row;width:auto;gap:22px;align-items:center}
 .header-brand .logo{flex:0 0 36px}
}

/* Mobile layout follows the photo height, independently of browser chrome. */
@media(max-width:550px){
 .hero{height:auto;min-height:0;max-height:none;padding-top:calc(105px + 93.5083vw + 20px)}
 .hero-bottom{position:relative;inset:auto;margin:0 6%;padding-bottom:32px}
 
}

/* Keep legal paragraphs visible and preserve mobile sparkle detail. */
@media(max-width:550px){
 footer .legal-content p{display:block}
 
}

/* Animate sparkle layers in CSS rather than within an SVG background. */
@media(max-width:550px){
 .hero{background:none}
 .hero::before{content:"";position:absolute;inset:0 0 auto;height:190px;background-image:url("assets/grain-pellicule.svg?v=soft-30"),linear-gradient(to bottom,#01090e 0px,#021019 48px,#03151e 105px,var(--night) 190px);background-size:320px 320px,100% 100%;background-blend-mode:soft-light,normal;pointer-events:none}
 .hero-photo{z-index:1}
 
 
 
 
}
@keyframes mobile-sparkle{0%,100%{opacity:.25}50%{opacity:1}}
@media(max-width:550px) and (prefers-reduced-motion:reduce){}

@media(max-width:550px){
 .hero-bottom .discover{align-self:flex-end;margin-left:auto}
 .intro-body .text-link{justify-self:end;margin-left:auto}
}

/* Individual sparkle groups use the original desktop timing. */
@media(max-width:550px){
 
 .mobile-sparkle-layer{position:absolute;inset:0;pointer-events:none}
 .mobile-sparkle-tile{position:absolute;left:0;width:100%;display:block}
}
@media(min-width:551px){.mobile-sparkle-layer{display:none}}
input[type=date],input[type=date]::-webkit-date-and-time-value,input[type=date]::-webkit-datetime-edit,input[type=date]::-webkit-datetime-edit-fields-wrapper,input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-year-field{color:var(--ivory);-webkit-text-fill-color:var(--ivory)}



/* The document itself carries the background through Safari's translucent edges. */
html{
 --safe-top:env(safe-area-inset-top,0px);
 --ribbon-start:calc(max(100svh,66.793vw) - 90px);
 --ribbon-period:min(500vw,2100px);
 background-color:#01090e;
 background-image:linear-gradient(to bottom,#01090e 0px,var(--night) 190px,var(--night) var(--ribbon-start),transparent calc(var(--ribbon-start) + 190px)),url("assets/grain-pellicule.svg?v=soft-30"),url("assets/ruban-fond.svg?v=49"),linear-gradient(var(--night),var(--night));
 background-size:100% 100%,320px 320px,100% var(--ribbon-period),100% 100%;
 background-position:0 0,0 0,0 var(--ribbon-start),0 0;
 background-repeat:no-repeat,repeat,repeat-y,no-repeat;
 background-blend-mode:normal,soft-light,normal,normal;
}
body{background:none;isolation:auto}
#main{isolation:auto}
.skip{position:absolute}
.page-ribbon{position:absolute;top:var(--ribbon-start);bottom:0;left:0;width:100%;z-index:0;pointer-events:none;overflow:hidden;opacity:1;background:none;-webkit-mask-image:none;mask-image:none}
.page-ribbon::before,.page-ribbon::after{content:none;animation:none}
.ribbon-canvas{position:absolute;left:0;width:100%;display:block;pointer-events:none}
@media(min-width:551px){
 .hero::before{content:"";position:absolute;inset:0 0 auto;height:120px;z-index:1;background:linear-gradient(to bottom,#01090e,rgba(1,9,14,.55) 35%,transparent);pointer-events:none}
}
@media(max-width:550px){
 html{--ribbon-start:calc(105px + var(--safe-top) + 93.5083vw + 8px)}
 body{padding-bottom:0}
 footer{padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}
 .header{padding-top:calc(28px + var(--safe-top))}
 .hero{background:none;padding-top:calc(105px + var(--safe-top) + 93.5083vw + 20px)}
 .hero-photo{top:calc(105px + var(--safe-top))}
 .hero::before{content:"";height:calc(190px + var(--safe-top));background-image:url("assets/grain-pellicule.svg?v=soft-30"),linear-gradient(to bottom,#01090e 0px,#021019 calc(48px + var(--safe-top)),#03151e calc(105px + var(--safe-top)),var(--night) calc(190px + var(--safe-top)))}
}

/* Safari's edge sampler must see transparency instead of locking a solid tint.
   The 6px/-2px bottom sentinel follows Matt Fantinel's Safari 26 workaround:
   https://fantinel.dev/blog/safari-floating-url-bar-background
   Negative margins preserve the content's original position and page height. */
.safari-edge{position:sticky;left:0;width:100%;height:6px;z-index:999;background-color:transparent;pointer-events:none;font-size:0;line-height:0}
.safari-edge-top{top:-2px;margin-bottom:-6px}
.safari-edge-bottom{bottom:-2px;margin-top:-6px}

/* Mobile Safari: keep the transparent sampling strip at the viewport edge
   even when the document has reached its end. Sticky stops at that boundary. */
@media(max-width:550px){
 .safari-edge-bottom{position:fixed;bottom:-2px;margin:0}
}
