@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Manrope:wght@400;500;600&display=swap');
:root{color-scheme:dark;--cream:#f8eddb;--gold:#e6c58d;--muted:#c1cbd7;--dawn:0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0d1a2c;color:var(--cream);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.7}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #f1d299;outline-offset:8px}button{touch-action:manipulation}.landscape{position:fixed;inset:0;z-index:-4;background:#182943 url('lake.jpg') center 52%/cover no-repeat;filter:brightness(.54) saturate(.7);transform:scale(1.04);transition:filter 2s}.colorwash{position:fixed;inset:0;z-index:-3;background:linear-gradient(180deg,rgba(8,17,34,.7),rgba(9,26,47,.12) 55%,rgba(8,20,37,.45));pointer-events:none}.colorwash:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#967b914d,#ebba8870 52%,#ddb2a94d);opacity:var(--dawn)}#particles{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}header{position:absolute;z-index:2;top:0;left:0;width:100%;padding:25px 5%;display:flex;align-items:center;justify-content:space-between}.monogram{font-family:Georgia,serif;font-size:38px;line-height:1}.monogram span{font-size:20px;color:var(--gold);vertical-align:top;margin-left:3px}.dedication,.eyebrow,.hero-foot,footer>span{font-size:12px;letter-spacing:.22em;font-weight:500}.dedication{margin-left:80px;color:#d3d7df}.sound{border:1px solid #ffffff30;background:#ffffff06;border-radius:40px;padding:9px 17px;font-size:12px;display:flex;gap:10px;align-items:center}.sound>span:first-child{font-size:19px;color:var(--gold)}section{position:relative;min-height:100svh;padding:100px 7%;display:flex;align-items:center;justify-content:center}.hero{text-align:center;min-height:100svh;padding-top:140px;padding-bottom:125px}.hero-content{margin-top:-15px}.eyebrow{color:var(--gold);margin:0 0 23px}.hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(100px,15vw,210px);line-height:1.05;letter-spacing:-.065em;font-weight:400;margin:0 0 22px;position:relative}.title-star{font-family:Georgia,serif;font-size:35px;position:absolute;top:12%;margin-left:25px;color:var(--gold)}.intro{color:#e0e3e9;font-size:18px;line-height:1.9;margin:0 0 37px}.primary{display:inline-flex;gap:25px;align-items:center;justify-content:center;border:1px solid #e6c58d66;border-radius:99px;background:#11243c59;backdrop-filter:blur(10px);padding:16px 26px;font-size:14px;transition:background .3s,transform .3s,border-color .3s}.primary:hover{background:#e6c58d20;transform:translateY(-3px);border-color:var(--gold)}.primary span{font-size:21px;color:var(--gold)}.hero-foot{position:absolute;bottom:30px;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;color:#c7d0dc;font-size:10px;letter-spacing:.17em}.hero-foot>a{font-size:26px;animation:drift 3s ease-in-out infinite}.wishes{flex-direction:column;min-height:110svh;padding-top:100px;padding-bottom:70px}.section-heading{text-align:center}h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(48px,6.5vw,88px);line-height:1.08;letter-spacing:-.035em;font-weight:400;margin:0 0 26px}h2 em{font-weight:400;color:#f0d3a7}.section-heading>p:last-child{font-size:14px;color:#d3dae4;line-height:1.9}.constellation{position:relative;height:370px;width:min(850px,100%);margin-top:16px}.wish{position:absolute;display:flex;flex-direction:column;align-items:center;gap:9px;border:0;background:none;padding:12px;font-size:13px;color:#e3e7ef;transition:color .4s}.orb{width:54px;height:54px;display:grid;place-items:center;font-size:35px;color:#f4dca8;text-shadow:0 0 20px #ffd99c,0 0 45px #ffcf85;animation:glow 4s ease-in-out infinite;transition:transform .4s}.wish:hover .orb{transform:scale(1.35)}.wish:nth-child(1){left:4%;top:24%}.wish:nth-child(2){left:35%;top:0}.wish:nth-child(3){right:4%;top:20%}.wish:nth-child(4){left:19%;bottom:0}.wish:nth-child(5){right:22%;bottom:4%}.wish:nth-child(6){left:45%;top:40%}.wish:nth-child(even) .orb{animation-delay:-2s}.wish.opened .orb{color:#fff;font-size:23px;text-shadow:0 0 22px #fff}.wish.opened>span:last-child:after{content:' ✓';color:var(--gold)}.wish-count{font-size:12px;color:#c4cedb;letter-spacing:.04em;margin-top:30px}.letter{text-align:center;background:linear-gradient(180deg,transparent,#0a182c9e 45%,transparent);min-height:110svh}.letter-inner{max-width:640px}.letter h2{margin-bottom:40px}.letter-copy p{font-size:18px;line-height:2;color:#e0e5ee;margin:0 0 28px}.letter-copy .handwritten{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-style:italic;color:#ebceaa}.little-star{font-size:38px;color:var(--gold)}.finale{text-align:center;min-height:110svh;padding-bottom:130px}.final-content>p:not(.eyebrow){font-size:16px;line-height:2}.final-content .love{font-family:'Cormorant Garamond',Georgia,serif;font-size:38px!important;font-style:italic;margin:25px 0}.finale footer{position:absolute;bottom:24px;left:6%;right:6%;color:#e2dfdf}.finale footer>span{font-size:10px}details{font-size:12px;margin-top:15px;opacity:.7}summary{cursor:pointer;display:inline-block}details a{text-decoration:underline}dialog{background:linear-gradient(145deg,#1c3048f7,#0e2038fa);color:var(--cream);border:1px solid #e9d2a337;border-radius:8px;padding:46px 35px 35px;max-width:480px;width:calc(100% - 36px);text-align:center;box-shadow:0 30px 120px #0008}dialog::backdrop{background:#060d1cc9;backdrop-filter:blur(9px)}dialog[open]{animation:appear .45s ease}.close{position:absolute;right:15px;top:8px;font-size:29px;border:0;background:none;padding:3px 12px;color:#c8d4e4}.dialog-star{display:block;font-size:40px;color:var(--gold);margin-bottom:20px}dialog .eyebrow{font-size:10px;margin-bottom:14px}h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:43px;line-height:1.1;font-weight:400;margin:0 0 23px}#wish-text{font-size:16px;line-height:1.9;margin:0 0 30px;color:#dce3eb}.entrance{animation:appear 1.5s both}.entrance:nth-child(2){animation-delay:.15s}.entrance:nth-child(3){animation-delay:.3s}.entrance:nth-child(4){animation-delay:.45s}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.2s,transform 1.2s}.reveal.visible{opacity:1;transform:none}.ripple{position:fixed;left:50%;top:50%;width:30px;height:30px;pointer-events:none;border:1px solid #f7dfa9;box-shadow:0 0 50px #eccca944;border-radius:50%;opacity:0;z-index:5}.ripple.active{animation:ripple 2s ease-out}.resting main,.resting header .dedication{visibility:hidden}.resting{overflow:hidden}.resting .landscape{filter:brightness(.9) saturate(.8)}#return{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid #ffffff55;border-radius:40px;background:#11243c88;backdrop-filter:blur(10px);padding:14px 23px;font-size:14px}body.begun .landscape{filter:brightness(.66) saturate(.85)}@keyframes appear{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{50%{opacity:.6;filter:brightness(.8)}}@keyframes drift{50%{transform:translateY(8px)}}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}100%{transform:translate(-50%,-50%) scale(65);opacity:0}}@media(max-width:600px){header{padding:23px 6%}.dedication{display:none}.sound{padding:7px 12px}.hero h1{font-size:126px}.title-star{font-size:26px;margin-left:13px}.eyebrow{font-size:10px;letter-spacing:.19em}.intro{font-size:16px}.hero-foot{justify-content:center}.hero-foot span{display:none}.hero-foot a{font-size:25px}.hero{padding-top:130px}.constellation{height:400px;margin-top:25px;width:100%}.wish{font-size:12px;padding:7px}.wish:nth-child(1){left:0;top:6%}.wish:nth-child(2){left:auto;right:6%;top:0}.wish:nth-child(3){right:0;top:43%}.wish:nth-child(4){left:0;bottom:20%}.wish:nth-child(5){right:13%;bottom:0}.wish:nth-child(6){left:33%;top:26%}.wish-count{font-size:11px;text-align:center}.letter-copy p{font-size:16px}.letter-copy .handwritten{font-size:27px}.final-content>p:not(.eyebrow){font-size:14px}.finale footer>span{font-size:9px;letter-spacing:.1em}.landscape{background-position:53% center}.primary{padding:14px 22px}.letter,.wishes{min-height:100svh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
