@font-face{font-family:"Fraunces Display";src:url("/fonts/fraunces-black-soft.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:"Lato";src:url("/fonts/lato-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Lato";src:url("/fonts/lato-400i.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Lato";src:url("/fonts/lato-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --red:#f6c4d3;
  --red-deep:#eeafc3;
  --cream:#ffffff;
  --cream-soft:#7a2846;
  --ink:#5a1530;
  --split:45%;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"Lato",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--red-deep);color:var(--cream-soft);-webkit-font-smoothing:antialiased}
a{color:inherit}

/* ---------- Desktop / split hero ---------- */
.hero{position:relative;display:grid;grid-template-columns:var(--split) 1fr;min-height:100vh;min-height:100svh;overflow:hidden;isolation:isolate}
.panel{position:relative;background:var(--red);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:clamp(28px,4.5vw,64px) clamp(24px,4vw,64px) clamp(36px,6vh,64px)}
.monogram{position:absolute;top:clamp(28px,6vh,56px);left:clamp(28px,4.5vw,64px);width:44px;height:44px;border:1.5px solid var(--cream);border-radius:50%;display:grid;place-items:center;font-family:"Fraunces Display",Georgia,serif;font-weight:900;font-size:15px;letter-spacing:.02em;color:var(--cream);text-decoration:none;z-index:3}

