@font-face{font-family:LocalSerif;src:local('Georgia')}*{box-sizing:border-box}body{margin:0;background:#f5f4ef;color:#25342f;font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button{border:1px solid #d4d9d1;background:#fffefa;color:#243c32;padding:11px 17px;border-radius:7px;transition:background .15s}button:hover{background:#e9eee5}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9d763c;outline-offset:3px}.primary{background:#244b3c;color:#fff;border-color:#244b3c}.primary:hover{background:#163e2d}.quiet{background:transparent;border-color:transparent}.danger{color:#9b3933}.muted{color:#6c766d}.eyebrow{text-transform:uppercase;letter-spacing:2.6px;font-size:10px;font-weight:600;color:#718174}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#173b31;color:#edf0e6;padding:36px 21px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-size:24px;letter-spacing:5px;font-weight:550;padding:0 12px}.brand-sub{font-family:Georgia,serif;color:#afc2b2;font-size:12px;padding:12px;margin-bottom:44px}.sidebar nav{display:grid;gap:9px}.nav-button{text-align:left;color:#bacac0;background:transparent;border-color:transparent;font-size:13px;padding:14px 13px;display:flex;align-items:center;gap:13px}.nav-button.active{background:#345448;color:#fff}.nav-button:hover{background:#294d3f}.icon{font-size:18px;min-width:22px;display:inline-flex;justify-content:center}.sidebar-foot{margin-top:auto;padding:26px 12px 0;line-height:1.8;border-top:1px solid #3a584b;color:#c5d2c8;font-size:11px}.dot{display:inline-block;width:6px;height:6px;background:#9bbb98;border-radius:50%;margin-right:7px}.main{min-width:0}.topbar{height:82px;border-bottom:1px solid #e1e4da;display:flex;align-items:center;justify-content:space-between;padding:0 44px;gap:15px}.topbar-right{display:flex;gap:12px;align-items:center}.select{border:1px solid #d6dccf;border-radius:6px;padding:9px;background:#f9f9f4;color:#3a4c41}.content{max-width:1420px;margin:auto;padding:45px 44px 90px}h1{font-family:Georgia,LocalSerif,serif;font-weight:400;font-size:clamp(32px,3vw,46px);line-height:1.16;letter-spacing:-1.5px;margin:13px 0 17px}h2{font-family:Georgia,serif;font-size:26px;font-weight:400}h3{font-family:Georgia,serif;font-size:20px;font-weight:400}.intro{max-width:670px;line-height:1.8;color:#6c766d}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:34px 0 17px}.section-head h2{margin:0}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hero{display:grid;grid-template-columns:1.3fr 1fr;background:#e8ecdf;border:1px solid #dce2d4;border-radius:12px;padding:33px;margin-top:30px;min-height:245px;gap:28px}.hero h2{font-size:30px;margin:12px 0}.hero p{line-height:1.8;max-width:390px}.book-illustration{display:flex;align-items:center;justify-content:center;perspective:800px;min-height:180px}.illustrated-book{width:160px;height:208px;background:#284839;border-left:9px solid #173c2a;box-shadow:9px 13px 22px #28352635;transform:rotate(-9deg);padding:27px 17px;color:#e9e4cd;border-radius:3px 8px 8px 3px;font-family:Georgia,serif;text-align:center;display:flex;flex-direction:column;justify-content:space-between}.illustrated-book span{font-size:9px;letter-spacing:2px}.illustrated-book strong{font-size:23px;font-weight:400;line-height:1.25}.book-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}.book-card{min-width:0;border:1px solid #e0e3d9;border-radius:10px;background:#fcfcf8;padding:15px}.book-cover{height:210px;width:100%;border-radius:5px;background:#315240;color:#eee9d7;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:23px;text-align:center;object-fit:contain}.book-cover h3{font-size:24px;line-height:1.4;overflow-wrap:anywhere}.book-cover small{font-size:9px;letter-spacing:3px}.book-card>h3{line-height:1.35;margin:17px 0 7px;overflow-wrap:anywhere}.book-card .primary{width:100%;margin-top:13px}.book-meta{display:flex;justify-content:space-between;font-size:11px;gap:8px;color:#6c766d}.progress{height:3px;background:#dfe6d9;margin-top:14px;border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;background:#52795a}.note-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px}.note-card{text-align:left;display:block;padding:22px;background:#fffef7;min-height:160px}.note-card h3{overflow-wrap:anywhere}.empty{padding:45px 28px;border:1px dashed #cdd5c5;border-radius:10px;text-align:center;margin-top:24px}.empty h2{margin:12px}.empty p{line-height:1.8}.empty .actions{justify-content:center}.reader-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.reader-heading h1{font-size:31px;letter-spacing:-.7px;margin:7px 0}.reader-heading p{margin:5px 0}.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:13px;margin:22px 0;flex-wrap:wrap}.reader-toolbar select{max-width:300px}.device{background:linear-gradient(130deg,#343b34,#212924);border:1px solid #505a50;border-radius:22px;padding:24px 24px 14px;box-shadow:0 16px 35px #152d2524;max-width:1140px;margin:0 auto}.device.one{max-width:650px}.panes{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}.duo .panes{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px}.paper{background:#f7f6ec;color:#30362b;border:1px solid #adb2a4;border-radius:5px;min-height:520px;padding:27px 30px;position:relative;box-shadow:inset 0 1px 7px #39453112;min-width:0}.paper-kicker{text-transform:uppercase;font-size:9px;letter-spacing:2px;color:#78816b;border-bottom:1px solid #d7dccb;padding-bottom:14px}.paper h2{font-size:25px;line-height:1.35;letter-spacing:-.5px;margin:23px 0}.book-text{font-family:Georgia,serif;line-height:1.9;overflow-wrap:anywhere;hyphens:auto}.book-text p{margin:0 0 22px}.paper-foot{font-size:10px;color:#79816e;text-align:center;margin-top:24px}.controls{display:flex;justify-content:center;gap:18px;padding:19px 0 3px}.controls button{border-radius:100%;width:37px;height:37px;padding:0;background:linear-gradient(#424b42,#252e28);box-shadow:0 2px 4px #0006;border:1px solid #737b6c;color:#e2e6d8;font-size:17px}.controls button:hover{background:#5c6f5c}.device-caption{text-align:center;font-size:10px;color:#707c6c;margin:16px 0;line-height:1.8}.reader-footer{display:flex;justify-content:space-between;align-items:center;margin:20px 0;font-size:11px;color:#71806b}.note-editor input{background:transparent;border:0;border-bottom:1px solid #d8decf;width:100%;font-family:Georgia,serif;font-size:23px;padding:10px 0;color:#303e30}.note-editor textarea{width:100%;min-height:85px;background:transparent;border:0;resize:vertical;line-height:1.6;padding:13px 0;color:#394b37}.ink-toolbar{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.ink-toolbar button{padding:6px 10px;font-size:11px}.ink-toolbar .selected{background:#d6e0cc;border-color:#839475}.ink-canvas{display:block;width:100%;height:auto;aspect-ratio:1/1;max-height:none;border:1px solid #d9dece;background:repeating-linear-gradient(transparent 0,transparent 29px,#dce1d1 30px);touch-action:none;cursor:crosshair}.source-link{font-size:10px;line-height:1.7;color:#75836b;margin-top:10px;overflow-wrap:anywhere}.source-link button{padding:3px 7px;font-size:10px}.notebook-alone{max-width:740px;margin:auto}.panel{padding:30px;border:1px solid #dce2d5;background:#fcfcf7;border-radius:10px;margin-top:24px;line-height:1.8}.panel audio{width:100%;margin:20px 0}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.stat-number{font-family:Georgia,serif;font-size:45px}.audio-list{display:grid;gap:8px;margin:20px 0}.audio-list button{text-align:left;overflow-wrap:anywhere}.loading{margin:60px;font-family:Georgia,serif;font-size:30px}#status{position:fixed;bottom:14px;right:24px;background:#f7f9f0;border:1px solid #d6dfcc;padding:8px 13px;border-radius:7px;color:#546548;font-size:11px;max-width:min(600px,90vw);z-index:10}#status:empty{display:none}#status.error{background:#fff0e8;color:#8c372e;border-color:#dbae9e}#status button{padding:4px 8px;margin-left:8px}#toast{position:fixed;bottom:63px;right:24px;background:#203f31;color:#fff;padding:15px 20px;border-radius:8px;max-width:min(520px,90vw);line-height:1.6;z-index:20;box-shadow:0 5px 20px #122a2520}#toast:empty{display:none}dialog{border:1px solid #bfcbb7;background:#fbfcf4;color:#263b2d;border-radius:14px;padding:30px;max-width:min(580px,90vw);width:100%}dialog::backdrop{background:#18282070}dialog h2{margin-top:0}dialog .menu-list{display:grid;gap:8px;margin:20px 0}dialog .menu-list button{text-align:left}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.wide{width:100%}
@media(min-width:1500px){.content{padding-top:55px}.paper{min-height:600px}}
@media(max-width:1100px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:30px 13px}.brand{font-size:19px;letter-spacing:4px}.content{padding:30px 25px 80px}.topbar{padding:0 25px}.device{padding:16px 15px 12px}.paper{padding:20px}.hero{padding:25px}.duo .panes{gap:17px}}
@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:static;padding:19px 15px;display:block}.brand{padding:0;font-size:20px}.brand-sub,.sidebar-foot{display:none}.sidebar nav{display:flex;gap:4px;overflow-x:auto;margin-top:16px}.nav-button{flex-shrink:0;padding:9px;font-size:11px;gap:5px}.icon{font-size:15px;min-width:15px}.topbar{height:auto;min-height:65px;padding:12px 18px;flex-wrap:wrap}.topbar .eyebrow{font-size:8px}.topbar-right{gap:6px}.select{font-size:11px;padding:8px}.content{padding:25px 18px 85px}h1{font-size:34px}.hero{grid-template-columns:1fr;padding:24px}.book-illustration{display:none}.section-head{align-items:flex-start;flex-wrap:wrap}.reader-heading{flex-wrap:wrap}.reader-toolbar select{max-width:100%}.reader-toolbar{align-items:flex-start}.duo .panes{grid-template-columns:1fr}.paper{min-height:420px;padding:23px}.device{border-radius:14px}.controls{gap:15px}.stat-grid{grid-template-columns:1fr}.reader-footer{gap:10px;flex-wrap:wrap}.book-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.book-cover{height:180px;padding:10px}.book-cover h3{font-size:21px}.book-card{padding:10px}.book-card>h3{font-size:17px}.book-card button{padding:10px;font-size:12px}.paper h2{font-size:23px}.note-editor input{font-size:21px}#status,#toast{right:12px}.reader-heading h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* FOLUVRA v0.2 — reading surfaces and accessible application controls. */
:root{--ink:#26382e;--muted:#596852;--line:#d7dfcf;--paper:#f7f6ec;--green:#244b3c}
.muted,.intro,.book-meta{color:#586752}.eyebrow,.paper-kicker,.paper-foot,.source-link,.reader-footer,.device-caption{color:#59664f}.sidebar .brand-sub{color:#c2d2c0}.sidebar-foot{color:#d0ddcf}.nav-button{color:#d0ddcf}
button,.select{min-height:36px}.ink-toolbar button,.source-link button{min-height:28px;min-width:28px}.source-link button{font-size:11px;padding:5px 8px}.ink-toolbar button{font-size:12px}
.skip-link{position:fixed;left:12px;top:-70px;z-index:100;background:#fff;color:#173b31;padding:15px;border:2px solid #173b31}.skip-link:focus{top:12px}.search-input,.filter-bar input{width:100%;border:1px solid #b8c5af;border-radius:7px;padding:12px 14px;background:#fffef9;color:var(--ink);min-width:0}.filter-bar{display:flex;gap:12px;margin:18px 0 25px}.filter-bar input{flex:1}.filter-bar .select{min-width:150px}.filter-bar input::placeholder,.search-input::placeholder{color:#64715c;opacity:1}.search-results{max-height:52vh;overflow-y:auto;margin:16px 0;display:grid;gap:8px}.search-results button{text-align:left;line-height:1.6;overflow-wrap:anywhere}.bookmark-row,.audio-row{display:flex;gap:8px;align-items:stretch}.bookmark-row>button:first-child,.audio-row>button:first-child{flex:1}.bookmark-row .danger,.audio-row .danger{flex-shrink:0;font-size:12px}.reader-preferences{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}.ink-options{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;font-size:11px}.ink-options input[type=range]{max-width:90px;accent-color:#35563c}.ink-options .select{font-size:11px;padding:6px}.ink-canvas.dots{background-image:radial-gradient(#bbc7b0 1.1px,transparent 1.1px);background-size:18px 18px}.ink-canvas.plain{background-image:none}.ink-canvas{max-height:390px;aspect-ratio:1/1;width:100%;height:auto}.note-editor{display:flex;flex-direction:column}.note-editor .ink-canvas{aspect-ratio:auto;height:330px;flex:none}.note-editor textarea{min-height:80px;max-height:180px}.note-editor .actions button{font-size:11px;padding:7px 10px}.note-editor .source-link{font-size:11px}.paper{min-height:0;padding:22px 26px}.paper h2{font-size:24px;margin:19px 0}.book-text{height:clamp(350px,48vh,620px);overflow-y:auto;scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior:contain}.book-text p{margin:0 0 18px}.book-text h3{font-size:1.13em;font-weight:600;margin:13px 0}.book-text blockquote{margin:12px 5px;padding-left:17px;border-left:2px solid #98a589;font-style:italic}.book-text .reading-list-item{display:list-item;margin-left:23px}.book-text figure{margin:12px 0;text-align:center}.epub-image{display:block;max-width:100%;height:180px;object-fit:contain;margin:auto}.book-text figcaption{font-family:Arial,sans-serif;font-size:11px;line-height:1.5;padding:5px;color:#58654f}.book-text [hidden]{display:none}.paper-foot{margin-top:15px;font-size:11px}.paper-kicker{font-size:10px}.end-page{display:flex;align-items:center;justify-content:center;text-align:center;font-style:italic}.focus-mode{grid-template-columns:1fr}.focus-mode .sidebar,.focus-mode .topbar{display:none}.focus-mode .content{max-width:1440px;padding-top:24px}.focus-mode .reader-heading h1{font-size:24px}.focus-mode .reader-heading p{display:none}.focus-mode .book-text{height:clamp(390px,58vh,720px)}.focus-mode .device{max-width:1200px}.focus-mode .device.one{max-width:730px}.daily-chart{height:210px;display:flex;align-items:stretch;gap:18px;margin:25px 0}.day{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;gap:10px;font-size:11px;color:#53634c}.bar-track{height:160px;display:flex;align-items:flex-end;background:#eef0e5;border-radius:5px}.bar{width:100%;min-height:2px;border-radius:5px;background:#527657}.lock-screen{max-width:600px;margin:15vh auto;padding:35px;background:#fefef6;border:1px solid #d8e0d0;border-radius:12px;line-height:1.8}.busy #app,.busy #tools{pointer-events:none}.busy{cursor:progress}.busy #status{background:#244b3c;color:#fff}.danger{color:#9a2928}
@media(max-width:760px){.filter-bar{flex-wrap:wrap}.filter-bar input{flex-basis:100%}.filter-bar .select{width:100%}.paper{padding:19px}.book-text{height:420px}.paper h2{font-size:23px}.book-text p{margin-bottom:18px}.note-editor .ink-canvas{height:285px}.reader-toolbar{gap:10px}.reader-toolbar .actions{gap:7px}.reader-toolbar button{font-size:12px;padding:9px 11px}.reader-heading .actions{width:100%}.reader-heading .actions button{font-size:12px;padding:9px}.focus-mode .content{padding:18px 12px 70px}.focus-mode .book-text{height:56vh}.bookmark-row,.audio-row{flex-wrap:wrap}.bookmark-row>button:first-child,.audio-row>button:first-child{flex-basis:100%}.daily-chart{gap:7px}.day{font-size:10px}.panel{padding:22px}.reader-preferences{grid-template-columns:1fr}.sidebar nav{scrollbar-width:thin}.note-editor .actions{gap:5px}.lock-screen{margin:10vh 20px}}
@media print{body{background:white!important}.sidebar,.topbar,.reader-toolbar,.controls,.reader-footer,.device-caption,.reader-heading .actions,.ink-toolbar,.ink-options,.note-editor .actions,#status,#toast,.skip-link{display:none!important}.shell,.panes,.duo .panes{display:block!important}.content{padding:0!important}.device{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;max-width:none!important}.paper{border:0!important;box-shadow:none!important;break-inside:avoid;margin-bottom:25px}.book-text{height:auto!important;overflow:visible!important}.note-editor textarea{max-height:none!important;border:0}.ink-canvas{max-height:none!important;height:auto!important;width:100%!important}.main{width:100%}.paper input{border:0!important}button,select{display:none!important}}

.print-note-text{display:none}@media print{.note-editor textarea{display:none}.print-note-text{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font:16px/1.6 Georgia,serif}.paper.note-editor{break-inside:auto!important}}
