/* レブアカ通信 — 共有スタイル (Cloudflare Pages) */
:root{
  --paper:#F8F6F0;--ink:#1E1B16;--ink-soft:#453F35;--ink-faint:#7A7264;--rule:#E3DDCF;--card:#FFFFFF;
  --gold:#A9791F;--gold-soft:#F1E6C8;--sprout:#3F7A4E;--track:#E7E1D3;
  --ltake-bg:#FBF4E2;--ltake-edge:#C69A3A;
  --ai:#3D5A80;--money:#4E7A51;--world:#A15C3E;--japan:#5A6B7B;--summary:#8A6A1E;
  --accent:var(--gold);--accent-soft:var(--gold-soft);
  --shadow:0 1px 2px rgba(30,27,22,.04),0 10px 26px rgba(30,27,22,.055);
  --serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,"Noto Sans JP",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#14120E;--ink:#ECE7DA;--ink-soft:#C6BEAD;--ink-faint:#8B8371;--rule:#2C271E;--card:#1C1913;
    --gold:#D9A94A;--gold-soft:#3A2F16;--sprout:#6FB37E;--track:#2E2A20;--ltake-bg:#251E10;--ltake-edge:#8A6C2A;
    --ai:#7FA0C8;--money:#8FBE95;--world:#D08F6C;--japan:#9AAAB8;--summary:#D9A94A;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 30px rgba(0,0,0,.4);
  }
}
:root[data-theme="light"]{
  --paper:#F8F6F0;--ink:#1E1B16;--ink-soft:#453F35;--ink-faint:#7A7264;--rule:#E3DDCF;--card:#FFFFFF;
  --gold:#A9791F;--gold-soft:#F1E6C8;--sprout:#3F7A4E;--track:#E7E1D3;--ltake-bg:#FBF4E2;--ltake-edge:#C69A3A;
  --ai:#3D5A80;--money:#4E7A51;--world:#A15C3E;--japan:#5A6B7B;--summary:#8A6A1E;
  --shadow:0 1px 2px rgba(30,27,22,.04),0 10px 26px rgba(30,27,22,.055);
}
:root[data-theme="dark"]{
  --paper:#14120E;--ink:#ECE7DA;--ink-soft:#C6BEAD;--ink-faint:#8B8371;--rule:#2C271E;--card:#1C1913;
  --gold:#D9A94A;--gold-soft:#3A2F16;--sprout:#6FB37E;--track:#2E2A20;--ltake-bg:#251E10;--ltake-edge:#8A6C2A;
  --ai:#7FA0C8;--money:#8FBE95;--world:#D08F6C;--japan:#9AAAB8;--summary:#D9A94A;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 30px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.82;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:inherit}
.wrap{max-width:720px;margin:0 auto;padding:0 clamp(16px,4vw,28px) 72px;}
.wrap.wide{max-width:760px}

/* top nav */
.topnav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--rule);margin-bottom:8px;}
.topnav .inner{max-width:760px;margin:0 auto;padding:11px clamp(16px,4vw,28px);display:flex;align-items:center;gap:12px;}
.brand{display:inline-flex;align-items:center;gap:7px;font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.1em;text-decoration:none;white-space:nowrap;}
.brand .lf{color:var(--sprout);}
.pills{margin-left:auto;display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;}
.pills::-webkit-scrollbar{display:none}
.pill{font-size:12px;letter-spacing:.02em;text-decoration:none;color:var(--ink-faint);padding:5px 11px;border-radius:999px;white-space:nowrap;border:1px solid transparent;}
.pill.active{color:var(--accent);background:var(--accent-soft);font-weight:600;}
.pill:hover{color:var(--ink)}

