:root{color:#273b36;font-synthesis:none;--green:#284e45;--muted:#788079;--line:#dfdfd3;--serif:"Yu Mincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", serif;background:#f5f2eb;font-family:Inter,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;font-size:14px;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #c09e58}button{background:0 0;border:0}a{color:#316d61}input,textarea,select{border:1px solid var(--line);color:#273b36;background:#fffdf8;border-radius:7px;padding:10px 12px}input{min-width:0}button,.book-card{touch-action:manipulation}.primary{background:var(--green);color:#fffdf8;border-radius:7px;padding:12px 21px;font-weight:600}.primary:hover{background:#376355}.quiet{border-radius:6px;padding:9px 12px;font-size:12px}.quiet:hover{background:#e9e9de}.wide{width:100%}.eyebrow{letter-spacing:.18em;color:#868b7b;font-size:10px;font-weight:600}.brand-mark{width:62px;height:62px;color:var(--green);background:#edf0e4;border:1px solid #a5afa0;border-radius:15px;padding:12px;display:inline-flex}.brand-mark.small{background:var(--green);color:#faf4e7;border:0;border-radius:7px;width:34px;height:34px;padding:5px}.brand-mark svg{width:100%;height:100%}.connection-wrap{background:radial-gradient(at 90% 0,#dde4d4 0,#0000 50%),#f5f2eb;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:48px 20px;display:flex}.connection-card{background:#fffdf8;border:1px solid #e1e2d7;border-radius:18px;width:100%;max-width:440px;padding:36px 40px;box-shadow:0 22px 70px #2c3f2e0a}.connection-card h1{font-family:var(--serif);letter-spacing:.12em;margin:14px 0;font-size:34px}.intro{font-family:var(--serif);margin-bottom:32px;font-size:20px;line-height:1.8}.connection-card form label{flex-direction:column;gap:9px;margin:20px 0 0;font-size:12px;font-weight:600;display:flex}.connection-card input{padding:13px 12px;font-size:13px}.field-note,.storage-note{color:#768078;font-size:11px;line-height:1.9}.storage-note{background:#f0f1e9;border-radius:6px;margin:18px 0;padding:12px}.connection-footer{letter-spacing:.12em;color:#8c9388;margin-top:25px;font-size:11px}.app-header{border-bottom:1px solid var(--line);background:#f9f7f1;justify-content:space-between;align-items:center;height:77px;padding:0 38px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand>span:not(.brand-mark){font-family:var(--serif);letter-spacing:.1em;font-size:23px}.brand small{letter-spacing:.1em;color:#899083;margin-left:9px;font-size:10px}.header-actions{align-items:center;gap:6px;display:flex}.library-layout{grid-template-columns:238px 1fr;min-height:calc(100dvh - 77px);display:grid}.sidebar{border-right:1px solid var(--line);background:#f0f0e6;flex-direction:column;padding:36px 24px;display:flex}.sidebar h2{font-family:var(--serif);margin:8px 0 18px;font-size:22px}.repo-label{word-break:break-all;color:#6b776c;margin-bottom:32px;font-size:10px;line-height:1.9}.dot{background:#4c7d5e;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.dot.amber{background:#ba8837}.branch{border:1px solid #d7ddce;border-radius:4px;margin-left:6px;padding:0 6px;display:inline-block}.side-link{text-align:left;border-radius:7px;justify-content:space-between;margin-bottom:6px;padding:13px 12px;font-size:12px;display:flex}.side-link.active{color:#284e45;background:#e0e6d8;font-weight:600}.side-link span{color:#7c8779;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:90px}.sidebar-bottom .tiny-book{font-family:var(--serif);font-size:14px}.sidebar-bottom p{color:#879080;font-size:11px;line-height:1.9}.sidebar-bottom small{color:#8a9485;font-size:10px}.shelf-main{min-width:0;padding:44px 48px}.shelf-heading{justify-content:space-between;align-items:center;margin-bottom:36px;display:flex}.shelf-heading h1{font-family:var(--serif);letter-spacing:.03em;margin:13px 0 14px;font-size:30px;font-weight:500}.shelf-heading>div>p:last-child{color:#83907f;font-size:12px}.book-total{font-family:var(--serif);color:#b4bcad;text-align:right;padding-left:20px;font-size:40px}.book-total small{letter-spacing:.14em;margin-top:3px;font-family:sans-serif;font-size:8px;display:block}.shelf-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;margin-bottom:20px;padding-bottom:17px;display:flex}.breadcrumbs{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:11px;display:flex}.breadcrumbs button{overflow-wrap:anywhere;padding:4px}.breadcrumbs span{color:#a2aa98}.search{background:#eeeee5;border:0;width:225px;font-size:11px}.folders{flex-wrap:wrap;gap:10px;margin:20px 0 30px;display:flex}.folders button{background:#fcfaf5;border:1px solid #dedfd1;border-radius:6px;align-items:center;gap:12px;padding:11px 14px;font-size:11px;display:flex}.folders button:hover{background:#e9edde}.folders button>span{color:#98a28d}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:36px 28px;display:grid}.book-card{text-align:left;min-width:0;max-width:250px;padding:0}.book-cover{border-right:5px double #ffffff80;border-radius:3px 8px 8px 3px;flex-direction:column;height:236px;padding:23px 22px 19px 26px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:5px 7px 15px #26362a12}.book-cover:before{content:"";background:#00000012;width:1px;position:absolute;top:0;bottom:0;left:9px}.book-card:hover:not(:disabled) .book-cover{transform:translateY(-5px)rotate(-1deg);box-shadow:5px 13px 18px #26362a1a}.cover-0{color:#344e3c;background:#d9dfd0}.cover-1{color:#6a5545;background:#e3d9c8}.cover-2{color:#405d65;background:#d3dee0}.cover-3{color:#6e5550;background:#ded4cf}.cover-4{color:#635871;background:#d9d7e1}.cover-kind{letter-spacing:.2em;opacity:.6;font-size:8px}.cover-title{font-family:var(--serif);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:22px 0 14px;font-size:24px;font-weight:500;line-height:1.7;display:-webkit-box;overflow:hidden}.cover-rule{opacity:.4;background:currentColor;width:28px;height:1px;margin-top:auto;margin-bottom:17px}.cover-bottom{letter-spacing:.1em;justify-content:space-between;align-items:center;font-size:9px;display:flex}.cover-bottom>span{border:1px solid #ffffff70;padding:3px 5px;font-size:8px}.book-meta{padding:13px 0}.book-meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;display:block;overflow:hidden}.book-meta>span{color:#879080;overflow-wrap:anywhere;margin-top:7px;font-size:10px;display:block}.book-card.unsupported .book-cover{opacity:.7;background:#e7e7df;height:95px}.unsupported .cover-title{margin:8px 0;font-size:13px}.unsupported .cover-kind,.unsupported .cover-rule,.unsupported .cover-bottom{display:none}.empty{text-align:center;color:#7f8b78;padding:50px}.empty h2{font-family:var(--serif);font-size:23px;font-weight:400}.empty p{font-size:12px}.banner{color:#36523d;background:#e7eee0;justify-content:space-between;align-items:center;gap:15px;padding:12px 28px;font-size:12px;line-height:1.8;display:flex}.banner button{white-space:nowrap;text-decoration:underline}.warning{color:#755b25;background:#f3e9cf}.error{color:#8a4638;background:#f6e6df;border-radius:6px;padding:12px;font-size:12px;line-height:1.8}.banner.error{border-radius:0;padding:12px 28px}.document-main{max-width:1240px;margin:auto;padding:24px 36px 40px}.document-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.document-heading h1{font-family:var(--serif);overflow-wrap:anywhere;margin:10px 0 5px;font-size:26px;font-weight:500}.document-path{color:#8a9587;overflow-wrap:anywhere;margin:0;font-size:10px}.back-link{color:#84917e;padding:0;font-size:11px}.document-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.segmented{background:#e8eade;border-radius:7px;padding:3px;display:inline-flex}.segmented button{border-radius:5px;padding:8px 15px;font-size:12px}.segmented .selected{background:#fcfbf6;box-shadow:0 1px 4px #1d3d2510}.conversion-note{color:#93927b;font-size:10px}.reader{--paper:#fffdf7;--ink:#344138}.theme-white{--paper:#fff;--ink:#222}.theme-night{--paper:#27322e;--ink:#e0e5da}.reader-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;font-size:12px;display:flex}.tool{border:1px solid #d8ddcf;border-radius:5px;padding:7px 12px;font-size:11px}.tool.active{background:#e5eadd}.type-controls{align-items:center;gap:8px;margin-left:auto;display:flex}.type-controls button{padding:7px}.type-controls span{color:#8a9385;font-size:10px}.reader-tools select{padding:6px 10px;font-size:11px}.book{outline-offset:5px;justify-content:center;gap:24px;height:clamp(390px,65dvh,800px);display:flex;position:relative}.vertical-book{flex-direction:row-reverse}.paper{background:var(--paper);color:var(--ink);border:1px solid #dfe1d340;border-radius:3px;flex-shrink:0;padding:28px 24px 12px;overflow:hidden;box-shadow:0 4px 24px #273c2710}.paper-window{position:relative;overflow:hidden}.markdown-flow{column-fill:auto;line-height:2;font-family:var(--serif);overflow-wrap:anywhere;text-align:justify;transition:transform .18s;overflow:visible}.markdown-flow.vertical{writing-mode:vertical-rl;text-orientation:mixed;direction:ltr;line-height:2}.markdown-flow h1,.markdown-flow h2,.markdown-flow h3{break-after:avoid;font-weight:500;line-height:1.6}.markdown-flow h1{font-size:1.6em}.markdown-flow h2{border-bottom:1px solid #a7ad9e55;padding-bottom:.3em;font-size:1.35em}.markdown-flow p{margin:0 0 1em}.markdown-flow>:first-child{margin-top:0}.markdown-flow img{object-fit:contain;break-inside:avoid;max-width:100%;max-height:70%}.markdown-flow.vertical img{max-width:75%;max-height:100%}.markdown-flow pre,.markdown-flow table,.markdown-flow blockquote{break-inside:avoid;max-width:100%;font-size:.8em}.markdown-flow pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#8a978817;padding:12px;line-height:1.6}.markdown-flow.vertical pre,.markdown-flow.vertical table{writing-mode:horizontal-tb;max-height:100%;overflow:auto}.markdown-flow table{border-collapse:collapse;table-layout:fixed;width:100%}.markdown-flow td,.markdown-flow th{overflow-wrap:anywhere;border:1px solid #a8b09d66;padding:5px}.markdown-flow blockquote{opacity:.8;border-left:2px solid #b1b8a2;margin:1em 0;padding-left:1em}.markdown-flow ul,.markdown-flow ol{padding-inline-start:1.6em}.markdown-flow hr{border:0;border-top:1px solid #adb4a244}.folio{text-align:center;font-family:var(--serif);color:#9ca38f;margin-top:14px;font-size:11px;display:block}.page-controls{justify-content:center;align-items:center;gap:28px;padding-top:19px;font-size:12px;display:flex}.page-controls button{border:1px solid #d9dfce;border-radius:6px;padding:10px 15px}.page-controls small{color:#8a9483}.page-controls input{text-align:center;width:70px;padding:6px}.outline{border:1px solid var(--line);background:#fffdf8;border-radius:8px;flex-direction:column;align-items:stretch;max-height:240px;margin-bottom:16px;padding:10px;display:flex;overflow:auto}.outline button{text-align:left;padding:8px}.image-placeholder{color:#929b86;font-size:10px;display:inline-block}.text-link{color:#477765;text-align:inherit;font:inherit;padding:0;text-decoration:underline}.badge{background:#e7eadf;border-radius:5px;margin-right:auto;padding:7px 9px;font-size:11px}.pdf-stage{background:#e5e6dc;border-radius:8px;justify-content:flex-start;gap:16px;min-height:300px;max-height:75dvh;padding:16px;display:flex;overflow:auto}.pdf-page{flex-shrink:0}.pdf-page canvas{background:#fff;display:block;box-shadow:0 3px 12px #293b251c}.editor{background:#fffdf8;border:1px solid #d9dfd0;border-radius:9px;overflow:hidden}.editor-toolbar,.editor-footer{background:#f0f2e8;align-items:center;gap:15px;padding:12px 17px;font-size:11px;display:flex}.editor-toolbar>span{margin-right:auto}.editor-panes{grid-template-columns:1fr;display:grid}.editor-panes.with-preview{grid-template-columns:1fr 1fr}.editor-panes>textarea{resize:vertical;tab-size:2;border:0;border-radius:0;width:100%;height:60dvh;padding:25px;font-family:ui-monospace,Noto Sans CJK JP,monospace;font-size:14px;line-height:1.9}.editor-preview{border-left:1px solid var(--line);height:60dvh;line-height:1.9;font-family:var(--serif);overflow-wrap:anywhere;padding:25px;overflow:auto}.editor-preview img{max-width:100%}.editor-preview pre{white-space:pre-wrap}.editor-footer{flex-wrap:wrap;justify-content:space-between}.editor-footer input{flex:1;max-width:480px;font-size:11px}.loading-overlay{z-index:8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f4f3eccc;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex;position:fixed;inset:77px 0 0}.modal-backdrop{z-index:15;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1c302c70;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.conflict-modal{background:#fffdf8;border-radius:12px;width:min(100%,1050px);max-height:95dvh;padding:28px;overflow:auto}.conflict-modal h2{font-family:var(--serif);font-weight:500}.conflict-modal p{font-size:12px;line-height:1.9}.conflict-columns{grid-template-columns:1fr 1fr;gap:20px;display:grid}.conflict-columns label{flex-direction:column;gap:10px;font-size:11px;display:flex}.conflict-columns textarea{height:40dvh;font-family:monospace;font-size:12px;line-height:1.8}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}@media (width>=1500px){.shelf-main{padding:48px 70px}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:42px 36px}}@media (width<=1000px){.library-layout{grid-template-columns:190px 1fr}.sidebar{padding:28px 17px}.shelf-main{padding:32px 28px}.shelf-heading h1{font-size:24px}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:22px}.book-cover{height:214px}.cover-title{font-size:20px}.brand small{display:none}.document-main{padding:20px}.document-heading{flex-wrap:wrap;align-items:flex-start}.document-actions{flex-wrap:wrap}}@media (width<=650px){.app-header{flex-wrap:wrap;gap:14px;height:auto;min-height:65px;padding:14px 17px}.brand>span:not(.brand-mark){font-size:20px}.header-actions{gap:0;margin-left:auto}.header-actions .quiet{padding:7px;font-size:10px}.library-layout{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;align-items:center;gap:8px;padding:14px 18px;display:flex}.sidebar .eyebrow,.sidebar h2,.sidebar-bottom{display:none}.repo-label{width:100%;margin:0 0 4px;font-size:10px}.side-link{gap:12px;margin:0;padding:8px 10px;font-size:10px}.shelf-main{padding:28px 20px}.shelf-heading{margin-bottom:26px}.shelf-heading h1{max-width:230px;font-size:23px;line-height:1.5}.shelf-heading>div>p:last-child{font-size:10px}.book-total{padding-left:10px;font-size:30px}.book-total small{font-size:7px}.shelf-toolbar{flex-direction:column;gap:12px}.search{width:100%}.shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 18px}.book-cover{height:210px;padding:20px 15px 17px 22px}.cover-title{font-size:20px}.book-meta strong{font-size:11px}.folders{gap:8px;margin-bottom:23px}.folders button{padding:9px 10px;font-size:10px}.document-main{padding:18px 12px}.document-heading{gap:15px}.document-heading h1{font-size:23px}.document-actions{justify-content:flex-end;gap:4px;width:100%}.document-actions .quiet{font-size:11px}.book{gap:0;height:calc(100dvh - 310px);min-height:350px}.reader-tools{gap:6px}.reader-tools .tool{padding:7px 8px;font-size:10px}.segmented button{padding:7px 11px;font-size:11px}.type-controls{margin-left:0;font-size:11px}.type-controls button{padding:6px 3px}.reader-tools select{max-width:65px;margin-left:auto}.page-controls{gap:16px;padding-top:15px}.editor-toolbar{gap:7px;padding:10px}.editor-toolbar .primary{padding:10px;font-size:11px}.editor-panes.with-preview{grid-template-columns:1fr}.editor-preview{border-left:0;border-top:1px solid var(--line);height:35dvh}.editor-panes>textarea{padding:16px}.editor-footer span{font-size:10px}.banner{padding:10px 16px;font-size:11px}.connection-card{padding:30px 25px}.connection-wrap{padding:25px 18px}.conflict-columns{grid-template-columns:1fr}.conflict-columns textarea{height:23dvh}.conflict-modal{padding:20px}.conflict-modal h2{font-size:20px}.conflict-modal .primary{font-size:11px}.pdf-stage{padding:12px}}
