@font-face{font-family:Merriweather;src:url(merriweather.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
/* Local system fonts, no CDN, mobile first and accessible keyboard focus. */
:root{--ink:#151515;--muted:#536573;--brand:#123258;--accent:#007c96;--line:#dce4e8;--paper:#fff;--bg:#f5f7f8;--tint:#e8f1f7;--radius:14px;color-scheme:light;font-family:Arial,"Segoe UI",sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c27b14;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:2.15rem;line-height:1.22;letter-spacing:-.055rem;margin-bottom:15px;font-weight:700}h2{font-size:1.15rem;line-height:1.4}h3{font-size:1.125rem;line-height:1.45}p{margin-bottom:1rem}svg,img{flex-shrink:0}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;background:var(--paper);gap:60px}.brand{display:flex;align-items:center;gap:11px;line-height:1.05;font-weight:800;letter-spacing:.02em;font-size:1.23rem}.brand-si{font-weight:400;color:var(--accent)}.brand small{display:block;margin-top:6px;font-size:.625rem;letter-spacing:.17em;font-weight:600;color:var(--muted)}.topbar nav{align-self:stretch;display:flex;gap:28px;align-items:stretch}.topbar nav a{display:flex;align-items:center;border-bottom:3px solid transparent;padding:3px 0 0;font-size:.93rem;color:var(--muted)}.topbar nav a.active{border-color:var(--accent);font-weight:600;color:var(--ink)}.author{margin-left:auto;color:var(--muted);font-size:.82rem;display:flex;gap:4px}.author strong{color:var(--ink);font-weight:600}.app-shell{display:grid;grid-template-columns:274px minmax(0,1fr);max-width:1680px;margin:auto}.sidebar{padding:34px 20px 20px;background:#fafbfc;border-right:1px solid var(--line);min-height:calc(100vh - 88px)}.eyebrow{font-size:.73rem;letter-spacing:.13em;font-weight:700;color:var(--accent);margin-bottom:19px}.sidebar .eyebrow{margin-left:12px;color:#71818e;font-size:.68rem;margin-bottom:14px}.category-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:45px;padding:9px 11px;margin:3px 0;border-radius:9px;font-size:.85rem;line-height:1.3}.category-link>span:first-child{display:flex;align-items:center;gap:10px}.category-link:hover{background:#eef3f3}.category-link.selected{background:var(--tint);color:#123258;font-weight:700}.count{font-variant-numeric:tabular-nums;font-size:.75rem;color:#627381}.cat-dot{display:none}.sidebar-note{margin:31px 9px 0;padding:24px 1px 0;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}.sidebar-note strong{display:block;font-size:.93rem;color:var(--ink);margin:10px 0 6px}.sidebar-note p{line-height:1.6;margin-bottom:9px}.sidebar-note a{color:var(--accent);font-weight:600}.book-mark{font-family:Georgia,serif;font-style:italic;font-size:2rem;font-weight:bold;color:var(--accent);line-height:1}main{padding:40px 5.1% 24px;min-width:0;max-width:1350px}.search-area{padding:4px 0 27px;border-bottom:1px solid var(--line);margin-bottom:28px}.search-area .eyebrow{margin-bottom:10px}.search-intro{color:var(--muted);margin-bottom:25px}.search-form{position:relative}.search-box{display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid #91adae;box-shadow:0 6px 18px #16384906;border-radius:12px;padding:9px 10px 9px 18px;min-width:0}.search-box svg{color:var(--accent)}.search-box input{border:0;background:transparent;width:100%;min-width:0;outline:none;font-size:1rem;padding:10px 0;color:var(--ink)}.search-box:focus-within{box-shadow:0 0 0 3px #15917b20;border-color:var(--accent)}input::placeholder{color:#718089}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--brand);border:1px solid var(--brand);color:white;border-radius:8px;padding:11px 20px;white-space:nowrap;min-height:46px;font-size:.94rem;font-weight:600}.button:hover{background:#1B365D;color:white}.search-options{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap;font-size:.78rem;color:var(--muted)}.search-options>span{margin-right:auto}.search-options label{font-weight:600}.search-options select{max-width:255px;font-size:.79rem;padding:8px 30px 8px 9px;background:white;border:1px solid var(--line);border-radius:6px;color:var(--ink)}.search-options .mobile-category{display:none}.filter-button{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:white;color:var(--ink);font-size:.79rem}.examples{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:23px;font-size:.8rem}.examples>span{color:var(--muted);margin-right:3px}.examples a{border:1px solid var(--line);border-radius:20px;padding:5px 10px;background:var(--paper);color:#465e6e}.examples a span{margin-left:8px;color:var(--accent)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:17px}.section-heading h2{margin:0;font-weight:650}.section-heading p{margin:0;font-size:.84rem;color:var(--muted)}.section-heading a{font-size:.875rem;color:var(--accent)}.timing{font-size:.76rem}.result-list{display:grid;gap:14px}.result-card{padding:23px 25px 20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .16s}.result-card:hover{border-color:#9db8bb}.result-meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap;font-size:.76rem;color:var(--muted);margin-bottom:10px}.tag{display:inline-flex;align-items:center;border-radius:5px;background:#edf4f2;color:#21685f;padding:3px 8px;font-size:.74rem;font-weight:600;line-height:1.45}.result-card h3{margin:0 0 10px;font-weight:650;overflow-wrap:anywhere}.result-card h3 a{display:flex;justify-content:space-between;gap:15px}.result-arrow{font-size:1.4rem;color:var(--accent);font-weight:400}.result-card>p{font-size:.925rem;color:var(--muted);line-height:1.65;margin:0 0 11px}.read-answer{font-size:.79rem;font-weight:650;color:var(--accent)}.read-answer span{margin-left:7px}.query-label{font-size:.92rem;color:var(--muted);overflow-wrap:anywhere}.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}.active-filters a{font-size:.78rem;color:var(--muted);text-decoration:underline}.notice{font-size:.9rem;background:#edf3f6;border:1px solid #dce7ec;padding:14px 17px;border-radius:9px;margin:18px 0;color:#314e60}.pagination{display:flex;justify-content:center;align-items:center;gap:30px;padding:26px 0;font-size:.875rem}.pagination a{padding:8px 12px;background:white;border:1px solid var(--line);border-radius:7px}.pagination span{color:var(--muted)}.empty{text-align:center;padding:52px 22px;border:1px dashed #b5c5ce;border-radius:var(--radius);background:white}.empty p{max-width:570px;margin:10px auto 22px;color:var(--muted)}.empty-icon{width:47px;height:47px;border-radius:50%;background:var(--tint);color:var(--accent);font-size:1.7rem;margin:0 auto 15px}.page-footer{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:20px;margin-top:38px;color:var(--muted);font-size:.73rem}.back-link{display:inline-block;color:var(--muted);margin-bottom:22px;font-size:.87rem}.answer-detail{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:33px 38px}.answer-detail h1{font-size:1.9rem;line-height:1.35;overflow-wrap:anywhere}.answer-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.quiet-button{background:none;border:1px solid var(--line);color:var(--muted);padding:7px 13px;border-radius:7px;font-size:.8rem}.answer-attribution{font-size:.875rem;color:var(--muted);padding-bottom:23px;border-bottom:1px solid var(--line)}.answer-body{font-size:1rem;line-height:1.85;overflow-wrap:anywhere;margin:28px 0 35px}.answer-body p{margin-bottom:1.15em}.answer-body ul{padding-left:24px}.answer-body li{padding-left:4px;margin-bottom:10px}.citation{border-top:1px solid var(--line);padding-top:23px;line-height:1.55}.citation .eyebrow{margin-bottom:10px;font-size:.68rem}.citation p{font-size:.875rem;margin:8px 0;color:var(--muted)}.citation span{font-size:.77rem;color:var(--muted);display:block}.citation a{font-size:.84rem;color:var(--accent);display:inline-block;margin-top:13px}.related{margin-top:30px}.related-link{display:flex;justify-content:space-between;gap:22px;padding:16px 0;border-bottom:1px solid var(--line);font-size:.9rem}.related-link span{color:var(--accent)}.page-heading p:not(.eyebrow){color:var(--muted)}.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:26px}.source-card{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white;min-width:0}.cover-spine{width:115px;min-width:115px;padding:20px 11px;background:var(--brand);border-left:6px solid #285a6c;color:white;display:flex;flex-direction:column;gap:20px;font-size:.58rem}.cover-spine b{font-size:.95rem;line-height:1.4;flex-grow:1;font-family:Georgia,serif}.cover-spine small{font-size:.5rem;letter-spacing:.04em}.source-info{padding:20px 17px;min-width:0}.source-info h2{font-size:1rem;line-height:1.4;margin:12px 0 8px}.source-info p{font-size:.85rem;color:var(--muted);margin-bottom:12px}.text-link{font-size:.81rem;font-weight:600;color:var(--accent);display:block}.source-external{display:block;font-size:.72rem;color:var(--muted);margin-top:12px}.suggestions{position:absolute;z-index:10;left:0;right:0;top:72px;background:white;box-shadow:0 12px 35px #153a5224;border:1px solid var(--line);border-radius:10px;padding:9px}.suggestions[hidden]{display:none}.suggestions-label{font-size:.73rem;color:var(--muted);padding:5px 10px;margin:0}.suggestions a{display:block;padding:12px 10px;border-radius:6px;font-size:.875rem}.suggestions a:hover,.suggestions a:focus{background:var(--tint)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:15px;background:white;padding:12px;z-index:50}.skip:focus{top:10px}
@media(min-width:1600px){main{padding-left:75px;padding-right:75px}}
@media(max-width:1150px){.author{display:none}.topbar{gap:48px}.app-shell{grid-template-columns:245px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}main{padding:32px}.source-grid{grid-template-columns:1fr}.search-options>span{width:100%;margin-bottom:3px}.search-box input::placeholder{font-size:.88rem}}
@media(max-width:800px){.topbar{height:77px;padding:0 20px;gap:20px;justify-content:space-between}.topbar nav{gap:18px}.topbar nav a{font-size:.85rem}.brand{font-size:1.05rem}.brand small{font-size:.54rem}.brand img{width:31px;height:31px}.app-shell{display:block}.sidebar{display:none}main{padding:28px 20px}.search-options .mobile-category{display:inline-block}.search-options label.mobile-category{margin-left:0}.search-options select{max-width:230px}.search-options label{font-size:.79rem}h1{font-size:1.85rem}.search-intro{font-size:.95rem}.search-box{gap:9px;padding:7px 8px 7px 11px}.search-box svg{width:20px}.search-box .button{padding:10px 13px;font-size:.86rem;gap:9px}.search-box .button span{display:none}.search-box input{font-size:1rem;min-height:45px}.examples{gap:7px}.result-card{padding:19px 18px}.result-card h3{font-size:1.05rem}.answer-detail{padding:24px}.answer-detail h1{font-size:1.6rem}.page-footer{flex-direction:column;gap:4px}.source-grid{gap:15px}.answer-body{line-height:1.8}}
@media(max-width:480px){.topbar{padding:0 15px;gap:12px}.topbar nav{gap:13px}.brand{gap:7px}.topbar nav a{font-size:.8rem}main{padding:25px 15px}.search-box{flex-wrap:wrap}.search-box input{flex:1;min-width:100px}.search-box .button{width:100%;min-height:42px}.search-options{gap:8px}.search-options label{width:63px}.search-options select{width:calc(100% - 75px);max-width:none}.search-options .filter-button{margin-left:auto}.suggestions{top:112px}.examples>span{width:100%}.section-heading{align-items:flex-start}.section-heading h2{font-size:1.02rem}.section-heading p{white-space:nowrap}.timing{display:none}.pagination{gap:12px;font-size:.8rem}.pagination a{padding:8px}.answer-detail{padding:22px 18px}.cover-spine{width:98px;min-width:98px}.source-info{padding:18px 13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.topbar,.sidebar,.back-link,.quiet-button,.related,.page-footer,.search-area,.pagination,.skip{display:none!important}.app-shell{display:block}main{padding:0}.answer-detail{border:0;padding:0}.answer-body{font-size:11pt}.answer-detail h1{font-size:19pt}.citation{break-inside:avoid}a[href]::after{content:" (" attr(href) ")";font-size:9pt}.answer-top a::after{content:""}body{background:white}}

/* Contrast and text enlargement corrections verified by accessibility tests. */
.sidebar .eyebrow{color:#536573}.count{color:#536573}.selected .count{color:#123258}.category-link{font-size:.875rem}
@media(max-width:800px){.topbar{height:auto;min-height:77px;flex-wrap:wrap;padding-top:15px;padding-bottom:0;row-gap:0}.topbar .brand{margin-bottom:13px}.topbar nav{min-height:46px}.topbar nav a{padding-top:0}.search-options select{min-width:0}.section-heading{flex-wrap:wrap}.pagination{flex-wrap:wrap}}
h1{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:480px){.search-options label{width:auto;min-width:63px}.search-options select{flex:1 1 200px;width:auto;max-width:100%}}
@media(max-width:480px){.search-options{display:grid;grid-template-columns:max-content minmax(0,1fr)}.search-options>span{grid-column:1/-1}.search-options label{min-width:0;width:auto}.search-options select{width:100%;max-width:100%}.search-options .filter-button{grid-column:2;justify-self:end}}

/* Identity from dynamap.fr: official lighthouse logo, navy, cyan, Merriweather headings. */
h1{font-family:Merriweather,Georgia,serif;font-weight:400;letter-spacing:-.035em;color:#123258}.topbar{min-height:104px;height:auto;gap:30px}.official-logo{width:70px;height:82px;object-fit:contain}.brand{gap:14px;max-width:270px}.brand small{max-width:150px;line-height:1.6}.sidebar{min-height:calc(100vh - 104px)}.author{flex-wrap:wrap}.row-actions{display:flex;align-items:center;gap:17px;flex-wrap:wrap}.row-actions a{font-weight:600;color:var(--brand);font-size:.875rem}.row-actions a:hover{text-decoration:underline}.admin-main{max-width:1150px;margin:auto;padding:38px 32px}.admin-main .page-heading{margin-bottom:18px}.admin-notice{font-size:.875rem;color:var(--muted);padding:13px 17px;background:#e8f1f7;border-left:3px solid #007c96;border-radius:4px}.admin-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:25px 0}.admin-tabs a{padding:9px 0;font-weight:600}.admin-tabs a[aria-current]{border-bottom:3px solid var(--accent);color:var(--brand)}.admin-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;margin:20px 0}.admin-toolbar h2{margin:0}.admin-search{margin-bottom:24px}.admin-search>div{display:flex;align-items:center;gap:14px}.admin-search label{display:block;margin-bottom:8px;font-size:.875rem;font-weight:600}.admin-search input{flex:1;min-width:0}.admin-search input,.edit-form input,.edit-form select,.edit-form textarea{border:1px solid #8c9da9;border-radius:7px;background:white;color:var(--ink);padding:11px 13px;font:inherit;max-width:100%}.admin-list{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;border-bottom:1px solid var(--line)}.admin-row:last-child{border:0}.admin-row>div:first-child{min-width:0;flex:1}.admin-row h3{font-size:1rem;overflow-wrap:anywhere;margin:0 0 6px}.admin-row p{margin:0;font-size:.8rem;color:var(--muted)}.admin-row .row-actions{flex-shrink:0}.row-actions .delete-link{color:#a32926}.edit-form,.delete-panel{padding:28px;background:white;border:1px solid var(--line);border-radius:12px}.edit-form label{display:block;font-weight:600;margin:23px 0 7px}.edit-form label:first-of-type{margin-top:0}.edit-form label span{font-weight:400;font-size:.8rem;color:var(--muted)}.edit-form input:not([type=hidden]),.edit-form textarea,.edit-form select{display:block;width:100%}.edit-form textarea{resize:vertical;line-height:1.6}.edit-form small{display:block;color:var(--muted);font-size:.8rem;margin-top:6px}.edit-form .notice{margin-top:20px}.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:17px;margin-top:25px}.form-error,.form-success{padding:15px 18px;border-radius:8px;border:1px solid #bdd0df;background:#edf4f9;margin:20px 0}.form-error{background:#fff0ef;border-color:#dcaba6;color:#8f251d}.danger{background:#a32926;border-color:#a32926}.danger:hover{background:#801c1a}.form-success{color:#174f43;background:#e9f6f1}.edit-form textarea:focus-visible{outline:3px solid #c27b14;outline-offset:3px}
@media(max-width:1050px){.topbar{gap:20px}.author{display:none}}
@media(max-width:800px){.topbar .brand{margin-bottom:4px}.topbar{padding-top:8px;gap:15px}.topbar nav{gap:22px;flex-wrap:wrap}.brand small{max-width:135px}.admin-row{flex-wrap:wrap;gap:12px}.admin-row>div:first-child{flex-basis:100%}.admin-main{padding:25px 20px}}
@media(max-width:480px){.topbar{gap:0}.topbar nav{width:100%;justify-content:space-between;gap:12px}.official-logo{height:74px;width:65px}.brand small{max-width:none}.admin-main{padding:24px 16px}.admin-toolbar{align-items:flex-start;flex-direction:column}.admin-search>div{flex-wrap:wrap}.admin-search input{flex-basis:100%}.admin-tabs{gap:18px;font-size:.9rem}.edit-form,.delete-panel{padding:20px 16px}.admin-row{padding:18px}.answer-top{flex-wrap:wrap;gap:15px}}

.topbar .brand .official-logo{width:70px;height:82px}@media(max-width:480px){.topbar .brand .official-logo{width:60px;height:70px}}

.cover-spine{background:linear-gradient(145deg,#123258,#071430)}

/* Fully visible book panels: do not clip long titles or impose a cover height. */
.source-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,450px),1fr));align-items:stretch}.source-card{display:grid;grid-template-columns:minmax(145px,36%) minmax(0,1fr);overflow:visible}.cover-spine{width:auto;min-width:0;max-width:100%;height:auto;min-height:240px;padding:22px 16px;gap:20px;border-radius:11px 0 0 11px;overflow:visible;overflow-wrap:anywhere;hyphens:auto}.cover-spine b{font-size:1.05rem;line-height:1.5;min-width:0;flex-grow:1;white-space:normal;overflow-wrap:anywhere}.cover-spine small{font-size:.65rem;line-height:1.6}.cover-spine span{font-size:.7rem;line-height:1.5}.source-info{overflow-wrap:anywhere;hyphens:auto;min-width:0}.source-info h2{font-size:1.1rem}.button{white-space:normal;text-align:center;max-width:100%;overflow-wrap:anywhere}.category-link>span:first-child{min-width:0;overflow-wrap:anywhere}.count{flex-shrink:0}.notice,.admin-notice,.form-error,.citation,.related-link,.tag{overflow-wrap:anywhere;min-width:0}.login-main{max-width:580px;margin:45px auto;padding:25px}.login-main h1{font-size:1.9rem}.login-brand{display:block;margin-bottom:24px}.login-brand img{object-fit:contain}.logout-form{margin-left:auto}.topbar{flex-wrap:wrap}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:7px 10px;list-style:none;padding:0;margin:0 0 24px;font-size:.8rem;color:var(--muted)}.breadcrumbs li{min-width:0;overflow-wrap:anywhere}.breadcrumbs li+li::before{content:'›';margin-right:10px}.breadcrumbs a{text-decoration:underline}
@media(max-width:480px){.source-card{grid-template-columns:minmax(0,1fr)}.cover-spine{min-height:0;border-radius:11px 11px 0 0;gap:14px;padding:22px}.cover-spine b{font-size:1.22rem}.source-info{padding:22px}.logout-form{margin:8px 0 12px}.login-main{margin:15px auto;padding:22px 16px}}

.search-box .button{flex-shrink:0}

/* Public book references remain readable at narrow widths and with enlarged text. */
.book-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;margin-top:16px}.book-links a{display:block;max-width:100%;margin:0;overflow-wrap:anywhere;hyphens:auto;line-height:1.6}.book-links .amazon-link{color:var(--navy,#123258);font-size:.88rem;text-decoration:underline;text-underline-offset:3px}.book-links a:hover{text-decoration-thickness:2px}
