
/* Keep the photographed television untouched. The real three newest offers
   now live in one deliberate drawer below it, never over the baked-in text. */
#roomStage #tvPanel{overflow:visible!important;isolation:isolate!important}
#roomStage #tvPanel .gb-tv-live-feed{
  position:absolute!important;z-index:80!important;left:50%!important;right:auto!important;top:calc(100% + 10px)!important;bottom:auto!important;
  width:clamp(205px,15vw,270px)!important;height:auto!important;min-height:0!important;padding:10px 11px 11px!important;
  display:grid!important;grid-template-rows:auto repeat(3,minmax(24px,auto))!important;gap:0!important;align-content:start!important;
  border:1px solid rgba(255,64,90,.58)!important;border-top:2px solid #ff3656!important;border-radius:0 0 12px 12px!important;
  background:linear-gradient(180deg,rgba(8,1,8,.985),rgba(2,0,5,.985))!important;
  box-shadow:0 16px 28px rgba(0,0,0,.72),0 0 22px rgba(255,48,79,.22),inset 0 0 20px rgba(255,48,79,.05)!important;
  opacity:0!important;visibility:hidden!important;transform:translate(-50%,-7px) scale(.97)!important;transform-origin:50% 0!important;
  transition:opacity .18s ease,transform .22s ease,visibility 0s linear .22s!important;pointer-events:none!important;
}
#roomStage #tvPanel:hover .gb-tv-live-feed,
#roomStage #tvPanel:focus-visible .gb-tv-live-feed,
#roomStage #tvPanel.v14-touch-on .gb-tv-live-feed{
  opacity:1!important;visibility:visible!important;transform:translate(-50%,0) scale(1)!important;transition-delay:0s!important;
}
#roomStage #tvPanel .gb-tv-live-heading{
  display:block!important;margin:0 0 5px!important;padding:0 0 6px!important;border-bottom:1px solid rgba(255,70,94,.34)!important;
  color:#fff!important;font:900 8px/1 "Courier New",monospace!important;letter-spacing:.17em!important;text-align:center!important;text-shadow:0 0 10px #ff304f!important;
}
#roomStage #tvPanel .gb-tv-live-row{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;min-height:25px!important;
  border:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important;font-size:8px!important;line-height:1.1!important;
}
#roomStage #tvPanel .gb-tv-live-row:last-child{border-bottom:0!important}
#roomStage #tvPanel .gb-tv-live-title{color:#f7e9ed!important;font-weight:800!important;letter-spacing:.025em!important}
#roomStage #tvPanel .gb-tv-live-store{color:#21eaff!important;font-weight:900!important;text-align:right!important}

/* Space Defenders starts compact and physically expands with the campaign.
   Its logical movement corridor also grows from level 3 and is full at 14. */
