/* Gulpit Search: glass overlay. Every rule is prefixed .gs- so Avada styles do not leak in. */
:root{
  --gs-accent:#d60000; --gs-blur:30px; --gs-size:80vw; --gs-size-h:80vh;
  --gs-fg:#1d1414; --gs-muted:#6f5f5c; --gs-line:rgba(60,20,20,.12);
  --gs-glass:rgba(255,250,248,.62); --gs-edge:rgba(255,255,255,.75); --gs-shine:rgba(255,255,255,.55);
  --gs-hover:rgba(255,255,255,.66); --gs-scrim:rgba(40,10,10,.24);
  --gs-ok:#1f8a4c; --gs-ok-bg:rgba(31,138,76,.12); --gs-warn:#a86400; --gs-warn-bg:rgba(200,130,0,.14);
  --gs-off:#8a7c79; --gs-off-bg:rgba(120,100,100,.14);
}

/* ---- triggers ---- */
.gs-trigger{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font:inherit;color:inherit}
.gs-trigger:focus-visible{outline:2px solid var(--gs-accent);outline-offset:3px}
.gs-trigger--bar{min-width:220px;max-width:440px;width:100%;padding:9px 14px;border-radius:999px;
  background:var(--gs-glass);border:1px solid var(--gs-line);color:var(--gs-muted);font-size:14px;
  -webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%)}
.gs-trigger--bar:hover{color:var(--gs-fg);border-color:var(--gs-accent)}
.gs-trigger--bar span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-trigger--bar svg{color:var(--gs-accent);flex:none}
.gs-trigger--icon{width:40px;height:40px;justify-content:center;border-radius:50%}
.gs-trigger--icon:hover{color:var(--gs-accent)}
.gs-trigger kbd,.gs-foot kbd{font:600 11px/1.4 inherit;padding:1px 6px;border-radius:6px;border:1px solid var(--gs-line);background:var(--gs-shine);color:var(--gs-muted)}
@media (max-width:640px){.gs-trigger--bar{min-width:0}.gs-trigger kbd{display:none}}

/* ---- overlay ---- */
/* Above everything the theme stacks (ribbons, sticky bars, chat bubbles). It starts below the site header,
   so the header stays crisp and clickable while the rest of the page is covered. */
.gs-scrim{position:fixed;inset:var(--gs-top,0px) 0 0 0;z-index:2147483000;display:grid;place-items:center;background:var(--gs-scrim);
  padding:calc(env(safe-area-inset-top,0px) + 2vh) 16px calc(max(var(--gs-bottom,0px),env(safe-area-inset-bottom,0px)) + 2vh);
  opacity:0;transition:opacity .22s ease;font-family:inherit;color:var(--gs-fg);-webkit-font-smoothing:antialiased}
.gs-scrim[hidden]{display:none!important}
.gs-scrim.gs-open{opacity:1}
.gs-scrim *{box-sizing:border-box}
/* The theme paints a gradient through the text of every link (background-clip:text). Inside search that
   leaks clipped text and recolours rows, so links here get plain backgrounds and their own colours. */
.gs-scrim a,.gs-toast a{background-image:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:currentColor!important;animation:none!important}
html.gs-lock,html.gs-lock body{overflow:hidden!important;overscroll-behavior:none}
.gs-win{position:relative;display:flex;flex-direction:column;overflow:hidden;
  width:min(var(--gs-size),1000px);height:min(var(--gs-size-h),780px,calc(100vh - var(--gs-top,0px) - var(--gs-bottom,0px) - 4vh));border-radius:28px;
  background:var(--gs-glass);border:1px solid var(--gs-edge);
  -webkit-backdrop-filter:blur(var(--gs-blur)) saturate(170%);backdrop-filter:blur(var(--gs-blur)) saturate(170%);
  box-shadow:0 30px 80px rgba(60,0,0,.28),inset 0 1px 0 var(--gs-shine);
  transform:translateY(14px) scale(.97);transition:transform .32s cubic-bezier(.2,.9,.25,1.15)}
