/* ═══ SLOT777 PREMIUM UPGRADE (size56-inspired) — richer, cleaner, more clickable ═══ */
:root{
  --p-bg:#0a0507; --p-bg2:#150a0d; --p-panel:#1c0e12; --p-panel2:#140a0d;
  --p-gold:#f5cf5c; --p-gold2:#d99b2e; --p-red:#e01e37; --p-red2:#8a0f20;
  --p-line:rgba(245,207,92,.16); --p-ink:#fdf6f3; --p-mut:#c9a9a9;
}
/* deep premium ground + top gold glow */
body{
  background:
    radial-gradient(120% 70% at 50% -8%, rgba(245,207,92,.14), transparent 55%),
    radial-gradient(90% 60% at 50% 0%, rgba(224,30,55,.16), transparent 60%),
    linear-gradient(180deg,#150a0d,#0a0507 60%,#050203) !important;
  background-attachment:fixed !important; color:var(--p-ink);
}
/* ── top announcement/marquee: calmer, gold hairline ── */
.marquee,.topbar .marquee{background:linear-gradient(90deg,#1a0d10,#0d0608) !important;
  color:var(--p-gold) !important; border-top:1px solid var(--p-line) !important;
  border-bottom:1px solid var(--p-line) !important; font-weight:600 !important; letter-spacing:.2px}
/* ── logo: bigger, drop the plate ── */
.topbar .logo img,.logo img,.brand img,.site-logo img{height:48px !important; max-width:210px !important;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.6))}
/* ── login/register CTAs: premium gold + outlined ── */
.cta .btn,.btn{font-family:"Kanit","Mitr",sans-serif !important; font-weight:700 !important; letter-spacing:.3px}
.btn-primary,.btn.gold,.cta .btn:last-child,button.register,.register-btn,a[href*="register"].btn{
  background:linear-gradient(180deg,var(--p-gold),var(--p-gold2)) !important; color:#2a1400 !important;
  border:none !important; box-shadow:0 6px 18px rgba(245,207,92,.35), inset 0 1px 0 rgba(255,255,255,.4) !important}
.btn.ghost,.cta .btn:first-child,a[href*="login"].btn,button.login{
  background:rgba(255,255,255,.04) !important; color:var(--p-gold) !important;
  border:1.5px solid var(--p-gold) !important}
.btn:hover{transform:translateY(-1px); filter:brightness(1.06)}
/* ── sidebar category cards: size56-style, larger icon, gold-glow active/hover ── */
.sidebar .cat{background:linear-gradient(160deg,#1f1013,#150a0d) !important;
  border:1px solid rgba(245,207,92,.14) !important; border-radius:16px !important;
  padding:11px 13px !important; gap:12px !important; transition:.18s ease !important; overflow:hidden; position:relative}
.sidebar .cat::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 120% at 0% 50%,rgba(224,30,55,.18),transparent 60%);opacity:0;transition:.18s}
.sidebar .cat:hover{border-color:var(--p-gold) !important; transform:translateX(3px) !important;
  box-shadow:0 6px 20px rgba(245,207,92,.18) !important}