#arcadeOverlay .arcade-shell{width:min(var(--gb-space-width,400px),calc(100vw - 22px))!important;max-width:none!important;transition:width .42s cubic-bezier(.2,.75,.2,1)!important}
#arcadeOverlay .arcade-frame{width:min(100%,calc((100svh - 145px)*.666667))!important;max-width:none!important;transition:width .42s cubic-bezier(.2,.75,.2,1),box-shadow .3s ease!important}
#arcadeOverlay[data-arcade-level="14"] .arcade-frame,
#arcadeOverlay[data-arcade-level="15"] .arcade-frame,
#arcadeOverlay[data-arcade-level="16"] .arcade-frame,
#arcadeOverlay[data-arcade-level="17"] .arcade-frame,
#arcadeOverlay[data-arcade-level="18"] .arcade-frame,
#arcadeOverlay[data-arcade-level="19"] .arcade-frame,
#arcadeOverlay[data-arcade-level="20"] .arcade-frame{box-shadow:0 0 64px rgba(255,48,79,.62),0 0 110px rgba(33,234,255,.12)!important}
.space-tier.nightmare strong{color:#ff55e8;text-shadow:0 0 8px #ff55e8}.space-tier.impossible strong{color:#ff304f;text-shadow:0 0 10px #ff304f}.space-tier.god strong{color:#fff4a8;text-shadow:0 0 12px #ffd35a}
@media(max-width:760px){
  #roomStage #tvPanel .gb-tv-live-feed{left:46%!important;top:calc(100% + 6px)!important;width:205px!important;padding:8px 9px 9px!important}
  #roomStage #tvPanel .gb-tv-live-row{min-height:23px!important;font-size:7px!important}
  #arcadeOverlay .arcade-shell{width:calc(100vw - 12px)!important}
  #arcadeOverlay .arcade-frame{width:min(100%,calc((100svh - 180px)*.666667))!important}
}
@media(prefers-reduced-motion:reduce){#roomStage #tvPanel .gb-tv-live-feed,#arcadeOverlay .arcade-shell,#arcadeOverlay .arcade-frame{transition:none!important}}


/* Keep only the photographed/CRT frame. The larger interactive hit area must
   remain invisible so it cannot draw a second rectangle around Free Games. */
#roomStage > #tvPanel,
#roomStage > #tvPanel:hover,
#roomStage > #tvPanel:focus-visible,
#roomStage > #tvPanel.v14-touch-on,
#roomStage > #tvPanel.gb-sign-touch-on{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#roomStage > #tvPanel::before,
#roomStage > #tvPanel::after{display:none!important}
#roomStage > #tvPanel:hover,
#roomStage > #tvPanel:focus-visible,
#roomStage > #tvPanel.v14-touch-on,
#roomStage > #tvPanel.gb-sign-touch-on{
  animation:gbV224SignPowerOn .48s steps(2,end) 1!important;
}


/* Stable category documents: each navigation choice has its own URL and page,
   while reusing the approved newsroom layout and content. */
body.gb-category-document .hero{display:none!important}
body.gb-category-document .content-hub{
  min-height:100svh!important;
  padding-top:calc(var(--header-h) + clamp(44px,6vw,82px))!important;
}
body.gb-category-document .section-top{scroll-margin-top:calc(var(--header-h) + 18px)}
body.gb-category-document .content-wrap::before{
  content:"GAMINGBROJECT  /  EDITORIAL CHANNEL";
  display:block;
  margin:0 0 20px;
  color:var(--accent);
  font:900 10px/1.2 "Courier New",monospace;
  letter-spacing:.2em;
}

/* Console is fitted directly onto the slanted Atari surface. */
#roomStage>.hotspot[data-cat="releases"]{
  position:absolute!important;
  left:49.15%!important;
  top:75.05%!important;
  width:clamp(138px,12.4vw,166px)!important;
  min-width:0!important;
  min-height:36px!important;
  padding:7px 12px 6px!important;
  translate:-50% -50%!important;
  transform:perspective(420px) rotateX(42deg) rotateZ(5.2deg) skewX(-2.5deg)!important;
  transform-origin:50% 50%!important;
  border-radius:7px!important;
  background:linear-gradient(180deg,rgba(7,4,6,.58),rgba(2,1,3,.78))!important;
  border:1px solid rgba(255,157,52,.56)!important;
  box-shadow:inset 0 0 14px rgba(255,157,52,.07),0 0 9px rgba(255,157,52,.18)!important;
  color:#fff4df!important;
  -webkit-text-stroke:.28px #ff9d34!important;
  text-shadow:0 0 6px rgba(255,157,52,.72)!important;
  opacity:.88!important;
}
#roomStage>.hotspot[data-cat="releases"]>span{
  margin-top:3px!important;
  font-size:6.5px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
}
#roomStage.console-hover>.hotspot[data-cat="releases"],
#roomStage>.hotspot[data-cat="releases"]:hover,
#roomStage>.hotspot[data-cat="releases"]:focus-visible,
#roomStage>.hotspot[data-cat="releases"].active,
#roomStage>.hotspot[data-cat="releases"].gb-sign-touch-on{
  transform:perspective(420px) rotateX(42deg) rotateZ(5.2deg) skewX(-2.5deg) scale(1.055)!important;
  background:linear-gradient(180deg,rgba(25,12,3,.78),rgba(5,2,2,.9))!important;
  border-color:#ffb552!important;
  box-shadow:inset 0 0 18px rgba(255,157,52,.16),0 0 20px rgba(255,157,52,.62)!important;
  opacity:1!important;
}

/* One connected editorial bar: newest article, reader favourite and newest
   Free Games article. On mobile it remains one swipeable strip. */