.gs-open .gs-win{transform:none}
.gs-win::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(135deg,var(--gs-shine),transparent 38%)}
/* Live border: a soft colour band slowly circling the edge (Siri-style). The ring is cut out with a mask, so only the edge moves. */
@property --gs-spin{syntax:"<angle>";inherits:false;initial-value:0deg}
.gs-live::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;padding:2px;
  background:conic-gradient(from var(--gs-spin),transparent 0deg,var(--gs-accent) 40deg,#ff8a3d 80deg,#ffc94d 110deg,#e2457a 150deg,transparent 200deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  filter:blur(.6px) saturate(120%);opacity:.75;animation:gs-spin 7s linear infinite}
@keyframes gs-spin{to{--gs-spin:360deg}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.gs-win{background:rgba(255,250,248,.97)}}

.gs-bar{position:relative;display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gs-line)}
.gs-bar>svg{flex:none;color:var(--gs-accent)}
#gs-q{all:unset;flex:1;min-width:0;font-size:clamp(19px,2.4vw,26px);font-weight:600;letter-spacing:-.01em;color:var(--gs-fg);line-height:1.3}
#gs-q::placeholder{color:var(--gs-muted);opacity:.8}
#gs-q::-webkit-search-cancel-button{-webkit-appearance:none}
.gs-close{all:unset;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--gs-muted);background:var(--gs-hover)}
.gs-close:focus-visible{outline:2px solid var(--gs-accent)}
.gs-close-x{display:none}

.gs-body{position:relative;flex:1;overflow-y:auto;padding:16px 20px 22px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.gs-lbl{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:var(--gs-muted);margin:6px 0 10px}
.gs-lbl-gap{margin-top:22px}
/* Desktop: chips share the full width evenly (wrapping to a second row only when they must). */
.gs-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;margin-bottom:22px}
.gs-chips .gs-chip{justify-content:center}
.gs-empty+.gs-lbl{margin-top:34px}
.gs-chip{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--gs-line);background:var(--gs-hover);border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px;color:var(--gs-fg);transition:border-color .15s,background .15s}
.gs-chip i{width:9px;height:9px;border-radius:50%;flex:none}
.gs-chip.gs-on{border-color:var(--gs-accent);background:color-mix(in srgb,var(--gs-accent) 10%,transparent)}
.gs-chip:focus-visible{outline:2px solid var(--gs-accent)}

