/* =========================================================
   css/submenu.css (PASTE ENTIRE FILE)
   FIX: Titles overlay ON TOP of tiles (Menu parity)
   - .tile is positioning context
   - .tileTitleBtn is absolutely positioned over the video
   - AudioTag overlays top-left
   - CycleNav is left-aligned
   ========================================================= */

:root{
  --bone: #e6e6e6;
  --bone-soft: #bfbfbf;
  --bone-faint: #8f8f8f;

  --border: rgba(230,230,230,0.18);
  --border-hover: rgba(230,230,230,0.32);

  --panel: rgba(0,0,0,0.45);

  --ui-33: 0.33;
  --ui-100: 1;
}

*{ box-sizing:border-box; }
html, body{ height:100%; }

body{
  margin:0;
  background:#000;
  color:var(--bone);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

/* Links */
a{ color:inherit; text-decoration:none; font-weight:inherit; }
a:visited{ color:inherit; }
a:hover{ font-weight:700; }
a:active{ color:inherit; }

.page{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

/* Header */
.header{
  padding:18px 16px;
  border-bottom:1px solid var(--border);
}
.logoWrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.logoIcon{
  width:25px;
  height:25px;
  object-fit:contain;
  opacity:var(--ui-33);
  transition:opacity 160ms ease, transform 120ms ease;
}
.logoText{
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--bone-soft);
  opacity:var(--ui-33);
  transition:opacity 160ms ease, font-weight 160ms ease;
  white-space:nowrap;
}
.logoWrap:hover .logoIcon,
.logoWrap:hover .logoText{ opacity:var(--ui-100); }
.logoWrap:hover .logoText{ font-weight:700; }
.logoWrap:hover .logoIcon{ transform:translateY(-1px); }

/* Main */
.main{
  flex:1 0 auto;
  padding:26px 16px 40px;
}
.container{
  max-width:1200px;
  margin:0 auto;
}

/* Portal */
.portalCell{
  display:flex;
  justify-content:flex-start;
  margin-bottom:18px;
}
.portalSmall{
  width:200px;
  height:200px;
  border-radius:50%;
  overflow:hidden;
  border:1px solid var(--border);
  position:relative;
}
.portalSmall iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
  pointer-events:none;
}
.portalClick{
  position:absolute;
  inset:0;
  display:block;
  cursor:pointer;
}

/* Prev/Next left aligned */
.cycleNav{
  text-align:left;
  margin-bottom:18px;
}
.cycleBtn{
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:11px;
  opacity:.7;
}
.cycleBtn:hover{ opacity:1; font-weight:700; }
.cycleSep{ margin:0 6px; opacity:.5; }

/* Intro */
.intro{ margin-bottom:24px; }
.introText h2{
  margin:0 0 10px 0;
  font-size:20px;
}
.introText p{
  max-width:1080px;
  line-height:1.55;
  color:rgba(236,236,236,0.85);
  font-size:14px;
}

/* Grid */
.subGrid{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(4, minmax(0,1fr));
}
@media (max-width:1024px){
  .subGrid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .portalCell{ justify-content:center; }
}
@media (max-width:560px){
  .subGrid{ grid-template-columns:1fr; }
}

/* Tile (positioning context for overlays) */
.tile{
  position:relative; /* CRITICAL */
  border:none;
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,0.02);
}

/* Thumb button */
.thumb{
  width:100%;
  aspect-ratio:9 / 16;
  background:#000;
  overflow:hidden;
  border:0;
  padding:0;
  margin:0;
  display:block;
  cursor:pointer;
}
.thumbToggle{
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
}
.thumb iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
  pointer-events:none;
}

/* TITLE OVERLAY (this is the fix) */
.tileTitleBtn{
  position:absolute;        /* CRITICAL */
  left:12px;
  right:12px;
  bottom:12px;
  z-index:5;

  padding:12px;
  border-radius:12px;

  background:var(--panel);
  border:1px solid var(--border);
  backdrop-filter: blur(8px);

  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:12px;
  font-weight:600;
  color:var(--bone);
}
.tileTitleBtn:hover{
  border-color:var(--border-hover);
  font-weight:700;
}

/* Audio indicator */
.audioTag{
  position:absolute;
  top:12px;
  left:12px;
  z-index:6;

  padding:6px 8px;
  border-radius:10px;

  background:rgba(0,0,0,0.35);
  border:1px solid var(--border);
  backdrop-filter: blur(8px);

  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bone-faint);

  opacity:0;
  transform:translateY(-2px);
  transition:opacity 140ms ease, transform 140ms ease;
  pointer-events:none;
}
.thumbToggle.is-audio-on ~ .audioTag{
  opacity:1;
  transform:translateY(0);
}

/* Footer */
.footer{
  margin-top:auto;
  padding:18px 16px;
  border-top:1px solid var(--border);
  text-align:center;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
  color:var(--bone-faint);
}
.hero_header{
  margin:0 0 10px 0;
  letter-spacing:.08em;
  font-size:12px;
  color:var(--bone-soft);
  opacity:0.33;
  transition:opacity 160ms ease, font-weight 160ms ease;
}
.hero_header:hover{ opacity:1; font-weight:700; }

.contactIcons{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  margin-top:12px;
}
.contactIcons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:50px;
  height:50px;
}
.contactIcons img{
  width:50px;
  height:50px;
  object-fit:contain;
  opacity:0.33;
  transition:opacity 160ms ease, transform 120ms ease;
}
.contactIcons img:hover{
  opacity:1;
  transform:translateY(-1px);
}

/* Remove thin outlines */
.thumb, .thumb iframe{ outline:none !important; box-shadow:none !important; }
.thumb:focus, .thumb:focus-visible{ outline:none !important; }

/* ===== Subtle audio affordance (hover-only, Menu-safe) ===== */
.tile{ position:relative; } /* already present, keep */

.audioHint{
  position:absolute;
  left:12px;
  top:12px;
  z-index:7; /* ABOVE .tileTitleBtn (z=5) and .audioTag (z=6) */

  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;

  color: rgba(236,236,236,0.45);
  opacity:0;

  pointer-events:none;
  transition: opacity 160ms ease;
}

/* Show hint when hovering ANYWHERE on the tile (including the title overlay) */
.tile:hover .audioHint{
  opacity:0.55;
}

/* Hide hint once audio is on */
.thumbToggle.is-audio-on .audioHint{
  opacity:0;
}

/* No hover on touch devices */
@media (hover: none){
  .audioHint{ display:none; }
}



