
:root{
  --navy:#0e2d4a;
  --blue:#1e73be;
  --paper:#f7f9fb;
  --soft:#eef4f8;
  --line:#dce6ee;
  --ink:#18324a;
  --muted:#60758a;
  --white:#fff;
  --shadow:0 14px 35px rgba(15,45,74,.10);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff}
a{text-decoration:none;color:inherit}
button{font:inherit}
.topbar{position:sticky;top:0;z-index:20;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid #eef2f5}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{font-size:42px;line-height:1;color:var(--navy);transform:rotate(-10deg)}
.brand strong{display:block;letter-spacing:.06em}
.brand span{display:block;font-family:cursive;color:#425d72;font-size:.92rem}
nav{display:flex;gap:28px;font-weight:650;font-size:.95rem}
nav a{padding:8px 0;border-bottom:2px solid transparent}
nav a:hover{border-color:var(--blue);color:var(--blue)}
.menu-btn{display:none;border:0;background:none;font-size:1.6rem;color:var(--navy)}
.hero{position:relative;height:min(70vh,720px);min-height:540px;overflow:hidden}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.45) 35%,rgba(0,0,0,.06) 65%,rgba(0,0,0,.2) 100%)}
.hero-copy{position:absolute;left:5vw;top:50%;transform:translateY(-50%);max-width:520px}
.eyebrow{font-size:.8rem;font-weight:800;letter-spacing:.18em;color:#49677e}
.hero-copy h1{font-size:clamp(3rem,6vw,6rem);line-height:.88;margin:.2em 0;color:var(--navy)}
.hero-copy h1 span{font-family:cursive;font-weight:500;font-size:.86em}
.hero-copy>p:not(.eyebrow){font-size:1.15rem;max-width:420px}
.hero-note{position:absolute;right:4vw;bottom:5vh;color:white;font-family:cursive;font-size:1.5rem;text-shadow:0 2px 15px rgba(0,0,0,.5)}
.btn{display:inline-block;border-radius:999px;padding:13px 22px;font-weight:800;border:0;cursor:pointer}
.primary{background:var(--navy);color:white;box-shadow:var(--shadow)}
.secondary{background:white;color:var(--navy);border:1px solid var(--line)}
.cards-wrap{padding:52px 4vw 70px;background:linear-gradient(#fff,#f6f9fb)}
.section-heading{margin-bottom:28px}
.section-heading span{font-size:.8rem;font-weight:800;letter-spacing:.18em;color:var(--blue);text-transform:uppercase}
.section-heading h2{font-size:clamp(2rem,4vw,3.3rem);margin:.25em 0 .15em;color:var(--navy)}
.section-heading p{color:var(--muted);max-width:760px}
.centered{text-align:center;margin-left:auto;margin-right:auto}
.centered p{margin-left:auto;margin-right:auto}
.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.card{padding:26px 18px 22px;background:white;border:1px solid #edf2f5;border-radius:22px;box-shadow:var(--shadow);transition:.2s transform,.2s box-shadow}
.card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(15,45,74,.15)}
.icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#edf6ff;font-size:1.55rem}
.card h3{margin:16px 0 7px}
.card p{font-size:.92rem;color:var(--muted);min-height:48px}
.card span{color:var(--blue);font-weight:750;font-size:.9rem}
.section{padding:88px 5vw}
.soft{background:var(--soft)}
.family-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1000px;margin:40px auto 0}
.person{background:white;border-radius:24px;padding:28px;text-align:center;box-shadow:var(--shadow)}
.avatar{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;margin:auto;background:linear-gradient(135deg,#dcecf8,#f4f8fb);font-weight:900;font-size:1.4rem;color:var(--navy)}
.person h3{margin:14px 0 2px}.person p{margin:0;color:var(--muted)}
.genealogy-section{background:#fbfcfd}
.tree-toolbar{display:flex;justify-content:center;gap:12px;margin:26px 0}
.tree{max-width:1000px;margin:0 auto;padding:36px 20px;background:white;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow)}
.generation{display:flex;justify-content:center;gap:26px;flex-wrap:wrap}
.tree-person{min-width:190px;padding:18px 20px;border-radius:18px;background:white;border:2px solid #d8e6f1;box-shadow:0 8px 22px rgba(15,45,74,.07);color:var(--ink);cursor:pointer}
.tree-person b,.tree-person span{display:block}.tree-person span{margin-top:5px;color:var(--muted);font-size:.88rem}
.tree-person.active:hover{border-color:var(--blue);transform:translateY(-2px)}
.placeholder{border-style:dashed;background:#fafcfd}
.connector{height:54px;width:2px;background:#b9d0e1;margin:0 auto}
.hidden-branch{display:none}
.person-panel{max-width:740px;margin:24px auto 0;border-radius:20px;background:var(--soft);padding:22px 26px}
.person-panel h3{margin-top:0}
.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.memory-card{border-radius:22px;padding:30px;background:linear-gradient(145deg,#f9fbfd,#edf4f8);border:1px solid #e6eef4}
.memory-card span{font-size:2rem}.memory-card h3{margin-bottom:8px}.memory-card p{color:var(--muted)}
.contact{display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:center;background:var(--navy);color:white}
.contact h2{font-size:clamp(2rem,4vw,3rem);margin:.2em 0}.contact p{color:#d9e6ef;max-width:720px}
.contact-box{padding:26px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:22px}
.contact-box>*{display:block;margin:6px 0}
footer{padding:32px 5vw;background:#081e32;color:#d7e3ec;display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-brand .brand-mark, .footer-brand strong{color:#fff}.footer-brand span{color:#c7d5e1}

@media (max-width:1100px){
  .cards{grid-template-columns:repeat(3,1fr)}
  .memory-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .menu-btn{display:block}
  nav{position:absolute;top:78px;left:0;right:0;display:none;flex-direction:column;background:white;padding:20px 5vw;gap:10px;border-bottom:1px solid var(--line)}
  nav.open{display:flex}
  .hero{height:72vh;min-height:620px}
  .hero-img{object-position:60% center}
  .hero-overlay{background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.48) 55%,rgba(0,0,0,.15))}
  .hero-copy{top:34%;left:7vw;right:7vw;max-width:none}
  .hero-copy h1{font-size:3.1rem}
  .hero-note{right:6vw;bottom:5vh;font-size:1.2rem}
  .family-grid{grid-template-columns:repeat(2,1fr)}
  .contact{grid-template-columns:1fr}
}
@media (max-width:560px){
  .topbar{padding:0 18px}
  .brand strong{font-size:.88rem}.brand span{font-size:.78rem}
  .cards{grid-template-columns:1fr}
  .family-grid,.memory-grid{grid-template-columns:1fr}
  .section{padding:64px 20px}.cards-wrap{padding:44px 20px}
  .hero{min-height:660px}
  .hero-copy{top:31%}
  .hero-copy h1{font-size:2.65rem}
  .hero-note{max-width:70%;text-align:right}
  footer{flex-direction:column;align-items:flex-start}
}
