:root{
  --baby:#7cc9ff;--baby2:#c9ecff;--deep:#185b9d;--navy:#123c68;--cream:#fffaf0;
  --yellow:#ffd96a;--pink:#ffb9d7;--mint:#bff2dc;--white:#fff;--shadow:0 18px 45px rgba(38,103,159,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Nunito',sans-serif;color:var(--navy);overflow-x:hidden;background:#fff}
h1,h2,h3,.navbar-brand,.mini-title{font-family:'Baloo 2',cursive}
.fw-black{font-weight:900}
.baby-nav{background:rgba(255,255,255,.88);backdrop-filter:blur(16px);box-shadow:0 5px 25px rgba(26,90,145,.10)}
.navbar-brand{font-size:1.45rem;color:var(--deep)!important;font-weight:800}.navbar-brand span{color:#4faee9}
.nav-link{font-weight:800;color:var(--navy)!important;border-radius:999px;padding:.55rem .8rem!important}.nav-link:hover{background:var(--baby2)}
.vibe-link{background:var(--yellow)!important}
.hero{position:relative;min-height:100vh;background:radial-gradient(circle at 20% 25%,#fff 0 4%,transparent 5%),linear-gradient(155deg,#dff4ff,#91d6ff 55%,#62baf4);overflow:hidden;padding-top:65px}
.hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 2px,transparent 2px);background-size:44px 44px;opacity:.35}
.arrival-pill{display:inline-block;background:#fff;border:3px solid var(--yellow);border-radius:999px;padding:.55rem 1.1rem;font-weight:900;box-shadow:var(--shadow);transform:rotate(-1deg)}
.display-emoji{font-size:clamp(5rem,12vw,9rem);filter:drop-shadow(0 15px 12px rgba(22,78,128,.18));animation:bob 3s ease-in-out infinite}
.eyebrow{font-weight:900;letter-spacing:.18em;color:#2c75b2}
.hero-title{font-size:clamp(4.5rem,14vw,10rem);line-height:.75;font-weight:800;color:#fff;text-shadow:0 8px 0 rgba(25,91,157,.13),0 18px 30px rgba(20,70,120,.16)}
.hero-title span{display:block;color:var(--deep);font-size:.48em;letter-spacing:.22em;margin-top:.25em}
.hero-copy{max-width:760px;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:700;color:#174f80}
.btn{border-radius:999px;font-weight:900;padding:.85rem 1.35rem;border:0}
.btn-jace{background:linear-gradient(135deg,#1667b1,#258edb);color:#fff;box-shadow:0 10px 25px rgba(20,96,164,.25)}.btn-jace:hover{color:#fff;transform:translateY(-2px)}
.btn-cloud{background:#fff;color:var(--deep);box-shadow:var(--shadow)}.btn-cloud:hover{background:var(--yellow)}
.scroll-cue{font-weight:800;color:#2874ad;animation:bob 2.5s ease-in-out infinite}.scroll-cue span{font-size:2rem}
.hero-bubble{position:absolute;font-size:3rem;animation:float 5s ease-in-out infinite}.bubble-one{left:5%;top:28%}.bubble-two{right:7%;top:23%;animation-delay:-1s}.bubble-three{right:12%;bottom:17%;animation-delay:-2s}
.wave{position:absolute;bottom:-1px;left:-2%;width:104%;height:80px;background:var(--cream);clip-path:polygon(0 58%,8% 45%,17% 61%,27% 42%,38% 59%,50% 39%,62% 60%,74% 42%,86% 58%,100% 43%,100% 100%,0 100%)}
.sky-decor{pointer-events:none}.cloud,.floaty,.star{position:fixed;z-index:0;opacity:.12;font-size:3rem}.c1{top:18%;left:2%}.c2{top:58%;right:2%}.s1{top:35%;right:3%}.s2{bottom:10%;left:3%}.f1{top:70%;left:2%}.f2{top:48%;right:1%}.f3{bottom:22%;right:3%}.f4{top:12%;right:16%}
.section-pad{padding:90px 0;position:relative;z-index:1}.bg-cream{background:var(--cream)}
.section-heading{max-width:760px;margin:auto}.section-heading h2{font-size:clamp(2.6rem,6vw,4.5rem);font-weight:800;color:var(--deep);line-height:.95}.section-heading p{font-size:1.15rem;font-weight:700;color:#55758e}
.mini-title{font-weight:800;color:#2d91cf;letter-spacing:.08em;margin-bottom:.65rem}
.fact-card{height:100%;background:#fff;border:3px solid #d8efff;border-radius:28px;padding:1.4rem .8rem;text-align:center;box-shadow:var(--shadow);transition:.25s}.fact-card:hover{transform:translateY(-7px) rotate(-1deg);border-color:var(--yellow)}
.fact-icon{font-size:2.6rem}.fact-card small{display:block;color:#5891b8;font-weight:900;letter-spacing:.08em;margin:.4rem 0}.fact-card strong{display:block;font-size:1.05rem}
.love-note{max-width:820px;background:#fff6b9;border-radius:18px;padding:2rem 2.2rem;box-shadow:var(--shadow);transform:rotate(-.5deg);position:relative;border:2px dashed #f0c849}.love-note h3{font-size:2.2rem;font-weight:800}.love-note p{font-size:1.08rem}.love-note-pin{position:absolute;right:18px;top:-20px;font-size:2.6rem}
.memories-section{background:linear-gradient(#eef9ff,#fff)}
.filter-wrap{margin-top:2rem}.memory-filter{border:2px solid #cdeaff;background:#fff;color:var(--deep);border-radius:999px;padding:.65rem 1rem;font-weight:900}.memory-filter span{background:#eaf7ff;border-radius:999px;padding:.15rem .45rem;margin-left:.25rem}.memory-filter.active{background:var(--deep);color:#fff;border-color:var(--deep)}
.memory-card{border:0;background:#fff;padding:.6rem;border-radius:24px;box-shadow:var(--shadow);text-align:left;transition:.25s;overflow:hidden}.memory-card:hover{transform:translateY(-7px) rotate(1deg)}
.media-frame{position:relative;aspect-ratio:1/1.08;border-radius:18px;overflow:hidden;background:#dcefff}.media-frame img,.media-frame video{width:100%;height:100%;object-fit:cover;display:block}
.media-badge{position:absolute;left:10px;top:10px;background:rgba(255,255,255,.9);padding:.35rem .55rem;border-radius:999px;font-size:.72rem;font-weight:900}
.play-button{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);font-size:2.2rem;color:var(--deep);box-shadow:0 8px 25px rgba(0,0,0,.2)}
.memory-caption{text-align:center;padding:.8rem .3rem .3rem;font-weight:900;color:var(--deep);font-size:.83rem}
.empty-memory{max-width:700px;background:#fff;border:3px dashed #8bd0fb;border-radius:30px;padding:3rem 2rem;box-shadow:var(--shadow)}.empty-emoji{font-size:4rem}.empty-memory h3{font-size:2rem;font-weight:800}
.memory-modal{border:0;border-radius:25px;background:#0d2740;overflow:hidden}.memory-modal img,.memory-modal video{max-height:85vh;max-width:100%;border-radius:16px}.modal-close{position:absolute;right:15px;top:15px;z-index:5;background-color:#fff;border-radius:50%;padding:.7rem;opacity:1}
.journey-section{background:#fff8df}.timeline{max-width:780px;margin-top:3rem}.timeline-item{display:grid;grid-template-columns:75px 1fr;gap:1rem;position:relative;padding-bottom:2.5rem}.timeline-item:before{content:"";position:absolute;left:36px;top:68px;bottom:0;width:4px;background:#b9ddf5}.timeline-item:last-child:before{display:none}.timeline-dot{width:72px;height:72px;background:#fff;border:4px solid var(--baby);border-radius:50%;display:grid;place-items:center;font-size:2rem;box-shadow:var(--shadow)}.timeline-item h3{font-weight:800;font-size:1.7rem;margin:.15rem 0}.timeline-item small{font-weight:900;color:#398cc6}.timeline-item p{font-weight:700;color:#627b8c}.timeline-item.future{opacity:.7}
.good-vibes-cta{background:linear-gradient(135deg,#9bdcff,#d9f3ff 55%,#fff3a8)}.good-vibes-cta h2{font-family:'Baloo 2';font-size:clamp(2.6rem,6vw,4.5rem);font-weight:800;color:var(--deep)}.good-vibes-cta p{font-size:1.15rem;font-weight:700;max-width:700px;margin:0 auto 1.5rem}.cta-emoji{font-size:4rem}.email-jace{font-weight:800}.email-jace a{color:var(--deep)}
.jace-footer{background:#123c68;color:#dff4ff;padding:55px 0}.jace-footer h3{font-size:2.4rem;font-weight:800;color:#fff}.footer-icons{font-size:1.8rem;letter-spacing:.15em;margin-bottom:1rem}
@keyframes bob{50%{transform:translateY(-10px)}}@keyframes float{50%{transform:translateY(-18px) rotate(7deg)}}
@media(max-width:767px){.section-pad{padding:65px 0}.hero-bubble{font-size:2rem}.bubble-one{top:20%}.bubble-three{bottom:13%}.fact-card{padding:1rem .45rem}.fact-icon{font-size:2.2rem}.love-note{padding:1.5rem}.media-frame{aspect-ratio:1/1.15}.timeline-item{grid-template-columns:60px 1fr}.timeline-dot{width:58px;height:58px;font-size:1.6rem}.timeline-item:before{left:28px;top:55px}.navbar-collapse{background:rgba(255,255,255,.96);border-radius:20px;padding:10px;margin-top:8px}}

.jace-hero-photo-wrap{
  width:clamp(150px,24vw,230px);
  height:clamp(150px,24vw,230px);
  margin:1rem auto 1.2rem;
  padding:7px;
  border-radius:50%;
  background:linear-gradient(135deg,#fff,#ffd96a,#7cc9ff,#fff);
  box-shadow:0 18px 40px rgba(20,70,120,.22),0 0 0 8px rgba(255,255,255,.35);
  animation:bob 3s ease-in-out infinite;
  position:relative;
}
.jace-hero-photo-wrap:after{
  content:"💙";
  position:absolute;
  right:-10px;
  bottom:8px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  box-shadow:0 8px 20px rgba(20,70,120,.18);
  font-size:1.5rem;
}
.jace-hero-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  display:block;
  border:4px solid #fff;
}
