:root{--butter:#f4e6c7;--paper:#fff9ec;--ink:#29213d;--plum:#633854;--coral:#e86750;--blue:#7991c6;--yellow:#e5b94f;--green:#62816e;--line:#c8baa0}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--butter)}body{margin:0;background:var(--butter);color:var(--ink);font-family:Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}.paper-noise{position:fixed;inset:0;pointer-events:none;opacity:.28;background-image:radial-gradient(#796448 .55px,transparent .8px);background-size:6px 6px;mix-blend-mode:multiply;z-index:0}.topbar{height:74px;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:25px;padding:0 4vw;background:rgba(244,230,199,.93);backdrop-filter:blur(16px);border-bottom:2px solid var(--ink)}.brand{font:700 21px Georgia,serif;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:9px}.brand span,.login-mark{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--coral);color:var(--paper);transform:rotate(-7deg)}.topbar nav{display:flex;justify-content:center;gap:25px}.topbar nav a{font-size:11px;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;padding:8px 0}.topbar nav a:hover{border-color:var(--ink)}.search-open{background:var(--paper);border:1.5px solid var(--ink);padding:9px 13px;box-shadow:3px 3px 0 var(--ink);font-size:10px;font-weight:800;cursor:pointer}.profile-menu{display:flex;align-items:center;gap:8px}.profile-menu>span{width:35px;height:35px;border:2px solid var(--ink);border-radius:50%;display:grid;place-items:center;background:var(--blue);color:white;font-weight:800}.profile-menu a{font-size:8px;color:var(--ink)}.shell{max-width:1430px;margin:auto;padding:0 5vw 100px;position:relative;z-index:1}.hero{min-height:360px;display:grid;grid-template-columns:90px 1fr;gap:34px;align-items:center;position:relative;border-bottom:2px solid var(--ink)}.date-note{width:78px;height:108px;background:var(--paper);border:1.5px solid var(--ink);box-shadow:5px 5px 0 var(--coral);transform:rotate(-4deg);display:flex;flex-direction:column;align-items:center;justify-content:center;font:italic 11px Georgia,serif}.date-note b{font:40px/1 Georgia,serif;color:var(--coral);font-style:normal}.kicker{font-size:9px;letter-spacing:.18em;font-weight:900;margin:0 0 12px}.hero h1{font:400 clamp(52px,6vw,84px)/.86 Georgia,serif;letter-spacing:-.05em;margin:0}.hero h1 em{color:var(--plum);font-weight:400}.intro{font:italic 14px/1.5 Georgia,serif;color:#665a62;margin:20px 0 0}.round-add{position:absolute;right:3%;bottom:54px;width:118px;height:118px;border-radius:50%;border:2px solid var(--ink);background:var(--yellow);font-weight:900;font-size:11px;cursor:pointer;box-shadow:7px 7px 0 var(--ink);transform:rotate(5deg)}.round-add span{display:block;font-size:27px}.round-add:hover{transform:rotate(1deg) translate(-3px,-3px);box-shadow:10px 10px 0 var(--ink)}.hero-note{position:absolute;right:15%;top:68px;font:italic 15px Georgia,serif;color:var(--coral);transform:rotate(-7deg)}.hero-star{position:absolute;right:6%;top:58px;font-style:normal;font-size:28px;color:var(--blue)}.section-block{padding:50px 0}.section-heading{display:flex;align-items:center;gap:14px;margin-bottom:26px}.section-heading p{margin:0 0 2px;font-size:8px;letter-spacing:.15em;font-weight:900;color:#746772}.section-heading h2{font:400 29px Georgia,serif;margin:0}.section-heading>i{margin-left:auto;margin-right:22px;font:italic 13px Georgia,serif;color:#8c5250;transform:rotate(2deg)}.stamp{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:white;font:italic 15px Georgia,serif;border:1.5px solid var(--ink);transform:rotate(-7deg)}.stamp.coral{background:var(--coral)}.stamp.blue{background:var(--blue)}.stamp.yellow{background:var(--yellow);color:var(--ink)}.reading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.reading-card{background:var(--paper);border:1.5px solid var(--ink);padding:18px;display:grid;grid-template-columns:42% 1fr;gap:18px;min-height:300px;box-shadow:7px 8px 0 var(--ink)}.tilt-0{transform:rotate(-.6deg)}.tilt-1{transform:rotate(.5deg);background:#f2e8f0}.tilt-2{transform:rotate(-.3deg);background:#e4eddf}.cover-wrap{position:relative}.book-cover{width:100%;height:100%;min-height:235px;background:var(--plum);overflow:hidden;box-shadow:3px 5px 9px rgba(44,29,39,.23);position:relative}.book-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-cover>span{display:block;padding:22px 12px;text-align:center;color:white;font:18px/1.15 Georgia,serif}.book-cover.square{aspect-ratio:1;min-height:0}.tape{position:absolute;width:54px;height:16px;background:rgba(237,212,151,.82);top:-7px;left:50%;transform:translateX(-50%) rotate(-2deg);z-index:2}.rating-chip{position:absolute;left:-9px;bottom:-8px;background:var(--yellow);border:1.5px solid var(--ink);padding:6px 9px;font-size:10px;font-weight:900;transform:rotate(-4deg);box-shadow:2px 2px 0 var(--ink);z-index:2}.rating-chip small{display:block;font-weight:500;font-size:7px}.rating-chip.unrated{background:#ded1bc;font-size:8px}.reading-copy{display:flex;flex-direction:column;min-width:0;position:relative}.book-no{position:absolute;right:0;color:#b4a5ac;font:italic 14px Georgia,serif}.reading-copy h3{font:400 21px/1.04 Georgia,serif;margin:38px 0 7px}.reading-copy>p{font-size:9px;color:#796e76;margin:0}.page-stats{display:flex;justify-content:space-between;align-items:baseline;margin-top:auto;font-size:8px}.page-stats b{font:19px Georgia,serif;color:var(--plum)}.progress-track{height:4px;background:#cfc4b7;margin:8px 0 13px;position:relative}.progress-track>span{height:100%;display:block;background:var(--coral)}.progress-track>i{position:absolute;top:-8px;color:var(--coral);font-style:normal}.book-actions{display:flex;flex-wrap:wrap;gap:7px 10px}.book-actions button,.shelf-book button,.audio-card button{border:0;border-bottom:1px solid var(--ink);background:none;padding:3px 0;font-weight:800;font-size:8px;cursor:pointer}.middle-grid{display:grid;grid-template-columns:310px 1fr;gap:45px;border-top:2px solid var(--ink);padding:56px 0}.goal-card{background:var(--coral);padding:32px 27px;border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);position:relative;transform:rotate(-1deg);min-height:350px}.goal-card .pin{position:absolute;top:8px;left:50%;color:var(--yellow);text-shadow:1px 1px var(--ink)}.goal-card strong{font:75px/.9 Georgia,serif;color:var(--paper)}.goal-card small{font:20px Georgia,serif}.goal-card h2{font:italic 25px Georgia,serif;margin:5px 0 18px}.goal-card>p:not(.kicker){font:italic 12px/1.5 Georgia,serif}.goal-track{height:7px;border:1.5px solid var(--ink);background:var(--paper);margin-top:26px}.goal-track span{display:block;height:100%;background:var(--yellow);border-right:1.5px solid var(--ink)}.book-shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-bottom:10px solid var(--plum);padding:0 12px 18px;position:relative}.book-shelf:after{content:"";position:absolute;height:8px;bottom:-17px;left:-6px;right:-6px;background:#42283b}.shelf-book{transform:rotate(var(--tilt));min-width:0}.shelf-book .book-cover{height:225px;min-height:0;border:1px solid var(--ink)}.shelf-book h3{font:16px/1.05 Georgia,serif;margin:12px 0 3px}.shelf-book>p{font-size:9px;color:#796e76;margin:0}.shelf-book>.rating-chip{position:static;display:inline-block;transform:rotate(-2deg);margin:8px 0;box-shadow:none}.shelf-book>div:last-child{display:flex;gap:9px;flex-wrap:wrap}.audio-section{border-top:2px solid var(--ink)}.audio-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.audio-card{display:grid;grid-template-columns:170px 1fr;gap:22px;background:#e8d9bc;border:1.5px solid var(--ink);padding:18px;box-shadow:6px 6px 0 var(--plum)}.audio-card:nth-child(even){background:#dce5d8;box-shadow:6px 6px 0 var(--blue)}.audio-card .book-cover{width:170px;height:170px}.audio-label{background:var(--ink);color:var(--paper);padding:4px 7px;font-size:7px;letter-spacing:.13em}.audio-card h3{font:23px/1.05 Georgia,serif;margin:17px 0 4px}.audio-card p{font-size:10px;color:#776b73;margin:0}.audio-stats{display:flex;justify-content:space-between;font-size:8px;margin-top:29px}.reviews-section{border-top:2px solid var(--ink)}.reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.review-card{background:var(--paper);border:1.5px solid var(--ink);padding:22px;display:grid;grid-template-columns:38px 1fr;gap:14px;box-shadow:5px 5px 0 var(--blue)}.review-card.review-1{box-shadow:5px 5px 0 var(--coral);transform:rotate(.4deg)}.review-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:white;font-size:9px;font-weight:900;border:1.5px solid var(--ink)}.review-meta{display:flex;justify-content:space-between;gap:12px;font-size:9px}.review-meta span:last-child{color:var(--yellow);text-shadow:.5px .5px var(--ink)}.review-card blockquote{font:italic 14px/1.45 Georgia,serif;margin:18px 0}.review-card details summary{cursor:pointer;font-size:10px;color:var(--coral)}.review-empty{grid-column:1/-1;background:var(--plum);color:var(--paper);padding:35px;text-align:center;border:2px solid var(--ink)}.review-empty span{font:55px Georgia,serif;color:var(--yellow)}.review-empty h3{font:25px Georgia,serif;margin:0}.review-empty p{font:italic 12px Georgia,serif}.empty-state,.empty-shelf{width:100%;min-height:190px;border:2px dashed var(--plum);background:rgba(255,249,236,.55);font:italic 17px Georgia,serif;cursor:pointer}.empty-state b,.empty-state span{display:block}.empty-state span{font:10px Arial,sans-serif;margin-top:8px}.empty-shelf{grid-column:1/-1}.loading-card{grid-column:1/-1;text-align:center;padding:60px;font:italic 18px Georgia,serif}.dialog{width:min(760px,calc(100% - 30px));max-height:86vh;border:2px solid var(--ink);background:var(--butter);padding:42px;box-shadow:12px 12px 0 var(--coral);color:var(--ink)}.dialog::backdrop{background:rgba(41,33,61,.72);backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;font:30px Georgia,serif;cursor:pointer}.dialog-star{position:absolute;right:58px;top:33px;color:var(--blue);font-size:29px}.dialog h2{font:36px/1.05 Georgia,serif;margin:0 0 24px}.search-form{display:grid;grid-template-columns:1fr auto;gap:10px}.search-form label{height:52px;display:flex;align-items:center;gap:10px;background:var(--paper);border:1.5px solid var(--ink);padding:0 14px;box-shadow:3px 3px 0 var(--ink)}.search-form input{width:100%;border:0;outline:0;background:transparent}.search-form>button,.small-dialog form>button{background:var(--ink);color:var(--paper);border:0;padding:0 20px;font-size:10px;font-weight:900;cursor:pointer}.quick-tip{text-align:center;font:italic 10px Georgia,serif;margin:17px}.search-results{display:grid;gap:10px}.search-result{display:grid;grid-template-columns:72px 1fr;gap:14px;background:var(--paper);border:1px solid var(--line);padding:10px}.search-result .book-cover{width:72px;height:105px;min-height:0}.search-result h3{font:17px Georgia,serif;margin:3px 0}.search-result p,.search-result small{font-size:9px;color:#746772;margin:0}.search-result .rating-chip{position:static;display:inline-block;transform:none;box-shadow:none;margin:7px 0}.result-actions{display:flex;gap:7px}.result-actions button{background:var(--butter);border:1px solid var(--ink);padding:6px 8px;font-size:8px;cursor:pointer}.small-dialog{width:min(480px,calc(100% - 30px))}.small-dialog form{display:grid;gap:14px}.small-dialog label{display:grid;gap:6px;font-size:9px;font-weight:900;letter-spacing:.08em}.small-dialog input,.small-dialog select,.small-dialog textarea{width:100%;background:var(--paper);border:1.5px solid var(--ink);padding:12px;outline:0}.small-dialog form>button{padding:14px}.checkbox{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.checkbox input{width:auto}.toast{position:fixed;z-index:80;left:50%;bottom:25px;transform:translate(-50%,20px) rotate(-1deg);opacity:0;pointer-events:none;background:var(--ink);color:var(--paper);border:2px solid var(--paper);padding:12px 17px;font-size:10px;box-shadow:5px 5px 0 var(--coral);transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0) rotate(-1deg)}.mobile-nav{display:none}.login-page,.setup-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:var(--butter)}.login-card,.setup-card{width:min(480px,100%);background:var(--paper);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--coral);padding:42px}.login-mark{margin-bottom:22px}.login-card h1,.setup-card h1{font:43px/1 Georgia,serif;margin:0}.login-tagline{font:italic 13px Georgia,serif;color:#6e6168;margin-bottom:28px}.login-card form,.setup-card form{display:grid;gap:15px}.login-card label,.setup-card label{display:grid;gap:6px;font-size:9px;font-weight:900;letter-spacing:.08em}.login-card input,.setup-card input{border:1.5px solid var(--ink);background:var(--butter);padding:12px}.login-card form button,.setup-card form button,.setup-link{background:var(--ink);color:var(--paper);border:0;padding:14px;font-weight:900;font-size:10px;text-align:center;text-decoration:none}.form-error{background:#f6d2c9;border:1px solid var(--coral);padding:11px;font-size:11px;margin:15px 0}.danger-box{background:#f7d4ca;border:2px solid var(--coral);padding:15px;margin:20px 0;font-size:11px}.danger-box code,.danger-box span{display:block;margin-top:8px}.danger-button{background:#9b2f2f!important}.setup-success{background:#dce8d7;border:1px solid var(--green);padding:14px;margin:20px 0;font-size:11px}
@media(max-width:1080px){.topbar nav{display:none}.topbar{grid-template-columns:auto 1fr auto}.reading-grid{grid-template-columns:1fr}.reading-card{grid-template-columns:160px 1fr}.middle-grid{grid-template-columns:260px 1fr}.book-shelf{grid-template-columns:repeat(2,1fr)}.audio-grid{grid-template-columns:1fr}}
@media(max-width:700px){body{padding-bottom:68px}.topbar{height:62px;padding:0 18px;grid-template-columns:1fr auto}.brand{font-size:18px}.brand span{width:28px;height:28px}.search-open{display:none}.profile-menu a{display:none}.shell{padding:0 18px 55px}.hero{min-height:340px;display:block;padding-top:45px}.date-note{position:absolute;right:12px;top:34px;width:66px;height:92px}.hero>div:nth-child(2){max-width:300px}.hero h1{font-size:50px;line-height:.9}.intro{font-size:12px;max-width:260px}.round-add{display:none}.hero-note{right:11%;top:165px;font-size:12px}.hero-star{right:2%;top:172px}.section-block{padding:40px 0}.section-heading h2{font-size:25px}.section-heading>i{display:none}.reading-grid{display:flex;overflow-x:auto;margin:0 -18px;padding:0 18px 18px;gap:14px;scroll-snap-type:x mandatory;scrollbar-width:none}.reading-card{min-width:315px;grid-template-columns:127px 1fr;gap:14px;padding:14px;min-height:265px;scroll-snap-align:start}.book-cover{min-height:220px}.reading-copy h3{font-size:18px;margin-top:31px}.middle-grid{display:flex;flex-direction:column;gap:50px;padding:45px 0}.goal-card{margin:0 8px}.book-shelf{display:flex;overflow-x:auto;margin:0 -18px;padding:0 18px 19px;border:0;gap:17px;scrollbar-width:none}.book-shelf:after{display:none}.shelf-book{min-width:140px}.shelf-book .book-cover{height:205px}.audio-grid,.reviews-grid{display:flex;overflow-x:auto;margin:0 -18px;padding:0 18px 18px;gap:14px;scrollbar-width:none}.audio-card{min-width:300px;grid-template-columns:120px 1fr;gap:14px;padding:14px}.audio-card .book-cover{width:120px;height:120px;min-height:0}.audio-card h3{font-size:17px;margin-top:11px}.audio-stats{margin-top:14px}.review-card{min-width:295px}.review-empty{min-width:295px}.mobile-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;height:68px;background:var(--paper);border-top:2px solid var(--ink);display:grid;grid-template-columns:repeat(4,1fr);padding-right:62px}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;font-size:7px}.mobile-nav a span{font-size:17px}.mobile-nav button{position:absolute;right:9px;top:8px;width:50px;height:50px;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);font-size:25px;box-shadow:3px 3px 0 var(--ink)}.dialog{padding:34px 20px 24px;max-height:92vh;box-shadow:0 -8px 0 var(--coral)}.search-dialog{width:100%;height:92vh;margin:auto 0 0}.search-form{grid-template-columns:1fr}.search-form>button{padding:13px}.toast{bottom:81px;white-space:nowrap}.login-card,.setup-card{padding:30px 22px}}