/* ===== hub (index) ===== */
.mast{text-align:center;padding:clamp(22px,5vw,44px) 0 24px;margin-bottom:8px;position:relative;}
.mast::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:54px;height:2px;background:var(--gold);border-radius:2px;}
.sprout{font-size:24px;color:var(--sprout);line-height:1;margin-bottom:6px;}
.kicker{font-size:11px;letter-spacing:.42em;color:var(--gold);text-transform:uppercase;margin:0 0 12px;padding-left:.42em;}
.title{font-family:var(--serif);font-weight:600;font-size:clamp(34px,9vw,52px);letter-spacing:.16em;margin:0;text-wrap:balance;}
.dateline{margin-top:15px;font-size:13px;color:var(--ink-faint);letter-spacing:.05em;font-variant-numeric:tabular-nums;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.dateline .dot{color:var(--rule)}
.lede{font-family:var(--serif);font-size:clamp(15.5px,4vw,17.5px);line-height:1.95;color:var(--ink-soft);text-align:center;margin:26px auto 0;max-width:32em;text-wrap:pretty;}

.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:30px 0 40px;}
@media(max-width:600px){.keys{grid-template-columns:repeat(2,1fr)}}
.key{background:var(--card);border:1px solid var(--rule);border-radius:13px;padding:13px;box-shadow:var(--shadow);text-align:left;}
.key .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;display:flex;align-items:center;gap:5px;color:var(--ink-faint);}
.key .k i{width:7px;height:7px;border-radius:50%;display:inline-block;}
.key .v{font-family:var(--serif);font-weight:600;font-size:15.5px;line-height:1.35;text-wrap:balance;}

.sec-title{display:flex;align-items:baseline;gap:10px;margin:0 0 16px;}
.sec-title h2{font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.14em;margin:0;color:var(--ink-soft);}
.sec-title .line{flex:1;height:1px;background:var(--rule);}

.depts{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:600px){.depts{grid-template-columns:1fr}}
.dept{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:20px 19px 18px;box-shadow:var(--shadow);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease;text-decoration:none;}
.dept::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c);}
.dept:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(30,27,22,.08),0 18px 40px rgba(30,27,22,.1);}
.dept .head{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.dept .head .dot{width:10px;height:10px;border-radius:50%;background:var(--c);flex:none;}
.dept .head .name{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.04em;}
.dept .head .en{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);margin-left:auto;}
.dept .count{position:absolute;top:18px;right:18px;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);padding:3px 9px;border-radius:999px;}
.dept ul{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px;flex:1;}
.dept li{font-size:13px;line-height:1.6;color:var(--ink-soft);padding-left:16px;position:relative;text-wrap:pretty;}
.dept li::before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--c);opacity:.65;}
.dept li b{color:var(--ink);font-weight:600;}
.cta{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--c);letter-spacing:.02em;}

.summary-card{margin-top:16px;position:relative;display:block;background:linear-gradient(120deg,var(--gold-soft),transparent 70%),var(--card);border:1px solid var(--rule);border-radius:18px;padding:24px 22px;box-shadow:var(--shadow);overflow:hidden;text-decoration:none;}
.summary-card::before{content:"結";position:absolute;top:-12px;right:14px;font-family:var(--serif);font-size:96px;color:var(--gold);opacity:.1;line-height:1;}
.summary-card .tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;margin-bottom:10px;}
.summary-card h3{font-family:var(--serif);font-weight:600;font-size:22px;line-height:1.5;margin:0 0 10px;text-wrap:balance;}
.summary-card p{margin:0 0 14px;font-size:13.5px;line-height:1.85;color:var(--ink-soft);max-width:40em;}
.summary-card .cta2{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--gold);}

/* ===== section page ===== */
.hero{padding:34px 0 8px;}
.eyebrow{display:flex;align-items:center;gap:9px;font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.eyebrow .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,7vw,40px);letter-spacing:.06em;margin:0 0 10px;text-wrap:balance;}
.hero .meta-line{font-size:12.5px;color:var(--ink-faint);letter-spacing:.05em;font-variant-numeric:tabular-nums;margin-bottom:16px;}
.hero .lead{font-family:var(--serif);font-size:16px;line-height:1.9;color:var(--ink-soft);max-width:34em;text-wrap:pretty;}

