/* 石井岳海の小説 — 1話ずつ読めるサイト（スマホ・LINE内ブラウザ優先） */
:root{
  --navy:#0F2238; --navy2:#1B3C61; --gold:#C4A147; --gold-l:#E3C979; --cyan:#1FC3DB;
  --paper:#FBF8F1; --ink:#22201C; --mute:#7A7468; --line:#06C755; --line-d:#05A847; --radius:14px;
  --serif:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.8;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:640px;margin:0 auto;padding:0 18px}

.btn{display:block;text-align:center;font-weight:900;border-radius:999px;padding:17px 20px;font-size:16.5px;line-height:1.4;width:100%;max-width:420px;margin:0 auto;transition:transform .15s}
.btn:active{transform:scale(.97)}
.btn-gold{background:var(--gold);color:var(--navy);box-shadow:0 5px 0 #9C7F31}
.btn-line{background:var(--line);color:#fff;box-shadow:0 5px 0 var(--line-d)}
.btn-ghost{border:2px solid rgba(255,255,255,.55);color:#fff;margin-top:12px}

/* ---------- 作品トップ ---------- */
.cover{position:relative;background:var(--navy);color:#fff;text-align:center;padding:64px 18px 40px;overflow:hidden}
.cover::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(196,161,71,.28),transparent 60%),radial-gradient(ellipse at 50% 120%,rgba(31,195,219,.18),transparent 60%)}
.cover>*{position:relative}
.cover-lbl{font-size:12px;letter-spacing:.3em;color:var(--gold-l)}
.cover-ttl{font-family:var(--serif);font-size:clamp(32px,9vw,52px);line-height:1.35;letter-spacing:.08em;margin:14px 0 6px}
.cover-au{font-family:var(--serif);letter-spacing:.3em;color:#cfd9e3}
.cover-catch{margin:22px auto 26px;max-width:28em;font-family:var(--serif);font-size:17px;color:#fff;border-top:1px solid rgba(196,161,71,.5);border-bottom:1px solid rgba(196,161,71,.5);padding:14px 0}
.cover-meta{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.cover-meta span{font-size:12.5px;font-weight:700;border:1.5px solid var(--gold);color:var(--gold-l);border-radius:999px;padding:3px 12px}
.next-box{margin:18px auto 0;max-width:420px;background:rgba(255,255,255,.08);border-radius:12px;padding:12px;font-size:14px}
.next-box b{color:var(--gold-l)}

.sec{padding:36px 0}
.h2{font-family:var(--serif);font-size:20px;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.h2::before{content:"";width:5px;height:22px;background:var(--gold);border-radius:3px}
.story{font-family:var(--serif);font-size:16px;line-height:2;white-space:pre-wrap}

.eps{list-style:none;border-top:1px solid #E6DFD0}
.ep{border-bottom:1px solid #E6DFD0}
.ep a,.ep.lock{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:10px;padding:16px 4px}
.ep-no{font-family:var(--serif);font-weight:700;color:var(--navy);font-size:15px}
.ep-ttl{font-weight:700;line-height:1.5}
.ep-st{font-size:13px;font-weight:700;color:var(--gold);white-space:nowrap}
.ep.done .ep-ttl{color:var(--mute)}
.ep.done .ep-st{color:var(--mute)}
.ep.lock{color:#B3AB9B}
.ep.lock .ep-no{color:#B3AB9B}
.ep.lock .ep-st{color:#B3AB9B}
.ep.lock .ep-st::before{content:"🔒 "}
.new{font-style:normal;font-size:10.5px;font-weight:900;background:#E34B4B;color:#fff;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px}

.line-box{background:var(--navy);color:#fff;border-radius:var(--radius);padding:24px 18px;text-align:center}
.line-box p{margin-bottom:16px;font-weight:700}
.line-box small{display:block;font-weight:400;color:#a9bccd;font-size:12.5px;margin-top:10px}

.ft{text-align:center;font-size:12px;color:var(--mute);padding:28px 18px 40px}
.ft a{text-decoration:underline}

/* ---------- 読む画面 ---------- */
.rhd{position:sticky;top:0;z-index:20;background:rgba(251,248,241,.95);backdrop-filter:blur(6px);border-bottom:1px solid #E6DFD0}
.rhd-in{display:flex;align-items:center;gap:10px;height:52px}
.rhd-back{font-size:22px;color:var(--navy);padding:0 6px}
.rhd-ttl{flex:1;font-size:13px;font-weight:700;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rhd-size{font:inherit;font-size:13px;font-weight:700;border:1.5px solid var(--navy);color:var(--navy);background:none;border-radius:8px;padding:3px 10px;cursor:pointer}
.rbar{height:3px;background:#EEE7D8}
.rbar span{display:block;height:100%;width:0;background:var(--gold)}

.rtop{text-align:center;padding:40px 0 26px}
.rno{font-family:var(--serif);color:var(--gold);letter-spacing:.2em;font-size:15px}
.rtitle{font-family:var(--serif);font-size:clamp(24px,6.6vw,32px);color:var(--navy);line-height:1.5;margin-top:6px}
.rprog{font-size:12px;color:var(--mute);margin-top:6px}
.rbody{font-family:var(--serif);color:var(--ink);letter-spacing:.03em;padding-bottom:20px}
.rbody p{margin-bottom:.85em;text-indent:1em}
body[data-size="s"] .rbody{font-size:16px;line-height:2}
body[data-size="m"] .rbody{font-size:18px;line-height:2.05}
body[data-size="l"] .rbody{font-size:21px;line-height:2.1}

.rend{text-align:center;font-family:var(--serif);color:var(--mute);letter-spacing:.4em;padding:16px 0 28px}
.teaser{background:var(--navy);color:#fff;border-radius:var(--radius);padding:22px 18px;margin-bottom:22px;position:relative;overflow:hidden}
.teaser::before{content:"NEXT";position:absolute;right:-6px;top:-14px;font-family:var(--serif);font-size:70px;color:rgba(196,161,71,.16);letter-spacing:.05em}
.teaser-lbl{font-size:12px;letter-spacing:.25em;color:var(--gold-l);font-weight:700}
.teaser-txt{font-family:var(--serif);font-size:18px;line-height:1.8;margin-top:6px;position:relative}
.rnext{margin-bottom:22px}
.wait{text-align:center;font-weight:700;color:var(--navy);margin-bottom:14px;line-height:1.8}
.wait b{color:var(--gold);font-size:1.2em}
.rprev{text-align:center;margin-bottom:28px;font-size:14px;color:var(--mute)}
.rprev a{text-decoration:underline}

.feel{background:#fff;border:1px solid #E6DFD0;border-radius:var(--radius);padding:20px 16px;margin-bottom:24px}
.feel h3{font-size:16px;color:var(--navy);margin-bottom:4px}
.feel > p{font-size:12.5px;color:var(--mute);margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chips button{font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border-radius:999px;border:1.5px solid #E6DFD0;background:var(--paper);cursor:pointer;color:var(--ink)}
.chips button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.feel textarea{width:100%;font:inherit;font-size:15px;border:1.5px solid #E6DFD0;border-radius:10px;padding:10px 12px;margin-bottom:14px;resize:vertical;background:var(--paper)}
.toep{display:block;text-align:center;font-weight:700;color:var(--navy);padding:14px;border:2px solid var(--navy);border-radius:999px;max-width:420px;margin:0 auto 10px}
.rbody p.n{text-indent:0}

/* ---------- 作品一覧 ---------- */
.cover-lib{padding:56px 18px 36px}
.cover-lbl a{color:var(--gold-l);text-decoration:none}
.cover-sub{font-family:var(--serif);font-size:14px;color:var(--gold-l);letter-spacing:.15em;margin:-2px 0 8px}
.cover-sub:empty{display:none}
.library{display:grid;gap:22px}
.book-wrap{display:grid;gap:6px}
.book{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--navy);color:#fff;border-radius:var(--radius);padding:24px 20px 20px;overflow:hidden;box-shadow:0 10px 30px rgba(15,34,56,.25)}
.book::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 100% 0%,rgba(196,161,71,.3),transparent 55%)}
.book>*{position:relative}
.book-st{align-self:flex-start;font-size:11.5px;font-weight:900;background:#E34B4B;color:#fff;border-radius:4px;padding:2px 8px}
.book-st.end{background:var(--mute)}
.book-ttl{font-family:var(--serif);font-size:clamp(26px,7.4vw,34px);letter-spacing:.08em;line-height:1.35}
.book-sub{font-family:var(--serif);font-size:13px;color:var(--gold-l);letter-spacing:.12em;margin-top:-4px}
.book-catch{font-family:var(--serif);font-size:15.5px;color:#e6edf4;border-left:3px solid var(--gold);padding-left:10px;margin:6px 0}
.book-meta{font-size:12.5px;color:#a9bccd}
.book-next{font-size:13px;font-weight:700;color:var(--gold-l)}
.book-btn{margin-top:8px;text-align:center;background:var(--gold);color:var(--navy);font-weight:900;border-radius:999px;padding:13px}
.book-detail{text-align:right;font-size:13px;font-weight:700;color:var(--navy);padding-right:6px}
.rbody p.ts{text-indent:0;text-align:center;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;letter-spacing:.12em;color:var(--mute);margin:2.2em 0 1.6em}
.rbody p.sep{text-indent:0;text-align:center;color:var(--gold);letter-spacing:1em;margin:2em 0}
