@font-face{font-family:FallbackSerif;src:local('Georgia');font-display:swap}
:root{color-scheme:light;--paper:#f8f7f2;--surface:#fffefa;--ink:#243930;--muted:#5e6b63;--green:#185a46;--accent:#e2eacb;--line:#d9dfd5;--tint:#edf0e5;--error:#8f2020;--shadow:0 14px 30px #17372b0b}
:root[data-theme=dark]{color-scheme:dark;--paper:#101a19;--surface:#182523;--ink:#edf5ef;--muted:#b1c6be;--green:#83dec0;--accent:#263f34;--line:#38514a;--tint:#21332d;--error:#ffa8a8;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'Segoe UI',Arial,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.65;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15}h1,h2{font-family:FallbackSerif,Georgia,serif;font-weight:400}h1{font-size:clamp(2.2rem,4.3vw,4.25rem);letter-spacing:-.045em;margin-bottom:20px}h2{font-size:1.9rem;letter-spacing:-.025em}h3{font-size:1.08rem}p{margin-bottom:16px}.wrap{max-width:1300px;margin:auto;padding-left:44px;padding-right:44px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:112px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;text-decoration:none}.brand-icon{display:grid;place-items:center;width:51px;height:58px;background:var(--green);color:var(--paper);font:italic 36px Georgia,serif;border-radius:2px 12px 2px 2px}.brand small{display:block;font-size:11px;letter-spacing:.28em;font-weight:600}.brand strong{font:600 27px Georgia,serif;letter-spacing:-1px}.brand-dot{color:var(--green)}nav{display:flex;align-items:center;gap:28px}nav a{text-decoration:none;font-size:.9rem}.theme-toggle{font-size:.85rem;border:1px solid var(--line);border-radius:30px;padding:10px 15px;background:transparent;color:var(--ink)}.intro{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:58px 0 50px}.eyebrow,.step-label{font-size:.76rem;letter-spacing:.17em;font-weight:700;color:var(--green);margin-bottom:18px}h1 em{color:var(--green);font-weight:400}.intro-copy{color:var(--muted);margin:0;font-size:1rem}.intro-mark{width:300px;height:230px;position:relative;margin-right:35px;background:radial-gradient(ellipse,var(--accent),transparent 67%)}.line-book{display:block;position:absolute;width:54px;height:170px;border:2px solid var(--green);bottom:20px;border-radius:3px 7px 7px 3px}.line-book:before,.line-book:after{content:'';position:absolute;left:7px;right:7px;height:2px;background:var(--green)}.line-book:before{top:19px}.line-book:after{bottom:17px}.one{left:47px;transform:rotate(-14deg);height:151px}.two{left:105px}.three{left:172px;transform:rotate(18deg);height:186px}.seal{position:absolute;right:-15px;top:-5px;background:var(--green);color:var(--paper);border-radius:50%;width:91px;height:91px;display:grid;place-content:center;line-height:1.15;text-align:center;font-size:12px;font-weight:700;letter-spacing:.1em;transform:rotate(12deg)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{margin:0;display:flex;gap:15px;align-items:center}.muted{color:var(--muted);font-size:.92rem}.count{font:14px 'Segoe UI',sans-serif;padding:4px 11px;background:var(--accent);border-radius:20px}.search-bar{display:grid;grid-template-columns:minmax(200px,1fr) 205px 160px auto;align-items:end;gap:16px;padding:20px;border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-bottom:34px}label{display:block;font-size:.875rem;font-weight:600;margin-bottom:7px}input,select{min-height:46px;width:100%;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);padding:10px 12px}input::placeholder{color:var(--muted);opacity:1}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px;padding:11px 20px;border-radius:5px;text-decoration:none;font-weight:600;border:1px solid var(--green);font-size:.95rem}.primary{background:var(--green);color:var(--paper)}.secondary{background:transparent;color:var(--green)}.primary:hover{filter:brightness(.92)}.secondary:hover{background:var(--tint)}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 25px}.book-link{text-decoration:none;display:block}.book-art{height:286px;position:relative;display:flex;justify-content:center;align-items:center;background:#e9e9dc;border-radius:5px;overflow:hidden;padding:24px}.tone-1{background:#e5e9e4}.tone-2{background:#efe4d5}.tone-3{background:#e8e2e0}.cover-fallback{width:150px;height:222px;background:#245344;color:#fffdf3;box-shadow:6px 8px 12px #0002;display:flex;flex-direction:column;padding:18px 15px;border-left:6px solid #ffffff28}.tone-1 .cover-fallback{background:#354d61}.tone-2 .cover-fallback{background:#8e492f}.tone-3 .cover-fallback{background:#725468}.fallback-publisher{font-size:9px;text-transform:uppercase;letter-spacing:.1em;overflow:hidden;max-height:25px}.fallback-title{font:19px/1.12 Georgia,serif;margin-top:18px;max-height:100px;overflow:hidden;overflow-wrap:anywhere}.fallback-author{font-size:10px;margin-top:10px;max-height:29px;overflow:hidden}.fallback-note{font-size:8px;letter-spacing:.04em;margin-top:auto;padding-top:8px}.book-cover{position:absolute;max-width:75%;width:auto;max-height:235px;height:auto;object-fit:contain;box-shadow:6px 8px 12px #0003;background:#eee}.book-cover[hidden]{display:none}.view-book{position:absolute;bottom:10px;right:11px;font-size:12px;color:#213d31;background:#fffdf3;padding:4px 9px;border-radius:4px;opacity:0;transition:opacity .15s}.book-link:hover .view-book,.book-link:focus-visible .view-book{opacity:1}.book-info{padding:17px 2px 0}.category{color:var(--green);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px}.book-info h3{font:600 1.1rem/1.3 Georgia,serif;margin:0 0 6px}.author{color:var(--muted);font-size:.875rem;margin:0 0 12px}.price-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.price-row strong{font-size:1rem}.stock{font-size:.8rem;color:var(--muted)}.footer{margin-top:75px;border-top:1px solid var(--line);padding-top:30px;padding-bottom:35px;display:flex;justify-content:space-between;gap:25px;font-size:.85rem}.footer p{color:var(--muted);margin-top:7px}.footer-links{display:flex;flex-direction:column;gap:9px;color:var(--muted)}.empty{text-align:center;padding:70px 20px;background:var(--surface);border:1px dashed var(--line);border-radius:8px}.empty>span{font-size:40px}.empty h3{font:28px Georgia,serif}.empty p{color:var(--muted)}.results-meta{display:flex;justify-content:space-between;margin:-10px 0 25px;gap:15px}.pagination{justify-content:center;margin-top:40px}.back{display:inline-block;margin:30px 0;font-size:.92rem}.book-detail{display:grid;grid-template-columns:minmax(230px,350px) 1fr;gap:65px;margin:15px 0 70px}.book-detail .book-art{height:430px}.book-detail .cover-fallback{transform:scale(1.4)}.book-detail .book-cover{max-height:350px;max-width:85%}.book-detail h1{font-size:3rem}.detail-author{font-size:1.25rem;color:var(--muted)}.detail-price{font-size:1.7rem;font-weight:600;margin-top:25px}.availability{margin-bottom:5px;color:var(--green)}dl{display:grid;grid-template-columns:100px 1fr;gap:10px;margin:30px 0}dt{color:var(--muted)}dd{margin:0}.description{white-space:pre-line}.panel{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:30px;box-shadow:var(--shadow)}.login-panel{max-width:480px;margin:65px auto}.login-panel h1{font-size:2.65rem}.login-panel input{margin-bottom:22px}.login-panel button{width:100%}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:45px 0 20px}.admin-heading h1{font-size:3rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:10px 0 30px}.stats>div{border-top:2px solid var(--line);padding-top:14px}.stats small{font-size:.7rem;letter-spacing:.09em;color:var(--muted)}.stats strong{display:block;font:38px Georgia,serif;margin-top:7px}.upload-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:25px}.panel h2{font-size:1.8rem}.panel p{color:var(--muted)}.panel .step-label{color:var(--green)}.dropzone{border:1px dashed var(--green);background:var(--tint);border-radius:8px;padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;margin:25px 0 18px}.dropzone>span{font-size:.82rem;font-weight:400}.dropzone .upload-symbol{font-size:28px}.dropzone input{font-size:.875rem;background:var(--surface);max-width:100%;margin-top:8px}.dropzone input::file-selector-button{padding:8px;border:0;border-radius:4px;color:var(--ink);background:var(--tint);margin-right:8px}.guidance ol{padding-left:20px}.guidance li{margin-bottom:14px}.guidance .muted{font-size:.85rem;margin-top:20px}.history{margin:45px 0}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:7px;background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:.9rem;text-align:left}th,td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--tint);font-size:.8rem;white-space:nowrap}td{min-width:110px;max-width:360px;overflow-wrap:anywhere}.badge{display:inline-block;background:var(--accent);padding:4px 10px;border-radius:20px;color:var(--green);font-size:.8rem}.check{display:flex;align-items:flex-start;gap:10px;font-weight:400;margin:18px 0}.check input{width:19px;height:19px;min-height:19px;flex-shrink:0;accent-color:var(--green);margin:3px 0}.publish-panel{margin-top:30px;max-width:800px}.notice{white-space:pre-line;padding:17px 21px;background:var(--tint);border:1px solid var(--line);border-left:4px solid var(--green);border-radius:5px;margin:24px 0;overflow-wrap:anywhere}.notice.error{border-left-color:var(--error);color:var(--error)}.notice.warning{border-left-color:#b57828}.empty-small{padding:25px;border:1px dashed var(--line)}.skip{position:absolute;left:10px;top:-100px;background:var(--surface);padding:10px;z-index:10}.skip:focus{top:10px}.demo-banner{text-align:center;background:var(--green);color:var(--paper);padding:8px;font-size:.85rem}.restore-form .check{margin-top:0;font-size:.8rem}
@media(min-width:1450px){.wrap{max-width:1400px}.book-art{height:310px}.book-cover{max-height:255px}}
@media(max-width:1000px){.wrap{padding-left:25px;padding-right:25px}.search-bar{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intro-mark{transform:scale(.8);margin-right:0}.upload-layout{grid-template-columns:1fr}.book-detail{gap:30px}.book-art{height:265px}}
@media(max-width:700px){.wrap{padding-left:18px;padding-right:18px}.site-header{flex-wrap:wrap;gap:18px;padding-top:20px;padding-bottom:17px}.site-header nav{width:100%;justify-content:space-between;gap:8px}.brand strong{font-size:26px}.intro{padding:35px 0;gap:0}.intro h1{font-size:2.8rem}.intro-mark{display:none}.intro-copy{font-size:.95rem}.desktop{display:none}.section-heading{align-items:flex-start}.section-heading>.muted{display:none}.search-bar{padding:14px;gap:12px}.search-bar .primary{grid-column:1/-1}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.book-art{height:230px;padding:12px}.cover-fallback{width:126px;height:188px;padding:13px 10px}.fallback-title{font-size:17px}.book-cover{max-height:195px;max-width:82%}.fallback-note{font-size:7px}.category{font-size:.65rem}.book-info h3{font-size:1rem}.book-info{padding-top:13px}.price-row{flex-wrap:wrap}.footer{flex-direction:column;margin-top:45px}.book-detail{grid-template-columns:1fr;gap:30px}.book-detail .book-art{max-width:350px;width:100%;margin:auto}.book-detail h1{font-size:2.3rem}.stats{grid-template-columns:1fr 1fr}.admin-heading{align-items:flex-start;flex-direction:column}.admin-heading h1{font-size:2.5rem}.panel{padding:21px}.login-panel{margin:35px auto}.pagination{gap:12px;flex-wrap:wrap}.results-meta{font-size:.9rem}.view-book{opacity:1}.dropzone{padding:14px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.site-mode-panel{margin:12px 0 32px}.mode-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.mode-heading h2{margin-bottom:14px}.mode-heading .step-label{margin-bottom:8px}.mode-status{font-size:.8rem;font-weight:700;letter-spacing:.09em;padding:8px 15px;border-radius:30px;border:1px solid var(--green);color:var(--green)}.mode-status.offline{border-color:#b57828;color:var(--ink);background:var(--tint)}.mode-options{border:0;padding:0;margin:22px 0;display:flex;gap:16px}.mode-options legend{font-size:.9rem;margin-bottom:10px}.mode-option{display:flex;align-items:center;gap:12px;flex:1;border:1px solid var(--line);padding:18px;border-radius:8px;cursor:pointer}.mode-option:has(input:checked){border-color:var(--green);background:var(--tint)}.mode-option input{width:21px;min-height:21px;height:21px;flex-shrink:0;accent-color:var(--green);margin:0}.mode-option strong,.mode-option small{display:block}.mode-option small{font-size:.85rem;color:var(--muted);font-weight:400;margin-top:4px}.mode-actions{display:flex;flex-wrap:wrap;gap:12px}.panel .mode-help{font-size:.87rem;margin:22px 0 0;max-width:850px}.maintenance-page{min-height:62vh;display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:38px;padding:65px 0 25px}.maintenance-page h1{font-size:clamp(2.6rem,4.5vw,4.5rem);line-height:1.08}.maintenance-page em{font-style:italic;color:var(--green)}.maintenance-badge{display:inline-flex;align-items:center;gap:10px;font-size:.67rem;font-weight:700;letter-spacing:.12em;color:var(--green);padding:10px 13px;border:1px solid var(--line);border-radius:30px;margin-bottom:30px}.maintenance-badge span{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}.maintenance-lead{font-size:1.06rem;line-height:1.8;color:var(--muted);max-width:490px}.maintenance-note{display:flex;gap:14px;align-items:center;margin-top:28px}.maintenance-note>span{font-size:32px;color:var(--green)}.maintenance-note p{font-size:.9rem;line-height:1.8;margin:0;color:var(--muted)}.maintenance-note strong{color:var(--ink);font-weight:500}.library-art svg{width:100%;max-width:470px;display:block;margin:auto}.library-art p{text-align:center;font:italic 1rem Georgia,serif;color:var(--muted);margin:14px 0 0}.art-backdrop{fill:var(--tint)}.art-stroke{stroke:var(--green)}.art-books{fill:var(--accent)}.art-open-book{fill:var(--surface);stroke:var(--green);stroke-width:3}.art-bookmark{fill:var(--green)}
@media(max-width:700px){.maintenance-page{grid-template-columns:1fr;gap:25px;padding-top:35px}.maintenance-badge{font-size:.58rem;letter-spacing:.08em;margin-bottom:24px}.maintenance-page h1{font-size:2.7rem}.maintenance-lead{font-size:1rem}.library-art{max-width:330px;justify-self:center;width:100%}.mode-options{flex-direction:column;gap:9px}.mode-heading{align-items:flex-start}.mode-option{margin:0}.mode-actions>*{flex:1}.mode-heading h2{font-size:1.5rem}}

/* Consistent author presentation on cards, fallback covers and detail pages. */
.author,.detail-author,.fallback-author{text-transform:uppercase;font-weight:700}
/* Contact information: clear hierarchy, shared across public and maintenance pages. */
.contact-strip{background:var(--tint);border-bottom:1px solid var(--line);font-size:.78rem;color:var(--muted)}.contact-strip>.wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:9px;padding-bottom:9px}.contact-strip a{text-decoration:none;color:var(--ink)}.contact-strip a:hover{text-decoration:underline}.site-header nav{gap:20px;flex-wrap:wrap}.site-header .nav-whatsapp{color:var(--green);font-weight:700}.contact-footer{margin-top:75px;background:var(--tint);border-top:1px solid var(--line);scroll-margin-top:18px}.contact-grid{display:grid;grid-template-columns:1.45fr 1fr 1.1fr;gap:42px;padding:52px 0 42px}.contact-welcome .eyebrow{font-size:.65rem;margin-bottom:17px}.contact-welcome h2{font-size:2rem;line-height:1.2;margin-bottom:16px}.contact-welcome h2 em{color:var(--green)}.contact-welcome>p:not(.eyebrow){font-size:.9rem;color:var(--muted);margin-bottom:22px}.contact-whatsapp{gap:11px;font-size:.9rem}.contact-whatsapp svg{flex-shrink:0}.contact-number{display:block;margin-top:10px;font-size:.8rem;color:var(--muted)}.contact-details{padding-top:5px;min-width:0}.contact-details h3{font:1.3rem Georgia,serif;margin-bottom:28px}.contact-label{display:block;font-size:.64rem;letter-spacing:.14em;font-weight:700;color:var(--muted);margin-bottom:8px}.contact-details address{font-style:normal}.contact-details p{margin-bottom:9px}.contact-details a{display:inline-block;text-decoration:none;overflow-wrap:anywhere}.contact-details a:hover{text-decoration:underline}.contact-details .contact-map{font-size:.82rem;color:var(--green);padding:3px 0}.contact-phone{margin-top:24px}.contact-social{margin-top:30px}.contact-bottom{border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;color:var(--muted);font-size:.72rem}.contact-bottom strong{color:var(--ink)}.contact-bottom a{text-decoration:none}.contact-bottom a:hover{text-decoration:underline}
@media(max-width:1000px){.contact-grid{grid-template-columns:1fr 1fr;gap:32px}.contact-welcome{grid-column:1/-1}.site-header nav{gap:14px}}
@media(max-width:700px){.contact-strip>.wrap{align-items:flex-start;flex-wrap:wrap;gap:4px 16px;font-size:.72rem}.site-header nav{justify-content:flex-start;gap:13px 19px}.site-header nav a{font-size:.82rem}.site-header .theme-toggle{margin-left:auto}.contact-footer{margin-top:45px}.contact-grid{grid-template-columns:1fr;gap:30px;padding:35px 0}.contact-welcome{grid-column:auto}.contact-welcome h2{font-size:1.85rem}.contact-details{border-top:1px solid var(--line);padding-top:25px}.contact-details h3{margin-bottom:20px}.contact-bottom{align-items:flex-start;flex-direction:column}.contact-details a{padding:5px 0}.contact-email{max-width:100%}}
/* Real bookshop photograph, blended as a quiet background beneath live HTML. */
.intro{position:relative;isolation:isolate;background:var(--paper)}
.intro::before{content:"";position:absolute;inset:-20px -20px -35px 12%;z-index:0;pointer-events:none;background:url('bookshop-photo.png') center 46%/cover no-repeat;filter:grayscale(1);mix-blend-mode:luminosity;opacity:.12;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 18%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 18%,transparent 100%)}
.intro>div{position:relative;z-index:1}
:root[data-theme=dark] .intro::before{opacity:.27}
@media(max-width:700px){.intro::before{inset:0 -10px -10px 0;background-position:58% center;-webkit-mask-image:radial-gradient(ellipse 65% 50% at 65% 50%,#000 10%,transparent 100%);mask-image:radial-gradient(ellipse 65% 50% at 65% 50%,#000 10%,transparent 100%);opacity:.09}:root[data-theme=dark] .intro::before{opacity:.16}}
/* The background alone is 80% translucent; books stay fully opaque. */
.book-art{padding:0;background:rgba(233,233,220,.2)}
.book-art.tone-1{background:rgba(229,233,228,.2)}
.book-art.tone-2{background:rgba(239,228,213,.2)}
.book-art.tone-3{background:rgba(232,226,224,.2)}
.book-art .cover-fallback{height:100%;width:auto;aspect-ratio:150/222;max-width:100%;flex-shrink:0;transform:none}
.book-art .book-cover{height:100%;width:auto;max-height:none;max-width:100%;object-fit:contain}
.book-art:has(.book-cover:not([hidden])) .cover-fallback{visibility:hidden}
.book-art .fallback-title{max-height:none;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:700px){.book-grid .fallback-title{margin-top:10px;-webkit-line-clamp:4}.book-grid .fallback-author{margin-top:7px}}

/* Dark mode: 90% transparent background; light mode remains at 80%. */
:root[data-theme=dark] .book-art{background:rgba(233,233,220,.1)}
:root[data-theme=dark] .book-art.tone-1{background:rgba(229,233,228,.1)}
:root[data-theme=dark] .book-art.tone-2{background:rgba(239,228,213,.1)}
:root[data-theme=dark] .book-art.tone-3{background:rgba(232,226,224,.1)}
