/* =====================================================
   DMX Wristband Controller — Static CSS
   Canonical: dmxfun.com/ledbracelets/dmx-wristband-controller/
   Replaces:  cdn.tailwindcss.com
   Custom:    .heading-brand / .text-gradient-neon / .bento-card / .hero-bg-glow
   Fonts:     Inter + Plus Jakarta Sans (async in <head>)
   HubSpot:   #hubspot-form-container
   ===================================================== */

/* §0 — Box-sizing & reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}

/* §1 — Body */
body{
  font-family:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;
  background-color:#030308;
  color:#f1f5f9;
  position:relative;
  overflow-x:hidden;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* §2 — Custom: .heading-brand */
.heading-brand{
  font-family:'Plus Jakarta Sans',ui-sans-serif,system-ui,sans-serif;
}

/* §3 — Custom: .text-gradient-neon */
.text-gradient-neon{
  background:linear-gradient(135deg,#38bdf8 0%,#a855f7 50%,#f43f5e 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* §4 — Custom: .bento-card */
.bento-card{
  border:1px solid rgba(255,255,255,0.08);
  background:linear-gradient(180deg,rgba(31,41,55,0.6) 0%,rgba(17,24,39,0.7) 100%);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.bento-card:hover{
  border-color:rgba(56,189,248,0.4);
  background:rgba(55,65,81,0.7);
  transform:translateY(-4px);
}

/* §5 — Custom: .hero-bg-glow */
.hero-bg-glow{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100vh;
  background-image:linear-gradient(to bottom,rgba(3,3,8,0.3) 0%,#030308 95%),
                   url('/images/hero-stadium-concert-glow.jpg');
  background-size:cover;
  background-position:center;
  opacity:0.25;
  z-index:1;
  pointer-events:none;
}

/* §6 — Global p / li / .text-base-custom override (preserves original intent) */
p,li,.text-base-custom{
  font-size:1.125rem !important;
  line-height:1.85 !important;
  color:#e2e8f0 !important;
  letter-spacing:0.02em !important;
}

/* §7 — HubSpot form container */
#hubspot-form-container .hs-form{display:flex;flex-direction:column;gap:1.2rem}
#hubspot-form-container .hs-form label{
  color:#94a3b8;font-size:0.75rem;font-weight:600;
  letter-spacing:0.08em;text-transform:uppercase;
  display:block;margin-bottom:6px;
}
#hubspot-form-container .hs-form input,
#hubspot-form-container .hs-form textarea,
#hubspot-form-container .hs-form select{
  background:rgba(255,255,255,0.05)!important;
  border:1px solid rgba(255,255,255,0.1)!important;
  border-radius:8px!important;
  color:#f1f5f9!important;
  padding:12px 16px!important;
  width:100%!important;
  font-size:0.875rem!important;
  outline:none;
  transition:border 0.25s ease;
}
#hubspot-form-container .hs-form input:focus,
#hubspot-form-container .hs-form textarea:focus,
#hubspot-form-container .hs-form select:focus{
  border-color:#0284c7!important;
  box-shadow:0 0 0 3px rgba(2,132,199,0.15)!important;
}
#hubspot-form-container .hs-form input::placeholder,
#hubspot-form-container .hs-form textarea::placeholder{color:#94a3b8!important}
#hubspot-form-container .hs-form .hs-button,
#hubspot-form-container .hs-form input[type="submit"]{
  background:#0284c7!important;
  border:none!important;
  border-radius:8px!important;
  color:#fff!important;
  font-weight:700!important;
  font-size:0.75rem!important;
  padding:14px 32px!important;
  cursor:pointer!important;
  text-transform:uppercase!important;
  letter-spacing:0.1em!important;
  width:auto;
  transition:background 0.2s!important;
}
#hubspot-form-container .hs-form .hs-button:hover,
#hubspot-form-container .hs-form input[type="submit"]:hover{background:#0369a1!important}
#hubspot-form-container .hs-form .hs-error-msgs{
  color:#fb7185!important;font-size:0.75rem!important;
  list-style:none;padding:0;margin:0.25rem 0 0 0;
}
#hubspot-form-container .hs-form .hs-form-field{margin-bottom:1.25rem!important}
#hubspot-form-container .hs-form .legal-consent-container{
  font-size:0.75rem;color:#64748b;line-height:1.5;
}

