.page-home{
  display:block;
  background:var(--paper);
  color:var(--ink);
  overflow-x:clip;
}
.page-home .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

/* ---------- hero ---------- */
.page-home .hero{
  position:relative;
  padding-block:clamp(22px,4vw,48px) clamp(38px,6vw,84px);
}
.page-home .hero::before{
  content:"";
  position:absolute;
  top:0;right:0;
  width:min(620px,72vw);
  height:100%;
  background:linear-gradient(202deg,rgba(14,43,38,.13),rgba(16,26,46,0) 62%);
  clip-path:polygon(30% 0,100% 0,100% 100%,0 100%);
  pointer-events:none;
}
.page-home .hero__grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,46px);
  align-items:start;
}
@media (min-width:1000px){
  .page-home .hero__grid{
    grid-template-columns:minmax(0,3fr) minmax(320px,2fr);
    gap:clamp(32px,4vw,64px);
  }
}
.page-home .hero__context{
  margin:0 0 clamp(14px,2vw,22px);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.page-home .hero__context .num{color:var(--ember);font-weight:700;}
.page-home .hero__title{
  margin:0 0 clamp(14px,2vw,22px);
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(34px,5.2vw,66px);
  line-height:1.04;
  letter-spacing:-.02em;
  color:var(--ink);
  max-width:14em;
}
.page-home .hero__lede{
  margin:0 0 clamp(24px,3.4vw,38px);
  font-size:clamp(16px,1.15vw,17px);
  line-height:1.78;
  color:#3A4740;
}
.page-home .hero__list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
}
.page-home .hero__item{border-bottom:1px solid var(--line);}
.page-home .hero__link{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(12px,2vw,22px);
  padding:clamp(12px,1.6vw,16px) clamp(6px,1vw,12px);
  text-decoration:none;
  color:inherit;
  transition:background var(--dur) var(--ease),padding-left var(--dur) var(--ease);
}
.page-home .hero__link:hover,
.page-home .hero__link:focus-visible{
  background:rgba(255,106,43,.08);
  padding-left:clamp(12px,2vw,22px);
}
.page-home .hero__num{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:clamp(20px,2.3vw,28px);
  letter-spacing:-.02em;
  color:var(--orange);
  min-width:2.4em;
}
.page-home .hero__body{display:flex;flex-direction:column;gap:3px;min-width:0;}
.page-home .hero__name{
  font-size:clamp(15px,1.2vw,18px);
  font-weight:600;
  letter-spacing:.01em;
}
.page-home .hero__desc{
  font-size:13px;
  line-height:1.6;
  color:var(--ink-soft);
}
.page-home .hero__arrow{
  font-family:var(--font-mono);
  font-size:16px;
  color:var(--ink-soft);
  transition:transform var(--dur) var(--ease),color var(--dur) var(--ease);
}
.page-home .hero__link:hover .hero__arrow,
.page-home .hero__link:focus-visible .hero__arrow{transform:translateX(4px);color:var(--orange);}

.page-home .hero__media{
  position:relative;
  margin:0;
  background:var(--navy);
  border-radius:var(--r-xl);
  overflow:hidden;
}
.page-home .hero__media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
}
.page-home .hero__cap{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:clamp(14px,2vw,22px);
  background:linear-gradient(180deg,rgba(16,26,46,0),rgba(16,26,46,.88));
  color:rgba(244,239,228,.86);
  font-size:12px;
  line-height:1.6;
}
@media (min-width:1000px){
  .page-home .hero__media{
    border-radius:0 var(--r-xl) var(--r-xl) 0;
    clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);
    margin-top:8px;
  }
}

/* ---------- chapter shell ---------- */
.page-home .chapter{
  position:relative;
  padding-block:clamp(42px,6.5vw,88px);
  scroll-margin-top:calc(var(--bar-h) + 20px);
}
.page-home .chapter__head{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(12px,2.4vw,28px);
  align-items:start;
  margin-bottom:clamp(22px,3.2vw,40px);
}
.page-home .chapter__num{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:clamp(52px,10vw,126px);
  line-height:.8;
  letter-spacing:-.05em;
  color:var(--orange);
}
.page-home .chapter__heading{min-width:0;}
.page-home .chapter__title{
  margin:6px 0 10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(24px,3.2vw,40px);
  line-height:1.14;
  letter-spacing:-.01em;
}
.page-home .chapter__note{
  margin:0;
  font-size:clamp(15px,1.05vw,16px);
  line-height:1.78;
  color:var(--ink-soft);
}

