:root{--ink:#203f35;--paper:#fbf8f0;--muted:#52665b;--line:#d5ded0;--accent:#dfedb7;--reader-size:22px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #aa5b22;outline-offset:4px}a{color:inherit}header{display:flex;align-items:center;gap:40px;padding:25px 5%;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;gap:12px;text-decoration:none;font:25px/1.1 Georgia,serif;min-width:220px}.brand b{font-weight:400;color:#6a8049}.brand small{display:block;font:9px/2.5 system-ui;letter-spacing:2px}.mark{font-size:44px;line-height:1}nav{display:flex;gap:25px}nav button{border:0;background:none;color:var(--muted);padding:10px 0;font-size:14px;border-bottom:2px solid transparent}nav button.active{border-color:var(--ink);color:var(--ink)}.local{margin-left:auto;font-size:11px;color:var(--muted)}main{max-width:1370px;margin:auto;padding:42px 5% 70px;min-height:75vh}.eyebrow{font-size:11px;font-weight:650;letter-spacing:2px;text-transform:uppercase}.hero{display:grid;grid-template-columns:1.5fr 1fr;background:#e8eddd;border-radius:8px;overflow:hidden;min-height:290px}.hero-copy{padding:34px 42px}.hero h1{font:clamp(38px,4.4vw,62px)/1.07 Georgia,serif;letter-spacing:-2px;margin:15px 0}.hero p{max-width:470px;color:var(--muted);font-size:14px}.hero-art{position:relative;display:grid;place-items:center;background:radial-gradient(ellipse at bottom,#c9d8a7,transparent 70%);overflow:hidden}.tree{position:absolute;width:240px;height:240px;background:#b4c391;border-radius:48% 52% 40% 55%;top:20px;right:10px;opacity:.5}.bookstack{position:relative;transform:rotate(-8deg);width:160px;height:205px;border-radius:3px 13px 13px 3px;border-left:12px solid #315645;background:#53775c;box-shadow:16px 12px 0 #e0bc76,27px 25px 0 #869a69,0 28px 45px #203f3524;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f3ebc5;text-align:center;font:24px/1.2 Georgia}.bookstack:before{content:'✧';font-size:60px}.bookstack small{font:8px system-ui;letter-spacing:2px;margin-top:15px}.hero-art .leaf{position:absolute;font:110px Georgia;left:5%;bottom:-30px;color:#6e8b55;transform:rotate(-20deg)}.section-head{display:flex;align-items:center;gap:20px;margin:36px 0 15px}.section-head h2{font:30px Georgia;margin:0}.section-head p{font-size:12px;color:var(--muted);margin-left:auto}.toolbar{display:flex;gap:12px;margin:20px 0 26px;flex-wrap:wrap}.search{flex:1;min-width:210px}input,select{border:1px solid var(--line);background:transparent;border-radius:5px;padding:11px 14px;color:var(--ink)}.filters{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:30px;padding:9px 18px;background:transparent;color:var(--ink);font-size:13px}.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card{min-width:0}.cover{height:245px;border-radius:5px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:22px;color:#244c3c;overflow:hidden;box-shadow:inset 7px 0 0 #203f3510;background:#dfe8cc}.cover.rose{background:#efded5;color:#754e4b}.cover.blue{background:#d6e3e4;color:#345967}.cover:before,.cover:after{content:'';position:absolute;width:170px;height:170px;border:1px solid currentColor;border-radius:50%;opacity:.13;top:-75px;left:-35px}.cover:after{top:auto;left:auto;bottom:-100px;right:-25px;width:230px;height:230px}.cover .icon{font:68px/1 Georgia}.cover h3{font:27px/1.15 Georgia;margin:10px 0;max-width:250px}.cover small{font-size:9px;letter-spacing:2px;text-transform:uppercase}.cover .edition{position:absolute;top:14px;left:18px;letter-spacing:1px;font-size:9px}.card-body{padding:15px 2px}.meta{font-size:11px;color:var(--muted)}.card p{font-size:13px;line-height:1.5;min-height:40px;margin:7px 0 13px;color:var(--muted)}.card-actions{display:flex;gap:8px}.primary,.secondary{border:1px solid var(--ink);border-radius:5px;background:var(--ink);color:var(--paper);padding:10px 20px;font-size:13px;text-decoration:none;display:inline-block}.secondary{color:var(--ink);background:transparent}.card-actions .primary{flex:1}.guide{display:flex;align-items:center;gap:20px;margin-top:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.guide img{width:76px;height:76px;object-fit:contain}.guide p{font-size:13px;margin:3px 0;color:var(--muted)}.guide b{font:21px Georgia}.empty{padding:40px;text-align:center;border:1px dashed var(--line);grid-column:1/-1}footer{padding:25px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1px}footer i{font-family:Georgia;letter-spacing:0;text-transform:none}h1{font:44px/1.15 Georgia}h2{font-family:Georgia}.reading-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.reading-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.reading-tools button{padding:8px 14px}.reader{max-width:770px;margin:35px auto;background:var(--reader-bg,#fffdf7);color:var(--reader-ink,#203f35);padding:50px 55px;border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 30px #203f3505}.reader h1{font-size:40px;letter-spacing:-1px;margin:12px 0}.reader .passage{font:var(--reader-size)/1.85 Georgia,serif}.reader .passage p{margin:24px 0}.reader .passage p.target{background:#e4ebbc;color:#203f35;border-left:4px solid #607b35;padding-left:15px}.reader .byline,.reader .note{font:12px/1.6 system-ui;color:inherit;opacity:.85}.reader .note{padding:14px 0;border-block:1px solid var(--line);margin:20px 0}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0}.progress{height:4px;background:var(--line);border-radius:3px;overflow:hidden}.progress span{display:block;height:100%;background:#7d9855}.quiz{border-top:1px solid var(--line);padding-top:20px}.quiz fieldset{border:0;padding:0;margin:22px 0}.quiz legend{font-weight:600;font-size:17px;margin-bottom:10px}.quiz label{display:block;padding:9px;border:1px solid var(--line);margin:6px 0;border-radius:5px;cursor:pointer}.quiz input{margin-right:10px}.feedback{padding:15px;background:#e7edd9;border-radius:4px;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:25px 0}.stat{padding:20px;background:#e8eddd;border-radius:5px}.stat strong{display:block;font:36px Georgia}.stat small{color:var(--muted)}.listrow{border-bottom:1px solid var(--line);padding:20px 0;display:flex;align-items:center;gap:20px}.listrow div{flex:1}.listrow h3{margin:0;font:21px Georgia}.listrow p{font-size:13px;margin:4px 0;color:var(--muted)}.review-table{width:100%;border-collapse:collapse;font-size:13px}.review-table th,.review-table td{text-align:left;vertical-align:top;padding:15px 10px;border-bottom:1px solid var(--line)}.review-table summary{cursor:pointer}.badge{display:inline-block;border-radius:20px;background:#e4ead8;font-size:11px;padding:3px 10px;white-space:nowrap}.badge.review-needed{background:#f3e6c8}.badge.rejected{background:#efd9d4}.review-scroll{overflow:auto}.notice{background:#eee8d8;padding:15px 20px;font-size:13px;border-radius:5px}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}body.contrast{--reader-bg:#152a25;--reader-ink:#fff8dd}body.contrast .reader .primary{border-color:#fff8dd;background:#fff8dd;color:#152a25}body.contrast .reader .secondary{color:#fff8dd;border-color:#fff8dd}body.contrast .feedback{background:#344d3d;color:#fff8dd}.error{color:#8b342b}.done{color:#526b32}@media(max-width:900px){header{gap:20px;flex-wrap:wrap}.local{display:none}.grid{grid-template-columns:repeat(2,1fr)}.hero-copy{padding:28px}.hero-art{min-width:200px}.bookstack{width:125px;height:170px}.reader{padding:30px}.hero h1{font-size:46px}footer{flex-direction:column}}@media(max-width:560px){header{padding:18px 5%}.brand{font-size:23px}nav{gap:20px;width:100%}nav button{font-size:12px}main{padding-top:25px}.hero{grid-template-columns:1fr}.hero-art{display:none}.hero h1{font-size:44px}.grid{gap:20px 14px}.cover{height:220px;padding:18px 10px}.cover h3{font-size:22px}.card-actions{flex-wrap:wrap}.card-actions .primary{width:100%}.card p{min-height:60px}.section-head{align-items:start}.section-head h2{font-size:26px}.section-head p{text-align:right}.reader{padding:25px 20px}.reader h1{font-size:33px}.stats{gap:8px}.stat{padding:13px}.stat strong{font-size:28px}.guide img{width:60px}.reading-tools{font-size:12px}.listrow{flex-wrap:wrap}}
/* Minimal local reader profiles — 2026-11-02 */
.profile-panel{max-width:820px;margin:0 auto}.profile-panel>p{max-width:680px}.profile-panel h1{margin-bottom:18px}.profile-panel form{border-top:1px solid var(--line);margin-top:28px;padding-top:8px}.profile-panel form>label,.profile-panel form>input,.profile-panel form>small{display:block}.profile-panel form>input{width:100%;max-width:440px;min-height:48px;margin:8px 0}.profile-panel form>small{font-size:12px;color:var(--muted)}.profile-list{display:flex;gap:14px;flex-wrap:wrap;margin-top:25px}.profile-choice{background:#e8eddd;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:18px;min-width:145px;min-height:140px;display:flex;align-items:center;flex-direction:column;gap:5px;overflow-wrap:anywhere;max-width:220px}.profile-choice img,.avatar-choice img{width:58px;height:58px;object-fit:contain}.profile-choice small{font-size:11px}.profile-symbol{width:58px;height:58px;text-align:center;line-height:58px;font-size:42px;color:#587a4c}.avatar-options{border:0;padding:0;display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.avatar-options legend{margin-bottom:12px;font-weight:600}.avatar-choice{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;position:relative;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:132px;min-width:130px;cursor:pointer;font-size:13px}.avatar-choice:has(input:checked){border:2px solid var(--ink);background:#e8eddd}.avatar-choice input{position:absolute;left:9px;top:9px;width:20px;height:20px;margin:0}.profile-panel button,#reader-profile{min-height:46px}.profile-panel details{margin-top:24px}.profile-panel summary{cursor:pointer}#reader-profile{max-width:240px;overflow-wrap:anywhere}@media(max-width:560px){.profile-panel h1{font-size:36px}.avatar-choice{min-width:calc(50% - 8px);flex:1}.profile-choice{min-width:calc(50% - 8px);flex:1}#reader-profile{font-size:12px;padding:8px 14px}.profile-panel .toolbar button{flex:1}}
