*{margin:0;padding:0;box-sizing:border-box}
:root{
  --nav:56px;
  /* トーンを一段上げる：文字を明るく、面を浮かせ、線を見えるように */
  --ink:#FCFAF6; --ink2:#DCD7CE; --muted:#A9A399;
  --brass:#E0BE7E; --brass-2:#F7E2AE;
  --bg:#16132A; --bg2:#201C38;
  --line:rgba(252,250,246,.20); --line-s:rgba(252,250,246,.11);
  --surf:rgba(252,250,246,.07); --surf2:rgba(252,250,246,.13);
  --card:#221D3E;
  --mincho:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;
  --gothic:"Hiragino Sans","Hiragino Kaku Gothic ProN","Helvetica Neue",sans-serif;
}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--gothic);background:var(--bg);color:var(--ink);line-height:1.85;font-size:15px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:rgba(198,161,91,.32)}
a{color:inherit}

/* ── 固定ナビ ── */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;
  gap:18px;padding:0 clamp(16px,4vw,52px);min-height:var(--nav);flex-wrap:wrap;transition:background .35s,backdrop-filter .35s,border-color .35s;
  background:linear-gradient(180deg,rgba(8,8,11,.92),rgba(8,8,11,0));border-bottom:1px solid transparent}
.topbar.solid{background:rgba(8,8,11,.93);backdrop-filter:blur(14px);border-bottom-color:var(--line-s)}
.brand{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;font-family:var(--mincho);font-size:17px;letter-spacing:.17em;text-decoration:none;white-space:nowrap}
.brand b{color:var(--brass);font-weight:500}
.tnav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1 1 100%;order:3;
  margin:0 calc(-1 * clamp(16px,4vw,52px));padding:0 clamp(16px,4vw,52px) 8px;
  -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
@media(min-width:880px){.tnav{flex:1 1 auto;order:0;margin:0;padding:0}}
.tnav::-webkit-scrollbar{display:none}
.tnav a{padding:8px 13px;font-size:12.5px;letter-spacing:.09em;color:var(--ink2);text-decoration:none;
  transition:.2s;white-space:nowrap;border-radius:2px}
.tnav a:hover{color:var(--ink)}
.tnav a.on{color:var(--brass)}
.tacts{display:flex;gap:8px;align-items:center;margin-left:auto}
.chip{font:inherit;font-size:11.5px;letter-spacing:.09em;padding:7px 13px;color:var(--ink2);cursor:pointer;
  background:transparent;border:1px solid var(--line);border-radius:2px;white-space:nowrap;transition:.2s}
.chip:hover{border-color:var(--brass);color:var(--brass)}
.chip.admin{border-color:rgba(198,161,91,.5);color:var(--brass);cursor:default}

/* ── ヒーロー ── */
.hero{position:relative;min-height:min(80vh,680px);display:flex;align-items:flex-end;
  padding:calc(var(--nav) + 78px) clamp(16px,4vw,52px) 56px;overflow:hidden}
.hero.full{min-height:100vh;min-height:100svh;align-items:center;padding-top:calc(var(--nav) + 24px);padding-bottom:110px}
.hero.full .hero-in{margin:0 auto;width:100%;max-width:820px}
.hero-art{position:absolute;inset:0;z-index:0}
.hero-art::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(8,8,11,.94) 0%,rgba(8,8,11,.72) 42%,rgba(8,8,11,.25) 75%,rgba(8,8,11,.6) 100%),
             linear-gradient(0deg,var(--bg) 2%,transparent 46%)}
.hero-in{position:relative;z-index:1;max-width:620px}
.hero .kick{font-size:10.5px;letter-spacing:.32em;color:var(--brass);margin-bottom:18px}
/* トップの看板：サイトが何をしているかを、いちばん先に大きく言う */
.hero.hook .kick{font-family:var(--mincho);font-size:clamp(19px,5.6vw,34px);font-weight:500;
  line-height:1.75;letter-spacing:.06em;color:#EDE7DC;margin:0 0 34px;max-width:22ch;
  text-shadow:0 2px 30px rgba(0,0,0,.8)}
.hero.hook .kick b{font-weight:500;color:var(--brass-2);position:relative;white-space:nowrap}
.hero.hook .kick b::after{content:"";position:absolute;left:0;right:0;bottom:-.16em;height:1px;
  background:linear-gradient(90deg,rgba(196,164,92,.75),rgba(196,164,92,.15));
  transform:scaleX(0);transform-origin:left;animation:kickline .9s cubic-bezier(.16,.84,.32,1) .55s forwards}
@keyframes kickline{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.hero.hook .kick b::after{animation:none;transform:scaleX(1)}}
.hero h1{font-family:var(--mincho);font-weight:600;font-size:clamp(30px,6.4vw,52px);line-height:1.4;
  letter-spacing:.02em;text-shadow:0 2px 40px rgba(0,0,0,.7)}
.hero p{font-family:var(--mincho);font-size:clamp(14px,2.4vw,16.5px);color:#D6D1C8;line-height:2;
  margin-top:20px;letter-spacing:.03em;max-width:52ch;text-shadow:0 1px 20px rgba(0,0,0,.8)}
.hero .btns{display:flex;gap:11px;margin-top:32px;flex-wrap:wrap}

/* ── ボタン ── */
.btn{font:inherit;font-size:13px;letter-spacing:.09em;padding:14px 30px;border-radius:2px;cursor:pointer;
  border:1px solid transparent;transition:.2s;text-decoration:none;display:inline-block;text-align:center}
.btn.p{background:var(--brass);color:#100C05;font-weight:600}
.btn.p:hover{background:var(--brass-2)}
.btn.g{background:rgba(240,237,230,.1);border-color:var(--line);color:var(--ink);backdrop-filter:blur(6px)}
.btn.g:hover{background:rgba(240,237,230,.18)}
.btn:disabled{opacity:.45;cursor:default}
.actions{margin-top:34px;display:flex;gap:11px;flex-wrap:wrap}

/* ── 列（カルーセル） ── */
.rows{padding:0 0 90px;margin-top:-46px;position:relative;z-index:2}
.row{margin-bottom:44px}
.rowhead{display:flex;align-items:baseline;gap:14px;padding:0 clamp(16px,4vw,52px);margin-bottom:16px}
.rowhead h2{font-family:var(--mincho);font-size:clamp(16px,2.6vw,20px);font-weight:600;letter-spacing:.06em}
.rowhead .cnt{font-size:11px;letter-spacing:.1em;color:var(--muted)}
.rail{position:relative}
.track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;
  padding:6px clamp(16px,4vw,52px) 22px;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
.arrow{position:absolute;top:0;bottom:22px;width:clamp(30px,4vw,52px);z-index:5;border:none;cursor:pointer;
  color:var(--ink);font-size:20px;display:none;transition:.2s;background:rgba(8,8,11,.68)}
.arrow:hover{background:rgba(8,8,11,.88);color:var(--brass)}
.arrow.l{left:0}.arrow.r{right:0}
@media(min-width:900px){.rail:hover .arrow{display:block}}

/* ── カード ── */
.card{display:block;flex:0 0 auto;width:clamp(210px,58vw,272px);scroll-snap-align:start;cursor:pointer;
  background:none;border:none;padding:0;text-align:left;color:inherit;font:inherit;text-decoration:none;
  transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.card:hover{transform:translateY(-6px)}
.art{display:block;position:relative;aspect-ratio:16/10;border-radius:3px;overflow:hidden;border:1px solid var(--line-s);
  transition:border-color .3s,box-shadow .3s}
.card:hover .art{border-color:rgba(198,161,91,.55);box-shadow:0 18px 50px rgba(0,0,0,.6)}
.art::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,6,10,.92) 4%,rgba(6,6,10,.15) 62%)}
.art .no{display:block;position:absolute;top:12px;left:13px;z-index:2;font-family:var(--mincho);font-size:12px;
  letter-spacing:.14em;color:rgba(240,237,230,.72)}
