:root{--sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Yu Gothic UI", "Noto Sans JP", -apple-system, BlinkMacSystemFont, Meiryo, system-ui, sans-serif;--reader-font-size: 17px;--header-h: 52px;--bg: #f7f4ee;--fg: #221f1a;--fg-dim: #6b6455;--line: #ddd6c6;--accent: #8a6b34;--surface: #ffffff;--surface-dim: #efe9db}[data-theme=dark]{--bg: #181614;--fg: #e8e2d6;--fg-dim: #a89f8c;--line: #3a352c;--accent: #c39c4e;--surface: #211e1a;--surface-dim: #262119}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg)}body{font-family:var(--sans);-webkit-text-size-adjust:100%}a{color:inherit}button{font-family:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-shell{min-height:100vh;padding-top:var(--header-h)}.app-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);display:flex;align-items:center;gap:4px;padding:0 6px;background:var(--surface);border-bottom:1px solid var(--line);z-index:30}.app-header-title{flex:1;min-width:0;text-decoration:none;font-size:15px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.icon-button{flex:none;width:40px;height:40px;border:0;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px}.icon-button:hover{background:var(--surface-dim)}.hamburger{flex-direction:column;gap:4px}.hamburger span{display:block;width:18px;height:2px;background:var(--fg)}.theme-toggle{font-size:18px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:40}.drawer-backdrop.is-open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;bottom:0;left:0;width:min(86vw,340px);background:var(--surface);transform:translate(-100%);transition:transform .2s ease;z-index:50;display:flex;flex-direction:column;box-shadow:2px 0 16px #00000026}.drawer.is-open{transform:translate(0)}.drawer-header{height:var(--header-h);flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 16px;border-bottom:1px solid var(--line);font-weight:600}.drawer-body{flex:1;overflow-y:auto;padding:8px 0 24px}.drawer-group{padding:8px 0}.drawer-part-title{margin:8px 16px 4px;font-size:12px;letter-spacing:.06em;color:var(--fg-dim)}.drawer-chapter{margin:10px 0}.drawer-chapter-title{margin:0 16px 2px;font-size:13.5px;font-weight:600;line-height:1.5}.drawer-chapter ul{list-style:none;margin:0;padding:0}.drawer-page{width:100%;display:flex;align-items:baseline;gap:8px;text-align:left;padding:7px 16px 7px 28px;border:0;background:transparent;cursor:pointer;font-size:13px;color:var(--fg-dim);line-height:1.5}.drawer-page:hover{background:var(--surface-dim)}.drawer-page.is-active{color:var(--accent);font-weight:600;background:var(--surface-dim)}.drawer-page-check{flex:none;width:1em;color:var(--accent)}.app-main{max-width:42rem;margin:0 auto;padding:24px 20px 64px}.reader-status{padding:48px 4px;text-align:center;color:var(--fg-dim)}.empty-state{padding:56px 4px;text-align:center}.empty-state-mark{font-size:12px;letter-spacing:.2em;color:var(--fg-dim);margin:0 0 12px}.empty-state h2{font-family:var(--sans);margin:0 0 12px}.empty-state p{color:var(--fg-dim);line-height:1.8}.home-title{font-family:var(--sans);font-size:clamp(24px,6vw,30px);line-height:1.5;margin:8px 0 16px}.home-lead{font-family:var(--sans);font-size:15.5px;line-height:1.9;color:var(--fg-dim);margin:0 0 24px}.resume-button{display:block;width:100%;padding:14px;margin-bottom:36px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:var(--bg);font-size:15px;font-weight:600;cursor:pointer}.resume-button:hover{opacity:.9}.home-toc-heading{font-size:13px;letter-spacing:.08em;color:var(--fg-dim);border-bottom:1px solid var(--line);padding-bottom:8px;margin:0 0 4px}.home-toc-group{margin-top:18px}.home-toc-part{font-size:12px;color:var(--fg-dim);letter-spacing:.06em;margin:0 0 4px}.home-toc-group ul{list-style:none;margin:0;padding:0}.home-toc-chapter{display:flex;align-items:baseline;justify-content:space-between;gap:12px;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line)}.home-toc-chapter-title{font-family:var(--sans);font-size:15px;line-height:1.6}.home-toc-chapter-meta{flex:none;font-size:12px;color:var(--fg-dim)}.reader-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;color:var(--fg-dim);margin-bottom:8px}.font-size-control{display:flex;gap:8px;margin-bottom:20px}.font-size-control button{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.font-size-control button:disabled{opacity:.4;cursor:default}.reader-title{font-family:var(--sans);font-size:clamp(20px,5.5vw,26px);line-height:1.5;margin:0 0 24px}.reader-content{font-family:var(--sans);font-size:var(--reader-font-size);line-height:1.9}.reader-content h2{font-size:1.15em;margin:2em 0 .8em;padding-top:.4em;border-top:1px solid var(--line)}.reader-content h2:first-child{border-top:0;padding-top:0;margin-top:0}.reader-content h3{font-size:1.05em;margin:1.6em 0 .6em}.reader-content p{margin:0 0 1.2em}.reader-content a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.reader-content ul,.reader-content ol{margin:0 0 1.2em;padding-left:1.4em}.reader-content li{margin-bottom:.5em}.reader-content blockquote{margin:0 0 1.2em;padding:.4em 1em;border-left:3px solid var(--accent);color:var(--fg-dim)}.reader-content strong{font-weight:700}.reader-content svg{display:block;width:100%;max-width:420px;height:auto;margin:1.2em auto;color:var(--fg)}.ad-slot{display:none}.page-nav{display:flex;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}.page-nav-link{flex:1;min-width:0;text-decoration:none;padding:12px 14px;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px}.page-nav-next{text-align:right;align-items:flex-end}.page-nav-disabled{border:0}.page-nav-direction{font-size:11px;color:var(--fg-dim)}.page-nav-title{font-size:13.5px;font-family:var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media(max-width:420px){.app-main{padding:20px 16px 56px}}
