:root{
  --bg:#08080a;--bg-2:#0e0e12;--bg-3:#15151a;
  --ink:#ebe6d4;--ink-soft:#c5bea8;--ink-dim:#7e7866;--ink-faint:#3a362c;
  --blood:#a82828;--blood-deep:#5a1414;
  --gold:#c9a961;--gold-soft:#8e7942;
  --aurora:#5fb3a0;--void:#1a1a22;
  --line:rgba(201,169,97,0.18);
  --line-strong:rgba(201,169,97,0.4);
  /* 11 家族色 */
  --h-ignis:#d94a1f;     /* 炎脈 火橙 */
  --h-volt:#e8c93a;      /* 雷域 雷黃 */
  --h-abyss:#2a4d6e;     /* 深潮 深藍 */
  --h-sylva:#5a7a3a;     /* 森源 草綠 */
  --h-glacier:#a8c9d8;   /* 霜界 冰白 */
  --h-nox:#3a1a4a;       /* 夜墜 暗紫 */
  --h-lumina:#e8d27a;    /* 星耀 星金 */
  --h-seraph:#e8e0d0;    /* 羽隱 羽白 */
  --h-sangrith:#7a0e1e;  /* 血誓 血紅 */
  --h-phasmaris:#9070b0; /* 相位蝶 蝶紫 */
  --h-chrona:#5fb3a0;    /* 時痕 時光綠 */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:18.5px}
@media (max-width:768px){html{font-size:17px}}
body{
  background:var(--bg);color:var(--ink);
  font-family:'Cormorant Garamond','Noto Serif TC',serif;
  font-weight:300;line-height:1.8;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:1;
  background:
    radial-gradient(ellipse 80% 50% at 20% 0%, rgba(160,40,40,0.1), transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 100%, rgba(95,179,160,0.06), transparent 70%),
    radial-gradient(ellipse 50% 30% at 50% 50%, rgba(201,169,97,0.04), transparent 60%);
}
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0.04;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(255,255,255,0.5) 2px, rgba(255,255,255,0.5) 3px),
    repeating-linear-gradient(90deg, transparent, transparent 200px, rgba(201,169,97,0.05) 200px, rgba(201,169,97,0.05) 201px);
  mix-blend-mode:overlay;
}
.particles{position:fixed;inset:0;pointer-events:none;z-index:1}
.particle{
  position:absolute;width:2px;height:2px;background:var(--gold);
  border-radius:50%;opacity:0;animation:drift 15s linear infinite;
  box-shadow:0 0 4px var(--gold), 0 0 8px rgba(201,169,97,0.5);
}
@keyframes drift{
  0%{opacity:0;transform:translate(0,100vh) scale(0.5)}
  10%{opacity:0.8}90%{opacity:0.6}
  100%{opacity:0;transform:translate(var(--dx,50px),-10vh) scale(1.2)}
}

/* 舊 topnav 已停用 — 改用 home.css 中的 .site-nav 統一導覽 */
.topnav{display:none !important}

/* HERO */
.hero{
  position:relative;min-height:100vh;display:flex;flex-direction:column;
  justify-content:center;align-items:center;padding:6rem 2rem 4rem;text-align:center;
  border-bottom:1px solid var(--line);overflow:hidden;z-index:3;
}
.hero-rings{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:90vmin;height:90vmin;z-index:0;
}
.hero-rings::before,.hero-rings::after{
  content:'';position:absolute;inset:0;border-radius:50%;border:1px solid var(--line);
}
.hero-rings::before{
  inset:10%;border-color:rgba(160,40,40,0.2);animation:rotate 60s linear infinite;
}
.hero-rings::after{inset:25%;border-style:dashed;animation:rotate 40s linear infinite reverse}
/* 第二面鏡子 */
.hero-mirror{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:38vmin;height:38vmin;border-radius:50%;
  background:radial-gradient(circle, rgba(160,40,40,0.35) 0%, rgba(95,179,160,0.1) 50%, transparent 70%);
  z-index:0;animation:pulse 6s ease-in-out infinite;
}
.hero-mirror::before{
  content:'';position:absolute;inset:30%;border-radius:50%;
  background:radial-gradient(circle, #1a0606 0%, #000 80%);
  box-shadow:0 0 80px rgba(160,40,40,0.7), inset 0 0 40px rgba(160,40,40,0.5);
}
.hero-mirror::after{
  content:'';position:absolute;inset:20%;border-radius:50%;
  border:1px solid var(--gold);opacity:0.4;
  animation:rotate 30s linear infinite;
}
@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pulse{
  0%,100%{opacity:0.75;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}
}
.hero-content{position:relative;z-index:3;max-width:900px}
.hero-tag{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;letter-spacing:0.6em;
  color:var(--gold);margin-bottom:2rem;text-transform:uppercase;
  display:inline-block;padding:0.4rem 1.2rem;border:1px solid var(--line);
  background:rgba(8,8,10,0.4);backdrop-filter:blur(4px);
}
.hero-title{
  font-family:'Cinzel',serif;font-weight:900;font-size:clamp(3rem,10vw,7.5rem);
  letter-spacing:0.12em;line-height:0.95;margin-bottom:0.8rem;
  background:linear-gradient(180deg, var(--ink) 0%, var(--gold) 55%, var(--blood) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 80px rgba(201,169,97,0.2);
}
.hero-roman{
  font-family:'Cinzel',serif;font-weight:400;font-size:clamp(1rem,2.5vw,1.5rem);
  letter-spacing:0.8em;color:var(--gold);margin-bottom:1.5rem;padding-left:0.8em;
}
.hero-subtitle{
  font-family:'Noto Serif TC',serif;font-weight:200;
  font-size:clamp(1rem,2.2vw,1.4rem);letter-spacing:0.5em;
  color:var(--ink);margin-bottom:3rem;padding-left:0.5em;
}
.hero-subtitle .em{color:var(--blood)}
.hero-quote{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--ink-soft);max-width:640px;margin:0 auto;
  font-size:clamp(1.1rem,1.8vw,1.35rem);line-height:2.1;font-weight:300;
}
.hero-quote .accent{color:var(--blood);font-weight:400}
.hero-quote .gold{color:var(--gold);font-weight:400}
.hero-meta{
  margin-top:5rem;display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;max-width:800px;width:100%;border-top:1px solid var(--line);
}
@media (max-width:600px){.hero-meta{grid-template-columns:repeat(2,1fr)}}
.hero-meta span{
  display:flex;flex-direction:column;gap:0.5rem;padding:1.2rem 0.8rem;
  border-right:1px solid var(--line);text-align:left;
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--ink);
}
.hero-meta span:last-child{border-right:none}
.hero-meta b{
  color:var(--gold);font-weight:300;letter-spacing:0.3em;font-size:0.55rem;
  text-transform:uppercase;
}
.scroll-hint{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  letter-spacing:0.4em;color:var(--ink-faint);
  animation:bounce 2s ease-in-out infinite;
}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}

