@charset "UTF-8";
:root{--paper:#f8f6f0;--surface:#fffef9;--ink:#293e32;--muted:#627064;--line:#dce1d6;--green:#315b46;--tint:#eaf0e4;--rust:#97462e;--danger:#922f26;--radius:10px;font-family:Arial,Helvetica,sans-serif;font-size:15px;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.6}:focus-visible{outline:3px solid #ae6746;outline-offset:4px}button:focus:not(:focus-visible){outline:none}h1,h2,h3,p{margin:0}p{line-height:1.65}h1{font:400 clamp(32px,4vw,51px)/1.13 Georgia,serif;letter-spacing:-1.6px;overflow-wrap:anywhere}h2{font:400 27px/1.25 Georgia,serif}h3{font-size:15px;font-weight:500;line-height:1.4}small{font-size:12px;line-height:1.6;color:var(--muted)}form{margin:0}ul{padding-left:20px}code{font-family:monospace}.app{max-width:1600px;margin:auto;min-height:100vh}.topbar{min-height:86px;padding:20px 40px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--surface)}.brand{font:400 32px Georgia,serif;text-decoration:none;letter-spacing:-1.3px;display:flex;align-items:center;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;border:1px solid var(--green);font:italic 24px Georgia,serif;border-radius:50% 50% 3px 3px;width:28px;height:31px;margin-right:12px}.brand-dot{color:var(--rust)}.top-tag{font:italic 14px Georgia,serif;color:var(--muted)}.account{display:flex;gap:15px;align-items:center;font-size:12px}.account>span{max-width:160px;overflow-wrap:anywhere}.account a,.text-button{font-size:12px}.text-button{border:0;background:none;padding:8px 0;color:var(--ink);text-decoration:underline;text-underline-offset:4px}.private-label{font-size:12px;letter-spacing:1px;text-transform:uppercase}.shell{display:grid;grid-template-columns:204px minmax(0,1fr);min-height:calc(100vh - 86px)}.guest-shell{grid-template-columns:1fr}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:32px 16px;display:flex;flex-direction:column}.library-name{padding:0 12px 28px;font-size:14px}.library-name span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.sidebar nav{display:flex;flex-direction:column;gap:8px}.sidebar nav a{font-size:13px;display:flex;align-items:center;gap:12px;padding:13px;border-radius:8px;text-decoration:none;min-height:44px}.sidebar nav a[aria-current=page]{background:var(--tint);color:var(--green)}.sidebar nav a:hover{background:#eff1e9}.sidebar nav a span{font-size:20px;width:18px;text-align:center}.side-bottom{margin-top:auto;padding:100px 12px 10px}.side-bottom p{font:italic 22px/1.4 Georgia,serif;color:#76806a}.side-bottom small{display:block;margin-top:22px}.main{padding:40px 44px;min-width:0;max-width:1250px;width:100%;margin:auto}.eyebrow{font-size:10px;letter-spacing:2.2px;color:var(--muted);margin-bottom:12px}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:24px}.intro{color:var(--muted);margin-top:14px;font-size:14px;max-width:620px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;border:1px solid transparent;padding:12px 17px;border-radius:7px;min-height:44px;font-size:13px;line-height:1.3;text-align:center}.primary{background:var(--green);color:#fffef9}.primary:hover{background:#214832}.secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.secondary:hover{background:var(--tint)}.heading-row .primary{flex-shrink:0}.welcome{display:flex;align-items:center;gap:17px;padding:20px 23px;background:var(--tint);margin:28px 0;border-radius:var(--radius)}.welcome>span{font:48px Georgia,serif;color:var(--rust);height:42px}.welcome p{font:20px/1.4 Georgia,serif}.welcome small{font-size:11px}.search-row{display:flex;gap:10px}.search-box{display:flex;align-items:center;gap:10px;flex:1;min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:0 15px}.search-box>span:not(.sr-only){font-size:25px;color:var(--muted)}.search-box input{width:100%;min-width:0;background:transparent;border:0;color:var(--ink);padding:14px 0}.search-box input::placeholder{color:var(--muted)}.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:13px;font-size:12px}.filters select{border-radius:24px;padding:8px 13px;max-width:190px;font-size:12px}.filters .checkbox{margin-left:auto}.filters>a{font-size:12px}.checkbox{display:flex;align-items:center;gap:7px;min-height:44px}.checkbox input{accent-color:var(--green);height:17px;width:17px}.shelf-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:30px 0 22px}.shelf-heading h2{font-size:23px}.shelf-heading>span{font-size:11px;color:var(--muted)}.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.book-card{min-width:0;text-decoration:none}.book-stage{background:#edece2;border-radius:7px;padding:24px 26px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.cover{position:relative;width:100%;max-width:165px;aspect-ratio:.69;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:19px 16px 15px;text-align:center;overflow:hidden;border-radius:2px 4px 4px 2px;box-shadow:5px 8px 10px #27322820,inset 5px 0 5px #0002;transition:transform .18s ease;background:var(--cover-bg);color:var(--cover-text)}.cover:before{content:'';position:absolute;left:6px;top:0;bottom:0;border-left:1px solid #ffffff35}.cover-rust{--cover-bg:#a34d36;--cover-text:#fff0ce}.cover-navy{--cover-bg:#263d52;--cover-text:#f1d9a4}.cover-sand{--cover-bg:#ead8a3;--cover-text:#33485b}.cover-forest{--cover-bg:#365848;--cover-text:#efe3bb}.cover-ochre{--cover-bg:#d9a25b;--cover-text:#423b32}.cover-plum{--cover-bg:#7c647a;--cover-text:#f9e4d4}.cover-author{font-size:9px;letter-spacing:1px;text-transform:uppercase;position:relative;z-index:1;overflow-wrap:anywhere}.cover-title{font:400 clamp(18px,2.2vw,26px)/1.05 Georgia,serif;position:relative;z-index:1;overflow-wrap:anywhere}.cover-imprint{font-size:7px;letter-spacing:1.8px;position:relative;z-index:1}.cover-art{position:absolute;width:100px;height:140px;left:45%;top:48%;border:12px solid currentColor;border-radius:65px 65px 0 0;opacity:.16;transform:rotate(-18deg)}.cover-navy .cover-art,.cover-plum .cover-art{border-radius:50%;width:120px;height:120px;border-width:1px;box-shadow:0 0 0 15px #ffffff1a,0 0 0 30px #ffffff12}.book-card:hover .cover{transform:translateY(-4px) rotate(-1deg)}.book-card h3{font-size:15px}.book-card>p{font-size:12px;color:var(--muted);margin-top:4px}.availability{font-size:11px;color:var(--green);display:inline-flex;align-items:center;gap:7px;margin-top:9px}.availability:before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}.availability.unavailable{color:var(--rust)}footer{border-top:1px solid var(--line);padding-top:20px;margin-top:45px;display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:11px}footer span:first-child{font:18px Georgia,serif}.export-link{display:inline-block;margin-top:28px;font-size:12px}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:30px;font-size:13px}.pagination a{padding:12px}.empty{padding:50px 22px;text-align:center;grid-column:1/-1;background:var(--tint);border-radius:10px}.empty h2{margin-bottom:12px}.empty p{color:var(--muted);margin-bottom:20px}.empty .primary,.empty .secondary{margin:14px 5px}.empty.compact{padding:24px;margin:14px 0;font-size:14px}.notice{padding:16px 20px;background:var(--tint);border:1px solid var(--line);border-radius:8px;font-size:13px;margin-bottom:22px}.back{display:inline-block;font-size:12px;margin-bottom:28px}.book-detail{display:grid;grid-template-columns:230px minmax(0,1fr);gap:38px;align-items:center}.detail-cover{background:#ececdf;padding:32px 28px;border-radius:8px;display:flex;justify-content:center}.detail-cover .cover{max-width:195px}.detail-cover .cover-title{font-size:29px}.detail-author{font:21px Georgia,serif;margin-top:17px;color:var(--muted)}.owner-note{padding:20px;background:var(--tint);border-radius:8px;margin:22px 0}.owner-note>span{font-size:11px;color:var(--muted)}.owner-note p{font:italic 19px/1.6 Georgia,serif;margin-top:9px;overflow-wrap:anywhere}.muted{color:var(--muted);font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.section-heading{margin:36px 0 14px;font-size:25px}.list-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.row-copy{flex:1;min-width:180px;overflow-wrap:anywhere}.row-copy p{color:var(--muted);font-size:12px;margin-top:5px}.row-copy small{font-size:11px}.row-copy h3 a{text-decoration:none}.pill{border:1px solid var(--line);border-radius:20px;padding:7px 12px;color:var(--green);font-size:12px}.explanation{font-size:12px;color:var(--muted);padding:18px 0;max-width:650px}.mini-cover{width:35px;height:48px;background:var(--cover-bg);border-radius:2px;flex-shrink:0}.inline-filter{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:25px;font-size:12px}.form-panel{max-width:600px;margin:0 auto}.form-panel h1{font-size:37px}.field{margin:22px 0}.field>label{display:block;font-size:13px;margin-bottom:8px}.field input:not([type=checkbox]),.field textarea,.field select{width:100%}input:not([type=checkbox]),select,textarea{background:var(--surface);border:1px solid #c9d1c4;border-radius:6px;padding:12px;color:var(--ink);min-width:0;max-width:100%}textarea{resize:vertical}.field input[type=checkbox]{height:20px;width:20px;accent-color:var(--green)}.help{font-size:11px;color:var(--muted);line-height:1.65;margin-top:7px}.help ul{margin:0;padding-left:17px}.form-errors{color:var(--danger);font-size:13px;line-height:1.6}.form-errors ul{list-style:none;padding:0;margin:8px 0}.invalid input{border-color:var(--danger)}.full{width:100%}.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:60px;padding:35px 30px;max-width:1060px;margin:auto}.auth-story h1{font-size:49px}.auth-story>p{color:var(--muted);margin-top:24px;font-size:15px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px}.auth-card h2{font-size:31px;margin-bottom:8px}.auth-bottom{font-size:12px;line-height:1.6;margin-top:26px}.auth-bottom a{display:inline-block;color:var(--green)}.decor-books{display:flex;align-items:flex-end;gap:8px;height:108px;margin-top:35px;border-bottom:1px solid #c7c9ba;max-width:265px}.decor-books span{width:37px;height:90px;background:#a34d36;border:5px double #fff3;border-radius:2px}.decor-books span:nth-child(2){height:100px;background:#355447}.decor-books span:nth-child(3){height:74px;background:#d9a25b}.decor-books span:nth-child(4){height:90px;background:#263d52;transform:rotate(-11deg);margin-left:10px}.invite-form{max-width:470px;margin:28px 0}.invite-code{display:block;overflow-wrap:anywhere;margin:15px 0;padding:12px;border:1px solid var(--line);background:var(--surface);user-select:all;font-size:14px}.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}.skip{position:absolute;top:-80px;left:10px;padding:12px;background:var(--surface);z-index:100}.skip:focus{top:10px}
@media(min-width:1300px){.book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.main{padding:45px 54px}.book-stage{padding:26px}}
@media(max-width:1050px){.top-tag{display:none}.main{padding:34px 28px}.shell{grid-template-columns:180px minmax(0,1fr)}.guest-shell{grid-template-columns:1fr}.book-stage{padding:20px 18px}.book-detail{grid-template-columns:185px minmax(0,1fr);gap:25px}.auth-layout{padding:20px 0;gap:30px}.auth-story h1{font-size:42px}.filters .checkbox{margin-left:0}}
@media(max-width:760px){.topbar{padding:18px 22px;min-height:76px}.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:7px 10px}.library-name,.side-bottom{display:none}.sidebar nav{flex-direction:row;gap:2px;flex-wrap:wrap}.sidebar nav a{font-size:12px;padding:10px;gap:7px}.sidebar nav a span{font-size:17px}.main{padding:28px 22px}.cover-title{font-size:24px}.book-grid{gap:25px 17px}.book-stage{padding:20px}.heading-row{align-items:flex-start}.heading-row .primary{font-size:12px;padding:10px}.auth-layout{grid-template-columns:1fr;max-width:470px}.auth-story{padding:10px 10px 24px}.auth-story h1{font-size:38px}.auth-story h1 br:nth-child(2){display:none}.auth-story>p,.decor-books{display:none}.auth-card{padding:25px}.book-detail h1{font-size:34px}}
@media(max-width:480px){.topbar{padding:16px;gap:12px;flex-wrap:wrap}.brand{font-size:28px}.brand-mark{width:23px;height:27px;font-size:21px;margin-right:8px}.account{gap:12px}.account>span{display:none}.private-label{font-size:10px}.main{padding:24px 16px}.heading-row{flex-wrap:wrap;gap:17px}h1{font-size:35px}.welcome{padding:16px;margin:24px 0}.welcome p{font-size:18px}.search-row .primary{padding:12px 16px}.search-box input{font-size:16px}.filters{gap:10px}.filters select{max-width:150px}.filters .checkbox{width:100%}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 15px}.book-stage{padding:18px 15px}.cover{padding:16px 11px 12px}.cover-title{font-size:23px}.cover-author{font-size:8px}.cover-imprint{font-size:6px}.book-card h3{font-size:14px}.book-detail{grid-template-columns:1fr;gap:25px}.detail-cover{max-width:250px;width:100%;margin:auto;padding:25px 32px}.detail-cover .cover{max-width:180px}.book-detail h1{font-size:36px}.row-copy{min-width:160px}.list-row .actions{width:100%}.list-row .actions .primary,.list-row .actions .secondary{font-size:12px}.form-panel h1{font-size:32px}.field input:not([type=checkbox]),.field textarea,.field select{font-size:16px}.form-panel .primary{width:100%}footer{font-size:10px;margin-top:32px;align-items:center}.auth-layout{padding:0;gap:12px}.auth-story h1{font-size:34px}.auth-card{padding:22px}.auth-story{padding:5px 5px 18px}.section-heading{font-size:25px}}
@media(prefers-reduced-motion:reduce){.cover{transition:none}}
.search-box input[type=search]{border:0;background:transparent;padding:14px 0}
