:root{
  --paper:#ffffff; --ink:#1c1c1e; --sub:#595959; --faint:#8a8a8a;
  --hairline:#d8d5cf; --masthead:#17324e; --alert:#b0322e; --link:#1c4e80;
  --wash:#f4f3f0; --sig:#3a5a4e;
}
@font-face{
  font-family:"Yorube Signal";
  src:url("/fonts/yorube.woff") format("woff"),url("/fonts/yorube.ttf") format("truetype");
  font-display:block;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{background:var(--wash);color:var(--ink);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
  font-size:15px;line-height:1.75;}
a{color:var(--link);text-decoration:none;}
a:hover{text-decoration:underline;}
a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:2px;}
.sheet{max-width:1080px;margin:0 auto;background:var(--paper);box-shadow:0 0 24px rgba(0,0,0,.07);min-height:100vh;}

.flash{display:flex;align-items:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--hairline);font-size:13px;}
.flash b{flex-shrink:0;background:var(--alert);color:#fff;font-size:11px;font-weight:600;padding:1px 8px;letter-spacing:.15em;}
.flash a{color:var(--ink);}
.flash time{color:var(--faint);flex-shrink:0;font-size:12px;margin-left:auto;}

header.mast{display:flex;align-items:flex-end;justify-content:space-between;padding:12px 16px 8px;gap:12px;}
.daiji .mark{background:var(--masthead);color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","MS Mincho",serif;
  font-weight:700;font-size:25px;letter-spacing:.12em;padding:7px 13px 8px;line-height:1;display:inline-block;}
.daiji .mark:hover{text-decoration:none;}
.mast-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.langsw{display:inline-flex;border:1px solid var(--hairline);}
.langsw button{border:none;background:var(--paper);color:var(--sub);font-family:inherit;
  font-size:11px;padding:3px 10px;cursor:pointer;letter-spacing:.05em;border-right:1px solid var(--hairline);}
.langsw button:last-child{border-right:none;}
.langsw button.on{background:var(--masthead);color:#fff;}
.langsw button.sigb.on{background:var(--sig);}
.dateline{font-size:11.5px;color:var(--sub);line-height:1.6;white-space:nowrap;}
.dateline .ed{color:var(--faint);margin-left:8px;}
@media (max-width:640px){
  header.mast{padding:9px 12px 6px;}
  .daiji .mark{font-size:19px;padding:6px 10px;}
  .dateline{font-size:10.5px;}
  .dateline .ed{display:none;}
  .flash{font-size:12px;padding:5px 12px;}
}

nav.sections{border-top:3px solid var(--masthead);border-bottom:1px solid var(--hairline);display:flex;align-items:stretch;}
nav.sections ul{display:flex;list-style:none;overflow-x:auto;flex:1;}
nav.sections li{flex-shrink:0;}
nav.sections a{display:block;padding:8px 14px;font-size:13px;color:var(--ink);border-right:1px solid var(--hairline);white-space:nowrap;}
nav.sections li:first-child a{border-left:1px solid var(--hairline);}
nav.sections a.act{color:var(--masthead);font-weight:600;}
.sitesearch{display:flex;align-items:center;gap:6px;padding:0 10px;border-left:1px solid var(--hairline);flex-shrink:0;}
.sitesearch input{border:1px solid var(--hairline);padding:3px 8px;font-size:12.5px;width:130px;font-family:inherit;color:var(--ink);background:#fff;}
.sitesearch button{border:1px solid var(--masthead);background:var(--masthead);color:#fff;font-size:12px;padding:3px 11px;cursor:pointer;font-family:inherit;letter-spacing:.1em;}
.search-toggle{display:none;align-items:center;justify-content:center;border:none;border-left:1px solid var(--hairline);background:var(--paper);color:var(--masthead);width:44px;cursor:pointer;flex-shrink:0;}
@media (max-width:640px){
  .sitesearch{display:none;}
  .search-toggle{display:flex;}
}
#search-panel[hidden]{display:none;}
#search-panel{border-bottom:2px solid var(--masthead);background:var(--paper);padding:12px 16px 14px;}
.sp-form{display:flex;gap:8px;}
.sp-form input{flex:1;min-width:0;border:1px solid var(--hairline);padding:9px 12px;font-size:16px;font-family:inherit;color:var(--ink);background:#fff;}
.sp-form button[type=submit]{border:1px solid var(--masthead);background:var(--masthead);color:#fff;font-size:14px;padding:0 18px;cursor:pointer;font-family:inherit;letter-spacing:.1em;}
#sp-close{border:1px solid var(--hairline);background:var(--paper);color:var(--sub);font-size:14px;padding:0 12px;cursor:pointer;}
.sp-hint{font-size:11px;letter-spacing:.2em;color:var(--faint);margin:12px 0 6px;}
.sp-chips{display:flex;flex-wrap:wrap;gap:8px;}
.sp-chips a{border:1px solid var(--hairline);background:#fbfaf7;color:var(--ink);font-size:13px;padding:5px 13px;border-radius:999px;}

.grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;}
@media (max-width:840px){.grid{grid-template-columns:minmax(0,1fr);}}
main{padding:20px 24px 34px;border-right:1px solid var(--hairline);min-width:0;}
@media (max-width:840px){main{border-right:none;padding:16px 16px 28px;}}

.topics{border:2px solid var(--masthead);margin-bottom:20px;}
.topics h2{font-size:12px;letter-spacing:.25em;color:#fff;background:var(--masthead);padding:4px 12px;font-weight:600;}
.topics ul{list-style:none;padding:8px 14px;columns:2;column-gap:26px;}
@media (max-width:640px){.topics ul{columns:1;}}
.topics li{font-size:13.5px;font-weight:600;line-height:1.55;padding:4px 0;break-inside:avoid;border-bottom:1px dotted var(--hairline);}
.topics li a{color:var(--ink);font-feature-settings:"palt";}
.topics li:last-child{border-bottom:none;}

.kicker{font-size:12px;letter-spacing:.2em;color:var(--alert);font-weight:600;margin-bottom:8px;}
h1.head{font-size:26px;line-height:1.42;font-weight:700;text-wrap:balance;font-feature-settings:"palt";letter-spacing:.02em;margin-bottom:13px;}
h1.pagetitle{font-size:21px;border-left:4px solid var(--masthead);padding-left:10px;}
h1.head a{color:inherit;}
@media (max-width:640px){h1.head{font-size:21px;}}
.lede{font-size:15.5px;font-weight:600;line-height:1.85;margin-bottom:18px;text-align:justify;line-break:strict;}
figure.photo{margin:0 0 18px;}
.ph-img{width:100%;display:block;height:auto;}
figure.photo figcaption{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--sub);padding-top:7px;line-height:1.7;}
figure.photo figcaption .cr{flex-shrink:0;color:var(--faint);}
.body-cols p{margin-bottom:1.35em;max-width:38em;text-align:justify;line-break:strict;}
.byline{font-size:13px;color:var(--sub);text-align:right;max-width:38em;}
.artmeta{font-size:12.5px;color:var(--faint);margin-bottom:12px;}
.backlink{display:inline-block;margin-bottom:14px;font-size:13px;}
.fic-inline{font-size:12.5px;color:var(--faint);}

.share{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:10px 0;margin:6px 0 18px;max-width:38em;}
.share .sh-label{font-size:11.5px;letter-spacing:.2em;color:var(--sub);font-weight:600;margin-right:2px;}
.share a,.share button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hairline);background:#fff;color:var(--ink);font-family:inherit;font-size:12.5px;padding:5px 12px;cursor:pointer;text-decoration:none;}
.share a:hover,.share button:hover{background:var(--wash);text-decoration:none;}
.share .sh-x{font-weight:700;}
.share .sh-line{color:#1a8a3c;font-weight:700;}
.share .sh-fb{color:#1c4e80;font-weight:700;}
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--masthead);color:#fff;font-size:12.5px;padding:7px 16px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:60;}

.relates{margin-top:24px;border-top:1px solid var(--hairline);padding-top:14px;max-width:38em;}
.relates h2{font-size:13px;letter-spacing:.2em;color:var(--sub);font-weight:600;margin-bottom:8px;}
.relates ul{list-style:none;}
.relates li{font-size:14px;padding:4px 0;border-bottom:1px dotted var(--hairline);}
.relates li::before{content:"▶";font-size:10px;color:var(--masthead);margin-right:8px;}

.storylist{list-style:none;}
.storylist li{padding:11px 0;border-bottom:1px dotted var(--hairline);}
.storylist .cat{display:inline-block;font-size:11px;color:var(--sub);border:1px solid var(--hairline);padding:0 6px;margin-right:8px;vertical-align:1px;letter-spacing:.05em;}
.storylist a{color:var(--ink);font-weight:600;font-size:15px;line-height:1.6;font-feature-settings:"palt";}
.storylist p{font-size:13px;color:var(--sub);margin-top:2px;line-height:1.7;}
.storylist li.has-thumb{display:flex;gap:12px;align-items:flex-start;}
.storylist .st-txt{flex:1;min-width:0;}
.storylist .thumb{width:76px;height:76px;object-fit:cover;flex:none;border:1px solid var(--hairline);background:var(--wash);margin-top:2px;}
@media (max-width:520px){.storylist .thumb{width:64px;height:64px;}}
.listhead{font-size:13px;letter-spacing:.2em;color:var(--sub);font-weight:600;margin:24px 0 2px;border-left:4px solid var(--masthead);padding-left:9px;}
.catmore{font-size:12.5px;text-align:right;margin-top:4px;}
.plainlist{list-style:none;}
.plainlist li{padding:7px 0;border-bottom:1px dotted var(--hairline);font-size:13.5px;line-height:1.6;}
.plainlist li:last-child{border-bottom:none;}
.plainlist a{color:var(--ink);}

aside{padding:20px 18px 34px;}
@media (max-width:840px){aside{padding-top:0;}}
.widget{margin-bottom:22px;}
.widget>h2{font-size:13px;font-weight:700;letter-spacing:.18em;color:#fff;background:var(--masthead);padding:5px 12px;}
.widget .wbody{border:1px solid var(--hairline);border-top:none;padding:11px 13px;}
table.yuragi{width:100%;border-collapse:collapse;font-size:13.5px;}
table.yuragi th{font-weight:600;text-align:left;color:var(--sub);font-size:12px;letter-spacing:.08em;border-bottom:1px solid var(--hairline);padding:2px 0 6px;}
table.yuragi td{padding:6px 0;border-bottom:1px dotted var(--hairline);}
table.yuragi tr:last-child td{border-bottom:none;}
table.yuragi .idx{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;}
.lv{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;margin-left:8px;color:#fff;vertical-align:1px;}
.lv-low{background:#7d9471;}.lv-mid{background:#c9862b;}
.yuragi-src{font-size:11.5px;color:var(--faint);margin-top:8px;line-height:1.7;}
.wx{font-size:13.5px;border-bottom:1px dotted var(--hairline);padding-bottom:8px;margin-bottom:3px;}
ul.traffic{list-style:none;}
ul.traffic li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dotted var(--hairline);font-size:13.5px;}
ul.traffic li:last-of-type{border-bottom:none;}
.st-ok{color:#5a7a52;font-size:12.5px;}.st-ng{color:var(--alert);font-size:12.5px;font-weight:600;}
ol.rank{list-style:none;counter-reset:r;}
ol.rank li{counter-increment:r;display:flex;gap:11px;padding:7px 0;border-bottom:1px dotted var(--hairline);font-size:13.5px;line-height:1.6;}
ol.rank li::before{content:counter(r);font-weight:700;color:var(--masthead);font-size:15px;min-width:1.1em;text-align:center;font-variant-numeric:tabular-nums;}
ol.rank li:first-child::before{color:var(--alert);}
ol.rank li:last-child{border-bottom:none;}
ol.rank a{color:var(--ink);}
.matchline{font-size:13.5px;text-align:center;padding:6px 0;border-bottom:1px dotted var(--hairline);font-variant-numeric:tabular-nums;}
.matchline:last-of-type{border-bottom:none;}

.ad{border:1px solid var(--hairline);padding:13px;text-align:center;background:#fbfaf7;margin-bottom:22px;}
.ad .ad-tag{font-size:10px;color:var(--faint);letter-spacing:.3em;margin-bottom:7px;}
.ad .ad-h{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:15.5px;font-weight:700;line-height:1.5;margin:6px 0 5px;}
.ad p{font-size:12px;color:var(--sub);line-height:1.75;}
.ad-inline{max-width:38em;margin:18px 0;}
.ad-banner{display:flex;align-items:center;justify-content:center;min-height:64px;background:linear-gradient(135deg,#eef1ee,#e2e7e3);border:1px solid var(--hairline);color:#b3b0a9;font-size:11px;letter-spacing:.3em;}
.ad-img{width:100%;height:auto;display:block;border:1px solid var(--hairline);}

footer.colophon{border-top:3px solid var(--masthead);padding:14px 24px 18px;font-size:11.5px;color:var(--faint);}
footer .frow{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}
footer .fic{margin-top:8px;font-size:10.5px;color:#b0aca4;letter-spacing:.04em;}

/* 深層面 */
nav.sections a.deep{color:#5a3550;font-weight:600;}
.deep-note{font-size:12px;color:#8a6a80;border:1px dashed #cbb3c4;padding:7px 12px;margin-bottom:16px;}
#gate[hidden]{display:none;}
#gate{position:fixed;inset:0;background:rgba(14,10,16,.93);z-index:70;display:flex;align-items:center;justify-content:center;padding:20px;}
.gate-box{background:#f6f2f4;max-width:460px;padding:30px 28px;border-top:4px solid #5a3550;}
.gate-box .gate-mark{display:inline-block;background:#5a3550;color:#fff;font-size:12px;letter-spacing:.3em;padding:2px 10px;margin-bottom:14px;}
.gate-box h2{font-size:16px;margin-bottom:10px;}
.gate-box p{font-size:13.5px;line-height:1.9;color:#3d3540;}
.gate-btns{display:flex;gap:12px;margin-top:20px;align-items:center;}
.gate-btns button{background:#5a3550;color:#fff;border:none;font-family:inherit;font-size:13.5px;padding:9px 18px;cursor:pointer;}
.gate-btns a{font-size:13px;color:#5a3550;}
body.gated-lock{overflow:hidden;}

/* 原信号モード */
body.sig .sig-text{font-family:"Yorube Signal",monospace;color:inherit;line-break:anywhere;word-break:break-all;overflow-wrap:anywhere;}
body.sig .sheet{background:#f7faf8;}
/* 原信号の受信劣化（時間経過でノイズが増える） */
body.sig.sig-n1 .sig-text{text-shadow:0 0 1px rgba(58,90,78,.35);}
body.sig.sig-n2 .sig-text{text-shadow:.4px 0 0 rgba(58,90,78,.45), -.4px 0 1px rgba(23,50,78,.3);}
body.sig.sig-n2 .sheet{background:#f4f8f5;}
@keyframes sigflicker{0%,91%{opacity:1}92%{opacity:.75}93%{opacity:1}96%{opacity:.88}97%,100%{opacity:1}}
body.sig.sig-n3 .sig-text{animation:sigflicker 6.5s infinite;text-shadow:.6px 0 0 rgba(58,90,78,.5), -.6px 0 1.5px rgba(23,50,78,.4);}
body.sig.sig-n3 .sheet{background:#f1f6f2;}
@media (prefers-reduced-motion: reduce){body.sig.sig-n3 .sig-text{animation:none;}}

/* 受信演出 */
#rx[hidden]{display:none;}
#rx{position:fixed;inset:0;background:#0e1a15;color:#9fd8c0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;z-index:50;transition:opacity .6s;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
#rx.hide{opacity:0;pointer-events:none;}
#rx .rx-mast{font-size:30px;letter-spacing:.3em;color:#cfe9dc;font-family:"Yorube Signal",monospace;}
#rx .rx-status{font-size:13px;letter-spacing:.25em;}
#rx .rx-bar{width:220px;height:2px;background:#24443a;overflow:hidden;}
#rx .rx-bar i{display:block;height:100%;width:0;background:#9fd8c0;transition:width 1.5s linear;}
#rx .rx-note{font-size:10.5px;color:#4f7a6a;letter-spacing:.15em;}
@media (prefers-reduced-motion:reduce){#rx{display:none !important;}}
