:root{
  --ink:#5e3f63;
  --ink-2:#745d79;
  --pink:#d76a9b;
  --pink-2:#efb8d1;
  --lav:#a57ac9;
  --lav-2:#d9c8ef;
  --gold:#d6ae62;
  --paper:#fffdfd;
  --soft:#fff5f9;
  --shadow:0 22px 54px rgba(101,61,97,.13);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  color:var(--ink);
  font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
  background:
    radial-gradient(circle at 12% 5%,rgba(255,255,255,.92),transparent 28%),
    radial-gradient(circle at 90% 65%,rgba(219,200,239,.42),transparent 28%),
    linear-gradient(180deg,#fff8fb 0%,#fcedf5 62%,#eee1f8 100%);
}
a{text-decoration:none;color:inherit}
button{font:inherit}
.page-progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:1300}
.page-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--pink),var(--lav))}

.birthday-intro{
  position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px;
  background:
    radial-gradient(circle at 48% 27%,rgba(255,255,255,.9),transparent 26%),
    radial-gradient(circle at 24% 82%,rgba(250,199,222,.5),transparent 28%),
    radial-gradient(circle at 82% 76%,rgba(214,198,243,.62),transparent 30%),
    linear-gradient(150deg,#fff7fb,#f8dfea 52%,#e9dcf7);
  transition:opacity .42s ease,visibility .42s ease;
}
.birthday-intro.hidden{opacity:0;visibility:hidden;pointer-events:none}
.intro-panel{
  width:min(100%,430px);padding:32px 26px 30px;text-align:center;border-radius:36px;
  border:1px solid rgba(255,255,255,.86);background:linear-gradient(180deg,rgba(255,255,255,.58),rgba(255,255,255,.24));
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 30px 85px rgba(99,59,98,.15),inset 0 1px 0 rgba(255,255,255,.9)
}
.intro-number-card{
  position:relative;width:78px;height:78px;margin:0 auto 20px;border-radius:24px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#c989bb,#a97dcb);border:4px solid rgba(255,255,255,.78);
  color:white;box-shadow:0 16px 36px rgba(155,101,176,.24)
}
.intro-number{font:700 35px/1 Georgia,serif}
.intro-suffix{position:absolute;right:10px;top:10px;font-size:9px;letter-spacing:.08em;font-weight:900}
.intro-number-heart{position:absolute;right:-10px;bottom:-7px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f3d39a;color:#8b5d70;border:2px solid rgba(255,255,255,.8);font-weight:800}
.micro-title{text-transform:uppercase;letter-spacing:.24em;font-size:10px;font-weight:800;color:var(--pink);margin:0}
.birthday-intro h1{font:italic 78px/.92 Georgia,"Times New Roman",serif;margin:8px 0 12px;color:#a45f91}
.intro-copy{font-size:14px;color:var(--ink-2);margin:0;line-height:1.6}
.intro-button{margin-top:24px;min-height:54px;width:min(100%,300px);border:0;border-radius:999px;padding:14px 22px;color:white;font-weight:800;background:linear-gradient(135deg,var(--pink),var(--lav));box-shadow:0 18px 38px rgba(157,90,146,.27);cursor:pointer}
.intro-float{position:absolute;animation:floaty 5s ease-in-out infinite}
.intro-float-a{left:14%;top:17%;color:var(--gold);font-size:28px}.intro-float-b{right:14%;top:22%;color:var(--pink);font-size:30px}.intro-float-c{right:17%;bottom:18%;color:var(--lav);font-size:28px}.intro-float-d{left:17%;bottom:16%;color:#e9a8c5;font-size:18px}

.music-pill{position:fixed;right:16px;top:16px;z-index:900;border:0;border-radius:999px;padding:10px 14px;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.88);color:var(--ink);box-shadow:0 12px 28px rgba(98,59,95,.12);opacity:0;pointer-events:none;transition:.25s ease}.music-pill.visible{opacity:1;pointer-events:auto}.music-note{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#ecd6f5;color:var(--lav);font-weight:900}.music-note.playing{animation:pulse 1.5s ease-in-out infinite}.music-pill span:last-child{font-size:12px;font-weight:800}

.page-decor{position:fixed;inset:0;z-index:-1;pointer-events:none}.decor{position:absolute;opacity:.45;animation:drift 10s ease-in-out infinite}.d-a{left:6%;top:28%;color:var(--pink)}.d-b{right:8%;top:37%;color:var(--pink)}.d-c{left:11%;bottom:24%;color:var(--gold)}.d-d{right:12%;bottom:18%;color:var(--lav)}
.page-section{padding:88px 20px 0}
.birthday-hero{min-height:100svh;padding-top:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.nineteen-pill{margin-top:14px;padding:8px 15px;border:1px solid rgba(214,174,98,.55);border-radius:999px;background:rgba(255,255,255,.68);font-size:11px;font-weight:800;letter-spacing:.13em;color:#8c6b58}
.birthday-title{margin:20px 0 10px;line-height:.92;display:flex;flex-direction:column;align-items:center;gap:8px}.birthday-title span{font:52px/1 Georgia,"Times New Roman",serif;color:var(--ink)}.birthday-title strong{font:italic 76px/.9 Georgia,"Times New Roman",serif;color:var(--lav);font-weight:500}.birthday-subtitle{margin:4px auto 0;max-width:360px;color:var(--ink-2);line-height:1.7}
.mela-portrait-shell{position:relative;width:190px;height:190px;margin:26px auto 20px}.mela-portrait{width:100%;height:100%;object-fit:cover;border-radius:45% 55% 52% 48% / 46% 44% 56% 54%;border:7px solid rgba(255,255,255,.92);box-shadow:0 24px 52px rgba(95,57,92,.18);position:relative;z-index:2}.mela-portrait-ring{position:absolute;inset:-9px;border:1.5px solid rgba(214,174,98,.72);border-radius:48% 52% 49% 51% / 52% 45% 55% 48%;transform:rotate(7deg);z-index:1}.portrait-mark{position:absolute;z-index:3}.pm-a{right:-8px;top:28%;font-size:25px;color:var(--pink)}.pm-b{left:-7px;bottom:20%;font-size:20px;color:var(--gold)}
.birthday-note{display:flex;align-items:flex-start;gap:12px;text-align:left;margin-top:8px;max-width:355px;padding:17px 18px;border-radius:23px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.96);box-shadow:var(--shadow)}.note-heart{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:white;background:linear-gradient(135deg,#efb7d2,#caa9e0)}.birthday-note p{margin:0;font-size:13px;line-height:1.6}.message-link{display:inline-flex;margin-top:19px;padding:10px 16px;border-radius:999px;color:var(--pink);font-size:13px;font-weight:800}

.section-title{text-align:center;max-width:650px;margin:0 auto 28px}.section-title>span{display:block;text-transform:uppercase;letter-spacing:.24em;font-size:9px;font-weight:900;color:var(--pink)}.section-title h2{font:48px/1 Georgia,"Times New Roman",serif;color:var(--ink);margin:11px 0 10px}.section-title p{margin:0;color:var(--ink-2);font-size:14px}.title-flourish{display:flex;justify-content:center;align-items:center;gap:9px;color:var(--gold);font-size:13px;margin-top:10px}.title-flourish i{display:block;width:50px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.daddy-card{width:min(100%,760px);margin:0 auto;padding:22px 19px 24px;border-radius:28px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow)}
.person-row{display:flex;align-items:center;gap:12px}.person-avatar{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;min-height:46px!important;max-height:46px!important;flex:0 0 46px!important;display:block!important;object-fit:cover!important;border-radius:50%!important;border:3px solid rgba(255,255,255,.96)!important;box-shadow:0 8px 20px rgba(92,56,89,.13)!important;background:#f7e8f0!important}.daddy-avatar{width:50px!important;height:50px!important;min-width:50px!important;max-width:50px!important;min-height:50px!important;max-height:50px!important;flex-basis:50px!important;object-position:center 32%}.person-name-wrap{display:flex;flex-direction:column;gap:2px;text-align:left}.person-name-wrap strong{font-size:17px;color:var(--ink)}.person-name-wrap span{font-size:12px;color:var(--ink-2)}
.daddy-message{margin-top:20px;font-size:15px;line-height:1.85;color:#66536a}.daddy-message p{margin:0 0 15px}.daddy-message blockquote{margin:0 0 16px;padding:14px 16px;border-left:4px solid #e8a3c2;background:#fff2f7;border-radius:13px;font-style:italic;color:#7c5876}.daddy-signature{text-align:right;margin-top:12px;padding-top:15px;border-top:1px dashed #ebcad9;color:var(--pink);font:italic 700 18px Georgia,"Times New Roman",serif}

.greetings-section{padding-top:92px}.greeting-list{width:min(100%,760px);margin:0 auto;display:grid;grid-template-columns:1fr;gap:15px}.guest-card{padding:17px 16px 18px;border-radius:24px;background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(100,62,97,.1)}.guest-card-featured{background:linear-gradient(145deg,rgba(255,250,252,.96),rgba(248,238,253,.92));border-color:rgba(236,202,218,.96)}.guest-name{font-size:17px;color:var(--ink)}.guest-heart{margin-left:auto;color:var(--pink);font-size:17px}.guest-card p{margin:13px 0 0;color:#66536a;font-size:14px;line-height:1.7}.keep-lines{white-space:pre-line}.avatar-ella{object-position:center 28%}.avatar-sake{object-position:center}.avatar-zee{object-position:center 24%}.avatar-kai{object-position:center}.avatar-mell{object-position:80% 31%}

.closing-section{padding-bottom:42px}.closing-card{width:min(100%,760px);margin:0 auto;padding:32px 24px;text-align:center;border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(250,242,254,.84));border:1px solid rgba(255,255,255,.96);box-shadow:var(--shadow)}.closing-crown{width:42px;height:42px;margin:0 auto 9px;border-radius:50%;display:grid;place-items:center;background:#fbf1db;color:var(--gold);font-size:20px}.closing-card h2{font:48px/1.03 Georgia,"Times New Roman",serif;color:var(--ink);margin:12px 0}.closing-card h2 em{color:var(--pink);font-weight:500}.closing-card>p:not(.micro-title){max-width:500px;margin:0 auto;line-height:1.7;color:var(--ink-2)}.birthday-symbols{max-width:430px;margin:20px auto 0;line-height:1.8;color:#cf99bd;word-spacing:6px}.wish-button{margin-top:22px;border:0;border-radius:999px;padding:14px 22px;color:white;font-weight:800;background:linear-gradient(135deg,var(--pink),var(--lav));box-shadow:0 14px 30px rgba(164,104,164,.22);cursor:pointer}.family-footer{width:min(100%,760px);margin:30px auto 0;text-align:center;padding:0 8px}.family-footer strong{display:block;font:600 15px/1.8 Georgia,"Times New Roman",serif;color:var(--ink)}.family-footer span{display:block;margin-top:8px;color:var(--pink);font-size:14px;line-height:1.7}

.confetti-layer{position:fixed;inset:0;z-index:1100;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-20px;width:8px;height:14px;border-radius:2px;background:var(--piece-color);transform:rotate(var(--piece-rot));animation:confettiFall var(--piece-dur) linear forwards}.wish-toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));z-index:1150;transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:11px 16px;border-radius:999px;background:rgba(76,46,81,.94);color:white;font-size:12px;font-weight:800;transition:.3s ease}.wish-toast.show{opacity:1;transform:translate(-50%,0)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:none}
@keyframes confettiFall{to{transform:translate(var(--piece-x),110vh) rotate(720deg);opacity:.1}}@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes drift{0%,100%{transform:translate(0,0)}50%{transform:translate(9px,-14px) rotate(9deg)}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(.9)}}
@media(min-width:740px){.page-section{padding-left:30px;padding-right:30px}.birthday-title span{font-size:64px}.birthday-title strong{font-size:94px}.mela-portrait-shell{width:220px;height:220px}.greeting-list{grid-template-columns:1fr 1fr}.guest-card-featured,.guest-card:last-child{grid-column:1/-1}.daddy-card{padding:26px 28px 28px}.section-title h2{font-size:54px}.music-pill{right:24px;top:22px}}
@media(max-width:420px){.page-section{padding-left:16px;padding-right:16px}.intro-panel{padding:28px 18px}.birthday-intro h1{font-size:70px}.birthday-title span{font-size:42px}.birthday-title strong{font-size:67px}.mela-portrait-shell{width:176px;height:176px}.section-title h2{font-size:42px}.daddy-message{font-size:14px;line-height:1.8}.guest-card{padding:16px 14px}.person-avatar{width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;min-height:44px!important;max-height:44px!important;flex-basis:44px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
