:root{
  --paper:#fffdf8;
  --cream:#f8f3ea;
  --ink:#3e423a;
  --muted:#7c806f;
  --sage:#b9d6ae;
  --sage-dark:#6f7f58;
  --gold:#c8ab66;
  --blush:#d6a2a0;
  --lavender:#9696c9;
  --line:#d7d3c5;
  --shadow:0 22px 70px rgba(73,64,47,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:radial-gradient(circle at 50% 0%, #ffffff 0%, var(--paper) 35%, #f7f2e9 100%);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  font-weight:300;
  line-height:1.65;
  overflow-x:hidden;
}
.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.23;z-index:0;background-image:radial-gradient(rgba(103,87,62,.09) .6px, transparent .7px);background-size:5px 5px;mix-blend-mode:multiply}
.site-header{position:fixed;top:0;left:0;right:0;height:72px;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px clamp(22px,4vw,56px);backdrop-filter:blur(8px);background:linear-gradient(to bottom,rgba(255,253,248,.80),rgba(255,253,248,.32),transparent);}
.mini-logo{font-family:'Parisienne',cursive;font-size:26px;color:var(--sage-dark);text-decoration:none;letter-spacing:.02em}
.language-switcher{display:flex;gap:12px;align-items:center;font-family:'Cormorant Garamond',serif;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:#606552}
.language-switcher button{border:0;background:transparent;color:inherit;cursor:pointer;padding:4px 0;font:inherit;opacity:.55}
.language-switcher button.active{opacity:1;border-bottom:1px solid var(--gold)}
.language-switcher span{height:16px;width:1px;background:#cfc8b9}
.floating-rsvp{position:fixed;right:28px;top:170px;z-index:18;writing-mode:vertical-rl;transform:rotate(180deg);background:var(--sage-dark);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.15em;font-family:'Cormorant Garamond',serif;font-weight:600;padding:24px 13px;border-radius:999px;box-shadow:0 14px 30px rgba(87,97,66,.22);font-size:14px}
.floral{position:absolute;pointer-events:none;z-index:1;user-select:none}.floral.fixed{position:fixed;opacity:.86}.top-left{top:0;left:0;width:min(38vw,390px)}.top-right{top:0;right:0;width:min(36vw,360px)}.left-mid{left:0;top:1180px;width:min(18vw,210px);opacity:.70}.right-mid{right:0;top:940px;width:min(19vw,230px);opacity:.68}.bottom-left{left:0;bottom:0;width:min(40vw,420px);opacity:.9}.bottom-right{right:0;bottom:0;width:min(42vw,430px);opacity:.9}
main{position:relative;z-index:3}.invitation-panel{min-height:100svh;display:grid;place-items:center;padding:120px 20px 90px}.hero-inner{text-align:center;max-width:720px;padding:45px 20px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--sage-dark);font-family:'Cormorant Garamond',serif;font-size:16px;margin:0 0 12px}.names{font-family:'Parisienne',cursive;font-size:clamp(90px,13vw,170px);line-height:.78;font-weight:400;color:#4f5848;margin:0;text-shadow:0 1px 0 rgba(255,255,255,.65)}.names span{display:block;font-family:'Cormorant Garamond',serif;font-size:.28em;font-style:italic;color:var(--sage);line-height:1.05;margin:8px 0}.ornament{width:88px;height:18px;margin:30px auto 22px;position:relative}.ornament:before,.ornament:after{content:"";position:absolute;top:50%;width:34px;height:1px;background:var(--gold)}.ornament:before{left:0}.ornament:after{right:0}.ornament{background:radial-gradient(circle at 50% 50%,var(--gold) 0 3px,transparent 4px)}.date{font-family:'Cormorant Garamond',serif;letter-spacing:.28em;font-size:clamp(26px,4vw,42px);color:#8daf80;margin:0 0 8px}.place{font-family:'Cormorant Garamond',serif;letter-spacing:.16em;text-transform:uppercase;font-size:18px;margin:0 0 34px;color:#4d5149}.primary-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--sage-dark);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-family:'Cormorant Garamond',serif;font-weight:600;border-radius:999px;min-width:238px;padding:14px 26px;box-shadow:0 16px 34px rgba(89,99,67,.20);transition:.25s ease}.primary-cta:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(89,99,67,.24)}
.watercolor-section{padding:0 20px 80px;text-align:center}.watercolor-wrap{max-width:1040px;margin:0 auto -10px}.carmelitas{width:min(100%,980px);filter:drop-shadow(0 20px 30px rgba(110,89,54,.06));}.intro-copy{max-width:620px;margin:0 auto;color:#4d5048}.intro-copy p:first-child{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:22px;line-height:1.45;margin:0 auto 20px;color:#55584e}.intro-copy h2,.timeline-section h2,.hotels-section h2,.final-cta h2{font-family:'Cormorant Garamond',serif;font-weight:500;text-transform:uppercase;letter-spacing:.18em;color:var(--sage-dark);font-size:clamp(25px,3.4vw,42px);margin:12px 0 5px}.text-link,.event-card a,.hotel-card a,.secondary-link{color:#6d7858;text-transform:uppercase;letter-spacing:.11em;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:14px;text-underline-offset:4px}.timeline-section{padding:70px 20px 85px;text-align:center}.timeline{position:relative;max-width:780px;margin:50px auto 0;padding:0 0 20px}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(var(--line),#7d7c6b,var(--line));}.day-label{position:relative;width:50%;padding:14px 62px 20px 0;text-align:right;font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.14em;color:#676b5d}.day-label span{display:block;font-size:22px}.day-label strong{display:block;font-weight:400;font-size:16px}.day-label.saturday{margin-top:46px}.timeline-item{position:relative;display:grid;grid-template-columns:1fr 46px 1fr;align-items:center;margin:22px 0}.timeline-item .dot{grid-column:2;width:14px;height:14px;border-radius:50%;background:#1c1c1a;margin:auto;z-index:2;box-shadow:0 0 0 9px var(--paper)}.timeline-item .icon{grid-column:2;grid-row:1;transform:translateY(-47px);width:44px;height:44px;margin:auto;border:1px solid #cac4b5;border-radius:50%;background:rgba(255,253,248,.92);display:grid;place-items:center;font-size:21px;z-index:2;filter:grayscale(.2)}.timeline-item.right .event-card{grid-column:3;text-align:left;margin-left:34px}.timeline-item.left .event-card{grid-column:1;text-align:right;margin-right:34px}.event-card:before{content:"";position:absolute;top:50%;width:38px;border-top:1px dashed #77766a}.timeline-item.right .event-card:before{right:100%}.timeline-item.left .event-card:before{left:100%}.event-card{position:relative;display:inline-block;min-width:220px}.event-card time{display:block;font-family:'Cormorant Garamond',serif;font-size:18px;letter-spacing:.08em;color:#222}.event-card h3{font-family:'Cormorant Garamond',serif;text-transform:uppercase;letter-spacing:.13em;font-weight:600;font-size:22px;line-height:1.1;margin:2px 0;color:#30342e}.event-card p{margin:2px 0 4px;color:#55584d;font-size:15px}.compact{margin:12px 0}.venue-link{font-size:15px;text-transform:none;letter-spacing:0;font-family:'Inter',sans-serif;text-decoration:none;border-bottom:1px solid #b7b49f}.hotels-section{padding:60px 20px 110px;text-align:center;position:relative}.hotels-section:before,.hotels-section:after{content:"";display:block;max-width:760px;margin:0 auto 30px;border-top:1px solid rgba(178,171,151,.45)}.hotels-section:after{margin:46px auto 0}.hotel-grid{max-width:1040px;margin:38px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.hotel-card{background:rgba(255,255,255,.48);border:1px solid rgba(204,196,177,.72);border-radius:3px;padding:26px 22px 24px;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.hotel-card h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:25px;line-height:1.08;margin:0;color:#3e4439}.hotel-card p{font-size:14px;margin:14px 0 18px;color:#53584d}.hotel-card.featured{border-color:rgba(111,127,88,.55);background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(247,250,241,.75))}.discount{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#76796e;margin-bottom:16px}.discount strong{display:block;color:#5f6e48;margin-top:4px;letter-spacing:.08em}.final-cta{position:relative;min-height:620px;padding:100px 20px 150px;display:grid;place-items:center;text-align:center;overflow:hidden}.cta-card{max-width:590px;position:relative;z-index:2;background:rgba(255,253,248,.58);padding:40px 30px;border-radius:2px}.heart{font-size:34px;color:var(--gold);margin:0}.cta-card p{margin:8px 0 28px}.secondary-link{display:block;margin-top:20px}.site-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;background:var(--sage-dark);color:#fff;padding:12px 24px;font-size:12px;letter-spacing:.04em;position:relative;z-index:4}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:translateY(0)}
@media (max-width: 820px){.site-header{height:64px;padding:14px 18px}.mini-logo{font-size:23px}.floating-rsvp{right:13px;top:auto;bottom:24px;writing-mode:horizontal-tb;transform:none;padding:11px 17px;font-size:12px;letter-spacing:.1em}.top-left{width:58vw}.top-right{width:52vw;opacity:.55}.left-mid,.right-mid{display:none}.invitation-panel{min-height:92svh;padding-top:120px}.names{font-size:96px}.watercolor-section{padding-top:10px}.intro-copy p:first-child{font-size:19px}.timeline:before{left:28px}.timeline{max-width:520px;margin-top:36px}.day-label{width:auto;text-align:left;padding:0 0 20px 72px}.day-label span{font-size:18px}.timeline-item{display:block;margin:28px 0 34px;padding-left:74px}.timeline-item .dot{position:absolute;left:21px;top:8px}.timeline-item .icon{position:absolute;left:6px;top:-4px;transform:none;width:44px;height:44px}.timeline-item.left .event-card,.timeline-item.right .event-card{margin:0;text-align:left}.event-card{display:block;min-width:0}.event-card:before{display:none}.event-card h3{font-size:20px}.hotel-grid{grid-template-columns:1fr;max-width:460px}.hotel-card{min-height:0}.bottom-left,.bottom-right{width:68vw}.site-footer{flex-direction:column;text-align:center}.hero-inner{padding-inline:0}}
@media (max-width: 480px){.language-switcher{gap:8px;font-size:13px}.hero-inner{padding-top:20px}.names{font-size:82px}.date{font-size:24px;letter-spacing:.2em}.place{font-size:14px}.carmelitas{width:112%;margin-left:-6%}.intro-copy h2,.timeline-section h2,.hotels-section h2,.final-cta h2{font-size:25px}.section-kicker{font-size:13px}.final-cta{min-height:560px}.cta-card{padding:30px 10px}}
