@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&family=Barlow:wght@400;500&display=swap');

/* =====================================================
   DIE HARD PINBALL LEAGUE
   8-bit arcade · chrome balls · neon teal · black
   ===================================================== */

:root {
  --teal:       #00E5D4;
  --teal2:      #00B8AA;
  --teal-dim:   rgba(0,229,212,0.15);
  --teal-faint: rgba(0,229,212,0.06);
  --silver:     #D4D8E0;
  --silver2:    #8A9099;
  --chrome-hi:  #FFFFFF;
  --chrome-mid: #C0C8D4;
  --chrome-lo:  #606878;
  --black:      #000000;
  --dark:       #050808;
  --dark2:      #0A1010;
  --dark3:      #0F1818;
  --dark4:      #141F1F;
  --mid:        #1A2828;
  --mid2:       #223333;
  --red:        #FF2244;
  --muted:      #3A5050;
  --nav-h:      64px;
  --r:          0px;
  --font-8bit:  'Press Start 2P', monospace;
  --font-vt:    'VT323', monospace;
  --font-body:  'Barlow', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--dark);
  color:var(--silver);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  min-height:100vh;
  /* Subtle CRT scanline */
  background-image:repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.15) 2px,
    rgba(0,0,0,0.15) 4px
  );
}
img{max-width:100%;display:block;}
a{color:var(--teal);text-decoration:none;}
a:hover{color:#fff;}

/* ---- TYPE ---- */
h1,h2,h3,h4{
  font-family:var(--font-8bit);
  line-height:1.4;
  text-transform:uppercase;
  color:#fff;
}
h1{font-size:clamp(1.1rem,3vw,1.8rem);}
h2{font-size:clamp(0.9rem,2vw,1.3rem);}
h3{font-size:0.75rem;}
h4{font-size:0.6rem;}

.vt{font-family:var(--font-vt);letter-spacing:0.04em;}

/* ---- LAYOUT ---- */
.container{max-width:1140px;margin:0 auto;padding:0 1.5rem;}
.section{padding:4rem 0;}
.section--tight{padding:2rem 0;}

/* Circuit board grid bg */
.bg-circuit{
  background-color:var(--dark2);
  background-image:
    linear-gradient(rgba(0,229,212,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,229,212,0.04) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(0,229,212,0.02) 0%, transparent 60%);
  background-size:40px 40px, 40px 40px, 100% 100%;
}

/* =====================================================
   SILVER PINBALL — reusable SVG-powered chrome ball
   ===================================================== */
.ball {
  border-radius:50%;
  background:
    radial-gradient(circle at 35% 28%,
      #ffffff 0%,
      #d0d8e4 18%,
      #8090a8 45%,
      #3a4858 72%,
      #101820 100%
    );
  box-shadow:
    inset -3px -3px 8px rgba(0,0,0,0.6),
    inset 2px 2px 6px rgba(255,255,255,0.3),
    0 4px 16px rgba(0,0,0,0.8),
    0 0 0 1px rgba(255,255,255,0.08);
  flex-shrink:0;
  position:relative;
}
/* teal reflection streak */
.ball::after{
  content:'';
  position:absolute;
  top:22%;left:28%;
  width:28%;height:18%;
  border-radius:50%;
  background:rgba(0,229,212,0.25);
  filter:blur(2px);
  transform:rotate(-20deg);
}

/* =====================================================
   NAV
   ===================================================== */
#site-nav{
  position:sticky;top:0;z-index:100;
  height:var(--nav-h);
  background:var(--black);
  border-bottom:2px solid var(--teal);
  box-shadow:0 0 20px rgba(0,229,212,0.25), 0 2px 0 rgba(0,229,212,0.1);
  display:flex;align-items:center;
}
#site-nav .container{display:flex;align-items:center;justify-content:space-between;width:100%;}

.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.nav-logo img{
  height:46px;width:auto;
  image-rendering:pixelated;
  filter:drop-shadow(0 0 10px rgba(0,229,212,0.6));
}

.nav-links{display:flex;align-items:center;list-style:none;}
.nav-links a{
  display:block;
  padding:0 0.75rem;
  font-family:var(--font-8bit);
  font-size:0.48rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--silver2);
  line-height:var(--nav-h);
  text-decoration:none;
  transition:color 0.1s;
  white-space:nowrap;
}
.nav-links a:hover{color:var(--teal);}
.nav-links a[aria-current="page"]{color:var(--teal);}

