@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=DM+Sans:wght@400;500&family=Mrs+Saint+Delafield&display=swap');
@font-face{font-family:'Amalfi Coast';src:url('fonts/AmalfiCoast.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--cream:#f5f0e7;--ink:#3a3f2f;--olive:#555840;--rose:#ae8079;--line:#c8beac;--serif:'Cormorant Garamond',Georgia,serif;--script:'Amalfi Coast','Mrs Saint Delafield',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--rose);outline-offset:7px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.92;letter-spacing:-.045em}h2{font-size:clamp(58px,6.6vw,105px)}em{font-weight:400}img{display:block;width:100%;height:100%;object-fit:cover}::selection{background:#c7b4a4}.script{font-family:var(--script);font-size:clamp(36px,4.3vw,65px);font-weight:400;line-height:1.2;color:var(--rose)}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:500;line-height:1.6}.brand{font-family:var(--serif);letter-spacing:.11em;font-size:28px;line-height:1.1}.brand span{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:.36em;margin-top:7px}.brand-house{color:var(--rose)}.section{padding:120px max(7vw,24px)}header{height:110px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #cdd3bd}nav{display:flex;gap:42px;align-items:center;font-size:13px}.nav-invite{border-bottom:1px solid var(--line);padding-bottom:5px}.age{font-size:12px;border:1px solid var(--line);border-radius:50%;width:35px;height:35px;display:grid;place-items:center}.hero{min-height:790px;height:calc(100svh - 110px);max-height:1100px;position:relative;padding:60px 7% 90px;display:grid;grid-template-columns:1.3fr .85fr;align-items:center;gap:30px;overflow:hidden}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(78px,8.9vw,146px);margin:30px 0;line-height:.84;letter-spacing:-.05em}.hero h1 em{font-weight:400;margin-left:55px}.hero-script{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);max-width:85%;text-align:center;white-space:nowrap;font-size:80px;opacity:0;animation:comeCloserIn 1.7s cubic-bezier(.16,.84,.44,1) .5s forwards,comeCloserFloat 5s ease-in-out 2.2s infinite}@keyframes comeCloserIn{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) translateY(16px) scale(.9)}100%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) translateY(0) scale(1)}}@keyframes comeCloserFloat{0%,100%{transform:translate(-50%,-50%) rotate(-12deg) translateY(0) scale(1)}50%{transform:translate(-50%,-50%) rotate(-12deg) translateY(-6px) scale(1.03)}}@keyframes comeCloserInMobile{0%{opacity:0;transform:rotate(-6deg) translateY(16px) scale(.9)}100%{opacity:1;transform:rotate(-6deg) translateY(0) scale(1)}}@keyframes comeCloserFloatMobile{0%,100%{transform:rotate(-6deg) translateY(0) scale(1)}50%{transform:rotate(-6deg) translateY(-6px) scale(1.03)}}.intro{font-size:15px;line-height:1.8;margin:28px 0}.text-link{display:inline-flex;align-items:center;gap:48px;border-bottom:1px solid var(--ink);padding:10px 0;font-size:12px;letter-spacing:.14em}.text-link span{font-size:24px;line-height:1}.hero-photo{height:100%;max-height:540px;min-height:400px;width:86%;position:relative;margin:0 4% 0 auto}.hero-photo img{border-radius:48% 48% 0 0;object-position:43% center}.orbit{position:absolute;inset:-20px 16px 10px -22px;border:1px solid #b6aa94;border-radius:50% 50% 0 0;transform:rotate(8deg);pointer-events:none}.photo-star{position:absolute;right:-31px;top:15%;font-size:65px;font-family:var(--serif)}.photo-note{position:absolute;bottom:25px;left:30px;color:#fff7ea;font-family:var(--script);font-size:20px;line-height:1.3;transform:rotate(-5deg);text-shadow:0 1px 10px #3a3f2f}.hero-bottom{position:absolute;bottom:27px;left:7%;right:7%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.19em}.feel{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:center;border-top:1px solid var(--line)}.feel h2{margin-top:35px}.feel h2 em{color:var(--olive)}.letter-copy{padding:50px 0 0 18%}.letter-copy .script{margin-bottom:16px}.letter-copy p:not(.script){font-size:16px;line-height:1.9}.tiny-star{font-size:38px;display:inline-block;margin:20px 0}.feel figure{position:relative;max-width:380px;transform:rotate(3deg);margin-top:80px}.feel img{aspect-ratio:3/4;height:auto}.feel figcaption{position:absolute;bottom:-45px;right:-35px;transform:rotate(-10deg)}.collage{padding-top:50px;padding-bottom:130px}.collage>.eyebrow{text-align:center;margin-bottom:65px}.collage-grid{height:710px;position:relative}.collage figure{position:absolute}.collage figcaption{position:absolute;z-index:2;white-space:nowrap}.velvet{left:0;top:10%;width:22%;height:35%;transform:rotate(-5deg)}.velvet figcaption{bottom:-38px;left:20%}.room{left:31%;top:0;width:35%;height:62%}.room figcaption{top:12%;right:-55px;transform:rotate(-12deg)}.crystal{right:0;top:18%;width:22%;height:36%;transform:rotate(5deg)}.crystal figcaption{bottom:-36px;right:10%}.lace{left:15%;bottom:0;width:25%;height:38%}.lace figcaption{bottom:-30px;left:-50px;transform:rotate(-8deg)}.collage-word{position:absolute;bottom:5%;right:6%;font-family:var(--serif);font-size:clamp(45px,5vw,78px);line-height:1.05;letter-spacing:-.035em}.collage-star{position:absolute;left:3%;bottom:12%;font-size:60px;color:var(--rose)}.dark-moment{position:relative;min-height:710px;background:#1f2417;display:flex;align-items:center;overflow:hidden;color:var(--cream);padding:100px 10%}.dark-moment>img{position:absolute;inset:0;opacity:.4;object-position:center 65%}.dark-moment:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1f24179c,transparent)}.dark-moment>div{position:relative;z-index:1}.dark-moment h2{font-size:clamp(58px,7.6vw,120px);margin:45px 0}.dark-moment .script{color:#b9c2a0;padding-left:20%}.ava{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center;padding-top:160px;padding-bottom:160px}.ava-portrait{position:relative;margin-left:30px}.portrait-frame{position:relative;display:block}.ava-portrait img{aspect-ratio:3/4;height:auto;border-radius:48% 48% 0 0}.portrait-outline{position:absolute;inset:-23px 20px 18px -23px;border:1px solid var(--line);border-radius:48% 48% 0 0;transform:rotate(-6deg);pointer-events:none}.portrait-caption{display:block;font-size:10px;letter-spacing:.16em;text-align:right;line-height:1.7;margin:40px 6% 0 0}.ava h2{margin:35px 0 18px}.ava-copy .script{font-size:22px;white-space:nowrap;margin-bottom:20px}.ava-copy>p:not(.eyebrow):not(.script){max-width:360px;margin-bottom:20px;font-size:16px}.ava .text-link{margin-top:18px}.world{background:#e9e7dc}.world-heading{position:relative;margin-bottom:70px}.world-heading h2{font-size:clamp(55px,5.3vw,84px);margin-top:25px}.world-heading>.script{position:absolute;right:3%;bottom:10%;transform:rotate(-9deg);font-size:48px}.world-images{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;align-items:start}.world-image{position:relative;display:block}.world-image img{aspect-ratio:3/4;height:auto;transition:filter 1s}.world-image:hover img{filter:brightness(1.08)}.world-image-1{margin-top:85px}.world-image-2{margin-top:25px}.world-image-0 img{border-radius:48% 48% 0 0}.world-image>div{padding-top:25px;position:relative}.world-number{font-size:11px;letter-spacing:.2em}.world h3{font-size:clamp(37px,3.5vw,57px);margin-top:12px}.world-image .script{font-size:22px;margin:5px 0 0 10px}.world-arrow{position:absolute;right:0;bottom:20px;font-size:25px}.invitation{text-align:center;position:relative;margin:60px auto;background:radial-gradient(ellipse at center,#f2f4e6 0,transparent 70%);padding-top:90px;padding-bottom:90px}.invitation:before,.invitation:after{content:'';position:absolute;left:8%;right:8%;height:1px;background:var(--line)}.invitation:before{top:15px}.invitation:after{bottom:15px}.star{display:block;font-size:45px;color:#9f8a6c;line-height:1}.invitation>.script{margin-top:20px}.invitation h2{margin:30px 0 42px;font-size:clamp(65px,7vw,110px)}.button{display:inline-flex;justify-content:center;align-items:center;gap:16px;background:var(--olive);color:#fffbed;padding:20px 27px;border:1px solid var(--olive);font-size:12px;letter-spacing:.14em;transition:background .3s}.button:hover{background:#414630}.button span{font-size:24px;line-height:1}.discreet{margin-top:23px;font-size:10px}.invitation .love{margin-top:47px;font-size:51px}footer{border-top:1px solid var(--line);padding:45px 6%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer>span,footer>button{font-size:9px;letter-spacing:.12em}footer button{border:0;background:none;color:var(--ink);padding:10px 0}.gate{min-height:100svh;display:grid;place-items:center;padding:30px;background:radial-gradient(ellipse at 50% 40%,#eef0e0,#dbe0c8)}.gate-frame{text-align:center;border:1px solid #a8b48f3e;outline:1px solid #a8b48f60;outline-offset:12px;width:min(660px,92vw);padding:65px 40px}.gate .brand{font-size:clamp(40px,6vw,66px);margin-top:30px}.gate .script{font-size:55px;margin-top:8px}.gate-rule{height:55px;width:1px;background:var(--line);margin:27px auto}.gate h1{font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:.19em;line-height:1.5}.gate-copy{font-size:14px;max-width:325px;margin:18px auto 30px;color:#5f6753}.gate .button{min-width:285px}.leave{display:block;width:max-content;margin:24px auto;font-size:11px;letter-spacing:.16em;border-bottom:1px solid var(--line)}.gate-foot{font-size:9px;letter-spacing:.18em;display:block;margin-top:42px}.reveal{animation:soft-in 1.5s ease both}.reveal.visible{animation:soft-in 1.5s ease both}@keyframes soft-in{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.hero{padding-left:10%;padding-right:10%}.section{padding-left:12%;padding-right:12%}}@media(max-width:900px){nav{gap:23px}.hero{min-height:700px;height:auto}.hero h1{font-size:85px}.hero-script{font-size:62px;left:45%;top:40%}.hero-photo{min-height:380px;width:88%;margin-right:0}.feel{gap:30px}.feel h2{font-size:65px}.ava{gap:8%}.ava-copy .script{white-space:normal;line-height:1.5}.world-images{gap:20px}.world-heading>.script{font-size:38px}.collage-grid{height:550px}footer{flex-wrap:wrap}.section{padding-top:90px;padding-bottom:90px}}
@media(max-width:600px){header{height:90px;padding:0 6%}.brand{font-size:24px}nav>a:not(.nav-invite){display:none}.nav-invite{font-size:12px}.age{display:none}.hero{display:flex;flex-direction:column;padding:45px 7% 75px;align-items:stretch;gap:20px}.hero h1{font-size:clamp(76px,18vw,112px);margin:22px 0}.hero h1 em{margin-left:25px}.hero-copy{z-index:2}.hero .intro{font-size:14px;max-width:75%;margin-top:25px}.hero-photo{min-height:0;height:460px;max-height:100vw;width:78%;margin:20px 0 0 18%;}.photo-note{font-size:16px;left:15px}.orbit{inset:-14px 10px 10px -17px}.photo-star{font-size:45px;right:-15px}.hero-bottom{font-size:8px}.hero-bottom>span:first-child{display:none}.section{padding:75px 7%}.feel{display:flex;flex-direction:column;align-items:stretch;gap:0}.feel h2{font-size:clamp(57px,13vw,80px)}.letter-copy{padding-top:30px;padding-left:12%}.feel figure{width:70%;margin:20px 0 30px 25%}.feel figcaption{right:-10px;font-size:45px}.collage-grid{height:640px}.collage>.eyebrow{margin-bottom:35px;font-size:10px}.velvet{width:33%;height:23%;top:4%}.room{width:53%;height:40%;left:44%}.crystal{width:36%;height:26%;top:42%;right:0}.lace{width:40%;height:29%;left:4%;bottom:26%}.collage figcaption{font-size:39px}.room figcaption{right:2px;top:auto;bottom:-32px}.lace figcaption{left:0}.collage-word{font-size:47px;bottom:0;right:1%}.collage-star{bottom:4%;font-size:40px}.dark-moment{min-height:590px;padding:75px 7%}.dark-moment h2{font-size:clamp(49px,11.5vw,68px)}.dark-moment .script{font-size:42px;padding-left:0}.ava{display:flex;flex-direction:column;gap:65px}.ava-portrait{width:80%;margin-left:0}.ava h2{font-size:85px}.ava-copy .script{font-size:19px}.world-heading>.script{position:static;display:block;transform:rotate(-5deg);margin-top:28px;font-size:38px}.world-heading h2{font-size:57px}.world-images{grid-template-columns:1fr;gap:45px}.world-image{width:83%;margin-top:0}.world-image-1{margin-left:auto}.world h3{font-size:48px}.world-image img{aspect-ratio:4/5}.world-heading{margin-bottom:40px}.invitation h2{font-size:64px}.invitation .button{max-width:100%;font-size:10px;gap:18px;padding:20px}.invitation{margin:30px 0}.gate-frame{padding:45px 20px}.gate .brand{font-size:43px}.gate .script{font-size:44px}.gate .button{min-width:0;width:100%;gap:20px}footer{gap:20px}footer>span{font-size:8px}footer .brand{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}.letter-detail{width:115px;height:115px;border-radius:50%;margin:0 auto 35px;object-fit:cover;opacity:.85}.no-script{text-align:center;padding:20px}.gate .star{animation:shimmer 6s ease-in-out infinite}@keyframes shimmer{50%{opacity:.4}}
.invitation-film{width:min(320px,80vw);margin:38px auto 55px}.invitation-film video{display:block;width:100%;aspect-ratio:9/16;background:#262a1d;object-fit:cover;border-radius:150px 150px 3px 3px}.invitation-film figcaption{font-size:38px;margin-top:16px}.world-image-2 img{object-position:center 25%}.hero-photo img{object-position:50% 45%}.world-image-0 img{object-position:center top}
/* The entrance remains readable on narrow and short screens. */
.gate{min-height:100svh;padding:24px;align-items:center}
.gate-frame{width:min(620px,100%);padding:clamp(24px,4vh,44px) clamp(20px,5vw,48px);outline-offset:8px}
.gate .star{font-size:30px}.gate .brand{margin-top:16px;font-size:clamp(35px,6vw,56px)}
.gate .script{font-size:clamp(16px,2.6vw,22px);white-space:nowrap}
.gate-rule{height:24px;margin:20px auto}
.age-number{font-family:var(--serif);font-size:clamp(68px,12vw,96px);line-height:1;color:var(--olive);margin:10px 0}
.gate h1{font-size:14px;line-height:1.6;letter-spacing:.16em}
.gate-copy{font-size:16px;line-height:1.6;margin:16px auto 24px;max-width:360px;color:#545c47}
.gate .button{font-size:14px;min-height:54px;max-width:100%;white-space:normal}
.gate .leave{font-size:14px;min-height:44px;display:flex;align-items:center;justify-content:center;margin:12px auto}
.gate-foot{font-size:11px;margin-top:20px;letter-spacing:.12em}
.age{background:transparent;color:var(--ink);display:grid;flex-shrink:0;width:44px;height:44px;font-size:14px}
.invitation-film video{border-radius:12px}
@media(max-width:600px){header{gap:12px}.age{display:grid}.nav-invite{font-size:11px}.gate{padding:20px}.gate-frame{padding:24px 18px}.gate .button{padding:16px 18px;gap:18px}.gate .brand{font-size:36px}.gate .script{font-size:15px}}
@media(max-height:650px){.gate{align-items:start}.gate-frame{padding-top:20px;padding-bottom:20px}.gate .star{display:none}.gate-rule{height:14px;margin:12px auto}.age-number{font-size:64px}.gate .brand{margin-top:0}.gate-foot{margin-top:12px}}
.ava-portrait img{object-position:center top}
@media(max-width:600px){.hero-script{position:static;display:block;top:auto;left:auto;max-width:none;text-align:left;transform:rotate(-6deg);transform-origin:left center;margin:6px 0 0;white-space:normal;font-size:clamp(38px,11vw,54px);animation:comeCloserInMobile 1.7s cubic-bezier(.16,.84,.44,1) .5s forwards,comeCloserFloatMobile 5s ease-in-out 2.2s infinite}}
#age-title:focus,#welcome-title:focus{outline:none}

/* Vanilla moodboard: ivory background, deep olive ink and a sage-green accent. */
:root{--cream:#e9ecdf;--ink:#3c4230;--rose:#8f9a76;--olive:#56603f;--line:#b9c4a2}
::selection{background:#b9c4a2}
.gate{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#eef0e0 15%,#e9ecdf 100%)}
.gate-frame{background:#f5f7ecdf;border-color:#b9c4a266;outline-color:#b9c4a266;box-shadow:0 20px 90px #32362a0f}
.gate .star,.invitation>.star{color:var(--rose)}
.hero{background:radial-gradient(ellipse at 95% 5%,#b9c4a280,transparent 60%)}
.orbit{border-color:#9fae87}.photo-star{color:#8f9a76}
.world{background:#e2e6d2}
.invitation{background:radial-gradient(ellipse at center,#f5f6ec 10%,#b9c4a25c 55%,transparent 75%)}

/* Homepage palette from ava-homepage.zip. */
.homepage{--cream:#f5f0e7;--ink:#443c32;--olive:#555840;--rose:#ae8079;--line:#c8beac}
.homepage ::selection{background:#c7b4a4}
.homepage .site-header{border-bottom-color:#d8d0c2}
.homepage .hero{background:transparent}
.homepage .orbit{border-color:#b6aa94}
.homepage .photo-star{color:var(--ink)}
.homepage .photo-note{text-shadow:0 1px 10px #443c32}
.homepage .dark-moment{background:#29281e}
.homepage .dark-moment:after{background:linear-gradient(90deg,#29251e9c,transparent)}
.homepage .dark-moment .script{color:#d5b5a2}
.homepage .world{background:#e9e7dc}
.homepage .invitation{background:radial-gradient(ellipse at center,#fffaf0 0,transparent 70%)}
.homepage .gate{background:radial-gradient(ellipse at 50% 40%,#fcf8ef,#e5dac9)}
.homepage .gate-frame{background:transparent;border-color:#b9ac953e;outline-color:#b9ac9560;box-shadow:none}
.homepage .gate-copy{color:#655b4e}
.homepage .gate .star,.homepage .invitation>.star{color:#9f8a6c}
.homepage .invitation-film video{background:#302920}


/* Line-drawn arrow icon: avoids the tofu/missing-glyph box some mobile fonts show for the ↗ and ↓ Unicode characters. */
.icon-arrow{width:1em;height:1em;display:inline-block;vertical-align:-.15em;flex-shrink:0}
