/* ════════════════════════════════════════════════════════════════════════
   GUILDS · "The Halls"  ·  Codex design system
   Spotlight (Guild of the Week) + faceted controls + heraldic guild cards
   with recent-house thumbnails, activity pulse, stat ribbon, inline join.
   Newsreader / Manrope / JetBrains Mono · amber-gold on obsidian.
   Namespace: .glx
   ════════════════════════════════════════════════════════════════════════ */
.glx{
  --ink:#f1f0f6; --ink-soft:#c6c8d2; --ink-mute:#8b90a0;
  --gold:#e0a64e; --gold-2:#f0c878; --gold-3:#b9802f;
  --void:#07080c; --void-2:#0a0b10; --panel:rgba(255,255,255,.035);
  --line:rgba(255,255,255,.10); --line-2:rgba(224,166,78,.28);
  --ald:#d8b24a; --dag:#c0524a; --ebon:#6a9eb4;   /* alliance tints */
  --disp:'Newsreader',Georgia,serif; --body:'Manrope',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  position:relative; font-family:var(--body); color:var(--ink); background:var(--void);
  overflow:hidden; isolation:isolate;
}
.glx *{box-sizing:border-box}
.glx ::selection{background:rgba(224,166,78,.26);color:#fff}
.glx a{text-decoration:none;color:inherit}
.glx::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg, rgba(7,8,12,.84), rgba(7,8,12,.93) 55%, var(--void) 100%),
    radial-gradient(1100px 620px at 82% -8%, rgba(224,166,78,.10), transparent 60%),
    url('/img/backgrounds/tribunal-temple-mournhold.webp') center top / cover no-repeat;
}
.glx__grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.glx__wrap{position:relative;z-index:1;max-width:1320px;margin:0 auto}

/* ── page intro ─────────────────────────────────────────────────────────── */
.glx-intro{padding:128px clamp(22px,5vw,56px) 6px}
.glx-intro__kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;
  letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;
  animation:glxRise .8s .02s cubic-bezier(.16,1,.3,1) both}
.glx-intro__kicker::before{content:"";width:28px;height:1px;background:var(--gold);opacity:.75}
.glx-intro__title{font-family:var(--disp);font-weight:500;font-size:clamp(2.3rem,5vw,3.6rem);line-height:1;
  letter-spacing:-.025em;color:#fff;margin:0;animation:glxRise .9s .1s cubic-bezier(.16,1,.3,1) both}
.glx-intro__title em{font-style:italic;color:var(--gold-2)}
.glx-intro__lede{margin:16px 0 0;max-width:56ch;font-size:1.06rem;line-height:1.65;color:var(--ink-soft);
  animation:glxRise .9s .18s cubic-bezier(.16,1,.3,1) both}
@keyframes glxRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* ── SPOTLIGHT (Guild of the Week) ──────────────────────────────────────── */
.glx-spot{position:relative;margin:30px clamp(22px,5vw,56px) 0;border-radius:24px;overflow:hidden;
  border:1px solid var(--line);min-height:340px;display:flex;align-items:flex-end;
  --accent:#e0a64e;animation:glxRise 1s .12s cubic-bezier(.16,1,.3,1) both}
.glx-spot__bg{position:absolute;inset:0;z-index:0;background:#0c1018 center/cover no-repeat;
  filter:brightness(.6) saturate(1.05);transform:scale(1.06);animation:glxKen 22s ease-in-out infinite alternate}
@keyframes glxKen{from{transform:scale(1.06) translate(0,0)}to{transform:scale(1.14) translate(-1.4%,-2%)}}
.glx-spot__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg, rgba(6,7,11,.92) 0%, rgba(6,7,11,.7) 40%, rgba(6,7,11,.25) 72%, rgba(6,7,11,.6) 100%),
  radial-gradient(900px 500px at 12% 120%, color-mix(in srgb,var(--accent) 22%,transparent), transparent 60%),
  linear-gradient(0deg, rgba(6,7,11,.7), transparent 46%)}
