@charset "utf-8";

:root{
  --neon:#87ff71;
  --cyan:#01cdfe;
  --ink:#192617;
  --pink:#ff71ce;
  --violet:#b967ff;
  --void:#0a110d;
  --surface:#131f16;
  --line:rgba(135,255,113,.22);
  --hair:rgba(1,205,254,.28);
  --text:#dbe8dc;
  --dim:#9db2a1;
  --serif:"Newsreader","Songti SC","Times New Roman",serif;
  --sans:Roboto,"Helvetica Neue",Arial,sans-serif;
}

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

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

body{
  margin:0;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.75;
  font-weight:400;
  color:var(--text);
  background:
    radial-gradient(120% 60% at 78% -10%,rgba(1,205,254,.22),transparent 62%),
    radial-gradient(90% 50% at 6% 4%,rgba(255,113,206,.16),transparent 60%),
    linear-gradient(180deg,var(--ink) 0%,var(--void) 46%,#08100b 100%);
  background-attachment:fixed,fixed,scroll;
  overflow-x:hidden;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:8;
  pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(135,255,113,.055) 0 1px,transparent 1px 4px);
}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}

a{color:var(--cyan);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
a:hover{color:var(--neon);border-bottom-color:var(--neon)}
a:focus-visible{outline:2px solid var(--neon);outline-offset:3px}

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

div[id]{scroll-margin-top:112px}

.skip{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:40;
  background:var(--neon);
  color:var(--ink);
  padding:12px 20px;
  font-size:.95rem;
  border:0;
}
.skip:focus{left:0}

/* ── 头部 ─────────────────────────────── */

.masthead{
  position:relative;
  z-index:20;
  background:linear-gradient(180deg,rgba(10,17,13,.96),rgba(10,17,13,.72));
  border-bottom:1px solid var(--hair);
  backdrop-filter:blur(6px);
}

.masthead-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  max-width:1180px;
  margin:0 auto;
  padding:14px 20px 12px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:4px 2px;
  border:0;
  color:var(--neon);
  font-family:var(--serif);
  font-size:1.32rem;
  letter-spacing:.01em;
  text-shadow:0 0 14px rgba(135,255,113,.5),0 0 32px rgba(1,205,254,.28);
}
.brand-mark{
  display:inline-block;
  color:var(--cyan);
  transform:skewX(-12deg);
  text-shadow:0 0 12px rgba(1,205,254,.8);
}
.brand:hover .brand-mark{animation:jolt .38s steps(2,end) 2}
@keyframes jolt{
  0%{transform:skewX(-12deg) translateY(0)}
  50%{transform:skewX(-12deg) translate(2px,-2px)}
  100%{transform:skewX(-12deg) translateY(0)}
}

.contact{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 16px;
  border:1px solid var(--hair);
  color:var(--cyan);
  font-size:.94rem;
  letter-spacing:.06em;
  background:rgba(1,205,254,.06);
}
.contact:hover{background:rgba(1,205,254,.14);color:var(--neon);border-color:var(--neon)}

.rail{
  position:sticky;
  top:0;
  z-index:22;
  background:linear-gradient(90deg,rgba(25,38,23,.98),rgba(10,17,13,.98));
  border-top:1px solid rgba(135,255,113,.12);
  border-bottom:1px solid var(--hair);
}

.rail-nav{
  display:flex;
  gap:2px;
  max-width:1180px;
  margin:0 auto;
  padding:0 12px;
  overflow-x:auto;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}

.rail-link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 14px;
  color:var(--dim);
  font-size:.95rem;
  letter-spacing:.03em;
  border-bottom:2px solid transparent;
  white-space:nowrap;
}
.rail-link:hover,.rail-link.active{
  color:var(--neon);
  border-bottom-color:var(--neon);
  text-shadow:0 0 12px rgba(135,255,113,.55);
  background:rgba(135,255,113,.05);
}

/* ── 头图 ─────────────────────────────── */

.hero{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:32px;
  align-items:center;
  max-width:1180px;
  margin:0 auto;
  padding:44px 24px 56px;
  min-height:45vh;
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-14%;
  top:-46%;
  width:min(560px,78vw);
  aspect-ratio:1;
  background:radial-gradient(circle,rgba(255,113,206,.42),rgba(185,103,255,.22) 44%,transparent 68%);
  filter:blur(2px);
}

.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:0;
  right:0;
  bottom:0;
  height:42%;
  background:
    repeating-linear-gradient(90deg,rgba(1,205,254,.26) 0 1px,transparent 1px 46px),
    repeating-linear-gradient(0deg,rgba(1,205,254,.26) 0 1px,transparent 1px 46px);
  transform:perspective(240px) rotateX(64deg);
  transform-origin:bottom center;
  opacity:.5;
  pointer-events:none;
  mask-image:linear-gradient(180deg,transparent,#000 78%);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 78%);
}