.art .tag{display:block;position:absolute;top:11px;right:12px;z-index:2}
.art .ttl{display:block;position:absolute;left:14px;right:14px;bottom:12px;z-index:2;font-family:var(--mincho);
  font-size:15px;font-weight:600;line-height:1.55;letter-spacing:.03em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cmeta{display:block;margin-top:11px;font-size:11.5px;color:var(--muted);line-height:1.75;letter-spacing:.02em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card.lk .art{opacity:.55}

/* ── 判定バッジ ── */
.vb{display:inline-block;font-size:10.5px;letter-spacing:.12em;padding:4px 10px;border-radius:2px;
  white-space:nowrap;font-weight:600;border:1px solid transparent;backdrop-filter:blur(4px)}
.v-strong,.s3{background:rgba(240,237,230,.93);color:#0C0C10}
.v-mid,.s2{background:rgba(8,8,11,.5);border-color:rgba(240,237,230,.55);color:var(--ink)}
.v-weak{background:rgba(8,8,11,.5);border-color:rgba(198,161,91,.7);color:var(--brass-2)}
.v-none,.s0{background:var(--brass);color:#100C05}
.v-slang,.s1{background:rgba(8,8,11,.5);border-color:var(--line);color:var(--ink2)}

/* ── 記事面 ── */
.wrap{max-width:780px;margin:0 auto;padding:calc(var(--nav) + 34px) 22px 100px}
.detail-hero{position:relative;margin:calc(var(--nav) * -1 - 34px) -22px 34px;padding:calc(var(--nav) + 56px) 22px 40px;overflow:hidden}
.detail-hero .hero-art::after{background:linear-gradient(0deg,var(--bg) 3%,rgba(8,8,11,.55) 60%,rgba(8,8,11,.75) 100%)}
.detail-hero .in{position:relative;z-index:1;max-width:640px;margin:0 auto}
h1{font-family:var(--mincho);font-weight:600;font-size:clamp(26px,5.4vw,37px);line-height:1.55;letter-spacing:.035em}
h2{font-family:var(--mincho);font-weight:600;font-size:clamp(19px,3.8vw,24px);line-height:1.6;letter-spacing:.04em;margin-bottom:10px}
.lead{color:var(--ink2);font-size:16px;line-height:1.95;margin-top:16px;letter-spacing:.01em;max-width:62ch}
.kicker{font-size:10.5px;letter-spacing:.3em;color:var(--brass);margin-bottom:14px}
.blk{border:1px solid var(--line-s);border-radius:3px;padding:26px;margin-top:20px;background:var(--surf)}
.blk h3{font-size:10.5px;letter-spacing:.24em;color:var(--muted);margin-bottom:15px;font-weight:600}
.blk.eng{border-left:2px solid var(--brass)}
.blk.sci{border-left:2px solid rgba(240,237,230,.45)}
.blk.cnt{border-left:2px solid var(--brass);background:rgba(198,161,91,.05)}
.blk.gen,.blk.lnk{border-left:2px solid var(--line)}
.claim{font-family:var(--mincho);font-size:19px;line-height:1.82;letter-spacing:.01em;margin:6px 0 18px;color:var(--ink)}
.detail,.blk p{font-size:14.5px;color:var(--ink2);line-height:1.95;letter-spacing:0}
.blk p+p{margin-top:13px}
.src{font-size:11.5px;color:var(--muted);margin-top:20px;padding-top:15px;border-top:1px solid var(--line-s);line-height:1.85}
details.deep{margin-top:20px;border-top:1px solid var(--line-s);border-bottom:1px solid var(--line-s)}
details.deep summary{cursor:pointer;list-style:none;padding:15px 0}
details.deep summary::-webkit-details-marker{display:none}
details.deep summary .dt{display:block;font-size:11px;letter-spacing:.2em;color:var(--ink2);transition:.18s}
details.deep summary .dt::after{content:" ＋"}
details.deep[open] summary .dt::after{content:" −"}
details.deep summary:hover .dt{color:var(--brass)}
details.deep summary .dl{display:block;font-size:11px;color:var(--muted);line-height:1.8;margin-top:5px}
.dbody{padding:0 0 22px}
.dk{font-size:10.5px;letter-spacing:.22em;color:var(--brass);margin:20px 0 7px}
.dv{font-size:14.5px;color:var(--ink2);line-height:1.95;white-space:pre-line}
.tagrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.tagbtn{font:inherit;font-size:12px;padding:9px 14px;border-radius:2px;cursor:pointer;background:transparent;
  border:1px solid var(--line);color:var(--ink2);transition:.2s;text-decoration:none;display:inline-block}
.tagbtn:hover{border-color:var(--brass);color:var(--brass)}
ul.bib{list-style:none}
ul.bib li{font-size:12.5px;color:var(--ink2);line-height:1.95;padding:11px 0;border-bottom:1px solid var(--line-s)}
ul.bib li:last-child{border-bottom:none}
ul.bib a{text-decoration:none;border-bottom:1px solid var(--line)}
ul.bib a:hover{color:var(--brass);border-color:var(--brass)}
.back{background:none;border:none;color:var(--muted);font:inherit;font-size:12.5px;letter-spacing:.08em;
  cursor:pointer;padding:0;margin-bottom:22px}
.back:hover{color:var(--brass)}
.gate{text-align:center;padding:54px 26px;border:1px solid rgba(198,161,91,.3);border-radius:3px;
  margin-top:24px;background:rgba(198,161,91,.045)}
.gate .g1{font-size:10.5px;letter-spacing:.3em;color:var(--brass);margin-bottom:18px}
.gate h3{font-family:var(--mincho);font-size:20px;letter-spacing:.04em;margin-bottom:13px;font-weight:600}
.gate p{font-size:13.5px;color:var(--ink2);max-width:44ch;margin:0 auto 24px;line-height:2}
.gate .fine{font-size:11px;color:var(--muted);margin-top:18px}
.foot{margin-top:56px;padding-top:22px;border-top:1px solid var(--line-s);font-size:11.5px;color:var(--muted);line-height:2}
.foot a{border-bottom:1px solid var(--line);text-decoration:none}
.foot a:hover{color:var(--brass)}
.srch{width:100%;font:inherit;font-size:14px;padding:14px 0;border:none;border-bottom:1px solid var(--line);
  background:transparent;color:var(--ink);outline:none;margin:20px 0 4px}
.srch::placeholder{color:var(--muted)}
.srch:focus{border-color:var(--brass)}
.vsum{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 26px}
.vbtn{cursor:pointer;font:inherit}
.vbtn.on{outline:1px solid var(--brass);outline-offset:2px}
.grid{display:grid;gap:1px;margin-top:24px;background:var(--line-s)}
@media(min-width:620px){.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c2{grid-template-columns:repeat(2,1fr)}}
.opt{background:#0E0E13;border:none;padding:24px 22px 26px;cursor:pointer;transition:.2s;text-align:left;color:inherit;font:inherit}
.opt:hover{background:#15151C}
.opt.sel{background:#191921;box-shadow:inset 2px 0 0 var(--brass)}
.opt .ic{display:block;font-size:10.5px;letter-spacing:.26em;color:var(--brass);margin-bottom:13px}
.opt .t{font-family:var(--mincho);font-size:16.5px;font-weight:600;letter-spacing:.03em;margin-bottom:8px}
.opt .d{font-size:12.5px;color:var(--muted);line-height:1.9}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{text-align:left;padding:13px 13px 13px 0;border-bottom:1px solid var(--line-s);vertical-align:top;line-height:1.9}
th{font-size:10.5px;letter-spacing:.2em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line)}
.fade{animation:f .5s ease}
@keyframes f{from{opacity:0}to{opacity:1}}

/* ── 横断検索 ── */
#pal{position:fixed;inset:0;z-index:99;background:rgba(4,4,7,.9);display:none;align-items:flex-start;
  justify-content:center;padding:9vh 18px;backdrop-filter:blur(10px)}
#pal.on{display:flex}
.palbox{width:100%;max-width:620px;background:#0E0E14;border:1px solid var(--line);border-radius:3px;overflow:hidden}
#palq{width:100%;font:inherit;font-size:15px;padding:20px 24px;background:transparent;border:none;
  border-bottom:1px solid var(--line);color:var(--ink);outline:none;letter-spacing:.03em}
#palq::placeholder{color:var(--muted)}
#palr{max-height:62vh;overflow-y:auto}
.palrow{display:flex;gap:16px;align-items:flex-start;padding:15px 24px;text-decoration:none;color:inherit;
  border-bottom:1px solid var(--line-s);transition:.14s}
.palrow:hover{background:var(--surf)}
.palt{flex:0 0 34px;font-size:10px;letter-spacing:.16em;color:var(--brass);margin-top:5px}
.palm{flex:1;min-width:0}
.paln{display:block;font-size:15px;font-weight:600;line-height:1.6}
.pals{display:block;font-size:11.5px;color:var(--muted);line-height:1.7;margin-top:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── ロードマップ ── */
.stage{position:relative;padding:0 0 8px 34px;margin-bottom:6px}
.stage::before{content:"";position:absolute;left:11px;top:26px;bottom:-6px;width:1px;background:var(--line)}
.stage:last-child::before{display:none}
.stage .dot{position:absolute;left:5px;top:8px;width:13px;height:13px;border-radius:50%;
  border:1px solid var(--brass);background:var(--bg);z-index:2;transition:.4s}
.stage.done .dot{background:var(--brass);box-shadow:0 0 0 4px rgba(198,161,91,.14)}
.stage .sh{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.stage .st{font-family:var(--mincho);font-size:18px;font-weight:600;letter-spacing:.05em}
.stage .sp{font-size:11px;color:var(--muted);letter-spacing:.1em;font-variant-numeric:tabular-nums}
.stage .sn{font-size:12.5px;color:var(--muted);line-height:1.85;margin-bottom:14px}
.sbar{height:2px;background:var(--line-s);margin:10px 0 16px;border-radius:2px;overflow:hidden}
.sbar i{display:block;height:2px;background:var(--brass);width:0;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.slist{display:flex;flex-direction:column;gap:1px;background:var(--line-s);border-radius:3px;overflow:hidden}
.sitem{display:flex;gap:13px;align-items:center;background:#0D0D12;border:none;padding:14px 16px;cursor:pointer;
  text-align:left;color:inherit;font:inherit;transition:.2s;text-decoration:none}
.sitem:hover{background:#14141B;padding-left:20px}
.sitem .mk{flex:0 0 15px;height:15px;border-radius:50%;border:1px solid var(--line);transition:.3s}
.sitem.read .mk{background:var(--brass);border-color:var(--brass)}
.sitem.read .sl{color:var(--muted)}
.sitem .sl{flex:1;font-size:14px;line-height:1.6;letter-spacing:.02em}
.sitem .sv{flex:0 0 auto}

/* ── カテゴリ ── */
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:var(--line-s);
  border-radius:3px;overflow:hidden;margin-top:20px}
.cat{position:relative;background:#0D0D12;border:none;padding:22px 18px 20px;cursor:pointer;text-align:left;
  color:inherit;font:inherit;transition:.25s;overflow:hidden}
.cat::before{content:"";position:absolute;inset:0;opacity:.16;transition:.3s}
.cat:hover::before{opacity:.3}
.cat>*{position:relative;z-index:1}
.cat .cn{font-family:var(--mincho);font-size:17px;font-weight:600;letter-spacing:.05em;margin-bottom:5px}
.cat .cs{font-size:11.5px;color:var(--ink2);line-height:1.7}
.cat .cc{font-size:10.5px;color:var(--brass);letter-spacing:.14em;margin-top:11px}

/* ── 悩み ── */
.worry{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--surf);border:1px solid var(--line-s);border-left:2px solid var(--brass);
  border-radius:3px;padding:18px 20px;transition:.22s;text-decoration:none}
.worry:hover{background:var(--surf2);transform:translateX(4px)}
.worry .wq{font-size:15px;font-weight:600;line-height:1.75;letter-spacing:0;color:var(--ink)}
.worry .wa{display:block;font-size:11.5px;color:var(--muted);margin-top:9px;letter-spacing:.06em}
.wgrid{display:grid;gap:10px;margin-top:18px}
@media(min-width:700px){.wgrid{grid-template-columns:1fr 1fr}}

/* ── グラフ ── */
.chart{margin-top:22px}
.crow{display:flex;align-items:center;gap:14px;margin-bottom:11px}
.clab{flex:0 0 108px;font-size:11.5px;color:var(--ink2);letter-spacing:.04em;text-align:right}
.ctrack{flex:1;height:22px;background:var(--line-s);border-radius:2px;overflow:hidden}
.cfill{height:22px;width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1);border-radius:2px}
.cnum{flex:0 0 30px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.chint{font-size:11.5px;color:var(--muted);margin-top:14px;line-height:1.85}


/* ── サイン事典 ── */
.sggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:22px 0 8px}
.sgcard{display:block;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--card);text-decoration:none;color:inherit;transition:border-color .25s,transform .25s}
.sgcard:hover{border-color:var(--brass);transform:translateY(-2px)}
.sgart{height:96px;position:relative;overflow:hidden}
.sgin{padding:16px 18px 18px}
.sgn{font-size:10.5px;letter-spacing:.14em;color:var(--brass);margin-bottom:6px}
.sgcard h3{font-family:var(--serif);font-size:17px;margin:0 0 8px;font-weight:500}
.sgcard p{font-size:12.5px;line-height:1.75;color:var(--muted);margin:0 0 12px}
.sgbar{display:flex;height:3px;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.06);margin:2px 0 7px}
.sgseg{display:block}
.s-study{background:var(--brass)}.s-model{background:rgba(196,164,92,.42)}.s-none{background:rgba(255,255,255,.16)}
.sgleg{font-size:10.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sgleg i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle}
.signs{margin:18px 0}
.sign{border:1px solid var(--line);border-radius:3px;background:var(--card);margin-bottom:9px;overflow:hidden}
.sign[open]{border-color:rgba(196,164,92,.4)}
.sign summary{list-style:none;cursor:pointer;padding:15px 17px;display:flex;align-items:center;gap:12px;justify-content:space-between}
.sign summary::-webkit-details-marker{display:none}
.sign summary:hover .sg-s{color:var(--brass)}
.sg-s{font-size:14.5px;line-height:1.6;transition:color .2s}
.cf{flex:none;font-size:10px;letter-spacing:.06em;padding:3px 8px;border-radius:2px;white-space:nowrap}
.cf-study{background:rgba(196,164,92,.16);color:var(--brass);border:1px solid rgba(196,164,92,.35)}
.cf-model{background:rgba(255,255,255,.05);color:var(--muted);border:1px solid var(--line)}
.cf-none{background:rgba(255,255,255,.03);color:rgba(255,255,255,.4);border:1px solid var(--line)}
.sg-body{padding:2px 17px 18px;animation:sgin .3s ease}
@keyframes sgin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.sg-k{font-size:10.5px;letter-spacing:.12em;color:var(--brass);margin:15px 0 6px}
.sg-pop{font-family:var(--serif);font-size:14px;color:var(--muted);line-height:1.7}
.sg-alt{margin:0;padding-left:18px}
.sg-alt li{font-size:13.5px;line-height:1.85;margin-bottom:3px}
.sg-v,.sg-why{font-size:13.5px;line-height:1.9}
.sg-why{color:var(--muted);font-size:12.5px}
.crumb{font-size:11.5px;color:var(--muted);margin-bottom:14px}
.crumb a{color:var(--brass)}
/* ── noteへの導線 ── */
.notecard{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-left:2px solid var(--brass);border-radius:3px;background:linear-gradient(135deg,rgba(196,164,92,.06),transparent 60%),var(--card);padding:20px 22px;margin:26px 0;transition:border-color .25s,transform .25s}
.notecard:hover{border-color:var(--brass);transform:translateY(-2px)}
.nk{font-size:10.5px;letter-spacing:.16em;color:var(--brass);margin-bottom:7px}
.nt{font-family:var(--serif);font-size:18px;line-height:1.5;margin-bottom:9px}
.notecard p{font-size:12.5px;line-height:1.8;color:var(--muted);margin:0 0 12px}
.nb{font-size:12px;color:var(--brass)}

/* ── 結論を先に出すブロック ── */
.answer{max-width:760px;margin:0 auto 4px;padding:24px clamp(18px,4vw,30px);background:linear-gradient(160deg,rgba(196,164,92,.10),rgba(196,164,92,.02) 55%),var(--card);border:1px solid rgba(196,164,92,.34);border-radius:3px;animation:ansin .5s ease both}
@keyframes ansin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.ak{font-size:10.5px;letter-spacing:.18em;color:var(--brass);margin-bottom:10px}
.answer p{font-family:var(--mincho);font-size:clamp(18px,4.6vw,21px);line-height:1.85;margin:0;color:var(--ink)}
.ameta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.hero-a{font-family:var(--serif);color:#fff;margin-top:10px}
/* ── 次へ ── */
.nextcard{display:block;width:100%;max-width:760px;margin:30px auto 0;text-align:left;background:linear-gradient(140deg,rgba(196,164,92,.09),transparent 60%),var(--card);border:1px solid var(--line);border-radius:3px;padding:22px 24px;cursor:pointer;color:inherit;font:inherit;transition:border-color .25s,transform .25s}
.nextcard:hover{border-color:var(--brass);transform:translateY(-2px)}
.nextcard span{display:block}
.nxk{font-size:10.5px;letter-spacing:.14em;color:var(--brass);margin-bottom:9px}
.nxt{font-family:var(--serif);font-size:clamp(18px,4.6vw,22px);line-height:1.5;margin-bottom:9px}
.nxp{font-size:13.5px;line-height:1.85;color:var(--muted);margin-bottom:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nxb{font-size:12.5px;color:var(--brass)}

/* ══ 1画面目を空ける：上はロゴだけ、ナビは下部タブへ ══ */
.chip.ico{padding:7px 9px;border-color:transparent;color:var(--ink2);display:grid;place-items:center}
.chip.ico:hover{border-color:var(--line);color:var(--brass)}
.adot{width:6px;height:6px;border-radius:50%;background:var(--brass);box-shadow:0 0 8px rgba(196,164,92,.9)}

.tabbar{display:none}
@media(max-width:879px){
  .topbar{flex-wrap:nowrap;gap:10px;min-height:52px;padding-top:2px;padding-bottom:2px}
  .topbar .tnav{display:none}
  .brand{font-size:15.5px;letter-spacing:.14em}
  .hero.full{align-items:center;padding:64px 22px 132px}
  .hero.full .hero-in{transform:translateY(-4%)}
  .hero.full h1:not(.hk-blow){font-size:clamp(31px,8.4vw,44px);line-height:1.38}

  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:70;
    background:rgba(8,8,11,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line-s);
    padding-bottom:env(safe-area-inset-bottom)}
  .tabbar a{position:relative;display:grid;place-items:center;padding:13px 2px 14px;text-decoration:none;
    font-size:11px;letter-spacing:.05em;color:var(--ink2);transition:color .2s}
  .tabbar a::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%) scaleX(0);
    width:26px;height:2px;background:var(--brass);transition:transform .28s cubic-bezier(.2,.8,.3,1)}
  .tabbar a.on{color:var(--brass)}
  .tabbar a.on::before{transform:translateX(-50%) scaleX(1)}
  .tabbar a:active{color:var(--brass)}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
}
/* ヒーローの信頼帯 */
.hero-facts{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:20px;font-size:11px;
  letter-spacing:.06em;color:var(--muted)}
.hero-facts span+span::before{content:"·";margin-right:9px;opacity:.5}
.hero-facts .vb{margin-right:2px}
.hero-facts .vb+span::before{content:none}
/* スクロールの合図 */
.scue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;background:none;border:0;
  cursor:pointer;color:var(--muted);font:inherit;font-size:10.5px;letter-spacing:.2em;display:grid;
  justify-items:center;gap:9px;padding:8px 14px;transition:color .25s}
.scue:hover{color:var(--brass)}
.scue i{display:block;width:1px;height:26px;background:linear-gradient(180deg,var(--brass),transparent);
  animation:cue 2.1s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.25;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}
@media(max-width:879px){.scue{bottom:76px}}
/* 全ページ共通の足元 */
.sitefoot{max-width:820px;margin:56px auto 0;padding:26px clamp(16px,4vw,52px) 40px;border-top:1px solid var(--line-s)}
.sfnav{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}
.sfnav a,.lnkb{font-size:12px;letter-spacing:.06em;color:var(--ink2);text-decoration:none;background:none;
  border:0;padding:0;cursor:pointer;font-family:inherit;transition:color .2s}
.sfnav a:hover,.lnkb:hover{color:var(--brass)}
.sitefoot p{font-size:11.5px;line-height:1.9;color:var(--muted);margin:0}

/* ══ トップの一撃 ══ */
.hero.hook .hero-art::after{
  background:linear-gradient(90deg,rgba(8,8,11,.96) 0%,rgba(8,8,11,.82) 46%,rgba(8,8,11,.42) 78%,rgba(8,8,11,.7) 100%),
             radial-gradient(120% 80% at 18% 44%,transparent 0%,rgba(8,8,11,.55) 62%,rgba(8,8,11,.9) 100%),
             linear-gradient(0deg,var(--bg) 2%,transparent 52%)}
.hk-lab{font-size:10px;letter-spacing:.24em;color:var(--muted);margin-bottom:11px}
.hk-belief{font-family:var(--mincho);font-size:clamp(14.5px,3.7vw,18px);line-height:1.85;color:#9A9187;
  margin:0;letter-spacing:.03em;max-width:34ch}
.hk-rule{width:44px;height:1px;background:linear-gradient(90deg,var(--brass),transparent);margin:22px 0}
.hero.hook h1.hk-blow{font-family:var(--mincho);font-weight:600;font-size:clamp(36px,11.2vw,78px);line-height:1.3;
  letter-spacing:.025em;color:#FCFAF6;margin:0;
  text-shadow:0 2px 46px rgba(0,0,0,.85),0 0 90px rgba(196,164,92,.13)}
.hk-why{font-size:clamp(13px,3.3vw,15px);line-height:2;color:#B9B2A7;margin:22px 0 0;max-width:46ch;
  letter-spacing:.02em;text-shadow:0 1px 18px rgba(0,0,0,.8)}
.hero.hook .hero-facts{margin-top:26px}
/* 読みかけへの復帰 */
.resume{display:block;margin-top:22px;background:none;border:0;padding:0;cursor:pointer;font:inherit;
  font-size:12px;letter-spacing:.05em;color:var(--muted);text-align:left;transition:color .2s}
.resume:hover{color:var(--brass)}
/* 順に立ち上がる */
.fade1,.fade2,.fade3,.fade4{opacity:0;animation:rise .95s cubic-bezier(.16,.84,.32,1) forwards}
.fade1{animation-delay:.05s}
.fade2{animation-delay:.28s}
.fade3{animation-delay:.60s}
.fade4{animation-delay:1.02s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hk-rule{transform-origin:left;animation:rule .8s cubic-bezier(.16,.84,.32,1) .60s both}
@keyframes rule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){
  .fade1,.fade2,.fade3,.fade4,.hk-rule{animation:none;opacity:1;transform:none}}

/* ══ オープニング：定説に線が引かれ、否定される ══ */
.intro{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:32px 26px;
  background:#07050F;overflow:hidden;animation:inFade .8s ease both}
.in-bg{position:absolute;inset:0;opacity:.55}
.in-bg .hsvg{position:absolute;inset:0;width:100%;height:100%}
.in-bg::after{content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 50% 45%,rgba(7,5,15,.55) 0%,rgba(7,5,15,.86) 58%,rgba(7,5,15,.97) 100%)}
.in-box{position:relative;z-index:2}
@keyframes inFade{from{opacity:0}to{opacity:1}}
.intro.out{animation:inOut .9s cubic-bezier(.6,0,.3,1) forwards}
@keyframes inOut{to{opacity:0;transform:translateY(-3%);filter:blur(6px)}}
.in-box{max-width:660px;width:100%;text-align:center}
.in-lab{font-size:10px;letter-spacing:.26em;color:var(--muted);opacity:0;
  animation:rise 1s ease .35s forwards}
.in-belief{position:relative;display:block;margin:16px auto 0;font-family:var(--mincho);
  font-size:clamp(20px,5.6vw,36px);line-height:1.62;letter-spacing:.03em;color:#F2EDE4;max-width:20ch}
.in-belief .t{display:block;opacity:0;animation:rise 1.2s cubic-bezier(.16,.84,.32,1) .8s forwards}
.in-belief .t:not(.st){animation:rise 1.2s cubic-bezier(.16,.84,.32,1) .8s forwards,
  inDim 1.1s ease 4.3s forwards}
@keyframes inDim{to{opacity:.24}}
/* 全行を左から貫く取り消し線 */
.in-belief .st{position:absolute;inset:0;color:transparent;
  text-decoration:line-through;text-decoration-color:var(--brass-2);text-decoration-thickness:2px;
  -webkit-text-decoration-color:var(--brass-2);
  filter:drop-shadow(0 0 12px rgba(196,164,92,.7));
  clip-path:inset(0 100% 0 0);opacity:1;
  animation:inStrike 1.15s cubic-bezier(.45,0,.2,1) 3.0s forwards, inStrikeDim 1s ease 4.6s forwards}
@keyframes inStrike{to{clip-path:inset(0 0 0 0)}}
@keyframes inStrikeDim{to{opacity:.45}}
.in-say{margin:26px 0 0;font-family:var(--mincho);font-size:clamp(15px,4vw,22px);line-height:1.9;
  letter-spacing:.05em;color:#CFC8BC;opacity:0;animation:rise 1.15s cubic-bezier(.16,.84,.32,1) 4.6s forwards}
.in-say b{color:var(--brass-2);font-weight:500}
.in-skip{position:fixed;left:0;right:0;bottom:calc(28px + env(safe-area-inset-bottom));text-align:center;
  font-size:10.5px;letter-spacing:.18em;color:rgba(240,237,230,.28);opacity:0;
  animation:rise .8s ease 1.3s forwards}
/* 演出中はトップの立ち上がりを止めておく */
body.intro-on{overflow:hidden}
/* 数字 */
.hero-facts b{font-weight:500;color:var(--brass-2);font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.intro{display:none}}
/* 保険：5秒経ったら、演出が走らなくても必ず見える */
body.anim-safe .fade1,body.anim-safe .fade2,body.anim-safe .fade3,body.anim-safe .fade4,
body.anim-safe .in-belief .t{opacity:1}
body.anim-safe .hk-rule{transform:scaleX(1)!important;opacity:1!important}
body.anim-safe .hero.hook .kick b::after{transform:scaleX(1)!important}

/* ── 判定メーター ── */
.meter{max-width:760px;margin:26px auto 0;padding:22px 20px 18px;background:var(--card);
  border:1px solid var(--line);border-radius:3px}
.mk{font-size:10.5px;letter-spacing:.18em;color:var(--brass);margin-bottom:4px;text-align:center}
.meter svg{display:block;width:100%;height:auto}
.meter p{font-size:12px;line-height:1.9;color:var(--muted);text-align:center;margin:6px 0 0}
.meter p b{color:var(--ink);font-weight:600}
/* ── 図版 ── */
.figs{max-width:820px;margin:30px auto 0;display:grid;gap:22px}
.sfig{margin:0}
.sfig img{display:block;width:100%;height:auto;border-radius:3px;border:1px solid var(--line);
  background:#0F0C1E}
.sfig figcaption{margin-top:9px;font-size:11.5px;line-height:1.8;color:var(--muted);letter-spacing:.03em}

/* ══ 安心の層 ══ */
.moods{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin:26px 0 8px}
.mood{position:relative;display:block;padding:18px 44px 18px 18px;border:1px solid var(--line);border-radius:3px;
  background:var(--card);text-decoration:none;color:inherit;transition:border-color .25s,transform .25s,background .25s}
.mood:hover{border-color:var(--brass);transform:translateY(-2px)}
.mood.on{border-color:rgba(196,164,92,.6);background:linear-gradient(150deg,rgba(196,164,92,.10),transparent 60%),var(--card)}
.ml{display:block;font-size:16px;font-weight:600;line-height:1.55;margin-bottom:7px}
.mood.on .ml{color:var(--brass-2)}
.mn{display:block;font-size:12.5px;line-height:1.8;color:var(--muted)}
.mc{position:absolute;right:16px;top:16px;font-size:11px;color:var(--brass);opacity:.75}
.rf-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:30px 0 4px;
  padding-bottom:12px;border-bottom:1px solid var(--line-s)}
.rf-head h2{font-family:var(--mincho);font-size:21px;font-weight:500}
.rf-all{font-size:12px;color:var(--muted);text-decoration:none}
.rf-all:hover{color:var(--brass)}
.rfs{display:grid;gap:16px;margin-top:20px}
.rf{padding:24px 22px;border:1px solid var(--line);border-left:2px solid rgba(196,164,92,.5);border-radius:3px;
  background:var(--card);opacity:0;animation:rfin .7s cubic-bezier(.16,.84,.32,1) forwards}
@keyframes rfin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.rf-v{font-size:14.5px;line-height:1.85;color:var(--muted);margin-bottom:16px}
.rf-r{font-family:var(--mincho);font-size:clamp(18px,4.5vw,22px);line-height:1.72;color:#FFFDF8;
  letter-spacing:.01em;margin-bottom:15px}
.rf-d{font-size:14.5px;line-height:1.95;color:var(--ink2)}
.rf-d b{color:#F0EAE0;font-weight:600}
.rf-c{margin-top:13px;padding:11px 13px;background:rgba(255,255,255,.03);border-radius:2px;
  font-size:12px;line-height:1.85;color:var(--muted)}
.rf-f{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:13px;
  border-top:1px solid var(--line-s)}
.rf-tag{font-size:10.5px;letter-spacing:.1em;padding:3px 9px;border:1px solid var(--line);border-radius:2px;color:var(--brass)}
.rf-src{font-size:11px;color:var(--muted);line-height:1.7}
.rf-go{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:18px;
  padding:14px 17px;text-align:left;font:inherit;font-size:13px;font-weight:600;letter-spacing:.03em;
  color:var(--brass-2);background:rgba(212,176,113,.10);border:1px solid rgba(212,176,113,.42);
  border-radius:10px;cursor:pointer;transition:.25s}
.rf-go::after{content:"→";flex:none;transition:transform .25s}
.rf-go:hover{background:rgba(212,176,113,.18);border-color:var(--brass);transform:translateY(-1px)}
.rf-go:hover::after{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){.rf{animation:none;opacity:1}}

/* ══ 入口3つ ══ */
.doors{display:grid;gap:16px;max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,52px)}
@media(min-width:900px){.doors{grid-template-columns:repeat(3,1fr);gap:20px}}
.door{position:relative;display:block;overflow:hidden;border:1px solid var(--line);border-radius:3px;
  background:var(--card);text-decoration:none;color:inherit;min-height:190px;
  transition:border-color .35s,transform .35s cubic-bezier(.2,.8,.3,1)}
.door:hover{border-color:var(--brass);transform:translateY(-3px)}
.dart{position:absolute;inset:0;opacity:.55;transition:opacity .5s,transform .8s cubic-bezier(.2,.8,.3,1)}
.door:hover .dart{opacity:.8;transform:scale(1.06)}
.door::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,11,.15) 0%,rgba(8,8,11,.72) 46%,rgba(8,8,11,.94) 100%)}
.din{position:relative;z-index:2;display:block;padding:26px 24px 24px;height:100%}
.dno{display:block;font-size:10.5px;letter-spacing:.24em;color:var(--brass);margin-bottom:12px}
.dt{display:block;font-family:var(--mincho);font-size:clamp(23px,5.6vw,28px);letter-spacing:.05em;
  margin-bottom:11px;font-weight:500}
.dp{display:block;font-size:13.5px;line-height:1.9;color:var(--ink2);margin-bottom:16px}
.dgo{display:block;font-size:12px;letter-spacing:.08em;color:var(--brass)}
/* ══ 調べるハブ ══ */
.egrid{display:grid;gap:12px;margin:26px 0 8px}
@media(min-width:760px){.egrid{grid-template-columns:1fr 1fr}}
.ecard{display:block;padding:20px 20px 18px;border:1px solid var(--line);border-radius:3px;background:var(--card);
  text-decoration:none;color:inherit;transition:border-color .25s,transform .25s}
.ecard:hover{border-color:var(--brass);transform:translateY(-2px)}
.et{display:block;font-size:17px;font-weight:600;margin-bottom:7px}
.ed{display:block;font-size:13px;line-height:1.85;color:var(--ink2)}
.em{display:block;margin-top:10px;font-size:11px;color:var(--brass)}
/* ══ 気持ちの一覧・切替バー ══ */
.moodbar{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:22px 0 6px;
  padding-bottom:4px;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent)}
