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

:root{
  --violet:#6514ff;
  --magenta:#bf00ff;
  --ink:#1c1726;
  --ink-2:#140f1e;
  --ink-3:#0e0a16;
  --paper:#f8f5ff;
  --muted:#c6bce0;
  --radius:10px;
  --shadow:0 20px 44px -20px rgba(101,20,255,.65);
  --pad:clamp(18px,4vw,64px);
}

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

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  overflow-x:hidden;
  background:var(--ink);
  color:var(--paper);
  font-family:Inter,system-ui,-apple-system,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;
  font-size:17px;
  line-height:1.7;
  font-weight:400;
  letter-spacing:.01em;
}

body::before{
  content:"";
  position:fixed;
  inset:-20% -10%;
  z-index:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(135deg,rgba(101,20,255,.16) 0 2px,transparent 2px 26px),
    radial-gradient(circle at 82% 8%,rgba(191,0,255,.30),transparent 58%),
    radial-gradient(circle at 10% 78%,rgba(101,20,255,.26),transparent 60%);
  animation:patternDrift 28s linear infinite;
}

@keyframes patternDrift{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-52px,-52px,0)}
}

a{color:inherit;text-decoration:none}

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

.shell{position:relative;z-index:1}

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

/* ── 顶部细条 ── */
.strip{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:8px var(--pad);
  background:linear-gradient(90deg,var(--violet),var(--magenta));
  color:#fff;
  font-size:14px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
}

.strip i{
  display:block;
  width:26px;height:2px;
  background:rgba(255,255,255,.85);
}

/* ── 页头 ── */
.masthead{
  padding:26px var(--pad) 14px;
  border-bottom:1px solid rgba(191,0,255,.28);
  background:linear-gradient(180deg,rgba(14,10,22,.72),transparent);
}

.brandRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  font-family:"Playfair Display",Georgia,"Songti SC",serif;
  font-size:clamp(1.4rem,4.4vw,2rem);
  font-weight:700;
  letter-spacing:.02em;
  color:var(--paper);
}

.brand span{
  background:linear-gradient(92deg,var(--paper),#d9c6ff);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.logoMark{
  width:40px;height:40px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--magenta);
}

.pillNav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-bottom:6px;
}

.pillNav .pill{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 16px;
  border-radius:999px;
  border:1px solid rgba(191,0,255,.42);
  background:rgba(101,20,255,.14);
  color:var(--paper);
  font-size:16px;
  font-weight:500;
  line-height:1.2;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}

.pillNav .pill:hover,
.pillNav .pill:focus-visible{
  background:var(--magenta);
  border-color:var(--magenta);
  color:#12081f;
  transform:translateY(-2px);
}

/* ── 主体 ── */
main{display:block;padding-bottom:64px}

.hero{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:26px;
  min-height:45vh;
  max-width:1180px;
  margin:0 auto;
  padding:clamp(30px,5vw,58px) var(--pad) 0;
  overflow:hidden;
}

.heroText{
  position:relative;
  text-align:right;
  animation:riseIn .6s ease both;
}

.ghost{
  position:absolute;
  right:-.06em;
  top:-.62em;
  z-index:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(6rem,20vw,13rem);
  line-height:1;
  color:transparent;
  -webkit-text-stroke:2px rgba(191,0,255,.32);
  pointer-events:none;
  animation:floaty 9s ease-in-out infinite;
}

@keyframes floaty{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-14px)}
}

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

h1{
  position:relative;
  z-index:1;
  margin:0 0 14px;
  font-family:"Playfair Display",Georgia,"Songti SC",serif;
  font-size:clamp(2rem,7vw,3.6rem);
  font-weight:700;
  line-height:1.14;
  letter-spacing:-.01em;
}

.heroDesc{
  position:relative;
  z-index:1;
  margin:0;
  color:var(--muted);
  font-size:17px;
  max-width:56ch;
  margin-left:auto;
}

