/* Apocalypter Guide — wasteland design system (stencil yellow on desert rust) */
:root{
  --bg:#161006; --panel:#211709; --panel-2:#2c1f0c; --ink:#f6ecd3; --muted:#c7b189;
  --accent:#f2b50c; --accent-2:#e2701d; --danger:#d5482c; --good:#7fb069;
  --border:#4a3817; --hard:#0b0702; --radius:10px; --radius-sm:6px;
  --maxw:1140px;
  --font:"Rubik",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --display:"Archivo Black","Rubik",system-ui,sans-serif;
  --stencil:"Saira Stencil One","Archivo Black",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;color:var(--ink);font:16px/1.68 var(--font);-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1300px 620px at 78% -12%,#3a2610 0%,rgba(22,16,6,0) 60%) no-repeat,
    repeating-linear-gradient(115deg,rgba(242,181,12,.022) 0 2px,rgba(0,0,0,0) 2px 9px),
    var(--bg)}
img{max-width:100%;height:auto}
a{color:var(--accent-2);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible{outline:2px dashed var(--accent);outline-offset:2px}
::selection{background:var(--accent);color:#171004}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 18px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--panel);padding:8px 12px;z-index:50}

/* topbar */
.topbar{position:sticky;top:0;z-index:30;background:rgba(18,12,4,.94);border-bottom:2px solid var(--hard);
  box-shadow:0 1px 0 rgba(242,181,12,.28)}
.bar{display:flex;align-items:center;gap:18px;min-height:64px;flex-wrap:nowrap;overflow:visible}
.brand{display:flex;align-items:center;gap:11px;font:400 18px/1 var(--stencil);color:var(--ink);
  white-space:nowrap;flex:0 0 auto;letter-spacing:.04em;text-transform:uppercase}
.brand img{border-radius:8px;border:2px solid var(--hard);box-shadow:2px 2px 0 rgba(242,181,12,.4)}
.brand:hover{text-decoration:none;color:var(--accent)}
.nav{margin-left:auto;display:flex;align-items:center;gap:8px}
.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0;flex-wrap:nowrap}
.nav li{position:relative}
.nav a{display:block;padding:9px 11px;border-radius:6px;color:var(--ink);font:500 14.5px/1 var(--font);
  white-space:nowrap;letter-spacing:.01em}
.nav a:hover{background:var(--panel-2);text-decoration:none}
.nav li.active>a{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}

.nav .kids{position:absolute;top:100%;left:0;min-width:240px;background:var(--panel);border:2px solid var(--border);
  border-radius:var(--radius-sm);padding:8px;display:block;visibility:hidden;opacity:0;transition:opacity .12s ease;
  box-shadow:6px 6px 0 rgba(5,3,1,.75)}

.nav .kids a{font-size:14px;padding:8px 10px}
.cta{background:rgba(242,181,12,.08);border:2px solid var(--border);color:var(--ink)!important;font-weight:600;
  padding:8px 13px;border-radius:8px;white-space:nowrap;flex:0 0 auto;font-size:14px}
.cta:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)!important;box-shadow:2px 2px 0 rgba(5,3,1,.7)}

/* hero */
.hero{position:relative;padding:60px 0 54px;background-image:
  linear-gradient(180deg,rgba(11,7,2,.62) 0%,rgba(11,7,2,.16) 30%,rgba(11,7,2,.22) 55%,rgba(11,7,2,.93) 100%),
  linear-gradient(90deg,rgba(11,7,2,.88) 0%,rgba(11,7,2,.6) 40%,rgba(11,7,2,.14) 78%,rgba(11,7,2,.1) 100%),
  var(--hero);
  background-size:cover;background-position:center;border-bottom:3px solid var(--hard)}
.hero h1{font:400 clamp(31px,5.4vw,54px)/1.08 var(--display);margin:.3em 0 .38em;color:#fff;max-width:17ch;
  text-transform:uppercase;letter-spacing:.005em;text-wrap:balance;
  text-shadow:0 2px 0 rgba(5,3,1,.9),0 6px 26px rgba(5,3,1,.65)}
.eyebrow{display:inline-block;background:var(--accent);border:2px solid var(--hard);border-radius:5px;
  color:#191104;font:400 12.5px/1 var(--display);letter-spacing:.14em;text-transform:uppercase;
  margin:0;padding:6px 12px;box-shadow:3px 3px 0 var(--hard);transform:rotate(-1.2deg)}