.moodbar::-webkit-scrollbar{display:none}
.mb{flex:none;padding:9px 15px;font-size:12.5px;color:var(--ink2);text-decoration:none;
  border:1px solid var(--line);border-radius:2px;white-space:nowrap;transition:.2s}
.mb:hover{border-color:var(--brass);color:var(--brass)}
.mb.on{border-color:rgba(196,164,92,.6);color:var(--brass-2);background:rgba(196,164,92,.08)}
/* 出典はたたむ */
.rf-s{margin-top:16px;padding-top:13px;border-top:1px solid var(--line-s)}
.rf-s summary{list-style:none;cursor:pointer;font-size:11.5px;letter-spacing:.06em;color:var(--muted);transition:.2s}
.rf-s summary::-webkit-details-marker{display:none}
.rf-s summary:hover{color:var(--brass)}
.rf-s p{margin-top:9px;font-size:11.5px;line-height:1.8;color:var(--muted)}
/* ══ スクロールで立ち上がる ══ */
[data-reveal]{opacity:0;transform:translateY(22px);
  transition:opacity .85s cubic-bezier(.16,.84,.32,1),transform .85s cubic-bezier(.16,.84,.32,1)}
[data-reveal].in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important;transition:none}}
/* ページ切替 */
#app.swap{animation:swapin .5s cubic-bezier(.16,.84,.32,1) both}
@keyframes swapin{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#app.swap{animation:none}}
/* カードを押したときの手応え */
.card,.door,.ecard,.mood,.mb,.sgcard,.worry,.sitem,.rf-go,.nextcard{will-change:transform}
.card:active,.door:active,.ecard:active,.mood:active,.sgcard:active{transform:scale(.985)}
/* 見出しの罫が伸びる */
.wrap>h1{position:relative}
.wrap>h1::after{content:"";position:absolute;left:0;bottom:-14px;width:46px;height:1px;
  background:linear-gradient(90deg,var(--brass),transparent);transform-origin:left;
  animation:hrule .9s cubic-bezier(.16,.84,.32,1) .25s both}
@keyframes hrule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.wrap>h1::after{animation:none}}

