:root{
  --bg:#0b0f14;
  --card:#121826;
  --text:#e6eef8;
  --muted:#a9b6c7;
  --accent:#4aa3ff;
  --border:rgba(255,255,255,0.10);
  --max:1100px;
}

/* ===================== RESET ===================== */

*{ box-sizing:border-box; }

html,body{
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--text);
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

a{ color:var(--text); text-decoration:none; }
a:hover{ text-decoration:underline; }

.container{
  width:min(var(--max), calc(100% - 2rem));
  margin:0 auto;
}

/* ===================== NAV ===================== */

.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(11,15,20,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}

.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.75rem 0;
  gap:1rem;
  position:relative;
}

.brand.brand-logo{
  display:flex;
  align-items:center;
}

.brand-banner{
  height:44px;
  width:auto;
  display:block;
  object-fit:contain;
}

.menu{
  display:flex;
  gap:.35rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.menu a{
  padding:.45rem .6rem;
  border-radius:10px;
  color:var(--muted);
}

.menu a.active,
.menu a:hover{
  color:var(--text);
  background:rgba(255,255,255,.06);
  text-decoration:none;
}

/* ===================== MOBILE NAV TOGGLE ===================== */

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  width:44px;
  height:44px;
  padding:0;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:var(--text);
  cursor:pointer;
}

.nav-toggle:hover{ filter:brightness(1.05); }

.nav-toggle-bar{
  display:block;
  width:20px;
  height:2px;
  margin:0 auto;
  background:rgba(230,238,248,.92);
  border-radius:2px;
}

/* ===================== HERO ===================== */

.hero{ padding:3.2rem 0 1.4rem; }

.hero-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1.4rem;
  align-items:stretch;
}

.hero h1{
  margin:0 0 .6rem;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.1;
}

.small{ font-size:.92rem; color:var(--muted); }

.kicker{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.8rem;
  margin:0 0 .35rem;
}

.cta-row{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.75rem 1rem;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.06);
  color:var(--text);
  font-weight:600;
  cursor:pointer;
}

.btn.primary{
  background:var(--accent);
  border-color:transparent;
  color:#05111d;
}

.btn:hover{ text-decoration:none; filter:brightness(1.03); }

/* ===================== CARDS & GRID ===================== */

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:18px;
  padding:1.2rem;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}

.section{ padding:1.6rem 0; }
.section h2{ margin:0 0 .75rem; font-size:1.5rem; }
.section h3{ margin:0 0 .5rem; font-size:1.2rem; }

.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }

.hr{ height:1px; background:var(--border); margin:1rem 0; }

.badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.25rem .55rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  font-size:.85rem;
  margin-right:.4rem;
  margin-top:.4rem;
}

.list{
  margin:.85rem 0 0;
  padding-left:1.1rem;
  color:var(--muted);
}
.list li{ margin:.35rem 0; }

/* ===================== MEDIA ===================== */

.media{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  border:1px solid var(--border);
  background:#000;
}

.grid-3 .media{ height:200px; }
.grid-2 .media{ height:260px; }

.media img,
.media iframe,
.media video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  border:0;
}

/* ===================== VIDEO FRAME ===================== */

.video-frame{
  position:relative;
  background:#000;
  border-radius:18px;
  border:1px solid var(--border);
  overflow:hidden;
  min-height:320px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}

.video-frame iframe,
.video-frame video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

.video-frame video{ object-fit:cover; }

.video-scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.6), rgba(0,0,0,.25), rgba(0,0,0,.6));
  pointer-events:none;
}

.video-overlay{
  position:absolute;
  bottom:1.1rem;
  left:1.2rem;
  right:1.2rem;
  pointer-events:none;
}

/* ===================== BANNER VIDEO BEHAVIOR ===================== */

.video-band{ padding:0 0 1.6rem; }

.video-band .video-frame{
  min-height:0;
  height:clamp(200px,26vw,360px);
}

/* ===================== FEATURED LIVE PLAYER (16:9) ===================== */

.video-frame.video-frame--featured{
  min-height:0;
  height:auto;
  aspect-ratio:16 / 9;
}

/* ===================== STREAM STATES ===================== */

.hidden{ display:none !important; }

.stream-thumb{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.stream-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:1.25rem;
  background:linear-gradient(180deg, rgba(0,0,0,.65), rgba(0,0,0,.35), rgba(0,0,0,.65));
  pointer-events:none;
}

.stream-overlay .overlay-content{
  max-width:520px;
}

.stream-meta{ margin-top:.85rem; }

/* ===================== LIVE PAGE: FLAT ===================== */

.page-live .grid-2 .card{
  box-shadow:none;
  border:none;
  background:var(--card);
}

.page-live .grid-2 .card .media{
  border:none;
  box-shadow:none;
  background:#000;
}

/* ===================== OUR WORK: TILE ICON ===================== */

.page-work .work-tile{ cursor:pointer; }

.page-work .work-tile::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:64px;
  height:64px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  pointer-events:none;
}