/* 區段 */
section{position:relative;z-index:3;padding:7rem 2rem;max-width:1400px;margin:0 auto}
.section-header{
  margin-bottom:5rem;display:grid;grid-template-columns:1fr 2fr;
  gap:3rem;align-items:end;
}
@media (max-width:768px){.section-header{grid-template-columns:1fr}}
.section-num-block{border-top:1px solid var(--gold);padding-top:1rem}
.section-num{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--gold);letter-spacing:0.5em;text-transform:uppercase;
}
.section-num-big{
  font-family:'Cinzel',serif;font-weight:900;font-size:5rem;
  color:var(--gold-soft);line-height:1;margin-top:0.3rem;letter-spacing:0.05em;
}
.section-title{
  font-family:'Cinzel',serif;font-weight:600;font-size:clamp(2rem,4.5vw,3.4rem);
  letter-spacing:0.04em;line-height:1.1;margin-bottom:0.8rem;color:var(--ink);
}
.section-title-cn{
  font-family:'Noto Serif TC',serif;font-weight:300;font-size:1rem;
  color:var(--ink-dim);letter-spacing:0.4em;margin-bottom:1.5rem;
}
.section-desc{
  color:var(--ink-soft);font-size:1.05rem;line-height:2.1;
  font-family:'Cormorant Garamond',serif;font-weight:300;
}
.section-desc em{color:var(--gold);font-style:normal;font-weight:400}
.section-desc strong{color:var(--blood);font-weight:400}

/* Lore */
.lore-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));
  gap:1.5rem;margin-top:2rem;
}
.lore-card{
  background:linear-gradient(180deg, var(--bg-2) 0%, var(--bg-3) 100%);
  border:1px solid var(--line);padding:2.5rem 2rem;
  position:relative;transition:all 0.5s cubic-bezier(0.4,0,0.2,1);overflow:hidden;
}
.lore-card:hover{
  border-color:var(--gold);transform:translateY(-6px);
  box-shadow:0 20px 40px rgba(0,0,0,0.5), 0 0 20px rgba(201,169,97,0.1);
}
.lore-card::before{
  content:'';position:absolute;top:0;left:0;width:40px;height:40px;
  border-top:2px solid var(--gold);border-left:2px solid var(--gold);transition:all 0.4s;
}
.lore-card::after{
  content:'';position:absolute;bottom:0;right:0;width:40px;height:40px;
  border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);transition:all 0.4s;
}
.lore-card:hover::before,.lore-card:hover::after{width:60px;height:60px}
.lore-card .rune{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--gold);letter-spacing:0.4em;margin-bottom:1rem;
}
.lore-card h3{
  font-family:'Cinzel',serif;font-size:1.35rem;color:var(--ink);
  margin-bottom:0.4rem;letter-spacing:0.08em;font-weight:600;
}
.lore-card .cn{
  font-size:0.85rem;color:var(--gold);margin-bottom:1.5rem;
  letter-spacing:0.4em;font-family:'Noto Serif TC',serif;font-weight:300;
}
.lore-card p{
  font-size:0.95rem;color:var(--ink-soft);line-height:2;
  font-family:'Noto Serif TC',serif;font-weight:300;
}
.lore-card .stat{
  margin-top:1.5rem;padding-top:1.2rem;border-top:1px dashed var(--line);
  display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;
  font-size:0.65rem;color:var(--ink-faint);letter-spacing:0.2em;
}
.lore-card .stat b{color:var(--gold);font-weight:400}

