@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');

*,*::before,*::after{box-sizing:border-box}

:root{
  --ink:#1f1726;
  --deep:#120c18;
  --violet:#56228b;
  --clay:#8b4513;
  --cream:#f4ecdc;
  --text:#ddd0e7;
  --line:rgba(244,236,220,.16);
  --brass:#d9a45f;
  --lilac:#c9a3f0;
  --r-sm:4px;
  --serif:"Cormorant Garamond","Libre Baskerville",Georgia,"Songti SC","Noto Serif SC",serif;
  --body:"Libre Baskerville",Georgia,"Noto Serif SC","Songti SC",serif;
}

html{
  scroll-behavior:smooth;
  background-color:var(--ink);
  background-image:
    radial-gradient(70% 45% at 88% -5%, rgba(86,34,139,.55), transparent 68%),
    radial-gradient(55% 45% at 0 40%, rgba(139,69,19,.42), transparent 70%),
    linear-gradient(180deg,#20172a 0%,#170f1e 60%,var(--deep) 100%);
  background-attachment:fixed;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  font-family:var(--body);
  font-size:17px;
  line-height:1.78;
  color:var(--text);
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.3;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

a{color:var(--brass)}
a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:2px solid var(--lilac);
  outline-offset:3px;
}

.sr{
  position:absolute;
  width:1px;height:1px;
  margin:-1px;padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

/* 导航：细条 + 居中品牌 + 双侧胶囊 */
.mast{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(24,16,32,.84);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line);
}

.ticker{
  margin:0;
  padding:.55rem 1.2rem;
  max-height:6rem;
  overflow:hidden;
  font-size:16px;
  line-height:1.4;
  letter-spacing:.14em;
  text-align:center;
  color:#d08a52;
  border-bottom:1px dashed rgba(244,236,220,.12);
  transition:max-height .3s ease,opacity .3s ease,padding .3s ease;
}

.mast.tight .ticker{
  max-height:0;
  opacity:0;
  padding-top:0;
  padding-bottom:0;
  border-bottom-color:transparent;
}

.rail{
  display:flex;
  align-items:center;
  gap:.5rem;
  max-width:1180px;
  margin:0 auto;
  padding:.5rem 1rem;
}

.wing{
  display:flex;
  gap:.4rem;
  flex:1 1 0;
  min-width:0;
  margin:0;
  padding:0;
  list-style:none;
}

.wing-a{justify-content:flex-end}
.wing-b{justify-content:flex-start}

.pill{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:.35rem .95rem;
  font-size:16px;
  line-height:1.2;
  white-space:nowrap;
  text-decoration:none;
  color:var(--cream);
  background:rgba(255,255,255,.045);
  border:1px solid rgba(244,236,220,.22);
  border-radius:999px;
  transition:background .25s,border-color .25s,color .25s,transform .25s;
}

.pill:hover,
.pill:focus-visible{
  background:rgba(86,34,139,.6);
  border-color:rgba(201,163,240,.6);
  color:#fff;
  transform:translateY(-1px);
}

.seal{
  flex:0 0 auto;
  padding:.3rem .9rem;
  font-family:var(--serif);
  font-size:1.55rem;
  font-weight:600;
  letter-spacing:.1em;
  white-space:nowrap;
  text-decoration:none;
  color:var(--cream);
  border-radius:999px;
  background:linear-gradient(140deg,rgba(86,34,139,.6),rgba(139,69,19,.5));
}

/* 首屏 */
.crest{
  position:relative;
  display:grid;
  align-content:end;
  min-height:calc(100svh - 7.4rem);
  padding:6vh 6vw 14vh;
  overflow:hidden;
}

.crest-title{
  position:relative;
  z-index:1;
  margin:0;
  max-width:16ch;
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(2.3rem,7.6vw,6.4rem);
  line-height:1.04;
  letter-spacing:.01em;
  color:var(--cream);
  text-shadow:0 18px 44px rgba(0,0,0,.5);
}

.crest::before{
  content:"";
  position:absolute;
  z-index:0;
  top:4vh;
  right:-8vw;
  width:min(70vw,640px);
  aspect-ratio:1;
  border-radius:44% 56% 62% 38% / 52% 44% 56% 48%;
  background:radial-gradient(circle at 35% 30%,rgba(139,69,19,.6),rgba(86,34,139,.28) 55%,transparent 72%);
  filter:blur(4px);
}

.crest::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:84px;
  opacity:.92;
  background:linear-gradient(90deg,var(--violet),var(--clay));
  clip-path:polygon(0 62%,100% 0,100% 100%,0 100%);
}

/* 主体两栏 */
.body{
  display:grid;
  grid-template-columns:minmax(0,1fr) 286px;
  align-items:start;
  gap:2.2rem;
  max-width:1180px;
  margin:0 auto;
  padding:4rem 1.2rem 6rem;
}

.sheet{min-width:0}

.sheet section{
  position:relative;
  margin:0 0 1.9rem;
  padding:2rem 1.8rem;
  overflow-wrap:anywhere;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:linear-gradient(155deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  box-shadow:0 22px 44px -30px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.07);
  scroll-margin-top:8.5rem;
  animation:rise .65s ease both;
}

.sheet section:nth-child(even){
  border-radius:26px 4px 26px 4px;
  background:linear-gradient(200deg,rgba(139,69,19,.16),rgba(255,255,255,.02));
}

@keyframes rise{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:none}
}

.sheet h2{
  margin:.2rem 0 .85rem;
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(1.5rem,3.6vw,2.1rem);
  line-height:1.22;
  letter-spacing:.01em;
  color:var(--cream);
}

