:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-synthesis:none;font-size:16px;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;width:100%}body{--bg:#08131f;--surface:#101e2b;--surface2:#172636;--text:#edf0ec;--muted:#8fa1aa;--gold:#cfb98e;--line:rgba(247,246,237,.12);--glass:rgba(28,43,58,.69);--button:#d4c4a4;--buttonText:#152331;--glow:rgba(55,94,136,.22);background:var(--bg);color:var(--text);transition:background-color .22s,color .22s;overflow-x:hidden}
body[data-theme='ivory']{color-scheme:light;--bg:#f4f1e9;--surface:#fffdf8;--surface2:#ebece5;--text:#263a32;--muted:#7b877e;--gold:#657c64;--line:rgba(45,65,55,.13);--glass:rgba(255,255,250,.77);--button:#314d42;--buttonText:#fffdf7;--glow:rgba(145,163,138,.25)}body[data-theme='aurora']{--bg:#17152d;--surface:#25243f;--surface2:#343049;--text:#f0edf7;--muted:#b0a8c4;--gold:#c3a4db;--line:rgba(246,232,255,.14);--glass:rgba(44,38,70,.73);--button:#d5bfed;--buttonText:#27213e;--glow:rgba(107,65,151,.27)}
button,input,select{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:550}h1{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.045em}h2{font-size:23px;letter-spacing:-.045em}h3{font-size:16px}.app-shell{min-height:100dvh;isolation:isolate;padding-bottom:calc(106px + env(safe-area-inset-bottom,0px));position:relative}.ambient{pointer-events:none;position:absolute;z-index:-1;inset:0 0 auto;height:520px;background:radial-gradient(ellipse 75% 50% at 70% 8%,var(--glow),transparent 75%)}.container{max-width:1080px;margin:0 auto;padding:0 22px}.topbar{padding-top:calc(20px + env(safe-area-inset-top,0px));display:flex;justify-content:space-between;align-items:center;margin-bottom:35px;gap:18px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:38px;height:43px;border:1px solid var(--gold);border-radius:11px 11px 9px 9px;display:grid;place-items:center;font-family:Georgia,serif;font-size:24px;color:var(--gold);box-shadow:inset 0 0 0 4px rgba(177,157,125,.055)}.brand-name{font-size:17px;font-weight:750;letter-spacing:.15em}.brand-sub{font-size:9px;color:var(--muted);letter-spacing:.25em;margin-top:4px}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{display:inline-grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--glass);border-radius:50%;color:var(--text);font-size:19px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.icon-btn:active,.btn:active,.tab:active{transform:scale(.96)}.eyebrow{text-transform:uppercase;letter-spacing:.19em;color:var(--gold);font-size:10px;font-weight:700;line-height:1.65}.welcome{margin-bottom:25px}.welcome h1{font-size:clamp(34px,7vw,58px);line-height:1.09;margin:10px 0 10px;max-width:560px}.subtitle{font-size:14px;line-height:1.65;color:var(--muted);max-width:500px}.hero{position:relative;display:flex;align-items:stretch;overflow:hidden;background:linear-gradient(123deg,#21334a,#102436 63%,#182e39);border:1px solid rgba(255,255,255,.13);border-radius:27px;min-height:244px;padding:26px;box-shadow:0 18px 35px rgba(0,0,0,.11)}body[data-theme='ivory'] .hero{background:linear-gradient(125deg,#466357,#294d42)}body[data-theme='aurora'] .hero{background:linear-gradient(125deg,#59436e,#322b60)}.hero-copy{position:relative;z-index:1;max-width:50%;color:#fff;align-self:center}.hero-copy .eyebrow{color:#e2cb97}.hero h2{font:normal clamp(27px,5.5vw,39px)/1.07 Georgia,serif;letter-spacing:-.035em;margin:10px 0 9px}.hero p{color:#c7d5d9;font-size:12px;line-height:1.55;margin-bottom:17px}.hero .btn{font-size:12px}.hero-art{position:absolute;right:2%;top:36px;width:120px;height:188px;transform:rotate(12deg);filter:drop-shadow(13px 22px 10px rgba(0,0,0,.3))}.hero-art .book-cover{width:100%;height:100%;border-radius:3px 11px 11px 3px;box-shadow:none}.hero-art:before{content:'';position:absolute;width:110px;height:184px;right:23px;top:11px;background:#c5af84;transform:rotate(-14deg);border-radius:3px;opacity:.55}.hero-art .book-cover{position:relative}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 17px;border-radius:15px;background:var(--button);color:var(--buttonText);font-weight:720;font-size:13px;transition:transform .18s,background .18s}.btn.secondary{color:var(--text);background:var(--surface2);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.full{width:100%}.section{margin:30px 0 36px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:10px}.text-link{background:none;color:var(--gold);font-size:12px;padding:10px 0;font-weight:650}.shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.book-item{border:0;background:none;color:var(--text);padding:0;text-align:left;min-width:0;display:block}.book-cover{width:100%;aspect-ratio:0.69;position:relative;display:flex;flex-direction:column;justify-content:space-between;border-radius:4px 10px 10px 4px;overflow:hidden;padding:14px 12px 13px;background:linear-gradient(153deg,var(--cover),color-mix(in srgb,var(--cover) 72%,#080d15));color:var(--coverText);box-shadow:4px 9px 16px rgba(0,0,0,.17),inset 4px 0 5px rgba(0,0,0,.23),inset -1px 0 2px rgba(255,255,255,.19);transition:transform .2s}.book-cover:before{content:'';position:absolute;left:6px;top:0;height:100%;border-left:1px solid rgba(255,255,255,.24)}.book-cover:after{content:'';position:absolute;inset:14px;border:1px solid color-mix(in srgb,var(--coverText) 30%,transparent);pointer-events:none}.book-item:active .book-cover{transform:translateY(2px) scale(.985)}.cover-top,.cover-bottom{position:relative;z-index:1;font-family:Georgia,serif;font-size:9px;letter-spacing:.07em;line-height:1.3}.cover-title{position:relative;z-index:1;font-family:Georgia,serif;font-size:clamp(13px,2.7vw,24px);line-height:1.07;letter-spacing:-.025em;overflow-wrap:anywhere}.cover-symbol{font-size:19px;opacity:.7;margin-bottom:8px}.book-label{padding:12px 1px 0;font-weight:670;font-size:13px;line-height:1.33;overflow-wrap:anywhere}.book-author{font-size:11px;color:var(--muted);margin-top:5px}.micro{font-size:10px;line-height:1.5;color:var(--muted)}.row-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--gold);font-weight:650}.bottom-nav{position:fixed;z-index:35;bottom:calc(13px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:min(calc(100% - 30px),460px);border-radius:25px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(1.15);backdrop-filter:blur(22px) saturate(1.15);box-shadow:0 12px 32px rgba(0,0,0,.20)}.tab{color:var(--muted);background:transparent;min-height:57px;border-radius:19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:10px}.tab.active{background:var(--surface2);color:var(--text)}.tab-icon{font-size:19px;line-height:1}.page-title{font:normal 38px/1.08 Georgia,serif;letter-spacing:-.05em;margin:5px 0 11px}.search-wrap{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--glass);border-radius:17px;padding:0 16px;min-height:52px;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);margin:25px 0 17px}.search-wrap input{width:100%;border:none;outline:none;background:none;color:var(--text);font-size:14px;min-height:50px}.search-wrap input::placeholder{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 24px}.chip{min-height:38px;border-radius:999px;border:1px solid var(--line);padding:8px 13px;color:var(--muted);background:var(--surface);font-size:11px}.chip.active{background:var(--button);color:var(--buttonText);border-color:transparent}.list-books{display:flex;flex-direction:column;gap:12px}.list-book{display:flex;gap:15px;align-items:center;min-height:126px;padding:11px;background:var(--surface);border:1px solid var(--line);border-radius:19px;text-align:left;color:var(--text);width:100%}.list-book .book-cover{width:70px;min-width:70px;height:105px;aspect-ratio:unset;padding:9px}.list-book .cover-title{font-size:12px}.list-book .cover-top{font-size:7px}.list-book .cover-bottom{font-size:7px}.list-copy{flex:1;min-width:0}.list-copy h3{font-size:16px;margin:0 0 5px}.list-copy p{font-size:12px;color:var(--muted);margin:0 0 10px}.list-copy .row-badge{font-size:11px}.detail{max-width:630px;margin:auto}.detail-head{display:flex;align-items:center;gap:24px;margin-top:24px}.detail-head>.book-cover{flex:0 0 41%;max-width:170px;min-height:245px}.detail-head .cover-title{font-size:23px}.detail-content{flex:1}.detail-content h1{font-size:clamp(30px,6.2vw,47px);line-height:1.04;margin:12px 0}.detail-content p{color:var(--muted);font-size:13px;line-height:1.6}.detail-description{color:var(--muted);line-height:1.75;font-size:14px;margin:25px 0}.detail-actions{display:grid;gap:10px}.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.detail-meta>div{background:var(--surface);border:1px solid var(--line);padding:14px;border-radius:15px}.detail-meta strong{display:block;font-size:12px;margin-top:5px}.detail-note{border-top:1px solid var(--line);padding-top:18px;color:var(--muted);font-size:12px;line-height:1.7}.backlink{display:inline-flex;align-items:center;gap:7px;background:none;color:var(--muted);padding:10px 0;font-size:13px;min-height:44px}.empty{background:var(--surface);border:1px solid var(--line);border-radius:22px;text-align:center;padding:35px 22px;color:var(--muted);margin-top:22px}.empty .large{font-size:34px;margin-bottom:12px}.empty h3{color:var(--text);font-size:17px;margin-bottom:10px}.empty p{font-size:13px;line-height:1.6;margin-bottom:20px}.settings-list{display:grid;gap:11px;margin-top:24px}.setting{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:15px 16px}.setting strong{font-size:14px}.setting p{color:var(--muted);font-size:11px;margin-top:4px;line-height:1.5}.setting select{padding:9px;border-radius:10px;background:var(--surface2);color:var(--text);border:1px solid var(--line);max-width:150px}.setting input[type=range]{width:105px;accent-color:var(--gold)}.modaldim{position:fixed;z-index:60;inset:0;background:rgba(3,8,14,.70);display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--surface);border:1px solid var(--line);border-radius:27px 27px 0 0;padding:25px 25px calc(25px + env(safe-area-inset-bottom,0px));width:min(100%,540px);max-height:90dvh;overflow-y:auto;box-shadow:0 -8px 50px rgba(0,0,0,.25)}.modal h2{font:normal 30px Georgia,serif;margin:8px 0 8px}.modal p{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:20px}.modal .btn{margin-top:10px}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}.dots{display:flex;gap:6px;margin-top:25px}.dot{width:7px;height:7px;border-radius:100px;background:var(--muted);opacity:.45}.dot.active{background:var(--gold);opacity:1;width:20px}.onboard-art{height:100px;display:flex;align-items:center;justify-content:center;font-size:80px;color:var(--gold);font-family:Georgia,serif}.busy{padding:26px;text-align:center;color:var(--muted);line-height:1.6;font-size:13px}.error{padding:18px;border:1px solid var(--line);border-radius:17px;margin:18px 0;background:var(--surface);font-size:13px;line-height:1.6;color:var(--text)}.error p{color:var(--muted);margin:8px 0 14px}.mini-card{border:1px solid var(--line);border-radius:17px;padding:16px;margin-bottom:12px;background:var(--surface)}.mini-card p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}.recommendation{margin-top:22px}.selection-menu{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:80;display:flex;gap:7px;padding:8px;border-radius:18px;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(22px);box-shadow:0 7px 28px rgba(0,0,0,.3);max-width:96%;}.selection-menu button{min-height:42px;padding:8px 12px;border-radius:12px;color:var(--text);background:var(--surface2);font-size:12px;white-space:nowrap}.card-link{display:flex;align-items:center;justify-content:space-between;color:var(--text);text-decoration:none;background:var(--surface);border:1px solid var(--line);padding:17px;border-radius:17px;font-size:14px;min-height:58px;margin-bottom:9px}
/* The reader is opaque, calm and separate from the app's glass surfaces */
.reader-shell{--paper:#f8f3e9;--ink:#2c2a25;background:var(--paper);color:var(--ink);height:100dvh;display:flex;flex-direction:column;overflow:hidden;position:relative}.reader-shell[data-reader-theme='night']{--paper:#131c25;--ink:#d8dfe4}.reader-shell[data-reader-theme='sepia']{--paper:#e7dcc2;--ink:#4b3928}.reader-top{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;min-height:64px;padding:calc(7px + env(safe-area-inset-top,0px)) 15px 8px;border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent);gap:8px}.reader-top button{border:0;background:none;color:var(--ink);min-height:44px;min-width:44px}.reader-top .reader-title{font-size:13px;font-weight:650;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:46vw;text-align:center}.reader-scroll{overflow:auto;-webkit-overflow-scrolling:touch;flex:1;scroll-behavior:auto;overscroll-behavior:contain}.reader-page{margin:0 auto;padding:35px 0 120px;font-size:var(--reader-size,19px);line-height:var(--reader-line,1.8);font-family:var(--reader-font,Georgia,serif);width:var(--reader-width, min(100% - 42px,640px))}.reader-page h1{font-size:1.6em;font-weight:500;line-height:1.22;margin:0 0 32px}.reader-page h2{font-family:inherit;font-size:1.16em;font-weight:600;margin:34px 0 22px}.reader-page p{margin:0 0 1.02em;overflow-wrap:break-word;hyphens:auto}.reader-page p:focus{outline:none}.reader-foot{min-height:50px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 23px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);color:color-mix(in srgb,var(--ink) 70%,transparent);font:12px -apple-system,BlinkMacSystemFont,Arial,sans-serif}.reader-foot button{background:transparent;color:inherit;font-size:13px;min-height:40px}.reader-shell.immersive .reader-top,.reader-shell.immersive .reader-foot{display:none}.reader-shell.immersive .reader-page{padding-top:45px}.reader-touch{position:fixed;top:9px;right:18px;background:color-mix(in srgb,var(--paper) 88%,transparent);color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 15%,transparent);border-radius:100px;min-height:38px;padding:6px 13px;z-index:10;font-size:12px}.reader-tools{position:absolute;right:12px;top:70px;z-index:10;min-width:212px;background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);border-radius:17px;padding:11px;box-shadow:0 10px 24px rgba(0,0,0,.18);font:13px Arial,sans-serif}.reader-tools button{color:var(--ink);background:transparent;display:block;width:100%;text-align:left;min-height:41px;padding:8px 11px;border-radius:10px}.reader-tools button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}.reader-tools .tool-label{font-size:11px;opacity:.7;margin:5px 10px}.reader-tools input{width:100%;accent-color:#a28e68}.reader-tools select{width:100%;font-size:13px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:8px;padding:8px;background:var(--paper);color:var(--ink)}.reader-notice{font:12px Arial,sans-serif;padding:9px 19px;color:var(--ink);background:color-mix(in srgb,var(--paper) 70%,#c6ac7b);text-align:center}.reader-chapterpicker{position:absolute;inset:55px 0 0;background:var(--paper);z-index:11;padding:20px;overflow:auto}.reader-chapterpicker button{display:block;width:100%;min-height:53px;text-align:left;background:transparent;color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--ink) 16%,transparent)}
@media(min-width:720px){.app-shell{padding-bottom:140px}.shelf{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}.container{padding-left:40px;padding-right:40px}.hero{min-height:280px;padding:38px}.hero-art{right:18%;width:150px;height:212px}.page-title{font-size:47px}.book-cover{padding:17px}.reader-page{padding-top:60px}}
@media(max-width:375px){.container{padding:0 16px}.hero{padding:21px;min-height:223px}.hero-art{width:96px;height:158px;right:1%;top:31px}.hero-copy{max-width:50%}.hero h2{font-size:27px}.shelf{gap:11px}.book-cover{padding:10px 9px}.cover-title{font-size:12px}.detail-head{gap:16px}.detail-head>.book-cover{flex-basis:39%;min-height:210px}.detail-content h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0.01ms!important;transition:none!important;scroll-behavior:auto!important}}@media(prefers-reduced-transparency:reduce){.bottom-nav,.icon-btn,.search-wrap,.selection-menu{background:var(--surface)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}body[data-low-glass='true'] .bottom-nav,body[data-low-glass='true'] .icon-btn,body[data-low-glass='true'] .search-wrap{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}

.reader-find{position:absolute;inset:55px 0 0;background:var(--paper);z-index:12;padding:20px;overflow:auto;font:14px Arial,sans-serif}.reader-find input{display:block;width:100%;padding:13px;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);background:var(--paper);color:var(--ink);border-radius:12px;margin:15px 0}.reader-find button{display:block;min-height:53px;width:100%;background:transparent;text-align:left;color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--ink) 13%,transparent);padding:12px 0}.reader-find button b{font-size:12px;display:block;margin-bottom:5px}.reader-find button span{font-size:12px;opacity:.75}.reader-find p{line-height:1.5;color:var(--ink);opacity:.8}

.real-cover{position:absolute;z-index:4;inset:0;width:100%;height:100%;object-fit:cover;display:block;backface-visibility:hidden}.book-cover:has(.real-cover):after{display:none}
@media(prefers-contrast:more){.bottom-nav,.icon-btn,.search-wrap,.selection-menu{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--text)}.chip,.btn{border:2px solid var(--text)}}

.hero-copy p{max-width:165px}.hero-copy .btn{padding:10px 12px;font-size:12px}
