/* ========== Reset & Variables ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --c-green:#1e88e5;   --c-green-l:#42a5f5;  --c-green-d:#1565c0;
  --c-blue:#0d47a1;    --c-purple:#7c3aed;   --c-amber:#f59e0b;
  --c-bg:#f8fafc;      --c-card:#fff;        --c-text:#0f172a;
  --c-muted:#64748b;   --c-border:#e2e8f0;   --c-rail:#8d6e63;
  --radius:12px;       --shadow:0 1px 3px rgba(0,0,0,.06);
  --trans:.2s ease;
}
[data-theme="dark"]{
  --c-green:#42a5f5;   --c-green-l:#64b5f6;  --c-green-d:#1976d2;
  --c-bg:#0f172a;      --c-card:#1e293b;     --c-text:#e2e8f0;
  --c-muted:#94a3b8;   --c-border:#334155;   --c-rail:#a1887f;
  --shadow:0 1px 3px rgba(0,0,0,.3);
}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC",sans-serif;
  background:var(--c-bg);color:var(--c-text);line-height:1.6;
  /* 底部草地方块纹理暗示 Minecraft */
  background-image:
    linear-gradient(to bottom, rgba(248,250,252,0) 95%, rgba(30,136,229,.04) 100%);
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
ul{list-style:none}
.container{max-width:1140px;margin:0 auto;padding:0 24px}

/* ========== 导航栏 ========== */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.85);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--c-border);
}
.nav-container{
  max-width:1140px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;height:64px;
}

/* Logo */
.logo-area{
  display:flex;align-items:center;gap:12px;flex-shrink:0;
  transition:opacity var(--trans);
}
.logo-area:hover{opacity:.8}
.logo-svg{width:40px;height:40px;display:block}
.logo-text{display:flex;flex-direction:column;line-height:1.2}
.logo-title{font-size:1.1rem;font-weight:700;color:var(--c-text);letter-spacing:.5px}
.logo-sub{font-size:.67rem;color:var(--c-green-l);letter-spacing:1px;text-transform:uppercase}

