/* Warm paper in daylight; charcoal, copper and sage after dark. */
:root {
  color-scheme: light;
  --ink: #172033; --muted: #5e6574; --clay: #94432a; --clay-dark: #74351e;
  --sage: #526747; --line: #ded7cb; --paper: #fffdf8; --cream: #fff7e8; --sky: #ddeaf2;
  --page-bg: #faf7f1; --page-end: #fff; --raised: #fff; --secondary-text: #454e60;
  --header-bg: rgba(250,247,241,.94); --field-bg: #fffdf8; --field-border: #8a8175;
  --button-bg: #94432a; --button-text: #fff; --button-hover: #74351e;
  --nav-action-bg: #172033; --nav-action-text: #fff;
  --path-top: #fff; --feature-start: #172033; --feature-end: #27324a;
  --glow-gold: rgba(216,164,72,.16); --glow-sage: rgba(117,139,102,.12);
  --notice-bg: #fff7df; --notice-border: #dac38d;
  --shadow-soft: 0 18px 50px rgba(23,32,51,.07); --shadow-strong: 0 28px 80px rgba(23,32,51,.14);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f4eee4; --muted: #b6becc; --clay: #efb498; --clay-dark: #ffcfb3;
  --sage: #acbf97; --line: #34404e; --paper: #1a222e; --cream: #242923; --sky: #263448;
  --page-bg: #10151d; --page-end: #10151d; --raised: #222d3b; --secondary-text: #d8dde7;
  --header-bg: rgba(16,21,29,.94); --field-bg: #151d28; --field-border: #65758b;
  --button-bg: #e9a783; --button-text: #151b23; --button-hover: #f2bd9e;
  --nav-action-bg: #e9cbb5; --nav-action-text: #191f28;
  --path-top: #222d3b; --feature-start: #202d3c; --feature-end: #1a2633;
  --glow-gold: rgba(170,112,54,.08); --glow-sage: rgba(105,130,100,.07);
  --notice-bg: #2c2b20; --notice-border: #70603b;
  --shadow-soft: 0 18px 50px rgba(0,0,0,.16); --shadow-strong: 0 28px 80px rgba(0,0,0,.3);
}
/* System fallback also works when JavaScript is unavailable. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --ink: #f4eee4; --muted: #b6becc; --clay: #efb498; --clay-dark: #ffcfb3;
    --sage: #acbf97; --line: #34404e; --paper: #1a222e; --cream: #242923; --sky: #263448;
    --page-bg: #10151d; --page-end: #10151d; --raised: #222d3b; --secondary-text: #d8dde7;
    --header-bg: rgba(16,21,29,.94); --field-bg: #151d28; --field-border: #65758b;
    --button-bg: #e9a783; --button-text: #151b23; --button-hover: #f2bd9e;
    --nav-action-bg: #e9cbb5; --nav-action-text: #191f28;
    --path-top: #222d3b; --feature-start: #202d3c; --feature-end: #1a2633;
    --glow-gold: rgba(170,112,54,.08); --glow-sage: rgba(105,130,100,.07);
    --notice-bg: #2c2b20; --notice-border: #70603b;
    --shadow-soft: 0 18px 50px rgba(0,0,0,.16); --shadow-strong: 0 28px 80px rgba(0,0,0,.3);
  }
}
html { background: var(--page-bg); accent-color: var(--clay); }
body { background: radial-gradient(circle at 12% 8%,var(--glow-gold),transparent 28rem),radial-gradient(circle at 88% 14%,var(--glow-sage),transparent 26rem),linear-gradient(180deg,var(--page-bg),var(--page-end) 42rem); color: var(--ink); }
::selection { background: var(--clay); color: var(--page-bg); }
.site-header { background: var(--header-bg); border-color: var(--line); }
.brand,.nav-links a { color: var(--ink); }
.nav-links a:hover,.nav-links a:focus { background: var(--raised); }
.nav-links a:last-child { background: var(--nav-action-bg); color: var(--nav-action-text); }
.nav-links a:last-child:hover { background: var(--button-bg); color: var(--button-text); }
.lead { color: var(--secondary-text); }
.button.primary { background: var(--button-bg); color: var(--button-text); box-shadow: 0 12px 30px rgba(159,77,47,.16); }
.button.primary:hover { background: var(--button-hover); }
.button.secondary,.quote-card,.recent-item,.skip:focus { background: var(--raised); color: var(--ink); border-color: var(--line); }
.portrait-card { background: linear-gradient(145deg,var(--raised),var(--sky)); border-color: var(--line); }
.chip { background: var(--raised); color: var(--secondary-text); }
.value-card,.story-card,.panel { background: var(--paper); border-color: var(--line); }
.path-card { background: linear-gradient(180deg,var(--path-top),var(--paper)); }
.story-card.featured,.band { background: linear-gradient(135deg,var(--feature-start),var(--feature-end)); color: #fffdf8; }
.story-card.featured a,.story-card.featured .meta { color: #fffdf8; }
.story-card.featured p,.band p,.band li { color: #dbe1ea; }
.story-card.featured .button.secondary { background: #fffdf8; color: #172033; border-color: #fffdf8; }
.small { color: var(--muted); }
.notice { background: var(--notice-bg); border-color: var(--notice-border); }
.contact-form input,.contact-form textarea,.contact-form select,.newsletter-form input,.private-login input {
  background: var(--field-bg); color: var(--ink); border-color: var(--field-border); box-shadow: none; caret-color: var(--clay);
}
input::placeholder,textarea::placeholder { color: var(--muted); opacity: 1; }
.newsletter-card { background: linear-gradient(180deg,var(--paper),var(--cream)); border-color: var(--line); }
.newsletter-close { background: var(--raised); color: var(--ink); width: 44px; height: 44px; }
.newsletter-backdrop { background: rgba(8,12,19,.58); }
.footer { background: #111827; color: #fffdf8; border-top: 1px solid var(--line); }
.footer a { color: #f0d3bb; }
.footer .small { color: #c4ccda; }
.footer .button.secondary { background: #fffdf8; color: #172033; border-color: #fffdf8; }
.footer .newsletter-message { color: #c3d5b1; }
.article-body blockquote { color: var(--ink); }
.article-body pre,.article-body table { background: var(--paper); }
.article-body td,.article-body th { border-color: var(--line); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline: 3px solid var(--clay); outline-offset: 3px;
}
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.theme-control { display:none;position:relative;flex:0 0 auto;order:3; }
:root[data-theme] .theme-control { display:block; }
.theme-toggle { display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer; }
.theme-toggle:hover { background:var(--raised);border-color:var(--clay); }
.theme-control svg,.back-to-top svg { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none; }
.theme-popover { position:absolute;top:calc(100% + 10px);right:0;width:200px;padding:7px;margin:0;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-strong);z-index:25; }
.theme-popover[hidden] { display:none; }
.theme-option { display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border-radius:9px;font-size:.95rem;cursor:pointer; }
.theme-option:hover,.theme-option:has(input:checked) { background:var(--raised); }
.theme-option input { width:16px;height:16px;margin:0;accent-color:var(--clay); }
.theme-option svg { width:17px;height:17px; }
.back-to-top { position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-soft);text-decoration:none; }
.back-to-top:hover { background:var(--raised);color:var(--clay);border-color:var(--clay); }
.back-to-top[hidden] { display:none; }
.brand { order:1; }
.nav-links { order:2; }
@media(max-width:860px) {
  .nav { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem .6rem;overflow:visible; }
  .brand { width:auto; }
  .brand-name { font-size:clamp(.83rem,3.7vw,1.1rem); }
  .brand-logo { width:38px;height:38px;flex-shrink:0; }
  .nav-links { grid-column:1/-1;grid-row:2; }
  .nav-links a { padding:.48rem .59rem; }
  .theme-control { grid-column:2;grid-row:1;order:initial; }
}
@media print {
  :root { --ink:#172033;--muted:#454e60;--paper:#fff;--raised:#fff;--page-bg:#fff;--page-end:#fff; }
  body { background:#fff;color:#172033; }
  .theme-control,.back-to-top,.newsletter-modal { display:none!important; }
}
@media(prefers-reduced-motion:reduce) {
  .newsletter-modal,.newsletter-card { transition:none;transform:none; }
}
