/* --------------------------------------------------
  LivingCanon – Contemporary Bookish Theme
   Palette: muted paper background, ink headers, accent link color.
   -------------------------------------------------- */

:root {
  --font-serif: "Literata", "Merriweather", Georgia, serif;
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: "Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --color-bg: #f7f5f1;
  --color-bg-alt: #f0ede7;
  --color-paper-edge: #e3dfd8;
  --color-text: #2d2a27;
  --color-text-soft: #5d564f;
  --color-accent: #6c4cff; /* slightly softer violet */
  --color-accent-hover: #5133d4; /* deeper on hover */
  --color-accent-soft: #e4dcff;
  --color-ink-bar: #6b57ff; /* lighter, match links */
  --color-border: #d3cdc4;
  --color-border-strong: #b8b0a5;
  --color-highlight: #fff7d1;
  --shadow-soft: 0 2px 4px -1px rgba(30,20,10,0.08), 0 4px 18px -4px rgba(30,20,10,0.06);
  --radius-s: 4px;
  --radius-m: 8px;
  --radius-l: 14px;
  --transition: 140ms cubic-bezier(.4,.2,.2,1);
}

html { font-size: 17px; -webkit-font-smoothing: antialiased; }
@media (min-width: 880px) { html { font-size: 18px; } }

body {
  font-family: var(--font-serif);
  line-height: 1.6;
  background: var(--color-bg);
  color: var(--color-text);
  margin: 0;
  padding: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Layout envelope */
.site-wrap {
  width: 100%;
  max-width: 58rem;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem) 2.5rem;
  flex: 1 0 auto;
}

header.site-header {
  padding: 1.4rem 0 1.2rem;
  position: relative;
  border-bottom: 0; /* remove line under header */
}
header.site-header:before {
  content: none;
}

header.site-header h1 { font-size: 1.82rem; margin: 0; letter-spacing: -0.3px; font-weight: 650; font-family: var(--font-sans); }
header.site-header h1 a { text-decoration:none; color: var(--color-text); position:relative; padding-left:.6rem; border-left:3px solid var(--color-ink-bar); }
header.site-header h1 a:hover { color: var(--color-accent); }

.tagline { display:none; }

.site-nav { margin:.3rem 0 1rem; font-family: var(--font-sans); font-size:.8rem; letter-spacing:.6px; display:flex; gap:.65rem; align-items:center; }
.site-nav a { color: var(--color-text-soft); text-decoration:none; padding:.25rem .55rem .25rem .8rem; border-radius: var(--radius-s); line-height:1.2; border-left:3px solid transparent; transition: color var(--transition), border-color var(--transition); }
.site-nav a:hover { color: var(--color-accent-hover); border-left-color: var(--color-accent); }
.site-nav a:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; border-left-color: var(--color-accent); }

/* Subtle divider (hidden per design) */
.divider { display:none; }

main { width: 100%; }

footer.site-footer { margin-top: 3rem; padding: 2.5rem 0 3rem; font-family: var(--font-sans); font-size: 0.8rem; color: var(--color-text-soft); }
footer.site-footer a { color: var(--color-text-soft); text-decoration:none; padding:.1rem .2rem .1rem .6rem; border-left:3px solid transparent; transition: color var(--transition), border-color var(--transition); }
footer.site-footer a:hover { color: var(--color-accent-hover); border-left-color: var(--color-accent); }
footer.site-footer a:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; border-left-color: var(--color-accent); }

h1, h2, h3, h4 { line-height: 1.25; font-weight:600; }
h2 { margin-top: 2.2rem; }
h3 { margin-top: 1.8rem; }

p { margin: 0 0 1.05rem; }
ul, ol { padding-left: 1.3rem; margin: 0 0 1.05rem; }
li { margin: .2rem 0; }

a { color: var(--color-accent); text-decoration: none; transition: color var(--transition), text-decoration-color var(--transition); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--color-accent-hover); text-decoration: underline; }
a:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; border-radius: 2px; }

code, pre { font-family: var(--font-mono); font-size: .92em; background: var(--color-bg-alt); }
code { padding: .15em .4em; border-radius: var(--radius-s); }
pre { padding: .85rem 1rem; overflow-x: auto; border: 1px solid var(--color-paper-edge); border-radius: var(--radius-m); }
pre code { padding: 0; background: transparent; }

blockquote { margin: 1.6rem 0; padding: .75rem 1rem .75rem 1.1rem; border-left: 4px solid var(--color-accent); background: var(--color-accent-soft); border-radius: 0 var(--radius-m) var(--radius-m) 0; font-style: italic; }

hr { border: 0; height: 1px; background: linear-gradient(90deg, var(--color-paper-edge), var(--color-border)); margin: 2.4rem 0; }

.small { color: var(--color-text-soft); font-size: 0.78rem; letter-spacing: .3px; }

