/* Pearlescent light, slow gradients and deliberate movement. */
.hero{background:linear-gradient(125deg,#052f43,#085b65 40%,#16888c 72%,#123f51);background-size:220% 220%;animation:tide-gradient 24s ease-in-out infinite alternate}.hero h2 i{background:linear-gradient(105deg,#b9eade,#f1e5c8,#9cdacb);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:pearl-text 12s linear infinite alternate}.hero::after{content:'';position:absolute;inset:auto -10% -80px;height:120px;border-radius:50%;background:#f3f4eb;z-index:1;pointer-events:none}.hero-art{perspective:900px}.hero-arch{transition:transform 1s cubic-bezier(.2,.7,.2,1),box-shadow 1s}.hero-art:hover .hero-arch{box-shadow:0 30px 75px #01253270}.hero-quick-actions{display:flex;align-items:center;gap:18px;margin-top:22px;flex-wrap:wrap}.hero-calendar{color:#e6f3e8;border:1px solid #a7d7c855;background:#edfff00a;border-radius:40px;padding:12px 19px;font-size:9px;letter-spacing:.11em;min-height:44px;backdrop-filter:blur(10px)}.hero-calendar span{padding-left:14px}.hero-wishes{font-size:9px;letter-spacing:.12em;color:#dcdfca;border-bottom:1px solid #d5ab8b5c;padding:10px 0}.intro{background:radial-gradient(ellipse at 10% 70%,#c4e5dc90,transparent 60%),linear-gradient(130deg,#f4f3e8,#e1efea 60%,#f3e8dc)}.celebration{background:linear-gradient(145deg,#043746,#0c6470 52%,#194c58);background-size:200% 200%;animation:tide-gradient 28s ease-in-out infinite alternate}.event-grid{border-radius:28px;background:linear-gradient(115deg,#b5ead90c,#f3dbbd08);border:1px solid #bee2d819;margin:25px 0;padding-left:5%;padding-right:5%}.solid-btn,.outline-btn,.open-btn,.hero-calendar,#send-wish{transition:transform .35s ease,box-shadow .35s ease,background .35s ease;position:relative;overflow:hidden}.solid-btn:hover,.outline-btn:hover,.open-btn:hover,.hero-calendar:hover,#send-wish:hover{transform:translateY(-3px);box-shadow:0 8px 28px #003d4833}.solid-btn{background:linear-gradient(120deg,#e5b89e,#f1d9bd,#dca48b);background-size:180% auto}.outline-btn{border-color:#bad6c685}.city-tabs{gap:10px;border:0}.city-tabs button{border:1px solid #b2d6c536;border-radius:45px;transition:background .5s,box-shadow .5s,transform .5s}.city-tabs button[aria-selected=true]{background:linear-gradient(110deg,#d2ede322,#ffe5be12);border-color:#e2b59c80;box-shadow:0 5px 25px #002e3b1f}.city-tabs button:hover{transform:translateY(-2px)}.moments{background:linear-gradient(155deg,#eff3e9,#dcebe6 65%,#f4eee4)}.gallery-photo{border-radius:4px 4px 36px 4px;box-shadow:0 12px 35px #0e575511;transition:box-shadow .7s}.gallery-photo:nth-child(3n+2){border-radius:4px 36px 4px 4px}.gallery-photo:hover{box-shadow:0 20px 50px #064b4930}.coral-ornament{transform-origin:50% 100%;animation:coral-sway 11s ease-in-out infinite alternate}.reveal{transition-duration:1.15s,1.35s}.gallery .reveal:nth-child(2n){transition-delay:.12s}
.wishes{position:relative;isolation:isolate;background:linear-gradient(130deg,#062f43,#0a6069 58%,#1c7174);color:#f2f2e5;overflow:hidden}.wishes::before{content:'';position:absolute;width:600px;height:600px;right:-250px;top:-250px;border-radius:50%;background:radial-gradient(circle,#b9e5c918,transparent 65%);pointer-events:none;z-index:-1}.wishes .section-num{color:#b4d9ce}.wishes-head{display:flex;justify-content:space-between;gap:40px;align-items:end}.wishes h2{font-size:clamp(50px,5.4vw,78px)}.wishes h2 i{color:#d3dac1}.wishes-head>p{max-width:260px;color:#c6e0d6;font-size:12px}.wishes-layout{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:55px;align-items:start}.wish-form{position:relative;padding:35px;border:1px solid #b8ddc640;border-radius:22px;background:linear-gradient(135deg,#f1f6d814,#9ae0cf08);backdrop-filter:blur(10px)}.wish-form label{display:block;font-size:10px;letter-spacing:.12em;margin:0 0 9px;color:#d7e7d8}.wish-form input,.wish-form textarea{width:100%;border:1px solid #b3d2c447;border-radius:9px;background:#012f3f45;color:#fbf6e9;padding:15px 16px;font:inherit;font-size:14px;outline-offset:3px;transition:border-color .3s,background .3s}.wish-form input:focus,.wish-form textarea:focus{border-color:#dfb89b;outline:1px solid #dfb89b;background:#043847}.wish-form input::placeholder,.wish-form textarea::placeholder{color:#acc7bd}.wish-form textarea{min-height:155px;resize:vertical;line-height:1.8}.wish-field{margin-bottom:22px}.wish-meta{display:flex;justify-content:space-between;gap:20px;color:#b6d3c8;font-size:9px;margin-top:7px}.wish-privacy{font-size:11px;color:#c0d9cf;line-height:1.8;margin-bottom:23px}.wish-submit{width:100%;border-radius:50px;background:linear-gradient(110deg,#e4b59b,#f1ddbd,#d9af92);color:#063d49;min-height:52px;font-size:10px;letter-spacing:.14em;display:flex;justify-content:center;align-items:center;gap:24px}.wish-submit span{font-size:23px}.wish-submit:disabled{cursor:wait;opacity:.65}.wish-status{font-size:12px;line-height:1.7;color:#ffdcc7;margin-top:16px}.wish-status:empty{display:none}.wish-status.success{color:#d4f0db}.wish-honey{position:absolute!important;left:-10000px;top:auto;width:1px!important;height:1px;overflow:hidden}.wish-board-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #accfbc44;padding:3px 0 17px;margin-bottom:10px}.wish-board-head span{font-size:10px;letter-spacing:.1em;color:#c8dfd0}.wish-board-head i{font-family:var(--serif);font-size:27px;color:#e0b397}.wish-list{max-height:640px;overflow:auto;padding-right:15px;scrollbar-width:thin;scrollbar-color:#bdd5bd77 transparent}.wish-card{position:relative;padding:27px 0 27px 29px;border-bottom:1px solid #b6d6c42b;animation:wish-arrive .8s ease both}.wish-mark{font-family:var(--serif);font-size:43px;position:absolute;left:0;top:13px;color:#d9b79a;line-height:1}.wish-card p{font-family:var(--serif);font-size:24px;line-height:1.4;margin-bottom:17px;white-space:pre-wrap;overflow-wrap:anywhere}.wish-card strong{font-size:11px;font-weight:500;display:block;overflow-wrap:anywhere;color:#f4ddc2}.wish-card time{font-size:9px;color:#a9c8bf}.wish-empty{padding:45px 20px;text-align:center;font-family:var(--serif);font-style:italic;font-size:27px;color:#cae0d2}.more-wishes{background:none;border:1px solid #b9d5c455;color:#ddeadd;border-radius:30px;margin-top:25px;padding:12px 22px;font-size:9px;letter-spacing:.12em;min-height:44px}.more-wishes[hidden],.wish-empty[hidden]{display:none}.wish-sent:after{content:'♡';position:absolute;right:35px;bottom:55px;font-size:34px;color:#e9ceaa;pointer-events:none;animation:love-rise 1.6s ease-out forwards}.bottom-nav{padding-inline:13px}.bottom-nav a{width:55px}.bottom-nav a span{transition:transform .35s}.bottom-nav a:hover span,.bottom-nav a.active span{transform:translateY(-3px)}footer{background:linear-gradient(135deg,#f5eee1,#dbece3 55%,#edf0e1)}
body.calendar-open{overflow:hidden}#calendar-dialog{width:min(490px,calc(100vw - 40px));max-height:85dvh;border:1px solid #c1d9c5;border-radius:26px;padding:36px;background:linear-gradient(140deg,#f7f3e7,#dcece4);color:#0d4e57;box-shadow:0 30px 120px #001d3d66}#calendar-dialog::backdrop{background:#002a39b5;backdrop-filter:blur(9px)}#calendar-dialog[open]{animation:wish-arrive .4s ease both}#close-calendar{position:absolute;right:17px;top:12px;background:transparent;color:#17545c;width:44px;height:44px;font-size:27px}#calendar-dialog .eyebrow{color:#8d6850;font-size:9px}#calendar-dialog h2{font-size:48px;margin:18px 0 25px}#calendar-dialog label{display:block;font-size:10px;margin-bottom:7px}#calendar-city{width:100%;background:#fff9;border:1px solid #8fb6ac;border-radius:10px;padding:13px;font:inherit;color:#104d56}#calendar-summary{font-size:12px;margin:17px 0 22px}.calendar-options{display:grid;gap:11px}.calendar-options a{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;min-height:54px;border-radius:12px;background:#075662;color:#f2f4e7;font-size:12px}.calendar-options a+ a{background:#ffffff60;border:1px solid #82aba1;color:#134d54}.calendar-note{font-size:10px;color:#547771;margin-top:20px}
@keyframes tide-gradient{from{background-position:0% 25%}to{background-position:100% 80%}}@keyframes pearl-text{to{background-position:100% center}}@keyframes coral-sway{from{rotate:-2deg}to{rotate:3deg}}@keyframes wish-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes love-rise{to{translate:0 -90px;opacity:0;scale:1.4}}
@media(max-width:900px){.wishes-layout{gap:30px}.wish-form{padding:25px}.wishes-head{gap:25px}.wishes-head>p{max-width:220px}}
@media(max-width:620px){.hero-quick-actions{justify-content:center;gap:18px}.hero-calendar,.hero-wishes{font-size:8px}.hero::after{height:90px;bottom:-68px}.hero-bottom{bottom:30px}.event-grid{padding:30px 16px}.event-actions{gap:12px;flex-direction:column;align-items:stretch}.event-actions>a,.event-actions>button{min-height:49px;font-size:9px;border-radius:9px}.city-tabs button{padding:15px 4px}.wishes-head{display:block}.wishes h2{font-size:51px}.wishes-head>p{max-width:290px;margin-top:24px}.wishes-layout{grid-template-columns:1fr;gap:38px;margin-top:34px}.wish-form{padding:25px 20px}.wish-form input,.wish-form textarea{font-size:16px}.wish-card p{font-size:25px}.wish-list{max-height:560px}.wish-board-head span{font-size:9px}.bottom-nav{left:43%;padding:7px 9px}.bottom-nav a{width:42px}.bottom-nav small{font-size:6px}.experience-controls{right:10px;bottom:20px}.experience-controls button{min-width:42px;min-height:42px;width:42px;height:42px}#calendar-dialog{padding:30px 24px}#calendar-dialog h2{font-size:43px}.wish-privacy{font-size:11px}}
@media(max-width:360px){.bottom-nav{left:42%;padding-inline:8px}.bottom-nav a{width:37px}.experience-controls{right:8px}.experience-controls button{min-width:40px;min-height:40px;width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.hero,.hero h2 i,.celebration,.coral-ornament,.wish-card,#calendar-dialog[open],.wish-sent:after{animation:none!important}.solid-btn:hover,.outline-btn:hover,.open-btn:hover,.hero-calendar:hover,#send-wish:hover,.city-tabs button:hover,.bottom-nav a span{transform:none!important}}
body.no-motion .solid-btn:hover,body.no-motion .outline-btn:hover,body.no-motion .hero-calendar:hover,body.no-motion #send-wish:hover,body.no-motion .city-tabs button:hover{transform:none}body.photos-paused .hero,body.photos-paused .hero h2 i,body.photos-paused .celebration,body.photos-paused .coral-ornament{animation-play-state:paused}