.glx-spot__tag{position:absolute;top:18px;left:20px;z-index:3;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.22em;text-transform:uppercase;color:#0a0a0a;padding:7px 14px;border-radius:99px;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));box-shadow:0 8px 24px -8px rgba(224,166,78,.7)}
.glx-spot__inner{position:relative;z-index:2;display:flex;gap:clamp(20px,3vw,40px);align-items:flex-end;flex-wrap:wrap;
  padding:clamp(28px,4vw,44px);width:100%}
.glx-spot__lead{flex:1;min-width:260px}
.glx-spot__crestrow{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.glx-spot__name{font-family:var(--disp);font-weight:600;font-size:clamp(2rem,4vw,3rem);line-height:1;
  letter-spacing:-.02em;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.6)}
.glx-spot__motto{font-family:var(--disp);font-style:italic;font-size:clamp(1.05rem,1.6vw,1.35rem);color:var(--gold-2);margin-bottom:14px;max-width:46ch}
.glx-spot__meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.glx-spot__faces{display:flex;align-items:center;margin-bottom:20px}
.glx-spot__faces img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid rgba(6,7,11,.9);margin-left:-10px;background:#1a1a22}
.glx-spot__faces img:first-child{margin-left:0}
.glx-spot__cta{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:12px;
  font-family:var(--body);font-weight:600;font-size:.96rem;color:#0a0a0a;
  background:linear-gradient(180deg,var(--gold-2),var(--gold));box-shadow:0 14px 38px -12px rgba(224,166,78,.6);
  transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.glx-spot__cta:hover{transform:translateY(-3px);box-shadow:0 22px 50px -12px rgba(224,166,78,.74)}
.glx-spot__cta .arr{transition:transform .25s}
.glx-spot__cta:hover .arr{transform:translateX(4px)}
/* recent-build mini-rail on the right */
.glx-spot__rail{display:flex;gap:10px;align-items:flex-end}
.glx-spot__shot{width:clamp(96px,12vw,148px);height:clamp(70px,9vw,104px);border-radius:12px;overflow:hidden;
  border:1px solid rgba(255,255,255,.16);box-shadow:0 16px 36px -16px rgba(0,0,0,.8);position:relative;
  background:#11131a center/cover no-repeat;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.glx-spot__shot:nth-child(2){margin-bottom:14px}
.glx-spot__shot:hover{transform:translateY(-4px)}
@media (max-width:760px){ .glx-spot__rail{display:none} }

/* ── heraldic crest (shared) ────────────────────────────────────────────── */
.glx-crest{position:relative;flex:none;display:grid;place-items:center;border-radius:50%;overflow:hidden;
  background:
    radial-gradient(circle at 32% 28%, rgba(255,255,255,.35), transparent 42%),
    linear-gradient(150deg, color-mix(in srgb,var(--accent) 85%,#15151c), color-mix(in srgb,var(--accent) 35%,#0b0c11));
  color:#fff;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5);
  box-shadow:0 8px 22px -8px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.18),
    0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent), 0 0 22px -4px color-mix(in srgb,var(--accent) 80%,transparent)}
.glx-crest::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.5) 50%,transparent 60%);
  transform:translateX(-120%);}
.glx-crest img{width:100%;height:100%;object-fit:cover}
.glx-crest--sm{width:58px;height:58px;font-size:26px}
.glx-crest--lg{width:84px;height:84px;font-size:38px}

/* ── CONTROLS (sticky) ──────────────────────────────────────────────────── */
.glx-controls{position:sticky;top:72px;z-index:30;margin-top:34px;
  background:rgba(7,8,12,.82);backdrop-filter:blur(14px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.glx-controls__bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px clamp(22px,5vw,56px);max-width:1320px;margin:0 auto}
.glx-search{flex:1;min-width:200px;display:flex;align-items:center;gap:10px;padding:9px 16px;border-radius:99px;
  background:var(--panel);border:1px solid var(--line)}
.glx-search:focus-within{border-color:var(--line-2)}
.glx-search__icon{color:var(--gold);font-size:14px}
.glx-search input{flex:1;background:none;border:none;outline:none;color:var(--ink);font-family:var(--body);font-size:.92rem}
.glx-search input::placeholder{color:var(--ink-mute)}
.glx-select{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:99px;
  background:var(--panel);border:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-soft)}