.heroArt{
  position:relative;
  margin:0;
  min-height:130px;
  border-radius:var(--radius);
  border:1px solid rgba(191,0,255,.36);
  background:
    linear-gradient(120deg,rgba(101,20,255,.72),rgba(191,0,255,.42) 60%,rgba(28,23,38,.9)),
    var(--ink-2);
  box-shadow:var(--shadow);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  gap:12px;
  padding:18px;
}

.heroImg{
  width:100%;
  height:clamp(160px,26vw,240px);
  object-fit:cover;
  border-radius:calc(var(--radius) - 4px);
}

.blk{
  display:block;
  height:46px;
  border-radius:6px;
  background:rgba(248,245,255,.22);
}

.blk:nth-child(1){width:46px;background:rgba(248,245,255,.42)}
.blk:nth-child(2){width:96px;background:rgba(191,0,255,.68)}
.blk:nth-child(3){flex:1}

/* ── 内容 + 侧栏 ── */
.split{
  display:grid;
  grid-template-columns:minmax(0,1fr) 296px;
  gap:clamp(32px,4vw,56px);
  max-width:1180px;
  margin:0 auto;
  padding:clamp(38px,5vw,60px) var(--pad) 0;
  align-items:start;
}

.content{min-width:0}

.content article{
  scroll-margin-top:104px;
  margin-bottom:clamp(40px,5vw,58px);
  animation:riseIn .5s ease both;
}

.content h2{
  margin:0 0 4px;
  font-family:"Playfair Display",Georgia,"Songti SC",serif;
  font-size:clamp(1.55rem,4.2vw,2.15rem);
  font-weight:700;
  line-height:1.24;
  letter-spacing:-.005em;
}

.content h3{
  margin:30px 0 4px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.2rem,3.6vw,1.45rem);
  font-weight:600;
  line-height:1.3;
  color:#eadfff;
}

hr{
  display:block;
  width:86px;
  height:3px;
  margin:14px 0 22px;
  border:0;
  border-radius:3px;
  background:linear-gradient(90deg,var(--violet),var(--magenta));
}