/* dark chapters */
.page-home .chapter--dark,
.page-home .chapter--navy{
  margin-inline:clamp(8px,1.6vw,26px);
  border-radius:clamp(24px,3vw,44px);
  padding-inline:clamp(6px,1.4vw,22px);
  overflow:hidden;
}
.page-home .chapter--dark{
  background:var(--green);
  background-image:linear-gradient(116deg,rgba(198,242,78,.10) 0 20%,rgba(198,242,78,0) 20.4% 100%);
  color:var(--paper);
}
.page-home .chapter--navy{
  background:var(--navy);
  background-image:linear-gradient(250deg,rgba(255,106,43,.14) 0 18%,rgba(255,106,43,0) 18.4% 100%);
  color:var(--paper-card);
}
.page-home .chapter--dark .chapter__title,
.page-home .chapter--navy .chapter__title{color:inherit;}
.page-home .chapter--dark .chapter__num{color:var(--lime);}
.page-home .chapter--navy .chapter__num{color:var(--orange);}
.page-home .chapter--dark .chapter__note{color:rgba(244,239,228,.76);}
.page-home .chapter--navy .chapter__note{color:rgba(251,248,241,.72);}
.page-home .chapter--dark .eyebrow,
.page-home .chapter--navy .eyebrow{color:var(--lime);}

/* ---------- 01 route index ---------- */
.page-home .route-index{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:clamp(14px,2vw,22px);
}
.page-home .route-index__item{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  padding:clamp(18px,2.4vw,26px);
  background:var(--paper-card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-home .route-index__item:hover{border-color:var(--orange);transform:translateY(-3px);}
.page-home .route-index__step{
  font-size:11px;
  letter-spacing:.16em;
  color:var(--ember);
  font-weight:700;
}
.page-home .route-index__title{
  margin:6px 0 6px;
  font-size:clamp(17px,1.4vw,21px);
  font-weight:600;
}
.page-home .route-index__text{
  margin:0;
  font-size:14.5px;
  line-height:1.72;
  color:var(--ink-soft);
}
.page-home .route-index__go{
  justify-self:start;
  margin-top:4px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--ink);
  text-decoration:none;
  border-bottom:2px solid var(--orange);
  padding-bottom:2px;
  transition:color var(--dur) var(--ease);
}
.page-home .route-index__go:hover{color:var(--ember);}
@media (min-width:800px){
  .page-home .route-index__item{
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:clamp(18px,3vw,40px);
  }
  .page-home .route-index__step{writing-mode:vertical-rl;transform:rotate(180deg);align-self:center;}
}

/* ---------- 02 focus cards ---------- */
.page-home .focus__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(16px,2.2vw,26px);
}
.page-home .focus__card{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:clamp(18px,2.2vw,28px);
  background:var(--green-card);
  border:1px solid var(--line-dark);
  border-radius:var(--r-lg);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-home .focus__card:hover{
  border-color:var(--orange);
  transform:translateY(-3px);
}
.page-home .focus__card img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
  border-radius:var(--r-md);
  border:1px solid rgba(198,242,78,.14);
}
.page-home .focus__card--square img{aspect-ratio:1/1;}
.page-home .focus__tag{
  margin:0;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--lime);
  font-weight:700;
}
.page-home .focus__title{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(19px,1.6vw,24px);
  line-height:1.24;
  letter-spacing:-.01em;
  color:var(--paper-card);
}
.page-home .focus__text{
  margin:0;
  font-size:14.5px;
  line-height:1.76;
  color:rgba(244,239,228,.82);
}
.page-home .focus__list{
  list-style:none;
  margin:4px 0 0;
  padding:0;
  display:grid;
  gap:8px;
  border-top:1px solid rgba(198,242,78,.16);
  padding-top:12px;
}
.page-home .focus__list li{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  font-size:13.5px;
  line-height:1.6;
  color:rgba(244,239,228,.78);
}
.page-home .focus__list .num{color:var(--orange);font-weight:700;}
.page-home .focus__cta{
  margin-top:auto;
  padding-top:6px;
  align-self:flex-start;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.05em;
  color:var(--lime);
  text-decoration:none;
  border-bottom:1px solid rgba(198,242,78,.4);
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.page-home .focus__cta:hover{color:var(--orange);border-color:var(--orange);}
@media (min-width:920px){
  .page-home .focus__grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
  }
  .page-home .focus__card:nth-child(2){margin-top:clamp(24px,3.4vw,52px);}
  .page-home .focus__card:nth-child(3){margin-top:clamp(48px,6.8vw,104px);}
}

