:root {
  --paper: #f7f3ec; --surface: #eee8dd; --ink: #292823; --muted: #626057;
  --accent: #9b3d2a; --accent-hover: #782d1f; --rule: #cbc3b5; --field-border: #82786a;
  --bs-primary-rgb: 155, 61, 42;
  --bs-link-color-rgb: 155, 61, 42; --bs-link-hover-color-rgb: 120, 45, 31;
  --bs-body-color: var(--ink); --bs-body-bg: var(--paper);
  --bs-body-font-family: Arial, Helvetica, sans-serif;
  --bs-secondary-color: var(--muted); --bs-secondary-bg: var(--surface); --bs-tertiary-bg: var(--surface);
  --bs-border-color: var(--rule); --bs-link-color: var(--accent); --bs-link-hover-color: var(--accent-hover);
}
:root[data-bs-theme="dark"] {
  --paper: #22231f; --surface: #2c2d27; --ink: #ede5d5; --muted: #c2b8a8;
  --accent: #e7a58d; --accent-hover: #f2c4b0; --rule: #5c5d53; --field-border: #a59c8c;
  --bs-primary-rgb: 231, 165, 141;
  --bs-link-color-rgb: 231, 165, 141; --bs-link-hover-color-rgb: 242, 196, 176;
}
html { scroll-behavior: smooth; scroll-padding-top: 1rem; }
body { font-size: 1rem; }
.container { max-width: 1080px; }
[hidden] { display: none !important; }
::selection { color: var(--paper); background: var(--accent); }
h1, h2, h3, h4, p { overflow-wrap: break-word; }
h1, h2, .navbar-brand { font-family: Georgia, 'Times New Roman', serif; }
h1 { font-size: clamp(2.25rem, 4vw, 2.75rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.4rem, 2.5vw, 1.7rem); }
.navbar-brand { font-size: 1.2rem; }
.navbar .nav-link { color: var(--ink); }
.navbar-toggler { color: var(--ink); border-color: var(--field-border); }
a { text-underline-offset: .2em; }
.btn, .nav-link, .navbar-toggler, summary, #profile-email, footer a { min-height: 44px; }
.btn, .nav-link { display: inline-flex; align-items: center; justify-content: center; }
.badge { font-size: .875rem; white-space: normal; text-align: left; }
.entry-description { white-space: pre-line; }
.project-details summary { display: list-item; width: fit-content; cursor: pointer; padding-block: .6rem; color: var(--accent); }
:focus-visible, .btn:focus-visible, .navbar-toggler:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; box-shadow: none; }
.btn-primary {
  --bs-btn-color: var(--paper); --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-color: var(--paper); --bs-btn-hover-bg: var(--accent-hover); --bs-btn-hover-border-color: var(--accent-hover);
  --bs-btn-active-color: var(--paper); --bs-btn-active-bg: var(--accent-hover); --bs-btn-active-border-color: var(--accent-hover);
  --bs-btn-disabled-color: var(--paper); --bs-btn-disabled-bg: var(--muted); --bs-btn-disabled-border-color: var(--muted);
}
.btn-outline-primary {
  --bs-btn-color: var(--accent); --bs-btn-border-color: var(--accent);
  --bs-btn-hover-color: var(--paper); --bs-btn-hover-bg: var(--accent); --bs-btn-hover-border-color: var(--accent);
  --bs-btn-active-color: var(--paper); --bs-btn-active-bg: var(--accent); --bs-btn-active-border-color: var(--accent);
}
.btn-outline-secondary {
  --bs-btn-color: var(--ink); --bs-btn-border-color: var(--field-border);
  --bs-btn-hover-color: var(--paper); --bs-btn-hover-bg: var(--ink); --bs-btn-hover-border-color: var(--ink);
  --bs-btn-active-color: var(--paper); --bs-btn-active-bg: var(--ink); --bs-btn-active-border-color: var(--ink);
}
.form-control { min-height: 44px; border-color: var(--field-border); font-size: 1rem; }
.form-control:focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; box-shadow: none; }
.form-control::placeholder, .form-text { color: var(--muted); }
.form-text { font-size: 1rem; }
textarea.form-control { min-height: 120px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  @page { margin: 15mm; }
  :root, :root[data-bs-theme="dark"] { --paper: #fff; --surface: #fff; --ink: #111; --muted: #444; --accent: #722d20; --rule: #aaa; --bs-primary-rgb: 114, 45, 32; }
  body { font-size: 10pt; }
  .container { max-width: none; padding: 0 !important; }
  header, #load-state, .btn, #project-filters, #project-state, #contact-form, .project-details, footer a, noscript { display: none !important; }
  .card, .list-group-item { break-inside: avoid; box-shadow: none; }
  .card-body { padding: .75rem !important; }
  section.mb-4 { margin-bottom: 1rem !important; }
  h1 { font-size: 25pt; }
  h2 { font-size: 16pt; }
  #projects-list > .col { width: 100%; }
  .project-entry a.btn { display: inline !important; border: 0; padding: 0; min-height: 0; }
  .project-entry a::after { content: ' (' attr(href) ')'; font-size: 8pt; }
  #contact h2, #contact p { display: none; }
  #profile-email { min-height: 0; }
}