/* ══ ヒーローの背景を手描きのシーンに ══ */
.heroill{overflow:hidden}
.hsvg{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero.hook .heroill::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(8,8,11,.94) 0%,rgba(8,8,11,.80) 44%,rgba(8,8,11,.34) 76%,rgba(8,8,11,.62) 100%),
             linear-gradient(0deg,var(--bg) 1%,transparent 42%)}
.hprog{width:min(300px,72vw);height:2px;background:rgba(255,255,255,.10);border-radius:2px;overflow:hidden;margin-top:26px}
.hprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass),var(--brass-2));
  transition:width 1.4s cubic-bezier(.16,.84,.32,1)}
.hpm{margin-top:9px;font-size:11.5px;letter-spacing:.05em;color:var(--muted)}
/* ══ 1本道 ══ */
.jwrap{max-width:820px;margin:0 auto;padding:0 clamp(16px,4vw,52px)}
.ch{margin-bottom:44px}
.chh{margin-bottom:16px}
.chn{font-size:10.5px;letter-spacing:.24em;color:var(--brass);margin-bottom:9px}
.ch h2{font-family:var(--mincho);font-size:clamp(22px,5.4vw,29px);font-weight:500;letter-spacing:.04em}
.chp{height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;margin:14px 0 10px}
.chp i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass),var(--brass-2));
  transition:width 1.2s cubic-bezier(.16,.84,.32,1)}
