:root{--night:#030c15;--panel:#091523;--gold:#edc18e;--cream:#ffe5bd;--text:#f2eee8;--muted:#bac0cb;--line:#d3bc982e;--serif:Georgia,'Times New Roman','Songti SC','STSong','SimSun',serif;--script:'Segoe Script','Brush Script MT','Snell Roundhand',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--night);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(26px,2.65vw,38px);letter-spacing:.07em;line-height:1.3}h3{font-size:1.5rem;line-height:1.4}p{color:var(--muted)}.wrap{width:min(1360px,91.4%);margin:auto}.header{height:clamp(54px,5.1vw,74px);position:absolute;top:0;left:0;width:100%;z-index:20;background:#02070d66;border-bottom:1px solid #ffffff06}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{font-family:var(--serif);font-size:clamp(28px,3.3vw,46px);letter-spacing:.025em;white-space:nowrap;line-height:1}.logo span{font-size:.45em;vertical-align:middle}.nav{display:flex;align-items:center;gap:clamp(18px,3vw,42px);font-size:14px}.nav a{padding:8px 0;position:relative;color:#d5d9df;white-space:nowrap}.nav a:hover{color:var(--cream)}.nav a.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold)}.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:9px 26px;border-radius:99px;border:1px solid var(--gold);font-size:15px;letter-spacing:.025em;background:#02091155;transition:background .2s,transform .2s}.btn:hover{background:#eac29318;transform:translateY(-2px)}.btn-gold{color:#16100b;background:linear-gradient(110deg,#ffe6be,#e9b97f);border-color:transparent;font-weight:600;box-shadow:inset 0 1px 0 #fff5,0 4px 18px #0002}.btn-gold:hover{background:#ffe5b8}.header .btn{min-height:35px;font-size:14px;padding:6px 23px;color:var(--gold)}.menu-toggle{display:none;width:40px;height:40px;background:#06101a80;border:1px solid var(--line);border-radius:50%;font-size:20px}.hero{position:relative;isolation:isolate;overflow:hidden;height:42vw;min-height:430px;max-height:655px;padding:0;border-bottom:1px solid #e0bb8320}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#02091121,transparent 52%),linear-gradient(0deg,#030c1577,transparent 11%);pointer-events:none}.hero .wrap{height:100%;padding-top:clamp(85px,8.5vw,124px)}.hero-copy{max-width:52%;margin-left:2.25vw}.eyebrow{display:block;color:var(--gold);font-family:var(--serif);font-size:13px;letter-spacing:.5em;margin-bottom:8px}.hero h1{font-size:clamp(88px,10vw,148px);color:var(--cream);line-height:.92;letter-spacing:.01em}.hero-tagline{font-family:var(--serif);font-size:clamp(25px,2.75vw,40px);color:var(--text);margin:5px 0 12px;letter-spacing:.035em;line-height:1.25;white-space:nowrap}.hero-tagline em{font-style:normal;color:var(--gold)}.hero-description{max-width:440px;color:#d4d5dc;font-size:clamp(14px,1.45vw,18px);line-height:1.5;letter-spacing:.03em}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.hero .btn{min-height:43px;padding:9px 30px}.tags{display:flex;gap:clamp(20px,3vw,40px);margin-top:14px;color:#d4d8df;font-size:14px}.tags span{display:flex;align-items:center;gap:8px}.tags b{font-size:24px;font-weight:400;color:var(--gold);line-height:1}.ui-icon{width:25px;height:25px;display:inline-block;vertical-align:middle;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.hero-note{position:absolute;right:6.2%;top:39%;color:var(--cream);font-family:var(--script);text-align:center;font-size:clamp(34px,4.8vw,68px);font-weight:400;line-height:1.1;transform:rotate(-10deg)}.hero-note small{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:.22em;line-height:1.8;margin-top:18px;transform:rotate(10deg)}.home-content,.birthday-content{position:relative;isolation:isolate;padding-top:8px;padding-bottom:10px}.home-content:before,.birthday-content:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#030c1599 0%,#030c1520 20%,#030c1566 68%,#030c15b3 100%),url('assets/moonlit-bay.webp') center/cover}.home-content .wrap,.birthday-content .wrap{position:relative}.section{padding:15px 0 4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:9px}.section-title{display:flex;align-items:center;gap:21px}.section-title:after{content:'';width:36px;height:1px;background:var(--gold)}.section-heading>small{font-size:10px;letter-spacing:.24em;text-align:right;color:#b5bdcc;line-height:1.9}.section-intro{font-size:14px;margin-top:-2px;margin-bottom:12px;color:#c6cbd5;letter-spacing:.015em}.text-link{font-size:14px;color:#e0e4e9;background:none;padding:6px 0;white-space:nowrap}.text-link:hover{color:var(--gold)}#moods h2{color:var(--cream)}#moods .section-heading>small{font-family:var(--script);color:var(--gold);font-size:18px;letter-spacing:0;transform:rotate(-8deg);line-height:1.2}.photo-card{border:1px solid #c6d0df36;border-radius:10px;overflow:hidden;position:relative;background:var(--panel);isolation:isolate}.photo-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.photo-card:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#04101ade,#04101a1a),linear-gradient(0deg,#040c1677,transparent);z-index:-1}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.entry{padding:13px 22px 14px;min-height:169px}.entry .number{font-family:var(--serif);font-size:12px;letter-spacing:.17em;color:var(--gold)}.entry h3{font-size:clamp(26px,2.8vw,36px);letter-spacing:.06em;margin:0 0 3px}.entry p{font-size:15px;color:#dedfe5;line-height:1.45;max-width:340px}.entry .btn{min-height:35px;padding:5px 25px;font-size:14px;margin-top:8px}.entry>img{object-position:center;width:61%;left:auto}.entry:before{background:linear-gradient(90deg,#030b16fa 0%,#030b16e0 35%,#030b1630 72%,transparent)}.moods{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.mood{background:linear-gradient(150deg,#17233399,#081320b0);border:1px solid #ffffff20;border-radius:10px;padding:14px 8px 11px;min-height:126px;transition:all .2s;text-align:center;backdrop-filter:blur(2px)}.mood:hover,.mood[aria-pressed=true]{border-color:var(--gold);background:#17314ab0;transform:translateY(-2px)}.mood-icon{color:var(--cream);display:block;line-height:1;margin-bottom:9px;font-size:28px}.mood-icon .ui-icon{width:28px;height:28px;stroke-width:1.5}.mood strong{font-weight:500;font-size:15px}.mood p{font-size:14px;line-height:1.45;margin-top:3px;color:#bac2cf}.mood-reply{border:1px solid var(--line);border-radius:10px;background:linear-gradient(90deg,#14283bf0,#0b1724ee);padding:16px 24px;margin-top:12px;font-family:var(--serif);font-size:20px;color:var(--cream);text-align:center;animation:appear .35s both}.mood-reply small{display:block;margin-top:7px;color:var(--muted);font-size:13px;letter-spacing:.12em}.quote-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.quote{min-height:154px;padding:17px 18px;display:flex;flex-direction:column;justify-content:space-between}.quote:before{background:linear-gradient(90deg,#05101bba,#05101b18),linear-gradient(0deg,#030e1966,transparent)}.quote blockquote{font-family:var(--serif);font-size:16px;line-height:1.65;letter-spacing:.055em;margin:0;color:#fff0dc;white-space:pre-line}.quote cite{font-style:normal;font-size:10px;letter-spacing:.35em;margin-top:12px}.quote:nth-child(1)>img{object-position:right}.quote:nth-child(2)>img{object-position:center}.about-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(185px,.7fr) minmax(210px,.82fr);gap:9px;align-items:stretch}.about-person{display:flex;align-items:center;min-width:0;gap:20px;padding:5px 0}.avatar{width:145px;height:145px;object-fit:cover;object-position:center;border-radius:50%;border:2px solid var(--gold);box-shadow:0 0 20px #e8b87730;flex-shrink:0}.profile-copy{min-width:0;flex:1}.profile-heading{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;margin-bottom:7px}.profile-title{font-size:25px;font-family:var(--serif);color:var(--text);line-height:1.2;white-space:nowrap}.badge{border:1px solid var(--gold);padding:2px 8px;font-size:12px;border-radius:20px;color:var(--gold);line-height:1.5;white-space:nowrap}.profile-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.profile-tags span{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c9d2e138;border-radius:99px;padding:3px 13px;min-height:29px;font-size:14px;line-height:1.4;color:#d4d9e3;background:linear-gradient(180deg,#303a49cc,#1b2331cc);box-shadow:inset 0 1px 0 #ffffff09}.about-person p{font-size:14px;line-height:1.65;max-width:365px;color:#cbd1dc}.id-card,.qr-card{position:relative;isolation:isolate;overflow:hidden;min-height:169px;border:1px solid #c6d0df36;border-radius:10px;padding:14px 17px;display:flex;flex-direction:column;justify-content:center;background:#0c1725}.qr-card:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#06111cc0,#06111c18),linear-gradient(0deg,#040d18ba,transparent 68%),url('assets/night-lights.webp') center/cover}.qr-card:hover{border-color:var(--gold)}.qr-card h3{font-family:inherit;font-size:15px;line-height:1.4;color:#f8f1e8}.qr-card img{width:94px;height:94px;margin:7px 0 5px;image-rendering:pixelated;border:3px solid #fff8ed;border-radius:4px}.qr-card p{font-size:12px;line-height:1.5;color:#d1d5df}.id-card{justify-content:flex-end;padding-bottom:14px}.id-card:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#04101abd,transparent 70%),url('assets/moonlit-bay.webp') 90% center/cover}.id-card p{font-size:13px;color:#e3e5ea}.copy-id{background:none;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:20px;line-height:1.4;padding:0;margin-top:3px;letter-spacing:.035em}.copy-id span{font-size:13px;color:var(--gold)}.gallery{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.gallery button{padding:0;border:1px solid #b8c4d333;border-radius:7px;overflow:hidden;background:#071221;aspect-ratio:1.25}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery button:hover img{transform:scale(1.07)}.birthday-promo{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px;padding:23px 28px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(120deg,#0e2236,#07101c)}.birthday-promo h3{color:var(--cream);font-size:22px}.birthday-promo p{font-size:14px;margin-top:3px}.birthday-promo .date{font-family:var(--serif);font-size:38px;color:var(--gold);line-height:1;letter-spacing:.08em}.footer{border-top:1px solid #ffffff14;padding:20px 0;background:linear-gradient(90deg,#030c15ef,#030c15c9),url('assets/home-hero.webp') center 90%/cover}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:24px}.footer p{font-size:12px}.footer .logo{font-size:34px}.footer small{color:#929fae;font-size:11px;letter-spacing:.02em}.footer .btn{min-height:38px;font-size:14px;padding:7px 23px}.birthday-hero{height:43.3vw;min-height:443px;max-height:665px;border-bottom:0}.birthday-hero .wrap{padding-top:clamp(84px,8.4vw,128px)}.birthday-hero .hero-copy{max-width:52%}.birthday-hero h1{font-size:clamp(56px,6.7vw,98px);line-height:1.15;letter-spacing:.025em}.birthday-hero h1 span{font-size:1.55em;line-height:.85}.birthday-hero .eyebrow{letter-spacing:.6em;margin-bottom:7px}.birthday-hero .hero-tagline{font-size:clamp(17px,1.85vw,26px);letter-spacing:.08em;margin-top:17px;margin-bottom:18px}.birthday-hero .actions{margin-top:20px}.birthday-hero .hero-note{top:40%;right:4.8%;font-size:clamp(28px,3.5vw,51px)}.birthday-stamp{color:var(--gold);font-size:12px;letter-spacing:.25em;margin-top:13px}.birthday-content{padding-top:0}.keywords{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.keyword{min-height:175px;padding:20px 21px}.keyword .mood-icon{margin-bottom:10px;font-size:28px}.keyword h3{font-size:25px;letter-spacing:.12em;color:var(--cream)}.keyword h3:after{content:'';display:block;height:1px;width:28px;background:var(--gold);margin:13px 0}.keyword p{font-size:14px;color:#e1e0e2;line-height:1.55;max-width:230px}.keyword:before{background:linear-gradient(90deg,#03101be6,#03101b11),linear-gradient(0deg,#030b1666,transparent)}.moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.moment{min-height:207px;padding:20px 22px;display:flex;flex-direction:column;justify-content:flex-end}.moment:before{background:linear-gradient(0deg,#04101aed,transparent 80%)}.moment h3{font-size:25px;margin-bottom:4px;letter-spacing:.08em}.moment p{font-size:14px;color:#dedfe6;line-height:1.6}.birthday-quotes{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.birthday-quotes .quote{min-height:113px;padding:17px 22px}.birthday-quotes .quote blockquote{font-size:16px}.birthday-quotes .quote cite{font-size:10px;letter-spacing:.15em}.light-banner{min-height:138px;padding:20px 35px;display:flex;justify-content:flex-end;align-items:center;background:#071522}.light-banner>img{width:50%;object-position:center 60%}.light-banner:after{content:'';position:absolute;inset:0;z-index:-3;background:url('assets/night-lights.webp') right center/60% 100% no-repeat}.light-banner:before{background:linear-gradient(90deg,transparent 30%,#061221b0 52%,#06122130)}.light-banner .light-copy{width:38%;color:#e3e1e5;font-size:16px;line-height:1.6}.light-copy .btn{margin-top:11px;min-height:38px;padding:7px 28px;font-size:14px}.birthday-greeting{position:relative;isolation:isolate;padding:20px 0 50px;min-height:210px;background:linear-gradient(90deg,#030c15c0,transparent 70%),url('assets/moonlit-bay.webp') center 44%/cover}.birthday-greeting h2{margin-bottom:17px}.birthday-greeting p{color:var(--cream);font-family:var(--serif);font-size:clamp(21px,2.35vw,32px);line-height:1.65;letter-spacing:.09em;margin-left:10%}.birthday-greeting small{display:block;color:var(--gold);letter-spacing:.38em;margin-top:15px;font-size:14px;margin-left:10%}.birthday-signature{position:absolute;right:8%;top:38px;font-family:var(--script);color:var(--gold);font-size:clamp(24px,3.5vw,49px);line-height:1.3;text-align:center;transform:rotate(-10deg)}body[data-page=wish]{background:#030c15;background-image:linear-gradient(90deg,#030c1545,transparent 60%),url('assets/wish-scene.webp');background-position:center top;background-size:100% 125vw;background-repeat:no-repeat}body[data-page=wish] .header{background:transparent;border:0;height:clamp(78px,8.9vw,126px)}.wish-page{min-height:100vh}.wish-hero{position:relative;isolation:isolate;padding:clamp(105px,11.7vw,172px) 0 0;min-height:72.7vw;overflow:hidden}.wish-hero>.wrap{width:87.2%}.wish-hero h1{font-size:clamp(60px,8.3vw,120px);color:var(--cream);line-height:1.15;letter-spacing:.035em;margin-top:20px}.wish-hero h2{font-size:clamp(26px,3.3vw,49px);margin:15px 0 27px;letter-spacing:.08em;line-height:1.25}.wish-hero h2 span{font-size:1.4em;color:var(--gold);letter-spacing:.04em}.wish-hero p{font-family:var(--serif);font-size:clamp(17px,1.7vw,24px);line-height:1.75;color:#e2dfdf;letter-spacing:.04em}.wish-hero .hero-note{top:30%;right:3.8%;font-size:clamp(29px,3.7vw,56px)}.wish-hero .hero-note small{letter-spacing:.4em;font-size:11px}.wish-page>.wrap{width:min(1180px,81.7%)}.wish-panel{position:relative;text-align:center;border:1px solid #ddb581;border-radius:16px;background:linear-gradient(90deg,#040d1870,#061a2d22),url('assets/moonlit-bay.webp') center 20%/cover;padding:24px 5%;box-shadow:0 0 70px #b9863f0b}.wish-panel:before{content:'☾';position:absolute;top:-21px;left:calc(50% - 30px);width:60px;background:#07121f;color:var(--gold);font-size:27px;line-height:35px}.wish-panel h2{color:var(--gold);font-size:clamp(25px,2.5vw,36px);letter-spacing:.2em}.wish-panel .eyebrow{font-size:10px;margin-top:4px;color:#b4bdcd;letter-spacing:.6em}.wish-quote{max-width:76%;margin:27px auto 15px;border:1px solid #c3cad81a;border-radius:9px;padding:14px 15px;background:linear-gradient(90deg,#0d1b30ab,#17324e75);font-family:var(--serif);font-size:clamp(20px,2.5vw,35px);letter-spacing:.12em;line-height:1.85;white-space:pre-line;color:#fff2df}.wish-signature{color:#eee4d8;letter-spacing:.6em;font-size:12px}.wish-actions{justify-content:center;margin:36px auto 0;gap:35px}.wish-actions .btn{min-width:30%;min-height:59px;font-size:20px;padding:13px 34px}.wish-bottom{text-align:center;padding:24px 0 42px}.wish-bottom .spark{color:var(--cream);font-size:25px;display:block}.wish-bottom p{margin:16px auto;font-family:var(--serif);font-size:14px;letter-spacing:.36em;color:#b4a99e}.wish-bottom small{font-size:10px;letter-spacing:.6em;color:#bda68b}.light-flash{animation:glow .8s both}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:11px 24px;border-radius:30px;border:1px solid var(--line);background:#142333;z-index:100;font-size:14px;white-space:nowrap;box-shadow:0 4px 30px #0008}.lightbox{background:#020912ec;border:1px solid var(--line);color:var(--text);border-radius:15px;padding:18px;max-width:min(88vw,720px)}.lightbox::backdrop{background:#000c;backdrop-filter:blur(6px)}.lightbox img{width:100%;max-height:70vh;object-fit:contain;border-radius:7px}.lightbox-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.lightbox-top button{background:transparent;font-size:25px;line-height:1;padding:8px}.lightbox-top p{color:var(--cream);font-size:14px}[hidden]{display:none!important}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%{box-shadow:0 0 0 #e7b77100}50%{box-shadow:0 0 90px #e7b77155}100%{box-shadow:0 0 30px #e7b77114}}
@media(min-width:1250px){.entry{min-height:215px;padding:21px 28px}.entry p{font-size:17px}.entry .btn{margin-top:13px;min-height:41px}.section{padding:21px 0 6px}.section-intro{font-size:16px;margin-bottom:15px}.mood{min-height:158px;padding:19px 9px 15px}.mood-icon{font-size:32px;margin-bottom:12px}.mood strong{font-size:17px}.mood p{font-size:16px}.quote{min-height:196px;padding:23px}.quote blockquote{font-size:18px}.about-person{gap:24px}.avatar{width:177px;height:177px}.profile-title{font-size:30px}.about-person p{font-size:16px}.id-card,.qr-card{min-height:205px;padding:19px 22px}.qr-card img{width:112px;height:112px;margin:9px 0 7px}.qr-card h3{font-size:17px}.qr-card p{font-size:14px}.copy-id{font-size:23px}.keyword{min-height:222px;padding:27px}.keyword h3{font-size:30px}.keyword p{font-size:16px}.moment{min-height:267px;padding:27px}.moment h3{font-size:29px}.moment p{font-size:16px}.birthday-quotes .quote{min-height:143px;padding:23px 27px}.birthday-quotes .quote blockquote{font-size:19px}.light-banner{min-height:180px;padding:30px 40px}.light-banner .light-copy{font-size:19px}.birthday-greeting{min-height:275px;padding:25px 0 65px}}
@media(min-width:761px) and (max-width:1000px){.nav{gap:17px}.header-inner{gap:15px}.header .btn{font-size:13px;padding:6px 15px}.hero-copy{max-width:57%;margin-left:1%}.hero-tagline{font-size:24px}.hero-description{font-size:14px}.hero .btn{padding:9px 20px;font-size:14px}.tags{gap:15px}.about-grid{grid-template-columns:minmax(0,1.5fr) minmax(165px,.75fr) minmax(175px,.8fr);gap:9px}.avatar{width:104px;height:104px}.about-person{gap:13px}.profile-title{font-size:23px}.profile-tags{gap:5px}.profile-tags span{padding:3px 9px}.about-person p br{display:none}.id-card,.qr-card{min-height:210px;padding:14px}.copy-id{font-size:18px}.birthday-hero .hero-copy{max-width:58%}.birthday-hero .hero-tagline{font-size:17px;letter-spacing:.015em}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.header{height:64px}.header-inner{gap:13px}.logo{font-size:30px}.menu-toggle{display:block}.nav{display:none;position:absolute;left:18px;right:18px;top:68px;background:#091727f5;border:1px solid var(--line);border-radius:10px;padding:15px 22px;gap:7px;flex-direction:column;align-items:stretch;box-shadow:0 20px 40px #0008}.nav.open{display:flex}.header .btn{margin-left:auto;font-size:12px;padding:7px 13px;min-height:35px}.hero{height:auto;min-height:695px;max-height:none;padding-top:300px;border-bottom:0}.hero-art{height:420px;object-position:67% center;object-fit:cover}.hero:before{background:linear-gradient(0deg,#030c15 35%,#030c15c9 45%,transparent 78%)}.hero .wrap{height:auto;padding:0}.hero-copy{max-width:none;margin-left:0;position:relative;padding-bottom:28px}.hero h1{font-size:86px;line-height:.95}.eyebrow{font-size:12px;letter-spacing:.36em}.hero-tagline{font-size:24px;white-space:normal;margin:7px 0 13px;line-height:1.5}.hero-description{font-size:15px;line-height:1.7}.actions{gap:10px;margin-top:19px}.btn{min-height:44px;font-size:14px;padding:10px 22px}.hero .btn{min-height:44px;padding:10px 21px}.tags{flex-wrap:wrap;gap:18px;margin-top:20px;font-size:13px}.tags .ui-icon{width:23px;height:23px}.hero-note{display:none}.home-content,.birthday-content{padding-top:0}.home-content:before,.birthday-content:before{background:linear-gradient(180deg,#030c1577,#030c1555),url('assets/moonlit-bay.webp') 65% center/auto 100%}.entry-grid{grid-template-columns:1fr;gap:12px}.entry{min-height:183px;padding:19px 22px}.entry h3{font-size:28px}.entry p{font-size:15px;max-width:290px}.entry .btn{margin-top:12px;min-height:37px}.entry>img{width:70%}.section{padding:22px 0 3px}.section-heading{margin-bottom:10px;gap:9px}h2{font-size:26px;letter-spacing:.04em}.section-title{gap:12px}.section-title:after{width:27px}.section-heading>small{font-size:9px;letter-spacing:.1em}.section-intro{font-size:14px;line-height:1.6;margin-bottom:14px}#moods .section-heading>small{display:none}.moods{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mood{min-height:142px;padding:16px 6px 13px}.mood strong{font-size:14px}.mood p{font-size:13px}.mood-icon{margin-bottom:9px}.mood-reply{padding:17px;font-size:18px}.quote-grid{grid-template-columns:1fr 1fr;gap:10px}.quote{min-height:183px;padding:20px 15px}.quote blockquote{font-size:16px;letter-spacing:.025em}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:10px}.about-person{grid-column:1/-1;gap:16px;padding:4px 0 16px}.avatar{width:105px;height:105px}.profile-title{font-size:24px}.profile-heading{gap:7px 10px}.badge{font-size:12px}.profile-tags{gap:5px;margin-bottom:9px}.profile-tags span{padding:3px 10px;font-size:14px;min-height:28px}.about-person p{font-size:14px;line-height:1.7}.about-person p br{display:none}.qr-card,.id-card{padding:16px;min-height:207px}.qr-card h3{font-size:15px}.qr-card img{width:100px;height:100px}.qr-card p{font-size:13px}.copy-id{font-size:18px;gap:7px}.gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.gallery button{aspect-ratio:1}.gallery button:last-child{display:none}.birthday-promo{padding:21px;gap:14px;flex-wrap:wrap}.birthday-promo .date{font-size:32px}.birthday-promo h3{font-size:20px}.birthday-promo .btn{width:100%;margin-top:3px}.footer{margin-top:13px;padding:22px 0}.footer-inner{flex-wrap:wrap;gap:18px}.footer .logo{font-size:30px}.footer .btn{min-height:39px;font-size:13px}.footer p{font-size:12px}.footer-inner>div{order:3;width:100%}.birthday-hero{padding-top:286px;min-height:635px}.birthday-hero .wrap{padding:0}.birthday-hero .hero-copy{max-width:none}.birthday-hero h1{font-size:53px;line-height:1.1}.birthday-hero h1 span{font-size:1.5em}.birthday-hero .hero-tagline{font-size:18px;white-space:normal;letter-spacing:.03em;margin:18px 0 16px;max-width:330px}.birthday-hero .eyebrow{letter-spacing:.4em}.birthday-stamp{font-size:12px;margin-top:16px}.keywords{grid-template-columns:1fr 1fr;gap:11px}.keyword{min-height:204px;padding:23px 17px}.keyword h3{font-size:24px}.keyword p{font-size:14px}.moments{grid-template-columns:1fr;gap:12px}.moment{min-height:255px;padding:23px}.moment h3{font-size:26px}.moment p{font-size:15px}.birthday-quotes{grid-template-columns:1fr}.birthday-quotes .quote{min-height:139px;padding:25px}.birthday-quotes .quote blockquote{font-size:18px}.light-banner{min-height:291px;padding:25px;align-items:flex-end;justify-content:flex-start}.light-banner>img{width:100%;object-position:center 60%}.light-banner:after{display:none}.light-banner:before{background:linear-gradient(0deg,#061221ee,transparent 90%)}.light-banner .light-copy{width:100%;font-size:16px}.birthday-greeting{padding:27px 0 50px;margin-top:18px;min-height:0}.birthday-greeting p{font-size:22px;letter-spacing:.035em;margin-left:0}.birthday-greeting small{font-size:13px;margin-left:0}.birthday-signature{display:none}body[data-page=wish]{background-size:auto 865px;background-position:56% 0}body[data-page=wish] .header{height:72px}.wish-hero{padding-top:106px;min-height:665px}.wish-hero>.wrap{width:calc(100% - 40px)}.wish-hero .eyebrow{font-size:12px;letter-spacing:.28em}.wish-hero h1{font-size:50px;letter-spacing:.015em;margin-top:15px}.wish-hero h2{font-size:23px;letter-spacing:.02em;margin:15px 0 22px}.wish-hero h2 span{font-size:1.35em}.wish-hero p{font-size:16px;line-height:1.8;letter-spacing:0;max-width:340px}.wish-page>.wrap{width:calc(100% - 36px)}.wish-panel{padding:29px 17px 22px;border-radius:13px}.wish-panel h2{font-size:24px}.wish-panel .eyebrow{font-size:9px;letter-spacing:.38em}.wish-quote{max-width:none;margin-top:23px;padding:20px 10px;letter-spacing:.035em;font-size:20px;line-height:1.85}.wish-actions{margin-top:27px;gap:13px}.wish-actions .btn{min-width:0;width:100%;min-height:49px;font-size:16px}.wish-bottom{padding:26px 0 42px}.wish-bottom p{font-size:13px;letter-spacing:.05em}.wish-bottom small{font-size:9px;letter-spacing:.22em}.toast{bottom:20px;max-width:calc(100% - 36px);white-space:normal;text-align:center}}
@media(max-width:380px){.header .btn{padding:6px 9px;font-size:12px}.hero-tagline{font-size:22px}.hero .btn{padding:10px 17px;font-size:13px}.tags{gap:14px;font-size:12px}.about-person{gap:12px;align-items:flex-start}.avatar{width:88px;height:88px;margin-top:5px}.profile-tags span{padding:3px 8px}.qr-card,.id-card{padding:13px}.copy-id{font-size:16px}.wish-hero h1{font-size:45px}.wish-hero h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Match the original compact profile and its moon-and-city ID image. */
.about-grid{width:100%;max-width:none;grid-template-columns:minmax(0,max-content) minmax(185px,.7fr) minmax(210px,.82fr);gap:10px}
.about-person{gap:19px}
.profile-copy{flex:0 1 auto}
.id-card:before{background:linear-gradient(0deg,#030c15f2 0%,#030c159c 18%,transparent 53%),url('assets/id-moonlight.webp') center top/100% auto no-repeat;opacity:1}
.id-card{min-height:169px;padding-bottom:16px}
.qr-card{min-height:169px}
/* The button uses the lantern emblem extracted from the supplied reference. */
.lantern-icon{width:21px;height:34px;object-fit:contain;filter:grayscale(1) brightness(1.1) contrast(6);mix-blend-mode:multiply;flex-shrink:0}
.wish-actions .btn{gap:14px}
.ritual-lights{display:flex;justify-content:center;gap:clamp(18px,3vw,43px);margin:25px auto 13px}
.ritual-lamp{position:relative;display:flex;align-items:center;flex-direction:column;gap:9px;min-width:48px;color:#8c929f;transition:color .6s}
.ritual-lamp:before{content:'';position:absolute;top:-10px;width:66px;height:66px;border-radius:50%;background:radial-gradient(circle,#ffdc9f35,transparent 68%);opacity:0;transition:opacity .6s}
.ritual-lamp .lantern-icon{width:24px;height:39px;filter:grayscale(1) brightness(1.1) contrast(6) invert(1);mix-blend-mode:screen;opacity:.22;transition:opacity .6s,filter .6s;position:relative}
.ritual-lamp span{font-size:13px;letter-spacing:.13em}
.ritual-lamp.is-lit{color:var(--cream)}
.ritual-lamp.is-lit:before{opacity:1}
.ritual-lamp.is-lit .lantern-icon{opacity:1;filter:grayscale(1) brightness(1.1) contrast(6) invert(1) sepia(.55) saturate(1.4) drop-shadow(0 0 5px #e5b36a)}
.ritual-progress{color:#cdbba4;font-size:13px;letter-spacing:.12em}
.wish-panel .wish-quote{margin-top:19px}
.ritual-complete{padding:7px 0 22px;animation:ritual-reveal 1.2s ease both}
.ritual-complete>span{display:block;color:var(--gold);font-size:27px;margin-bottom:9px}
.ritual-complete p{font-family:var(--serif);font-size:22px;letter-spacing:.07em;color:var(--cream)}
.ritual-complete small{display:block;font-size:14px;letter-spacing:.12em;color:#c6b9a6;margin-top:9px}
.wish-panel.is-complete{border-color:#ffe0ab;box-shadow:0 0 65px #e5ad6130,inset 0 0 45px #e5ad610c;transition:box-shadow 1.2s,border-color 1.2s}
.wish-panel.is-complete h2{color:#ffe6bd}
.wish-actions .btn:disabled{cursor:default;opacity:.9;transform:none;background:linear-gradient(110deg,#ffe7c1,#e5b275);box-shadow:0 0 25px #e5b27520}
@keyframes ritual-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1250px){.about-person{gap:21px}.id-card,.qr-card{min-height:205px}.id-card:before{background-size:100% 100%,100% auto;background-position:center top}}
@media(min-width:761px) and (max-width:1000px){.about-grid{grid-template-columns:minmax(0,1.5fr) minmax(165px,.75fr) minmax(175px,.8fr);gap:9px}.about-person{gap:13px}.profile-copy{flex:1}.id-card,.qr-card{min-height:210px}}
@media(max-width:760px){.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:10px}.profile-copy{flex:1}.about-person{gap:16px}.id-card,.qr-card{min-height:207px}.id-card:before{background-position:center top;background-size:100% 100%,auto 150px}.ritual-lights{gap:14px;margin-top:24px}.ritual-lamp{min-width:40px;gap:8px}.ritual-lamp .lantern-icon{width:21px;height:35px}.ritual-lamp span{font-size:12px;letter-spacing:.06em}.ritual-progress{font-size:12px}.ritual-complete p{font-size:19px;line-height:1.7;letter-spacing:.035em}.ritual-complete small{font-size:13px}.lantern-icon{width:18px;height:29px}.wish-actions .btn:disabled{font-size:15px}}
@media(max-width:380px){.about-person{gap:12px}.ritual-lights{gap:10px}.ritual-lamp{min-width:38px}}
@media(prefers-reduced-motion:reduce){.ritual-complete{animation:none}.ritual-lamp,.ritual-lamp:before,.ritual-lamp .lantern-icon,.wish-panel.is-complete{transition:none}}

/* Continue the saved moonlit design with shared edges and clearer night details. */
:root{--night:#06111f;--panel:#102239;--muted:#c6cedb;--line:#dbc49e40}
.wrap{width:min(1360px,91.4%)}
.hero-copy{margin-left:0}
.hero-art{filter:brightness(1.12) saturate(1.06)}
.hero:before{background:linear-gradient(90deg,#030b1650,transparent 57%),linear-gradient(0deg,#06111f80,transparent 20%)}
.home-content:before,.birthday-content:before{background:linear-gradient(180deg,#06111f75 0%,#06111f15 25%,#06111f30 70%,#06111fa6 100%),url('assets/moonlit-bay.webp') center/cover}
.home-content{padding-top:18px}
.photo-card{border-color:#dac49e47;box-shadow:inset 0 1px 0 #fff1,0 8px 28px #0002}
.photo-card>img{filter:brightness(1.1) saturate(1.05)}
.entry:before{background:linear-gradient(90deg,#081524f5 0%,#081524da 34%,#08152430 74%,transparent)}
.quote:before{background:linear-gradient(90deg,#071525c9,#07152535),linear-gradient(0deg,#07152566,transparent)}
.mood{background:linear-gradient(150deg,#263a519e,#0f2235bd);border-color:#cfba9840;box-shadow:inset 0 1px 0 #fff1}
.about-grid{grid-template-columns:minmax(0,1.65fr) minmax(185px,.7fr) minmax(210px,.82fr);gap:14px}
.profile-copy{flex:1}
.about-person{min-width:0}
.qr-card,.id-card{height:100%;border-color:#dac49e47}
.qr-card img{object-fit:contain;image-rendering:auto;flex-shrink:0}
.id-card:before{background:linear-gradient(0deg,#06111ff2 0%,#06111fa6 24%,#06111f10 70%),url('assets/id-moonlight.webp') center/cover}
.gallery button{border-color:#dac49e47}
.section{padding-top:28px}
.lespark-help-toggle{display:none;position:relative;margin:0 auto 22px;padding:10px 18px;border:1px solid var(--line);border-radius:30px;background:#102239;color:var(--cream);font-size:14px}
.lespark-help{width:min(520px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:24px;border:1px solid #edc18e80;border-radius:16px;background:#0d1c2d;color:var(--text);box-shadow:0 20px 70px #0008}
.lespark-help::backdrop{background:#020812d9}
.lespark-help h2{font-size:24px;letter-spacing:0}
.lespark-help p{font-size:16px;line-height:1.8}
.lespark-help-profile{display:flex;gap:20px;align-items:center;margin:25px 0}
.lespark-help-profile img{width:136px;height:136px;padding:5px;background:#fff;border-radius:6px;flex-shrink:0}
.lespark-help-profile strong{font-family:var(--serif);font-size:24px;color:var(--cream)}
.lespark-help-profile .btn{margin-top:9px;padding:7px 18px}
.lespark-help .lespark-help-note{font-size:14px}
@media(min-width:761px){.hero{height:auto;min-height:clamp(510px,43vw,655px);max-height:none}.hero .wrap{padding-bottom:30px}.hero-tagline{white-space:normal}.hero-copy{max-width:54%}.birthday-hero{min-height:clamp(490px,43.3vw,665px)}.birthday-hero .hero-copy{max-width:52%}}
@media(min-width:761px) and (max-width:1150px){.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.about-person{grid-column:1/-1;padding-bottom:12px}.id-card,.qr-card{min-height:215px}.nav{gap:18px}.header-inner{gap:18px}.header .btn{padding:7px 14px}.hero-copy{max-width:60%}.tags{flex-wrap:wrap;gap:14px 22px}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.hero{min-height:0;padding-top:285px}.hero-art{height:440px;object-position:67% center}.hero:before{background:linear-gradient(0deg,#06111f 25%,#06111fe6 42%,#06111f20 76%,transparent 88%)}.hero-copy{padding-bottom:24px}.hero h1{font-size:clamp(70px,22vw,86px)}.home-content{padding-top:0}.home-content:before,.birthday-content:before{background:linear-gradient(180deg,#06111f42,#06111f55),url('assets/moonlit-bay.webp') 65% center/auto 100%}.section{padding-top:25px}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.about-person{grid-column:1/-1}.qr-card,.id-card{min-height:222px}.mood p{font-size:14px}.entry .btn{min-height:44px}.birthday-hero{padding-top:285px;min-height:0}.birthday-hero h1{font-size:53px}.header .btn{font-size:14px;min-height:40px}.tags{font-size:14px}.lespark-help-toggle{display:block}.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery button:last-child{display:block}.wish-hero{min-height:610px}.wish-actions .btn{width:auto;flex:1;padding:12px 15px;font-size:16px}.lespark-help{padding:20px}.lespark-help-profile{gap:14px}.lespark-help-profile img{width:112px;height:112px}.lespark-help-profile p{font-size:14px}}
@media(max-width:380px){.header-inner{gap:8px}.header .btn{padding:7px 10px}.hero .btn{padding:10px 17px}.copy-id{flex-wrap:wrap}.about-person{align-items:flex-start}.lespark-help-profile{align-items:flex-start;flex-wrap:wrap}}