.lead{color:#f3e8d2;max-width:60ch;font-size:18px;text-shadow:0 1px 8px rgba(5,3,1,.75)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.btn{display:inline-block;background:var(--accent);color:#1a1103;font:400 14.5px/1 var(--display);letter-spacing:.05em;
  text-transform:uppercase;padding:13px 18px;border:2px solid var(--hard);border-radius:8px;
  box-shadow:4px 4px 0 var(--hard);transition:transform .12s ease,box-shadow .12s ease}
.btn:hover{text-decoration:none;transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--hard);filter:brightness(1.05)}
.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--hard)}
.btn.ghost{background:rgba(11,7,2,.72);color:var(--ink);border-color:var(--accent-2)}
.btn.ghost:hover{color:#fff;border-color:var(--accent)}

/* content */
.wrap>p,.wrap>ul,.wrap>ol,.wrap>blockquote,.wrap>.callout,.wrap>h2,.wrap>h3{max-width:74ch}
main h2{font:400 25px/1.22 var(--display);margin:1.9em 0 .55em;text-transform:uppercase;letter-spacing:.01em}
main h2::after{content:"";display:block;width:72px;height:7px;margin-top:9px;
  background:repeating-linear-gradient(45deg,var(--accent) 0 9px,var(--hard) 9px 18px);
  border:2px solid var(--hard);border-radius:2px}
.grid-title{margin-top:.4em!important}
main h3{font:600 19px/1.32 var(--font);margin:1.5em 0 .4em;color:#fdf6e6}
main h3::before{content:"// ";color:var(--accent-2);font-weight:700}
main p,main li{color:#eaddc0}
main p{margin:.65em 0}
main section>.wrap,.wrap>h2,.wrap>p,.wrap>ul,.wrap>ol,.wrap>table,.wrap>.grid,.wrap>.callout{margin-top:0}
article{max-width:78ch}
blockquote{border-left:4px solid var(--accent-2);margin:1.2em 0;padding:.15em 0 .15em 15px;color:var(--muted);
  background:linear-gradient(90deg,rgba(226,112,29,.07),rgba(0,0,0,0) 70%)}
code{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:14.5px;color:#ffe9b3;cursor:copy;transition:background .12s,border-color .12s,color .12s}
code:hover{background:var(--accent);border-color:var(--hard);color:#191104}
code.copied{background:var(--good);border-color:var(--hard);color:#0c1607}
td code{font-size:15px;padding:2px 8px;font-weight:600}
.callout{background:var(--panel);border:2px solid var(--border);border-left:6px solid var(--accent);
  border-radius:8px;padding:13px 15px;margin:1.3em 0;box-shadow:5px 5px 0 rgba(5,3,1,.6)}
.callout p{margin:.3em 0}
.callout.warn{border-left-color:var(--danger)}
.callout.tip{border-left-color:var(--good)}
.tbl-wrap{overflow-x:auto;margin:1.3em 0;border:2px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:5px 5px 0 rgba(5,3,1,.6);background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:15px;min-width:540px}
th,td{padding:10px 13px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
th{background:#2e2110;font:400 13.5px var(--display);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
td{word-break:break-word}
tr:nth-child(even) td{background:rgba(242,181,12,.028)}
tr:last-child td{border-bottom:0}
main img{border:2px solid var(--border);border-radius:8px;margin:1.1em 0;cursor:zoom-in;transition:max-width .15s;
  box-shadow:6px 6px 0 rgba(5,3,1,.7)}
main img.zoom.open{cursor:zoom-out;border-color:var(--accent)}

/* cards */
.grid{display:flex;flex-wrap:wrap;gap:18px;margin:1.3em 0 2.2em}
.card{flex:1 1 272px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--ink);
  box-shadow:6px 6px 0 rgba(5,3,1,.8);transition:transform .13s ease,box-shadow .13s ease,border-color .13s ease}
.card:hover{text-decoration:none;border-color:var(--accent);transform:translate(-2px,-2px);box-shadow:9px 9px 0 rgba(5,3,1,.85)}
.card img{filter:saturate(1.05) contrast(1.03);aspect-ratio:16/9;object-fit:cover;width:100%;border:0;border-radius:0;margin:0;cursor:pointer;border-bottom:2px solid var(--border)}
.card-body{padding:13px 15px 15px}
.card-body h3{margin:0 0 6px;font:400 16px/1.32 var(--display);text-transform:uppercase;letter-spacing:.01em}
.card-body h3::before{content:""}
.card-body p{margin:0 0 10px;color:var(--muted);font-size:14.5px}
.go{color:var(--accent);font-weight:700;font-size:13.5px;text-transform:uppercase;letter-spacing:.05em}
.stamp{display:block;margin-top:8px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;opacity:.85}
.stamp::before{content:"◼ ";color:var(--accent-2)}

/* footer */
.foot{border-top:3px solid var(--accent);background:#120d05;margin-top:64px;padding:30px 0;color:var(--muted);font-size:14px}
.disclaimer{max-width:84ch}
.foot-links a{color:var(--muted)}
.foot-links a:hover{color:var(--accent)}
.muted{opacity:.75}

@media (max-width:880px){
  .bar{flex-wrap:wrap;padding:10px 0}
  .nav{margin-left:0;width:100%;overflow:visible}
  .nav ul{flex-wrap:wrap}
  .nav .kids{position:static;visibility:visible;opacity:1;display:none;box-shadow:none;border:0;background:transparent;padding:0 0 0 12px;min-width:0}

}

/* Adsterra Native Banner 槽位：桌面（指针门控）显示，移动端与打印不显示 */
.ad-slot{display:none;margin-top:26px}
@media (hover: hover) and (pointer: fine){.ad-slot{display:block}}
.ad-label{margin:0 0 8px;font-family:var(--stencil);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ad-inner{min-height:90px;border:2px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}
@media print{.ad-slot{display:none!important}}

/* lightbox：点击正文图全屏放大（build_site.py 注入结构） */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(5,7,15,.94);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox img{max-width:min(1500px,96vw);max-height:92vh;width:auto;height:auto;border:2px solid var(--accent,#c9202a);box-shadow:8px 8px 0 rgba(0,0,0,.55)}
@media (max-width:700px){ .lightbox{padding:10px} }

/* Complete images; native keyboard and touch disclosure. */
.bar{flex-wrap:wrap}
.nav,.nav>ul{flex-wrap:wrap;overflow:visible}
.nav summary{display:block;padding:9px 11px;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;list-style:none;white-space:nowrap}
.nav summary::-webkit-details-marker{display:none}
.nav summary::after{content:" ▾"}
.nav summary:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.nav details{position:relative}
.nav .kids{display:none;flex-direction:column;visibility:hidden;opacity:0;gap:0}
.nav details[open]>.kids{display:flex;visibility:visible;opacity:1}
.nav .kids a{white-space:normal}
.hero{background:var(--bg);padding:0}
.hero-art{display:block;width:min(1120px,100%);height:auto;margin:0 auto;object-fit:contain}
.hero-in{padding-top:28px;padding-bottom:34px}
.hero h1{max-width:none}
.card img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.card{min-width:0}
article{min-width:0;overflow-wrap:break-word}
.tbl-wrap td strong{color:inherit}
@media(max-width:900px){
  .bar{gap:10px;padding-top:8px;padding-bottom:8px}
  .nav{margin-left:0;width:100%;gap:6px;overflow:visible}
  .nav>.cta{white-space:normal}
  .nav .kids{position:static;min-width:0;width:min(300px,calc(100vw - 48px))}
  .hero{padding:0}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){.grid{grid-template-columns:minmax(0,1fr)}}

/* trailer：官方预告片模块（缩略图→点击加载 iframe） */
.trailer{margin:0 auto;padding:28px 0 8px;max-width:900px}
.trailer .wrap{max-width:900px}
.trailer-frame{position:relative;aspect-ratio:16/9;background:#0b0b0b;cursor:pointer;border:2px solid var(--line,#2a2f2a);overflow:hidden}
.trailer-frame img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .2s,transform .4s}
.trailer-frame:hover img{opacity:1;transform:scale(1.02)}
.trailer-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.8);pointer-events:none}
.trailer-iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.trailer-cap{margin:8px 0 0;font-size:13px;opacity:.65;text-align:center}