/* 神靈 */
.deity-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:2rem;margin-top:2rem;
}
.deity-card{
  position:relative;background:var(--bg-2);overflow:hidden;
  border:1px solid var(--line);transition:all 0.5s ease;
}
.deity-card:hover{
  border-color:var(--gold);transform:translateY(-8px);
  box-shadow:0 30px 60px rgba(0,0,0,0.6);
}
.deity-img{aspect-ratio:3/4;overflow:hidden;position:relative}
.deity-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 0.8s ease,filter 0.5s ease;
  filter:brightness(0.85) contrast(1.05);
}
.deity-card:hover .deity-img img{transform:scale(1.06);filter:brightness(1) contrast(1.1)}
.deity-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(8,8,10,0.98) 95%);
}
.deity-symbol{
  position:absolute;top:1rem;right:1rem;z-index:2;
  width:44px;height:44px;border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,8,10,0.7);backdrop-filter:blur(4px);
  font-family:'Cinzel',serif;color:var(--gold);font-size:1.2rem;
}
.deity-info{padding:1.8rem;position:relative;margin-top:-5rem;z-index:2}
.deity-rune{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;letter-spacing:0.5em;
  color:var(--gold);margin-bottom:0.5rem;
}
.deity-info h3{
  font-family:'Cinzel',serif;font-size:1.8rem;letter-spacing:0.1em;
  margin-bottom:0.4rem;color:var(--ink);font-weight:900;
}
.deity-info .cn{
  font-family:'Noto Serif TC',serif;color:var(--gold);font-weight:300;
  letter-spacing:0.35em;font-size:0.85rem;margin-bottom:1.2rem;
}
.deity-info .domain{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--ink-dim);letter-spacing:0.2em;margin-bottom:1rem;
  padding:0.3rem 0.6rem;border:1px solid var(--line);display:inline-block;
}
.deity-info p{
  font-size:0.92rem;color:var(--ink-soft);line-height:1.95;
  font-family:'Noto Serif TC',serif;font-weight:300;
}
.deity-info .saying{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--gold);font-size:1rem;
  border-top:1px solid var(--line);padding-top:1rem;margin-top:1.2rem;line-height:1.7;
}
.deity-info .saying::before{content:'「';color:var(--gold-soft);margin-right:0.2em}
.deity-info .saying::after{content:'」';color:var(--gold-soft);margin-left:0.2em}

/* 主角 */
.char-grid{display:grid;grid-template-columns:1fr;gap:6rem;margin-top:2rem}
.char-card{
  display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:3.5rem;
  position:relative;padding:3rem 0;border-top:1px solid var(--line);
}
.char-card:first-child{border-top:none;padding-top:0}
@media (max-width:768px){.char-card{grid-template-columns:1fr;gap:2rem}}
.char-card::before{
  content:attr(data-num);position:absolute;top:3rem;right:0;
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--ink-faint);letter-spacing:0.3em;
}
.char-image-wrap{position:sticky;top:6rem;align-self:start}
@media (max-width:768px){.char-image-wrap{position:static}}
.char-image{
  position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);
}
.char-image img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 0.8s ease,filter 0.5s ease;
  filter:brightness(0.92) contrast(1.05);
}
.char-card:hover .char-image img{transform:scale(1.04);filter:brightness(1.05) contrast(1.1)}
.char-image::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, transparent 50%, rgba(8,8,10,0.6) 100%);
}
.char-image-tag{
  position:absolute;top:1rem;left:1rem;z-index:2;
  background:rgba(8,8,10,0.85);padding:0.35rem 0.7rem;
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--gold);letter-spacing:0.25em;border:1px solid var(--gold);
}
.char-image-data{
  position:absolute;bottom:1rem;left:1rem;right:1rem;z-index:2;
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--ink-soft);letter-spacing:0.15em;
  display:flex;justify-content:space-between;
}
.char-image-data span{color:var(--gold)}
.char-info h2{
  font-family:'Cinzel',serif;font-weight:900;font-size:clamp(2.2rem,4vw,3rem);
  letter-spacing:0.08em;margin-bottom:0.3rem;color:var(--ink);line-height:1;
}
.char-cn-name{
  font-family:'Noto Serif TC',serif;font-weight:300;font-size:1.1rem;
  color:var(--gold);letter-spacing:0.5em;margin-bottom:0.8rem;
}
.char-titles{
  display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.8rem;
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--ink-dim);letter-spacing:0.2em;
}
.char-titles span{padding:0.2rem 0.5rem;border:1px solid var(--line)}
.char-titles .key{border-color:var(--gold);color:var(--gold)}
.char-titles .blood{border-color:var(--blood);color:var(--blood)}
.char-tagline{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--gold);font-size:1.25rem;margin-bottom:2.5rem;
  padding:0 0 0 1.2rem;border-left:2px solid var(--blood);line-height:1.7;font-weight:400;
}
.char-tagline::before{content:'「';color:var(--gold-soft);margin-right:0.2em}
.char-tagline::after{content:'」';color:var(--gold-soft);margin-left:0.2em}
.char-attr{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px dashed var(--line)}
.char-attr:last-of-type{border-bottom:none}
.char-attr-label{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;color:var(--gold);
  letter-spacing:0.35em;margin-bottom:0.6rem;text-transform:uppercase;
  display:flex;align-items:center;gap:0.5rem;
}
.char-attr-label::before{
  content:'';width:6px;height:6px;background:var(--gold);transform:rotate(45deg);
}
.char-attr-content{
  font-size:1rem;color:var(--ink-soft);line-height:1.95;
  font-family:'Noto Serif TC',serif;font-weight:300;
}
.char-quote{
  background:var(--void);border-left:3px solid var(--gold);
  padding:1rem 1.5rem;margin-top:0.8rem;
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--ink);font-size:1.05rem;line-height:1.8;
}
.char-quote::before{content:'「';color:var(--gold);font-size:1.3rem;margin-right:0.2rem}
.char-quote::after{content:'」';color:var(--gold);font-size:1.3rem;margin-left:0.2rem}
.char-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin:2rem 0;border:1px solid var(--line);
}
@media (max-width:600px){.char-stats{grid-template-columns:repeat(2,1fr)}}
.char-stat{
  padding:1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:'JetBrains Mono',monospace;
}
.char-stat:nth-child(3n){border-right:none}
.char-stat-label{font-size:0.55rem;color:var(--ink-dim);letter-spacing:0.3em;margin-bottom:0.4rem}
.char-stat-value{font-size:0.85rem;color:var(--ink);letter-spacing:0.1em}
.char-arc{
  margin-top:2rem;padding:1.5rem;
  background:linear-gradient(90deg, rgba(160,40,40,0.05), transparent);
  border-left:2px solid var(--blood);
}
.char-arc-title{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--blood);letter-spacing:0.4em;margin-bottom:0.8rem;text-transform:uppercase;
}
.char-arc-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;font-size:0.85rem}
@media (max-width:600px){.char-arc-stages{grid-template-columns:1fr}}
.arc-stage b{
  display:block;color:var(--gold);font-family:'Cinzel',serif;
  font-size:0.7rem;letter-spacing:0.3em;margin-bottom:0.3rem;font-weight:600;
}
.arc-stage{color:var(--ink-soft);font-family:'Noto Serif TC',serif;font-weight:300;line-height:1.7}

