:root{
  --bg:#0a0806; --panel:#161009; --panel2:#1e150c;
  --gold:#c9a25b; --gold-bright:#e7c684; --gold-dim:#8a6d3b;
  --ink:#ece3d0; --ink-dim:#a99a7d; --line:#3a2c17;
  --correct:#4caf7d; --wrong:#c0564b;
  --daphne:#b8944e; --ffxi:#5b8bc9;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ink);
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
  -webkit-font-smoothing:antialiased;line-height:1.8}
body{background:var(--bg);min-height:100vh}
.wrap{max-width:820px;margin:0 auto;padding:24px 18px 80px}
.screen{display:none;animation:fade .45s ease}
.screen.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.frame{border:1px solid var(--line);background:var(--panel);
  border-radius:6px;position:relative;padding:28px 24px}
/* 問題画面はカード（枠・背景）をやめてフラット表示 */
.frame--plain{border:0;background:none;border-radius:0;padding:4px 0 0}

.hero{text-align:center;padding:34px 20px 10px}
.hero .collab{font-size:13px;letter-spacing:.35em;color:var(--gold-dim);margin-bottom:14px}
.hero h1{font-size:clamp(22px,5vw,34px);font-weight:700;color:var(--gold-bright);
  letter-spacing:.06em;text-shadow:0 2px 18px rgba(201,162,91,.25);line-height:1.4}
.hero .titles{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.hero .titles span{color:var(--ink)}
.hero .x{color:var(--gold);font-size:20px}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);margin:22px auto;max-width:420px}
.lead{text-align:center;color:var(--ink-dim);font-size:15px;max-width:600px;margin:0 auto 26px}

