:root{--ink:#08050c;--plum:#26051f;--magenta:#850d48;--gold:#f4d67d;--gold-soft:#d9b85e;--cream:#fff4cd;--muted:#aa9b8f;--serif:'Cormorant Garamond',Georgia,serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ink);color:var(--cream)}body{font-family:var(--serif);overflow:hidden}button,a{font:inherit}button{cursor:pointer}.stars{position:fixed;inset:0;background:radial-gradient(circle at 12% 12%,#f8d37c 0 1px,transparent 2px),radial-gradient(circle at 78% 26%,#f8d37c 0 1px,transparent 2px),radial-gradient(circle at 52% 72%,#f8d37c 0 1px,transparent 2px),radial-gradient(circle at 24% 88%,#fff 0 1px,transparent 2px),radial-gradient(circle at 92% 84%,#f8d37c 0 1px,transparent 2px);background-size:230px 190px,310px 260px,370px 320px,280px 220px,420px 360px;opacity:.75;animation:twinkle 5s ease-in-out infinite alternate;pointer-events:none}.stars:after{content:'';position:absolute;inset:0;background-image:radial-gradient(ellipse at center,transparent 5%,rgba(107,0,65,.2) 55%,rgba(8,5,12,.92) 100%)}.orbit-hearts{position:fixed;inset:0;overflow:hidden;pointer-events:none;color:#9c1159;font-size:100px;opacity:.3}.orbit-hearts span{position:absolute;animation:drift 9s ease-in-out infinite}.orbit-hearts span:nth-child(1){left:3%;top:6%}.orbit-hearts span:nth-child(2){right:16%;top:12%;animation-delay:1s}.orbit-hearts span:nth-child(3){left:11%;bottom:14%;font-size:140px;animation-delay:2s}.orbit-hearts span:nth-child(4){right:2%;bottom:4%;font-size:160px;animation-delay:3s}.dedication,.universe{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:28px}.dedication-card{width:min(650px,92vw);min-height:380px;padding:58px 30px 44px;border:1px solid rgba(255,255,255,.16);outline:1px solid rgba(255,255,255,.06);outline-offset:6px;background:rgba(3,2,5,.68);text-align:center;box-shadow:0 0 100px rgba(138,0,75,.18),inset 0 0 80px rgba(255,255,255,.015);animation:cardIn 1s ease both}.eyebrow,.hint,.music-link{font-family:var(--mono);text-transform:uppercase;letter-spacing:.23em;font-size:9px;color:var(--muted)}.eyebrow{margin:0 0 20px}.dedication h1{margin:0;color:var(--gold);font-size:clamp(62px,10vw,104px);line-height:.75;font-style:italic;font-weight:600;text-shadow:0 0 26px rgba(244,214,125,.25)}.recipient{margin:23px 0;color:var(--gold);font-size:27px;font-style:italic;font-weight:500}.gold-button,.return-button{border:1px solid rgba(244,214,125,.7);border-radius:999px;background:rgba(20,13,10,.72);color:var(--gold);padding:10px 18px;font-size:13px;transition:.3s ease}.gold-button:hover,.return-button:hover{background:var(--gold);color:#1a0b12;box-shadow:0 0 28px rgba(244,214,125,.28);transform:translateY(-2px)}.hint{margin-top:18px;font-size:8px;letter-spacing:.16em}.universe{display:none;place-items:center;text-align:center;background:radial-gradient(circle at 50% 53%,rgba(255,190,37,.05),transparent 15%),rgba(0,0,0,.18)}.universe.active{display:grid;animation:fadeIn .8s ease both}.dedication.hidden{display:none}.close-button,.modal-close{position:absolute;right:24px;top:20px;background:none;border:0;color:var(--gold);font-size:32px;font-family:var(--serif)}.hanging-pendant{position:absolute;z-index:2;top:-8px;left:50%;width:58px;height:155px;transform:translateX(-50%);transform-origin:top center;animation:pendantSway 4.5s ease-in-out infinite}.pendant-thread{display:block;width:1px;height:82px;margin:0 auto;background:linear-gradient(#d8b45e,rgba(216,180,94,.05));box-shadow:0 0 6px rgba(244,214,125,.5)}.tulip{display:block;border:0;background:transparent;padding:0;font-size:40px;line-height:1;filter:hue-rotate(72deg) saturate(1.7) drop-shadow(0 0 10px rgba(115,224,255,.7));transform:rotate(5deg)}.universe-heading{position:absolute;top:15vh}.universe-heading .recipient{font-size:42px;margin:0 0 4px}.music-player{position:relative;display:inline-flex;align-items:center;gap:7px;color:var(--gold);border:1px solid rgba(244,214,125,.35);border-radius:999px;padding:7px 12px;text-transform:none;letter-spacing:.05em;font:10px var(--mono);overflow:hidden}.music-player #musicFrame{position:absolute;inset:0;width:100%;height:100%;opacity:.01;cursor:pointer}.solar-system{position:relative;width:min(610px,88vw);height:min(430px,58vh);margin-top:70px}.sun{position:absolute;left:50%;top:50%;width:74px;height:74px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#fff3a0,#e59a24 65%,#9e4c18);box-shadow:0 0 26px #f5bc47,0 0 80px rgba(245,188,71,.6);animation:pulse 3s ease-in-out infinite}.orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(244,214,125,.28);border-radius:50%;transform:translate(-50%,-50%) rotate(-16deg)}.orbit-one{width:94%;height:33%}.orbit-two{width:76%;height:56%;transform:translate(-50%,-50%) rotate(24deg)}.orbit-three{width:55%;height:82%;transform:translate(-50%,-50%) rotate(70deg)}.heart{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-108%);border:0;background:none;color:#ffe56b;font-size:61px;line-height:1;text-shadow:0 0 10px #ffd83c,0 0 34px #f4b92e;animation:heartBeat 1.7s ease-in-out infinite}.flower-ring{position:absolute;inset:0;animation:orbitSpin 22s linear infinite}.flower{position:absolute;display:grid;place-items:center;width:34px;height:34px;border:0;background:transparent;font-size:27px;filter:drop-shadow(0 0 8px currentColor);animation:bloom 4s ease-in-out infinite alternate}.flower:hover{transform:scale(1.35);filter:drop-shadow(0 0 15px currentColor)}.universe-footer{position:absolute;bottom:13vh;margin:0;font-size:14px;line-height:1.05}.universe-footer em{color:var(--gold);font-size:18px}.return-button{position:absolute;bottom:8vh;background:transparent;font-size:10px}.message-modal,.photo-modal{display:none;position:fixed;inset:0;z-index:5;place-items:center;padding:22px;background:rgba(2,1,5,.58);backdrop-filter:blur(5px)}.message-modal.open,.photo-modal.open{display:grid;animation:fadeIn .25s ease both}.message-card,.photo-card{position:relative;width:min(470px,90vw);padding:34px 38px 30px;border:1px solid rgba(244,214,125,.5);border-radius:15px;background:rgba(18,10,12,.96);box-shadow:0 0 40px rgba(244,214,125,.16);color:var(--cream);font-size:20px;line-height:1.2;font-style:italic}.photo-card{width:min(420px,90vw);padding:12px 12px 18px;text-align:center}.photo-card img{display:block;width:100%;max-height:68vh;object-fit:contain;border-radius:9px;filter:grayscale(1)}.photo-card p{margin:12px 0 0;color:var(--gold);font-size:16px}.message-card p{margin:0;text-align:center}.sparkle{display:block;margin-bottom:11px;color:var(--gold);text-align:center}.message-card .modal-close{top:4px;right:10px;font-size:25px}.manus-mark{position:fixed;z-index:4;right:17px;bottom:14px;color:#aaa;font:10px var(--mono);opacity:.75}@keyframes twinkle{to{opacity:1}}@keyframes drift{50%{transform:translate(12px,18px) rotate(9deg)}}@keyframes cardIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.08)}}@keyframes heartBeat{50%{transform:translate(-50%,-108%) scale(1.1)}}@keyframes bloom{50%{transform:translateY(-5px) rotate(6deg)}}@keyframes orbitSpin{to{transform:rotate(360deg)}}@keyframes pendantSway{0%,100%{transform:translateX(-50%) rotate(-3deg)}50%{transform:translateX(-50%) rotate(4deg)}}@media(max-width:600px){.dedication{padding:20px}.dedication-card{min-height:350px;padding:50px 18px 35px}.dedication h1{font-size:69px}.universe-heading{top:10vh}.solar-system{margin-top:75px;height:390px}.universe-footer{bottom:14vh}.return-button{bottom:8vh}.orbit-hearts{font-size:70px}.close-button{right:14px;top:10px}}
