
:root{
  --bg:#0b0b11;
  --surface:#12121a;
  --surface-2:#171722;
  --surface-3:#1d1d2a;
  --line:#2a2a38;
  --text:#f7f5fb;
  --muted:#aaa6b8;
  --purple:#8b5cf6;
  --purple-2:#a78bfa;
  --purple-soft:rgba(139,92,246,.14);
  --shadow:0 18px 60px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at 15% -10%, rgba(139,92,246,.12), transparent 30rem),
    radial-gradient(circle at 90% 0%, rgba(167,139,250,.08), transparent 28rem),
    var(--bg);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.site-header{
  position:sticky;top:0;z-index:30;
  display:grid;grid-template-columns:235px 1fr auto;gap:22px;align-items:center;
  min-height:74px;padding:0 28px;
  background:rgba(11,11,17,.9);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.brand{display:flex;align-items:center;gap:11px}
.brand-mark{
  width:34px;height:34px;display:grid;place-items:center;border-radius:10px;
  background:linear-gradient(135deg,var(--purple),var(--purple-2));color:white;font-size:18px
}
.brand strong{letter-spacing:.12em;font-size:17px;font-weight:800}
.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:.2em;margin-top:3px}
.nav{display:flex;align-items:center;gap:18px}
.nav>a,.nav-item>button{
  border:0;background:none;color:#d8d5e1;padding:26px 1px 23px;font-size:14px
}
.nav>a:hover,.nav-item>button:hover{color:#fff}
.nav-item{position:relative}
.menu{
  display:none;position:absolute;top:60px;left:-12px;min-width:185px;padding:8px;
  border:1px solid var(--line);border-radius:14px;background:#11111a;box-shadow:var(--shadow)
}
.menu a{display:block;padding:11px 12px;border-radius:9px;color:#d8d5e1;font-size:14px}
.menu a:hover{background:var(--purple-soft);color:white}
.has-menu:hover .menu{display:block}
.header-actions{display:flex;align-items:center;gap:9px}
.header-actions input{
  width:205px;background:#15151e;border:1px solid #272735;color:white;
  border-radius:10px;padding:10px 12px;outline:none
}
.header-actions input:focus{border-color:#6d4bd4;box-shadow:0 0 0 3px rgba(139,92,246,.1)}
.icon-btn,.secondary{
  color:var(--text);background:#15151e;border:1px solid #2d2d3a;border-radius:10px;padding:10px 13px
}
.icon-btn:hover,.secondary:hover{border-color:#4a3b74}
.icon-btn span{
  display:inline-grid;place-items:center;margin-left:6px;min-width:21px;height:21px;border-radius:999px;
  background:var(--purple);color:#fff;font-size:11px;font-weight:800
}
.hero{
  min-height:430px;display:flex;align-items:center;padding:70px 7vw;
  background:
    linear-gradient(90deg,rgba(10,10,16,.98) 0%,rgba(10,10,16,.9) 40%,rgba(10,10,16,.5) 72%,rgba(10,10,16,.75)),
    url("assets/hero.png") center/cover no-repeat;
  border-bottom:1px solid rgba(255,255,255,.05)
}
.hero-copy{max-width:620px}
.eyebrow{color:var(--purple-2);letter-spacing:.2em;text-transform:uppercase;font-size:11px;font-weight:700}
h1,h2,h3{font-family:inherit}
.hero h1{font-size:58px;line-height:1.02;font-weight:800;letter-spacing:-.03em;margin:15px 0 16px}
.hero p{font-size:17px;line-height:1.7;color:#c7c3cf;max-width:600px}
.actions{display:flex;gap:10px;margin-top:24px}
.primary{
  background:linear-gradient(135deg,var(--purple),var(--purple-2));border:0;color:white;
  border-radius:10px;padding:12px 17px;font-weight:800;box-shadow:0 8px 24px rgba(139,92,246,.18)
}
.primary:hover{filter:brightness(1.06)}
.full{width:100%}
.section{padding:42px 4.5vw}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}
.section-head h2{margin:4px 0 0;font-size:30px;font-weight:800;letter-spacing:-.02em}
.section-head p{margin:6px 0 0;color:var(--muted)}
.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.category-card{
  min-height:175px;display:flex;flex-direction:column;justify-content:end;padding:18px;border-radius:14px;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 80% 10%, rgba(139,92,246,.16), transparent 40%),
    linear-gradient(180deg,#171722,#111119);
  transition:.2s transform,.2s border-color,.2s background;
  position:relative;overflow:hidden
}
.category-card::before{
  content:"";position:absolute;width:110px;height:110px;right:-20px;top:-28px;border-radius:28px;
  background:linear-gradient(135deg,rgba(139,92,246,.16),rgba(167,139,250,.03));transform:rotate(18deg)
}
.category-card:hover{transform:translateY(-3px);border-color:#5f4b92;background:linear-gradient(180deg,#1a1926,#13131c)}
.category-card h3{position:relative;margin:0 0 6px;font-size:21px;font-weight:800}
.category-card small{position:relative;color:#a9a5b4;line-height:1.45}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.product-card{
  overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,#13131c,#0f0f16);
  transition:.2s transform,.2s border-color
}
.product-card:hover{transform:translateY(-2px);border-color:#45405b}
.product-thumb{
  height:205px;background:
    radial-gradient(circle at 70% 15%,rgba(139,92,246,.22),transparent 34%),
    linear-gradient(135deg,#232233,#13131c);
  background-size:cover;background-position:center
}
.product-body{padding:15px}
.pill{
  display:inline-flex;padding:5px 8px;border:1px solid #343044;border-radius:999px;
  background:#171520;color:#bdb5cf;font-size:10px;text-transform:uppercase;letter-spacing:.1em
}
.product-card h3{margin:11px 0 6px;font-size:18px;font-weight:800}
.product-card p{min-height:42px;color:var(--muted);font-size:13px;line-height:1.55}
.product-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.price{font-size:17px;font-weight:800;color:#d8ccff}
.breadcrumbs{display:flex;gap:8px;color:var(--muted);font-size:13px;margin-bottom:10px}
.empty{border:1px dashed var(--line);border-radius:14px;padding:48px;text-align:center;color:var(--muted)}
.cart-drawer{
  position:fixed;z-index:60;right:-440px;top:0;width:min(420px,100%);height:100dvh;padding:20px;
  background:#0e0e15;border-left:1px solid #2c2b37;transition:.25s right;display:flex;flex-direction:column
}
.cart-drawer.open{right:0}
.cart-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.cart-head button{background:none;border:0;color:white;font-size:34px}
#cartItems{flex:1;overflow:auto;padding:12px 0}
.cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px 0;border-bottom:1px solid #20202b}
.cart-item small{display:block;color:var(--muted);margin-top:4px}
.cart-remove{background:none;border:0;color:#b9a7ff}
.cart-footer{border-top:1px solid var(--line);padding-top:18px}
.cart-total{display:flex;justify-content:space-between;margin-bottom:14px;font-size:18px}
.cart-footer small{display:block;text-align:center;color:var(--muted);margin-top:10px}
.backdrop{display:none;position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.58)}
.backdrop.show{display:block}
footer{padding:30px 4.5vw;border-top:1px solid rgba(255,255,255,.06);color:var(--muted)}
@media(max-width:1180px){
  .site-header{grid-template-columns:1fr auto}.nav{display:none}
  .category-grid{grid-template-columns:repeat(2,1fr)}
  .product-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
  .site-header{padding:0 15px}.brand small,.header-actions input{display:none}
  .hero{min-height:400px;padding:45px 20px}.hero h1{font-size:42px}
  .section{padding:30px 16px}.category-grid,.product-grid{grid-template-columns:1fr}
}

.discord-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}


/* ===== v3 additions: CFX login / gifting / discount ===== */
.login-btn{
  color:#fff;
  background:linear-gradient(135deg,rgba(139,92,246,.16),rgba(167,139,250,.08));
  border:1px solid rgba(167,139,250,.35);
  border-radius:10px;
  padding:10px 13px;
  font-weight:750;
}
.login-btn:hover{border-color:var(--purple-2);background:rgba(139,92,246,.2)}
.login-btn.logged-in{background:rgba(39,174,96,.12);border-color:rgba(79,201,120,.35);color:#d9ffe4}

.product-actions{display:flex;gap:8px;align-items:center}
.gift-btn{
  background:#171520;
  color:#d9d4e7;
  border:1px solid #363044;
  border-radius:10px;
  padding:10px 12px;
  font-weight:700;
}
.gift-btn:hover{border-color:#6e59a0;color:#fff}

.discount-box{
  padding:16px 0 18px;
  border-top:1px solid var(--line);
}
.discount-box label,.modal-card label{
  display:block;
  font-size:12px;
  color:#c8c4d2;
  margin-bottom:8px;
  font-weight:750;
}
.discount-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.discount-row input,.modal-card input{
  width:100%;
  background:#15151e;
  border:1px solid #2e2e3c;
  color:#fff;
  border-radius:10px;
  padding:11px 12px;
  outline:none;
}
.discount-row input:focus,.modal-card input:focus{
  border-color:#6e59a0;
  box-shadow:0 0 0 3px rgba(139,92,246,.1);
}
.discount-message{min-height:19px;margin-top:8px;font-size:12px;color:var(--muted)}
.discount-message.success{color:#9be3b1}
.discount-message.error{color:#ff9b9b}

.summary-line{
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#c7c3cf;
  margin:8px 0;
  font-size:14px;
}
.discount-line strong{color:#b9a7ff}
.cart-total{
  padding-top:12px;
  margin-top:10px;
  border-top:1px solid var(--line);
}

.modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:80;
  place-items:center;
  padding:20px;
  background:rgba(0,0,0,.65);
  backdrop-filter:blur(6px);
}
.modal.open{display:grid}
.modal-card{
  position:relative;
  width:min(460px,100%);
  border:1px solid #302d3d;
  border-radius:18px;
  background:
    radial-gradient(circle at 100% 0%,rgba(139,92,246,.12),transparent 40%),
    #111119;
  box-shadow:0 30px 90px rgba(0,0,0,.45);
  padding:26px;
}
.modal-card h2{margin:7px 0 10px;font-size:26px}
.modal-card p{color:#aaa6b8;line-height:1.65;margin:0 0 20px}
.modal-card input{margin-bottom:10px}
.modal-close{
  position:absolute;
  right:14px;
  top:10px;
  background:none;
  border:0;
  color:#fff;
  font-size:30px;
}
.modal-note,.gift-hint{
  display:block;
  color:#8f8a9d;
  font-size:12px;
  line-height:1.55;
  margin:10px 0 14px;
}
.toast{
  position:fixed;
  z-index:100;
  right:22px;
  bottom:22px;
  transform:translateY(20px);
  opacity:0;
  pointer-events:none;
  background:#171722;
  color:#fff;
  border:1px solid #363044;
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:12px 15px;
  transition:.2s ease;
}
.toast.show{opacity:1;transform:translateY(0)}

.cart-item .gift-meta{
  display:block;
  color:#b8a5ff;
  font-size:11px;
  margin-top:4px;
}

@media(max-width:1280px){
  .header-actions input{width:170px}
  .login-btn{padding:9px 10px}
}


.discord-icon-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:10px;
  border:1px solid rgba(167,139,250,.28);
  background:linear-gradient(135deg,rgba(139,92,246,.14),rgba(167,139,250,.08));
  color:#fff;
  transition:.2s ease;
}
.discord-icon-btn:hover{
  border-color:var(--purple-2);
  background:rgba(139,92,246,.2);
  transform:translateY(-1px);
}
.discord-icon-btn svg{
  width:21px;
  height:21px;
  fill:currentColor;
}


/* ===== v3.2 navigation ===== */
.brand-wrap{
  display:flex;
  align-items:center;
  gap:10px;
}
.back-btn{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:10px;
  border:1px solid #2d2d3a;
  background:#15151e;
  color:#d8d5e1;
  padding:0;
  transition:.2s ease;
}
.back-btn:hover{
  color:#fff;
  border-color:#5f4b92;
  background:rgba(139,92,246,.12);
}
.back-btn svg{
  width:20px;
  height:20px;
  fill:currentColor;
}

.store-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 9px;
  border:1px solid #343044;
  border-radius:999px;
  background:#15151e;
  color:#aaa6b8;
  font-size:10px;
  white-space:nowrap;
}
.store-status.live{
  color:#b8f3ca;
  border-color:rgba(72,199,116,.34);
  background:rgba(72,199,116,.08);
}
.store-status.fallback{
  color:#ffd9a6;
  border-color:rgba(234,163,75,.34);
  background:rgba(234,163,75,.08);
}
.loading-card{
  grid-column:1/-1;
  border:1px dashed var(--line);
  border-radius:14px;
  padding:48px;
  text-align:center;
  color:var(--muted);
}
@media(max-width:1450px){
  .store-status{display:none}
}


/* ===== v3.5 Product Preview Modal ===== */
.product-card{cursor:pointer}
.product-card .product-actions button{position:relative;z-index:2}
.product-modal{padding:24px}
.product-modal-card{
  position:relative;
  width:min(1180px,96vw);
  max-height:90vh;
  overflow:auto;
  border:1px solid #302d3d;
  border-radius:18px;
  background:#111119;
  box-shadow:0 30px 100px rgba(0,0,0,.55);
  padding:22px;
}
.product-modal-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);
  gap:28px;
}
.product-gallery{position:relative;min-width:0}
.product-main-image{
  width:100%;
  aspect-ratio:16/10;
  border-radius:14px;
  border:1px solid #2a2936;
  background:
    radial-gradient(circle at 70% 20%,rgba(139,92,246,.18),transparent 38%),
    #0d0d14 center/cover no-repeat;
}
.gallery-arrow{
  position:absolute;
  top:42%;
  width:42px;height:42px;
  border-radius:10px;
  border:1px solid #3a354a;
  background:rgba(13,13,20,.82);
  color:white;
  font-size:28px;
  display:grid;
  place-items:center;
}
.gallery-prev{left:12px}
.gallery-next{right:12px}
.product-thumbs{
  display:flex;
  gap:8px;
  margin-top:10px;
  overflow:auto;
  padding-bottom:2px;
}
.product-thumb-btn{
  flex:0 0 86px;
  height:58px;
  border-radius:8px;
  border:1px solid #2d2b38;
  background:#16161f center/cover no-repeat;
  opacity:.72;
}
.product-thumb-btn.active{
  opacity:1;
  border-color:var(--purple-2);
  box-shadow:0 0 0 2px rgba(139,92,246,.14);
}
.product-detail{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.product-detail h2{
  margin:10px 0 14px;
  font-size:31px;
  line-height:1.15;
  letter-spacing:-.02em;
}
.product-description{
  color:#c6c2cf;
  line-height:1.72;
  font-size:14px;
  white-space:pre-line;
}
.product-description a{color:#b9a7ff;text-decoration:underline}
.preview-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0;
}
.preview-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:10px 12px;
  border:1px solid #363044;
  border-radius:10px;
  background:#171520;
  color:#e8e3f2;
  font-size:13px;
}
.preview-link:hover{border-color:#6d55a4;background:rgba(139,92,246,.12)}
.product-modal-buy{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:auto;
  padding-top:22px;
  border-top:1px solid #292735;
}
.modal-price{font-size:25px;color:#d9ceff}
@media(max-width:900px){
  .product-modal-grid{grid-template-columns:1fr}
  .product-modal-card{padding:16px}
  .product-detail h2{font-size:26px}
}

.admin-mini-btn{
  width:40px;height:40px;display:grid;place-items:center;border-radius:10px;
  border:1px solid #2d2d3a;background:#15151e;color:#d7d2e1;font-size:16px
}
.admin-mini-btn:hover{border-color:#5f4b92;background:rgba(139,92,246,.12);color:#fff}
.product-detail h2{
  font-size:clamp(22px,2vw,29px);
  line-height:1.18;
  overflow-wrap:anywhere;
}
.product-main-image{
  background-repeat:no-repeat;
}

.hot-product-badge{
  display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;
  background:linear-gradient(135deg,#ff6d57,#ff8f6b);
  color:#fff;font-size:9px;font-weight:900;letter-spacing:.08em;
  box-shadow:0 5px 16px rgba(255,109,87,.18)
}

/* ===== v3.7.1 clean product cards / full image ===== */
.product-thumb{
  height:auto;
  aspect-ratio: 4 / 3;
  background-color:#0d0d14;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.product-body{
  padding:14px 15px 15px;
}
.product-card h3{
  margin:11px 0 14px;
  min-height:44px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.28;
}
.product-card p{
  display:none !important;
}
.product-foot{
  margin-top:0;
}
.product-main-image{
  background-color:#0d0d14;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* v4.0.7: neutral loading state only; cart/checkout logic untouched */
.loading-card{pointer-events:none;overflow:hidden}
.loading-card .product-thumb{
  background:linear-gradient(110deg,#171523 8%,#242039 18%,#171523 33%);
  background-size:200% 100%;
  animation:graeLoad 1.15s linear infinite
}
.loading-line{
  height:13px;border-radius:999px;margin:10px 0;
  background:linear-gradient(110deg,#1d1a29 8%,#2c2740 18%,#1d1a29 33%);
  background-size:200% 100%;
  animation:graeLoad 1.15s linear infinite
}
.loading-line.short{width:42%}
.loading-line.tiny{width:28%}
@keyframes graeLoad{to{background-position-x:-200%}}

/* v4.0.8 performance pass */
.product-card,
.category-card,
.hero,
.site-header{
  contain:layout paint;
}
.product-thumb{
  content-visibility:auto;
  contain-intrinsic-size:320px 240px;
}
.product-grid{
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
html{
  scroll-behavior:smooth;
}

/* v4.0.10 production status cleanup */
.store-status-hidden{
  display:none !important;
}

/* v4.0.12.1 — logo hotfix: replace star only, keep original header layout */
.brand-logo-mark{
  padding:3px;
  object-fit:contain;
  object-position:center;
  background:transparent;
  box-shadow:none;
  border:1px solid rgba(151,102,255,.28);
}

/* v4.0.12.2 — proper GraeNoir logo sizing */
.brand-logo-header{
  display:block;
  width:56px;
  height:56px;
  flex:0 0 56px;
  object-fit:contain;
  object-position:center;
  padding:0 !important;
  margin:0;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  filter:drop-shadow(0 0 8px rgba(155,112,255,.12));
}

.brand{
  gap:12px;
}

.site-footer{
  padding:34px 4.5vw 38px;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  text-align:center;
  color:var(--muted);
}

.footer-logo{
  width:108px;
  height:108px;
  object-fit:contain;
  display:block;
  border:0;
  background:transparent;
  box-shadow:none;
  opacity:.95;
}

.footer-copy{
  color:var(--muted);
}

@media (max-width:900px){
  .brand-logo-header{
    width:48px;
    height:48px;
    flex-basis:48px;
  }
  .footer-logo{
    width:90px;
    height:90px;
  }
}

/* v4.0.12.3 — logo/header/footer layout fix */

/* Keep the small brand subtitle on one line */
.brand small{
  white-space:nowrap;
  display:block;
  width:max-content;
}

/* Header logo: a little larger, still no box/frame */
.brand-logo-header{
  width:58px;
  height:58px;
  flex:0 0 58px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
}

/*
 Footer should keep its original height/text position.
 Logo is centered independently with absolute positioning,
 so it does NOT create extra vertical space.
*/
.site-footer{
  position:relative;
  display:block;
  padding:30px 4.5vw;
  border-top:1px solid rgba(255,255,255,.06);
  color:var(--muted);
  text-align:left;
  min-height:unset;
}

.site-footer .footer-copy{
  margin:0;
  color:var(--muted);
  position:relative;
  z-index:2;
}

.site-footer .footer-logo{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:64px;
  height:64px;
  object-fit:contain;
  display:block;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0;
  opacity:.9;
  pointer-events:none;
}

@media (max-width:900px){
  .brand-logo-header{
    width:50px;
    height:50px;
    flex-basis:50px;
  }
  .site-footer .footer-logo{
    width:54px;
    height:54px;
  }
}

@media (max-width:700px){
  .brand small{
    font-size:.58rem;
    letter-spacing:.11em;
  }
  .site-footer .footer-logo{
    opacity:.7;
  }
}


/* v4.0.12.9 — public production cleanup */
.header-actions{
  gap:10px;
}


/* v4.0.13.2 — CFX logout + login-required popup */
.login-required-card{
  max-width:430px;
  text-align:left;
}
.login-required-card h2{
  margin-bottom:10px;
}
.login-required-card p{
  margin-bottom:20px;
}
.login-required-cancel{
  margin-top:10px;
}
.login-btn.logged-in{
  cursor:pointer;
}


/* v4.0.13.3 — logout confirm modal */
#logoutConfirmModal .modal-card{
  max-width: 430px;
}


/* v4.0.13.4 — hide Discord actions until a real invite URL is configured */
.discord-link[hidden],
.discord-icon-btn[hidden]{
  display:none !important;
}


/* =========================================================
   v4.0.13.7 — production responsive/header/modal hotfix
   ========================================================= */

/* Header: let the brand take its real width instead of forcing 235px.
   This prevents the logo/text/back button from colliding with navigation. */
.site-header{
  grid-template-columns:max-content minmax(0,1fr) max-content !important;
  gap:18px !important;
  padding-left:18px !important;
  padding-right:22px !important;
  overflow:visible;
}

.brand-wrap{
  min-width:0;
  flex:0 0 auto;
  gap:10px;
  position:relative;
  z-index:3;
}

.brand{
  min-width:0;
  flex:0 0 auto;
}

.brand > span{
  min-width:0;
}

.brand strong,
.brand small{
  white-space:nowrap;
}

.back-btn{
  position:relative;
  z-index:5;
  flex:0 0 36px;
  pointer-events:auto;
}

.nav{
  min-width:0;
  justify-content:flex-start;
  gap:17px;
}

.nav > a,
.nav-item > button{
  white-space:nowrap;
}

.header-actions{
  flex:0 0 auto;
  min-width:0;
}

/* Keep modal controls from sitting on top of product content. */
.product-modal-card{
  padding:30px 26px 24px !important;
}

.product-modal-card > .modal-close{
  z-index:12;
  top:10px;
  right:12px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(17,17,25,.88);
  border:1px solid rgba(255,255,255,.08);
  line-height:1;
}

.product-modal-grid{
  padding-top:18px;
}

.product-detail{
  padding-right:8px;
}

.product-detail .pill{
  max-width:calc(100% - 52px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Gallery arrows must remain clickable above the image. */
.gallery-arrow{
  z-index:8;
  pointer-events:auto;
}

/* Mid-size production widths: retain nav where possible, then collapse cleanly. */
@media (max-width:1500px){
  .site-header{
    gap:13px !important;
    padding-left:14px !important;
    padding-right:16px !important;
  }
  .brand-logo-header{
    width:50px !important;
    height:50px !important;
    flex-basis:50px !important;
  }
  .brand strong{font-size:15px}
  .brand small{font-size:7px;letter-spacing:.16em}
  .nav{gap:13px}
  .nav > a,.nav-item > button{font-size:13px}
  .header-actions input{width:170px}
}

@media (max-width:1260px){
  .site-header{
    grid-template-columns:max-content 1fr max-content !important;
  }
  .nav{display:none !important}
}

@media (max-width:760px){
  .site-header{
    min-height:68px;
    grid-template-columns:minmax(0,1fr) auto !important;
    padding:0 12px !important;
  }
  .brand-wrap{gap:7px}
  .brand-logo-header{
    width:42px !important;
    height:42px !important;
    flex-basis:42px !important;
  }
  .brand strong{font-size:13px}
  .brand small{display:none !important}
  .header-actions{
    gap:6px;
  }
  .header-actions input,
  .discord-icon-btn{
    display:none !important;
  }
  .login-btn{
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .product-modal{
    padding:8px !important;
  }
  .product-modal-card{
    width:100% !important;
    max-height:94dvh !important;
    padding:26px 12px 14px !important;
    border-radius:14px !important;
  }
  .product-modal-grid{
    padding-top:12px;
    gap:16px;
  }
  .product-detail{
    padding-right:0;
  }
  .product-detail .pill{
    max-width:calc(100% - 44px);
  }
}


/* =========================================================
   v4.0.13.8 — production header/dropdown/back/scrollbar fix
   ========================================================= */

/* Keep the header contents vertically centered and stop the logo from
   visually bleeding into the top edge on real production widths. */
.site-header{
  min-height:78px !important;
  height:78px;
  align-items:center !important;
  overflow:visible !important;
  z-index:500 !important;
}
.brand-wrap{
  height:78px;
  display:flex;
  align-items:center;
  overflow:visible;
}
.brand-logo-header{
  width:46px !important;
  height:46px !important;
  flex-basis:46px !important;
  object-fit:contain;
}
.brand strong{font-size:16px}
.brand small{font-size:7px;line-height:1.1}

/* Dropdowns must render ABOVE hero/page content, not underneath it. */
.nav, .nav-item, .has-menu{
  overflow:visible !important;
}
.nav-item{
  z-index:520;
}
.menu{
  top:calc(100% - 5px) !important;
  left:-12px;
  z-index:9999 !important;
  background:#11111a !important;
  border:1px solid #302d40 !important;
  box-shadow:0 20px 55px rgba(0,0,0,.58) !important;
}
.has-menu:hover{z-index:10000}
.has-menu:hover .menu{display:block}

/* Back control stays above brand/nav and always receives clicks. */
.back-btn{
  z-index:10020 !important;
  pointer-events:auto !important;
}

/* Styled scrollbars so the product modal no longer shows a bright OS bar. */
.product-modal-card,
.product-thumbs,
.cart-drawer{
  scrollbar-width:thin;
  scrollbar-color:#6f4bc7 #171721;
}
.product-modal-card::-webkit-scrollbar,
.product-thumbs::-webkit-scrollbar,
.cart-drawer::-webkit-scrollbar{
  width:9px;
  height:8px;
}
.product-modal-card::-webkit-scrollbar-track,
.product-thumbs::-webkit-scrollbar-track,
.cart-drawer::-webkit-scrollbar-track{
  background:#171721;
  border-radius:999px;
}
.product-modal-card::-webkit-scrollbar-thumb,
.product-thumbs::-webkit-scrollbar-thumb,
.cart-drawer::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#6d49c8,#8b5cf6);
  border:2px solid #171721;
  border-radius:999px;
}
.product-modal-card::-webkit-scrollbar-thumb:hover,
.product-thumbs::-webkit-scrollbar-thumb:hover,
.cart-drawer::-webkit-scrollbar-thumb:hover{
  background:#9b79f7;
}

/* Prevent the modal's scrollbar from sitting flush against the close button. */
.product-modal-card{
  scrollbar-gutter:stable;
}

@media (max-width:1500px){
  .site-header{height:74px;min-height:74px !important}
  .brand-wrap{height:74px}
  .brand-logo-header{
    width:42px !important;
    height:42px !important;
    flex-basis:42px !important;
  }
  .nav{gap:12px !important}
}


/* =========================================================
   v4.0.13.9 — dropdown clipping fix
   Root cause: .site-header had contain:layout paint from the
   performance pass, which clips absolutely-positioned menus.
   ========================================================= */

.site-header{
  contain:none !important;
  overflow:visible !important;
  z-index:1000 !important;
  isolation:visible !important;
}

.nav,
.nav-item{
  overflow:visible !important;
}

.nav-item{
  z-index:1002 !important;
}

.nav-item .menu{
  z-index:1005 !important;
  top:calc(100% - 6px) !important;
  overflow:visible !important;
}

/* keep page content below dropdown layer */
#app,
.hero,
.section{
  position:relative;
  z-index:1;
}

/* Dropdown background and shadow should remain fully visible */
.menu{
  box-shadow:
    0 18px 45px rgba(0,0,0,.55),
    0 0 0 1px rgba(167,139,250,.06) !important;
}

/* =========================================================
   v4.0.13.10 — production CSS repair
   ========================================================= */

/* Header/dropdown: force the menu above the page content */
.site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 10000 !important;
  overflow: visible !important;
  contain: none !important;
  isolation: auto !important;
}

.site-header .nav,
.site-header .nav-item,
.site-header .has-menu {
  overflow: visible !important;
}

.site-header .nav {
  position: relative !important;
  z-index: 10001 !important;
}

.site-header .nav-item {
  position: relative !important;
  z-index: 10002 !important;
}

.site-header .nav-item .menu {
  position: absolute !important;
  top: calc(100% - 4px) !important;
  left: -12px !important;
  z-index: 10020 !important;
  overflow: visible !important;
  background: #11111a !important;
  border: 1px solid #302d40 !important;
  box-shadow: 0 20px 55px rgba(0,0,0,.62) !important;
}

.site-header .has-menu:hover,
.site-header .has-menu:focus-within {
  z-index: 10019 !important;
}

.site-header .has-menu:hover .menu,
.site-header .has-menu:focus-within .menu {
  display: block !important;
}

#app,
.hero,
.section {
  position: relative !important;
  z-index: 0 !important;
}

/* Product modal scrollbar */
.product-modal-card {
  scrollbar-width: thin !important;
  scrollbar-color: #7451cf #171721 !important;
}

.product-modal-card::-webkit-scrollbar {
  width: 10px !important;
}

.product-modal-card::-webkit-scrollbar-track {
  background: #171721 !important;
  border-radius: 999px !important;
  margin: 10px 0 !important;
}

.product-modal-card::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #6d49c8, #8b5cf6) !important;
  border: 2px solid #171721 !important;
  border-radius: 999px !important;
  min-height: 42px !important;
}

.product-modal-card::-webkit-scrollbar-thumb:hover {
  background: #9b79f7 !important;
}

/* Product modal X: draw a true centered X */
.product-modal-card > .modal-close {
  top: 12px !important;
  right: 12px !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  display: block !important;
  position: absolute !important;
}

.product-modal-card > .modal-close::before,
.product-modal-card > .modal-close::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 17px !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: #fff !important;
  transform-origin: center !important;
}

.product-modal-card > .modal-close::before {
  transform: translate(-50%, -50%) rotate(45deg) !important;
}

.product-modal-card > .modal-close::after {
  transform: translate(-50%, -50%) rotate(-45deg) !important;
}

/* Gallery chevrons: draw them ourselves so they center exactly */
.gallery-arrow {
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  display: block !important;
  position: absolute !important;
}

.gallery-arrow::before {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 9px !important;
  height: 9px !important;
  border-top: 2px solid #fff !important;
  border-right: 2px solid #fff !important;
}

.gallery-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg) !important;
}

.gallery-next::before {
  transform: translate(-65%, -50%) rotate(45deg) !important;
}

.gallery-prev {
  left: 12px !important;
}

.gallery-next {
  right: 12px !important;
}

/* =========================================================
   v4.0.13.11 — modal scroll lock + large-screen fit
   ========================================================= */

/* Lock the page behind any modal. Only the popup itself scrolls. */
html.modal-lock,
body.modal-lock {
  overflow: hidden !important;
  height: 100% !important;
  overscroll-behavior: none !important;
}

/* Modal must always render above the sticky navigation/dropdowns. */
.modal {
  z-index: 20000 !important;
}

.product-modal {
  align-items: start !important;
  justify-items: center !important;
  padding: 20px !important;
  overflow: hidden !important;
}

/* Large-screen sizing: do not let the product popup become a giant full-screen slab. */
.product-modal-card {
  width: min(1180px, calc(100vw - 48px)) !important;
  max-height: calc(100dvh - 40px) !important;
  margin: 0 auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  box-sizing: border-box !important;
}

/* Keep the two-column layout balanced on wide monitors. */
@media (min-width: 1500px) {
  .product-modal-card {
    width: min(1220px, 82vw) !important;
    max-height: min(860px, calc(100dvh - 48px)) !important;
  }

  .product-modal-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr) !important;
    gap: 30px !important;
  }

  .product-main-image {
    max-height: 560px !important;
  }
}

/* Keep modal content inside its own frame. */
.product-modal-grid,
.product-gallery,
.product-detail {
  min-width: 0 !important;
}

.product-modal-grid {
  overflow: hidden !important;
}

/* Bottom buy bar stays inside popup and never spills beyond the rounded frame. */
.product-modal-buy {
  position: sticky !important;
  bottom: 0 !important;
  z-index: 8 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 22px 0 8px !important;
  background:
    linear-gradient(180deg, rgba(17,17,25,0) 0%, #111119 20%, #111119 100%) !important;
}

#productModalAdd {
  max-width: 100% !important;
}

/* Dark neutral-purple scrollbar to match GraeNoir. */
.product-modal-card {
  scrollbar-width: thin !important;
  scrollbar-color: #40374f #121219 !important;
}

.product-modal-card::-webkit-scrollbar {
  width: 9px !important;
}

.product-modal-card::-webkit-scrollbar-track {
  background: #121219 !important;
  border-radius: 999px !important;
  margin: 12px 0 !important;
}

.product-modal-card::-webkit-scrollbar-thumb {
  background: #40374f !important;
  border: 2px solid #121219 !important;
  border-radius: 999px !important;
}

.product-modal-card::-webkit-scrollbar-thumb:hover {
  background: #51445f !important;
}

/* Navigation stays above the page, but below every modal. */
.site-header {
  z-index: 9000 !important;
}

.site-header .nav {
  z-index: 9001 !important;
}

.site-header .nav-item {
  z-index: 9002 !important;
}

.site-header .nav-item .menu {
  z-index: 9050 !important;
}

/* Keep close button and gallery arrows fully inside their boxes. */
.product-modal-card > .modal-close {
  top: 10px !important;
  right: 10px !important;
  z-index: 30 !important;
}

.gallery-prev {
  left: 14px !important;
}

.gallery-next {
  right: 14px !important;
}

/* Medium screens */
@media (max-width: 1100px) {
  .product-modal-card {
    width: calc(100vw - 28px) !important;
    max-height: calc(100dvh - 28px) !important;
  }
}

/* Small screens */
@media (max-width: 900px) {
  .product-modal {
    padding: 8px !important;
  }

  .product-modal-card {
    width: 100% !important;
    max-height: calc(100dvh - 16px) !important;
  }

  .product-modal-grid {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   v4.0.13.12 — gallery arrow + scrollbar style fix
   ========================================================= */

/* Gallery arrows: keep both buttons fully INSIDE the image frame. */
.product-gallery {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 14px !important;
}

.product-main-image {
  position: relative !important;
  z-index: 1 !important;
}

.gallery-arrow {
  z-index: 6 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 42px !important;
  height: 42px !important;
}

.gallery-prev {
  left: 16px !important;
}

.gallery-next {
  right: 16px !important;
}

/* Keep thumbnails outside the clipped image area. */
.product-thumbs {
  position: relative !important;
  z-index: 2 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  margin-top: 10px !important;
}

/* Scrollbar closer to the user's reference:
   slim neutral dark gray, subtle thumb, no bright purple. */
.product-modal-card {
  scrollbar-width: thin !important;
  scrollbar-color: #8b8b8f #202124 !important;
}

.product-modal-card::-webkit-scrollbar {
  width: 10px !important;
}

.product-modal-card::-webkit-scrollbar-track {
  background: #202124 !important;
  border-radius: 0 !important;
  margin: 0 !important;
}

.product-modal-card::-webkit-scrollbar-thumb {
  background: #8b8b8f !important;
  border-radius: 999px !important;
  border: 2px solid #202124 !important;
  min-height: 48px !important;
}

.product-modal-card::-webkit-scrollbar-thumb:hover {
  background: #a1a1a5 !important;
}

/* Thumbnail horizontal scrollbar: same neutral style. */
.product-thumbs {
  scrollbar-width: thin !important;
  scrollbar-color: #66686d #15161a !important;
}

.product-thumbs::-webkit-scrollbar {
  height: 8px !important;
}

.product-thumbs::-webkit-scrollbar-track {
  background: #15161a !important;
}

.product-thumbs::-webkit-scrollbar-thumb {
  background: #66686d !important;
  border-radius: 999px !important;
  border: 2px solid #15161a !important;
}

/* =========================================================
   v4.0.13.13 — true in-frame arrows + custom scrollbar
   ========================================================= */

/* Gallery stage is the exact visual frame that owns the arrows. */
.product-gallery{
  overflow:visible !important;
  border-radius:0 !important;
}

.product-main-stage{
  position:relative !important;
  width:100% !important;
  overflow:hidden !important;
  border-radius:14px !important;
  border:1px solid #2a2936 !important;
  background:#0d0d14 !important;
}

.product-main-stage .product-main-image{
  border:0 !important;
  border-radius:0 !important;
  width:100% !important;
  display:block !important;
}

/* Arrows are now positioned relative to product-main-stage only. */
.product-main-stage .gallery-arrow{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:8 !important;
  width:42px !important;
  height:42px !important;
  margin:0 !important;
}

.product-main-stage .gallery-prev{
  left:14px !important;
}

.product-main-stage .gallery-next{
  right:14px !important;
}

/* Thumbnails remain below the framed image. */
.product-thumbs{
  margin-top:10px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
}

/* =========================================================
   v4.0.13.15 — scrollbar-only fix
   ========================================================= */

/* 1) Product popup: keep scrolling, hide its scrollbar completely. */
.product-modal-card{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

.product-modal-card::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

/* 2) Main page / large-screen scrollbar only. */
html{
  scrollbar-width:thin;
  scrollbar-color:#77797e #1d1f22;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar{
  width:10px;
  height:10px;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track{
  background:#1d1f22;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb{
  background:#77797e;
  border-radius:999px;
  border:2px solid #1d1f22;
}

html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover{
  background:#96989d;
}

/* =========================================================
   v4.0.13.17 — legal/support pages
   ========================================================= */
.legal-page{
  min-height:100vh;
  background:#0b0b11;
  color:#f4f1f8;
  padding:56px 24px 80px;
}
.legal-shell{
  width:min(980px,100%);
  margin:0 auto;
}
.legal-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#c7c1d4;
  margin-bottom:26px;
  font-size:14px;
}
.legal-back:hover{color:#fff}
.legal-card{
  background:#111119;
  border:1px solid #2c2937;
  border-radius:18px;
  padding:34px;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.legal-card .eyebrow{
  display:block;
  margin-bottom:10px;
}
.legal-card h1{
  margin:0 0 10px;
  font-size:34px;
  letter-spacing:-.025em;
}
.legal-card .legal-lead{
  color:#aaa6b8;
  line-height:1.7;
  margin:0 0 28px;
}
.legal-section{
  padding:22px 0;
  border-top:1px solid #292735;
}
.legal-section:first-of-type{
  border-top:0;
  padding-top:0;
}
.legal-section h2{
  font-size:18px;
  margin:0 0 10px;
}
.legal-section p,
.legal-section li{
  color:#c7c3cf;
  line-height:1.75;
  font-size:14px;
}
.legal-section ul{
  margin:10px 0 0 20px;
}
.legal-contact{
  display:inline-flex;
  padding:10px 13px;
  border:1px solid #363044;
  border-radius:10px;
  background:#171520;
  color:#eee8f6;
}
.legal-footer{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:22px;
  color:#8f8a9d;
  font-size:12px;
}
.legal-footer a{color:#b9a7ff}
.site-footer .footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:8px;
  font-size:12px;
}
.site-footer .footer-links a{
  color:#8f8a9d;
}
.site-footer .footer-links a:hover{
  color:#fff;
}
@media(max-width:700px){
  .legal-page{padding:28px 14px 56px}
  .legal-card{padding:24px 18px}
  .legal-card h1{font-size:28px}
}

/* =========================================================
   v4.0.13.22 — full approved FiveM hero artwork
   ========================================================= */
.hero.hero-artwork{
  position:relative;
  min-height:0 !important;
  height:auto !important;
  aspect-ratio:3 / 1;
  padding:0 !important;
  display:block !important;
  overflow:hidden;
  background:
    url("assets/hero_graenoir_full.jpg") center center / cover no-repeat !important;
  border-bottom:1px solid rgba(255,255,255,.05);
}

/* Clickable overlay areas placed over the two buttons baked into the artwork. */
.hero-click-layer{
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
}

.hero-hit{
  position:absolute;
  display:block;
  pointer-events:auto;
  cursor:pointer;
  background:transparent !important;
  border:0 !important;
  color:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  text-decoration:none !important;
  outline:none;
}

/* Coordinates match the approved 2048x682 hero artwork. */
.hero-hit-browse{
  left:7.55%;
  top:72.7%;
  width:11.75%;
  height:9.4%;
}

.hero-hit-discord{
  left:20.45%;
  top:72.7%;
  width:10.55%;
  height:9.4%;
}

.hero-hit:focus-visible{
  outline:2px solid rgba(167,139,250,.95) !important;
  outline-offset:2px;
  border-radius:10px;
}

@media(max-width:900px){
  .hero.hero-artwork{
    aspect-ratio:16 / 7.2;
    background-position:center center !important;
  }
}

@media(max-width:650px){
  /* Keep the artwork readable instead of squashing it on small screens. */
  .hero.hero-artwork{
    aspect-ratio:16 / 8.5;
    background-size:cover !important;
    background-position:center center !important;
  }
}

/* =========================================================
   v4.0.13.23 — MOBILE / RESPONSIVE FINAL PASS
   Desktop intentionally untouched.
   ========================================================= */

/* Tablet */
@media (max-width: 1100px){
  .site-header{
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:10px !important;
    padding:0 14px !important;
  }

  .nav{
    display:none !important;
  }

  .header-actions{
    gap:8px !important;
  }

  .header-actions input{
    width:170px !important;
  }

  .hero.hero-artwork{
    aspect-ratio:16 / 6.8 !important;
    background-position:center center !important;
  }

  .category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Mobile */
@media (max-width: 700px){
  body{
    overflow-x:hidden !important;
  }

  .site-header{
    min-height:64px !important;
    height:64px !important;
    padding:0 10px !important;
  }

  .brand-wrap{
    height:64px !important;
    gap:7px !important;
  }

  .back-btn{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
  }

  .brand-logo-header{
    width:38px !important;
    height:38px !important;
    flex-basis:38px !important;
  }

  .brand strong{
    font-size:13px !important;
    letter-spacing:.10em !important;
  }

  .brand small{
    display:none !important;
  }

  .header-actions{
    gap:6px !important;
  }

  .discord-icon-btn,
  .header-actions input{
    display:none !important;
  }

  .login-btn,
  .icon-btn{
    min-height:36px !important;
    padding:8px 10px !important;
    font-size:12px !important;
    border-radius:9px !important;
  }

  .login-btn{
    max-width:132px !important;
    overflow:hidden !important;
    white-space:nowrap !important;
    text-overflow:ellipsis !important;
  }

  .hero.hero-artwork{
    aspect-ratio:16 / 8.7 !important;
    min-height:0 !important;
    background-position:center center !important;
  }

  .section{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .section-head h2{
    font-size:25px !important;
  }

  .category-grid{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .category-card{
    min-height:150px !important;
  }

  .category-card h3{
    font-size:19px !important;
  }

  .product-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .product-card{
    width:100% !important;
  }

  .product-thumb{
    height:220px !important;
  }

  .product-modal{
    padding:8px !important;
  }

  .product-modal-card{
    width:100% !important;
    max-height:calc(100dvh - 16px) !important;
    padding:18px 14px 14px !important;
    border-radius:14px !important;
  }

  .product-modal-grid{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .product-detail h2{
    font-size:24px !important;
    line-height:1.15 !important;
  }

  .product-modal-buy{
    gap:12px !important;
    padding-top:16px !important;
  }

  #productModalAdd{
    min-width:120px !important;
  }

  .cart-drawer{
    width:100% !important;
    right:-100% !important;
  }

  .cart-drawer.open{
    right:0 !important;
  }

  .site-footer{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .footer-links{
    gap:10px !important;
  }
}

/* Small phones */
@media (max-width: 430px){
  .site-header{
    padding:0 8px !important;
  }

  .brand strong{
    font-size:12px !important;
  }

  .login-btn{
    max-width:112px !important;
  }

  .icon-btn{
    padding:8px 9px !important;
  }

  .hero.hero-artwork{
    aspect-ratio:16 / 9.4 !important;
  }

  .product-thumb{
    height:200px !important;
  }

  .product-modal-buy{
    align-items:stretch !important;
    flex-direction:column !important;
  }

  #productModalAdd{
    width:100% !important;
  }
}

/* =========================================================
   v4.0.13.24 — MOBILE HERO + CFX BUTTON FIX
   Desktop intentionally untouched.
   ========================================================= */

@media (max-width:700px){
  /* Keep the full approved 3:1 artwork visible on phones.
     This also keeps the invisible click areas aligned with
     Browse Assets / Join Discord in the artwork. */
  .hero.hero-artwork{
    aspect-ratio:3 / 1 !important;
    background-size:100% 100% !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
  }

  /* Let the CFX button show its complete short mobile label. */
  .login-btn{
    max-width:none !important;
    width:auto !important;
    min-width:86px !important;
    padding:8px 9px !important;
    font-size:11px !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
}

@media (max-width:430px){
  .hero.hero-artwork{
    aspect-ratio:3 / 1 !important;
  }

  .login-btn{
    min-width:80px !important;
    padding:8px 8px !important;
    font-size:10.5px !important;
  }
}

/* =========================================================
   v4.0.13.35 — PRODUCT MODAL BACKGROUND FREEZE
   Keep storefront at the exact same visual position while modal is open.
   ========================================================= */
html.modal-lock,
body.modal-lock{
  overflow:hidden !important;
  height:auto !important;
  min-height:100% !important;
  overscroll-behavior:none !important;
}

/* =========================================================
   v4.0.13.36 — FEATURED / NEW CONTROL
   ========================================================= */
.new-product-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  background:linear-gradient(135deg,#7c5cff,#a98cff);
  color:#fff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  box-shadow:0 5px 16px rgba(124,92,255,.18);
}

/* =========================================================
   v4.0.13.37 — DISABLE TEXT / IMAGE SELECTION & DRAG
   ========================================================= */

/* Prevent highlighting/selecting storefront content */
body,
body *{
  -webkit-user-select:none;
  user-select:none;
}

/* Keep text entry usable */
input,
textarea,
select,
[contenteditable="true"]{
  -webkit-user-select:text !important;
  user-select:text !important;
}

/* Prevent image dragging/ghost previews */
img{
  -webkit-user-drag:none;
  user-drag:none;
  pointer-events:auto;
}

/* =========================================================
   v4.0.13.38 — ALL PRODUCTS FILTER / SORT
   ========================================================= */
.browse-head{
  margin-bottom:18px;
}

.browse-count{
  margin:8px 0 0;
  color:var(--muted);
  font-size:13px;
}

.browse-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(145px,.75fr)) auto;
  gap:10px;
  align-items:center;
  margin:0 0 22px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(15,14,22,.82);
}

.browse-search-wrap{
  min-width:0;
}

.browse-control,
.browse-clear{
  width:100%;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#12111a;
  color:var(--text);
  font:inherit;
  font-size:13px;
  padding:0 12px;
  outline:none;
}

.browse-control:focus{
  border-color:rgba(156,112,255,.65);
  box-shadow:0 0 0 3px rgba(139,92,246,.10);
}

.browse-clear{
  width:auto;
  white-space:nowrap;
  cursor:pointer;
  font-weight:800;
  background:rgba(139,92,246,.12);
  border-color:rgba(139,92,246,.32);
}

.browse-clear:hover{
  background:rgba(139,92,246,.20);
}

.browse-empty{
  grid-column:1/-1;
}

@media(max-width:1200px){
  .browse-toolbar{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .browse-search-wrap{
    grid-column:span 2;
  }
}

@media(max-width:700px){
  .browse-toolbar{
    grid-template-columns:1fr 1fr;
    padding:10px;
  }
  .browse-search-wrap{
    grid-column:1/-1;
  }
  .browse-clear{
    width:100%;
  }
}

@media(max-width:460px){
  .browse-toolbar{
    grid-template-columns:1fr;
  }
  .browse-search-wrap{
    grid-column:auto;
  }
}
