:root{
  --main:#6d5dfc;
  --accent:#22d3ee;
  --bg:#0f1020;
  --text:#e8eaf6;
  --panel:#171833;
  --panel2:#1d1e42;
  --line:#32336b;
  --hard:8px 8px 0 #000;
}
*{box-sizing:border-box;border-radius:0 !important;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter','PingFang SC','Microsoft YaHei',sans-serif;
  font-weight:400;
  line-height:1.85;
  overflow-x:hidden;
}
h1,h2,h3,h4,.font-black{font-weight:900;letter-spacing:.5px;}
.mono{font-family:'SFMono-Regular',Consolas,'Courier New',monospace;}
/* ---------- navbar ---------- */
.top-nav{
  background:rgba(15,16,32,.94);
  border-bottom:4px solid var(--main);
  position:sticky;top:0;z-index:1040;
  backdrop-filter:blur(6px);
}
.navbar-brand{
  font-weight:900;font-size:1.12rem;color:var(--text)!important;
  letter-spacing:1px;
}
.navbar-brand i{color:var(--accent);}
.brand-box{
  border:3px solid var(--main);padding:2px 10px;background:var(--panel);
  box-shadow:4px 4px 0 #000;display:inline-block;
}
.nav-link{
  color:var(--text)!important;font-weight:600;font-size:.94rem;
  padding:.5rem .8rem!important;border:2px solid transparent;
  transition:.18s;white-space:nowrap;
}
.nav-link:hover,.nav-link:focus{
  border-color:var(--accent);background:rgba(109,93,252,.22);
}
.navbar-toggler{
  border:3px solid var(--main);background:var(--panel);color:var(--text);
  padding:.25rem .55rem;
}
.navbar-toggler:focus{box-shadow:none;}
/* ---------- hero ---------- */
.hero{
  border:4px solid var(--main);
  background:
    linear-gradient(120deg,rgba(109,93,252,.35),rgba(34,211,238,.14)),
    repeating-linear-gradient(45deg,#12132a 0 14px,#141530 14px 28px);
  box-shadow:var(--hard);
  padding:2.6rem 1.6rem;
  margin-top:1.6rem;
  position:relative;
}
.hero-strip{
  display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:1.4rem;
}
.hero-strip span{
  height:78px;background:linear-gradient(160deg,#25266b,#141530);
  border:2px solid var(--line);
}
.hero h1{
  font-size:clamp(1.35rem,4.4vw,2.5rem);
  line-height:1.35;min-height:2.9em;
}
.type-cursor{
  display:inline-block;width:12px;height:1em;background:var(--accent);
  margin-left:4px;vertical-align:-2px;animation:blink 1s steps(1) infinite;
}
@keyframes blink{50%{opacity:0;}}
.hero .sub{color:#b9bce4;max-width:780px;font-size:.98rem;}
.hero-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem;}
.tag-chip{
  border:2px solid var(--line);background:var(--panel);padding:.22rem .7rem;
  font-size:.8rem;font-weight:600;color:#c9cbf0;
}
/* ---------- sections ---------- */
.sec{padding:3rem 0 1rem;}
.sec-head{
  display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;
  border-left:10px solid var(--accent);
  padding-left:.9rem;margin-bottom:1.6rem;
}
.sec-head h2{font-size:clamp(1.15rem,2.6vw,1.6rem);margin:0;}
.sec-head .desc{color:#9a9dd0;font-size:.88rem;margin:0;}
.sec-head .more{
  margin-left:auto;font-size:.82rem;font-weight:700;color:var(--accent);
  text-decoration:none;border:2px solid var(--accent);padding:.2rem .7rem;
}
.sec-head .more:hover{background:var(--accent);color:#0b0b18;}
/* ---------- poster cards ---------- */
.poster-grid{
  display:grid;width:100%;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:16px;
}
.poster-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr));}
.poster-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:1200px){
  .poster-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .poster-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:768px){
  .poster-grid,.poster-grid.g4{grid-template-columns:repeat(3,minmax(0,1fr));}
  .poster-grid.g3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:520px){
  .poster-grid,.poster-grid.g4,.poster-grid.g3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.pcard{
  border:3px solid var(--line);background:var(--panel);
  box-shadow:6px 6px 0 #000;position:relative;overflow:hidden;
  transition:transform .18s,border-color .18s;
}
.pcard:hover{transform:translate(-3px,-3px);border-color:var(--accent);box-shadow:9px 9px 0 #000;}
.pthumb{
  position:relative;width:100%;aspect-ratio:2/3;overflow:hidden;background:#0b0c1c;
}
.pthumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.pcard:hover .pthumb img{transform:scale(1.09);}
.pmask{
  position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,10,26,.95),rgba(109,93,252,.35) 55%,rgba(34,211,238,.18));
  opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:.6rem;
}
.pcard:hover .pmask{opacity:1;}
.pmask p{margin:0;font-size:.75rem;color:#e8eaf6;line-height:1.55;}
.corner{
  position:absolute;top:0;left:0;background:var(--accent);color:#08111a;
  font-size:.68rem;font-weight:800;padding:2px 7px;z-index:2;letter-spacing:.5px;
}
.corner.hot{background:#ff5d73;color:#fff;}
.pmeta{padding:.55rem .6rem .7rem;border-top:3px solid var(--line);}
.pmeta .ptitle{
  font-size:.88rem;font-weight:800;margin:0 0 .25rem;line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pmeta .pinfo{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:#9a9dd0;}
.stars{color:#ffc93c;font-size:.72rem;letter-spacing:-1px;}
.heatnum{
  font-family:Consolas,monospace;font-weight:700;color:var(--accent);font-size:.72rem;
}
/* ---------- ranking wall ---------- */
.rank-wrap{border:4px solid var(--main);background:var(--panel);box-shadow:var(--hard);}
.rank-row{
  display:flex;align-items:center;gap:.9rem;padding:.75rem .9rem;
  border-bottom:2px solid var(--line);
}
.rank-row:last-child{border-bottom:none;}
.rank-row:hover{background:var(--panel2);}
.rank-no{
  font-family:Consolas,monospace;font-weight:900;font-size:1.05rem;
  min-width:44px;text-align:center;border:3px solid var(--line);padding:.1rem .3rem;
  background:var(--panel2);
}
.rank-row:nth-child(1) .rank-no{background:#ffc93c;color:#1a1400;border-color:#ffc93c;}
.rank-row:nth-child(2) .rank-no{background:#22d3ee;color:#062028;border-color:#22d3ee;}
.rank-row:nth-child(3) .rank-no{background:#6d5dfc;color:#fff;border-color:#6d5dfc;}
.rank-body{flex:1;min-width:0;}
.rank-body .rt{font-weight:800;font-size:.96rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rank-body .rs{font-size:.76rem;color:#9a9dd0;}
.rank-bar{
  height:8px;background:#262746;border:2px solid var(--line);margin-top:.35rem;
}
.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--main),var(--accent));}
/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.steps{grid-template-columns:1fr;}}
.step{
  border:3px solid var(--line);background:var(--panel);box-shadow:5px 5px 0 #000;
  padding:1rem .95rem;
}
.step .sn{
  font-family:Consolas,monospace;font-weight:900;font-size:1.4rem;color:var(--accent);
}
.step h3{font-size:.98rem;margin:.3rem 0 .4rem;font-weight:800;}
.step p{font-size:.83rem;color:#a9ace0;margin:0;line-height:1.75;}
/* ---------- upcoming ---------- */
.up-card{
  border:3px dashed var(--line);background:var(--panel2);padding:.85rem .9rem;
  display:flex;gap:.8rem;align-items:flex-start;box-shadow:5px 5px 0 #000;
}
.up-card .ic{
  min-width:46px;height:46px;border:3px solid var(--main);display:flex;
  align-items:center;justify-content:center;color:var(--accent);font-size:1.1rem;
  background:var(--panel);
}
.up-card h3{font-size:.9rem;margin:0 0 .2rem;font-weight:800;}
.up-card p{font-size:.78rem;color:#9a9dd0;margin:0;line-height:1.7;}
/* ---------- faq ---------- */
.faq-item{border:3px solid var(--line);background:var(--panel);box-shadow:5px 5px 0 #000;padding:1rem;margin-bottom:14px;}
.faq-item h3{font-size:.96rem;font-weight:800;margin:0 0 .45rem;color:var(--accent);}
.faq-item p{margin:0;font-size:.85rem;color:#b9bce4;}
/* ---------- friend links ---------- */
.friend-box{
  border:4px solid var(--main);background:var(--panel);box-shadow:var(--hard);
  padding:1.3rem 1.1rem;
}
.friend-box h2{font-size:1rem;margin:0 0 .8rem;font-weight:900;}
.friend-box .fbody{color:#9a9dd0;font-size:.82rem;line-height:2;}
/* ---------- footer ---------- */
footer{
  border-top:4px solid var(--main);background:#0b0c1c;margin-top:2.6rem;
  padding:2.1rem 0 1.5rem;font-size:.84rem;color:#9a9dd0;
}
footer h4{font-size:.9rem;color:var(--text);font-weight:800;margin-bottom:.7rem;}
footer a{color:#b9bce4;text-decoration:none;display:block;line-height:2;}
footer a:hover{color:var(--accent);}
.foot-bottom{border-top:2px solid var(--line);margin-top:1.4rem;padding-top:1rem;font-size:.78rem;}
/* ---------- back to top ---------- */
#toTop{
  position:fixed;right:18px;bottom:22px;z-index:1050;
  width:48px;height:48px;border:3px solid var(--accent);background:var(--panel);
  color:var(--accent);font-size:1.05rem;display:flex;align-items:center;justify-content:center;
  box-shadow:5px 5px 0 #000;opacity:0;pointer-events:none;transition:.25s;cursor:pointer;
}
#toTop.show{opacity:1;pointer-events:auto;}
#toTop:hover{background:var(--accent);color:#0b0b18;}
/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .55s ease,transform .55s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* --- 子页面追加 --- */
.about-hero {padding:64px 0 28px;}
.about-hero h1 {font-weight:900;font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.15;letter-spacing:-.02em;}
.about-hero .lead {color:rgba(232,234,246,.72);max-width:720px;line-height:1.85;}
.hl {color:var(--accent);}
.ab-card {background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px 22px;height:100%;}
.ab-card i {color:var(--main);font-size:1.5rem;}
.ab-card h3 {font-size:1.05rem;font-weight:800;margin:12px 0 8px;}
.ab-card p {margin:0;color:rgba(232,234,246,.68);font-size:.92rem;line-height:1.8;}
.ab-block {background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:28px 26px;}
.ab-block h2 {font-size:1.4rem;font-weight:800;margin-bottom:16px;}
.ab-block p {color:rgba(232,234,246,.74);line-height:1.9;font-size:.96rem;}
.ab-block p+p {margin-top:14px;}
.timeline {border-left:2px solid var(--line);padding-left:22px;margin-top:8px;}
.timeline .item {position:relative;padding-bottom:22px;}
.timeline .item:last-child {padding-bottom:0;}
.timeline .item::before {content:"";position:absolute;left:-30px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(34,211,238,.15);}
.timeline .item h4 {font-size:1rem;font-weight:700;margin:0 0 6px;}
.timeline .item p {margin:0;font-size:.9rem;color:rgba(232,234,246,.66);line-height:1.8;}
.stat-row {display:flex;flex-wrap:wrap;gap:14px;margin-top:6px;}
.stat {flex:1 1 150px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center;}
.stat b {display:block;font-size:1.5rem;font-weight:900;color:var(--accent);}
.stat span {font-size:.82rem;color:rgba(232,234,246,.6);}
.ab-list {list-style:none;padding:0;margin:0;}
.ab-list li {display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px dashed var(--line);}
.ab-list li:last-child {border-bottom:0;}
.ab-list li i {color:var(--accent);margin-top:4px;}
.ab-list li span {color:rgba(232,234,246,.74);font-size:.94rem;line-height:1.75;}
.ab-cta {background:linear-gradient(135deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:30px 26px;text-align:center;}
.ab-cta h2 {font-size:1.35rem;font-weight:800;margin-bottom:12px;}
.ab-cta p {color:rgba(232,234,246,.7);max-width:600px;margin:0 auto 20px;line-height:1.85;}
.ab-btn {display:inline-block;background:var(--main);color:#fff;font-weight:700;padding:12px 28px;border-radius:10px;text-decoration:none;transition:.2s;box-shadow:var(--hard);}
.ab-btn:hover {color:#fff;transform:translate(-2px,-2px);box-shadow:10px 10px 0 #000;}
.ab-btn.ghost {background:transparent;border:1px solid var(--line);box-shadow:none;color:var(--text);margin-left:10px;}
.ab-btn.ghost:hover {transform:none;box-shadow:none;border-color:var(--accent);color:var(--accent);}

/* --- 子页面追加 --- */
/* —— 仅本页需要的少量样式，沿用站点配色变量 —— */
  .guide-lead {color:var(--text);opacity:.86;font-size:1.02rem;line-height:1.9;max-width:820px;}
.guide-block {background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:26px 24px;margin-bottom:22px;}
.guide-block h2 {font-size:1.28rem;font-weight:800;color:var(--text);margin:0 0 16px;display:flex;align-items:center;gap:10px;}
.guide-block h2 i {color:var(--accent);font-size:1.05rem;}
.guide-block p {color:var(--text);opacity:.82;line-height:1.92;margin-bottom:12px;}
.guide-block p:last-child {margin-bottom:0;}
.guide-block strong {color:var(--accent);font-weight:600;}
.step-list {list-style:none;padding:0;margin:0;counter-reset:gs;}
.step-list li {position:relative;padding:14px 0 14px 52px;border-bottom:1px dashed var(--line);color:var(--text);opacity:.86;line-height:1.85;}
.step-list li:last-child {border-bottom:0;}
.step-list li::before {counter-increment:gs;content:counter(gs);position:absolute;left:0;top:14px;width:32px;height:32px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--accent);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:.9rem;}
.step-list li b {color:var(--text);font-weight:700;}
.qa-item {border-bottom:1px solid var(--line);padding:16px 0;}
.qa-item:last-child {border-bottom:0;padding-bottom:0;}
.qa-q {color:var(--text);font-weight:700;margin-bottom:8px;display:flex;gap:9px;align-items:flex-start;}
.qa-q i {color:var(--main);margin-top:3px;}
.qa-a {color:var(--text);opacity:.78;line-height:1.88;padding-left:24px;}
.tip-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;}
.tip-card {background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:18px;}
.tip-card h3 {font-size:1rem;font-weight:700;color:var(--text);margin:0 0 9px;display:flex;align-items:center;gap:8px;}
.tip-card h3 i {color:var(--main);}
.tip-card p {font-size:.9rem;margin:0;opacity:.76;}
.guide-note {margin-top:26px;padding:16px 18px;border-left:3px solid var(--accent);background:rgba(34,211,238,.07);border-radius:0 8px 8px 0;color:var(--text);opacity:.85;font-size:.92rem;line-height:1.85;}

/* --- 子页面追加 --- */
.legal-sec { padding: 34px 0; }
.legal-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 26px 26px 22px;
    height: 100%;
  }
.legal-card h3 {
    font-size: 1.08rem;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
  }
.legal-card h3 i { color: var(--accent); }
.legal-card p, .legal-card li {
    color: rgba(232,234,246,.78);
    font-size: .93rem;
    line-height: 1.85;
  }
.legal-card ul { padding-left: 1.15rem; margin-bottom: 0; }
.legal-lead {
    background: var(--panel2);
    border-left: 4px solid var(--main);
    border-radius: 0 12px 12px 0;
    padding: 20px 24px;
    color: rgba(232,234,246,.85);
    font-size: .95rem;
    line-height: 1.9;
  }
.legal-lead strong { color: var(--accent); }
.legal-steps { counter-reset: stepc; list-style: none; padding-left: 0; }
.legal-steps li {
    counter-increment: stepc;
    position: relative;
    padding-left: 46px;
    margin-bottom: 16px;
  }
.legal-steps li::before {
    content: counter(stepc, decimal-leading-zero);
    position: absolute;
    left: 0; top: 2px;
    font-family: 'Inter', monospace;
    font-size: .8rem;
    font-weight: 800;
    color: var(--bg);
    background: var(--accent);
    width: 30px; height: 30px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
  }
.legal-note {
    margin-top: 26px;
    background: var(--panel2);
    border: 1px dashed var(--line);
    border-radius: 14px;
    padding: 22px 24px;
  }
.legal-note h4 { font-size: 1rem; font-weight: 800; color: var(--text); margin-bottom: 10px; }
.legal-note p { color: rgba(232,234,246,.7); font-size: .9rem; line-height: 1.85; margin-bottom: 0; }
.legal-update { font-family: 'Inter', monospace; font-size: .8rem; color: rgba(232,234,246,.5); }
.legal-tagline { color: rgba(232,234,246,.7); font-size: .96rem; line-height: 1.9; }

/* --- 子页面追加 --- */
.map-hero { padding: 56px 0 28px; }
.map-hero h1 { font-weight: 900; letter-spacing: -.5px; line-height: 1.25; }
.map-hero h1 .hl { color: var(--accent); }
.map-hero p.lead { color: rgba(232,234,246,.72); max-width: 760px; margin-top: 14px; }
.map-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.map-card {
    background: var(--panel);
    border: 2px solid var(--line);
    border-radius: 14px;
    padding: 22px 22px 18px;
    box-shadow: var(--hard);
    transition: transform .18s ease, border-color .18s ease;
    height: 100%;
  }
.map-card:hover { transform: translate(-2px,-2px); border-color: var(--main); }
.map-card h3 {
    font-size: 1.06rem; font-weight: 800; margin: 0 0 6px;
    display: flex; align-items: center; gap: 9px;
  }
.map-card h3 i { color: var(--accent); }
.map-card .desc { font-size: .86rem; color: rgba(232,234,246,.6); margin-bottom: 14px; line-height: 1.6; }
.map-list { list-style: none; padding: 0; margin: 0; }
.map-list li { border-top: 1px dashed var(--line); }
.map-list li:first-child { border-top: none; }
.map-list a {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 11px 2px; color: var(--text); text-decoration: none;
    font-size: .92rem; font-weight: 500; transition: color .15s ease, padding-left .15s ease;
  }
.map-list a:hover { color: var(--accent); padding-left: 8px; }
.map-list a .tag {
    font-size: .7rem; font-family: 'Inter', monospace; letter-spacing: .5px;
    color: rgba(232,234,246,.55); border: 1px solid var(--line);
    border-radius: 999px; padding: 2px 9px; white-space: nowrap;
  }
.map-list a:hover .tag { color: var(--accent); border-color: var(--accent); }
.map-note {
    background: var(--panel2); border: 2px solid var(--line); border-radius: 14px;
    padding: 22px; box-shadow: var(--hard);
  }
.map-note p { color: rgba(232,234,246,.72); margin-bottom: 10px; line-height: 1.85; font-size: .93rem; }
.map-note p:last-child { margin-bottom: 0; }
.map-note strong { color: var(--accent); }