Skip to main content Exclusive Articles
Member-only articles Weekly Newsletters
Gaming & entertainment news Commenting
Join the discussion Member Badges
Earn badges as you go Exclusive Competitions
Members-only prize draws Early Access
See the latest gaming news first An account already exists for this email address, please log in. `;
}
})
.catch(error => {
console.error("Submission failed", error);
submitBtn.disabled = false;
});
});
}
function updateBannerPosition() {
if (!banner || !bannerVisible) return;
const masthead = document.querySelector('[data-component-name="SiteHeader:Masthead"]');
const navComponent = document.querySelector('.navigation__container');
const ads_iframe = document.querySelector('iframe[name^="google_ads_iframe_"]');
const bigTop = ads_iframe?.contentDocument?.querySelector('#future-big-top-collapsed');
let targetTop = 0;
if (masthead) {
const rect = masthead.getBoundingClientRect();
targetTop = rect.bottom > 0 ? rect.bottom : 0;
}
if (navComponent) {
const rectNavComponent = navComponent.getBoundingClientRect();
if(rectNavComponent.bottom>0){
targetTop += rectNavComponent.bottom;
}
}
banner.style.top = `${targetTop}px`;
banner.style.marginTop = bigTop ? "10px" : "0px";
}
function showBannerHS() {
const ads_iframe = document.querySelector('iframe[name^="google_ads_iframe_"]');
const bigTopElement = ads_iframe?.contentDocument?.querySelector('#future-big-top-collapsed');
if(bigTopElement) banner.classList.add('flw-translate-150');
if(typeof ffte !== 'undefined' && ffte?.properties?.articleType === 'deals') return false;
const isAuthKiosq = window.FUTR?.Kiosq?.User?.is_authenticated;
const isAuthConnect = window.FUTR?.Connect?.Auth?.kiosqUserIsAuthenticated;
if (!bannerDismissed && !isAuthKiosq && !isAuthConnect) {
if(window.dispatchOrQueueAction) {
window.dispatchOrQueueAction('freyr.sendEventToFreyr', {
name: 'membershipEvent',
eventObject: { membership: { action: "scroll-page", label: "membership-banner", type: "banner-sticky" } }
});
}
banner.classList.add('show');
document.body.classList.add('banner-visible');
bannerVisible = true;
}
}
function showBanner() {
const ads_iframe = document.querySelector('iframe[name^="google_ads_iframe_"]');
const bigTopElement = ads_iframe?.contentDocument?.querySelector('#future-big-top-collapsed');
if(bigTopElement) banner.classList.add('flw-translate-150');
if(typeof ffte !== 'undefined' && ffte?.properties?.articleType === 'deals') return false;
const isAuthKiosq = window.FUTR?.Kiosq?.User?.is_authenticated;
const isAuthConnect = window.FUTR?.Connect?.Auth?.kiosqUserIsAuthenticated;
if (!bannerDismissed && !isAuthKiosq && !isAuthConnect) {
if(window.dispatchOrQueueAction) {
window.dispatchOrQueueAction('freyr.sendEventToFreyr', {
name: 'membershipEvent',
eventObject: { membership: { action: "scroll-page", label: "membership-banner", type: "banner-sticky" } }
});
}
const bgImg = document.getElementById('skinnyBannerBgImg');
if (bgImg && !bgImg.getAttribute('src')) {
if (bgImg.getAttribute('data-srcset')) {
bgImg.setAttribute('srcset', bgImg.getAttribute('data-srcset'));
}
bgImg.setAttribute('src', bgImg.getAttribute('data-src'));
}
banner.classList.add('show');
document.body.classList.add('banner-visible');
bannerVisible = true;
}
}
function hideBanner() {
if (isInputFocused) return;
banner.classList.remove('show');
bannerVisible = false;
bannerExpanded = false;
banner.classList.remove('expanded');
document.body.classList.remove('banner-expanded');
}
function toggleBanner() {
if (bannerDismissed) return;
bannerExpanded = !bannerExpanded;
banner.classList.toggle('expanded', bannerExpanded);
document.body.classList.toggle('banner-expanded', bannerExpanded);
if (bannerExpanded && window.dispatchOrQueueAction) {
window.dispatchOrQueueAction('freyr.sendEventToFreyr', {
name: 'membershipEvent',
eventObject: { membership: { action: "click-banner", label: "membership-banner", type: "banner-sticky" } }
});
}
}
function dismissBanner() {
isInputFocused = false;
hideBanner();
bannerDismissed = true;
localStorage.setItem('skinnyBannerDismissed', 'true');
}
window.addEventListener('scroll', () => {
if (bannerVisible) {
window.requestAnimationFrame(updateBannerPosition);
}
if (window.scrollY < SAFETY_SCROLL_TOP && bannerVisible && !isInputFocused) {
hideBanner();
}
}, { passive: true });
document.addEventListener('click', function (event) {
if (!banner) return;
if (!banner.contains(event.target) && banner.classList.contains('expanded') && document.body.classList.contains('banner-expanded')) {
toggleBanner();
}
});
if (bannerHeader) bannerHeader.addEventListener('click', toggleBanner);
if (closeBanner) closeBanner.addEventListener('click', e => { e.stopPropagation(); dismissBanner(); });
if (joinNowBtn) joinNowBtn.addEventListener('click', e => { e.stopPropagation(); window.location.href = '/membership'; });
checkBannerStatus();
function setupScrollFallback() {
window.addEventListener('scroll', () => {
let hasReachedThreshold = (window.scrollY >= MIN_SCROLL_NO_AD);
if (hasReachedThreshold && !scrollTriggered && !bannerVisible) { scrollTriggered = true; showBanner(); }
else if (!hasReachedThreshold && !isInputFocused) { scrollTriggered = false; hideBanner(); }
});
}
const bodyObserver = new MutationObserver((mutations, observer) => {
const firstAd = document.querySelector('.bordeaux-filled-slot');
if (firstAd) {
const intersectionObserver = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (!entry.isIntersecting && !bannerVisible) showBanner();
else if (entry.isIntersecting && bannerVisible && !isInputFocused) hideBanner();
});
}, { root: null, threshold: 0 });
intersectionObserver.observe(firstAd);
window.addEventListener('scroll', function scrollSafetyCheck() {
if (window.scrollY < SAFETY_SCROLL_TOP && bannerVisible && !isInputFocused) hideBanner();
});
observer.disconnect();
} else {
setupScrollFallback();
observer.disconnect();
}
});
bodyObserver.observe(document.body, { childList: true, subtree: true });
}); `;
}
})
.catch(error => {
console.error("Submission failed", error);
if (submitBtnBanner) submitBtnBanner.disabled = false;
});
}
window.handleMembershipFormSubmit = handleMembershipFormSubmit;
if (closeBtns) closeBtns.forEach(btn => btn.addEventListener('click', setPopupClosed));
if (popupEmailInput) {
popupEmailInput.addEventListener("input", function () {
if (typeof window.dispatchOrQueueAction === 'function') {
window.dispatchOrQueueAction('freyr.sendEventToFreyr', {
name: 'membershipEvent',
eventObject: { membership: { action: "input-signup-form", label: "membership-popup", type: "popup" } },
});
}
});
}
window.addEventListener('scroll', () => {
if (!shouldShowPopup()) return;
const progress = getScrollProgressInArticle();
if (progress >= 40 && !popupShown) {
clubPopup.classList.remove('opacity-0', 'scale-90', 'closedPopup');
clubPopup.classList.add('opacity-100', 'scale-100', 'translate-y-0');
popupShown = true;
if (typeof window.dispatchOrQueueAction === 'function') {
window.dispatchOrQueueAction('freyr.sendEventToFreyr', {
name: 'membershipEvent',
eventObject: { membership: { action: "scroll-article", label: "membership-popup", type: "popup" } },
});
}
}
else if (progress < 40 && popupShown) {
clubPopup.classList.add('opacity-0', 'scale-90', 'closedPopup');
clubPopup.classList.remove('opacity-100', 'scale-100', 'translate-y-0');
popupShown = false;
}
});
controlPopupPositionOnScreen();
window.matchMedia('(max-width: 699px)').addEventListener('change', controlPopupPositionOnScreen);
const bodyObserver = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
controlPopupPositionOnScreen();
}
}
});
bodyObserver.observe(document.body, { attributes: true });
manageInitialPopupState();
}); Welcome to
PC Gamer club
! Hi
,
Your membership journey starts here.
Keep exploring and earning more as a member.
MY ACCOUNT Earn your first
badge Read 1 article to unlock your first badge. Keep earning badges Explore ways to get more involved as a member.
Select your newsletters
Get the latest PC gaming news, rumors, recommendations, and deals delivered to your inbox. (You can turn them off anytime.)
Manage newsletters Sign Out 0 Join the conversation Follow us Add us as a preferred source on Google
I have my own separate issues with the Steam marketplace and points shop, but I can't lie: I love collecting themes that make my Steam profile look like a relic of the early 2000s. It's not quite as satisfying as the complex Dragon Ball Z profiles I styled back in the day on Neopets or LiveJournal, but it may be the closest thing I have to simulating the feeling.
Andrea has been covering games for nearly a decade, picking up bylines at IGN, USA Today, Fanbyte, and Destructoid before joining the PC Gamer team in 2025. She's got a soft spot for older RPGs and is willing to try just about anything with a lovey-dovey "I can fix them" romance element. Her weekly to-do always includes a bit of MMO time, endlessly achievement hunting and raiding in Final Fantasy 14. Outside of those staples, she's often got a few survival-crafting games on rotation and loves a good scare in co-op horror games.
LATEST ARTICLES
- 1 Beyond Good and Evil was never worth 20 years of angst
- 2 Intel reportedly collaborating with AUO on microLED panels, which could help make the ultimate display tech more mainstream
- 3 Sony Inzone M10S II gaming monitor review
- 4 This guy just sold me on his game with the health bar alone
- 5 Gigabyte admits an oopsie with Gigabyte Control Center software leaving kernel exposed to attackers