.page-work .work-tile::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-42%,-50%);
  width:0;
  height:0;
  border-left:18px solid rgba(255,255,255,.9);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  pointer-events:none;
  z-index:2;
}

.page-work .work-tile.is-playing::before,
.page-work .work-tile.is-playing::after{ display:none; }

.page-work .work-tile.is-offline::before,
.page-work .work-tile.is-offline::after{ display:none; }

/* ===================== ABOUT PAGE: BTS JSON GRID ===================== */

.page-about #btsGrid .media{
  height:auto;
  aspect-ratio: var(--ar, 16 / 9);
}

.page-about .bts-tile{ cursor:pointer; }

.page-about #btsGrid .bts-tile.is-video::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:64px;
  height:64px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  pointer-events:none;
}

.page-about #btsGrid .bts-tile.is-video::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-42%,-50%);
  width:0;
  height:0;
  border-left:18px solid rgba(255,255,255,.9);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  pointer-events:none;
  z-index:2;
}

.page-about #btsGrid .bts-tile.is-playing::before,
.page-about #btsGrid .bts-tile.is-playing::after{ display:none; }

.page-about .bts-caption{
  margin:.6rem 0 0;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.35;
}

.page-about .bts-loadmore-wrap{
  display:flex;
  justify-content:center;
  margin-top:1rem;
}

/* ===================== ABOUT PAGE: CORE TEAM INLINE PHOTOS ===================== */

.page-about .core-team-card{
  display:flex;
  flex-direction:column;
}

.page-about .core-team-content{
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}

.page-about .team-inline-photos{
  margin-top:auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:.85rem;
  padding-top:.9rem;
}

.page-about .team-inline-photos img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border-radius:14px;
  border:0;
  box-shadow:none;
  background:#000;
}

.page-about .team-photo-placeholder{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:.25rem;
  width:100%;
  aspect-ratio:16 / 9;
  border-radius:14px;
  border:1px dashed rgba(255,255,255,.18);
  background:rgba(255,255,255,.04);
  padding:.75rem;
  box-shadow:none;
}

/* ===================== ABOUT PAGE: IMAGE LIGHTBOX ===================== */

.page-about .lightbox{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem 1.25rem;
  background:rgba(0,0,0,.75);
  backdrop-filter: blur(8px);
}

.page-about .lightbox.hidden{ display:none !important; }

.page-about .lightbox-inner{
  position:relative;
  width:min(1100px, 96vw);
  max-height:90vh;
  display:flex;
  align-items:center;
  justify-content:center;
}

.page-about .lightbox-img{
  width:100%;
  height:auto;
  max-height:90vh;
  object-fit:contain;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.18);
  background:#000;
  box-shadow:0 25px 60px rgba(0,0,0,.55);
}

.page-about .lightbox-close{
  position:absolute;
  top:-14px;
  right:-14px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.55);
  color:var(--text);
  cursor:pointer;
  font-size:22px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
}

.page-about .lightbox-close:hover{ filter:brightness(1.08); }

/* ===================== FORMS ===================== */

form{ margin:0; }
form > * + *{ margin-top:.85rem; }

label{
  display:block;
  margin:0 0 .35rem;
  font-size:.9rem;
  color:var(--muted);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
textarea,
select{
  width:100%;
  max-width:100%;
  display:block;
  padding:.75rem .85rem;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.05);
  color:var(--text);
  outline:none;
  font:inherit;
}

textarea{
  min-height:140px;
  resize:vertical;
  line-height:1.4;
}

input::placeholder,
textarea::placeholder{
  color:rgba(169,182,199,.65);
}

input:focus,
textarea:focus,
select:focus{
  border-color:rgba(74,163,255,.55);
  box-shadow:0 0 0 3px rgba(74,163,255,.18);
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.8rem;
}
.form-row > div{ min-width:0; }

/* ===================== FOOTER ===================== */

.footer{
  border-top:1px solid var(--border);
  padding:1.3rem 0;
  margin-top:2rem;
  color:var(--muted);
}

.footer .row{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}

/* ===================== RESPONSIVE ===================== */

@media (max-width:920px){
  .hero-grid{ grid-template-columns:1fr; }
  .grid-2, .grid-3{ grid-template-columns:1fr; }
  .brand-banner{ height:36px; }

  /* Mobile nav: hamburger + dropdown */
  .nav-toggle{ display:inline-flex; }

  .menu{
    display:none;
    position:absolute;
    top:calc(100% + .55rem);
    right:0;
    width:min(320px, calc(100vw - 1rem));
    flex-direction:column;
    align-items:stretch;
    gap:.15rem;
    padding:.55rem;
    background:rgba(11,15,20,.96);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:0 18px 44px rgba(0,0,0,.45);
    z-index:1000;
  }

  .menu a{
    color:var(--text);
    padding:.7rem .75rem;
    border-radius:12px;
  }

  .menu a.active,
  .menu a:hover{
    background:rgba(255,255,255,.08);
  }

  .menu.is-open{ display:flex; }
}

@media (max-width:700px){
  .form-row{ grid-template-columns:1fr; }
}
