:root{color-scheme:light;--bg: #f4efe5;--surface: #fffaf0;--surface-soft: rgba(255, 252, 245, .76);--surface-strong: #fffdf8;--text: #25231f;--muted: #756d61;--muted-strong: #5d554b;--line: rgba(37, 35, 31, .15);--line-strong: rgba(37, 35, 31, .26);--primary: #2c3b35;--primary-text: #fffaf0;--accent: #8a6b3f;--danger: #7b4b42;--reader-bg: #1f211e;--reader-surface: rgba(31, 33, 30, .9);--reader-text: #f8f1e4;--reader-muted: #cfc5b5;--reader-line: rgba(248, 241, 228, .18);--radius: 8px;--tap: 44px;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #151714;--surface: #22251f;--surface-soft: rgba(38, 41, 34, .78);--surface-strong: #2b2f28;--text: #f3eadb;--muted: #b7aa96;--muted-strong: #d8cbb6;--line: rgba(243, 234, 219, .14);--line-strong: rgba(243, 234, 219, .26);--primary: #d9b36d;--primary-text: #1d1a14;--accent: #e0b96f;--danger: #f0a08f;--reader-bg: #0f110f;--reader-surface: rgba(23, 25, 22, .92);--reader-text: #fff6e8;--reader-muted: #d8cbb6;--reader-line: rgba(255, 246, 232, .2)}}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--surface-soft);color:inherit;cursor:pointer;min-height:var(--tap);transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}button:hover{border-color:var(--line-strong);transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.app{min-height:100vh}.topbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1rem clamp(1rem,4vw,3rem);position:sticky;top:0;z-index:2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}.brand{border:0;background:transparent;font-family:Georgia,serif;font-size:1.35rem}nav{display:flex;gap:.5rem}nav button,.readerBar button,.chips button,.photoEdit button,.segmented button{border-radius:999px;padding:.55rem .85rem}.active,.selected{background:var(--primary);border-color:transparent;color:var(--primary-text)}.home,.importPanel,.studio,.studioEmpty{padding:clamp(1rem,4vw,3rem)}.hero{min-height:48vh;display:grid;align-content:center;max-width:780px}.hero p,.drop p,.textPage p,.coverPage p{color:var(--muted);letter-spacing:0;margin:0 0 .75rem;text-transform:uppercase}.hero h1,.drop h1,.textPage h1,.coverPage h1{font-family:Georgia,serif;font-size:clamp(2.35rem,8vw,5.8rem);font-weight:500;line-height:1;margin:0 0 1.5rem;max-width:920px}.hero button,.primary,.fileButton{align-items:center;background:var(--primary);border-radius:999px;border-color:transparent;color:var(--primary-text);display:inline-flex;justify-content:center;min-height:48px;padding:.8rem 1.1rem;width:fit-content}.shelf h2{font-family:Georgia,serif;font-size:1.8rem;font-weight:500}.shelf{display:grid;gap:1.5rem}.shelfRow{display:grid;gap:.75rem}.shelfRow h3{color:var(--muted);font-size:.95rem;font-weight:500;margin:0}.todayBook{align-items:end;aspect-ratio:16 / 7;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 86%,#000 14%),color-mix(in srgb,var(--primary) 58%,var(--bg) 42%));border-color:transparent;border-radius:var(--radius);color:var(--primary-text);display:grid;justify-items:start;max-width:780px;padding:clamp(1rem,4vw,2rem);text-align:left}.todayBook strong{font-family:Georgia,serif;font-size:clamp(1.8rem,5vw,3.5rem);font-weight:500;line-height:1}.todayBook span,.todayBook small{color:color-mix(in srgb,var(--primary-text) 76%,transparent)}.bookGrid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.bookCard{aspect-ratio:4 / 5;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-template-rows:1fr auto;padding:1.1rem;text-align:left}.bookOpen{background:transparent;border:0;display:grid;padding:0;text-align:left}.bookCard strong{align-self:end;font-family:Georgia,serif;font-size:1.6rem;font-weight:500}.bookActions{display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.9rem}.bookActions button{border-radius:999px;min-height:40px}.bookCard small,.bookCard span,.empty p,.drop span,.status{color:var(--muted)}.empty,.drop{border:1px dashed var(--line-strong);border-radius:var(--radius);padding:clamp(1.5rem,6vw,4rem)}.drop{min-height:54vh;display:grid;align-content:center;justify-items:start}.fileButton{margin-top:1.5rem}.importActions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.importActions .fileButton{margin-top:0}.fileButton.secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.fileButton input{inline-size:1px;opacity:0;position:absolute}.studio{display:grid;gap:1.5rem;grid-template-columns:minmax(260px,340px) 1fr}.composer{align-self:start;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:1rem;padding:1rem;position:sticky;top:5.5rem}.storageSummary{align-items:end;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding-bottom:.75rem}.storageSummary span{color:var(--muted)}.storageSummary strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:500}.recipePreview{display:flex;flex-wrap:wrap;gap:.45rem}.recipePreview span{background:var(--surface-strong);border:1px solid var(--line);border-radius:999px;color:var(--muted-strong);font-size:.84rem;padding:.38rem .58rem}.composer label{display:grid;gap:.4rem}.segmented{border:0;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}.segmented legend{color:var(--muted);flex-basis:100%;margin-bottom:.15rem}.composer input,.composer select,.photoEdit input{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--text);min-height:44px;padding:.7rem .8rem;width:100%}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.titleSuggestions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:-.35rem}.titleSuggestions button{border-radius:999px;color:var(--muted-strong);font-size:.86rem;padding:.45rem .65rem}.dateRange{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.recipeActions{display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(0,1fr))}.recipeActions button{border-radius:var(--radius);min-height:var(--tap)}.photoStrip{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.photoEdit{background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:.6rem;padding:.7rem}.photoEdit img{aspect-ratio:4 / 3;border-radius:calc(var(--radius) - 2px);height:auto;object-fit:cover;width:100%}.photoEdit div{display:grid;gap:.5rem}.photoActions{display:grid;gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr))}.quietDanger{color:var(--danger)}.tagEditor{display:grid;gap:.45rem;grid-template-columns:1fr auto}.miniTags,.miniMeta{color:#756d61;font-size:.82rem;margin:0;overflow-wrap:anywhere}.miniMeta{color:var(--muted-strong)}.reader{background:var(--reader-bg);color:var(--reader-text);min-height:100vh;overflow:hidden;padding:1.25rem clamp(1rem,3vw,2rem) 6.25rem;position:relative}.readerBar{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:var(--reader-surface);border:1px solid var(--reader-line);border-radius:999px;box-shadow:0 18px 50px #00000042;display:flex;gap:.45rem;justify-content:space-between;left:50%;max-width:min(760px,calc(100vw - 1.5rem));padding:.4rem;position:fixed;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);width:max-content;z-index:3}.readerBar span{color:var(--reader-muted);font-size:.9rem;min-width:3.9rem;text-align:center}.readerBar button{background:#fff6e814;border-color:#fff6e81f;color:var(--reader-text);font-size:.92rem;min-height:var(--tap);white-space:nowrap}.readerBar button:disabled{cursor:default;opacity:.46;transform:none}.exportReview{align-items:center;background:var(--reader-surface);border:1px solid var(--reader-line);border-radius:var(--radius);box-shadow:0 18px 50px #00000047;display:flex;flex-wrap:wrap;gap:.75rem;left:50%;max-width:min(720px,calc(100vw - 1.5rem));padding:.75rem;position:fixed;bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 4.3rem);transform:translate(-50%);z-index:4}.exportReview span{color:var(--reader-muted);font-size:.9rem}.exportReview button{border-radius:999px;padding:.55rem .85rem}.coverPage,.textPage,.singlePhoto,.photoGroup{min-height:calc(100vh - 7.5rem)}.coverPage{display:grid;gap:clamp(1rem,4vw,3rem);grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);place-items:center}.coverPage img,.singlePhoto img,.photoGroup img{border-radius:var(--radius);max-height:calc(100vh - 9.5rem);object-fit:contain;width:100%}.coverPage div{justify-self:start}.textPage{display:grid;place-content:center;text-align:center}.textPage span{color:var(--reader-muted);font-size:1.1rem}.textPage.datePage,.textPage.locationPage{background:color-mix(in srgb,var(--reader-bg) 78%,var(--reader-text) 8%);border:1px solid rgba(248,241,228,.08);min-height:calc(100vh - 8rem)}.textPage.datePage h1,.textPage.locationPage h1{font-size:clamp(2rem,6vw,4.4rem)}.relatedBooks{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:2rem;max-width:680px;width:min(680px,90vw)}.relatedBooks button{background:#f8f1e414;border-color:var(--reader-line);border-radius:var(--radius);color:var(--reader-text);display:grid;gap:.35rem;padding:.9rem;text-align:left}.relatedBooks small{color:var(--reader-muted);text-transform:uppercase}.relatedBooks strong{font-family:Georgia,serif;font-size:1.05rem;font-weight:500}.singlePhoto{display:grid;gap:1rem;place-items:center}.singlePhoto.whiteMargin{background:color-mix(in srgb,var(--reader-text) 92%,var(--reader-bg) 8%);color:#25231f;padding:clamp(1rem,5vw,4rem)}.singlePhoto.photoWithCaption{grid-template-columns:minmax(0,.9fr) minmax(220px,.45fr);justify-content:center;margin-inline:auto;max-width:1080px}.singlePhoto.photoWithCaption p{align-self:center;border-left:1px solid var(--reader-line);padding-left:clamp(1rem,3vw,2rem)}.singlePhoto.fullPhoto img{max-height:calc(100vh - 8.5rem)}.singlePhoto p{color:inherit;margin:0;opacity:.78}.photoGroup{display:grid;gap:1rem;place-content:center}.photoGroup h2{color:var(--reader-muted);font-family:Georgia,serif;font-size:1rem;font-weight:500;margin:0;text-align:center}.photoGroup div{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px}.contactSheet div{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}@media(max-width:760px){.topbar{align-items:flex-start;flex-direction:column;gap:.75rem}nav{overflow-x:auto;padding-bottom:.15rem;width:100%}nav button{flex:0 0 auto}.studio,.coverPage{grid-template-columns:1fr}.composer{position:static}.photoGroup div,.singlePhoto.photoWithCaption{grid-template-columns:1fr}.singlePhoto.photoWithCaption p{border-left:0;padding-left:0}.reader{padding:.8rem .75rem 8.4rem}.readerBar{border-radius:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:calc(100vw - 1rem)}.readerBar span{grid-column:span 2;min-width:0}.readerBar button{padding-inline:.55rem}.exportReview{bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 7rem);justify-content:center;width:calc(100vw - 1rem)}.coverPage,.textPage,.singlePhoto,.photoGroup{min-height:calc(100vh - 9rem)}.coverPage{align-content:start;gap:1.4rem;padding-top:1rem;place-items:start}.coverPage img,.singlePhoto img,.photoGroup img{max-height:calc(100vh - 14rem)}}