.content p{margin:0 0 18px;color:#e6e0f5}

.content ul,
.content ol{
  margin:0 0 20px;
  padding-left:22px;
}

.content li{margin-bottom:9px}

.content li::marker{color:var(--magenta);font-weight:700}

.content a{
  color:#dcc4ff;
  border-bottom:1px solid rgba(191,0,255,.55);
  transition:color .2s ease,border-color .2s ease;
}

.content a:hover{color:#fff;border-color:#fff}

.content strong{color:#fff;font-weight:600}

.content blockquote{
  margin:0 0 20px;
  padding:16px 20px;
  border-left:4px solid var(--magenta);
  border-radius:0 var(--radius) var(--radius) 0;
  background:rgba(101,20,255,.16);
  color:#f0ebff;
}

.content figure{
  margin:0 0 22px;
  padding:14px;
  border-radius:var(--radius);
  background:linear-gradient(140deg,rgba(101,20,255,.30),rgba(191,0,255,.16));
  box-shadow:var(--shadow);
}

.content figure img{border-radius:8px}

.content figcaption{
  margin-top:10px;
  font-size:15px;
  color:var(--muted);
}

.content table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 22px;
  font-size:16px;
}

.content th,
.content td{
  padding:11px 13px;
  border-bottom:1px solid rgba(191,0,255,.26);
  text-align:left;
}

.content th{color:#fff;background:rgba(101,20,255,.24)}

/* ── 侧栏 ── */
.side{
  position:sticky;
  top:24px;
  order:2;
  padding:20px 18px 22px;
  border-radius:var(--radius);
  border:1px solid rgba(191,0,255,.34);
  background:rgba(20,15,30,.82);
  box-shadow:var(--shadow);
}

.side h2{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.15rem;
  font-weight:600;
}

.side hr{width:52px;margin:12px 0 14px}

.sideList{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:side;
}

.sideList li + li{border-top:1px solid rgba(191,0,255,.18)}

.sideList a{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:6px 0;
  font-size:16px;
  color:#ded4f4;
  transition:color .2s ease,transform .2s ease;
}

.sideList a:hover,
.sideList a:focus-visible{color:#fff;transform:translateX(4px)}

.ord{
  flex:0 0 auto;
  font-family:"Playfair Display",Georgia,serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--magenta);
}

/* ── 页脚 ── */
.foot{
  display:grid;
  grid-template-columns:1.5fr 1fr 1.2fr;
  gap:clamp(24px,3vw,44px);
  position:relative;
  z-index:1;
  padding:clamp(40px,5vw,64px) var(--pad) 0;
  border-top:3px solid var(--violet);
  background:linear-gradient(180deg,rgba(14,10,22,.94),var(--ink-3));
}

.fcol{
  min-width:0;
  padding-bottom:8px;
}

.fcol h2{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.2rem;
  font-weight:600;
}

.fcol hr{width:48px;margin:12px 0 16px}

.footList{
  display:grid;
  grid-template-columns:1fr auto;
  gap:2px 12px;
  margin:0;
  padding:0;
}

.footList dt{margin:0;min-width:0}

.footList dd{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:13px;
  color:rgba(198,188,224,.7);
  align-self:center;
}

.footList dt a{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:4px 0;
  font-size:16px;
  color:#ded4f4;
  border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}

.footList dt a:hover,
.footList dt a:focus-visible{color:#fff;border-color:var(--magenta)}

.brandCol{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.footBrand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.15rem;
  font-weight:700;
}

.footBrand .logoMark{width:34px;height:34px}

.subForm{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.subForm input{
  flex:1 1 150px;
  min-width:0;
  min-height:44px;
  padding:10px 14px;
  font:inherit;
  font-size:16px;
  color:#fff;
  background:rgba(101,20,255,.18);
  border:1px solid rgba(191,0,255,.45);
  border-radius:999px;
  outline:none;
}

.subForm input::placeholder{color:rgba(198,188,224,.75)}

.subForm input:focus{border-color:var(--magenta);background:rgba(101,20,255,.3)}

.subForm button{
  min-height:44px;
  padding:10px 22px;
  font:inherit;
  font-size:16px;
  font-weight:600;
  color:#14081f;
  background:linear-gradient(92deg,var(--magenta),#dd6bff);
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:filter .2s ease,transform .2s ease;
}

.subForm button:hover{filter:brightness(1.1);transform:translateY(-2px)}

.footBar{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:clamp(26px,4vw,40px);
  padding:16px 0 26px;
  border-top:1px solid rgba(191,0,255,.26);
  font-size:15px;
  color:var(--muted);
}

.footBar p{margin:0}

.footBar a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:6px 16px;
  border-radius:999px;
  border:1px solid rgba(191,0,255,.4);
  font-size:15px;
  transition:background .2s ease,color .2s ease;
}

.footBar a:hover{background:var(--magenta);color:#14081f}

/* ── 响应式 ── */
@media (max-width:980px){
  .split{grid-template-columns:1fr}
  .side{position:static;order:3;margin-top:8px}
  .foot{grid-template-columns:1fr 1fr}
  .brandCol{grid-column:1 / -1;order:-1}
}

@media (max-width:640px){
  body{font-size:16px}
  .hero{min-height:auto;padding-top:34px;gap:20px}
  .heroText{text-align:right}
  .ghost{font-size:clamp(5rem,26vw,8rem);top:-.55em}
  .heroDesc{margin-left:auto}
  .masthead{padding-top:20px}
  .pillNav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:10px}
  .pillNav::-webkit-scrollbar{display:none}
  .pillNav .pill{flex:0 0 auto}
  .foot{grid-template-columns:1fr;padding-bottom:0}
  .brandCol{order:0}
  .content article{margin-bottom:34px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body::before,
  .ghost,
  .content article,
  .heroText{animation:none}
  .pillNav .pill,
  .sideList a,
  .subForm button{transition:none}
  .pillNav .pill:hover,
  .subForm button:hover{transform:none}
}

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