/* XGN production polish layer
   Final public cascade: shared spacing, controls, accessibility and responsive safeguards. */
:root{
  --xgn-standard-hero-top:180px;
  --xgn-standard-hero-bottom:92px;
  --xgn-focus:#c79234;
}
.xgn-body :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid rgba(199,146,52,.55);outline-offset:3px}
.xgn-body button,.xgn-body a{transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,opacity .2s ease}
.xgn-body img{display:block}
.xgn-body :where(h1,h2,h3,p,strong,span,a){overflow-wrap:anywhere}

/* Standard section heroes use the Creators page rhythm. Cinematic detail/profile heroes remain intentionally unique. */
.xgn-people-hero,.xgn-tourney-hero,.xgn-editorial-hero{padding-top:var(--xgn-standard-hero-top);padding-bottom:var(--xgn-standard-hero-bottom)}
.xgn-members-showcase__hero{padding-top:var(--xgn-standard-hero-top);padding-bottom:var(--xgn-standard-hero-bottom)}

/* Consistent interactive controls. */
.xgn-button,.xgn-people-action,.xgn-people-secondary,.xgn-creator-btn,.xgn-editorial-btn,.xgn-filter-submit,.xgn-tourney-primary,.xgn-tourney-secondary,.xgn-team-button,.xgn-discord-btn,.xgn-account-primary,.xgn-account-secondary,.xgn-join-link{cursor:pointer}
.xgn-button--solid:hover,.xgn-join-band a:hover{transform:translateY(-1px)}
.xgn-join-link:hover{background:#c79234;color:#080808}
.xgn-account-link:hover{color:#fff}
.xgn-tourney-entry__arrow,.xgn-row-link,.xgn-member-row__social,.xgn-account-row-link{transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.xgn-tourney-entry:hover .xgn-tourney-entry__arrow{background:#111;color:#fff}

/* Avoid clipped controls and long metadata on narrow layouts. */
.xgn-filter-group select,.xgn-field input,.xgn-field select,.xgn-account-form input,.xgn-account-form textarea{max-width:100%}
.xgn-editorial-card,.xgn-creator-card,.xgn-member-portrait,.xgn-approved-card{min-width:0}
.xgn-event-fact strong,.xgn-account-side-card dd{overflow-wrap:anywhere}

/* External/social links are visually usable only when rendered by validated backend data. */
.xgn-social-row a,.xgn-member-profile-socials a,.xgn-member-row__social{cursor:pointer}

/* Mobile navigation should be scrollable on shorter phones instead of clipping links. */
@media(max-width:820px){
  :root{--xgn-standard-hero-top:135px;--xgn-standard-hero-bottom:70px}
  .xgn-nav{max-height:calc(100vh - 86px);overflow-y:auto;overscroll-behavior:contain}
  .xgn-people-hero,.xgn-tourney-hero,.xgn-editorial-hero,.xgn-members-showcase__hero{min-height:0}
}
@media(max-width:560px){
  :root{--xgn-standard-hero-top:125px;--xgn-standard-hero-bottom:62px}
  .xgn-hero__actions,.xgn-event-actions,.xgn-editorial-actions,.xgn-creator-hero__actions,.xgn-featured-creator__actions{width:100%}
  .xgn-hero__actions>a,.xgn-event-actions>a,.xgn-editorial-actions>a,.xgn-creator-hero__actions>a,.xgn-featured-creator__actions>a{max-width:100%}
  .xgn-discord-panel .xgn-discord-btn{justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .xgn-body *{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