.sheet h2::before{
  content:"";
  display:inline-block;
  width:.6em;
  height:.6em;
  margin-right:.5em;
  vertical-align:.06em;
  border-radius:52% 48% 40% 60% / 46% 58% 42% 54%;
  background:linear-gradient(150deg,var(--clay),var(--violet));
}

.sheet h3{
  margin:1.7rem 0 .6rem;
  font-family:var(--serif);
  font-size:1.3rem;
  color:#efdfc9;
}

.sheet p{margin:0 0 1.1rem}
.sheet ul,.sheet ol{margin:0 0 1.2rem;padding-left:1.4rem}
.sheet li{margin-bottom:.45rem}
.sheet a{text-underline-offset:.22em}
.sheet a:hover{color:#f2cd9b}
.sheet strong{color:#f7eddd}

.sheet blockquote{
  margin:1.4rem 0;
  padding:1rem 1.3rem;
  border-left:3px solid rgba(217,164,95,.72);
  border-radius:4px 18px 18px 4px;
  background:rgba(86,34,139,.18);
  font-style:italic;
  color:#e9ddf3;
}

.sheet blockquote p:last-child{margin:0}
.sheet img{display:block;max-width:100%;height:auto;margin:1.2rem 0;border-radius:14px}
.sheet figure{margin:1.4rem 0}
.sheet figcaption{margin-top:.5rem;font-size:16px;color:#bda9c9}
.sheet hr{height:1px;margin:2rem 0;border:0;background:var(--line)}
.sheet code{padding:.1em .4em;font-size:16px;border-radius:4px;background:rgba(255,255,255,.1)}
.sheet table{width:100%;margin:1.2rem 0;border-collapse:collapse;font-size:16px}
.sheet th,.sheet td{padding:.55rem .7rem;text-align:left;border:1px solid var(--line)}
.sheet th{background:rgba(86,34,139,.26);color:var(--cream)}

/* 右侧栏 */
.side{
  position:sticky;
  top:7.4rem;
  padding:1.3rem 1.2rem;
  border:1px solid var(--line);
  border-radius:24px 8px 24px 8px;
  background:linear-gradient(165deg,rgba(86,34,139,.3),rgba(255,255,255,.04));
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  box-shadow:0 20px 40px -30px #000;
}

.side-title{
  margin:0 0 .2rem;
  font-family:var(--serif);
  font-weight:600;
  font-size:1.32rem;
  color:var(--cream);
}

.subtitle{
  margin:0 0 1rem;
  font-size:16px;
  letter-spacing:.16em;
  color:#cf9a63;
}

.side-nav ul{
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:chap;
}

.side-nav li a{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:42px;
  padding:.3rem 0;
  font-size:16px;
  line-height:1.35;
  text-decoration:none;
  color:#d8cbe6;
  border-bottom:1px dashed rgba(244,236,220,.13);
}

.side-nav li a::before{
  counter-increment:chap;
  content:counter(chap,decimal-leading-zero);
  font-family:var(--serif);
  font-size:.95rem;
  letter-spacing:.08em;
  color:#a98cc4;
}

.side-nav li:last-child a{border-bottom:0}
.side-nav li a:hover,.side-nav li a.on{color:#fff}
.side-nav li a.on::before{color:var(--brass)}

/* 页脚：仅 p + small + 表单 */
.base{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1rem 2rem;
  padding:3.2rem max(1.4rem,calc((100% - 1180px) / 2)) 2.2rem;
  border-top:1px solid var(--line);
  background:linear-gradient(180deg,rgba(18,12,24,.55),rgba(11,7,16,.96));
}

.base-brand{
  margin:0;
  font-family:var(--serif);
  font-size:1.9rem;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--cream);
}

.base-links{margin:0;font-size:16px;line-height:1.9}

.base-links a{
  display:inline-block;
  min-height:40px;
  padding:.4rem .2rem;
  margin-right:1rem;
  font-size:16px;
  text-decoration:none;
  color:#cdbcd8;
}

.base-links a:hover{color:#fff}

.base-form{
  grid-column:1 / -1;
  display:flex;
  gap:.6rem;
  margin-top:1rem;
}

.base-form input{
  flex:1 1 auto;
  min-width:0;
  min-height:46px;
  padding:.5rem 1.1rem;
  font-family:inherit;
  font-size:16px;
  color:var(--cream);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(244,236,220,.24);
  border-radius:999px;
}

.base-form input::placeholder{color:#b7a6c4}

.base-form button{
  flex:0 0 auto;
  min-height:46px;
  padding:.5rem 1.5rem;
  font-family:inherit;
  font-size:16px;
  color:#fff;
  cursor:pointer;
  border:0;
  border-radius:999px;
  background:linear-gradient(140deg,var(--violet),var(--clay));
}

.base-copy{
  grid-column:1 / -1;
  font-size:16px;
  line-height:1.7;
  color:#9c8cab;
}

@media (max-width:860px){
  .mast{position:static}
  .rail{flex-wrap:wrap;justify-content:center;gap:.5rem;padding:.6rem .8rem}
  .seal{order:-1;flex:1 0 100%;margin-bottom:.3rem;text-align:center}
  .wing{flex:1 0 100%;flex-wrap:wrap;justify-content:center}
  .wing-a,.wing-b{justify-content:center}
  .crest{min-height:76svh;padding:8vh 5vw 12vh}
  .crest::before{right:-18vw;width:78vw}
  .body{grid-template-columns:minmax(0,1fr);gap:1.4rem;padding:2.4rem 1rem 4rem}
  .side{position:static;order:2}
  .sheet div{padding:1.5rem 1.15rem;scroll-margin-top:1.2rem}
  .sheet table{display:block;overflow-x:auto}
  .base{grid-template-columns:1fr}
  .base-form{flex-wrap:wrap}
  .base-form button{flex:1 0 100%}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  .sheet div{animation:none}
}

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