.chm{font-size:12px;line-height:1.85;color:var(--muted)}
.chm b{color:var(--brass);font-weight:500}
.ch.done .chn::after{content:"　読了";color:var(--brass-2)}
.jlist{position:relative;padding-left:24px;display:grid;gap:10px}
.jlist::before{content:"";position:absolute;left:5px;top:22px;bottom:22px;width:1px;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.10) 12%,rgba(255,255,255,.10) 88%,transparent)}
.jit{position:relative;display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:15px 15px 15px 17px;border-radius:14px;border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  cursor:pointer;font:inherit;color:inherit;
  transition:border-color .3s,transform .3s cubic-bezier(.2,.8,.3,1),background .3s}
.jit:hover{border-color:rgba(212,176,113,.55);transform:translateX(4px);
  background:linear-gradient(160deg,rgba(212,176,113,.12),rgba(255,255,255,.03))}
.jit:active{transform:translateX(4px) scale(.99)}
.jmk{position:absolute;left:-24px;top:50%;margin-top:-5.5px;width:11px;height:11px;border-radius:50%;
  border:1px solid var(--line);background:var(--bg);transition:.35s}
.jit.rr .jmk{border-radius:3px;transform:rotate(45deg)}
.jit.on .jmk{background:var(--brass);border-color:var(--brass);box-shadow:0 0 12px rgba(196,164,92,.55)}
.jit.on{border-color:rgba(255,255,255,.07)}
.jit.on .jt{color:var(--muted)}
.jtx{display:block;flex:1;min-width:0}
.jt{display:block;font-size:15.5px;font-weight:600;line-height:1.62;margin-bottom:6px;letter-spacing:0;color:var(--ink)}
.jit.rr .jt{font-size:14.5px;color:#EFE8DC;font-family:var(--sans,inherit)}
.jl{display:block;font-size:12.5px;line-height:1.75;color:var(--muted);margin-bottom:9px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
.jtags{display:flex;gap:6px;flex-wrap:wrap}
.tg{font-size:10px;letter-spacing:.04em;line-height:1.5;padding:3.5px 8px;border-radius:999px;
  color:var(--muted);background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06);white-space:nowrap}
.tg.eg{color:rgba(226,196,137,.85);background:rgba(196,164,92,.07);border-color:rgba(196,164,92,.16)}
.jarr{flex:none;font-size:13px;color:rgba(255,255,255,.18);transition:.3s}
.jit:hover .jarr{color:var(--brass);transform:translateX(3px)}
/* ══ ポップアップ ══ */
body.pop-on{overflow:hidden}
.pop{position:fixed;inset:0;z-index:180;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:760px){.pop{align-items:center}}
.pbd{position:absolute;inset:0;background:rgba(3,2,8,.88);backdrop-filter:blur(10px);
  opacity:0;transition:opacity .34s ease}
.pop.in .pbd{opacity:1}
.psheet{position:relative;z-index:2;width:min(720px,100%);max-height:88vh;display:flex;flex-direction:column;
  background:linear-gradient(165deg,#241E42,#181433);border:1px solid rgba(212,176,113,.34);
  border-radius:16px 16px 0 0;box-shadow:0 -22px 80px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.04) inset;
  transform:translateY(28px);opacity:0;transition:transform .42s cubic-bezier(.16,.84,.32,1),opacity .34s}
@media(min-width:760px){.psheet{border-radius:6px;transform:translateY(16px) scale(.985)}}
.pop.in .psheet{transform:none;opacity:1}
.phead{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px 12px;
  border-bottom:1px solid var(--line-s);flex:none}
.pch{font-size:11px;letter-spacing:.14em;color:var(--brass)}
.pclose{background:none;border:0;color:var(--ink2);font-size:24px;line-height:1;cursor:pointer;padding:0 4px;transition:.2s}
.pclose:hover{color:var(--brass)}
.pbody{flex:1;overflow-y:auto;padding:22px 22px 8px;-webkit-overflow-scrolling:touch}
.pv{font-size:14.5px;line-height:1.9;color:var(--muted);margin-bottom:16px}
.pr{font-family:var(--mincho);font-size:clamp(19px,4.8vw,24px);line-height:1.72;color:#FFFDF8;margin-bottom:16px}
.pmeta{margin-bottom:16px}
.pd{font-size:14.5px;line-height:1.95;color:var(--ink2);margin-bottom:15px}
.pd b{color:#F0EAE0}
.pd p{margin-bottom:12px}
.pc{padding:12px 14px;background:rgba(255,255,255,.03);border-radius:2px;font-size:12px;line-height:1.85;
  color:var(--muted);margin-bottom:14px}
.pfig{margin:16px 0}
.pfig img{width:100%;height:auto;border-radius:3px;border:1px solid var(--line)}
.pfig figcaption{margin-top:8px;font-size:11px;color:var(--muted)}
.pgate{padding:22px;border:1px solid rgba(196,164,92,.3);border-radius:3px;text-align:center}
.pgate p{font-size:13px;line-height:1.9;color:var(--ink2);margin:10px 0 16px}
.pgo{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;margin:20px 0 6px;padding:17px 20px;text-align:left;font:inherit;font-size:14px;font-weight:600;
  letter-spacing:.03em;color:#12100A;cursor:pointer;border:0;border-radius:10px;overflow:hidden;
  background:linear-gradient(135deg,var(--brass-2),var(--brass));
  box-shadow:0 8px 26px rgba(212,176,113,.24),inset 0 1px 0 rgba(255,255,255,.3);
  transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s}
.pgo::after{content:"→";font-size:16px;flex:none;transition:transform .25s}
.pgo:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(212,176,113,.34),inset 0 1px 0 rgba(255,255,255,.35)}
.pgo:hover::after{transform:translateX(4px)}
.pgo:active{transform:translateY(0) scale(.99)}
/* 押せることが分かるように、ゆっくり光が走る */
.pgo::before{content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
  animation:sheen 3.6s ease-in-out 1.2s infinite}
@keyframes sheen{0%{left:-45%}55%,100%{left:120%}}
@media(prefers-reduced-motion:reduce){.pgo::before{animation:none}}
.pnav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;
  border-top:1px solid var(--line-s);flex:none;padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.pn{font:inherit;font-size:12.5px;padding:10px 16px;border-radius:2px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--ink2);transition:.2s}
.pn:hover{border-color:var(--brass);color:var(--brass)}
.pn.nx{background:var(--brass);color:#100C05;border-color:var(--brass);font-weight:600}
.pn.nx:hover{background:var(--brass-2);color:#100C05}
.ppos{font-size:11px;color:var(--muted)}
@media(prefers-reduced-motion:reduce){.pbd,.psheet{transition:none}}
/* 集計 */
.stbar{display:flex;gap:8px;margin:22px 0 6px}
.stbig{font-family:var(--mincho);font-size:clamp(38px,10vw,58px);color:var(--brass-2);margin:24px 0 6px;line-height:1.1}
.stbig span{display:block;font-family:var(--gothic);font-size:12.5px;color:var(--muted);margin-top:10px;letter-spacing:.06em}
.sth{font-size:12px;letter-spacing:.16em;color:var(--brass);margin:30px 0 10px;font-weight:400}
.stlist{display:grid;gap:6px}
.strow{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--surf);border-radius:8px;font-size:12.5px}
.stk{flex:none;width:44px;color:var(--muted);font-variant-numeric:tabular-nums}
.stk.wide{flex:1;width:auto;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stb{flex:1;height:5px;background:rgba(255,255,255,.07);border-radius:3px;overflow:hidden}
.stb i{display:block;height:100%;background:linear-gradient(90deg,var(--brass),var(--brass-2))}
.stn{flex:none;min-width:44px;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
a.adot{display:block;cursor:pointer}

/* ══ 鑑定 ══ */
.qintro{padding:26px 22px;border:1px solid var(--line);border-radius:14px;background:var(--card);margin:24px 0 16px}
.qintro p{font-size:14.5px;line-height:1.95;color:var(--ink2);margin-bottom:14px}
.qintro .btn{margin-top:8px}
.qnote{font-size:12px!important;color:var(--muted)!important;margin:16px 0 0!important}
.qprog{height:3px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;margin:26px 0 10px}
.qprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass),var(--brass-2));
  transition:width .6s cubic-bezier(.16,.84,.32,1)}
.qcount{font-size:11.5px;letter-spacing:.1em;color:var(--muted);margin-bottom:20px}
.qbox{padding:26px 22px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.qq{font-family:var(--mincho);font-size:clamp(19px,4.8vw,24px);line-height:1.7;color:var(--ink);margin-bottom:22px}
.qopts{display:grid;gap:10px}
.qopt{width:100%;text-align:left;padding:16px 18px;font:inherit;font-size:14.5px;line-height:1.6;
  color:var(--ink);background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:12px;
  cursor:pointer;transition:border-color .25s,background .25s,transform .25s cubic-bezier(.2,.8,.3,1)}
.qopt:hover{border-color:var(--brass);background:rgba(212,176,113,.10);transform:translateX(4px)}
.qopt:active{transform:translateX(4px) scale(.99)}
.qback{margin-top:18px;background:none;border:0;color:var(--muted);font:inherit;font-size:12.5px;cursor:pointer}
.qback:hover{color:var(--brass)}
/* 結果 */
.qres{padding:26px 22px;border:1px solid rgba(212,176,113,.34);border-radius:16px;
  background:linear-gradient(160deg,rgba(212,176,113,.09),transparent 60%),var(--card);margin:24px 0 16px}
.qrt{font-family:var(--mincho);font-size:clamp(20px,5vw,26px);line-height:1.65;color:#FFFDF8;margin-bottom:22px}
.qbars{display:grid;gap:12px;margin-bottom:20px}
.qbrow{display:flex;align-items:center;gap:12px}
.qbl{flex:none;width:min(42%,190px);font-size:12.5px;color:var(--ink2);line-height:1.5}
.qbar{flex:1;height:8px;background:rgba(255,255,255,.07);border-radius:5px;overflow:hidden}
.qbar i{display:block;height:100%;width:0;border-radius:5px;transition:width 1.1s cubic-bezier(.16,.84,.32,1)}
.qbn{flex:none;width:34px;text-align:right;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}
.qrd{font-size:14px;line-height:1.95;color:var(--ink2)}
.qrd b{color:var(--ink)}
.qgap{margin-top:18px;padding-top:14px;border-top:1px solid var(--line-s);font-size:12.5px;color:var(--muted)}
.qgap b{color:var(--brass-2);font-size:15px}
.qwarn{padding:16px 18px;border-left:2px solid var(--brass);border-radius:8px;background:rgba(212,176,113,.08);
  font-size:13.5px;line-height:1.9;color:var(--ink2);margin-bottom:16px}
.qwarn b{color:var(--brass-2)}
/* 鑑定書の案内と本体 */
.qsell,.qrep{padding:26px 22px;border-radius:16px;margin-bottom:16px}
.qsell{border:1px solid rgba(212,176,113,.42);
  background:linear-gradient(160deg,rgba(212,176,113,.13),rgba(212,176,113,.03) 60%),var(--card)}
.qrep{border:1px solid var(--line);background:var(--card)}
.qsk{font-size:10.5px;letter-spacing:.22em;color:var(--brass);margin-bottom:12px}
.qsell h3,.qrep h3{font-family:var(--mincho);font-size:18px;font-weight:500;margin-bottom:14px;color:var(--ink)}
.qrep h3{margin-top:24px}
.qrep h3:first-of-type{margin-top:0}
.qsell ul{margin:0 0 20px;padding-left:1.2em}
.qsell li{font-size:13.5px;line-height:1.9;color:var(--ink2);margin-bottom:7px}
.qsell li b{color:var(--brass-2)}
.qnext{margin:0;padding-left:1.3em}
.qnext li{font-size:14px;line-height:1.9;color:var(--ink2);margin-bottom:12px}
/* 鑑定への導線 */
.qzcard{display:block;max-width:820px;margin:30px auto 0;padding:24px 22px;text-decoration:none;color:inherit;
  border:1px solid rgba(212,176,113,.34);border-radius:16px;
  background:linear-gradient(150deg,rgba(212,176,113,.11),rgba(212,176,113,.02) 62%),var(--card);
  transition:border-color .3s,transform .3s cubic-bezier(.2,.8,.3,1)}
.qzcard:hover{border-color:var(--brass);transform:translateY(-2px)}
.qzcard span{display:block}
.qzk{font-size:10.5px;letter-spacing:.2em;color:var(--brass);margin-bottom:11px}
.qzt{font-family:var(--mincho);font-size:clamp(19px,4.6vw,23px);line-height:1.55;margin-bottom:10px;color:var(--ink)}
.qzp{font-size:13px;line-height:1.85;color:var(--ink2);margin-bottom:14px}
.qzg{font-size:12.5px;color:var(--brass-2);font-weight:600}
.jwrap .qzcard{margin-top:16px}

/* ══ 鑑定書（明るい紙）══ */
.qrepwrap{margin:0 0 22px}
.report{
  --p-ink:#2A2440; --p-ink2:#554D70; --p-mute:#8B839E;
  --p-bg:#FCF8F1; --p-bg2:#F4EDE0; --p-line:rgba(42,36,64,.14); --p-gold:#A8823A;
  position:relative;max-width:820px;margin:0 auto;padding:34px 30px 26px;
  background:linear-gradient(178deg,#FEFBF6,#F6EFE2);
  color:var(--p-ink);border-radius:14px;
  box-shadow:0 20px 50px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.5) inset;
  font-family:var(--gothic,system-ui,sans-serif);
  overflow:hidden;
}
.report:before{content:"";position:absolute;inset:0;pointer-events:none;
  border-radius:14px;box-shadow:0 0 0 1px rgba(168,130,58,.30) inset;margin:9px}
.rp-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding-bottom:12px;border-bottom:1px solid var(--p-line);margin-bottom:20px}
.rp-brand{font-family:var(--mincho);font-size:14px;letter-spacing:.14em;color:var(--p-gold)}
.rp-date{font-size:11.5px;letter-spacing:.14em;color:var(--p-mute);font-variant-numeric:tabular-nums}
.rp-title{font-family:var(--mincho);font-size:clamp(21px,4.8vw,27px);font-weight:500;
  line-height:1.5;margin:0 0 10px;color:var(--p-ink)}
.rp-sub{font-size:12.5px;line-height:1.85;color:var(--p-ink2);margin:0 0 24px}
.rp-sec{margin-bottom:24px}
.rp-sec:last-of-type{margin-bottom:18px}
.rp-k{display:inline-block;font-size:10.5px;letter-spacing:.2em;color:var(--p-gold);
  padding:0 0 6px;border-bottom:1px solid rgba(168,130,58,.45);margin-bottom:14px}
.rp-sec p{font-size:13.5px;line-height:1.95;color:var(--p-ink2);margin:0}
.rp-sec p b{color:var(--p-ink);font-weight:600}
.rp-verdict{font-family:var(--mincho);font-size:clamp(17px,4vw,21px)!important;line-height:1.7;
  color:var(--p-ink)!important;margin:0 0 18px!important}
.rp-bars{display:grid;gap:10px;margin-bottom:16px}
.rp-row{display:flex;align-items:center;gap:11px}
.rp-lab{flex:none;width:min(44%,196px);font-size:12px;line-height:1.5;color:var(--p-ink2)}
.rp-track{flex:1;height:9px;border-radius:5px;background:rgba(42,36,64,.09);overflow:hidden}
.rp-track i{display:block;height:100%;border-radius:5px;opacity:.9}
.rp-val{flex:none;width:28px;text-align:right;font-size:13px;color:var(--p-ink);
  font-variant-numeric:tabular-nums;font-weight:600}
.rp-gap{padding:11px 14px;border-radius:9px;background:rgba(42,36,64,.045);
  font-size:11.5px;color:var(--p-mute);line-height:1.9}
.rp-gap b{color:var(--p-ink);font-size:14px;font-variant-numeric:tabular-nums}
.rp-gap span{display:block;color:var(--p-gold);font-size:11.5px;margin-top:2px}
.rp-list{margin:0;padding-left:1.25em}
.rp-list li{font-size:13px;line-height:1.95;color:var(--p-ink2);margin-bottom:11px}
.rp-list li:last-child{margin-bottom:0}
.rp-list::marker,.rp-list li::marker{color:var(--p-gold)}
.rp-note{padding:16px 18px;border-radius:10px;background:var(--p-bg2);border:1px solid var(--p-line)}
.rp-note p{font-size:12px;line-height:1.9}
.rp-foot{padding-top:14px;border-top:1px solid var(--p-line);
  font-size:10.5px;letter-spacing:.08em;color:var(--p-mute);text-align:center}
.qprint{display:flex;flex-direction:column;align-items:center;gap:9px;margin-top:20px}
.qprint span{font-size:11.5px;color:var(--muted)}

/* 見本（入口に置くイメージ） */
.rpsample{max-width:820px;margin:26px auto 0}
.rpsl{font-size:10.5px;letter-spacing:.2em;color:var(--brass);margin-bottom:12px;text-align:center}
.rpshell{position:relative;height:500px;overflow:hidden;border-radius:14px;
  -webkit-mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.35) 95%,transparent);
  mask-image:linear-gradient(180deg,#000 84%,rgba(0,0,0,.35) 95%,transparent)}
.rpshell .report{transform:scale(.86);transform-origin:top center;pointer-events:none;user-select:none}
.rpsn{font-size:11.5px;color:var(--muted);text-align:center;margin-top:10px}
@media (max-width:560px){
  .report{padding:26px 20px 20px}
  .report:before{margin:7px}
  .rpshell{height:470px}
  .rpshell .report{transform:scale(.88)}
  .rp-lab{width:min(46%,150px);font-size:11px}
}

/* ══ 印刷（PDF保存）══ */
@media print{
  @page{size:A4;margin:14mm}
  html,body{background:#fff!important}
  .topbar,.tabbar,.sitefoot,.qprint,.scue,.hero,.pop,.pbd,.qzcard,.qsell,
  .qres,.qwarn,.qintro,.rpsample,.actions,.nextcard,.kicker,.detail-hero,
  h1,.lead,.qprog,.qcount,.qbox{display:none!important}
  #app{padding:0!important;margin:0!important;max-width:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .qrepwrap{margin:0!important}
  .report{max-width:none;margin:0;padding:0 2mm;border-radius:0;box-shadow:none;
    background:#fff!important;color:#1c1830!important;break-inside:auto}
  .report:before{display:none}
  .rp-sec{break-inside:avoid}
  .rp-track{background:#E6E2D8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-track i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-note{background:#F6F2E8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-brand,.rp-k,.rp-gap span{color:#8A6A28!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* 鑑定の一覧 */
.qzlist{display:grid;gap:14px;max-width:820px;margin:0 auto}
.qzlist .qzcard{margin:0;max-width:none}
.qzl{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.qzl i{font-style:normal;font-size:11px;line-height:1.5;padding:4px 9px;border-radius:999px;
  border:1px solid var(--line-s);background:var(--surf);color:var(--muted)}
