/* ==========================================================================
   Tales of Eternia Remastered Guide — 本站专属皮肤（按 DESIGN-BRIEF.md 从零写）
   母题：Orbus Barrier —— 暖金 Inferia ／ 冰蓝 Celestia 两个世界
   底色 #0b1020（禁近白）；字体 Cinzel（展示）+ Barlow（正文），均自托管
   ========================================================================== */

@font-face{font-family:Cinzel;font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/cinzel-600.woff2) format('woff2')}
@font-face{font-family:Cinzel;font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/cinzel-700.woff2) format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/barlow-400.woff2) format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/barlow-500.woff2) format('woff2')}
@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/barlow-600.woff2) format('woff2')}

:root{
  --void:#0b1020; --void-2:#101a38; --panel:#17223f; --panel-2:#1e2a4e;
  --line:#2f3f6b; --line-2:#43579a;
  --ink:#e9efff; --muted:#a9b7db;
  --gold:#f0a63a; --gold-2:#ffd479; --ember:#c66327;
  --ice:#62c4e8; --violet:#8a7bff; --blood:#d8402f; --ok:#4fbf8b;
  --maxw:1240px;
  --disp:Cinzel,Georgia,'Times New Roman',serif;
  --body:Barlow,'Segoe UI',system-ui,-apple-system,sans-serif;
  --worlds:linear-gradient(90deg,var(--gold) 0%,var(--ember) 34%,var(--violet) 66%,var(--ice) 100%);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--void);color:var(--ink);font:400 17px/1.68 var(--body);
  background-image:
    radial-gradient(1100px 520px at 78% -12%,rgba(98,196,232,.14),transparent 62%),
    radial-gradient(900px 460px at 6% 4%,rgba(240,166,58,.13),transparent 60%),
    linear-gradient(180deg,#0d1428 0%,var(--void) 26%);
  background-repeat:no-repeat;background-attachment:fixed;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-2);text-decoration:none}