/* ---------- 03 qinghai ---------- */
.page-home .qh__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,52px);
  align-items:start;
}
@media (min-width:960px){
  .page-home .qh__grid{grid-template-columns:minmax(0,7fr) minmax(280px,3fr);}
}
.page-home .qh__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:clamp(14px,2vw,20px);
}
.page-home .qh__item{
  padding-left:clamp(14px,1.8vw,20px);
  border-left:3px solid rgba(255,106,43,.55);
}
.page-home .qh__item-title{
  margin:0 0 6px;
  font-size:clamp(16px,1.3vw,19px);
  font-weight:600;
}
.page-home .qh__item-text{
  margin:0;
  font-size:14.5px;
  line-height:1.74;
  color:var(--ink-soft);
}
.page-home .qh__media{
  margin:0;
  background:var(--navy);
  border-radius:var(--r-xl);
  overflow:hidden;
}
.page-home .qh__media img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:12/7;
  object-fit:cover;
}
.page-home .qh__cap{
  padding:12px 16px 16px;
  font-size:12px;
  line-height:1.6;
  color:rgba(244,239,228,.72);
  background:var(--navy);
}

/* ---------- 04 timeline + pulse ---------- */
.page-home .timeline{
  list-style:none;
  margin:0 0 clamp(28px,4vw,48px);
  padding:0;
}
.page-home .timeline__item{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(14px,3vw,36px);
  align-items:baseline;
  padding-block:clamp(15px,2vw,22px);
  border-top:1px solid rgba(251,248,241,.16);
}
.page-home .timeline__item:last-child{border-bottom:1px solid rgba(251,248,241,.16);}
.page-home .timeline__year{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:clamp(19px,2.4vw,28px);
  letter-spacing:.01em;
  color:var(--lime);
}
.page-home .timeline__text{
  margin:0;
  font-size:14.5px;
  line-height:1.74;
  color:rgba(251,248,241,.8);
}

.page-home .pulse{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(12px,2vw,20px);
}
@media (min-width:820px){
  .page-home .pulse{grid-template-columns:repeat(4,minmax(0,1fr));}
}
.page-home .pulse__item{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:clamp(16px,2vw,22px);
  background:rgba(251,248,241,.06);
  border:1px solid rgba(198,242,78,.20);
  border-radius:var(--r-md);
}
.page-home .pulse__val{
  font-family:var(--font-mono);
  font-weight:700;
  font-size:clamp(22px,2.6vw,32px);
  letter-spacing:-.02em;
  color:var(--lime);
}
.page-home .pulse__key{
  font-size:12.5px;
  line-height:1.6;
  color:rgba(251,248,241,.72);
}
.page-home .pulse__note{
  margin:clamp(20px,2.6vw,30px) 0 0;
  font-size:14px;
  line-height:1.78;
  color:rgba(251,248,241,.7);
  max-width:62ch;
}

