/* ================================================
   塞尔达传说：王国之泪 攻略网站
   设计风格：仿任天堂官网 · 黑金绿 · 佐纳依美学
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700;900&family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

:root {
  --bg-primary:   #07070f;
  --bg-secondary: #0c0c1c;
  --bg-card:      #111128;
  --bg-card-hover:#181835;
  --gold:         #c9a227;
  --gold-light:   #f0d060;
  --gold-dim:     #7a6218;
  --green:        #4ade80;
  --green-mid:    #22c55e;
  --green-dim:    rgba(74,222,128,0.15);
  --blue:         #38bdf8;
  --purple:       #a78bfa;
  --text-primary: #e8e4d4;
  --text-secondary:#a09878;
  --text-muted:   #4e4a3a;
  --border-gold:  rgba(201,162,39,0.22);
  --border-green: rgba(74,222,128,0.18);
  --glow-gold:    0 0 24px rgba(201,162,39,0.3);
  --glow-green:   0 0 20px rgba(74,222,128,0.2);
  --radius:       8px;
  --radius-lg:    16px;
  --transition:   all 0.3s cubic-bezier(0.4,0,0.2,1);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
  font-family: 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  line-height: 1.7;
  overflow-x: hidden;
  min-height: 100vh;
}

body::before {
  content:'';
  position:fixed; inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 20% 60%, rgba(74,222,128,0.04) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 20%, rgba(201,162,39,0.06) 0%, transparent 55%),
    radial-gradient(ellipse 40% 60% at 50% 100%, rgba(56,189,248,0.03) 0%, transparent 50%);
  pointer-events:none; z-index:0;
}

/* ════ NAVBAR ════ */
.navbar {
  position:fixed; top:0; width:100%; z-index:1000;
  background: rgba(7,7,15,0.92);
  backdrop-filter: blur(16px) saturate(1.5);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  border-bottom: 1px solid var(--border-gold);
}
.navbar-inner {
  max-width:1360px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  height:60px; padding:0 24px;
}
.navbar-logo {
  display:flex; align-items:center; gap:10px;
  text-decoration:none; color:var(--gold);
  font-family:'Noto Serif SC', serif;
  font-size:0.95rem; font-weight:700; letter-spacing:0.05em; flex-shrink:0;
}
.logo-icon {
  width:32px; height:32px;
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-dim) 100%);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1rem; box-shadow: var(--glow-gold);
}
.navbar-nav { display:flex; list-style:none; gap:2px; overflow-x:auto; scrollbar-width:none; }
.navbar-nav::-webkit-scrollbar { display:none; }
.navbar-nav a {
  display:block; padding:8px 11px;
  color:var(--text-secondary); text-decoration:none;
  font-size:0.8rem; white-space:nowrap;
  border-radius:var(--radius); transition:var(--transition); letter-spacing:0.03em;
}
.navbar-nav a:hover  { color:var(--gold); background:rgba(201,162,39,0.1); }
.navbar-nav a.active { color:var(--gold); background:rgba(201,162,39,0.12); }

/* ── 下拉菜单 ── */
.nav-dropdown { position:relative; }
.nav-dropdown > a::after {
  content:' ▾'; font-size:0.65em; opacity:0.7; vertical-align:middle;
  display:inline-block; transition:transform 0.2s;
}
.nav-dropdown.open > a::after { transform:rotate(180deg); }
.nav-dropdown-menu {
  display:none;
  position:fixed;
  min-width:170px;
  background:rgba(7,7,15,0.98);
  border:1px solid var(--border-gold);
  border-radius:var(--radius);
  padding:6px 0; z-index:9999;
  box-shadow:0 8px 28px rgba(0,0,0,0.75);
  white-space:nowrap;
}
.nav-dropdown.open .nav-dropdown-menu { display:block; }
.nav-dropdown-menu li { list-style:none; }
.nav-dropdown-menu a {
  display:block; padding:9px 18px;
  color:var(--text-secondary); font-size:0.82rem;
  border-radius:0; white-space:nowrap;
  text-decoration:none; transition:var(--transition);
}
.nav-dropdown-menu a:hover { color:var(--gold); background:rgba(201,162,39,0.1); }
.nav-dropdown-menu a.disabled { opacity:0.4; pointer-events:none; cursor:default; }

.hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:8px; background:none; border:none;
}
.hamburger span { display:block; width:22px; height:2px; background:var(--gold); border-radius:2px; transition:var(--transition); }
.hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

/* ════ HERO ════ */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center;
  padding:80px 24px 60px; position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 70% at 50% 45%, rgba(201,162,39,0.07) 0%, transparent 65%),
    linear-gradient(180deg, #07070f 0%, #0b0b1a 50%, #07070f 100%);
}
.hero-ring {
  position:absolute; top:50%; left:50%;
  border-radius:50%; border:1px solid rgba(201,162,39,0.1);
  animation:spin-ring linear infinite;
}
.hero-ring:nth-child(2) { width:540px; height:540px; animation-duration:45s; }
.hero-ring:nth-child(3) { width:740px; height:740px; animation-duration:70s; animation-direction:reverse; border-color:rgba(74,222,128,0.07); }
.hero-ring:nth-child(4) { width:960px; height:960px; animation-duration:90s; border-color:rgba(201,162,39,0.05); }
@keyframes spin-ring {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}
.hero-ring::after {
  content:'◆'; position:absolute; top:-5px; left:50%; transform:translateX(-50%);
  font-size:7px; color:var(--gold); opacity:0.6;
}
.hero-content { position:relative; z-index:1; max-width:860px; }
.hero-eyebrow { font-size:0.7rem; letter-spacing:0.35em; text-transform:uppercase; color:var(--green); margin-bottom:22px; opacity:0.9; }
.hero-title {
  font-family:'Noto Serif SC', serif;
  font-size:clamp(2.6rem,7vw,5.2rem); font-weight:900; line-height:1.05; margin-bottom:16px;
  background:linear-gradient(135deg, #f5e090 0%, var(--gold) 40%, #e8d5a0 70%, var(--text-primary) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.hero-subtitle { font-size:clamp(0.95rem,2.5vw,1.3rem); color:var(--text-secondary); margin-bottom:8px; letter-spacing:0.18em; }
.hero-tagline  { font-size:0.82rem; color:var(--text-muted); margin-bottom:44px; letter-spacing:0.1em; }
.hero-divider  { width:140px; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:0 auto 44px; }
.hero-stats    { display:flex; justify-content:center; gap:48px; flex-wrap:wrap; }
.hero-stat     { text-align:center; }
.hero-stat-number { font-size:2rem; font-weight:800; color:var(--gold-light); display:block; font-family:'Noto Serif SC', serif; text-shadow:0 0 20px rgba(240,208,96,0.4); }
.hero-stat-label  { font-size:0.7rem; color:var(--text-muted); letter-spacing:0.1em; margin-top:4px; }
.scroll-hint {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  color:var(--text-muted); font-size:0.7rem;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  animation:float-hint 2.5s ease-in-out infinite;
}
@keyframes float-hint {
  0%,100% { transform:translateX(-50%) translateY(0); }
  50% { transform:translateX(-50%) translateY(-7px); }
}

/* ════ SECTIONS ════ */
.section-header { text-align:center; margin-bottom:52px; }
.section-tag    { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--green); margin-bottom:12px; display:block; }
.section-title  { font-family:'Noto Serif SC', serif; font-size:clamp(1.7rem,4vw,2.6rem); font-weight:800; color:var(--text-primary); margin-bottom:10px; }
.section-title span { color:var(--gold); }
.section-subtitle { color:var(--text-secondary); font-size:0.88rem; }

/* ════ CATEGORIES GRID ════ */
.categories-section { padding:72px 24px 90px; max-width:1360px; margin:0 auto; position:relative; z-index:1; }
.categories-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:20px; }

.category-card {
  background:var(--bg-card); border:1px solid var(--border-gold);
  border-radius:var(--radius-lg); padding:30px 26px;
  text-decoration:none; display:block;
  transition:var(--transition); position:relative; overflow:hidden;
}
.category-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); opacity:0; transition:opacity 0.3s; }
.category-card::after  { content:''; position:absolute; bottom:0; right:0; width:110px; height:110px; background:radial-gradient(circle at 100% 100%,rgba(201,162,39,0.06) 0%,transparent 70%); pointer-events:none; }
.category-card:hover {
  border-color:rgba(201,162,39,0.55); background:var(--bg-card-hover);
  transform:translateY(-5px); box-shadow:0 12px 40px rgba(201,162,39,0.12),var(--glow-gold);
}
.category-card:hover::before { opacity:1; }

.card-icon   { font-size:2.6rem; margin-bottom:20px; display:block; filter:drop-shadow(0 0 8px rgba(201,162,39,0.45)); }
.card-number { font-size:0.62rem; letter-spacing:0.25em; color:var(--gold-dim); margin-bottom:7px; font-weight:600; }
.card-title  { font-family:'Noto Serif SC', serif; font-size:1.4rem; font-weight:700; color:var(--text-primary); margin-bottom:10px; }
.card-desc   { font-size:0.83rem; color:var(--text-secondary); line-height:1.75; margin-bottom:22px; }
.card-count  { display:inline-flex; align-items:center; gap:7px; background:rgba(201,162,39,0.08); border:1px solid var(--border-gold); padding:4px 13px; border-radius:20px; font-size:0.76rem; color:var(--gold); }
.card-arrow  { float:right; color:var(--text-muted); transition:var(--transition); font-size:1rem; margin-top:-24px; }
.category-card:hover .card-arrow { color:var(--gold); transform:translateX(4px); }

/* ════ PAGE LAYOUT ════ */
.page-hero {
  padding:100px 24px 48px; text-align:center; position:relative; overflow:hidden;
  border-bottom:1px solid var(--border-gold);
  background:radial-gradient(ellipse at 50% 0%,rgba(201,162,39,0.07) 0%,transparent 55%);
}
.page-hero-eyebrow { font-size:0.68rem; letter-spacing:0.3em; text-transform:uppercase; color:var(--green); margin-bottom:12px; display:block; }
.page-hero-title   { font-family:'Noto Serif SC', serif; font-size:clamp(2rem,5vw,3rem); font-weight:900; color:var(--gold); margin-bottom:10px; text-shadow:0 0 40px rgba(201,162,39,0.3); }
.page-hero-subtitle { color:var(--text-secondary); font-size:0.88rem; }
.page-body { max-width:1280px; margin:0 auto; padding:40px 24px 80px; position:relative; z-index:1; }

/* ════ BREADCRUMB ════ */
.breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:28px; font-size:0.8rem; }
.breadcrumb a   { color:var(--text-secondary); text-decoration:none; transition:color 0.2s; }
.breadcrumb a:hover { color:var(--gold); }
.breadcrumb .sep { color:var(--text-muted); }
.breadcrumb .cur { color:var(--gold); }

/* ════ PROGRESS BAR ════ */
.progress-section {
  background:var(--bg-card); border:1px solid var(--border-gold);
  border-radius:var(--radius-lg); padding:20px 24px; margin-bottom:26px;
  display:flex; align-items:center; gap:24px; flex-wrap:wrap;
}
.progress-info  { flex:1; min-width:200px; }
.progress-label { color:var(--text-secondary); font-size:0.8rem; margin-bottom:8px; }
.progress-bar   { height:6px; background:rgba(255,255,255,0.05); border-radius:4px; overflow:hidden; }
.progress-fill  { height:100%; background:linear-gradient(90deg,var(--gold-dim),var(--gold-light)); border-radius:4px; transition:width 0.6s ease; box-shadow:0 0 8px rgba(201,162,39,0.45); }
.progress-stats { display:flex; gap:24px; flex-wrap:wrap; flex-shrink:0; }
.progress-stat  { text-align:center; }
.progress-stat-val { font-size:1.4rem; font-weight:700; color:var(--gold); display:block; }
.progress-stat-lbl { font-size:0.68rem; color:var(--text-muted); }

