  :root{
    --night:#12151f;        /* 夜の藍鉄 */
    --night-2:#1a1e2c;
    --washi:#ece3cd;        /* 古い和紙 */
    --washi-dim:#d8cdb0;
    --sumi:#2a2620;         /* 墨 */
    --ember:#d99a3d;        /* 蝋燭の灯 */
    --hitodama:#9fd8d0;     /* 人魂の青白 */
    --line:rgba(236,227,205,.16);
    --radius:14px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{-webkit-text-size-adjust:100%}
  body{
    background:var(--night);
    color:var(--washi);
    font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
    line-height:1.75;
    min-height:100vh;
    background-image:
      radial-gradient(ellipse 60% 40% at 50% -10%, rgba(159,216,208,.06), transparent 70%),
      radial-gradient(ellipse 40% 30% at 85% 100%, rgba(217,154,61,.05), transparent 70%);
    padding-bottom:64px;
  }
  .serif{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif}

  header{
    padding:28px 20px 14px;
    text-align:center;
  }
  .app-title{
    font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
    font-size:34px;
    letter-spacing:.35em;
    text-indent:.35em;
    font-weight:600;
  }
  .app-sub{
    color:var(--washi-dim);
    font-size:12px;
    letter-spacing:.25em;
    margin-top:6px;
    opacity:.8;
  }
  .moon{
    width:10px;height:10px;border-radius:50%;
    background:var(--hitodama);
    box-shadow:0 0 12px 3px rgba(159,216,208,.45);
    display:inline-block;margin-bottom:8px;
    animation:breathe 5s ease-in-out infinite;
  }
  @keyframes breathe{0%,100%{opacity:.6}50%{opacity:1}}
  @media (prefers-reduced-motion: reduce){
    *{animation:none!important;transition:none!important}
  }

  main{max-width:640px;margin:0 auto;padding:0 16px}

  /* 今夜の一話 */
  .tonight{
    background:linear-gradient(160deg, var(--night-2), #151a28);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:18px 18px 16px;
    margin:10px 0 20px;
    position:relative;
    overflow:hidden;
  }
  .tonight::before{
    content:"";
    position:absolute;inset:0;
    background:radial-gradient(ellipse 70% 90% at 20% 0%, rgba(217,154,61,.08), transparent 60%);
    pointer-events:none;
  }
  .eyebrow{
    font-size:11px;letter-spacing:.3em;color:var(--ember);
    margin-bottom:8px;
  }
  .tonight h2{font-size:22px;letter-spacing:.06em;margin-bottom:6px}
  .tonight p{font-size:13.5px;color:var(--washi-dim);margin-bottom:12px}
  .tonight .open-btn{margin-top:2px}

  /* 検索・カテゴリ */
  .search{
    width:100%;
    background:var(--night-2);
    border:1px solid var(--line);
    border-radius:999px;
    color:var(--washi);
    font-size:15px;
    padding:11px 18px;
    outline:none;
    margin-bottom:12px;
  }
  .search::placeholder{color:rgba(216,205,176,.45)}
  .search:focus-visible{border-color:var(--hitodama);box-shadow:0 0 0 2px rgba(159,216,208,.25)}

  .chips{
    display:flex;flex-wrap:wrap;gap:8px;
    padding-bottom:6px;margin-bottom:8px;
  }
  .chip{
    flex:0 0 auto;
    background:transparent;
    border:1px solid var(--line);
    color:var(--washi-dim);
    border-radius:999px;
    padding:7px 15px;
    font-size:13px;
    letter-spacing:.08em;
    cursor:pointer;
  }
  .chip[aria-pressed="true"]{
    background:var(--washi);
    color:var(--sumi);
    border-color:var(--washi);
    font-weight:600;
  }
  .chip:focus-visible{outline:2px solid var(--hitodama);outline-offset:2px}

  .count{font-size:11px;color:var(--washi-dim);letter-spacing:.15em;margin:2px 2px 10px;opacity:.7}

  /* 記事カード */
  .list{display:flex;flex-direction:column;gap:12px}
  .card{
    background:var(--night-2);
    border:1px solid var(--line);
    border-left:3px solid rgba(217,154,61,.5);
    border-radius:var(--radius);
    padding:15px 16px 13px;
    cursor:pointer;
    text-align:left;
    width:100%;
    color:var(--washi);
    font:inherit;
    transition:border-color .2s, transform .15s;
  }
  .card:active{transform:scale(.985)}
  .card:focus-visible{outline:2px solid var(--hitodama);outline-offset:2px}
  .card-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
  .card h3{font-size:17.5px;letter-spacing:.05em;font-weight:600}
  .card .cat{
    flex:0 0 auto;
    font-size:10.5px;letter-spacing:.15em;
    color:var(--hitodama);
    border:1px solid rgba(159,216,208,.35);
    border-radius:4px;
    padding:2px 7px;
  }
  .card p{font-size:13px;color:var(--washi-dim);margin-top:6px}
  .card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
  .bookmark-mark{font-size:11px;color:var(--ember);letter-spacing:.1em}

  /* 百物語の蝋燭(怖さレベル) */
  .candles{display:flex;gap:5px;align-items:flex-end}
  .candle{width:8px;height:14px;position:relative}
  .candle::after{ /* 蝋燭本体 */
    content:"";position:absolute;bottom:0;left:1.5px;
    width:5px;height:9px;border-radius:2px 2px 1px 1px;
    background:rgba(236,227,205,.35);
  }
  .candle.lit::after{background:rgba(236,227,205,.75)}
  .candle.lit::before{ /* 炎 */
    content:"";position:absolute;top:0;left:2px;
    width:4px;height:6px;
    border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
    background:radial-gradient(circle at 50% 70%, var(--ember), rgba(217,154,61,0) 75%);
    box-shadow:0 0 6px 1px rgba(217,154,61,.55);
    animation:flicker 2.4s ease-in-out infinite;
  }
  .candle.lit:nth-child(2)::before{animation-delay:.4s}
  .candle.lit:nth-child(3)::before{animation-delay:.9s}
  .candle.lit:nth-child(4)::before{animation-delay:.2s}
  .candle.lit:nth-child(5)::before{animation-delay:.7s}
  @keyframes flicker{0%,100%{opacity:.85;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.25)}}
  .lv-label{font-size:10px;color:var(--washi-dim);letter-spacing:.12em;margin-right:7px}
  .lv-wrap{display:flex;align-items:center}

  /* ボタン */
  .btn{
    display:inline-block;
    background:transparent;
    border:1px solid var(--ember);
    color:var(--ember);
    border-radius:999px;
    padding:9px 20px;
    font-size:13.5px;
    letter-spacing:.15em;
    cursor:pointer;
    font-family:inherit;
  }
  .btn:focus-visible{outline:2px solid var(--hitodama);outline-offset:2px}
  .btn.solid{background:var(--ember);color:var(--sumi);font-weight:600}

  .empty{
    text-align:center;color:var(--washi-dim);
    padding:40px 10px;font-size:14px;letter-spacing:.05em;
  }

  /* 詳細(古文書の紙) */
  .overlay{
    position:fixed;inset:0;
    background:rgba(8,10,16,.75);
    backdrop-filter:blur(3px);
    display:none;
    align-items:flex-end;
    justify-content:center;
    z-index:50;
  }
  .overlay.show{display:flex}
  .sheet{
    background:var(--washi);
    color:var(--sumi);
    width:100%;max-width:640px;
    max-height:88vh;
    border-radius:18px 18px 0 0;
    overflow-y:auto;
    padding:26px 22px 40px;
    background-image:
      radial-gradient(ellipse 80% 40% at 50% 0%, rgba(42,38,32,.05), transparent 60%),
      repeating-linear-gradient(0deg, transparent 0 3px, rgba(42,38,32,.015) 3px 4px);
    animation:rise .3s ease;
  }
  @keyframes rise{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
  .sheet .cat-line{
    display:flex;justify-content:space-between;align-items:center;
    font-size:11px;letter-spacing:.25em;color:#8a7f68;
    margin-bottom:14px;
  }
  .sheet h2{
    font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
    font-size:28px;letter-spacing:.08em;
    border-bottom:1px solid rgba(42,38,32,.25);
    padding-bottom:12px;margin-bottom:14px;
  }
  .sheet .lv-wrap{margin-bottom:18px}
  .sheet .lv-label{color:#8a7f68}
  .sheet .candle::after{background:rgba(42,38,32,.25)}
  .sheet .candle.lit::after{background:rgba(42,38,32,.6)}
  .sheet .body{font-size:15px;line-height:2;margin-bottom:20px}

  /* 語り(読み上げ) */
  .tts{
    position:sticky; top:-1px; z-index:3;
    background:var(--washi);
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
    padding:10px 0 9px; margin-bottom:16px;
    border-bottom:1px solid rgba(42,38,32,.2);
  }
  .tts .btn{padding:7px 15px;font-size:12.5px;letter-spacing:.1em}
  .tts .btn[hidden]{display:none}
  .tonight-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}
  .tonight-actions .btn[hidden]{display:none}
  .tts-stat{font-size:11px;letter-spacing:.18em;color:#8a7f68}
  .tts-rate{
    margin-left:auto;
    font-family:inherit;font-size:12px;color:var(--sumi);
    background:transparent;
    border:1px solid rgba(42,38,32,.35);
    border-radius:999px;padding:6px 10px;
  }
  .tts-bar{flex-basis:100%;height:2px;background:rgba(42,38,32,.12);border-radius:2px;overflow:hidden}
  .tts-bar > i{display:block;height:100%;width:0;background:var(--ember);transition:width .3s linear}
  .sheet .s.on{
    background:linear-gradient(transparent 62%, rgba(217,154,61,.55) 62%);
    border-radius:2px;
  }
  .sheet .kobore{
    border-left:3px solid var(--ember);
    background:rgba(217,154,61,.08);
    padding:12px 14px;
    font-size:13.5px;
    border-radius:0 8px 8px 0;
    margin-bottom:24px;
  }
  .kobore b{display:block;font-size:11px;letter-spacing:.2em;color:#a0742c;margin-bottom:4px}
  .sheet-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
  .sheet .btn{border-color:var(--sumi);color:var(--sumi)}
  .sheet .btn.solid{background:var(--sumi);color:var(--washi)}


  /* 投稿バッジ・考察数 */
  .badge-mine{
    font-size:10.5px;color:var(--ember);
    border:1px solid rgba(217,154,61,.45);
    border-radius:4px;padding:2px 7px;letter-spacing:.15em;
  }
  .c-count{font-size:11px;color:var(--washi-dim);letter-spacing:.1em}
  .draw-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:22px 0 8px}
  .btn.danger{border-color:#b0503c;color:#b0503c}

  /* 詳細内: 考察帖 */
  .sec-t{
    font-size:12px;letter-spacing:.25em;color:#8a7f68;
    border-top:1px solid rgba(42,38,32,.2);
    padding-top:18px;margin:26px 0 8px;
  }
  .c-item{border-bottom:1px dashed rgba(42,38,32,.28);padding:10px 2px}
  .c-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8a7f68;letter-spacing:.12em;margin-bottom:4px}
  .c-del{background:none;border:none;color:#a0742c;font-size:11px;cursor:pointer;letter-spacing:.1em;font-family:inherit;padding:2px 4px}
  .c-del:focus-visible{outline:2px solid var(--hitodama);outline-offset:2px}
  .c-text{font-size:14px;line-height:1.9;white-space:pre-wrap}
  .c-empty{font-size:13px;color:#8a7f68;padding:6px 0 2px}
  .c-form{margin-top:12px}
  .c-actions{display:flex;justify-content:flex-end;margin-top:8px}

  /* 投稿フォーム */
  .f-label{display:block;font-size:11px;letter-spacing:.22em;color:#8a7f68;margin:16px 0 6px}
  .f-label .req{color:#b0503c;margin-left:4px}
  .f-input,.f-select,.f-textarea{
    width:100%;
    background:rgba(255,255,255,.55);
    border:1px solid rgba(42,38,32,.35);
    border-radius:8px;
    padding:10px 12px;
    font:inherit;font-size:15px;line-height:1.7;
    color:var(--sumi);
  }
  .f-textarea{min-height:130px;resize:vertical}
  .f-input:focus-visible,.f-select:focus-visible,.f-textarea:focus-visible{
    outline:2px solid var(--ember);outline-offset:1px;
  }
  .lv-picker{display:flex;gap:8px}
  .lv-opt{
    flex:1;
    background:rgba(255,255,255,.45);
    border:1px solid rgba(42,38,32,.35);
    border-radius:8px;
    padding:9px 0;
    font:inherit;font-size:14px;
    color:var(--sumi);cursor:pointer;
  }
  .lv-opt[aria-pressed="true"]{background:var(--sumi);color:var(--washi);font-weight:600}
  .lv-opt:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
  .f-err{display:none;color:#b0503c;font-size:12.5px;letter-spacing:.08em;margin-top:14px}
  .f-err.show{display:block}


  .sync{font-size:11px;letter-spacing:.15em;color:var(--washi-dim);opacity:.75;text-align:center;margin:-2px 0 12px}
  .sync .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}
  .sync .on{background:var(--hitodama);box-shadow:0 0 6px rgba(159,216,208,.6)}
  .sync .off{background:var(--ember)}
  
  /* 収益化パーツ */
  .ad-box{
    max-width:640px;margin:18px auto;
    border:1px dashed rgba(236,227,205,.25);
    border-radius:10px;
    min-height:90px;
    display:flex;align-items:center;justify-content:center;
    color:rgba(216,205,176,.35);
    font-size:11px;letter-spacing:.2em;
  }
  .sheet .ad-box{border-color:rgba(42,38,32,.3);color:#a99f88;margin:18px 0}
  .support{
    display:block;text-align:center;
    border:1px solid var(--ember);
    color:var(--ember);
    border-radius:999px;
    padding:11px 20px;
    font-size:13.5px;letter-spacing:.12em;
    text-decoration:none;
    margin:6px auto 0;max-width:340px;
  }
  .sheet .support{border-color:var(--sumi);color:var(--sumi)}
  .foot-links{display:flex;gap:16px;justify-content:center;margin-top:14px}
  .foot-links button{
    background:none;border:none;color:rgba(216,205,176,.55);
    font-size:11px;letter-spacing:.15em;cursor:pointer;
    text-decoration:underline;font-family:inherit;
  }
  footer{
    text-align:center;
    color:rgba(216,205,176,.4);
    font-size:11px;letter-spacing:.2em;
    margin-top:36px;
  }
  /* ===== 静的ページ用 ===== */
  .page-main{max-width:760px;margin:0 auto;padding:0 16px 40px}
  .crumb{font-size:11px;letter-spacing:.18em;color:rgba(216,205,176,.6);margin:4px 0 14px}
  .crumb a{color:rgba(216,205,176,.75)}
  .crumb span{margin:0 6px;opacity:.5}
  .paper{
    background:var(--washi);color:var(--sumi);
    border-radius:18px;padding:28px 22px 34px;
    background-image:
      radial-gradient(ellipse 80% 40% at 50% 0%, rgba(42,38,32,.05), transparent 60%),
      repeating-linear-gradient(0deg, transparent 0 3px, rgba(42,38,32,.015) 3px 4px);
  }
  .paper .cat-line{
    display:flex;justify-content:space-between;align-items:center;
    font-size:11px;letter-spacing:.25em;color:#8a7f68;margin-bottom:14px;
  }
  .paper h1{
    font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
    font-size:27px;line-height:1.5;letter-spacing:.08em;font-weight:600;
    border-bottom:1px solid rgba(42,38,32,.25);
    padding-bottom:12px;margin-bottom:14px;
  }
  .paper .lead{font-size:14.5px;line-height:1.9;color:#5d5548;margin-bottom:16px}
  .paper .body{font-size:15px;line-height:2;margin-bottom:20px}
  .paper .s.on{background:linear-gradient(transparent 62%, rgba(217,154,61,.55) 62%);border-radius:2px}
  .paper .btn{border-color:var(--sumi);color:var(--sumi)}
  .paper .btn.solid{background:var(--sumi);color:var(--washi)}
  .paper .tts{background:var(--washi)}
  .paper .sec-t{font-size:12px;letter-spacing:.25em;color:#8a7f68;border-top:1px solid rgba(42,38,32,.2);padding-top:18px;margin:26px 0 10px}
  .lv-static{display:flex;align-items:center;gap:7px;margin-bottom:16px;font-size:12px;color:#8a7f68;letter-spacing:.15em}
  .lv-static i{display:inline-block;width:9px;height:9px;border-radius:50%;background:rgba(42,38,32,.22)}
  .lv-static i.lit{background:rgba(217,154,61,.95);box-shadow:0 0 6px rgba(217,154,61,.5)}
  .cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
  .cta-row a{
    border:1px solid var(--sumi);color:var(--sumi);text-decoration:none;
    border-radius:999px;padding:9px 18px;font-size:13px;letter-spacing:.12em;
  }
  .cta-row a.solid{background:var(--sumi);color:var(--washi)}
  .rel{margin-top:28px}
  .rel h2{font-size:12px;letter-spacing:.25em;color:rgba(216,205,176,.65);margin-bottom:12px;font-weight:400}
  .rel ul{list-style:none;display:grid;gap:8px}
  .rel a{
    display:block;text-decoration:none;color:var(--washi);
    border:1px solid var(--line);border-radius:10px;padding:12px 14px;
    background:var(--night-2);font-size:14px;line-height:1.6;
  }
  .rel a small{display:block;color:var(--washi-dim);font-size:12px;margin-top:3px;opacity:.8}

  /* トップの静的アーカイブ */
  .archive{max-width:640px;margin:34px auto 0}
  .archive h2{
    font-size:12px;letter-spacing:.25em;color:rgba(216,205,176,.65);
    font-weight:400;margin-bottom:6px;
  }
  .archive .arch-note{font-size:12px;color:rgba(216,205,176,.45);line-height:1.9;margin-bottom:16px}
  .archive h3{
    font-size:12px;letter-spacing:.2em;color:var(--ember);
    font-weight:400;margin:18px 0 8px;
  }
  .archive ul{list-style:none;display:grid;gap:6px}
  .archive li a{
    color:var(--washi-dim);text-decoration:none;font-size:13.5px;line-height:1.8;
    display:block;padding:4px 0;border-bottom:1px dotted rgba(236,227,205,.14);
  }
  .archive li a:hover{color:var(--washi)}
  .intro{
    max-width:640px;margin:0 auto 18px;
    font-size:13.5px;line-height:2;color:var(--washi-dim);
  }
  .foot-links a{
    color:rgba(216,205,176,.55);font-size:11px;letter-spacing:.15em;text-decoration:underline;
  }


  /* 長文版: 本文・考察の段落改行を保持 */
  .sheet .body, .paper .body, .sheet .kobore, .paper .kobore{white-space:pre-line}
  .kobore b{white-space:normal}

/* --- v32: UI改修 --- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tts-close{padding:6px 11px;font-size:13px;line-height:1}
.to-top{position:fixed;right:16px;bottom:18px;z-index:20;width:42px;height:42px;
    border-radius:999px;border:1px solid rgba(42,38,32,.35);
    background:var(--washi);color:var(--sumi);font-size:12px;cursor:pointer;
    box-shadow:0 2px 10px rgba(0,0,0,.18)}
.to-top[hidden]{display:none}
.sheet-actions .btn + .btn{margin-left:8px}

/* 現地写真 */
.ph{margin:10px 0 12px;white-space:normal}
.ph img{display:block;width:100%;height:auto;border-radius:6px;background:#1a1612}
.ph figcaption{font-size:12px;line-height:1.7;color:#7a6f5e;margin-top:5px;letter-spacing:.02em}

/* v44: 審査対策の追加要素 */
.archive .cat-desc{font-size:13px;line-height:1.95;color:rgba(216,205,176,.62);margin:-4px 0 12px;white-space:normal}
.paper .dates{font-size:12px;letter-spacing:.08em;color:#8a7f68;margin:-6px 0 14px}
.paper .about-note{font-size:12.5px;line-height:1.9;color:#6b6252;background:rgba(42,38,32,.05);border-left:3px solid rgba(138,127,104,.5);padding:10px 14px;margin:26px 0 6px;white-space:normal}
.paper .about-note a,.archive .arch-note a{color:inherit;text-decoration:underline}
.paper .body a{color:inherit;text-decoration:underline}

.paper .quick{font-size:14px;line-height:1.95;color:#3d372d;background:rgba(138,127,104,.12);border:1px solid rgba(138,127,104,.35);border-radius:6px;padding:12px 16px;margin:4px 0 18px;white-space:normal}
.paper .quick b{display:block;font-size:11.5px;letter-spacing:.25em;color:#8a7f68;margin-bottom:4px}

/* v46 */
.paper .refs{font-size:13px;line-height:1.9;color:#5d5548;margin:22px 0 0;white-space:normal}
.paper .refs b{display:block;font-size:11.5px;letter-spacing:.25em;color:#8a7f68;margin-bottom:4px}
.paper .refs ul{margin:0;padding-left:1.2em}
.paper .refs a{color:inherit;text-decoration:underline}
.sheet .refs{font-size:13px;line-height:1.9;color:#5d5548;margin:18px 0 6px;white-space:normal}
.sheet .refs b{display:block;font-size:11.5px;letter-spacing:.25em;color:#8a7f68;margin-bottom:4px}
.sheet .refs ul{margin:0;padding-left:1.2em}
.sheet .refs a{color:inherit;text-decoration:underline}
.archive .cat-link{display:inline-block;margin-left:.4em;color:rgba(216,205,176,.85);text-decoration:underline;white-space:nowrap}
.paper .cat-list{list-style:none;margin:8px 0 0;padding:0}
.paper .cat-list li{border-top:1px solid rgba(42,38,32,.15);padding:12px 0}
.paper .cat-list li:first-child{border-top:0}
.paper .cat-list a{color:inherit;text-decoration:none;display:block}
.paper .cat-list b{display:block;font-size:16px;font-weight:600;margin-bottom:3px}
.paper .cat-list small{display:block;font-size:13px;line-height:1.8;color:#6b6252}
.paper .changelog{margin:8px 0 0}
.paper .changelog dt{font-size:12.5px;letter-spacing:.1em;color:#8a7f68;margin-top:16px}
.paper .changelog dd{margin:4px 0 0;font-size:14.5px;line-height:1.95;color:#3d372d}
