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

:root{
  --ink:#1f1f1f;
  --paper:#ffffff;
  --ash:#f5f5f5;
  --soft:rgba(31,31,31,.56);
  --line:rgba(31,31,31,.12);
  --e1:0 1px 2px rgba(31,31,31,.07);
  --e2:0 3px 10px rgba(31,31,31,.08);
  --e3:0 12px 26px -10px rgba(31,31,31,.20);
  --e4:0 26px 54px -18px rgba(31,31,31,.32);
  --r:4px;
}

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

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

body{
  margin:0;
  padding-bottom:96px;
  background:var(--paper);
  color:var(--ink);
  font-family:'Chakra Petch','PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,sans-serif;
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit}
img{max-width:100%}

/* 底部悬浮导航条 */
.dock{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(18px) saturate(150%);
  backdrop-filter:blur(18px) saturate(150%);
  border-top:1px solid var(--line);
  box-shadow:0 -16px 34px -18px rgba(31,31,31,.35);
}

.dock-inner{
  max-width:1180px;
  margin:0 auto;
  padding:8px 20px;
  min-height:60px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  grid-template-areas:'left brand right';
  align-items:center;
  gap:12px;
}

.brand{
  grid-area:brand;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:10px 16px;
  border-radius:var(--r);
  background:var(--ink);
  color:#fff;
  text-decoration:none;
  font-family:'Russo One','PingFang SC',sans-serif;
  font-size:1rem;
  letter-spacing:.02em;
  box-shadow:var(--e3);
  transform:translateY(-3px);
  transition:transform .25s ease,box-shadow .25s ease;
}
.brand:hover{transform:translateY(-6px);box-shadow:var(--e4)}
.brand-mark{font-size:1rem;line-height:1}

.dock-nav--l{grid-area:left;justify-self:end}
.dock-nav--l ul{justify-content:flex-end}
.dock-right{grid-area:right;justify-self:start;display:flex;align-items:center;gap:6px}

.dock-nav ul{display:flex;margin:0;padding:0;list-style:none;gap:2px}

.dock-nav a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:44px;
  padding:11px 9px;
  border-radius:var(--r);
  text-decoration:none;
  font-size:16px;
  color:var(--ink);
  white-space:nowrap;
  transition:background .2s ease;
}
.dock-nav a:hover{background:var(--ash)}

.dot{
  width:6px;height:6px;
  border-radius:1px;
  background:var(--ink);
  opacity:.4;
  transition:opacity .2s ease,transform .2s ease;
}
.dock-nav a:hover .dot{opacity:1;transform:scale(1.4)}

.dock-contact{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:11px 16px;
  margin-left:4px;
  border-radius:var(--r);
  background:var(--ink);
  color:#fff;
  text-decoration:none;
  font-size:16px;
  box-shadow:var(--e2);
  transition:transform .2s ease,box-shadow .2s ease;
}
.dock-contact:hover{transform:translateY(-2px);box-shadow:var(--e3)}

/* 主栅格：左内容右侧栏 */
main{
  max-width:1180px;
  margin:0 auto;
  padding:20px 20px 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  column-gap:38px;
  align-items:start;
}

main > article{scroll-margin-bottom:110px}
main > .hero{grid-column:1/-1}

/* 首屏 */
.hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  min-height:100vh;
  min-height:100svh;
  margin:0 0 30px;
  padding:0 0 120px;
  border-radius:var(--r);
  background:var(--ink);
  color:#fff;
  box-shadow:var(--e4);
}

.hero-frame{
  position:absolute;
  inset:-6% 0 -18% 0;
  margin:0;
  z-index:0;
  will-change:transform;
}
.hero-frame img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  border-radius:0;
  box-shadow:none;
}

.hero::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  background:
    radial-gradient(70% 90% at 105% 105%,rgba(31,31,31,.94),rgba(31,31,31,0) 70%),
    linear-gradient(100deg,rgba(31,31,31,.28) 0%,rgba(31,31,31,.78) 58%,rgba(31,31,31,.94) 100%);
}

