:root {
  color-scheme: dark;
  --bg: #03030a;
  --panel: rgba(11, 14, 31, .78);
  --panel-strong: rgba(14, 18, 40, .94);
  --text: #f6f7ff;
  --muted: #b8bfd5;
  --line: rgba(179, 196, 255, .22);
  --cyan: #72d9ff;
  --blue: #7ba5ff;
  --violet: #b988ff;
}
* { box-sizing: border-box; }
html { min-height:100%; background:var(--bg); scroll-behavior:smooth; }
body {
  margin:0; min-height:100vh; color:var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 16% 10%, rgba(58,107,255,.16), transparent 31rem),
    radial-gradient(circle at 84% 7%, rgba(160,78,255,.14), transparent 28rem),
    radial-gradient(circle at 50% 100%, rgba(69,214,255,.07), transparent 36rem),
    linear-gradient(180deg,#050713 0%,#03030a 58%,#010104 100%);
  overflow-x:hidden;
}
body::before {
  content:""; position:fixed; inset:0; pointer-events:none; opacity:.25;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.62) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(120,190,255,.5) 0 1px, transparent 1.3px);
  background-size:97px 97px,151px 151px; background-position:19px 13px,41px 67px;
  mask-image:linear-gradient(to bottom,#000,transparent 70%);
}
a { color:inherit; }
.site-shell { width:min(1180px,calc(100% - 32px)); margin:0 auto; position:relative; z-index:1; }
.topbar { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); }
.brand { text-decoration:none; display:inline-flex; align-items:center; gap:11px; font-family:Georgia,"Times New Roman",serif; letter-spacing:.02em; font-size:clamp(1.1rem,2vw,1.35rem); }
.brand-mark { width:33px; aspect-ratio:1; border:1px solid rgba(216,228,255,.5); border-radius:50%; display:grid; place-items:center; box-shadow:0 0 24px rgba(119,166,255,.22); background:rgba(255,255,255,.035); font-size:18px; }
.navlinks { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.navlinks a { text-decoration:none; color:var(--muted); border:1px solid transparent; padding:9px 13px; border-radius:999px; transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease; }
.navlinks a:hover,.navlinks a:focus-visible,.navlinks a[aria-current="page"] { color:white; background:rgba(255,255,255,.055); border-color:var(--line); outline:none; }
.navlinks a:hover,.navlinks a:focus-visible { transform:translateY(-1px); }
.tm-mark { font-size:.42em; line-height:1; vertical-align:super; margin-left:.12em; color:#cfe7ff; text-shadow:0 0 10px rgba(154,190,255,.35); font-family:Arial,Helvetica,sans-serif; font-weight:600; }
.footer .tm-mark { font-size:.56em; }
.footer { color:#868ca2; border-top:1px solid var(--line); padding:26px 0 34px; font-size:.86rem; text-align:center; }

.story-hero { text-align:center; padding:clamp(64px,10vw,118px) 0 40px; }
.eyebrow { margin:0 0 12px; color:#c2cdf5; text-transform:uppercase; letter-spacing:.24em; font-size:.73rem; font-weight:700; }
.story-hero h1,.chapter-title { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:.018em; line-height:.96; text-shadow:0 0 32px rgba(115,147,255,.22); background:linear-gradient(110deg,#fff 15%,#bfe8ff 46%,#d7b8ff 80%,#fff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.story-hero h1 { font-size:clamp(2.7rem,7vw,5.9rem); max-width:980px; margin-left:auto; margin-right:auto; }
.story-hero .story-intro { width:min(670px,100%); margin:20px auto 0; color:var(--muted); line-height:1.75; font-size:clamp(.98rem,2vw,1.08rem); }
.supporter-cta { display:grid; justify-items:center; gap:10px; width:min(670px,100%); margin:22px auto 0; }
.supporter-button { display:inline-flex; align-items:center; justify-content:center; min-height:43px; padding:10px 18px; border:1px solid rgba(213,226,255,.42); border-radius:999px; color:#f7f4ff; background:linear-gradient(135deg,rgba(82,112,224,.26),rgba(174,84,203,.22)); text-decoration:none; font-weight:800; letter-spacing:.02em; box-shadow:0 0 20px rgba(149,102,255,.08); transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease; }
.supporter-button:hover,.supporter-button:focus-visible { transform:translateY(-1px); border-color:rgba(227,236,255,.78); background:linear-gradient(135deg,rgba(82,112,224,.38),rgba(174,84,203,.34)); box-shadow:0 0 24px rgba(149,102,255,.16); outline:none; }
.supporter-cta span { color:#8f97b0; font-size:.86rem; line-height:1.5; }
.supporter-cta span a { color:#b9d7ff; text-decoration:none; border-bottom:1px solid rgba(185,215,255,.34); }
.supporter-cta span a:hover,.supporter-cta span a:focus-visible { color:#fff; border-bottom-color:rgba(255,255,255,.72); outline:none; }
.chapter-browser { width:min(860px,100%); margin:0 auto; display:flex; gap:16px; align-items:end; justify-content:space-between; flex-wrap:wrap; padding:0 0 10px; }
.chapter-search-label { display:grid; gap:7px; color:#aeb9d4; font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; width:min(460px,100%); }
.chapter-search { width:100%; min-height:44px; border:1px solid var(--line); border-radius:13px; background:#080c1b; color:#fff; padding:10px 13px; font:inherit; font-size:1rem; letter-spacing:normal; text-transform:none; }
.chapter-search:focus { outline:1px solid #789dff; border-color:#789dff; }
.chapter-count { margin:0; color:#8f97b0; font-size:.88rem; }
.chapter-list { width:min(860px,100%); margin:0 auto; padding:10px 0 26px; }
.chapter-arc-heading { margin:35px 0 16px; padding:0 5px 12px; border-bottom:1px solid rgba(179,196,255,.2); color:#d8eaff; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.35rem,3.5vw,1.85rem); font-weight:400; line-height:1.3; text-shadow:0 0 20px rgba(132,155,255,.18); }
.chapter-arc-heading:first-child { margin-top:12px; }

.chapter-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px; text-decoration:none; padding:15px 18px; border:1px solid var(--line); border-radius:15px; background:linear-gradient(135deg,rgba(25,31,67,.6),rgba(7,9,22,.86)); transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.chapter-card:hover,.chapter-card:focus-visible { transform:translateY(-2px); border-color:rgba(188,209,255,.55); background:linear-gradient(135deg,rgba(32,40,83,.72),rgba(9,12,29,.92)); outline:none; }
.chapter-number { width:44px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(192,213,255,.3); font-family:Georgia,"Times New Roman",serif; font-size:1rem; color:#d9eaff; background:rgba(255,255,255,.035); }
.chapter-card-copy { min-width:0; }
.chapter-card h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(1.28rem,2.8vw,1.72rem); line-height:1.15; }
.chapter-heading-label { margin:0 0 4px!important; color:#aeb9d4!important; text-transform:uppercase; letter-spacing:.14em; font-size:.66rem!important; font-weight:800; }
.chapter-card p { margin:0; color:var(--muted); line-height:1.45; }
.chapter-arrow { color:#d7e7ff; font-size:1.25rem; }
.chapter-pagination { width:min(860px,100%); margin:0 auto; padding:0 0 76px; display:flex; align-items:center; justify-content:center; gap:7px; flex-wrap:wrap; }
.chapter-pagination[hidden] { display:none; }
.chapter-page-button { min-height:40px; min-width:40px; border:1px solid var(--line); border-radius:10px; padding:8px 11px; background:rgba(255,255,255,.035); color:#d9e1f6; font:inherit; cursor:pointer; }
.chapter-page-button:hover,.chapter-page-button:focus-visible { border-color:rgba(213,226,255,.62); background:rgba(255,255,255,.07); outline:none; }
.chapter-page-button.active { border-color:#8cafff; background:#23345d; color:#fff; }
.chapter-page-button:disabled { opacity:.38; cursor:default; }
.release-note { text-align:center; color:#8f97b0; line-height:1.7; margin:22px 0 0; }

.reader-shell { width:min(900px,calc(100% - 32px)); margin:0 auto; position:relative; z-index:1; }
.reader-head { text-align:center; padding:clamp(54px,8vw,92px) 0 36px; border-bottom:1px solid var(--line); }
.reader-head .series { margin:0 0 14px; color:#c2cdf5; text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; font-weight:700; }
.chapter-title { font-size:clamp(3rem,8vw,6.2rem); }
.chapter-subtitle { margin:14px 0 0; color:#d0d7eb; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.05rem,2.2vw,1.25rem); letter-spacing:.08em; }
.reader-head .chapter-heading-label { margin:0 0 14px!important; }
.chapter-nav { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; padding:22px 0; border-bottom:1px solid var(--line); }
.chapter-nav.bottom { border-top:1px solid var(--line); border-bottom:0; margin-top:38px; padding:26px 0 10px; }
.nav-button,.contents-button { min-height:43px; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:9px 14px; text-decoration:none; color:#d9e1f6; background:rgba(255,255,255,.035); transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.nav-button.next { justify-self:end; }
.nav-button.prev { justify-self:start; }
.contents-button { justify-self:center; }
.nav-button:hover,.nav-button:focus-visible,.contents-button:hover,.contents-button:focus-visible { transform:translateY(-1px); border-color:rgba(213,226,255,.62); background:rgba(255,255,255,.07); outline:none; }
.nav-button.disabled { opacity:.38; pointer-events:none; user-select:none; }
.chapter-body { padding:clamp(38px,7vw,68px) 0 18px; }
.chapter-body p { margin:0 0 1.38em; color:#e6e8f2; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.08rem,2.1vw,1.22rem); line-height:1.9; text-wrap:pretty; }
.chapter-body .opening-line { color:#fff; font-size:clamp(1.25rem,2.5vw,1.5rem); }
.chapter-body .mind-voice { --mind-accent:#72D9FF; color:#cce8ff; font-style:italic; padding-left:1.05rem; position:relative; border-left:0; }
.chapter-body .mind-voice::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; border-radius:999px; background:var(--mind-accent); opacity:.32; pointer-events:none; }
.chapter-body .mind-voice::after { content:""; position:absolute; left:-1px; top:0; bottom:0; width:4px; border-radius:999px; background:linear-gradient(to bottom,var(--mind-accent) 0%,var(--mind-accent) 14%,transparent 38%,transparent 62%,var(--mind-accent) 86%,var(--mind-accent) 100%); filter:drop-shadow(0 0 2px var(--mind-accent)); pointer-events:none; }
.chapter-body .mind-voice[data-mind-voice="abalthiria"] { --mind-accent:#000080; }
.chapter-body .mind-voice[data-mind-voice="kuon"] { --mind-accent:#C45607; }
.chapter-body .mind-voice[data-mind-voice="aster"] { --mind-accent:#C4C4C4; }
.chapter-body .mind-voice[data-mind-voice="lyra"] { --mind-accent:#90D5FF; }
.chapter-body .mind-voice[data-mind-voice="ren"] { --mind-accent:#FFFC00; }
.chapter-body .mind-voice[data-mind-voice="solstice"] { --mind-accent:#C0AFC5; }
.chapter-body .mind-voice[data-mind-voice="kaelen"] { --mind-accent:#1F0954; }
.chapter-body .mind-voice[data-mind-voice="elara"] { --mind-accent:#00A86B; }
.chapter-body .mind-voice[data-mind-voice="unterion"] { --mind-accent:#780606; }
.chapter-body .mind-voice-inline { color:#cce8ff; font-style:italic; }
.chapter-body .transition { margin-top:2.2em; padding:22px 24px; border:1px solid rgba(180,197,255,.15); border-radius:18px; background:rgba(9,12,28,.55); text-align:center; }
.chapter-body .transition p { margin:.35em 0; color:#cfd7ed; font-style:italic; }
.chapter-body .transition p:last-child { color:#f4f6ff; }
.reading-note { color:#8e96ad; font-size:.84rem; text-align:center; padding:10px 0 24px; }

@media (max-width:780px) {
  .site-shell,.reader-shell { width:min(100% - 22px,1180px); }
  .topbar { min-height:68px; }
  .brand span:last-child { display:none; }
  .navlinks { gap:3px; }
  .navlinks a { padding:8px 9px; font-size:.9rem; }
  .chapter-browser { align-items:stretch; }
  .chapter-search-label { width:100%; }
  .chapter-count { width:100%; }
  .chapter-card { grid-template-columns:auto 1fr; }
  .chapter-arrow { display:none; }
  .chapter-nav { grid-template-columns:1fr 1fr; }
  .contents-button { grid-column:1 / -1; grid-row:1; }
  .nav-button.prev { grid-column:1; grid-row:2; }
  .nav-button.next { grid-column:2; grid-row:2; }
}
@media (max-width:520px) {
  .navlinks a { font-size:.82rem; padding:7px 8px; }
  .chapter-body p { line-height:1.82; }
  .nav-button .long-label { display:none; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
.chapter-discussion{margin:28px auto 12px;text-align:center;padding:22px;border:1px solid rgba(157,188,255,.22);border-radius:18px;background:rgba(24,33,65,.48)}.discussion-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:999px;text-decoration:none;font-weight:800;color:#07101f;background:linear-gradient(135deg,#86c3ff,#aa91ff)}.chapter-discussion p{margin:10px 0 0;color:#8995af;font-size:.9rem}

.chapter-loading{padding:34px;text-align:center;color:#9aa6c0;border:1px solid var(--line);border-radius:20px;background:rgba(10,13,28,.55)}
.chapter-card{margin-bottom:14px}
.chapter-card.locked{opacity:.88}
.chapter-card.locked:hover{transform:translateY(-2px)}
.chapter-title-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.chapter-title-row h2{margin-right:auto}
.chapter-access{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.chapter-access.public{color:#bdeed2;background:rgba(65,168,111,.12);border-color:rgba(95,208,143,.3)}
.chapter-access.supporter{color:#ffd2da;background:rgba(227,65,88,.12);border-color:rgba(255,111,132,.3)}
.chapter-access.reader{color:#cfe5ff;background:rgba(73,126,219,.14);border-color:rgba(112,159,240,.34)}
.chapter-access.upcoming{color:#d6ddf5;background:rgba(132,148,196,.1)}
.chapter-access.admin{color:#e8dcff;background:rgba(150,98,255,.12);border-color:rgba(178,139,255,.32)}
.chapter-schedule{margin-top:7px!important;font-size:.82rem;color:#8995af!important}
.reader-status{display:inline-flex;margin:0 0 16px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.reader-status.supporter-access{color:#ffd0d9;background:rgba(227,65,88,.12);border-color:rgba(255,111,132,.3)}
.reader-status.reader-access{color:#cfe5ff;background:rgba(73,126,219,.14);border-color:rgba(112,159,240,.34)}
.reader-status.admin-preview{color:#e7dcff;background:rgba(150,98,255,.12);border-color:rgba(178,139,255,.32)}
.access-card{margin:52px auto 26px;padding:32px;width:min(680px,100%);border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,rgba(22,28,60,.82),rgba(7,10,24,.92));text-align:center;box-shadow:0 22px 60px rgba(0,0,0,.28)}
.access-card h2{margin:7px 0 14px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:400}
.access-card>p:not(.eyebrow){color:#bcc6dc;line-height:1.75}
.schedule-note{padding:13px 15px;border:1px solid rgba(173,194,255,.17);border-radius:14px;background:rgba(255,255,255,.025)}
.scene-break{text-align:center;margin:2.7em 0;font-size:0;letter-spacing:0;line-height:0}.scene-break::before{content:"";display:inline-block;width:16px;aspect-ratio:3/4;background:url("/assets/scene-break-crescent-skull.png") center/contain no-repeat;filter:drop-shadow(0 0 1.25px rgba(94,211,255,.38));vertical-align:middle}

.chapter-body .novel-size-small{font-size:.86em}.chapter-body .novel-size-normal{font-size:1em}.chapter-body .novel-size-large{font-size:1.2em}.chapter-body .novel-size-xl{font-size:1.45em}

/* v1.6.24: separate prologue and compact, keyboard-friendly Arc disclosures. */
.story-prologue{margin:8px 0 24px}
.story-prologue-heading{margin:10px 4px 14px;color:#dbeaff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,3.5vw,1.85rem);font-weight:400;line-height:1.35}
.story-unassigned{margin:26px 0 14px}
.story-arc{border:1px solid rgba(181,200,255,.24);border-radius:20px;margin:14px 0;background:linear-gradient(135deg,rgba(21,28,60,.76),rgba(8,11,27,.94));box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}
.story-arc[open]{border-color:rgba(172,198,255,.45)}
.story-arc-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:6px;cursor:pointer;padding:21px 23px;list-style:none;align-items:center}
.story-arc-summary::-webkit-details-marker{display:none}
.story-arc-summary::after{content:"⌄";grid-column:2;grid-row:1 / span 2;color:#a8c9ff;font-size:1.7rem;line-height:1;transform:rotate(-90deg);transition:transform .2s ease}
.story-arc[open]>.story-arc-summary::after{transform:rotate(0)}
.story-arc-summary:hover{background:rgba(125,153,224,.065)}
.story-arc-summary:focus-visible{outline:2px solid #9bbcff;outline-offset:-5px;border-radius:18px}
.story-arc-heading{grid-column:1;grid-row:1;color:#e7efff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,3.4vw,1.85rem);line-height:1.28}
.story-arc-meta{grid-column:1;grid-row:2;color:#9eacc7;font-size:.88rem;line-height:1.45}
.story-arc-chapters{border-top:1px solid rgba(173,195,255,.16);padding:18px 18px 8px}
.story-arc-chapters .chapter-card{margin-bottom:11px}
.story-arc-empty{color:#96a5c3;margin:0;padding:12px 4px 23px;font-size:.95rem}
.story-arc-more{display:block;margin:10px auto 18px;border:1px solid rgba(160,186,245,.4);border-radius:999px;background:rgba(86,124,213,.13);color:#e1ecff;font:inherit;font-size:.91rem;padding:10px 20px;cursor:pointer}
.story-arc-more:hover,.story-arc-more:focus-visible{outline:2px solid #a8c6ff;outline-offset:2px;background:rgba(103,144,229,.23)}
.story-arc-future{background:linear-gradient(135deg,rgba(19,25,53,.68),rgba(6,9,23,.86));border-color:rgba(169,185,225,.18)}
.story-arc-future>.story-arc-summary .story-arc-heading{color:#cbd6ee}
@media(max-width:600px){.story-arc-summary{padding:17px 15px}.story-arc-chapters{padding:12px 10px 4px}.story-arc-meta{font-size:.82rem}}
@media(prefers-reduced-motion:reduce){.story-arc-summary::after{transition:none}}


/* v1.6.24.1: reader-first Continue Reading and explicit completion. */
.chapter-browser .reading-continue[hidden]{display:none}
.reading-continue{grid-column:1/-1;width:100%;padding:16px 18px 12px;border:1px solid rgba(134,192,255,.36);border-radius:19px;background:linear-gradient(120deg,rgba(42,65,113,.62),rgba(24,27,66,.75))}
.reading-continue-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;text-decoration:none;align-items:center;color:#eef4ff;padding:4px 6px;border-radius:10px}
.reading-continue-link:hover,.reading-continue-link:focus-visible{outline:1px solid rgba(181,207,255,.75);outline-offset:3px}
.reading-continue-label{grid-column:1;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#aecaf9}
.reading-continue-link strong{grid-column:1;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.1rem,2.3vw,1.4rem);font-weight:500}
.reading-continue-arrow{grid-column:2;grid-row:1 / span 2;font-size:1.6rem;color:#b6d5ff}
.reading-continue-note{margin:9px 5px 0!important;color:#aabbd8;font-size:.78rem;line-height:1.45}
.reader-progress-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin:28px 0 8px}
.reader-finish-button{border:1px solid rgba(166,201,255,.55);border-radius:999px;background:rgba(46,79,143,.32);color:#f1f6ff;padding:12px 20px;font:inherit;font-size:.95rem;font-weight:700;cursor:pointer}
.reader-finish-button:hover,.reader-finish-button:focus-visible{outline:2px solid rgba(160,199,255,.75);outline-offset:2px;background:rgba(49,91,169,.49)}
.reader-finish-button:disabled{opacity:.72;cursor:default}
.reader-progress-note{color:#a7b8d2;font-size:.84rem}