/* 家族（升級） */
.houses-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.2rem;margin-top:2rem;
}
.house-card{
  background:var(--bg-2);border:1px solid var(--line);
  overflow:hidden;transition:all 0.5s ease;position:relative;
}
.house-card:hover{
  border-color:var(--house-color,var(--gold));transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(0,0,0,0.5), 0 0 30px var(--house-color);
}
.house-img{aspect-ratio:4/5;overflow:hidden;position:relative}
.house-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s}
.house-card:hover .house-img img{transform:scale(1.05)}
.house-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(8,8,10,0.95) 0%, transparent 50%);
}
.house-roman{
  position:absolute;top:0.8rem;right:0.8rem;z-index:2;
  font-family:'Cinzel',serif;font-weight:900;font-size:2.2rem;
  color:var(--house-color,var(--gold));text-shadow:0 0 12px rgba(0,0,0,0.9);
  letter-spacing:0.05em;line-height:1;
}
.house-crystal{
  position:absolute;top:0.8rem;left:0.8rem;z-index:2;
  width:24px;height:24px;background:var(--house-color,var(--gold));
  transform:rotate(45deg);box-shadow:0 0 14px var(--house-color,var(--gold));
  opacity:0.85;
}
/* 家族角色定位 tag */
.house-role-tag{
  position:absolute;bottom:0.8rem;right:0.8rem;z-index:2;
  font-family:'JetBrains Mono',monospace;font-size:0.55rem;
  color:var(--house-color);letter-spacing:0.2em;
  background:rgba(8,8,10,0.7);padding:0.25rem 0.5rem;
  border:1px solid var(--house-color);
}
.house-info{padding:1.3rem;position:relative;margin-top:-3rem;z-index:2}
.house-name{
  font-family:'Cinzel',serif;font-size:1.15rem;letter-spacing:0.12em;
  margin-bottom:0.15rem;color:var(--ink);font-weight:600;
}
.house-cn{
  font-family:'Noto Serif TC',serif;font-size:0.85rem;color:var(--house-color,var(--gold));
  letter-spacing:0.3em;margin-bottom:0.5rem;font-weight:300;
}
.house-tagline{
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--ink-dim);letter-spacing:0.2em;margin-bottom:0.9rem;text-transform:uppercase;
}
.house-motto{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--ink-soft);font-size:0.92rem;line-height:1.7;margin-bottom:1rem;
}
.house-motto::before{content:'— '}
.house-data{
  display:grid;grid-template-columns:auto 1fr;gap:0.4rem 0.8rem;
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  border-top:1px solid var(--line);padding-top:0.8rem;
}
.house-data dt{color:var(--ink-dim);letter-spacing:0.2em;text-transform:uppercase}
.house-data dd{color:var(--ink);letter-spacing:0.1em}

/* 派系 */
.faction{margin-top:3rem;padding:2.5rem 0;border-top:1px solid var(--line)}
.faction:first-of-type{border-top:none;padding-top:0}
.faction-header{
  display:grid;grid-template-columns:auto 1fr;gap:2rem;
  margin-bottom:2rem;align-items:start;
}
@media (max-width:768px){.faction-header{grid-template-columns:1fr}}
.faction-emblem{
  width:80px;height:80px;border:2px solid var(--faction-color,var(--gold));
  display:flex;align-items:center;justify-content:center;
  font-family:'Cinzel',serif;font-weight:900;color:var(--faction-color,var(--gold));
  font-size:2rem;position:relative;
}
.faction-emblem::after{
  content:'';position:absolute;inset:-8px;
  border:1px dashed var(--faction-color,var(--gold));opacity:0.4;
}
.faction-title{
  font-family:'Cinzel',serif;font-size:1.8rem;letter-spacing:0.1em;
  color:var(--faction-color,var(--gold));margin-bottom:0.3rem;font-weight:600;
}
.faction-cn{
  font-family:'Noto Serif TC',serif;color:var(--ink);letter-spacing:0.4em;
  font-size:0.95rem;margin-bottom:1rem;font-weight:300;
}
.faction-doctrine{
  color:var(--ink-soft);font-family:'Cormorant Garamond',serif;
  font-style:italic;font-size:1.05rem;line-height:1.9;font-weight:400;max-width:700px;
}
.faction-doctrine::before{content:'「';color:var(--gold-soft)}
.faction-doctrine::after{content:'」';color:var(--gold-soft)}
.faction-desc{
  color:var(--ink-dim);font-family:'Noto Serif TC',serif;
  font-size:0.9rem;line-height:1.9;margin-top:1rem;max-width:700px;font-weight:300;
}

