@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Rubik:wght@300;400;500;600;700&display=swap');

:root{
  --pink:#eb879c;
  --pink-2:#ffb6c1;
  --pink-wash:#fff1f4;
  --pink-ink:#c2566f;
  --ink:#26171a;
  --line:#f2ccd5;
  --line-2:#e7b3c0;
  --paper:#ffffff;
  --bg:#fff9fa;
  --mute:#6d5259;
  --r:4px;
  --rail:15rem;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  padding-left:var(--rail);
  background:var(--bg);
  color:var(--ink);
  font-family:'Rubik',-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}

img{display:block;max-width:100%;height:auto}

a{color:var(--pink-ink)}

:focus-visible{
  outline:2px solid var(--pink);
  outline-offset:3px;
  border-radius:var(--r);
}

/* 左侧固定竖栏 */
.rail{
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  width:var(--rail);
  z-index:30;
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  padding:1.3rem 1.1rem 2rem;
  background:var(--paper);
  border-right:1px solid var(--line);
  overflow-y:auto;
}

.brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.3rem .15rem;
  text-decoration:none;
  color:var(--ink);
}

.brand-mark{
  width:2.1rem;
  height:2.1rem;
  border-radius:50%;
  border:1px solid var(--line-2);
  object-fit:cover;
}

.brand-t{
  font-family:'Outfit',sans-serif;
  font-weight:700;
  font-size:1rem;
  line-height:1.25;
  letter-spacing:.02em;
}

.finder{padding:.1rem .15rem}

.finder-l{
  display:block;
  margin-bottom:.35rem;
  font-size:16px;
  color:var(--mute);
}

#q{
  width:100%;
  font:inherit;
  font-size:16px;
  padding:.5rem .9rem;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:999px;
}

#q::placeholder{color:#9a8088}

.rail-nav ol,
.aside-nav ol,
.foot-nav ol{
  list-style:none;
  margin:0;
  padding:0;
}

.rail-nav li + li{margin-top:.4rem}

.rail-nav a{
  display:block;
  min-height:42px;
  padding:.6rem .95rem;
  font-size:16px;
  line-height:1.4;
  color:var(--ink);
  text-decoration:none;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:999px;
  transition:background .22s ease,border-color .22s ease;
}

.rail-nav a:hover{
  background:var(--pink-wash);
  border-color:var(--line-2);
}

.rail-nav li.off{display:none}

/* 主区 */
main [id]{scroll-margin-top:1.5rem}

.hero{
  position:relative;
  min-height:70vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:4.5rem 3rem 0;
  overflow:hidden;
  background:linear-gradient(158deg,#fff4f7 0%,#ffe6ec 58%,#ffd7e1 100%);
  border-bottom:1px solid var(--line);
}

.hero-txt{
  max-width:44rem;
  padding-bottom:3rem;
}

.hero h1{
  margin:0 0 1rem;
  font-family:'Outfit',sans-serif;
  font-weight:700;
  font-size:clamp(2rem,6vw,4.2rem);
  line-height:1.05;
  letter-spacing:-.02em;
  overflow-wrap:anywhere;
}

.lede{
  margin:0 0 1.6rem;
  max-width:32rem;
  font-size:17px;
  color:var(--mute);
}

.hero-cue{margin:0}

.hero-cue a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.45rem 1.35rem;
  font-size:16px;
  font-weight:500;
  color:var(--ink);
  text-decoration:none;
  border:1px solid var(--ink);
  border-radius:999px;
  transition:background .22s ease,color .22s ease;
}

.hero-cue a:hover{background:var(--ink);color:#fff}

.strip{
  display:flex;
  height:14px;
  clip-path:polygon(0 100%,100% 0,100% 100%);
}

.strip span{flex:1}
.strip span:nth-child(1){background:var(--pink)}
.strip span:nth-child(2){background:var(--pink-2)}
.strip span:nth-child(3){background:var(--ink)}

.wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 17rem;
  gap:3rem;
  align-items:start;
  max-width:78rem;
  margin:0 auto;
  padding:3.4rem 3rem 4rem;
}

.body-sec{min-width:0}

/* 正文排版 */
.doc > div{
  padding:0 0 2.2rem;
  margin:0 0 2.2rem;
  border-bottom:1px solid var(--line);
}

.doc > div:last-child{
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:0;
}

.doc small{
  display:block;
  margin-bottom:.45rem;
  font-family:'Rubik',sans-serif;
  font-size:16px;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--pink-ink);
}

.doc h2{
  margin:0 0 1rem;
  font-family:'Outfit',sans-serif;
  font-weight:700;
  font-size:clamp(1.45rem,2.6vw,1.95rem);
  line-height:1.22;
  letter-spacing:-.01em;
}

.doc h3{
  margin:1.8rem 0 .55rem;
  font-family:'Outfit',sans-serif;
  font-weight:600;
  font-size:1.15rem;
  line-height:1.35;
}

.doc p{margin:0 0 1.1rem}
.doc p:last-child{margin-bottom:0}

.doc ul,
.doc ol{
  margin:0 0 1.2rem;
  padding-left:1.35rem;
}

.doc li{margin-bottom:.45rem}

.doc a{text-decoration:underline;text-underline-offset:3px}

.doc blockquote{
  margin:0 0 1.2rem;
  padding:.9rem 1.1rem;
  background:var(--pink-wash);
  border-left:3px solid var(--pink);
  border-radius:var(--r);
}

