1import{c as e,j as t,a9 as a,a as s,aa as r,ab as i,u as n,b as o,t as l,r as c,d,B as h,a6 as m,ac as u}from"./OALAxu8_.js";import{T as p}from"./CPJbzmtp.js";import{C as g}from"./CXaqPJEi.js";import{C as b}from"./aQpVPfMt.js";import{T as x}from"./hl2rvojq.js";import{M as f}from"./CYvyrSZL.js";const w=e("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),y=e("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),v=e("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]),k=e("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),j=e("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]),N=e("MemoryStick",[["path",{d:"M6 19v-3",key:"1nvgqn"}],["path",{d:"M10 19v-3",key:"iu8nkm"}],["path",{d:"M14 19v-3",key:"kcehxu"}],["path",{d:"M18 19v-3",key:"1vh91z"}],["path",{d:"M8 11V9",key:"63erz4"}],["path",{d:"M16 11V9",key:"fru6f3"}],["path",{d:"M12 11V9",key:"ha00sb"}],["path",{d:"M2 15h20",key:"16ne18"}],["path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z",key:"lhddv3"}]]),T=e("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),S=e("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),R=e("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]]),A=e("Tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),I=e("ThumbsUp",[["path",{d:"M7 10v12",key:"1qc93n"}],["path",{d:"M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z",key:"emmmcr"}]]),M=r("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function G({className:e,variant:r,asChild:i=!1,...n}){const o=i?a:"span";return t.jsx(o,{"data-slot":"badge",className:s(M({variant:r}),e),...n})}const C={"simpsons-hit-and-run":{slug:"simpsons-hit-and-run",title:"THE SIMPSONS: HIT & RUN",shortDe
1scription:"An open-world Springfield adventure that mixes driving, missions, collectibles, and cartoon chaos.",longDescription:"The Simpsons: Hit & Run puts Springfield in the driver's seat. Take on missions across the town, jump between familiar characters, collect coins, and tear through a cartoon open world in a roster of memorable vehicles.\n\nThis GameGhost page links to the supplied browser-hosted WebAssembly build. Because that build requires its own cross-origin-isolated browser context, Play opens the game from its original host in a new tab rather than attempting an unreliable embedded launch.",developer:"Radical Entertainment",publisher:"Vivendi Universal Games",releaseDate:"2003",tags:["Action","Racing","Open World","Driving","Cartoon","Browser"],metacriticScore:"N/A",trailerUrl:"",videoUrl2:"",screenshots:["/manus-storage/simpsons-hit-and-run-background-original_8f49a223.png"],staticReviews:[],minReqs:{os:"Windows 10 / macOS 12 / Linux",cpu:"Modern dual-core",ram:"4 GB",gpu:"WebGL2-capable GPU",storage:"Browser cache required"},recReqs:{os:"Windows 11 / macOS 14 / Linux",cpu:"Modern quad-core",ram:"8 GB",gpu:"Dedicated GPU recommended",storage:"Browser cache required"},coverImage:"/manus-storage/simpsons-hit-and-run-portrait-original_744ae34a.png",backgroundImage:"/manus-storage/simpsons-hit-and-run-background-original_8f49a223.png",keyFeatures:["Open-world Springfield driving and mission gameplay","Character-focused objectives and collectible routes","Browser-hosted WebAssembly buildâno local download required","Launches on the supplied original game host for compatibility"],esrb:{rating:"T",label:"Teen",descriptors:"Animated Violence, Comic Mischief"},gameUrl:"https://shar-wasm.cjoseph.workers.dev/?skipmovie",openInNewTab:!0},"baldurs-gate-2":{slug:"baldurs-gate-2",title:"Baldur's Gate II: Shadows of Amn",shortDescription:"Embark on an epic Dungeons & Dragons adventure in Baldur's Gate II: Shadows of Amn, a classic RPG masterpiece renowned for its deep story, tactical combat, and unforgettable characters.",longDescription:"Dive into the rich and expansive world of the Forgotten Realms in Baldur's Gate II: Shadows of Amn, the critically acclaimed role-playing game from BioWare. As the Bhaalspawn, you awaken imprisoned in the stronghold of the enigmatic mage Jon Irenicus, thrust into a dark tale of revenge, destiny, and self-discovery. Your journey will take you through the sprawling city of Athkatla, the treacherous Underdark, and beyond, encountering a diverse cast of companions, each with their own compelling stories and loyalties.\n\nExperience a truly immersive narrative where your choices shape the fate of your party and the world around you. Engage in deep, tactical real-time-with-pause combat, mastering a vast array of spells, abilities, and character classes based on the Advanced Dungeons & Dragons 2nd edition rules. Customize your party of up to six heroes, strategically combining their skills to overcome formidable foes and unravel intricate quests that can span hundreds of hours.\n\nBaldur's Gate II: Shadows of Amn is celebrated for its unparalleled storytelling, complex character development, and immense replayability. From epic battles against dragons and liches to poignant character interactions and moral dilemmas, every moment is crafted to draw you deeper into its legendary fantasy world. Prepare for an unforgettable odyssey that continues to define the RPG genre.",developer:"BioWare",publisher:"Interplay Entertainment",releaseDate:"September 21, 2000",tags:["RPG","Classic","Fantasy","Isometric","D&D","Story Rich","Party-Based","Real-Time with Pause","Old School","Singleplayer"],metacriticScore:"95 / 9.0",trailerUrl:"https://www.youtube.com/embed/XqJxqr6piuE",videoUrl2:"https://www.youtube.com/embed/nzty35c60FA",screenshots:["/manus-storage/bg2-screen1_099d1080.jpg","/manus-storage/bg2-screen2_7ae68d40.jpg","/manus-storage/bg2-screen3_0891330b.jpg","/manus-storage/bg2-screen4_30833ce5.png"],staticReviews:[{username:"RPG_Fanatic87",hours:350,rating:10,text:"Absolutely timeless. The story with Irenicus is gripping, the companions are unforgettable, and the sheer depth of quests and character customization keeps me coming back. Even after all these years, nothing quite compares to the tactical combat and rich world-building. A true masterpiece that every RPG enthusiast must experience.",date:"May 15, 2026",helpful:120},{username:"ShadowBlade",hours:280,rating:9,text:"Still holds up incredibly well. The narrative is epic, and the choices you make genuinely feel impactful. Exploring Athkatla and the Underdark is a blast, and the spell system is incredibly satisfying once you master it. My only minor gripe is that some inventory management can be clunky by modern standards, but it's a small price to pay for such an immersive adventure.",date:"Apr 28, 2026",helpful:85},{username:"DungeonMaster_Ken",hours:500,rating:10,text:"If you love D&D, this is your game. BioWare truly understood the essence of the Forgotten Realms. The character interactions are phenomenal, and Minsc and Boo are still my favorite duo. I've played through it countless times with different classes and always find something new. A monumental achievement in gam
1ing history.",date:"Mar 10, 2026",helpful:150},{username:"CasualGamerX",hours:75,rating:7,text:"It's a classic, no doubt, but it's definitely showing its age. The story is good and the tactical combat can be fun, but the graphics are very dated and the interface takes some getting used to. I found myself getting lost sometimes with the quest log. Still worth a play for its historical significance.",date:"Feb 20, 2026",helpful:30},{username:"LoreSeeker",hours:400,rating:10,text:"The narrative depth and character development in BG2 are unparalleled. Jon Irenicus is one of the most compelling villains ever written, and the exploration of the Bhaalspawn legacy is masterfully done. Every companion feels alive, with their own motivations and personal quests. This game set the standard for RPG storytelling.",date:"Jan 5, 2026",helpful:110},{username:"OldSchoolRPGfan",hours:600,rating:9,text:"Played this back in 2000 and it blew my mind. Replaying it now, and while some things haven't aged perfectly, the core game is still fantastic. The battles are challenging, requiring careful planning and spell usage. The world is vast and full of secrets. It respects your intelligence and rewards exploration.",date:"Dec 1, 2025",helpful:95}],minReqs:{os:"Windows 95/98",cpu:"Pentium II 233MHz",ram:"32 MB",gpu:"4 MB Video Card",storage:"800 MB"},recReqs:{os:"Windows 98/XP",cpu:"Pentium II 266MHz",ram:"64 MB",gpu:"8 MB Video Card",storage:"1.2 GB"},coverImage:"/bg2.png",backgroundImage:"https://files.manuscdn.com/user_upload_by_module/session_file/310519663128073169/zJRPwECCBRMtmsnd.png",keyFeatures:["Deep and expansive storyline with 200â300 hours of gameplay","Tactical real-time-with-pause combat based on AD&D 2nd Edition rules","Create and customize a party of up to six characters","Rich world-building set in the Forgotten Realms","Engaging companion interactions, romance, and personal questlines"],esrb:{rating:"T",label:"Teen",descriptors:"Animated Blood, Use of Alcohol and Tobacco, Violence"},gameUrl:"/api/games/baldurs-gate-streamcore",openInNewTab:!0,steamAppId:257350},"curse-of-monkey-island":{slug:"curse-of-monkey-island",title:"The Curse of Monkey Island",shortDescription:"The only pirate adventure that asks: what's sharper â your sword or your wit?",longDescription:"I've sailed the seas from Trinidad to Tortuga and I've never seen anything like it! The engagement ring I gave Elaine has a terrible pirate curse on it. LeChuck is behind it, I'm sure. I should have known that nothing good could come out of that evil zombie's treasures. And if that's not bad enough, the clairvoyant I met in the mangrove swamp told me that if I am to break the curse and save Elaine, I will have to die!\n\nEmbark on a swashbuckling adventure with Guybrush Threepwood in this highly anticipated third installment to LucasArts' legendary Monkey Island series. Experience a rich narrative filled with humor, challenging puzzles, and memorable characters that have defined the point-and-click adventure genre.\n\nWith film-quality animation, full voice acting from a stellar cast, and a captivating Caribbean soundtrack, the undead come to life before your very eyes. Dive into over 30 hours of classic point-and-click gameplay, featuring two difficulty settings including the 'Mega-Monkey' mode for extra puzzley goodness. Prepare your wit for new and improved insults suitable for swordfights and other fun occasions!",developer:"LucasArts",publisher:"LucasArts",releaseDate:"October 31, 1997",tags:["Point & Click","Adventure","Classic","Pirates","Comedy","Puzzle","Retro","Singleplayer","Cartoony","1990s"],metacriticScore:"89 / 8.9",trailerUrl:"https://www.youtube.com/embed/EHk37JTNc9k",videoUrl2:"https://www.youtube.com/embed/hwaSuzhcm-8",screenshots:["/manus-storage/mi-screen1_0a5bb2bd.jpg","/manus-storage/mi-screen2_021cacbf.png","/manus-storage/mi-screen3_ceaad323.png","/manus-storage/mi-screen4_13fe1635.png"],staticReviews:[{username:"PirateLord42",hours:50,rating:10,text:"This game is pure gold. The humor is top-notch, and the puzzles are just challenging enough to be satisfying without being frustrating. The insult sword fighting mechanic is still one of the most creative things I've ever seen in a game. LeChuck's voice acting alone is worth the price of admission.",date:"May 15, 2026",helpful:123},{username:"AdventureFanatic",hours:35,rating:9,text:"A true classic that holds up incredibly well. The art style is gorgeous â it looks like a Saturday morning cartoon come to life. The voice acting is phenomenal throughout. A must-play for any adventure game enthusiast, and a great entry point for newcomers to the series.",date:"Apr 28, 2026",helpful:87},{username:"GrogLover",hours:10,rating:7,text:"It's a good game, but some of the puzzles felt a bit obscure and required some lateral thinking that bordered on moon logic. The ending was also a little abrupt for my taste. Still, the journey getting there is a fun ride and the writing is genuinely funny.",date:"May 10, 2026",helpful:34},{username:"GuybrushFanboy",hours:100,rating:10,text:"My favorite Monkey Island game, full stop. The story, the characters, the music â it's all perfect. I replay this every few years and it never gets old. The way it balances comedy with genuine heart is something very few games manage. Guybrush and Elaine's relationship feels real.",date:"Mar 20, 2026",helpful:201},{username:"PointNClicker",hours:25,rating:9,text:"The animation and voice acting really bring the world to life in a way that still impresses today. The insult sword fighting is hilarious, and the plot keeps you hooked from start to finish. The Caribbean setting is rendered beautifully. Highly recommended for anyone who loves clever writing.",date:"Feb 5, 2026",helpful:65},{username:"RetroGamingPro",hours:8,rating:8,text:"I enjoyed the witty dialogue and colorful graphics. Some puzzles were tricky but overall a very charming and entertaining game. Great for a relaxed playthrough on a rainy afternoon. The music is absolutely fantastic â I still hum the main theme sometimes.",date:"Jan 18, 2026",helpful:42}],minReqs:{os:"Windows XP",cpu:"1 GHz Processor",ram:"256 MB",gpu:"DirectX 7 compatible",storage:"40 MB"},recReqs:{os:"Windows 10",cpu:"1.4 GHz Processor",ram:"512 MB",gpu:"DirectX 9 compatible",storage:"40 MB"},coverImage:"/monkey-island-cover.png",backgroundImage:"https://files.manuscdn.com/user_upload_by_module/session_file/310519663128073169/LLvFMMLsZxbfxwEt.png",keyFeatures:["Third installment in the legendary Monkey Island series","Film-quality animation, full voice acting, and an iconic Caribbean soundtrack","30+ hours of classic point-and-click gameplay","Two difficulty modes including the challenging 'Mega-Monkey' mode","New and improved insult sword fighting system"],esrb:{rating:"E",label:"Everyone",descriptors:"Comic Mischief, Mild Animated Violence"},gameUrl:"/api/games/monkey-island-streamcore",openInNewTab:!1,steamAppId:32430},"batman-arkham-knight":{slug:"batman-arkham-knight",title:"Batman: Arkham Knight",shortDe
1scription:"Batmanâ¢: Arkham Knight brings the award-winning Arkham trilogy from Rocksteady Studios to its epic conclusion. Introducing Rocksteady's uniquely designed Batmobile and the ultimate open-world Gotham City.",longDescription:"\"Be The Batman\" â Live the complete Batman experience as the Dark Knight enters the concluding chapter of Rocksteady's Arkham trilogy. Players will become The World's Greatest Detective like never before with the introduction of the Batmobile and enhancements to signature features such as FreeFlow Combat, stealth, forensics and navigation.\n\nThe Batmobile is brought to life with a completely new and original design featuring a distinct visual appearance and a full range of on-board high-tech gadgetry. Designed to be fully drivable throughout the game world and capable of transformation from high speed pursuit mode to military grade battle mode, this legendary vehicle sits at the heart of the game's design.\n\nBatman: Arkham Knight brings all-out war to Gotham City. At the mercy of Scarecrow, the fate of the city hangs in the balance as he is joined by the Arkham Knight â a completely new and original character in the Batman universe â as well as a huge roster of infamous villains including Harley Quinn, The Penguin, Two-Face and the Riddler.\n\nFor the first time, players have the opportunity to explore all of Gotham City in a completely open and free-roaming game world. More than five times the size of Batman: Arkham City, Gotham has been brought to life with the same level of intimate, hand-crafted attention to detail for which the Arkham games are known.",developer:"Rocksteady Studios",publisher:"WB Games",releaseDate:"June 23, 2015",tags:["Action","Open World","Superhero","Stealth","Singleplayer","Adventure","Crime","Third-Person","Combat","Story Rich"],metacriticScore:"87 / 8.2",trailerUrl:"https://www.youtube.com/embed/NGgRDKTfIA4",videoUrl2:"https://www.youtube.com/embed/dxa34RatmSc",screenshots:["/batman-arkham-city.jpg","/batman-cover-art.jpg"],staticReviews:[{username:"GothamKnight88",hours:120,rating:10,text:"Absolutely loved this game! The story was gripping, and finally getting to drive the Batmobile was a blast, even if some of the tank battles felt a bit much. The combat is still the best in the business, and gliding through Gotham never gets old. A true masterpiece and a fitting end to the Arkham saga.",date:"February 15, 2026",helpful:187},{username:"BatFanatic_X",hours:85,rating:8,text:"Great game overall, but the Batmobile sections were definitely overused. It felt forced at times, and detracted from the core Batman experience. Still, the character interactions and the overall atmosphere of Gotham were fantastic. Worth playing for the story alone.",date:"March 1, 2026",helpful:92}
1,{username:"StealthyShadow",hours:60,rating:6,text:"The stealth and combat are as solid as ever, but the story felt a bit predictable, and the open world, while beautiful, didn't always feel alive. The Batmobile was cool at first, but the constant forced usage got repetitive. A good game, but not the best Arkham.",date:"January 20, 2026",helpful:45},{username:"Riddler_Enigma",hours:150,rating:10,text:"Rocksteady truly outdid themselves with this one. The graphics are stunning, the combat is fluid, and the sheer amount of content kept me hooked for hours. The Batmobile is a game-changer, adding a new layer to exploration and combat. A must-play for any Batman fan!",date:"April 10, 2026",helpful:153},{username:"JokerzWild",hours:70,rating:8,text:"Solid game with an engaging story and great voice acting. The new villains were a nice touch, and the fear mechanics were well implemented. My only real complaint is the occasional framerate drops on PC, but it didn't ruin the experience for me. Highly recommend.",date:"May 5, 2026",helpful:78},{username:"ArkhamAddict",hours:95,rating:8,text:"The conclusion to the Arkham trilogy is epic! The scale of Gotham is impressive, and the combat is as satisfying as ever. While the Batmobile was a bit divisive, I personally enjoyed the variety it brought. A few minor bugs here and there, but nothing game-breaking. A strong entry in the series.",date:"March 22, 2026",helpful:112}],minReqs:{os:"Win 7 SP1 / Win 8.1 (64-bit)",cpu:"Intel Core i5-750 2.67 GHz | AMD Phenom II X4 965 3.4 GHz",ram:"6 GB RAM",gpu:"NVIDIA GTX 660 2GB | AMD Radeon HD 7870 2GB",storage:"45 GB"},recReqs:{os:"Win 7 SP1 / Win 8.1 (64-bit)",cpu:"Intel Core i7-3770 3.4 GHz | AMD FX-8350 4.0 GHz",ram:"8 GB RAM",gpu:"NVIDIA GTX 760 3GB | AMD Radeon HD 7950 3GB",storage:"55 GB"},coverImage:"/batman-cover-art.jpg",backgroundImage:"/batman-arkham-city.jpg",keyFeatures:["Be The Batman â the epic conclusion to Rocksteady's acclaimed Arkham trilogy","Fully drivable Batmobile with pursuit and military battle modes","Explore all of Gotham City â 5x larger than Arkham City","Signature FreeFlow Combat, stealth, and forensics systems refined to perfection","Massive roster of iconic villains including Scarecrow, Harley Quinn, and the Riddler"],esrb:{rating:"M",label:"Mature",descriptors:"Blood, Language, Suggestive Themes, Violence"},gameUrl:"",openInNewTab:!0,steamAppId:208650},stormgate:{slug:"stormgate",title:"Stormgate",shortDescription:"Stormgate is a free-to-play real-time strategy game where humanity defends Earth against demonic invaders and advanced alien factions. Command futuristic armies in epic battles across campaigns, co-op, and PvP.",longDescription:"Plunge into the heart of battle as the ultimate battlefield commander fighting for survival in a science fantasy universe, where Earth's fate hangs on the edge of oblivion.\n\nHuman defenders and their faithful robot allies stand defiant against two warring alien factions: a race of warlike demonic invaders and their technologically advanced angelic rivals. Together, these three are locked in a relentless struggle for dominance. Stormgate puts you in command of futuristic armies in epic real-time strategy battles.\n\nDive into the ultimate test of strategic warfare with three highly-asymmetric factions: the stalwart Human Vanguard, the relentless Infernal Host, or the highly-advanced Celestial Armada. Team up with friends and command legendary Heroes to conquer the challenging AI in co-op mode, or test your mettle on the global stage in a hero-free competitive ranked ladder.\n\nStormgate takes RTS gaming to new heights by harnessing the power of Unreal Engine 5, supercharged by proprietary SnowPlay technology. Globally distributed servers and advanced Rollback technology deliver silky smooth, stutter-free gameplay so you can focus entirely on defeating your opponents.",developer:"Frost Giant Studios",publisher:"Frost Giant Studios",releaseDate:"August 5, 2025",tags:["RTS","Base Building","Strategy","Multiplayer","War","eSports","Free to Play","Futuristic","Top-Down","PvP"],metacriticScore:"74 / 4.8",trailerUrl:"https://www.youtube.com/embed/dV1RXsmsdPk",videoUrl2:"https://www.youtube.com/embed/YD6T1wN0G4U",screenshots:["/stormgate.jpg","/stormgate-cover-
1art.jpg"],staticReviews:[{username:"RTS_Veteran",hours:120,rating:8,text:"Stormgate brings back the classic RTS feel I've been missing. The core gameplay is solid, and the factions feel distinct. While the early access had some rough edges, the recent updates have really improved the experience, especially the multiplayer. Still, the campaign monetization is a bit of a letdown.",date:"March 15, 2026",helpful:85},{username:"NoobSlayer99",hours:45,rating:4,text:"Honestly, I wanted to love this, but it just feels unfinished. The graphics are okay, but the unit pathing can be frustrating, and the balance feels off in PvP. It's hard to recommend when there are so many other polished RTS games out there. Hope they fix it soon.",date:"November 1, 2025",helpful:150},{username:"CasualGamerX",hours:75,rating:6,text:"The co-op mode is fun with friends, and the game has potential. However, the progression feels slow, and some of the UI elements are clunky. It's free-to-play, so it's worth trying, but don't expect a fully polished experience yet. I'm cautiously optimistic for the future.",date:"January 20, 2026",helpful:42},{username:"StrategyMaster",hours:200,rating:10,text:"This is the RTS revival we needed! The competitive scene is vibrant, and the depth of strategy is incredible. Frost Giant Studios clearly understands what makes an RTS great. I've sunk hundreds of hours into ranked play and can't get enough. Highly recommend for any serious RTS fan.",date:"April 10, 2026",helpful:190},{username:"PixelPusher",hours:15,rating:2,text:"Massive disappointment. The game feels like a cash grab with its monetization model, and the campaign is split into paid chapters. Performance issues are also a problem, even on a decent rig. It's a shame, as the concept had so much promise.",date:"July 28, 2025",helpful:112},{username:"RTSFanatic",hours:90,rating:6,text:"Stormgate has some genuinely good ideas, especially with the editor and the SnowPlay engine. However, it's still very much in development, and it shows. There's a lot of potential, but it needs more content and polish to truly shine. I'll keep an eye on it.",date:"September 5, 2025",helpful:67}],minReqs:{os:"Windows 10+ (64-bit)",cpu:"6 Cores, 2.3 GHz",ram:"16 GB RAM",gpu:"GeForce GTX 1060",storage:"15 GB"},recReqs:{os:"Windows 10+ (64-bit)",cpu:"8 Cores, 3 GHz",ram:"16 GB RAM",gpu:"GeForce RTX 2060",storage:"15 GB"},coverImage:"/stormgate-cover-art.jpg",backgroundImage:"/stormgate.jpg",keyFeatures:["Next-generation RTS powered by Unreal Engine 5 and SnowPlay technology","Three highly-asymmetric factions: Human Vanguard, Infernal Host, Celestial Armada","Story-driven Campaign with free prologue chapter","3-player co-op mode with legendary Heroes against challenging AI","Advanced, user-friendly Map Editor for custom game experiences"],esrb:{rating:"T",label:"Teen",descriptors:"Blood, Mild Language, Violence"},gameUrl:"",openInNewTab:!0,steamAppId:2012510},"arx-fatalis":{slug:"arx-fatalis",title:"Arx Fatalis",shortDescription:"A landmark first-person action RPG from Arkane Studios. Cast spells by drawing runes in the air, forge weapons, and unravel the mystery of a subterranean world â now running in your browser via WebAssembly and WebGL.",longDescription:"Arx Fatalis is set in a world where the sun has gone out. All civilisations have retreated underground, carving out vast subterranean kingdoms in the rock. You are a prisoner with no memory, thrust into the depths of Arx â a dungeon city teetering on the edge of annihilation as the demon god Akbaa gathers strength.\n\nWhat set Arx Fatalis apart in 2002 â and still does today â is its extraordinary interactivity. Spells are cast by drawing rune combinations in the air with your mouse. Food must be cooked over fires. Weapons can be forged at a smithy. Locks can be picked. Potions can be brewed. The world responds to your actions in ways few RPGs have matched before or since.\n\nArkane Studios, the studio that would later create the Dishonored and Prey series, poured their DNA into every corner of Arx Fatalis. The result is a deeply atmospheric, immersive sim that rewards curiosity and punishes carelessness. Explore the goblin warrens, the human city of Arx, the troll mines, the lich's lair, and the ice caves â each with their own factions, politics, and secrets.\n\nThis WebGL port (arxwasm) brings the full Arx Fatalis demo directly to your browser via Emscripten and WebAssembly. Game data is streamed from our CDN with ZSTD compression and cached locally after the first load â subsequent plays start almost instantly.",developer:"Arkane Studios",publisher:"JoWooD Productions",releaseDate:"November 18, 2002",tags:["Action RPG","First-Person","Dungeon Crawler","Immersive Sim","Classic","Fantasy","Singleplayer","Atmospheric","Magic","WebGL"],metacriticScore:"81 / 8.4",trailerUrl:"https://www.youtube.com/embed/kRGFMFLhMnk",videoUrl2:"https://www.youtube.com/embed/ot-
1MaFNFVh4",screenshots:["/manus-storage/arx-fatalis-bg_ae896a4e.png","/manus-storage/arx-fatalis-cover_bb46bf3d.png"],staticReviews:[{username:"DungeonCrawler_OG",hours:42,rating:9,text:"I played this when it first came out in 2002 and it blew my mind. The rune-drawing spell system is still one of the most creative magic systems in any RPG. Playing it in the browser now is surreal â it runs surprisingly well! The atmosphere is oppressive and brilliant.",date:"May 10, 2026",helpful:87},{username:"ImmersiveSim_Fan",hours:28,rating:10,text:"Arx Fatalis is the direct ancestor of Dishonored and Prey. You can see Arkane's DNA everywhere â the interconnected level design, the systemic interactions, the emphasis on player agency. If you love immersive sims, this is essential history. The WebGL port is impressive.",date:"April 22, 2026",helpful:134},{username:"RPG_Historian",hours:55,rating:9,text:"A criminally underrated gem. The world-building is exceptional â each faction underground has its own culture, architecture, and politics. The cooking, forging, and alchemy systems add a layer of depth that modern games rarely attempt. Highly recommended for patient RPG fans.",date:"March 15, 2026",helpful:62},{username:"ModernGamer2026",hours:8,rating:6,text:"I can see why people love this but the controls take some getting used to. Once you figure out the rune system it's genuinely cool. The dungeon atmosphere is great. Loading time on first play was about 3 minutes but after that it was instant â the caching works well.",date:"May 1, 2026",helpful:41},{username:"ArkaneStanAccount",hours:90,rating:10,text:"This is where it all started. Arkane's first game and already you can see the genius that would produce Dishonored. The level design is intricate, the story is surprisingly deep, and the magic system is still unmatched. The fact that it runs in a browser now is a miracle.",date:"February 8, 2026",helpful:156},{username:"RetroRPGReviewer",hours:35,rating:8,text:"Arx Fatalis deserves way more recognition. It came out the same year as Morrowind and got overshadowed, but it's a different kind of RPG â tighter, more focused, more systemic. The underground world feels genuinely claustrophobic and alive. A must-play for RPG enthusiasts.",date:"January 30, 2026",helpful:78}],minReqs:{os:"Windows 98/ME/2000/XP",cpu:"Pentium III 600MHz",ram:"128 MB",gpu:"32 MB DirectX 8 compatible",storage:"1.5 GB"},recReqs:{os:"Windows XP/Vista/7",cpu:"Pentium III 1GHz",ram:"256 MB",gpu:"64 MB DirectX 9 compatible",storage:"2 GB"},coverImage:"/manus-storage/arx-fatalis-cover_bb46bf3d.png",backgroundImage:"/manus-storage/arx-fatalis-bg_ae896a4e.png",keyFeatures:["Unique gesture-based magic system â draw runes in the air to cast spells","Deep systemic interactions: forge weapons, cook food, brew potions, pick locks","Richly atmospheric underground world with distinct factions and politics","Immersive first-person perspective with full physics and environmental interaction","WebGL port via Emscripten â runs in browser with ZSTD-compressed CDN streaming","IDBFS savegame persistence â your progress is saved between sessions"],esrb:{rating:"M",label:"Mature 17+",descriptors:"Blood and Gore, Violence"},gameUrl:"/api/games/arx-fatalis-streamcore",openInNewTab:!1,steamAppId:1700},fendershot:{slug:"fendershot",title:"FENDERSHOT",shortDescription:"Intense street racing with outrageous Race Techâ¢. Inspired by Blur, Midnight Club, and Need for Speed Underground.",longDescription:"FENDERSHOT is a fast-paced, arcade-style street racing demo built on WebGPU, delivering next-generation visuals directly in your browser. Take to the neon-lit streets and push your ride to the limit with explosive Race Tech⢠power-ups that can flip the outcome of any race in an instant.\n\nInspired by the golden era of arcade racers â Blur's chaotic combat, Midnight Club's open streets, and Need for Speed Underground's style-driven culture â FENDERSHOT captures the raw adrenaline of street racing with a modern twist. Drift through tight corners, slam rivals off the road, and master each track's unique layout to claim the top spot.\n\nThis is a demo build showcasing the core racing mechanics and WebGPU rendering pipeline. The full game will expand on the demo's foundation with more tracks, vehicles, customization options, and a full c
1areer mode.",developer:"ShotgunOnWheels",publisher:"ShotgunOnWheels",releaseDate:"2025 (Demo)",tags:["Racing","Arcade","WebGPU","Demo","Action","Multiplayer","Combat Racing","Street Racing","Fast-Paced","Indie"],metacriticScore:"N/A",trailerUrl:"https://www.youtube.com/embed/7IAYyGJZp44",videoUrl2:"",screenshots:["/manus-storage/fendershot-screen1_c6da6dc1.jpg","/manus-storage/fendershot-screen2_0123c604.jpg"],staticReviews:[{username:"NightRacer99",hours:4,rating:9,text:"Absolutely love the vibe â it feels like Blur reborn. The WebGPU rendering is stunning, especially the neon reflections on wet asphalt. Can't wait for the full game.",date:"May 20, 2026",helpful:34},{username:"DriftKingX",hours:6,rating:8,text:"Solid demo. The handling feels tight and the power-ups add a great chaotic element. Reminds me of late nights playing Midnight Club. More tracks please!",date:"May 18, 2026",helpful:27},{username:"SpeedFreak",hours:3,rating:9,text:"The fact this runs in a browser at this quality is insane. WebGPU is the real deal. The combat racing mechanics are fun and the music slaps.",date:"May 15, 2026",helpful:19},{username:"ArcadeVet",hours:5,rating:7,text:"Great foundation. The core racing loop is satisfying and the power-up system has real potential. Needs more content but as a demo it's impressive.",date:"May 12, 2026",helpful:15}],minReqs:{os:"Windows 10 / macOS 13 / Linux",cpu:"Intel Core i5-8400 / AMD Ryzen 5 2600",ram:"8 GB",gpu:"WebGPU-capable GPU (GTX 1060 / RX 580 or better)",storage:"N/A (browser-based)"},recReqs:{os:"Windows 11 / macOS 14 / Linux",cpu:"Intel Core i7-10700 / AMD Ryzen 7 3700X",ram:"16 GB",gpu:"RTX 3060 / RX 6700 XT or better",storage:"N/A (browser-based)"},coverImage:"/manus-storage/fendershot-cover_cdeee02a.jpg",backgroundImage:"/manus-storage/fendershot-gameplay_c350ab48.jpg",keyFeatures:["Explosive Race Tech⢠power-ups that can flip any race","WebGPU-powered rendering â next-gen visuals directly in your browser","Inspired by Blur, Midnight Club, and Need for Speed Underground","Fast-paced arcade handling with deep skill ceiling","Demo build â full game in development with more tracks, cars, and career mode"],esrb:{rating:"E10+",label:"Everyone 10+",descriptors:"Mild Fantasy Violence, Mild Language"},gameUrl:"https://html.itch.zone/html/17213405/FSDemoWeb/index.html",openInNewTab:!1,steamAppId:4197390},25:{title:"MODERN CLAUDEFARE",developer:"Vesper",publisher:"Vesper",releaseDate:"2025",tags:["Multiplayer","Online Co-op","FPS","Three.js","Browser","Free to Play"],slug:"modern-claudefare",metacriticScore:"N/A",trailerUrl:"",videoUrl2:"",screenshots:["/manus-storage/mcf-background_a6b21672.jpg"],shortDescription:"A browser-native multiplayer FPS built with Three.js. No install, no download â just open and play.",longDescription:"Modern Claudefare is a fan-made browser FPS that brings the feel of classic arena shooters directly to your browser tab. Built entirely with Three.js and WebGL, it runs at full speed with no installation required.\n\nHost a lobby for up to 4 players online with peer-to-peer networking and proximity voice chat, or drop into a solo bot match to warm up. Choose your loadout in the gunsmith, pick a camo, swap optics, and head into one of four iconic maps: Rust, Terminal, Highrise, and Nuketown.\n\nThe game features a full killcam system, medal callouts (First Blood, Triple Kill, Killionaire), kill streaks, team deathmatch and free-for-all modes, and full gamepad support. Bot AI scales from Recruit to Veteran difficulty.\n\nCreated by Vesper as a non-commercial fan tribute. All original Call of Duty rights belong to their respective holders.",staticReviews:[{username:"FragMaster3000",hours:12,rating:10,text:"I cannot believe this runs in a browser. The gunplay feels snappy, the maps are faithful, and the peer-to-peer voice chat actually works. This is the best browser FPS I've ever played, period.",date:"June 10, 2025",helpful:89},{username:"NostalgiaCamper",hours:8,rating:9,text:"Nuketown in the browser. That's it. That's the review. The fact that someone built this with Three.js is genuinely impressive â the lighting, the soldier animations, the killcam. Incredible work.",date:"June 15, 2025",helpful:67},{username:"CompetitiveCarl",hours:25,rating:8,text:"Really solid for a fan project. The gunsmith and camo system add a nice layer of customization. Bot AI on Veteran is actually challenging. Would love to see more maps added over time.",date:"July 2, 2025",helpful:44}
1,{username:"CasualShooterFan",hours:3,rating:9,text:"Jumped in expecting something janky and got a genuinely polished FPS. The controls feel tight, the maps look great, and the medal system is satisfying. Perfect for a quick session.",date:"July 20, 2025",helpful:31}],minReqs:{os:"Windows 10 / macOS 12 / Linux",cpu:"Any modern dual-core",ram:"4 GB",gpu:"WebGL2-capable GPU",storage:"N/A (browser-based)"},recReqs:{os:"Windows 11 / macOS 14 / Linux",cpu:"Intel Core i5 / AMD Ryzen 5",ram:"8 GB",gpu:"GTX 1060 / RX 580 or better",storage:"N/A (browser-based)"},coverImage:"/manus-storage/mcf-background_a6b21672.jpg",backgroundImage:"/manus-storage/mcf-background_a6b21672.jpg",keyFeatures:["Up to 4-player online multiplayer with peer-to-peer voice chat","Four maps: Rust, Terminal, Highrise, Nuketown","Full gunsmith â camos, optics, loadout customization","Killcam, medals, kill streaks, and bot AI (Recruit â Veteran)","Team Deathmatch and Free-for-All modes","Zero install â runs entirely in your browser via Three.js"],esrb:{rating:"T",label:"Teen",descriptors:"Violence, Blood"},gameUrl:"https://www.modernclaudefare.com/",openInNewTab:!1},26:{slug:"nitro-cross",title:"NITRO CROSS",shortDescription:"A precision trials motorcycle platformer built for the browser.",longDescription:"Nitro Cross is a physics-driven motorcycle platformer where clean control matters more than raw speed. Thread your bike through an industrial desert course of ramps, debris, and unstable terrain, then use throttle, braking, and body position to land every jump.\n\nThe game runs natively in the browser with a deterministic rigid-body simulation and Three.js renderer. Restart instantly from a checkpoint, refine each line, and push for the cleanest possible run.\n\nControls: W to throttle, S to brake, A to shift weight back, D to shift weight forward, and R to reset at the checkpoint.",developer:"Alex St. Louis",publisher:"Alex St. Louis",releaseDate:"2026",tags:["Platformer","Motorcycle","Physics","Trials","Browser","Precision"],metacriticScore:"N/A",trailerUrl:"",videoUrl2:"",screenshots:["/manus-storage/nitro-cross-portrait_afc298b8.jpg"],staticReviews:[],minReqs:{os:"Windows 10 / macOS 12 / Linux",cpu:"Any modern dual-core",ram:"4 GB",gpu:"WebGL-capable GPU",storage:"N/A (browser-based)"},recReqs:{os:"Windows 11 / macOS 14 / Linux",cpu:"Intel Core i5 / AMD Ryzen 5",ram:"8 GB",gpu:"GTX 1060 / RX 580 or better",storage:"N/A (browser-based)"},coverImage:"/manus-storage/nitro-cross-portrait_afc298b8.jpg",backgroundImage:"/manus-storage/nitro-cross-portrait_afc298b8.jpg",keyFeatures:["Responsive throttle, brake, and rider-weight controls","Deterministic rigid-body motorcycle physics","Industrial desert obstacle course built for precision lines","Instant checkpoint reset for rapid retries","Runs natively in the browser with Three.js rendering"],esrb:{rating:"E",label:"Everyone",descriptors:"Mild Fantasy Violence"},gameUrl:"/api/games/nitro-cross",openInNewTab:!1}
1,27:{slug:"brawlbots",title:"BRAWLBOTS",shortDescription:"A first-person arena shooter from Alex St. Louis, available through SimplyStream.",longDescription:"BrawlBots is a first-person shooter built around high-energy arena encounters on a harsh alien outpost. Battle through a moonlit sandscape framed by ancient industrial ruins and orbital architecture.\n\nThis GameGhost listing is the official project page for the game. Select Play to launch the current BrawlBots build through SimplyStream.",developer:"Alex St. Louis",publisher:"Alex St. Louis",releaseDate:"2026",tags:["FPS","Arena Shooter","Science Fiction","Browser","Coming Soon"],metacriticScore:"N/A",trailerUrl:"",videoUrl2:"",screenshots:["/manus-storage/brawlbots-background_32ebaf93.png"],staticReviews:[],minReqs:{os:"To be announced",cpu:"To be announced",ram:"To be announced",gpu:"To be announced",storage:"To be announced"},recReqs:{os:"To be announced",cpu:"To be announced",ram:"To be announced",gpu:"To be announced",storage:"To be announced"},coverImage:"/manus-storage/brawlbots-cover_5c964eba.png",backgroundImage:"/manus-storage/brawlbots-background_32ebaf93.png",keyFeatures:["First-person arena shooter gameplay","Alien desert arena and orbital-ruin setting","Official GameGhost project page for the upcoming browser build"],esrb:{rating:"RP",label:"Rating Pending",descriptors:"Rating Pending"},gameUrl:"https://simplystream.dev/b8eKhWMF",openInNewTab:!0}},D=["from-purple-700 to-purple-900","from-violet-700 to-indigo-900","from-fuchsia-700 to-purple-900","from-indigo-700 to-purple-900","from-pink-700 to-purple-900"];function P(e){return D[e.charCodeAt(0)%D.length]}function B({value:e,onChange:a}){const[s,r]=c.useState(0);return t.jsxs("div",{className:"flex items-center gap-1",children:[[1,2,3,4,5].map(i=>t.jsx("button",{type:"button",onClick:()=>a(i),onMouseEnter:()=>r(i),onMouseLeave:()=>r(0),className:"transition-transform hover:scale-110","aria-label":`Rate ${i} star${i>1?"s":""}`,children:t.jsx(R,{className:"w-7 h-7 transition-colors "+((s||e)>=i?"text-purple-400 fill-purple-400":"text-white/20")})},i)),e>0&&t.jsxs("span",{className:"ml-2 text-sm text-white/50",children:[e," / 5"]})]})}function F({review:e}){const[a,s]=c.useState(e.helpful),[r,i]=c.useState(!1),n=e.rating/2;return t.jsxs("div",{className:"bg-white/[0.04] border border-white/10 rounded-xl p-5 flex flex-col gap-3 hover:border-purple-500/20 transition-colors",children:[t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:`w-10 h-10 rounded-full bg-gradient-to-br ${P(e.username)} flex items-center justify-center text-white font-bold text-sm flex-shrink-0 border border-white/10`,children:e.username.charAt(0).toUpperCase()}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white font-semibold text-sm",children:e.username}),t.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[t.jsx(y,{className:"w-3 h-3 text-white/40"}),t.jsxs("span",{className:"text-white/40 text-xs",children:[e.hours.toLocaleString()," hrs on record"]})]})]})]}),t.jsxs("div",{className:"flex flex-col items-end gap-1.5",children:[t.jsxs("div",{className:"flex items-center gap-0.5",children:[[1,2,3,4,5].map(e=>t.jsx(R,{className:"w-3.5 h-3.5 "+(n>=e?"text-purple-400 fill-purple-400":"text-white/15")},e)),t.jsx("span",{className:"ml-1 text-xs text-white/40",children:n.toFixed(1)})]}),t.jsx("span",{className:"text-white/35 text-xs",children:e.date})]})]}),t.jsx("p",{className:"text-white/70 text-base leading-relaxed",children:e.text}),t.jsxs("div",{className:"flex items-center gap-3 pt-2 border-t border-white/10",children:[t.jsx("span",{className:"text-white/35 text-xs",children:"Was this helpful?"}),t.jsxs("button",{onClick:()=>{r||(s(e=>e+1),i(!0))},className:"flex items-center gap-1.5 text-xs px-3 py-1 rounded-lg transition-all "+(r?"bg-purple-500/20 text-purple-300 border border-purple-500/40":"bg-white/5 text-white/50 border border-white/10 hover:bg-white/10 hover:text-white/80"),children:[t.jsx(I,{className:"w-3 h-3"}),"Yes (",a,")"]})]})]})}function U({review:e,onEdit:a,onDelete:s,onVote:r}){const i=e.authorName??"Anonymous";return t.jsxs("div",{className:"bg-white/[0.04] border rounded-xl p-5 flex flex-col gap-3 transition-colors "+(e.isOwn?"border-purple-500/40 bg-purple-500/[0.04]":"border-white/10 hover:border-purple-500/20"),children:[e.isOwn&&t.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-purple-300 font-medium",children:[t.jsx(g,{className:"w-3.5 h-3.5"}),"Your review"]}),t.jsxs("div",{className:"flex items-start justify-between gap-3",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:`w-10 h-10 rounded-full bg-gradient-to-br ${P(i)} flex items-center justify-center text-white font-bold text-sm flex-shrink-0 border border-white/10`,children:i.charAt(0).toUpperCase()}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white font-semibold text-sm",children:i}),t.jsx("div",{className:"text-white/35 text-xs mt-0.5",children:(n=e.createdAt,new Date(n).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}))})]})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("div",{className:"flex items-center gap-0.5",children:[[1,2,3,4,5].map(a=>t.jsx(R,{className:"w-3.5 h-3.5 "+(e.rating>=a?"text-purple-400 fill-purple-400":"text-white/15")},a)),t.jsxs("span",{className:"ml-1 text-xs text-white/40",children:[e.rating," / 5"]})]}),e.isOwn&&t.jsxs("div",{className:"flex items-center gap-1 ml-1",children:[t.jsx("button",{onClick:()=>a(e),className:"w-7 h-7 rounded-lg bg-white/5 hover:bg-purple-500/20 flex items-center justify-center text-white/40 hover:text-purple-300 transition-colors",title:"Edit review",children:t.jsx(T,{className:"w-3.5 h-3.5"})}),t.jsx("button",{onClick:()=>s(e.id),className:"w-7 h-7 rounded-lg bg-white/5 hover:bg-red-500/20 flex items-center justify-center text-white/40 hover:text-red-400 transition-colors",title:"Delete review",children:t.jsx(x,{className:"w-3.5 h-3.5"})})]})]})]}),t.jsx("p",{className:"text-white/70 text-base leading-relaxed",children:e.reviewText}),t.jsxs("div",{className:"flex items-center gap-3 pt-2 border-t border-white/10",children:[t.jsx("span",{className:"text-white/35 text-xs",children:"Was this helpful?"}),t.jsxs("button",{onClick:()=>r(e.id),disabled:e.isOwn,className:"flex items-center gap-1.5 text-xs px-3 py-1 rounded-lg transition-all disabled:opacity-40 disabled:cursor-not-allowed "+(e.hasVotedHelpful?"bg-purple-500/20 text-purple-300 border border-purple-500/40":"bg-white/5 text-white/50 border border-white/10 hover:bg-white/10 hover:text-white/80"),children:[t.jsx(I,{className:"w-3 h-3"}),"Yes (",e.helpfulCount,")"]})]})]});var n}function W({gameSlug:e,editingReview:a,onSuccess:s,onCancelEdit:r}){const i=l.useUtils(),[n,o]=c.useState(a?.rating??0),[m,u]=c.useState(a?.reviewText??""),g=l.gameReview.submitReview.useMutation({onSuccess:()=>{d.success("Review submitted! Your review is now live."),i.gameReview.getReviews.invalidate({gameSlug:e}),o(0),u(""),s()},onError:e=>{d.error(`Could not submit: ${e.message}`)}}),b=l.gameReview.editReview.useMutation({onSuccess:()=>{d.success("Review updated!"),i.gameReview.getReviews.invalidate({gameSlug:e}),s(),r()},onError:e=>{d.error(`Could not update: ${e.message}`)}}),x=null!==a,f=g.isPending||b.isPending;return t.jsxs("div",{className:"rounded-xl border border-purple-500/30 bg-purple-500/[0.04] p-5 flex flex-col gap-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx("h3",{className:"text-white font-bold text-base",children:x?"Edit Your Review":"Write a Review"}),x&&t.jsx("button",{onClick:r,className:"text-white/40 hover:text-white/70 text-xs transition-colors",children:"Cancel"})]}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white/50 text-xs mb-2 uppercase tracking-wider",children:"Your Rating"}),t.jsx(B,{value:n,onChange:o})]}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white/50 text-xs mb-2 uppercase tracking-wider",children:"Your Review"}),t.jsx(p,{value:m,onChange:e=>u(e.target.value),placeholder:"Share your experience with this game...",className:"bg-white/5 border-white/15 text-white placeholder:text-white/30 focus:border-purple-500/60 resize-none min-h-[100px] text-base",maxLength:2e3}),t.jsxs("div",{className:"text-white/25 text-xs mt-1 text-right",children:[m.length," / 2000"]})]}),t.jsxs(h,{onClick:()=>{0!==n?m.trim().length<10?d.error("Review too short â write at least 10 characters."):x?b.mutate({reviewId:a.id,rating:n,reviewText:m.trim()}):g.mutate({gameSlug:e,rating:n,reviewText:m.trim()}):d.error("Please select a star rating")},disabled:f,className:"self-start bg-gradient-to-r from-purple-600 to-purple-700 hover:from-purple-500 hover:to-purple-600 text-white font-semibold px-6 h-10 rounded-lg shadow-lg shadow-purple-900/40 transition-all",children:[t.jsx(S,{className:"w-4 h-4 mr-2"}),f?"Submitting...":x?"Update Review":"Submit Review"]})]})}function E({screenshots:e,trailerUrl:a,videoUrl2:s}){const[r,i]=c.useState(0),n=[{type:"video",url:a,label:"Official Trailer"},{type:"video",url:s,label:"Gameplay"},...e.map((e,t)=>({type:"image",url:e,label:`Screenshot ${t+1}`}))],o=n[r];return t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsxs("div",{className:"relative w-full rounded-xl overflow-hidden group bg-black shadow-2xl shadow-black/60",style:{aspectRatio:"16/9"},children:["video"===o.type?t.jsx("iframe",{src:o.url,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0},o.url):t.jsx("img",{src:o.url,alt:o.label,className:"w-full h-full object-contain bg-black"}),t.jsx("button",{onClick:()=>i(e=>0===e?n.length-1:e-1),className:"absolute left-3 top-1/2 -translate-y-1/2 w-10 h-10 bg-black/70 hover:bg-purple-700/80 rounded-full flex items-center justify-center text-white opacity-0 group-hover:opacity-100 transition-all border border-white/10",children:t.jsx(w,{className:"w-5 h-5"})}),t.jsx("button",{onClick:()=>i(e=>e===n.length-1?0:e+1),className:"absolute right-3 top-1/2 -translate-y-1/2 w-10 h-10 bg-black/70 hover:bg-purple-700/80 rounded-full flex items-center justify-center text-white opacity-0 group-hover:opacity-100 transition-all border border-white/10",children:t.jsx(b,{className:"w-5 h-5"})}),t.jsx("div",{className:"absolute bottom-3 left-3 bg-black/60 backdrop-blur-sm text-white/70 text-xs px-2.5 py-1 rounded-full border border-white/10",children:o.label})]}),t.jsx("div",{className:"flex gap-2 overflow-x-auto pb-1",children:n.map((e,a)=>t.jsx("button",{onClick:()=>i(a),className:"relative flex-shrink-0 w-28 h-16 rounded-lg overflow-hidden border-2 transition-all "+(a===r?"border-purple-500 shadow-lg shadow-purple-500/30":"border-white/10 hover:border-purple-400/50 opacity-60 hover:opacity-100"),children:"video"===e.type?t.jsxs("div",{className:"w-full h-full bg-[#0d0d1a] flex flex-col items-center justify-center gap-1",children:[t.jsx(u,{className:"w-5 h-5 text-purple-400"}),t.jsx("span",{className:"text-[9px] text-white/50",children:e.label})]}):t.jsx("img",{src:e.url,alt:e.label,className:"w-full h-full object-cover"})},a))})]})}function z({label:e,reqs:a}){const s=[{icon:t.jsx(f,{className:"w-3.5 h-3.5"}),key:"OS",val:a.os},{icon:t.jsx(v,{className:"w-3.5 h-3.5"}),key:"Processor",val:a.cpu},{icon:t.jsx(N,{className:"w-3.5 h-3.5"}),key:"Memory",val:a.ram},{icon:t.jsx(f,{className:"w-3.5 h-3.5"}),key:"Graphics",val:a.gpu},{icon:t.jsx(k,{className:"w-3.5 h-3.5"}),key:"Storage",val:a.storage}];return t.jsxs("div",{className:"flex-1 min-w-[200px]",children:[t.jsx("div",{className:"text-white font-semibold text-sm mb-3 pb-2 border-b border-white/10",children:e}),t.jsx("div",{className:"flex flex-col gap-2.5",children:s.map(e=>t.jsxs("div",{className:"flex gap-2",children:[t.jsx("span",{className:"text-purple-400/70 mt-0.5 flex-shrink-0",children:e.icon}),t.jsxs("div",{children:[t.jsxs("span",{className:"text-white/40 text-sm font-medium",children:[e.key,": "]}),t.jsx("span",{className:"text-white/75 text-sm",children:e.val})]})]},e.key))})]})}function q(){const[,e]=i("/store/:slug"),[,a]=n(),{isAuthenticated:s}=o(),r=l.useUtils(),p=e?.slug??"",b=C[p],[x,f]=c.useState(null),[y,v]=c.useState(!1),{data:k,isLoading:N}=l.gameReview.getReviews.useQuery({gameSlug:p},{enabled:!!p}),T=k?.reviews??[],S=null!=k?.userReviewId,I=l.gameReview.voteHelpful.useMutation({onSuccess:()=>r.gameReview.getReviews.invalidate({gameSlug:p}),onError:e=>d.error(`Could not vote: ${e.message}`)}),M=l.gameReview.deleteReview.useMutation({onSuccess:()=>{d.success("Review deleted"),r.gameReview.getReviews.invalidate({gameSlug:p})},onError:e=>d.error(`Could not delete: ${e.message}`)}),D=c.useMemo(()=>[...b?.staticReviews.map(e=>e.rating/2)??[],...T.map(e=>e.rating)],[b,T]);if(!b)return t.jsx("div",{className:"min-h-screen bg-[#0a0a14] flex items-center justify-center",children:t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"text-white text-2xl font-bold mb-2",children:"Game not found"}),t.jsx(h,{onClick:()=>a("/"),className:"mt-4 bg-purple-700 hover:bg-purple-600 text-white border-0",children:"Back to Portal"})]})});const P=D.length,B=P>0?(D.reduce((e,t)=>
1e+t,0)/P).toFixed(1):"0.0",q=D.filter(e=>e>=4).length,L=P>0?Math.round(q/P*100):0,H=L>=95?"Overwhelmingly Positive":L>=80?"Very Positive":L>=70?"Mostly Positive":"Mixed";return t.jsxs("div",{className:"min-h-screen text-white",style:{background:"linear-gradient(180deg, #0a0a14 0%, #0d0d1e 100%)",fontFamily:"'Inter', 'Segoe UI', sans-serif"},children:[t.jsx("div",{className:"sticky top-0 z-50 border-b border-white/10",style:{background:"rgba(10,10,20,0.92)",backdropFilter:"blur(12px)"},children:t.jsxs("div",{className:"max-w-[1100px] mx-auto px-6 h-14 flex items-center gap-4",children:[t.jsxs("button",{onClick:()=>a("/"),className:"flex items-center gap-2 text-white/60 hover:text-white transition-colors text-sm font-medium group",children:[t.jsx(w,{className:"w-4 h-4 group-hover:-translate-x-0.5 transition-transform"}),"Back to GameGhost"]}),t.jsx("div",{className:"h-4 w-px bg-white/15"}),t.jsxs("span",{className:"text-white/40 text-sm truncate",children:["Store ⺠",b.title]})]})}),t.jsxs("div",{className:"relative w-full h-64 md:h-80 bg-cover bg-center",style:{backgroundImage:`url(${b.backgroundImage})`},children:[t.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(to bottom, rgba(10,10,20,0.3) 0%, rgba(10,10,20,0.7) 60%, rgba(10,10,20,1) 100%)"}}),t.jsx("div",{className:"absolute inset-0",style:{background:"linear-gradient(to right, rgba(88,28,135,0.25) 0%, transparent 40%, transparent 60%, rgba(88,28,135,0.25) 100%)"}}),t.jsxs("div",{className:"absolute bottom-0 left-0 right-0 max-w-[1100px] mx-auto px-6 pb-8 flex items-end gap-6",children:[t.jsx("img",{src:b.coverImage,alt:b.title,className:"w-24 h-24 md:w-32 md:h-32 rounded-xl object-cover shadow-2xl border border-white/10 flex-shrink-0"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("h1",{className:"text-white text-3xl md:text-4xl font-bold leading-tight tracking-tight drop-shadow-lg",children:b.title}),t.jsx("p",{className:"text-white/60 text-base mt-2 line-clamp-2 max-w-2xl",children:b.shortDe
1scription})]})]})]}),t.jsx("div",{className:"max-w-[1100px] mx-auto px-6 py-10",children:t.jsxs("div",{className:"flex flex-col lg:flex-row gap-10",children:[t.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-10",children:[t.jsx(E,{screenshots:b.screenshots,trailerUrl:b.trailerUrl,videoUrl2:b.videoUrl2}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-white text-xl font-bold mb-4 pb-3 border-b border-white/10 tracking-wide",children:"About This Game"}),t.jsx("div",{className:"text-white/70 text-base leading-relaxed space-y-5",children:b.longDescription.split("\n\n").map((e,a)=>t.jsx("p",{children:e},a))})]}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-white text-xl font-bold mb-4 pb-3 border-b border-white/10 tracking-wide",children:"Key Features"}),t.jsx("ul",{className:"space-y-3",children:b.keyFeatures.map((e,a)=>t.jsxs("li",{className:"flex items-start gap-3 text-base text-white/70",children:[t.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-purple-400 mt-2.5 flex-shrink-0"}),e]},a))})]}),t.jsxs("section",{children:[t.jsxs("div",{className:"flex items-center justify-between mb-5 pb-3 border-b border-white/10",children:[t.jsx("h2",{className:"text-white text-xl font-bold tracking-wide",children:"Player Reviews"}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[[1,2,3,4,5].map(e=>t.jsx(R,{className:"w-4 h-4 "+(parseFloat(B)>=e?"text-purple-400 fill-purple-400":"text-white/20")},e)),t.jsxs("span",{className:"text-white/60 text-sm ml-1",children:[B," / 5"]})]}),t.jsx("div",{className:"h-4 w-px bg-white/15"}),t.jsx("span",{className:"text-purple-300 text-sm font-semibold",children:H}),t.jsxs("span",{className:"text-white/40 text-xs",children:["(",L,"%)"]})]})]}),T.length>0&&t.jsxs("div",{className:"flex flex-col gap-4 mb-6",children:[t.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[t.jsx("div",{className:"h-px flex-1 bg-white/10"}),t.jsx("span",{className:"text-white/30 text-xs uppercase tracking-widest px-2",children:"Community Reviews"}),t.jsx("div",{className:"h-px flex-1 bg-white/10"})]}),T.map(e=>t.jsx(U,{review:e,onEdit:e=>{f(e),v(!0)},onDelete:e=>M.mutate({reviewId:e}),onVote:e=>I.mutate({reviewId:e})},e.id))]}),t.jsxs("div",{className:"flex flex-col gap-4",children:[T.length>0&&t.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[t.jsx("div",{className:"h-px flex-1 bg-white/10"}),t.jsx("span",{className:"text-white/30 text-xs uppercase tracking-widest px-2",children:"Featured Reviews"}),t.jsx("div",{className:"h-px flex-1 bg-white/10"})]}),b.staticReviews.map((e,a)=>t.jsx(F,{review:e},a))]}),t.jsx("div",{className:"mt-8",children:s?S&&!y?t.jsxs("div",{className:"rounded-xl border border-purple-500/20 bg-purple-500/[0.03] p-4 flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-2 text-white/60 text-sm",children:[t.jsx(g,{className:"w-4 h-4 text-purple-400"}),"You've already reviewed this game"]}),t.jsx("button",{onClick:()=>{const e=T.find(e=>e.isOwn);e&&(f(e),v(!0))},className:"text-purple-300 hover:text-purple-200 text-sm font-medium transition-colors",children:"Edit review"})]}):y||!S?t.jsx(W,{gameSlug:p,editingReview:x,onSuccess:()=>{v(!1),f(null)},onCancelEdit:()=>{v(!1),f(null)}}):null:t.jsxs("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] p-6 flex flex-col items-center gap-3 text-center",children:[t.jsx("div",{className:"text-white/60 text-base",children:"Sign in to write a review"}),t.jsxs(h,{onClick:()=>window.location.href=m(),className:"bg-gradient-to-r from-purple-600 to-purple-700 hover:from-purple-500 hover:to-purple-600 text-white font-semibold px-6 h-10 rounded-lg",children:[t.jsx(j,{className:"w-4 h-4 mr-2"}),"Sign In"]})]})})]}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-white text-xl font-bold mb-5 pb-3 border-b border-white/10 tracking-wide",children:"System Requirements"}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-8 rounded-xl p-6 border border-white/10",style:{background:"rgba(255,255,255,0.03)"},children:[t.jsx(z,{label:"Minimum",reqs:b.minReqs}),t.jsx("div",{className:"w-px bg-white/10 hidden sm:block"}),t.jsx(z,{label:"Recommended",reqs:b.recReqs})]})]})]}),t.jsxs("div",{className:"lg:w-72 flex-shrink-0 flex flex-col gap-4",children:[t.jsxs(h,{onClick:()=>{b.openInNewTab?window.open(b.gameUrl,"_blank"):a(`/?game=${b.slug}&launch=1`)},className:"w-full h-14 bg-gradient-to-r from-purple-600 via-purple-700 to-purple-800 hover:from-purple-500 hover:via-purple-600 hover:to-purple-700 text-white font-bold text-base rounded-xl shadow-lg shadow-purple-900/50 transition-all hover:scale-[1.02] tracking-widest",children:[t.jsx(u,{className:"w-5 h-5 mr-2 fill-white"}),"PLAY NOW â FREE"]}),b.steamAppId&&t.jsx("a",{href:`https://store.steampowered.com/app/${b.steamAppId}`,target:"_blank",rel:"noopener noreferrer",className:"block",children:t.jsxs("button",{className:"w-full h-12 flex items-center justify-center gap-2.5 rounded-xl border-2 transition-all hover:scale-[1.02] font-bold text-sm tracking-widest",style:{background:"rgba(27,40,56,0.7)",borderColor:"rgba(76,107,138,0.7)",color:"#c7d5e0"},onMouseEnter:e=>{e.currentTarget.style.background="rgba(27,40,56,0.95)",e.currentTarget.style.borderColor="rgba(76,107,138,1)",e.currentTarget.style.color="#ffffff"},onMouseLeave:e=>{e.currentTarget.style.background="rgba(27,40,56,0.7)",e.currentTarget.style.borderColor="rgba(76,107,138,0.7)",e.currentTarget.style.color="#c7d5e0"},children:[t.jsx("svg",{className:"w-5 h-5 flex-shrink-0",viewBox:"0 0 24 24",fill:"
1currentColor",xmlns:"http://www.w3.org/2000/svg",children:t.jsx("path",{d:"M11.979 0C5.678 0 .511 4.86.022 11.037l6.432 2.658c.545-.371 1.203-.59 1.912-.59.063 0 .125.004.188.006l2.861-4.142V8.91c0-2.495 2.028-4.524 4.524-4.524 2.494 0 4.524 2.031 4.524 4.527s-2.03 4.525-4.524 4.525h-.105l-4.076 2.911c0 .052.004.105.004.159 0 1.875-1.515 3.396-3.39 3.396-1.635 0-3.016-1.173-3.331-2.727L.436 15.27C1.862 20.307 6.486 24 11.979 24c6.627 0 11.999-5.373 11.999-12S18.605 0 11.979 0zM7.54 18.21l-1.473-.61c.262.543.714.999 1.314 1.25 1.297.539 2.793-.076 3.332-1.375.263-.63.264-1.319.005-1.949s-.75-1.121-1.377-1.383c-.624-.26-1.29-.249-1.878-.03l1.523.63c.956.4 1.409 1.497 1.009 2.455-.397.957-1.497 1.41-2.455 1.012H7.54zm11.415-9.303c0-1.662-1.353-3.015-3.015-3.015-1.665 0-3.015 1.353-3.015 3.015 0 1.665 1.35 3.015 3.015 3.015 1.663 0 3.015-1.35 3.015-3.015zm-5.273-.005c0-1.252 1.013-2.266 2.265-2.266 1.249 0 2.266 1.014 2.266 2.266 0 1.251-1.017 2.265-2.266 2.265-1.252 0-2.265-1.014-2.265-2.265z"})}),"PURCHASE ON STEAM"]})}),t.jsxs("div",{className:"rounded-xl p-4 border border-white/10",style:{background:"rgba(255,255,255,0.04)"},children:[t.jsx("div",{className:"text-white/40 text-xs uppercase tracking-widest mb-3",children:"Overall Rating"}),t.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[t.jsx("span",{className:"text-5xl font-black text-white",children:B}),t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsx("div",{className:"flex gap-0.5",children:[1,2,3,4,5].map(e=>t.jsx(R,{className:"w-5 h-5 "+(parseFloat(B)>=e?"text-purple-400 fill-purple-400":"text-white/15")},e))}),t.jsxs("span",{className:"text-white/40 text-xs",children:[P," reviews"]})]})]}),t.jsx("div",{className:"text-purple-300 text-sm font-semibold",children:H}),t.jsxs("div",{className:"text-white/35 text-xs mt-0.5",children:[L,"% positive"]})]}),t.jsxs("div",{className:"rounded-xl p-4 border border-white/10",style:{background:"rgba(255,255,255,0.04)"},children:[t.jsx("div",{className:"text-white/40 text-xs uppercase tracking-widest mb-3",children:"Metacritic"}),t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:"w-14 h-14 rounded-xl bg-purple-600/20 border-2 border-purple-500/60 flex items-center justify-center flex-shrink-0",children:t.jsx("span",{className:"text-purple-300 text-2xl font-black",children:b.metacriticScore.split(" / ")[0]})}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white text-sm font-semibold",children:"Critic Score"}),t.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[t.jsx(R,{className:"w-3.5 h-3.5 text-purple-400 fill-purple-400"}),t.jsxs("span",{className:"text-white/50 text-sm",children:[b.metacriticScore.split(" / ")[1]," user score"]})]})]})]})]}),t.jsxs("div",{className:"rounded-xl p-4 border border-white/10",style:{background:"rgba(255,255,255,0.04)"},children:[t.jsx("div",{className:"text-white/40 text-xs uppercase tracking-widest mb-3",children:"Game Details"}),t.jsx("div",{className:"space-y-2.5",children:[{label:"Developer",val:b.developer},{label:"Publisher",val:b.publisher},{label:"Release Date",val:b.releaseDate}].map(({label:e,val:a})=>t.jsxs("div",{className:"text-sm",children:[t.jsxs("span",{className:"text-white/40",children:[e,": "]}),t.jsx("span",{className:"text-white/80",children:a})]},e))})]}),t.jsxs("div",{className:"rounded-xl p-4 border border-white/10",style:{background:"rgba(255,255,255,0.04)"},children:[t.jsx("div",{className:"text-white/40 text-xs uppercase tracking-widest mb-3",children:"Content Rating"}),t.jsxs("div",{className:"flex items-start gap-3",children:[t.jsx("div",{className:"w-10 h-12 bg-black border border-white/20 rounded flex items-center justify-center flex-shrink-0",children:t.jsx("span",{className:"text-white font-black text-lg leading-none",children:b.esrb.rating})}),t.jsxs("div",{children:[t.jsx("div",{className:"text-white text-sm font-semibold",children:b.esrb.label}),t.jsx("div",{className:"text-white/40 text-xs mt-1 leading-relaxed",children:b.esrb.descriptors})]})]})]}),t.jsxs("div",{className:"rounded-xl p-4 border border-white/10",style:{background:"rgba(255,255,255,0.04)"},children:[t.jsxs("div",{className:"flex items-center gap-1.5 text-white/40 text-xs uppercase tracking-widest mb-3",children:[t.jsx(A,{className:"w-3.5 h-3.5"}),"Tags"]}),t.jsx("div",{className:"flex flex-wrap gap-1.5",children:b.tags.map(e=>t.jsx(G,{variant:"outline",className:"text-xs border-white/15 text-white/50 hover:border-purple-400/60 hover:text-purple-300 cursor-pointer transition-colors bg-transparent px-2 py-0.5",children:e},e))})]})]})]})})]})}export{q as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.