.intro{text-align:center;max-width:clamp(340px,27vw,520px);margin-bottom:clamp(30px,5vh,64px)}
.welcome{font-size:clamp(16px,1.3vw,24px);line-height:1.5;color:var(--cream-soft)}
.cta{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;padding:12px 30px;border-radius:999px;background:#fff;color:#b0305f;font-weight:700;font-size:clamp(13px,.95vw,16px);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 6px 18px rgba(150,40,80,.22)}
.cta:hover,.cta:focus-visible{background:#fff5f8;transform:translateY(-1px);box-shadow:0 10px 24px rgba(150,40,80,.3)}
.cta:focus-visible{outline:2px solid #b0305f;outline-offset:4px}
.age-note{margin-top:10px;font-size:clamp(11.5px,.8vw,13.5px);letter-spacing:.04em;opacity:.8}

.socials{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 30px}
.socials a{font-size:clamp(13px,.95vw,16px);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--cream-soft);padding:4px 0;border-bottom:1px solid transparent;transition:border-color .2s ease,color .2s ease}
.socials a:hover,.socials a:focus-visible{color:#b0305f;border-color:#b0305f}

.photo{position:relative;min-height:100%;background:#2a1a17}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,8,6,.10) 0%,rgba(30,8,6,0) 30%,rgba(30,8,6,0) 52%,rgba(30,8,6,.42) 100%),linear-gradient(90deg,rgba(150,40,80,.22) 0%,rgba(150,40,80,0) 22%);pointer-events:none}
.sparkle{position:absolute;top:clamp(36px,8vh,72px);right:clamp(36px,5vw,80px);width:34px;height:34px;color:#fff4e4;opacity:.85;z-index:2;filter:drop-shadow(0 0 6px rgba(255,240,220,.6))}
.badge{position:absolute;right:clamp(28px,3vw,44px);bottom:clamp(28px,5vh,48px);width:76px;height:76px;border:1px solid rgba(255,255,255,.9);border-radius:50%;display:grid;place-content:center;text-align:center;font-family:"Fraunces Display",Georgia,serif;font-weight:900;font-size:20px;line-height:1;color:var(--cream);z-index:2;background:rgba(40,10,8,.18);backdrop-filter:blur(2px)}
.badge small{display:block;font-family:"Lato",sans-serif;font-weight:400;font-size:9px;letter-spacing:.22em;text-transform:uppercase;margin-top:4px}

.name{position:absolute;inset:0;pointer-events:none;z-index:2;font-family:"Fraunces Display","Cooper Black",Georgia,serif;font-weight:900;color:var(--cream);line-height:.9;letter-spacing:-.015em;font-size:clamp(110px,16.5vw,260px)}
.name span{position:absolute;white-space:nowrap;text-shadow:0 2px 3px rgba(140,30,70,.28),0 6px 28px rgba(140,30,70,.35)}
.name .first{top:clamp(64px,10.5vh,130px);left:calc(var(--split) - 1.78em)}
.name .last{bottom:max(32vh,230px);left:calc(var(--split) - .5em)}

.footer{background:var(--red-deep);color:#6a1f3b;text-align:center;padding:22px 20px 26px;font-size:13px;opacity:.95}
.footer .small{font-size:11.5px;opacity:.7;margin-top:4px}


/* ---------- Bio: faint editorial accent, top right of photo ---------- */
.bio{position:absolute;z-index:3;top:clamp(116px,15vh,150px);right:clamp(28px,3vw,52px);width:max-content;isolation:isolate;color:#fff;font-size:clamp(12px,.86vw,14px);line-height:1.6;text-shadow:0 1px 2px rgba(40,10,20,.55),0 0 14px rgba(40,10,20,.45)}
.bio::before{content:"";position:absolute;inset:-48px -40px -44px -56px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 55% 50%,rgba(28,8,14,.46) 0%,rgba(28,8,14,.26) 45%,rgba(28,8,14,0) 72%)}
.bio-label{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;opacity:.75;margin:0 0 10px 1.2em}
.bio-label::after{content:"";height:1px;width:28px;background:currentColor;box-shadow:0 0 6px rgba(40,10,20,.5)}
.bio-text{font-style:italic;opacity:.72}
.bio-text .l{display:block}
.bio-text .l2,.bio-text .l6{padding-left:1.2em}
.bio-text .l3,.bio-text .l7{padding-left:2.4em}
.bio-text .l4,.bio-text .l8{padding-left:1.2em}
.bio-text .l9{padding-left:2.4em}
.bio-link{color:#ffc2d6;font-style:normal;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;pointer-events:auto}
.bio-link:hover,.bio-link:focus-visible{color:#ffe0ea}

/* ---------- Tablet / mobile: stacked ---------- */
@media (max-width:899px){
  .hero{display:flex;flex-direction:column;min-height:0}
  .photo{order:1;height:min(70svh,150vw);min-height:480px}
  .photo img{object-position:50% 12%}
  .photo::after{background:linear-gradient(180deg,rgba(30,8,6,.25) 0%,rgba(30,8,6,0) 22%,rgba(30,8,6,0) 50%,rgba(246,196,211,.6) 82%,var(--red) 100%)}
  .panel{order:2;justify-content:flex-start;padding:calc(13vw + 34px) 28px 44px}
  .panel{position:static}
  .monogram{top:22px;left:22px;width:40px;height:40px;font-size:14px}
  .intro{margin-bottom:36px}
  .welcome{font-size:clamp(16px,1.3vw,24px);text-wrap:balance}
  .cta{width:100%;max-width:320px;padding:15px 24px;font-size:13.5px}
  .socials{gap:10px 24px}
  .sparkle{top:24px;right:24px;width:26px;height:26px}
    .badge{display:none}
  .bio{position:static;order:3;width:auto;background:var(--red);color:var(--cream-soft);text-shadow:none;font-size:12.5px;line-height:1.6;padding:0 32px 40px;margin-top:-12px}
  .bio-label{justify-content:center;margin:0 0 8px;color:#fff;opacity:.95}
  .bio-label::before{content:"";height:1px;width:28px;background:currentColor}
  .bio-label::after{box-shadow:none}
  .bio::before{display:none}
  .bio-text{text-align:center;opacity:.7;max-width:34ch;margin:0 auto;text-wrap:balance}
  .bio-text .l{display:inline;padding:0!important}
  .bio-link{color:#b0305f}
  .name{position:absolute;inset:auto 0 auto 0;top:calc(min(70svh,150vw) - 27vw);font-size:clamp(64px,24vw,200px);text-align:center;line-height:.86}
  .name span{position:static;display:block}
  .name .first{margin-left:-18vw}
  .name .last{margin-left:14vw}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