.doc blockquote p:last-child{margin-bottom:0}

.doc strong{font-weight:600}

/* 右侧目录 */
.aside{
  position:sticky;
  top:1.5rem;
  padding:1.1rem;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--r);
}

.aside small{
  display:block;
  margin-bottom:.3rem;
  font-size:16px;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--pink-ink);
}

.aside h3{
  margin:0 0 .8rem;
  font-family:'Outfit',sans-serif;
  font-size:1rem;
  font-weight:600;
}

.aside-nav li + li{margin-top:.25rem}

.aside-nav a{
  display:block;
  min-height:40px;
  padding:.45rem .55rem;
  font-size:16px;
  line-height:1.4;
  color:var(--ink);
  text-decoration:none;
  border-radius:var(--r);
  transition:background .22s ease;
}

.aside-nav a:hover{background:var(--pink-wash)}

.to-top{
  display:block;
  min-height:42px;
  margin-top:.9rem;
  padding:.5rem;
  font-size:16px;
  line-height:1.4;
  text-align:center;
  text-decoration:none;
  color:var(--ink);
  border:1px solid var(--line-2);
  border-radius:999px;
}

/* 底部大块 */
.cta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  max-width:78rem;
  margin:0 auto 4rem;
  padding:2.5rem 3rem;
  background:linear-gradient(118deg,#ffe9ef,#ffd6e0);
  border:1px solid var(--line-2);
  border-radius:var(--r);
}

.cta h2{
  margin:0;
  font-family:'Outfit',sans-serif;
  font-size:clamp(1.35rem,2.6vw,1.85rem);
  line-height:1.2;
}

.cta a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:.45rem 1.4rem;
  font-size:16px;
  color:var(--ink);
  text-decoration:none;
  background:var(--paper);
  border:1px solid var(--ink);
  border-radius:999px;
}

.cta a:hover{background:var(--ink);color:#fff}

/* 页脚单行 */
footer{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1rem 1.2rem;
  padding:1.3rem 3rem 1.5rem;
  background:var(--paper);
  border-top:1px solid var(--line);
}

.foot-brand{
  display:flex;
  align-items:center;
  gap:.5rem;
}

.foot-brand img{
  width:1.8rem;
  height:1.8rem;
  border-radius:50%;
  border:1px solid var(--line-2);
  object-fit:cover;
}

.foot-brand span{
  font-family:'Outfit',sans-serif;
  font-size:16px;
  font-weight:600;
}

.foot-nav ol{
  display:flex;
  flex-wrap:wrap;
  gap:.15rem .4rem;
}

.foot-nav a{
  display:block;
  min-height:40px;
  padding:.45rem .7rem;
  font-size:16px;
  line-height:1.4;
  color:var(--ink);
  text-decoration:none;
  border-radius:var(--r);
}

.foot-nav a:hover{background:var(--pink-wash)}

.foot-copy{
  flex:1 1 8rem;
  min-width:8rem;
  font-size:16px;
  color:var(--mute);
  text-align:center;
}

/* 滚动显现 */
.rv{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .28s ease,transform .28s ease;
}

.rv.in{opacity:1;transform:none}

/* 色带轮转 */
@media (prefers-reduced-motion: no-preference){
  .strip span{animation:band 6s ease-in-out infinite}
  .strip span:nth-child(2){animation-delay:.45s}
  .strip span:nth-child(3){animation-delay:.9s}
}

@keyframes band{
  0%,100%{opacity:1}
  50%{opacity:.5}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .rv{opacity:1;transform:none}
}

/* 窄屏 */
@media (max-width:960px){
  body{padding-left:0}

  .rail{
    position:sticky;
    top:0;
    left:auto;
    bottom:auto;
    width:auto;
    flex-wrap:wrap;
    flex-direction:row;
    align-items:center;
    gap:.5rem;
    padding:.55rem .8rem .6rem;
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .brand{order:1;flex:0 1 auto}

  .finder{
    order:2;
    display:flex;
    align-items:center;
    gap:.45rem;
    flex:1 1 9rem;
    min-width:0;
    padding:0;
  }

  .finder-l{margin:0;flex:0 0 auto}

  #q{min-width:0}

  .rail-nav{
    order:3;
    flex:1 1 100%;
    min-width:0;
    max-width:100%;
  }

  .rail-nav ol{
    display:flex;
    gap:.4rem;
    padding-bottom:.25rem;
    overflow-x:auto;
  }

  .rail-nav li + li{margin-top:0}

  .rail-nav a{
    white-space:nowrap;
    padding:.5rem .85rem;
  }

  main [id]{scroll-margin-top:9.5rem}

  .hero{
    min-height:58vh;
    padding:2.4rem 1.2rem 0;
  }

  .hero-txt{padding-bottom:2.2rem}

  .wrap{
    grid-template-columns:1fr;
    gap:2rem;
    padding:2rem 1.2rem 2.5rem;
  }

  .aside{position:static}

  .cta{
    margin:0 1.2rem 2.5rem;
    padding:1.6rem 1.2rem;
  }

  footer{padding:1.1rem 1.2rem 1.3rem;gap:.6rem}

  .foot-copy{order:3;flex:1 1 100%}
}

@media (max-width:420px){
  .hero h1{font-size:1.9rem}
  .finder-l{display:none}
}

button[aria-expanded]{min-width:44px;min-height:44px}
