html.im-search-open {overflow:hidden}
#im-search {
  box-sizing:border-box; position:fixed; inset:0; width:min(43rem,calc(100% - 2rem)); height:fit-content;
  max-height:calc(100vh - 3rem); max-height:calc(100dvh - 3rem); margin:auto; padding:clamp(1.25rem,3vw,2rem);
  overflow:auto; overscroll-behavior:contain; color:#161616; background:#fff; border:1px solid #222;
  border-radius:1rem; box-shadow:0 1rem 5rem #0004; text-align:left; font:inherit;
}
#im-search:not([open]) {display:none}
#im-search::backdrop {background:rgba(0,0,0,.58)}
#im-search h2 {font-size:clamp(1.4rem,4vw,2rem); line-height:1.2; letter-spacing:-.025em; margin:0 0 .9rem}
#im-search [data-close-search] {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; min-width:44px; min-height:44px;
  padding:.35rem .65rem; border:1px solid #b7b7b7; border-radius:.45rem; background:#fff; color:#111; cursor:pointer;
}
#im-search [data-close-search]:hover,#im-search-results button:hover {background:#eee}
#im-search-input {
  appearance:none; display:block; box-sizing:border-box; width:100%; min-height:3.3rem; padding:.75rem .95rem;
  color:#111; background:#fff; border:1.5px solid #444; border-radius:.5rem; font:inherit; font-size:1.05rem;
}
#im-search-input::placeholder {color:#555; opacity:1}
#im-search-status {margin:.85rem 0 .35rem; color:#404040; font-size:1rem; line-height:1.5; letter-spacing:normal}
#im-search-results {
  margin:0; padding:0; list-style:none; text-align:left; max-height:min(45vh,25rem); max-height:min(45dvh,25rem);
  overflow:auto; overscroll-behavior:contain; scroll-padding:.3rem;
}
#im-search-results li {margin:0; padding:0; border-bottom:1px solid #d9d9d9}
#im-search-results li:last-child {border-bottom:0}
#im-search-results a {display:block; min-height:44px; padding:.85rem .45rem; color:#131313; text-decoration:none; line-height:1.4}
#im-search-results a:hover {background:#f1f1f1}
#im-search-results strong {display:block; font-size:1.075rem; font-weight:700}
#im-search-results a span {display:block; margin-top:.22rem; color:#454545; font-size:1rem}
#im-search-results button {min-height:44px; margin:.4rem; padding:.5rem .8rem; color:#111; background:#fff; border:1px solid currentColor; border-radius:.35rem; cursor:pointer}
#im-search :focus-visible {outline:3px solid #131313; outline-offset:2px}
#im-search-results a:focus-visible {background:#eee; outline-offset:-3px}
@media (max-width:480px) {
  #im-search {width:calc(100% - 1rem); padding:1rem; max-height:calc(100dvh - 1.25rem); border-radius:.75rem}
}
#im-search .im-search-heading {display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:0 0 1rem}
#im-search .im-search-heading h2 {margin:0}
