@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Text:ital@0;1&display=swap";:root{font-family:DM Sans,sans-serif;color:#17231e;background:#f2efe7;font-synthesis:none;--ink:#17231e;--paper:#f2efe7;--gold:#e3a83c;--rust:#b9553f;--line:rgba(23,35,30,.16)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #e3a83c;outline-offset:3px}.logo{display:flex;align-items:center;gap:13px;color:#fff;font-family:Libre Caslon Text,serif;font-size:1.2rem}.logo.compact{color:var(--ink);font-size:1.08rem}.logo-mark{width:32px;height:29px;display:flex;gap:2px}.logo-mark i{width:15px;height:26px;background:var(--gold);display:block}.logo-mark i:first-child{border-radius:3px 10px 3px 8px;transform:skewY(8deg)}.logo-mark i:last-child{border-radius:10px 3px 8px;transform:skewY(-8deg)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;color:#aa4c39}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(440px,.95fr)}.auth-story{padding:52px clamp(36px,6vw,92px);background:#16251f;color:#f8f3e8;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-story:after{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(242,184,75,.2);border-radius:50%;right:-260px;bottom:-180px;box-shadow:0 0 0 70px #f2b84b0a,0 0 0 140px #f2b84b06}.story-copy{margin:auto 0;position:relative;z-index:1}.story-copy .eyebrow{color:#f2b84b}.story-copy h1{font-family:Libre Caslon Text,serif;font-weight:400;font-size:clamp(3.2rem,6vw,6.4rem);line-height:.98;letter-spacing:-.045em;margin:22px 0 28px}.story-copy>p:last-child{font-family:Libre Caslon Text,serif;font-size:1.08rem;line-height:1.75;max-width:470px;color:#cbd3ce}.auth-foot{font-size:.75rem;letter-spacing:.1em;color:#8fa099}.auth-panel{display:grid;place-items:center;padding:44px;background:#f2efe7}.auth-card{width:min(100%,410px)}.auth-card h2{font:400 2.5rem/1.1 Libre Caslon Text,serif;margin:12px 0 35px}.auth-card form{display:grid;gap:20px}.auth-card label,.invite-form label{display:grid;gap:8px;font-size:.83rem;font-weight:600}.auth-card input,.invite-form input{width:100%;padding:14px 15px;border:1px solid #b8b8ad;border-radius:3px;background:#fffefb;font-size:1rem;color:var(--ink)}.field-note{font-size:.76rem;color:#6f756f;margin:-10px 0 0}.primary,.secondary,.passkey{border:0;border-radius:3px;min-height:50px;padding:0 20px;font-weight:600}.primary{background:#b9553f;color:#fff}.primary:hover{background:#994231}.primary:disabled,.passkey:disabled{opacity:.6}.passkey{width:100%;margin-top:13px;background:#fff;border:1px solid #aeb2ac;color:var(--ink)}.passkey span{font-size:1.3rem;margin-right:8px}.text-button{border:0;background:none;width:100%;margin-top:24px;color:#804133;font-size:.85rem}.notice{background:#fff8dc;border-left:3px solid var(--gold);padding:13px 15px;margin:18px 0;font-size:.86rem;line-height:1.5}.center-page,.reader-loading{min-height:100vh;display:grid;place-content:center;text-align:center;gap:25px}.center-page{background:#16251f;color:#fff}.verification h1{font:400 1.7rem Libre Caslon Text,serif}.verification a{color:#f2b84b}.spinner{width:34px;height:34px;margin:0 auto;border:2px solid #c5c5bd;border-top-color:#b9553f;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{height:76px;padding:0 clamp(22px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f2efe7eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.brand-button,.app-header nav button{border:0;background:none}.app-header nav{display:flex;align-items:center;gap:18px}.app-header nav button{color:#53605a}.app-header nav .avatar{width:36px;height:36px;border-radius:50%;background:#16251f;color:#fff}.app-header .logout{font-size:.8rem}.library-page,.account-page{padding:70px clamp(24px,7vw,110px) 100px;max-width:1500px;margin:auto}.library-intro h1,.account-title h1{font:400 clamp(2.8rem,5vw,4.8rem)/1 "Libre Caslon Text",serif;margin:13px 0}.library-intro>p:last-child,.account-title>p:last-child{color:#69736d}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:48px clamp(24px,4vw,56px);margin-top:65px}.book-card{border:0;background:none;text-align:left;padding:0;animation:rise .5s both;animation-delay:var(--delay)}@keyframes rise{0%{opacity:0;transform:translateY(15px)}}.book-cover{aspect-ratio:3/4.25;background:var(--accent);color:#fff;padding:27px;display:flex;flex-direction:column;box-shadow:0 15px 34px #2a261d26;position:relative;overflow:hidden;transition:.25s}.book-cover:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border:1px solid rgba(255,255,255,.35)}.book-cover:after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(255,255,255,.22);border-radius:50%;right:-70px;bottom:-65px;box-shadow:0 0 0 28px #ffffff0d}.book-card:hover .book-cover{transform:translateY(-6px);box-shadow:0 22px 42px #2a261d38}.cover-kicker{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:1}.book-cover h2{font:400 clamp(1.6rem,2.6vw,2.4rem)/1.12 "Libre Caslon Text",serif;margin:auto 0 14px;position:relative;z-index:1}.cover-rule{height:1px;background:#ffffff8c;width:45px;position:relative;z-index:1}.book-cover p{font-size:.8rem;position:relative;z-index:1}.book-info{display:flex;justify-content:space-between;align-items:start;margin-top:17px}.book-info h3{font:400 1.05rem Libre Caslon Text,serif;margin:0 0 5px}.book-info p,.book-info>span{font-size:.74rem;color:#717871;margin:0}.book-info>span{padding-top:3px}.empty{text-align:center;border:1px dashed #afb2aa;padding:60px;margin-top:55px}.empty span{font-size:2rem}.empty h2{font:400 1.7rem Libre Caslon Text,serif}.skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:60px}.skeleton-grid i{aspect-ratio:3/4;background:#e4e0d7;animation:pulse 1.2s infinite alternate}@keyframes pulse{to{opacity:.45}}.reader{min-height:100vh;background:#faf8f3}.reader-header{position:sticky;top:0;height:70px;background:#faf8f3f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;grid-template-columns:70px 1fr 70px;align-items:center;border-bottom:1px solid rgba(23,35,30,.1);z-index:30}.reader-header button{border:0;background:none}.reader-back{font-size:1.4rem}.reader-title{text-align:center}.reader-title span{display:block;font:400 .92rem Libre Caslon Text,serif}.reader-title small{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:#858b86}.toc-button{font-size:1.1rem}.toc{position:fixed;right:20px;top:80px;width:min(360px,calc(100vw - 40px));background:#fff;padding:30px;z-index:40;box-shadow:0 20px 60px #141c1833;border-top:4px solid var(--book-accent)}.toc h2{font:400 1.55rem Libre Caslon Text,serif}.toc>button{display:grid;grid-template-columns:35px 1fr;width:100%;text-align:left;border:0;border-top:1px solid #e7e5df;background:none;padding:14px 0;color:#58615c}.toc>button.active{color:var(--book-accent);font-weight:600}.toc>button span{font-size:.7rem;padding-top:3px}.chapter{max-width:720px;margin:0 auto;padding:100px 30px 120px}.chapter-number{text-transform:uppercase;letter-spacing:.2em;font-size:.69rem;text-align:center;color:var(--book-accent)}.chapter>h1{font:400 clamp(2.8rem,6vw,5rem)/1.04 "Libre Caslon Text",serif;text-align:center;letter-spacing:-.035em;margin:20px -60px 22px}.chapter-summary{font:italic 1.05rem/1.7 Libre Caslon Text,serif;text-align:center;color:#69736d;max-width:560px;margin:auto}.ornament{text-align:center;color:var(--book-accent);margin:44px 0}.body-copy{font:400 1.17rem/1.95 Libre Caslon Text,serif;margin:0 0 1.65em;color:#26302b}.chapter-heading{font:400 1.8rem/1.3 Libre Caslon Text,serif;margin:2.2em 0 .8em}.chapter blockquote{font:italic 1.35rem/1.7 Libre Caslon Text,serif;border-left:3px solid var(--book-accent);margin:2.2em 0;padding:8px 0 8px 25px}.chapter blockquote cite{display:block;font:500 .73rem DM Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-top:12px}.chapter figure{margin:45px -90px}.chapter figure img{width:100%;max-height:620px;object-fit:cover}.chapter figcaption{font-size:.75rem;color:#737a75;margin-top:9px}.reveal-break{min-height:135px;display:grid;place-items:center;margin:48px -25px}.reveal-break button{background:#16251f;color:#fff;border:0;padding:22px 34px;min-width:310px}.reveal-break button span,.reveal-break button strong{display:block}.reveal-break button span{font:italic .85rem Libre Caslon Text,serif;color:#b7c2bc;margin-bottom:6px}.reveal-break button strong{font-size:.82rem;letter-spacing:.05em}.reveal-break.open{min-height:80px;grid-template-columns:1fr auto 1fr;gap:18px;color:#8c918d;text-transform:uppercase;font-size:.62rem;letter-spacing:.16em}.reveal-break.open:before,.reveal-break.open i{content:"";height:1px;background:#d7d5cf;width:100%}.chapter-end{margin-top:75px;padding-top:35px;border-top:1px solid #d8d6cf;text-align:center}.chapter-end span{display:block;text-transform:uppercase;letter-spacing:.17em;font-size:.63rem;color:#858b87;margin-bottom:20px}.chapter-end button{border:0;background:var(--book-accent);color:#fff;padding:16px 25px;font-weight:600}.account-page{max-width:1000px}.account-title{margin-bottom:45px}.settings-card{background:#fff;padding:38px;margin:0 0 25px;border:1px solid #e2dfd7}.settings-card>div:first-child h2{font:400 1.65rem Libre Caslon Text,serif;margin:0 0 8px}.settings-card>div:first-child p{font-size:.88rem;color:#68716c;max-width:590px;line-height:1.6}.member-list{margin:30px 0}.member-list>div{display:flex;align-items:center;gap:12px;border-top:1px solid #eceae5;padding:14px 0;font-size:.88rem}.mini-avatar{width:32px;height:32px;border-radius:50%;background:#16251f;color:#fff;display:grid;place-items:center}.member-list small{margin-left:auto;color:#8a8f8b}.invite-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px}.invite-form button{min-width:160px}.pending{margin-top:25px}.pending h3{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}.pending p{display:flex;justify-content:space-between;font-size:.83rem}.pending span{color:#a36a35}.security{position:relative}.key-status{display:flex;align-items:baseline;gap:7px;margin:25px 0}.key-status strong{font:400 2.4rem Libre Caslon Text,serif}.key-status span{color:#747c77;font-size:.8rem}.secondary{background:#16251f;color:#fff}.reader-loading button{border:0;background:#16251f;color:#fff;padding:12px 18px}@media(max-width:760px){.auth-page{display:block}.auth-story{min-height:310px;padding:30px 25px}.story-copy{margin:55px 0}.story-copy h1{font-size:3rem}.story-copy>p:last-child,.auth-foot{display:none}.auth-panel{padding:42px 24px}.app-header{padding:0 18px}.app-header nav>button:first-child,.app-header .logout{display:none}.library-page,.account-page{padding:50px 22px}.library-intro h1,.account-title h1{font-size:2.8rem}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 16px;margin-top:45px}.book-cover{padding:18px}.book-cover h2{font-size:1.3rem}.book-info{display:block}.book-info>span{display:none}.chapter{padding:70px 24px 90px}.chapter>h1{margin-left:0;margin-right:0}.body-copy{font-size:1.08rem;line-height:1.85}.chapter figure{margin:35px 0}.reveal-break{margin:35px 0}.reveal-break button{min-width:0;width:100%}.settings-card{padding:25px 20px}.invite-form{grid-template-columns:1fr}.invite-form button{width:100%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.chapter figure.full-screen-art{width:100vw;min-height:calc(100svh - 70px);margin:70px 0 70px 50%;transform:translate(-50%);background:#151817;display:grid;place-items:center;padding:clamp(16px,4vw,54px)}.chapter figure.full-screen-art img{width:min(100%,1536px);height:auto;max-height:calc(100svh - 110px);object-fit:contain;box-shadow:0 20px 60px #00000047}@media(max-width:760px){.chapter figure.full-screen-art{margin-top:54px;margin-bottom:54px;min-height:calc(100svh - 70px)}}
