:root{--wine:#451a2a;--deep:#2e101c;--pink:#ffccca;--blush:#fae9e6;--gold:#eacfa4;--ink:#512338;--sans:Arial,Helvetica,sans-serif;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;background:var(--wine);color:var(--blush);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip{position:fixed;top:-100px;left:20px;z-index:99;background:var(--deep);padding:12px}.skip:focus{top:20px}.topbar{position:absolute;top:0;left:0;width:100%;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:24px 5.5%;font-size:14px;letter-spacing:.1em}.monogram{font-family:var(--serif);font-size:32px;line-height:1}.topbar>span{color:var(--gold)}#music{border:1px solid #eacfa452;color:var(--blush);border-radius:30px;padding:7px 16px;background:#451a2ad9;display:flex;align-items:center;gap:10px;cursor:pointer;letter-spacing:.04em;min-height:42px}.music-mark{font-size:22px;line-height:1}#music[aria-pressed=true] .music-mark{animation:pulse 2s infinite}.hero{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:116px 10% 80px;gap:7%;position:relative;background:radial-gradient(ellipse at 5% 20%,#65304755,transparent 55%),var(--wine);overflow:hidden}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:14px;letter-spacing:.22em;color:var(--gold);margin:0 0 28px}.hero h1{font-family:var(--serif);font-size:clamp(65px,8.4vw,132px);font-weight:400;line-height:1.13;letter-spacing:-.045em;margin:0 0 4px}.hero-subtitle{font-family:var(--serif);font-size:clamp(31px,3vw,48px);margin:0;font-style:italic;color:var(--gold)}.fine-rule{display:block;width:68px;height:1px;background:var(--gold);margin:34px 0}.hero-date{font-size:16px;letter-spacing:.05em;margin:0 0 34px}.hero-date span,.start-time span{margin:0 9px;color:var(--gold)}.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:15px 29px;border:1px solid transparent;font-size:15px;letter-spacing:.025em;transition:background .25s,transform .25s;cursor:pointer}.primary{background:var(--gold);color:var(--wine)}.primary:hover{background:#f5dfbd;transform:translateY(-3px)}.outline{border-color:#eacfa46b;color:var(--gold)}.outline:hover{background:#eacfa412}.portrait-wrap{position:relative;perspective:1200px;max-width:470px;width:100%;justify-self:end}.portrait-frame{position:relative;background:var(--pink);border-radius:240px 240px 4px 4px;overflow:hidden;border:1px solid var(--gold);padding:9px;box-shadow:0 30px 70px #17030e70;transform:rotate(2deg);transition:transform .6s ease;will-change:transform}.portrait-frame:after{content:'';position:absolute;inset:14px;border:1px solid #b5825670;border-radius:inherit;pointer-events:none}.portrait-frame img{display:block;width:100%;height:auto;max-height:68svh;object-fit:contain;border-radius:inherit}.photo-caption{position:absolute;bottom:25px;left:0;width:100%;text-align:center;font-size:12px;letter-spacing:.2em;color:var(--ink)}.portrait-number{display:block;text-align:right;font-size:12px;color:var(--gold);letter-spacing:.18em;margin-top:20px}.scroll-note{position:absolute;bottom:24px;left:10%;font-size:13px;color:var(--gold);display:flex;gap:20px;align-items:center}.scroll-note span{font-size:22px}.panel{min-height:100svh;position:relative;padding:38px 8% 60px;display:flex;flex-direction:column;align-items:center;justify-content:center}.section-meta{display:flex;justify-content:space-between;gap:18px;position:absolute;left:8%;right:8%;top:32px;font-size:12px;letter-spacing:.14em;color:var(--gold)}.invitation{background:var(--blush);color:var(--ink)}.invitation .section-meta,.invitation .eyebrow{color:#8f6146}.invite-content{text-align:center;max-width:830px;margin:100px 0 50px}.invite-content h2{font-family:var(--serif);font-size:clamp(35px,4.3vw,64px);font-weight:400;line-height:1.3;margin:0}.invite-content .fine-rule{margin:34px auto;background:#a57b5d}.invite-content>p:not(.eyebrow){font-size:20px;line-height:1.9;margin:18px 0}.invite-content .signature{font-family:var(--serif);font-style:italic;color:#996342;padding-top:20px}.text-link{font-size:14px;border-bottom:1px solid #9d755560;padding:5px 0}.date-panel{background:var(--deep);overflow:hidden}.date-panel:before{content:'';position:absolute;border:1px solid #eacfa420;width:min(70vw,800px);height:min(70vw,800px);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.date-content{position:relative;text-align:center;width:100%;margin:80px 0 10px}.date-content .eyebrow{margin-bottom:10px}.date-content h2{font-family:var(--serif);font-weight:400;margin:0;line-height:1}.big-date{display:block;font-size:clamp(140px,17vw,240px);font-weight:400;letter-spacing:-.06em;color:var(--gold)}.month{display:block;font-size:32px;line-height:1.4;margin:12px 0}.start-time{font-size:16px}.countdown-wrap{margin:42px auto 32px}.countdown-wrap>p{font-family:var(--serif);font-size:21px;color:var(--gold);margin-bottom:15px}.countdown{display:flex;justify-content:center;gap:22px;font-variant-numeric:tabular-nums}.countdown div{min-width:58px}.countdown div>span{display:block;font-family:var(--serif);font-size:42px;line-height:1.2}.countdown small{font-size:14px;color:#e0bdc8}.countdown i{font-family:var(--serif);font-size:30px;font-style:normal;opacity:.4}.venue-panel{background:var(--wine)}.venue-content{text-align:center;max-width:750px;margin:100px 0 60px}.venue-label{color:var(--gold);font-size:14px;letter-spacing:.2em}.venue-content h2{font-size:clamp(75px,10vw,150px);font-family:var(--serif);font-weight:400;line-height:1.15;margin:22px 0;letter-spacing:-.04em}.venue-content h2 em{font-weight:400;color:var(--gold)}.venue-content .fine-rule{margin:30px auto}.city{font-size:22px;margin:0 0 8px}.venue-content address{font-style:normal;color:#edd3dc;font-size:18px;line-height:1.8;margin-bottom:34px}.closing{font-family:var(--serif);font-style:italic;font-size:25px;color:var(--gold);margin:50px 0 0}footer{position:absolute;bottom:25px;left:8%;right:8%;display:flex;justify-content:space-between;font-size:13px;color:#d8afbf;gap:20px}footer a{border-bottom:1px solid #d8afbf50}.page-dots{position:fixed;right:25px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:17px;z-index:20;mix-blend-mode:difference}.page-dots a{width:9px;height:9px;border:1px solid #ffe6c5;border-radius:50%;position:relative}.page-dots a:before{content:'';position:absolute;inset:-9px}.page-dots a.active{background:#ffe6c5}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .85s,transform .85s}.js-motion .reveal.visible{opacity:1;transform:translateY(0)}@keyframes pulse{50%{opacity:.5}}
@media(min-width:1500px){.hero{padding-left:14%;padding-right:14%}.portrait-wrap{max-width:550px}}@media(max-width:760px){.topbar{padding:20px 24px}.topbar>span{font-size:12px;letter-spacing:.04em}.monogram{font-size:27px}#music{padding:5px 11px;font-size:12px;gap:7px;min-height:38px}.hero{display:flex;flex-direction:column;min-height:100svh;padding:100px 28px 56px;gap:32px;justify-content:center}.hero-copy{text-align:center}.hero .eyebrow{font-size:12px;margin-bottom:14px;letter-spacing:.17em}.hero h1{font-size:clamp(59px,17vw,86px);line-height:1.08}.hero-subtitle{font-size:32px;line-height:1.35}.hero-copy .fine-rule{display:none}.hero-date{font-size:14px;margin:13px 0 21px}.button{padding:13px 25px;min-height:48px;font-size:14px}.portrait-wrap{width:min(77vw,360px);max-width:none;align-self:center}.portrait-frame{padding:6px;border-radius:180px 180px 3px 3px;transform:rotate(1.5deg)}.portrait-frame img{height:auto;max-height:none;aspect-ratio:3/4;object-fit:contain}.portrait-frame:after{inset:11px}.photo-caption{bottom:16px;font-size:10px;letter-spacing:.15em}.portrait-number{display:none}.scroll-note{display:none}.page-dots{right:13px;gap:19px}.page-dots a{width:6px;height:6px}.panel{padding:80px 28px 70px;min-height:100svh}.section-meta{left:24px;right:24px;top:26px;font-size:10px;letter-spacing:.07em}.invite-content{margin:55px 0 35px}.invite-content h2{font-size:35px;line-height:1.32}.invite-content .eyebrow{font-size:12px;letter-spacing:.16em}.invite-content>p:not(.eyebrow){font-size:17px;line-height:1.85}.desktop-break{display:none}.date-content{margin:40px 0 0}.date-content .eyebrow{font-size:12px;letter-spacing:.12em}.big-date{font-size:165px}.month{font-size:29px}.start-time{font-size:14px}.countdown{gap:10px}.countdown div{min-width:47px}.countdown div>span{font-size:35px}.countdown small{font-size:12px}.countdown i{font-size:25px}.countdown-wrap{margin-top:35px}.date-panel:before{width:520px;height:520px}.venue-content{margin:30px 0 50px}.venue-content h2{font-size:83px;white-space:nowrap}.venue-label{font-size:12px}.city{font-size:21px}.venue-content address{font-size:17px}.closing{font-size:25px}footer{left:24px;right:24px;font-size:11px}footer span{max-width:165px}}@media(max-width:360px){.hero{padding-left:20px;padding-right:20px}.hero-date{font-size:13px}.invite-content h2{font-size:30px}.countdown{gap:6px}.countdown div{min-width:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.portrait-frame{transform:none}}

/* A straight portrait and a refined, spacious invitation. */
:root{--wine:#401322;--deep:#240b14;--blush:#fff2ed;--gold:#ecd3a9;--ink:#491a2b}
.hero{padding:112px 9% 88px;gap:8%;background:radial-gradient(ellipse at 0% 0%,#8b46543d,transparent 65%),linear-gradient(140deg,#49192b,#2e0b18)}
.hero-copy{padding:20px 0}.hero h1{font-size:clamp(66px,8vw,124px);letter-spacing:-.035em}.hero-subtitle{font-size:clamp(32px,3.5vw,52px)}
.hero .eyebrow{letter-spacing:.26em}.hero-date{margin-bottom:38px}.fine-rule{width:88px}
.portrait-wrap{max-width:450px;perspective:none;padding:13px;border:1px solid #ecd3a955}
.portrait-frame{padding:0;border:0;border-radius:2px;transform:none;transition:none;will-change:auto;background:transparent;box-shadow:0 24px 70px #17030e80}
.portrait-frame:after{display:none}.portrait-frame img{width:100%;height:auto;max-height:none;object-fit:contain;border-radius:2px;aspect-ratio:auto}
.button{border-radius:3px;font-size:16px;padding:16px 30px;min-height:54px}.primary{background:linear-gradient(120deg,#f4dfbc,#dfbb86)}
.invitation{background:linear-gradient(135deg,#fff7f2,#f7e8e5)}.invite-content{max-width:820px}.invite-content h2{letter-spacing:-.02em}.invite-content>p:not(.eyebrow){line-height:1.95}.invite-content .signature{font-size:24px}
.date-panel{background:radial-gradient(ellipse at center,#4c1c2c,#240b14)}.date-panel:before{width:min(84vw,710px);height:min(84vw,710px);border-color:#eacfa426}
.countdown{gap:20px}.countdown div{min-width:74px;padding:12px 8px;border-top:1px solid #ecd3a94a;border-bottom:1px solid #ecd3a94a}.countdown i{align-self:center}.countdown div>span{font-size:46px}.countdown small{font-size:14px}.countdown-wrap{margin:36px auto}
.venue-panel{background:linear-gradient(145deg,#501d31,#320e1c)}.venue-content h2{letter-spacing:-.04em}.section-meta{font-size:14px;letter-spacing:.09em}.topbar>span{font-size:14px}.scroll-note{font-size:14px}.page-dots{gap:23px}.page-dots a{width:8px;height:8px}footer{font-size:14px}
@media(max-width:760px){
.topbar{padding:20px 24px}#music{font-size:14px;padding:6px 13px;min-height:42px}.topbar>span{font-size:14px}
.hero{padding:98px 25px 54px;gap:29px;justify-content:flex-start}.hero-copy{padding:0}.hero .eyebrow{font-size:14px;margin-bottom:15px;letter-spacing:.15em}.hero h1{font-size:clamp(62px,17vw,88px)}.hero-subtitle{font-size:34px}.hero-date{font-size:15px;margin:14px 0 23px}.hero-date span{margin:0 5px}
.portrait-wrap{width:min(100%,350px);padding:9px;max-width:350px}.portrait-frame{padding:0;border-radius:2px;transform:none}.portrait-frame img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.button{font-size:16px;padding:14px 25px;min-height:51px}.panel{padding:92px 26px 85px}.section-meta{font-size:12px;letter-spacing:.045em;left:24px;right:24px;top:28px}.section-meta span:last-child{display:none}.invite-content{margin:32px 0}.invite-content h2{font-size:clamp(31px,8.7vw,40px);line-height:1.38}.invite-content .eyebrow,.date-content .eyebrow{font-size:14px;letter-spacing:.1em}.invite-content>p:not(.eyebrow){font-size:18px;line-height:1.85}.invite-content .signature{font-size:22px}.text-link{font-size:16px}
.date-content{margin:18px 0}.big-date{font-size:154px}.month{font-size:30px}.start-time{font-size:16px}.countdown{gap:7px}.countdown div{min-width:48px;padding:10px 3px}.countdown div>span{font-size:34px}.countdown small{font-size:14px}.countdown i{font-size:22px}.countdown-wrap{margin:30px auto}.venue-content{margin:35px 0 50px}.venue-label{font-size:14px}.venue-content h2{font-size:clamp(68px,20vw,88px)}.venue-content address{font-size:18px}.closing{font-size:26px}footer{font-size:14px;align-items:end}footer span{max-width:150px}.page-dots{right:10px}
}
@media(prefers-reduced-motion:reduce){.portrait-frame{transform:none}}

.participation-fee{margin:32px auto 0;padding:20px 24px;border-top:1px solid #a57b5d55;border-bottom:1px solid #a57b5d55;max-width:380px}.participation-fee p{margin:0 0 5px;font-size:16px;color:#80523e}.participation-fee strong{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.5}.participation-fee strong span{font-family:var(--sans);font-size:16px;display:inline-block}

/* Ivory and silver saukele invitation. */
:root{--wine:#f7f8fa;--deep:#e9edf1;--pink:#fff;--blush:#273342;--gold:#627184;--ink:#273342}
body{background:#f7f8fa;color:#273342}.hero{background:radial-gradient(ellipse at 0% 0%,#fff,transparent 65%),linear-gradient(140deg,#f7f8fa,#e7ebf0)}
#music{background:#ffffffd9;color:#273342;border-color:#a8b2be}.primary{background:linear-gradient(120deg,#3f4e61,#263444);color:#fff}.primary:hover{background:#526277}.outline{border-color:#8b98a9;color:#334255}.outline:hover{background:#ffffff80}
.portrait-wrap{border-color:#a8b4c5;padding:10px;background:#fff}.portrait-frame{box-shadow:0 20px 65px #44506420}.portrait-frame img{aspect-ratio:3/4;object-fit:contain}
.invitation{background:linear-gradient(135deg,#fff,#f1f3f6)}.invitation .section-meta,.invitation .eyebrow,.invite-content .signature{color:#627184}.invite-content .fine-rule{background:#9ca8b7}
.date-panel{background:radial-gradient(ellipse at center,#fff,#e5eaf0)}.date-panel:before{border-color:#9ca8b74a}.countdown div{border-color:#9ca8b770}.countdown small{color:#627184}
.venue-panel{background:linear-gradient(145deg,#edf1f6,#fff)}.venue-content address,footer{color:#536174}footer a{border-color:#9ca8b7}.page-dots{mix-blend-mode:normal}.page-dots a{border-color:#627184}.page-dots a.active{background:#627184}.skip{background:#fff}
@media(max-width:760px){.portrait-wrap{width:min(100%,340px)}.portrait-frame img{max-height:520px;object-fit:contain;background:#f7f8fa}.hero{gap:26px}.hero h1{font-size:clamp(62px,17vw,88px)}}

.portrait-frame img{aspect-ratio:auto;height:auto;object-fit:contain}
@media(max-width:760px){.portrait-frame img{max-height:none;aspect-ratio:auto;height:auto}}