.hero-ghost{
  position:absolute;
  left:0;
  bottom:86px;
  z-index:1;
  padding-left:2vw;
  font-family:'Russo One','PingFang SC',sans-serif;
  font-size:clamp(3rem,15vw,13rem);
  line-height:.82;
  letter-spacing:-.03em;
  color:rgba(255,255,255,.12);
  white-space:nowrap;
  pointer-events:none;
  will-change:transform;
}

.hero-copy{
  position:relative;
  z-index:3;
  max-width:740px;
  padding:0 clamp(20px,7vw,80px) 0 20px;
  text-align:right;
}

.hero-title{
  margin:0 0 18px;
  font-family:'Russo One','PingFang SC',sans-serif;
  font-size:clamp(2rem,6vw,4.2rem);
  line-height:1.08;
  letter-spacing:-.01em;
  text-shadow:0 18px 44px rgba(0,0,0,.4);
}

.hero-desc{
  margin:0 0 26px auto;
  max-width:36ch;
  color:rgba(255,255,255,.88);
  font-size:1.02rem;
}

.hero-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:13px 26px;
  border-radius:var(--r);
  background:#fff;
  color:var(--ink);
  text-decoration:none;
  font-weight:700;
  box-shadow:var(--e4);
  transition:transform .25s ease,box-shadow .25s ease;
}
.hero-btn:hover{transform:translateY(-4px);box-shadow:0 32px 60px -20px rgba(0,0,0,.55)}
.hero-btn::after{
  content:'';
  width:8px;height:8px;
  border-top:2px solid var(--ink);
  border-right:2px solid var(--ink);
  transform:rotate(45deg);
}

/* 正文节：层叠色块 */
main > article:not(.hero){
  position:relative;
  z-index:1;
  grid-column:1;
  margin:0 0 26px;
  padding:clamp(26px,4vw,44px);
  border-radius:var(--r);
  background:var(--paper);
  box-shadow:var(--e2);
  transition:box-shadow .3s ease;
}
main > article:not(.hero):nth-of-type(2n){background:var(--ash)}
@media (hover:hover){
  main > article:not(.hero):hover{box-shadow:var(--e3)}
}

main > article h2{
  margin:0 0 10px;
  font-family:'Russo One','PingFang SC',sans-serif;
  font-size:clamp(1.35rem,3.2vw,1.95rem);
  line-height:1.25;
}
main > article h2::before{
  content:'';
  display:block;
  width:34px;height:5px;
  margin-bottom:16px;
  background:var(--ink);
  box-shadow:6px -6px 0 rgba(31,31,31,.2);
}
main > article h3{margin:26px 0 8px;font-size:1.1rem}
main > article p{margin:0 0 14px;max-width:68ch}
main > article ul,main > article ol{padding-left:1.25em}
main > article a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
main > article a:hover{background:var(--ash)}

.subtitle{
  margin:0 0 20px !important;
  padding-left:12px;
  border-left:3px solid var(--ink);
  color:var(--soft);
  font-size:.98rem;
}

main > article figure{margin:22px 0;position:relative}
main > article figure img{display:block;height:auto;border-radius:var(--r);box-shadow:var(--e3)}

/* 右侧栏 */
.rail{
  grid-column:2;
  grid-row:2 / span 30;
  align-self:start;
  position:sticky;
  top:24px;
  padding:22px 18px;
  border-radius:var(--r);
  background:var(--ash);
  box-shadow:var(--e3);
}
.rail h2{
  margin:0 0 8px;
  font-family:'Russo One','PingFang SC',sans-serif;
  font-size:1.05rem;
  line-height:1.3;
}
.rail .subtitle{
  margin:0 0 12px !important;
  padding-left:0;
  border-left:0;
  font-size:.9rem;
}

