:root{color-scheme:dark;--bg:#080808;--fg:#f2eee8;--muted:#aaa69f;--line:#353431}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 var(--font)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}header{position:absolute;inset:0 0 auto;z-index:20;display:flex;align-items:center;padding:42px 5.5%;gap:45px}.monogram{font:64px/.85 var(--font);letter-spacing:-8px}.monogram span{font-style:italic;font-size:44px}.reserve-top{margin-left:auto;font-size:12px;letter-spacing:.3px}.menu-toggle{border:0;background:transparent;cursor:pointer;padding:15px 0 15px 15px;width:65px;display:flex;flex-direction:column;gap:7px}.menu-toggle span{height:1px;background:var(--fg);width:100%;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.menu{position:fixed;z-index:15;inset:0;background:#0b0b0b;padding:160px 10% 50px;overflow:auto}.menu:not([hidden]){display:flex;flex-direction:column;align-items:center;justify-content:center}.menu>a{font:clamp(36px,6vw,80px)/1.2 var(--font);letter-spacing:-1px}.menu>a:hover{font-style:italic}.menu p{font-size:12px;color:var(--muted);margin-top:35px;text-align:center}body.menu-open{overflow:hidden}body.menu-open header{position:fixed}.opening{height:460px;position:relative;padding:185px 20px 65px;text-align:center}.opening h1{font:400 clamp(29px,3.2vw,46px)/1.05 var(--font);letter-spacing:-1.2px;margin:0}.opening h1 span,.opening h1 em{display:block}.opening h1 em{font-weight:400}.opening h1 span:last-child{font-size:.64em;letter-spacing:.02em;margin-top:8px}.opening-bottom{position:absolute;bottom:36px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;align-items:center}.opening-bottom>span{font-size:9px;letter-spacing:1.6px;color:var(--muted)}.circle-arrow{font-size:30px;line-height:1;border:1px solid #888;width:39px;height:39px;border-radius:50%;display:grid;place-items:center}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:0 22px}.photo-column.offset{padding-top:100px}figure{margin:0 0 65px;overflow:hidden}figure img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:transform .8s}figure:hover img{transform:scale(1.025)}figure:nth-child(2) img{aspect-ratio:1/1.1}figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:12px;font-size:10px;color:var(--muted)}figcaption span:first-child{font-size:8px;letter-spacing:1px;white-space:nowrap}.gallery-invitation{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:300px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:65px;font:36px/1.15 var(--font)}.gallery-invitation em{font-size:24px;margin-top:25px}.section{padding:110px 8%;border-top:1px solid var(--line)}.eyebrow{font:10px var(--font);letter-spacing:1.7px;color:var(--muted);margin:0 0 35px}h2{font:400 clamp(38px,4.8vw,69px)/1.06 var(--font);letter-spacing:-1.7px;margin:0 0 45px}em{font-weight:400}p{margin:0 0 22px}.story{display:grid;grid-template-columns:1fr 2fr;gap:50px}.story-copy{max-width:600px;color:#c6c2bc;font-size:15px}.experience h2{max-width:1000px}.experience-details{display:flex;justify-content:space-between;gap:70px;align-items:end}.experience-details p{max-width:510px;color:#c6c2bc;font-size:15px;margin:0}.outline-link{display:flex;justify-content:space-between;gap:60px;align-items:center;border:1px solid #7c7973;padding:20px 25px;font-size:13px;min-width:230px}.outline-link:hover{background:var(--fg);color:var(--bg)}.outline-link span{font-size:24px}.values{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.values dl{margin:0}.values dl>div{padding:15px 0;border-bottom:1px solid var(--line)}.values dt{font:23px var(--font)}.values dd{margin:7px 0 0;font-size:12px;color:var(--muted)}.invitation{border-top:1px solid var(--line);padding:100px 8% 120px;text-align:center}.invitation>a{font:400 clamp(65px,13vw,180px)/1.1 var(--font);letter-spacing:-5px}.invitation>a span{font-family:var(--font);font-size:.6em;display:inline-block;margin-left:30px}.invitation>p:last-child{font-size:12px;color:var(--muted);margin-top:22px}footer{border-top:1px solid var(--line);padding:65px 5.5% 25px}.footer-logo{font:clamp(45px,7vw,100px)/1 var(--font);letter-spacing:-4px}.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;font-size:12px;margin:50px 0 65px;color:#c6c2bc}.fineprint{display:flex;justify-content:space-between;gap:20px;font-size:9px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.contact-opening{padding:200px 8% 65px}.contact-opening h1{font:400 clamp(55px,8vw,110px)/1 var(--font);letter-spacing:-3px;margin:0 0 50px}.contact-lead{display:flex;justify-content:space-between;gap:60px;align-items:center}.contact-lead p{max-width:460px;color:#c6c2bc;margin:0}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:25px 8% 110px}.contact-layout>img{width:100%;height:760px;object-fit:cover}.contact-info>div{border-bottom:1px solid var(--line);padding:30px 0}.contact-info>div:first-child{padding-top:0}.contact-info .eyebrow{margin-bottom:22px}.contact-info p{font-size:15px}.underlined{border-bottom:1px solid #888;font-size:13px;padding-bottom:5px}a:focus-visible,button:focus-visible{outline:2px solid #d6b890;outline-offset:7px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media(max-width:850px){header{padding:30px 6%;gap:25px}.monogram{font-size:50px}.opening{height:390px;padding-top:160px}.photo-grid{gap:14px;padding:0 14px}.photo-column.offset{padding-top:65px}figcaption{display:block;font-size:9px}figcaption span{display:block;margin:3px 0}figure{margin-bottom:35px}.section{padding:70px 7%}.story{grid-template-columns:1fr;gap:0}.values{grid-template-columns:1fr;gap:20px}.experience-details{align-items:start;flex-direction:column;gap:35px}.gallery-invitation{font-size:27px;min-height:230px}.gallery-invitation em{font-size:21px}.invitation{padding:70px 7%}.footer-grid{grid-template-columns:1fr 1fr;gap:30px}.contact-opening{padding:165px 7% 55px}.contact-lead{flex-direction:column;align-items:start;gap:30px}.contact-layout{gap:6%;padding:10px 7% 70px}.contact-layout>img{height:650px}.contact-info p{font-size:13px}}@media(max-width:560px){.reserve-top{font-size:10px}.menu-toggle{width:50px}.opening{height:350px;padding-top:145px}.opening h1{font-size:31px}.opening-bottom{bottom:22px}.opening-bottom>span{font-size:7px;letter-spacing:1px}.circle-arrow{width:30px;height:30px;font-size:23px}.photo-grid{gap:10px;padding:0 10px;grid-template-columns:1fr 1fr}.photo-column.offset{padding-top:60px}.photo-column:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.photo-column:last-child figure:last-child{grid-column:1/-1}.photo-column:last-child figure:last-child img{aspect-ratio:1.4}.photo-column:last-child figure:nth-child(2){padding-top:40px}.gallery-invitation{min-height:240px;font-size:24px;margin-bottom:30px}.gallery-invitation em{font-size:19px}.section{padding:60px 7%}h2{font-size:39px;letter-spacing:-1px}.eyebrow{font-size:9px}.invitation>a{letter-spacing:-2px}.invitation>a span{margin-left:12px}.fineprint{flex-wrap:wrap;font-size:8px}.footer-logo{letter-spacing:-2px}.contact-opening h1{font-size:58px;letter-spacing:-2px}.contact-layout{grid-template-columns:1fr;gap:45px}.contact-layout>img{height:480px}.contact-info p{font-size:15px}}

@font-face{font-family:'Koko Serif';src:url('assets/fonts/light.ttf') format('truetype');font-style:normal;font-weight:300 400;font-display:swap}
@font-face{font-family:'Koko Serif';src:url('assets/fonts/italic.ttf') format('truetype');font-style:italic;font-weight:300 400;font-display:swap}
.opening{height:400px;padding-top:178px}
.opening .animated-title{font-family:var(--font);font-size:44px;line-height:.94;letter-spacing:-1.4px;font-weight:300}
.opening .animated-title .title-line{font-size:1em;letter-spacing:inherit;margin:0;display:block}
.opening .animated-title .word-stage{position:relative;display:block;height:1.06em;overflow:visible;margin:2px auto;isolation:isolate}
.opening .animated-title .rotating-word{position:absolute;inset:0;display:block;font-size:1em;line-height:1.06;white-space:nowrap;opacity:0;transform:translateY(.24em) skewX(-8deg);filter:blur(3px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1),filter .8s ease;font-weight:300;letter-spacing:-1.5px}
.opening .animated-title .rotating-word.is-active{opacity:1;transform:translateY(0) skewX(0);filter:blur(0)}
.opening .animated-title .rotating-word.is-leaving{opacity:0;transform:translateY(-.2em) skewX(5deg);filter:blur(3px)}
.opening h1{animation:title-arrive 1.2s cubic-bezier(.22,1,.36,1) both}
@keyframes title-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.opening{height:350px;padding-top:150px}.opening .animated-title{font-size:38px}}
@media(max-width:560px){.opening{height:325px;padding-top:140px}.opening .animated-title{font-size:31px;letter-spacing:-.7px}.opening .animated-title .rotating-word{letter-spacing:-.8px}}
@media(prefers-reduced-motion:reduce){.opening h1{animation:none}.opening .animated-title .rotating-word{transition:none;transform:none;filter:none}}

