:root{--red:#350607;--gold:#d6ad67;--gold-light:#f1d9a4;--ivory:#fff6e6}*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;background:var(--red)}body{color:var(--ivory);font-family:Arial,Helvetica,sans-serif}.invitation-shell{min-height:100svh;overflow:hidden}.hero{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(24px,5vh,52px) 22px clamp(28px,6vh,56px);background:url('engagement-hero.png') center/cover no-repeat}.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(45,2,3,.28),rgba(54,4,5,.02) 25%,rgba(43,2,3,.23) 72%,rgba(34,1,2,.62)),radial-gradient(circle at center 46%,transparent 10%,rgba(45,0,2,.15) 76%)}button,a{-webkit-tap-highlight-color:transparent}.music-toggle{position:absolute;z-index:2;top:max(18px,env(safe-area-inset-top));right:16px;display:flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;border:1px solid rgba(242,216,163,.5);border-radius:999px;color:#f8e6c7;background:rgba(61,4,6,.48);backdrop-filter:blur(8px);cursor:pointer;font-size:9px;font-weight:700;letter-spacing:.08em;box-shadow:0 6px 22px rgba(31,0,0,.22)}.music-toggle svg,.map-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sound-on{display:none}.music-toggle.playing .sound-off{display:none}.music-toggle.playing .sound-on{display:block}.hero-top{text-align:center;text-transform:uppercase;letter-spacing:.22em}.hero-top p{margin:10px 0 0;font-size:10px;color:#f5ddb2}.double-happiness{width:45px;height:45px;margin:auto;display:grid;place-items:center;border:1px solid rgba(239,205,143,.72);transform:rotate(45deg);color:var(--gold-light);background:rgba(92,14,15,.42);box-shadow:0 0 24px rgba(245,197,105,.14)}.double-happiness span{transform:rotate(-45deg);font:23px Georgia,serif}.hero-copy{width:min(100%,600px);text-align:center;text-shadow:0 2px 18px rgba(31,0,0,.7)}.eyebrow{margin:0 0 16px;color:var(--gold-light);font-size:11px;letter-spacing:.25em;text-transform:uppercase}.couple{margin:0;font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:.87;letter-spacing:-.04em}.couple span{display:block;font-size:clamp(48px,13vw,82px);font-style:italic}.couple i{display:block;margin:11px auto 7px;font-size:27px;color:var(--gold);font-weight:400}.gold-rule{display:flex;align-items:center;gap:9px;width:160px;margin:25px auto 20px;color:var(--gold);font-size:8px}.gold-rule:before,.gold-rule:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold))}.gold-rule:after{transform:rotate(180deg)}.invited-label{margin:0 0 5px;color:#ead6b7;font-size:10px;letter-spacing:.34em;text-transform:uppercase}.guest-name{margin:0;color:#fff8eb;font-family:Georgia,serif;font-size:clamp(24px,6vw,36px);font-style:italic}.intro{margin:18px 0 0;color:#f1dfc7;font:14px/1.7 Georgia,serif}.hero-footer{display:flex;flex-direction:column;align-items:center;gap:15px;text-align:center}.event-summary{display:flex;flex-direction:column;gap:5px;color:#f3dfc0;font:12px/1.5 Georgia,serif;letter-spacing:.07em;text-shadow:0 2px 14px rgba(31,0,0,.8)}.event-summary span:last-child{color:var(--gold-light);font:700 10px Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase}.map-button{display:flex;align-items:center;gap:9px;min-height:48px;padding:0 23px;border:1px solid rgba(242,216,163,.72);border-radius:999px;color:var(--ivory);background:rgba(73,5,7,.58);backdrop-filter:blur(8px);text-decoration:none;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;box-shadow:0 8px 30px rgba(32,0,0,.25);transition:.25s}.map-button:hover{background:rgba(126,23,24,.76);transform:translateY(-2px)}.reveal{opacity:0;animation:reveal .9s cubic-bezier(.2,.75,.25,1) forwards}.reveal-1{animation-delay:.1s}.reveal-2{animation-delay:.3s}.reveal-3{animation-delay:.48s}.reveal-4{animation-delay:.68s}.reveal-5{animation-delay:.9s}@keyframes reveal{from{opacity:0;transform:translateY(15px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@media(min-width:760px){.hero{min-height:900px;max-height:1100px;background-position:center 54%}.hero-top p{font-size:11px}.intro{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