.gs-groups{display:flex;flex-direction:column;gap:18px}
.gs-group{min-width:0}
.gs-group h3{display:flex;justify-content:space-between;align-items:baseline;font-size:16px;font-weight:700;margin:4px 0 6px;color:var(--gs-fg);line-height:1.3}
.gs-group h3 small{font-weight:500;font-size:12px;color:var(--gs-muted)}
.gs-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;margin:0 -10px;border-radius:14px;text-decoration:none!important;color:inherit!important;cursor:pointer}
.gs-row.gs-active{background:var(--gs-hover)}
/* Hover only where there is a real pointer; on phones a tap leaves :hover stuck on whatever is under the finger. */
@media (hover:hover){.gs-row:hover{background:var(--gs-hover)}.gs-chip:hover{border-color:var(--gs-accent);background:color-mix(in srgb,var(--gs-accent) 10%,transparent)}}
.gs-thumb{width:44px;height:44px;border-radius:13px;object-fit:cover;display:block;background:var(--gs-off-bg)}
.gs-thumb.gs-ing{border-radius:50%}
.gs-thumb.gs-dot{box-shadow:inset 0 -6px 12px rgba(0,0,0,.18),inset 0 2px 4px rgba(255,255,255,.45)}
.gs-name{font-weight:700;font-size:15px;line-height:1.25;display:flex;gap:4px 8px;align-items:center;flex-wrap:wrap;color:var(--gs-fg)}
.gs-name mark{background:transparent;color:var(--gs-accent);font-weight:800;padding:0}
.gs-line{font-size:13px;line-height:1.4;color:var(--gs-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Two lines max. A plain height cap: line-clamp still paints the hidden third line faintly over the glass in Chromium. */
.gs-snip{white-space:normal;display:block;max-height:2.8em;overflow:hidden;overflow-wrap:anywhere}
.gs-snip mark{background:color-mix(in srgb,var(--gs-accent) 12%,transparent);color:var(--gs-fg);font-weight:600;padding:0 2px;border-radius:3px}
.gs-badge{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;line-height:1.4}
.gs-b-ok{color:var(--gs-ok);background:var(--gs-ok-bg)}.gs-b-later{color:var(--gs-warn);background:var(--gs-warn-bg)}.gs-b-out{color:var(--gs-off);background:var(--gs-off-bg)}
.gs-act{display:flex;align-items:center;gap:10px}
.gs-price{font-variant-numeric:tabular-nums;font-weight:600;font-size:14px;white-space:nowrap}
.gs-add{all:unset;cursor:pointer;width:34px;height:34px;border-radius:50%;background:var(--gs-accent);color:#fff;font-size:20px;line-height:34px;text-align:center;transition:transform .12s,background .2s}
.gs-add:active{transform:scale(.9)}
.gs-add:focus-visible{outline:2px solid var(--gs-fg);outline-offset:2px}
.gs-add.gs-done{background:var(--gs-ok)}
.gs-add.gs-busy{opacity:.6;pointer-events:none}
.gs-add[disabled]{background:var(--gs-off-bg);color:var(--gs-off);cursor:not-allowed}
.gs-pill{all:unset;cursor:pointer;font-size:12px;font-weight:700;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--gs-accent) 10%,transparent);color:var(--gs-accent);white-space:nowrap}
.gs-why{font-size:12.5px;color:var(--gs-muted);margin:14px 0 0}

.gs-empty{max-width:460px;margin:6vh auto 0;text-align:center}
.gs-empty h3{font-size:22px;margin:0 0 6px;color:var(--gs-fg);line-height:1.25}
.gs-empty p{color:var(--gs-muted);margin:0 0 18px}
.gs-ctas{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.gs-cta,.gs-ghost{display:inline-block;border-radius:999px;padding:11px 18px;font-weight:700;font-size:14px;text-decoration:none!important}
.gs-cta{background:var(--gs-accent);color:#fff!important}
.gs-ghost{border:1px solid var(--gs-line);background:var(--gs-hover);color:var(--gs-fg)!important}
.gs-brand{display:none}
.gs-skel{height:52px;border-radius:14px;background:linear-gradient(90deg,var(--gs-off-bg),var(--gs-hover),var(--gs-off-bg));background-size:200% 100%;animation:gs-sh 1.2s infinite;margin-bottom:8px}
@keyframes gs-sh{to{background-position:-200% 0}}

.gs-foot{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;padding:10px 20px;border-top:1px solid var(--gs-line);font-size:12px;color:var(--gs-muted)}
.gs-keys{display:flex;gap:14px}

.gs-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);z-index:2147483001;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:var(--gs-fg);color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;transition:all .25s;display:flex;gap:12px;align-items:center;max-width:calc(100vw - 32px)}
.gs-toast.gs-show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.gs-toast a{color:#fff!important;text-decoration:underline!important}

/* ---- easter eggs ---- */
.gs-egg{position:relative;display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border-radius:16px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--gs-accent) 12%,transparent),color-mix(in srgb,#ffc94d 22%,transparent));
  border:1px solid color-mix(in srgb,var(--gs-accent) 22%,transparent)}
.gs-egg-ic{flex:none;font-size:26px;line-height:1;display:inline-block}
.gs-egg-msg{flex:1;min-width:0;font-weight:700;font-size:15px;line-height:1.35;color:var(--gs-fg)}
.gs-egg-btn{all:unset;box-sizing:border-box;cursor:pointer;flex:none;padding:8px 14px;border-radius:999px;background:var(--gs-accent);color:#fff!important;font-weight:700;font-size:13px;white-space:nowrap;text-decoration:none!important}
.gs-egg-btn:focus-visible{outline:2px solid var(--gs-fg);outline-offset:2px}
.gs-egg-go{animation:gs-egg-in .5s cubic-bezier(.2,.9,.25,1.2)}
@keyframes gs-egg-in{from{opacity:0;transform:translateY(-8px) scale(.97)}}
/* hero: when there is nothing to list, the egg fills the space */
.gs-egg--hero{flex-direction:column;justify-content:center;text-align:center;gap:14px;min-height:min(46vh,380px);padding:34px 22px;margin-bottom:24px;border-radius:22px}
.gs-egg--hero .gs-egg-ic{font-size:64px}
.gs-egg--hero .gs-egg-msg{flex:none;font-size:clamp(20px,2.6vw,28px);font-weight:800;letter-spacing:-.01em;max-width:620px}
.gs-egg--hero .gs-egg-btn{padding:11px 22px;font-size:15px}
.gs-egg--hero.gs-egg--ribbon{min-height:0;flex-direction:row;padding:18px 22px}
.gs-egg--hero.gs-egg--ribbon .gs-egg-ic{font-size:30px}
/* flash: the strip shines and the whole window glows once */
.gs-egg-go.gs-egg--flash{overflow:hidden}
.gs-egg-go.gs-egg--flash::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.85) 50%,transparent 70%);transform:translateX(-100%);animation:gs-sweep 1.1s .15s ease-out}
@keyframes gs-sweep{to{transform:translateX(100%)}}
.gs-win-flash{animation:gs-glow 1.6s ease-out}
@keyframes gs-glow{30%{box-shadow:0 0 0 2px var(--gs-accent),0 0 70px color-mix(in srgb,#ffc94d 70%,transparent),0 30px 80px rgba(60,0,0,.28)}}
/* ribbon: a yellow band with the message running through it, like the site's ribbon */
.gs-egg--ribbon{background:#f7d34a;border:0;border-radius:10px;margin:0 0 18px;overflow:hidden}
.gs-egg--ribbon .gs-egg-msg{overflow:hidden;white-space:nowrap;font-size:17px;font-weight:800;color:#1d1414}
.gs-egg-run{display:inline-flex;gap:48px;animation:gs-run 14s linear infinite}
@keyframes gs-run{to{transform:translateX(calc(-50% - 24px))}}
/* confetti and sparkles fly out of the strip */
.gs-bit{position:absolute;left:50%;top:50%;width:7px;height:11px;border-radius:2px;background:var(--c);opacity:0;pointer-events:none;animation:gs-bit 1.3s var(--d) cubic-bezier(.15,.7,.3,1) forwards}
.gs-egg--sparkle .gs-bit{width:8px;height:8px;border-radius:50%;box-shadow:0 0 10px var(--c)}
@keyframes gs-bit{0%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r)) scale(.6)}}
/* icon animations */
.gs-egg-go.gs-egg--wave .gs-egg-ic{transform-origin:70% 80%;animation:gs-wave 1.3s ease-in-out}
@keyframes gs-wave{15%{transform:rotate(14deg)}30%{transform:rotate(-8deg)}45%{transform:rotate(14deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(10deg)}}
.gs-egg-go.gs-egg--pulse .gs-egg-ic{animation:gs-pulse 1.2s ease-in-out}
@keyframes gs-pulse{20%,60%{transform:scale(1.35)}40%,80%{transform:scale(1)}}
.gs-egg-go.gs-egg--wiggle .gs-egg-ic{animation:gs-wiggle .9s ease-in-out}
@keyframes gs-wiggle{20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-10deg)}80%{transform:rotate(6deg)}}
.gs-win-wobble{animation:gs-wobble .7s ease-in-out}
@keyframes gs-wobble{20%{transform:translateX(-8px) rotate(-.6deg)}40%{transform:translateX(7px) rotate(.5deg)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}

@media (max-width:640px){
  /* Phones: full-screen search above the theme's header and bars (they sit above the normal overlay),
     kept clear of the keyboard, with each row on one clean line. */
  /* The sheet runs to the bottom of the screen, behind the see-through keyboard; the results get the
     keyboard's height as bottom padding instead, so nothing of the page shows in between. */
  .gs-scrim{padding:env(safe-area-inset-top,0px) 0 0;place-items:stretch;background:transparent}
  .gs-win{width:100vw;height:100%;border-radius:0;border:0;box-shadow:none;background:rgba(255,250,248,.8);
    -webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%)}
  .gs-bar{padding:10px 14px;gap:10px}
  .gs-bar>svg{width:20px;height:20px}
  #gs-q{font-size:18px}
  .gs-close{padding:6px 10px}
  .gs-close-esc{display:none}.gs-close-x{display:inline}
  .gs-body{padding:12px 14px calc(var(--gs-bottom,0px) + env(safe-area-inset-bottom,0px) + 18px);display:flex;flex-direction:column;scrollbar-width:none}
  .gs-body::-webkit-scrollbar{display:none}
  .gs-body>*{flex:none;min-width:0}
  /* Brand mark sits in the empty space at the bottom; pushed below the results when they are long. */
  .gs-brand{display:block;margin-top:auto;padding:36px 0 8px;text-align:center}
  .gs-brand i{display:inline-block;width:132px;height:44px;background:var(--gs-accent);opacity:.32;
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
  .gs-kb .gs-brand{display:none}
  .gs-lbl{font-size:10.5px;margin:4px 0 8px}
  .gs-lbl-gap{margin-top:16px}
  .gs-chips{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -14px 16px;padding:0 14px 2px;touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
  .gs-chips::-webkit-scrollbar{display:none}
  .gs-chip{flex:none;padding:6px 12px;font-size:13px;gap:6px}
  .gs-chips .gs-chip{justify-content:flex-start}
  .gs-groups{gap:12px}
  .gs-group h3{font-size:14px;margin:2px 0 4px}
  .gs-row{grid-template-columns:40px minmax(0,1fr) auto;gap:10px;padding:7px 8px;margin:0 -8px;border-radius:12px}
  .gs-thumb{width:40px;height:40px;border-radius:11px}
  .gs-name{font-size:14px;gap:2px 6px}
  .gs-name>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .gs-badge{font-size:9.5px;padding:1px 6px}
  .gs-line{font-size:12px}
  .gs-price{font-size:13px}
  span.gs-pill{display:none}
  .gs-add{width:30px;height:30px;line-height:30px;font-size:18px}
  .gs-empty{margin-top:3vh}
  .gs-foot{display:none}
}
@media (max-width:640px){@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.gs-win{background:rgba(255,250,248,.97)}}}
@media (prefers-reduced-motion:reduce){.gs-scrim,.gs-win,.gs-add,.gs-toast{transition:none!important}.gs-skel,.gs-live::after,.gs-egg,.gs-egg *,.gs-egg::after,.gs-win-flash,.gs-win-wobble{animation:none!important}.gs-bit{display:none}}