#channelStrip.gb-live-bar{
  --live-bar-accent:#ff2948;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  margin:0 0 26px!important;
  overflow:hidden;
  border:1px solid rgba(255,41,72,.46);
  border-radius:18px;
  background:linear-gradient(90deg,rgba(255,41,72,.08),rgba(5,2,9,.92) 27%,rgba(255,41,72,.055) 55%,rgba(5,2,9,.94)),#070309;
  box-shadow:inset 0 1px rgba(255,255,255,.055),0 16px 42px rgba(0,0,0,.34),0 0 28px rgba(255,41,72,.09);
}
#channelStrip.gb-live-bar .channel-card{
  position:relative;
  min-width:0;
  min-height:102px;
  padding:17px 19px;
  gap:13px;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
#channelStrip.gb-live-bar .channel-card+.channel-card{border-left:1px solid rgba(255,255,255,.1)!important}
#channelStrip.gb-live-bar .channel-card::before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;right:0;top:0;
  height:2px;
  background:var(--slot-color,#ff2948);
  opacity:.62;
  box-shadow:0 0 12px var(--slot-color,#ff2948);
}
#channelStrip.gb-live-bar .channel-card::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:0!important;
  height:auto!important;
  background:radial-gradient(circle at 50% 125%,var(--slot-color,#ff2948),transparent 62%)!important;
  opacity:.07!important;
  transition:opacity .22s ease!important;
}
#channelStrip.gb-live-bar .channel-card:hover,
#channelStrip.gb-live-bar .channel-card:focus-visible{
  background:linear-gradient(145deg,color-mix(in srgb,var(--slot-color,#ff2948) 13%,transparent),transparent 72%)!important;
}
#channelStrip.gb-live-bar .channel-card:hover::after,
#channelStrip.gb-live-bar .channel-card:focus-visible::after{opacity:.2!important}
#channelStrip.gb-live-bar .channel-card:focus-visible{outline:2px solid var(--slot-color,#ff2948);outline-offset:-3px}
#channelStrip.gb-live-bar .channel-card>*{position:relative;z-index:1}
#channelStrip.gb-live-bar .channel-play{
  width:52px;height:52px;
  border-radius:15px;
  border-color:var(--slot-color,#ff2948);
  color:var(--slot-color,#ff2948);
  background:color-mix(in srgb,var(--slot-color,#ff2948) 10%,rgba(0,0,0,.7));
  box-shadow:inset 0 0 14px color-mix(in srgb,var(--slot-color,#ff2948) 12%,transparent),0 0 17px color-mix(in srgb,var(--slot-color,#ff2948) 22%,transparent);
  font-family:var(--display);
  font-size:11px;
  font-weight:1000;
  letter-spacing:.08em;
}
#channelStrip.gb-live-bar .channel-play.is-8bit{
  position:relative;
  display:grid;
  grid-template-rows:1fr auto;
  place-items:center;
  width:58px;
  height:58px;
  padding:8px 7px 6px;
  overflow:hidden;
  border:0;
  border-radius:0;
  clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% calc(100% - 7px),calc(100% - 7px) 100%,7px 100%,0 calc(100% - 7px),0 7px);
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px),radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--slot-color,#ff2948) 18%,transparent),transparent 62%),rgba(5,4,9,.92);
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--slot-color,#ff2948) 72%,transparent),inset 0 0 18px color-mix(in srgb,var(--slot-color,#ff2948) 14%,transparent),0 0 18px color-mix(in srgb,var(--slot-color,#ff2948) 12%,transparent);
  transition:filter .22s ease,transform .22s ease;
}
#channelStrip.gb-live-bar .channel-play.is-8bit::after{
  content:"";
  position:absolute;
  right:7px;
  bottom:6px;
  width:4px;
  height:4px;
  background:currentColor;
  box-shadow:0 0 8px currentColor;
  opacity:.78;
}
#channelStrip.gb-live-bar .gb-pixel-icon{
  align-self:end;
  width:26px;
  height:26px;
  fill:currentColor;
  filter:drop-shadow(0 0 5px color-mix(in srgb,currentColor 64%,transparent));
  transition:transform .2s steps(2,end),filter .2s ease;
}
#channelStrip.gb-live-bar .gb-pixel-label{
  align-self:end;
  font:950 6px/1 "Courier New",monospace;
  letter-spacing:.16em;
  text-indent:.16em;
  text-shadow:0 0 7px currentColor;
}
#channelStrip.gb-live-bar .channel-card:hover .channel-play.is-8bit,
#channelStrip.gb-live-bar .channel-card:focus-visible .channel-play.is-8bit{
  filter:brightness(1.22) saturate(1.12);
  transform:translateY(-2px) scale(1.035);
}
#channelStrip.gb-live-bar .channel-card:hover .gb-pixel-icon,
#channelStrip.gb-live-bar .channel-card:focus-visible .gb-pixel-icon{
  filter:drop-shadow(0 0 9px currentColor);
  transform:translateY(-2px);
}
#channelStrip.gb-live-bar .channel-copy small{color:var(--slot-color,#ff2948);font-size:8px;letter-spacing:.19em}
#channelStrip.gb-live-bar .channel-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
#channelStrip.gb-live-bar .channel-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
#channelStrip.gb-live-bar .channel-card[data-live-slot="hot"]{background:linear-gradient(180deg,rgba(255,41,72,.09),transparent 70%)!important}
#channelStrip.gb-live-bar .channel-card[data-live-slot="hot"] .channel-play{animation:gbLiveHotPulse 1.9s ease-in-out infinite}
#channelStrip.gb-live-bar .channel-card[data-live-slot="hot"] .gb-pixel-icon{animation:gbLivePixelFlame 1.15s steps(2,end) infinite}
#channelStrip.gb-live-bar.is-loading .channel-card{pointer-events:none}
#channelStrip.gb-live-bar.is-loading .channel-copy strong,
#channelStrip.gb-live-bar.is-loading .channel-copy span{
  color:transparent;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,.07),rgba(255,255,255,.15),rgba(255,255,255,.07));
  background-size:200% 100%;
  animation:gbLiveLoading 1.05s linear infinite;
}
@keyframes gbLiveHotPulse{50%{box-shadow:inset 0 0 18px rgba(255,41,72,.2),0 0 24px rgba(255,41,72,.58)}}
@keyframes gbLivePixelFlame{50%{transform:translateY(-2px) scaleX(.9)}}
@keyframes gbLiveLoading{to{background-position:-200% 0}}