/* ════ SEARCH ════ */
.search-wrap  { position:relative; margin-bottom:24px; }
.search-input {
  width:100%; background:var(--bg-card); border:1px solid var(--border-gold);
  border-radius:var(--radius); padding:12px 46px 12px 18px;
  color:var(--text-primary); font-size:0.88rem; font-family:inherit; outline:none; transition:var(--transition);
}
.search-input::placeholder { color:var(--text-muted); }
.search-input:focus { border-color:var(--gold); box-shadow:var(--glow-gold); }
.search-icon  { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--text-muted); pointer-events:none; }

/* ════ FILTER TABS ════ */
.filter-tabs { display:flex; gap:7px; margin-bottom:26px; flex-wrap:wrap; }
.filter-tab  {
  padding:6px 16px; border-radius:20px; border:1px solid var(--border-gold);
  background:transparent; color:var(--text-secondary); font-size:0.8rem;
  cursor:pointer; transition:var(--transition); font-family:inherit;
}
.filter-tab:hover  { color:var(--gold); border-color:var(--gold); }
.filter-tab.active { background:rgba(201,162,39,0.14); border-color:var(--gold); color:var(--gold); }

/* ════ QUEST LIST ════ */
.quest-list { display:flex; flex-direction:column; gap:10px; }
.quest-item {
  background:var(--bg-card); border:1px solid var(--border-gold);
  border-radius:var(--radius); padding:16px 18px;
  display:flex; align-items:flex-start; gap:14px;
  transition:var(--transition); position:relative; overflow:hidden;
}
.quest-item::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold); opacity:0; transition:opacity 0.3s; border-radius:0 3px 3px 0; }
.quest-item:hover { border-color:rgba(201,162,39,0.5); background:var(--bg-card-hover); transform:translateX(3px); }
.quest-item:hover::before { opacity:1; }
.quest-num  { min-width:36px; height:36px; background:rgba(201,162,39,0.08); border:1px solid var(--border-gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.72rem; color:var(--gold); font-weight:700; flex-shrink:0; }
.quest-body { flex:1; }
.quest-title { font-size:0.95rem; font-weight:600; color:var(--text-primary); margin-bottom:4px; }
.quest-desc  { font-size:0.8rem; color:var(--text-secondary); line-height:1.65; }
.quest-meta  { display:flex; gap:7px; margin-top:9px; flex-wrap:wrap; }
.quest-check { width:28px; height:28px; border:2px solid var(--border-gold); border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--transition); color:transparent; font-size:0.75rem; margin-top:4px; background:none; }
.quest-check:hover { border-color:var(--green); color:var(--green); }
.quest-check.done  { background:rgba(74,222,128,0.15); border-color:var(--green); color:var(--green); }

/* ════ TAGS ════ */
.tag        { padding:3px 9px; border-radius:20px; font-size:0.7rem; border:1px solid; font-weight:500; }
.tag-gold   { color:var(--gold);   border-color:rgba(201,162,39,0.35); background:rgba(201,162,39,0.08); }
.tag-green  { color:var(--green);  border-color:rgba(74,222,128,0.3);  background:rgba(74,222,128,0.07); }
.tag-blue   { color:var(--blue);   border-color:rgba(56,189,248,0.3);  background:rgba(56,189,248,0.07); }
.tag-purple { color:var(--purple); border-color:rgba(167,139,250,0.3); background:rgba(167,139,250,0.07); }
.tag-red    { color:#f87171; border-color:rgba(248,113,113,0.3); background:rgba(248,113,113,0.07); }

/* ════ CARD GRID ════ */
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:16px; }
.info-card  { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--radius-lg); padding:20px; transition:var(--transition); }
.info-card:hover { border-color:rgba(201,162,39,0.5); box-shadow:var(--glow-gold); transform:translateY(-3px); }
.info-card-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid var(--border-gold); }
.info-card-icon  { font-size:1.7rem; }
.info-card-title { font-size:0.92rem; font-weight:600; color:var(--text-primary); }
.info-card-sub   { font-size:0.72rem; color:var(--text-muted); margin-top:2px; }
.info-card-body  { font-size:0.8rem; color:var(--text-secondary); line-height:1.75; }