.dash{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0 6px;}
@media(max-width:560px){.dash{grid-template-columns:repeat(2,1fr)}}
.tile{background:var(--card);border:1px solid var(--rule);border-radius:13px;padding:14px 13px;box-shadow:var(--shadow);}
.tile .k{font-size:10.5px;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:6px;line-height:1.4;}
.tile .v{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.01em;font-variant-numeric:tabular-nums;line-height:1.1;}
.tile .v small{font-size:12px;font-weight:600;color:var(--ink-faint);letter-spacing:0;}
.tile .v.up{color:var(--sprout)} .tile .v.down{color:#B4553C}
@media(prefers-color-scheme:dark){.tile .v.down{color:#E08B6E}}

.list{margin-top:30px;}
.item{background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:24px 22px 18px;margin-bottom:18px;box-shadow:var(--shadow);position:relative;}
.num{font-family:var(--serif);font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--accent);margin-bottom:8px;}
.item h3{font-family:var(--serif);font-weight:600;font-size:19.5px;line-height:1.5;margin:0 0 12px;text-wrap:balance;}
.body{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.92;}
.body b{color:var(--ink);font-weight:600;}
.body + .body{margin-top:11px;}

/* charts */
.viz{margin:16px 0 2px;background:var(--accent-soft);border-radius:12px;padding:15px 16px;}
.viz .cap{font-size:11px;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:12px;text-transform:uppercase;}
.bars{display:flex;flex-direction:column;gap:11px;}
.bar{font-size:12.5px;}
.bar .top{display:flex;justify-content:space-between;margin-bottom:4px;font-variant-numeric:tabular-nums;}
.bar .top .lab{color:var(--ink-soft);font-weight:600;}
.bar .top .val{color:var(--ink-faint);}
.bar .track{height:9px;background:var(--track);border-radius:99px;overflow:hidden;}
.bar .fill{height:100%;border-radius:99px;background:var(--accent);}
.bar .fill.g{background:var(--gold);}
.bar .fill.d{background:#B4553C;} @media(prefers-color-scheme:dark){.bar .fill.d{background:#E08B6E}}
.duo{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.vline{width:1px;height:56px;background:var(--rule)}
.donut{width:88px;height:88px;border-radius:50%;flex:none;background:conic-gradient(var(--gold) calc(var(--p,64)*1%),var(--track) 0);display:grid;place-items:center;position:relative;}
.donut::after{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--card);}
.donut b{position:relative;font-family:var(--serif);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;}
.donut-cap{font-size:12.5px;color:var(--ink-soft);line-height:1.7;}
.donut-cap b{color:var(--ink)}
.beforeafter{display:flex;align-items:center;gap:12px;justify-content:center;flex-wrap:wrap;text-align:center;}
.ba-box .k{font-size:10.5px;color:var(--ink-faint);letter-spacing:.05em;margin-bottom:3px;}
.ba-box .n{font-family:var(--serif);font-weight:600;font-size:26px;font-variant-numeric:tabular-nums;line-height:1;}
.ba-box.was .n{color:var(--ink-faint);} .ba-box.now .n{color:var(--sprout);}
.ba-arrow{font-size:20px;color:var(--accent);}
.statrow{display:flex;gap:20px;flex-wrap:wrap;}
.statrow .s{font-variant-numeric:tabular-nums;}
.statrow .s .n{font-family:var(--serif);font-weight:600;font-size:22px;line-height:1.1;}
.statrow .s .n.up{color:var(--sprout)} .statrow .s .n.down{color:#B4553C}
@media(prefers-color-scheme:dark){.statrow .s .n.down{color:#E08B6E}}
.statrow .s .l{font-size:11px;color:var(--ink-faint);margin-top:3px;}

/* まわりの反応（この記事についての世間の声） */
.voice{margin-top:15px;background:color-mix(in srgb,var(--ink) 5%,var(--card));border-radius:12px;padding:14px 16px;}
.voice .lbl{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink-faint);text-transform:uppercase;margin:0 0 8px;}
.voice ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;}
.voice li{font-size:13px;line-height:1.75;color:var(--ink-soft);padding-left:16px;position:relative;}
.voice li::before{content:"—";position:absolute;left:0;color:var(--ink-faint);opacity:.7;}

/* ロゴ */
.mast .logo{width:clamp(150px,36vw,196px);height:auto;margin:0 auto 12px;display:block;}
.brand .logo-mark{height:26px;width:auto;display:block;}

/* L take */
.ltake{margin-top:12px;background:var(--ltake-bg);border-left:3px solid var(--ltake-edge);border-radius:0 11px 11px 0;padding:13px 15px 13px 14px;}
.ltake .lbl{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--gold);margin:0 0 6px;}
.ltake .lbl .avatar{width:18px;height:18px;border-radius:50%;background:var(--gold);color:var(--paper);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);}
.ltake p{margin:0;font-size:13.5px;line-height:1.84;color:var(--ink-soft);}
.ltake .post{margin-top:8px;padding-top:8px;border-top:1px dashed var(--ltake-edge);font-size:12.5px;}
.ltake .post b{color:var(--gold);font-weight:600;}

.meta{display:flex;align-items:center;gap:9px 12px;flex-wrap:wrap;margin-top:14px;font-size:11.5px;color:var(--ink-faint);}
.src{display:inline-flex;align-items:center;gap:5px;}
.src::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--ink-faint);opacity:.55;}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--gold-soft);color:var(--gold);}

