/* Opening skip link: keep the film clear and the secondary action legible. */
#prologue .opening-controls a[href="#afterdive"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px !important;
  padding: 10px 16px !important;
  border: 1px solid rgba(236, 216, 168, .42) !important;
  border-radius: 999px !important;
  background: rgba(5, 19, 30, .62) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: #f6f1e6 !important;
  font: 500 12px/1.4 "Hiragino Sans", "Noto Sans JP", sans-serif !important;
  letter-spacing: .04em;
  text-decoration: none !important;
  text-shadow: none;
  box-shadow: none !important;
}
@media (hover: hover) {
  #prologue .opening-controls a[href="#afterdive"]:hover {
    background: rgba(12, 35, 48, .88) !important;
    border-color: rgba(236, 216, 168, .8) !important;
  }
}
#prologue .opening-controls a[href="#afterdive"]:focus-visible {
  outline: 2px solid #ecd8a8;
  outline-offset: 4px;
}

/* Desktop opening: leave more of the scene above the headline.
   fitGolden keeps the text clear of the controls on shorter viewports. */
@media (min-width: 901px) {
  #prologue .fv-block { top: 67%; }
}

/* Keep the existing application in the LP, with room below its fixed header. */
#dive-apply { scroll-margin-top: 120px; }
#dive-apply[hidden] { display: none !important; }
#dive-apply:focus { outline: none; }
#dive-apply .dva-kind label { text-align: left; }

#dive-apply {
  --dva-ink: #eef3f6; --dva-sub: #b9c9d2; --dva-gold: #e3c98f;
  --dva-line: rgba(227, 201, 143, .28);
  width: min(100% - 32px, 760px);
  max-width: 760px; margin: 40px auto 64px; padding: 8px 0;
  background: #071b29; border-radius: 20px;
}
#dive-apply .dva-chip span { color: #eef3f6; }
#dive-apply .dva-chip input:checked + span { color: #fff; }

/* Keep the music switch reachable without covering mobile form inputs. */
@media (max-width: 900px) {
  body.v34-apply-visible #bgmBtn { top: 12px; bottom: auto !important; }
  body.v34-apply-visible:has(#measurement-test-mode) #bgmBtn { top: 64px; }
}

/* Mobile/tablet: a direct route for people already ready to attend. */
.v34-mobile-nav { display: none; }
@media (max-width: 1023px) {
  .v34-mobile-nav {
    display: flex; position: fixed; z-index: 80; top: 10px; right: 12px;
    gap: 4px; padding: 3px; border: 1px solid rgba(227,201,143,.4);
    border-radius: 999px; background: #071b29; color: #f6f1e6;
  }
  body:has(#measurement-test-mode) .v34-mobile-nav { top: 64px; }
  .v34-mobile-nav a {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 0 10px; border-radius: 999px;
    color: inherit; font: 500 12px/1.4 "Hiragino Sans", sans-serif;
    text-decoration: none; white-space: nowrap;
  }
  .v34-mobile-nav .v34-mobile-apply { background: #e3c98f; color: #071b29; font-weight: 700; }
  .v34-mobile-nav a:focus-visible { outline: 2px solid #f6e2a8; outline-offset: 2px; }
  #participation-plans, #v34-dates, #v34-price { scroll-margin-top: 104px; }
  body:has(#measurement-test-mode) :is(#participation-plans, #v34-dates, #v34-price) { scroll-margin-top: 138px; }
  body.v34-apply-visible .v34-mobile-nav { display: none; }
}
