@font-face{font-family:Great Vibes;src:url('assets/fonts/great-vibes-normal-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant Garamond;src:url('assets/fonts/cormorant-garamond-normal-latin.woff2') format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-normal-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
*{box-sizing:border-box}
:root{color-scheme:light;--wine:#65263b;--gold:#976e37;--ink:#543b2d}
body{margin:0;min-height:100svh;display:grid;place-items:center;background:#f3e4cd;color:var(--ink);font-family:Manrope,sans-serif;position:relative;isolation:isolate}
.palace-art{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.palace-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.welcome{width:min(640px,74%);padding:40px 0 48px;text-align:center;position:relative;isolation:isolate}
.welcome:before{content:'';position:absolute;inset:2% -5%;z-index:-1;background:radial-gradient(ellipse,#fff3def2 20%,#fff3debc 57%,#fff3de00 75%);filter:blur(18px);pointer-events:none}
.wedding-crest{width:118px;height:118px;object-fit:contain;display:block;margin:0 auto 13px}
.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#80613d;margin:0 0 17px}
h1{font-family:Great Vibes,cursive;font-size:clamp(52px,6.1vw,82px);font-weight:400;line-height:1.1;display:flex;align-items:center;justify-content:center;gap:16px;color:var(--wine);margin:0 0 18px}
h1>span{display:block}
h1 small{display:block;font:500 11px/1.4 Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;margin-top:5px}
h1 em{font:italic 32px/1 Cormorant Garamond,serif;color:#986c3a;margin-top:-13px}
.invitation-line{font:500 24px/1.35 Cormorant Garamond,serif;margin:0 0 15px}
.wedding-date{font-size:12px;font-weight:600;letter-spacing:.04em;margin:0 0 7px;display:flex;align-items:center;justify-content:center;gap:13px}
.wedding-date>span{color:var(--gold);font-size:16px}
.wedding-place{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin:0;line-height:1.6}
.ornament{display:flex;justify-content:center;align-items:center;gap:12px;color:var(--gold);font-size:23px;line-height:1;margin:21px 0 14px}
.ornament>span{height:1px;width:48px;background:linear-gradient(90deg,transparent,#a77c4390)}
.ornament>span:last-child{transform:rotate(180deg)}
.choose-copy{font:500 20px/1.4 Cormorant Garamond,serif;margin:0 0 17px}
.team-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:520px;margin:auto}
.team{--team-color:#6a2a40;--team-surface:#fff0e7;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:172px;padding:16px 12px 20px;border:1px solid #a27d456b;border-radius:76px 76px 15px 15px;background:linear-gradient(140deg,#fff9efed,var(--team-surface));color:var(--team-color);text-decoration:none;box-shadow:0 8px 25px #5d36200c;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s}
.team:before{content:'';position:absolute;inset:6px;border:1px solid #a27d4545;border-radius:inherit;pointer-events:none}
.team-groom{--team-color:#294c43;--team-surface:#e9eddf}
.team-flourish{width:78px;height:20px;fill:none;stroke:#a78248;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;margin-bottom:2px}
.team-title{font:600 34px/1.15 Cormorant Garamond,serif}
.team-family{font-size:10px;line-height:1.5}
.team-enter{display:flex;align-items:center;gap:12px;margin-top:7px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.team-enter>span{font-size:18px;line-height:1;transition:transform .4s}
.team:focus-visible{outline:3px solid var(--team-color);outline-offset:5px;box-shadow:0 10px 28px #5d362018}
@media(hover:hover){.team:hover{transform:translateY(-4px);box-shadow:0 13px 30px #5d36201c;border-color:#a27d45}.team:hover .team-enter>span{transform:translateX(4px)}}
.team:active{transform:translateY(-1px)}
@media(prefers-reduced-motion:no-preference){.welcome{animation:arrive 1.1s cubic-bezier(.2,.65,.2,1) both}.team-bride{animation:arrive .85s .15s cubic-bezier(.2,.65,.2,1) backwards}.team-groom{animation:arrive .85s .25s cubic-bezier(.2,.65,.2,1) backwards}@keyframes arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}}
@media(max-width:700px){body{min-height:max(100svh,770px)}.welcome{width:min(500px,72%);padding:88px 0 95px}.palace-art img{object-position:50% 50%}.wedding-crest{width:96px;height:96px;margin-bottom:12px}h1{font-size:clamp(42px,10.5vw,65px);gap:10px;margin-bottom:17px}h1 em{font-size:25px}h1 small{font-size:9px;letter-spacing:.15em}.eyebrow{font-size:8px;letter-spacing:.14em;margin-bottom:14px}.invitation-line{font-size:21px}.wedding-date{font-size:10px;gap:8px}.wedding-place{font-size:8px;letter-spacing:.07em}.choose-copy{font-size:18px}.team-choices{gap:12px}.team{min-height:155px;padding:15px 8px;border-radius:55px 55px 12px 12px}.team-title{font-size:27px}.team-family{font-size:9px}.team-enter{font-size:8px;letter-spacing:.07em;gap:6px}.team-flourish{width:62px}.ornament{margin-top:18px}}
@media(max-width:460px){.team-choices{grid-template-columns:1fr;max-width:278px}.team{min-height:117px;border-radius:55px 55px 13px 13px;padding:10px 12px 14px;gap:3px}.team-flourish{height:14px;margin:0}.team-title{font-size:29px}.team-family{font-size:9px}.team-enter{margin-top:3px;font-size:8px}.welcome{padding-top:72px;padding-bottom:85px}.invitation-line{font-size:clamp(18px,5.4vw,21px)}.wedding-crest{width:90px;height:90px}.ornament{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Carry one ivory surface from the chooser into the decoded closed doors. */
body:after{content:'';position:fixed;inset:0;z-index:10;background:#f3e4cd;opacity:0;pointer-events:none;transition:opacity .22s ease}
body.team-departing:after{opacity:1;pointer-events:auto}
@media(prefers-reduced-motion:reduce){body:after{transition:none}}