.glx-select select{appearance:none;background:none;border:none;outline:none;color:var(--ink);font-family:var(--mono);
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding-right:6px}
.glx-select select option{background:#0c0d12;color:var(--ink);text-transform:none}
.glx-filters-toggle{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;cursor:pointer;
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
  background:var(--panel);border:1px solid var(--line);transition:color .2s,border-color .2s}
.glx-filters-toggle:hover{color:#fff;border-color:var(--line-2)}
.glx-filters-toggle.is-on{color:#0a0a0a;background:linear-gradient(180deg,var(--gold-2),var(--gold));border-color:transparent}
.glx-filters-toggle__n{font-size:10px;padding:1px 7px;border-radius:99px;background:rgba(224,166,78,.25);color:var(--gold-2)}
.glx-filters-toggle.is-on .glx-filters-toggle__n{background:rgba(0,0,0,.2);color:#0a0a0a}

/* expandable facet panel */
.glx-filters{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1)}
.glx-filters.is-open{max-height:520px}
.glx-filters__inner{padding:6px clamp(22px,5vw,56px) 18px;max-width:1320px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.glx-facet{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.glx-facet__label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);min-width:96px}
.glx-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:99px;cursor:pointer;
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
  background:var(--panel);border:1px solid var(--line);transition:color .2s,background .2s,border-color .2s}
.glx-pill:hover{color:#fff;border-color:var(--line-2)}
.glx-pill.is-active{color:#0a0a0a;background:linear-gradient(180deg,var(--gold-2),var(--gold));border-color:transparent;font-weight:600}
.glx-pill__count{font-size:9.5px;opacity:.7;padding:1px 6px;border-radius:99px;background:rgba(255,255,255,.1)}
.glx-pill.is-active .glx-pill__count{background:rgba(0,0,0,.18)}
.glx-pill--ald.is-active{background:linear-gradient(180deg,#e6c25c,var(--ald))}
.glx-pill--dag.is-active{background:linear-gradient(180deg,#d56a62,var(--dag))}
.glx-pill--ebon.is-active{background:linear-gradient(180deg,#82b6c8,var(--ebon))}
.glx-toggle{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:99px;cursor:pointer;
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);
  background:var(--panel);border:1px solid var(--line);transition:color .2s,border-color .2s}
.glx-toggle__dot{width:8px;height:8px;border-radius:50%;background:var(--ink-mute);transition:background .2s,box-shadow .2s}
.glx-toggle.is-on{color:#fff;border-color:rgba(122,180,122,.4)}
.glx-toggle.is-on .glx-toggle__dot{background:#7ab47a;box-shadow:0 0 10px rgba(122,180,122,.7)}
.glx-clear{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);
  background:none;border:none;cursor:pointer;padding:6px;transition:color .2s}
.glx-clear:hover{color:var(--gold-2)}
.glx-resultcount{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-left:auto}

/* ── GRID ───────────────────────────────────────────────────────────────── */
.glx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:clamp(20px,2.4vw,28px);
  padding:clamp(30px,4vw,48px) clamp(22px,5vw,56px) clamp(70px,9vw,120px)}
.glx-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0));--accent:#e0a64e;
  opacity:0;transform:translateY(22px);transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .4s,box-shadow .5s,opacity .6s}
.glx-card.in{opacity:1;transform:none}
.glx-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);
  box-shadow:0 30px 70px -34px rgba(0,0,0,.8),0 0 50px -22px color-mix(in srgb,var(--accent) 60%,transparent)}
.glx-card[hidden]{display:none}
.glx-card__topline{position:absolute;top:0;left:0;right:0;height:2px;z-index:4;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.85}
/* full-card overlay link (so house thumbs + join button can be their own links) */
.glx-card__link{position:absolute;inset:0;z-index:1;border-radius:inherit}

/* banner + parallax */
.glx-card__banner{position:relative;height:150px;overflow:hidden;background:#0c0d12;perspective:600px}
.glx-card__banner-img{position:absolute;inset:-6%;background-position:center;background-size:cover;
  transform:scale(1.04);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.glx-card:hover .glx-card__banner-img{transform:scale(1.1)}
.glx-card__banner-fill{position:absolute;inset:0;
  background:radial-gradient(120% 120% at 50% 0%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%),linear-gradient(160deg,rgba(255,255,255,.04),rgba(0,0,0,.2))}
.glx-card__banner-scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 28%,rgba(10,11,16,.9) 100%)}
.glx-card__ribbons{position:absolute;top:13px;right:13px;z-index:3;display:flex;gap:7px}
.glx-ribbon{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:99px;
  backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16);background:rgba(10,11,16,.55);color:var(--ink-soft)}
.glx-ribbon--hot{color:#ffd9a8;border-color:rgba(224,120,60,.5);background:rgba(60,28,12,.6)}
.glx-ribbon--recruit{color:#bdf0bd;border-color:rgba(122,180,122,.45);background:rgba(18,40,18,.55)}
.glx-card__crestwrap{position:absolute;left:22px;bottom:-26px;z-index:3}

/* body */
.glx-card__body{padding:38px 22px 14px;flex:1;display:flex;flex-direction:column}
.glx-card__toprow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.glx-card__name{font-family:var(--disp);font-weight:600;font-size:1.45rem;line-height:1.1;letter-spacing:-.01em;color:var(--accent)}
.glx-card__alliance{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:99px;
  border:1px solid var(--line);color:var(--ink-mute);flex:none;margin-top:4px}
.glx-card__alliance[data-a="aldmeri"]{color:var(--ald);border-color:color-mix(in srgb,var(--ald) 40%,transparent)}
.glx-card__alliance[data-a="daggerfall"]{color:var(--dag);border-color:color-mix(in srgb,var(--dag) 40%,transparent)}
.glx-card__alliance[data-a="ebonheart"]{color:var(--ebon);border-color:color-mix(in srgb,var(--ebon) 40%,transparent)}
.glx-card__motto{margin-top:6px;font-family:var(--disp);font-style:italic;font-size:.98rem;color:var(--ink-soft);opacity:.92}
.glx-card__meta{margin-top:13px;display:flex;flex-wrap:wrap;gap:7px}
.glx-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);padding:5px 9px;border:1px solid var(--line);border-radius:99px}
.glx-tag--accent{color:var(--gold-2);border-color:var(--line-2);background:rgba(224,166,78,.06)}
.glx-card__desc{margin-top:12px;font-size:.9rem;line-height:1.6;color:var(--ink-soft);opacity:.9}

/* activity pulse */
.glx-pulse{margin-top:14px;display:flex;align-items:center;gap:9px}
.glx-pulse__dots{display:flex;gap:4px}
.glx-pulse__dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.12)}
.glx-pulse__dot.on{background:var(--accent);box-shadow:0 0 7px color-mix(in srgb,var(--accent) 80%,transparent)}
.glx-pulse__label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute)}