.nav-links .has-drop{position:relative;}
.nav-links .dropdown{
  display:none;position:absolute;top:100%;left:0;
  min-width:220px;
  background:var(--black);
  border:2px solid var(--teal);
  border-top:none;
  box-shadow:0 8px 32px rgba(0,0,0,0.8), 0 0 20px rgba(0,229,212,0.1);
  list-style:none;z-index:200;
}
.nav-links .has-drop:hover .dropdown{display:block;}
.nav-links .dropdown a{
  padding:0.6rem 1rem;
  line-height:1.3;
  font-size:0.42rem;
  border-bottom:1px solid var(--mid);
  display:block;
}
.nav-links .dropdown li:last-child a{border-bottom:none;}
.nav-links .dropdown a:hover{background:var(--teal-faint);color:var(--teal);}

.nav-cta{
  margin-left:0.5rem;
  border:2px solid var(--teal) !important;
  color:var(--teal) !important;
  background:transparent;
  line-height:1 !important;
  padding:0.5rem 0.9rem !important;
  box-shadow:0 0 10px rgba(0,229,212,0.2), inset 0 0 10px rgba(0,229,212,0.04);
  transition:all 0.1s !important;
}
.nav-cta:hover{
  background:var(--teal) !important;
  color:var(--black) !important;
  box-shadow:0 0 20px rgba(0,229,212,0.5) !important;
}

.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--teal);}

/* =====================================================
   TICKER
   ===================================================== */
#ticker{
  background:var(--black);
  border-bottom:1px solid var(--mid2);
  padding:5px 0;overflow:hidden;
  font-family:var(--font-vt);
  font-size:1.1rem;
  color:var(--teal);
  letter-spacing:0.06em;
}
.ticker-inner{display:flex;animation:tick 30s linear infinite;white-space:nowrap;}
.ticker-item{padding:0 2rem;flex-shrink:0;}
.ticker-sep{color:var(--mid2);}
@keyframes tick{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* =====================================================
   HERO
   ===================================================== */
#hero{
  position:relative;
  min-height:600px;
  background:var(--black);
  overflow:hidden;
  display:flex;align-items:center;
}

/* Pixel grid */
.hero-pixels{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,229,212,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,229,212,0.05) 1px, transparent 1px);
  background-size:24px 24px;
  z-index:0;
}

/* Big radial teal atmosphere */
.hero-atmo{
  position:absolute;right:-100px;top:50%;
  transform:translateY(-50%);
  width:700px;height:700px;border-radius:50%;
  background:radial-gradient(circle,
    rgba(0,229,212,0.12) 0%,
    rgba(0,229,212,0.04) 35%,
    transparent 70%
  );
  z-index:1;
}

/* Decorative falling balls */
.hero-ball-1{position:absolute;top:8%;right:18%;width:80px;height:80px;z-index:2;animation:float1 6s ease-in-out infinite;}
.hero-ball-2{position:absolute;top:55%;right:8%;width:52px;height:52px;z-index:2;animation:float2 7.5s ease-in-out infinite;}
.hero-ball-3{position:absolute;bottom:12%;right:28%;width:38px;height:38px;z-index:2;animation:float3 5s ease-in-out infinite;}
.hero-ball-4{position:absolute;top:20%;right:38%;width:22px;height:22px;z-index:2;animation:float1 8s ease-in-out infinite 1s;}

@keyframes float1{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-18px) rotate(8deg);}}
@keyframes float2{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-12px) rotate(-6deg);}}
@keyframes float3{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

.hero-content{position:relative;z-index:3;max-width:580px;}

.hero-insert{
  display:inline-block;
  font-family:var(--font-vt);
  font-size:1.1rem;
  letter-spacing:0.2em;
  color:var(--teal);
  text-transform:uppercase;
  margin-bottom:1.5rem;
  border:1px solid var(--mid2);
  padding:4px 12px;
  background:rgba(0,229,212,0.04);
}
.hero-insert::before{content:'> ';color:var(--mid2);}

.hero-title{
  font-family:var(--font-8bit);
  font-size:clamp(1.4rem,4.5vw,2.6rem);
  color:#fff;
  line-height:1.3;
  margin-bottom:1.25rem;
  text-shadow:
    3px 3px 0 var(--teal2),
    6px 6px 0 rgba(0,100,90,0.4);
}
.hero-title .teal{
  color:var(--teal);
  text-shadow:0 0 20px rgba(0,229,212,0.8), 3px 3px 0 rgba(0,100,90,0.6);
}

.hero-sub{
  font-family:var(--font-vt);
  font-size:1.35rem;
  color:var(--silver2);
  max-width:480px;
  margin-bottom:2rem;
  line-height:1.55;
  letter-spacing:0.02em;
}

.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}

/* Insert-coin blink */
.blink{animation:blink 1.2s step-end infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:0;}}