/* 畫廊 */
.gallery-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:1rem;margin-top:2rem;
}
.gallery-item{
  position:relative;aspect-ratio:3/4;overflow:hidden;
  border:1px solid var(--line);cursor:pointer;background:var(--bg-2);
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 0.6s ease,filter 0.6s ease;
  filter:grayscale(0.4) brightness(0.75) contrast(1.05);
}
.gallery-item:hover img{transform:scale(1.07);filter:grayscale(0) brightness(1) contrast(1.1)}
.gallery-item::before{
  content:'';position:absolute;top:0.5rem;left:0.5rem;z-index:2;
  width:6px;height:6px;background:var(--gold);transform:rotate(45deg);
  opacity:0;transition:opacity 0.3s;
}
.gallery-item:hover::before{opacity:1}
.gallery-caption{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  background:linear-gradient(0deg,rgba(8,8,10,0.98) 30%,transparent);
  padding:2rem 0.9rem 0.7rem;
  transform:translateY(45%);transition:transform 0.4s ease;
}
.gallery-item:hover .gallery-caption{transform:translateY(0)}
.gallery-caption .name{
  font-family:'Cinzel',serif;font-size:0.85rem;color:var(--gold);
  letter-spacing:0.1em;margin-bottom:0.2rem;font-weight:600;
}
.gallery-caption .role{
  font-size:0.7rem;color:var(--ink-soft);font-family:'Noto Serif TC',serif;
  font-weight:300;letter-spacing:0.1em;
}
.gallery-caption .id{
  font-family:'JetBrains Mono',monospace;font-size:0.55rem;
  color:var(--ink-faint);letter-spacing:0.2em;margin-top:0.3rem;
}

/* SCENE 時序（新章節） */
.timeline{
  position:relative;margin-top:3rem;padding-left:3rem;
}
.timeline::before{
  content:'';position:absolute;left:1rem;top:0;bottom:0;width:1px;
  background:linear-gradient(180deg, transparent, var(--gold), var(--blood), transparent);
}
.timeline-item{
  position:relative;margin-bottom:3rem;display:grid;
  grid-template-columns:1fr minmax(280px,420px);gap:2rem;align-items:start;
}
@media (max-width:768px){.timeline-item{grid-template-columns:1fr}}
.timeline-item::before{
  content:'';position:absolute;left:-2.3rem;top:1.5rem;
  width:14px;height:14px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 12px var(--gold);
  border:2px solid var(--bg);
}
.timeline-item .scn-img{
  aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);position:relative;
}
.timeline-item .scn-img img{width:100%;height:100%;object-fit:cover;filter:brightness(0.85)}
.timeline-item .scn-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(8,8,10,0.6),transparent 60%);
}
.timeline-content{padding-top:0}
.scn-num{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--gold);letter-spacing:0.4em;margin-bottom:0.5rem;
}
.scn-title{
  font-family:'Cinzel',serif;font-size:1.5rem;letter-spacing:0.1em;
  color:var(--ink);margin-bottom:0.4rem;font-weight:600;
}
.scn-cn{
  font-family:'Noto Serif TC',serif;font-size:0.9rem;color:var(--gold);
  letter-spacing:0.3em;margin-bottom:1rem;font-weight:300;
}
.scn-desc{
  font-family:'Noto Serif TC',serif;font-size:0.95rem;
  color:var(--ink-soft);line-height:2;font-weight:300;margin-bottom:1rem;
}
.scn-narration{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--gold);font-size:1rem;line-height:1.8;
  padding:0.8rem 1.2rem;border-left:2px solid var(--blood);
  background:rgba(160,40,40,0.05);
}
.scn-narration::before{content:'🎙️ ';color:var(--gold-soft);font-style:normal}
.scn-narration::after{}

/* 愛情線（新章節） */
.romance{
  margin-top:3rem;display:grid;gap:3rem;
}
.romance-act{
  display:grid;grid-template-columns:auto 1fr;gap:2.5rem;
  padding:2.5rem;background:linear-gradient(135deg, var(--bg-2), var(--bg));
  border:1px solid var(--line);position:relative;overflow:hidden;
}
@media (max-width:768px){.romance-act{grid-template-columns:1fr}}
.romance-act::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, var(--blood), var(--gold), transparent);
}
.romance-num{
  font-family:'Cinzel',serif;font-weight:900;font-size:4rem;
  color:var(--gold-soft);line-height:1;letter-spacing:0;
  writing-mode:vertical-rl;text-orientation:mixed;
}
@media (max-width:768px){.romance-num{writing-mode:horizontal-tb;font-size:3rem}}
.romance-content h4{
  font-family:'Cinzel',serif;font-size:1.4rem;color:var(--ink);
  letter-spacing:0.1em;margin-bottom:0.3rem;font-weight:600;
}
.romance-content .cn{
  font-family:'Noto Serif TC',serif;color:var(--gold);
  letter-spacing:0.3em;font-size:0.85rem;margin-bottom:1.2rem;font-weight:300;
}
.romance-content p{
  font-family:'Noto Serif TC',serif;font-weight:300;
  font-size:0.98rem;line-height:2;color:var(--ink-soft);margin-bottom:1rem;
}
.romance-quote{
  margin-top:1.2rem;padding:1rem 1.5rem;
  background:var(--void);border-left:3px solid var(--blood);
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--ink);font-size:1.05rem;line-height:1.8;
}
.romance-quote::before{content:'「';color:var(--blood);font-size:1.3rem;margin-right:0.2rem}
.romance-quote::after{content:'」';color:var(--blood);font-size:1.3rem;margin-left:0.2rem}

