/* ==========================================================================
   UPL AUCTION S2 - "DAY MATCH" broadcast design system  (v0.6.0, light)
   Bright stadium daylight: sky-blue field, white panels, sun-amber actions,
   tier-metal colour coding, ink type, pitch-green money. No dark surfaces.
   Display face: Saira Condensed (jersey-number energy), body: system stack.
   ========================================================================== */

.upla-root{
  /* surfaces */
  --sky:#eef4fc; --paper:#ffffff; --paper2:#f6f9ff;
  --line:rgba(16,38,82,.10); --line2:rgba(16,38,82,.18);
  /* ink */
  --ink:#0e1b33; --mut:#5b6b8c; --dim:#94a1bb;
  /* sun + money + danger */
  --flood:#f6a417; --flood2:#f97316;
  --money:#16a34a; --money2:#15803d;
  --danger:#dc2626;
  /* tier metals (tuned for white) */
  --plat:#0891b2; --plat2:#22d3ee;
  --gold:#d97706; --gold2:#f5a524;
  --silv:#64748b; --silv2:#94a3b8;
  --brnz:#c2410c; --brnz2:#ea7c2c;
  --disp:'Saira Condensed','Arial Narrow',system-ui,sans-serif;
  --body:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --r-lg:18px; --r-md:13px; --r-sm:9px;
  --shadow:0 12px 32px rgba(23,43,99,.10),0 2px 6px rgba(23,43,99,.06);
  --glow-amber:0 0 22px rgba(246,164,23,.30);

  font-family:var(--body); color:var(--ink);
  background:
    /* morning sun from the top corners */
    radial-gradient(900px 460px at 8% -12%, rgba(255,193,77,.18), transparent 62%),
    radial-gradient(900px 460px at 92% -12%, rgba(255,193,77,.12), transparent 62%),
    /* green outfield wash at the bottom */
    radial-gradient(1100px 560px at 50% 118%, rgba(34,197,94,.14), transparent 62%),
    /* mowing stripes */
    repeating-linear-gradient(90deg, transparent 0 72px, rgba(16,38,82,.022) 72px 144px),
    linear-gradient(180deg,#f6faff 0%, var(--sky) 42%, #e7effb 100%);
  background-attachment:fixed;
  min-height:100vh; padding:18px; box-sizing:border-box; position:relative;
}
.upla-root *{ box-sizing:border-box; }
/* paper grain */
.upla-root::after{
  content:''; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}
.upla-root>*{ position:relative; z-index:1; }

.t-platinum{color:var(--plat)} .t-gold{color:var(--gold)} .t-silver{color:var(--silv)} .t-bronze{color:var(--brnz)}

/* tier ramp helper used by hero / timer / badges */
.upla-hero.t-platinum,.upla-timer.t-platinum{ --tier:var(--plat); --tier2:var(--plat2); }
.upla-hero.t-gold,.upla-timer.t-gold{ --tier:var(--gold); --tier2:var(--gold2); }
.upla-hero.t-silver,.upla-timer.t-silver{ --tier:var(--silv); --tier2:var(--silv2); }
.upla-hero.t-bronze,.upla-timer.t-bronze{ --tier:var(--brnz); --tier2:var(--brnz2); }

/* ==========================================================================
   HERO - player on the block
   ========================================================================== */
.upla-hero{
  background:
    radial-gradient(140% 120% at 50% -30%, rgba(255,193,77,.10), transparent 55%),
    linear-gradient(180deg, #ffffff, var(--paper2));
  border:1px solid var(--line); border-radius:var(--r-lg);
  padding:20px; position:relative; overflow:hidden; box-shadow:var(--shadow);
}
/* tier light-bar across the top */
.upla-hero::before{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg, transparent, var(--tier), var(--tier2), var(--tier), transparent);
}
/* halftone dot field behind the head */
.upla-hero::after{
  content:''; position:absolute; top:-40px; right:-40px; width:280px; height:220px;
  background-image:radial-gradient(rgba(16,38,82,.16) 1px, transparent 1.4px);
  background-size:14px 14px; opacity:.30; pointer-events:none;
  -webkit-mask-image:radial-gradient(closest-side, #000, transparent);
          mask-image:radial-gradient(closest-side, #000, transparent);
}
.upla-hero-top{ display:flex; align-items:center; gap:18px; margin-bottom:16px; position:relative; }
.upla-hero-pic{
  width:96px; height:96px; border-radius:20px; flex:0 0 96px;
  background-size:cover; background-position:center; background-color:#e9f0fb;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--disp); font-size:34px; font-weight:800; color:var(--tier,var(--ink));
  border:1px solid var(--line2); position:relative;
  box-shadow:0 0 0 3px #fff, 0 6px 18px color-mix(in srgb, var(--tier,#0891b2) 22%, transparent);
}
.upla-hero-pic::after{ /* spotlight ring */
  content:''; position:absolute; inset:-7px; border-radius:24px; pointer-events:none;
  background:conic-gradient(from 210deg, transparent 0 40%, var(--tier,transparent) 50%, transparent 60% 100%);
  opacity:.55; -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; padding:2px;
}
.upla-hero-id{ flex:1; min-width:0; }
.upla-hero-name{
  font-family:var(--disp); font-size:42px; font-weight:800; line-height:.95;
  letter-spacing:.4px; text-transform:uppercase;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.upla-hero-real{ font-size:13px; color:var(--mut); margin-top:4px; font-weight:600; }
.upla-hero-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.upla-tierbadge{
  font-family:var(--disp); font-size:13px; font-weight:700; letter-spacing:1.4px; text-transform:uppercase;
  padding:4px 12px 3px; border-radius:7px; color:#fff;
  background:linear-gradient(135deg, var(--tier2), var(--tier));
  box-shadow:0 2px 10px color-mix(in srgb, var(--tier) 35%, transparent);
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.upla-tierbadge.t-platinum{ --tier:var(--plat); --tier2:var(--plat2); }
.upla-tierbadge.t-gold{ --tier:var(--gold); --tier2:var(--gold2); }
.upla-tierbadge.t-silver{ --tier:var(--silv); --tier2:var(--silv2); }
.upla-tierbadge.t-bronze{ --tier:var(--brnz); --tier2:var(--brnz2); }
.upla-strength,.upla-base{
  font-size:12px; font-weight:700; color:var(--ink);
  background:var(--paper2); border:1px solid var(--line);
  padding:4px 11px 3px; border-radius:7px; font-variant-numeric:tabular-nums;
}
.upla-base{ color:#b45309; border-color:rgba(217,119,6,.35); background:#fff7e8; }

/* --------------------------------------------------------------------------
   SIGNATURE: the draining timer ring (conic gauge, tier-coloured)
   JS feeds --p (1 -> 0). Flares red under 10s.
   -------------------------------------------------------------------------- */
.upla-timer{
  --p:1; flex:0 0 auto; width:92px; height:92px; border-radius:50%;
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:conic-gradient(var(--tier,var(--flood)) calc(var(--p)*1turn), rgba(16,38,82,.10) 0);
  box-shadow:0 6px 18px color-mix(in srgb, var(--tier,#f6a417) 22%, transparent), inset 0 0 0 1px var(--line);
  transition:box-shadow .3s;
}
.upla-timer::before{ /* inner face */
  content:''; position:absolute; inset:6px; border-radius:50%;
  background:radial-gradient(120% 120% at 50% 0%, #ffffff, var(--paper2) 75%);
  box-shadow:inset 0 2px 6px rgba(16,38,82,.10);
}
.upla-timer-val{
  position:relative; font-family:var(--disp); font-size:36px; font-weight:800; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.upla-timer small{
  position:relative; font-size:8px; font-weight:800; letter-spacing:2.4px; color:var(--mut);
  text-transform:uppercase; margin-top:1px;
}
.upla-timer.danger{
  --tier:var(--danger); --tier2:#fca5a5;
  animation:uplaTimerPanic .9s infinite;
}
.upla-timer.danger .upla-timer-val{ color:var(--danger); }
@keyframes uplaTimerPanic{
  0%,100%{ box-shadow:0 0 0 0 rgba(220,38,38,.40), inset 0 0 0 1px var(--line); }
  50%{ box-shadow:0 0 0 12px rgba(220,38,38,0), inset 0 0 0 1px var(--line); }
}

/* ==========================================================================
   SQUAD - registered characters
   ========================================================================== */
.upla-squad{ display:grid; grid-template-columns:repeat(auto-fill,minmax(98px,1fr)); gap:9px; position:relative; }
.upla-sc{
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-md);
  padding:9px 6px 8px; text-align:center; position:relative;
  box-shadow:0 2px 6px rgba(23,43,99,.05);
  transition:transform .15s, border-color .15s, box-shadow .15s;
}
.upla-sc:hover{ transform:translateY(-2px); border-color:var(--line2); box-shadow:0 8px 18px rgba(23,43,99,.10); }
.upla-sc.bat{ border-bottom:3px solid rgba(217,119,6,.55); }
.upla-sc.bowl{ border-bottom:3px solid rgba(8,145,178,.55); }
.upla-sc.b11{ box-shadow:0 0 0 2px rgba(246,164,23,.55), 0 4px 14px rgba(246,164,23,.18); }
.upla-sc.excl{ background:linear-gradient(180deg, #fff7e8, #ffffff); }
.upla-sc-img{
  width:50px; height:50px; border-radius:11px; background-size:cover; background-position:center;
  background-color:#e9f0fb; display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--disp); font-weight:800; font-size:20px; color:var(--mut);
  border:1px solid var(--line);
}
.upla-sc-name{ display:block; font-size:11.5px; font-weight:700; margin-top:6px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.upla-sc-band{
  display:inline-block; font-size:8.5px; font-weight:800; letter-spacing:1px; text-transform:uppercase;
  padding:2px 7px 1px; border-radius:5px; margin-top:3px; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2);
  background:linear-gradient(135deg,#94a3b8,#64748b);
}
.upla-sc-band.excl{ background:linear-gradient(135deg,var(--flood),#f97316); }
.upla-sc-band.b-legendary{ background:linear-gradient(135deg,#c084fc,#9333ea); }
.upla-sc-band.b-wc{ background:linear-gradient(135deg,var(--plat2),var(--plat)); }
.upla-sc-band.b-brilliant{ background:linear-gradient(135deg,var(--gold2),var(--gold)); }
.upla-sc-band.b-reliable{ background:linear-gradient(135deg,#94a3b8,#64748b); }
.upla-sc-meta{ display:block; font-size:10px; color:var(--mut); margin-top:2px; font-variant-numeric:tabular-nums; }
.upla-nosquad{ color:var(--dim); padding:18px; text-align:center; font-size:13px; }

/* ==========================================================================
   BID LINE - current highest
   ========================================================================== */
.upla-bidline{
  margin-top:16px; display:flex; align-items:center; gap:14px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--tc,#f6a417) 14%, #ffffff), #ffffff 65%);
  border:1px solid color-mix(in srgb, var(--tc,#f6a417) 38%, var(--line));
  border-left:5px solid var(--tc,#f6a417);
  border-radius:var(--r-md); padding:12px 18px; position:relative; overflow:hidden;
  box-shadow:var(--shadow);
}
.upla-bidline.none{ color:var(--mut); font-size:14px; justify-content:center; font-weight:600;
  background:#ffffff; border-color:var(--line); border-left-width:1px; }
.upla-bl-amt{
  font-family:var(--disp); font-size:38px; font-weight:800; line-height:1; color:var(--ink);
  font-variant-numeric:tabular-nums; letter-spacing:.5px;
}
.upla-bl-ext{
  font-family:var(--disp); font-weight:800; font-size:12px; letter-spacing:1.2px;
  color:#92400E; background:#FFF7E8; border:1px solid rgba(217,119,6,.45);
  border-radius:7px; padding:3px 9px; margin-left:12px; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
/* floating mini clock on the bid bar (tick() drives it via shared classes) */
.upla-timer.upla-bidtimer{
  position:absolute; top:-21px; right:12px; z-index:5;
  width:52px; height:52px; flex:0 0 52px;
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(var(--flood2) calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  border-radius:50%;
  box-shadow:0 5px 16px rgba(23,43,99,.18), 0 0 0 3px #fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0;
}
.upla-timer.upla-bidtimer .upla-timer-val{ font-family:var(--disp); font-weight:800; font-size:18px; line-height:1; color:var(--ink); }
.upla-timer.upla-bidtimer small{ font-size:7px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; color:var(--mut); }
.upla-timer.upla-bidtimer.danger{
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(#DC2626 calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  animation:uplaPanic .8s ease-in-out infinite;
}
.upla-timer.upla-bidtimer.danger .upla-timer-val{ color:#DC2626; }

.upla-bidcap{
  grid-column:1 / -1; text-align:center; font-size:12px; font-weight:700; color:#92400E;
  background:#FFF7E8; border:1px dashed rgba(217,119,6,.5); border-radius:9px; padding:7px 10px;
}
.upla-bl-team{
  font-family:var(--disp); font-size:19px; font-weight:700; letter-spacing:2px; margin-left:auto;
  color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.30);
  background:linear-gradient(135deg, color-mix(in srgb, var(--tc) 78%, #5a6c8c), var(--tc));
  padding:5px 16px 4px; border-radius:8px;
  box-shadow:0 3px 12px color-mix(in srgb, var(--tc) 40%, transparent), inset 0 0 0 1px rgba(255,255,255,.35);
}
.upla-bidline.pulse::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(105deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%);
  animation:uplaSweep .55s ease-out;
}
@keyframes uplaSweep{ from{transform:translateX(-110%)} to{transform:translateX(110%)} }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.upla-btn{
  font-family:var(--disp); font-size:15px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  padding:12px 18px 11px; border-radius:11px; cursor:pointer;
  border:1px solid var(--line2); background:linear-gradient(180deg, #ffffff, var(--paper2));
  color:var(--ink); transition:transform .12s, box-shadow .12s, border-color .12s, filter .12s;
  min-height:44px; box-shadow:0 2px 6px rgba(23,43,99,.06);
}
.upla-btn:hover{ transform:translateY(-1px); border-color:rgba(246,164,23,.55); box-shadow:0 6px 16px rgba(23,43,99,.12); }
.upla-btn:active{ transform:translateY(0); }
.upla-btn:focus-visible,.upla-bidbtn:focus-visible,.upla-pi-send:focus-visible,.upla-pf:focus-visible{
  outline:2px solid var(--flood2); outline-offset:2px;
}
.upla-btn.primary{
  background:linear-gradient(135deg, var(--flood), var(--flood2));
  border-color:transparent; color:#fff; text-shadow:0 1px 2px rgba(120,53,15,.45);
  box-shadow:var(--glow-amber), 0 4px 14px rgba(249,115,22,.30);
}
.upla-btn.primary:hover{ filter:brightness(1.05); }
.upla-btn.sold,.upla-btn.sold-big{
  background:linear-gradient(135deg,#22c55e,var(--money2));
  border-color:transparent; color:#fff; text-shadow:0 1px 2px rgba(5,46,22,.4);
  box-shadow:0 0 18px rgba(34,197,94,.25), 0 4px 14px rgba(21,128,61,.30);
}
.upla-btn.sold-big{ width:100%; font-size:19px; padding:16px 18px 15px; letter-spacing:1.5px; margin-bottom:10px; }
.upla-btn.warn{ background:#fff; border-color:rgba(220,38,38,.45); color:var(--danger); }
.upla-btn.warn:hover{ background:#fef2f2; }
.upla-btn.ghost{ background:transparent; border-color:var(--line); color:var(--mut); box-shadow:none; }
.upla-btn.ghost:hover{ color:var(--ink); }
.upla-btn.busy,.upla-bidbtn.busy,.upla-pi-send.busy{ opacity:.5; pointer-events:none; }

/* ==========================================================================
   CONTROL ROOM
   ========================================================================== */
.upla-cr-grid{ display:grid; grid-template-columns:290px minmax(0,1fr) 300px; gap:16px; max-width:1560px; margin:0 auto; }
.upla-cr-pool,.upla-cr-side{
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow);
  align-self:start; overflow:hidden;
}
.upla-cr-pool-head{ padding:14px 14px 10px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,#fff,var(--paper2)); }
.upla-cr-pool-head h3{
  margin:0 0 10px; font-family:var(--disp); font-size:15px; font-weight:700;
  letter-spacing:2.5px; text-transform:uppercase; color:#b45309;
}
.upla-cr-pool-head h3::before{ content:'\25CF'; font-size:8px; vertical-align:2px; margin-right:7px; color:var(--money); }
#upla-pool-search{
  width:100%; padding:10px 12px; border-radius:9px; border:1px solid var(--line2);
  background:#fff; color:var(--ink); font-size:13px; font-family:var(--body);
}
#upla-pool-search::placeholder{ color:var(--dim); }
#upla-pool-search:focus{ outline:none; border-color:var(--flood2); box-shadow:0 0 0 3px rgba(249,115,22,.14); }
.upla-pool-filters{ display:flex; gap:5px; margin-top:9px; }
.upla-pf{
  flex:1; font-size:10.5px; font-weight:800; letter-spacing:.6px; padding:6px 2px; border-radius:7px;
  border:1px solid var(--line); background:#fff; color:var(--mut); cursor:pointer; transition:.12s;
}
.upla-pf:hover{ color:var(--ink); border-color:var(--line2); }
.upla-pf.is-active{ background:linear-gradient(135deg,var(--flood),var(--flood2)); border-color:transparent; color:#fff; text-shadow:0 1px 2px rgba(120,53,15,.4); }
.upla-pool-list{ max-height:calc(100vh - 250px); overflow-y:auto; padding:9px; }
.upla-pool-list::-webkit-scrollbar{ width:8px; }
.upla-pool-list::-webkit-scrollbar-thumb{ background:rgba(16,38,82,.16); border-radius:4px; }
.upla-pool-item{
  display:flex; align-items:center; gap:9px; padding:7px 8px; border-radius:10px;
  border:1px solid transparent; transition:.12s;
}
.upla-pool-item:hover{ background:var(--paper2); border-color:var(--line); }
.upla-pi-pic{
  width:34px; height:34px; border-radius:9px; flex:0 0 34px;
  background:#e9f0fb center/cover; border:1px solid var(--line);
}
.upla-pi-name{ flex:1; min-width:0; font-size:12.5px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.upla-pi-tier{
  font-family:var(--disp); font-size:11px; font-weight:800; width:22px; height:22px; border-radius:6px;
  display:flex; align-items:center; justify-content:center; flex:0 0 22px; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2);
}
.upla-pi-tier.t-platinum{ background:linear-gradient(135deg,var(--plat2),var(--plat)); }
.upla-pi-tier.t-gold{ background:linear-gradient(135deg,var(--gold2),var(--gold)); }
.upla-pi-tier.t-silver{ background:linear-gradient(135deg,var(--silv2),var(--silv)); }
.upla-pi-tier.t-bronze{ background:linear-gradient(135deg,var(--brnz2),var(--brnz)); }
.upla-pi-send{
  font-size:10px; font-weight:800; letter-spacing:.8px; text-transform:uppercase;
  padding:6px 10px; border-radius:7px; cursor:pointer;
  border:1px solid rgba(217,119,6,.45); background:#fff; color:#b45309; transition:.12s;
}
.upla-pi-send:hover{ background:var(--flood2); border-color:var(--flood2); color:#fff; }

.upla-cr-main{ min-width:0; display:flex; flex-direction:column; gap:14px; }
.upla-cr-actions{ display:flex; gap:10px; }
.upla-cr-actions .upla-btn{ flex:1; font-size:17px; padding:15px 18px 14px; }
.upla-stage{ min-height:120px; }
.upla-cr-controls{
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-lg); padding:14px; box-shadow:var(--shadow);
}
.upla-cr-controls:empty{ display:none; }
.upla-ctl-row{ display:flex; gap:9px; margin-bottom:10px; flex-wrap:wrap; }
.upla-ctl-row:last-child{ margin-bottom:0; }
.upla-ctl-row .upla-btn{ flex:1; }
.upla-ctl-sell{ display:flex; gap:9px; margin-bottom:10px; flex-wrap:wrap; }
.upla-ctl-sell select,.upla-ctl-sell input{
  flex:1; min-width:130px; padding:11px 12px; border-radius:10px; font-size:13.5px; font-weight:600;
  border:1px solid var(--line2); background:#fff; color:var(--ink); font-family:var(--body);
}
.upla-ctl-sell select:focus,.upla-ctl-sell input:focus{ outline:none; border-color:var(--money); box-shadow:0 0 0 3px rgba(22,163,74,.14); }
.upla-ctl-sell .upla-btn{ flex:0 0 auto; }

.upla-cr-side{ padding:14px; }
.upla-side-block{ margin-bottom:16px; }
.upla-side-block:last-child{ margin-bottom:0; }
.upla-side-block h4{
  margin:0 0 9px; font-family:var(--disp); font-size:12.5px; font-weight:700;
  letter-spacing:2.4px; text-transform:uppercase; color:#b45309;
  padding-bottom:6px; border-bottom:1px solid var(--line);
}
.upla-statrow{ display:flex; justify-content:space-between; font-size:12.5px; padding:4px 0; color:var(--mut); }
.upla-statrow b{ color:var(--ink); font-variant-numeric:tabular-nums; font-size:13px; }
.upla-tprog{ display:flex; align-items:center; gap:8px; font-size:11.5px; font-weight:800; padding:4px 0; }
.upla-tprog>span{ width:58px; letter-spacing:.3px; }
.upla-tbar{ flex:1; height:7px; border-radius:4px; background:rgba(16,38,82,.10); overflow:hidden; }
.upla-tbar i{ display:block; height:100%; border-radius:4px; transition:width .5s; }
.upla-tbar i.t-platinum{ background:linear-gradient(90deg,var(--plat),var(--plat2)); }
.upla-tbar i.t-gold{ background:linear-gradient(90deg,var(--gold),var(--gold2)); }
.upla-tbar i.t-silver{ background:linear-gradient(90deg,var(--silv),var(--silv2)); }
.upla-tbar i.t-bronze{ background:linear-gradient(90deg,var(--brnz),var(--brnz2)); }
.upla-tprog b{ font-variant-numeric:tabular-nums; color:var(--mut); font-weight:700; min-width:38px; text-align:right; }
.upla-teamrow{ display:flex; align-items:center; gap:8px; font-size:12px; padding:5px 0; border-bottom:1px dashed rgba(16,38,82,.10); }
.upla-teamrow:last-child{ border-bottom:none; }
.upla-tdot{ width:9px; height:9px; border-radius:3px; flex:0 0 9px; box-shadow:0 0 0 2px #fff, 0 1px 4px rgba(23,43,99,.25); }
.upla-teamrow b{ font-family:var(--disp); font-size:13.5px; letter-spacing:1px; width:46px; color:var(--ink); }
.upla-teamrow span{ color:var(--mut); font-variant-numeric:tabular-nums; }
.upla-teamrow span:last-child{ margin-left:auto; color:var(--money2); font-weight:700; }
.upla-recent{ display:flex; justify-content:space-between; gap:8px; font-size:12px; padding:5px 0; }
.upla-recent b{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--ink); }
.upla-recent span{ color:var(--mut); white-space:nowrap; font-variant-numeric:tabular-nums; }

.upla-empty-stage{
  background:
    repeating-linear-gradient(45deg, transparent 0 14px, rgba(16,38,82,.022) 14px 28px),
    #ffffff;
  border:1.5px dashed var(--line2); border-radius:var(--r-lg);
  padding:54px 24px; text-align:center; color:var(--mut); font-size:15px;
}
.upla-empty-stage b{ color:#b45309; }
.upla-empty-stage.big{ font-size:19px; padding:80px 24px; }
.upla-done{
  background:linear-gradient(135deg, #ecfdf3, #ffffff);
  border:1px solid rgba(34,197,94,.40); border-radius:var(--r-lg);
  padding:54px 24px; text-align:center; font-family:var(--disp);
  font-size:26px; font-weight:800; letter-spacing:1px; color:var(--money2);
  box-shadow:var(--shadow);
}
.upla-done.big{ font-size:40px; padding:90px 24px; }
.upla-done small{ display:block; font-family:var(--body); font-size:14px; font-weight:600; color:var(--mut); letter-spacing:0; margin-top:8px; }

/* ==========================================================================
   CAPTAIN - phone-first bidding console
   ========================================================================== */
.upla-cap-head{
  position:sticky; top:0; z-index:300;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--tc,#f6a417) 16%, rgba(255,255,255,.94)), rgba(255,255,255,.94));
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid color-mix(in srgb, var(--tc,#f6a417) 35%, var(--line));
  border-top:4px solid var(--tc,#f6a417);
  border-radius:var(--r-md); padding:12px 16px; margin:0 auto 14px; max-width:860px;
  box-shadow:var(--shadow);
}
.upla-cap-team{
  font-family:var(--disp); font-size:19px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.upla-cap-team::before{ content:''; display:inline-block; width:10px; height:10px; border-radius:3px;
  background:var(--tc,#f6a417); margin-right:9px; box-shadow:0 0 0 2px #fff, 0 1px 4px rgba(23,43,99,.3); vertical-align:1px; }
.upla-cap-purse{ font-size:12.5px; color:var(--mut); white-space:nowrap; font-variant-numeric:tabular-nums; }
.upla-cap-purse b{ color:var(--money2); font-size:15px; }
.upla-stage.cap{ max-width:860px; margin:0 auto; }
.upla-cap-bidbar{
  position:relative;
  max-width:860px; margin:14px auto 0;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(104px,1fr)); gap:9px;
}
.upla-bidbtn{
  font-family:var(--disp); font-weight:800; font-size:21px; letter-spacing:.5px;
  min-height:60px; padding:9px 6px; border-radius:13px; cursor:pointer;
  border:1px solid var(--line2); color:var(--ink);
  background:linear-gradient(180deg, #ffffff, var(--paper2));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  transition:transform .1s, box-shadow .12s, border-color .12s;
  font-variant-numeric:tabular-nums; box-shadow:0 2px 6px rgba(23,43,99,.07);
}
.upla-bidbtn small{ font-family:var(--body); font-size:10.5px; font-weight:700; color:var(--mut); letter-spacing:.2px; }
.upla-bidbtn:hover{ border-color:var(--flood2); box-shadow:0 6px 16px rgba(249,115,22,.18); }
.upla-bidbtn:active{ transform:scale(.96); }
.upla-bidbtn.base{
  grid-column:1 / -1; background:linear-gradient(135deg,var(--flood),var(--flood2));
  border-color:transparent; color:#fff; font-size:23px; text-shadow:0 1px 2px rgba(120,53,15,.45);
  box-shadow:var(--glow-amber), 0 6px 18px rgba(249,115,22,.30);
}
.upla-bidbtn.base small{ color:#fff7e8; }
.upla-bidbtn[disabled]{ opacity:.38; pointer-events:none; filter:saturate(.4); }
.upla-bidmsg{
  grid-column:1 / -1; text-align:center; padding:18px 16px; border-radius:var(--r-md);
  background:#ffffff; border:1px solid var(--line); color:var(--mut); font-size:14.5px; font-weight:600;
  box-shadow:var(--shadow);
}
.upla-bidmsg.ok{
  color:var(--money2); border-color:rgba(34,197,94,.45);
  background:linear-gradient(135deg, #ecfdf3, #ffffff);
  font-weight:800; font-size:15.5px;
}

/* ==========================================================================
   AUDIENCE - the big screen
   ========================================================================== */
.upla-aud{ display:flex; flex-direction:column; gap:16px; max-width:1280px; margin:0 auto; }
.upla-stage.aud .upla-hero-name{ font-size:clamp(34px, 5.4vw, 66px); }
.upla-stage.aud .upla-hero-pic{ width:118px; height:118px; flex-basis:118px; font-size:42px; }
.upla-stage.aud .upla-timer{ width:108px; height:108px; }
.upla-stage.aud .upla-timer-val{ font-size:44px; }
.upla-aud-bid{ margin-top:4px; }
.upla-aud-bid .upla-bl-amt{ font-size:clamp(36px, 4.4vw, 56px); }
.upla-aud-bottom{ display:flex; flex-direction:column; gap:12px; }
.upla-aud-tiers{ display:flex; gap:10px; flex-wrap:wrap; }
.upla-aud-tier{
  flex:1; min-width:130px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-md); padding:10px 16px; box-shadow:var(--shadow);
}
.upla-aud-tier>span{ font-family:var(--disp); font-weight:700; font-size:15px; letter-spacing:1.6px; text-transform:uppercase; }
.upla-aud-tier b{ font-family:var(--disp); font-size:21px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.upla-aud-teams{ display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:9px; }
.upla-aud-team{
  background:linear-gradient(180deg, color-mix(in srgb, var(--tc,#888) 10%, #ffffff), #ffffff);
  border:1px solid color-mix(in srgb, var(--tc,#888) 35%, var(--line));
  border-top:4px solid var(--tc,#888);
  border-radius:var(--r-md); padding:9px 12px; text-align:center; box-shadow:0 2px 8px rgba(23,43,99,.07);
}
.upla-aud-team b{ display:block; font-family:var(--disp); font-size:18px; font-weight:800; letter-spacing:1.6px; color:var(--ink); }
.upla-aud-team span{ display:block; font-size:11px; color:var(--mut); font-variant-numeric:tabular-nums; margin-top:1px; }
.upla-aud-team i{ display:block; font-style:normal; font-size:12.5px; font-weight:800; color:var(--money2); font-variant-numeric:tabular-nums; margin-top:1px; }

/* sold ticker */
.upla-ticker{
  display:flex; align-items:center; overflow:hidden;
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow);
}
.upla-ticker-tag{
  position:relative; z-index:2;
  flex:0 0 auto; font-family:var(--disp); font-weight:800; font-size:14px; letter-spacing:2.5px;
  padding:11px 16px 10px; color:#fff; text-shadow:0 1px 2px rgba(5,46,22,.4);
  background:linear-gradient(135deg,#22c55e,var(--money2));
  clip-path:polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  padding-right:24px;
}
.upla-ticker-track{ position:relative; z-index:1; display:flex; gap:34px; white-space:nowrap; animation:uplaTicker 26s linear infinite; padding:0 18px; }
.upla-ticker-track span{ font-size:13px; color:var(--mut); }
.upla-ticker-track b{ color:var(--ink); }
.upla-ticker-track i{ font-style:normal; color:var(--money2); font-weight:800; font-variant-numeric:tabular-nums; }
@keyframes uplaTicker{ from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ==========================================================================
   SOLD - the cinematic moment (light frost, team-colour celebration)
   ========================================================================== */
.upla-soldfx{
  position:fixed; inset:0; z-index:900; display:flex; align-items:center; justify-content:center;
  pointer-events:none; opacity:0; transition:opacity .25s;
}
.upla-soldfx.show{ opacity:1; }
.upla-soldfx.show::before{ /* daylight frost + team-colour wash */
  content:''; position:absolute; inset:0;
  background:radial-gradient(60% 60% at 50% 46%, color-mix(in srgb, var(--tc,#16a34a) 18%, transparent), rgba(238,244,252,.82) 78%);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
}
.upla-sold-ring{
  position:absolute; width:120px; height:120px; border-radius:50%;
  border:3px solid var(--tc,#16a34a);
  animation:uplaShock 1s cubic-bezier(.16,.84,.3,1) forwards;
}
@keyframes uplaShock{ from{ transform:scale(.4); opacity:.95; } to{ transform:scale(7); opacity:0; } }
.upla-soldcard{
  position:relative; text-align:center; padding:38px 64px;
  background:linear-gradient(180deg, #ffffff, #f4f8ff);
  border:1px solid color-mix(in srgb, var(--tc,#16a34a) 50%, var(--line));
  border-top:6px solid var(--tc,#16a34a);
  border-radius:26px;
  box-shadow:0 0 0 1px rgba(255,255,255,.6), 0 0 70px color-mix(in srgb, var(--tc,#16a34a) 30%, transparent), 0 30px 70px rgba(23,43,99,.25);
  animation:uplaSlam .55s cubic-bezier(.18,1.4,.4,1) both;
}
@keyframes uplaSlam{
  0%{ transform:scale(2.1) rotate(-10deg); opacity:0; }
  60%{ transform:scale(.96) rotate(1.5deg); opacity:1; }
  100%{ transform:scale(1) rotate(0); }
}
.upla-sold-word{
  font-family:var(--disp); font-size:84px; font-weight:800; line-height:.9; letter-spacing:10px;
  background:linear-gradient(180deg, #4ade80 5%, #16a34a 55%, #166534);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 4px 16px rgba(22,163,74,.40));
}
.upla-sold-name{
  font-family:var(--disp); font-size:30px; font-weight:800; letter-spacing:1px; text-transform:uppercase; margin-top:10px; color:var(--ink);
}
.upla-sold-to{ font-size:15px; color:var(--mut); margin-top:6px; font-weight:600; }
.upla-sold-to b{ color:var(--tc,#16a34a); font-family:var(--disp); font-size:18px; letter-spacing:1.5px;
  text-shadow:0 1px 0 #fff; filter:saturate(1.1) contrast(1.1); }

/* confetti */
.upla-confetti{ position:fixed; inset:0; pointer-events:none; z-index:950; overflow:hidden; }
.upla-conf{
  position:absolute; top:-14px; width:9px; height:15px; border-radius:2px; opacity:.95;
  animation-name:uplaConfFall; animation-timing-function:cubic-bezier(.3,.4,.6,1); animation-fill-mode:forwards;
  box-shadow:0 1px 2px rgba(23,43,99,.18);
}
@keyframes uplaConfFall{
  to{ transform:translateY(108vh) rotate(620deg); opacity:.75; }
}

/* ==========================================================================
   TOAST / KBD / SOUND TOGGLE
   ========================================================================== */
.upla-toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(16px);
  background:#ffffff; border:1px solid var(--line2); border-left:5px solid var(--flood2); color:var(--ink);
  font-size:13.5px; font-weight:700; padding:12px 20px; border-radius:12px;
  box-shadow:0 14px 36px rgba(23,43,99,.20);
  opacity:0; pointer-events:none; transition:.22s; z-index:980; max-width:min(92vw,560px); text-align:center;
}
.upla-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.upla-toast.bad{ border-left-color:var(--danger); color:#991b1b; background:#fff5f5; }
.upla-kbd{
  position:fixed; left:14px; bottom:14px; z-index:700; font-size:11px; color:var(--mut);
  background:rgba(255,255,255,.92); border:1px solid var(--line); border-radius:10px; padding:8px 12px;
  backdrop-filter:blur(8px); box-shadow:0 4px 14px rgba(23,43,99,.10);
}
.upla-kbd b{ color:#b45309; font-weight:800; }
button.upla-kbd{ cursor:pointer; font-family:var(--body); }
button.upla-snd{ left:auto; right:14px; }

/* ==========================================================================
   REGISTERED PLAYERS page (uap-*)
   ========================================================================== */
.uap-wrap{ max-width:1180px; margin:0 auto; }
.uap-head{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.uap-head h2{ margin:0; font-family:var(--disp); font-size:30px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--ink); }
.uap-controls{ display:flex; gap:9px; margin-left:auto; flex-wrap:wrap; }
#uap-search{
  padding:10px 14px; border-radius:10px; border:1px solid var(--line2);
  background:#fff; color:var(--ink); font-size:13px; min-width:200px;
}
#uap-search:focus{ outline:none; border-color:var(--flood2); box-shadow:0 0 0 3px rgba(249,115,22,.14); }
.uap-filters{ display:flex; gap:6px; flex-wrap:wrap; }
.uap-pf{
  font-size:11px; font-weight:800; letter-spacing:.6px; padding:8px 14px; border-radius:8px;
  border:1px solid var(--line); background:#fff; color:var(--mut); cursor:pointer; transition:.12s;
}
.uap-pf.is-active{ background:linear-gradient(135deg,var(--flood),var(--flood2)); border-color:transparent; color:#fff; text-shadow:0 1px 2px rgba(120,53,15,.4); }
.uap-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:13px; align-items:start; }
.uap-card{
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow);
}
.uap-card-head{ display:flex; align-items:center; gap:12px; padding:13px 14px; cursor:pointer; }
.uap-card-head:hover{ background:var(--paper2); }
.uap-pic{ width:50px; height:50px; border-radius:13px; background:#e9f0fb center/cover; flex:0 0 50px; border:1px solid var(--line); }
.uap-id{ flex:1; min-width:0; }
.uap-name{ font-family:var(--disp); font-size:18px; font-weight:800; letter-spacing:.4px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.uap-tags{ display:flex; gap:6px; margin-top:3px; align-items:center; }
.uap-tier{ font-size:9.5px; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:2px 8px; border-radius:5px; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2); }
.uap-tier.t-platinum{ background:linear-gradient(135deg,var(--plat2),var(--plat)); }
.uap-tier.t-gold{ background:linear-gradient(135deg,var(--gold2),var(--gold)); }
.uap-tier.t-silver{ background:linear-gradient(135deg,var(--silv2),var(--silv)); }
.uap-tier.t-bronze{ background:linear-gradient(135deg,var(--brnz2),var(--brnz)); }
.uap-str{ font-size:11px; color:var(--mut); font-variant-numeric:tabular-nums; }
.uap-chev{ color:var(--dim); transition:transform .2s; }
.uap-card.open .uap-chev{ transform:rotate(180deg); }
/* v0.6.3 FIX: squads are collapsed until the card is opened (the toggle was
   doing nothing because the closed state had no rule) */
.uap-squad{ display:none; padding:0 14px 14px; grid-template-columns:repeat(auto-fill,minmax(86px,1fr)); gap:8px; }
.uap-card.open .uap-squad{ display:grid; }
.uap-card.open{ box-shadow:0 10px 26px rgba(23,43,99,.13); border-color:rgba(246,164,23,.45); }
.uap-sc{ background:var(--paper2); border:1px solid var(--line); border-radius:10px; padding:8px 5px; text-align:center; }
.uap-sc-img{ width:42px; height:42px; border-radius:9px; background:#e9f0fb center/cover; display:inline-block; border:1px solid var(--line); }
.uap-sc-n{ display:block; font-size:10.5px; font-weight:700; margin-top:4px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.uap-sc-m{ display:block; font-size:9.5px; color:var(--mut); }

/* ==========================================================================
   SEASON 1 RESULTS (us1-*)
   ========================================================================== */
.us1-wrap{ max-width:1180px; margin:0 auto; }
.us1-hero{ text-align:center; padding:34px 16px 26px; }
.us1-hero-badge{
  display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:3px; text-transform:uppercase;
  color:#b45309; background:#fff7e8; border:1px solid rgba(217,119,6,.4); padding:6px 16px; border-radius:20px; margin-bottom:12px;
}
.us1-h2,.us1-hero h1{ font-family:var(--disp); font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--ink); }
.us1-hero h1{ font-size:clamp(30px,5vw,48px); margin:0; }
.us1-h2{ font-size:22px; margin:30px 0 14px; }
.us1-stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:18px 0; }
.us1-stat{
  background:#ffffff; border:1px solid var(--line);
  border-radius:var(--r-md); padding:16px 12px; text-align:center; box-shadow:var(--shadow);
}
.us1-stat-n{ font-family:var(--disp); font-size:30px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.us1-stat-l{ font-size:10.5px; font-weight:800; letter-spacing:1.6px; text-transform:uppercase; color:var(--mut); margin-top:3px; }
.us1-stat-s,.us1-stat-tiers{ font-size:11px; color:var(--dim); margin-top:4px; }
.us1-top{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.us1-topcard{
  display:flex; align-items:center; gap:12px;
  background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-md); padding:13px 15px; box-shadow:var(--shadow);
}
.us1-rank{ font-family:var(--disp); font-size:25px; font-weight:800; color:var(--flood2); width:34px; }
.us1-tp-name{ font-weight:800; font-size:14px; color:var(--ink); }
.us1-tp-meta{ font-size:11px; color:var(--mut); }
.us1-tp-amt{ margin-left:auto; font-family:var(--disp); font-size:21px; font-weight:800; color:var(--money2); font-variant-numeric:tabular-nums; }
.us1-tp-team{ font-size:11px; color:var(--mut); }
.us1-teams{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:13px; }
.us1-team{
  background:linear-gradient(180deg, color-mix(in srgb, var(--tc,#888) 8%, #ffffff), #ffffff);
  border:1px solid color-mix(in srgb, var(--tc,#888) 30%, var(--line));
  border-top:4px solid var(--tc,#888); border-radius:var(--r-lg); padding:15px; box-shadow:var(--shadow);
}
.us1-team-head{ display:flex; align-items:center; gap:11px; margin-bottom:9px; }
.us1-tc{ width:40px; height:40px; border-radius:11px; background:var(--tc,#888); display:flex; align-items:center; justify-content:center;
  font-family:var(--disp); font-weight:800; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.35); font-size:15px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35); }
.us1-team-code{ font-family:var(--disp); font-size:19px; font-weight:800; letter-spacing:1.4px; color:var(--ink); }
.us1-team-id{ flex:1; min-width:0; }
.us1-team-cap,.us1-team-count{ font-size:11px; color:var(--mut); }
.us1-team-purse{ margin-left:auto; text-align:right; }
.us1-team-spend{ font-family:var(--disp); font-size:18px; font-weight:800; color:var(--money2); font-variant-numeric:tabular-nums; }
.us1-purse-bar{ height:6px; border-radius:3px; background:rgba(16,38,82,.10); overflow:hidden; margin:8px 0 4px; }
.us1-purse-bar i{ display:block; height:100%; background:linear-gradient(90deg, var(--tc,#888), color-mix(in srgb, var(--tc,#888) 55%, #fff)); }
.us1-purse-txt{ font-size:10.5px; color:var(--dim); }
.us1-roster{ margin-top:10px; border-top:1px dashed rgba(16,38,82,.14); padding-top:8px; }
.us1-pl{ display:flex; align-items:center; gap:8px; font-size:12px; padding:3.5px 0; }
.us1-pl-no{ color:var(--dim); width:18px; font-variant-numeric:tabular-nums; }
.us1-pl-name{ flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:600; color:var(--ink); }
.us1-pl-tier{ font-size:9px; font-weight:800; padding:1px 7px; border-radius:4px; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2); }
.us1-pl-tier.t-platinum{ background:var(--plat); } .us1-pl-tier.t-gold{ background:var(--gold); }
.us1-pl-tier.t-silver{ background:var(--silv); } .us1-pl-tier.t-bronze{ background:var(--brnz); }
.us1-pl-amt{ color:var(--money2); font-weight:800; font-variant-numeric:tabular-nums; }

/* login fallback (extras) */
.upla-login{ max-width:420px; margin:48px auto; background:#ffffff;
  border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; box-shadow:var(--shadow); }


/* ==========================================================================
   SQUADS BOARD - team-wise buys with captains, builds live as players sell
   ========================================================================== */
.upla-rb{ margin-top:16px; }
.upla-rb-head{
  margin:0 0 10px; font-family:var(--disp); font-size:15px; font-weight:700;
  letter-spacing:2.6px; text-transform:uppercase; color:#b45309;
  display:flex; align-items:center; gap:12px;
}
.upla-rb-head::after{ content:''; flex:1; height:1px; background:linear-gradient(90deg,var(--line2),transparent); }
.upla-rb-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:11px; }
.upla-rb-team{
  background:linear-gradient(180deg, color-mix(in srgb, var(--tc,#888) 7%, #ffffff), #ffffff);
  border:1px solid color-mix(in srgb, var(--tc,#888) 32%, var(--line));
  border-top:4px solid var(--tc,#888);
  border-radius:var(--r-md); padding:11px 12px 10px; box-shadow:0 3px 10px rgba(23,43,99,.07);
}
.upla-rb-th{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:7px; }
.upla-rb-th b{
  font-family:var(--disp); font-size:17px; font-weight:800; letter-spacing:1.4px; color:var(--ink);
}
.upla-rb-cap{
  font-size:11px; font-weight:700; color:var(--mut);
  background:var(--paper2); border:1px solid var(--line); padding:2px 9px; border-radius:12px;
  max-width:46%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.upla-rb-th i{ font-style:normal; margin-left:auto; font-size:11px; font-weight:700; color:var(--money2); font-variant-numeric:tabular-nums; white-space:nowrap; }
.upla-rb-empty{ font-size:12px; color:var(--dim); padding:6px 2px 2px; }
.upla-rb-list{ display:flex; flex-direction:column; gap:4px; }
.upla-rb-p{
  display:flex; align-items:center; gap:8px; font-size:12.5px;
  background:var(--paper2); border:1px solid var(--line); border-radius:8px; padding:5px 9px 5px 5px;
}
.upla-rb-p i{
  font-style:normal; font-family:var(--disp); font-weight:800; font-size:11px;
  width:20px; height:20px; border-radius:6px; flex:0 0 20px;
  display:flex; align-items:center; justify-content:center; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2);
  background:var(--silv);
}
.upla-rb-tier.ret{ color:#475569; }
.upla-rb-p.ret{ background:#F1F5F9; border-style:dashed; }
.upla-rb-p i.ret{ background:linear-gradient(135deg,#94A3B8,#475569); }
.upla-rb-p b.na{ color:var(--dim); }
.upla-rb-p s{ text-decoration:none; font-size:9px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:#64748B; flex:0 0 auto; }
.upla-bidbtn.busy{ opacity:.5; pointer-events:none; }
.upla-lastsold{
  margin-top:10px; display:flex; align-items:center; gap:9px;
  background:#ffffff; border:1px solid var(--line); border-radius:11px; padding:9px 13px;
  box-shadow:var(--shadow); font-size:13px;
}
.upla-ls-tag{
  font-family:var(--disp); font-weight:800; font-size:10.5px; letter-spacing:1.8px; text-transform:uppercase;
  color:#fff; background:linear-gradient(135deg,#22C55E,#16A34A); border-radius:6px; padding:3px 8px;
  text-shadow:0 1px 1px rgba(5,46,22,.35); white-space:nowrap;
}
.upla-lastsold b{ font-weight:800; color:var(--ink); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.upla-ls-arrow{ color:var(--dim); }
.upla-lastsold em{ font-style:normal; font-family:var(--disp); font-weight:800; letter-spacing:1px; color:var(--ink); }
.upla-lastsold i{ font-style:normal; margin-left:auto; font-family:var(--disp); font-weight:800; font-size:15px; color:var(--money2); font-variant-numeric:tabular-nums; white-space:nowrap; }
.upla-rb-p i.t-platinum{ background:linear-gradient(135deg,var(--plat2),var(--plat)); }
.upla-rb-p i.t-gold{ background:linear-gradient(135deg,var(--gold2),var(--gold)); }
.upla-rb-p i.t-silver{ background:linear-gradient(135deg,var(--silv2),var(--silv)); }
.upla-rb-p i.t-bronze{ background:linear-gradient(135deg,var(--brnz2),var(--brnz)); }
.upla-rb-p u{ text-decoration:none; flex:1; min-width:0; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.upla-rb-p b{ font-family:var(--disp); font-size:14px; color:var(--money2); font-variant-numeric:tabular-nums; letter-spacing:.4px; }
.upla-rb-purse{ height:5px; border-radius:3px; background:rgba(16,38,82,.10); overflow:hidden; margin:2px 0 8px; }
.upla-rb-purse i{ display:block; height:100%; border-radius:3px;
  background:linear-gradient(90deg, var(--tc,#888), color-mix(in srgb, var(--tc,#888) 55%, #fff)); transition:width .5s; }
.upla-rb-mix{ display:flex; gap:5px; margin-bottom:8px; }
.upla-rb-mx{
  flex:1; display:flex; align-items:center; justify-content:center; gap:4px;
  font-size:11px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums;
  background:var(--paper2); border:1px solid var(--line); border-radius:7px; padding:3px 2px;
}
.upla-rb-mx i{
  font-style:normal; font-family:var(--disp); font-size:10px; width:15px; height:15px; border-radius:4px;
  display:flex; align-items:center; justify-content:center; color:#fff; text-shadow:0 1px 1px rgba(0,0,0,.2);
}
.upla-rb-mx.t-platinum i{ background:var(--plat); } .upla-rb-mx.t-gold i{ background:var(--gold); }
.upla-rb-mx.t-silver i{ background:var(--silv); } .upla-rb-mx.t-bronze i{ background:var(--brnz); }
.upla-rb-mx.zero{ opacity:.38; }
.upla-rb-tier{
  display:flex; align-items:center; gap:8px; margin:7px 0 4px;
  font-family:var(--disp); font-size:11px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
}
.upla-rb-tier::before{ content:''; width:4px; height:13px; border-radius:2px; background:currentColor; }
.upla-rb-tier em{ font-style:normal; margin-left:auto; font-family:var(--body); font-size:10.5px; font-weight:700;
  color:var(--mut); letter-spacing:.2px; text-transform:none; font-variant-numeric:tabular-nums; }
.upla-rb-list{ margin-bottom:2px; }
.upla-rb.one .upla-rb-team{ max-width:860px; margin:0 auto; }
#upla-cap-bottom{ max-width:860px; margin:18px auto 0; }
#upla-cap-bottom .upla-race, #upla-cap-bottom .upla-top{ margin-top:12px; }
.upla-rb.one{ margin-top:12px; }
#upla-rb-host .upla-rb{ margin-top:2px; }

/* --- bid ladder: the war on the current player --- */
.upla-ladder{
  margin-top:10px; display:flex; align-items:stretch; overflow:hidden;
  background:#ffffff; border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow);
}
.upla-ladder-tag{
  flex:0 0 auto; writing-mode:vertical-rl; transform:rotate(180deg);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--disp); font-weight:800; font-size:12px; letter-spacing:2.5px; text-transform:uppercase;
  padding:10px 6px; color:#fff; text-shadow:0 1px 2px rgba(120,53,15,.45);
  background:linear-gradient(180deg,var(--flood),var(--flood2));
}
.upla-ladder-rows{ flex:1; padding:7px 10px; display:flex; flex-direction:column; gap:4px; }
.upla-ld-row{
  display:flex; align-items:center; gap:9px; padding:5px 10px; border-radius:8px;
  background:var(--paper2); border:1px solid var(--line); opacity:.62;
}
.upla-ld-row i{ width:9px; height:9px; border-radius:3px; background:var(--tc); box-shadow:0 0 0 2px #fff, 0 1px 3px rgba(23,43,99,.25); }
.upla-ld-row b{ font-family:var(--disp); font-size:14px; font-weight:800; letter-spacing:1.2px; width:50px; color:var(--ink); }
.upla-ld-row span{ margin-left:auto; font-family:var(--disp); font-size:16px; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.upla-ld-row.top{
  opacity:1; background:linear-gradient(90deg, color-mix(in srgb, var(--tc) 14%, #fff), #fff);
  border-color:color-mix(in srgb, var(--tc) 40%, var(--line));
}
.upla-ld-row.top span{ color:var(--money2); font-size:18px; }
.upla-ld-row.top::after{ content:'HIGHEST'; font-size:8px; font-weight:800; letter-spacing:1.5px; color:#fff;
  background:var(--tc); border-radius:4px; padding:2px 6px; margin-left:8px; text-shadow:0 1px 1px rgba(0,0,0,.25); }

/* --- purse race: spend bars, team colours --- */
.upla-race{ background:#ffffff; border:1px solid var(--line); border-radius:var(--r-md); padding:12px 14px 10px; box-shadow:var(--shadow); }
.upla-race .upla-rb-head{ margin-bottom:8px; }
.upla-race-row{ display:flex; align-items:center; gap:10px; padding:3.5px 0; }
.upla-race-row b{ font-family:var(--disp); font-size:13.5px; font-weight:800; letter-spacing:1px; width:44px; color:var(--ink); }
.upla-race-bar{ flex:1; height:13px; border-radius:7px; background:rgba(16,38,82,.08); overflow:hidden; }
.upla-race-bar i{ display:block; height:100%; border-radius:7px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--tc) 70%, #fff), var(--tc));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); transition:width .6s; }
.upla-race-row span{ font-family:var(--disp); font-size:14px; font-weight:800; color:var(--ink); width:118px; text-align:right; font-variant-numeric:tabular-nums; }
.upla-race-row span u{ display:block; text-decoration:none; font-family:var(--body); font-size:9.5px; font-weight:700; color:var(--mut); letter-spacing:.2px; }

/* --- top buys podium --- */
.upla-top{ background:#ffffff; border:1px solid var(--line); border-radius:var(--r-md); padding:12px 14px; box-shadow:var(--shadow); }
.upla-top .upla-rb-head{ margin-bottom:8px; }
.upla-top-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(195px,1fr)); gap:8px; }
.upla-top-row{
  display:flex; align-items:center; gap:9px; padding:8px 11px; border-radius:10px;
  background:linear-gradient(90deg, color-mix(in srgb, var(--tc,#888) 9%, #fff), #fff);
  border:1px solid color-mix(in srgb, var(--tc,#888) 30%, var(--line));
  border-left:4px solid var(--tc,#888);
}
.upla-top-row i{ font-style:normal; font-size:17px; flex:0 0 auto; }
.upla-top-id{ flex:1; min-width:0; }
.upla-top-id b{ display:block; font-size:13px; font-weight:800; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.upla-top-id small{ font-size:10px; font-weight:800; letter-spacing:.4px; }
.upla-top-row em{ font-style:normal; font-family:var(--disp); font-size:17px; font-weight:800; color:var(--money2); font-variant-numeric:tabular-nums; }

/* --- public auction progress summary (audience top) --- */
.upla-pubprog{ background:#ffffff; border:1px solid var(--line); border-radius:var(--r-md); padding:14px 16px 13px; box-shadow:var(--shadow); margin-bottom:12px; }
.upla-pubprog-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:9px; }
.upla-pubprog-head .upla-rb-head{ margin:0; }
.upla-pubprog-big{ font-family:var(--disp); font-weight:800; font-size:26px; color:var(--ink); line-height:1; font-variant-numeric:tabular-nums; }
.upla-pubprog-big small{ font-size:13px; font-weight:700; color:var(--mut); margin-left:3px; }
.upla-pubprog-bar{ position:relative; height:12px; border-radius:7px; background:rgba(16,38,82,.08); overflow:hidden; }
.upla-pubprog-bar i{ position:absolute; left:0; top:0; bottom:0; border-radius:7px; background:linear-gradient(90deg,var(--flood),var(--flood2)); }
.upla-pubprog-bar u{ position:absolute; left:0; top:0; bottom:0; border-radius:7px; background:repeating-linear-gradient(45deg,#94A3B8 0 6px,#7C8AA3 6px 12px); opacity:.92; }
.upla-pubprog-legend{ display:flex; gap:16px; margin-top:9px; flex-wrap:wrap; }
.upla-pubprog-legend span{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; color:var(--mut); font-variant-numeric:tabular-nums; }
.upla-pubprog-legend b{ width:12px; height:12px; border-radius:4px; display:inline-block; }
.upla-pubprog-legend .lg-auc{ background:linear-gradient(135deg,var(--flood),var(--flood2)); }
.upla-pubprog-legend .lg-ret{ background:repeating-linear-gradient(45deg,#94A3B8 0 4px,#7C8AA3 4px 8px); }
.upla-pubprog-legend .lg-cap{ background:linear-gradient(135deg,#475569,#1E293B); }
.upla-aud-tier-ret{ display:block; font-size:8.5px; font-weight:700; letter-spacing:.4px; color:#64748B; text-transform:none; margin-top:1px; }
.upla-tprog-ret{ font-style:normal; font-size:9px; font-weight:800; color:#64748B; margin-left:4px; }

/* --- tier donuts on the audience strip --- */
.upla-donut{
  --p:0; width:34px; height:34px; border-radius:50%; flex:0 0 34px; position:relative;
  background:conic-gradient(currentColor calc(var(--p)*1turn), rgba(16,38,82,.10) 0);
}
.upla-donut::after{ content:''; position:absolute; inset:5px; border-radius:50%; background:#fff; }
.upla-aud-tier{ justify-content:flex-start; }
.upla-aud-tier .upla-aud-tier-l{ font-family:var(--disp); font-weight:700; font-size:15px; letter-spacing:1.6px; text-transform:uppercase; }
.upla-aud-tier b{ margin-left:auto; }

/* --- richer SOLD card --- */
.upla-sold-name .upla-tierbadge{ font-size:11px; vertical-align:6px; margin-left:6px; }
.upla-sold-meta{
  margin-top:10px; display:inline-block; font-size:12px; font-weight:700; color:var(--mut);
  background:var(--paper2); border:1px solid var(--line); border-radius:16px; padding:5px 14px;
  font-variant-numeric:tabular-nums;
}

/* ==========================================================================
   RESPONSIVE - compact phone layouts
   ========================================================================== */
@media (max-width:1120px){
  .upla-cr-grid{ grid-template-columns:1fr; }
  .upla-cr-pool{ order:3; }
  .upla-cr-main{ order:1; }
  .upla-cr-side{ order:2; }
  .upla-pool-list{ max-height:330px; }
}
@media (max-width:760px){
  .upla-root{ padding:10px 10px 130px; } /* room for the fixed bid bar */
  .upla-hero{ padding:14px; border-radius:15px; }
  .upla-hero-top{ gap:12px; margin-bottom:12px; }
  .upla-hero-pic{ width:64px; height:64px; flex-basis:64px; font-size:24px; border-radius:15px; }
  .upla-hero-name{ font-size:22px; letter-spacing:.2px; }
  .upla-hero-real{ font-size:11.5px; margin-top:2px; }
  .upla-hero-tags{ gap:6px; margin-top:7px; }
  .upla-tierbadge{ font-size:11px; padding:3px 9px 2px; }
  .upla-strength,.upla-base{ font-size:10.5px; padding:3px 8px 2px; }
  .upla-timer{ width:66px; height:66px; }
  .upla-timer::before{ inset:5px; }
  .upla-timer-val{ font-size:25px; }
  .upla-timer small{ font-size:7px; letter-spacing:1.8px; }
  /* squad becomes one swipeable row */
  .upla-squad{ display:flex; overflow-x:auto; gap:8px; padding-bottom:6px;
    scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
  .upla-squad::-webkit-scrollbar{ height:5px; }
  .upla-squad::-webkit-scrollbar-thumb{ background:rgba(16,38,82,.18); border-radius:3px; }
  .upla-sc{ flex:0 0 92px; scroll-snap-align:start; }
  .upla-bidline{ padding:10px 13px; margin-top:12px; gap:10px; }
  .upla-bl-amt{ font-size:29px; }
  .upla-bl-ext{
  font-family:var(--disp); font-weight:800; font-size:12px; letter-spacing:1.2px;
  color:#92400E; background:#FFF7E8; border:1px solid rgba(217,119,6,.45);
  border-radius:7px; padding:3px 9px; margin-left:12px; white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
/* floating mini clock on the bid bar (tick() drives it via shared classes) */
.upla-timer.upla-bidtimer{
  position:absolute; top:-21px; right:12px; z-index:5;
  width:52px; height:52px; flex:0 0 52px;
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(var(--flood2) calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  border-radius:50%;
  box-shadow:0 5px 16px rgba(23,43,99,.18), 0 0 0 3px #fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0;
}
.upla-timer.upla-bidtimer .upla-timer-val{ font-family:var(--disp); font-weight:800; font-size:18px; line-height:1; color:var(--ink); }
.upla-timer.upla-bidtimer small{ font-size:7px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; color:var(--mut); }
.upla-timer.upla-bidtimer.danger{
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(#DC2626 calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  animation:uplaPanic .8s ease-in-out infinite;
}
.upla-timer.upla-bidtimer.danger .upla-timer-val{ color:#DC2626; }

.upla-bidcap{
  grid-column:1 / -1; text-align:center; font-size:12px; font-weight:700; color:#92400E;
  background:#FFF7E8; border:1px dashed rgba(217,119,6,.5); border-radius:9px; padding:7px 10px;
}
.upla-bl-team{ font-size:15px; padding:4px 12px 3px; }
  /* captain: console pinned to the thumb zone */
  .upla-cap-head{ border-radius:0 0 13px 13px; margin:-10px -10px 12px; padding:11px 14px; }
  .upla-cap-team{ font-size:16px; }
  .upla-cap-purse{ font-size:11px; }
  .upla-cap-purse b{ font-size:13.5px; }
  .upla-cap-bidbar{
    position:fixed; left:0; right:0; bottom:0; z-index:600; margin:0;
    grid-template-columns:repeat(3,1fr); gap:8px;
    padding:11px 12px calc(11px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    border-top:1px solid var(--line2); box-shadow:0 -12px 34px rgba(23,43,99,.16);
  }
  .upla-bidbtn{ min-height:56px; font-size:19px; border-radius:12px; }
  .upla-bl-ext{ font-size:10px; padding:2px 7px; margin-left:8px; }
  /* floating mini clock on the bid bar (tick() drives it via shared classes) */
.upla-timer.upla-bidtimer{
  position:absolute; top:-21px; right:12px; z-index:5;
  width:52px; height:52px; flex:0 0 52px;
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(var(--flood2) calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  border-radius:50%;
  box-shadow:0 5px 16px rgba(23,43,99,.18), 0 0 0 3px #fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0;
}
.upla-timer.upla-bidtimer .upla-timer-val{ font-family:var(--disp); font-weight:800; font-size:18px; line-height:1; color:var(--ink); }
.upla-timer.upla-bidtimer small{ font-size:7px; font-weight:800; letter-spacing:1.4px; text-transform:uppercase; color:var(--mut); }
.upla-timer.upla-bidtimer.danger{
  background:
    radial-gradient(closest-side, #ffffff 78%, transparent 79% 100%),
    conic-gradient(#DC2626 calc(var(--p,1)*1turn), rgba(16,38,82,.12) 0);
  animation:uplaPanic .8s ease-in-out infinite;
}
.upla-timer.upla-bidtimer.danger .upla-timer-val{ color:#DC2626; }

.upla-bidcap{ font-size:10.5px; padding:6px 8px; }
  .upla-lastsold{ font-size:12px; padding:8px 11px; gap:7px; }
  .upla-timer.upla-bidtimer{ top:-25px; right:10px; width:48px; height:48px; }
  .upla-timer.upla-bidtimer .upla-timer-val{ font-size:16px; }
  .upla-lastsold i{ font-size:13.5px; }
  .upla-root[data-view="captain"]{ padding-bottom:176px; } /* fixed bid bar clearance for the boards */
  .upla-bidbtn.base{ font-size:20px; min-height:52px; }
  .upla-bidmsg{ padding:14px 12px; font-size:13.5px; }
  .upla-toast{ bottom:auto; top:14px; transform:translateX(-50%) translateY(-12px); }
  .upla-toast.show{ transform:translateX(-50%) translateY(0); }
  /* control room compact */
  .upla-cr-actions{ gap:8px; }
  .upla-cr-actions .upla-btn{ font-size:14px; padding:13px 10px 12px; }
  .upla-ctl-row .upla-btn{ font-size:13px; padding:11px 8px 10px; letter-spacing:.6px; }
  .upla-ctl-sell select,.upla-ctl-sell input{ min-width:0; }
  .upla-ctl-sell .upla-btn{ flex:1 1 100%; }
  .upla-kbd{ display:none; }
  button.upla-kbd{ display:block; left:auto; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); }
  /* audience compact */
  .upla-stage.aud .upla-hero-pic{ width:64px; height:64px; flex-basis:64px; }
  .upla-stage.aud .upla-timer{ width:66px; height:66px; }
  .upla-stage.aud .upla-timer-val{ font-size:25px; }
  .upla-stage.aud .upla-hero-name{ font-size:22px; }
  .upla-aud-tiers{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .upla-aud-tier{ min-width:0; padding:8px 12px; }
  .upla-aud-tier>span{ font-size:12.5px; letter-spacing:1px; }
  .upla-aud-tier b{ font-size:17px; }
  .upla-aud-teams{ grid-template-columns:repeat(auto-fit,minmax(86px,1fr)); gap:7px; }
  .upla-aud-team{ padding:7px 8px; }
  .upla-aud-team b{ font-size:15px; }
  .upla-sold-word{ font-size:54px; letter-spacing:6px; }
  .upla-sold-name{ font-size:21px; }
  .upla-soldcard{ padding:26px 30px; margin:0 14px; border-radius:20px; }
  .upla-rb-grid{ grid-template-columns:1fr 1fr; gap:8px; }
  .upla-rb-team{ padding:9px 9px 8px; }
  .upla-rb-th b{ font-size:15px; }
  .upla-rb-cap{ max-width:none; flex:1 1 100%; order:3; }
  .upla-rb-p{ font-size:11.5px; }
  .upla-rb-mx{ font-size:10px; gap:3px; }
  .upla-ladder-rows{ padding:6px 8px; }
  .upla-ld-row b{ width:38px; font-size:12.5px; }
  .upla-ld-row span{ font-size:14px; }
  .upla-ld-row.top span{ font-size:15px; }
  .upla-ld-row.top::after{ display:none; }
  .upla-race-row b{ width:36px; font-size:12px; }
  .upla-race-row span{ width:92px; font-size:12.5px; }
  .upla-race-bar{ height:10px; }
  .upla-top-grid{ grid-template-columns:1fr; }
  .upla-donut{ width:26px; height:26px; flex-basis:26px; }
  .upla-donut::after{ inset:4px; }
  .upla-aud-tier .upla-aud-tier-l{ font-size:12px; }
  .upla-sold-meta{ font-size:10.5px; padding:4px 11px; }
  .uap-head h2{ font-size:23px; }
  .uap-controls{ margin-left:0; width:100%; }
  #uap-search{ flex:1; min-width:0; }
}
/* very small phones */
@media (max-width:380px){
  .upla-cap-bidbar{ grid-template-columns:repeat(2,1fr); }
  .upla-hero-name{ font-size:19px; }
}

@media (prefers-reduced-motion:reduce){
  .upla-root *,.upla-root *::before,.upla-root *::after{ animation:none !important; transition:none !important; }
}