/* 导航列表 */
.nav-list{display:flex;align-items:center;gap:4px}
.nav-link{
  display:inline-flex;align-items:center;padding:8px 16px;
  font-size:.9rem;font-weight:500;color:var(--c-text);
  border-radius:8px;transition:all var(--trans);
}
.nav-link:hover{background:#e3f2fd;color:var(--c-green)}

/* 登录按钮 */
.nav-login-btn{
  background:var(--c-green);color:#fff !important;
  padding:8px 20px;margin-left:8px;
}
.nav-login-btn:hover{background:var(--c-green-d) !important}

/* 主题切换按钮 */
.theme-toggle{
  width:38px;height:38px;border:none;border-radius:10px;
  background:transparent;cursor:pointer;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--trans);margin-left:4px;color:var(--c-text);
}
.theme-toggle:hover{background:#e3f2fd}
[data-theme="dark"] .theme-toggle:hover{background:#334155}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:block}
[data-theme="dark"] .theme-toggle .icon-sun{display:block}
[data-theme="dark"] .theme-toggle .icon-moon{display:none}

/* 汉堡菜单 */
.hamburger{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:4px;
}
.hamburger span{
  display:block;width:24px;height:2px;
  background:var(--c-text);border-radius:2px;transition:var(--trans);
}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* ========== Hero 横幅 ========== */
.hero{padding:80px 0 90px}
.hero .container{display:flex;align-items:center;gap:60px}
.hero-text{flex:1}
.hero-tag{
  display:inline-block;padding:5px 16px;font-size:.8rem;font-weight:600;
  background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:var(--c-green);
  border-radius:20px;margin-bottom:20px;
}
.hero-heading{font-size:2.8rem;font-weight:800;line-height:1.25;margin-bottom:20px}
.text-gradient{background:linear-gradient(135deg,var(--c-green-l),#90caf9);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-desc{font-size:1.05rem;color:var(--c-muted);margin-bottom:32px;line-height:1.8}
.hero-btns{display:flex;gap:14px;margin-bottom:40px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 28px;border-radius:10px;font-size:.9rem;font-weight:600;
  cursor:pointer;transition:all var(--trans);border:none;
}
.btn-fill{background:var(--c-green);color:#fff}
.btn-fill:hover{background:var(--c-green-d);transform:translateY(-1px);box-shadow:0 6px 20px rgba(30,136,229,.3)}
.btn-ghost{border:2px solid var(--c-border);color:var(--c-text);background:transparent}
.btn-ghost:hover{border-color:var(--c-green);color:var(--c-green)}
.full{width:100%}

.hero-numbers{display:flex;align-items:center;gap:28px}
.hero-numbers strong{display:block;font-size:1.3rem;color:var(--c-text)}
.hero-numbers span{font-size:.8rem;color:var(--c-muted)}
.num-divider{width:1px;height:36px;background:var(--c-border)}

/* ===== 列车插画 ===== */
.hero-graphic{flex:1;display:flex;justify-content:center}
.train-sketch{position:relative;width:300px;height:260px}

/* 列车本体 */
.train-body{
  position:absolute;bottom:40px;left:50%;transform:translateX(-50%);
  display:flex;width:240px;height:80px;
}
.train-front{
  width:80px;height:80px;background:linear-gradient(135deg,#42a5f5,#1e88e5);
  border-radius:16px 4px 4px 16px;position:relative;overflow:hidden;
  box-shadow:0 8px 24px rgba(30,136,229,.25);
}
.train-front::after{
  content:'';position:absolute;top:8px;right:0;
  width:3px;height:12px;background:#fff3e0;border-radius:2px;
}
.train-front .t-w1{
  position:absolute;top:14px;left:16px;
  width:22px;height:16px;background:#bbdefb;border-radius:4px;
  border:2px solid #1565c0;
}
.train-front .t-w2{
  position:absolute;top:14px;right:14px;
  width:16px;height:16px;background:#bbdefb;border-radius:4px;
  border:2px solid #1565c0;
}
.train-light{
  position:absolute;bottom:12px;left:12px;
  width:10px;height:10px;background:#ffeb3b;
  border-radius:50%;box-shadow:0 0 12px #ffeb3b;
  animation:blink 1.5s ease-in-out infinite;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

.train-cab{
  flex:1;height:80px;background:linear-gradient(180deg,#42a5f5,#1e88e5);
  border-radius:4px 16px 16px 4px;padding:10px 16px;
  display:flex;flex-direction:column;gap:8px;
  box-shadow:0 8px 24px rgba(30,136,229,.25);
}
.train-cab .train-window{
  width:100%;height:12px;background:#bbdefb;border-radius:3px;
  border:2px solid #1565c0;
}
.train-stripe{
  width:100%;height:4px;background:#fff3e0;border-radius:2px;margin-top:auto;
}

/* 轨道 */
.rail-track{
  position:absolute;bottom:28px;left:20px;right:20px;
  height:16px;display:flex;flex-direction:column;align-items:center;gap:2px;
}
.rail{
  width:100%;height:3px;background:#78909c;border-radius:2px;
  box-shadow:0 0 0 1px rgba(0,0,0,.1);
}
.rail-sleeper{
  width:100%;height:4px;
  background:repeating-linear-gradient(
    90deg,
    var(--c-rail) 0,
    var(--c-rail) 6px,
    #a1887f 6px,
    #a1887f 14px
  );
  border-radius:2px;
}

/* 光晕 */
.glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.12}
.g1{width:140px;height:140px;background:var(--c-green);top:0;right:0}
.g2{width:100px;height:100px;background:var(--c-blue);bottom:20px;left:-10px}
.g3{width:80px;height:80px;background:var(--c-amber);bottom:60px;right:20px}

/* ========== 通用区块标题 ========== */
.sec-label{text-align:center;margin-bottom:48px}
.sec-label h2{font-size:1.9rem;font-weight:700;margin-bottom:8px}
.sec-label p{color:var(--c-muted);font-size:.95rem}

/* ========== 服务器新闻 ========== */
.news-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.news-card{
  display:flex;gap:16px;background:var(--c-card);
  border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow);
  transition:all var(--trans);
}
.news-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.news-date{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:56px;height:56px;background:linear-gradient(135deg,var(--c-green),var(--c-green-d));
  border-radius:10px;color:#fff;flex-shrink:0;
}
.news-day{font-size:1.3rem;font-weight:800;line-height:1}
.news-month{font-size:.7rem;opacity:.85}
.news-content{flex:1}
.news-content h3{font-size:.95rem;font-weight:600;margin-bottom:6px}
.news-content p{font-size:.82rem;color:var(--c-muted);line-height:1.6;margin-bottom:10px}
.news-tags{display:flex;gap:6px;flex-wrap:wrap}
.news-tag{
  display:inline-block;padding:2px 10px;font-size:.72rem;font-weight:600;
  border-radius:12px;background:#e3f2fd;color:var(--c-green);
}
.news-tag.new{background:#e8f5e9;color:#2e7d32}
.news-tag.event{background:#fff8e1;color:#f57f17}
.news-tag.update{background:#e3f2fd;color:#1565c0}

[data-theme="dark"] .news-tag{background:#1e293b;color:var(--c-green-l)}
[data-theme="dark"] .news-tag.new{background:#1b3a1f;color:#66bb6a}
[data-theme="dark"] .news-tag.event{background:#2d2410;color:#ffca28}
[data-theme="dark"] .news-tag.update{background:#0d2137;color:#64b5f6}

@media(max-width:768px){
  .news-grid{grid-template-columns:1fr}
}

/* ========== 卡片网格 ========== */
.card-grid{display:grid;gap:20px}
.card-grid.four{grid-template-columns:repeat(4,1fr)}
.card-grid.three{grid-template-columns:repeat(3,1fr)}

/* 特性卡片 */
.card{
  background:var(--c-card);border-radius:var(--radius);
  padding:28px 24px;box-shadow:var(--shadow);
  transition:all var(--trans);
  border:1px solid var(--c-border);
}
.card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.card-icon{
  width:48px;height:48px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:16px;
  background:#e3f2fd;
}

.card h3{font-size:1.05rem;font-weight:600;margin-bottom:8px}
.card p{font-size:.88rem;color:var(--c-muted);line-height:1.7}

/* 列车卡片变体 */
.train-card:hover{
  border-color:var(--c-green-l);
  background:linear-gradient(180deg,#fff,#e3f2fd);
}

/* ========== 线路卡片 ========== */
.line-card{
  background:var(--c-card);border-radius:var(--radius);
  padding:32px 24px;border:1px solid var(--c-border);
  box-shadow:var(--shadow);text-align:center;
  transition:all var(--trans);position:relative;
  border-top:4px solid var(--line-color);
}
.line-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.line-card.featured{
  border-top-color:var(--line-color);
  box-shadow:0 0 0 1px var(--line-color), 0 4px 16px rgba(30,136,229,.15);
}
.plan-badge{
  position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--c-amber);color:#fff;font-size:.75rem;font-weight:600;
  padding:3px 16px;border-radius:10px;
}
.line-badge{
  display:inline-block;padding:4px 14px;font-size:.75rem;font-weight:700;
  color:#fff;background:var(--line-color);border-radius:6px;margin-bottom:12px;
}
.line-top{margin-bottom:20px}
.line-top h3{font-size:1.1rem;margin-bottom:8px}
.line-info{font-size:.85rem;color:var(--c-muted)}
.line-info span{font-weight:600;color:var(--c-text)}
.line-features{display:flex;flex-direction:column;gap:10px}
.line-features li{
  padding:8px 0;border-bottom:1px solid var(--c-border);
  font-size:.88rem;color:var(--c-muted);
}
.line-features li:last-child{border-bottom:none}

/* ========== 区块间距 ========== */
.intro-section{padding:80px 0}
.service-section{padding:80px 0;background:#fff}
.contact-section{padding:80px 0}

/* ========== 联系我们 ========== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:20px}
.info-item{display:flex;gap:14px;padding:16px;background:var(--c-card);
  border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--c-border)}
.info-icon{font-size:1.4rem;flex-shrink:0}
.info-item strong{display:block;font-size:.9rem;margin-bottom:2px}
.info-item p{font-size:.85rem;color:var(--c-muted)}

.contact-form{display:flex;flex-direction:column;gap:14px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{
  width:100%;padding:12px 16px;border:1px solid var(--c-border);
  border-radius:10px;font-size:.9rem;font-family:inherit;
  outline:none;transition:border var(--trans);
}
.field:focus{border-color:var(--c-green);box-shadow:0 0 0 3px rgba(30,136,229,.1)}
.field-area{resize:vertical;min-height:100px}
.contact-form .btn-fill{align-self:flex-start}

/* ===== 服务器状态卡片 ===== */
.server-status-card{
  background:var(--c-card);border:1px solid var(--c-border);
  border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,.06);
  padding:28px;display:flex;flex-direction:column;gap:20px;
  border-top:3px solid var(--c-green);
  transition:box-shadow .3s ease,transform .3s ease;
}
.server-status-card:hover{
  box-shadow:0 8px 32px rgba(30,136,229,.12);
  transform:translateY(-2px);
}
.server-status-card .status-title{
  margin:0;font-size:1rem;font-weight:700;color:var(--c-text);
  display:flex;align-items:center;gap:8px;
}
.server-status-card .status-title::before{
  content:'🖥';font-size:1.1rem;
}
.status-indicator{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  border-radius:12px;background:rgba(148,163,184,.08);
  border:1px solid transparent;transition:border .3s ease;
}
.status-indicator .status-dot{
  width:12px;height:12px;border-radius:50%;background:#94a3b8;
  flex-shrink:0;position:relative;
}
.status-indicator.online{
  background:rgba(16,185,129,.08);
  border-color:rgba(16,185,129,.2);
}
.status-indicator.online .status-dot{
  background:#10b981;
  box-shadow:0 0 8px rgba(16,185,129,.5);
  animation:pulse-dot 2s ease-in-out infinite;
}
.status-indicator.offline{
  background:rgba(239,68,68,.06);
  border-color:rgba(239,68,68,.15);
}
.status-indicator.offline .status-dot{
  background:#ef4444;
  box-shadow:0 0 8px rgba(239,68,68,.3);
}
@keyframes pulse-dot{
  0%,100%{box-shadow:0 0 4px rgba(16,185,129,.4)}
  50%{box-shadow:0 0 14px rgba(16,185,129,.7)}
}
.status-indicator .status-text{font-size:.88rem;color:var(--c-text);font-weight:600}
.status-indicator.online .status-text{color:#10b981}
.status-indicator.offline .status-text{color:#ef4444}

.status-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
}
.status-item{
  padding:14px 16px;
  background:linear-gradient(135deg,rgba(148,163,184,.04),rgba(148,163,184,.02));
  border-radius:12px;display:flex;flex-direction:column;gap:6px;
  border:1px solid rgba(148,163,184,.08);
  transition:border .3s ease,background .3s ease;
  position:relative;overflow:hidden;
}
.status-item::before{
  content:'';position:absolute;left:0;top:0;bottom:0;
  width:3px;border-radius:3px 0 0 3px;
}
.status-item:nth-child(1)::before{background:var(--c-green)}
.status-item:nth-child(2)::before{background:var(--c-amber)}
.status-item:hover{
  border-color:rgba(148,163,184,.15);
  background:linear-gradient(135deg,rgba(148,163,184,.08),rgba(148,163,184,.04));
}
.status-item .status-label{
  font-size:.72rem;color:var(--c-muted);font-weight:500;
  display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.5px;
}
.status-item .status-value{
  font-size:.95rem;color:var(--c-text);font-weight:700;
}

.player-list{
  padding-top:4px;display:flex;flex-direction:column;gap:10px;
}
.player-list-label{
  font-size:.72rem;color:var(--c-muted);font-weight:500;
  text-transform:uppercase;letter-spacing:.5px;
}
.player-tags{
  display:flex;flex-wrap:wrap;gap:8px;
}
.player-tag{
  display:inline-flex;align-items:center;
  padding:5px 12px;font-size:.8rem;font-weight:600;
  background:linear-gradient(135deg,var(--c-green),var(--c-green-d));
  color:#fff;border-radius:6px;
  box-shadow:0 2px 8px rgba(30,136,229,.2);
  transition:transform .2s ease,box-shadow .2s ease;
}
.player-tag:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(30,136,229,.35);
}

/* 暗色主题 */
[data-theme="dark"] .server-status-card{
  box-shadow:0 4px 24px rgba(0,0,0,.3);
}
[data-theme="dark"] .server-status-card:hover{
  box-shadow:0 8px 32px rgba(30,136,229,.18);
}
[data-theme="dark"] .status-indicator.online{
  background:rgba(16,185,129,.1);
  border-color:rgba(16,185,129,.25);
}
[data-theme="dark"] .status-indicator.offline{
  background:rgba(239,68,68,.08);
  border-color:rgba(239,68,68,.2);
}
[data-theme="dark"] .status-item{
  background:linear-gradient(135deg,rgba(148,163,184,.06),rgba(148,163,184,.03));
  border-color:rgba(148,163,184,.1);
}
[data-theme="dark"] .status-item:hover{
  border-color:rgba(148,163,184,.2);
  background:linear-gradient(135deg,rgba(148,163,184,.1),rgba(148,163,184,.06));
}


/* ========== 页脚 ========== */
.footer{background:#0f172a;color:#cbd5e1;padding:48px 0 24px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:32px}
.footer-logo{font-size:1.2rem;font-weight:700;color:#64b5f6;display:block;margin-bottom:8px}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links strong{color:#fff;font-size:.85rem;margin-bottom:4px}
.footer-links a{font-size:.82rem;color:#94a3b8;transition:color var(--trans)}
.footer-links a:hover{color:#64b5f6}
.footer-hl{
  color:var(--c-green-l) !important;font-weight:600;
  background:linear-gradient(135deg,var(--c-green),var(--c-green-l));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  padding-top:20px;border-top:1px solid #1e293b;font-size:.78rem;color:#64748b;
}
.beian a{
  color:#42a5f5;font-weight:600;
  transition:color var(--trans);
}
.beian a:hover{color:#90caf9;text-decoration:underline}

/* ========== 登录弹窗 ========== */
.modal-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(15,23,42,.5);align-items:center;justify-content:center;
  backdrop-filter:blur(2px);
}
.modal-overlay.active{display:flex}
.modal-box{
  background:var(--c-card);border-radius:16px;width:90%;max-width:400px;
  box-shadow:0 20px 60px rgba(0,0,0,.15);
  animation:popIn .2s ease;
}
@keyframes popIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px 0;
}
.modal-head h3{font-size:1.1rem;font-weight:600}
.modal-x{
  background:none;border:none;font-size:1.5rem;
  color:var(--c-muted);cursor:pointer;width:30px;height:30px;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.modal-x:hover{background:#e3f2fd;color:var(--c-text)}
.modal-body{padding:20px 24px 24px}
.form-grp{margin-bottom:16px}
.form-grp label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}

/* ========== Toast ========== */
.toast-box{
  position:fixed;top:20px;right:20px;z-index:300;
  display:flex;flex-direction:column;gap:8px;
}
.toast-msg{
  padding:12px 20px;background:var(--c-card);
  border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.12);
  font-size:.88rem;animation:slideIn .3s ease;
  border-left:4px solid var(--c-green);
}
.toast-msg.err{border-left-color:#ef4444}
@keyframes slideIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes slideOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}

/* ========== 暗色主题特定覆写 ========== */
[data-theme="dark"] body{
  background-image:linear-gradient(to bottom, rgba(15,23,42,0) 95%, rgba(66,165,245,.06) 100%);
}
[data-theme="dark"] .header{background:rgba(15,23,42,.88)}
[data-theme="dark"] .nav-link:hover{background:#1e293b;color:var(--c-green-l)}
[data-theme="dark"] .hero-tag{background:linear-gradient(135deg,#0d2137,#0b1a33);color:var(--c-green-l)}
[data-theme="dark"] .card:hover{box-shadow:0 8px 30px rgba(0,0,0,.3)}
[data-theme="dark"] .train-card:hover{
  background:linear-gradient(180deg,var(--c-card),#0d2137);
}
[data-theme="dark"] .line-card.featured{
  box-shadow:0 0 0 1px var(--line-color), 0 4px 16px rgba(30,136,229,.2);
}
[data-theme="dark"] .service-section{background:var(--c-card)}
[data-theme="dark"] .btn-ghost{border-color:var(--c-border)}
[data-theme="dark"] .btn-ghost:hover{color:var(--c-green-l)}
[data-theme="dark"] .modal-overlay{background:rgba(0,0,0,.65)}
[data-theme="dark"] .modal-x:hover{background:#334155}
[data-theme="dark"] .field{background:var(--c-card);color:var(--c-text)}
[data-theme="dark"] .field:focus{box-shadow:0 0 0 3px rgba(66,165,245,.2)}
[data-theme="dark"] .card-icon{background:#1e293b}
[data-theme="dark"] .glow{opacity:.18}
[data-theme="dark"] .train-body .train-front{
  background:linear-gradient(135deg,#1e88e5,#1565c0);
  box-shadow:0 8px 24px rgba(30,136,229,.15);
}
[data-theme="dark"] .train-cab{
  background:linear-gradient(180deg,#1e88e5,#1976d2);
  box-shadow:0 8px 24px rgba(30,136,229,.15);
}
[data-theme="dark"] .rail{background:#546e7a}
[data-theme="dark"] .rail-sleeper{
  background:repeating-linear-gradient(90deg,var(--c-rail) 0,var(--c-rail) 6px,#6d4c41 6px,#6d4c41 14px);
}
[data-theme="dark"] .toast-msg{box-shadow:0 8px 30px rgba(0,0,0,.4)}

/* ========== 响应式 ========== */
@media(max-width:768px){
  .hero .container{flex-direction:column;text-align:center;gap:40px}
  .hero-heading{font-size:2rem}
  .hero-btns{justify-content:center}
  .hero-numbers{justify-content:center;flex-wrap:wrap}
  .card-grid.four{grid-template-columns:1fr 1fr}
  .card-grid.three{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;text-align:center}
  .train-sketch{width:260px;height:220px}
  .train-body{width:200px;height:66px}
  .train-front{width:66px;height:66px}
  .train-cab{height:66px}
  .train-cab .train-window{height:10px}
  .train-front .t-w1{width:18px;height:13px;left:12px}
  .train-front .t-w2{width:13px;height:13px;right:10px}
  .hamburger{display:flex}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;
       background:var(--c-card);border-bottom:1px solid var(--c-border);padding:16px 24px}
  .nav.open{display:block}
  .nav-list{flex-direction:column;gap:0}
  .nav-link{padding:12px 0;width:100%}
  .nav-login-btn{text-align:center;margin:8px 0}
}