/* ════ REGION BADGES ════ */
.rbadge         { display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:20px; font-size:0.7rem; font-weight:600; }
.rbadge-zora    { background:rgba(56,189,248,0.12);  color:#38bdf8; border:1px solid rgba(56,189,248,0.3);  }
.rbadge-rito    { background:rgba(165,180,252,0.1);  color:#a5b4fc; border:1px solid rgba(165,180,252,0.3); }
.rbadge-goron   { background:rgba(251,146,60,0.1);   color:#fb923c; border:1px solid rgba(251,146,60,0.3);  }
.rbadge-gerudo  { background:rgba(251,191,36,0.1);   color:#fbbf24; border:1px solid rgba(251,191,36,0.3);  }
.rbadge-sky     { background:rgba(74,222,128,0.1);   color:#4ade80; border:1px solid rgba(74,222,128,0.3);  }
.rbadge-depth   { background:rgba(139,92,246,0.12);  color:#a78bfa; border:1px solid rgba(139,92,246,0.3);  }
.rbadge-central { background:rgba(201,162,39,0.1);   color:#c9a227; border:1px solid rgba(201,162,39,0.3);  }
.rbadge-necluda { background:rgba(52,211,153,0.1);   color:#34d399; border:1px solid rgba(52,211,153,0.3);  }
.rbadge-faron   { background:rgba(74,222,128,0.12);  color:#86efac; border:1px solid rgba(74,222,128,0.3);  }
.rbadge-akkala  { background:rgba(248,113,113,0.1);  color:#f87171; border:1px solid rgba(248,113,113,0.3); }
.rbadge-eldin   { background:rgba(251,146,60,0.12);  color:#fb923c; border:1px solid rgba(251,146,60,0.3);  }
.rbadge-hebra   { background:rgba(160,228,255,0.12); color:#a0e4ff; border:1px solid rgba(160,228,255,0.3); }
.rbadge-forest  { background:rgba(64,224,200,0.12);  color:#40e0c8; border:1px solid rgba(64,224,200,0.3);  }
.rbadge-gerudo  { background:rgba(251,191,36,0.1);   color:#fbbf24; border:1px solid rgba(251,191,36,0.3);  }

/* ════ SHRINE ITEMS ════ */
.shrine-list { display:flex; flex-direction:column; gap:8px; }
.shrine-item {
  background:var(--bg-card); border:1px solid var(--border-gold);
  border-radius:var(--radius); padding:13px 16px;
  display:flex; align-items:center; gap:13px;
  transition:var(--transition); position:relative;
}
.shrine-item::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--green); opacity:0; transition:opacity 0.3s; border-radius:0 3px 3px 0; }
.shrine-item:hover { border-color:rgba(74,222,128,0.4); background:var(--bg-card-hover); transform:translateX(3px); }
.shrine-item:hover::before { opacity:1; }
.shrine-num   { min-width:32px; height:32px; background:rgba(74,222,128,0.08); border:1px solid var(--border-green); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.7rem; color:var(--green); font-weight:700; flex-shrink:0; }
.shrine-name  { font-size:0.88rem; font-weight:600; color:var(--text-primary); }
.shrine-type  { font-size:0.72rem; color:var(--text-muted); margin-top:1px; }
.shrine-right { margin-left:auto; display:flex; align-items:center; gap:9px; flex-shrink:0; }
.shrine-check { width:24px; height:24px; border:2px solid var(--border-green); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--transition); color:transparent; font-size:0.68rem; background:none; flex-shrink:0; }
.shrine-check:hover { border-color:var(--green); color:var(--green); }
.shrine-check.done  { background:rgba(74,222,128,0.15); border-color:var(--green); color:var(--green); }

/* ════ RECIPE CARDS ════ */
.recipe-card { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--radius-lg); padding:20px; transition:var(--transition); display:flex; flex-direction:column; gap:13px; }
.recipe-card:hover { border-color:rgba(201,162,39,0.5); box-shadow:var(--glow-gold); transform:translateY(-3px); }
.recipe-head { display:flex; align-items:flex-start; gap:13px; }
.recipe-icon { font-size:2rem; flex-shrink:0; filter:drop-shadow(0 0 6px rgba(201,162,39,0.4)); }
.recipe-name { font-size:0.95rem; font-weight:700; color:var(--text-primary); margin-bottom:3px; }
.recipe-effect { font-size:0.75rem; color:var(--green); font-weight:500; }
.recipe-ingredients { display:flex; flex-wrap:wrap; gap:5px; }
.ingredient     { padding:3px 9px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); border-radius:6px; font-size:0.73rem; color:var(--text-secondary); }
.ingredient.key { border-color:var(--border-gold); color:var(--gold); background:rgba(201,162,39,0.06); }
.recipe-note { font-size:0.76rem; color:var(--text-muted); line-height:1.6; }

/* ════ WEAPON CARDS ════ */
.weapon-card { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--radius-lg); padding:20px; transition:var(--transition); }
.weapon-card:hover { border-color:rgba(201,162,39,0.5); box-shadow:var(--glow-gold); transform:translateY(-3px); }
.weapon-head  { display:flex; align-items:flex-start; gap:13px; margin-bottom:13px; }
.weapon-icon  { font-size:1.9rem; flex-shrink:0; }
.weapon-title { font-size:0.95rem; font-weight:700; color:var(--text-primary); }
.weapon-type  { font-size:0.72rem; color:var(--text-muted); margin-top:1px; }
.weapon-stats { display:flex; gap:14px; margin-bottom:13px; flex-wrap:wrap; }
.wstat        { display:flex; flex-direction:column; align-items:center; gap:2px; }
.wstat-val    { font-size:1.1rem; font-weight:700; color:var(--gold); }
.wstat-lbl    { font-size:0.62rem; color:var(--text-muted); }
.weapon-desc  { font-size:0.8rem; color:var(--text-secondary); line-height:1.7; }
.weapon-location { margin-top:11px; padding-top:11px; border-top:1px solid var(--border-gold); font-size:0.76rem; color:var(--text-muted); }
.weapon-location strong { color:var(--gold-light); }

/* ════ ACCORDION ════ */
.accordion { display:flex; flex-direction:column; gap:9px; }
.acc-item   { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--radius); overflow:hidden; }
.acc-header { padding:15px 20px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; transition:background 0.2s; user-select:none; }
.acc-header:hover { background:rgba(201,162,39,0.05); }
.acc-header.open  { border-bottom:1px solid var(--border-gold); }
.acc-title  { font-weight:600; color:var(--text-primary); display:flex; align-items:center; gap:11px; font-size:0.92rem; }
.acc-icon   { color:var(--text-muted); transition:transform 0.3s,color 0.3s; font-size:0.72rem; }
.acc-header.open .acc-icon { transform:rotate(180deg); color:var(--gold); }
.acc-body   { max-height:0; overflow:hidden; transition:max-height 0.4s ease; }
.acc-body.open { max-height:4000px; padding:20px; }

/* ════ TABLE ════ */
.table-wrap { overflow-x:auto; border-radius:var(--radius); border:1px solid var(--border-gold); }
table.data-tbl { width:100%; border-collapse:collapse; font-size:0.82rem; }
table.data-tbl thead th { background:rgba(201,162,39,0.07); padding:11px 15px; text-align:left; color:var(--gold); font-weight:600; font-size:0.76rem; letter-spacing:0.05em; white-space:nowrap; }
table.data-tbl tbody td { padding:11px 15px; border-top:1px solid rgba(201,162,39,0.07); color:var(--text-secondary); vertical-align:middle; }
table.data-tbl tbody tr:hover td { background:rgba(201,162,39,0.04); color:var(--text-primary); }

/* ════ MISC ════ */
.two-col   { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.three-col { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.divider   { width:100%; height:1px; background:linear-gradient(90deg,transparent,var(--border-gold),transparent); margin:36px 0; }
.section-label { font-family:'Noto Serif SC',serif; font-size:1.15rem; font-weight:700; color:var(--gold); margin-bottom:18px; padding-bottom:11px; border-bottom:1px solid var(--border-gold); display:flex; align-items:center; gap:9px; }

.highlight-box { background:rgba(201,162,39,0.06); border:1px solid var(--border-gold); border-left:3px solid var(--gold); border-radius:var(--radius); padding:15px 18px; margin:18px 0; font-size:0.83rem; color:var(--text-secondary); line-height:1.75; }
.highlight-box strong { color:var(--gold); }
.tip-box { background:rgba(74,222,128,0.05); border:1px solid var(--border-green); border-left:3px solid var(--green); border-radius:var(--radius); padding:15px 18px; margin:18px 0; font-size:0.83rem; color:var(--text-secondary); line-height:1.75; }
.tip-box strong { color:var(--green); }

/* ════ FOOTER ════ */
.footer { background:var(--bg-secondary); border-top:1px solid var(--border-gold); padding:44px 24px 28px; position:relative; z-index:1; }
.footer-inner   { max-width:1360px; margin:0 auto; text-align:center; }
.footer-logo    { font-size:1rem; color:var(--gold); font-weight:700; margin-bottom:8px; font-family:'Noto Serif SC',serif; }
.footer-tagline { color:var(--text-muted); font-size:0.8rem; margin-bottom:20px; }
.footer-divider { width:80px; height:1px; background:linear-gradient(90deg,transparent,var(--gold-dim),transparent); margin:0 auto 20px; }
.footer-note    { font-size:0.7rem; color:var(--text-muted); line-height:1.9; }

/* ════ EXPANDABLE QUEST DETAIL (main-quest page) ════ */
.quest-item.expandable { padding:0; flex-direction:column; cursor:default; overflow:hidden; }
.quest-item.expandable:hover { transform:none; }
.quest-row {
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 18px; cursor:pointer; width:100%; transition:background 0.2s;
}
.quest-row:hover { background:rgba(201,162,39,0.04); }
.quest-actions { display:flex; align-items:center; gap:10px; margin-top:4px; flex-shrink:0; }
.expand-chevron {
  color:var(--text-muted); font-size:0.62rem;
  transition:transform 0.3s, color 0.3s; user-select:none; line-height:1;
}
.expand-chevron.open { transform:rotate(180deg); color:var(--gold); }

.quest-detail { max-height:0; overflow:hidden; transition:max-height 0.55s ease; }
.quest-detail.open { max-height:6000px; }
.quest-detail-inner {
  display:grid; grid-template-columns:280px 1fr; gap:22px;
  padding:8px 18px 24px 68px;
  border-top:1px solid rgba(201,162,39,0.12);
  background:rgba(0,0,0,0.15);
}
.quest-screenshot {
  width:100%; border-radius:var(--radius); border:1px solid var(--border-gold);
  object-fit:cover; aspect-ratio:16/9;
  box-shadow:0 6px 24px rgba(0,0,0,0.55);
  display:block;
}
.quest-screenshot-caption {
  font-size:0.66rem; color:var(--text-muted); text-align:center;
  margin-top:6px; line-height:1.4;
}
.wt-section { margin-bottom:14px; }
.wt-title {
  font-size:0.73rem; font-weight:700; color:var(--gold);
  margin-bottom:8px; display:flex; align-items:center; gap:6px;
  text-transform:uppercase; letter-spacing:0.07em;
}
.wt-steps { padding-left:18px; display:flex; flex-direction:column; gap:6px; }
.wt-steps li { font-size:0.81rem; color:var(--text-secondary); line-height:1.75; }
.wt-steps li strong { color:var(--text-primary); }
.wt-boss {
  background:rgba(248,113,113,0.06); border:1px solid rgba(248,113,113,0.25);
  border-left:3px solid #f87171; border-radius:var(--radius);
  padding:12px 16px; margin-top:12px; font-size:0.8rem; color:var(--text-secondary);
}
.wt-boss strong { color:#f87171; }
@media (max-width:860px) {
  .quest-detail-inner { grid-template-columns:1fr; padding-left:18px; }
}

/* ════ SCROLLBAR ════ */
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:var(--bg-primary); }
::-webkit-scrollbar-thumb { background:var(--gold-dim); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:var(--gold); }

/* ════ RESPONSIVE ════ */
@media (max-width:900px) {
  .two-col, .three-col { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .navbar-nav { display:none; position:absolute; top:60px; left:0; right:0; background:rgba(7,7,15,0.98); border-bottom:1px solid var(--border-gold); flex-direction:column; padding:14px; }
  .navbar-nav.open { display:flex; }
  .hamburger { display:flex; }
  .categories-grid { grid-template-columns:1fr; }
  .card-grid { grid-template-columns:1fr; }
  .hero-stats { gap:24px; }
  .hero-ring  { display:none; }
  .progress-section { flex-direction:column; }
  /* 移动端下拉菜单：静态展开，不用 fixed */
  .nav-dropdown-menu {
    position:static !important;
    border:none; border-left:2px solid var(--border-gold);
    border-radius:0; margin-left:12px; padding:4px 0;
    background:rgba(201,162,39,0.04);
    box-shadow:none;
  }
  .nav-dropdown-menu a { padding:7px 14px; font-size:0.8rem; }
}

/* ════════════════════════════════
   CINEMATIC SHOWCASE SECTION
════════════════════════════════ */
.cinematic-section {
  position:relative; z-index:1;
  padding:72px 24px 80px;
  overflow:hidden;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(10,10,20,0.7) 15%,
    rgba(7,7,15,0.95) 50%,
    rgba(10,10,20,0.7) 85%,
    transparent 100%
  );
}

.cinematic-bg {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%, rgba(201,162,39,0.08) 0%, transparent 65%),
    radial-gradient(ellipse 40% 40% at 20% 80%, rgba(74,222,128,0.04) 0%, transparent 55%),
    radial-gradient(ellipse 40% 40% at 80% 20%, rgba(56,189,248,0.04) 0%, transparent 55%);
}

/* ── 顶部装饰分割线 ── */
.cinematic-divider-top {
  display:flex; align-items:center; gap:12px;
  max-width:680px; margin:0 auto 36px;
}
.cin-line { flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--gold-dim), transparent); }
.cin-rune { font-size:0.8rem; color:var(--gold-dim); opacity:0.7; }
.cin-center-mark { display:flex; align-items:center; justify-content:center; }
.cin-eye {
  font-size:0.7rem; color:var(--gold);
  animation:cin-pulse 3s ease-in-out infinite;
}
@keyframes cin-pulse {
  0%,100% { opacity:0.5; transform:scale(1); }
  50%      { opacity:1;   transform:scale(1.3); }
}

/* ── 标题区 ── */
.cinematic-label { text-align:center; margin-bottom:32px; }
.cin-tag {
  font-size:0.65rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--green); display:block; margin-bottom:10px; opacity:0.85;
}
.cin-title {
  font-family:'Noto Serif SC', serif;
  font-size:clamp(1.8rem,4vw,2.8rem);
  font-weight:900; color:var(--text-primary); margin-bottom:8px;
}
.cin-title em {
  font-style:normal;
  background:linear-gradient(135deg, #f5e090, var(--gold), #e8c060);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.cin-sub { font-size:0.8rem; color:var(--text-muted); letter-spacing:0.08em; }

/* ── 电影画框外壳 ── */
.cinematic-frame-wrap {
  position:relative;
  max-width:860px; margin:0 auto;
}

/* 四角装饰 */
.cin-corner { position:absolute; z-index:5; pointer-events:none; }
.cin-corner-tl { top:-2px; left:-2px; }
.cin-corner-tr { top:-2px; right:-2px; }
.cin-corner-bl { bottom:46px; left:-2px; }   /* 留出 info-bar 高度 */
.cin-corner-br { bottom:46px; right:-2px; }

/* 扫光边框 */
.cin-border-glow {
  position:absolute; inset:0; bottom:40px;
  border:1px solid rgba(201,162,39,0.18);
  border-radius:4px; pointer-events:none; z-index:4;
  background:transparent;
  box-shadow:
    0 0 0 1px rgba(201,162,39,0.06),
    inset 0 0 40px rgba(201,162,39,0.03);
  overflow:hidden;
}
.cin-border-glow::before {
  content:'';
  position:absolute; top:0; left:-100%; width:60%; height:100%;
  background:linear-gradient(90deg, transparent, rgba(201,162,39,0.12), transparent);
  animation:cin-scan 4s ease-in-out infinite 1s;
}
@keyframes cin-scan {
  0%   { left:-60%; }
  100% { left:160%; }
}

/* ── 视频容器 ── */
.cinematic-video-box {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  border-radius:4px 4px 0 0;
  overflow:hidden;
}

/* 封面覆盖层 */
.cin-cover {
  position:absolute; inset:0; z-index:3;
  cursor:pointer; display:flex;
  flex-direction:column; align-items:center; justify-content:center;
  transition:opacity 0.5s ease;
}
.cin-cover.hidden { opacity:0; pointer-events:none; }

.cin-cover-overlay {
  position:absolute; inset:0;
  background:linear-gradient(135deg,
    rgba(4,4,12,0.88) 0%,
    rgba(10,8,25,0.78) 40%,
    rgba(6,6,18,0.88) 100%
  );
}

/* 封面文字 */
.cin-cover-text {
  position:relative; z-index:2;
  text-align:center; pointer-events:none;
  transform:translateY(8px); transition:transform 0.3s;
}
.cin-cover:hover .cin-cover-text { transform:translateY(0); }
.cin-cover-eyebrow {
  font-size:0.6rem; letter-spacing:0.28em;
  color:var(--green); opacity:0.8; margin-bottom:12px;
  text-transform:uppercase;
}
.cin-cover-main {
  font-family:'Noto Serif SC', serif;
  font-size:clamp(1.1rem, 3vw, 1.6rem);
  font-weight:700; color:var(--text-primary);
  margin-bottom:8px;
  text-shadow:0 0 30px rgba(201,162,39,0.4);
}
.cin-cover-time {
  font-size:0.72rem; color:var(--text-muted); letter-spacing:0.12em;
}

/* 播放按钮光圈 */
.cin-play-ring {
  position:absolute; z-index:1;
  width:80px; height:80px; border-radius:50%;
  border:2px solid rgba(201,162,39,0.35);
  animation:cin-ring-expand 2.4s ease-out infinite;
  pointer-events:none;
}
.cin-play-ring::before {
  content:''; position:absolute; inset:-12px; border-radius:50%;
  border:1px solid rgba(201,162,39,0.15);
  animation:cin-ring-expand 2.4s ease-out infinite 0.6s;
}
@keyframes cin-ring-expand {
  0%   { transform:scale(0.9); opacity:0.8; }
  100% { transform:scale(1.5); opacity:0; }
}

.cin-play-icon {
  position:absolute; z-index:2;
  font-size:1.5rem; color:var(--gold);
  text-shadow:0 0 20px rgba(201,162,39,0.6);
  transition:transform 0.2s, text-shadow 0.2s;
  pointer-events:none;
}
.cin-cover:hover .cin-play-icon {
  transform:scale(1.15);
  text-shadow:0 0 32px rgba(201,162,39,0.9);
}

/* YouTube iframe */
#cinPlayerSlot { position:absolute; inset:0; z-index:2; }
#cinPlayerSlot iframe { width:100%; height:100%; border:none; display:block; }

/* ── 底部信息条 ── */
.cin-info-bar {
  display:flex; justify-content:space-between; align-items:center;
  padding:10px 16px;
  background:rgba(7,7,15,0.9);
  border:1px solid var(--border-gold); border-top:none;
  border-radius:0 0 4px 4px;
}
.cin-info-left {
  font-size:0.72rem; color:var(--text-muted);
  display:flex; align-items:center; gap:8px;
}
.cin-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--green);
  box-shadow:0 0 6px var(--green);
  animation:cin-blink 1.8s ease-in-out infinite;
}
@keyframes cin-blink {
  0%,100% { opacity:1; }
  50%      { opacity:0.3; }
}
.cin-info-right {}
.cin-time-badge {
  font-size:0.7rem; color:var(--gold);
  background:rgba(201,162,39,0.1);
  border:1px solid var(--border-gold);
  padding:3px 10px; border-radius:20px;
  font-family:monospace; letter-spacing:0.05em;
}

/* ── 底部描述文字 ── */
.cinematic-desc {
  max-width:600px; margin:28px auto 0;
  text-align:center; font-size:0.84rem;
  color:var(--text-secondary); line-height:1.9;
  font-style:italic; opacity:0.85;
}
.cinematic-desc strong { color:var(--gold); font-style:normal; }

/* ── 响应式 ── */
@media (max-width:600px) {
  .cin-corner { display:none; }
  .cinematic-section { padding:48px 16px 56px; }
}

/* ════════════════════════════════
   SKY DIVE SCENE · 纯 CSS 动画
════════════════════════════════ */
.sky-scene {
  position:relative;
  width:100%; aspect-ratio:16/9;
  overflow:hidden;
  border-radius:4px 4px 0 0;
  background:#000;
}

/* ── 天空背景渐变（俯冲感：从高空蓝→地面暗绿） ── */
.sky-bg {
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    #030614 0%,
    #051228 8%,
    #082048 20%,
    #0d3060 35%,
    #164878 50%,
    #1a5a68 68%,
    #163e30 85%,
    #0c2018 100%
  );
  animation:sky-shift 5s ease-in-out infinite alternate;
}
@keyframes sky-shift {
  0%   { filter:brightness(0.85) hue-rotate(-5deg); }
  100% { filter:brightness(1.05) hue-rotate(5deg); }
}

/* ── 佐纳依光轮（远景装饰） ── */
.zonai-ring {
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(201,162,39,0.15);
  animation:zonai-spin linear infinite;
}
.zonai-ring-1 {
  width:22%; height:calc(22% * 1.78); /* 保持圆形比例 */
  top:5%; left:10%;
  border-color:rgba(201,162,39,0.18);
  animation-duration:12s;
}
.zonai-ring-2 {
  width:15%; height:calc(15% * 1.78);
  top:8%; right:14%;
  border-color:rgba(74,222,128,0.12);
  animation-duration:18s; animation-direction:reverse;
}
.zonai-ring-3 {
  width:10%; height:calc(10% * 1.78);
  top:12%; left:42%;
  border-color:rgba(201,162,39,0.1);
  animation-duration:22s;
}
@keyframes zonai-spin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}

/* ── 天空岛（顶部中央，缓慢远去） ── */
.sky-island {
  position:absolute;
  top:0; left:50%;
  transform:translateX(-50%);
  width:38%; animation:island-rise 5s ease-in-out infinite;
}
@keyframes island-rise {
  0%,100% { top:2%;  opacity:0.9; }
  50%     { top:0%;  opacity:1;   }
}
.sky-island-body {
  margin:0 auto;
  width:70%; height:0; padding-bottom:18%;
  background:linear-gradient(180deg,
    rgba(30,22,60,0.95) 0%,
    rgba(18,14,40,1) 60%,
    rgba(12,8,28,1) 100%
  );
  clip-path:polygon(10% 0%, 90% 0%, 100% 40%, 95% 100%, 5% 100%, 0% 40%);
  border-top:1px solid rgba(201,162,39,0.3);
  box-shadow:0 8px 40px rgba(201,162,39,0.15), 0 0 60px rgba(74,222,128,0.08);
}
.sky-island-glow {
  position:absolute; top:0; left:15%; right:15%; height:4px;
  background:linear-gradient(90deg, transparent, rgba(201,162,39,0.5), transparent);
  filter:blur(2px);
}
.sky-island-rocks {
  display:flex; justify-content:center; gap:8%; margin-top:-4px;
}
.sky-island-rocks span {
  display:block;
  background:rgba(20,15,40,0.9);
  clip-path:polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}
.sky-island-rocks span:nth-child(1) { width:5%; padding-bottom:3%; }
.sky-island-rocks span:nth-child(2) { width:3%; padding-bottom:5%; }
.sky-island-rocks span:nth-child(3) { width:4%; padding-bottom:2%; }

/* ── 云层 ── */
.cloud-layer { position:absolute; width:100%; }
.cloud-layer-1 { top:18%; animation:clouds-drift-1 5s ease-in-out infinite; }
.cloud-layer-2 { top:42%; animation:clouds-drift-2 5s ease-in-out infinite 0.5s; }
.cloud-layer-3 { top:62%; animation:clouds-drift-3 5s ease-in-out infinite 1s; }

@keyframes clouds-drift-1 {
  0%,100% { transform:translateY(0)   scale(1);    opacity:0.55; }
  50%     { transform:translateY(12%) scale(1.04); opacity:0.7;  }
}
@keyframes clouds-drift-2 {
  0%,100% { transform:translateY(0)   scale(1);    opacity:0.65; }
  50%     { transform:translateY(16%) scale(1.06); opacity:0.8;  }
}
@keyframes clouds-drift-3 {
  0%,100% { transform:translateY(0)   scale(1);    opacity:0.5; }
  50%     { transform:translateY(20%) scale(1.08); opacity:0.65; }
}

.cloud {
  position:absolute;
  border-radius:50%;
  background:radial-gradient(ellipse at 50% 40%,
    rgba(200,220,255,0.25) 0%,
    rgba(160,190,240,0.12) 40%,
    transparent 70%
  );
}
/* 各云朵位置与尺寸 */
.c1  { width:30%; height:80%; left:-5%;   top:-20%; }
.c2  { width:22%; height:60%; left:18%;  top:-10%; }
.c3  { width:35%; height:90%; left:38%;  top:-30%; }
.c4  { width:20%; height:55%; left:70%;  top:-15%; }
.c5  { width:28%; height:75%; left:85%;  top:-25%; }
.c6  { width:40%; height:100%; left:-8%;  top:-40%; opacity:0.8; }
.c7  { width:30%; height:80%;  left:30%;  top:-20%; opacity:0.9; }
.c8  { width:38%; height:95%;  left:68%;  top:-35%; opacity:0.7; }
.c9  { width:55%; height:140%; left:-10%; top:-60%; opacity:0.9; }
.c10 { width:60%; height:150%; left:55%;  top:-70%; opacity:0.85; }

/* ── 俯冲人物 ── */
.diver-wrap {
  position:absolute; left:50%; top:0%;
  transform:translateX(-50%);
  animation:diver-fall 5s cubic-bezier(0.2,0.0,0.4,1.0) infinite;
  z-index:10;
}
@keyframes diver-fall {
  0%   { top:4%;  transform:translateX(-50%) scale(0.35) rotate(-8deg);  opacity:0; }
  8%   { opacity:1; }
  55%  { top:62%; transform:translateX(-52%) scale(1.1) rotate(2deg); opacity:1; }
  80%  { top:88%; transform:translateX(-50%) scale(1.3) rotate(0deg); opacity:0.6; }
  100% { top:105%;transform:translateX(-50%) scale(1.4) rotate(0deg); opacity:0; }
}

.diver {
  position:relative; width:20px; height:32px;
}
.diver-head {
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:8px; height:8px; border-radius:50%;
  background:rgba(240,210,150,0.9);
  box-shadow:0 0 6px rgba(201,162,39,0.6);
}
.diver-body {
  position:absolute; top:7px; left:50%; transform:translateX(-50%);
  width:5px; height:10px; border-radius:2px;
  background:rgba(180,140,60,0.85);
}
.diver-arm {
  position:absolute; top:9px; width:9px; height:3px; border-radius:2px;
  background:rgba(180,140,60,0.7);
}
.diver-arm-l { left:-2px; transform:rotate(30deg); }
.diver-arm-r { right:-2px; transform:rotate(-30deg); }
.diver-cape {
  position:absolute; top:5px; left:50%; transform:translateX(-50%);
  width:18px; height:14px;
  background:linear-gradient(180deg, rgba(120,80,30,0.8) 0%, transparent 100%);
  clip-path:polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%);
  animation:cape-flap 0.35s ease-in-out infinite alternate;
  transform-origin:top center;
}
@keyframes cape-flap {
  from { skewX(-3deg) scaleX(1);   }
  to   { skewX( 3deg) scaleX(0.92); }
}

/* 俯冲尾迹 */
.diver-trail { position:absolute; top:12px; left:50%; transform:translateX(-50%); }
.diver-trail span {
  position:absolute; border-radius:50%;
  background:rgba(201,162,39,0.4);
  animation:trail-fade 0.6s ease-out infinite;
}
.t1 { width:4px; height:4px; top:0;   left:-2px; animation-delay:0s;    }
.t2 { width:3px; height:3px; top:-6px;left:-1px; animation-delay:0.1s;  }
.t3 { width:3px; height:3px; top:-12px;left:0;   animation-delay:0.2s;  }
.t4 { width:2px; height:2px; top:-17px;left:-1px;animation-delay:0.3s;  }
.t5 { width:2px; height:2px; top:-22px;left:0;   animation-delay:0.4s;  }
@keyframes trail-fade {
  0%   { opacity:0.8; transform:scale(1); }
  100% { opacity:0;   transform:scale(0.3) translateY(-4px); }
}

/* ── 泪珠光粒子 ── */
.tear-particles { position:absolute; inset:0; pointer-events:none; }
.tear {
  position:absolute;
  width:3px; height:8px;
  border-radius:50%;
  background:linear-gradient(180deg, rgba(180,220,255,0.8), transparent);
  animation:tear-fall linear infinite;
}
.tp1 { left:15%; animation-duration:2.2s; animation-delay:0s;    width:2px; height:6px; }
.tp2 { left:28%; animation-duration:1.8s; animation-delay:0.4s;  }
.tp3 { left:55%; animation-duration:2.5s; animation-delay:0.8s;  width:2px; }
.tp4 { left:70%; animation-duration:1.9s; animation-delay:1.2s;  height:6px; }
.tp5 { left:82%; animation-duration:2.1s; animation-delay:0.2s;  width:2px; height:5px; }
.tp6 { left:40%; animation-duration:2.4s; animation-delay:1.5s;  }
@keyframes tear-fall {
  0%   { top:-5%; opacity:0; }
  10%  { opacity:0.7; }
  90%  { opacity:0.5; }
  100% { top:105%; opacity:0; }
}

/* ── 地面轮廓 ── */
.ground-layer {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  animation:ground-rise 5s ease-in-out infinite;
}
@keyframes ground-rise {
  0%,100% { transform:translateY(6%) scale(1.01); opacity:0.6; }
  50%     { transform:translateY(0)  scale(1);    opacity:0.9; }
}
.ground-hills {
  position:absolute; bottom:0; left:0; right:0; height:100%;
  background:linear-gradient(180deg,
    transparent 0%,
    rgba(10,28,18,0.6) 30%,
    rgba(8,22,14,0.85) 70%,
    rgba(5,15,10,1) 100%
  );
  clip-path:polygon(
    0% 100%, 0% 55%, 8% 40%, 15% 30%, 22% 38%,
    30% 22%, 38% 32%, 45% 18%, 52% 28%, 58% 15%,
    65% 26%, 72% 18%, 80% 30%, 87% 20%, 94% 35%,
    100% 28%, 100% 100%
  );
}
.ground-fog {
  position:absolute; top:0; left:0; right:0; height:40%;
  background:linear-gradient(180deg,
    rgba(74,222,128,0.04) 0%,
    rgba(74,222,128,0.08) 50%,
    transparent 100%
  );
  filter:blur(6px);
}
.ground-castle {
  position:absolute; bottom:12%; left:44%;
  width:8%; height:0; padding-bottom:12%;
  background:rgba(8,18,12,0.8);
  clip-path:polygon(
    20% 100%, 20% 40%, 10% 40%, 10% 30%,
    20% 30%, 20% 10%, 30% 0%, 40% 10%,
    40% 30%, 50% 30%, 50% 40%, 40% 40%,
    40% 100%
  );
  box-shadow:0 0 12px rgba(74,222,128,0.15);
}

/* ── 速度线 ── */
.speed-lines { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.sl {
  position:absolute; left:50%;
  width:1px;
  background:linear-gradient(180deg, transparent, rgba(255,255,255,0.08), transparent);
  animation:speed-line linear infinite;
  transform-origin:top center;
}
.sl1  { height:55%; top:-55%; animation-duration:1.6s; animation-delay:0s;    transform:rotate(-8deg);  }
.sl2  { height:45%; top:-45%; animation-duration:1.2s; animation-delay:0.2s;  transform:rotate(12deg);  }
.sl3  { height:60%; top:-60%; animation-duration:1.9s; animation-delay:0.5s;  transform:rotate(-20deg); }
.sl4  { height:40%; top:-40%; animation-duration:1.4s; animation-delay:0.8s;  transform:rotate(5deg);   }
.sl5  { height:50%; top:-50%; animation-duration:1.7s; animation-delay:1.1s;  transform:rotate(-14deg); }
.sl6  { height:48%; top:-48%; animation-duration:1.3s; animation-delay:0.3s;  transform:rotate(18deg);  }
@keyframes speed-line {
  0%   { top:-65%; opacity:0; }
  15%  { opacity:0.5; }
  85%  { opacity:0.3; }
  100% { top:110%; opacity:0; }
}

/* ── 电影黑边 ── */
.cinema-bar {
  position:absolute; left:0; right:0; z-index:12;
  background:#000;
}
.cinema-bar-top { top:0; height:8%; }
.cinema-bar-bot { bottom:0; height:8%; }

/* ── 字幕 ── */
.scene-caption {
  position:absolute; bottom:10%; left:0; right:0; z-index:13;
  display:flex; flex-direction:column; align-items:center; gap:4px;
}
.sc-line {
  display:block;
  font-family:'Noto Serif SC', serif;
  letter-spacing:0.22em; text-transform:uppercase;
  color:rgba(240,220,160,0.9);
  text-shadow:0 0 12px rgba(201,162,39,0.5), 0 2px 4px rgba(0,0,0,0.8);
}
.sc-line-1 {
  font-size:clamp(0.45rem,1.2vw,0.75rem);
  animation:caption-fade 5s ease-in-out infinite;
}
.sc-line-2 {
  font-size:clamp(0.6rem,1.8vw,1.05rem);
  font-weight:700;
  animation:caption-fade 5s ease-in-out infinite 0.15s;
}
@keyframes caption-fade {
  0%,100% { opacity:0.5; }
  40%,60% { opacity:0.95; }
}

/* ── 修正画框 corner 底部位置 ── */
.cinematic-frame-wrap .cin-corner-bl,
.cinematic-frame-wrap .cin-corner-br { bottom:44px; }

/* ════════════════════════════════
   PROMO STAGE · 20秒宣传动画
════════════════════════════════ */
.promo-stage {
  position:relative; width:100%; aspect-ratio:16/9;
  overflow:hidden; background:#000; border-radius:4px 4px 0 0;
  font-family:'Noto Sans SC','PingFang SC',sans-serif;
}

/* ── 通用场景容器 ── */
.promo-scene {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  justify-content:center; align-items:center;
  opacity:0; pointer-events:none;
  transition:opacity 0.7s cubic-bezier(0.4,0,0.2,1);
}
.promo-scene.ps-active { opacity:1; pointer-events:auto; }

/* 遮幅 + 暗角 */
.ps-vignette {
  position:absolute; inset:0; pointer-events:none; z-index:20;
  background:
    linear-gradient(180deg,rgba(0,0,0,0.55) 0%,transparent 14%,transparent 86%,rgba(0,0,0,0.6) 100%),
    radial-gradient(ellipse at 50% 50%, transparent 55%, rgba(0,0,0,0.55) 100%);
}

/* ══ SCENE 0: 开场标题 ══ */
.ps-bg-title {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 70% at 50% 50%,
    #120a2e 0%, #0a0518 40%, #030208 100%
  );
  animation:bg-title-pulse 3s ease-in-out infinite alternate;
}
@keyframes bg-title-pulse {
  from { filter:brightness(0.85); }
  to   { filter:brightness(1.1); }
}

/* 星空粒子 */
.ps-stars {
  position:absolute; inset:0; overflow:hidden;
  background-image:
    radial-gradient(1px 1px at 10% 15%, rgba(255,255,255,0.9) 0%, transparent 100%),
    radial-gradient(1px 1px at 25% 8%,  rgba(255,255,255,0.7) 0%, transparent 100%),
    radial-gradient(1px 1px at 40% 20%, rgba(255,255,255,0.8) 0%, transparent 100%),
    radial-gradient(1px 1px at 60% 5%,  rgba(255,255,255,0.6) 0%, transparent 100%),
    radial-gradient(1px 1px at 75% 18%, rgba(255,255,255,0.9) 0%, transparent 100%),
    radial-gradient(1px 1px at 88% 12%, rgba(255,255,255,0.7) 0%, transparent 100%),
    radial-gradient(1px 1px at 15% 40%, rgba(255,255,255,0.5) 0%, transparent 100%),
    radial-gradient(1px 1px at 55% 35%, rgba(255,255,255,0.8) 0%, transparent 100%),
    radial-gradient(1px 1px at 82% 30%, rgba(255,255,255,0.6) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 35% 55%, rgba(240,200,100,0.8) 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 68% 48%, rgba(180,220,255,0.7) 0%, transparent 100%),
    radial-gradient(1px 1px at 92% 60%, rgba(255,255,255,0.5) 0%, transparent 100%);
  animation:stars-twinkle 4s ease-in-out infinite alternate;
}
@keyframes stars-twinkle {
  0%   { opacity:0.6; }
  100% { opacity:1; }
}

/* 佐纳依光轮 */
.ps-zonai-deco { position:absolute; inset:0; pointer-events:none; }
.pz-ring {
  position:absolute; top:50%; left:50%;
  border-radius:50%;
  border:1px solid rgba(201,162,39,0.2);
  transform:translate(-50%,-50%);
  animation:pz-spin linear infinite;
}
.pz-r1 { width:35%; padding-bottom:35%; border-color:rgba(201,162,39,0.25); animation-duration:15s; }
.pz-r2 { width:55%; padding-bottom:55%; border-color:rgba(74,222,128,0.12); animation-duration:24s; animation-direction:reverse; }
.pz-r3 { width:75%; padding-bottom:75%; border-color:rgba(201,162,39,0.1); animation-duration:36s; }
@keyframes pz-spin {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}

/* 标题文字 */
.ps-content { position:relative; z-index:10; text-align:center; }
.ps-eyebrow {
  font-size:clamp(0.5rem,1.2vw,0.75rem); letter-spacing:0.35em;
  color:var(--green); opacity:0.85; margin-bottom:12px; text-transform:uppercase;
  animation:ps-fade-up 0.8s ease-out both;
}
.ps-main-title {
  font-family:'Noto Serif SC',serif;
  font-size:clamp(2.5rem,8vw,5rem); font-weight:900;
  line-height:1; margin-bottom:10px;
  background:linear-gradient(135deg,#f5e090 0%,var(--gold) 50%,#c8901a 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:none; filter:drop-shadow(0 0 16px rgba(201,162,39,0.5));
}
.ps-main-title span {
  display:inline-block;
  animation:title-char-in 0.6s cubic-bezier(0.22,1,0.36,1) both;
}
.ps-t1 { animation-delay:0.05s; }
.ps-t2 { animation-delay:0.15s; }
.ps-t3 { animation-delay:0.25s; }
.ps-t4 { animation-delay:0.35s; }
@keyframes title-char-in {
  from { opacity:0; transform:translateY(24px) scale(0.8); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
.ps-sub-title {
  font-size:clamp(0.55rem,1.4vw,0.9rem); letter-spacing:0.28em;
  color:rgba(240,210,140,0.75); animation:ps-fade-up 0.8s 0.5s ease-out both;
}
.ps-triforce {
  font-size:clamp(1rem,3vw,1.8rem); color:var(--gold); margin-top:16px;
  animation:triforce-glow 2s ease-in-out infinite alternate, ps-fade-up 0.8s 0.7s ease-out both;
}
@keyframes triforce-glow {
  from { text-shadow:0 0 8px rgba(201,162,39,0.4); }
  to   { text-shadow:0 0 24px rgba(201,162,39,0.9), 0 0 48px rgba(201,162,39,0.3); }
}
@keyframes ps-fade-up {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ══ SCENE 1: 海拉鲁草原 ══ */
.ps-bg-hyrule {
  position:absolute; inset:0;
  background:linear-gradient(
    180deg,
    #0a1a2e 0%, #0f2a4a 12%, #1a4060 28%,
    #2a6070 45%, #3a7055 62%, #2e5e3a 78%, #1c3e22 100%
  );
}
.ps-sky-grad {
  position:absolute; top:0; left:0; right:0; height:52%;
  background:linear-gradient(180deg,
    rgba(255,180,60,0.08) 0%,
    rgba(255,120,30,0.06) 30%,
    transparent 100%
  );
  animation:sky-glow 4s ease-in-out infinite alternate;
}
@keyframes sky-glow {
  from { opacity:0.6; }
  to   { opacity:1; }
}

/* 远山 */
.ps-mountains { position:absolute; bottom:28%; left:0; right:0; }
.ps-mtn { position:absolute; bottom:0; left:0; right:0; }
.ps-mtn-far {
  height:0; padding-bottom:18%;
  background:linear-gradient(180deg,rgba(20,50,80,0.7) 0%,rgba(10,30,50,0.9) 100%);
  clip-path:polygon(
    0% 100%,0% 65%,5% 45%,10% 38%,15% 50%,20% 30%,27% 18%,
    34% 32%,40% 22%,47% 38%,53% 15%,60% 28%,67% 18%,72% 35%,
    78% 24%,84% 40%,90% 28%,95% 45%,100% 35%,100% 100%
  );
}
.ps-mtn-mid {
  height:0; padding-bottom:22%;
  background:linear-gradient(180deg,rgba(15,45,60,0.8) 0%,rgba(8,25,35,0.95) 100%);
  clip-path:polygon(
    0% 100%,0% 70%,6% 55%,12% 42%,18% 55%,24% 38%,30% 25%,
    38% 40%,44% 28%,50% 20%,57% 35%,63% 22%,70% 38%,76% 26%,
    83% 45%,89% 32%,94% 50%,100% 40%,100% 100%
  );
}
.ps-mtn-near {
  height:0; padding-bottom:18%;
  background:linear-gradient(180deg,rgba(25,65,45,0.9) 0%,rgba(12,38,22,1) 100%);
  clip-path:polygon(
    0% 100%,0% 60%,8% 45%,16% 58%,22% 42%,30% 30%,
    40% 48%,50% 35%,60% 50%,70% 38%,78% 52%,86% 40%,94% 55%,100% 45%,100% 100%
  );
  animation:mountain-breathe 6s ease-in-out infinite alternate;
}
@keyframes mountain-breathe {
  from { transform:scaleY(1); }
  to   { transform:scaleY(1.03); }
}

/* 草原层 */
.ps-grassland { position:absolute; bottom:0; left:0; right:0; height:32%; }
.ps-grass-layer { position:absolute; bottom:0; left:0; right:0; }
.ps-grass-1 {
  height:100%;
  background:linear-gradient(180deg,rgba(40,100,50,0.8) 0%,rgba(20,55,28,1) 100%);
  clip-path:polygon(0% 30%,5% 20%,10% 30%,15% 18%,20% 28%,25% 15%,30% 25%,35% 12%,40% 22%,45% 10%,50% 20%,55% 8%,60% 18%,65% 12%,70% 22%,75% 15%,80% 25%,85% 18%,90% 28%,95% 20%,100% 30%,100% 100%,0% 100%);
  animation:grass-wave 3s ease-in-out infinite;
}
.ps-grass-2 {
  height:75%;
  background:linear-gradient(180deg,rgba(50,120,60,0.7) 0%,rgba(30,70,35,0.9) 100%);
  clip-path:polygon(0% 40%,8% 25%,15% 40%,22% 20%,30% 35%,38% 15%,46% 30%,54% 18%,62% 35%,70% 20%,78% 38%,86% 22%,94% 38%,100% 28%,100% 100%,0% 100%);
  animation:grass-wave 3.5s ease-in-out infinite 0.3s;
}
.ps-grass-3 {
  height:45%;
  background:linear-gradient(180deg,rgba(60,140,70,0.6) 0%,rgba(40,90,45,0.85) 100%);
  clip-path:polygon(0% 50%,10% 30%,20% 50%,30% 28%,40% 48%,50% 25%,60% 45%,70% 30%,80% 48%,90% 32%,100% 50%,100% 100%,0% 100%);
  animation:grass-wave 2.8s ease-in-out infinite 0.6s;
}
@keyframes grass-wave {
  0%,100% { transform:skewX(0deg) scaleX(1); }
  33%     { transform:skewX(0.5deg) scaleX(1.005); }
  66%     { transform:skewX(-0.5deg) scaleX(0.998); }
}

/* 草叶摇曳 */
.ps-blades { position:absolute; bottom:60%; left:0; right:0; height:22%; pointer-events:none; }
.pb {
  position:absolute; bottom:0;
  width:2px; height:18px;
  background:linear-gradient(180deg,rgba(80,180,90,0.9) 0%,rgba(40,100,50,0.6) 100%);
  border-radius:1px 1px 0 0;
  transform-origin:bottom center;
  animation:blade-sway 2s ease-in-out infinite alternate;
}
.pb1  { left:5%;  height:20px; animation-duration:2.1s; }
.pb2  { left:12%; height:16px; animation-duration:1.8s; animation-delay:0.2s; }
.pb3  { left:22%; height:22px; animation-duration:2.3s; animation-delay:0.4s; }
.pb4  { left:38%; height:18px; animation-duration:1.9s; animation-delay:0.1s; }
.pb5  { left:50%; height:20px; animation-duration:2.2s; animation-delay:0.5s; }
.pb6  { left:64%; height:17px; animation-duration:2.0s; animation-delay:0.3s; }
.pb7  { left:78%; height:21px; animation-duration:1.7s; animation-delay:0.6s; }
.pb8  { left:90%; height:19px; animation-duration:2.4s; animation-delay:0.2s; }
@keyframes blade-sway {
  from { transform:rotate(-8deg); }
  to   { transform:rotate(8deg); }
}

/* 漂浮小岛 */
.ps-float-islands { position:absolute; top:20%; left:0; right:0; pointer-events:none; }
.ps-fi { position:absolute; border-radius:50% 50% 40% 40%; }
.ps-fi1 {
  width:8%; height:3%; left:15%; top:0;
  background:linear-gradient(180deg,rgba(35,60,30,0.9) 0%,rgba(20,40,22,1) 100%);
  box-shadow:0 4px 12px rgba(0,0,0,0.5), 0 0 20px rgba(74,222,128,0.1);
  animation:float-isle 4s ease-in-out infinite;
}
.ps-fi2 {
  width:6%; height:2.5%; left:70%; top:5%;
  background:linear-gradient(180deg,rgba(30,55,28,0.9) 0%,rgba(15,35,18,1) 100%);
  box-shadow:0 4px 10px rgba(0,0,0,0.5);
  animation:float-isle 5s ease-in-out infinite 1s;
}
.ps-fi3 {
  width:4.5%; height:2%; left:42%; top:-2%;
  background:rgba(25,48,24,0.85);
  animation:float-isle 3.5s ease-in-out infinite 0.5s;
}
@keyframes float-isle { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* 光束 */
.ps-light-rays { position:absolute; top:0; left:0; right:0; height:65%; pointer-events:none; }
.ps-ray {
  position:absolute; top:0; width:3%; height:100%;
  background:linear-gradient(180deg,rgba(255,200,80,0.12) 0%,transparent 100%);
  filter:blur(3px); border-radius:0 0 50% 50%;
  animation:ray-flicker 4s ease-in-out infinite alternate;
}
.ps-ray1 { left:20%; animation-delay:0s; }
.ps-ray2 { left:50%; animation-delay:1s; width:4%; }
.ps-ray3 { left:75%; animation-delay:2s; }
@keyframes ray-flicker { from{opacity:0.4} to{opacity:1} }

/* 城堡 */
.ps-castle {
  position:absolute; bottom:28%; left:48%;
  width:6%; height:0; padding-bottom:10%;
  background:rgba(10,25,18,0.85);
  clip-path:polygon(
    15% 100%,15% 55%,0% 55%,0% 45%,15% 45%,15% 30%,
    20% 15%,25% 5%,30% 15%,35% 30%,35% 45%,50% 45%,
    50% 55%,35% 55%,35% 100%
  );
  filter:drop-shadow(0 0 8px rgba(74,222,128,0.15));
  animation:castle-glow 3s ease-in-out infinite alternate;
}
@keyframes castle-glow {
  from { filter:drop-shadow(0 0 6px rgba(74,222,128,0.1)); }
  to   { filter:drop-shadow(0 0 14px rgba(74,222,128,0.25)); }
}

/* ══ SCENE 2: 泽尔达 ══ */
.ps-bg-zelda {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 80% at 50% 60%,
    #1a1240 0%, #0e0a28 40%, #060418 100%
  );
}
.ps-aura { position:absolute; top:50%; left:50%; border-radius:50%; transform:translate(-50%,-50%); }
.ps-aura-zelda {
  width:60%; padding-bottom:60%;
  background:radial-gradient(ellipse at 50% 50%,
    rgba(255,215,80,0.15) 0%, rgba(201,162,39,0.08) 40%, transparent 70%
  );
  animation:aura-pulse-z 2s ease-in-out infinite;
}
@keyframes aura-pulse-z {
  0%,100%{transform:translate(-50%,-50%) scale(1); opacity:0.7;}
  50%{transform:translate(-50%,-50%) scale(1.12); opacity:1;}
}

/* 泽尔达人物 */
.ps-character { position:absolute; z-index:10; bottom:12%; left:50%; transform:translateX(-50%); }
.ps-zelda-char { width:clamp(60px,14vw,110px); }
.pc-body { position:relative; }
.pc-zelda-body { animation:char-breathe 3s ease-in-out infinite; }
@keyframes char-breathe { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }

/* 头部 */
.pc-head { position:relative; margin:0 auto; }
.pc-zelda-head { width:clamp(18px,4vw,32px); height:clamp(18px,4vw,32px); }
.pc-zelda-head::after {
  content:''; position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle at 45% 35%, #f5e8d0 0%, #e8d0a8 60%, #c8a870 100%);
  box-shadow:0 0 8px rgba(201,162,39,0.4);
}
.pc-hair { position:absolute; top:0; left:50%; transform:translateX(-50%); }
.pc-zelda-hair {
  width:110%; height:60%; top:-15%;
  background:linear-gradient(180deg,#c8a820 0%,#b09018 100%);
  border-radius:50% 50% 30% 30%;
}
.pc-crown {
  position:absolute; top:-18%; left:50%; transform:translateX(-50%);
  width:60%; height:35%;
  background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 100%);
  clip-path:polygon(0% 100%,0% 50%,20% 0%,40% 50%,60% 0%,80% 50%,100% 0%,100% 100%);
  filter:drop-shadow(0 0 4px rgba(201,162,39,0.6));
}

/* 身体 */
.pc-torso { margin:0 auto; }
.pc-zelda-torso {
  width:clamp(14px,3vw,24px); height:clamp(18px,4vw,30px); margin-top:-2px;
  background:linear-gradient(180deg,#e8d090 0%,#d4b870 100%);
  border-radius:2px;
}
.pc-dress-detail {
  position:absolute; top:20%; left:25%; right:25%; height:60%;
  background:rgba(255,255,255,0.15);
  border-radius:1px;
}

/* 裙子 */
.pc-dress { margin:0 auto; margin-top:-2px; }
.pc-zelda-dress {
  width:clamp(28px,6.5vw,52px); height:clamp(22px,5vw,40px);
  background:linear-gradient(180deg,#d4b060 0%,#b89040 50%,#9a7030 100%);
  clip-path:polygon(10% 0%,90% 0%,100% 100%,0% 100%);
  border-radius:0 0 8px 8px;
}

/* 手臂 */
.pc-arm {
  position:absolute; top:28%; width:clamp(5px,1.2vw,9px); height:clamp(14px,3.2vw,24px);
  background:linear-gradient(180deg,#e8d090 0%,#d4b870 100%);
  border-radius:3px;
}
.pc-arm-l { left:-20%; transform:rotate(18deg); transform-origin:top; }
.pc-arm-r { right:-20%; transform:rotate(-18deg); transform-origin:top; }

/* 泪珠道具 */
.pc-zelda-tear {
  position:absolute; bottom:18%; left:55%;
  width:clamp(5px,1.2vw,9px); height:clamp(7px,1.6vw,12px);
  background:radial-gradient(ellipse at 50% 30%,rgba(180,220,255,0.95),rgba(100,160,240,0.7));
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow:0 0 8px rgba(100,180,255,0.7), 0 0 16px rgba(100,180,255,0.4);
  animation:tear-float 2s ease-in-out infinite;
}
@keyframes tear-float { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-4px) scale(1.05)} }

/* 光环 */
.pc-halo {
  position:absolute; top:-15%; left:50%; transform:translateX(-50%);
  width:clamp(30px,7vw,56px); height:clamp(30px,7vw,56px);
  border-radius:50%; border:1px solid rgba(201,162,39,0.4);
  box-shadow:0 0 12px rgba(201,162,39,0.3), inset 0 0 8px rgba(201,162,39,0.1);
  animation:halo-spin 8s linear infinite;
}
@keyframes halo-spin { from{transform:translateX(-50%) rotate(0deg)} to{transform:translateX(-50%) rotate(360deg)} }

/* 泪珠粒子 */
.pc-tear-particles { position:absolute; top:0; left:50%; pointer-events:none; }
.ctp {
  position:absolute; border-radius:50%;
  background:rgba(180,220,255,0.8);
  animation:ctp-rise linear infinite;
}
.ctp1 { width:3px; height:3px; left:-8px; animation-duration:2.5s; animation-delay:0s; }
.ctp2 { width:2px; height:2px; left:5px;  animation-duration:2.1s; animation-delay:0.5s; }
.ctp3 { width:4px; height:4px; left:-14px;animation-duration:3.0s; animation-delay:1.0s; }
.ctp4 { width:2px; height:2px; left:10px; animation-duration:2.3s; animation-delay:1.5s; }
@keyframes ctp-rise { from{top:0;opacity:0.9} to{top:-50px;opacity:0} }

/* ══ SCENE 3: 林克 ══ */
.ps-bg-link {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 100% at 40% 100%,
    #0a1a10 0%, #06120c 30%, #030a06 60%, #020508 100%
  );
}
.ps-wind-effects { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.ps-wind-line {
  position:absolute; height:1px;
  background:linear-gradient(90deg,transparent,rgba(74,222,128,0.2),transparent);
  animation:wind-blow linear infinite;
}
.wl1 { width:35%; top:30%; animation-duration:1.8s; animation-delay:0s; }
.wl2 { width:25%; top:50%; animation-duration:2.2s; animation-delay:0.3s; }
.wl3 { width:40%; top:65%; animation-duration:1.5s; animation-delay:0.8s; }
.wl4 { width:20%; top:80%; animation-duration:2.0s; animation-delay:1.2s; }
@keyframes wind-blow { from{right:100%;left:-40%} to{right:-40%;left:100%} }

/* 林克人物 */
.ps-link-char { width:clamp(55px,13vw,100px); }
.pc-link-body { animation:link-ready 3s ease-in-out infinite; }
@keyframes link-ready { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(0.5deg)} }
.pc-link-head { width:clamp(16px,3.8vw,30px); height:clamp(16px,3.8vw,30px); margin:0 auto; position:relative; }
.pc-link-head::after {
  content:''; position:absolute; inset:0; border-radius:50%;
  background:radial-gradient(circle at 40% 35%, #f0e0c0 0%, #d8c090 60%, #b89860 100%);
}
.pc-link-hair { position:absolute; top:-8%; left:50%; transform:translateX(-50%); }
.pc-link-hair::after {
  content:''; display:block;
  width:clamp(18px,4.2vw,32px); height:clamp(8px,1.8vw,14px);
  background:linear-gradient(135deg,#c8a820 0%,#a88010 100%);
  border-radius:50% 50% 0 0;
}
.pc-hat {
  position:absolute; top:-35%; left:50%; transform:translateX(-50%);
  width:clamp(18px,4.2vw,32px);
}
.pc-link-hat {
  height:0; padding-bottom:60%;
  background:linear-gradient(135deg,#4a8048 0%,#386030 100%);
  clip-path:polygon(10% 100%,0% 50%,30% 0%,70% 0%,100% 50%,90% 100%);
}
.pc-ear { position:absolute; top:40%; right:-15%; width:20%; height:35%;
  background:#d8c090; border-radius:0 50% 50% 0; }

/* 林克身体 */
.pc-link-torso {
  width:clamp(13px,3vw,22px); height:clamp(16px,3.8vw,28px);
  background:linear-gradient(180deg,#4a8048 0%,#386030 100%);
  margin:0 auto; margin-top:-1px; border-radius:2px; position:relative;
}
.pc-tunic {
  position:absolute; bottom:0; left:10%; right:10%; height:30%;
  background:rgba(0,0,0,0.2); border-radius:0 0 2px 2px;
}

/* 持剑臂 */
.pc-sword-arm {
  position:absolute; top:22%; right:-30%;
  width:clamp(8px,1.8vw,14px); height:clamp(18px,4.2vw,32px);
  background:linear-gradient(180deg,#d8c090 0%,#b89860 100%);
  border-radius:3px; transform:rotate(-15deg); transform-origin:top;
}
.pc-sword { position:absolute; top:-50%; right:0; width:clamp(3px,0.7vw,5px); }
.pc-sword-blade {
  height:clamp(22px,5vw,38px);
  background:linear-gradient(180deg,rgba(200,230,255,0.95),rgba(150,190,240,0.8),rgba(100,150,220,0.6));
  border-radius:1px 1px 0 0;
  animation:sword-shine 1.5s ease-in-out infinite alternate;
}
@keyframes sword-shine { from{filter:brightness(0.9)} to{filter:brightness(1.3) drop-shadow(0 0 6px rgba(150,200,255,0.8))} }
.pc-sword-glow {
  position:absolute; inset:-2px; border-radius:2px;
  background:rgba(150,200,255,0.2);
  filter:blur(3px); animation:sword-shine 1.5s ease-in-out infinite alternate;
}

/* 盾牌臂 */
.pc-shield-arm {
  position:absolute; top:22%; left:-35%;
  width:clamp(8px,1.8vw,14px); height:clamp(18px,4.2vw,32px);
  background:linear-gradient(180deg,#d8c090 0%,#b89860 100%);
  border-radius:3px; transform:rotate(10deg); transform-origin:top;
}
.pc-shield {
  position:absolute; top:20%; left:-80%;
  width:clamp(12px,2.8vw,22px); height:clamp(15px,3.5vw,28px);
  background:linear-gradient(135deg,#2468a0 0%,#1a4e80 50%,#0e3060 100%);
  border:1px solid rgba(255,255,255,0.2); border-radius:2px 2px 50% 50%;
  box-shadow:0 0 6px rgba(56,189,248,0.3);
}
.pc-shield::after {
  content:'△'; position:absolute; top:20%; left:50%; transform:translateX(-50%);
  font-size:clamp(4px,1vw,8px); color:rgba(255,200,80,0.8);
}

/* 腿部 */
.pc-legs { display:flex; gap:3px; justify-content:center; margin-top:-1px; }
.pc-leg { width:clamp(5px,1.2vw,9px); height:clamp(12px,2.8vw,22px); border-radius:0 0 2px 2px; }
.pc-leg-l { background:linear-gradient(180deg,#6060a0 0%,#484880 100%); }
.pc-leg-r { background:linear-gradient(180deg,#6060a0 0%,#484880 100%); }

/* 神手光效 */
.pc-divine-arm {
  position:absolute; top:30%; right:-28%;
  width:clamp(10px,2.4vw,18px); height:clamp(10px,2.4vw,18px);
  border-radius:50%;
  background:radial-gradient(circle,rgba(201,162,39,0.6) 0%,rgba(201,162,39,0.1) 60%,transparent 100%);
  animation:divine-pulse 1.2s ease-in-out infinite;
}
@keyframes divine-pulse { 0%,100%{transform:scale(1);opacity:0.7} 50%{transform:scale(1.5);opacity:1} }
.pc-link-aura {
  position:absolute; inset:-20%; border-radius:50%;
  background:radial-gradient(ellipse at 50% 80%,rgba(74,222,128,0.15) 0%,transparent 65%);
  animation:link-aura-pulse 2s ease-in-out infinite;
}
@keyframes link-aura-pulse { 0%,100%{opacity:0.6} 50%{opacity:1} }

/* ══ SCENE 4: 五位贤者 ══ */
.ps-bg-sages {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 90% 90% at 50% 50%,
    #0c0820 0%, #060412 50%, #020208 100%
  );
}
.ps-sage-backdrop {
  position:absolute; inset:0;
  background:conic-gradient(
    from 0deg at 50% 50%,
    rgba(74,222,128,0.03) 0deg, rgba(56,189,248,0.04) 72deg,
    rgba(251,146,60,0.04) 144deg, rgba(251,191,36,0.04) 216deg,
    rgba(167,139,250,0.04) 288deg, rgba(74,222,128,0.03) 360deg
  );
  animation:sage-bg-spin 20s linear infinite;
}
@keyframes sage-bg-spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

/* 贤者圆形排列 */
.ps-sages-ring {
  position:relative; width:min(72vw,500px); height:min(45vw,320px);
  z-index:10;
}

.ps-sage {
  position:absolute; display:flex; flex-direction:column; align-items:center; gap:4px;
  animation:sage-appear 0.6s cubic-bezier(0.22,1,0.36,1) both;
}
/* 五位贤者位置（圆形排列，顶部为灵之贤者，顺时针：风→水→火→雷→灵） */
.ps-sage-wind      { top:5%;  left:18%; animation-delay:0.1s; }
.ps-sage-water     { top:5%;  right:18%; animation-delay:0.2s; }
.ps-sage-fire      { bottom:2%; right:12%; animation-delay:0.3s; }
.ps-sage-lightning { bottom:2%; left:12%; animation-delay:0.4s; }
.ps-sage-spirit    { top:0%; left:50%; transform:translateX(-50%); animation-delay:0.05s; }
@keyframes sage-appear { from{opacity:0;transform:scale(0.5)} to{opacity:1;transform:scale(1)} }
.ps-sage-spirit { transform:translateX(-50%) !important; }

.psg-orb {
  position:relative;
  width:clamp(32px,6.5vw,52px); height:clamp(32px,6.5vw,52px);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  animation:orb-float 3s ease-in-out infinite;
}
.psg-inner {
  position:absolute; inset:2px; border-radius:50%;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,0.4) 0%,transparent 60%);
  opacity:0.6;
}
.psg-symbol { font-size:clamp(12px,2.5vw,20px); z-index:2; position:relative; filter:drop-shadow(0 0 4px currentColor); }
@keyframes orb-float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }

/* 各贤者颜色 */
.psg-orb-wind {
  background:radial-gradient(circle,rgba(165,180,252,0.6) 0%,rgba(100,120,220,0.3) 60%,transparent 100%);
  box-shadow:0 0 16px rgba(165,180,252,0.5), 0 0 32px rgba(165,180,252,0.2);
  border:1px solid rgba(165,180,252,0.4);
}
.psg-orb-water {
  background:radial-gradient(circle,rgba(56,189,248,0.6) 0%,rgba(20,140,200,0.3) 60%,transparent 100%);
  box-shadow:0 0 16px rgba(56,189,248,0.5), 0 0 32px rgba(56,189,248,0.2);
  border:1px solid rgba(56,189,248,0.4);
}
.psg-orb-fire {
  background:radial-gradient(circle,rgba(251,146,60,0.6) 0%,rgba(200,80,20,0.3) 60%,transparent 100%);
  box-shadow:0 0 16px rgba(251,146,60,0.5), 0 0 32px rgba(251,146,60,0.2);
  border:1px solid rgba(251,146,60,0.4);
}
.psg-orb-lightning {
  background:radial-gradient(circle,rgba(251,191,36,0.6) 0%,rgba(200,140,10,0.3) 60%,transparent 100%);
  box-shadow:0 0 16px rgba(251,191,36,0.5), 0 0 32px rgba(251,191,36,0.2);
  border:1px solid rgba(251,191,36,0.4);
}
.psg-orb-spirit {
  background:radial-gradient(circle,rgba(167,139,250,0.6) 0%,rgba(120,80,220,0.3) 60%,transparent 100%);
  box-shadow:0 0 16px rgba(167,139,250,0.5), 0 0 32px rgba(167,139,250,0.2);
  border:1px solid rgba(167,139,250,0.4);
}

/* 放射光芒 */
.psg-rays {
  position:absolute; inset:-40%; border-radius:50%;
  background:conic-gradient(transparent 0deg,rgba(255,255,255,0.06) 30deg,transparent 60deg,rgba(255,255,255,0.06) 90deg,transparent 120deg,rgba(255,255,255,0.06) 150deg,transparent 180deg,rgba(255,255,255,0.06) 210deg,transparent 240deg,rgba(255,255,255,0.06) 270deg,transparent 300deg,rgba(255,255,255,0.06) 330deg,transparent 360deg);
  animation:rays-spin 6s linear infinite;
}
@keyframes rays-spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }

/* 标签 */
.psg-label { text-align:center; }
.psg-name  { font-size:clamp(0.5rem,1.1vw,0.72rem); font-weight:700; color:var(--text-primary); white-space:nowrap; }
.psg-title { font-size:clamp(0.4rem,0.9vw,0.6rem); color:var(--text-muted); white-space:nowrap; }

/* 中央连接环 */
.psg-center-ring {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:clamp(50px,12vw,90px); height:clamp(50px,12vw,90px);
  border-radius:50%;
  border:1px solid rgba(201,162,39,0.2);
  animation:center-ring-pulse 2s ease-in-out infinite alternate;
}
@keyframes center-ring-pulse {
  from{transform:translate(-50%,-50%) scale(1); box-shadow:0 0 10px rgba(201,162,39,0.1);}
  to{transform:translate(-50%,-50%) scale(1.1); box-shadow:0 0 24px rgba(201,162,39,0.3);}
}
.psg-center-glow {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:clamp(18px,4vw,30px); height:clamp(18px,4vw,30px);
  border-radius:50%;
  background:radial-gradient(circle,rgba(201,162,39,0.5) 0%,transparent 70%);
  animation:center-glow 2s ease-in-out infinite alternate;
}
@keyframes center-glow { from{opacity:0.5} to{opacity:1} }

/* ══ SCENE 5: 终幕 ══ */
.ps-bg-final {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 80% 80% at 50% 50%,
    #150e08 0%, #0c0806 50%, #050304 100%
  );
}
.ps-final-rays { position:absolute; inset:0; pointer-events:none; }
.pfr {
  position:absolute; top:50%; left:50%;
  width:2px; height:55%;
  transform-origin:bottom center;
  background:linear-gradient(0deg,transparent,rgba(201,162,39,0.12),transparent);
  animation:final-ray-rotate 8s linear infinite;
}
.pfr1  { transform:rotate(0deg);    animation-delay:0s;    }
.pfr2  { transform:rotate(45deg);   animation-delay:0.1s;  }
.pfr3  { transform:rotate(90deg);   animation-delay:0.2s;  }
.pfr4  { transform:rotate(135deg);  animation-delay:0.3s;  }
.pfr5  { transform:rotate(180deg);  animation-delay:0.4s;  }
.pfr6  { transform:rotate(225deg);  animation-delay:0.5s;  }
.pfr7  { transform:rotate(270deg);  animation-delay:0.6s;  }
.pfr8  { transform:rotate(315deg);  animation-delay:0.7s;  }
@keyframes final-ray-rotate {
  from { transform:rotate(var(--r,0deg)) scaleY(1);   opacity:0.6; }
  50%  { transform:rotate(var(--r,0deg)) scaleY(1.15);opacity:1;   }
  to   { transform:rotate(var(--r,0deg)) scaleY(1);   opacity:0.6; }
}

.ps-final-content { position:relative; z-index:10; text-align:center; }
.ps-final-triforce {
  font-size:clamp(1.8rem,5vw,3.5rem); color:var(--gold);
  filter:drop-shadow(0 0 12px rgba(201,162,39,0.6));
  animation:final-tri 2s ease-in-out infinite alternate, ps-fade-up 0.8s ease-out;
}
@keyframes final-tri { from{opacity:0.7} to{opacity:1;filter:drop-shadow(0 0 24px rgba(201,162,39,0.9))} }
.ps-final-title {
  font-family:'Noto Serif SC',serif;
  font-size:clamp(2rem,6vw,4rem); font-weight:900;
  background:linear-gradient(135deg,#f5e090 0%,var(--gold) 50%,#c8901a 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 12px rgba(201,162,39,0.3));
  margin:4px 0;
  animation:ps-fade-up 0.8s 0.2s ease-out both;
}
.ps-final-sub {
  font-size:clamp(0.6rem,1.5vw,1rem); color:var(--green); letter-spacing:0.2em;
  animation:ps-fade-up 0.8s 0.4s ease-out both;
}
.ps-final-chars {
  margin:12px 0; display:flex; align-items:center; justify-content:center; gap:10px;
  flex-wrap:wrap; animation:ps-fade-up 0.8s 0.6s ease-out both;
}
.pfc { font-size:clamp(0.6rem,1.4vw,0.9rem); color:var(--text-secondary); }
.pfc-zelda { color:rgba(255,215,80,0.85); }
.pfc-link  { color:rgba(74,222,128,0.85); }
.pfc-sages { color:rgba(167,139,250,0.85); }
.pfc-sep   { color:var(--gold-dim); font-size:0.6rem; }
.ps-final-divider {
  width:80px; height:1px; margin:10px auto;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:ps-fade-up 0.8s 0.7s ease-out both;
}
.ps-final-tagline {
  font-size:clamp(0.55rem,1.3vw,0.85rem); color:var(--text-muted);
  letter-spacing:0.1em; animation:ps-fade-up 0.8s 0.8s ease-out both;
}

/* ══ 场景标签 ══ */
.ps-scene-label {
  position:absolute; bottom:12%; left:5%; z-index:15;
  display:flex; flex-direction:column; gap:2px;
  animation:ps-label-in 0.6s 0.3s ease-out both;
}
.ps-sl-right { left:auto; right:5%; align-items:flex-end; }
.ps-sl-center { left:50%; transform:translateX(-50%); bottom:8%; align-items:center; }
@keyframes ps-label-in { from{opacity:0;transform:translateX(-12px)} to{opacity:1;transform:translateX(0)} }
.ps-sl-tag  { font-size:clamp(0.4rem,0.9vw,0.6rem); letter-spacing:0.25em; color:var(--green); opacity:0.8; text-transform:uppercase; }
.ps-sl-name { font-family:'Noto Serif SC',serif; font-size:clamp(0.75rem,2vw,1.3rem); font-weight:700; color:var(--gold); text-shadow:0 0 12px rgba(201,162,39,0.5); }
.ps-sl-en   { font-size:clamp(0.4rem,0.9vw,0.6rem); letter-spacing:0.2em; color:var(--text-muted); text-transform:uppercase; }

/* ══ 进度条 ══ */
.promo-progress {
  position:absolute; bottom:0; left:0; right:0; height:3px;
  background:rgba(255,255,255,0.08); z-index:25;
}
.promo-progress-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,var(--green),var(--gold));
  transition:width 0.1s linear;
  box-shadow:0 0 6px var(--gold);
}

/* ══ 场景点 ══ */
.promo-dots {
  position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
  display:flex; gap:6px; z-index:25;
}
.pd {
  width:6px; height:6px; border-radius:50%;
  background:rgba(255,255,255,0.25); border:none; cursor:pointer;
  transition:all 0.2s; padding:0;
}
.pd-active, .pd:hover { background:var(--gold); box-shadow:0 0 6px var(--gold); transform:scale(1.3); }

/* ══ 播放按钮 ══ */
.promo-playbtn {
  position:absolute; top:8px; right:10px; z-index:25;
  background:rgba(0,0,0,0.5); border:1px solid rgba(201,162,39,0.3);
  color:var(--text-secondary); border-radius:4px;
  padding:3px 8px; font-size:0.7rem; cursor:pointer;
  transition:all 0.2s;
}
.promo-playbtn:hover { color:var(--gold); border-color:var(--gold); background:rgba(201,162,39,0.1); }

/* ── 修正 corner 底部 ── */
.cinematic-frame-wrap .cin-corner-bl,
.cinematic-frame-wrap .cin-corner-br { bottom:44px; }


/* ════════════════════════════════════════════════
   📱 移动端全面优化
   ════════════════════════════════════════════════ */

/* ── 导航遮罩层（点击空白关闭菜单）── */
.nav-overlay {
  display: none;
  position: fixed; inset: 0; top: 60px;
  background: rgba(0,0,0,0.55);
  z-index: 999;
  backdrop-filter: blur(2px);
}
.nav-overlay.open { display: block; }

@media (max-width: 768px) {

  /* ── 导航菜单：限高 + 可滚动 ── */
  .navbar-nav {
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    z-index: 1000;
    /* 平滑滚动 */
    -webkit-overflow-scrolling: touch;
  }

  /* ── 首页卡片网格：最小宽度改小，手机不溢出 ── */
  .categories-grid {
    grid-template-columns: 1fr;
  }

  /* ── 卡片内边距缩小 ── */
  .category-card { padding: 22px 18px; }

  /* ── 表格：手机上横向滚动 ── */
  .table-wrap {
    -webkit-overflow-scrolling: touch;
  }
  table.data-tbl { min-width: 560px; }

  /* ── 坐标文字不换行 ── */
  .coord { font-size: 0.7rem; }

  /* ── 进度统计数字缩小 ── */
  .progress-stat-val { font-size: 1.1rem; }

  /* ── 筛选标签：可横向滚动，不换行 ── */
  .filter-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  .filter-tabs::-webkit-scrollbar { display: none; }
  .filter-tab { flex-shrink: 0; }

  /* ── page-body 内边距缩小 ── */
  .page-body { padding: 28px 16px 60px; }
  .page-hero  { padding: 80px 16px 36px; }

  /* ── hero 统计数字间距 ── */
  .hero-stats { gap: 20px; }
  .hero-stat-number { font-size: 1.6rem; }

  /* ── 主线任务详情：单列 ── */
  .quest-detail-inner {
    grid-template-columns: 1fr;
    padding-left: 16px;
  }

  /* ── 武器/套装卡片图片高度 ── */
  .clothes-img-wrap { height: 160px; }

  /* ── 神庙列表右侧徽章换行 ── */
  .shrine-right { flex-wrap: wrap; gap: 5px; }

  /* ── 高亮框文字大小 ── */
  .highlight-box, .tip-box { font-size: 0.8rem; padding: 12px 14px; }

  /* ── 面包屑缩小 ── */
  .breadcrumb { font-size: 0.75rem; }

  /* ── 搜索框 ── */
  .search-input { font-size: 0.85rem; padding: 11px 42px 11px 14px; }

  /* ── 奖励卡片（mauyu-lost）── */
  .reward-grid { grid-template-columns: 1fr; }

  /* ── 料理统计栏 ── */
  .cook-stats { gap: 8px; }
  .cook-stat  { padding: 10px 12px; }
  .cook-stat-val { font-size: 1.3rem; }
}

/* ── 极窄屏（360px 以下）── */
@media (max-width: 380px) {
  .navbar-logo { font-size: 0.82rem; }
  .logo-icon   { width: 26px; height: 26px; font-size: 0.85rem; }
  .page-hero-title { font-size: 1.6rem; }
  .hero-title  { font-size: 2.2rem; }
  .filter-tab  { padding: 5px 11px; font-size: 0.74rem; }
  .category-card { padding: 18px 14px; }
  .card-title  { font-size: 1.2rem; }
}

/* ── 触摸设备：去掉 hover 位移动画（防止点击后卡住）── */
@media (hover: none) {
  .category-card:hover,
  .info-card:hover,
  .recipe-card:hover,
  .weapon-card:hover { transform: none; }
  .quest-item:hover,
  .shrine-item:hover { transform: none; }
}