.hero-copy{position:relative;z-index:2;max-width:36ch}

.hero h1{
  margin:0 0 18px;
  font-size:clamp(2.15rem,5.4vw,3.7rem);
  line-height:1.08;
  color:#f2fdf3;
  text-shadow:
    0 0 18px rgba(135,255,113,.45),
    0 0 42px rgba(1,205,254,.34),
    3px 0 0 rgba(255,113,206,.35);
}

.hero-lead{
  margin:0;
  max-width:44ch;
  font-size:1.03rem;
  line-height:1.7;
  color:#c3d8c7;
  border-left:3px solid var(--cyan);
  padding-left:16px;
}

.hero-media{
  position:relative;
  z-index:2;
  display:grid;
  gap:12px;
  align-items:center;
  justify-items:stretch;
}
.hero-media.duo{grid-template-columns:1fr 1fr}
.hero-media.solo{grid-template-columns:1fr}

.hero-img{
  width:100%;
  aspect-ratio:3 / 4;
  object-fit:cover;
  border:1px solid var(--hair);
  filter:hue-rotate(-10deg) saturate(1.15) contrast(1.03);
  box-shadow:0 18px 40px rgba(0,0,0,.55),0 0 0 1px rgba(135,255,113,.18);
}
.hero-media.duo .hero-img:first-child{transform:translateY(-18px)}
.hero-media.duo .hero-img:last-child{transform:translateY(18px)}

.hero-slash{
  position:absolute;
  z-index:1;
  left:0;
  right:0;
  bottom:0;
  height:14px;
  background:linear-gradient(90deg,var(--neon),var(--cyan) 42%,var(--violet) 72%,var(--pink));
  clip-path:polygon(0 62%,100% 0,100% 100%,0 100%);
  opacity:.9;
}

/* ── 主体 ─────────────────────────────── */

.shell{
  max-width:1180px;
  margin:0 auto;
  padding:54px 24px 88px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 292px;
  gap:54px;
  align-items:start;
}

.copy{min-width:0}
.copy-body{min-width:0}

.copy-body div + div{
  border-top:1px dashed rgba(135,255,113,.18);
  margin-top:2.6em;
  padding-top:.6em;
}

.copy-body h2{
  margin:1.9em 0 .55em;
  font-size:clamp(1.5rem,2.7vw,2rem);
  line-height:1.24;
  color:#eefaf0;
  padding-left:15px;
  border-left:4px solid var(--neon);
  text-shadow:0 0 16px rgba(1,205,254,.3);
}

.copy-body h3{
  margin:1.7em 0 .45em;
  font-size:1.24rem;
  line-height:1.35;
  color:var(--cyan);
}

.copy-body h4{
  margin:1.4em 0 .4em;
  font-size:1.06rem;
  color:var(--neon);
  letter-spacing:.02em;
}

.copy-body p{margin:0 0 1.15em;max-width:70ch}
.copy-body ul,.copy-body ol{margin:0 0 1.2em;padding-left:1.35em;max-width:70ch}
.copy-body li{margin:.4em 0}
.copy-body li::marker{color:var(--cyan)}

.copy-body small{
  display:block;
  margin-bottom:.4em;
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--pink);
}

.copy-body blockquote{
  margin:1.5em 0;
  padding:14px 20px;
  background:rgba(1,205,254,.06);
  border-left:3px solid var(--cyan);
  color:#c9dccd;
}
.copy-body blockquote p:last-child{margin-bottom:0}

.copy-body img{
  width:100%;
  margin:1.4em 0;
  border:1px solid var(--hair);
}

.copy-body strong{color:#fff;text-shadow:0 0 14px rgba(135,255,113,.35)}

.copy-body table{
  width:100%;
  border-collapse:collapse;
  margin:1.4em 0;
  font-size:.97rem;
}
.copy-body th,.copy-body td{
  border:1px solid rgba(135,255,113,.2);
  padding:9px 12px;
  text-align:left;
  vertical-align:top;
}
.copy-body th{background:rgba(135,255,113,.09);color:var(--neon);font-weight:500}
.copy-body code{
  font-family:ui-monospace,"SFMono-Regular",Consolas,monospace;
  font-size:.92em;
  background:rgba(1,205,254,.12);
  padding:1px 5px;
  color:var(--cyan);
}
.copy-body pre{
  overflow-x:auto;
  padding:14px 16px;
  background:#0d1a12;
  border-left:3px solid var(--violet);
}
.copy-body pre code{background:none;padding:0;color:var(--text)}
.copy-body hr{
  border:0;
  border-top:1px dashed rgba(1,205,254,.35);
  margin:2em 0;
}

/* ── 侧栏 ─────────────────────────────── */

.side{
  position:sticky;
  top:104px;
  padding:22px 20px 24px;
  background:linear-gradient(170deg,rgba(25,38,23,.92),rgba(10,17,13,.92));
  border:1px solid var(--hair);
  border-top:3px solid var(--neon);
  box-shadow:0 18px 44px rgba(0,0,0,.45);
}

.side-kicker{
  display:block;
  font-size:.74rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--pink);
  margin-bottom:6px;
}