/* ---------- 05 quick routes ---------- */
.page-home .routes{position:relative;}
.page-home .routes__track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(220px,76%);
  gap:clamp(12px,2vw,20px);
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  padding-bottom:14px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.page-home .route-card{
  scroll-snap-align:start;
  display:grid;
  grid-template-rows:auto auto 1fr auto;
  gap:10px;
  padding:clamp(18px,2.4vw,26px);
  min-height:186px;
  background:var(--paper-card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  text-decoration:none;
  color:inherit;
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-home .route-card:hover{
  border-color:var(--orange);
  transform:translateY(-3px);
}
.page-home .route-card__idx{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;height:24px;
  border-radius:var(--pill);
  background:var(--green);
  color:var(--lime);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.06em;
}
.page-home .route-card__name{
  font-size:clamp(17px,1.35vw,20px);
  font-weight:600;
}
.page-home .route-card__text{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-soft);
}
.page-home .route-card__go{
  justify-self:end;
  font-family:var(--font-mono);
  font-size:16px;
  color:var(--ink-soft);
}
.page-home .routes__scale{
  display:flex;
  gap:6px;
  margin-top:6px;
}
.page-home .routes__scale span{
  flex:1;
  height:3px;
  border-radius:var(--pill);
  background:var(--line);
}
.page-home .routes__scale span:first-child{background:var(--orange);}
@media (min-width:820px){
  .page-home .routes__track{
    grid-auto-flow:row;
    grid-template-columns:repeat(4,minmax(0,1fr));
    overflow:visible;
    padding-bottom:0;
  }
  .page-home .routes__scale{display:none;}
}

/* ---------- 06 support ---------- */
.page-home .support__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,52px);
  align-items:start;
}
@media (min-width:960px){
  .page-home .support__grid{grid-template-columns:minmax(0,7fr) minmax(300px,3fr);}
}
.page-home .support__types{
  list-style:none;
  margin:0 0 clamp(22px,3vw,32px);
  padding:0;
  display:grid;
  gap:12px;
}
.page-home .support__type{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:baseline;
  padding:clamp(13px,1.6vw,17px) clamp(14px,1.8vw,20px);
  background:var(--paper-card);
  border:1px solid var(--line);
  border-radius:var(--r-sm);
}
.page-home .support__type p{
  margin:0;
  font-size:14.5px;
  line-height:1.68;
}
.page-home .support__type-idx{
  color:var(--orange);
  font-weight:700;
  font-size:14px;
}
.page-home .support__card{
  padding:clamp(20px,2.6vw,30px);
  background:var(--green);
  background-image:linear-gradient(150deg,rgba(198,242,78,.12) 0 24%,rgba(198,242,78,0) 24.4% 100%);
  border-radius:var(--r-lg);
  color:var(--paper-card);
}
.page-home .support__card-title{
  margin:0 0 16px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--lime);
}
.page-home .support__facts{margin:0;}
.page-home .support__facts dt{
  font-size:11.5px;
  letter-spacing:.1em;
  color:rgba(198,242,78,.82);
  font-family:var(--font-mono);
}
.page-home .support__facts dd{
  margin:4px 0 16px;
  font-size:15.5px;
  line-height:1.6;
  color:var(--paper-card);
  word-break:break-word;
}
.page-home .support__facts dd:last-child{margin-bottom:0;}
.page-home .support__hint{
  margin:18px 0 0;
  padding-top:16px;
  border-top:1px solid rgba(198,242,78,.2);
  font-size:13px;
  line-height:1.7;
  color:rgba(244,239,228,.76);
}

/* ---------- back to top ---------- */
.page-home .totop{
  position:fixed;
  right:clamp(12px,3vw,32px);
  bottom:clamp(12px,3vw,32px);
  z-index:40;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  background:var(--green);
  color:var(--paper);
  border:1px solid rgba(198,242,78,.3);
  border-radius:var(--pill);
  text-decoration:none;
  box-shadow:0 6px 22px rgba(16,26,46,.24);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-home .totop:hover{border-color:var(--orange);transform:translateY(-2px);}
.page-home .totop__num{
  font-size:12.5px;
  font-weight:700;
  color:var(--lime);
  letter-spacing:.04em;
}
.page-home .totop__label{
  font-size:12.5px;
  color:rgba(244,239,228,.86);
}
@media (max-width:520px){
  .page-home .totop__label{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .page-home *{transition-duration:1ms !important;animation-duration:1ms !important;}
}
</main>