/* §8 — @keyframes */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes fade-in-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.animate-pulse{animation:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite}

/* §9 — Position */
.static{position:static}
.relative{position:relative}
.absolute{position:absolute}
.fixed{position:fixed}
.sticky{position:sticky}
.inset-0{top:0;right:0;bottom:0;left:0}
.top-0{top:0}
.bottom-8{bottom:2rem}
.right-8{right:2rem}

/* §10 — Z-index */
.z-10{z-index:10}
.z-50{z-index:50}

/* §11 — Pointer events */
.pointer-events-none{pointer-events:none}

/* §12 — Display */
.hidden{display:none}
.block{display:block}
.inline-block{display:inline-block}
.inline{display:inline}
.flex{display:flex}
.inline-flex{display:inline-flex}
.grid{display:grid}

/* §13 — Flex */
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.justify-end{justify-content:flex-end}

/* §14 — Gap */
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-5{gap:1.25rem}
.gap-10{gap:2.5rem}
.gap-12{gap:3rem}
.gap-16{gap:4rem}
.gap-20{gap:5rem}

/* §15 — Grid columns */
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}

/* §16 — Width */
.w-auto{width:auto}
.w-2{width:0.5rem}
.w-7{width:1.75rem}
.w-10{width:2.5rem}
.w-full{width:100%}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-7xl{max-width:80rem}

/* §17 — Height */
.h-2{height:0.5rem}
.h-6{height:1.5rem}
.h-7{height:1.75rem}
.h-10{height:2.5rem}
.h-24{height:6rem}
.h-48{height:12rem}
.h-80{height:20rem}
.h-full{height:100%}
.h-\[400px\]{height:400px}
.min-h-screen{min-height:100vh}

/* §18 — Overflow */
.overflow-hidden{overflow:hidden}

/* §19 — Object fit */
.object-cover{object-fit:cover}

/* §20 — Margin */
.mx-auto{margin-left:auto;margin-right:auto}
.mt-20{margin-top:5rem}
.mb-14{margin-bottom:3.5rem}
.mb-20{margin-bottom:5rem}
.mb-24{margin-bottom:6rem}
.ml-2{margin-left:0.5rem}
.mr-2{margin-right:0.5rem}

/* §21 — Padding */
.p-4{padding:1rem}
.p-6{padding:1.5rem}
.p-10{padding:2.5rem}
.p-12{padding:3rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.py-24{padding-top:6rem;padding-bottom:6rem}
.py-36{padding-top:9rem;padding-bottom:9rem}
.py-3\.5{padding-top:0.875rem;padding-bottom:0.875rem}
.pt-4{padding-top:1rem}
.pt-8{padding-top:2rem}
.pt-56{padding-top:14rem}
.pb-36{padding-bottom:9rem}
.pl-4{padding-left:1rem}

/* §22 — Space-y */
.space-y-1>*+*{margin-top:0.25rem}
.space-y-2>*+*{margin-top:0.5rem}
.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}
.space-y-6>*+*{margin-top:1.5rem}
.space-y-8>*+*{margin-top:2rem}
.space-y-10>*+*{margin-top:2.5rem}
.space-y-12>*+*{margin-top:3rem}

/* §23 — Text: size */
.text-\[10px\]{font-size:0.625rem;line-height:0.875rem}
.text-\[11px\]{font-size:0.6875rem;line-height:1rem}
.text-xs{font-size:0.75rem;line-height:1rem}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-5xl{font-size:3rem;line-height:1}

/* §24 — Text: weight */
.font-light{font-weight:300}
.font-normal{font-weight:400}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.font-black{font-weight:900}

