/* BLINKBUN v3.10.3 — GAME PAGE AXIS IS THE SINGLE PUBLIC LAYOUT STANDARD
   Fixes double horizontal shrinking introduced when nested mains inherited the outer-shell gutter.
   Rule: ONLY the outer shell gets 1240px + viewport gutter. Nested main/sections fill 100%.
*/
:root{
  --bb3103-shell:1240px;
  --bb3103-edge:16px;
  --bb3103-top-gap:24px;
}

/* =========================================================
   1. ONE OUTER AXIS — same as /play
   ========================================================= */
html body .v230-shell,
html body .shell.v230-shell,
html body .seo-shell,
html body .v319-search-shell,
html body .bb-doc-shell,
html body .trade-shell{
  box-sizing:border-box!important;
  width:min(var(--bb3103-shell),calc(100% - (var(--bb3103-edge) * 2)))!important;
  max-width:var(--bb3103-shell)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Header occupies exactly the same outer axis. Never add a second horizontal gutter. */
html body .v230-shell > header.v230-header,
html body .v230-shell > header.v260-header,
html body .v230-shell > header.v387-header,
html body .seo-shell > header.v230-header,
html body .bb-doc-shell > header.v230-header{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-bottom:0!important;
}
html body .v397-header-inner,
html body .v398-header-axis,
html body .v3100-header-axis,
html body .v3100-header-inner,
html body .v3101-header-inner{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* =========================================================
   2. CRITICAL FIX — nested mains are NOT another shell.
      They fill the Game outer shell exactly.
   ========================================================= */
html body .v230-shell > main,
html body .shell.v230-shell > main,
html body .seo-shell > main,
html body .v319-search-shell > main,
html body .bb-doc-shell > main,
html body main.v282-main,
html body main.v282-home,
html body main.v230-tool-main,
html body main.v319-discovery-main,
html body main.v365-main,
html body main.v390-events-main,
html body main.v391-events-main,
html body main.v392-main,
html body main.rv240-main,
html body main.v250-main,
html body main.bb-doc-main,
html body main.v397-main-axis,
html body main.v398-main-axis,
html body main.v399-axis{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  float:none!important;
  left:auto!important;
  right:auto!important;
}

/* First-level visual blocks fill that main axis. Inner content keeps its own padding. */
html body .v230-shell > main > section,
html body .seo-shell > main > section,
html body .v319-search-shell > main > section,
html body .bb-doc-shell > main > section,
html body .v282-main > section,
html body .v230-tool-main > section,
html body .v319-discovery-main > section,
html body .v365-main > section,
html body .v390-events-main > section,
html body .v391-events-main > section,
html body .v392-main > section,
html body .rv240-main > section,
html body .v250-main > section,
html body .bb-doc-main > section,
html body .v230-hero,
html body .v230-tool-hero,
html body .v250-hero,
html body .v365-hero,
html body .v390-event-hero,
html body .v392-hero,
html body .bb393-hero,
html body .bb393-return,
html body .bb391-hub{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Remove old horizontal page padding that made non-Game pages look narrower. */
html body main.v365-main,
html body main.v390-events-main,
html body main.v391-events-main,
html body main.v392-main,
html body main.rv240-main,
html body main.v250-main,
html body main.bb-doc-main,
html body main.v319-discovery-main{
  padding-left:0!important;
  padding-right:0!important;
}

/* =========================================================
   3. ONE TOP RHYTHM — /play is the reference.
      Header line -> 24px -> first visible page content.
   ========================================================= */
html body .v230-shell > main,
html body .shell.v230-shell > main,
html body .seo-shell > main,
html body .v319-search-shell > main,
html body .bb-doc-shell > main{
  padding-top:var(--bb3103-top-gap)!important;
}

/* Never add a second top gap on the first major block. */
html body .v230-shell > main > :first-child,
html body .shell.v230-shell > main > :first-child,
html body .seo-shell > main > :first-child,
html body .v319-search-shell > main > :first-child,
html body .bb-doc-shell > main > :first-child,
html body .v313-game-entry,
html body .v317-game-entry,
html body .v230-hero:first-child,
html body .v230-tool-hero:first-child,
html body .v250-hero:first-child,
html body .v365-hero:first-child{
  margin-top:0!important;
}

/* BBUN has a subnav between header and main. Put the single 24px gap above the subnav,
   then let the main begin normally so it does not get 48px. */
html body .v230-shell > .bbun311-subnav,
html body .bb-doc-shell > .bbun311-subnav{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin:var(--bb3103-top-gap) 0 24px!important;
}
html body .bbun311-subnav + main,
html body .bbun311-subnav ~ main.bb-doc-main{
  padding-top:0!important;
}

/* Event/top utility strips also occupy the same axis without adding side gutters. */
html body .v230-shell > .v390-event-topline,
html body .v230-shell > .v393-topline,
html body .v230-shell > .v291-session-strip{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
html body .v230-shell > .v390-event-topline,
html body .v230-shell > .v393-topline{
  margin-top:var(--bb3103-top-gap)!important;
}
html body .v390-event-topline + main,
html body .v393-topline + main{
  padding-top:20px!important;
}

/* Home-specific retention blocks must not keep their historical 1180px island. */
html body .bb391-strip,
html body .bb393-hero,
html body .bb393-return{
  max-width:none!important;
  width:100%!important;
}

/* Prevent legacy CSS from restoring the 1050px tool body. */
html body.v370-page .v230-tool-main{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

/* =========================================================
   4. Responsive: only viewport edge changes; nested axis remains 100%.
   ========================================================= */
@media(max-width:900px){
  :root{--bb3103-edge:12px;--bb3103-top-gap:18px}
}
@media(max-width:560px){
  :root{--bb3103-edge:10px;--bb3103-top-gap:14px}
}
