@font-face{font-family:LibrarySerif;src:local('Georgia')}*{box-sizing:border-box} :root{--bg:#faf8f3;--surface:#fffefa;--sidebar:#f2f0e9;--ink:#223128;--muted:#526052;--line:#d2d8cc;--green:#345b40;--green-hover:#284a32;--soft-green:#e8eddf;--hero:#edf0e5;--paper:#fff9ec;--shadow:0 12px 36px #34423310;--serif:LibrarySerif,Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif;color-scheme:light}html[data-theme=dark]{--bg:#1b221e;--surface:#242d26;--sidebar:#182019;--ink:#f6f3e8;--muted:#ccd5c8;--line:#4a584b;--green:#c0dcb5;--green-hover:#d0e5c6;--soft-green:#354336;--hero:#2c392e;--paper:#f5eddb;--shadow:0 12px 36px #0003;color-scheme:dark}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button,a,input,textarea,select{touch-action:manipulation}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:3px}a{color:var(--green)}.icon{width:21px;height:21px;flex-shrink:0;vertical-align:middle}.icon-button{display:inline-flex;justify-content:center;align-items:center;width:42px;height:42px;border-radius:50%;flex-shrink:0}.icon-button:hover{background:var(--soft-green)}.icon-button.small{width:32px;height:32px}.small .icon{width:17px;height:17px}.button{min-height:44px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 19px;font-weight:600;font-size:13px;transition:background .2s,transform .2s}.button.primary{background:var(--green);color:var(--bg)}.button.primary:hover:not(:disabled){background:var(--green-hover);transform:translateY(-1px)}.button.secondary{border:1px solid var(--line);background:var(--surface)}.button.secondary:hover{background:var(--soft-green)}.full{width:100%}.text-button{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;padding:8px 0;color:var(--green)}.text-button .icon{width:16px;height:16px}.text-button:hover{text-decoration:underline}.app-shell{min-height:100dvh}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:35px 21px 22px;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-align:left;padding:0 7px;font-family:var(--serif);font-size:36px;letter-spacing:-1.5px;line-height:1.15}.brand-mark{background:var(--green);color:var(--bg);height:41px;width:41px;border-radius:13px;display:grid;place-items:center;transform:rotate(-7deg)}.brand-mark .icon{height:29px;width:29px;stroke-width:1.3}.brand-sub{display:block;font-size:8px;font-family:var(--sans);letter-spacing:1.7px;font-weight:600;margin-top:7px}.nav-label{font-size:9px;letter-spacing:1.6px;color:var(--muted);margin:51px 12px 17px;font-weight:600}.nav-item{display:flex;align-items:center;width:100%;gap:12px;padding:13px 14px;border-radius:8px;font-weight:500;font-size:13px;margin-bottom:6px;text-align:left;color:var(--muted)}.nav-item:hover{background:var(--soft-green);color:var(--ink)}.nav-item.active{background:var(--soft-green);color:var(--green);font-weight:650}.nav-count{margin-left:auto;font-size:10px;border:1px solid var(--green);border-radius:5px;padding:1px 5px;opacity:.7}.sidebar-note{margin:52px 13px 30px;padding-top:27px;border-top:1px solid var(--line);color:var(--muted)}.sidebar-note>.icon{width:30px;height:30px;color:#a79b7e;stroke-width:1}.sidebar-note p{font:italic 22px/1.35 var(--serif);color:var(--ink);margin:16px 0 11px}.sidebar-note span{font-size:10px;line-height:1.7;display:block;max-width:125px}.sidebar-bottom{margin-top:auto}.profile{border-top:1px solid var(--line);padding:21px 0 0;margin:12px 4px 0;display:flex;gap:9px;align-items:center;text-align:left;width:calc(100% - 8px)}.avatar{display:grid;place-items:center;flex-shrink:0;background:#e8d9c3;color:#746649;font-family:var(--serif);font-size:20px;width:36px;height:36px;border-radius:50%}.profile strong{font-size:10px;font-weight:600;display:block}.profile small{font-size:9px;color:var(--muted);display:block;margin-top:5px}.main{margin-left:224px;min-height:100dvh;display:flex;flex-direction:column}.topbar{height:85px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 45px;border-bottom:0;font-size:11px}.topbar-parent{color:var(--muted)}.topbar-divider{padding:0 14px;color:#b3b8a9}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:15px}.local-badge{color:var(--muted);display:flex;align-items:center;gap:7px;font-size:10px}.local-badge i{display:block;background:#78906e;width:6px;height:6px;border-radius:50%}.content{padding:34px 45px 22px;max-width:1500px;width:100%;margin:0 auto}.hero{display:flex;position:relative;background:var(--hero);border:1px solid var(--line);border-radius:15px;overflow:hidden;min-height:338px;padding:38px 39px;gap:15px}.hero-copy{position:relative;z-index:2;flex:1.2}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:var(--green);display:flex;gap:7px;align-items:center;line-height:1.7}.eyebrow .icon{width:13px;height:13px}.hero h1{font:normal clamp(34px,3.6vw,58px)/1.1 var(--serif);letter-spacing:-1.5px;margin:22px 0 18px}.hero h1 em,.page-heading h1 em,.progress-page h1 em{font-weight:400;color:var(--green)}.hero p{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 24px}.hero .button{font-size:12px;padding:12px 17px}.hero-footnote{display:block;font-size:9px;color:var(--muted);margin-top:17px}.hero-art{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:235px;max-width:430px;padding-bottom:22px}.hero-cover{width:190px!important;transform:rotate(9deg);box-shadow:-8px 8px 0 #c9c3b6,-10px 10px 0 #435849,10px 23px 28px #21372435!important}.art-caption{position:absolute;font:italic 12px var(--serif);bottom:-2px;color:var(--muted);transform:rotate(-4deg)}.orbit{position:absolute;border:1px solid #aebba84f;border-radius:50%;height:270px;width:270px;transform:rotate(-25deg)}.orbit-two{height:245px;width:330px;transform:rotate(22deg)}.decor-star{position:absolute;color:#a28f61;font-family:var(--serif);font-size:37px}.star-one{left:5%;top:5%}.star-two{right:2%;top:24%;font-size:21px}.star-three{left:13%;bottom:1%;font-size:24px}.cover{width:100%;aspect-ratio:4/5;position:relative;background:#141e30;border-radius:3px 8px 8px 3px;overflow:hidden;box-shadow:0 8px 15px #10182024,inset 3px 0 4px #ffffff20;container-type:inline-size;text-align:center;color:#fff5df}.cover:after{content:'';position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(90deg,#0008,#fff1,#0002);pointer-events:none}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover-lettering{position:absolute;inset:0 0 auto;padding:9% 9% 17%;background:linear-gradient(#131d30ed 0%,#131d30cc 65%,#131d3000);text-align:center}.cover-overline{font-size:3cqw;letter-spacing:1.5px;display:block;color:#d5cfbe;font-weight:500;line-height:1.4}.cover h3{font-family:var(--serif);font-weight:400;font-size:10cqw;line-height:1.13;letter-spacing:-.5px;margin:5% 0 0;text-wrap:balance}.cover-imprint{position:absolute;bottom:3%;left:0;right:0;color:#e8e0cd;letter-spacing:1.3px;font-size:2.9cqw;text-align:center}.cover-placeholder{display:grid;place-items:center;height:100%;opacity:.4}.cover-placeholder .icon{width:55px;height:55px}.bookshelf{margin-top:34px}.library-content>.bookshelf:first-child{margin-top:0}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading h2{font:normal 25px var(--serif);letter-spacing:-.5px;margin:0;display:flex;align-items:center;gap:10px}.section-heading p{font-size:11px;color:var(--muted);margin:8px 0 0}.count-badge{font:11px var(--sans);background:var(--soft-green);color:var(--green);min-width:21px;height:21px;display:grid;place-items:center;border-radius:50%}.shelf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0}.filter-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter{border-radius:6px;padding:8px 12px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.filter.selected{background:var(--soft-green);color:var(--green);font-weight:600}.filter .icon{height:13px;width:13px}.search{display:flex;align-items:center;gap:8px;width:205px;color:var(--muted)}.search .icon{height:15px;width:15px}.search input{background:none;border:0;padding:9px 0;width:100%;font-size:11px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:27px}.book-card{min-width:0;max-width:310px}.card-art{padding:20px 26px;position:relative}.cover-button{display:block;width:100%;padding:0;transition:transform .25s}.cover-button:hover{transform:translateY(-5px) rotate(-1deg)}.favorite-button{position:absolute;top:9px;right:9px;border-radius:50%;width:32px;height:32px;background:var(--surface);display:grid;place-items:center;color:var(--muted);box-shadow:0 2px 5px #0001}.favorite-button .icon{width:15px;height:15px}.favorite-button.selected{color:#b97377}.favorite-button.selected .icon{fill:#c8868950}.card-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;margin-top:16px;letter-spacing:.4px}.card-meta span:first-child{color:var(--green);text-transform:uppercase;font-weight:650;font-size:8px;letter-spacing:1px}.card-title{font:normal 20px/1.25 var(--serif);margin:9px 0 7px}.card-subtitle{font-size:10px;color:var(--muted);margin:0}.card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:11px}.new-book-card{border:1px dashed #bfc7b7;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 13px;min-height:285px;align-self:stretch;background:linear-gradient(135deg,var(--surface),var(--sidebar));height:auto;max-height:none}.new-book-card:hover{border-color:var(--green);background:var(--soft-green)}.new-book-icon{background:var(--soft-green);border-radius:50%;width:43px;height:43px;display:grid;place-items:center;color:var(--green);margin-bottom:20px}.new-book-card strong{font:normal 20px/1.4 var(--serif);margin-bottom:13px}.new-book-card>span:not([class]){font-size:10px;line-height:1.8;color:var(--muted)}.new-book-link{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--green);margin-top:24px;font-weight:600}.new-book-link .icon{width:15px;height:15px}.reading-note{padding:24px 15px 24px 23px;border-left:1px solid var(--line);align-self:center}.reading-note .eyebrow{font-size:8px;letter-spacing:1.5px;color:var(--muted)}.reading-note>.icon{height:36px;width:36px;color:#aa976f;margin:23px 0 12px;stroke-width:1}.reading-note h3{font:normal 26px/1.2 var(--serif);margin:0 0 18px}.reading-note p{font-size:11px;color:var(--muted);line-height:1.9;max-width:200px}.note-signature{font:italic 12px var(--serif);color:var(--muted);display:block;margin-top:24px}.archive-link{font-size:10px;color:var(--muted);margin-top:25px;padding:8px 0;text-decoration:underline;text-underline-offset:3px}.main-footer{margin-top:auto;padding:20px 45px 24px;display:flex;justify-content:space-between;gap:15px;font-size:9px;color:var(--muted);letter-spacing:.3px}.main-footer span:last-child{display:flex;gap:6px;align-items:center}.main-footer .icon{height:11px;width:11px}.mobile-nav{display:none}.empty-state{grid-column:1/-1;text-align:center;padding:55px 20px;border:1px dashed var(--line);border-radius:12px}.empty-state>.icon{width:35px;height:35px;color:var(--muted)}.empty-state h3{font:normal 25px var(--serif)}.empty-state p{color:var(--muted);font-size:12px}.page-heading{padding:8px 0 30px}.page-heading h1{font:normal clamp(30px,3.5vw,48px)/1.15 var(--serif);letter-spacing:-1px;margin:16px 0}.page-heading p{font-size:13px;color:var(--muted);line-height:1.8}.create-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:35px;align-items:start}.form-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px}.field-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;margin:26px 0 12px}.field-label:first-child{margin-top:0}.step-circle{width:21px;height:21px;background:var(--soft-green);color:var(--green);border-radius:50%;display:grid;place-items:center;font-size:10px}.optional{margin-left:auto;font-weight:400;color:var(--muted);font-size:10px}input,textarea,select{width:100%;border:1px solid var(--line);background:var(--bg);padding:12px 14px;color:var(--ink);border-radius:7px;font-size:13px}textarea{resize:vertical;min-height:110px;line-height:1.6}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}.field-hint{font-size:11px;color:var(--muted);line-height:1.8;margin:9px 0}.genre-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{display:flex;flex-direction:column;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:8px;cursor:pointer;position:relative;gap:7px;background:var(--bg)}.choice input{position:absolute;top:12px;right:12px;width:13px;accent-color:var(--green)}.choice.chosen{border-color:var(--green);background:var(--soft-green)}.choice .icon{color:var(--green);margin-bottom:5px}.choice strong{font-size:11px;font-weight:600}.choice small{font-size:10px;color:var(--muted)}.creation-summary{border:1px solid var(--line);border-radius:12px;background:var(--hero);padding:30px;position:sticky;top:30px}.summary-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--green);background:var(--surface)}.creation-summary h2{font:normal 29px/1.2 var(--serif);margin:24px 0 12px}.creation-summary p{font-size:12px;line-height:1.8;color:var(--muted)}.creation-summary ul{list-style:none;padding:16px 0;margin:0}.creation-summary li{font-size:11px;display:flex;gap:9px;align-items:center;margin-bottom:15px}.creation-summary li .icon{color:var(--green);width:15px;height:15px}.generation-info{display:flex;gap:10px;padding:18px 0;border-top:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.7}.generation-info .icon{width:16px}.creation-summary .button{margin-top:10px}.key-notice{font-size:11px;line-height:1.7;padding:13px;background:var(--surface);border-radius:7px;color:var(--green)}.creation-summary .cost-note{font-size:9px;text-align:center;line-height:1.7;margin-bottom:0}.notice{background:var(--soft-green);border-radius:8px;padding:15px;margin-bottom:20px;display:flex;align-items:center;gap:12px}.notice .text-button{margin-left:auto}.progress-page{text-align:center;padding-top:60px}.progress-page>.eyebrow{justify-content:center}.progress-page h1{font:normal 48px/1.2 var(--serif);margin:20px 0 28px}.progress-orb{height:80px;width:80px;border-radius:50%;background:var(--soft-green);color:var(--green);display:grid;place-items:center;margin:0 auto 30px;animation:breathe 3s ease-in-out infinite}.progress-orb .icon{height:38px;width:38px}.progress-orb.done{animation:none}.progress-track{width:min(360px,100%);height:5px;background:var(--line);border-radius:5px;margin:30px auto 15px;overflow:hidden}.progress-track>div{height:100%;background:var(--green);width:0;transition:width 1s}.muted{color:var(--muted);font-size:12px}#progress-actions{display:flex;justify-content:center;align-items:center;gap:16px;margin:32px 0 20px;flex-wrap:wrap}.progress-page>small{color:var(--muted);font-size:10px}@keyframes breathe{50%{transform:scale(1.07)}}dialog{width:min(580px,calc(100vw - 28px));max-height:calc(100dvh - 40px);padding:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#17241da3;backdrop-filter:blur(4px)}.dialog-head{padding:26px 28px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.dialog-head h2{font:normal 28px var(--serif);margin:8px 0 0}.dialog-head .eyebrow{font-size:8px}.settings-body{padding:22px 28px}.field-row{display:grid;grid-template-columns:1.5fr 1fr;gap:15px}.field-row label{font-size:11px;font-weight:600}.field-row input{margin-top:10px}.setting-toggle{display:flex;align-items:center;justify-content:space-between;margin:25px 0}.setting-toggle strong{display:block;font-size:12px;font-weight:600}.setting-toggle small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.setting-toggle input{width:34px;height:19px;accent-color:var(--green)}.settings-divider{height:1px;background:var(--line);margin:26px 0}.settings-body h3{font-size:13px;display:flex;align-items:center;gap:9px}.connection-status{margin-left:auto;font-size:10px;color:var(--green);font-weight:400}.settings-body details{margin-top:23px;font-size:11px;color:var(--muted)}summary{cursor:pointer;padding:7px 0}.settings-body details .field-label{display:block}.settings-body details input,.settings-body details select{margin-top:10px}.dialog-foot{display:flex;gap:10px;justify-content:flex-end;padding:18px 28px;border-top:1px solid var(--line);position:sticky;bottom:0;background:var(--surface)}.folder-button{margin-top:20px}.form-error{color:#bd6464;font-size:12px;line-height:1.6}.loading{padding:20vh 20px;text-align:center;font:normal 22px var(--serif)}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);border-radius:9px;padding:14px 23px;font-size:12px;line-height:1.5;box-shadow:0 5px 20px #0002;z-index:1000;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100vw - 30px);width:max-content}#toast.show{opacity:1;transform:translate(-50%,0)}.reading{overflow:hidden}.reader{height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,var(--sidebar),var(--bg) 75%)}.reader-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 30px;min-height:105px;border-bottom:1px solid var(--line);flex-shrink:0}.reader-header>div{text-align:center}.reader-header .eyebrow{justify-content:center;font-size:8px}.reader-header h1{font:normal 24px var(--serif);margin:9px 0 0}.reader-tag{font-size:10px;color:var(--muted)}.reading-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:32px 30px;container-type:size}.open-book{position:relative;width:min(1080px,calc(100cqh * 1.6),100%);aspect-ratio:1.6;display:flex;perspective:2400px;filter:drop-shadow(0 23px 20px #16211a27);border-radius:4px;box-shadow:0 3px 0 #c9c3b2,0 6px 0 #e2dbcb,0 9px 0 #b4ad9d,0 12px 0 #40533f;container-type:inline-size;touch-action:pan-y;user-select:none}.page-slot{width:50%;height:100%;position:relative}.paper-page{position:relative;width:100%;height:100%;overflow:hidden;background:var(--paper);color:#29342e}.left-page .paper-page{border-radius:6px 0 0 6px}.right-page .paper-page{border-radius:0 6px 6px 0}.paper-page:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 24px #49321108}.left-page:after,.right-page:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2}.left-page:after{background:linear-gradient(90deg,transparent 86%,#00000010 96%,#00000024)}.right-page:after{background:linear-gradient(90deg,#0000001f,#00000008 4%,transparent 13%)}.book-spine{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#14191030;z-index:4;pointer-events:none}.image-page{background:#141e30}.image-page img{display:block;object-fit:contain;width:100%;height:100%}.words-page{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7% 6%}.words-page p{font:normal clamp(15px,3.55cqw,42px)/1.65 var(--serif);white-space:pre-line;margin:0;text-wrap:balance}.tiny-star{font-size:3cqw;color:#ac9364;margin-bottom:8%}.page-number{position:absolute;bottom:5%;font-size:1.05cqw;color:#a09b89;font-family:var(--serif)}.cover-page .cover{height:100%;width:100%;border-radius:0;box-shadow:none}.dedication{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10%}.dedication p{white-space:pre-line;font:italic 2.5cqw/1.6 var(--serif);color:#58604e}.dedication-star{color:#a59161}.dedication-star .icon{width:3cqw;height:3cqw}.dedication small{position:absolute;bottom:8%;font-size:1cqw;letter-spacing:1px;text-transform:uppercase;color:#888c78}.turning-leaf{position:absolute;top:0;bottom:0;width:50%;z-index:6;transform-style:preserve-3d;will-change:transform}.turning-leaf.forward{left:50%;transform-origin:left center}.turning-leaf.backward{left:0;transform-origin:right center}.leaf-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;box-shadow:0 0 26px #0002}.leaf-back{transform:rotateY(180deg)}.leaf-face:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#00000019,transparent 25%,#00000008)}.reader-footer{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:13px 25px;border-top:1px solid var(--line);background:var(--surface);flex-shrink:0;min-height:72px}.reader-footer-left,.reader-footer-right{display:flex;align-items:center;gap:12px;min-width:0}.reader-footer-right{justify-content:flex-end}.reader-book-title{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-controls{display:flex;gap:12px;align-items:center}.turn-button{border:1px solid var(--line);width:38px;height:38px}.page-picker select{border:0;background:none;text-align:center;width:165px;font-size:11px;padding:10px 5px}.reader-progress{position:absolute;left:0;top:-1px;height:2px;background:var(--green);transition:width .4s}.reader.focused .reader-header{display:none}.reader.focused .reading-stage{padding:22px}.reader.focused .open-book{width:min(1400px,calc(100cqh * 1.6),100%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.auth-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:var(--bg)}.auth-art{background:var(--hero);padding:58px 60px;position:relative;display:flex;flex-direction:column;align-items:flex-start;overflow:hidden}.auth-art .brand{margin-bottom:80px}.auth-art h1{font:normal clamp(36px,4.2vw,65px)/1.07 var(--serif);letter-spacing:-2px;z-index:1}.auth-art h1 em{color:var(--green);font-weight:400}.auth-art p{line-height:1.9;color:var(--muted);font-size:13px;max-width:330px}.auth-moon{position:absolute;right:-80px;bottom:-120px;border:1px solid #acb7a563;width:500px;height:500px;border-radius:50%}.auth-moon:after{content:'✧';font:260px var(--serif);position:absolute;left:120px;top:40px;color:#a8b39370;transform:rotate(-12deg)}.auth-foot{margin-top:auto;padding-top:60px;font:italic 16px var(--serif);color:var(--muted);z-index:1}.auth-main{display:flex;align-items:center;justify-content:center;padding:55px 40px;position:relative}.auth-theme{position:absolute;right:25px;top:20px}.auth-form{width:100%;max-width:350px}.auth-form h2{font:normal 37px/1.2 var(--serif);letter-spacing:-1px;margin:15px 0}.auth-form>p{font-size:12px;color:var(--muted);line-height:1.8}.auth-form input,.auth-form select,.auth-form textarea{background:var(--surface)}.auth-form .button{margin-top:22px}.auth-form .field-label{margin-top:22px}.auth-form .text-button{font-size:11px;display:flex;margin:15px auto 0}.auth-caption{display:flex;justify-content:center;gap:7px;font-size:10px;color:var(--muted);margin-top:35px}.auth-caption .icon{width:13px;height:13px}.review-list{padding-left:20px;font-size:12px;line-height:1.8}.review-summary{font:normal 21px/1.5 var(--serif);margin:12px 0}.quality-badge{font-size:9px;color:var(--green);display:flex;align-items:center;gap:4px;margin-top:8px}.quality-badge .icon{width:12px;height:12px}.signout-button{margin-left:auto}.settings-body .account-panel{border-top:1px solid var(--line);margin-top:25px;padding-top:15px}.settings-body .field-label.column{display:block}.settings-body .column input,.settings-body .column select{margin-top:8px}
.draft-section{border-top:1px solid var(--line);margin-top:30px;padding-top:30px}.draft-section .book-grid{margin-top:24px}.discussion-layout{display:grid;grid-template-columns:220px 1fr;gap:45px;align-items:start}.discussion-book .cover{margin-bottom:22px}.discussion-book .field-hint{margin-top:20px}.discussion-thread{min-width:0}.discussion-comment{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:17px}.discussion-comment header{display:flex;align-items:center;gap:10px}.discussion-comment header strong{font-size:12px}.discussion-comment header .avatar{width:30px;height:30px;font-size:16px}.discussion-comment time{font-size:9px;color:var(--muted);margin-left:auto}.discussion-comment p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9}.reference-note{background:var(--soft-green);padding:12px;border-radius:6px;font-size:10px;overflow-wrap:anywhere;line-height:1.8}.reference-note strong{display:block;margin-bottom:3px}.discussion-form{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.discussion-form .button{margin-top:12px}.discussion-empty{padding:27px;text-align:center;color:var(--muted)}.discussion-empty h3{font:normal 27px/1.3 var(--serif);color:var(--ink)}.discussion-empty p{font-size:12px;line-height:1.8}.review-report{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}.review-list li{margin-bottom:16px}.quality-badge{padding:2px 0;cursor:pointer}.quality-badge:hover{text-decoration:underline}.card-bottom>div{display:flex}.topbar-actions .account-button{width:32px;height:32px}.topbar-actions .account-button .icon{width:17px;height:17px}
@media(max-width:600px){.discussion-layout{grid-template-columns:1fr;gap:20px}.discussion-book{display:grid;grid-template-columns:100px 1fr;gap:15px;align-items:center}.discussion-book .cover{grid-row:1/3;margin:0}.discussion-book .field-hint{margin:0}.discussion-book .button{font-size:11px}.discussion-comment,.discussion-form{padding:18px}.discussion-comment time{font-size:8px}.discussion-comment p{font-size:12px}.card-bottom{flex-wrap:wrap}.card-bottom>div{margin-left:auto}.draft-section .section-heading p{line-height:1.7}.auth-theme .icon-button{width:34px;height:34px}}
.cover-imprint{display:none}.songs-heading{display:flex;align-items:center;justify-content:space-between;background:var(--hero);border:1px solid var(--line);padding:30px 38px;border-radius:14px;margin-bottom:28px}.songs-heading .page-heading{padding:0}.song-heading-art{padding:25px;transform:rotate(9deg);text-align:center;color:var(--green)}.song-heading-art>.icon{width:110px;height:110px;stroke-width:.75}.song-heading-art span{display:block;font:italic 17px var(--serif);margin-top:20px}.song-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px}.song-toolbar>.muted{font-size:10px}.song-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:23px}.song-card{text-align:left;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:transform .2s,box-shadow .2s}.song-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.song-thumbnail{aspect-ratio:16/10;position:relative;background:var(--hero);overflow:hidden}.song-thumbnail>img{width:100%;height:100%;object-fit:cover;display:block}.song-thumbnail>span{position:absolute;bottom:11px;right:11px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--green)}.song-thumbnail .icon{width:14px;height:14px}.song-card-info{padding:18px}.song-card-info>.eyebrow{font-size:8px;letter-spacing:1.3px}.song-card h2{font:normal 22px/1.25 var(--serif);margin:10px 0 17px;min-height:55px}.song-card-link{font-size:10px;color:var(--green);display:flex;justify-content:space-between;align-items:center}.song-card-link .icon{width:14px;height:14px}.song-credits{font-size:10px;color:var(--muted);text-align:center;margin:28px 0 5px}.singing{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg)}.song-backdrop{position:absolute;inset:0 0 65px;overflow:hidden;pointer-events:none}.song-backdrop>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.song-shade{position:absolute;inset:0;background:linear-gradient(90deg,#faf8f330,#faf8f3e3 27%,#faf8f3ee 50%,#faf8f3e3 73%,#faf8f330)}[data-theme=dark] .song-shade{background:linear-gradient(90deg,#121c2060,#121c20dd 27%,#121c20e8 50%,#121c20dd 73%,#121c2060)}.song-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;padding:65px 35px}.song-lyrics{position:relative;max-width:850px;min-height:100%;margin:auto;display:flex;flex-direction:column;justify-content:center;text-align:center;color:var(--ink);font:normal clamp(23px,3vw,42px)/1.7 var(--serif);text-shadow:0 1px 15px var(--bg)}.song-lyrics p{white-space:pre-line;margin:0 0 50px;text-wrap:balance}.song-lyrics p:last-child{margin-bottom:0}.singing-footer{position:relative;flex-shrink:0;height:65px;padding:10px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--surface);border-top:1px solid var(--line)}.song-selector{display:flex;align-items:center;gap:15px}.song-selector select{background:none;border:0;text-align:center;font-size:12px;width:290px}.singing-options{display:flex;gap:8px}.singing-footer .icon-button{height:38px;width:38px}@media(max-width:800px){.mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-nav .song-nav{grid-column:4;grid-row:1}.mobile-nav button:nth-child(4){grid-column:5;grid-row:1}}@media(max-width:600px){.songs-heading{padding:25px;gap:10px}.songs-heading h1{font-size:35px}.songs-heading p{font-size:11px}.song-heading-art{display:none}.song-grid{grid-template-columns:1fr 1fr;gap:14px}.song-card-info{padding:13px}.song-card h2{font-size:19px;min-height:48px;margin:8px 0 13px}.song-card-info>.eyebrow{font-size:7px;letter-spacing:1px}.song-credits{font-size:9px;line-height:1.8}.song-toolbar>.muted{display:none}.song-toolbar .filter{font-size:10px;padding:8px 10px}.singing-footer{height:65px;padding:8px;gap:2px}.singing-footer .icon-button{width:29px;height:34px}.singing-footer .icon{height:17px;width:17px}.song-selector{gap:0;min-width:0}.song-selector label{min-width:0}.song-selector select{font-size:10px;max-width:180px;width:100%;padding:10px 1px}.singing-options{gap:0}.song-backdrop>img{object-fit:contain;object-position:center bottom}.song-shade{background:linear-gradient(#faf8f3 3%,#faf8f3b3 60%,#faf8f333 100%)}[data-theme=dark] .song-shade{background:linear-gradient(#1b221e 3%,#1b221ecc 60%,#1b221e55 100%)}.song-scroll{padding:50px 20px 90px}.song-lyrics{font-size:clamp(20px,5.7vw,25px);line-height:1.8;justify-content:flex-start}.song-lyrics p{margin-bottom:45px}}@media(max-height:550px) and (orientation:landscape){.song-scroll{padding:25px}.song-lyrics{font-size:25px}.singing-footer{height:55px}.song-backdrop{bottom:55px}}
@media(min-width:1450px){.content{padding-left:58px;padding-right:58px}.hero{min-height:365px}.hero-cover{width:205px!important}.book-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.new-book-card{min-height:310px}}
@media(max-width:1100px){.sidebar{width:192px;padding-left:15px;padding-right:15px}.main{margin-left:192px}.content{padding:28px}.topbar{padding:0 28px}.hero{padding:29px}.hero-art{min-width:190px}.hero-cover{width:157px!important}.hero .eyebrow{font-size:7px;letter-spacing:1.3px}.hero h1{font-size:40px}.hero p{font-size:11px}.orbit{width:200px;height:220px}.orbit-two{width:240px;height:190px}.hero-footnote{font-size:8px}.book-grid{gap:20px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.reading-note{display:none}.creation-summary{padding:22px}.create-layout{gap:22px}.form-panel{padding:22px}.reader-book-title{display:none}.auth-art{padding:40px}}
@media(max-width:800px){.sidebar{display:none}.main{margin-left:0;padding-bottom:66px}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(4,1fr);bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--line);z-index:30;padding:7px 10px max(8px,env(safe-area-inset-bottom))}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:9px;color:var(--muted);padding:5px}.mobile-nav .active{color:var(--green);font-weight:650}.mobile-nav .icon{height:21px;width:21px}.topbar{height:65px;padding:0 23px}.content{padding:25px 23px}.main-footer{padding:24px}.hero h1{font-size:42px}.hero-art{min-width:230px}.hero-cover{width:177px!important}.hero .eyebrow{font-size:8px}.hero{padding:30px}.hero-footnote{font-size:9px}.reading-note{display:block}.book-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.create-layout{grid-template-columns:1.2fr 1fr;gap:20px}.creation-summary{padding:20px}.creation-summary h2{font-size:25px}.creation-summary li{font-size:10px}.form-panel{padding:20px}.auth-art{padding:35px}.auth-art .brand{margin-bottom:60px}.auth-art h1{font-size:43px}.auth-main{padding:40px 28px}.auth-form h2{font-size:32px}#toast{bottom:84px}.reading #toast{bottom:86px}.reader-footer{padding-left:12px;padding-right:12px;gap:8px}.reader-footer-left,.reader-footer-right{gap:4px}}
@media(max-width:600px){.topbar{padding:0 18px}.topbar-parent,.topbar-divider{display:none}.local-badge{font-size:0;gap:0}.local-badge i{width:6px;height:6px}.topbar-actions{gap:10px}.content{padding:20px 18px}.hero{padding:27px 24px 25px;flex-direction:column;gap:25px}.hero-copy{flex:auto}.hero .eyebrow{font-size:7px;letter-spacing:1.4px}.hero h1{font-size:42px;margin:19px 0 16px}.hero p{font-size:12px}.hero-art{height:200px;min-width:0;max-width:none;padding:8px 0 20px;flex:auto}.hero-cover{width:143px!important;transform:rotate(7deg)}.hero .button{padding:12px 15px}.hero-footnote{font-size:8px;margin-top:15px}.orbit{width:220px;height:180px}.orbit-two{width:265px;height:155px}.star-one{left:12%;top:0}.star-two{right:13%;top:18%}.star-three{left:24%;bottom:3%}.art-caption{bottom:-5px;font-size:11px}.hero{gap:28px}.section-heading h2{font-size:23px}.section-heading p{font-size:10px}.create-top{font-size:0;padding:0;width:40px;height:40px;min-height:40px;border-radius:50%}.create-top .icon{width:20px}.shelf-toolbar{align-items:flex-start;flex-direction:column;margin:19px 0}.search{width:100%;background:var(--surface);border:1px solid var(--line);padding:0 12px;border-radius:7px}.search input{font-size:12px;padding:11px 0}.book-grid{grid-template-columns:1fr 1fr;gap:15px}.card-art{padding:14px 15px}.favorite-button{height:28px;width:28px;right:5px;top:5px}.card-title{font-size:18px}.card-subtitle{font-size:9px;line-height:1.6}.card-bottom .text-button{font-size:10px;gap:2px}.card-meta{font-size:8px;margin-top:13px}.new-book-card{min-height:213px;max-height:none;height:auto;padding:20px 10px}.new-book-card strong{font-size:17px}.new-book-card>span:not([class]){font-size:9px}.new-book-icon{width:35px;height:35px;margin-bottom:15px}.new-book-link{font-size:9px;margin-top:19px;gap:3px}.new-book-link .icon{width:11px}.reading-note{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);margin-top:18px;padding:25px 3px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.reading-note>.icon{display:none}.reading-note .eyebrow{grid-column:1/-1}.reading-note h3{font-size:25px;margin:7px 0}.reading-note p{font-size:10px;margin:7px 0}.note-signature{grid-column:1/-1;margin-top:0}.main-footer{padding:12px 18px 22px;font-size:8px}.create-layout{grid-template-columns:1fr;gap:22px}.page-heading h1{font-size:37px}.page-heading .eyebrow{font-size:8px}.page-heading p{font-size:12px}.creation-summary{position:static;padding:25px}.creation-summary h2{font-size:28px}.creation-summary li{font-size:12px}.form-panel{padding:23px 20px}.genre-grid{gap:10px}.choice{padding:14px}.field-label{font-size:12px}.choice strong{font-size:12px}.choice small{font-size:10px}.reader-header{min-height:100px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:12px}.reader-header>div{grid-column:1/-1;grid-row:2}.reader-header>div h1{font-size:20px}.reader-header .eyebrow{display:none}.reader-header>.text-button{font-size:11px}.reader-tag{font-size:9px}.reading-stage,.reader.focused .reading-stage{padding:14px 10px 22px}.open-book{width:min(calc(100cqh * 1.6),100%)}.reader-footer{grid-template-columns:40px 1fr auto;gap:4px;padding:10px 7px max(10px,env(safe-area-inset-bottom));min-height:66px}.reader-footer .icon-button{height:34px;width:34px}.reader-footer .icon{height:17px;width:17px}.reader-footer-right{gap:1px}.page-controls{gap:4px;justify-content:center}.page-picker select{width:121px;font-size:10px;padding:8px 0}.reader-footer-left{gap:0}.reader-footer-left .icon-button{width:30px}.words-page{padding:10% 8%}.words-page p{font-size:clamp(14px,3.7cqw,25px);line-height:1.45}.tiny-star{font-size:3.5cqw}.page-number{font-size:2cqw}.dedication p{font-size:3.2cqw}.dedication small{font-size:1.45cqw}.cover h3{font-size:10.8cqw}.dialog-head{padding:22px}.dialog-head h2{font-size:25px}.settings-body{padding:20px 22px}.field-row{gap:12px}.field-row label{font-size:10px}.dialog-foot{padding:15px 22px}.progress-page{padding-top:45px}.progress-page h1{font-size:39px}.progress-page>.eyebrow{font-size:8px}.auth-page{grid-template-columns:1fr}.auth-art{padding:24px 25px 28px;min-height:240px}.auth-art .brand{font-size:29px;margin-bottom:15px}.auth-art .brand-mark{width:34px;height:34px}.auth-art .brand-sub{font-size:6px}.auth-art h1{font-size:36px;margin:20px 0 10px;letter-spacing:-1px}.auth-art h1 br{display:none}.auth-art p{font-size:11px;margin:0;max-width:290px}.auth-foot{display:none}.auth-moon{width:270px;height:270px;right:-120px;bottom:-160px}.auth-moon:after{font-size:130px;left:55px;top:12px}.auth-main{padding:36px 28px 40px;align-items:start}.auth-form{max-width:400px}.auth-form h2{font-size:31px}.auth-form .eyebrow{font-size:8px}.auth-theme{top:17px;right:17px}.auth-caption{margin-top:25px}}
@media(max-height:550px) and (orientation:landscape){.reader-header{min-height:64px;padding:10px 20px;display:flex}.reader-header>div h1{font-size:19px;margin:0}.reader-header .eyebrow{display:none}.reading-stage,.reader.focused .reading-stage{padding:14px 25px 20px}.reader-footer{min-height:53px;padding:5px 18px}.reader-footer .icon-button{height:34px;width:34px}.reader-footer .page-picker select{padding:7px}.reader-header>.reader-tag{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.reduce-motion *{animation:none!important;transition:none!important}

@media(max-width:800px){.mobile-nav{grid-template-columns:repeat(5,1fr)}}

.login-password-field{position:relative}.login-password-field input{padding-right:54px}.login-password-field .password-visibility{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:40px;height:40px;color:var(--muted)}.login-password-field input::-ms-reveal{display:none}

.birth-fields{margin-top:20px}.birth-fields select{margin-top:10px}

.genre-option{position:relative;min-width:0}.genre-option .choice{height:100%;min-height:108px;padding-right:42px}.genre-option.help-open{z-index:5}.genre-option .choice input{width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);opacity:0}.genre-option .choice:focus-within{outline:2px solid var(--green);outline-offset:3px}.genre-info{position:absolute;top:5px;right:5px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted)}.genre-info:hover,.genre-info:focus-visible{color:var(--green);background:var(--soft-green)}.genre-info .icon{width:16px;height:16px}.genre-tooltip{position:absolute;top:44px;left:8px;right:8px;padding:12px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;line-height:1.6;box-shadow:var(--shadow);text-align:left}.genre-tooltip[hidden]{display:none}@media(pointer:coarse){.genre-info{width:44px;height:44px;top:0;right:0}.genre-tooltip{top:46px}}
.genre-tooltip.tooltip-above{top:auto;bottom:calc(100% - 4px)}
.form-create-button{margin-top:24px}
.create-content .create-layout{grid-template-columns:minmax(0,1fr);max-width:760px}.creation-setup{margin-top:20px}

.bookshelf-search{width:300px;max-width:45%;min-height:46px;gap:10px;padding:0 15px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.bookshelf-search .icon{width:18px;height:18px}.bookshelf-search input{min-width:0;padding:13px 0;font-size:13px;color:var(--ink)}@media(max-width:600px){.bookshelf-heading{flex-direction:column;align-items:stretch}.bookshelf-search{width:100%;max-width:none}.bookshelf-search input{font-size:16px}}

/* Readable supporting text in both themes; theme-specific contrast below. */
html input::placeholder,html textarea::placeholder{opacity:1}
html .nav-count{opacity:1}
html .nav-item{font-size:14px;font-weight:600}
html :is(.section-heading p,.filter,.card-subtitle,.new-book-card>span:not([class]),.new-book-link,.archive-link,.field-hint,.optional,.choice small,.field-row label,.setting-toggle small,.settings-body details,.connection-status,.auth-caption,.quality-badge,.discussion-comment time,.reference-note,.song-card-link,.song-credits){font-size:12px;line-height:1.6}
html :is(.card-meta,.card-meta span:first-child,.profile small,.nav-label,.mobile-nav button,.eyebrow){font-size:11px}
html :is(.profile strong,.choice strong,.card-bottom .text-button){font-size:12px}
html .card-meta{flex-wrap:wrap;gap:4px 8px}
html:not([data-theme=dark]) .form-error{color:#a23a3a}
html:not([data-theme=dark]) .favorite-button.selected{color:#9d4852}
html :is(.page-number,.dedication small){color:#616852}
html:not([data-theme=dark]) .song-shade{background:linear-gradient(90deg,#faf8f3d9,#faf8f3f2 35%,#faf8f3f2 65%,#faf8f3d9)}

html[data-theme=dark] .form-error{color:#f0a3a3}
html[data-theme=dark] .favorite-button.selected{color:#e6a2ab}
html[data-theme=dark] .song-shade{background:linear-gradient(90deg,#121c20d9,#121c20f2 35%,#121c20f2 65%,#121c20d9)}

/* A larger open book with gently bowed leaves and layered paper edges. */
.reader-header{min-height:76px;padding:12px 24px}
.reader-header h1{font-size:22px;margin:0}
.reading-stage,.reader.focused .reading-stage{padding:10px 16px 22px}
.open-book,.reader.focused .open-book{width:min(1600px,calc(100cqh * 1.6),100%);border-radius:0;box-shadow:none;filter:drop-shadow(0 16px 16px #0b150c45)}
.book-shape-defs{position:absolute;overflow:hidden;pointer-events:none}
.left-page,.turning-leaf.forward .leaf-back,.turning-leaf.backward .leaf-front{--page-curve:url(#book-curve-left);--page-light:linear-gradient(90deg,#51442c1f 0%,#fffdf109 9%,#fffdf124 36%,#fffdf10a 58%,#33281805 76%,#33281824 92%,#15190f66 100%)}
.right-page,.turning-leaf.forward .leaf-front,.turning-leaf.backward .leaf-back{--page-curve:url(#book-curve-right);--page-light:linear-gradient(90deg,#15190f66 0%,#33281824 8%,#33281805 24%,#fffdf10a 42%,#fffdf124 64%,#fffdf109 91%,#51442c1f 100%)}
.page-slot{isolation:isolate}
.page-slot:before{content:'';position:absolute;inset:0;clip-path:var(--page-curve);background:#c6bba3;transform:translateY(clamp(4px,.7cqw,9px));z-index:0}
.page-slot>.paper-page{z-index:1}
.paper-page,.left-page .paper-page,.right-page .paper-page{clip-path:var(--page-curve);border-radius:0}
.paper-page:after{background:var(--page-light);box-shadow:none;z-index:2}
.left-page:after,.right-page:after{content:'';position:absolute;inset:0;clip-path:var(--page-curve);background:#eee4cf;transform:translateY(clamp(2px,.35cqw,4.5px));z-index:0;pointer-events:none}
.book-spine{top:2.7%;bottom:1.3%;left:50%;width:clamp(5px,1.1cqw,16px);transform:translateX(-50%);border-radius:50%;background:linear-gradient(90deg,#15170e00,#15170e3d 35%,#10160c70 50%,#15170e3d 65%,#15170e00)}
.leaf-face{overflow:visible;box-shadow:none;filter:drop-shadow(0 5px 9px #0003)}
.leaf-face:after{content:none}
.page-number{bottom:8%}
.reader-footer{min-height:64px;padding:9px 20px}
@media(max-width:600px){.reader-header{min-height:90px;padding:10px 14px;gap:8px}.reader-header>div h1{font-size:19px}.reading-stage,.reader.focused .reading-stage{padding:8px 6px 18px}.reader-footer{min-height:66px;padding:10px 7px max(10px,env(safe-area-inset-bottom))}}
@media(max-height:550px) and (orientation:landscape){.reader-header{min-height:56px;padding:8px 18px}.reading-stage,.reader.focused .reading-stage{padding:6px 12px 15px}.reader-footer{min-height:53px;padding:5px 18px}}

/* The cover is one centered, closed book; opening slides it into a spread. */
.open-book.is-closed,.reader.focused .open-book.is-closed{width:min(800px,calc(100cqh * .8),calc(100% - 12px));aspect-ratio:.8}
.closed-book-cover{display:block;position:relative;width:100%;height:100%;padding:0;border-radius:3px 10px 10px 3px;box-shadow:3px 3px 0 #e4dbc7,6px 6px 0 #40533f,0 14px 28px #0003}
.closed-book-cover .cover{height:100%;border-radius:3px 10px 10px 3px}
.cover-moving{pointer-events:none;will-change:transform}
.cover-moving .left-page{visibility:hidden}
.cover-turn .leaf-front .paper-page{clip-path:none;border-radius:3px 10px 10px 3px}
.cover-turn .leaf-front .paper-page:after{background:linear-gradient(90deg,#0003,transparent 6%)}

.page-turn-target{position:absolute;inset:0;width:100%;height:100%;padding:0;z-index:3;background:transparent;border:0;border-radius:0;touch-action:pan-y}.page-turn-target:disabled{opacity:1;cursor:default}.page-turn-target:focus-visible{outline-offset:-7px}

.page-position{display:inline-block;min-width:150px;text-align:center;font-size:12px;cursor:default}@media(max-width:600px){.page-position{min-width:121px;font-size:11px}}

.reader-tag{font-size:14px;font-weight:600;line-height:1.5;color:var(--ink)}@media(max-width:600px){.reader-tag{font-size:13px}}

button:focus:not(:focus-visible){outline:none}button:focus-visible{outline-color:var(--green)}

/* Reader return button */
.reader-header>.text-button{display:inline-flex;align-items:center;justify-content:center;justify-self:start;gap:8px;min-height:42px;padding:10px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;box-shadow:0 2px 5px #00000008;transition:background .16s,border-color .16s,box-shadow .16s}.reader-header>.text-button .icon{width:18px;height:18px;color:var(--green)}.reader-header>.text-button:hover{background:var(--soft-green);border-color:var(--green);text-decoration:none;box-shadow:0 3px 9px #00000012}.reader-header>.text-button:active{box-shadow:none}@media(max-width:600px){.reader-header>.text-button{min-height:40px;padding:9px 12px;font-size:13px}}@media(prefers-reduced-motion:reduce){.reader-header>.text-button{transition:none}}

.reader-footer>.page-controls{grid-column:2;grid-row:1}.reader-footer>.reader-footer-right{grid-column:3;grid-row:1}
/* Larger shelf covers and a simpler book information layout. */
.book-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:32px}
.book-card{max-width:340px;display:flex;flex-direction:column}
.card-art{padding:0;position:relative}
.book-details{padding-top:18px;flex:1;display:flex;flex-direction:column}
html .card-meta{margin:0;align-items:center;justify-content:flex-start;gap:12px;letter-spacing:0;font-size:12px}
html .card-meta span:first-child{padding:4px 9px;border-radius:6px;background:var(--soft-green);font-size:11px;letter-spacing:.5px}
.card-title{font-size:23px;line-height:1.3;margin:12px 0 16px}
.card-bottom{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:auto}
.book-read-button{width:100%;justify-content:space-between;font-size:13px;min-height:44px;border-radius:10px}
.book-read-button .icon{width:17px;height:17px}
.card-bottom>div{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0}
.book-discussion-button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:7px 4px;color:var(--muted);font-size:12px;font-weight:600;border-radius:6px}
.book-discussion-button .icon{width:20px;height:20px;stroke-width:1.8}
.book-discussion-button:hover{color:var(--green)}
.favorite-button{top:12px;right:12px;width:36px;height:36px}
.favorite-button .icon{width:18px;height:18px}
@media(max-width:600px){.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.card-title{font-size:19px;margin:10px 0 14px}.book-details{padding-top:14px}html .card-meta{gap:7px;font-size:11px}.book-read-button{font-size:12px;padding:10px;gap:6px}.book-discussion-button{font-size:11px;gap:5px}.favorite-button{top:8px;right:8px;width:32px;height:32px}}
@media(max-width:360px){.book-grid{grid-template-columns:1fr}.book-card{max-width:none}}
/* Keep search focus on its container, using the app's green theme. */
.bookshelf-search input:focus,.bookshelf-search input:focus-visible{outline:none;box-shadow:none}
.bookshelf-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 18%,transparent)}
.front-cover-button{grid-column:1;grid-row:1;justify-self:start;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-weight:600;color:var(--ink);background:var(--bg)}
.front-cover-button .icon{width:18px;height:18px;color:var(--green)}
.front-cover-button:hover:not(:disabled){background:var(--soft-green);border-color:var(--green)}
@media(max-width:600px){.reader-footer{grid-template-columns:40px minmax(0,1fr) auto}.front-cover-button{width:36px;height:36px;min-height:36px;padding:0;justify-content:center}.front-cover-button span{display:none}.page-position{min-width:100px;font-size:11px}}
/* Reader navigation uses plain, unobtrusive controls. */
.reader-header>.text-button,.front-cover-button{border:0;background:transparent;box-shadow:none;transition:color .16s}
.reader-header>.text-button:hover,.reader-header>.text-button:active,.front-cover-button:hover:not(:disabled),.front-cover-button:active{border:0;background:transparent;box-shadow:none;color:var(--green);text-decoration:none}
.reader-header>.text-button:focus,.front-cover-button:focus{outline:none;box-shadow:none}
.reader-header>.text-button,.front-cover-button{-webkit-tap-highlight-color:transparent}

/* Buttons do not gain a border highlight when activated. */
button:focus,button:focus-visible,button:active{outline:none!important}
button{-webkit-tap-highlight-color:transparent}

/* Song reading shares the book reader's header and plain footer label. */
.singing-header{position:relative;z-index:2;background:var(--bg);display:grid;grid-template-columns:1fr auto 1fr}
.singing-header>.reader-tag{justify-self:end}

.singing-footer{display:grid;grid-template-columns:1fr auto 1fr}
.song-selector{grid-column:2;grid-row:1}
.singing-options{justify-self:end;grid-column:3;grid-row:1}
.song-position{display:block;width:290px;text-align:center;font-size:13px;font-weight:600;line-height:1.4;cursor:default}
@media(max-width:600px){.singing-header{grid-template-columns:1fr auto}.singing-header>div{grid-column:1/-1;grid-row:2}.singing-header .reader-tag{font-size:12px}.singing-footer{grid-template-columns:29px minmax(0,1fr) auto}.song-selector{justify-content:center}.song-position{width:auto;max-width:160px;font-size:11px}.song-selector .icon-button{flex-shrink:0}}

/* Songs are a continuous vertical lyrics view. */
.song-scroll{overflow-y:auto;touch-action:pan-y;scrollbar-width:thin;padding:40px 35px 65px}
.song-lyrics{justify-content:flex-start;min-height:0}
.song-selector{justify-content:center}
@media(max-width:600px){.song-scroll{padding:32px 20px 55px}}

/* Search songs without interrupting typing or category selection. */
.song-search-tools{display:flex;align-items:center;gap:16px}.song-search{margin:0}.song-card[hidden],.song-search-empty[hidden]{display:none}.song-search-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}
.song-toolbar{flex-wrap:wrap;gap:18px}.song-search-tools #song-count{white-space:nowrap;font-size:12px}
@media(max-width:700px){.song-search-tools{width:100%;flex-direction:row-reverse;justify-content:space-between}.song-search{width:100%;max-width:none}.song-toolbar .filter-tabs{flex-wrap:wrap}}

/* Give even short songs room to scroll up into a comfortable reading position. */
.song-scroll .song-lyrics{min-height:calc(100% + 120px);padding-bottom:40vh}
@media(max-width:600px){.song-scroll .song-lyrics{padding-bottom:35vh}}

/* A quiet storybook backdrop, drawn with lightweight static layers. */
.app-shell>.main{position:relative;isolation:isolate;background-color:var(--bg);background-image:radial-gradient(ellipse at 94% 10%,#d7e1cb75 0,transparent 48%),radial-gradient(ellipse at 76% 76%,#e9d9c660 0,transparent 48%),radial-gradient(ellipse at 15% 40%,#c4d5cc35 0,transparent 55%)}
.app-shell>.main::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('library-stars.svg') 30px 0/680px 620px repeat;opacity:.38}
[data-theme=dark] .app-shell>.main{background-image:radial-gradient(ellipse at 94% 8%,#64795c30 0,transparent 48%),radial-gradient(ellipse at 82% 78%,#55677525 0,transparent 50%),radial-gradient(ellipse at 5% 45%,#3c615322 0,transparent 55%)}
[data-theme=dark] .app-shell>.main::before{opacity:.19}
@media(max-width:600px){.app-shell>.main::before{background-size:540px 493px;opacity:.28}[data-theme=dark] .app-shell>.main::before{opacity:.15}}

/* Favorite song controls are separate from opening the song. */
.song-card{position:relative}.song-open{display:block;width:100%;height:100%;text-align:left;padding:0;color:inherit;font:inherit}.song-card .song-favorite{z-index:2;top:12px;right:12px;background:var(--surface)}.favorite-songs{margin-top:36px}.favorite-songs>.section-heading{margin-bottom:20px}.song-search{flex-shrink:0;width:300px}.song-search-tools{margin-left:auto}.song-search-empty{grid-column:1/-1}
@media(max-width:700px){.song-search{width:100%;min-width:0;flex-shrink:1}.song-search-tools{margin-left:0}}

.bookshelf-heading .count-badge[hidden]{display:none}

/* Give the navigation breathing room beneath the brand. */
.sidebar > nav { margin-top: 36px; }
/* Pastel storybook atmosphere for the daytime library. */
:root:not([data-theme=dark]) .app-shell>.main{background-color:#f7f5ef;background-image:radial-gradient(ellipse at 92% 6%,#c9ddbf99 0,transparent 52%),radial-gradient(ellipse at 87% 74%,#edcfc180 0,transparent 48%),radial-gradient(ellipse at 8% 42%,#c6dce466 0,transparent 55%),radial-gradient(ellipse at 48% 100%,#ddd4e759 0,transparent 46%)}
:root:not([data-theme=dark]) .app-shell>.main::before{opacity:.65;filter:brightness(.8) saturate(.85)}
@media(max-width:600px){:root:not([data-theme=dark]) .app-shell>.main::before{opacity:.48}}

/* Larger identity on the sign-in page. */
.auth-art .brand{font-size:52px;gap:18px}.auth-art .brand-mark{width:64px;height:64px;border-radius:18px}.auth-art .brand-mark svg{width:44px;height:44px}.auth-art .brand-sub{font-size:11px;letter-spacing:2px;margin-top:5px}
@media(max-width:600px){.auth-art .brand{font-size:42px;gap:14px}.auth-art .brand-mark{width:56px;height:56px}.auth-art .brand-mark svg{width:38px;height:38px}}
/* Search occupies the same header position throughout the app shell. */
.topbar-actions{display:flex;align-items:center;gap:16px;width:100%;justify-content:flex-end}
.topbar-actions .header-search{width:300px;max-width:calc(100% - 54px);height:46px;margin:0;flex-shrink:1}
.topbar-actions .header-search input{width:100%;min-width:0}
@media(max-width:600px){.topbar-actions{gap:12px}.topbar-actions .header-search{width:100%}}

/* Storybook atmosphere for the welcome panel. */
.auth-art{isolation:isolate;background-image:radial-gradient(ellipse at 90% 18%,#c5d7b54d,transparent 52%),radial-gradient(ellipse at 12% 75%,#7e9e902e,transparent 56%),linear-gradient(145deg,#e7ebdc,#d5dfcd)}.auth-art::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('library-stars.svg') 10px 30px/580px 529px repeat;opacity:.5}.auth-art::after{opacity:.3}[data-theme=dark] .auth-art{background-image:radial-gradient(ellipse at 92% 14%,#8fa77940,transparent 52%),radial-gradient(ellipse at 8% 80%,#78968a30,transparent 58%),linear-gradient(145deg,#2c3e35,#23332e 60%,#314237)}[data-theme=dark] .auth-art::before{opacity:.38}

/* A familiar, uncluttered comment section. */
.comments-content{max-width:1050px}.comments-book-header{display:flex;gap:24px;align-items:center;margin:30px 0 36px}.comments-cover{width:76px;flex-shrink:0}.comments-cover .cover{width:76px!important;height:96px!important}.comments-cover .cover h3{font-size:9px}.comments-book-header h1{font-size:30px;margin:8px 0 14px}.comments-book-header .eyebrow{font-size:11px}.comments-heading{font-family:var(--sans);font-size:20px;margin:0 0 24px}.comments-content .discussion-form{display:flex;gap:16px;padding:0;border:0;background:none;margin:0 0 36px}.comment-compose{flex:1;min-width:0}.comments-content textarea{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:64px;padding:12px 0;font-size:15px;resize:vertical}.comment-avatar{width:40px;height:40px;flex-shrink:0;font-size:18px}.comment-reference{margin-top:12px;font-size:12px;color:var(--muted)}.comment-reference summary{cursor:pointer}.comment-reference input{margin-top:12px}.comment-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}.comment-compose-actions>span{font-size:12px;color:var(--muted)}.comment-compose-actions .button{border-radius:24px;padding:10px 22px}.comments-content .discussion-comment{display:flex;gap:16px;padding:20px 0;background:none;border:0;border-radius:0;margin:0}.comment-body{flex:1;min-width:0}.comments-content .discussion-comment header{display:flex;align-items:center;gap:12px}.comments-content .discussion-comment time{margin:0;font-size:12px;color:var(--muted)}.comments-content .discussion-comment p{font-size:15px;line-height:1.65;margin:8px 0;white-space:pre-wrap}.comments-content .discussion-empty{text-align:left;padding:12px 0;font-size:14px;color:var(--muted)}@media(max-width:600px){.comments-book-header h1{font-size:24px}.comments-book-header{gap:16px}.comment-compose-actions>span{font-size:11px}}

.model-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.model-grid .field-label{margin-top:12px}.oauth-panel{padding:18px;border-radius:12px;margin:16px 0 24px;background:var(--bg)}.oauth-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}@media(max-width:540px){.model-grid{grid-template-columns:1fr}}
/* A cleaner artwork style selector, in both themes. */
#create-form #style{
 appearance:none;
 min-height:54px;
 padding:15px 48px 15px 18px;
 border:1px solid var(--line);
 border-radius:12px;
 background-color:var(--bg);
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23849a80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
 background-repeat:no-repeat;
 background-position:right 18px center;
 color:var(--ink);
 font-size:15px;
 font-weight:600;
 cursor:pointer;
 transition:background-color .15s,border-color .15s;
}
#create-form #style:hover{background-color:var(--soft-green)}
#create-form #style:focus,#create-form #style:focus-visible{outline:none;border-color:var(--green);box-shadow:none}
#create-form #style option{background:var(--surface);color:var(--ink);font-weight:400;padding:12px}

/* Align the two lines of the sidebar wordmark. */
.sidebar .brand-sub{font-size:11px}
/* Clearly readable description for the selected illustration style. */
#style-description{margin:14px 0 24px;padding:16px 20px;border-left:3px solid var(--green);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--green) 10%,var(--surface));color:var(--ink);font-size:16px;font-weight:500;line-height:1.65;letter-spacing:.1px;max-width:none}
/* A spacious, theme-aware illustration style picker. */
#create-form #style{min-height:58px;padding:16px 20px;font-size:16px;font-weight:600;color:var(--ink);background-color:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 16px #0000000a;cursor:pointer;transition:background-color .15s,border-color .15s}#create-form #style:hover{border-color:var(--green);background-color:color-mix(in srgb,var(--green) 7%,var(--surface))}#create-form #style option{padding:14px 18px;background:var(--surface);color:var(--ink);font-size:15px}
@supports (appearance:base-select){
#create-form #style,#create-form #style::picker(select){appearance:base-select}#create-form #style{background-image:none;display:flex;align-items:center;justify-content:space-between}#create-form #style::picker-icon{color:var(--green);transition:rotate .18s}#create-form #style:open::picker-icon{rotate:180deg}#create-form #style::picker(select){padding:8px;margin-top:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px #00000030;max-height:350px;overflow:auto}#create-form #style option{display:flex;gap:12px;align-items:center;padding:13px 16px;border-radius:9px;font-weight:500;cursor:pointer}#create-form #style option:hover,#create-form #style option:focus{background:color-mix(in srgb,var(--green) 13%,var(--surface));outline:none}#create-form #style option:checked{background:color-mix(in srgb,var(--green) 18%,var(--surface));font-weight:650}#create-form #style option::checkmark{color:var(--green);font-size:16px}
}

.personality-link{margin-bottom:24px}.personality-content{max-width:960px}.personality-content .page-heading{margin:26px 0}.personality-content textarea{width:100%;min-height:260px;line-height:1.7}.personality-actions{display:flex;gap:18px;align-items:center;margin-top:20px;flex-wrap:wrap}.personality-history-title{font:26px Georgia,serif;margin:34px 0 16px}.personality-version{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px 0;border-top:1px solid var(--line)}.personality-version>div{min-width:0}.personality-version p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;margin:10px 0;max-height:160px;overflow:auto}.personality-version small{color:var(--muted)}.personality-version .button{flex-shrink:0}

.new-song-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;align-self:stretch;min-height:280px;padding:26px 18px;text-align:center;border:1px dashed var(--muted);border-radius:10px;background:color-mix(in srgb,var(--surface) 45%,transparent);color:var(--ink)}.new-song-card:hover{background:var(--soft-green)}.new-song-card .new-book-icon{margin:0}.new-song-card strong{font:22px/1.3 var(--serif)}.new-song-card>span:not([class]){font-size:12px;line-height:1.65;color:var(--muted)}.new-song-card .new-book-link{margin-top:8px}@media(max-width:600px){.new-song-card{min-height:240px;padding:20px 12px;gap:10px}.new-song-card strong{font-size:19px}.new-song-card>span:not([class]){font-size:11px}}

/* Center short lyrics in the image area; long songs retain natural scrolling. */
.singing .song-scroll{display:flex;flex-direction:column;padding:40px 35px}.singing .song-scroll .song-lyrics{flex:0 0 auto;width:100%;max-width:850px;min-height:0;padding-bottom:0;margin:auto;justify-content:center}@media(max-width:600px){.singing .song-scroll{padding:32px 20px}}

/* Persistent creator credit on shelf and reader front covers. */
.cover-credit{position:absolute;inset:auto 0 0;padding:10% 6% 4%;background:linear-gradient(transparent,#0b142ad9);color:#fff5df;font-family:var(--sans);font-size:3.8cqw;font-weight:500;line-height:1.4;letter-spacing:.02em;overflow-wrap:anywhere;pointer-events:none}

/* Hosted API-only connection and WordPress mail settings. */
.oauth-panel[hidden]{display:none!important}
