:root{--serif:'Lora',Georgia,serif}
body{font-family:'Be Vietnam Pro',Arial,sans-serif}
h1,h2{letter-spacing:-.045em;line-height:1.18}
.gate-star,.title-star,.intro-faces>span,.round-link>span{display:none}
.hero h1{font-size:clamp(54px,7.7vw,101px)}
.hero-sub span{padding:0 4px}
.modal-close{font-size:11px;top:7px;right:12px;width:50px}
.music{display:flex;align-items:center;gap:10px;width:auto;min-height:46px;height:auto;padding:10px 15px;background:#fffcf5;box-shadow:0 4px 18px #343d301c;bottom:90px;border-radius:30px}
.music-label{font-size:10px;white-space:nowrap}
.music-bars{display:flex;align-items:center;justify-content:center;gap:3px;height:24px;width:28px}
.music-bars i{display:block;width:3px;height:5px;border-radius:3px;background:#a9b388;transform-origin:center;transition:height .2s}
.music-bars i:nth-child(2){background:#d993a5}.music-bars i:nth-child(3){background:#ba9ed6}.music-bars i:nth-child(4){background:#d6aa58}.music-bars i:nth-child(5){background:#79b7bd}
.music.is-playing .music-bars i{height:22px;animation:equalizer .85s ease-in-out infinite alternate}
.music.is-playing .music-bars i:nth-child(2){animation-delay:-.35s;animation-duration:.7s}.music.is-playing .music-bars i:nth-child(3){animation-delay:-.6s;animation-duration:.95s}.music.is-playing .music-bars i:nth-child(4){animation-delay:-.15s;animation-duration:.6s}.music.is-playing .music-bars i:nth-child(5){animation-delay:-.45s}
@keyframes equalizer{0%{transform:scaleY(.22);opacity:.55}50%{transform:scaleY(.65);opacity:1}100%{transform:scaleY(1);opacity:.8}}
.flames{display:flex;justify-content:center;gap:29px;padding:0 0 8px;letter-spacing:0}
.flames i{display:block;width:11px;height:21px;background:#e6af62;border-radius:60% 40% 55% 45%;transform:rotate(10deg);box-shadow:0 0 16px #e9b25d65}
.cake-base{display:block;width:178px;height:18px;background:#d8b5aa;border-radius:0 0 20px 20px}
.gift-box{display:block;position:relative;width:65px;height:58px;background:#ddbab4;border-radius:4px;margin:12px auto 20px;box-shadow:0 5px 10px #343d3012}
.gift-box:before{content:'';position:absolute;left:-4px;top:0;width:73px;height:13px;background:#cba39c;border-radius:3px}
.gift-box:after{content:'';position:absolute;left:27px;top:0;width:11px;height:58px;background:#a5af88}
.compare-frame:after{width:3px;height:100%;border:0;border-radius:0;background:#fffcf5;box-shadow:0 0 0 1px #343d3020}
.signature{line-height:1.5}.letter h2{line-height:1.18}
@media(max-width:500px){.hero h1{font-size:51px}.gate h1{font-size:39px}.section h2{font-size:41px}.hero-sub{line-height:1.9}.hand,.scribble{line-height:1.6}.music{right:14px;bottom:80px}.music-label{font-size:9px}.letter{padding-inline:23px}.signature{font-size:26px}}
@media(prefers-reduced-motion:reduce){.music.is-playing .music-bars i{animation:none;opacity:1}.music.is-playing .music-bars i:nth-child(even){height:12px}}
.comparison .compare-now{object-fit:cover}
.invitation-film{margin:30px 0;border-radius:4px;overflow:hidden;background:#e9e3d7}
.invitation-film video{display:block;width:100%;max-height:70svh;object-fit:contain;background:#e9e3d7}
dialog .thanks-photo{width:100%;height:auto;max-height:40svh;object-fit:contain;margin:0 auto 25px;border-radius:4px}
.guest-grid{gap:12px 10px;padding:8px 3px 12px}
.guest-grid button{position:relative;will-change:translate;animation:guest-drift 4.4s ease-in-out infinite;box-shadow:0 5px 13px #343d3009;transition:background .25s,box-shadow .25s,transform .25s}
.guest-grid button:nth-child(3n+1){background:#f3ddd980;animation-delay:-.7s}
.guest-grid button:nth-child(3n+2){background:#e7e0f080;animation-delay:-2.1s;animation-duration:5.1s}
.guest-grid button:nth-child(3n){background:#e1e8d580;animation-delay:-3.4s;animation-duration:4.7s}
.guest-grid button:nth-child(even){animation-direction:reverse}
.guest-grid button:hover,.guest-grid button:focus-visible{animation-play-state:paused;box-shadow:0 8px 18px #343d3018;transform:rotate(-2deg)}
.guest-grid button[aria-pressed=true]{animation-play-state:paused;background:var(--ink);box-shadow:0 7px 20px #343d3025;transform:rotate(-2deg) scale(1.04)}
@keyframes guest-drift{0%,100%{translate:0 3px;rotate:-1deg}50%{translate:0 -5px;rotate:1deg}}
.intro{isolation:isolate;overflow:hidden;background:#30392f}
.intro:not([hidden]){animation:intro-colors 4.8s ease-in-out infinite}
.intro:before,.intro:after{content:'';position:absolute;inset:-25%;z-index:-1;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at 28% 35%,#d18fa050,transparent 48%),radial-gradient(ellipse at 75% 65%,#c3ac5c40,transparent 45%);opacity:.5}
.intro:not([hidden]):before{animation:intro-lights 2.4s ease-in-out infinite alternate}
.intro:after{background:radial-gradient(ellipse at 70% 25%,#a593d357,transparent 45%),radial-gradient(ellipse at 20% 80%,#8ac6ba40,transparent 48%)}
.intro:not([hidden]):after{animation:intro-lights 2.4s 1.2s ease-in-out infinite alternate-reverse}
.intro:not([hidden]) #intro-line{animation:intro-letter-glow 2.4s ease-in-out infinite;text-shadow:0 0 26px #e9c7c533}
.intro-faces{position:relative}
.intro:not([hidden]) .intro-faces img{filter:drop-shadow(0 0 20px #e9c7c52e)}
@keyframes intro-colors{0%,100%{background-color:#30392f}33%{background-color:#443448}66%{background-color:#2f3b4d}}
@keyframes intro-lights{from{opacity:.25;transform:translate(-3%,-2%) scale(.95)}to{opacity:.85;transform:translate(3%,2%) scale(1.08)}}
@keyframes intro-letter-glow{0%,100%{color:#fff4de;text-shadow:0 0 14px #e9c7c526}50%{color:#f0c6d9;text-shadow:0 0 35px #e9c7c570}}
@media(max-width:500px){.guest-grid{gap:11px 8px}.guest-grid button{min-height:49px}}
@media(prefers-reduced-motion:reduce){.guest-grid button,.intro:not([hidden]),.intro:not([hidden]):before,.intro:not([hidden]):after,.intro:not([hidden]) #intro-line{animation:none!important}.guest-grid button{will-change:auto}.intro:before,.intro:after{opacity:.35}}
.guest-grid button:nth-child(n){background:transparent;box-shadow:none;animation:none;transform:none;will-change:auto;border:0;padding:0}
.guest-name{display:grid;place-items:center;width:100%;min-height:49px;padding:12px 5px;border:1px solid #bfc4b1;border-radius:3px;background:#f3ddd980;box-shadow:0 5px 13px #343d3009;animation:guest-drift 4.4s ease-in-out infinite;pointer-events:none}
.guest-grid button:nth-child(3n+1) .guest-name{animation-delay:-.7s}
.guest-grid button:nth-child(3n+2) .guest-name{background:#e7e0f080;animation-delay:-2.1s;animation-duration:5.1s}
.guest-grid button:nth-child(3n) .guest-name{background:#e1e8d580;animation-delay:-3.4s;animation-duration:4.7s}
.guest-grid button:nth-child(even) .guest-name{animation-direction:reverse}
.guest-grid button:hover .guest-name,.guest-grid button:focus-visible .guest-name{animation-play-state:paused;box-shadow:0 8px 18px #343d3018}
.guest-grid button[aria-pressed=true] .guest-name{animation-play-state:paused;background:var(--ink);color:var(--paper);box-shadow:0 7px 20px #343d3025}
@media(prefers-reduced-motion:reduce){.guest-name{animation:none!important}}
.special-guest-toggle{display:block;margin:2px auto 12px;font-family:var(--serif);font-style:italic;font-size:18px;text-decoration-color:#adb393}
.special-guest-field{max-width:360px;margin:0 auto 20px;text-align:left;padding:18px;background:#e9e1ed65;border:1px solid #d6cbdc;border-radius:5px}
.special-guest-field label{display:block;font-size:12px;margin-bottom:9px}
.special-guest-field input{width:100%;min-height:49px;padding:12px;border:1px solid #b9bda9;background:#fffcf5;border-radius:3px;font-size:16px;color:var(--ink)}
.special-guest-field small{display:block;font-size:11px;margin-top:9px;color:var(--muted)}