/* 對白 */
.scripts-grid{display:grid;grid-template-columns:1fr;gap:2.5rem;margin-top:2rem}
.script-card{
  background:var(--bg-2);border:1px solid var(--line);padding:2.5rem 2rem;position:relative;
}
.script-card::before{
  content:'EX.';position:absolute;top:-0.7rem;left:1.5rem;
  background:var(--bg);padding:0 0.6rem;
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--gold);letter-spacing:0.3em;
}
.script-scene{
  font-family:'Cinzel',serif;font-size:0.85rem;color:var(--gold);
  letter-spacing:0.3em;margin-bottom:0.4rem;text-transform:uppercase;
}
.script-setting{
  font-family:'Noto Serif TC',serif;font-size:0.95rem;
  color:var(--ink-dim);margin-bottom:1.8rem;font-style:italic;font-weight:300;
}
.script-dialogue{
  font-family:'Noto Serif TC',serif;font-weight:300;font-size:1.02rem;line-height:2;
}
.script-dialogue .character{
  color:var(--gold);font-family:'Cinzel',serif;font-weight:600;
  letter-spacing:0.2em;font-size:0.8rem;margin-top:1.2rem;display:block;
}
.script-dialogue .character:first-child{margin-top:0}
.script-dialogue .line{color:var(--ink);padding-left:1.5rem;display:block;margin-bottom:0.3rem}
.script-dialogue .stage{
  color:var(--ink-dim);font-style:italic;padding-left:1.5rem;
  display:block;font-size:0.85rem;margin-bottom:0.3rem;
}

/* 分隔 */
.divider{
  text-align:center;padding:7rem 0 5rem;position:relative;
  max-width:1400px;margin:0 auto;
}
.divider::before{
  content:'';position:absolute;top:50%;left:15%;right:15%;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent);
}
.divider-text{
  display:inline-block;background:var(--bg);padding:0 2.5rem;
  font-family:'Cinzel',serif;letter-spacing:0.5em;color:var(--gold);
  font-size:0.85rem;position:relative;z-index:2;font-weight:600;
}
.divider-text::before,.divider-text::after{
  content:'◆';color:var(--gold);margin:0 0.8rem;font-size:0.6rem;
}

/* 結尾 */
.ending{
  padding:10rem 2rem;text-align:center;border-top:1px solid var(--line);
  background:
    radial-gradient(ellipse at center, rgba(160,40,40,0.1), transparent 60%),
    radial-gradient(ellipse at center, rgba(8,8,10,1) 80%, var(--bg) 100%);
  position:relative;
}
.ending h2{
  font-family:'Cinzel',serif;font-size:clamp(2rem,5vw,3.5rem);
  letter-spacing:0.2em;margin-bottom:3rem;font-weight:900;
  background:linear-gradient(180deg, var(--ink) 0%, var(--blood) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ending p{
  max-width:640px;margin:0 auto 1.5rem;color:var(--ink-soft);line-height:2.2;
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.15rem;
}
.ending p .blood{color:var(--blood);font-weight:400}
.ending p .gold{color:var(--gold);font-weight:400}
.ending .final-hook{
  font-family:'Cinzel',serif;font-style:normal;font-size:clamp(1.2rem,2.5vw,1.6rem);
  letter-spacing:0.15em;color:var(--gold);margin:3rem auto;
  max-width:700px;line-height:1.6;
}
.ending .signoff{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--ink-faint);margin-top:4rem;letter-spacing:0.4em;line-height:2;
}
.ending .signoff b{color:var(--gold);font-weight:300}

/* 動畫 */
.fade-in{opacity:0;transform:translateY(30px);transition:all 1.2s cubic-bezier(0.16,1,0.3,1)}
.fade-in.visible{opacity:1;transform:translateY(0)}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--ink-faint)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}
::selection{background:var(--blood);color:var(--ink)}

/* ========== v3 新增樣式 ========== */

/* 世界縮影 LORE 主視覺 */
.world-banner{
  position:relative;margin:0 -2rem 4rem;
  min-height:480px;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.world-banner img{
  width:100%;height:auto;display:block;
  filter:brightness(0.7) contrast(1.05);
}
.world-banner::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(8,8,10,0.4) 0%, transparent 30%, transparent 70%, rgba(8,8,10,0.95) 100%);
  pointer-events:none;
}
.world-banner-overlay{
  position:absolute;bottom:2rem;left:2rem;right:2rem;z-index:2;
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;
}
.world-banner-label{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--gold);letter-spacing:0.4em;padding:0.4rem 0.8rem;
  background:rgba(8,8,10,0.7);border:1px solid var(--gold);backdrop-filter:blur(4px);
}
.world-banner-title{
  font-family:'Cinzel',serif;font-size:1.2rem;color:var(--ink);
  letter-spacing:0.2em;font-weight:600;
}
.world-banner-title span{display:block;font-family:'Noto Serif TC';font-size:0.85rem;color:var(--gold);letter-spacing:0.3em;font-weight:300;margin-top:0.3rem}

/* NULL 軸心區（21:9 寬幅展示，不裁切） */
.null-axis{
  margin:4rem -2rem 4rem;position:relative;overflow:hidden;
  border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);
  background:#000;
}
.null-axis-img{
  width:100%;height:auto;display:block;
  filter:brightness(0.95) contrast(1.05);
}
.null-axis-label{
  position:absolute;top:1.5rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--gold);letter-spacing:0.6em;padding:0.4rem 1.2rem;
  background:rgba(8,8,10,0.75);border:1px solid var(--gold);backdrop-filter:blur(6px);
  white-space:nowrap;
}
.null-axis-caption{
  padding:2rem;text-align:center;
  background:linear-gradient(180deg, rgba(8,8,10,0.95), var(--bg));
}
.null-axis-caption h3{
  font-family:'Cinzel',serif;font-size:1.6rem;color:var(--gold);
  letter-spacing:0.2em;margin-bottom:0.5rem;font-weight:600;
}
.null-axis-caption p{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--ink-soft);font-size:1.05rem;max-width:700px;margin:0 auto;line-height:1.8;
}

