
:root{
  --cream:#fffaf5;
  --paper:#fffefe;
  --peach:#ffb58c;
  --peach-2:#ffd1bd;
  --pink:#ee88a8;
  --rose:#bf5d78;
  --plum:#6d4d63;
  --gray:#746871;
  --soft:#f7ecef;
  --line:rgba(183,112,125,.18);
  --shadow:0 18px 45px rgba(177,91,112,.14);
  --radius:28px;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  color:var(--plum);
  background:
    radial-gradient(circle at 12% 5%, rgba(255,205,179,.52), transparent 32rem),
    radial-gradient(circle at 90% 12%, rgba(238,136,168,.23), transparent 28rem),
    linear-gradient(180deg,#fff9f4 0%,#fffefe 42%,#fff7f9 100%);
  line-height:1.82;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
p{margin:0 0 1em}
.site-header{
  position:sticky; top:0; z-index:20;
  backdrop-filter: blur(18px);
  background:rgba(255,250,245,.82);
  border-bottom:1px solid var(--line);
}
.nav{
  max-width:var(--max); margin:auto; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.brand{
  display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.02em;
}
.brand-mark{
  width:42px; height:42px; border-radius:16px;
  background:linear-gradient(135deg,var(--pink),var(--peach));
  color:white; display:grid; place-items:center; box-shadow:0 12px 24px rgba(238,136,168,.25);
}
.nav-links{display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end}
.nav-links a{
  padding:9px 13px; border-radius:999px; color:#7a5f69; font-size:15px;
}
.nav-links a:hover,.nav-links a.active{background:rgba(255,213,199,.55); color:var(--rose)}
.hero{
  max-width:var(--max); margin:0 auto; padding:58px 20px 36px;
  display:grid; grid-template-columns:1.05fr .95fr; gap:36px; align-items:center;
}
.kicker{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:999px; background:rgba(255,255,255,.7);
  border:1px solid var(--line); color:var(--rose); font-size:14px;
  box-shadow:0 10px 24px rgba(190,97,126,.08);
}
h1,h2,h3{line-height:1.25; margin:0 0 16px; color:#5d4055}
h1{font-size:clamp(38px,6vw,66px); letter-spacing:-.04em}
h2{font-size:clamp(28px,4.2vw,44px); letter-spacing:-.03em}
h3{font-size:22px}
.lead{font-size:clamp(18px,2.2vw,22px); color:#7a6870; max-width:660px}
.btn-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:26px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; border-radius:999px; padding:13px 20px; min-height:48px;
  font-weight:700; box-shadow:0 14px 30px rgba(199,99,123,.18);
}
.btn-primary{background:linear-gradient(135deg,var(--pink),var(--peach)); color:white}
.btn-ghost{background:rgba(255,255,255,.78); color:var(--rose); border:1px solid var(--line)}
.hero-card{
  position:relative; border-radius:36px; overflow:hidden; background:white; box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.7);
}
.hero-card img{width:100%; aspect-ratio:4/3; object-fit:cover}
.chat-float{
  position:absolute; left:22px; right:22px; bottom:22px;
  display:grid; gap:10px;
}
.bubble{
  width:max-content; max-width:88%; padding:11px 15px; border-radius:20px;
  background:rgba(255,255,255,.85); color:#725866; box-shadow:0 12px 30px rgba(93,64,85,.12);
  font-size:14px;
}
.bubble.me{justify-self:end; background:linear-gradient(135deg,#ffe7dd,#fff); color:#b25d72}
.section{max-width:var(--max); margin:0 auto; padding:52px 20px}
.section-narrow{max-width:880px}
.section-head{display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px}
.section-head p{max-width:560px; color:#7d6d75}
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.card-grid.two{grid-template-columns:repeat(2,1fr)}
.card-grid.four{grid-template-columns:repeat(4,1fr)}
.card{
  background:rgba(255,255,255,.78); border:1px solid rgba(183,112,125,.14);
  border-radius:var(--radius); padding:22px; box-shadow:var(--shadow);
  position:relative; overflow:hidden;
}
.card::before{
  content:""; position:absolute; inset:auto -70px -80px auto; width:180px; height:180px;
  background:radial-gradient(circle,rgba(255,181,140,.22),transparent 68%);
}
.card > *{position:relative}
.photo-card{padding:0; overflow:hidden}
.photo-card img{aspect-ratio:1.24/1; object-fit:cover; width:100%}
.photo-card .cap{padding:18px 20px}
.tag{
  display:inline-flex; padding:6px 10px; border-radius:999px;
  background:#fff0ee; color:var(--rose); font-size:13px; margin-bottom:10px;
}
.soft-panel{
  border-radius:38px; background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,239,233,.72));
  border:1px solid rgba(183,112,125,.14); box-shadow:var(--shadow); padding:32px;
}
.story{
  display:grid; grid-template-columns:86px 1fr; gap:16px; align-items:start;
}
.avatar{
  width:70px;height:70px;border-radius:26px;display:grid;place-items:center;
  background:linear-gradient(135deg,#ffe0d2,#f5b4c8); color:white; font-weight:800; font-size:24px;
  box-shadow:0 12px 24px rgba(190,97,126,.16);
}
.stars{color:#f3a046; letter-spacing:1px; font-size:14px; margin-bottom:5px}
.faq details{
  background:rgba(255,255,255,.8); border:1px solid var(--line); border-radius:22px; padding:16px 18px;
  box-shadow:0 12px 28px rgba(177,91,112,.08);
}
.faq details + details{margin-top:12px}
.faq summary{cursor:pointer; font-weight:800; color:#654359}
.faq p{margin:.65em 0 0; color:#7d6d75}
.cta{
  max-width:var(--max); margin:52px auto; padding:0 20px;
}
.cta-inner{
  border-radius:42px; padding:44px 28px; text-align:center;
  background:linear-gradient(135deg,#ff8fad,#ffbf8f);
  color:white; box-shadow:0 24px 60px rgba(211,103,128,.24);
}
.cta-inner h2{color:white}
.cta-inner p{max-width:680px; margin:0 auto 22px; color:rgba(255,255,255,.9)}
.footer{
  background:#5f4054; color:#fff7f8; margin-top:60px;
}
.footer-inner{max-width:var(--max); margin:auto; padding:42px 20px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:22px}
.footer a{color:#ffe4dc}
.footer small{color:rgba(255,255,255,.72)}
.footer-list{display:grid; gap:8px}
.page-hero{
  max-width:var(--max); margin:auto; padding:58px 20px 20px;
  display:grid; grid-template-columns:1fr .72fr; gap:28px; align-items:center;
}
.page-hero .photo-card{box-shadow:var(--shadow); border-radius:36px; background:#fff}
.prose{
  max-width:900px; margin:auto; color:#756870; font-size:17px;
}
.prose h2{margin-top:32px}
.prose .note{
  padding:20px; border-radius:24px; background:rgba(255,255,255,.72); border:1px solid var(--line);
  box-shadow:0 12px 28px rgba(177,91,112,.08);
}
.timeline{display:grid; gap:16px}
.timeline-item{
  display:grid; grid-template-columns:48px 1fr; gap:14px; align-items:start;
}
.timeline-dot{
  width:42px;height:42px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(135deg,#ff9eb8,#ffc49a);color:white;font-weight:800;
}
.image-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:22px 0}
.image-strip img{border-radius:24px; box-shadow:0 14px 32px rgba(177,91,112,.12)}
.inline-links{display:flex; flex-wrap:wrap; gap:10px; margin-top:12px}
.inline-links a{padding:8px 12px; border-radius:999px; background:rgba(255,237,232,.78); color:#a6536b}
@media (max-width: 860px){
  .hero,.page-hero{grid-template-columns:1fr; padding-top:32px}
  .nav{align-items:flex-start; flex-direction:column}
  .nav-links{justify-content:flex-start}
  .card-grid,.card-grid.two,.card-grid.four{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
  .section-head{display:block}
  .image-strip{grid-template-columns:1fr}
  .story{grid-template-columns:1fr}
}
@media (max-width: 520px){
  body{line-height:1.75}
  .nav-links a{font-size:14px; padding:7px 10px}
  .hero,.section,.page-hero{padding-left:16px;padding-right:16px}
  .soft-panel,.card{border-radius:24px;padding:20px}
  .hero-card{border-radius:28px}
  .btn{width:100%}
}
