/* Colors follow the existing site; page and gallery layouts stay unchanged. */
:root {
  --search-surface: #fcfaf7;
  --search-muted: #74716b;
  --search-line: #e7ded1;
  --search-selected: #f4ead9;
  --search-backdrop: rgba(32, 29, 24, .28);
}
html[data-theme="dark"] {
  --search-surface: #242321;
  --search-muted: #b9b3a8;
  --search-line: #494239;
  --search-selected: #393126;
  --search-backdrop: rgba(0, 0, 0, .58);
}
.masthead__menu { display: flex; align-items: center; gap: 14px; }
.masthead__menu > .greedy-nav { flex: 1 1 auto; min-width: 0; }
.site-search-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 9px; flex: 0 0 auto; min-width: 44px; min-height: 44px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--global-text-color, #494e52); cursor: pointer; }
.site-search-toggle:hover { color: var(--cv-section-heading-color, #9a641e); background: var(--search-selected); }
.site-search-toggle kbd, .site-search kbd { display: inline-block; padding: 1px 5px; border: 1px solid var(--search-line); border-radius: 4px; font: inherit; font-size: 12px; line-height: 1.5; color: var(--search-muted); background: transparent; box-shadow: none; }
.site-search {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  width: min(920px, calc(100% - 32px));
  max-width: none;
  max-height: min(650px, calc(100vh - 120px));
  max-height: min(650px, calc(100dvh - 120px));
  margin: min(11vh, 88px) auto auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--search-line);
  border-radius: 12px;
  color: var(--global-text-color, #494e52);
  background: var(--search-surface);
  font-family: inherit;
  font-size: 18px;
  line-height: 1.5;
  box-shadow: 0 22px 70px rgba(22, 18, 12, .24);
}
.site-search[open] { display: flex; flex-direction: column; }
.site-search::backdrop { background: var(--search-backdrop); }
.site-search__header { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; padding: 16px 18px; border-bottom: 1px solid var(--search-line); }
.site-search__icon { flex: 0 0 auto; color: var(--cv-section-heading-color, #9a641e); }
.site-search .site-search__input { display: block; flex: 1 1 auto; min-width: 0; width: 100%; height: 40px; margin: 0; padding: 0; border: 0; outline: 0; box-shadow: none; border-radius: 0; background: transparent; color: inherit; font: inherit; font-size: 18px; }
.site-search__input::placeholder { color: var(--search-muted); opacity: 1; }
.site-search__header:focus-within { box-shadow: inset 0 -2px var(--cv-section-rule-color, #d7b47a); }
.site-search__close { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 40px; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--search-muted); line-height: 1; cursor: pointer; }
.site-search__close:hover { background: var(--search-selected); color: var(--cv-section-heading-color, #9a641e); }
.site-search__context { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; padding: 10px 18px; border-bottom: 1px solid var(--search-line); }
.site-search__context-title { min-width: 0; color: var(--cv-section-heading-color, #9a641e); font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.site-search__back { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 40px; height: 40px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--search-muted); cursor: pointer; }
.site-search__back:hover { color: var(--cv-section-heading-color, #9a641e); background: var(--search-selected); }
.site-search__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--search-line) transparent; padding: 4px 0 10px; }
.site-search__results > [role="group"] + [role="group"] { margin-top: 12px; }
.site-search__group-label { margin: 0; padding: 18px 22px 8px; color: var(--cv-section-heading-color, #9a641e); font-size: 20px; font-weight: 600; line-height: 1.35; letter-spacing: normal; }
.site-search__option { display: flex; align-items: center; gap: 12px; min-height: 52px; margin: 0; padding: 12px 20px; border: 0; border-left: 3px solid transparent; color: inherit; background: transparent; text-decoration: none; cursor: pointer; transition: background-color .1s ease; }
.site-search__option:visited { color: inherit; }
.site-search button.site-search__option { width: 100%; border-radius: 0; font: inherit; text-align: left; box-shadow: none; }
.site-search__option:hover, .site-search__option[aria-selected="true"] { color: inherit; background: var(--search-selected); text-decoration: none; }
.site-search__option[aria-selected="true"] { border-left-color: var(--cv-section-heading-color, #9a641e); }
.site-search__option[aria-disabled="true"] { color: var(--search-muted); cursor: not-allowed; }
.site-search__option-title { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.site-search__option-kind { display: inline-flex; flex: 0 0 auto; width: 16px; height: 16px; color: var(--search-muted); }
.site-search__contact-icon { flex: 0 0 18px; width: 18px; text-align: center; font-size: 16px; color: var(--search-muted); }
.site-search__option[aria-selected="true"] .site-search__contact-icon { color: var(--cv-section-heading-color, #9a641e); }
img.site-search__contact-icon { height: 18px; object-fit: contain; }
.site-search__contact-icon--linkedin,
.site-search__option[aria-selected="true"] .site-search__contact-icon--linkedin { color: #0a66c2; }
.site-search__message { margin: 0; padding: 28px 22px 16px; color: var(--search-muted); overflow-wrap: anywhere; }
.site-search__retry { margin: 0 22px 16px; padding: 8px 16px; border: 1px solid var(--search-line); border-radius: 5px; background: var(--search-selected); color: inherit; font: inherit; cursor: pointer; }
.site-search__footer { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; flex: 0 0 auto; padding: 10px 20px; border-top: 1px solid var(--search-line); color: var(--search-muted); font-size: 12px; }
.site-search__footer span { display: flex; align-items: center; gap: 5px; }
.site-search__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; }
.site-search-toggle:focus-visible, .site-search__close:focus-visible, .site-search__back:focus-visible, .site-search__retry:focus-visible { outline: 2px solid var(--cv-section-heading-color, #9a641e); outline-offset: 2px; }
.site-search[hidden], .site-search-toggle[hidden], .site-search [hidden] { display: none; }
html.site-search-open { overflow: hidden; scrollbar-gutter: stable; }
.cv-project__title[id] { scroll-margin-top: 100px; }
@keyframes search-enter { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 600px) {
  .masthead__menu { gap: 6px; }
  .site-search-toggle kbd { display: none; }
  .site-search { width: calc(100% - 20px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin-top: 16px; border-radius: 10px; }
  .site-search__header { gap: 8px; padding: 10px 12px; }
  .site-search__context { gap: 8px; padding: 8px 12px; }
  .site-search .site-search__input { font-size: 16px; }
  .site-search__group-label { padding-left: 16px; }
  .site-search__option { padding: 12px 14px; }
  .site-search__footer { justify-content: space-between; gap: 8px; padding: 10px 14px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-search[open] { animation: none; }
  .site-search__option { transition: none; }
}