.section-head{text-align:center;margin:6px 0 22px}
.section-head .step{font-size:13px;letter-spacing:.3em;color:var(--gold-dim)}
.section-head h2{font-size:25px;color:var(--gold-bright);margin-top:8px;letter-spacing:.06em}
.section-head p{color:var(--ink-dim);font-size:15.5px;margin-top:8px}
/* カテゴリ選択：タイトル名（上・中央）＋ タイトルロゴと等級試験ロゴを横並び */
.cat-hero{text-align:center;margin:26px 0 18px}
.cat-hero__title{font-size:clamp(18px,2.4vw,24px);color:var(--gold-bright);letter-spacing:.08em;margin-bottom:clamp(14px,2.4vw,22px)}
.cat-hero__logos{display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,56px);flex-wrap:wrap}
.cat-hero__logo{display:block;width:auto;max-width:min(300px,42vw);max-height:100px;object-fit:contain}
.cat-hero__exam{display:block;width:auto;max-width:min(220px,34vw);max-height:120px;object-fit:contain}
/* トップに戻る */
.cat-foot{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:560px){.cards{grid-template-columns:1fr}}
.card{cursor:pointer;text-align:center;padding:30px 20px;transition:.25s;
  border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.card:hover{border-color:var(--gold-dim);box-shadow:none}
.logo-plate{display:flex;align-items:center;justify-content:center;height:120px;
  border-radius:5px;padding:16px 20px;margin-bottom:16px;
  background:#000;
  border:1px solid var(--gold-dim);box-shadow:0 2px 12px rgba(0,0,0,.5) inset}
.logo-plate img{max-width:100%;max-height:100%;object-fit:contain}
.card h2{font-size:20px;margin:4px 0 6px;color:var(--gold-bright)}
.card p{font-size:13px;color:var(--ink-dim);margin-top:10px;line-height:1.6}

.cats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
@media(max-width:620px){.cats{grid-template-columns:1fr}}
.cat-card{cursor:pointer;text-align:center;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:6px;
  background:var(--panel);transition:border-color .25s,box-shadow .25s}
.cat-card:hover{border-color:var(--gold-dim);box-shadow:0 4px 14px rgba(0,0,0,.3)}
.cat-card__thumb{width:100%;aspect-ratio:16/10;overflow:hidden;background:#161009;border-bottom:1px solid var(--line)}
.cat-card__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cat-card__body{padding:22px 16px}
.cat-card .rn{font-size:12px;letter-spacing:.3em;color:var(--gold-dim)}
.cat-card h3{font-size:22px;color:var(--gold-bright);margin:12px 0 4px}
.cat-card .cnt{font-size:14.5px;color:var(--ink-dim);letter-spacing:.12em}

.back{display:inline-block;margin-bottom:16px;cursor:pointer;color:var(--gold-dim);font-size:13px;letter-spacing:.1em}
.back:hover{color:var(--gold)}

.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-size:14.5px;color:var(--ink-dim)}
.exam-tag{padding:0;letter-spacing:.14em;font-size:15px}
.exam-tag.daphne{background:none;color:var(--daphne);border:0}
.exam-tag.ffxi{background:none;color:var(--ffxi);border:0}
.progressbar{height:5px;background:#241a0e;border-radius:4px;overflow:hidden;margin-bottom:20px;border:1px solid var(--line)}
.progressbar>i{display:block;height:100%;background:var(--gold-dim);transition:width .4s}

.cat-badge{display:inline-block;font-size:17px;letter-spacing:.12em;color:var(--gold-bright);
  border-left:3px solid var(--gold);padding:3px 0 3px 12px;margin-bottom:14px}
.qnum{color:var(--gold-dim);font-size:14px;letter-spacing:.15em;margin-bottom:6px}
.qtext{font-size:20.5px;line-height:1.85;color:var(--ink);margin-bottom:18px;font-weight:600}
.qimg{width:100%;max-height:340px;object-fit:contain;border:1px solid var(--line);border-radius:5px;background:#000;margin-bottom:20px}

.choices{display:grid;gap:12px}
.choice{display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;
  padding:15px 18px;border:1px solid var(--line);border-radius:5px;
  background:#171009;color:var(--ink);font-size:17.5px;transition:.18s;font-family:inherit}
.choice:hover{border-color:var(--gold-dim);background:#20170d}
.choice .mark{width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--gold-dim);
  display:grid;place-items:center;color:var(--gold);font-size:15px;font-weight:700}

/* explanation screen */
.verdict{font-size:24px;font-weight:700;letter-spacing:.1em;margin-bottom:6px;display:flex;align-items:center;gap:12px}
.verdict.ok{color:var(--correct)} .verdict.ng{color:var(--wrong)}
.ans-line{font-size:17.5px;color:var(--ink-dim);margin-bottom:18px}
.ans-line b{color:var(--gold-bright)}
.ans-line .picked{color:var(--wrong)}
.expl-rule{height:1px;background:var(--line);margin:0 0 18px}
.eimg{width:100%;max-height:340px;object-fit:contain;border:1px solid var(--line);border-radius:5px;background:#000;margin:2px 0 16px}
.expl{font-size:17.5px;color:var(--ink-dim);line-height:2.0}
.expl b{color:var(--gold-bright)}
.expl-main{margin:0}
.note-box{margin-top:18px;border:1px solid var(--line);border-radius:5px;overflow:hidden;
  background:rgba(255,255,255,.02)}
.note-head{font-size:16px;font-weight:900;letter-spacing:.06em;padding:10px 16px;color:#14100b;
  font-family:"Noto Serif JP","Yu Mincho",serif}
.note-body{font-size:16.5px;color:var(--ink-dim);line-height:1.95;padding:13px 16px 15px}
.note-daphne .note-head{background:var(--daphne)}
.note-ffxi .note-head{background:var(--ffxi)}

.nav{display:flex;justify-content:flex-end;margin-top:24px}
.btn{cursor:pointer;font-family:inherit;font-size:16.5px;letter-spacing:.1em;padding:13px 34px;border-radius:4px;
  border:1px solid var(--gold);background:var(--gold);color:#1a1206;font-weight:700;transition:.2s}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:var(--gold);border-color:var(--gold-dim)}
.btn.ghost:hover{background:rgba(201,162,91,.1);box-shadow:none}

.result{text-align:center}
/* 結果画面のタイトル：タグ風の縦棒をやめ、中央寄せの見出しに */
.result .cat-badge{display:block;border-left:0;padding:0;font-size:23px;color:var(--gold-bright);letter-spacing:.1em;margin:10px auto 8px;text-wrap:balance}
@media(max-width:560px){.result .cat-badge{font-size:17px;letter-spacing:.06em}}
.result .score-ring{margin:10px auto 6px;width:190px;height:190px;position:relative}
.result .score-ring svg{transform:rotate(-90deg)}
.result .score-txt{position:absolute;inset:0;display:grid;place-content:center}
.result .score-txt b{font-size:46px;color:var(--gold-bright);line-height:1}
.result .score-txt span{font-size:15px;color:var(--ink-dim)}
.rank{font-size:29px;color:var(--gold-bright);letter-spacing:.14em;margin:8px 0 4px}
.rank-sub{color:var(--ink-dim);font-size:16px;margin-bottom:20px}
.btn-x{display:inline-flex;align-items:center;gap:10px;margin:6px auto 4px;
  background:#000;color:#fff;border:1px solid #333}
.btn-x:hover{background:#151515;filter:none;box-shadow:0 6px 20px rgba(0,0,0,.5)}
.btn-x svg{flex:none}
.result-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:18px}
@media(max-width:560px){.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-actions .btn{width:100%;padding:12px 6px;font-size:15px;letter-spacing:.04em}}
.footer{text-align:center;color:var(--gold-dim);font-size:13px;margin-top:40px;letter-spacing:.1em}

/* 等級試験トップ：コラボ説明＆電撃の旅団 */
.intro{max-width:760px;margin:40px auto 10px;text-align:center}
.intro p{color:var(--ink-dim);font-size:14.5px;line-height:2;margin:0 auto 14px;max-width:720px}
.intro-note{margin:24px auto 0;max-width:720px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:20px 24px}
.intro-note__head{color:var(--gold-bright);font-size:15px;letter-spacing:.08em;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.intro-note__head:before{content:"\25C6";color:var(--gold-dim);font-size:12px}
.intro-note p{color:var(--ink-dim);font-size:13px;line-height:1.9;margin:0;max-width:none}
@media(max-width:600px){.intro p{font-size:13.5px}.intro-note{padding:18px 18px}}

/* ===== 特設サイト共通ヘッダー／フッター（トップと同デザイン） ===== */
.site-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px clamp(20px,5vw,56px);
  background:linear-gradient(to bottom, rgba(20,16,11,.92), rgba(20,16,11,.5));
  border-bottom:1px solid rgba(206,199,166,.16)}
.site-nav__brand{display:flex;align-items:center;gap:14px;min-width:0;
  font-family:'Cormorant Garamond','Noto Serif JP',serif;font-weight:600;letter-spacing:.06em}
.site-nav__brand span{font-size:17px;color:#e9e1cf;white-space:nowrap}
.site-nav__brand .x{color:#cec7a6;font-family:'Zen Old Mincho','Noto Serif JP',serif;font-size:16px}
.site-nav__brand .site-brand-short{display:none}

.site-footer{padding:clamp(28px,4vw,40px) clamp(20px,6vw,80px) 30px;
  background:rgba(12,9,6,.55)}
.site-footer[hidden]{display:none}
.site-footer__inner{max-width:920px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.site-footer__anniv{margin:0 0 clamp(32px,5vw,48px);font-size:13px;letter-spacing:.16em;color:#94886e}
.site-footer__anniv .gold{color:#cec7a6}
.site-footer__sns{display:flex;align-items:flex-start;justify-content:center;gap:clamp(30px,7vw,90px)}
.site-footer__col{display:flex;flex-direction:column;align-items:center;gap:22px}
.site-footer__h{font-family:'Cormorant Garamond','Noto Serif JP',serif;font-weight:500;
  font-size:clamp(22px,2.6vw,30px);letter-spacing:.04em;color:#cec7a6;line-height:1}
.site-footer__icons{display:flex;align-items:center;gap:20px}
.site-footer__icons a{display:inline-flex;transition:opacity .2s ease,transform .2s ease}
.site-footer__icons a:hover{opacity:.75;transform:translateY(-2px)}
.site-footer__icons img{display:block;height:26px;width:auto}
.site-footer__vline{align-self:stretch;width:1px;background:rgba(206,199,166,.28)}
.site-footer__partner{margin-top:clamp(40px,6vw,60px)}
.site-footer__partner img{width:clamp(220px,40vw,280px);height:auto;opacity:.9}
.site-footer__navi{margin-top:clamp(34px,5vw,48px);display:flex;flex-wrap:wrap;justify-content:center;gap:8px clamp(20px,3vw,34px)}
.site-footer__navi a{font-size:13px;letter-spacing:.04em;color:#cec7a6;text-decoration:none;transition:color .2s ease}
.site-footer__navi a:hover{color:#f3ead6}
.site-footer__rule{width:100%;max-width:760px;height:1px;margin:24px auto 20px;
  background:linear-gradient(90deg, transparent, rgba(206,199,166,.4), transparent)}
.site-footer__copy{font-size:12px;letter-spacing:.08em;color:#9c917a}
@media(max-width:639px){.site-nav__brand .site-brand-full{display:none}.site-nav__brand .site-brand-short{display:inline}.site-nav__brand{gap:8px}}
@media(max-width:560px){.site-footer__sns{flex-direction:column;gap:34px;align-items:center}.site-footer__vline{display:none}}
