/* ============================================================
   KLUB · EVENT DETAIL · Golden Hour
   Screen-specific components. Tokens come from golden-hour.css —
   nothing here invents a color; every value is a var(--…) or a
   tint/alpha of one. Load AFTER golden-hour.css.
   ============================================================ */

/* ---------- PHONE SHELL (static, fits its artboard) ---------- */
.phone { position:absolute; inset:11px; border-radius:38px; overflow:hidden; background:var(--n0);
  display:flex; flex-direction:column; box-shadow:inset 0 0 0 1px rgba(247,242,234,.06); }
.phone .leak { position:absolute; border-radius:50%; pointer-events:none; z-index:0; filter:blur(8px); }
.phone .leak.a { top:-70px; left:-60px; width:220px; height:220px; background:radial-gradient(circle,rgba(255,122,89,.42),transparent 68%); }
.phone .leak.b { top:240px; right:-80px; width:200px; height:200px; background:radial-gradient(circle,rgba(255,46,147,.30),transparent 70%); }

.edbody { position:relative; flex:1; overflow:hidden; display:flex; flex-direction:column; z-index:1; }
/* feed/marketplace tabs scroll their body under a pinned header (true app behavior) */
.edbody.scroll { overflow-y:auto; scrollbar-width:none; }
.edbody.scroll::-webkit-scrollbar { display:none; }
.edbody.scroll > * { flex-shrink:0; }
.edbody .pad { height:14px; flex-shrink:0; }

/* status bar over hero (white) */
.phone .statusbar { position:absolute; top:0; left:0; right:0; z-index:12; padding:13px 22px 4px; }