.foot{margin-top:34px;padding-top:22px;border-top:1px solid var(--rule);}
.foot .close{font-family:var(--serif);font-size:15px;line-height:1.9;color:var(--ink-soft);text-align:center;max-width:32em;margin:0 auto 22px;text-wrap:pretty;}
.foot .nav{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;}
.foot .nav a{text-decoration:none;font-size:13px;border:1px solid var(--rule);border-radius:11px;padding:11px 15px;color:var(--ink-soft);background:var(--card);flex:1;min-width:150px;}
.foot .nav a.next{border-color:var(--accent);color:var(--accent);font-weight:600;}
.foot .nav a .s{display:block;font-size:10.5px;color:var(--ink-faint);letter-spacing:.05em;margin-bottom:2px;}
.sign{margin-top:22px;text-align:center;font-size:12px;color:var(--ink-faint);letter-spacing:.06em;line-height:1.9;}
.sign .sprout-sm{color:var(--sprout);}

/* sources */
details.sources{margin-top:26px;border-top:1px dashed var(--rule);padding-top:16px;}
details.sources summary{cursor:pointer;font-size:12px;letter-spacing:.1em;color:var(--ink-faint);text-transform:uppercase;list-style:none;}
details.sources summary::-webkit-details-marker{display:none;}
details.sources summary::before{content:"＋ ";color:var(--gold);}
details.sources[open] summary::before{content:"− ";}
details.sources ul{margin:12px 0 0;padding-left:18px;font-size:12px;line-height:1.9;color:var(--ink-faint);}
details.sources a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule);word-break:break-all;}

/* ===== summary (essay) page ===== */
.essay{max-width:44em;margin:0 auto;}
.essay .lead-q{font-family:var(--serif);font-size:clamp(18px,4.5vw,22px);line-height:1.9;color:var(--ink);margin:8px 0 30px;text-wrap:pretty;}
.essay h2{font-family:var(--serif);font-weight:600;font-size:clamp(20px,5vw,25px);letter-spacing:.03em;margin:40px 0 6px;text-wrap:balance;position:relative;padding-top:20px;border-top:1px solid var(--rule);}
.essay h2 .no{display:block;font-size:11px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;margin-bottom:8px;font-weight:700;}
.essay h3{font-family:var(--serif);font-weight:600;font-size:17px;margin:26px 0 4px;color:var(--ink);}
.essay p{font-size:15px;line-height:2.0;color:var(--ink-soft);margin:0 0 16px;}
.essay p b,.essay strong{color:var(--ink);font-weight:600;}
.essay blockquote{margin:22px 0;padding:14px 18px;border-left:3px solid var(--gold);background:var(--gold-soft);border-radius:0 10px 10px 0;font-family:var(--serif);font-size:15.5px;line-height:1.85;color:var(--ink-soft);}
.essay .pull{font-family:var(--serif);font-size:clamp(17px,4.4vw,20px);line-height:1.7;color:var(--ink);text-align:center;margin:30px auto;max-width:24em;text-wrap:balance;}
.essay .pull::before,.essay .pull::after{content:"—";color:var(--gold);margin:0 .4em;}
.readmeta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-faint);margin-bottom:8px;letter-spacing:.04em;}
.lnote{margin:36px 0 0;background:var(--ltake-bg);border:1px solid var(--ltake-edge);border-radius:16px;padding:22px 20px;}
.lnote .lbl{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--gold);margin-bottom:10px;}
.lnote .lbl .avatar{width:22px;height:22px;border-radius:50%;background:var(--gold);color:var(--paper);font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);}
.lnote p{font-size:14.5px;line-height:1.95;color:var(--ink-soft);margin:0 0 12px;}
.lnote p:last-child{margin-bottom:0}

@media (prefers-reduced-motion:no-preference){
  .item,.dash,.hero,.mast,.lede,.keys,.sec-title,.dept,.summary-card,.essay h2,.essay p,.lnote{animation:rise .55s cubic-bezier(.2,.7,.2,1) both;}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