/* Award list grid */
.award-year-group { margin: 2.4rem 0 2.8rem; position: relative; }
.award-year-group:first-of-type { margin-top: 1.2rem; }
.award-year-heading { font-size: 1.35rem; font-weight: 650; margin: 0 0 0.75rem; letter-spacing: -.3px; display:flex; align-items:center; gap:.6rem; }
.award-year-heading .year-pill { font-size:.65rem; text-transform:uppercase; background: var(--color-accent-soft); color: var(--color-accent-hover); padding:.35rem .55rem; border-radius: 999px; font-family: var(--font-sans); letter-spacing: .8px; }

.works-list { list-style: none; margin: 0; padding:0; display:grid; gap:.55rem; }
@media (min-width: 620px){ .works-list { grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); } }

.work-card { background: #fff; border: 1px solid var(--color-paper-edge); padding:.85rem .95rem 1rem; border-radius: var(--radius-m); position:relative; display:flex; flex-direction:column; gap:.35rem; box-shadow: var(--shadow-soft); transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition); }
.work-card:hover { border-color: var(--color-border-strong); transform: translateY(-2px); box-shadow: 0 4px 10px -2px rgba(30,20,10,0.12), 0 10px 28px -6px rgba(30,20,10,0.09); }
.work-title { font-size: .95rem; font-weight:600; line-height:1.35; }
.work-title a { color: var(--color-text); text-decoration: none; position:relative; padding-left:.55rem; border-left:3px solid var(--color-ink-bar); transition: color var(--transition), border-color var(--transition); }
.work-title a:hover { color: var(--color-accent-hover); border-left-color: var(--color-accent); }
.work-title a:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; border-left-color: var(--color-accent); }
.work-title .no-link { color: var(--color-text-soft); padding-left:.55rem; border-left:3px solid transparent; }
.work-author { font-size:.8rem; color: var(--color-text-soft); letter-spacing:.25px; }
.work-meta { margin-top:auto; font-size:.7rem; text-transform:uppercase; letter-spacing:.9px; color: var(--color-text-soft); font-family: var(--font-sans); display:flex; gap:.6rem; flex-wrap:wrap; }