/* floating top actions over hero */
.edtop { position:absolute; top:42px; left:0; right:0; z-index:12; display:flex; justify-content:space-between; align-items:center; padding:0 16px; }
.edtop .r { display:flex; gap:9px; }
.edbtn { width:40px; height:40px; border-radius:50%; background:rgba(7,5,12,.40); backdrop-filter:blur(12px);
  border:1px solid rgba(247,242,234,.16); display:flex; align-items:center; justify-content:center; color:#fff; font-size:19px; flex-shrink:0; }
.edbtn.liked { color:var(--pink); }
.edbtn.liked i { font-weight:bold; }

/* ---------- HERO ---------- */
.edhero { position:relative; width:100%; aspect-ratio:4/4.35; flex-shrink:0; overflow:hidden; }
.edhero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(1.14) contrast(1.04) brightness(.92); }
.edhero .scrim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,5,12,.5) 0%, rgba(7,5,12,0) 22%, rgba(7,5,12,.08) 55%, rgba(7,5,12,.72) 84%, var(--n0) 100%); }
.edhero .tint { position:absolute; inset:0; background:linear-gradient(150deg, rgba(255,46,147,.18), transparent 52%); mix-blend-mode:screen; }
.edhero .hbadges { position:absolute; left:16px; right:16px; bottom:42px; display:flex; gap:8px; align-items:center; z-index:3; }
.edhero .kb { width:30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-family:var(--disp); font-weight:800; font-size:17px; line-height:1; flex-shrink:0; }
.edhero .kb.orig { background:linear-gradient(150deg,#FFE96B,#F2A60E); color:#2A1F02; box-shadow:0 0 14px -2px var(--gold-glow); }
.edhero .kb.excl { background:linear-gradient(150deg,#8B5CF6,#C084FC); color:#fff; box-shadow:0 0 14px -2px var(--purple-glow); }
.edhero .cdots { position:absolute; left:0; right:0; bottom:20px; z-index:3; }

/* ---------- TITLE BLOCK ---------- */
.edtitlewrap { position:relative; z-index:2; padding:2px 20px 2px; margin-top:-6px; }
.edgen { font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--pink-hi); display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.edgen .priv { color:var(--acid); display:inline-flex; align-items:center; gap:5px; }
.edtitle { font-family:var(--disp); font-weight:800; font-size:32px; line-height:.98; letter-spacing:-.03em; margin:0; color:var(--bone); }
.edsub { display:flex; align-items:center; gap:8px; margin-top:9px; font-size:12.5px; color:var(--bone-2); }
.edsub .vn { color:var(--bone); font-weight:600; }
.edsub .dot { width:3px; height:3px; border-radius:50%; background:var(--bone-4); }

/* ---------- WHO'S GOING strip (social proof up top) ---------- */
.gostrip { margin:14px 20px 2px; display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:15px;
  background:var(--sunset-soft); border:1px solid rgba(255,46,147,.20); }
.gostrip .txt { flex:1; min-width:0; font-size:12.5px; color:var(--bone-2); line-height:1.35; }
.gostrip .txt b { color:var(--bone); font-weight:700; }
.gostrip .here { display:flex; align-items:center; gap:6px; font-weight:700; font-size:11px; color:var(--pink-hi); white-space:nowrap; }
.gostrip .here .d { width:7px; height:7px; border-radius:50%; background:var(--pink); animation:ghpulse 2s infinite; }

/* ---------- SECTION TITLE ---------- */
.edst { font-family:var(--disp); font-weight:700; font-size:18px; letter-spacing:-.01em; color:var(--bone); padding:20px 20px 10px; display:flex; align-items:baseline; justify-content:space-between; }
.edst .all { font-family:var(--grot); font-weight:600; font-size:12px; color:var(--pink-hi); }

/* ---------- FACTS CARD ---------- */
.factcard { margin:16px 20px 4px; border-radius:var(--r-lg); background:var(--n2); border:1px solid var(--hair); padding:4px 16px; }
.frow { display:flex; align-items:flex-start; gap:13px; padding:14px 0; border-bottom:1px solid var(--hair); }
.frow:last-child { border-bottom:0; }
.fic { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:18px; }
.fic.date { background:rgba(255,46,147,.12); color:var(--pink-hi); border:1px solid rgba(255,46,147,.24); }
.fic.loc { background:rgba(139,92,246,.14); color:var(--purple-hi); border:1px solid rgba(139,92,246,.26); }
.fic.lock { background:rgba(255,210,61,.12); color:var(--acid); border:1px solid rgba(255,210,61,.30); }
.frow .ft { flex:1; min-width:0; padding-top:1px; }
.frow .ft .p { font-weight:600; font-size:14.5px; color:var(--bone); line-height:1.3; }
.frow .ft .s { font-size:12.5px; color:var(--bone-3); margin-top:3px; line-height:1.4; }
.frow .ft .s.muted { color:var(--bone-4); font-style:italic; }
.frow .go { align-self:center; color:var(--bone-3); font-size:18px; flex-shrink:0; }

/* countdown */
.cdpill { display:inline-flex; align-items:center; gap:9px; margin-top:11px; padding:8px 13px; border-radius:999px;
  background:var(--sunset-soft); border:1px solid rgba(255,46,147,.26); }
.cdpill .lab { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--pink-hi); }
.cdpill .seg { display:flex; align-items:baseline; gap:2px; }
.cdpill .seg b { font-family:var(--disp); font-weight:800; font-size:17px; color:var(--bone); font-variant-numeric:tabular-nums; line-height:1; }
.cdpill .seg span { font-size:10px; color:var(--bone-3); font-weight:600; }
.cdpill .colon { color:var(--bone-4); font-weight:700; }

/* ---------- MAP ---------- */
.edmap { position:relative; margin:8px 20px 4px; height:148px; border-radius:var(--r-md); overflow:hidden; border:1px solid var(--hair-2); background:linear-gradient(160deg,#1a1330,#0d0a15); }
.edmap .grid { position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(247,242,234,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(247,242,234,.05) 1px,transparent 1px);
  background-size:34px 34px; }
.edmap .road { position:absolute; height:3px; background:rgba(247,242,234,.10); border-radius:3px; }
.edmap .road.r1 { top:46%; left:-10%; width:120%; transform:rotate(-8deg); }
.edmap .road.r2 { top:20%; left:30%; width:90%; height:2px; transform:rotate(58deg); transform-origin:left; }
.edmap .road.route { top:46%; left:18%; width:46%; height:3px; background:var(--sunset); transform:rotate(-8deg); box-shadow:0 0 10px -1px var(--pink-glow); }
.edmap .pin { position:absolute; top:42%; left:60%; transform:translate(-50%,-100%); z-index:2; color:var(--pink); font-size:26px; filter:drop-shadow(0 4px 8px rgba(0,0,0,.5)); }
.edmap .pin .ping { position:absolute; left:50%; bottom:2px; transform:translateX(-50%); width:16px; height:16px; border-radius:50%; background:rgba(255,46,147,.4); animation:ghpulse 2s infinite; }
.edmap .dir { position:absolute; bottom:11px; left:12px; right:12px; display:flex; align-items:center; justify-content:space-between; }
.edmap .dir .a { font-size:11.5px; color:var(--bone); font-weight:600; background:rgba(7,5,12,.6); backdrop-filter:blur(6px); padding:7px 11px; border-radius:999px; border:1px solid var(--hair-2); display:flex; align-items:center; gap:6px; }

/* ---------- LINEUP ---------- */
.lineup { display:flex; gap:12px; padding:2px 20px 4px; overflow-x:auto; scrollbar-width:none; }
.lineup::-webkit-scrollbar { display:none; }
.artist { width:98px; flex-shrink:0; }
.artist .ap { position:relative; width:98px; height:120px; border-radius:14px; overflow:hidden; }
.artist .ap img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.9); }
.artist .ap .sc { position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(7,5,12,.85)); }
.artist .ap .hb { position:absolute; top:7px; left:7px; font-weight:700; font-size:8px; letter-spacing:.1em; text-transform:uppercase; color:#fff; background:var(--sunset); padding:3px 7px; border-radius:999px; }
.artist .an { font-family:var(--disp); font-weight:700; font-size:13.5px; color:var(--bone); margin-top:8px; line-height:1.05; }
.artist .at { font-size:10.5px; color:var(--bone-3); margin-top:2px; }
.artist .at b { color:var(--acid); font-weight:600; }

/* ---------- ABOUT ---------- */
.edabout { padding:2px 20px 4px; }
.edabout p { font-size:13.5px; line-height:1.6; color:var(--bone-2); margin:0; }
.edabout .more { display:inline-block; color:var(--pink-hi); font-weight:600; font-size:13px; margin-top:8px; }

/* ---------- TICKET TIERS preview ---------- */
.tier { margin:0 20px 9px; display:flex; align-items:center; gap:13px; padding:14px 15px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair); }
.tier.lead { border-color:rgba(255,210,61,.34); background:linear-gradient(150deg,rgba(255,210,61,.07),var(--n2) 60%); }
.tier .ti { flex:1; min-width:0; }
.tier .ti .tn { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); }
.tier .ti .td { font-size:11.5px; color:var(--bone-3); margin-top:2px; }
.tier .tp { font-weight:800; font-size:15px; color:var(--acid); font-family:var(--disp); white-space:nowrap; }
.tier .tp.sold { color:var(--bone-4); text-decoration:line-through; font-family:var(--grot); font-size:13px; }
.tier .soldtag { font-weight:700; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:#FF6A60; border:1px solid rgba(255,69,58,.4); background:rgba(255,69,58,.09); padding:5px 9px; border-radius:999px; }
.tier .low { font-weight:700; font-size:9.5px; letter-spacing:.04em; color:var(--warn); }

/* ---------- CHAT preview card ---------- */
.chatcard { margin:10px 20px 6px; border-radius:var(--r-lg); background:rgba(247,242,234,.022); border:1px solid var(--hair); padding:15px; }
.chatcard .ch { display:flex; align-items:center; gap:9px; }
.chatcard .ch .icon { color:var(--purple-hi); font-size:19px; display:flex; }
.chatcard .ch .l { font-weight:600; font-size:14.5px; color:var(--bone); flex:1; }
.chatcard .ch .live { font-weight:700; font-size:9.5px; letter-spacing:.04em; color:var(--go); background:rgba(52,211,153,.13); padding:4px 8px; border-radius:999px; }
.chatcard .msg { font-size:12.5px; color:var(--bone-3); margin-top:11px; font-style:italic; }
.chatcard .msg b { color:var(--bone-2); font-style:normal; font-weight:600; }
.chatcard .cf { display:flex; align-items:center; justify-content:space-between; margin-top:13px; padding-top:12px; border-top:1px solid var(--hair); }
.chatcard .cf .h { font-size:11.5px; color:var(--bone-3); }
.chatcard .cf .open { font-weight:700; font-size:12.5px; color:var(--purple-hi); display:flex; align-items:center; gap:6px; }

/* ---------- STICKY CHECKOUT BAR ---------- */
.edbar { position:relative; z-index:8; flex-shrink:0; border-top:1px solid var(--hair); background:rgba(7,5,12,.92); backdrop-filter:blur(22px); padding:12px 18px 16px; }
.edbar .eyebrow { font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--bone-3); margin-bottom:8px; }
.rsvprow { display:flex; gap:9px; }
.rpill { flex:1; height:46px; border-radius:13px; border:1px solid; display:flex; align-items:center; justify-content:center; gap:7px; font-weight:700; font-size:13.5px; background:transparent; }
.rpill i { font-size:16px; }
.rpill.going { color:var(--go); border-color:rgba(52,211,153,.45); }
.rpill.going.on { background:var(--go); border-color:var(--go); color:#06281C; }
.rpill.maybe { color:var(--warn); border-color:rgba(255,176,32,.45); }
.rpill.maybe.on { background:var(--warn); border-color:var(--warn); color:#2A1E02; }
.edbar .hair { height:1px; background:var(--hair); margin:13px 0; }
.ctarow { display:flex; align-items:center; gap:14px; }
.priceb { flex:1; min-width:0; }
.priceb .fl { font-size:11px; color:var(--bone-3); }
.priceb .pv { display:flex; align-items:baseline; gap:3px; }
.priceb .pv b { font-family:var(--disp); font-weight:800; font-size:25px; color:var(--acid); line-height:1; }
.priceb .pv .cur { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--acid); }
.priceb.going .pv b { color:var(--go); font-size:18px; }
.priceb .sold { font-size:13px; color:var(--bone-3); }
.priceb .free { font-family:var(--disp); font-weight:800; font-size:20px; color:var(--bone); }
.bigcta { font-family:var(--grot); font-weight:700; font-size:14.5px; padding:14px 26px; border-radius:14px; border:0; color:#fff; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; background:var(--sunset); box-shadow:0 8px 22px -6px var(--pink-glow); }
.bigcta i { font-size:17px; }
.bigcta.disabled { background:linear-gradient(180deg,#3A3348,#2A2438); color:var(--bone-4); box-shadow:none; }
.bigcta.view { background:rgba(247,242,234,.06); border:1px solid var(--hair-2); color:var(--bone); box-shadow:none; }
.bigcta.wait { background:var(--acid); color:var(--acid-ink); box-shadow:0 8px 22px -7px var(--gold-glow); }

/* going status line */
.goingline { display:flex; align-items:center; gap:8px; }
.goingline .ck { width:22px; height:22px; border-radius:50%; background:var(--go); display:flex; align-items:center; justify-content:center; color:#06281C; font-size:13px; font-weight:bold; }
.goingline .t { font-weight:700; font-size:14.5px; color:var(--go); }

/* ---------- REDACTION (locked) ---------- */
.redact { display:inline-flex; align-items:center; gap:6px; height:18px; padding:0 9px; border-radius:6px; background:repeating-linear-gradient(110deg,rgba(247,242,234,.10),rgba(247,242,234,.10) 5px,rgba(247,242,234,.04) 5px,rgba(247,242,234,.04) 10px); color:var(--bone-4); font-size:10px; letter-spacing:.1em; }

/* ---------- THE GATE (minimal · B) ---------- */
.gate { position:relative; margin:16px 20px 6px; border-radius:var(--r-xl); overflow:hidden;
  border:1px solid rgba(255,210,61,.30); background:linear-gradient(162deg, rgba(255,210,61,.07), rgba(157,78,221,.05) 64%, rgba(13,10,21,0)); padding:20px 18px; }
.gate .ghead { display:flex; align-items:flex-start; gap:13px; }
.gate .lk { width:46px; height:46px; border-radius:13px; background:rgba(255,210,61,.13); border:1px solid rgba(255,210,61,.4); display:flex; align-items:center; justify-content:center; color:var(--acid); font-size:22px; flex-shrink:0; }
.gate .ght { flex:1; }
.gate .ght .h { font-family:var(--disp); font-weight:800; font-size:19px; letter-spacing:-.01em; color:var(--bone); }
.gate .ght .s { font-size:12.5px; line-height:1.5; color:var(--bone-2); margin-top:5px; }
.gate .glabel { font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--acid); margin:20px 0 12px; }

/* PIN boxes */
.pinrow { display:flex; gap:8px; justify-content:space-between; }
.pinbox { flex:1; aspect-ratio:1/1.22; max-width:48px; border-radius:13px; background:var(--n2); border:1.5px solid var(--hair-2);
  display:flex; align-items:center; justify-content:center; font-family:var(--disp); font-weight:800; font-size:23px; color:var(--bone); }
.pinbox.f { border-color:rgba(255,210,61,.55); color:var(--acid); background:rgba(255,210,61,.06); }
.pinbox.cur { border-color:var(--acid); box-shadow:0 0 0 3px rgba(255,210,61,.18); }
.pinbox .caret { width:2px; height:24px; background:var(--acid); animation:blink 1.1s step-end infinite; }
@keyframes blink { 50% { opacity:0; } }

.gate .ghint { font-size:11.5px; color:var(--bone-3); text-align:center; margin-top:13px; }
.gate .gbtn { width:100%; margin-top:16px; height:50px; border-radius:14px; border:0; font-family:var(--grot); font-weight:700; font-size:14px;
  background:var(--acid); color:var(--acid-ink); box-shadow:0 8px 22px -7px var(--gold-glow); display:flex; align-items:center; justify-content:center; gap:8px; }
.gate .gbtn i { font-size:17px; }

/* perks */
.perks { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.perk { display:flex; align-items:center; gap:7px; padding:9px 11px; border-radius:11px; border:1px solid var(--hair); background:rgba(247,242,234,.025); font-size:11.5px; font-weight:500; color:var(--bone-2); }
.perk i { font-size:14px; color:var(--acid); }

/* ---------- THE GATE (cinematic · A) ---------- */
.gateA { position:absolute; inset:0; z-index:6; display:flex; flex-direction:column; }
.gateA .bg { position:absolute; inset:0; }
.gateA .bg img { width:100%; height:100%; object-fit:cover; filter:blur(18px) saturate(1.2) brightness(.5); transform:scale(1.18); }
.gateA .bg .sc { position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,5,12,.72), rgba(7,5,12,.86) 60%, var(--n0)); }
.gateA .bg .glow { position:absolute; top:24%; left:50%; transform:translateX(-50%); width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,210,61,.22), rgba(255,46,147,.10) 45%, transparent 70%); filter:blur(8px); }
.gateA .inner { position:relative; z-index:2; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 30px; }
.gateA .lockorb { width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:40px; color:var(--acid);
  background:radial-gradient(circle at 40% 34%, rgba(255,210,61,.28), rgba(255,46,147,.10)); border:1px solid rgba(255,210,61,.45);
  box-shadow:0 0 64px -6px var(--gold-glow), inset 0 2px 10px rgba(255,255,255,.18); }
.gateA .priv-chip { margin-top:22px; font-weight:600; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--acid); display:flex; align-items:center; gap:7px; }
.gateA h2 { font-family:var(--disp); font-weight:800; font-size:30px; line-height:1.02; letter-spacing:-.025em; color:var(--bone); margin:14px 0 0; }
.gateA .lede { font-size:13px; line-height:1.55; color:var(--bone-2); margin:12px 0 0; max-width:280px; }
.gateA .pinwrap { width:100%; max-width:280px; margin-top:26px; }
.gateA .pinrow { gap:9px; }
.gateA .pinbox { background:rgba(7,5,12,.5); }
.gateA .perks-line { display:flex; align-items:center; justify-content:center; gap:7px; flex-wrap:wrap; margin-top:22px; }
.gateA .perks-line .pl { display:flex; align-items:center; gap:5px; font-size:10.5px; color:var(--bone-3); }
.gateA .perks-line .pl i { font-size:13px; color:var(--acid); }
.gateA .perks-line .sep { width:3px; height:3px; border-radius:50%; background:var(--bone-4); }
.gateA .gbtn { width:100%; max-width:280px; margin-top:24px; height:52px; border-radius:15px; border:0; font-family:var(--grot); font-weight:700; font-size:14.5px;
  background:var(--acid); color:var(--acid-ink); box-shadow:0 10px 28px -8px var(--gold-glow); display:flex; align-items:center; justify-content:center; gap:8px; }
.gateA .ghint { font-size:11.5px; color:var(--bone-3); margin-top:16px; }
.gateA .back { position:absolute; top:42px; left:16px; z-index:12; }

/* ---------- TICKET STUB (has-ticket) ---------- */
.stub { margin:16px 20px 4px; border-radius:var(--r-lg); overflow:hidden; background:linear-gradient(150deg,rgba(52,211,153,.10),var(--n2) 55%); border:1px solid rgba(52,211,153,.3); }
.stub .sh { display:flex; align-items:center; gap:11px; padding:15px 16px 13px; }
.stub .sh .qr { width:52px; height:52px; border-radius:9px; background:#F7F2EA; padding:5px; flex-shrink:0; display:grid; grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(5,1fr); gap:2px; }
.stub .sh .qr i { background:#15101F; border-radius:1px; }
.stub .sh .si { flex:1; }
.stub .sh .si .e { font-weight:700; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--go); }
.stub .sh .si .n { font-family:var(--disp); font-weight:700; font-size:16px; color:var(--bone); margin-top:2px; }
.stub .sh .si .m { font-family:var(--mono); font-size:10.5px; color:var(--bone-3); margin-top:3px; letter-spacing:.04em; }
.stub .notch { height:1px; border-top:1.5px dashed var(--hair-2); margin:0 14px; position:relative; }
.stub .sf { display:flex; align-items:center; justify-content:space-between; padding:11px 16px; }
.stub .sf .l { font-size:11.5px; color:var(--bone-2); } .stub .sf .l b { color:var(--bone); font-weight:600; }
.stub .sf .v { font-weight:700; font-size:12px; color:var(--purple-hi); display:flex; align-items:center; gap:5px; }

/* small unlocked confirmation banner */
.unlockbanner { margin:14px 20px 0; display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:13px;
  background:rgba(52,211,153,.08); border:1px solid rgba(52,211,153,.28); }
.unlockbanner i { color:var(--go); font-size:18px; }
.unlockbanner .t { flex:1; font-size:12px; color:var(--bone-2); } .unlockbanner .t b { color:var(--bone); font-weight:600; }

/* ============================================================
   PHASE 2 · Tables · Checkout · Request access · new gate flow
   ============================================================ */

/* ---------- GATE buttons (landing has Unlock + Request) ---------- */
.gbtns { display:flex; flex-direction:column; gap:9px; margin-top:18px; }
.gbtn2 { height:50px; border-radius:14px; border:0; font-family:var(--grot); font-weight:700; font-size:14px; display:flex; align-items:center; justify-content:center; gap:8px; }
.gbtn2 i { font-size:17px; }
.gbtn2.primary { background:var(--acid); color:var(--acid-ink); box-shadow:0 8px 22px -7px var(--gold-glow); }
.gbtn2.ghost { background:rgba(247,242,234,.05); border:1px solid var(--hair-2); color:var(--bone); }

/* ---------- VIP TABLES band (in-page) ---------- */
.tband { padding:0 20px; }
.tband .th { display:flex; align-items:center; justify-content:space-between; padding:22px 0 12px; }
.tband .th .l { display:flex; align-items:center; gap:8px; font-weight:700; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--purple-hi); }
.tband .th .l i { font-size:15px; }
.tband .th .c { font-family:var(--mono); font-size:11px; color:var(--bone-3); }
.tcard { border-radius:var(--r-lg); overflow:hidden; background:var(--n2); border:1px solid var(--hair-2); margin-bottom:12px;
  box-shadow:0 10px 26px -10px var(--purple-glow); }
.tcard.sold { opacity:.5; }
.tcard .ph { position:relative; height:140px; }
.tcard .ph img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.92); }
.tcard .ph .pills { position:absolute; top:11px; left:11px; display:flex; gap:6px; }
.tcard .ph .pill { font-weight:700; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; padding:5px 9px; border-radius:999px; background:rgba(7,5,12,.6); backdrop-filter:blur(6px); border:1px solid var(--hair-2); color:#fff; }
.tcard .ph .pill.gold { color:var(--acid); border-color:rgba(255,210,61,.5); }
.tcard .ph .pill.red { color:#FF6A60; border-color:rgba(255,69,58,.5); }
.tcard .bd { padding:15px; }
.tcard .trow { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.tcard .tn { font-family:var(--disp); font-weight:700; font-size:17px; color:var(--bone); flex:1; min-width:0; }
.tcard .cap { display:flex; align-items:center; gap:6px; font-weight:700; font-size:12px; color:var(--bone); background:rgba(139,92,246,.12); border:1px solid rgba(139,92,246,.3); padding:5px 10px; border-radius:var(--r-md); white-space:nowrap; }
.tcard .cap i { font-size:13px; color:var(--purple-hi); }
.tcard .incl { background:rgba(247,242,234,.03); border-radius:var(--r-md); padding:8px 11px; margin:12px 0; display:flex; flex-direction:column; gap:5px; }
.tcard .incl .il { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--bone-2); }
.tcard .incl .il i { font-size:12px; color:var(--purple-hi); }
.tcard .pr { display:flex; align-items:flex-end; justify-content:space-between; }
.tcard .pr .meta { font-weight:600; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--bone-3); margin-bottom:2px; }
.tcard .pr .amt { font-family:var(--disp); font-weight:800; font-size:22px; color:var(--bone); }
.tcard .pr .cta { display:flex; align-items:center; gap:6px; font-weight:700; font-size:13px; color:#fff; background:var(--sunset); padding:10px 15px; border-radius:999px; box-shadow:0 5px 16px -5px var(--pink-glow); }
.tcard .pr .cta i { font-size:13px; }

/* ---------- RESERVATION sheet (full-screen modal) ---------- */
.sheetphone { position:absolute; inset:11px; border-radius:38px; overflow:hidden; background:var(--n1); display:flex; flex-direction:column; box-shadow:inset 0 0 0 1px rgba(247,242,234,.06); }
.sheetphone .dim { position:absolute; inset:0; background:rgba(7,5,12,.72); z-index:0; }
.sheet { position:absolute; left:0; right:0; bottom:0; z-index:2; background:var(--n1); border-top-left-radius:28px; border-top-right-radius:28px; border-top:1px solid var(--hair-2); padding:12px 20px 20px; max-height:88%; display:flex; flex-direction:column; }
.sheet .grab { width:38px; height:4px; border-radius:2px; background:var(--hair-2); align-self:center; margin-bottom:16px; flex-shrink:0; }
.shero { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.shero img { width:56px; height:56px; border-radius:var(--r-md); object-fit:cover; flex-shrink:0; }
.shero .si { flex:1; }
.shero .si .e { font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--purple-hi); }
.shero .si .n { font-family:var(--disp); font-weight:700; font-size:18px; color:var(--bone); margin-top:2px; }
.shero .si .m { font-size:11.5px; color:var(--bone-3); margin-top:3px; }
.shero .x { width:32px; height:32px; border-radius:50%; background:rgba(247,242,234,.06); display:flex; align-items:center; justify-content:center; color:var(--bone-3); flex-shrink:0; }
.sfield { margin-bottom:14px; }
.sfield .fl { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.sfield .fl .lab { font-weight:700; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-3); }
.sfield .fl .hint { font-family:var(--mono); font-size:10px; color:var(--bone-3); }
.sinput { height:48px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair-2); display:flex; align-items:center; padding:0 14px; color:var(--bone); font-size:14px; }
.sinput.ph { color:var(--bone-3); }
.srow2 { display:flex; gap:10px; }
.srow2 .sfield { flex:1; }
.sstep { display:flex; align-items:center; height:48px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair-2); overflow:hidden; }
.sstep .b { width:44px; height:100%; display:flex; align-items:center; justify-content:center; color:var(--bone); font-size:18px; }
.sstep .v { flex:1; text-align:center; font-family:var(--disp); font-weight:700; font-size:17px; color:var(--bone); }
.spick { display:flex; align-items:center; gap:8px; }
.spick i { color:var(--purple-hi); font-size:15px; }
.stotals { border-radius:var(--r-lg); border:1px solid rgba(139,92,246,.3); background:rgba(139,92,246,.07); padding:14px; margin-top:6px; }
.stotals .r { display:flex; justify-content:space-between; align-items:center; padding:3px 0; }
.stotals .r .k { font-size:13px; color:var(--bone); font-weight:600; } .stotals .r .km { font-size:12px; color:var(--bone-3); }
.stotals .r .v { font-weight:700; font-size:15px; color:var(--bone); font-variant-numeric:tabular-nums; } .stotals .r .vm { font-size:12px; color:var(--bone-3); }
.stotals .tot { border-top:1px solid rgba(139,92,246,.3); margin-top:7px; padding-top:10px; }
.stotals .tot .v { font-family:var(--disp); font-weight:800; font-size:20px; }
.stotals .note { font-size:11px; color:var(--bone-3); font-style:italic; margin-top:6px; }
.sbtn { height:52px; margin-top:14px; border-radius:14px; border:0; background:var(--sunset); color:#fff; font-family:var(--grot); font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; gap:8px; box-shadow:0 8px 22px -6px var(--pink-glow); }
.sbtn i { font-size:17px; }
.sincl { display:flex; flex-wrap:wrap; gap:8px; margin:-2px 0 16px; }
.sil { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:500; color:var(--bone-2); background:rgba(247,242,234,.04); border:1px solid var(--hair); padding:7px 11px; border-radius:10px; }
.sil i { font-size:13px; color:var(--purple-hi); }
.sil.acc { color:var(--acid); border-color:rgba(255,210,61,.3); background:rgba(255,210,61,.07); } .sil.acc i { color:var(--acid); }

/* ---------- CHECKOUT WIZARD (full-screen sheet) ---------- */
.ckphone { position:absolute; inset:11px; border-radius:38px; overflow:hidden; background:var(--n0); display:flex; flex-direction:column; box-shadow:inset 0 0 0 1px rgba(247,242,234,.06); }
.ckprog { padding:14px 18px 14px; flex-shrink:0; }
.ckprog .grab { width:40px; height:4px; border-radius:2px; background:var(--hair-2); align-self:center; margin:0 auto 14px; }
.ckprog .hr { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.ckprog .back { width:36px; height:36px; border-radius:50%; background:rgba(247,242,234,.06); display:flex; align-items:center; justify-content:center; color:var(--bone); }
.ckprog .ti { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); }
.ckprog .ct { font-family:var(--mono); font-size:11.5px; color:var(--bone-3); }
.ckprog .seg { display:flex; gap:6px; }
.ckprog .seg i { flex:1; height:3px; border-radius:2px; background:rgba(247,242,234,.1); }
.ckprog .seg i.done { background:var(--pink); } .ckprog .seg i.cur { background:rgba(255,46,147,.55); }
.ckbody { flex:1; overflow:hidden; padding:18px 20px 0; display:flex; flex-direction:column; }
.ckh { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.ckh .l { display:flex; align-items:center; gap:9px; font-family:var(--disp); font-weight:700; font-size:18px; color:var(--bone); }
.ckh .l i { color:var(--pink-hi); font-size:18px; }
.alltoggle { display:inline-flex; border:1px solid var(--hair-2); border-radius:10px; overflow:hidden; }
.alltoggle span { padding:6px 13px; font-size:12px; font-weight:600; color:var(--bone-3); }
.alltoggle span.on { background:var(--sunset); color:#fff; }

/* tier card — dark Golden Hour, radio select, accent stub */
.tkt { display:flex; align-items:stretch; border-radius:15px; overflow:hidden; margin-bottom:12px; background:var(--n2); border:1px solid var(--hair-2); position:relative; }
.tkt.sel { border-color:transparent; box-shadow:0 0 0 1.5px var(--pink), 0 12px 30px -12px var(--pink-glow); background:linear-gradient(150deg, rgba(255,46,147,.07), var(--n2) 55%); }
.tkt.dim { opacity:.45; }
.tkt .stub { width:6px; flex-shrink:0; background:var(--hair-2); }
.tkt.sel .stub { background:var(--sunset); }
.tkt .bd { flex:1; min-width:0; padding:14px 15px; }
.tkt .top { display:flex; align-items:flex-start; gap:11px; }
.tkt .rad { width:22px; height:22px; border-radius:50%; border:2px solid var(--hair-2); flex-shrink:0; margin-top:1px; display:flex; align-items:center; justify-content:center; }
.tkt.sel .rad { border-color:var(--pink); }
.tkt.sel .rad::after { content:''; width:11px; height:11px; border-radius:50%; background:var(--sunset); }
.tkt .ti { flex:1; min-width:0; }
.tkt .tn { font-family:var(--disp); font-weight:700; font-size:16.5px; color:var(--bone); line-height:1.1; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.tkt .lowtag { display:inline-flex; align-items:center; gap:4px; font-weight:700; font-size:9.5px; letter-spacing:.03em; color:var(--warn); background:rgba(255,176,32,.12); border:1px solid rgba(255,176,32,.32); padding:2px 8px; border-radius:999px; }
.tkt .lowtag i { font-size:9px; }
.tkt .tl { font-size:11.5px; color:var(--bone-3); margin-top:4px; line-height:1.35; }
.tkt .pa { text-align:right; flex-shrink:0; }
.tkt .pa .amt { font-family:var(--disp); font-weight:800; font-size:19px; color:var(--bone); line-height:1; }
.tkt.sel .pa .amt { color:var(--acid); }
.tkt .pa .incl { font-size:9.5px; color:var(--bone-3); margin-top:3px; }
.tkt .chips2 { display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; padding-left:33px; }
.tkt .ch2 { display:flex; align-items:center; gap:5px; font-size:11px; font-weight:500; color:var(--bone-2); background:rgba(247,242,234,.04); border:1px solid var(--hair); padding:4px 9px; border-radius:8px; }
.tkt .ch2 i { font-size:10px; color:var(--go); }
.tkt .soldwrap { position:relative; }
.tkt .soldtag2 { font-weight:700; font-size:10px; letter-spacing:.04em; text-transform:uppercase; color:#FF6A60; border:1px solid rgba(255,69,58,.4); background:rgba(255,69,58,.09); padding:5px 10px; border-radius:999px; }

/* quantity section */
.qbox { margin-top:8px; padding:16px; border-radius:var(--r-lg); background:rgba(247,242,234,.03); border:1px solid var(--hair); }
.qbox .qt { font-weight:600; font-size:14px; color:var(--bone); margin-bottom:12px; }
.qrow { display:flex; align-items:center; justify-content:space-between; }
.qstep { display:flex; align-items:center; gap:16px; background:var(--n2); border:1px solid var(--hair-2); border-radius:999px; padding:6px 10px; }
.qstep .b { width:30px; height:30px; border-radius:50%; background:rgba(247,242,234,.06); color:var(--bone); display:flex; align-items:center; justify-content:center; font-size:17px; }
.qstep .v { font-family:var(--disp); font-weight:700; font-size:18px; min-width:20px; text-align:center; color:var(--bone); }
.qrow .qtot { text-align:right; } .qrow .qtot .l { font-size:10px; color:var(--bone-3); } .qrow .qtot .v { font-family:var(--disp); font-weight:800; font-size:20px; color:var(--bone); }
.assign { display:flex; align-items:center; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid var(--hair); }
.assign .ic { width:38px; height:38px; border-radius:50%; background:rgba(139,92,246,.15); display:flex; align-items:center; justify-content:center; color:var(--purple-hi); flex-shrink:0; }
.assign .at { flex:1; } .assign .at .t { font-weight:600; font-size:13.5px; color:var(--bone); } .assign .at .s { font-size:11.5px; color:var(--bone-3); margin-top:1px; }

/* order summary */
.osum { border-radius:var(--r-lg); background:rgba(247,242,234,.04); border:1px solid var(--hair); padding:16px; }
.osum .or { display:flex; justify-content:space-between; align-items:center; padding:9px 0; }
.osum .or .k { font-size:14px; color:var(--bone-2); } .osum .or .v { font-size:14px; font-weight:600; color:var(--bone); font-variant-numeric:tabular-nums; }
.osum .promo { display:flex; align-items:center; gap:9px; margin:8px 0; padding:11px 13px; border-radius:var(--r-md); background:var(--n2); border:1px dashed var(--hair-2); }
.osum .promo i { color:var(--bone-3); font-size:15px; } .osum .promo .ph { flex:1; font-size:13px; color:var(--bone-3); } .osum .promo .ap { font-weight:700; font-size:12.5px; color:var(--pink-hi); }
.osum .sub { display:flex; justify-content:space-between; padding:10px 0; border-top:1px solid var(--hair); margin-top:4px; }
.osum .sub .k { font-size:14px; font-weight:600; color:var(--bone); } .osum .sub .v { font-weight:600; font-size:14px; color:var(--bone); }
.osum .disc .k, .osum .disc .v { color:var(--go); font-style:italic; }
.osum .tot { display:flex; justify-content:space-between; align-items:baseline; padding-top:12px; margin-top:6px; border-top:1px solid var(--hair-2); }
.osum .tot .k { font-family:var(--disp); font-weight:700; font-size:17px; color:var(--bone); } .osum .tot .v { font-family:var(--disp); font-weight:800; font-size:22px; color:var(--acid); }
.osum .secure { display:flex; align-items:center; gap:5px; font-weight:600; font-size:11px; color:var(--go); }
.ckh .secure { display:flex; align-items:center; gap:5px; font-weight:600; font-size:11px; color:var(--go); background:rgba(52,211,153,.12); padding:5px 10px; border-radius:999px; }
.ckh .secure i { font-size:13px; }
.ckfoot { flex-shrink:0; padding:14px 20px; border-top:1px solid var(--hair); }
.ckcont { width:100%; height:52px; border-radius:14px; border:0; background:var(--sunset); color:#fff; font-family:var(--grot); font-weight:700; font-size:15.5px; box-shadow:0 8px 22px -6px var(--pink-glow); display:flex; align-items:center; justify-content:center; gap:8px; }
.ckcont.disabled { background:linear-gradient(180deg,#3A3348,#2A2438); color:var(--bone-4); box-shadow:none; }

/* confirmation */
.ckok { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 30px; }
.ckok .check { width:88px; height:88px; border-radius:50%; background:var(--go); display:flex; align-items:center; justify-content:center; color:#06281C; font-size:46px; box-shadow:0 10px 30px -6px rgba(52,211,153,.5); }
.ckok h2 { font-family:var(--disp); font-weight:800; font-size:30px; line-height:1.05; white-space:nowrap; color:var(--bone); margin:24px 0 0; letter-spacing:-.02em; }
.ckok p { font-size:13.5px; color:var(--bone-2); line-height:1.5; margin:10px 0 0; max-width:270px; }
.ckok .ecard { width:100%; display:flex; gap:0; border-radius:var(--r-lg); overflow:hidden; background:var(--n2); border:1px solid var(--hair); margin-top:26px; }
.ckok .ecard img { width:96px; height:96px; object-fit:cover; flex-shrink:0; }
.ckok .ecard .ei { flex:1; padding:13px 14px; text-align:left; }
.ckok .ecard .ei .en { font-family:var(--disp); font-weight:700; font-size:16px; color:var(--bone); }
.ckok .ecard .ei .ed { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--bone-3); margin-top:6px; } .ckok .ecard .ei .ed i { color:var(--pink-hi); font-size:12px; }
.ckok .ecard .ei .tb { display:inline-flex; align-items:center; gap:5px; margin-top:9px; padding:5px 10px; border-radius:var(--r-md); background:rgba(255,46,147,.12); color:var(--pink-hi); font-weight:600; font-size:11.5px; } .ckok .ecard .ei .tb i { font-size:11px; }
.ckok .acts { width:100%; margin-top:24px; display:flex; flex-direction:column; gap:10px; }
.ckok .acts .pri { height:52px; border-radius:14px; border:0; background:var(--sunset); color:#fff; font-family:var(--grot); font-weight:700; font-size:15px; display:flex; align-items:center; justify-content:center; gap:8px; box-shadow:0 8px 22px -6px var(--pink-glow); }
.ckok .acts .sec { height:50px; border-radius:14px; border:1px solid var(--hair-2); background:transparent; color:var(--bone-2); font-family:var(--grot); font-weight:700; font-size:14px; }

/* ---------- REQUEST ACCESS screen ---------- */
.reqhero { text-align:center; padding:50px 26px 0; }
.reqhero .orb { width:80px; height:80px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; font-size:34px; color:var(--purple-hi);
  background:radial-gradient(circle at 40% 35%, rgba(139,92,246,.28), rgba(255,46,147,.08)); border:1px solid rgba(139,92,246,.42); box-shadow:0 0 50px -8px var(--purple-glow); }
.reqhero .excl { display:inline-flex; align-items:center; gap:6px; margin-top:20px; font-weight:700; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--purple-hi); border:1px solid rgba(139,92,246,.4); background:rgba(139,92,246,.1); padding:6px 12px; border-radius:999px; }
.reqhero h2 { font-family:var(--disp); font-weight:800; font-size:27px; line-height:1.05; letter-spacing:-.02em; color:var(--bone); margin:14px 0 0; }
.reqhero p { font-size:13px; line-height:1.55; color:var(--bone-2); margin:11px 0 0; }
.reqmini { display:flex; align-items:center; gap:12px; margin:22px 20px 0; padding:12px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair); }
.reqmini img { width:46px; height:46px; border-radius:11px; object-fit:cover; flex-shrink:0; }
.reqmini .ri { flex:1; } .reqmini .ri .rn { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); } .reqmini .ri .rd { font-size:11.5px; color:var(--bone-3); margin-top:2px; }
.reqlabel { font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--bone-3); margin:22px 20px 9px; }
.reqmsg { margin:0 20px; min-height:96px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair-2); padding:13px 14px; font-size:13.5px; color:var(--bone); line-height:1.5; }
.reqmsg.ph { color:var(--bone-3); }
.reqsteps { margin:18px 20px 0; }
.reqstep { display:flex; align-items:flex-start; gap:12px; padding:9px 0; }
.reqstep .num { width:24px; height:24px; border-radius:50%; background:rgba(139,92,246,.15); border:1px solid rgba(139,92,246,.35); color:var(--purple-hi); font-weight:700; font-size:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.reqstep .rt { flex:1; font-size:12.5px; color:var(--bone-2); line-height:1.4; padding-top:2px; } .reqstep .rt b { color:var(--bone); font-weight:600; }

/* request sent / pending state */
.reqsent { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 32px; }
.reqsent .orb { width:88px; height:88px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:42px; color:var(--purple-hi);
  background:radial-gradient(circle at 40% 35%, rgba(139,92,246,.3), rgba(255,46,147,.1)); border:1px solid rgba(139,92,246,.45); box-shadow:0 0 56px -8px var(--purple-glow); }
.reqsent h2 { font-family:var(--disp); font-weight:800; font-size:28px; line-height:1.05; color:var(--bone); margin:24px 0 0; letter-spacing:-.02em; }
.reqsent p { font-size:13.5px; color:var(--bone-2); line-height:1.55; margin:12px 0 0; max-width:280px; }
.reqsent .pend { display:inline-flex; align-items:center; gap:7px; margin-top:20px; font-weight:700; font-size:11px; letter-spacing:.04em; color:var(--warn); background:rgba(255,176,32,.1); border:1px solid rgba(255,176,32,.36); padding:8px 14px; border-radius:999px; }
.reqsent .pend .d { width:7px; height:7px; border-radius:50%; background:var(--warn); animation:ghpulse 2s infinite; }

/* ============================================================
   PHASE 3 · Community + Feed screens
   ============================================================ */

/* feed top bar (wordmark + bell + DM + profile avatar — matches Discover's cluster; posting lives in the composer row below, not a header FAB) */
.feedhead { position:relative; z-index:6; display:flex; align-items:center; justify-content:space-between; padding:34px 20px 12px; border-bottom:1px solid rgba(247,242,234,.05); }
.feedhead .wm { font-family:var(--disp); font-weight:800; font-size:24px; letter-spacing:-.03em; color:var(--bone); }
.feedhead .wm .dot { background:var(--sunset); -webkit-background-clip:text; background-clip:text; color:transparent; }
.feedhead .acts { display:flex; align-items:center; gap:15px; color:var(--bone-2); }
.feedhead .acts .ai { position:relative; display:flex; font-size:23px; }
.feedhead .acts .ai .nb { position:absolute; top:-2px; right:-2px; width:8px; height:8px; border-radius:50%; background:var(--pink); box-shadow:0 0 0 2px var(--n0); }
.feedhead .composefab { width:34px; height:34px; border-radius:50%; background:var(--sunset); display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; box-shadow:0 5px 14px -5px var(--pink-glow); }

/* feed activity-card icon chip + kudos icon sizing */
.fcard .act .ic { display:inline-flex; width:26px; height:26px; border-radius:8px; align-items:center; justify-content:center; font-size:14px; margin-right:9px; vertical-align:middle; }
.fcard .act .ic.tk { background:rgba(255,210,61,.13); color:var(--acid); }
.fcard .act .ic.fl { background:rgba(255,122,26,.14); color:var(--flame); }
.fcard .act .ic.pin { background:rgba(139,92,246,.15); color:var(--purple-hi); }
.fcard .act .ic.go { background:rgba(255,46,147,.13); color:var(--pink-hi); }
.fcard .act .ic.cf { background:rgba(52,211,153,.13); color:var(--go); }
.fact .a > i[class*="lc-"] { font-size:19px; }
.fcard .save { margin-left:auto; color:var(--bone-3); display:flex; }
.fcard .save > i[class*="lc-"] { font-size:19px; }
.fcard .save.on { color:var(--purple-hi); }
.fcard .fh .who .n .bot { font-size:11px; color:var(--purple-hi); margin-left:5px; vertical-align:middle; }
.fcard .etag { display:inline-flex; align-items:center; gap:8px; margin:11px 15px 0; padding:8px 11px; border-radius:11px; background:rgba(247,242,234,.03); border:1px solid var(--hair); }
.fcard .etag img { width:28px; height:28px; border-radius:7px; object-fit:cover; }
.fcard .etag .en { font-size:12.5px; font-weight:600; color:var(--pink-hi); }

/* ---------- COMMUNITY ---------- */
.bigtitle { position:relative; z-index:6; display:flex; align-items:flex-end; justify-content:space-between; padding:38px 20px 14px; }
.bigtitle .l .eye { font-weight:600; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--pink-hi); margin-bottom:7px; }
.bigtitle .l h2 { font-family:var(--disp); font-weight:800; font-size:32px; letter-spacing:-.03em; margin:0; color:var(--bone); }
.bigtitle .srch { width:38px; height:38px; border-radius:50%; background:rgba(247,242,234,.05); border:1px solid var(--hair-2); display:flex; align-items:center; justify-content:center; color:var(--bone); font-size:17px; flex-shrink:0; }

.ctabs { position:relative; z-index:6; display:flex; gap:22px; padding:0 20px; border-bottom:1px solid var(--hair); }
.ctab { display:flex; align-items:center; gap:7px; padding:12px 0; border-bottom:2px solid transparent; color:var(--bone-3); font-weight:600; font-size:13.5px; }
.ctab i { font-size:15px; }
.ctab.on { color:var(--bone); border-bottom-color:var(--pink); }
.ctab.on i { color:var(--pink-hi); }

/* your-klubs / crew rail */
.klubrow { position:relative; z-index:5; display:flex; gap:12px; padding:2px 20px 4px; overflow-x:auto; scrollbar-width:none; }
.klubrow::-webkit-scrollbar { display:none; }
.klubc { flex-shrink:0; width:160px; border-radius:18px; overflow:hidden; background:var(--n2); border:1px solid var(--hair-2); }
.klubc .cover { position:relative; height:88px; }
.klubc .cover img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.9); }
.klubc .cover .sc { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(21,16,31,.92)); }
.klubc .cover .av { position:absolute; left:13px; bottom:-15px; width:38px; height:38px; border-radius:11px; background-size:cover; background-position:center; box-shadow:0 0 0 3px var(--n2); }
.klubc .cover .live { position:absolute; top:9px; right:9px; display:flex; align-items:center; gap:5px; font-weight:700; font-size:9px; letter-spacing:.04em; color:#fff; background:rgba(7,5,12,.55); backdrop-filter:blur(6px); border:1px solid rgba(255,46,147,.5); padding:4px 8px; border-radius:999px; }
.klubc .cover .live .d { width:6px; height:6px; border-radius:50%; background:var(--pink); animation:ghpulse 2s infinite; }
.klubc .kb2 { padding:20px 13px 14px; }
.klubc .kn { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); line-height:1.05; }
.klubc .km { font-size:10.5px; color:var(--bone-3); margin-top:4px; }
.klubc .open { margin-top:11px; text-align:center; font-weight:700; font-size:11.5px; color:var(--bone); padding:8px; border-radius:10px; border:1px solid var(--hair-2); background:rgba(247,242,234,.04); }
.klubc.joined .open { background:var(--sunset); border:0; color:#fff; box-shadow:0 5px 14px -6px var(--pink-glow); }

/* streak card */
.streakcard { position:relative; z-index:5; margin:6px 20px 4px; border-radius:18px; padding:16px 18px; overflow:hidden; background:linear-gradient(150deg, rgba(255,122,26,.14), rgba(255,46,147,.06) 70%); border:1px solid rgba(255,122,26,.3); }
.streakcard .sh { display:flex; align-items:center; gap:12px; }
.streakcard .fire { width:44px; height:44px; border-radius:13px; background:rgba(255,122,26,.18); border:1px solid rgba(255,122,26,.4); display:flex; align-items:center; justify-content:center; color:var(--flame); font-size:23px; flex-shrink:0; }
.streakcard .si { flex:1; }
.streakcard .si .t { font-family:var(--disp); font-weight:800; font-size:19px; color:var(--bone); }
.streakcard .si .s { font-size:11.5px; color:var(--bone-2); margin-top:2px; }
.streakcard .bar { margin-top:13px; height:7px; border-radius:999px; background:rgba(7,5,12,.4); overflow:hidden; }
.streakcard .bar i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--flame),var(--pink)); }
.streakcard .nx { font-size:10.5px; color:var(--bone-3); margin-top:8px; }