@media(max-width:900px){
  #roomStage>.hotspot[data-cat="releases"]{left:49.15%!important;top:75.05%!important;width:146px!important;min-width:0!important;min-height:38px!important}
}
@media(max-width:760px){
  body.gb-category-document .content-hub{padding-top:calc(var(--header-h) + 30px)!important}
  body.gb-category-document .content-wrap::before{margin-bottom:14px;font-size:8px}
  #channelStrip.gb-live-bar{
    display:flex!important;
    gap:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  #channelStrip.gb-live-bar::-webkit-scrollbar{display:none}
  #channelStrip.gb-live-bar .channel-card{flex:0 0 86%;min-height:94px;padding:15px 16px;scroll-snap-align:start}
  #channelStrip.gb-live-bar .channel-card+.channel-card{border-left:1px solid rgba(255,255,255,.1)!important}
}
@media(prefers-reduced-motion:reduce){
  #roomStage>.hotspot[data-cat="releases"]{transition:none!important}
  #channelStrip.gb-live-bar .channel-card[data-live-slot="hot"] .channel-play,
  #channelStrip.gb-live-bar .channel-card[data-live-slot="hot"] .gb-pixel-icon,
  #channelStrip.gb-live-bar.is-loading .channel-copy strong,
  #channelStrip.gb-live-bar.is-loading .channel-copy span{animation:none!important}
}


/* V1.1.6 — move only the approved TestQQ NEWS and PC treatments to live.
   INSERT COIN is anchored to the room itself, so wide screens keep exactly
   the same proportional position that was already correct at 1280px. */
#roomStage > .hotspot[data-cat="news"]{
  left:16.7%!important;
  top:8.7%!important;
  width:clamp(194px,16vw,210px)!important;
  min-width:194px!important;
  min-height:42px!important;
  padding:8px 14px 7px!important;
  font-size:clamp(13px,1.08vw,16px)!important;
  line-height:1!important;
  letter-spacing:.075em!important;
}
#roomStage > .hotspot[data-cat="news"] > span{
  margin-top:4px!important;
  font-size:clamp(6px,.48vw,7px)!important;
}