/* Inline badges */
.badge { display:inline-block; font-size:.62rem; font-family: var(--font-sans); text-transform:uppercase; letter-spacing:.9px; padding:.35rem .55rem; border-radius: 999px; background: var(--color-bg-alt); color: var(--color-text-soft); }
.badge-accent { background: var(--color-accent); color:#fff; }

/* Latest post teaser */
.latest-post { background: #fff; border:1px solid var(--color-paper-edge); padding: .8rem 1.15rem .95rem; border-radius: var(--radius-m); box-shadow: var(--shadow-soft); display:flex; flex-direction:column; gap:.4rem; margin-bottom: 1.1rem; }
.latest-post h2 { font-size: .78rem; margin:0; font-weight:600; text-transform:uppercase; letter-spacing:1.1px; font-family: var(--font-sans); color: var(--color-accent-hover); opacity:.9; }
.latest-post h2 a { color: inherit; text-decoration:none; position:relative; padding-left:.6rem; border-left:3px solid var(--color-ink-bar); }
.latest-post h2 a:hover { color: var(--color-accent); border-left-color: var(--color-accent); }
.latest-post p { margin:0; font-size:.9rem; }

/* Tables (if any) */
table { width:100%; border-collapse: collapse; margin: 1.8rem 0; font-size:.9rem; }
th, td { padding: .55rem .7rem; border-bottom:1px solid var(--color-paper-edge); text-align:left; }
th { font-family: var(--font-sans); font-size:.7rem; text-transform:uppercase; letter-spacing:1px; color: var(--color-text-soft); }
tbody tr:hover { background: var(--color-accent-soft); }

/* Responsive tweaks */
@media (max-width:640px){
  header.site-header h1 { font-size: 1.52rem; }
  .site-wrap { padding-bottom: 2.5rem; }
  .work-card { padding:.8rem .85rem .9rem; }
}

/* Print adjustments */
@media print {
  body { background:#fff; }
  .work-card { box-shadow:none; }
  a { color: #000; text-decoration: underline; }
  header.site-header:before, .divider { display:none; }
}

/* Utility */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }

/* ---------------- Home / Faceted Browse Enhancements ---------------- */
.home-layout { display:flex; gap:2.2rem; align-items:flex-start; }
@media (max-width: 900px){ .home-layout { flex-direction:column; gap:1.75rem; } }
.home-sidebar { flex:0 0 300px; position:sticky; top:1.2rem; align-self:flex-start; padding:1rem 1.2rem 1.6rem; background:#fff; border:1px solid var(--color-paper-edge); border-radius: var(--radius-l); box-shadow: var(--shadow-soft); box-sizing: border-box; height: calc(100dvh - 2.4rem); overflow:auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
@media (max-width:900px){ .home-sidebar { width:100%; position:static; height:auto; max-height:none; overflow:visible; } }
.home-sidebar .filters { font-family: var(--font-sans); }
.home-sidebar details { background:#fff; border:1px solid var(--color-paper-edge); border-radius: var(--radius-m); padding:.55rem .7rem .65rem; margin:.55rem 0; box-shadow: 0 1px 2px rgba(30,20,10,.04); }
.home-sidebar details[open] { background:linear-gradient(90deg,#fff,#fbfaf8); }
.home-sidebar summary { list-style:none; font-weight:600; font-size:.85rem; letter-spacing:.4px; display:flex; align-items:center; gap:.4rem; }
.home-sidebar summary::-webkit-details-marker { display:none; }
.home-sidebar fieldset { border:0; padding:0; margin:0 0 1.1rem; }
.home-sidebar legend { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--color-text-soft); margin-bottom:.4rem; }
.home-sidebar label { font-size:.78rem; letter-spacing:.25px; cursor:pointer; }
.home-sidebar input[type=checkbox] { transform: translateY(1px); }
.home-sidebar .muted { font-size:.7rem; line-height:1.3; }

.home-main h2 { font-size:1.05rem; font-weight:700; text-transform:uppercase; letter-spacing:1.2px; color:var(--color-text-soft); margin-top:.2rem; }
.results { list-style:none; padding:0; margin:1rem 0 2.5rem; display:grid; gap:.6rem; }
@media (min-width:700px){ .results { grid-template-columns: repeat(auto-fill,minmax(340px,1fr)); } }
.results li { background:#fff; border:1px solid var(--color-paper-edge); padding:.65rem .8rem .75rem; border-radius: var(--radius-m); box-shadow: var(--shadow-soft); font-size:.83rem; line-height:1.4; display:flex; flex-direction:column; gap:.25rem; position:relative; }
.results li:hover { border-color: var(--color-border-strong); }
.results li a { color: var(--color-text); text-decoration:none; }
.results li a:hover { color: var(--color-accent-hover); }
.results li .muted { font-size:.65rem; letter-spacing:.8px; text-transform:uppercase; color:var(--color-text-soft); display:block; }

/* Emphasize title-only link in results */
/* New meta-line under each result */
.meta-line { margin-top:.15rem; font-size:.74rem; color: var(--color-text-soft); letter-spacing:.25px; display:flex; gap:.45rem; align-items:center; flex-wrap:wrap; }
.results .meta-line a { color: var(--color-accent); text-decoration: none; }
.results .meta-line a:hover { color: var(--color-accent-hover); text-decoration: underline; }
.results .meta-line a:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; }
.meta-line .dot { color: var(--color-text-soft); opacity:.7; }
.results .result-title { font-weight:650; color: var(--color-text); text-decoration: none; }
.results .result-title--link { position:relative; cursor:pointer; }
.results .result-title--link { color: var(--color-accent); }
.results .result-title--link:hover { color: var(--color-accent-hover); }
.results .result-title--link:focus { outline: 2px solid var(--color-accent-soft); outline-offset: 2px; }
.results .result-title--link::before { content:""; position:absolute; left:-0.55rem; top:0.1em; width:3px; height:1.1em; background: var(--color-ink-bar); border-radius:2px; }
.results .result-title--link:hover::before, .results .result-title--link:focus::before { background: var(--color-accent); }
.results .result-title--plain { color: var(--color-text-soft); }
.results .result-author { color: var(--color-text-soft); }

/* Dual thumb range slider refined */
.range-dual { --thumb-size:18px; position:relative; height:40px; }
.range-track { position:absolute; left:0; right:0; top:50%; height:6px; margin-top:-3px; background:var(--color-bg-alt); border-radius:3px; }
.range-fill { position:absolute; top:50%; height:6px; margin-top:-3px; background:var(--color-accent); border-radius:3px; opacity:.4; }
.range-dual input[type=range]{ position:absolute; inset:0; width:100%; background:transparent; pointer-events:none; -webkit-appearance:none; appearance:none; margin:0; }
.range-dual input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:var(--thumb-size); height:var(--thumb-size); background:var(--color-accent); border-radius:50%; border:2px solid #fff; box-shadow:0 1px 3px rgba(0,0,0,.25); pointer-events:auto; cursor:pointer; }
.range-dual input[type=range]::-moz-range-thumb { width:var(--thumb-size); height:var(--thumb-size); background:var(--color-accent); border-radius:50%; border:2px solid #fff; box-shadow:0 1px 3px rgba(0,0,0,.25); pointer-events:auto; cursor:pointer; }
.range-dual input[type=range]:focus-visible { outline:none; }
.range-dual input[type=range]:focus-visible::-webkit-slider-thumb { box-shadow:0 0 0 3px var(--color-accent-soft); }

