:root{--paper:#eee9dc;--paper2:#f8f5ed;--ink:#242724;--muted:#696d67;--line:rgba(36,39,36,.16);--plum:#632d58;--plum2:#7b3a6d;--screen:#b7c18f;--screen-ink:#2f3d31;--white:#fffdf7;--dark:#2c302e;--max:1120px;--reading:780px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% 8%,rgba(99,45,88,.055),transparent 28%),linear-gradient(180deg,var(--paper),var(--paper2) 46%,var(--paper));font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;line-height:1.9;letter-spacing:.025em}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 36px),var(--max));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:rgba(238,233,220,.92);backdrop-filter:blur(14px)}.header-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;flex-direction:column;line-height:1.15}.brand-main{font-weight:900;letter-spacing:.1em}.brand-sub{margin-top:5px;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.14em}.nav{display:flex;gap:20px;font-size:.82rem;font-weight:800}.nav a{padding:8px 0}.nav a:hover,.nav a[aria-current="page"]{color:var(--plum)}.mobile-nav{display:none;position:relative}.mobile-nav summary{list-style:none;cursor:pointer;font:900 .72rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em;border:1px solid var(--line);border-radius:999px;padding:11px 13px}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav>div{position:absolute;right:0;top:48px;width:230px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--paper2);box-shadow:0 18px 50px rgba(36,39,36,.16)}.mobile-nav a{display:block;padding:10px 12px;border-radius:10px;font-size:.85rem;font-weight:800}.mobile-nav a:hover{background:rgba(99,45,88,.08);color:var(--plum)}
.page-hero{padding:88px 0 64px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;right:-8vw;bottom:-18vw;width:40vw;height:40vw;border:1px solid rgba(99,45,88,.08);border-radius:50%;box-shadow:0 0 0 5vw rgba(99,45,88,.025),0 0 0 10vw rgba(99,45,88,.018);pointer-events:none}.kicker{margin:0 0 14px;color:var(--plum);font:900 .72rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.18em}.episode-label{margin:0 0 12px;color:var(--muted);font-size:.86rem;font-weight:900;letter-spacing:.16em}.page-title{max-width:920px;margin:0;font-size:clamp(2.8rem,7vw,6.6rem);line-height:1.02;letter-spacing:-.065em;font-weight:950;position:relative;z-index:1}.episode-hero .page-title{font-size:clamp(3.2rem,7.5vw,7rem)}.lead{max-width:790px;margin:26px 0 0;color:var(--muted);font-size:1.08rem;position:relative;z-index:1}.lead strong{color:var(--ink)}.meta-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px;position:relative;z-index:1}.chip{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,247,.62);font-size:.75rem;font-weight:800}
.content{padding:74px 0 100px}.reading{width:min(100%,var(--reading));margin-inline:auto}.reading p{margin:0 0 1.45em;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(1.03rem,1.7vw,1.18rem);line-height:2.15;letter-spacing:.045em}.reading .dialogue{font-weight:650}.reading .inner-voice{color:#454943;font-style:italic}.reading .emphasis{margin:2.7em 0;text-align:center;font-size:clamp(1.12rem,2vw,1.34rem);font-weight:800}.scene{margin:4.7em 0 1.25em;padding-top:1.4em;border-top:1px solid var(--line);font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.3;letter-spacing:-.03em}.scene:target{color:var(--plum)}.story-note,.callout{margin:0 0 32px;padding:24px 26px;border:1px solid rgba(47,61,49,.25);border-radius:14px;color:var(--screen-ink);background:var(--screen)}.story-note strong,.callout strong{display:block;margin-bottom:6px}.callout{margin:3.4em 0;background:rgba(183,193,143,.52)}.story-toc{margin:0 0 58px;padding:24px 26px;border:1px solid var(--line);border-radius:16px;background:rgba(255,253,247,.58)}.story-toc strong{display:block;margin-bottom:11px;font-size:.82rem;letter-spacing:.12em}.story-toc ol{margin:0;padding-left:1.4em;columns:2;column-gap:34px}.story-toc li{break-inside:avoid;margin:.45em 0;color:var(--muted);font-size:.84rem;line-height:1.55}.story-toc a:hover{color:var(--plum);text-decoration:underline;text-underline-offset:4px}.story-end{margin-top:64px;padding:32px;border-radius:18px;color:var(--white);background:var(--dark)}.story-end .end-label{display:block;margin-bottom:8px;color:rgba(255,255,255,.55);font:800 .72rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.14em}.story-end strong{display:block;font-size:1.05rem;line-height:1.8}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid currentColor;border-radius:999px;font-size:.86rem;font-weight:900;transition:transform .2s ease,background .2s ease}.button:hover{transform:translateY(-2px)}.button.primary{color:var(--white);background:var(--plum);border-color:var(--plum)}.button.light{color:var(--white)}.button.primary-on-dark{color:var(--dark);background:var(--white);border-color:var(--white)}
.novel-intro{padding:78px 0;border-bottom:1px solid var(--line)}.intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.intro-grid h2,.section-heading h2,.closing-box h2{margin:0;font-size:clamp(2.1rem,4.5vw,4.4rem);line-height:1.08;letter-spacing:-.055em}.intro-grid p{margin:0 0 1.2em;color:var(--muted)}.episode-list{padding:80px 0 104px}.section-heading{margin-bottom:34px}.episode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.episode-card{border:1px solid var(--line);border-radius:22px;background:rgba(255,253,247,.62);overflow:hidden;min-height:310px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.episode-card:hover{transform:translateY(-5px);box-shadow:0 20px 55px rgba(36,39,36,.11);border-color:rgba(99,45,88,.35)}.card-link{display:grid;grid-template-columns:92px 1fr;height:100%}.card-number{display:flex;align-items:flex-start;justify-content:center;padding-top:28px;color:rgba(99,45,88,.78);background:rgba(99,45,88,.06);font:950 2.1rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:-.08em}.card-body{display:flex;flex-direction:column;padding:27px 28px 25px}.card-year{margin:0;color:var(--plum);font:900 .72rem/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em}.card-body h2{margin:8px 0 14px;font-size:clamp(1.6rem,3vw,2.25rem);line-height:1.18;letter-spacing:-.04em}.card-body>p:not(.card-year){margin:0;color:var(--muted);font-size:.88rem;line-height:1.8}.card-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.card-tags span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;font-size:.68rem;font-weight:800}.read-link{margin-top:auto;padding-top:18px;font-size:.82rem;font-weight:900;color:var(--plum)}.closing-section{padding:0 0 100px}.closing-box{padding:48px;border-radius:26px;border:1px solid rgba(47,61,49,.22);background:var(--screen);color:var(--screen-ink)}.closing-box p{max-width:760px}.closing-box .button{color:var(--screen-ink)}.closing-box .button.primary{color:var(--white)}
footer{padding:54px 0 36px;color:rgba(255,255,255,.88);background:var(--dark)}.footer-grid{display:flex;justify-content:space-between;gap:28px;align-items:flex-start}.footer-title{font-weight:950;letter-spacing:.1em}.footer-small{color:rgba(255,255,255,.5)}.footer-links{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:.8rem;color:rgba(255,255,255,.65)}.small{color:var(--muted);font-size:.82rem}.progress{position:fixed;left:0;top:0;z-index:100;width:0;height:4px;background:var(--plum)}
@media(max-width:900px){.nav{display:none}.mobile-nav{display:block}.episode-grid{grid-template-columns:1fr}.intro-grid{grid-template-columns:1fr;gap:25px}.story-toc ol{columns:1}}
@media(max-width:760px){.page-hero{padding:62px 0 48px}.content{padding-top:52px}.footer-grid{flex-direction:column}.reading p{font-size:1.02rem;line-height:2}.story-note,.callout,.story-toc{padding:20px}.story-end{padding:25px}.card-link{grid-template-columns:68px 1fr}.card-number{font-size:1.55rem}.card-body{padding:23px 20px}.closing-box{padding:31px 24px}.actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.episode-card,.button{transition:none}}
