.nightsky-tpl{--ns-bg-top:#0b1426;--ns-bg-mid:#1a1d3a;--ns-bg-bot:#2d1b3d;--ns-aurora:#78dcc80f;--ns-aurora-pink:#dc64b40d;--ns-ink:#f7eddf;--ns-soft:#b8a4d4;--ns-gold:#fbd97f;--ns-glass:#fff8dc0f;color:var(--ns-ink);background:radial-gradient(ellipse at 50% 100%, var(--ns-bg-bot) 0%, var(--ns-bg-mid) 40%, var(--ns-bg-top) 100%);min-height:100vh;font-family:Fraunces,Noto Serif Georgian,serif;position:relative;overflow-x:hidden}.nightsky-tpl.is-sealed{height:100vh;overflow:hidden}.nightsky-tpl:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 30% at 50% 95%, var(--ns-aurora) 0%, transparent 60%), radial-gradient(ellipse 60% 25% at 70% 85%, var(--ns-aurora-pink) 0%, transparent 60%);filter:blur(20px);animation:16s ease-in-out infinite alternate auroraDrift;position:fixed;inset:0}@keyframes auroraDrift{0%{opacity:.8;transform:translate(-2%)scale(1)}to{opacity:1;transform:translate(3%)scale(1.05)}}.starfield{z-index:1;pointer-events:none;position:fixed;inset:0}.star{border-radius:50%;animation:ease-in-out infinite alternate twinkleStar;position:absolute}@keyframes twinkleStar{0%{opacity:.3;transform:scale(.85)}to{opacity:1;transform:scale(1.15)}}.nightsky-tpl .moon{z-index:2;filter:drop-shadow(0 0 40px #fff8dc59);width:130px;height:130px;animation:14s ease-in-out infinite alternate moonFloat;position:fixed;top:8vh;right:8vw}@keyframes moonFloat{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.nightsky-tpl .cosmic-scene{z-index:5;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:2rem;transition:opacity 1s,transform 1.2s;display:flex;position:fixed;inset:0}.nightsky-tpl.is-open .cosmic-scene{opacity:0;pointer-events:none;transform:scale(.8)translateY(-30px)}.nightsky-tpl .constellation-wrap{aspect-ratio:10/8;width:min(90vw,600px);margin-bottom:2rem;position:relative}.constellation{width:100%;height:100%;position:absolute;inset:0}.constellation circle{filter:drop-shadow(0 0 2px #fff8dc)}.nightsky-tpl .cosmic-names{font-variation-settings:"opsz" 96;letter-spacing:.01em;opacity:0;background:linear-gradient(180deg, #fff8dc 0%, var(--ns-gold) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:clamp(1.6rem,3.5vw,2.4rem);font-style:italic;animation:1.2s ease-out .4s forwards cosmicNamesIn}@keyframes cosmicNamesIn{0%{opacity:0;letter-spacing:.5em;transform:translateY(15px)}to{opacity:1;letter-spacing:.01em;transform:none}}.nightsky-tpl .wish-trigger{color:var(--ns-ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fff8dc14;border:1px solid #fff8dc40;border-radius:999px;align-items:center;gap:1rem;padding:1rem 2rem;font-family:Fraunces,serif;font-size:1.1rem;font-style:italic;transition:transform .25s,box-shadow .25s,background .25s;display:inline-flex;position:relative;box-shadow:0 0 20px #fff8dc26,inset 0 0 20px #fff8dc0f}.nightsky-tpl .wish-trigger:hover{background:#fff8dc26;transform:scale(1.05);box-shadow:0 0 40px #fff8dc4d}.nightsky-tpl .wish-trigger:active{transform:scale(.97)}.nightsky-tpl .wish-trigger .label-mono{letter-spacing:.32em;text-transform:uppercase;color:var(--ns-soft);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:.62rem;font-style:normal;display:block}.nightsky-tpl .wish-trigger .sparkle-icon{color:var(--ns-gold);font-size:1.4rem;animation:2s ease-in-out infinite sparkleBob}@keyframes sparkleBob{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.2)rotate(45deg)}}.nightsky-tpl .cosmic-hint{letter-spacing:.4em;text-transform:uppercase;color:var(--ns-soft);opacity:.7;margin-bottom:1.5rem;font-family:JetBrains Mono,monospace;font-size:.62rem}.shooting-star-wrap{z-index:4;pointer-events:none;position:fixed;inset:0;overflow:hidden}.shooting-star{background:#fff;border-radius:50%;width:4px;height:4px;animation:1.4s cubic-bezier(.4,0,.6,1) forwards shoot;position:absolute;top:-10px;left:-10px;box-shadow:0 0 12px 4px #fff5c8e6}.shooting-star:after{content:"";transform-origin:100%;background:linear-gradient(90deg,#0000 0%,#fff5c8f2 70%,#fff 100%);width:120px;height:1px;position:absolute;top:50%;right:0;transform:translateY(-50%)rotate(180deg)}.shooting-star.delay-1{animation-delay:.4s;top:-10px;left:40%}.shooting-star.delay-2{animation-delay:.8s;top:5%;left:-10px}@keyframes shoot{0%{opacity:1;transform:translate(0)rotate(35deg)}to{opacity:0;transform:translate(110vw,80vh)rotate(35deg)}}.nightsky-tpl .invitation{z-index:5;opacity:0;pointer-events:none;transition:opacity 1.2s 1.2s,transform 1.4s cubic-bezier(.22,1,.36,1) 1.2s;position:relative;transform:translateY(30px)}.nightsky-tpl.is-open .invitation{opacity:1;pointer-events:auto;transform:none}.nightsky-tpl .hero{text-align:center;place-items:center;min-height:100vh;padding:7rem 1.5rem 4rem;display:grid;position:relative}.nightsky-tpl .hero-eyebrow{letter-spacing:.4em;text-transform:uppercase;color:var(--ns-soft);align-items:center;gap:1rem;margin-bottom:2rem;font-family:JetBrains Mono,monospace;font-size:.7rem;display:inline-flex}.nightsky-tpl .hero-eyebrow:before,.nightsky-tpl .hero-eyebrow:after{content:"✦";color:var(--ns-gold)}.nightsky-tpl .hero-names{font-family:var(--ttl-font,"Fraunces", "Noto Serif Georgian", serif);letter-spacing:-.02em;font-variation-settings:"opsz" 144;background:linear-gradient(180deg, #fff8dc 0%, var(--ns-gold) 60%, #c89c4a 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px #ffd76440);-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:clamp(3.5rem,11vw,8rem);font-style:italic;line-height:.95}.nightsky-tpl .hero-amp{-webkit-text-fill-color:var(--ns-gold);background:0 0;margin:.1em 0;font-size:.5em;display:block}.nightsky-tpl .hero-date{letter-spacing:.35em;text-transform:uppercase;color:var(--ns-soft);font-family:JetBrains Mono,monospace;font-size:.85rem}.nightsky-tpl .hero-date-script{color:var(--ns-ink);font-variation-settings:"opsz" 96;opacity:.85;margin-top:.4rem;font-family:Fraunces,serif;font-size:1.6rem;font-style:italic}.nightsky-tpl .hero-ornament{color:var(--ns-gold);align-items:center;gap:.5rem;margin:2rem 0 1rem;display:inline-flex}.nightsky-tpl .hero-ornament .ln{background:currentColor;width:60px;height:1px}.nightsky-tpl .section{text-align:center;max-width:720px;margin:0 auto;padding:5rem 1.5rem}.nightsky-tpl .section-card{background:var(--ns-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #fff8dc1f;border-radius:18px;padding:3rem 2rem;box-shadow:0 30px 80px -20px #0006,inset 0 0 30px #fff8dc08}.nightsky-tpl .section-num{letter-spacing:.3em;text-transform:uppercase;color:var(--ns-gold);margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:.7rem}.nightsky-tpl .section h2{font-variation-settings:"opsz" 96;background:linear-gradient(180deg, #fff8dc 0%, var(--ns-gold) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-family:Fraunces,Noto Serif Georgian,serif;font-size:clamp(2rem,4vw,2.6rem);font-style:italic}.nightsky-tpl .section p{color:var(--ns-ink);opacity:.9;font-family:Fraunces,serif;font-size:1.05rem;line-height:1.7}.nightsky-tpl .section .venue-name{color:var(--ns-gold);font-variation-settings:"opsz" 60;margin-bottom:.4rem;font-size:1.4rem;font-style:italic}.nightsky-tpl .section a{background:var(--ns-gold);color:var(--ns-bg-top);letter-spacing:.25em;text-transform:uppercase;border-radius:999px;margin-top:1.5rem;padding:.6rem 1.6rem;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600;transition:background .2s,transform .2s;display:inline-block}.nightsky-tpl .section a:hover{background:#fff8dc;transform:scale(1.05)}.nightsky-tpl .countdown-section{text-align:center;padding:5rem 1.5rem}.nightsky-tpl .countdown-section .section-num{letter-spacing:.3em;text-transform:uppercase;color:var(--ns-gold);margin-bottom:2rem;font-family:JetBrains Mono,monospace;font-size:.7rem}.nightsky-tpl .countdown .countdown-value{font-variation-settings:"opsz" 144;background:linear-gradient(180deg, #fff8dc 0%, var(--ns-gold) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Fraunces,serif;font-size:clamp(3rem,6vw,4.5rem);font-style:italic}.nightsky-tpl .countdown .countdown-label{color:var(--ns-soft);font-family:JetBrains Mono,monospace}.nightsky-tpl .schedule{gap:0;max-width:480px;margin:2rem auto 0;display:grid}.nightsky-tpl .schedule-row{border-bottom:1px dashed #fff8dc26;grid-template-columns:80px 1fr;align-items:baseline;padding:.85rem 0;display:grid}.nightsky-tpl .schedule-time{letter-spacing:.15em;color:var(--ns-gold);text-align:left;font-family:JetBrains Mono,monospace;font-size:.85rem}.nightsky-tpl .schedule-label{text-align:left;font-variation-settings:"opsz" 60;font-size:1.05rem;font-style:italic}.nightsky-tpl .gallery-wrap{padding:4rem 1rem}.nightsky-tpl .gallery{grid-template-columns:repeat(2,1fr);gap:.75rem;max-width:1200px;margin:0 auto;display:grid}@media (min-width:760px){.nightsky-tpl .gallery{grid-template-columns:repeat(3,1fr)}}.nightsky-tpl .gallery img{aspect-ratio:1;object-fit:cover;filter:brightness(.85)saturate(.8);border-radius:12px;width:100%;transition:transform .6s cubic-bezier(.22,1,.36,1),filter .6s}.nightsky-tpl .gallery>div:hover img{filter:brightness()saturate();transform:scale(1.04)}.nightsky-tpl .rsvp-section .section-card{background:#fff8dc14}.nightsky-tpl .rsvp{color:var(--ns-ink)}.nightsky-tpl .rsvp .rsvp-label{color:var(--ns-soft)}.nightsky-tpl .rsvp .rsvp-input{color:var(--ns-ink);border-bottom-color:#fff8dc4d}.nightsky-tpl .rsvp .rsvp-input::placeholder{color:var(--ns-soft)}.nightsky-tpl .rsvp .rsvp-input:focus{border-bottom-color:var(--ns-gold)}.nightsky-tpl .rsvp .rsvp-choice-btn{color:var(--ns-ink);border-color:#fff8dc40;border-radius:12px}.nightsky-tpl .rsvp .rsvp-choice-btn.is-active{background:var(--ns-gold);border-color:var(--ns-gold);color:var(--ns-bg-top)}.nightsky-tpl .rsvp .rsvp-guest-btn{color:var(--ns-ink);border-color:#fff8dc40;border-radius:8px}.nightsky-tpl .rsvp .rsvp-guest-btn.is-active{background:var(--ns-gold);color:var(--ns-bg-top)}.nightsky-tpl .rsvp-submit{background:var(--ns-gold);color:var(--ns-bg-top);border-radius:999px}.nightsky-tpl .rsvp-submit:not(:disabled):hover{background:#fff8dc}.nightsky-tpl .credit{text-align:center;letter-spacing:.3em;text-transform:uppercase;color:var(--ns-soft);padding:3rem 1rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.nightsky-tpl .audio-toggle{color:var(--ns-ink);background:#fff8dc14;border-color:#fff8dc33}