/* recent house thumbnails */
.glx-houses{margin-top:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.glx-houses__shot{position:relative;z-index:2;aspect-ratio:4/3;border-radius:9px;overflow:hidden;background:#11131a center/cover no-repeat;
  border:1px solid var(--line);transition:transform .3s,border-color .3s}
.glx-houses__shot:hover{transform:translateY(-2px);border-color:var(--line-2)}
.glx-houses__shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.45));opacity:0;transition:opacity .3s}
.glx-houses__shot:hover::after{opacity:1}
.glx-houses__feat{position:absolute;top:5px;right:5px;font-size:8px;color:var(--gold-2)}
.glx-houses__empty{grid-column:1/-1;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-mute);opacity:.6;padding:8px 0;text-align:center;border:1px dashed var(--line);border-radius:9px}

/* footer */
.glx-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 22px;border-top:1px solid var(--line);margin-top:auto}
.glx-avatars{display:flex;align-items:center}
.glx-avatars img{width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid var(--void-2);margin-left:-9px;background:#1a1a22}
.glx-avatars img:first-child{margin-left:0}
.glx-avatars__more{margin-left:-9px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:9.5px;color:var(--ink-soft);background:#15161d;border:2px solid var(--void-2)}
.glx-card__actions{display:flex;align-items:center;gap:10px}
.glx-join{position:relative;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#bdf0bd;
  padding:7px 13px;border-radius:99px;border:1px solid rgba(122,180,122,.4);background:rgba(18,40,18,.4);cursor:pointer;transition:background .2s,transform .2s}
.glx-join:hover{background:rgba(28,60,28,.6);transform:translateY(-2px)}
.glx-card__enter{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2)}
.glx-card__enter .arr{transition:transform .25s}
.glx-card:hover .glx-card__enter .arr{transform:translateX(4px)}

/* ── EMPTY / NO RESULTS ─────────────────────────────────────────────────── */
.glx-empty{max-width:560px;margin:40px auto 120px;text-align:center;padding:54px 40px;border:1px solid var(--line-2);border-radius:20px;
  background:linear-gradient(180deg,rgba(224,166,78,.06),rgba(255,255,255,.02))}
.glx-empty__sigil{font-size:30px;color:var(--gold);margin-bottom:16px}
.glx-empty__text{font-family:var(--disp);font-size:1.3rem;color:var(--ink-soft)}
.glx-noresults{display:none;text-align:center;padding:60px 20px 120px;color:var(--ink-mute);font-family:var(--mono);
  font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.glx-noresults.show{display:block}

/* ── JOIN MODAL ─────────────────────────────────────────────────────────── */
.glx-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:24px;
  background:rgba(4,5,9,.78);backdrop-filter:blur(8px)}
.glx-modal.is-open{display:flex}
.glx-modal__box{width:min(480px,94vw);border:1px solid var(--line-2);border-radius:20px;overflow:hidden;
  background:linear-gradient(180deg,#0d0e14,#0a0b10);box-shadow:0 40px 120px -40px rgba(0,0,0,.9);
  transform:translateY(14px) scale(.98);opacity:0;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s}
.glx-modal.is-open .glx-modal__box{transform:none;opacity:1}
.glx-modal__head{padding:24px 26px 6px}
.glx-modal__kicker{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.glx-modal__title{font-family:var(--disp);font-size:1.5rem;color:#fff;margin:0}
.glx-modal__body{padding:14px 26px 8px}
.glx-modal__body p{font-size:.92rem;line-height:1.6;color:var(--ink-soft);margin:0 0 12px}
.glx-modal textarea{width:100%;min-height:96px;resize:vertical;border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.03);color:var(--ink);font-family:var(--body);font-size:.92rem;padding:12px 14px;outline:none}
.glx-modal textarea:focus{border-color:var(--line-2)}
.glx-modal__msg{min-height:18px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:6px 0}
.glx-modal__msg.err{color:#e88}
.glx-modal__msg.ok{color:#9d9}
.glx-modal__foot{display:flex;gap:10px;justify-content:flex-end;padding:10px 26px 24px}
.glx-btn{font-family:var(--body);font-weight:600;font-size:.9rem;padding:11px 22px;border-radius:11px;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);transition:color .2s,border-color .2s,transform .2s}
.glx-btn:hover{color:#fff;border-color:var(--line-2)}
.glx-btn--primary{color:#0a0a0a;border:none;background:linear-gradient(180deg,var(--gold-2),var(--gold));box-shadow:0 12px 30px -12px rgba(224,166,78,.6)}
.glx-btn--primary:hover{transform:translateY(-2px)}
.glx-btn[disabled]{opacity:.5;pointer-events:none}

/* toast */
.glx-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);z-index:10000;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:13px 22px;border-radius:99px;
  background:rgba(12,13,18,.95);border:1px solid var(--line-2);color:var(--gold-2);opacity:0;pointer-events:none;
  transition:opacity .3s,transform .3s}
.glx-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:680px){
  .glx-intro{padding-top:108px}
  .glx-controls{top:60px}
  .glx-grid{grid-template-columns:1fr}
  .glx-resultcount{display:none}
  .glx-facet__label{min-width:auto;flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){
  .glx-intro__kicker,.glx-intro__title,.glx-intro__lede,.glx-spot,.glx-card{animation:none!important;opacity:1!important;transform:none!important}
  .glx-spot__bg{animation:none}
  .glx-card__banner-img,.glx-card:hover{transition:none}
}