/* badges row */
.badgerow { position:relative; z-index:5; display:flex; gap:11px; padding:2px 20px 4px; overflow-x:auto; scrollbar-width:none; }
.badgerow::-webkit-scrollbar { display:none; }
.badge2 { flex-shrink:0; width:96px; text-align:center; border-radius:15px; padding:15px 8px 13px; background:var(--n2); border:1px solid var(--hair); }
.badge2 .ic { width:46px; height:46px; border-radius:50%; margin:0 auto 9px; display:flex; align-items:center; justify-content:center; font-size:22px; }
.badge2.gold .ic { background:rgba(255,210,61,.13); color:var(--acid); border:1px solid rgba(255,210,61,.3); }
.badge2.purple .ic { background:rgba(139,92,246,.15); color:var(--purple-hi); border:1px solid rgba(139,92,246,.32); }
.badge2.pink .ic { background:rgba(255,46,147,.13); color:var(--pink-hi); border:1px solid rgba(255,46,147,.32); }
.badge2 .bn { font-weight:700; font-size:11px; color:var(--bone); line-height:1.15; }
.badge2 .bd2 { font-size:9px; color:var(--bone-3); margin-top:3px; }

/* leaderboard */
.leaders { position:relative; z-index:5; padding:0 20px; }
.lrow { display:flex; align-items:center; gap:13px; padding:11px 0; border-bottom:1px solid var(--hair); }
.lrow:last-child { border-bottom:0; }
.lrow .rk { width:22px; font-family:var(--disp); font-weight:800; font-size:16px; color:var(--bone-3); text-align:center; flex-shrink:0; }
.lrow.top .rk { background:var(--sunset); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lrow .la { width:40px; height:40px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; }
.lrow .li { flex:1; min-width:0; }
.lrow .li .ln { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); }
.lrow .li .ls { font-size:10.5px; color:var(--bone-3); margin-top:1px; }
.lrow .pts { font-family:var(--disp); font-weight:800; font-size:15px; color:var(--acid); white-space:nowrap; }
.lrow .pts span { font-size:10px; color:var(--bone-3); font-weight:600; font-family:var(--grot); margin-left:3px; }
.lrow .me { color:var(--pink-hi); }

