/* =========================================================
   Feature layer: Pagefind search + project copy snippets
   Loaded only from the generated dist build.
   ========================================================= */

.site-search-trigger{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:color-mix(in srgb,var(--panel) 30%,transparent);
  color:var(--muted);
  cursor:pointer;
  font-size:19px;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease;
}
.site-search-trigger:hover,
.site-search-trigger:focus-visible{
  color:var(--text);
  border-color:color-mix(in srgb,var(--orange) 40%,var(--line));
  background:color-mix(in srgb,var(--panel) 55%,transparent);
  outline:none;
  transform:translateY(-1px);
}
.site-search-backdrop{
  position:fixed;
  inset:0;
  z-index:1200;
  display:grid;
  place-items:start center;
  padding-top:min(14vh,132px);
  background:rgba(2,18,19,.76);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
}
.site-search-backdrop[hidden]{display:none}
.site-search-panel{
  width:min(calc(100% - 32px),720px);
  max-height:min(72vh,680px);
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:19px;
  background:var(--bg-2);
  box-shadow:0 30px 90px rgba(0,0,0,.45);
}
.site-search-input-row{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:14px 16px;
  border-bottom:1px solid var(--line);
}
.site-search-prompt{
  color:var(--orange);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-weight:900;
}
.site-search-input{
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:15px;
}
.site-search-input::placeholder{color:var(--muted-2)}
.site-search-close{
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:7px;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  font-size:10px;
}
.site-search-status{
  padding:11px 16px 8px;
  color:var(--muted-2);
  font-size:12px;
}
.site-search-results{
  max-height:min(54vh,520px);
  overflow-y:auto;
  padding:6px 8px 10px;
}
.site-search-result{
  display:block;
  padding:13px 14px;
  border:1px solid transparent;
  border-radius:12px;
  transition:background-color .16s ease,border-color .16s ease;
}
.site-search-result:hover,
.site-search-result:focus-visible{
  background:color-mix(in srgb,var(--text) 5%,transparent);
  border-color:var(--line);
  outline:none;
}
.site-search-result small{
  display:block;
  margin-bottom:3px;
  color:var(--orange);
  font-size:9px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.site-search-result strong{
  display:block;
  color:var(--text);
  font-size:14px;
}
.site-search-result span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}
.project-reproduce{
  margin-top:30px;
  padding:29px;
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);
  gap:30px;
  align-items:start;
}
.project-reproduce-head h3{
  margin:8px 0 10px;
  font-size:clamp(25px,2.5vw,34px);
  line-height:1.08;
}
.project-reproduce-head p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.project-snippet{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:#031b1d;
}
.project-snippet-bar{
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:8px 10px 8px 14px;
  border-bottom:1px solid var(--line);
  background:#0b4547;
}
.project-snippet-bar>span{
  color:var(--muted-2);
  font:800 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.project-copy-button{
  min-height:30px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:color-mix(in srgb,var(--panel) 38%,transparent);
  color:var(--text);
  cursor:pointer;
  font-size:11px;
  font-weight:800;
  transition:border-color .18s ease,color .18s ease,background-color .18s ease;
}
.project-copy-button:hover,
.project-copy-button:focus-visible{
  border-color:color-mix(in srgb,var(--orange) 45%,var(--line));
  outline:none;
}
.project-copy-button.copied{color:var(--green)}
.project-snippet pre{
  margin:0;
  padding:17px 18px 19px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  overflow-x:auto;
  color:#d7e4e1;
  font:12.5px/1.72 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.project-snippet code{font:inherit;color:inherit}
html[data-theme="light"] .site-search-panel{
  background:#fefaf3;
  box-shadow:0 26px 72px rgba(20,80,82,.16);
}
html[data-theme="light"] .site-search-trigger{background:rgba(255,255,255,.62)}
html[data-theme="light"] .project-snippet{background:#073638}
@media(max-width:900px){
  .project-reproduce{grid-template-columns:1fr;gap:20px}
}
@media(max-width:820px){
  .site-search-backdrop{padding-top:88px;align-items:start}
  .site-search-panel{width:min(calc(100% - 24px),720px);max-height:calc(100vh - 104px)}
  .site-search-results{max-height:calc(100vh - 235px)}
  .project-reproduce{margin-top:24px;padding:22px}
}
@media(max-width:430px){
  .site-search-input-row{grid-template-columns:24px minmax(0,1fr) auto;padding:12px}
  .site-search-input{font-size:14px}
  .project-reproduce{padding:19px}
  .project-snippet pre{padding:15px;font-size:11.5px}
  .project-copy-button{padding:0 8px;font-size:10px}
}
@media(pointer:coarse){.site-search-trigger:hover{transform:none}}
@media(prefers-reduced-motion:reduce){
  .site-search-trigger,.site-search-result,.project-copy-button{transition:none}
}