/* =====================================================
   BUTTONS
   ===================================================== */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-8bit);
  font-size:0.5rem;
  letter-spacing:0.08em;text-transform:uppercase;
  padding:0.8rem 1.5rem;
  border:2px solid transparent;
  cursor:pointer;text-decoration:none;
  transition:all 0.1s;line-height:1.4;
  image-rendering:pixelated;
}
.btn-primary{
  background:var(--teal);color:var(--black);
  border-color:var(--teal);
  box-shadow:4px 4px 0 var(--teal2), 0 0 20px rgba(0,229,212,0.35);
}
.btn-primary:hover{
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 var(--teal2), 0 0 30px rgba(0,229,212,0.5);
  color:var(--black);
}
.btn-primary:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--teal2);}

.btn-outline{
  background:transparent;color:var(--teal);
  border-color:var(--teal);
  box-shadow:4px 4px 0 var(--mid2);
}
.btn-outline:hover{
  background:var(--teal-dim);color:var(--teal);
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 var(--mid2);
}
.btn-outline:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--mid2);}

.btn-sm{font-size:0.42rem;padding:0.55rem 1rem;}

/* =====================================================
   SECTION LABELS
   ===================================================== */
.section-label{
  font-family:var(--font-vt);
  font-size:1.1rem;letter-spacing:0.2em;
  color:var(--teal);text-transform:uppercase;
  margin-bottom:0.5rem;
}
.section-label::before{content:'// ';color:var(--mid2);}
.section-title{font-family:var(--font-8bit);font-size:clamp(0.8rem,2vw,1.2rem);color:#fff;}

/* =====================================================
   STAT PANELS
   ===================================================== */
.about-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:3px;background:var(--mid);
  border:2px solid var(--mid);
  outline:2px solid var(--teal);
  outline-offset:-2px;
}
.about-panel{
  background:var(--dark2);padding:2rem 1.75rem;
  position:relative;overflow:hidden;
}
.about-panel::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:2px;background:var(--teal);
  box-shadow:0 0 12px var(--teal);
}
.about-ball{
  width:48px;height:48px;
  margin-bottom:1rem;
}
.about-num{
  font-family:var(--font-8bit);font-size:1.6rem;
  color:var(--teal);line-height:1;margin-bottom:0.5rem;
  text-shadow:2px 2px 0 var(--teal2), 0 0 20px rgba(0,229,212,0.4);
}
.about-panel h3{font-size:0.6rem;margin-bottom:0.6rem;}

/* =====================================================
   CARDS
   ===================================================== */
.card{
  background:var(--dark2);
  border:2px solid var(--mid2);
  outline:1px solid rgba(0,229,212,0.1);
  transition:border-color 0.15s,box-shadow 0.15s;
}
.card:hover{border-color:var(--teal);box-shadow:0 0 20px rgba(0,229,212,0.12), 4px 4px 0 var(--teal2);}
.card-inner{padding:1.25rem 1.5rem;}

/* =====================================================
   EVENT CARDS
   ===================================================== */
.event-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:3px;background:var(--mid);
  border:2px solid var(--mid);
  outline:2px solid var(--teal);
  outline-offset:-2px;
}
.event-card{background:var(--dark2);display:flex;flex-direction:column;}
.event-card:hover{background:var(--dark3);}
.event-card-date{
  font-family:var(--font-vt);font-size:1rem;letter-spacing:0.1em;
  color:var(--teal);padding:0.6rem 1rem;
  border-bottom:1px solid var(--mid2);
  display:flex;align-items:center;gap:8px;
}
.event-card-date .ball{width:10px;height:10px;}
.event-card-body{padding:0.9rem 1rem;flex:1;display:flex;flex-direction:column;gap:0.4rem;}
.event-card-title{font-family:var(--font-8bit);font-size:0.5rem;color:#fff;line-height:1.6;}
.event-card-meta{font-family:var(--font-vt);font-size:0.95rem;color:var(--muted);}

.event-type-badge{
  display:inline-block;
  font-family:var(--font-8bit);font-size:0.38rem;letter-spacing:0.08em;
  text-transform:uppercase;padding:3px 7px;
  background:var(--teal-faint);color:var(--teal);
  border:1px solid rgba(0,229,212,0.3);
}
.event-type-badge.tournament{
  background:rgba(255,34,68,0.07);color:var(--red);
  border-color:rgba(255,34,68,0.3);
}

/* =====================================================
   PHOTO GRID
   ===================================================== */
.photo-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));
  gap:3px;background:var(--mid);
  border:2px solid var(--mid);
  outline:2px solid var(--teal);
  outline-offset:-2px;
}
.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;cursor:pointer;display:block;transition:filter 0.15s;}
.photo-grid img:hover{filter:brightness(1.1) saturate(1.2);}

