/* 03moto search (assets/js/search.js · src/partials/search.html).
 * A full-screen lit set that opens as a circle from the button pressed. One giant field in Unbounded caps;
 * the active result re-lights the scene: its photo set behind (--sg = its colour), its word in outline type.
 * Phone: list with thumbnails. ≥1100px with a mouse: list left, live preview of the active result right.
 * Same rules as site.css: acid = price / primary button only, --g = light + thin line, no visible text < 16px. */
@property --sg { syntax: "<color>"; inherits: true; initial-value: #C9D2DC; }

@layer components {
  /* ── openers ── */
  .navsearch {
    display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 12px 0 14px; border-radius: var(--r-pill);
    font-weight: 700; color: var(--c-dim); transition: color .2s, background-color .2s;
  }
  .navsearch .i { width: 22px; height: 22px; }
  .navsearch kbd { display: none; }
  @media (min-width: 1200px) {
    .navsearch kbd {
      display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 7px;
      font: 700 var(--t-mono)/1 var(--f-mono); color: var(--c-dim); border: 1px solid var(--c-line); background: rgb(255 255 255 / .04);
    }
  }
  @media (hover: hover) { .navsearch:hover { color: var(--c-text); background: rgb(255 255 255 / .06); } }
  .topbar__search .i { width: 22px; height: 22px; }
  html:has(.srch[open]) { overflow: hidden; scrollbar-gutter: stable; }

  /* ── the overlay ── */
  .srch {
    --sg: #C9D2DC; --ox: 50%; --oy: 40px;
    position: fixed; inset: 0; width: 100%; height: var(--vvh, 100dvh); max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
    color: var(--c-text); background: var(--c-ground); overflow: hidden; overscroll-behavior: contain;
    clip-path: circle(0 at var(--ox) var(--oy));
    transition: clip-path .5s var(--ease-io), --sg .8s var(--ease), display .5s allow-discrete, overlay .5s allow-discrete;
  }
  .srch[open] { clip-path: circle(150vmax at var(--ox) var(--oy)); transition-duration: .75s, .8s, .75s, .75s; transition-timing-function: var(--ease); }
  @starting-style { .srch[open] { clip-path: circle(0 at var(--ox) var(--oy)); } }
  .srch::backdrop { background: rgb(8 9 10 / .5); }
  /* film grain inside the top layer too (the page's .grain sits under it) */
  .srch::after {
    content: ""; position: absolute; inset: -50%; z-index: 3; pointer-events: none; opacity: .05; mix-blend-mode: overlay;
    background: url(/assets/img/fx/grain-256.png) 0 0 / 256px 256px; animation: grain .9s steps(6) infinite;
  }

  /* lit set behind everything: the active result's photo, its colour washed in, darkened for type */
  .srch__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; background:
      radial-gradient(120% 60% at 50% 0%, #2a2b30, transparent 62%), var(--c-ground); }
  .srch__set { position: absolute; inset: 0; opacity: 0; transition: opacity 1s var(--ease); }
  .srch__set img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.4) saturate(.9); scale: 1.08; transition: scale 6s var(--ease), filter 1s; }
  .srch__set.is-on { opacity: 1; }
  .srch__set.is-on img { scale: 1; }
  .srch__bg::after { content: ""; position: absolute; inset: 0; background:
      radial-gradient(60% 55% at 74% 46%, color-mix(in oklab, var(--sg) 26%, transparent), transparent 70%),
      radial-gradient(90% 40% at 50% 0%, color-mix(in oklab, var(--sg) 10%, transparent), transparent 70%),
      linear-gradient(180deg, rgb(12 13 15 / .78) 0, rgb(12 13 15 / .35) 34%, rgb(12 13 15 / .55) 72%, rgb(12 13 15 / .9) 100%); }
  @media (max-width: 1099px) { .srch__bg::after { background:
      radial-gradient(90% 40% at 50% 0%, color-mix(in oklab, var(--sg) 18%, transparent), transparent 70%),
      linear-gradient(180deg, rgb(12 13 15 / .7) 0, rgb(12 13 15 / .62) 30%, rgb(12 13 15 / .8) 100%); } }

  /* giant outlined word of the active result, drifting */
  .srch__ghost { position: absolute; inset-inline: 0; top: 58%; translate: 0 -50%; z-index: 1; overflow: clip; pointer-events: none; height: 1.05em;
    font: 900 clamp(120px, 26vw, 400px)/1 var(--f-display); letter-spacing: -.05em; }
  .srch__ghost span { position: absolute; left: 0; top: 0; display: flex; white-space: nowrap; color: transparent;
    -webkit-text-stroke: 1.5px color-mix(in oklab, var(--sg) 34%, transparent); opacity: .7; animation: ghost 60s linear infinite; }
  .srch__ghost span.is-in { animation: ghost 60s linear infinite, srch-fade .9s var(--ease) both; }
  .srch__ghost i { font-style: normal; }
  @keyframes srch-fade { from { opacity: 0; } }

  .srch__in {
    position: relative; z-index: 2; height: 100%; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto;
    padding: calc(10px + env(safe-area-inset-top)) var(--gut) 0;
  }

  /* ── head: the field ── */
  .srch__head { display: flex; align-items: center; gap: 8px; }
  .srch__form {
    flex: 1; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 4px 4px 4px 14px; min-height: 64px;
    border-radius: 20px; border: 1px solid rgb(255 255 255 / .16);
    background: linear-gradient(180deg, rgb(255 255 255 / .1), rgb(255 255 255 / .03)), rgb(12 13 15 / .4);
    -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .18), 0 24px 60px -30px rgb(0 0 0 / .9);
    transition: border-color .3s, box-shadow .4s;
  }
  .srch__form:focus-within { border-color: color-mix(in oklab, var(--sg) 60%, rgb(255 255 255 / .3));
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .2), 0 0 0 4px color-mix(in oklab, var(--sg) 14%, transparent), 0 24px 60px -30px rgb(0 0 0 / .9); }
  .srch__ic { flex: none; display: grid; color: var(--c-dim); }
  .srch__ic .i { width: 24px; height: 24px; }
  .srch__field { position: relative; flex: 1; min-width: 0; }
  .srch__q, .srch__tail {
    font: 800 26px/1.15 var(--f-display); letter-spacing: -.03em; text-transform: uppercase; /* caps: Unbounded's lowercase Cyrillic has BG locl forms */
  }
  .srch__q {
    display: block; width: 100%; padding: 12px 0 10px; border: 0; border-radius: 0; background: none; outline: none; color: var(--c-text);
    caret-color: var(--acid); -webkit-appearance: none; appearance: none;
  }
  .srch__q::placeholder { color: rgb(255 255 255 / .3); opacity: 1; }
  .srch__q::-webkit-search-cancel-button, .srch__q::-webkit-search-decoration { -webkit-appearance: none; display: none; }
  .srch__q:focus-visible { outline: none; }
  .srch__tail { position: absolute; inset: 0; padding: 12px 0 10px; white-space: pre; overflow: hidden; pointer-events: none; }
  .srch__tail span { color: transparent; }
  .srch__tail b { font-weight: inherit; color: rgb(255 255 255 / .28); }
  .srch__clear { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--c-dim); background: rgb(255 255 255 / .07); transition: color .2s, background-color .2s; }
  .srch__clear .i { width: 20px; height: 20px; }
  .srch__btn {
    flex: none; display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; color: var(--c-text);
    background: linear-gradient(180deg, rgb(255 255 255 / .14), rgb(255 255 255 / .04)), rgb(12 13 15 / .35);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / .22), inset 0 0 0 1px rgb(255 255 255 / .14);
    -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
    transition: scale .2s var(--ease), background-color .2s;
  }
  .srch__btn:active { scale: .92; }
  .srch__btn .i { width: 22px; height: 22px; }
  .srch__x kbd { display: none; }
  .srch__cart .cartbtn__n { top: -14px; right: -16px; box-shadow: 0 0 0 2px #1a1b1f; }
  @media (max-width: 899px) { .srch__cart { display: none; } .srch__form { min-height: 58px; } .srch__btn { width: 52px; height: 52px; } }
  @media (min-width: 900px) {
    .srch__in { padding-top: 24px; }
    .srch__head { gap: 12px; }
    .srch__form { min-height: 96px; padding: 6px 10px 6px 26px; border-radius: 28px; gap: 18px; }
    .srch__ic .i { width: 38px; height: 38px; stroke-width: 1.8; }
    .srch__q, .srch__tail { font-size: clamp(40px, 4.6vw, 76px); letter-spacing: -.04em; }
    .srch__q, .srch__tail { padding-block: 10px 6px; }
    .srch__btn { width: 64px; height: 64px; }
    .srch__x { width: auto; padding: 0 20px 0 18px; border-radius: var(--r-pill); display: inline-flex; gap: 12px; }
    .srch__x kbd { display: inline; font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .06em; color: var(--c-dim); }
  }
  @media (hover: hover) {
    .srch__btn:hover { background-color: rgb(255 255 255 / .1); }
    .srch__clear:hover { color: var(--c-text); background-color: rgb(255 255 255 / .14); }
  }

  /* ── bar: facets + the big count ── */
  .srch__bar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding-top: 14px; min-width: 0; }
  .srch__facets { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; min-width: 0; padding-block: 4px; margin-inline: calc(-1 * var(--gut)); padding-inline: var(--gut);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--gut), #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, transparent, #000 var(--gut), #000 calc(100% - 28px), transparent); }
  .srch__facets::-webkit-scrollbar { display: none; }
  .srch__chip { min-height: 44px; padding: 0 16px; font-size: 17px; flex: none; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: background-color .2s, color .2s, border-color .2s; }
  @media (hover: hover) { .srch__chip:hover:not([aria-pressed="true"]) { border-color: rgb(255 255 255 / .45); } }
  .srch__count { flex: none; display: none; align-items: baseline; gap: 10px; }
  .srch__count b { display: inline-block; font: 900 clamp(48px, 6vw, 104px)/.8 var(--f-display); letter-spacing: -.05em; font-feature-settings: "tnum"; color: var(--c-text); }
  .srch__count b.is-roll { animation: srch-roll .5s var(--ease); }
  .srch__count span { font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--c-dim); }
  @keyframes srch-roll { from { transform: translateY(45%); opacity: 0; filter: blur(4px); } }
  @media (min-width: 900px) { .srch__count { display: flex; } .srch__bar { padding-top: 22px; } .srch__facets { margin-inline: 0; padding-inline: 0; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent); } }

  /* ── body ── */
  .srch__body { position: relative; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); }
  .srch__scroll {
    min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgb(255 255 255 / .2) transparent;
    padding: 8px 2px calc(28px + env(safe-area-inset-bottom)); margin-inline: -2px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 14px, #000 calc(100% - 28px), transparent);
    mask-image: linear-gradient(180deg, transparent 0, #000 14px, #000 calc(100% - 28px), transparent);
  }
  .srch__pv { display: none; }
  @media (min-width: 1100px) and (hover: hover) and (pointer: fine) {
    .srch:not(.is-idle) .srch__body:has(.srch__list:not([hidden])) { grid-template-columns: minmax(440px, 1fr) minmax(0, 1.08fr); gap: 4vw; }
    .srch:not(.is-idle) .srch__body:has(.srch__list:not([hidden])) .srch__pv { display: block; position: relative; min-height: 0; }
  }

  /* ── results ── */
  .sr__group + .sr__group { margin-top: 22px; }
  .sr__h, .sr__loose, .sr__filter { font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--c-dim); }
  .sr__h { display: flex; align-items: center; gap: 10px; padding: 14px 4px 10px; }
  .sr__h b { color: var(--c-text); font-weight: 800; }
  .sr__h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--c-line), transparent); }
  .sr__loose, .sr__filter { display: inline-flex; align-items: center; min-height: 36px; margin: 6px 6px 0 0; padding: 0 14px; border-radius: var(--r-pill); border: 1px dashed var(--c-line); }
  .sr { position: relative; display: flex; align-items: center; gap: 4px; border-radius: 16px; transition: background-color .25s; }
  .sr__a {
    position: relative; flex: 1; min-width: 0; min-height: 84px; display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: 14px;
    padding: 8px 10px 8px 8px; border-radius: 16px; outline-offset: -2px;
  }
  .sr[aria-selected="true"] { background:
      linear-gradient(90deg, color-mix(in oklab, var(--g) 20%, rgb(255 255 255 / .04)), rgb(255 255 255 / .03) 70%, transparent); }
  .sr[aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 3px; background: var(--g); box-shadow: 0 0 14px var(--g); }
  .sr__img {
    position: relative; width: 68px; height: 68px; border-radius: 14px; overflow: clip; display: grid; place-items: center;
    background: radial-gradient(90% 80% at 50% 38%, #fff, var(--c-tile) 55%, var(--c-tile-2));
  }
  .sr__img img { width: 100%; height: 100%; object-fit: contain; padding: 8%; mix-blend-mode: multiply; transition: scale .5s var(--ease); }
  .sr__img--cut { background: radial-gradient(75% 70% at 50% 38%, color-mix(in oklab, var(--g) 30%, #26272c), #141518 78%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); }
  .sr__img--cut img { mix-blend-mode: normal; padding: 6%; filter: drop-shadow(0 6px 8px rgb(0 0 0 / .55)); }
  .sr__img--bike img { padding: 4% 2% 6%; object-position: 50% 80%; }
  .sr__img--ic { background: rgb(255 255 255 / .05); box-shadow: inset 0 0 0 1px var(--c-line); color: var(--g); }
  .sr__img--ic .i { width: 30px; height: 30px; }
  .sr[aria-selected="true"] .sr__img img { scale: 1.1; }
  .sr__txt { min-width: 0; display: grid; gap: 4px; }
  .sr__k { font: 700 var(--t-mono)/1.1 var(--f-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--c-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .sr__n { font: 700 var(--t-ui)/1.22 var(--f-ui); letter-spacing: -.01em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .sr__s { color: var(--c-dim); font-size: var(--t-ui); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .sr mark, .pv mark { color: inherit; background: linear-gradient(transparent 60%, color-mix(in oklab, var(--g) 62%, transparent) 60% 92%, transparent 92%); border-radius: 2px; }
  .sr__p { grid-column: 2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
  .sr__p .price { font-size: var(--t-ui); font-feature-settings: "tnum"; }
  .sr__p s { color: var(--c-dim); font-size: var(--t-mono); }
  .sr__p .stamp { display: none; }
  .sr__cnt { font: 800 28px/1 var(--f-display); letter-spacing: -.04em; color: var(--c-dim); font-feature-settings: "tnum"; }
  .sr__go { display: none; }
  .sr__add {
    flex: none; position: relative; z-index: 6; width: 48px; height: 48px; margin-right: 6px; border-radius: 50%; display: grid; place-items: center;
    border: 1px solid var(--c-line); background: rgb(12 13 15 / .4); color: var(--c-text); transition: background-color .25s, color .25s, border-color .25s, scale .2s var(--ease);
  }
  .sr__add .i { grid-area: 1 / 1; width: 20px; height: 20px; transition: opacity .2s, scale .35s var(--ease); }
  .sr__add .i + .i { opacity: 0; scale: .4; }
  .sr__add:active { scale: .9; }
  .sr__add.is-added { background: var(--acid); border-color: var(--acid); color: var(--c-on-acid); }
  .sr__add.is-added .i:first-child { opacity: 0; scale: .4; }
  .sr__add.is-added .i + .i { opacity: 1; scale: 1; }
  @media (hover: hover) { .sr__add:hover { border-color: #fff; } }
  /* phone: price sits under the name, so each row reads in one glance */
  .sr--p .sr__a, .sr--b .sr__a { grid-template-columns: 68px minmax(0, 1fr); grid-template-rows: auto auto; }
  .sr--p .sr__img, .sr--b .sr__img { grid-row: 1 / 3; }
  .sr--b .sr__img { width: 92px; }
  @media (max-width: 899px) { .sr--p .sr__k { display: none; } .sr--p .sr__a { min-height: 76px; } .sr--p .sr__n { -webkit-line-clamp: 3; } }
  .sr--b .sr__a { grid-template-columns: 92px minmax(0, 1fr); }
  /* category rows: brutal — big caps, white fill when active (the home „Витрина“ rows) */
  .sr--c .sr__n { font: 800 clamp(26px, 6.4vw, 46px)/1 var(--f-display); text-transform: uppercase; letter-spacing: -.04em; -webkit-line-clamp: 1; }
  .sr--c[aria-selected="true"] { background: var(--c-text); color: var(--c-on-acid); }
  .sr--c[aria-selected="true"] .sr__k, .sr--c[aria-selected="true"] .sr__cnt { color: rgb(11 12 13 / .6); }
  .sr--c[aria-selected="true"]::before { display: none; }
  .sr--c[aria-selected="true"] mark { background: linear-gradient(transparent 60%, color-mix(in oklab, var(--g) 70%, transparent) 60% 92%, transparent 92%); }
  @media (min-width: 900px) {
    .sr__a { grid-template-columns: 76px minmax(0, 1fr) auto 28px; min-height: 92px; gap: 18px; }
    .sr__img { width: 76px; height: 76px; }
    .sr--p .sr__a, .sr--b .sr__a { grid-template-columns: 76px minmax(0, 1fr) auto 28px; grid-template-rows: auto; }
    .sr--p .sr__img, .sr--b .sr__img { grid-row: auto; }
    .sr--b .sr__a { grid-template-columns: 104px minmax(0, 1fr) auto 28px; }
    .sr--b .sr__img { width: 104px; }
    .sr__p { grid-column: auto; flex-direction: column; align-items: flex-end; gap: 2px; }
    .sr__p .price { font-size: var(--t-lead); }
    .sr__go { display: grid; place-items: center; opacity: 0; translate: -8px 0; transition: opacity .25s, translate .35s var(--ease); }
    .sr__go .i { width: 22px; height: 22px; }
    .sr[aria-selected="true"] .sr__go { opacity: 1; translate: 0 0; }
    .sr__txt { transition: translate .35s var(--ease); }
    .sr[aria-selected="true"] .sr__txt { translate: 4px 0; }
  }
  /* entrance: rows rise in a quick stagger (index → --d) */
  .srch__list.is-in .sr { animation: sr-in .5s var(--ease) both; animation-delay: calc(var(--d, 0) * 22ms); }
  @keyframes sr-in { from { opacity: 0; transform: translateY(14px); } }

  /* ── preview (desktop) ── */
  .pv { position: absolute; inset: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; padding-bottom: 28px; animation: pv-in .6s var(--ease) both; }
  .pv.is-out { animation: pv-out .4s var(--ease) both; pointer-events: none; }
  @keyframes pv-in { from { opacity: 0; transform: translateY(18px) scale(.97); filter: blur(6px); } }
  @keyframes pv-out { to { opacity: 0; transform: translateY(-12px) scale(1.02); filter: blur(4px); } }
  .pv__stage { position: relative; min-height: 0; display: grid; grid-template: minmax(0, 1fr) / minmax(0, 1fr); place-items: center; margin-bottom: 18px; }
  .pv__stage > * { grid-area: 1 / 1; }
  .pv__light { position: absolute; left: 50%; top: 46%; width: 92%; aspect-ratio: 1.3; translate: -50% -50%; border-radius: 50%; pointer-events: none;
    background: radial-gradient(closest-side, color-mix(in oklab, var(--g) 46%, transparent), color-mix(in oklab, var(--g) 12%, transparent) 55%, transparent); filter: blur(10px); }
  .pv__floor { position: absolute; left: 50%; bottom: 7%; width: 64%; height: 9%; translate: -50% 0; border-radius: 50%; background: radial-gradient(closest-side, rgb(0 0 0 / .75), transparent); filter: blur(6px); }
  .pv__stage img { position: relative; z-index: 1; max-width: 88%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 34px 40px rgb(0 0 0 / .6)); animation: pv-float 7s ease-in-out infinite alternate; }
  .pv:not(.pv--cut) .pv__stage img { max-width: 64%; max-height: 92%; padding: 7%; border-radius: 28px; aspect-ratio: 1;
    background: radial-gradient(90% 80% at 50% 38%, #fff, var(--c-tile) 55%, var(--c-tile-2)); box-shadow: 0 40px 80px -30px rgb(0 0 0 / .8); filter: none; }
  .pv--b .pv__stage img { max-width: 100%; }
  @keyframes pv-float { from { translate: 0 1.2%; } to { translate: 0 -1.6%; } }
  .pv__cnt { font: 900 clamp(160px, 22vw, 340px)/.8 var(--f-display); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 2px color-mix(in oklab, var(--g) 55%, transparent); z-index: 0; }
  .pv__ic { display: grid; place-items: center; width: min(46%, 300px); aspect-ratio: 1; border-radius: 50%; color: var(--g); position: relative; z-index: 1;
    border: 1px solid color-mix(in oklab, var(--g) 40%, transparent); background: radial-gradient(closest-side, rgb(255 255 255 / .08), transparent); }
  .pv__ic .i { width: 42%; height: 42%; stroke-width: 1.5; }
  .pv__meta { display: grid; gap: 10px; max-width: 620px; }
  .pv__k { font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--g); }
  .pv__n { font: 800 clamp(28px, 2.5vw, 44px)/1.04 var(--f-ui); letter-spacing: -.025em; text-wrap: balance; }
  .pv__s { color: var(--c-dim); font-size: var(--t-lead); }
  .pv__p { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; }
  .pv__p .price { font-size: clamp(30px, 2.4vw, 40px); font-feature-settings: "tnum"; }
  .pv__p s { color: var(--c-dim); font-size: var(--t-lead); }
  .pv__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }

  /* ── idle (nothing typed) ── */
  .si { padding-block: 18px 6px; }
  .si__h { display: flex; align-items: center; gap: 10px; padding: 0 2px 14px; font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--c-dim); }
  .si__h b { color: var(--c-text); }
  .si__h::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--c-line), transparent); }
  .si__chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .si__chip {
    display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 18px; border-radius: var(--r-pill);
    font: 700 var(--t-ui)/1 var(--f-ui); border: 1px solid var(--c-line); background: rgb(12 13 15 / .45);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: border-color .2s, background-color .2s, translate .3s var(--ease);
  }
  .si__chip .i { width: 18px; height: 18px; color: var(--c-dim); }
  .si__chip:active { translate: 0 2px; }
  .si__rec { display: inline-flex; align-items: center; border-radius: var(--r-pill); border: 1px solid var(--c-line); background: rgb(12 13 15 / .45); }
  .si__rec .si__chip { border: 0; background: none; padding-right: 8px; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .si__del { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--c-dim); }
  .si__del .i { width: 16px; height: 16px; }
  @media (hover: hover) {
    .si__chip:hover { border-color: rgb(255 255 255 / .55); background: rgb(255 255 255 / .08); }
    .si__rec .si__chip:hover { background: none; }
    .si__rec:hover { border-color: rgb(255 255 255 / .4); }
    .si__del:hover { color: var(--c-text); }
  }
  .si__bikes { display: grid; grid-auto-flow: column; grid-auto-columns: min(64vw, 280px); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(-1 * var(--gut)); padding-inline: var(--gut); scroll-padding-inline: var(--gut); padding-bottom: 4px; }
  .si__bikes::-webkit-scrollbar { display: none; }
  .si__bike { position: relative; display: grid; grid-template-rows: 1fr auto; aspect-ratio: 1.15; padding: 12px 14px 14px; border-radius: 20px; overflow: clip; scroll-snap-align: start;
    background: radial-gradient(80% 70% at 50% 40%, color-mix(in oklab, var(--g) 32%, #24252a), #121316 80%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08);
    transition: box-shadow .3s; }
  .si__bimg { display: grid; place-items: end center; min-height: 0; }
  .si__bimg img { max-height: 100%; width: 100%; object-fit: contain; object-position: 50% 100%; filter: drop-shadow(0 14px 16px rgb(0 0 0 / .6)); transition: scale .6s var(--ease); }
  .si__bike::after { content: ""; position: absolute; left: 14%; right: 14%; bottom: 52px; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgb(0 0 0 / .6), transparent); }
  .si__bn { position: relative; z-index: 1; font: 700 var(--t-ui)/1.2 var(--f-ui); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 8px; }
  .si__cats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .si__cat { position: relative; min-height: 128px; padding: 16px; border-radius: 20px; overflow: clip; display: grid; align-content: start; gap: 8px; isolation: isolate;
    background: radial-gradient(90% 90% at 80% 90%, color-mix(in oklab, var(--g) 34%, #23242a), #131417 75%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .08); transition: box-shadow .3s; }
  .si__cn { font: 800 clamp(16px, 4.1vw, 24px)/1.05 var(--f-display); text-transform: uppercase; letter-spacing: -.03em; }
  .si__cat b { font: 800 var(--t-mono)/1 var(--f-mono); color: var(--c-dim); }
  .si__cat img { position: absolute; right: -6%; bottom: -8%; width: 60%; height: 80%; object-fit: contain; object-position: 100% 100%; z-index: -1;
    filter: drop-shadow(0 12px 14px rgb(0 0 0 / .6)); transition: scale .6s var(--ease), rotate .6s var(--ease); }
  @media (hover: hover) {
    .si__bike:hover, .si__cat:hover { box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--g) 70%, transparent), 0 0 40px -14px var(--g); }
    .si__bike:hover img { scale: 1.06; }
    .si__cat:hover img { scale: 1.1; rotate: -5deg; }
  }
  @media (min-width: 900px) {
    .si { padding-block: 26px 8px; }
    .si__bikes { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); overflow: visible; margin-inline: 0; padding-inline: 0; }
    .si__cats { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
    .si__cat { min-height: 156px; }
  }
  .si__load { display: flex; gap: 8px; padding: 40px 4px; }
  .si__load i { width: 10px; height: 10px; border-radius: 50%; background: var(--c-dim); animation: si-dot 1s var(--ease) infinite alternate; }
  .si__load i:nth-child(2) { animation-delay: .15s; } .si__load i:nth-child(3) { animation-delay: .3s; }
  @keyframes si-dot { to { opacity: .2; translate: 0 -6px; } }

  /* ── nothing found ── */
  .srch__none { display: grid; justify-items: start; gap: 18px; padding-top: 28px; }
  .srch__none[hidden] { display: none; }
  .sn__big { font: 800 clamp(32px, 8vw, 88px)/.98 var(--f-display); text-transform: uppercase; letter-spacing: -.04em; text-wrap: balance; }
  .sn__big b { font-weight: inherit; color: transparent; -webkit-text-stroke: 1.5px var(--c-text); overflow-wrap: anywhere; }
  .sn__dym { font: 700 var(--t-lead)/1.2 var(--f-ui); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; min-height: 48px; }
  .sn__dym b { font-weight: 800; }
  .sn__t { color: var(--c-dim); font-size: var(--t-lead); }
  .sn__acts { display: flex; flex-wrap: wrap; gap: 10px; }
  .srch__none .si__chips { margin-top: 8px; }

  /* ── keys + status ── */
  .srch__keys { display: none; }
  @media (min-width: 900px) and (hover: hover) and (pointer: fine) {
    .srch__keys { display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 14px 0 18px; border-top: 1px solid var(--c-hair);
      font: 700 var(--t-mono)/1 var(--f-mono); letter-spacing: .04em; color: var(--c-dim); }
    .srch__keys span { display: inline-flex; align-items: center; gap: 6px; }
    .srch__keys kbd { display: inline-grid; place-items: center; min-width: 28px; height: 28px; padding: 0 7px; border-radius: 7px; font: inherit; color: var(--c-text);
      border: 1px solid var(--c-line); border-bottom-width: 2px; background: rgb(255 255 255 / .05); }
  }
  .srch__note {
    position: absolute; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 4; translate: -50% 12px; opacity: 0; pointer-events: none;
    width: max-content; max-width: calc(100% - 32px); padding: 14px 18px; border-radius: 14px; background: var(--c-text); color: var(--c-on-acid); font-weight: 700;
    box-shadow: 0 16px 40px rgb(0 0 0 / .5); transition: opacity .25s, translate .4s var(--ease);
  }
  .srch__note.is-on { opacity: 1; translate: -50% 0; }
  @media (min-width: 900px) { .srch__note { bottom: 72px; } }
  .srch__fly { z-index: 10; }
  .srch .cartbtn.is-bump .cartbtn__ic { animation: cart-kick .6s var(--ease); }

  @media (prefers-reduced-motion: reduce) {
    .srch, .srch[open] { clip-path: none; }
    .srch__ghost span { animation: none; }
    .pv__stage img { animation: none; }
  }
}