.side-title{
  margin:0 0 14px;
  font-size:1.3rem;
  color:#eaf8ec;
  text-shadow:0 0 14px rgba(135,255,113,.35);
}

.side-list{
  list-style:none;
  margin:0 0 18px;
  padding:0;
  border-top:1px solid rgba(135,255,113,.14);
}
.side-list li{border-bottom:1px solid rgba(135,255,113,.14)}
.side-list a{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:6px 2px;
  font-size:.95rem;
  color:#bfd5c4;
  border:0;
}
.side-list a:hover{color:var(--neon);padding-left:6px}

.side-top{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border:1px solid var(--hair);
  font-size:.86rem;
  letter-spacing:.08em;
  color:var(--cyan);
}
.side-top:hover{background:rgba(1,205,254,.12);color:var(--neon);border-color:var(--neon)}

/* ── 页脚 ─────────────────────────────── */

.foot{
  border-top:2px solid var(--neon);
  background:
    radial-gradient(90% 120% at 86% 0%,rgba(185,103,255,.22),transparent 58%),
    linear-gradient(180deg,#101a12,#070d09);
  padding:0 0 26px;
}

.foot-cta{
  max-width:1180px;
  margin:0 auto;
  padding:48px 24px 40px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  border-bottom:1px solid rgba(135,255,113,.16);
}

.foot-brand{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.7rem,4.4vw,3rem);
  line-height:1.1;
  background:linear-gradient(96deg,var(--neon),var(--cyan) 48%,var(--pink));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  letter-spacing:-.01em;
}

.foot-btn{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 26px;
  border:1px solid var(--neon);
  color:var(--neon);
  font-size:.94rem;
  letter-spacing:.1em;
  background:rgba(135,255,113,.07);
  text-shadow:0 0 12px rgba(135,255,113,.5);
}
.foot-btn:hover{background:var(--neon);color:var(--ink);text-shadow:none;border-color:var(--neon)}

.foot-nav{
  max-width:1180px;
  margin:0 auto;
  padding:34px 24px 30px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:26px 34px;
}

.foot-nav dl{
  margin:0;
  padding-top:12px;
  border-top:1px solid rgba(1,205,254,.24);
}

.foot-nav dt{margin:0 0 2px}
.foot-nav dt a{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:2px 0;
  color:#cfe3d3;
  font-size:.98rem;
  border:0;
}
.foot-nav dt a:hover{color:var(--neon);text-shadow:0 0 12px rgba(135,255,113,.5)}

.foot-nav dd{
  margin:0 0 10px;
  font-size:.82rem;
  line-height:1.6;
  color:#82988a;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.foot-base{
  max-width:1180px;
  margin:0 auto;
  padding:16px 24px 0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid rgba(135,255,113,.14);
}

.foot-copy{margin:0;font-size:.85rem;color:#7f9487;letter-spacing:.04em}

.foot-top{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  font-size:.85rem;
  letter-spacing:.08em;
  color:var(--cyan);
}

/* ── 动效 ─────────────────────────────── */

@media (prefers-reduced-motion: no-preference){
  html.js .reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.3,1);
  }
  html.js .reveal.in{opacity:1;transform:none}
}

/* ── 窄屏 ─────────────────────────────── */

@media (max-width:980px){
  .shell{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:44px}
  .side{position:static;order:2}
  .hero{grid-template-columns:minmax(0,1fr);padding:34px 20px 48px;min-height:0}
  .hero-copy{max-width:none}
  .hero-media{max-width:440px}
  .foot-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:640px){
  body{font-size:16.5px}
  .masthead-bar{padding:10px 14px}
  .brand{font-size:1.16rem}
  .rail-nav{padding:0 6px}
  .rail-link{padding:0 11px;font-size:.9rem}
  .shell{padding:34px 16px 64px}
  .hero{padding:28px 16px 42px}
  .hero h1{font-size:clamp(1.9rem,8.4vw,2.7rem)}
  .hero-media{grid-template-columns:1fr 1fr;max-width:none}
  .hero-media.duo .hero-img:first-child{transform:translateY(-10px)}
  .hero-media.duo .hero-img:last-child{transform:translateY(10px)}
  .copy-body h2{font-size:1.42rem}
  .foot-cta{padding:36px 16px 30px}
  .foot-nav{grid-template-columns:minmax(0,1fr);gap:20px;padding:26px 16px 22px}
  .foot-base{padding:14px 16px 0}
}

@media (max-width:400px){
  .hero-media{grid-template-columns:1fr}
  .hero-media.duo .hero-img{transform:none !important}
}

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