/* ============================================================
   PHASE 4 · Pass / My Tickets (wallet)
   ============================================================ */
/* wallet section header (icon + title + count/see-all) */
.wsec { position:relative; z-index:5; display:flex; align-items:center; justify-content:space-between; padding:24px 20px 12px; }
.wsec .l { display:flex; align-items:center; gap:9px; }
.wsec .l i { font-size:17px; color:var(--pink-hi); }
.wsec .l .h { font-family:var(--disp); font-weight:700; font-size:18px; letter-spacing:-.01em; color:var(--bone); }
.wsec .l .ct { font-family:var(--mono); font-size:11px; color:var(--n0); background:var(--sunset); padding:2px 8px; border-radius:999px; font-weight:600; }
.wsec .all { font-weight:600; font-size:12px; color:var(--pink-hi); }

/* generic invite card — one shape, type-specific accent */
.invite { position:relative; z-index:5; margin:0 20px 12px; border-radius:18px; overflow:hidden; background:var(--n2); border:1px solid var(--hair-2); }
.invite .itop { display:flex; align-items:center; justify-content:space-between; padding:13px 14px 0; }
.invite .kind { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; padding:5px 10px; border-radius:999px; }
.invite .kind i { font-size:12px; }
.invite .kind.guest { color:var(--acid); background:rgba(255,210,61,.1); border:1px solid rgba(255,210,61,.34); }
.invite .kind.table { color:var(--purple-hi); background:rgba(139,92,246,.12); border:1px solid rgba(139,92,246,.34); }
.invite .kind.gift { color:var(--pink-hi); background:rgba(255,46,147,.1); border:1px solid rgba(255,46,147,.34); }
.invite .kind.crew { color:#fff; background:var(--sunset); border:0; }
.invite .ddl { display:inline-flex; align-items:center; gap:5px; font-weight:600; font-size:10.5px; color:var(--warn); }
.invite .ddl i { font-size:11px; }
.invite .irow { display:flex; gap:12px; padding:12px 14px 0; }
.invite .irow img { width:58px; height:58px; border-radius:12px; object-fit:cover; flex-shrink:0; }
.invite .iei { flex:1; min-width:0; }
.invite .iei .nm { font-family:var(--disp); font-weight:700; font-size:16px; color:var(--bone); line-height:1.1; }
.invite .iei .mt { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--bone-3); margin-top:5px; }
.invite .iei .mt i { font-size:12px; }
.invite .iei .spec { font-size:11.5px; color:var(--acid); font-weight:600; margin-top:5px; }
.invite .iei .spec.purple { color:var(--purple-hi); }
.invite .by { display:flex; align-items:center; gap:8px; padding:11px 14px 0; }
.invite .by .av { width:22px; height:22px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; }
.invite .by .t { font-size:11.5px; color:var(--bone-2); } .invite .by .t b { color:var(--bone); font-weight:600; }
.invite .msg { margin:10px 14px 0; padding:9px 12px; border-radius:11px; background:rgba(247,242,234,.04); border:1px solid var(--hair); font-size:12px; font-style:italic; color:var(--bone-2); line-height:1.4; }
.invite .iacts { display:flex; gap:10px; padding:13px 14px 14px; }
.invite .iacts button { height:44px; border-radius:12px; font-family:var(--grot); font-weight:700; font-size:13.5px; display:flex; align-items:center; justify-content:center; gap:6px; }
.invite .iacts .dec { flex:1; border:1px solid rgba(255,69,58,.32); background:rgba(255,69,58,.07); color:#FF6A60; }
.invite .iacts .acc { flex:1.5; border:0; background:var(--sunset); color:#fff; box-shadow:0 6px 16px -6px var(--pink-glow); }
.invite .iacts i { font-size:15px; }

/* wallet ticket card */
.wtkt { position:relative; z-index:5; margin:0 20px 13px; border-radius:18px; overflow:hidden; background:var(--n2); border:1px solid var(--hair); box-shadow:0 12px 28px -14px rgba(0,0,0,.6); }
.wtkt .wph { position:relative; height:124px; }
.wtkt .wph img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.82); }
.wtkt .wph .sc { position:absolute; inset:0; background:linear-gradient(180deg,transparent 28%,rgba(21,16,31,.96)); }
.wtkt .wph .tier { position:absolute; top:11px; left:11px; display:inline-flex; align-items:center; gap:5px; font-weight:700; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border-radius:999px; color:#fff; }
.wtkt .wph .tier.ga { background:rgba(7,5,12,.55); backdrop-filter:blur(6px); border:1px solid var(--hair-2); }
.wtkt .wph .tier.vip { background:linear-gradient(135deg,#8B5CF6,#C084FC); box-shadow:0 4px 12px -3px var(--purple-glow); }
.wtkt .wph .tier i { font-size:11px; }
.wtkt .wph .days { position:absolute; top:11px; right:11px; text-align:center; background:rgba(7,5,12,.5); backdrop-filter:blur(8px); border:1px solid var(--hair-2); border-radius:12px; padding:6px 11px; }
.wtkt .wph .days b { display:block; font-family:var(--disp); font-weight:800; font-size:17px; color:#fff; line-height:1; } .wtkt .wph .days span { font-size:8px; color:rgba(247,242,234,.7); letter-spacing:.08em; text-transform:uppercase; }
.wtkt .wph .gift { position:absolute; left:11px; bottom:10px; display:flex; align-items:center; gap:6px; font-size:10.5px; color:#fff; font-weight:600; background:rgba(255,46,147,.22); border:1px solid rgba(255,46,147,.45); padding:4px 9px; border-radius:999px; }
.wtkt .wph .gift i { font-size:11px; }
.wtkt .nm2 { font-family:var(--disp); font-weight:700; font-size:17px; color:var(--bone); padding:13px 15px 0; line-height:1.1; }
.wtkt .meta2 { display:flex; align-items:center; gap:16px; padding:8px 15px 0; }
.wtkt .meta2 .m { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--bone-2); } .wtkt .meta2 .m i { color:var(--pink-hi); font-size:13px; }
.wtkt .notch2 { height:0; border-top:1.5px dashed var(--hair-2); margin:13px 0 0; }
.wtkt .foot2 { display:flex; align-items:center; justify-content:space-between; padding:12px 15px 13px; }
.wtkt .wqr { display:flex; align-items:center; gap:9px; }
.wtkt .wqr .chip { width:36px; height:36px; border-radius:9px; background:#F7F2EA; padding:4px; display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(4,1fr); gap:1.5px; }
.wtkt .wqr .chip i { background:#15101F; border-radius:1px; }
.wtkt .wqr .t { font-size:11.5px; color:var(--bone-2); font-weight:600; }
.wtkt .active { display:flex; align-items:center; gap:6px; font-weight:700; font-size:11px; color:var(--go); }
.wtkt .active .d { width:7px; height:7px; border-radius:50%; background:var(--go); animation:ghpulse 2s infinite; }
.wtkt .used { font-weight:700; font-size:11px; color:var(--bone-3); }

/* wallet VIP table reservation */
.wtable { position:relative; z-index:5; margin:0 20px 12px; border-radius:16px; background:linear-gradient(150deg,rgba(139,92,246,.1),var(--n2) 60%); border:1px solid rgba(139,92,246,.3); padding:14px; }
.wtable .wtop { display:flex; align-items:center; gap:11px; }
.wtable .ic { width:44px; height:44px; border-radius:12px; background:rgba(139,92,246,.2); display:flex; align-items:center; justify-content:center; color:#C4B5FD; font-size:20px; flex-shrink:0; }
.wtable .wti { flex:1; min-width:0; }
.wtable .wti .nm { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); }
.wtable .wti .sub { font-size:11.5px; color:var(--bone-3); margin-top:2px; }
.wtable .wti .meta { display:flex; gap:8px; align-items:center; margin-top:5px; font-size:10.5px; color:var(--bone-4); }
.wtable .wti .meta .st { font-weight:700; } .wtable .wti .meta .st.ok { color:var(--go); } .wtable .wti .meta .st.pend { color:var(--warn); }
.wtable .amt { font-family:var(--disp); font-weight:800; font-size:16px; color:var(--bone); white-space:nowrap; }
.wtable .manage { width:100%; margin-top:13px; height:42px; border-radius:999px; border:0; background:var(--purple); color:#fff; font-family:var(--grot); font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; gap:7px; }
.wtable .manage i { font-size:15px; }
.wtable .bal { display:inline-flex; align-items:center; gap:5px; font-weight:700; font-size:10px; color:var(--acid); background:rgba(255,210,61,.1); border:1px solid rgba(255,210,61,.3); padding:3px 8px; border-radius:999px; }

/* ============================================================
   PHASE 5 · Management / detail screens (QR + operations)
   ============================================================ */
.mghead { position:relative; z-index:6; display:flex; align-items:center; justify-content:space-between; padding:34px 16px 8px; }
.mghead .cir { width:40px; height:40px; border-radius:50%; background:rgba(247,242,234,.06); border:1px solid var(--hair-2); display:flex; align-items:center; justify-content:center; color:var(--bone); font-size:18px; }
.mghead .ti { font-family:var(--disp); font-weight:700; font-size:16px; color:var(--bone); }

.mgevt { display:flex; gap:12px; align-items:center; padding:6px 20px 0; }
.mgevt img { width:54px; height:54px; border-radius:13px; object-fit:cover; flex-shrink:0; }
.mgevt .mi { flex:1; min-width:0; }
.mgevt .mi .nm { font-family:var(--disp); font-weight:700; font-size:17px; color:var(--bone); line-height:1.1; }
.mgevt .mi .mt { font-size:11.5px; color:var(--bone-3); margin-top:4px; display:flex; gap:6px; align-items:center; }
.mgevt .mi .mt i { font-size:12px; color:var(--pink-hi); }

.mgstat { margin:14px 20px 0; display:flex; align-items:center; gap:8px; padding:9px 14px; border-radius:12px; font-weight:600; font-size:12.5px; }
.mgstat .d { width:7px; height:7px; border-radius:50%; background:currentColor; }
.mgstat.up { background:rgba(255,46,147,.08); color:var(--pink-hi); border:1px solid rgba(255,46,147,.22); }
.mgstat.live { background:rgba(52,211,153,.1); color:var(--go); border:1px solid rgba(52,211,153,.28); }
.mgstat.warn2 { background:rgba(255,176,32,.1); color:var(--warn); border:1px solid rgba(255,176,32,.28); }

/* QR card */
.qrcard { margin:16px 20px 6px; border-radius:var(--r-xl); background:linear-gradient(165deg,rgba(247,242,234,.04),var(--n2) 70%); border:1px solid var(--hair-2); padding:22px 20px; display:flex; flex-direction:column; align-items:center; }
.qbadge { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:6px 13px; border-radius:999px; margin-bottom:18px; }
.qbadge i { font-size:12px; }
.qbadge.ga { color:var(--bone); background:rgba(247,242,234,.06); border:1px solid var(--hair-2); }
.qbadge.vip { color:#fff; background:linear-gradient(135deg,#8B5CF6,#C084FC); box-shadow:0 4px 14px -4px var(--purple-glow); }
.qbadge.free { color:var(--acid); background:rgba(255,210,61,.1); border:1px solid rgba(255,210,61,.34); }
.qbadge.seat { color:var(--purple-hi); background:rgba(139,92,246,.12); border:1px solid rgba(139,92,246,.34); }
.qrbig { width:188px; height:188px; background:#F7F2EA; border-radius:16px; padding:12px; display:grid; grid-template-columns:repeat(13,1fr); grid-template-rows:repeat(13,1fr); gap:2px; box-shadow:0 8px 26px -8px rgba(0,0,0,.5); }
.qrbig i { border-radius:1px; }
.qrcard .code { font-family:var(--mono); font-size:13px; letter-spacing:.2em; color:var(--bone-2); margin-top:15px; }
.qrcard .hint { font-size:11.5px; color:var(--bone-3); margin-top:8px; display:flex; align-items:center; gap:6px; }
.qrcard .hint i { color:var(--acid); font-size:13px; }

/* info chips row under QR */
.mginfo { display:flex; gap:10px; margin:12px 20px 0; }
.mginfo .c { flex:1; border-radius:13px; background:var(--n2); border:1px solid var(--hair); padding:11px 13px; }
.mginfo .c .l { font-weight:600; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-3); }
.mginfo .c .v { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); margin-top:4px; }
.mginfo .c .v.acid { color:var(--acid); }

/* operations list */
.opsec { font-weight:600; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--bone-3); padding:24px 20px 4px; }
.ops { padding:0 20px; }
.op { display:flex; align-items:center; gap:13px; padding:14px 0; border-bottom:1px solid var(--hair); width:100%; text-align:left; background:none; border-left:0; border-right:0; border-top:0; }
.op:last-child { border-bottom:0; }
.op .oic { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; background:rgba(247,242,234,.05); color:var(--bone); }
.op .oic.pink { background:rgba(255,46,147,.12); color:var(--pink-hi); }
.op .oic.purple { background:rgba(139,92,246,.13); color:var(--purple-hi); }
.op .oic.acid { background:rgba(255,210,61,.1); color:var(--acid); }
.op .oic.go { background:rgba(52,211,153,.12); color:var(--go); }
.op .oic.stop { background:rgba(255,69,58,.1); color:#FF6A60; }
.op .ot { flex:1; min-width:0; } .op .ot .l { display:block; font-weight:600; font-size:14.5px; color:var(--bone); } .op .ot .s { display:block; font-size:11.5px; color:var(--bone-3); margin-top:3px; }
.op .chev { color:var(--bone-3); font-size:16px; display:flex; }
.op .tag { font-weight:700; font-size:10px; color:var(--acid); background:rgba(255,210,61,.1); border:1px solid rgba(255,210,61,.3); padding:3px 8px; border-radius:999px; }
.op.danger .ot .l { color:#FF6A60; }

/* invitations entry-point banner (wallet links out to the separate Invitations screen) */
.invlink { position:relative; z-index:5; margin:8px 20px 0; display:flex; align-items:center; gap:12px; padding:13px 15px; border-radius:15px; background:var(--sunset-soft); border:1px solid rgba(255,46,147,.2); }
.invlink .il { width:34px; height:34px; border-radius:10px; background:var(--sunset); display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; flex-shrink:0; box-shadow:0 4px 14px -5px var(--pink-glow); }
.invlink .t { flex:1; font-size:12.5px; color:var(--bone-2); } .invlink .t b { color:var(--bone); font-weight:700; }
.invlink .chev { color:var(--bone-3); font-size:16px; display:flex; }

/* discover screen: app header clears the absolute status bar (safe area) */
.phone .apphead { padding-top:34px; }

/* ============================================================
   PHASE 6 · Discover search flow (search → results → filters)
   ============================================================ */
.srchhead { position:relative; z-index:6; display:flex; align-items:center; gap:11px; padding:34px 16px 12px; }
.srchhead .bk { width:34px; height:34px; border-radius:50%; background:rgba(247,242,234,.06); border:1px solid var(--hair-2); display:flex; align-items:center; justify-content:center; color:var(--bone); font-size:16px; flex-shrink:0; }
.srchbar { flex:1; display:flex; align-items:center; gap:10px; height:44px; padding:0 13px; border-radius:13px; background:var(--n2); border:1px solid var(--purple); box-shadow:0 0 0 3px rgba(139,92,246,.16); min-width:0; }
.srchbar.idle { border-color:var(--hair-2); box-shadow:none; }
.srchbar > i { font-size:17px; color:var(--bone-3); flex-shrink:0; }
.srchbar .q { flex:1; font-size:14px; color:var(--bone); white-space:nowrap; overflow:hidden; } .srchbar .q.ph { color:var(--bone-3); }
.srchbar .cur { width:2px; height:18px; background:var(--pink); animation:blink 1.1s step-end infinite; flex-shrink:0; }
.srchbar .clr { color:var(--bone-3); font-size:15px; flex-shrink:0; }
.srchhead .cancel { font-weight:600; font-size:13.5px; color:var(--pink-hi); flex-shrink:0; }

.srchsec { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); padding:18px 20px 6px; display:flex; align-items:center; }
.srchsec .clrall { margin-left:auto; font-family:var(--grot); font-weight:600; font-size:11.5px; color:var(--bone-3); }
.recent { padding:0 20px; }
.rrow { display:flex; align-items:center; gap:13px; padding:11px 0; border-bottom:1px solid var(--hair); }
.rrow:last-child { border-bottom:0; }
.rrow .ic { color:var(--bone-3); font-size:16px; display:flex; } .rrow.trd .ic { color:var(--flame); }
.rrow .rk2 { font-family:var(--disp); font-weight:800; font-size:14px; color:var(--bone-3); width:14px; text-align:center; }
.rrow .t { flex:1; min-width:0; font-size:14px; color:var(--bone); } .rrow .t .s { display:block; font-size:11px; color:var(--bone-3); margin-top:1px; }
.rrow .x { color:var(--bone-4); font-size:14px; display:flex; }
.rrow .ct2 { font-size:11px; color:var(--bone-3); }

.browse { display:flex; flex-wrap:wrap; gap:9px; padding:6px 20px 0; }
.gchip { font-weight:600; font-size:13px; color:var(--bone); padding:10px 15px; border-radius:13px; background:var(--n2); border:1px solid var(--hair-2); }
.gchip.on { background:var(--sunset); color:#fff; border-color:transparent; }

/* results: filter trigger + active pills */
.fbar { display:flex; align-items:center; gap:8px; padding:12px 20px 6px; overflow-x:auto; scrollbar-width:none; }
.fbar::-webkit-scrollbar { display:none; }
.fbtn { display:inline-flex; align-items:center; gap:7px; flex-shrink:0; font-weight:700; font-size:12.5px; color:#fff; background:var(--sunset); padding:9px 14px; border-radius:999px; box-shadow:0 4px 14px -5px var(--pink-glow); }
.fbtn i { font-size:14px; }
.fpill { flex-shrink:0; display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:12px; color:var(--pink-hi); padding:8px 13px; border-radius:999px; background:rgba(255,46,147,.07); border:1px solid rgba(255,46,147,.36); }
.fpill .x { color:var(--pink-hi); font-size:12px; opacity:.7; }
.rescount { font-size:11.5px; color:var(--bone-3); padding:14px 20px 6px; } .rescount b { color:var(--bone); font-weight:600; }

/* people / artist result row */
.presult { display:flex; align-items:center; gap:12px; padding:11px 20px; }
.presult .pa { width:46px; height:46px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; }
.presult .pi { flex:1; min-width:0; } .presult .pi .pn { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); display:flex; align-items:center; gap:5px; } .presult .pi .pn .vf { color:var(--purple-hi); font-size:13px; display:flex; } .presult .pi .ph2 { font-size:11.5px; color:var(--bone-3); margin-top:2px; }
.presult .follow2 { font-weight:700; font-size:12px; color:var(--pink-hi); border:1px solid rgba(255,46,147,.35); background:rgba(255,46,147,.07); padding:8px 15px; border-radius:999px; white-space:nowrap; }
.presult .follow2.on { background:var(--sunset); color:#fff; border:0; }

/* filters sheet */
.fsheet .fhdr { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.fsheet .fhdr .h { font-family:var(--disp); font-weight:800; font-size:21px; color:var(--bone); }
.fsheet .fhdr .rs { font-weight:600; font-size:12.5px; color:var(--bone-3); }
.fsheet .fg { padding:16px 0 4px; border-top:1px solid var(--hair); }
.fsheet .fgl { font-weight:700; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--bone-3); margin-bottom:11px; }
.fsheet .fgc { display:flex; flex-wrap:wrap; gap:8px; }
.fsheet .fc { font-weight:600; font-size:12.5px; color:var(--bone-2); padding:9px 14px; border-radius:999px; background:var(--n2); border:1px solid var(--hair-2); }
.fsheet .fc.on { background:var(--sunset); color:#fff; border-color:transparent; box-shadow:0 4px 14px -6px var(--pink-glow); }
.fsheet .fc.acid.on { background:var(--acid); color:var(--acid-ink); box-shadow:0 4px 14px -6px var(--gold-glow); }
.fsheet .applybar { display:flex; gap:11px; margin-top:18px; }
.fsheet .reset { flex:1; height:50px; border-radius:14px; border:1px solid var(--hair-2); background:transparent; color:var(--bone-2); font-family:var(--grot); font-weight:700; font-size:14px; }
.fsheet .apply { flex:1.7; height:50px; border-radius:14px; border:0; background:var(--sunset); color:#fff; font-family:var(--grot); font-weight:700; font-size:14.5px; box-shadow:0 8px 22px -6px var(--pink-glow); display:flex; align-items:center; justify-content:center; gap:8px; }

/* ============================================================
   PHASE 7 · Entity search + role profiles
   ============================================================ */
.presult .pa.sq { border-radius:13px; }
.tylabel { display:inline-flex; font-weight:700; font-size:8.5px; letter-spacing:.1em; text-transform:uppercase; padding:3px 7px; border-radius:999px; margin-right:6px; vertical-align:middle; }
.tylabel.artist { color:var(--pink-hi); background:rgba(255,46,147,.1); }
.tylabel.venue { color:var(--purple-hi); background:rgba(139,92,246,.12); }
.tylabel.promoter { color:var(--acid); background:rgba(255,210,61,.1); }
.tylabel.person { color:var(--bone-2); background:rgba(247,242,234,.06); }

.pcover { position:relative; height:206px; flex-shrink:0; }
.pcover > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.78); }
.pcover .sc { position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,5,12,.5) 0%, transparent 28%, rgba(13,10,21,.45) 68%, var(--n0) 100%); }
.pcover .ptop { position:absolute; top:34px; left:16px; right:16px; z-index:6; display:flex; align-items:center; justify-content:space-between; }
.pcover .ptop .r { display:flex; gap:9px; }
.pcover .ptop .cir { width:38px; height:38px; border-radius:50%; background:rgba(7,5,12,.42); backdrop-filter:blur(10px); border:1px solid rgba(247,242,234,.16); display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; }
.pcover .plive { position:absolute; right:16px; bottom:14px; display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--sunset); padding:6px 11px; border-radius:999px; box-shadow:0 4px 14px -4px var(--pink-glow); }
.pcover .plive .d { width:6px; height:6px; border-radius:50%; background:#fff; }

.phead { position:relative; z-index:5; padding:0 20px; margin-top:-42px; }
.pav { width:84px; height:84px; border-radius:24px; background-size:cover; background-position:center; border:3px solid var(--n0); box-shadow:0 8px 24px -8px rgba(0,0,0,.6); position:relative; display:inline-block; }
.pav.round { border-radius:50%; }
.pav .vbadge { position:absolute; right:-3px; bottom:-3px; width:26px; height:26px; border-radius:50%; background:var(--purple); border:2.5px solid var(--n0); display:flex; align-items:center; justify-content:center; color:#fff; font-size:13px; }
.pname { font-family:var(--disp); font-weight:800; font-size:25px; letter-spacing:-.02em; color:var(--bone); margin-top:7px; display:flex; align-items:center; gap:8px; line-height:1.05; }
/* consistent role communicator — same icon+color as search type labels */
.prole-row { margin-top:13px; }
.prole { display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; padding:6px 11px; border-radius:999px; }
.prole i { font-size:12px; }
.prole.artist { color:var(--pink-hi); background:rgba(255,46,147,.1); border:1px solid rgba(255,46,147,.34); }
.prole.venue { color:var(--purple-hi); background:rgba(139,92,246,.12); border:1px solid rgba(139,92,246,.34); }
.prole.promoter { color:var(--acid); background:rgba(255,210,61,.1); border:1px solid rgba(255,210,61,.34); }
.prole.person { color:var(--bone-2); background:rgba(247,242,234,.06); border:1px solid var(--hair-2); }
.pname .vf { color:var(--purple-hi); font-size:18px; display:flex; }
.phandle { font-size:13px; color:var(--bone-3); margin-top:3px; }
.pmeta { display:flex; flex-wrap:wrap; gap:7px 14px; margin-top:11px; }
.pmeta .m { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--bone-2); } .pmeta .m i { color:var(--pink-hi); font-size:13px; } .pmeta .m b { color:var(--bone); font-weight:700; }
.pstats { display:flex; margin:16px 20px 0; border-radius:var(--r-lg); background:var(--n2); border:1px solid var(--hair); overflow:hidden; }
.pstats .st { flex:1; padding:13px 6px; text-align:center; border-right:1px solid var(--hair); } .pstats .st:last-child { border-right:0; }
.pstats .st .v { font-family:var(--disp); font-weight:800; font-size:18px; color:var(--bone); } .pstats .st .v.acid { color:var(--acid); } .pstats .st .v.go { color:var(--go); }
.pstats .st .l { font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--bone-3); margin-top:3px; }
.pacts { display:flex; gap:9px; padding:16px 20px 0; }
.pacts .pb { height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; gap:7px; font-family:var(--grot); font-weight:700; font-size:13.5px; }
.pacts .pb i { font-size:16px; }
.pacts .pb.primary { flex:1.5; background:var(--sunset); color:#fff; border:0; box-shadow:0 6px 18px -6px var(--pink-glow); }
.pacts .pb.on { flex:1.5; background:rgba(247,242,234,.06); border:1px solid var(--hair-2); color:var(--bone); box-shadow:none; }
.pacts .pb.ghost { flex:1; background:rgba(247,242,234,.05); border:1px solid var(--hair-2); color:var(--bone); }
.pacts .pb.acid { flex:1; background:var(--acid); color:var(--acid-ink); border:0; box-shadow:0 6px 18px -7px var(--gold-glow); }
.pacts .ico { width:46px; flex:0 0 46px; background:rgba(247,242,234,.05); border:1px solid var(--hair-2); color:var(--bone); border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:17px; }
.pbio { padding:16px 20px 0; font-size:13.5px; line-height:1.55; color:var(--bone-2); } .pbio b { color:var(--bone); }
.pchips { display:flex; flex-wrap:wrap; gap:7px; padding:12px 20px 0; }
.pchip { font-weight:600; font-size:11.5px; color:var(--bone-2); padding:6px 11px; border-radius:999px; background:rgba(247,242,234,.04); border:1px solid var(--hair-2); }
.pchip.acid { color:var(--acid); border-color:rgba(255,210,61,.34); }

.track { display:flex; align-items:center; gap:13px; padding:10px 20px; }
.track .pl { width:40px; height:40px; border-radius:11px; background:var(--sunset); display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px; flex-shrink:0; box-shadow:0 4px 14px -5px var(--pink-glow); }
.track .ti { flex:1; min-width:0; } .track .ti .tn { font-weight:600; font-size:14px; color:var(--bone); } .track .ti .tm { font-size:11px; color:var(--bone-3); margin-top:2px; }
.track .dur { font-family:var(--mono); font-size:11px; color:var(--bone-3); }

.ratinghead { display:flex; align-items:center; gap:13px; padding:4px 20px 6px; }
.ratinghead .big { font-family:var(--disp); font-weight:800; font-size:34px; color:var(--bone); line-height:1; }
.ratinghead .stars { color:var(--acid); font-size:14px; letter-spacing:1px; } .ratinghead .cnt { font-size:11.5px; color:var(--bone-3); margin-top:3px; }
.review { margin:0 20px 10px; padding:13px 15px; border-radius:var(--r-md); background:var(--n2); border:1px solid var(--hair); }
.review .rh { display:flex; align-items:center; gap:10px; }
.review .rh .ra { width:32px; height:32px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; }
.review .rh .rn { flex:1; font-weight:600; font-size:13px; color:var(--bone); } .review .rh .rd { font-size:10.5px; color:var(--bone-3); }
.review .stars { color:var(--acid); font-size:11px; letter-spacing:1px; margin-top:8px; }
.review .rt { font-size:12.5px; line-height:1.5; color:var(--bone-2); margin-top:7px; }

.ggrid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; padding:2px 20px 0; }
.ggrid .gi { aspect-ratio:1; border-radius:8px; overflow:hidden; position:relative; }
.ggrid .gi img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.9); }
.ggrid .gi .ov { position:absolute; inset:0; background:rgba(7,5,12,.62); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--disp); font-weight:800; font-size:17px; }

.tonight { margin:14px 20px 0; display:flex; align-items:center; gap:12px; padding:13px 15px; border-radius:15px; background:var(--sunset-soft); border:1px solid rgba(255,46,147,.24); }
.tonight .d { width:9px; height:9px; border-radius:50%; background:var(--pink); animation:ghpulse 2s infinite; flex-shrink:0; }
.tonight .t { flex:1; font-size:12.5px; color:var(--bone); line-height:1.35; } .tonight .t b { font-weight:700; }
.tonight .chev { color:var(--bone-3); display:flex; }

.vinfo { margin:14px 20px 0; border-radius:var(--r-lg); background:var(--n2); border:1px solid var(--hair); padding:4px 16px; }
.virow { display:flex; align-items:center; gap:13px; padding:13px 0; border-bottom:1px solid var(--hair); }
.virow:last-child { border-bottom:0; }
.virow .ic { width:34px; height:34px; border-radius:10px; background:rgba(139,92,246,.12); color:var(--purple-hi); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.virow .vt { flex:1; } .virow .vt .a { font-size:13.5px; color:var(--bone); font-weight:500; } .virow .vt .b2 { font-size:11.5px; color:var(--bone-3); margin-top:2px; }
.virow .open { font-weight:700; font-size:11px; color:var(--go); }
.virow .chev { color:var(--bone-3); display:flex; }

/* ============================================================
   PHASE 8 · Profile next-steps (request list · wave · tip)
   ============================================================ */
/* request-list option cards */
.lopt { display:flex; align-items:center; gap:13px; margin:0 20px 10px; padding:14px 15px; border-radius:14px; background:var(--n2); border:1px solid var(--hair-2); }
.lopt.on { border-color:transparent; box-shadow:0 0 0 1.5px var(--pink); background:linear-gradient(150deg,rgba(255,46,147,.07),var(--n2) 60%); }
.lopt .rad { width:22px; height:22px; border-radius:50%; border:2px solid var(--hair-2); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.lopt.on .rad { border-color:var(--pink); } .lopt.on .rad::after { content:''; width:11px; height:11px; border-radius:50%; background:var(--sunset); }
.lopt .li { flex:1; min-width:0; } .lopt .li .ln { font-family:var(--disp); font-weight:700; font-size:15px; color:var(--bone); } .lopt .li .ls { font-size:11.5px; color:var(--bone-3); margin-top:3px; }
.lopt .ltag { font-weight:700; font-size:9px; letter-spacing:.06em; text-transform:uppercase; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.lopt .ltag.open { color:var(--go); background:rgba(52,211,153,.12); } .lopt .ltag.req { color:var(--acid); background:rgba(255,210,61,.1); } .lopt .ltag.inv { color:var(--purple-hi); background:rgba(139,92,246,.12); }

/* tip sheet */
.tslabel { font-weight:700; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--bone-3); margin:18px 0 11px; }
.tipamts { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.tipamt { padding:15px 8px; border-radius:14px; background:var(--n2); border:1px solid var(--hair-2); text-align:center; }
.tipamt .v { font-family:var(--disp); font-weight:800; font-size:19px; color:var(--bone); }
.tipamt .s { font-size:9px; color:var(--bone-3); margin-top:3px; letter-spacing:.04em; }
.tipamt.on { background:var(--sunset); border-color:transparent; box-shadow:0 6px 18px -6px var(--pink-glow); } .tipamt.on .v { color:#fff; } .tipamt.on .s { color:rgba(255,255,255,.82); }
.anonrow { display:flex; align-items:center; gap:11px; margin-top:14px; padding:12px 14px; border-radius:13px; background:var(--n2); border:1px solid var(--hair); }
.anonrow .ai2 { width:34px; height:34px; border-radius:10px; background:rgba(139,92,246,.13); color:var(--purple-hi); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.anonrow .at2 { flex:1; } .anonrow .at2 .t { font-weight:600; font-size:13.5px; color:var(--bone); } .anonrow .at2 .s { font-size:11px; color:var(--bone-3); margin-top:1px; }

/* wave / connection */
.wavewrap { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 32px; }
.wavebig { width:96px; height:96px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:44px; color:var(--pink-hi); background:radial-gradient(circle at 40% 35%,rgba(255,46,147,.28),rgba(255,122,89,.1)); border:1px solid rgba(255,46,147,.4); box-shadow:0 0 56px -8px var(--pink-glow); }
.wavewrap h2 { font-family:var(--disp); font-weight:800; font-size:28px; color:var(--bone); margin:24px 0 0; letter-spacing:-.02em; }
.wavewrap p { font-size:13.5px; color:var(--bone-2); line-height:1.55; margin:12px 0 0; max-width:280px; }
.matchpair { display:flex; align-items:center; justify-content:center; }
.matchpair .ma { width:82px; height:82px; border-radius:50%; background-size:cover; background-position:center; border:3px solid var(--n0); }
.matchpair .spark { position:relative; z-index:2; margin:0 -16px; width:42px; height:42px; border-radius:50%; background:var(--sunset); display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; box-shadow:0 6px 18px -5px var(--pink-glow); }

/* ============================================================
   PHASE 9 · Artist monetization (fan club + live stream)
   ============================================================ */
.subtier { margin:0 20px 11px; border-radius:16px; background:var(--n2); border:1px solid var(--hair-2); padding:15px; }
.subtier.on { border-color:transparent; box-shadow:0 0 0 1.5px var(--pink); background:linear-gradient(150deg,rgba(255,46,147,.07),var(--n2) 60%); }
.subtier .sh2 { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.subtier .sn { font-family:var(--disp); font-weight:700; font-size:16px; color:var(--bone); } .subtier .sn .pop { font-weight:700; font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--sunset); padding:2px 7px; border-radius:999px; margin-left:7px; vertical-align:middle; }
.subtier .sp { font-family:var(--disp); font-weight:800; font-size:18px; color:var(--acid); white-space:nowrap; } .subtier .sp span { font-size:11px; color:var(--bone-3); font-weight:600; font-family:var(--grot); }
.subtier .perks2 { margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.subtier .pk { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--bone-2); } .subtier .pk i { color:var(--go); font-size:13px; flex-shrink:0; }
.subtier.on .pk i { color:var(--pink-hi); }

.livestage { position:relative; height:300px; flex-shrink:0; }
.livestage > img { width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.7); }
.livestage .sc { position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,5,12,.4),transparent 40%,rgba(7,5,12,.9)); }
.livestage .lbadge { position:absolute; top:42px; left:16px; display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:#FF3B30; padding:5px 11px; border-radius:999px; }
.livestage .lbadge .d { width:6px; height:6px; border-radius:50%; background:#fff; animation:ghpulse 1.6s infinite; }
.livestage .viewers { position:absolute; top:42px; right:16px; display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:11px; color:#fff; background:rgba(7,5,12,.5); backdrop-filter:blur(6px); padding:6px 11px; border-radius:999px; border:1px solid var(--hair-2); }
.livestage .linfo { position:absolute; left:16px; right:16px; bottom:14px; }
.livestage .linfo .ln2 { font-family:var(--disp); font-weight:800; font-size:22px; color:#fff; }
.livestage .linfo .lm { font-size:12px; color:rgba(247,242,234,.82); margin-top:2px; }
.tipwall { padding:8px 20px 0; }
.tipmsg { display:flex; align-items:center; gap:9px; padding:8px 0; }
.tipmsg .ta { width:28px; height:28px; border-radius:50%; background-size:cover; background-position:center; flex-shrink:0; }
.tipmsg .tx { flex:1; font-size:12.5px; color:var(--bone-2); } .tipmsg .tx b { color:var(--bone); font-weight:600; }
.tipmsg .amt2 { font-family:var(--disp); font-weight:800; font-size:13px; color:var(--acid); }