/* White canvas and refined light sans-serif typography. */
:root{color-scheme:light;--bg:#fff;--fg:#202020;--muted:#666;--line:#dedede;--font:"Aptos Light","Aptos","Koko Sans","Segoe UI Light","Helvetica Neue",Arial,sans-serif}
body{font-family:var(--font);font-weight:300;-webkit-font-smoothing:antialiased}
.menu{background:var(--bg)}
.menu>a,.monogram,.gallery-invitation,h2,.values dt,.invitation>a,.footer-logo,.contact-opening h1{font-family:var(--font);font-weight:300}
.menu>a:hover{font-style:normal;opacity:.6}
.opening .animated-title{font-family:var(--font);font-weight:300;letter-spacing:.025em;line-height:1.12}
.opening .animated-title .rotating-word{font-style:normal;font-weight:300;letter-spacing:.025em}
.opening .animated-title .word-stage{height:1.15em;margin:5px auto}
h2{letter-spacing:-.035em;line-height:1.12}
em{font-style:normal;font-weight:300}
.story-copy,.experience-details p,.contact-lead p,.footer-grid{color:#4b4b4b}
.monogram{letter-spacing:-5px}.monogram span{font-style:normal}
.footer-logo{letter-spacing:-.045em}
.outline-link{border-color:#aaa}
a:focus-visible,button:focus-visible{outline-color:#555}
@media(max-width:560px){.opening .animated-title{font-size:29px;letter-spacing:.01em}.opening .animated-title .rotating-word{letter-spacing:.01em}}

@font-face{font-family:'Koko Sans';src:url('assets/fonts/sans-light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}

/* Two photos per slide, with a seamless repeating sequence. */
.photo-loop{padding:0 5.5% 65px}.photo-window{overflow:hidden}.photo-track{display:flex;transition:transform 1s cubic-bezier(.22,1,.36,1)}.photo-pair{flex:0 0 100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.photo-pair figure{margin:0}.photo-pair figure img{aspect-ratio:4/5;width:100%;object-fit:cover}.photo-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:24px}.photo-controls button{background:none;border:0;cursor:pointer;padding:10px;font-weight:300}.photo-count,.photo-pause{font-size:11px;letter-spacing:1px;color:var(--muted)}.photo-prev,.photo-next{font-size:24px}@media(max-width:560px){.photo-loop{padding:0 10px 40px}.photo-pair{gap:10px}.photo-pair figcaption{font-size:9px}.photo-controls{margin-top:12px;gap:18px}}

/* Crossfade photo pairs in the same position. */
.photo-track{display:grid;transform:none;transition:none}
.photo-pair{grid-area:1/1;opacity:0;pointer-events:none;transition:opacity 1.4s ease}
.photo-pair:first-child,.photo-pair.is-active{opacity:1}
.photo-track:has(.is-active) .photo-pair:not(.is-active){opacity:0}
.photo-pair.is-active{pointer-events:auto}

/* Match the gentle blur and lift of the rotating title. */
.photo-pair{transform:translateY(14px);filter:blur(5px);transition:opacity 1.2s ease,transform 1.4s cubic-bezier(.22,1,.36,1),filter 1.2s ease}
.photo-pair.is-active{transform:translateY(0);filter:blur(0)}
@media(prefers-reduced-motion:reduce){.photo-pair{transform:none;filter:none}}
