/* GraveGain2dB styles: bundle-scaffold only. Every rule scoped under #gg2dbWrap. */
#gg2dbWrap { position: relative; width: 100%; max-width: 1280px; margin: 0 auto; padding: 10px; background: #06070d; color: #e8ecff; font-family: Outfit, Inter, system-ui, sans-serif; }
#gg2dbWrap *, #gg2dbWrap *::before, #gg2dbWrap *::after { box-sizing: border-box; }
#gg2dbWrap #gg2dbHud { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; background: rgba(12, 14, 24, 0.92); border: 1px solid #2b3350; border-radius: 10px; padding: 8px 12px; margin-bottom: 8px; font-size: 0.85rem; }
#gg2dbWrap #gg2dbHudTL { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; }
#gg2dbWrap #gg2dbHudTC { flex: 1 1 auto; text-align: center; font-weight: 700; color: #f5c542; }
#gg2dbWrap #gg2dbHudTR { display: flex; gap: 4px 12px; align-items: center; color: #38e1ff; }
#gg2dbWrap #gg2dbHero { font-size: 1.2rem; }
#gg2dbWrap #gg2dbStage { position: relative; width: 100%; max-width: 1280px; margin: 0 auto; overflow: hidden; border-radius: 10px; border: 1px solid rgba(56, 225, 255, 0.35); background: #04050a; aspect-ratio: 16/9; }
#gg2dbWrap #gg2dbCanvas { display: block; width: 100%; height: auto; aspect-ratio: 16/9; background: #04050a; touch-action: none; }
#gg2dbWrap #gg2dbBanner { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; text-align: center; pointer-events: none; padding: 0 8%; }
#gg2dbWrap #gg2dbBanner.on { display: flex; }
#gg2dbWrap #gg2dbBannerCard { background: rgba(5, 5, 14, 0.88); border: 1px solid #38e1ff; border-radius: 12px; padding: 16px 22px; max-width: 620px; box-shadow: 0 0 40px rgba(56, 225, 255, 0.35); }
#gg2dbWrap #gg2dbBannerTitle { color: #f5c542; letter-spacing: 0.1em; font-size: 0.95rem; margin: 0 0 8px; font-weight: 800; }
#gg2dbWrap #gg2dbBannerText { font-size: 0.92rem; line-height: 1.55; margin: 0; white-space: pre-line; }
#gg2dbWrap #gg2dbFsBtn { position: absolute; top: 8px; right: 8px; z-index: 5; background: rgba(10, 8, 24, 0.8); color: #e2e8f0; border: 1px solid rgba(56, 225, 255, 0.5); border-radius: 8px; padding: 6px 10px; cursor: pointer; font-size: 0.8rem; }
#gg2dbWrap #gg2dbTouch { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
#gg2dbWrap #gg2dbTouch[hidden] { display: none; }
#gg2dbWrap #gg2dbTouch button { flex: 1 1 96px; min-width: 88px; padding: 12px 4px; font-size: 0.8rem; font-weight: 700; cursor: pointer; background: rgba(20, 14, 40, 0.95); color: #fff; border: 1px solid #a855f7; border-radius: 10px; }
#gg2dbWrap #gg2dbTouch button:active { background: #0e7490; }
#gg2dbWrap #gg2dbMenu { background: rgba(12, 14, 24, 0.94); border: 1px solid rgba(56, 225, 255, 0.5); border-radius: 12px; padding: 22px; margin-top: 8px; text-align: center; }
#gg2dbWrap #gg2dbMenu h1 { letter-spacing: 0.14em; color: #f5c542; margin: 0 0 4px; font-size: 1.6rem; }
#gg2dbWrap #gg2dbMenu .gg2db-sub { color: #9aa3c0; margin: 0 0 16px; font-size: 0.9rem; }
#gg2dbWrap #gg2dbMenu .gg2db-choices { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 12px 0; }
#gg2dbWrap #gg2dbMenu .gg2db-choices button { min-width: 150px; padding: 12px 14px; cursor: pointer; border-radius: 10px; background: rgba(30, 20, 60, 0.9); color: #fff; border: 1px solid #a855f7; font-size: 0.88rem; line-height: 1.4; }
#gg2dbWrap #gg2dbMenu .gg2db-choices button small { display: block; color: #9aa3c0; font-size: 0.75rem; margin-top: 4px; }
#gg2dbWrap #gg2dbMenu .gg2db-choices button.sel { outline: 2px solid #38e1ff; background: rgba(20, 40, 80, 0.95); }
#gg2dbWrap #gg2dbGoBtn { margin-top: 8px; padding: 12px 42px; font-size: 1rem; font-weight: 800; cursor: pointer; background: linear-gradient(135deg, #ff5d5d, #a855f7); color: #fff; border: 1px solid #f5c542; border-radius: 10px; letter-spacing: 0.08em; }
#gg2dbWrap #gg2dbMenu .gg2db-hint { color: #9aa3c0; font-size: 0.75rem; margin: 12px 0 0; }
#gg2dbWrap #gg2dbStage:fullscreen { background: #000; display: flex; align-items: center; justify-content: center; width: 100vw; }
#gg2dbWrap #gg2dbStage:fullscreen #gg2dbCanvas { width: min(100vw, 177.78vh); height: auto; }
@media (prefers-reduced-motion: reduce) {
  #gg2dbWrap #gg2dbBannerCard { box-shadow: none; }
}
@media (max-width: 640px) {
  #gg2dbWrap { padding: 6px; }
  #gg2dbWrap #gg2dbMenu h1 { font-size: 1.3rem; }
  #gg2dbWrap #gg2dbHudTC { flex-basis: 100%; order: 3; }
}