.sidebar .cat:hover::before{opacity:1}
.sidebar .cat.active{background:linear-gradient(135deg,rgba(245,207,92,.22),#1a0e11) !important;
  border-color:var(--p-gold) !important; box-shadow:0 4px 18px rgba(245,207,92,.28) !important}
.sidebar .cat.active .cat-label{color:var(--p-gold) !important}
.sidebar .cat .cat-icon img{width:42px !important; height:42px !important; filter:drop-shadow(0 2px 5px rgba(0,0,0,.5))}
.sidebar .cat .cat-label{font-family:"Mitr",sans-serif !important; font-weight:600 !important; font-size:13.5px !important}
/* ── hero carousel: rounded frame + gold ring ── */
.hero-slide img,.marquee-hero,[class*="hero"] img{border-radius:16px}
.hero,.hero-wrap,[class*="hero-track"]{border-radius:18px; overflow:hidden;
  box-shadow:0 10px 40px rgba(0,0,0,.5), 0 0 0 1px var(--p-line)}
/* ── trust badges → premium gradient pills ── */
.quick>*,.trust .wrap>*,[class*="trust"]>div{background:linear-gradient(180deg,#1f1013,#160b0e) !important;
  border:1px solid var(--p-line) !important; border-radius:14px !important; transition:.18s}
.quick>*:hover{border-color:var(--p-gold) !important; transform:translateY(-2px)}
/* ── section headers: gold accent bar ── */
h2,h3,.sec-title,[class*="section-title"]{letter-spacing:.2px}
.sec-head,[class*="hot"]{position:relative}
/* ── game cards: rounded, hover lift + gold glow, sheen ── */
.card,.gcard,.ggrid>a{border-radius:16px !important; border:1px solid rgba(245,207,92,.1) !important;
  background:linear-gradient(180deg,#1a0e11,#0d0608) !important; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease !important}
.card:hover,.gcard:hover,.ggrid>a:hover{transform:translateY(-5px) !important;
  border-color:var(--p-gold) !important; box-shadow:0 14px 34px rgba(245,207,92,.28), 0 0 0 1px var(--p-gold) !important}
.card-art img,.gcard img,.ggrid>a img{transition:transform .4s ease}
.card:hover .card-art img,.ggrid>a:hover img{transform:scale(1.08)}
.card-label{color:var(--p-gold) !important; font-family:"Mitr",sans-serif !important; font-weight:600 !important}
.card-play span{background:linear-gradient(180deg,var(--p-gold),var(--p-gold2)) !important; color:#2a1400 !important;
  box-shadow:0 4px 14px rgba(0,0,0,.5) !important}
/* ── provider strip: cleaner, gold hover ── */
.provider-strip img{background:linear-gradient(180deg,#1c0e12,#140a0d) !important;
  border:1px solid var(--p-line) !important; border-radius:12px !important; height:46px !important; transition:.15s}
.provider-strip img:hover{border-color:var(--p-gold) !important; transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(245,207,92,.2)}
/* ── login/register MODAL: premium ── */
[class*="modal"],[class*="login-box"],[class*="auth"]{border-radius:18px !important}
[class*="modal"] input,[class*="auth"] input,.field input{background:#0f0709 !important;
  border:1px solid var(--p-line) !important; border-radius:12px !important; color:var(--p-ink) !important}
[class*="modal"] input:focus{border-color:var(--p-gold) !important; box-shadow:0 0 0 3px rgba(245,207,92,.18) !important}

/* ═══ rich live-casino provider cards (slot777 red) ═══ */
.lc-head{font-family:"Mitr",sans-serif;color:var(--p-gold,#f5cf5c);font-size:19px;margin:0 0 14px;font-weight:700;display:flex;align-items:center;gap:8px}
.lc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
@media(max-width:900px){.lc-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.lc-grid{grid-template-columns:repeat(2,1fr)}}
.lc-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:18px 12px 14px;border-radius:16px;text-decoration:none;overflow:hidden;
  background:linear-gradient(165deg,#2a0810 0%,#12060a 100%);
  border:1px solid rgba(245,207,92,.22);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.lc-card::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 50% 0%,rgba(224,30,55,.35),transparent 62%);opacity:.55;transition:.2s}
.lc-card:hover{transform:translateY(-6px);border-color:var(--p-gold,#f5cf5c);box-shadow:0 16px 38px rgba(224,30,55,.35),0 0 0 1px var(--p-gold,#f5cf5c)}
.lc-card:hover::before{opacity:.9}
.lc-logo{position:relative;height:52px;display:grid;place-items:center;margin-bottom:2px}
.lc-logo img{max-height:48px;max-width:110px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}
.lc-name{position:relative;font-family:"Mitr",sans-serif;font-weight:700;font-size:14px;color:#fff}
.lc-hook{position:relative;font-size:11.5px;color:var(--p-gold,#f5cf5c);opacity:.92;text-align:center;line-height:1.35}
.lc-play{position:relative;margin-top:8px;font-family:"Kanit",sans-serif;font-weight:700;font-size:12px;color:#2a1400;
  background:linear-gradient(180deg,#f5cf5c,#d99b2e);padding:6px 16px;border-radius:999px;
  box-shadow:0 4px 12px rgba(0,0,0,.4);transform:translateY(4px);opacity:0;transition:.2s}
.lc-card:hover .lc-play{transform:none;opacity:1}


/* ═══ (1) clean top nav — drop the emoji clutter, gold underline on active ═══ */
.topbar nav a,.mtabs a,[class*="topnav"] a{font-family:"Mitr",sans-serif !important;font-weight:600 !important}
/* hide the leading emoji spans in the text nav (keep labels clean) */
nav.topnav .nav-emoji,.topnav a>span.emoji{display:none !important}

/* ═══ (2) vertical category cards (icon TOP / label BELOW) — no min-height clip, icon box fixed ═══ */
aside.sidebar a.cat{flex-direction:column !important;align-items:center !important;justify-content:center !important;
  gap:7px !important;padding:13px 4px !important;text-align:center !important}
aside.sidebar a.cat .cat-icon{width:40px !important;height:40px !important;flex:0 0 40px !important;
  margin:0 auto !important;overflow:visible !important;font-size:24px !important;line-height:40px !important}
aside.sidebar a.cat .cat-icon img{width:38px !important;height:38px !important;max-width:38px !important;display:block !important;margin:0 auto !important}
aside.sidebar a.cat .cat-label{font-size:12px !important;white-space:normal !important;line-height:1.2 !important;font-weight:600 !important}

/* clean nav: hide the .mi emoji (correct selector) */
nav.topnav .mi,.topnav a .mi{display:none !important}
nav.topnav a{padding-left:14px !important}

/* ═══ MOBILE: keep categories on the LEFT (vertical column), not a top scroll row ═══ */
@media(max-width:768px){
  .shell{display:grid !important; grid-template-columns:74px 1fr !important; gap:0 !important}
  aside.sidebar{flex-direction:column !important; position:static !important; width:auto !important;
    max-width:none !important; height:auto !important; overflow-x:visible !important; overflow-y:auto !important;
    padding:8px 6px !important; gap:8px !important}
  aside.sidebar a.cat{flex:0 0 auto !important; min-width:0 !important; width:auto !important;
    flex-direction:column !important; padding:9px 3px !important; min-height:70px !important; gap:5px !important}
  aside.sidebar a.cat .cat-icon{width:32px !important; height:32px !important; flex:0 0 32px !important}
  aside.sidebar a.cat .cat-icon img{width:30px !important; height:30px !important}
  aside.sidebar a.cat .cat-label{font-size:10px !important; white-space:normal !important; line-height:1.15 !important}
  .main{width:auto !important; min-width:0 !important}
}

/* ═══ quick-action buttons (ภารกิจ/เปิดไพ่/ชวนเพื่อน/ดูบอล) — match member, on index too ═══ */
.qacts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:1120px;margin:14px auto 6px;padding:0 16px}
.qact{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px 8px;cursor:pointer;
  border-radius:16px;background:linear-gradient(180deg,#1f1013,#140a0d);border:1px solid rgba(245,207,92,.16);transition:.18s ease}
.qact:hover{border-color:var(--p-gold,#f5cf5c);transform:translateY(-2px);box-shadow:0 8px 22px rgba(245,207,92,.2)}
.qact .qi{font-size:24px;line-height:1}
.qact .ql{font-size:13px;font-weight:600;font-family:"Mitr";color:var(--p-ink,#fdf6f3)}
@media(max-width:768px){.qacts{grid-template-columns:repeat(4,1fr);gap:6px;padding:0 10px}.qact{padding:11px 4px}.qact .ql{font-size:10.5px}}

/* ═══ AUDIT FIXES: motion discipline + icon polish ═══ */
/* named transitions replace transition:all on the base clone cards */
.card,.gcard,.ggrid>a,.sidebar .cat,.provider-strip img,.qact,.lc-card{
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease !important}
/* gate hover-motion so it doesn't stick on touch devices */
@media(hover:none){
  .card:hover,.gcard:hover,.ggrid>a:hover,.sidebar .cat:hover,.qact:hover,.lc-card:hover,.provider-strip img:hover{
    transform:none !important;box-shadow:none !important}
}
/* respect reduced-motion globally */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important}
  .marquee .mq-track{animation:none !important}
}
/* quick-action icon image sizing */
.qact .qi img.qimg{width:26px;height:26px;display:block;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}
/* light plate behind rich-card provider logos so dark logos read on dark cards */
.lc-logo{background:rgba(255,255,255,.06);border-radius:10px;padding:6px 10px}

/* ═══ unified gold category icons — subtle backing so gold pops on dark-red cards ═══ */
.sidebar .cat .cat-icon{background:radial-gradient(circle at 50% 40%,rgba(245,207,92,.14),transparent 70%) !important;border-radius:12px !important}
.sidebar .cat .cat-icon img{width:34px !important;height:34px !important;filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.sidebar .cat.active .cat-icon{background:radial-gradient(circle at 50% 40%,rgba(245,207,92,.28),transparent 72%) !important}

/* ════════════════ PUNCH-LIST FIXES (audit 2026-08-29) ════════════════ */
/* C1 — ONE token system: warm crimson ground + single crimson + single gold (kills the navy/warm split + 3-reds/3-golds) */
:root{
  --bg:#0b0406 !important; --panel:#1b0a0e !important; --panel-2:#140709 !important;
  --red:#c8102e !important; --red-2:#7a0a1c !important;
  --gold:#f5cf5c !important; --glow:#f5cf5c !important; --gold-2:#d99b2e !important;
  --cta:#f5cf5c !important; --ink:#fdf6f3 !important; --ink-muted:#cdb9b9 !important; --line:rgba(245,207,92,.16) !important;
  --p-red:#c8102e !important; --p-red2:#7a0a1c !important;
}
/* M1 — crimson OWNS emphasis (money CTA + active + section accent); gold demoted to metal accent */
a[href*="register"].btn,.cta .btn:last-child,.register-btn,button.register,.mbtn.primary{
  background:linear-gradient(180deg,#e01e37,#a50f24) !important;color:#fff !important;
  box-shadow:0 6px 18px rgba(224,30,55,.4),inset 0 1px 0 rgba(255,255,255,.25) !important;border:none !important}
.sidebar .cat.active{border-color:#e01e37 !important;box-shadow:0 4px 16px rgba(224,30,55,.32) !important;
  background:linear-gradient(135deg,rgba(224,30,55,.24),#1a0a0d) !important}
.section-title,.sec-title,#games h2,.gtitle{color:var(--ink) !important}
/* m2 — muted/secondary text = warm neutral, NOT gold (so static text stops reading as interactive) */
.seo p,.footer,.mmuted,.card-label small,#seo-content p{color:#cdb9b9 !important}
/* M9 — visible focus ring everywhere */
a:focus-visible,button:focus-visible,.btn:focus-visible,.card:focus-visible,.cat:focus-visible,.qact:focus-visible,.chip:focus-visible,.mbtn:focus-visible,[role="button"]:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--gold) !important;outline-offset:2px !important;border-radius:8px}
/* M8 — uniform :active press feedback on tapped controls */
.btn,.mbtn,.gcard,.card,.qact,.chip,.cat,.lc-card{transition:transform .12s ease,box-shadow .16s ease,border-color .16s ease}
.btn:active,.mbtn:active,.gcard:active,.card:active,.chip:active,.cat:active{transform:scale(.965)}
/* m12 — spring easing on shared transitions (premium feel, same durations) */
.card,.gcard,.ggrid>a,.sidebar .cat,.qact,.lc-card,.btn{transition-timing-function:cubic-bezier(.32,.72,0,1) !important}
/* m11 — glass top nav (matches u11k reference), red/gold tokens kept */
.topbar,header.topbar{background:rgba(16,7,9,.72) !important;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);border-bottom:1px solid var(--line) !important}
/* M14 — SEO type hierarchy below product sections */
#seo-content h2,.seo h2{font-size:18px !important} #seo-content h3,.seo h3{font-size:15px !important}
/* m6 — tabular figures on balance/counters */
.balance,.mbal,[class*="balance"],.promo-amount{font-variant-numeric:tabular-nums}
/* m14 — negative tracking on large display type */
.logo,.promo-title,.promo-amount,.section-title,.gtitle,#seo-content h2{letter-spacing:-.015em}
/* m15 — HOT badge quieter than the section name it labels */
.hot,[class*="hot-badge"]{background:transparent !important;border:1px solid var(--gold) !important;color:var(--gold) !important;font-weight:600 !important;box-shadow:none !important}
/* M12 — hero height governed by one model (cap, not unbounded) */
.hero-slide img{max-height:230px !important;object-fit:cover !important}
@media(max-width:768px){.hero-slide img{max-height:150px !important}}
/* m5 — modal inputs 16px (no iOS auto-zoom) */
.mmodal input,.mcard input,[class*="modal"] input{font-size:16px !important}
/* m10 — kill dead .logo-mark shimmer (element never renders) */
.logo-mark,@keyframes shimmer{}

/* ===== v28 TILE-CHROME + RICH CASINO CARDS (u11k/size56 study) ===== */
/* game-tile chrome: live-count badge + favorite heart + hot flag */
.card .card-art{position:relative;overflow:hidden}
.card .live-badge{position:absolute;top:6px;left:6px;z-index:3;display:inline-flex;align-items:center;gap:5px;
  font:600 11px/1 "Sarabun",sans-serif;color:#fff;background:rgba(6,3,4,.72);backdrop-filter:blur(4px);
  padding:3px 7px;border-radius:20px;font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none}
.card .live-badge i{width:6px;height:6px;border-radius:50%;background:#38e06a;box-shadow:0 0 6px #38e06a;animation:lvpulse 1.6s ease-in-out infinite}
@keyframes lvpulse{0%,100%{opacity:1}50%{opacity:.35}}
.card .tile-hot{position:absolute;top:6px;left:50%;transform:translateX(-50%);z-index:3;
  font:800 9px/1 "Mitr",sans-serif;letter-spacing:.06em;color:#fff;
  background:linear-gradient(180deg,#e01e37,#a50f24);padding:3px 8px;border-radius:0 0 7px 7px;pointer-events:none}
.card .fav-heart{position:absolute;top:5px;right:6px;z-index:4;width:24px;height:24px;border-radius:50%;
  background:rgba(6,3,4,.55);backdrop-filter:blur(4px);cursor:pointer;transition:transform .18s cubic-bezier(.32,.72,0,1)}
.card .fav-heart::before{content:"";position:absolute;inset:0;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.5-4.9-10-9.3C.6 9 1.4 5.7 4.3 4.7 6.4 4 8.5 4.9 12 8c3.5-3.1 5.6-4 7.7-3.3 2.9 1 3.7 4.3 2.3 7C19.5 16.1 12 21 12 21z'/></svg>") center/13px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.5-4.9-10-9.3C.6 9 1.4 5.7 4.3 4.7 6.4 4 8.5 4.9 12 8c3.5-3.1 5.6-4 7.7-3.3 2.9 1 3.7 4.3 2.3 7C19.5 16.1 12 21 12 21z'/></svg>") center/13px no-repeat;
  background:#e8e0d0;transition:background .18s}
.card .fav-heart.on{transform:scale(1.12)}
.card .fav-heart.on::before{background:#ff3355}
.card .fav-heart:hover{transform:scale(1.12)}

/* rich live-casino card: baked-in model+logo art, gold frame, hook badge overlay */
.lc-section .lc-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.lc-card.rich{position:relative;display:block;aspect-ratio:1/1;border-radius:14px;overflow:hidden;
  border:1px solid rgba(245,207,92,.28);background:#140a0d;box-shadow:0 6px 20px rgba(0,0,0,.4);
  transition:transform .2s cubic-bezier(.32,.72,0,1),box-shadow .2s,border-color .2s}
.lc-card.rich .lc-img{width:100%;height:100%;object-fit:cover;display:block}
.lc-card.rich .lc-hook{position:absolute;left:0;right:0;bottom:0;z-index:2;
  font:600 11px/1.25 "Sarabun",sans-serif;color:#ffe9b0;padding:14px 8px 7px;text-align:center;
  background:linear-gradient(to top,rgba(6,3,4,.92),rgba(6,3,4,0))}
.lc-card.rich .lc-play{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;
  font:700 13px/1 "Mitr",sans-serif;color:#0b0406;background:linear-gradient(180deg,#f5cf5c,#d4a72c);
  border-radius:14px;opacity:0;transform:scale(.9);transition:opacity .2s,transform .2s cubic-bezier(.32,.72,0,1);
  padding:8px 16px;width:auto;height:auto;inset:auto;position:absolute;top:50%;left:50%;translate:-50% -50%}
.lc-card.rich:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.55);border-color:rgba(245,207,92,.7)}
.lc-card.rich:hover .lc-play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.lc-card.rich:active{transform:scale(.97)}
@media(max-width:900px){.lc-section .lc-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.lc-section .lc-grid{grid-template-columns:repeat(2,1fr);gap:9px}
  .card .live-badge{font-size:10px;padding:2px 6px}}

/* ===== v30 LAYOUT CONSISTENCY: member ↔ index ===== */
/* member had a duplicate inner cream category rail (.railM) + different lobby grid.
   Kill the rail so the single red .sidebar is the only category nav (matches index),
   and make the game grid full-width under the quick-actions like index. */
.railM{display:none !important}
.lobby{display:block !important}
.lobby .ggrid,.ggrid{grid-template-columns:repeat(6,1fr) !important;gap:12px !important}
@media(max-width:900px){.lobby .ggrid,.ggrid{grid-template-columns:repeat(3,1fr) !important}}
@media(max-width:520px){.lobby .ggrid,.ggrid{grid-template-columns:repeat(2,1fr) !important;gap:9px !important}}
/* any leftover cream active-state → brand red (parity with .cat.active) */
.railM .catM.on,.catM.on{background:linear-gradient(135deg,rgba(224,30,55,.9),#7d0f1e) !important;border-color:#e01e37 !important}
.railM .catM.on .cl,.catM.on .cl{color:#fff !important}

/* ===== v31 TILE-CHROME PARITY on member .gcard (mirror index .card) ===== */
.gcard{position:relative;overflow:hidden}
.gcard .live-badge{position:absolute;top:6px;left:6px;z-index:3;display:inline-flex;align-items:center;gap:5px;
  font:600 11px/1 "Sarabun",sans-serif;color:#fff;background:rgba(6,3,4,.72);backdrop-filter:blur(4px);
  padding:3px 7px;border-radius:20px;font-variant-numeric:tabular-nums;pointer-events:none}
.gcard .live-badge i{width:6px;height:6px;border-radius:50%;background:#38e06a;box-shadow:0 0 6px #38e06a;animation:lvpulse 1.6s ease-in-out infinite}
.gcard .tile-hot{position:absolute;top:6px;left:50%;transform:translateX(-50%);z-index:3;
  font:800 9px/1 "Mitr",sans-serif;letter-spacing:.06em;color:#fff;
  background:linear-gradient(180deg,#e01e37,#a50f24);padding:3px 8px;border-radius:0 0 7px 7px;pointer-events:none}
.gcard .fav-heart{position:absolute;top:5px;right:6px;z-index:4;width:24px;height:24px;border-radius:50%;
  background:rgba(6,3,4,.55);backdrop-filter:blur(4px);cursor:pointer;transition:transform .18s cubic-bezier(.32,.72,0,1)}
.gcard .fav-heart::before{content:"";position:absolute;inset:0;background:#e8e0d0;transition:background .18s;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.5-4.9-10-9.3C.6 9 1.4 5.7 4.3 4.7 6.4 4 8.5 4.9 12 8c3.5-3.1 5.6-4 7.7-3.3 2.9 1 3.7 4.3 2.3 7C19.5 16.1 12 21 12 21z'/></svg>") center/13px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.5-4.9-10-9.3C.6 9 1.4 5.7 4.3 4.7 6.4 4 8.5 4.9 12 8c3.5-3.1 5.6-4 7.7-3.3 2.9 1 3.7 4.3 2.3 7C19.5 16.1 12 21 12 21z'/></svg>") center/13px no-repeat}
.gcard .fav-heart.on{transform:scale(1.12)}.gcard .fav-heart.on::before{background:#ff3355}
.gcard.maint .live-badge,.gcard.maint .tile-hot,.gcard.maint .fav-heart{display:none}

/* ===== v33 FLEXIBLE TILES — card fits each photo's own shape (no crop, no letterbox) ===== */
.card .card-art,.gcard{aspect-ratio:auto !important;background:#0b0406 !important}
.card .card-art img,.gcard img{width:100% !important;height:auto !important;aspect-ratio:auto !important;object-fit:contain !important;display:block !important}
/* variable-height cards align to top so rows stay tidy */
.grid,.ggrid{align-items:start !important}

/* ===== v35 tiles carry their own baked-in name → drop our redundant label bar ===== */
.card .card-label,.gcard .n{display:none !important}
/* card is now pure photo + chrome; tighten radius/border to frame the art */
.card,.gcard{border-radius:12px !important}
