:root{--bg:#f5f6f2;--panel:#ffffff;--ink:#22302a;--ink2:#5b6a62;--line:#c9d1ca;--line2:#8fa096;--accent:#2f6f56;--accent-ink:#ffffff;--accent-soft:#e3efe8;--warn:#a33b2c;--wire:#f9faf7}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Hiragino Sans,Yu Gothic,Meiryo,system-ui,sans-serif;font-size:15px;line-height:1.8}a{color:var(--accent)}h1,h2,h3{line-height:1.3;margin:0;font-family:Hiragino Mincho ProN,Yu Mincho,serif}h1{font-size:26px}h2{font-size:20px;margin-top:28px}h3{font-size:16px;margin-top:20px}p{margin:10px 0}.container{max-width:960px;margin:0 auto;padding:20px 20px 60px}.narrow{max-width:520px}.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.topbar .logo{font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-weight:700;font-size:18px;color:var(--ink);text-decoration:none}.topbar .spacer{flex:1 1}.topbar .search{flex:1 1;min-width:200px}.btn{display:inline-block;border:1px solid var(--line2);border-radius:4px;padding:6px 14px;background:var(--panel);color:var(--ink);font-size:14px;cursor:pointer;text-decoration:none;line-height:1.4}.btn:hover{background:var(--accent-soft)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{border-style:dashed;color:var(--ink2)}.btn.small{padding:2px 8px;font-size:12px}.btn.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.dim{color:var(--ink2)}.small{font-size:13px}.tag{display:inline-block;border:1px solid var(--line2);border-radius:999px;padding:0 10px;font-size:12px;color:var(--ink2);background:var(--panel)}.tag.r18{border-color:var(--warn);color:var(--warn);font-weight:700}.field{display:block;font-size:12px;letter-spacing:.06em;color:var(--ink2);margin:12px 0 4px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{width:100%;border:1px solid var(--line2);border-radius:4px;padding:8px 10px;font:inherit;color:var(--ink);background:var(--panel)}textarea{resize:vertical}.error{color:var(--warn);font-size:13px}.notice{background:var(--accent-soft);border-left:3px solid var(--accent);padding:10px 14px;margin:14px 0}.card{border:1px solid var(--line);border-radius:4px;background:var(--panel);padding:12px 14px}.list{list-style:none;margin:0;padding:0}.list li{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding:8px 0;border-bottom:1px dotted var(--line)}.list li:last-child{border-bottom:0}.stat{display:flex;gap:14px;font-size:13px;color:var(--ink2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-wrap:wrap}.stat b{color:var(--ink)}.footer{margin-top:40px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--ink2)}.hero{text-align:center;padding:28px 0 10px}.hero .brand{font-size:40px;font-weight:700;line-height:1.2}.hero .brand,.hero .phrase{font-family:Hiragino Mincho ProN,Yu Mincho,serif}.hero .phrase{font-size:22px;margin-top:8px;line-height:1.5}.editor-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.editor-bar .status{font-size:12px;color:var(--ink2)}.editor-bar .status.err{color:var(--warn);font-weight:700}.segment{display:inline-flex}.segment .btn{border-radius:0}.segment .btn:first-child{border-radius:4px 0 0 4px}.segment .btn:last-child{border-radius:0 4px 4px 0}.editor-cols{display:grid;grid-template-columns:250px 1fr;grid-gap:16px;gap:16px;padding:16px}@media (max-width:720px){.editor-cols{grid-template-columns:1fr}}.editor-side{border-right:1px solid var(--line);padding-right:16px}@media (max-width:720px){.editor-side{border-right:0;padding-right:0}}.chapter-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:20px 0 6px;padding:4px 10px;border-left:4px solid var(--accent);font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-weight:700;font-size:16px}.chapter-head input{font:inherit;border:0;border-bottom:1px dashed var(--line2);border-radius:0;padding:0 4px;background:transparent}.section{border:1px solid var(--line);border-radius:4px;background:var(--panel);margin:10px 0}.section .head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;background:var(--accent-soft);border-bottom:1px solid var(--line);font-weight:700;flex-wrap:wrap}.section .head .num{font-family:Hiragino Mincho ProN,Yu Mincho,serif}.section .body{padding:8px 10px}.section textarea{border-color:var(--line);background:var(--wire)}.section textarea.plot{min-height:56px}.section textarea.text{min-height:160px;line-height:1.9}.count{font-size:12px;color:var(--ink2);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.plot-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;margin:4px 0;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.plot-row .title{flex:1 1}.menu{position:relative;display:inline-block}.menu .items{position:absolute;right:0;top:100%;z-index:10;background:var(--panel);border:1px solid var(--line2);border-radius:4px;min-width:160px;display:none}.menu.open .items{display:block}.menu .items button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 12px;font:inherit;cursor:pointer}.menu .items button:hover{background:var(--accent-soft)}.reading{max-width:38em;margin:16px auto;line-height:2.1;font-size:16px}.reading .para{white-space:pre-wrap}.reading .seam{border-top:1px dotted var(--line2);margin:2px 0}.reading .chapter-gap{height:3.2em}.reading .chapter-title{text-align:center;font-family:Hiragino Mincho ProN,Yu Mincho,serif;font-weight:700;margin:1.5em 0}.reading textarea.inline{width:100%;border:0;border-left:2px solid var(--accent);border-radius:0;background:var(--wire);font:inherit;line-height:2.1;padding:4px 8px}.reading .editable{cursor:text}.reading .editable:hover{background:var(--accent-soft)}.bouten{text-emphasis:filled sesame;-webkit-text-emphasis:filled sesame}ruby rt{font-size:.55em}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--panel);border-radius:6px;padding:20px;width:100%;max-width:560px;max-height:90vh;overflow:auto}.document h1{font-size:24px;margin:8px 0 12px}.document h2{font-size:18px;margin-top:26px;padding-bottom:4px;border-bottom:1px solid var(--line)}.document h3{font-size:15px;margin-top:18px}.document blockquote{border-left:3px solid var(--line2);padding:6px 12px;margin:12px 0;color:var(--ink2);background:var(--panel)}.document blockquote p{margin:4px 0}.document pre{background:var(--panel);border:1px solid var(--line);padding:10px 12px;overflow-x:auto;font-size:13px}.document ol,.document ul{padding-left:1.6em}.document hr{border:0;border-top:1px solid var(--line);margin:20px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.notif{display:grid;grid-template-columns:10px 1fr auto;grid-gap:10px;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px dotted var(--line)}.notif:last-child{border-bottom:0}.notif .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}.notif .dot.read{background:transparent;border:1px solid var(--line2)}.topbar .search input{padding:4px 10px}