/* §25 — Text: misc */
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Courier New',monospace}
.italic{font-style:italic}
.uppercase{text-transform:uppercase}
.tracking-tight{letter-spacing:-0.025em}
.tracking-wide{letter-spacing:0.025em}
.tracking-wider{letter-spacing:0.05em}
.tracking-widest{letter-spacing:0.1em}
.tracking-\[0\.2em\]{letter-spacing:0.2em}
.tracking-\[0\.6em\]{letter-spacing:0.6em}
.leading-\[1\.1\]{line-height:1.1}
.leading-relaxed{line-height:1.625}
.text-left{text-align:left}
.text-center{text-align:center}

/* §26 — Text colors */
.text-white{color:#ffffff}
.text-slate-100{color:#f1f5f9}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-950{color:#020617}
.text-sky-400{color:#38bdf8}
.text-purple-400{color:#c084fc}
.text-emerald-400{color:#34d399}
.text-amber-400{color:#fbbf24}
.text-rose-400{color:#fb7185}
.text-indigo-400{color:#818cf8}

/* §27 — Background colors */
.bg-black{background-color:#000000}
.bg-white\/5{background-color:rgba(255,255,255,0.05)}
.bg-white\/\[0\.02\]{background-color:rgba(255,255,255,0.02)}
.bg-black\/40{background-color:rgba(0,0,0,0.4)}
.bg-sky-500{background-color:#0ea5e9}
.bg-sky-600{background-color:#0284c7}
.bg-sky-500\/10{background-color:rgba(14,165,233,0.1)}
.bg-purple-500\/10{background-color:rgba(168,85,247,0.1)}
.bg-emerald-500\/10{background-color:rgba(16,185,129,0.1)}
.bg-amber-500\/10{background-color:rgba(245,158,11,0.1)}
.bg-rose-500\/10{background-color:rgba(244,63,94,0.1)}
.bg-indigo-500\/10{background-color:rgba(99,102,241,0.1)}
.bg-slate-900{background-color:#0f172a}
.bg-slate-900\/40{background-color:rgba(15,23,42,0.4)}
.bg-slate-900\/60{background-color:rgba(15,23,42,0.6)}
.bg-slate-950{background-color:#020617}
.bg-\[\#030308\]\/90{background-color:rgba(3,3,8,0.9)}
.bg-\[\#06060c\]\/80{background-color:rgba(6,6,12,0.8)}
.bg-\[\#25D366\]{background-color:#25D366}

/* §28 — Gradients */
.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}
.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}
.from-slate-900{
  --tw-gradient-from:#0f172a;
  --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(15,23,42,0));
}
.from-slate-950{
  --tw-gradient-from:#020617;
  --tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(2,6,23,0));
}
.via-transparent{
  --tw-gradient-stops:var(--tw-gradient-from),transparent,var(--tw-gradient-to,rgba(0,0,0,0));
}
.to-slate-950{--tw-gradient-to:#020617}

/* §29 — Backdrop filter */
.backdrop-blur-xl{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}
.backdrop-blur-sm{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}

/* §30 — Border */
.border{border-width:1px;border-style:solid}
.border-b{border-bottom-width:1px;border-bottom-style:solid}
.border-l{border-left-width:1px;border-left-style:solid}
.border-t{border-top-width:1px;border-top-style:solid}
.border-y{border-top-width:1px;border-top-style:solid;border-bottom-width:1px;border-bottom-style:solid}
.border-collapse{border-collapse:collapse}
.border-white\/5{border-color:rgba(255,255,255,0.05)}
.border-white\/10{border-color:rgba(255,255,255,0.1)}
.border-sky-500\/20{border-color:rgba(14,165,233,0.2)}
.border-purple-500\/20{border-color:rgba(168,85,247,0.2)}
.border-amber-500\/20{border-color:rgba(245,158,11,0.2)}
.border-emerald-500\/20{border-color:rgba(16,185,129,0.2)}
.border-rose-500\/20{border-color:rgba(244,63,94,0.2)}
.border-indigo-500\/20{border-color:rgba(99,102,241,0.2)}

/* §31 — Rounded */
.rounded{border-radius:0.25rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:0.5rem}
.rounded-xl{border-radius:0.75rem}
.rounded-2xl{border-radius:1rem}

/* §32 — Shadow */
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1)}
.shadow-xl{box-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1)}
.shadow-2xl{box-shadow:0 25px 50px -12px rgba(0,0,0,0.25)}
.shadow-sky-600\/10{box-shadow:0 10px 15px -3px rgba(2,132,199,0.1),0 4px 6px -4px rgba(2,132,199,0.1)}

/* §33 — Opacity */
.opacity-0{opacity:0}
.opacity-90{opacity:0.9}

/* §34 — Divide */
.divide-y>*+*{border-top-width:1px;border-top-style:solid}
.divide-white\/5>*+*{border-color:rgba(255,255,255,0.05)}

/* §35 — Transition & duration */
.transition{
  transition-property:color,background-color,border-color,opacity,box-shadow,transform,filter,backdrop-filter;
  transition-timing-function:cubic-bezier(0.4,0,0.2,1);
  transition-duration:150ms;
}
.transition-all{
  transition-property:all;
  transition-timing-function:cubic-bezier(0.4,0,0.2,1);
  transition-duration:150ms;
}
.transition-opacity{
  transition-property:opacity;
  transition-timing-function:cubic-bezier(0.4,0,0.2,1);
  transition-duration:150ms;
}
.transition-transform{
  transition-property:transform;
  transition-timing-function:cubic-bezier(0.4,0,0.2,1);
  transition-duration:150ms;
}
.duration-300{transition-duration:300ms}

/* §36 — Hover states */
.hover\:scale-105:hover{transform:scale(1.05)}
.hover\:opacity-100:hover{opacity:1}
.hover\:bg-sky-500:hover{background-color:#0ea5e9}
.hover\:bg-white\/10:hover{background-color:rgba(255,255,255,0.1)}
.hover\:text-white:hover{color:#ffffff}
.hover\:text-sky-300:hover{color:#7dd3fc}
.hover\:text-sky-400:hover{color:#38bdf8}
.hover\:text-purple-300:hover{color:#d8b4fe}
.hover\:text-emerald-300:hover{color:#6ee7b7}
.hover\:border-sky-500\/40:hover{border-color:rgba(14,165,233,0.4)}
.hover\:border-purple-500\/40:hover{border-color:rgba(168,85,247,0.4)}
.hover\:border-emerald-500\/40:hover{border-color:rgba(16,185,129,0.4)}
.hover\:underline:hover{text-decoration:underline}

/* §37 — sm (min-width: 640px) */
@media (min-width:640px){
  .sm\:text-6xl{font-size:3.75rem;line-height:1}
}

/* §38 — md (min-width: 768px) */
@media (min-width:768px){
  .md\:pt-64{padding-top:16rem}
  .md\:pb-44{padding-bottom:11rem}
  .md\:p-14{padding:3.5rem}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:text-5xl{font-size:3rem;line-height:1}
  .md\:h-\[500px\]{height:500px}
  .md\:text-right{text-align:right}
}

/* §39 — lg (min-width: 1024px) */
@media (min-width:1024px){
  .lg\:flex{display:flex}
  .lg\:hidden{display:none}
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
  .lg\:col-span-4{grid-column:span 4/span 4}
  .lg\:col-span-5{grid-column:span 5/span 5}
  .lg\:col-span-7{grid-column:span 7/span 7}
  .lg\:col-span-8{grid-column:span 8/span 8}
  .lg\:text-7xl{font-size:4.5rem;line-height:1}
  .lg\:h-64{height:16rem}
  .lg\:sticky{position:sticky}
  .lg\:top-36{top:9rem}
}