/* 五女神 21:9 寬幅圖 */
.five-banner{
  margin:4rem -2rem 0;position:relative;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:#000;
}
.five-banner img{
  width:100%;height:auto;display:block;
  filter:brightness(0.95) contrast(1.08);
}
.five-banner::after{
  content:'';position:absolute;left:0;right:0;bottom:0;
  height:55%;pointer-events:none;z-index:2;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(8,8,10,0.15) 25%,
    rgba(8,8,10,0.6) 60%,
    rgba(8,8,10,0.92) 100%);
}
.five-banner-overlay{
  position:absolute;top:1.5rem;left:50%;transform:translateX(-50%);z-index:4;
  text-align:center;
}
.five-banner-overlay .tag{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--gold);letter-spacing:0.65em;padding:0.5rem 1.4rem;
  background:rgba(8,8,10,0.8);border:1px solid var(--gold);backdrop-filter:blur(8px);
  display:inline-block;font-weight:400;
}

/* 五女神 5 格定位標籤 — 神諭風格 */
.goddess-tags{
  position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,1fr);
  pointer-events:none;z-index:5;
}
.goddess-tag{
  display:flex;flex-direction:column;justify-content:flex-end;align-items:center;
  padding-bottom:clamp(1.5rem, 4vw, 3rem);
  position:relative;
  --gc:#ebe6d4;
}
/* 各神專屬色 */
.goddess-tag:nth-child(1){--gc:#d97640}  /* ORDER 橘金 */
.goddess-tag:nth-child(2){--gc:#4d7a9e}  /* CALAMITY 暗藍 */
.goddess-tag:nth-child(3){--gc:#c9a961}  /* MEMORY 金 */
.goddess-tag:nth-child(4){--gc:#7a9a5a}  /* GROWTH 森綠 */
.goddess-tag:nth-child(5){--gc:#b8c93a;--gc-warn:#a82828}  /* TIME 警黃 */

/* 巨大羅馬數字浮水印 */
.goddess-tag .num{
  position:absolute;
  top:calc(40% - 0.5em);left:50%;transform:translateX(-50%);
  font-family:'Cinzel',serif;font-weight:900;
  font-size:clamp(3rem, 7vw, 6rem);
  letter-spacing:0;line-height:1;
  color:var(--gc);
  opacity:0.18;
  text-shadow:
    0 0 30px rgba(0,0,0,0.95),
    0 0 60px var(--gc);
  pointer-events:none;
  z-index:0;
}

/* 神名英文 */
.goddess-tag .nm{
  font-family:'Cinzel',serif;font-weight:900;
  font-size:clamp(1rem, 1.9vw, 1.85rem);
  color:#fff;
  letter-spacing:0.25em;
  position:relative;z-index:2;
  text-shadow:
    0 0 4px rgba(0,0,0,0.95),
    0 0 12px rgba(0,0,0,0.85),
    0 0 30px var(--gc);
  margin-bottom:0.4rem;
}
/* TIME 警示色（偽神） */
.goddess-tag:nth-child(5) .nm{
  color:#f0e070;
  text-shadow:
    0 0 4px rgba(0,0,0,0.95),
    0 0 14px rgba(168,40,40,0.6),
    0 0 30px rgba(184,201,58,0.5);
}
.goddess-tag:nth-child(5) .nm::after{
  content:'⚠';position:absolute;top:-0.6em;right:-1em;
  font-size:0.5em;color:#a82828;
  text-shadow:0 0 8px rgba(168,40,40,0.8);
}

/* 上方分隔線 + 眼瞳點 */
.goddess-tag .nm::before{
  content:'';display:block;
  width:clamp(20px, 4vw, 60px);height:1px;
  background:linear-gradient(90deg, transparent, var(--gc), transparent);
  margin:0 auto 0.6rem;
  position:relative;
}
/* 眼瞳裝飾點放在分隔線上方 */
.goddess-tag::before{
  content:'';position:absolute;
  bottom:calc(clamp(1.5rem, 4vw, 3rem) + 4.5em);
  left:50%;transform:translateX(-50%);
  width:8px;height:8px;border-radius:50%;
  background:var(--gc);
  box-shadow:
    0 0 8px var(--gc),
    0 0 16px var(--gc),
    0 0 28px var(--gc);
  z-index:2;
  animation:goddess-pulse 3.5s ease-in-out infinite;
}
.goddess-tag:nth-child(2)::before{animation-delay:-0.7s}
.goddess-tag:nth-child(3)::before{animation-delay:-1.4s;width:11px;height:11px}
.goddess-tag:nth-child(4)::before{animation-delay:-2.1s}
.goddess-tag:nth-child(5)::before{animation-delay:-2.8s;background:#a82828;box-shadow:0 0 10px #a82828, 0 0 20px #a82828}

@keyframes goddess-pulse{
  0%, 100%{opacity:0.85;transform:translateX(-50%) scale(1)}
  50%{opacity:1;transform:translateX(-50%) scale(1.25)}
}

/* 中文名 */
.goddess-tag .cn{
  font-family:'Noto Serif TC',serif;font-weight:400;
  font-size:clamp(0.65rem, 0.95vw, 0.95rem);
  color:var(--gc);
  letter-spacing:0.45em;
  margin-top:0.3rem;
  position:relative;z-index:2;
  text-shadow:0 0 8px rgba(0,0,0,0.95), 0 0 18px rgba(0,0,0,0.7);
  padding-left:0.45em;  /* 補償 letter-spacing 視覺置中 */
}

@media (max-width:768px){
  .goddess-tag{padding-bottom:1rem}
  .goddess-tag .num{font-size:2rem;opacity:0.14}
  .goddess-tag .nm{font-size:0.78rem;letter-spacing:0.12em}
  .goddess-tag .nm::before{width:18px}
  .goddess-tag .cn{font-size:0.55rem;letter-spacing:0.25em}
  .goddess-tag::before{
    bottom:calc(1rem + 3.2em);
    width:5px;height:5px;
    box-shadow:0 0 6px var(--gc), 0 0 12px var(--gc);
  }
  .goddess-tag:nth-child(3)::before{width:7px;height:7px}
}

/* 五女神供奉關係表 */
.devotion-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;margin-top:3rem;
}
.devotion-card{
  background:var(--bg-2);border:1px solid var(--line);padding:1.8rem;
  position:relative;border-top:3px solid var(--goddess-color,var(--gold));
}
.devotion-num{
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--goddess-color,var(--gold));letter-spacing:0.4em;margin-bottom:0.5rem;
}
.devotion-name{
  font-family:'Cinzel',serif;font-size:1.3rem;color:var(--ink);
  letter-spacing:0.1em;margin-bottom:0.2rem;font-weight:600;
}
.devotion-cn{
  font-family:'Noto Serif TC',serif;font-size:0.85rem;color:var(--goddess-color,var(--gold));
  letter-spacing:0.3em;margin-bottom:1rem;font-weight:300;
}
.devotion-eye{
  display:inline-block;width:10px;height:10px;border-radius:50%;
  background:var(--goddess-color,var(--gold));margin-right:0.5rem;vertical-align:middle;
  box-shadow:0 0 8px var(--goddess-color);
}
.devotion-domain{
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--ink-dim);letter-spacing:0.2em;margin-bottom:1rem;
}
.devotion-houses{
  border-top:1px dashed var(--line);padding-top:1rem;
}
.devotion-houses-label{
  font-family:'JetBrains Mono',monospace;font-size:0.6rem;
  color:var(--goddess-color);letter-spacing:0.3em;margin-bottom:0.6rem;text-transform:uppercase;
}
.devotion-house{
  font-family:'Noto Serif TC',serif;font-size:0.85rem;color:var(--ink-soft);
  padding:0.3rem 0;line-height:1.6;
}
.devotion-house b{color:var(--ink);font-weight:400}

/* Aurora 專屬卡（垂直直立大圖） */
.aurora-spotlight{
  display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:3rem;
  margin-top:2rem;padding:2rem;background:linear-gradient(135deg, rgba(95,179,160,0.08), transparent);
  border:1px solid rgba(95,179,160,0.3);position:relative;
}
@media (max-width:768px){.aurora-spotlight{grid-template-columns:1fr}}
.aurora-spotlight::before{
  content:'EXCEPTION';position:absolute;top:-0.7rem;left:1.5rem;
  background:var(--bg);padding:0 0.6rem;
  font-family:'JetBrains Mono',monospace;font-size:0.65rem;
  color:var(--aurora);letter-spacing:0.4em;
}
.aurora-img{
  aspect-ratio:3/4;overflow:hidden;border:1px solid rgba(95,179,160,0.3);position:relative;
}
.aurora-img img{
  width:100%;height:100%;object-fit:cover;
  object-position:33% 33%;
  filter:brightness(1) contrast(1.05);
}
.aurora-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(8,8,10,0.5));
}
.aurora-info{padding:1rem 0}
.aurora-info .rune{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--aurora);letter-spacing:0.5em;margin-bottom:0.8rem;
}
.aurora-info h3{
  font-family:'Cinzel',serif;font-size:2.5rem;color:var(--ink);
  letter-spacing:0.1em;margin-bottom:0.3rem;font-weight:900;
}
.aurora-info .cn{
  font-family:'Noto Serif TC',serif;font-size:1rem;color:var(--aurora);
  letter-spacing:0.4em;margin-bottom:1.5rem;font-weight:300;
}
.aurora-info p{
  font-family:'Noto Serif TC',serif;font-size:0.95rem;
  color:var(--ink-soft);line-height:2;margin-bottom:1rem;font-weight:300;
}
.aurora-info p b{color:var(--aurora);font-weight:400}
.aurora-info .saying{
  margin-top:1.5rem;padding:1rem 1.5rem;
  background:rgba(95,179,160,0.05);border-left:2px solid var(--aurora);
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--aurora);font-size:1.1rem;line-height:1.7;
}
.aurora-info .saying::before{content:'「';color:var(--aurora);margin-right:0.2em}
.aurora-info .saying::after{content:'」';color:var(--aurora);margin-left:0.2em}

/* 圖片中心點優化（所有 deity-img / char-image / gallery-item 用） */
.center-top img{object-position:center 25%}
.center-face img{object-position:center 35%}
.center-mid img{object-position:center center}

/* 階層關係圖（六神→五女神→十一家族） */
.hierarchy{
  margin-top:3rem;padding:2.5rem 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.hierarchy svg{width:100%;height:auto;max-width:1200px;display:block;margin:0 auto}

/* === v3.1 字級提升層 · 把編碼感小字整體往上拉一檔 === */
.nav-logo span,
.nav-link,
.nav-menu .num,
.opening-tag,
.section-meta,
.scene-meta,
.char-stat-label,
.char-stat-value,
.char-arc-stages span,
.arc-label,
.house-meta-tag,
.faction-num,
.faction-tag,
.scene-num,
.goddess-eye-label,
.code-tag,
.mono-tiny{
  font-size:0.78rem !important;
}
/* 主要正文與引言再加一點氣 */
.section-body p,
.char-body p,
.house-body p,
.scene-body p,
.goddess-body p,
.lore-body p{
  font-size:1.05rem !important;line-height:2.05 !important;
}
