:root{font-family:Montserrat,sans-serif;color:#f5f0e6;background:#142c25;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:Cormorant Garamond,serif;font-weight:500}h1{font-size:clamp(3.7rem,11vw,7rem);line-height:1;margin:15px 0}h1 span{color:#c8ad7f}h2{font-size:clamp(2.3rem,6vw,3.4rem);margin:12px 0 20px}h3{font-size:2rem;margin:8px}p{line-height:1.9;font-size:.91rem}.ornament{color:#c8ad7f;font-size:1.8rem;letter-spacing:12px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:.7rem;color:#c8ad7f}.photo-background{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;width:100%;height:100vh;height:100svh;background:radial-gradient(circle at 60% 35%,#395647,#0a1b16)}.background-slide{position:absolute;top:0;right:0;bottom:0;left:0;background-position:center;background-size:cover;opacity:0;transform:none;transition:opacity 1.5s}.background-slide.active{opacity:1;animation:none}@keyframes kenburns{0%{transform:scale(1.04)}to{transform:scale(1.2) translate(-1.5%)}}.opening,.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px}.opening{background:#10251cc9}.opening h2{font-size:3.2rem;margin:8px}.opening button,.glass form button,.primary-link{border:1px solid #c8ad7f;background:#c8ad7f;color:#142c25;padding:14px 22px;border-radius:50px;text-decoration:none;display:inline-flex;gap:10px;align-items:center;justify-content:center;font-weight:600;margin-top:20px}.hero{gap:8px}.hero>p{letter-spacing:2px;text-transform:uppercase}.scroll-hint{margin-top:55px;font-size:.72rem;letter-spacing:1px}.music-button{position:fixed;right:16px;top:16px;z-index:5;background:#10251cdd;border:1px solid #c8ad7f;color:#c8ad7f;border-radius:30px;padding:10px;display:flex;align-items:center;gap:5px}main{max-width:600px;margin:auto;padding:0 17px}.glass{text-align:center;margin:50px auto;padding:45px 24px;border:1px solid #c8ad7f6b;border-radius:160px 160px 16px 16px;background:#10251cd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 15px 50px #0003}.glass:nth-child(2n){border-radius:16px 16px 120px 120px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0}.countdown strong{display:block;font-family:Cormorant Garamond;font-size:2.7rem;color:#c8ad7f}.countdown small{font-size:.67rem;text-transform:uppercase}.event{margin:24px 0;padding:18px;border-top:1px solid #c8ad7f55}.event a{color:#142c25;background:#f5f0e6;border-radius:30px;padding:12px 20px;display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-size:.8rem}.gallery{display:flex;align-items:center;gap:8px}.gallery-image{flex:1;min-height:330px;background-position:center;background-size:cover;border:1px solid #c8ad7f;border-radius:150px 150px 10px 10px;background-color:#2e493e}.gallery button{background:none;color:#c8ad7f;border:0;padding:4px}.muted{font-size:.74rem;opacity:.7}.detail-buttons{display:grid;gap:12px}.detail-buttons button{background:transparent;border:1px solid #c8ad7f;color:#f5f0e6;border-radius:12px;padding:17px;display:flex;align-items:center;justify-content:center;gap:10px}.center-icon{color:#c8ad7f}.glass form{display:grid;text-align:left;gap:10px;margin:20px 0}.glass form label{font-size:.75rem}.glass input,.glass select{background:#f5f0e6;border:0;border-radius:6px;padding:13px;color:#142c25;width:100%}.glass form button{margin-top:10px}.scratch{height:145px;position:relative;display:grid;place-items:center;background:#f5f0e6;color:#142c25;border-radius:12px;overflow:hidden}.scratch strong{font-family:Cormorant Garamond;font-size:2rem}.scratch canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.scratch-reveal{position:absolute;bottom:5px;right:5px;font-size:.6rem;padding:5px 7px;border:0;border-radius:5px;background:#f5f0e6;color:#142c25}footer{text-align:center;padding:55px 15px 90px;font-size:.85rem}footer strong{font-family:Cormorant Garamond;font-size:1.4rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#000b;display:grid;place-items:center;padding:20px}.modal{position:relative;text-align:center;background:#142c25;border:1px solid #c8ad7f;border-radius:15px;padding:50px 30px;max-width:420px}.close{position:absolute;top:8px;right:14px;background:none;border:0;color:#fff;font-size:2rem}@media(max-width:360px){.glass{padding:35px 14px}.countdown strong{font-size:2.1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}.background-slide{background-position:center 32%;will-change:opacity}.hero{text-shadow:0 2px 22px #000a}@media(min-width:700px){.background-slide{background-position:center 38%}body{background:#0a1b16}}#root{isolation:isolate;min-height:100vh}.opening,.hero,main,footer{position:relative;z-index:1}.music-button{z-index:5}@supports (height: 100svh){.photo-background{height:100svh}}.background-slide{background-repeat:no-repeat}.photo-background{position:fixed!important;top:0!important;right:0!important;bottom:auto!important;left:0!important;width:100%!important;height:100vh!important;overflow:hidden;transform:none!important}@supports (height: 100lvh){.photo-background{height:100lvh!important}}.photo-background .background-slide{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-repeat:no-repeat;transform:none!important;animation:none!important;transition:opacity 1.5s ease}.scratch-date{margin:16px 0 4px}.scratch-instruction{font-size:.78rem;opacity:.9;margin-bottom:22px}.scratch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scratch-item{min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px}.scratch-caption{font-size:.67rem;font-weight:600;letter-spacing:2px;color:#c8ad7f}.scratch-circle{width:100%;max-width:138px;aspect-ratio:1;position:relative;display:grid;place-items:center;border-radius:50%;background:#f5f0e6;border:2px solid #c8ad7f;box-shadow:0 5px 25px #0005;overflow:hidden}.scratch-circle strong{font-family:Cormorant Garamond,serif;font-size:clamp(1.6rem,5vw,2.6rem);color:#142c25}.scratch-circle canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.scratch-finished{animation:scratch-pop .55s ease both}@keyframes scratch-pop{0%{transform:scale(.94)}60%{transform:scale(1.08)}to{transform:scale(1)}}@media(max-width:390px){.scratch-grid{gap:7px}.scratch-circle{border-width:1px}.scratch-caption{font-size:.6rem}}.opening{overflow:hidden}.opening-inner{display:flex;flex-direction:column;align-items:center;animation:welcome-in 1.1s cubic-bezier(.2,.7,.2,1) both}.opening-inner>*{animation:welcome-item .9s ease both}.opening-inner>:nth-child(1){animation-delay:.15s}.opening-inner>:nth-child(2){animation-delay:.35s}.opening-inner>:nth-child(3){animation-delay:.5s}.opening-inner>:nth-child(4){animation-delay:.65s}.opening-inner>:nth-child(5){animation-delay:.8s}.opening-inner>:nth-child(6){animation-delay:1s}.opening-exit{animation:opening-fade-out .75s ease-in forwards;pointer-events:none}.hero-enter>*{animation:welcome-item .95s ease both}.hero-enter>:nth-child(1){animation-delay:.12s}.hero-enter>:nth-child(2){animation-delay:.3s}.hero-enter>:nth-child(3){animation-delay:.48s}.hero-enter>:nth-child(4){animation-delay:.7s}.hero-enter>:nth-child(5){animation-delay:1s}@keyframes welcome-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes welcome-item{0%{opacity:0;transform:translateY(22px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes opening-fade-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.opening-inner,.opening-inner>*,.opening-exit,.hero-enter>*,.scratch-finished{animation:none!important}}.scratch-circle strong.scratch-month{font-family:Cormorant Garamond,serif;font-size:clamp(.95rem,3.5vw,1.6rem);letter-spacing:-.035em;white-space:nowrap}@media(max-width:390px){.scratch-circle strong.scratch-month{font-size:clamp(.88rem,3.35vw,1.2rem)}}