a:hover{color:#fff;text-decoration:underline}
h1,h2,h3{font-family:var(--disp);font-weight:700;line-height:1.16;letter-spacing:.01em}
strong,b{color:#fff}
code{font:500 15px/1.4 ui-monospace,Consolas,monospace;background:#0d1730;border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--gold);color:#131313;padding:8px 14px;border-radius:6px}

/* ---- Orbus Barrier 顶带 ---- */
.ribbon{background:var(--worlds);border-bottom:2px solid #05080f;color:#0a0f1c;
  font:600 13px/1 var(--body);letter-spacing:.09em;text-transform:uppercase}
.ribbon .wrap{padding:8px 20px;text-align:center}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* ---- topbar / nav ---- */
.topbar{background:linear-gradient(180deg,#121c38,#0d1529);border-bottom:2px solid var(--line);
  position:sticky;top:0;z-index:40;box-shadow:0 3px 0 rgba(0,0,0,.35)}
.bar{display:flex;align-items:center;gap:18px;padding:11px 20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;color:#fff;font-family:var(--disp);font-weight:700;
  font-size:17px;line-height:1.15;letter-spacing:.02em}
.brand:hover{text-decoration:none;color:var(--gold-2)}
.brand img{border:2px solid var(--gold);border-radius:9px;background:#0a0f1c}
.nav{margin-left:auto;display:flex;align-items:center;gap:6px}
.nav > ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.nav > ul > li{position:relative}
.nav > ul > li > a{display:block;padding:9px 12px;color:var(--muted);font:500 15px/1 var(--body);
  border-radius:8px;border:2px solid transparent}
.nav > ul > li > a:hover,.nav > ul > li.active > a{color:#fff;background:#1b2949;border-color:var(--line-2);text-decoration:none}
.nav li.has-kids > a::after{content:" ▾";color:var(--gold);font-size:12px;display:inline-block}
.nav .kids{display:none;position:absolute;left:0;top:100%;min-width:264px;z-index:50;
  list-style:none;margin:0;padding:8px;background:#101a35;border:2px solid var(--line-2);
  border-radius:10px;box-shadow:8px 8px 0 rgba(240,166,58,.18),0 18px 40px rgba(0,0,0,.5)}
.nav .has-kids:hover .kids,.nav .has-kids:has(:focus-visible) .kids{display:block}
.nav .has-kids::after{content:"";display:none;position:absolute;left:-8px;top:100%;width:280px;height:10px}
.nav .has-kids:hover::after,.nav .has-kids:has(:focus-visible)::after{display:block}
.nav .kids a{display:block;padding:8px 10px;color:var(--muted);font:500 15px/1.3 var(--body);border-radius:7px}
.nav .kids a:hover{background:#1b2949;color:#fff;text-decoration:none}
.nav .kids li:first-child a{color:var(--gold-2);border-bottom:1px dashed var(--line);border-radius:0;margin-bottom:5px}
.lang{display:flex;align-items:center;gap:4px;padding:7px 11px;border:2px solid var(--line);border-radius:8px;
  color:var(--muted);font:600 13px/1 var(--body);letter-spacing:.06em;background:#0f1830}
.lang b{color:#fff;font-weight:600}
.lang .caret{color:var(--gold);font-style:normal;font-size:11px}
.cta{display:inline-flex;align-items:center;gap:7px;padding:10px 15px;border-radius:9px;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#171003!important;font:600 15px/1 var(--body);
  border:2px solid #6f4a10;box-shadow:3px 3px 0 rgba(0,0,0,.45)}
.cta:hover{text-decoration:none;filter:brightness(1.07)}

/* ---- hero ---- */
.hero{position:relative;border-bottom:2px solid var(--line);
  background:#080d1a var(--hero) center/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(8,12,24,.94) 0%,rgba(8,12,24,.80) 42%,rgba(8,12,24,.32) 70%,rgba(8,12,24,.55) 100%)}
.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:34px;align-items:center;padding:52px 20px 56px;min-height:420px}
.hero-copy{min-width:0}
.eyebrow{display:inline-block;margin:0 0 12px;padding:5px 12px;border-radius:999px;
  background:rgba(240,166,58,.16);border:2px solid rgba(240,166,58,.55);color:var(--gold-2);
  font:600 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase}
.hero h1{font-size:clamp(38px,5.6vw,74px);margin:0 0 14px;color:#fff;
  text-shadow:0 4px 0 rgba(0,0,0,.55),0 0 34px rgba(98,196,232,.35)}
.hero h1 .l2{display:block;background:linear-gradient(92deg,var(--gold-2),var(--gold) 45%,var(--ice));
  -webkit-background-clip:text;background-clip:text;color:transparent;font-size:.62em;letter-spacing:.14em;
  margin-top:8px;text-shadow:none}
.hero .lead{font-size:19px;color:#dfe7ff;max-width:56ch;margin:0 0 22px}
.hero-cta{margin:0;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;padding:13px 21px;border-radius:10px;font:600 16px/1 var(--body);
  background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#171003!important;border:2px solid #6f4a10;
  box-shadow:5px 5px 0 rgba(0,0,0,.5)}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn.ghost{background:transparent;color:#fff!important;border-color:var(--ice);
  box-shadow:5px 5px 0 rgba(98,196,232,.26)}
.hero-shot{width:100%;border:3px solid var(--gold);border-radius:12px;
  box-shadow:10px 10px 0 rgba(98,196,232,.30),0 20px 46px rgba(0,0,0,.55)}

/* ---- 状态条 facts ---- */
.facts-strip{background:linear-gradient(180deg,#101a35,#0c1428);border-top:2px solid var(--gold);
  border-bottom:2px solid var(--line)}
.facts{display:flex;flex-wrap:wrap;gap:0;padding:0 20px}
.fact{flex:1 1 168px;padding:15px 18px 15px 0;border-right:1px dashed var(--line)}
.fact:last-child{border-right:0}
.fact-k{display:block;color:var(--gold);font:600 11px/1.5 var(--body);letter-spacing:.16em;text-transform:uppercase}
.fact-v{display:block;color:#fff;font:600 17px/1.35 var(--body)}
.fact::before{content:"◆";color:var(--ice);font-size:9px;margin-right:7px;vertical-align:2px}

/* ---- section head ---- */
.section-head{margin:38px 0 16px}
.overline{display:block;color:var(--ice);font:600 12px/1.6 var(--body);letter-spacing:.18em;text-transform:uppercase}
.section-head h2{display:flex;align-items:center;gap:12px;margin:4px 0 0;font-size:27px;color:#fff;
  padding-left:14px;border-left:6px solid;border-image:var(--worlds) 1}
.count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;
  padding:0 8px;border-radius:999px;background:var(--worlds);color:#0a0f1c;font:700 15px/1 var(--disp)}

/* ---- cards ---- */
.grid{display:flex;flex-wrap:wrap;gap:20px;margin:0 0 12px}
.grid[data-n="1"] .card{flex:1 1 100%}
.card{flex:1 1 300px;max-width:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:2px solid var(--line);border-top:5px solid var(--gold);border-radius:13px;overflow:hidden;
  box-shadow:7px 7px 0 rgba(240,166,58,.20);color:var(--ink)}
.card:nth-child(even){border-top-color:var(--ice);box-shadow:7px 7px 0 rgba(98,196,232,.20)}
.card:hover{text-decoration:none;transform:translateY(-4px);border-color:var(--line-2)}
.card .thumb{position:relative;display:block;background:#0a0f1c}
.card .thumb img{width:100%;aspect-ratio:16/9;object-fit:cover}
.card .pill-tag{position:absolute;left:10px;top:10px;background:rgba(9,13,26,.88);border:2px solid var(--gold);
  color:var(--gold-2);border-radius:999px;padding:3px 10px;font:600 11px/1.4 var(--body);letter-spacing:.1em;text-transform:uppercase}
.card-body{padding:15px 17px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{margin:0;font-size:19px;color:#fff}
.card-body p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.card .go{margin-top:auto;color:var(--gold);font:600 14px/1 var(--body)}
.card .stamp{color:#7f8dae;font:500 12px/1 var(--body);letter-spacing:.04em}
.card.sm .card-body{padding:12px 14px}
.card.sm .card-body h3{font-size:16px}
.all-guides{margin:44px 0 8px;padding-top:6px;border-top:2px solid var(--line)}
.all-link{margin:14px 0 0;font:600 15px/1 var(--body)}
.all-link a{color:var(--gold-2)}

/* ---- article ---- */
.wrap.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 232px;gap:30px;align-items:start;padding-top:26px}
.crumb{color:var(--muted);font:500 14px/1.6 var(--body);margin-bottom:14px}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--gold-2)}
.crumb .sep{color:var(--line-2);margin:0 6px}
.crumb .here{color:#fff}
article{background:linear-gradient(180deg,#131e3b,#0f1830);border:2px solid var(--line);border-radius:14px;
  padding:26px 28px 30px;min-width:0;box-shadow:0 14px 40px rgba(0,0,0,.35)}
article > h1{font-size:clamp(28px,3.4vw,42px);color:#fff;margin:0 0 16px;padding-bottom:14px;
  border-bottom:2px solid var(--line)}
article h2{font-size:23px;color:#fff;margin:34px 0 12px;padding-left:13px;border-left:6px solid var(--gold)}
article h3{font-size:18px;color:var(--gold-2);margin:24px 0 8px}
article p,article ul,article ol,article blockquote,article .callout,article .quick-answer{max-width:92ch}
article p{margin:0 0 14px}
article ul,article ol{margin:0 0 16px;padding-left:22px}
article li{margin:5px 0}
article img.zoom{width:100%;border:2px solid var(--line);border-radius:11px;margin:13px 0;cursor:zoom-in}
article img.zoom:hover{border-color:var(--gold)}
figure.figure{margin:16px 0 20px;max-width:100%}
figure.figure img.zoom{margin:0}
figure.figure figcaption{margin-top:8px;color:#8fa0c6;font:500 13px/1.5 var(--body);letter-spacing:.02em;
  padding-left:11px;border-left:3px solid var(--line-2)}
article blockquote{margin:0 0 16px;padding:12px 16px;border-left:5px solid var(--ice);
  background:rgba(98,196,232,.08);border-radius:0 9px 9px 0;color:#cfe0ff}
.callout{margin:0 0 18px;padding:14px 17px;background:rgba(240,166,58,.10);border:2px solid rgba(240,166,58,.5);
  border-left:6px solid var(--gold);border-radius:0 11px 11px 0}
.callout p:last-child{margin:0}
.callout.tip{border-color:rgba(79,191,139,.5);border-left-color:var(--ok);background:rgba(79,191,139,.09)}
.callout.warn{border-color:rgba(216,64,47,.5);border-left-color:var(--blood);background:rgba(216,64,47,.09)}
.quick-answer{background:linear-gradient(180deg,#1b2748,#16203f);border:2px solid var(--line-2);
  border-radius:12px;padding:16px 18px;margin:0 0 22px}
.quick-answer p{margin:8px 0 0;color:#fff}
.qa-stamp{display:inline-block;background:var(--worlds);color:#0a0f1c;font:700 11px/1 var(--body);
  letter-spacing:.16em;text-transform:uppercase;padding:5px 11px;border-radius:999px}

/* ---- tables（战斗横幅表头）---- */
.tbl-wrap{max-width:100%;overflow-x:auto;margin:0 0 20px;border:2px solid var(--line);border-radius:11px}
table{border-collapse:collapse;width:100%;font-size:15px}
th{background:#080d1c;color:var(--gold-2);font:600 14px/1.35 var(--body);letter-spacing:.05em;
  text-align:left;padding:11px 13px;border-bottom:3px solid var(--gold);white-space:nowrap}
td{padding:10px 13px;border-bottom:1px solid var(--line);vertical-align:top;color:#dbe4fb}
tbody tr:nth-child(odd){background:rgba(255,255,255,.026)}
tbody tr:hover{background:rgba(98,196,232,.09)}
table strong,table b{color:inherit}
td:first-child{color:#fff;font-weight:600}

/* ---- toc ---- */
.toc{position:sticky;top:76px;background:linear-gradient(180deg,#131e3b,#0f1830);border:2px solid var(--line);
  border-radius:12px;padding:15px 16px;box-shadow:5px 5px 0 rgba(98,196,232,.16)}
.toc .overline{margin-bottom:9px}
.toc-list{display:flex;flex-direction:column;gap:2px}
.toc-list a{display:block;padding:6px 9px;border-radius:7px;color:var(--muted);font:500 14px/1.4 var(--body);
  border-left:3px solid transparent}
.toc-list a:hover{background:#1b2949;color:#fff;border-left-color:var(--gold);text-decoration:none}

/* ---- footer ---- */
.foot{margin-top:56px;background:linear-gradient(180deg,#0d1630,#080d1c);border-top:2px solid var(--line);color:var(--muted)}
.foot .wrap{padding:26px 20px 30px}
.foot .disclaimer{max-width:92ch;margin:0 0 12px;font-size:14px;color:#8fa0c6}
.foot-links{margin:0 0 10px;font-size:15px}
.foot .muted{margin:0;font-size:13px;color:#77869f;letter-spacing:.03em}

/* ---- lightbox ---- */
.lightbox{position:fixed;inset:0;z-index:99;background:rgba(5,7,15,.94);display:flex;align-items:center;
  justify-content:center;cursor:zoom-out;padding:18px}
.lightbox img{max-width:min(1500px,96vw);max-height:92vh;width:auto;height:auto;
  border:3px solid var(--gold);border-radius:8px}

/* ---- ad slot（桌面指针门控）---- */
.ad-slot{margin:22px 0;padding:10px;background:#0d1630;border:2px dashed var(--line);border-radius:11px;
  min-height:70px;display:none}
@media (hover: hover) and (pointer: fine){.ad-slot{display:block}}
.ad-inner{overflow:hidden}

/* ---- 响应式 ---- */
@media (max-width:1100px){
  .wrap.article-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .toc{position:static;order:2}
  .card{flex:1 1 268px}
}
@media (max-width:880px){
  .hero-in{grid-template-columns:minmax(0,1fr);gap:22px;padding:38px 20px 44px;min-height:0}
  .hero-shot{order:-1}
  .bar{gap:12px}
  .nav{margin-left:0;width:100%}
  .nav > ul{flex-wrap:wrap}
}
@media (max-width:620px){
  body{font-size:16px}
  .nav .kids{display:none!important}
  .nav .has-kids::after{display:none!important}
  .nav li.has-kids > a::after{content:""!important}
  .nav .has-kids::before{content:"›";color:var(--gold);margin-left:5px}
  .nav > ul > li > a{padding:8px 9px;font-size:14px}
  .cta{padding:9px 12px;font-size:14px}
  .card{flex:1 1 100%}
  article{padding:20px 17px 24px}
  .facts .fact{flex:1 1 100%;border-right:0;border-bottom:1px dashed var(--line);padding:12px 0}
  .fact:last-child{border-bottom:0}
  table{font-size:14px}
  th{white-space:normal}
  td{overflow-wrap:anywhere}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .card:hover,.btn:hover{transform:none}
}
