/*
Theme Name: 梦幻之旅
Description: 为「梦幻之旅」Minecraft 服务器定制的轻量官网主题。方块美学、深色底、无外部依赖。
Version: 1.1.1
Author: 自动生成
License: GPL-2.0-or-later
Text Domain: mengxiang
*/

:root{
  --bg:#0a0e13; --bg2:#0d131b; --panel:#141c26; --panel2:#1b2530;
  --line:#26313d; --line2:#32404f;
  --fg:#e8eef5; --dim:#8b9aab; --dim2:#5f6d7c;
  --green:#7cbd56; --green-d:#4f8f36; --green-dd:#2f5a1f;
  --cyan:#4aedd9; --purple:#a06cf5; --gold:#f2c14e; --red:#e05252;
  /* 统一动效曲线与时长：全站过渡用同一条曲线，观感才连贯 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --dur:.28s;
  --dur-slow:.6s;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px;background:#0a0e13}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--cyan);text-decoration:none;transition:color var(--dur) var(--ease)}
a:hover{text-decoration:underline}

.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.dim{color:var(--dim)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- 像素字体（仅用于拉丁字母与数字） ---------- */
@font-face{
  font-family:"MX Pixel";
  src:url("assets/press-start-2p.woff2") format("woff2");
  font-display:swap;
}
.px{font-family:"MX Pixel",ui-monospace,SFMono-Regular,Consolas,monospace}

/* ---------- 顶部导航 ---------- */
.site-head{
  position:sticky;top:0;z-index:50;
  background:#0a0e13;
  border-bottom:2px solid var(--line);
}
.head-in{display:flex;align-items:center;justify-content:space-between;height:66px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;color:var(--fg);font-weight:800;font-size:19px;text-decoration:none;
  transition:color var(--dur) var(--ease)}
.brand:hover{text-decoration:none;color:var(--green)}
.brand-logo{
  width:30px;height:30px;flex:none;display:block;
  border:1px solid var(--line2);
  box-shadow:0 0 0 1px rgba(0,0,0,.5);
}
.brand-ver{
  font-size:11px;color:var(--cyan);border:1px solid var(--line2);
  padding:2px 7px;letter-spacing:.5px;
}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav a{color:var(--dim);font-size:15px;font-weight:500;text-decoration:none;padding:6px 0;
  border-bottom:2px solid transparent;
  transition:color var(--dur) var(--ease), border-bottom-color var(--dur) var(--ease)}
.nav a:hover{color:var(--fg);border-bottom-color:var(--green);text-decoration:none}

/* ---------- 通用 MC 立体按钮 ---------- */
.mc-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 26px;font:inherit;font-weight:700;font-size:15px;color:#fff;
  background:#6d7278;border:2px solid #06090d;cursor:pointer;text-decoration:none;
  box-shadow:inset -3px -3px 0 0 #41464b, inset 3px 3px 0 0 #9aa1a8;
  transition:background var(--dur) var(--ease), filter var(--dur) var(--ease);
}
.mc-btn:hover{background:#7d838a;text-decoration:none;color:#fff}
.mc-btn:active{box-shadow:inset 3px 3px 0 0 #41464b, inset -3px -3px 0 0 #9aa1a8}
.mc-btn--green{background:var(--green-d);box-shadow:inset -3px -3px 0 0 var(--green-dd), inset 3px 3px 0 0 var(--green)}
.mc-btn--green:hover{background:#5da33f}
.mc-btn--ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 2px var(--line2)}
.mc-btn--ghost:hover{background:var(--panel2)}

/* ---------- 首屏 ---------- */
.hero{
  position:relative;overflow:hidden;padding:86px 0 74px;text-align:center;
  background:
    radial-gradient(1100px 460px at 50% -12%, rgba(74,237,217,.11), transparent 62%),
    linear-gradient(180deg,var(--bg2),var(--bg));
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 88%);
  mask-image:linear-gradient(180deg,#000,transparent 88%);
}
.hero .wrap{position:relative;z-index:1}
.hero-poster{
  width:200px;height:200px;margin:0 auto 26px;display:block;
  border:2px solid var(--line2);
  box-shadow:
    0 0 0 7px rgba(74,237,217,.06),
    0 0 54px rgba(74,237,217,.13),
    0 20px 50px rgba(0,0,0,.55);
}
/* 服务器图标（来自 MC 服务器）放状态胶囊里 */
.status-icon{width:20px;height:20px;flex:none;image-rendering:pixelated}
.eyebrow{
  display:inline-block;font-size:12px;letter-spacing:2px;color:var(--cyan);
  border:1px solid var(--line2);padding:4px 12px;margin-bottom:18px;
}
.hero h1{
  margin:0 0 14px;font-size:clamp(38px,6vw,60px);font-weight:900;letter-spacing:2px;
  background:linear-gradient(180deg,#fff,#9fd67f);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .sub{font-size:17px;color:var(--dim);margin:0 auto 26px;max-width:560px}

/* 在线状态 */
.status{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--panel);border:2px solid var(--line);padding:9px 16px;margin-bottom:28px;
  font-size:14px;
}
.dot{position:relative;width:10px;height:10px;flex:none;background:var(--dim2)}
.dot.on{background:var(--green)}
.dot.off{background:var(--red)}
/* 只动 transform + opacity：交给合成器，不重排不重绘 */
.dot.on::after{
  content:"";position:absolute;inset:0;background:var(--green);
  animation:pulse 2.2s var(--ease) infinite;
  will-change:transform,opacity;
}
@keyframes pulse{
  0%{transform:scale(1);opacity:.7}
  70%,100%{transform:scale(2.8);opacity:0}
}
.status b{color:var(--fg)}
.status .sep{color:var(--dim2)}

/* 地址复制 */
.addr{
  display:flex;align-items:stretch;max-width:520px;margin:0 auto 26px;
  border:2px solid var(--line2);background:#070a0e;
}
.addr-code{
  flex:1;display:flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 18px;font-size:17px;font-weight:700;color:var(--cyan);
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.addr-code .ph{color:var(--dim2);font-size:14px;font-weight:400}
.addr-copy{
  border:0;border-left:2px solid var(--line2);background:var(--panel);
  color:var(--fg);font:inherit;font-size:14px;font-weight:700;
  padding:0 22px;cursor:pointer;transition:background var(--dur) var(--ease);
}
.addr-copy:hover{background:var(--green-d)}
.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ---------- 区块 ---------- */
.sec{padding:70px 0;border-top:2px solid var(--line);scroll-margin-top:86px}
.sec--alt{background:var(--bg2)}
.sec-head{text-align:center;margin-bottom:44px}
.sec-head h2{
  margin:0 0 10px;font-size:clamp(24px,3.4vw,32px);font-weight:800;letter-spacing:1px;
}
.sec-head h2::after{
  content:"";display:block;width:52px;height:4px;background:var(--green);margin:14px auto 0;
  box-shadow:8px 0 0 var(--cyan);
}
.sec-head p{margin:12px 0 0;color:var(--dim);font-size:15px}

/* 特色卡片 */
.grid{display:grid;gap:20px}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{
  background:var(--panel);border:2px solid var(--line);padding:26px 22px;
  transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.card:hover{border-color:var(--line2);transform:translate3d(0,-4px,0)}
.card-ico{
  width:42px;height:42px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:center;font-size:21px;
  background:var(--panel2);border:2px solid var(--line2);
}
.card h3{margin:0 0 9px;font-size:17px;font-weight:700}
.card p{margin:0;color:var(--dim);font-size:14.5px}

/* 加入步骤 */
.steps{counter-reset:st;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.step{position:relative;background:var(--panel);border:2px solid var(--line);padding:26px 22px 22px}
.step::before{
  counter-increment:st;content:counter(st,decimal-leading-zero);
  position:absolute;top:-2px;left:-2px;background:var(--green-d);color:#fff;
  font-size:12px;font-weight:800;padding:4px 10px;letter-spacing:1px;
}
.step h3{margin:14px 0 8px;font-size:16px}
.step p{margin:0;color:var(--dim);font-size:14.5px}
.step code{background:#070a0e;border:1px solid var(--line);padding:1px 6px;color:var(--cyan);font-size:13px}

/* 下载列表 */
.dl{display:flex;flex-direction:column;gap:12px}
.dl-row{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:var(--panel);border:2px solid var(--line);padding:18px 22px;
  transition:border-color var(--dur) var(--ease);
}
.dl-row:hover{border-color:var(--line2)}
.dl-main{flex:1;min-width:200px}
.dl-name{font-weight:700;font-size:16px;margin:0 0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tag{font-size:11px;padding:2px 8px;border:1px solid var(--line2);color:var(--dim);letter-spacing:.5px}
.tag--hot{color:var(--gold);border-color:#5c4a1e;background:rgba(242,193,78,.08)}
.tag--new{color:var(--green);border-color:#2f5a1f;background:rgba(124,189,86,.08)}
.dl-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--dim2);font-size:13px}
.dl-btn{flex:none;padding:11px 22px;font-size:14px}
.empty{
  text-align:center;color:var(--dim);border:2px dashed var(--line2);
  padding:36px 22px;font-size:14.5px;
}

/* 公告 */
.news{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.news-item{background:var(--panel);border:2px solid var(--line);padding:22px;
  transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease)}
.news-item:hover{transform:translate3d(0,-3px,0)}
.news-item:hover{border-color:var(--line2)}
.news-date{font-size:12px;color:var(--cyan);letter-spacing:1px;margin-bottom:10px}
.news-item h3{margin:0 0 10px;font-size:16.5px;line-height:1.5}
.news-item h3 a{color:var(--fg)}
.news-item h3 a:hover{color:var(--green);text-decoration:none}
.news-item p{margin:0;color:var(--dim);font-size:14px}

/* 社区 */
.community{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:760px;margin:0 auto}
.comm{background:var(--panel);border:2px solid var(--line);padding:30px 24px;text-align:center;
  transition:border-color var(--dur) var(--ease)}
.comm-ico{font-size:34px;line-height:1;margin-bottom:14px}
.comm h3{margin:0 0 8px;font-size:17px}
.comm .val{font-size:24px;font-weight:800;color:var(--cyan);letter-spacing:1px;margin:10px 0 16px;word-break:break-all}
.comm p{margin:0 0 18px;color:var(--dim);font-size:14px}

/* 页脚 */
.site-foot{
  border-top:2px solid var(--line);background:#070a0e;
  padding:34px 0;text-align:center;color:var(--dim2);font-size:13.5px;
}
.site-foot p{margin:0 0 6px}
.site-foot .disclaimer{font-size:12.5px;color:#4a5764}

/* 文章/页面正文 */
.entry{max-width:760px;margin:0 auto;padding:56px 0}
.entry h1{font-size:clamp(26px,4vw,36px);margin:0 0 10px;line-height:1.35}
.entry-meta{color:var(--dim2);font-size:13.5px;margin-bottom:30px}
.entry-body{color:#d3dce6}
.entry-body h2{font-size:22px;margin:36px 0 14px;padding-left:12px;border-left:4px solid var(--green)}
.entry-body h3{font-size:18px;margin:28px 0 12px}
.entry-body p{margin:0 0 18px}
.entry-body img{border:2px solid var(--line);margin:22px 0}
.entry-body code{background:#070a0e;border:1px solid var(--line);padding:2px 6px;font-size:14px;color:var(--cyan)}
.entry-body pre{background:#070a0e;border:2px solid var(--line);padding:18px;overflow:auto}
.entry-body pre code{border:0;background:none;padding:0}
.entry-body blockquote{
  margin:22px 0;padding:14px 20px;border-left:4px solid var(--line2);
  background:var(--panel);color:var(--dim);
}
.entry-body ul,.entry-body ol{padding-left:24px}
.entry-body li{margin-bottom:8px}
.entry-body a{border-bottom:1px solid rgba(74,237,217,.35)}


/* ---------- 提示框（下载区那种「不知道下哪个」的说明） ---------- */
.notice{
  background:rgba(242,193,78,.07);
  border:2px solid #4a3c1a; border-left:4px solid var(--gold);
  padding:16px 20px; margin-bottom:22px;
  font-size:14.5px; line-height:1.8; color:#ded1b2;
}
.notice b{color:var(--gold)}
.notice .dim{color:#a2967a; font-size:13.5px}

/* ---------- 带警告的下载行（手动 / 进阶选项） ---------- */
.dl-row--warn{border-color:#413615; background:rgba(242,193,78,.028)}
.dl-row--warn:hover{border-color:#6b5522}
.dl-warn{
  display:flex; gap:9px; align-items:flex-start;
  margin-top:12px; padding:11px 13px;
  background:rgba(242,193,78,.06);
  border-left:3px solid var(--gold);
  font-size:13px; line-height:1.7; color:#d3c39c;
}
.dl-warn .ico{flex:none; line-height:1.5}
.dl-warn b{color:var(--gold)}

/* ---------- 核心成员 ---------- */
.team{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(235px,320px));justify-content:center}
.member{
  display:flex;flex-direction:column;
  background:var(--panel);border:2px solid var(--line);
  padding:26px 20px 22px;text-align:center;
  transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.member:hover{border-color:var(--line2);transform:translate3d(0,-4px,0)}
.member-avatar{
  width:80px;height:80px;margin:0 auto 15px;display:block;object-fit:cover;
  border:2px solid var(--line2);
  box-shadow:0 0 0 5px rgba(74,237,217,.06);
}
.member-avatar--ph{
  display:flex;align-items:center;justify-content:center;
  background:var(--panel2);color:var(--green);font-size:30px;font-weight:800;line-height:1;
}
.member-name{font-size:17px;font-weight:700;margin-bottom:5px}
.member-role{font-size:13px;color:var(--cyan);letter-spacing:.5px;margin-bottom:12px}
.member-desc{margin:0 0 16px;font-size:13.5px;color:var(--dim);line-height:1.75;text-align:left}
.member-foot{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  margin-top:auto;padding-top:14px;border-top:1px solid var(--line);width:100%;
}
.member-qq{font-size:12.5px;color:var(--dim2);font-family:ui-monospace,Consolas,monospace}

/* ---------- 常见问题 ---------- */
.faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.faq-item{
  background:var(--panel);border:2px solid var(--line);
  transition:border-color var(--dur) var(--ease);
}
.faq-item:hover,.faq-item[open]{border-color:var(--line2)}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:17px 20px;cursor:pointer;font-weight:600;font-size:15.5px;
  list-style:none;user-select:none;
  transition:color var(--dur) var(--ease);
}
.faq-q::-webkit-details-marker{display:none}
.faq-q:hover{color:var(--green)}
.faq-arrow{
  flex:none;width:8px;height:8px;margin-top:-5px;
  border-right:2px solid var(--dim);border-bottom:2px solid var(--dim);
  transform:rotate(45deg);
  transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.faq-item[open] .faq-arrow{transform:rotate(-135deg);border-color:var(--cyan);margin-top:4px}
.faq-a{
  padding:16px 20px 20px;border-top:1px solid var(--line);
  color:var(--dim);font-size:14.5px;line-height:1.85;
}
.faq-a p:first-child{margin-top:0}
.faq-a p:last-child{margin-bottom:0}
.faq-a code{background:#070a0e;border:1px solid var(--line);padding:1px 6px;color:var(--cyan);font-size:13px}
/* 展开时内容淡入上移，比直接蹦出来舒服；不用 JS，details 原生就能开合 */
.faq-item[open] .faq-a{animation:faqIn .3s var(--ease)}
@keyframes faqIn{
  from{opacity:0;transform:translate3d(0,-6px,0)}
  to{opacity:1;transform:none}
}

/* ---------- 滚动进场（只动 opacity / transform，走合成器） ---------- */
html.js [data-reveal]{
  opacity:0;
  transform:translate3d(0,20px,0);
  transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}
html.js [data-reveal].is-in{opacity:1;transform:translate3d(0,0,0)}

/* 同一个容器里的元素依次进场，不要一起蹦出来 */
html.js .grid>[data-reveal]:nth-child(2),
html.js .steps>[data-reveal]:nth-child(2),
html.js .dl>[data-reveal]:nth-child(2),
html.js .news>[data-reveal]:nth-child(2){transition-delay:.07s}
html.js .grid>[data-reveal]:nth-child(3),
html.js .steps>[data-reveal]:nth-child(3),
html.js .dl>[data-reveal]:nth-child(3){transition-delay:.14s}
html.js .grid>[data-reveal]:nth-child(4){transition-delay:.21s}

/* ---------- 尊重系统的「减少动态效果」 ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  html.js [data-reveal]{opacity:1;transform:none;transition:none;will-change:auto}
  .dot.on::after{animation:none}
  .mc-btn,.card,.dl-row,.news-item,.comm,.member,.faq-item,.faq-q,.faq-arrow{transition:none}
  .faq-item[open] .faq-a{animation:none}
  .member:hover{transform:none}
  .card:hover,.news-item:hover{transform:none}
}

/* 响应式 */
@media (max-width:820px){
  .head-in{height:58px;gap:10px}
  .brand{font-size:16px;flex:none}
  .brand-ver{display:none}
  /* 手机上导航改为可横向滑动，别直接隐藏——否则完全没法导航 */
  .nav{flex:1;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav ul{gap:18px;white-space:nowrap;justify-content:flex-end}
  .nav a{font-size:14px;padding:4px 0}
  .hero{padding:64px 0 56px}
  .sec{padding:54px 0}
  .addr{flex-direction:column}
  .addr-copy{border-left:0;border-top:2px solid var(--line2);padding:13px}
  .dl-row{flex-direction:column;align-items:stretch}
  .dl-btn{width:100%}
}
