:root {
  --sage-900:#314337;
  --sage-800:#405343;
  --sage-700:#52634f;
  --sage-600:#6f7c68;
  --sage-300:#bdc7b4;
  --cream:#fbf7ee;
  --cream-deep:#f2eadb;
  --gold:#b78b36;
  --gold-soft:#d5b56c;
  --ink:#283128;
  --shadow:0 18px 60px rgba(49,67,55,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--sage-900)}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#f5efe3 0%,#fbf7ee 45%,#efe6d4 100%);font-family:Georgia,'Times New Roman',serif;line-height:1.5}
button,input,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
.language-bar{position:sticky;top:0;z-index:50;background:rgba(64,83,67,.96);border-bottom:1px solid rgba(213,181,108,.5);backdrop-filter:blur(12px)}
.language-inner{min-height:49px;display:flex;align-items:center;justify-content:center;gap:.52rem;padding:.55rem 1rem;color:#f7f1e6;white-space:nowrap;overflow:auto}
.language-inner span{color:var(--gold-soft)}
.lang{border:0;background:transparent;color:inherit;padding:.2rem .15rem;opacity:.72;font-size:.98rem}
.lang:hover,.lang:focus-visible,.lang.active{opacity:1;color:#fff}.lang.active{text-decoration:underline;text-decoration-color:var(--gold-soft);text-underline-offset:.35rem}
main{width:min(1080px,100%);margin:0 auto;padding:clamp(14px,3vw,34px)}
.section-card{position:relative;background:rgba(251,247,238,.94);border:1px solid rgba(183,139,54,.46);box-shadow:var(--shadow);overflow:hidden}
.hero{min-height:850px;padding:clamp(28px,6vw,72px) clamp(20px,8vw,108px) 58px;text-align:center}
.hero:before{content:"";position:absolute;inset:10px;border:1px solid rgba(183,139,54,.25);pointer-events:none}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.96),transparent 44%),linear-gradient(135deg,rgba(183,139,54,.035),transparent 28%,rgba(82,99,79,.035));pointer-events:none}
.hero-tools,.hero-copy{position:relative;z-index:3}
.hero-tools{display:grid;grid-template-columns:1fr auto 1fr;align-items:start}
.monogram{grid-column:2;width:94px;height:94px;border:1.6px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;color:var(--sage-800);font-size:2rem;letter-spacing:-.15em;box-shadow:inset 0 0 0 7px rgba(183,139,54,.06)}
.monogram:before,.monogram:after{content:"❧";position:absolute;color:var(--gold);font-size:1.15rem}.monogram:before{transform:translate(-42px,27px) rotate(-32deg)}.monogram:after{transform:translate(42px,27px) rotate(32deg)}
.music-widget{justify-self:end;display:flex;align-items:center;gap:.75rem;text-align:left;color:var(--sage-700);min-width:178px}
.music-button{width:46px;height:46px;border-radius:50%;border:1px solid var(--gold);background:rgba(255,255,255,.4);color:var(--gold);font-size:1.35rem;display:grid;place-items:center;box-shadow:0 5px 15px rgba(49,67,55,.08)}
.music-title{font-size:.83rem;color:var(--gold);margin-bottom:.2rem}.music-progress-wrap{display:flex;align-items:center;gap:.45rem}.music-progress-wrap input{width:95px;accent-color:var(--sage-700)}#musicTime{font-size:.72rem;color:var(--sage-700)}
.mountains{position:absolute;z-index:1;left:0;right:0;bottom:0;height:56%;background:url('assets/mountains.svg') bottom center/cover no-repeat;opacity:.95}
.olive{position:absolute;z-index:2;width:clamp(145px,22vw,245px);opacity:.82;pointer-events:none}.olive-left{left:-35px;top:145px}.olive-right{right:-35px;bottom:15px}
.hero-copy{max-width:790px;margin:42px auto 0}.eyebrow{font-size:clamp(3.2rem,7.6vw,6.1rem);font-weight:400;line-height:.95;color:var(--sage-800);margin:0;letter-spacing:-.035em}
.gold-rule{display:flex;align-items:center;justify-content:center;color:var(--gold);margin:1.45rem auto 1.2rem;width:min(270px,65%);gap:.65rem}.gold-rule:before,.gold-rule:after{content:"";height:1px;background:var(--gold-soft);flex:1}.gold-rule.small{width:190px;margin:.85rem auto}
.poem{margin:0 auto;font-style:italic;font-size:clamp(1.05rem,2.2vw,1.45rem);color:#38443b;max-width:700px}.poem span{display:block}
.heart{color:var(--gold);font-size:1.25rem;margin:1rem 0}.with-joy{font-size:clamp(1.05rem,2vw,1.3rem);margin:.5rem 0 1rem}
h1{margin:0;color:var(--sage-900);font-weight:400;line-height:1.05}h1 span{display:block;font-size:clamp(3rem,7.2vw,5.8rem);letter-spacing:-.035em}h1 b{display:block;color:var(--gold);font-weight:400;font-style:italic;font-size:clamp(2.4rem,5vw,4rem);line-height:.9}
.invite-line{font-style:italic;font-size:clamp(1rem,2vw,1.27rem);margin:.75rem 0}.date{font-size:clamp(1.55rem,3.4vw,2.45rem);color:var(--sage-800);margin:.75rem 0 0}
.countdown{margin-top:22px;padding:31px 25px 35px;background:linear-gradient(180deg,rgba(230,232,218,.92),rgba(251,247,238,.96));text-align:center}.countdown h2,.section-heading h2,.contact h2{font-weight:400;color:var(--sage-800);margin:0}.countdown h2{font-size:clamp(1.75rem,4vw,2.7rem)}.countdown h2>span:first-child,.countdown h2>span:last-child,.section-heading>span{color:var(--gold);font-size:.75em}
.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:740px;margin:24px auto 0}.countdown-grid div{display:flex;flex-direction:column;padding:.2rem 1rem;border-right:1px solid rgba(183,139,54,.55)}.countdown-grid div:last-child{border-right:0}.countdown-grid strong{font-size:clamp(2.4rem,7vw,4.2rem);line-height:1;color:var(--sage-800);font-weight:400}.countdown-grid span{font-size:clamp(.8rem,2vw,1.1rem);margin-top:.45rem}
.events{margin-top:22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;padding:36px clamp(20px,5vw,55px);text-align:center}.event{padding:15px 20px;display:flex;flex-direction:column;align-items:center}.event-icon{color:var(--gold);font-size:3rem;line-height:1}.event-icon.glasses{transform:rotate(45deg)}.event h2{font-size:clamp(1.55rem,3.5vw,2.15rem);font-weight:400;color:var(--sage-800);margin:.45rem 0}.event time{font-size:1.55rem;color:var(--gold);margin-bottom:.3rem}.event p{font-size:1.05rem;margin:.2rem 0}.event em{margin-top:.2rem}.event-divider{width:1px;background:rgba(183,139,54,.45);display:grid;place-items:center;margin:5px 24px}.event-divider span{background:var(--cream);color:var(--gold);padding:9px 0}.text-link{font-size:.92rem;color:var(--sage-700);text-underline-offset:.25rem;margin-top:.55rem}
.rsvp{margin-top:22px;padding:40px clamp(20px,6vw,64px) 48px}.section-heading{display:flex;align-items:center;justify-content:center;gap:1rem;text-align:center;margin-bottom:28px}.section-heading h2{font-size:clamp(1.65rem,3.6vw,2.45rem)}.section-heading p{margin:.35rem 0 0;color:#586258}.section-heading.compact{margin-bottom:22px}.section-heading.compact h2{font-size:clamp(1.75rem,4vw,2.5rem)}
form{display:grid;grid-template-columns:1fr 1fr;gap:17px 20px;max-width:850px;margin:0 auto}.field{display:flex;flex-direction:column;gap:.4rem}.full{grid-column:1/-1}label,legend{color:var(--sage-800)}input[type=text],input:not([type]),input[type=email],input[type=tel],textarea,#guestName,#guestContact,#partner,#children{width:100%;border:1px solid rgba(183,139,54,.48);border-radius:8px;background:rgba(255,253,247,.82);padding:.78rem .9rem;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:var(--sage-700);box-shadow:0 0 0 3px rgba(82,99,79,.12)}textarea{resize:vertical}fieldset{border:1px solid rgba(183,139,54,.44);border-radius:10px;padding:16px 18px;min-width:0}fieldset legend{padding:0 .45rem;font-size:1.08rem}fieldset label{display:block;margin:.48rem 0;color:#3f4940}input[type=radio]{accent-color:var(--sage-700);margin-right:.35rem}.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:7px}.form-actions button{border-radius:999px;padding:.8rem 1.15rem;border:1px solid var(--sage-700);display:inline-flex;align-items:center;gap:.5rem;transition:.2s ease}.form-actions button:hover{transform:translateY(-1px)}.primary{background:var(--sage-800);color:#fff}.secondary{background:var(--gold);color:#fff;border-color:var(--gold)!important}.ghost{background:transparent;color:var(--sage-800)}.form-error,.copy-status{grid-column:1/-1;text-align:center;margin:0}.form-error{color:#9b3f34}.copy-status{color:var(--sage-700)}
.contact{margin-top:22px;padding:34px 20px 42px;background:linear-gradient(180deg,#fbf7ee,#f4ecdc)}.contact-list{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2rem}.contact-list a{text-decoration:none;color:var(--sage-800);font-size:1.05rem}.contact-list span{color:var(--gold);margin-right:.4rem}
footer{text-align:center;background:var(--sage-800);color:#f9f1df;padding:25px 20px 28px;margin-top:0;border-top:1px solid var(--gold)}footer p{margin:.1rem 0 0;font-size:clamp(1.5rem,4vw,2.25rem);color:var(--gold-soft)}.footer-heart{color:var(--gold-soft);font-size:1.5rem}
@media(max-width:760px){
  main{padding:12px}.hero{min-height:800px;padding:25px 18px 50px}.hero-tools{grid-template-columns:1fr auto}.monogram{grid-column:1;justify-self:start;width:73px;height:73px;font-size:1.6rem}.music-widget{grid-column:2;min-width:0}.music-title{display:none}.music-progress-wrap input{width:62px}.hero-copy{margin-top:44px}.olive{width:145px;opacity:.47}.olive-left{left:-42px;top:155px}.olive-right{right:-42px;bottom:50px}.poem span{display:inline}.poem span:after{content:" "}.countdown-grid{grid-template-columns:repeat(2,1fr);row-gap:18px}.countdown-grid div:nth-child(2){border-right:0}.countdown-grid div:nth-child(3),.countdown-grid div:nth-child(4){border-top:1px solid rgba(183,139,54,.38);padding-top:18px}.events{grid-template-columns:1fr;padding:25px 18px}.event-divider{height:1px;width:60%;margin:10px auto;background:rgba(183,139,54,.4)}.event-divider span{padding:0 10px}.rsvp{padding:32px 18px 40px}form{grid-template-columns:1fr}fieldset,.full,.form-actions,.form-error,.copy-status{grid-column:1}.contact-list{flex-direction:column;align-items:center}.language-inner{justify-content:flex-start;font-size:.9rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.form-actions button{transition:none}}
@media print{.language-bar,.music-widget,.form-actions,.text-link{display:none!important}body{background:#fff}main{padding:0;width:100%}.section-card{box-shadow:none;break-inside:avoid}.hero{min-height:auto}.rsvp form{display:none}footer{break-inside:avoid}}