.rail-list{
  list-style:none;
  counter-reset:r;
  margin:0;
  padding:0;
  display:grid;
  gap:6px;
}
.rail-list li{counter-increment:r}
.rail-list a{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:10px 12px;
  border-radius:var(--r);
  background:var(--paper);
  text-decoration:none;
  font-size:16px;
  box-shadow:var(--e1);
  transition:transform .2s ease,box-shadow .2s ease;
}
.rail-list a::before{
  content:counter(r,decimal-leading-zero);
  font-family:'Russo One',sans-serif;
  font-size:.78rem;
  color:var(--soft);
}
.rail-list a:hover{transform:translateX(-3px);box-shadow:var(--e3)}

/* 页脚 */
.foot{
  position:relative;
  z-index:2;
  margin-top:64px;
  padding:56px 0 26px;
  background:var(--ink);
  color:#fff;
  box-shadow:0 -20px 50px -24px rgba(31,31,31,.5);
}

.foot-top{
  max-width:1180px;
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:1.15fr 1fr 1fr;
  gap:34px;
}

address{
  display:grid;
  gap:6px;
  margin:0 0 16px;
  font-style:normal;
}
address strong{font-family:'Russo One','PingFang SC',sans-serif;font-size:1.05rem;letter-spacing:.02em}
address span{color:rgba(255,255,255,.68);font-size:.92rem;word-break:break-all}

.foot-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.foot-links a{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:6px 0;
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35);
}

.foot-nav dl{margin:0;display:grid;gap:4px}
.foot-nav dt{margin-top:8px;font-size:.82rem;letter-spacing:.08em;color:rgba(255,255,255,.55)}
.foot-nav dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px}
.foot-nav dd a{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:6px 0;
  font-size:16px;
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.3);
}
.foot-links a:hover,.foot-nav dd a:hover{border-color:#fff}

.sub{display:grid;gap:8px}
.sub-label{font-size:.86rem;color:rgba(255,255,255,.6)}
.sub-row{display:grid;gap:8px}
.sub-input{
  width:100%;
  min-height:46px;
  padding:11px 12px;
  border-radius:var(--r);
  border:1px solid rgba(255,255,255,.3);
  background:rgba(255,255,255,.08);
  color:#fff;
  font:inherit;
  font-size:16px;
}
.sub-input::placeholder{color:rgba(255,255,255,.45)}
.sub-btn{
  min-height:46px;
  border:0;
  border-radius:var(--r);
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease;
}
.sub-btn:hover{transform:translateY(-2px);box-shadow:var(--e3)}

.foot-copy{
  max-width:1180px;
  margin:34px auto 0;
  padding:16px 20px 0;
  border-top:1px solid rgba(255,255,255,.16);
  font-size:.9rem;
  color:rgba(255,255,255,.6);
}

/* 滚动进场 */
.js .reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.3,1);
}
.js .reveal.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .hero-frame,.hero-ghost{transform:none !important}
}

@media (max-width:960px){
  main{grid-template-columns:minmax(0,1fr);padding:14px 14px 0}
  main > .hero,main > article:not(.hero),main > aside{grid-column:1}
  main > aside{grid-row:auto;position:static;margin:0 0 26px}
  .rail-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-top{grid-template-columns:1fr;gap:26px}
}

@media (max-width:820px){
  .dock{padding:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .dock::-webkit-scrollbar{display:none}
  .dock-inner{
    display:flex;
    align-items:center;
    gap:4px;
    width:max-content;
    min-height:60px;
    margin:0;
    padding:8px 12px;
  }
  .brand{flex:0 0 auto}
  .dock-nav ul{gap:0}
  .dock-nav a{padding:11px 8px}
}

@media (max-width:640px){
  body{font-size:16px;padding-bottom:104px}
  main{padding:12px 12px 0}
  .hero{padding-bottom:132px;margin-bottom:22px}
  .hero-copy{padding:0 22px}
  .hero-title{font-size:clamp(1.85rem,9vw,2.6rem)}
  .hero-ghost{font-size:clamp(2.6rem,19vw,5rem);bottom:124px}
  .hero-desc{font-size:.98rem}
  main > article:not(.hero){padding:24px 18px}
  .rail-list{grid-template-columns:1fr}
  .foot{padding-top:40px}
  .foot-copy{margin-top:26px}
}

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