#roomStage > .hotspot[data-cat="hardware"]{
  position:absolute!important;
  left:31.2%!important;
  top:31.7%!important;
  width:124px!important;
  height:138px!important;
  min-width:124px!important;
  min-height:138px!important;
  padding:0 10px!important;
  translate:0 0!important;
  transform:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  background:radial-gradient(circle at 55% 48%,rgba(57,214,255,.09),transparent 64%)!important;
  box-shadow:none!important;
  color:rgba(237,253,255,.88)!important;
  font-size:22px!important;
  line-height:1!important;
  letter-spacing:.08em!important;
  text-shadow:0 0 10px rgba(57,214,255,.58),0 2px 4px rgba(0,0,0,.94)!important;
}
#roomStage > .hotspot[data-cat="hardware"] > span{
  display:block!important;
  max-height:none!important;
  margin-top:6px!important;
  color:rgba(224,249,255,.72)!important;
  opacity:0!important;
  transform:translateY(3px)!important;
  transition:opacity .18s ease,transform .18s ease!important;
  white-space:normal!important;
  font:800 6.5px/1.2 Inter,system-ui,sans-serif!important;
  letter-spacing:.055em!important;
}
#roomStage > .hotspot[data-cat="hardware"]:hover,
#roomStage > .hotspot[data-cat="hardware"]:focus-visible,
#roomStage > .hotspot[data-cat="hardware"].gb-sign-touch-on,
#roomStage.pc-hover > .hotspot[data-cat="hardware"]{
  color:#f2fdff!important;
  background:radial-gradient(circle at 55% 48%,rgba(57,214,255,.12),transparent 65%)!important;
  text-shadow:0 0 12px rgba(57,214,255,.72),0 2px 4px #000!important;
  filter:brightness(1.33) saturate(1.48)!important;
}
#roomStage > .hotspot[data-cat="hardware"]:hover > span,
#roomStage > .hotspot[data-cat="hardware"]:focus-visible > span,
#roomStage > .hotspot[data-cat="hardware"].gb-sign-touch-on > span,
#roomStage.pc-hover > .hotspot[data-cat="hardware"] > span{
  opacity:.82!important;
  transform:translateY(0)!important;
}

@media (min-width:761px){
  #roomStage > #arcadeCta{
    position:absolute!important;
    left:55.5%!important;
    top:32.35%!important;
    translate:-50% -50%!important;
  }
}
@media (max-width:760px){
  #roomStage > .hotspot[data-cat="news"]{
    left:16.7%!important;
    top:8.7%!important;
    width:200px!important;
    min-width:200px!important;
    min-height:42px!important;
    font-size:14px!important;
  }
  #roomStage > .hotspot[data-cat="hardware"]{
    left:31.2%!important;
    top:31.7%!important;
    width:124px!important;
    height:138px!important;
    min-width:124px!important;
    min-height:138px!important;
    font-size:22px!important;
  }
}
@media (prefers-reduced-motion:reduce){
  #roomStage > .hotspot[data-cat="hardware"],
  #roomStage > .hotspot[data-cat="hardware"] > span{transition:none!important}
}


/* The WordPress toolbar is visible only to signed-in editors. Keep the fixed
   GamingBroject header below it so the real logo is never covered or clipped. */
html{overflow-x:clip}
body.admin-bar .site-header{top:32px!important}
/* Card layouts use display:flex!important. Explicitly restore the semantic
   hidden state so category and Latest filters remove non-matching stories on
   every viewport instead of only updating the counter. */
body #contentHub #cards .article-card[hidden]{display:none!important}
@media screen and (max-width:782px){
  body.admin-bar .site-header{top:46px!important}
}


html.gb-module-pulse #contentHub{animation:gbModulePulseV122 .18s ease-out both}
html.gb-module-pulse .site-header{box-shadow:0 1px 0 color-mix(in srgb,var(--accent) 54%,transparent),0 10px 28px rgba(0,0,0,.22)}
@keyframes gbModulePulseV122{0%{opacity:.82;transform:translateY(3px);filter:saturate(.88)}100%{opacity:1;transform:none;filter:saturate(1)}}
@media (prefers-reduced-motion:reduce){html.gb-module-pulse #contentHub{animation:none}}