/* =====================================================
   STANDINGS TABLE
   ===================================================== */
.standings-table{width:100%;border-collapse:collapse;font-family:var(--font-vt);font-size:1.1rem;}
.standings-table th{
  font-family:var(--font-8bit);font-size:0.42rem;letter-spacing:0.1em;
  color:var(--muted);text-align:left;
  padding:0.5rem 0.75rem;border-bottom:2px solid var(--mid2);
}
.standings-table td{
  padding:0.55rem 0.75rem;
  border-bottom:1px solid rgba(255,255,255,0.04);
  color:var(--silver);
}
.standings-table tr:hover td{background:var(--teal-faint);}
.standings-table tr:nth-child(1) td{color:var(--teal);}

/* =====================================================
   TABS
   ===================================================== */
.tab-bar{display:flex;border-bottom:2px solid var(--mid2);margin-bottom:2rem;}
.tab-btn{
  font-family:var(--font-8bit);font-size:0.42rem;letter-spacing:0.08em;
  text-transform:uppercase;padding:0.6rem 1rem;
  background:none;border:none;color:var(--muted);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-2px;transition:color 0.1s;
}
.tab-btn.active{color:var(--teal);border-bottom-color:var(--teal);}
.tab-btn:hover:not(.active){color:var(--silver);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* =====================================================
   PAGE HEADER
   ===================================================== */
.page-header{
  background:var(--black);
  border-bottom:2px solid var(--teal);
  box-shadow:0 2px 20px rgba(0,229,212,0.2);
  padding:2.5rem 0;
}
.breadcrumb{font-family:var(--font-vt);font-size:0.95rem;color:var(--muted);margin-bottom:0.5rem;}
.breadcrumb a{color:var(--muted);}
.breadcrumb a:hover{color:var(--teal);}

/* =====================================================
   FOOTER
   ===================================================== */
#site-footer{
  background:var(--black);
  border-top:2px solid var(--teal);
  box-shadow:0 -2px 30px rgba(0,229,212,0.15);
  padding:3rem 0 1.5rem;
}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem;}
.footer-logo img{height:60px;width:auto;margin-bottom:1rem;image-rendering:pixelated;filter:drop-shadow(0 0 14px rgba(0,229,212,0.4));}
.footer-head{font-family:var(--font-8bit);font-size:0.42rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--teal);margin-bottom:1rem;}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:0.3rem;}
.footer-links a{font-family:var(--font-vt);font-size:1rem;color:var(--muted);}
.footer-links a:hover{color:var(--teal);}
.footer-copy{text-align:center;font-family:var(--font-vt);font-size:1rem;color:var(--mid2);padding-top:1.5rem;border-top:1px solid var(--mid);letter-spacing:0.06em;}

/* =====================================================
   FLASH / UTILITY
   ===================================================== */
.flash{padding:0.75rem 1rem;font-family:var(--font-vt);font-size:1rem;margin-bottom:1rem;border-left:3px solid;}
.flash-success{background:rgba(0,229,212,0.07);border-color:var(--teal);color:var(--teal);}
.flash-error{background:rgba(255,34,68,0.08);border-color:var(--red);color:var(--red);}

.text-teal{color:var(--teal);}
.text-muted{color:var(--muted);}
.text-white{color:#fff;}
.divider{border:none;border-top:1px solid var(--mid);margin:2rem 0;}

/* =====================================================
   PIXEL DECORATIONS — corner brackets
   ===================================================== */
.pixel-box{
  position:relative;
  border:2px solid var(--mid2);
  outline:1px solid rgba(0,229,212,0.15);
}
.pixel-box::before,.pixel-box::after{
  content:'';position:absolute;
  width:8px;height:8px;
  background:var(--teal);
}
.pixel-box::before{top:-3px;left:-3px;}
.pixel-box::after{bottom:-3px;right:-3px;}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media(max-width:900px){
  .about-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:700px){
  .nav-links{display:none;flex-direction:column;position:absolute;top:var(--nav-h);left:0;right:0;background:var(--black);border-bottom:2px solid var(--teal);padding:0.5rem 0;}
  .nav-links.open{display:flex;}
  .nav-links a{line-height:2.5;}
  .nav-toggle{display:flex;}
  .about-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem;}
  .event-grid{grid-template-columns:1fr;}
  #hero{min-height:auto;}
  .hero-ball-1,.hero-ball-2,.hero-ball-3,.hero-ball-4{display:none;}
}
