{"version":3,"file":"platform_data.CFqB1kDJ.mjs","names":["p","c","useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/HdrdCHHUhNHDTUovnC3q/oI3D62GxznHV1RTUWLr2/platform_data.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * PlatformData — edgegap.com/platform/platform-data\n *\n * Full page. Sits between the native Framer header and footer.\n * Server-side rendered by Framer, so every number is in the served HTML.\n *\n * Frame: Width Fill, NO max width (changed 2026-10-21). The component draws\n * the full-bleed hero band and sticky jump nav itself, and caps its content\n * column at 1050. Styled to the Edgegap design system, info tier.\n *\n * ── CONTENT RULE ────────────────────────────────────────────────────────────\n * Every value and methodology sentence comes from the Session 1 foundation doc.\n * Pricing figures come from the live pricing page. Cost scenarios are MODELLED\n * with the public calculator and labelled as such. Nothing is written fresh.\n *\n * ── DON'T BREAK THESE ───────────────────────────────────────────────────────\n * 1. Methodology and citations stay native <details>. Collapsed content is in\n *    the served HTML and is read by crawlers; a JS accordion is not. This is\n *    the reason the page exists.\n * 2. The JSON-LD is GENERATED from the metric arrays below (see buildGraph).\n *    Edit the arrays and the markup follows. Do not reintroduce a hand-kept\n *    copy in Page Settings — two sources of truth is how the numbers drift.\n * 3. Keep data-metric-value / data-metric-unit and the per-metric id anchors —\n *    the citation URLs point at them.\n * 4. Keep useHashOpen, the skip link, and <time dateTime> on every date.\n * 5. There is no copy-to-clipboard control, by decision: clipboard JS is\n *    invisible to crawlers and to LLM retrieval, and carries no ranking or\n *    citation signal. The asset is the citation SENTENCE, rendered as text in\n *    the \"Citing this data\" section. Keep those sentences in the DOM.\n * 6. Each citation ends in a \"source\" link, not a bare URL. The href is in the\n *    HTML and survives markdown conversion as [source](url), so retrieval still\n *    gets the address. The full URL per metric is also in the JSON-LD.\n * 7. \"Metrics only\" is for reusing this component on other pages. It drops the\n *    nav, hero, cost, results and citing blocks AND the JSON-LD — a reused\n *    instance must not publish a Dataset for a URL it is not on. Exactly one\n *    instance per site should have it off.\n * 8. LOCALIZATION: every visible string is a String property (see TEXT). Never\n *    hard-code English in the JSX — add an entry with add() and read it with\n *    t(). Keys are the translation identity: reword freely, never rename.\n *    \"[text]\" in a string is a link, \"{date}\" is a <time>, \"*text*\" is the\n *    highlighted word (blue in H2s, gradient in the H1, green pill in the\n *    savings line); translators keep all three. Missing stars just means no\n *    highlight, never broken text.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */const OPEN_ITEMS=[\"As-of date for 615+ locations, and confirmation the count deduplicates by site\",\"Availability: check interval and vantage points, to match Gameye's disclosure\",\"Shipped titles: cleared list, plus dates for the Drift.io and WOLF qualifiers\",\"AAA case study: confirm the '95% improvement' copy is no longer live\",\"Cost scenarios: calculator runs for 3 more profiles\",\"Item 3 of the 2026-09-19 review — parked, to discuss separately\",\"Confirm the AWS GameLift (Gen6) list-pricing date used in the comparison\",\"Case-study cover art: drop 500\\xd7300 crops into the Case covers slot\"];// ─── STYLE ──────────────────────────────────────────────────────────────────\nconst CSS=`\n.pd{\n--ink:#000;--navy:#18163d;--muted:#666;--grey:#828282;\n--accent:#1509ff;--grid-blue:#1c00a3;--light-blue:#4591ff;--purple:#a45fff;--green:#24ca8e;\n--page:#f8f9fa;--tile:#f6f8fc;--hair:rgba(24,22,61,.10);--lav:rgba(21,9,255,.1);\n--soft:0px .6px .6px -1.25px rgba(0,0,0,.18),0px 2.29px 2.29px -2.5px rgba(0,0,0,.16),0px 10px 10px -3.75px rgba(0,0,0,.06);\n--lift:.42px .54px 2.6px -.83px rgba(29,51,195,.13),1.6px 2.06px 9.9px -1.67px rgba(29,51,195,.13),7px 9px 43.3px -2.5px rgba(29,51,195,.13);\n--float:0px .8px 2.39px -.625px rgba(0,0,0,.13),0px 2.41px 7.24px -1.25px rgba(0,0,0,.13),0px 6.38px 19.15px -1.875px rgba(0,0,0,.13),0px 20px 60px -2.5px rgba(0,0,0,.13);\n--btn-black:.3px .6px .66px -.75px rgba(0,0,0,.18),.8px 1.6px 1.8px -1.5px rgba(0,0,0,.18),1.8px 3.5px 4px -2.25px rgba(0,0,0,.17),3.9px 7.9px 8.8px -3px rgba(0,0,0,.14),10px 20px 22px -3.75px rgba(0,0,0,.06);\n--btn-grey:.3px .6px .66px -.75px rgba(101,97,97,.18),.8px 1.6px 1.8px -1.5px rgba(101,97,97,.18),1.8px 3.5px 4px -2.25px rgba(101,97,97,.17),3.9px 7.9px 8.8px -3px rgba(101,97,97,.14),10px 20px 22px -3.75px rgba(101,97,97,.06);\nfont-family:Manrope,system-ui,sans-serif;background:var(--page);color:var(--ink);\nwidth:100%;box-sizing:border-box;-webkit-font-smoothing:antialiased}\n.pd *{box-sizing:border-box}\n.pd :where(h1,h2,h3,p,ul,dl,dd,dt,q){margin:0;padding:0}\n.pd :where(ul){list-style:none}\n.pd :where(q){quotes:none}\n.pd time{font-variant-numeric:tabular-nums}\n\n/* Links. Inline links in prose: blue, soft solid underline; hover goes dotted\n   (the site's link hover). Component links below reset this with a.pd-x\n   selectors, which outrank .pd a. NOTE: this block is a JS template literal,\n   so never put a backtick or a dollar-brace in it, including in a comment. */\n.pd a{color:var(--accent);font-weight:700;text-decoration:underline;\ntext-decoration-thickness:1px;text-underline-offset:3px;\ntext-decoration-color:rgba(21,9,255,.35);transition:color .2s,text-decoration-color .2s}\n.pd a:hover{text-decoration-style:dotted;text-decoration-color:currentColor;background:var(--lav);border-radius:4px}\n.pd :focus-visible{outline:2px solid var(--accent);outline-offset:2px}\n\n/* Highlighted heading words (*word* in the string) */\n.pd-hl{color:var(--accent)}\n.pd-gt{background:linear-gradient(98deg,#f0edff 20%,#4d8bff 100%);\n-webkit-background-clip:text;background-clip:text;color:transparent}\n\n/* 1. Hero band. Full-bleed: the Framer frame must be Width Fill, no max. */\n.pd-hero{position:relative;overflow:hidden;background:var(--navy);color:#fff;\npadding:88px 24px 80px;text-align:center}\n/* Glow sits low in the band and fades to plain navy at the top edge, so it\n   never meets the Framer menu above, with or without the white sub-bar. */\n.pd-hero::before{content:\"\";position:absolute;inset:0;pointer-events:none;\nbackground:radial-gradient(55% 75% at 80% 100%,rgba(75,55,203,.5),transparent 70%),\nradial-gradient(40% 60% at 12% 100%,rgba(75,55,203,.3),transparent 70%);\n-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 45%);\nmask-image:linear-gradient(to bottom,transparent 0,#000 45%)}\n.pd-hero-in{position:relative;z-index:1;max-width:1050px;margin:0 auto;\ndisplay:flex;flex-direction:column;align-items:center;gap:20px}\n.pd-hero h1{font:700 40px/48px Manrope,sans-serif;color:#fff;text-wrap:balance}\n.pd-lede{max-width:700px;font:500 18px/25.2px Manrope,sans-serif;color:#dbdbdb}\n\n/* 2. Jump nav: plain anchor links, sticky, active section underlined */\n.pd-jump{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--hair)}\n.pd-jump-in{max-width:1050px;margin:0 auto;padding:0 24px;display:flex;\njustify-content:center;gap:6px;overflow-x:auto;scrollbar-width:none}\n.pd a.pd-jl{flex:none;padding:18px 16px 16px;font:600 15px/20px Manrope,sans-serif;\ncolor:var(--muted);text-decoration:none;border-bottom:2px solid transparent;\ntransition:color .2s,border-color .2s}\n.pd a.pd-jl:hover{color:var(--ink)}\n.pd a.pd-jl.on{color:var(--ink);border-bottom-color:var(--accent)}\n\n/* Content column */\n.pd-in{max-width:1098px;margin:0 auto;padding:0 24px 96px}\n.pd--bare .pd-in{padding-bottom:0}\n.pd-upd{display:flex;justify-content:center;align-items:center;gap:8px;\nmargin-top:32px!important;font:500 14px/19px Manrope,sans-serif;color:var(--muted)}\n\n/* Sections */\n.pd-sec{padding:60px 0;scroll-margin-top:60px}\n.pd-in>.pd-sec:first-of-type{padding-top:64px}\n.pd--bare .pd-in>.pd-sec:first-of-type{padding-top:0}\n.pd-head{text-align:center;display:flex;flex-direction:column;align-items:center;\ngap:10px;margin-bottom:40px}\n.pd-head h2{font:700 42px/50.4px Manrope,sans-serif;color:var(--ink);text-wrap:balance}\n.pd-sub{max-width:660px;font:500 18px/25.2px Manrope,sans-serif;color:var(--muted)}\n.pd-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:20px}\n.pd-g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:20px}\n.pd-note{text-align:center;font:500 14px/21px Manrope,sans-serif;color:var(--muted);margin-top:24px!important}\n\n/* Metric card */\n.pd-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--hair);\nborder-radius:5px;box-shadow:var(--soft);padding:30px;scroll-margin-top:80px;\ntransition:border-color .2s,box-shadow .2s}\n.pd-card:hover{border-color:var(--accent);box-shadow:var(--lift)}\n.pd-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;\npadding:4px 9px;border-radius:5px;background:var(--tile);\nfont:600 12px/17px Manrope,sans-serif;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}\n.pd-dot{width:7px;height:7px;border-radius:50%;background:#a9b6f5;flex:none;display:inline-block}\n.pd-dot--live{background:var(--green)}\n.pd-dot--mod{background:var(--purple)}\n.pd-card h3{font:700 22px/30.8px Manrope,sans-serif;color:var(--ink);margin-top:16px!important}\n@media (min-width:1000px){.pd-g3>.pd-card:not(.pd-stat) h3{min-height:62px}}\n.pd-nu{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:14px}\n.pd-num{font:700 68px/72px Manrope,sans-serif;letter-spacing:-.03em;color:var(--accent);\nfont-variant-numeric:tabular-nums;flex:none}\n.pd-unit{flex:1 1 90px;font:600 12px/17px Manrope,sans-serif;letter-spacing:.04em;\ntext-transform:uppercase;color:var(--muted)}\n.pd-desc{font:500 14px/21px Manrope,sans-serif;color:var(--muted);margin-top:18px!important;flex-grow:1}\n.pd-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--hair);\ndisplay:flex;flex-direction:column;gap:3px}\n.pd-card--bench .pd-foot{background:var(--tile);border-top:0;border-radius:5px;padding:12px 14px}\n.pd-win{font:700 14px/19px Manrope,sans-serif;color:var(--ink)}\n.pd-asof{font:500 12px/17px Manrope,sans-serif;color:var(--muted)}\n\n/* Quiet grey links: the /pricing hover (lavender fill, navy, dotted underline) */\n.pd a.pd-more,.pd a.pd-pc-cmp,.pd a.pd-pc-fl{display:inline-flex;align-items:center;gap:6px;\npadding:3px 6px;border-radius:8px;text-decoration:none;\ntransition:background .2s,color .2s}\n.pd a.pd-more{align-self:flex-start;margin:14px 0 0 -6px;font:600 14px/19px Manrope,sans-serif;color:var(--muted)}\n.pd a.pd-more:hover,.pd a.pd-pc-cmp:hover,.pd a.pd-pc-fl:hover{background:var(--lav);color:#2e2e2e;\ntext-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:3px}\n.pd a.pd-more svg,.pd-go svg{transition:transform .2s}\n.pd a.pd-more:hover svg,.pd-case:hover .pd-go svg{transform:translateX(3px)}\n\n/* Buttons: 2px frame around a 3px-radius face; the frame lights on hover */\n.pd a.pd-btn{display:inline-flex;flex:none;padding:2px;border-radius:5px;background:transparent;\ntext-decoration:none;transition:background .2s}\n.pd-btn span{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;\nheight:48px;padding:0 24px;border-radius:3px;font:700 16px/19px Manrope,sans-serif;\ntransition:background .2s}\n.pd a.pd-btn--w span{background:#fff;color:var(--grid-blue);box-shadow:var(--btn-grey)}\n.pd a.pd-btn--w:hover{background:rgba(255,255,255,.55)}\n\n/* Plan cards, 1:1 with /pricing */\n.pd-pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));\ngap:24px;max-width:924px;margin:0 auto}\n.pd-pc{display:flex;padding:2px;border-radius:9px;box-shadow:var(--float);\nbackground:linear-gradient(257deg,#1c00a3 0%,#211f97 29%,#1509ff 67%,#7c7cfc 100%);\ntransition:box-shadow .2s}\n.pd-pc:hover{box-shadow:var(--lift),0px 20px 60px -2.5px rgba(21,9,255,.18)}\n.pd-pc-in{flex:1;display:flex;flex-direction:column;gap:20px;background:#fff;border-radius:8px;padding:20px}\n.pd-pc-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}\n.pd-pc-top h3{font:700 18px/18px Manrope,sans-serif;color:var(--ink)}\n.pd-pc-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;\nbackground:rgba(21,9,255,.1);font:500 12px/20px Manrope,sans-serif;color:var(--grid-blue)}\n.pd-pc-price{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:-10px!important}\n.pd-pc-num{font:700 42px/50.4px Manrope,sans-serif;padding:2.1px;\nbackground:linear-gradient(45deg,#1c00a3 0%,#1509ff 100%);-webkit-background-clip:text;\nbackground-clip:text;color:transparent}\n.pd-pc-unit{display:inline-flex;align-items:center;gap:4px;padding:0 10px;border:1px solid #d9d9d9;\nborder-radius:100px;font:300 11px/20px Manrope,sans-serif;color:var(--grey)}\n.pd-pc-unit b{font-weight:600;color:#2e2e2e;text-transform:uppercase}\n.pd-pc-inset{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;\nbackground:#f8f9fa;border:1px solid #eeeff2;color:var(--grey)}\n.pd-pc-inset svg{flex:none}\n.pd-pc-inset b{display:block;font:700 14px/16.8px Manrope,sans-serif;color:#1f1f1f}\n.pd-pc-inset span{display:block;margin-top:2px;font:300 14px/16.8px Manrope,sans-serif;color:var(--grey)}\n.pd-pc-feat{display:flex;flex-wrap:wrap;align-content:flex-start;gap:0 10px;flex-grow:1}\n.pd-pc-feat li{display:flex}\n.pd-pc-fl{display:inline-flex;align-items:center;gap:6px;padding:3px 6px;\nfont:300 12px/14.4px Manrope,sans-serif;color:var(--grey)}\n.pd a.pd-pc-fl{font-weight:300;color:var(--grey)}\n.pd-pc-feat svg{flex:none}\n.pd a.pd-pbtn{display:flex;padding:2px;border-radius:5px;background:#000;color:#fff;\ntext-decoration:none;box-shadow:var(--btn-grey);transition:background .2s}\n.pd-pbtn span{flex:1;display:flex;align-items:center;justify-content:center;height:46px;\nborder-radius:3px;background:#000;font:700 18px/21.6px Manrope,sans-serif;transition:background .2s}\n.pd a.pd-pbtn:hover{background:#6b6b6b}\n.pd a.pd-pbtn:hover span{background:#1f1f1f}\n.pd a.pd-pc-cmp{align-self:center;justify-content:center;margin-top:-6px;\nfont:300 12px/14.4px Manrope,sans-serif;color:var(--grey)}\n\n/* Modelled scenarios: dashed and flat, so estimates never read as measurements */\n.pd-subh{margin:72px 0 36px;text-align:center}\n.pd-subh h3{font:700 32px/38.4px Manrope,sans-serif;color:var(--ink)}\n.pd-subh p{max-width:660px;margin:10px auto 0!important;font:500 18px/25.2px Manrope,sans-serif;color:var(--muted)}\n.pd-card.pd-scn{border:1.5px dashed rgba(24,22,61,.3);box-shadow:none}\n.pd-card.pd-scn:hover{border-color:var(--accent);box-shadow:0 10px 24px -6px rgba(0,0,0,.12)}\n.pd-price{display:flex;align-items:baseline;gap:10px;margin-top:14px!important}\n.pd-price b{font:700 48px/52px Manrope,sans-serif;letter-spacing:-.025em;color:var(--accent);\nfont-variant-numeric:tabular-nums}\n.pd-per{font:700 16px/22px Manrope,sans-serif;color:var(--ink);margin-top:6px!important}\n.pd-scn .pd-desc{flex-grow:0;margin-top:12px!important}\n.pd-save{display:inline;padding:2px 8px;border-radius:20px;background:rgba(36,202,142,.16);\ncolor:#0a6b4a;font-weight:700;-webkit-box-decoration-break:clone;box-decoration-break:clone}\n.pd-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin-top:20px!important}\n.pd-kv div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 10px;\npadding:9px 0;border-bottom:1px solid var(--hair);font:14px/19px Manrope,sans-serif}\n.pd-kv dt{font-weight:500;color:var(--muted)}\n.pd-kv dd{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}\n.pd-kv div:last-child:nth-child(odd){grid-column:1/-1}\n.pd-run{margin-top:16px!important}\n\n/* Calculator banner (classic layout, reversed colours) */\n.pd-band{max-width:924px;margin:28px auto 0;border-radius:5px;color:#fff;\nbackground:linear-gradient(100deg,#18163d 0%,#1c00a3 65%,#4b37cb 100%);\npadding:18px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}\n.pd-band>svg{flex:none;color:#fff}\n.pd-band-tx{flex:1 1 300px}\n.pd-band-tx p:first-child{font:500 14px/21px Manrope,sans-serif;color:#dbdbdb}\n.pd-band-tx p:last-child{font:700 18px/25px Manrope,sans-serif;color:#fff;margin-top:2px!important}\n.pd-band-tx p:last-child::after{content:\" \\\\2192\"}\n\n/* Customer results */\n.pd-stat h3{margin-top:0!important;font-size:18px;line-height:25px}\n.pd-stat .pd-num{font-size:48px;line-height:52px;margin-top:18px!important}\n.pd-stat .pd-desc{margin-top:14px!important}\n.pd-srcs{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:14px}\n.pd-srcs a.pd-more{margin:0 0 0 -6px}\n.pd-cases{margin-top:20px;background:#fff;border:1px solid var(--hair);border-radius:5px;\nbox-shadow:var(--soft);overflow:hidden}\n.pd a.pd-case{display:grid;grid-template-columns:168px minmax(0,1fr) auto;gap:24px;align-items:center;\npadding:16px 28px 16px 16px;border-top:1px solid var(--hair);color:inherit;font-weight:inherit;\ntext-decoration:none;transition:background .2s}\n.pd a.pd-case:first-child{border-top:0}\n.pd a.pd-case:hover{background:var(--tile)}\n.pd-cover{position:relative;overflow:hidden;height:101px;border-radius:5px;background:var(--tile)}\n.pd-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n.pd-tag{font:600 12px/17px Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}\n.pd-case h3{font:700 20px/26px Manrope,sans-serif;color:var(--ink);margin-top:4px!important}\n.pd-studio{font:500 14px/21px Manrope,sans-serif;color:var(--muted);margin-top:4px!important}\n.pd-go{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;\nborder:1px solid #000;border-radius:5px;background:#000;color:#fff;white-space:nowrap;\nfont:700 14px/19px Manrope,sans-serif;transition:background .2s,border-color .2s,box-shadow .2s}\n.pd a.pd-case:hover .pd-go{background:#1f1f1f;border-color:#1f1f1f;box-shadow:var(--btn-black)}\n\n/* Accordions: native details, collapsed text stays in the HTML */\n.pd-acc{background:#fff;border:1px solid var(--hair);border-radius:5px;box-shadow:var(--soft);overflow:hidden}\n.pd-detail{border-top:1px solid var(--hair);scroll-margin-top:80px}\n.pd-detail:first-child{border-top:0}\n.pd-detail summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;\npadding:22px 28px;font:700 20px/26px Manrope,sans-serif;color:var(--ink);transition:background .2s,color .2s}\n.pd-detail summary::-webkit-details-marker{display:none}\n.pd-detail summary:focus-visible{outline-offset:-2px}\n.pd-detail summary[data-n]::before{content:attr(data-n);flex:none;width:64px;\nfont:700 15px/19px Manrope,sans-serif;letter-spacing:-.01em;color:var(--accent)}\n.pd-detail summary::after{content:\"\";margin-left:auto;flex:none;width:9px;height:9px;\nborder-right:2px solid var(--muted);border-bottom:2px solid var(--muted);\ntransform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}\n.pd-detail[open] summary::after{transform:rotate(-135deg) translate(-2px,-2px)}\n.pd-detail summary:hover{background:var(--tile);color:var(--accent)}\n.pd-body{padding:2px 28px 28px 110px}\n.pd-body>p{max-width:68ch;font:500 16px/25.6px Manrope,sans-serif;color:var(--ink)}\n.pd-body .pd-back{display:inline-block;margin-top:14px;font-size:14px}\n.pd-acc--plain .pd-detail summary{font-size:18px}\n.pd-acc--plain .pd-body{padding-left:28px}\n.pd-cites{display:flex;flex-direction:column;gap:18px;max-width:72ch}\n.pd-cite h3{font:700 16px/22px Manrope,sans-serif;color:var(--ink);margin-bottom:4px!important}\n.pd-cite q{display:block;font:500 16px/25.6px Manrope,sans-serif;color:var(--ink)}\n\n/* Keeping current */\n.pd-refresh{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;\nbackground:#fff;border:1px solid var(--hair);border-radius:5px;box-shadow:var(--soft);padding:36px 40px}\n.pd-refresh>p{max-width:62ch;font:500 16px/25.6px Manrope,sans-serif;color:var(--ink)}\n.pd-chips{display:flex;flex-direction:column;gap:10px;min-width:250px}\n.pd-dt{background:var(--tile);border-radius:5px;padding:14px 18px}\n.pd-dt-l{display:flex;align-items:center;gap:8px;font:600 12px/17px Manrope,sans-serif;\nletter-spacing:.04em;text-transform:uppercase;color:var(--muted)}\n.pd-dt b{display:block;margin-top:4px;font:700 18px/25px Manrope,sans-serif;color:var(--ink)}\n.pd-later{margin-left:6px;font:500 12px/17px Manrope,sans-serif;color:var(--muted)}\n\n.pd-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}\n.pd-skip{position:absolute;left:-9999px}\n.pd-skip:focus{position:static}\n.pd-todo{background:#fef6e2;border-radius:5px;padding:20px 24px;margin-top:32px}\n.pd-todo p,.pd-todo li{font-size:14px;line-height:1.7;color:var(--navy)}\n.pd-todo ul{padding-left:18px!important;list-style:disc}\n\n/* Tablet (Framer 810 to 1199) */\n@media (max-width:1199px){.pd-kv{grid-template-columns:1fr}.pd-kv div:last-child:nth-child(odd){grid-column:auto}}\n@media (min-width:810px) and (max-width:1000px){\n.pd-g3>:last-child:nth-child(odd){grid-column:1/-1}\n.pd-g3>:last-child:nth-child(odd) h3{min-height:0}\n.pd-head h2{font-size:38px;line-height:46px}}\n@media (max-width:1000px){\n.pd a.pd-case{grid-template-columns:120px minmax(0,1fr)}\n.pd-case .pd-go{grid-column:2;justify-self:start}\n.pd-refresh{grid-template-columns:1fr}\n.pd-chips{flex-direction:row;flex-wrap:wrap;min-width:0}\n.pd-chips .pd-dt{flex:1 1 220px}}\n/* Phone (Framer below 810) */\n@media (max-width:809px){\n.pd-hero{padding:56px 20px}\n.pd-hero h1{font-size:32px;line-height:38px}\n.pd-lede{font-size:16px;line-height:23px}\n.pd-jump{position:static}\n.pd-jump-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0 8px;overflow:visible}\n.pd a.pd-jl{min-height:48px;display:flex;align-items:center;justify-content:center;padding:0 8px}\n.pd-in{padding:0 16px 64px}\n.pd-upd{margin-top:24px!important;font-size:13px;text-align:center}\n.pd-sec{padding:44px 0}\n.pd-in>.pd-sec:first-of-type{padding-top:44px}\n.pd-head h2{font-size:32px;line-height:38px}\n.pd-sub,.pd-subh p{font-size:16px;line-height:23px}\n.pd-subh h3{font-size:26px;line-height:32px}\n.pd-card{padding:22px}\n.pd-num{font-size:56px;line-height:60px}\n.pd-band{padding:22px 20px}\n.pd-band-tx{flex-basis:220px}\n.pd a.pd-case{grid-template-columns:1fr}\n.pd-case .pd-go{grid-column:1;justify-self:stretch;justify-content:center}\n.pd-cover{height:140px}\n.pd-detail summary{padding:18px;font-size:18px;gap:12px}\n.pd-detail summary[data-n]::before{width:56px;font-size:14px}\n.pd-body,.pd-acc--plain .pd-body{padding:0 18px 22px}\n.pd-refresh{padding:24px 20px}}\n@media (prefers-reduced-motion:reduce){.pd *{transition:none!important}}\n`;// ─── ICONS ──────────────────────────────────────────────────────────────────\n// Thin-stroke line icons; stroke follows the text colour (design system rule).\nfunction icon(d,size=14,sw=1.8){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:sw,strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:d});}const I={arrow:icon(/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 6l6 6-6 6\"}),15,2.2),clock:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 7v5l3 2\"})]}),16),cal:(size=16)=>icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"4\",y:\"5\",width:\"16\",height:\"15\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 10h16M9 3v4M15 3v4\"})]}),size),bolt:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M13 6l-4 7h4l-2 5 5-7h-4z\"})]}),13),globe:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18\"})]})),divide:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"6.5\",r:\"1\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"17.5\",r:\"1\"})]})),updown:icon(/*#__PURE__*/_jsx(\"path\",{d:\"M7 20V4M3 8l4-4 4 4M17 4v16M13 16l4 4 4-4\"})),cpu:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"6\",y:\"6\",width:\"12\",height:\"12\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 2v4M15 2v4M9 18v4M15 18v4M2 9h4M2 15h4M18 9h4M18 15h4\"})]})),cloud:icon(/*#__PURE__*/_jsx(\"path\",{d:\"M7 18a4.5 4.5 0 0 1-.5-9A6 6 0 0 1 18 9.5 4 4 0 0 1 17.5 18z\"})),checkCircle:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M8 12.5l2.5 2.5L16 9.5\"})]})),plus:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 8v8M8 12h8\"})]}),13),calc:icon(/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:\"5\",y:\"3\",width:\"14\",height:\"18\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M8 7h8M8 12h.01M12 12h.01M16 12h.01M8 16h.01M12 16h.01M16 16h.01\"})]}),26)};const TEXT=[];function add(g,k,title,v){TEXT.push({k,g,title,v});}/** Panel groups — the \"Edit text\" picker in the property panel. */const GROUPS=[[\"page\",\"Page & nav\"],[\"scale\",\"Scale\"],[\"performance\",\"Performance\"],[\"reliability\",\"Reliability\"],[\"cost\",\"Cost — section\"],[\"pricing\",\"Cost — pricing cards\"],[\"scenarios\",\"Cost — scenarios\"],[\"results\",\"Customer results\"],[\"cases\",\"Case studies\"],[\"method\",\"Method & citing\"],[\"refresh\",\"Keeping current\"],[\"all\",\"Show all\"]];// Page & nav\nadd(\"page\",\"skip\",\"Skip link\",\"Skip to the data\");add(\"page\",\"navAria\",\"Nav label (screen readers)\",\"On this page\");add(\"page\",\"nav.scale\",\"Nav \\xb7 Scale\",\"Scale\");add(\"page\",\"nav.performance\",\"Nav \\xb7 Performance\",\"Performance\");add(\"page\",\"nav.reliability\",\"Nav \\xb7 Reliability\",\"Reliability\");add(\"page\",\"nav.cost\",\"Nav \\xb7 Cost\",\"Cost\");add(\"page\",\"nav.results\",\"Nav \\xb7 Results\",\"Customer Results\");add(\"page\",\"nav.method\",\"Nav \\xb7 Method\",\"Methodology\");add(\"page\",\"h1\",\"Title (H1, *word* = gradient)\",\"Edgegap Platform *Data*\");add(\"page\",\"lede\",\"Intro\",\"Every number Edgegap publishes, with the method behind it. Each metric states what is measured, over what window, and what is excluded, and carries a citation you can quote directly.\");add(\"page\",\"heroChip\",\"Last-updated line ({date})\",\"Last updated {date} \\xb7 reviewed quarterly\");add(\"page\",\"howMeasure\",\"Card link \\xb7 How we measure\",\"How we measure this\");// Section heads\nadd(\"scale\",\"scale.title\",\"Section title\",\"Orchestration Platform *Scale*\");add(\"scale\",\"scale.sub\",\"Section subtitle\",\"Where servers can run, and how many we have run.\");add(\"performance\",\"performance.title\",\"Section title\",\"Performance Under *Load*\");add(\"performance\",\"performance.sub\",\"Section subtitle\",\"How fast our orchestration delivers a server, and what it sustains under test.\");add(\"reliability\",\"reliability.title\",\"Section title\",\"*Reliability*\");add(\"reliability\",\"reliability.sub\",\"Section subtitle\",\"What we commit to contractually for our orchestration, and what the monitors record.\");add(\"reliability\",\"reliability.note\",\"Status note ([link])\",\"Live component status is published at [status.edgegap.com].\");function metric(g,id,name,m){add(g,id+\".label\",name+\" \\xb7 Title\",m.label);add(g,id+\".tag\",name+\" \\xb7 Pill\",m.tag);add(g,id+\".value\",name+\" \\xb7 Value\",m.value);add(g,id+\".unit\",name+\" \\xb7 Unit\",m.unit);add(g,id+\".scope\",name+\" \\xb7 Description\",m.scope);add(g,id+\".window\",name+\" \\xb7 Window\",m.window);add(g,id+\".asOfLabel\",name+\" \\xb7 As-of line\",m.asOfLabel);add(g,id+\".citation\",name+\" \\xb7 Citation\",m.citation);if(m.methodology)add(g,id+\".methodology\",name+\" \\xb7 Methodology\",m.methodology);}metric(\"scale\",\"locations\",\"Locations\",{label:\"Global Edge Cloud locations\",tag:\"Inventory\",value:\"615+\",unit:\"locations\",scope:\"Distinct deployment targets where a game server container can be scheduled on demand.\",window:\"Platform inventory\",asOfLabel:\"As of 18 September 2026\",citation:\"Edgegap deploys game servers on demand across 615+ Edge Cloud locations worldwide, as of 18 September 2026.\",methodology:\"A location is a distinct deployment target: one datacenter site at one of our infrastructure providers, in which a game server container can be scheduled on demand. Sites are counted once each regardless of how many providers operate in the same metro, and count only while accepting deployments.\"});metric(\"scale\",\"fleet-locations\",\"Fleet\",{label:\"Private Fleet locations\",tag:\"Live\",value:\"58\",unit:\"locations\",scope:\"Locations where a studio can reserve dedicated bare-metal or VM hosts for its exclusive use.\",window:\"Published live\",asOfLabel:\"As of 18 September 2026\",citation:\"Edgegap offers dedicated bare-metal and VM fleets in 58 locations worldwide.\",methodology:\"The subset of the 615+ where a studio can reserve dedicated bare-metal or VM hosts for its exclusive use rather than deploying into shared on-demand capacity. Published live on the Fleet Manager page. This is also the number that carries the included-egress allowance.\"});metric(\"scale\",\"sessions\",\"Deployments\",{label:\"Game server deployments to date\",tag:\"Cumulative\",value:\"135\",unit:\"million deployments\",scope:\"Total game server deployments orchestrated since February 2019, including deployments that failed to start, the same basis our competitors use.\",window:\"Since February 2019\",asOfLabel:\"As of 18 September 2026\",citation:\"Edgegap has orchestrated 135 million game server deployments since February 2019.\",methodology:\"Counted as total deployment records since February 2019, including deployments that failed to start, the same basis our competitors use.\"});metric(\"performance\",\"deployment-time\",\"Deploy time\",{label:\"Server deployment time\",tag:\"Rolling 30d\",value:\"2\",unit:\"seconds \\xb7 median\",scope:\"From cold start: provisioned from scratch, not allocated onto an already-running server. Measured to container ready, before the game engine starts.\",window:\"Rolling 30-day window\",asOfLabel:\"As of 18 September 2026\",citation:\"Edgegap deploys a complete game server from cold start in a median of 2 seconds, provisioned from scratch rather than allocated onto an already-running server.\"});metric(\"performance\",\"deployment-rate\",\"Deploy rate\",{label:\"Sustained deployment rate for each game\",tag:\"Benchmark\",value:\"40\",unit:\"per second\",scope:\"Started deployments per second, averaged over a continuous 60-minute benchmark. Available to each game from confirmed studios with live traffic.\",window:\"November 2023 benchmark\",asOfLabel:\"Measured November 2023\",citation:\"Edgegap sustained 40 game server deployments per second for a single game for 60 minutes across 550+ locations in its November 2023 benchmark; each game from a confirmed studio with live traffic can run at this rate at the same time.\",// [ ] = link to the \"Benchmark link\" property (performance benchmark page)\nmethodology:\"The orchestrator started real game server containers continuously for 60 minutes, averaging 40 started deployments per second over the full hour, counted at deployment start rather than at ready state. Measured across [550+ locations and 17 providers in November 2023]. The benchmark ran for a single game. Capacity is allocated per game, so each game from a confirmed studio with live traffic can run at this rate independently and at the same time.\"});metric(\"performance\",\"capacity\",\"Capacity\",{label:\"Concurrent capacity for each game\",tag:\"Benchmark\",value:\"14\",unit:\"million concurrent\",scope:\"Concurrent sessions reached on real game server containers, at 100 players per server.\",window:\"November 2023 benchmark\",asOfLabel:\"Measured November 2023\",citation:\"Edgegap reached 14 million concurrent sessions for a single game on real game server containers in a 60-minute benchmark in November 2023; every game on the platform can scale to this level at the same time.\",methodology:\"In November 2023, the platform sustained 40 game server deployments per second for 60 minutes across 550+ locations and 17 providers, reaching 14 million concurrent sessions at 100 players per server. Game servers were real containers; player clients were simulated. The benchmark ran for a single game. Capacity is allocated per game, so every game on the platform can scale to this level independently and at the same time.\"});metric(\"reliability\",\"availability\",\"Availability\",{label:\"Availability\",tag:\"Committed\",value:\"99.99%\",unit:\"SLA commitment\",scope:\"Committed under our SLA. Trailing 90-day measured uptime: 99.999%.\",window:\"Trailing 90 days\",asOfLabel:\"As of 21 October 2026\",citation:\"Edgegap commits to 99.99% availability under its SLA and recorded 99.999% measured uptime across five monitored components over the 90 days to 21 October 2026.\",methodology:\"Availability is committed at 99.99% under our SLA and measured continuously against five independently monitored components: Container Registry, Dashboard, Public API, Public Documentation and Website. Trailing 90-day measured uptime: 99.999%. The live figure is published on status.edgegap.com.\"});metric(\"reliability\",\"redundancy\",\"Redundancy\",{label:\"Provider redundancy\",tag:\"Inventory\",value:\"17+\",unit:\"providers\",scope:\"Cloud and bare-metal providers under contract and carrying production traffic. Failover is automatic.\",window:\"Platform inventory\",asOfLabel:\"As of 18 September 2026\",citation:\"Edgegap orchestrates across 17+ cloud and bare-metal providers, so no single provider outage takes a studio's servers down.\",methodology:\"Distinct suppliers under contract and carrying production traffic, counted at corporate-entity level. Failover across providers is automatic; it is the premise of the multi-cloud architecture.\"});// Methodology row figures (the number shown before each row title)\nconst SHORT_FIGURES=[[\"scale\",\"locations\",\"Locations\",\"615+\"],[\"scale\",\"fleet-locations\",\"Fleet\",\"58\"],[\"scale\",\"sessions\",\"Deployments\",\"135M\"],[\"performance\",\"deployment-time\",\"Deploy time\",\"2 s\"],[\"performance\",\"deployment-rate\",\"Deploy rate\",\"40/s\"],[\"performance\",\"capacity\",\"Capacity\",\"14M\"],[\"reliability\",\"availability\",\"Availability\",\"99.99%\"],[\"reliability\",\"redundancy\",\"Redundancy\",\"17+\"]];SHORT_FIGURES.forEach(r=>add(r[0],r[1]+\".short\",r[2]+\" \\xb7 Methodology figure\",r[3]));// Cost — section\nadd(\"cost\",\"cost.title\",\"Section title\",\"What It *Costs*\");add(\"cost\",\"cost.sub\",\"Section subtitle\",\"Reserved Fleet capacity carries the optimal cost-effective load of deployments; Edge Cloud absorbs overflow on demand. Most studios run both.\");add(\"cost\",\"cost.compare\",\"Pricing card \\xb7 Compare link\",\"Compare features & pricing\");add(\"cost\",\"calc.lede\",\"Calculator \\xb7 Intro\",\"Your bill varies per rate and usage, which can vary per game type, player count and more.\");add(\"cost\",\"calc.cta\",\"Calculator \\xb7 Headline\",\"Model your usage with our estimate calculator\");add(\"cost\",\"calc.btn\",\"Calculator \\xb7 Button\",\"Pricing Calculator\");add(\"cost\",\"cost.quote\",\"Custom quote note ([link])\",\"For a custom quote, email [sales@edgegap.com] with your CCU profile, session length and regions.\");function price(id,label,p){add(\"pricing\",id+\".name\",label+\" \\xb7 Name\",p.name);add(\"pricing\",id+\".tag\",label+\" \\xb7 Pill\",p.tag);add(\"pricing\",id+\".amount\",label+\" \\xb7 Price\",p.amount);add(\"pricing\",id+\".unit\",label+\" \\xb7 Unit\",p.unit);add(\"pricing\",id+\".billTitle\",label+\" \\xb7 Billing title\",p.billTitle);add(\"pricing\",id+\".billBody\",label+\" \\xb7 Billing text\",p.billBody);p.points.forEach((pt,i)=>add(\"pricing\",id+\".point\"+(i+1),label+\" \\xb7 Point \"+(i+1),pt));add(\"pricing\",id+\".cta\",label+\" \\xb7 Button\",p.cta);}price(\"price-edge\",\"Edge Cloud\",{name:\"Edge Cloud\",tag:\"On-Demand\",amount:\"$0.00115\",unit:\"/ vCPU / minute\",billTitle:\"Billed by the minute, only on usage\",billBody:\"Pay only when players play. 0 active servers = $0.\",points:[\"615+ locations worldwide\",\"Fractionable, 0.25–4 vCPU\",\"$0.10/GB monthly egress\",\"Zero commitment\"],cta:\"Get started for free\"});price(\"price-fleet\",\"Private Fleet\",{name:\"Private Fleet (Bare Metal)\",tag:\"Reserved Capacity\",amount:\"$0.0256\",unit:\"/ vCPU / hour\",billTitle:\"Billed monthly, always on\",billBody:\"$280 per host/month at the 12-month rate, $323.75 at the 6-month rate, or $350 monthly.\",points:[\"58 locations worldwide\",\"16 vCPU/host (15 usable)\",\"Egress included\",\"Automatic overflow to Edge Cloud\"],cta:\"Configure a fleet\"});// Cost — scenarios\nadd(\"scenarios\",\"scn.title\",\"Scenarios \\xb7 Heading\",\"What it costs in practice\");add(\"scenarios\",\"scn.sub\",\"Scenarios \\xb7 Intro\",\"Two example games, priced with our public calculator using the inputs below. These are estimates, and your costs depend on your own game.\");add(\"scenarios\",\"scn.pill\",\"Scenarios \\xb7 Pill\",\"Modelled\");add(\"scenarios\",\"scn.run\",\"Scenarios \\xb7 Footer ({date})\",\"Calculator run of {date}\");/** Input rows. Labels are shared by both scenarios; values are per scenario. */const INPUT_KEYS=[[\"peakCcu\",\"Peak CCU\"],[\"lowCcu\",\"Low-tide CCU\"],[\"players\",\"Players per match\"],[\"vcpu\",\"vCPU per instance\"],[\"egress\",\"Egress per player\"],[\"bareMetal\",\"Bare-metal ratio\"],[\"term\",\"Fleet commitment term\"]];INPUT_KEYS.forEach(([k,v])=>add(\"scenarios\",\"in.\"+k,\"Input label \\xb7 \"+v,v));function scenario(id,label,s){add(\"scenarios\",id+\".title\",label+\" \\xb7 Title\",s.title);add(\"scenarios\",id+\".cost\",label+\" \\xb7 Cost\",s.cost);add(\"scenarios\",id+\".per\",label+\" \\xb7 Period\",s.per);add(\"scenarios\",id+\".unitCost\",label+\" \\xb7 Unit cost\",s.unitCost);add(\"scenarios\",id+\".vs\",label+\" \\xb7 Comparison (*text* = green pill)\",s.vs);add(\"scenarios\",id+\".citation\",label+\" \\xb7 Citation\",s.citation);INPUT_KEYS.forEach(([k,name],i)=>add(\"scenarios\",id+\".in.\"+k,label+\" \\xb7 \"+name,s.inputs[i]));}scenario(\"cost-shooter-5k\",\"Shooter\",{title:\"Shooter, 5,000 peak CCU\",cost:\"$4,300\",per:\"per month\",unitCost:\"$0.86 per peak CCU\",vs:\"*~62% below AWS GameLift (Gen6)*, which models at $11,417 per month, or $2.28 per peak CCU, against its list pricing as of September 2026.\",citation:\"A shooter at 5,000 peak CCU models at $4,300 per month on Edgegap ($0.86 per peak CCU), about 62% below AWS GameLift (Gen6) on the same profile. Modelled with Edgegap's public pricing calculator.\",inputs:[\"5,000\",\"614\",\"8\",\"1\",\"7 KB/s\",\"55%\",\"12 months\"]});scenario(\"cost-tcg-10k\",\"TCG\",{title:\"TCG, 10,000 peak CCU\",cost:\"$6,777\",per:\"per month\",unitCost:\"$0.68 per peak CCU\",vs:\"*~64% below AWS GameLift (Gen6)*, which models at $19,098 per month, or $1.91 per peak CCU, against its list pricing as of September 2026.\",citation:\"A trading card game at 10,000 peak CCU models at $6,777 per month on Edgegap ($0.68 per peak CCU), about 64% below AWS GameLift (Gen6) on the same profile. Modelled with Edgegap's public pricing calculator.\",inputs:[\"10,000\",\"1,535\",\"2\",\"0.125\",\"1 KB/s\",\"55%\",\"12 months\"]});// Customer results\nadd(\"results\",\"results.title\",\"Section title\",\"Customer *Results*\");add(\"results\",\"results.sub\",\"Section subtitle\",\"Outcomes measured on customer traffic, and the studios behind them.\");function result(id,name,label,body,citation){add(\"results\",id+\".label\",name+\" \\xb7 Title\",label);add(\"results\",id+\".body\",name+\" \\xb7 Text\",body);add(\"results\",id+\".citation\",name+\" \\xb7 Citation\",citation);}result(\"latency\",\"Latency\",\"Latency reduction\",\"Independent replays of two studios' live traffic measured average round-trip time reductions of 46.5% and 58% against public-cloud relay placement.\",\"Independent replays of two studios' live traffic measured average round-trip time reductions of 46.5% and 58% against public-cloud relay placement.\");result(\"fill-rate\",\"Fill rate\",\"Session fill rate\",\"Average session fill rate of 91% across one studio's matchmaking traffic in Q2 2025. Fill rate is the share of a game server's player capacity occupied by active players, averaged over a session's full lifespan, and varies by game and matchmaker configuration. This figure describes one title, not a platform average.\",\"One studio running on Edgegap's matchmaker averaged a 91% session fill rate in Q2 2025.\");result(\"case-studies\",\"Case studies\",\"Published case studies\",\"Edgegap publishes 44 customer case studies with named studios and outcomes.\",\"Edgegap publishes 44 customer case studies with named studios and outcomes.\");// Result cards: big figure (decorative, aria-hidden) and source buttons\nadd(\"results\",\"latency.figure\",\"Latency \\xb7 Big figure\",\"58%\");add(\"results\",\"fill-rate.figure\",\"Fill rate \\xb7 Big figure\",\"91%\");add(\"results\",\"case-studies.figure\",\"Case studies \\xb7 Big figure\",\"44\");add(\"results\",\"latency.src1\",\"Latency \\xb7 Source button 1\",\"58% case study\");add(\"results\",\"latency.src2\",\"Latency \\xb7 Source button 2\",\"46.5% report\");add(\"results\",\"case-studies.src\",\"Case studies \\xb7 Source button\",\"View source\");// Fill rate has no source button on purpose: the studio is under NDA, and a\n// link to its case study would identify it.\n// Case studies\nadd(\"cases\",\"case.btn\",\"Button\",\"Case study\");add(\"cases\",\"case.index\",\"Index note ([link])\",\"All 44 published studies are on the [case studies index].\");/**\n * Case covers: paste the Framer asset URL (framerusercontent.com/...) into\n * `cover`. Leave it \"\" to fall back to the `caseImages` ResponsiveImage slot in\n * the property panel, and to a grey box if neither is set. 500x300 source art.\n * Studio names are proper nouns and stay in code; tag and title translate.\n */const CASES=[{key:\"case3\",slot:2,studio:\"Tibith Games\",tag:\"Mobile\",title:\"Bloody Bastards moved 40M downloads off peer-to-peer\",href:\"https://edgegap.com/case-studies/bloody-bastards-tibith-games\",cover:\"https://framerusercontent.com/images/bjxN6sYXPvire79IX3UtF2kjbmM.png?width=500&height=300\"},{key:\"case1\",slot:0,studio:\"Slipstream Games\",tag:\"Web Game\",title:\"Drift.io hit 50,000 players in 24 hours, at half the server cost\",href:\"https://edgegap.com/case-studies/slipstream-games-drift-io\",cover:\"https://framerusercontent.com/images/vggpqZGcEzd5OS89L5JUwLYiTUI.png?width=500&height=300\"},{key:\"case2\",slot:1,studio:\"Combat Waffle Studios\",tag:\"Edge Cloud\",title:\"Ghosts of Tabor went from 5 regions to 615+ locations\",href:\"https://edgegap.com/case-studies/combat-waffle-studios-ghosts-of-tabor\",cover:\"https://framerusercontent.com/images/aEu9Y7e8rsqIcZJRU5RUiPfyqk.png?width=500&height=300\"},{key:\"case4\",slot:3,studio:\"Qloud Games\",tag:\"Migration\",title:\"Loftia migrated its MMO in under 24 hours\",href:\"https://edgegap.com/case-studies/loftia-gg-casual-mmo-qloud-games\",cover:\"https://framerusercontent.com/images/BKzYbIpixT1BfXtswbuZajqvOc0.png?width=500&height=300\"},{key:\"case5\",slot:4,studio:\"Sinn Studios\",tag:\"Virtual Reality\",title:\"Zombonk holds 32.5K reviews\",href:\"https://edgegap.com/case-studies/sinn-studios-zombonk\",cover:\"https://framerusercontent.com/images/VurTJw1oyNL4l0HCt8XxnbNF4.png?width=500&height=300\"}];CASES.forEach((c,i)=>{add(\"cases\",c.key+\".tag\",c.studio+\" \\xb7 Pill\",c.tag);add(\"cases\",c.key+\".title\",c.studio+\" \\xb7 Title\",c.title);});// Method & citing\nadd(\"method\",\"method.title\",\"Method \\xb7 Section title\",\"How We *Measure*\");add(\"method\",\"method.sub\",\"Method \\xb7 Section subtitle\",\"One entry per metric: what is measured, how, and over what window.\");add(\"method\",\"method.back\",\"Method \\xb7 Back link\",\"Back to the metric ↑\");add(\"method\",\"citing.title\",\"Citing \\xb7 Section title\",\"Citing This Data\");add(\"method\",\"citing.sub\",\"Citing \\xb7 Section subtitle\",\"Quote any of these directly. Each links back to the metric and its method.\");add(\"method\",\"citing.all\",\"Citing \\xb7 Accordion title\",\"All citations\");add(\"method\",\"citing.source\",\"Citing \\xb7 Source link\",\"source\");// Keeping current\nadd(\"refresh\",\"refresh.title\",\"Section title\",\"How We Keep This Current\");add(\"refresh\",\"refresh.sub\",\"Section subtitle\",\"What gets reviewed, on what cadence, and what carries its own date.\");add(\"refresh\",\"refresh.body\",\"Body\",\"Platform figures on this page are reviewed and refreshed quarterly. Metrics drawn from live sources (availability and game server deployments) carry their own as-of dates and are updated as measured. Benchmark results are dated to the test that produced them and are not restated as current figures.\");add(\"refresh\",\"refresh.updated\",\"Tile \\xb7 Last updated ({date})\",\"Last updated {date}\");add(\"refresh\",\"refresh.next\",\"Tile \\xb7 Next review ({date})\",\"Next review {date}\");add(\"refresh\",\"refresh.later\",\"Tile \\xb7 After next-review date\",\"or earlier\");const DEFAULTS=Object.fromEntries(TEXT.map(e=>[e.k,e.v]));/** Property name for a text key: \"deployment-rate.unit\" → \"t_deployment_rate_unit\". *//**\n * Keys whose English changed in the 2026-10-21 design update. Their Framer\n * property names get a \"_v2\" suffix so values stored on the page instance (and\n * the outdated Chinese) can't mask the new defaults. Translate these again in\n * Localization. Never remove an entry: that would bring the old value back.\n */const BUMPED=new Set([\"nav.results\",\"nav.method\",\"h1\",\"scale.title\",\"performance.title\",\"performance.sub\",\"reliability.title\",\"reliability.sub\",\"sessions.label\",\"sessions.scope\",\"sessions.methodology\",\"deployment-time.scope\",\"deployment-time.citation\",\"deployment-rate.label\",\"deployment-rate.scope\",\"deployment-rate.citation\",\"deployment-rate.methodology\",\"capacity.label\",\"capacity.citation\",\"capacity.methodology\",\"availability.scope\",\"availability.asOfLabel\",\"availability.citation\",\"availability.methodology\",\"redundancy.methodology\",\"cost.title\",\"cost.sub\",\"scn.sub\",\"cost-shooter-5k.vs\",\"cost-tcg-10k.vs\",\"cost-shooter-5k.citation\",\"cost-tcg-10k.citation\",\"results.title\",\"fill-rate.body\",\"case1.tag\",\"case4.title\",\"case5.tag\",\"method.title\",\"citing.title\",\"refresh.title\",\"refresh.body\"]);const pk=k=>\"t_\"+k.replace(/[^a-zA-Z0-9]/g,\"_\")+(BUMPED.has(k)?\"_v2\":\"\");function makeT(props){return k=>{const v=props[pk(k)];return typeof v===\"string\"&&v.trim()!==\"\"?v:DEFAULTS[k]??k;};}/** \"[text]\" → <a href>. Anything outside brackets renders as plain text. */function rich(s,href){const parts=s.split(/\\[([^\\]]+)\\]/);if(parts.length===1)return s;return parts.map((p,i)=>i%2?/*#__PURE__*/_jsx(\"a\",{href:href,children:p},i):p);}/** Same text with the link brackets removed — for JSON-LD. */const plain=s=>s.replace(/\\[([^\\]]+)\\]/g,\"$1\");/** \"{date}\" → <time>. */function withDate(s,iso,label){const parts=s.split(\"{date}\");if(parts.length===1)return s;return parts.map((p,i)=>/*#__PURE__*/_jsxs(\"span\",{children:[i>0?/*#__PURE__*/_jsx(\"time\",{dateTime:iso,children:label}):null,p]},i));}const SCALE_DEFS=[{id:\"locations\",ldValue:\"615+\",ldUnit:\"locations\",asOf:\"2026-09-18\"},{id:\"fleet-locations\",ldValue:\"58\",ldUnit:\"locations\",asOf:\"2026-09-18\",live:true},{id:\"sessions\",ldValue:\"135000000\",ldUnit:\"deployments\",asOf:\"2026-09-18\"}];const PERFORMANCE_DEFS=[{id:\"deployment-time\",ldValue:\"2\",ldUnit:\"s\",asOf:\"2026-09-18\",live:true},{id:\"deployment-rate\",ldValue:\"40\",ldUnit:\"deployments per second\",asOf:\"2023-11-30\",linkProp:\"benchmarkLink\",bench:true},{id:\"capacity\",ldValue:\"14000000\",ldUnit:\"concurrent sessions\",asOf:\"2023-11-30\",bench:true}];const RELIABILITY_DEFS=[{id:\"availability\",ldValue:\"99.99\",ldUnit:\"%\",asOf:\"2026-10-21\"},{id:\"redundancy\",ldValue:\"17+\",ldUnit:\"providers\",asOf:\"2026-09-18\"}];const RESULT_DEFS=[{id:\"latency\",ldValue:\"46.5-58\",ldUnit:\"%\",sources:[[\"latency.src1\",\"https://edgegap.com/gaming/case-studies/AAA-Studio\"],[\"latency.src2\",\"https://edgegap.com/gaming/case-studies/1v1-report\"]]},{id:\"fill-rate\",ldValue:\"91\",ldUnit:\"%\",sources:[]},{id:\"case-studies\",ldValue:\"44\",ldUnit:\"case studies\",sources:[[\"case-studies.src\",\"https://edgegap.com/gaming/case-studies\"]]}];const SCENARIO_IDS=[\"cost-shooter-5k\",\"cost-tcg-10k\"];const PRICING_DEFS=[{id:\"price-edge\",href:\"https://app.edgegap.com/auth/register\",pillIcon:I.bolt,billIcon:I.clock,icons:[I.globe,I.divide,I.updown,I.checkCircle],// Same targets as the feature links on /pricing (\"\" = not a link)\nlinks:[\"https://edgegap.com/blog/world-s-largest-distributed-network-edgegap-continues-to-expand-with-615-locations-worldwide\",\"https://docs.edgegap.com/learn/orchestration/application-and-versions#resource-requirements\",\"https://edgegap.com/resources/pricing#comparison-hosting\",\"\"]},{id:\"price-fleet\",href:\"https://app.edgegap.com/private-fleet-management/private-fleets/list\",pillIcon:I.cal(13),billIcon:I.cal(16),icons:[I.globe,I.cpu,I.updown,I.cloud],links:[\"https://edgegap.com/platform/fleet-manager#locations\",\"https://docs.edgegap.com/learn/orchestration/private-fleets#hardware\",\"https://docs.edgegap.com/learn/orchestration/private-fleets#hardware\",\"https://docs.edgegap.com/learn/orchestration/private-fleets#overflow-to-cloud\"]}];const NAV_IDS=[[\"nav.scale\",\"scale\"],[\"nav.performance\",\"performance\"],[\"nav.reliability\",\"reliability\"],[\"nav.cost\",\"cost\"],[\"nav.results\",\"customer-results\"],[\"nav.method\",\"methodology\"]];const DEFAULT_BENCHMARK_LINK=\"/resources/performance-benchmark\";function localizeMetrics(defs,t,props){return defs.map(d=>({...d,label:t(d.id+\".label\"),tag:t(d.id+\".tag\"),value:t(d.id+\".value\"),unit:t(d.id+\".unit\"),scope:t(d.id+\".scope\"),window:t(d.id+\".window\"),asOfLabel:t(d.id+\".asOfLabel\"),citation:t(d.id+\".citation\"),methodology:d.id+\".methodology\" in DEFAULTS?t(d.id+\".methodology\"):null,href:d.linkProp?props[d.linkProp]||DEFAULT_BENCHMARK_LINK:\"\"}));}// ─── JSON-LD ────────────────────────────────────────────────────────────────\n/**\n * Built from the same localized strings the page renders, not maintained\n * separately: measurementTechnique IS the methodology line, value IS the\n * machine form of the rendered value, and the anchor URLs are the same ids the\n * cards carry. Link brackets are stripped.\n *\n * Framer server-renders this component, so the block lands in the served HTML.\n * Verify after any deploy with:\n *   curl -s <page url> | grep -c 'application/ld+json'\n */const PAGE_URL=\"https://edgegap.com/platform/platform-data\";const ORG_ID=\"https://edgegap.com/#organization\";function buildGraph(asOf,metrics,results,t){const measured=[...metrics.map(m=>({\"@type\":\"PropertyValue\",name:m.label,value:m.ldValue,unitText:m.ldUnit,measurementTechnique:plain(m.methodology??m.scope),url:PAGE_URL+\"#\"+m.id})),...results.map(r=>({\"@type\":\"PropertyValue\",name:r.label,value:r.ldValue,unitText:r.ldUnit,measurementTechnique:r.body,url:PAGE_URL+\"#\"+r.id}))];return{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Dataset\",\"@id\":PAGE_URL+\"#dataset\",name:noStars(t(\"h1\")),description:\"Published operating metrics for the Edgegap game server orchestration platform, each with the method behind it: what is measured, over what window, and what is excluded.\",url:PAGE_URL,dateModified:asOf,license:\"https://creativecommons.org/licenses/by/4.0/\",isAccessibleForFree:true,keywords:[\"game server hosting\",\"game server orchestration\",\"edge deployment\",\"multiplayer infrastructure\",\"dedicated game servers\",\"matchmaking\"],creator:{\"@id\":ORG_ID},variableMeasured:measured},{\"@type\":\"Organization\",\"@id\":ORG_ID,name:\"Edgegap\",url:\"https://edgegap.com/\",logo:\"https://edgegap.com/logo.png\",foundingDate:\"2019\",description:\"Game server orchestration and managed infrastructure for multiplayer games, deploying on demand across 615+ Edge Cloud locations worldwide.\",sameAs:[\"https://www.linkedin.com/company/edgegap\",\"https://x.com/edgegap\",\"https://github.com/edgegap\",\"https://discord.gg/edgegap\"]},{\"@type\":\"WebPage\",\"@id\":PAGE_URL+\"#webpage\",url:PAGE_URL,name:noStars(t(\"h1\")),description:t(\"lede\"),about:{\"@id\":PAGE_URL+\"#dataset\"},lastReviewed:asOf,publisher:{\"@id\":ORG_ID}}]};}/** Escapes the one sequence that could close the tag early. */function ldJson(graph){return JSON.stringify(graph).replace(/</g,\"\\\\u003c\");}// ─── PIECES ─────────────────────────────────────────────────────────────────\n/** \"*text*\" → highlighted span (heading accent words, the savings pill). */function hl(s,cls){const parts=s.split(/\\*([^*]+)\\*/);if(parts.length===1)return s;return parts.map((p,i)=>i%2?cls===\"pd-save\"?/*#__PURE__*/_jsx(\"mark\",{className:cls,children:p},i):/*#__PURE__*/_jsx(\"span\",{className:cls,children:p},i):p);}/** Same text without the highlight stars — for JSON-LD and attributes. */const noStars=s=>s.replace(/\\*([^*]+)\\*/g,\"$1\");function MetricCard({m,howLabel}){return /*#__PURE__*/_jsxs(\"article\",{id:m.id,className:\"pd-card\"+(m.bench?\" pd-card--bench\":\"\"),children:[/*#__PURE__*/_jsxs(\"span\",{className:\"pd-pill\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-dot\"+(m.live?\" pd-dot--live\":\"\")}),m.tag]}),/*#__PURE__*/_jsx(\"h3\",{children:m.label}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-nu\",children:[/*#__PURE__*/_jsx(\"b\",{className:\"pd-num\",\"data-metric-value\":true,children:m.value}),/*#__PURE__*/_jsx(\"span\",{className:\"pd-unit\",\"data-metric-unit\":true,children:m.unit})]}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-desc\",children:m.scope}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-foot\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-win\",children:m.window}),/*#__PURE__*/_jsx(\"span\",{className:\"pd-asof\",children:/*#__PURE__*/_jsx(\"time\",{dateTime:m.asOf,children:m.asOfLabel})})]}),/*#__PURE__*/_jsxs(\"a\",{className:\"pd-more\",href:`#${m.id}-methodology`,children:[howLabel,I.arrow]})]});}function Head({id,title,sub}){return /*#__PURE__*/_jsxs(\"div\",{className:\"pd-head\",children:[/*#__PURE__*/_jsx(\"h2\",{id:`${id}-h`,children:hl(title,\"pd-hl\")}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-sub\",children:sub})]});}function Section({id,title,sub,children}){return /*#__PURE__*/_jsxs(\"section\",{id:id,className:\"pd-sec\",\"aria-labelledby\":`${id}-h`,children:[/*#__PURE__*/_jsx(Head,{id:id,title:title,sub:sub}),children]});}/** Plan card, 1:1 with the /pricing component. Unit splits at the last \"/\". */function PlanCard({p,compare}){const cut=p.unit.lastIndexOf(\"/\");const u1=cut>0?p.unit.slice(0,cut).trim():\"\";const u2=cut>0?p.unit.slice(cut):p.unit;return /*#__PURE__*/_jsx(\"div\",{className:\"pd-pc\",children:/*#__PURE__*/_jsxs(\"article\",{className:\"pd-pc-in\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"pd-pc-top\",children:[/*#__PURE__*/_jsx(\"h3\",{children:p.name}),/*#__PURE__*/_jsxs(\"span\",{className:\"pd-pc-pill\",children:[p.pillIcon,p.tag]})]}),/*#__PURE__*/_jsxs(\"p\",{className:\"pd-pc-price\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-pc-num\",children:p.amount}),/*#__PURE__*/_jsxs(\"span\",{className:\"pd-pc-unit\",children:[u1?/*#__PURE__*/_jsx(\"span\",{children:u1}):null,/*#__PURE__*/_jsx(\"b\",{children:u2})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-pc-inset\",children:[p.billIcon,/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"b\",{children:p.billTitle}),/*#__PURE__*/_jsx(\"span\",{children:p.billBody})]})]}),/*#__PURE__*/_jsx(\"ul\",{className:\"pd-pc-feat\",children:p.points.map((pt,i)=>/*#__PURE__*/_jsx(\"li\",{children:p.links[i]?/*#__PURE__*/_jsxs(\"a\",{className:\"pd-pc-fl\",href:p.links[i],children:[p.icons[i],pt]}):/*#__PURE__*/_jsxs(\"span\",{className:\"pd-pc-fl\",children:[p.icons[i],pt]})},i))}),/*#__PURE__*/_jsx(\"a\",{className:\"pd-pbtn\",href:p.href,children:/*#__PURE__*/_jsx(\"span\",{children:p.cta})}),/*#__PURE__*/_jsxs(\"a\",{className:\"pd-pc-cmp\",href:\"https://edgegap.com/resources/pricing#comparison-hosting\",children:[I.plus,compare]})]})});}/** Whole row is one link; the black \"Case study\" button lights with the row. */function CaseRow({c,img,btn}){// ControlType.ResponsiveImage hands back {src, srcSet, alt}, not a node.\nconst src=c.cover||img?.src;return /*#__PURE__*/_jsxs(\"a\",{className:\"pd-case\",href:c.href,children:[/*#__PURE__*/_jsx(\"div\",{className:\"pd-cover\",children:src?/*#__PURE__*/_jsx(\"img\",{src:src,srcSet:c.cover?undefined:img?.srcSet,alt:\"\",loading:\"lazy\",width:500,height:300}):null}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{className:\"pd-tag\",children:c.tag}),/*#__PURE__*/_jsx(\"h3\",{children:c.title}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-studio\",children:c.studio})]}),/*#__PURE__*/_jsxs(\"span\",{className:\"pd-go\",children:[btn,I.arrow]})]});}/** \"Label {date} tail\" → small label over a bold date (Keeping current tiles). */function DateTile({s,iso,label,dot,later}){const[before,after=\"\"]=s.split(\"{date}\");return /*#__PURE__*/_jsxs(\"div\",{className:\"pd-dt\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"pd-dt-l\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-dot\"+dot}),before.trim()]}),/*#__PURE__*/_jsxs(\"b\",{children:[/*#__PURE__*/_jsx(\"time\",{dateTime:iso,children:label}),after,later?/*#__PURE__*/_jsx(\"span\",{className:\"pd-later\",children:later}):null]})]});}/** Opens a <details> when its id (or a child's id) is the fragment target. */function useHashOpen(){useEffect(()=>{function open(){const id=window.location.hash.slice(1);if(!id)return;const el=document.getElementById(id);if(!el)return;const d=el.closest(\"details\");if(d&&!d.open)d.open=true;el.scrollIntoView({block:\"start\"});}open();window.addEventListener(\"hashchange\",open);return()=>window.removeEventListener(\"hashchange\",open);},[]);}/** Marks the jump-nav link of the section in view. Links stay plain anchors. */function useActiveSection(ids){const[active,setActive]=useState(ids[0]);useEffect(()=>{if(typeof IntersectionObserver===\"undefined\")return;const els=[];ids.forEach(id=>{const el=document.getElementById(id);if(el)els.push(el);});const io=new IntersectionObserver(entries=>entries.forEach(e=>{if(e.isIntersecting)setActive(e.target.id);}),{rootMargin:\"-45% 0px -50% 0px\"});els.forEach(el=>io.observe(el));return()=>io.disconnect();},[]);return active;}// ─── PAGE ───────────────────────────────────────────────────────────────────\nexport default function PlatformData(props){const{asOf,asOfLabel,nextDue,nextDueLabel,showOpenItems,pricingCards,metricsOnly}=props;const caseImages=Array.isArray(props.caseImages)?props.caseImages:[];useHashOpen();const active=useActiveSection(NAV_IDS.map(([,id])=>id));const hasCards=Array.isArray(pricingCards)&&pricingCards.length>0;const t=makeT(props);const SCALE=localizeMetrics(SCALE_DEFS,t,props);const PERFORMANCE=localizeMetrics(PERFORMANCE_DEFS,t,props);const RELIABILITY=localizeMetrics(RELIABILITY_DEFS,t,props);const ALL_METRICS=[...SCALE,...PERFORMANCE,...RELIABILITY];const RESULT_METRICS=RESULT_DEFS.map(r=>({...r,label:t(r.id+\".label\"),figure:t(r.id+\".figure\"),body:t(r.id+\".body\"),citation:t(r.id+\".citation\"),sources:r.sources.map(([k,href])=>({label:t(k),href}))}));const SCENARIOS=SCENARIO_IDS.map(id=>({id,title:t(id+\".title\"),cost:t(id+\".cost\"),per:t(id+\".per\"),unitCost:t(id+\".unitCost\"),vs:t(id+\".vs\"),citation:t(id+\".citation\"),inputs:INPUT_KEYS.map(([k])=>[t(\"in.\"+k),t(id+\".in.\"+k)])}));const PRICING=PRICING_DEFS.map(p=>({...p,name:t(p.id+\".name\"),tag:t(p.id+\".tag\"),amount:t(p.id+\".amount\"),unit:t(p.id+\".unit\"),billTitle:t(p.id+\".billTitle\"),billBody:t(p.id+\".billBody\"),points:[1,2,3,4].map(n=>t(p.id+\".point\"+n)),cta:t(p.id+\".cta\")}));const LOCAL_CASES=CASES.map(c=>({...c,tag:t(c.key+\".tag\"),title:t(c.key+\".title\")}));const howLabel=t(\"howMeasure\");return /*#__PURE__*/_jsxs(\"main\",{className:\"pd\"+(metricsOnly?\" pd--bare\":\"\"),children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),metricsOnly?null:/*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:ldJson(buildGraph(asOf,ALL_METRICS,RESULT_METRICS,t))}}),metricsOnly?null:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"a\",{className:\"pd-skip\",href:\"#scale\",children:t(\"skip\")}),/*#__PURE__*/_jsx(\"header\",{className:\"pd-hero\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"pd-hero-in\",children:[/*#__PURE__*/_jsx(\"h1\",{children:hl(t(\"h1\"),\"pd-gt\")}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-lede\",children:t(\"lede\")})]})}),/*#__PURE__*/_jsx(\"nav\",{className:\"pd-jump\",\"aria-label\":t(\"navAria\"),children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-jump-in\",children:NAV_IDS.map(([k,id])=>/*#__PURE__*/_jsx(\"a\",{href:`#${id}`,className:\"pd-jl\"+(active===id?\" on\":\"\"),\"aria-current\":active===id?\"true\":undefined,children:t(k)},id))})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-in\",children:[metricsOnly?null:/*#__PURE__*/_jsxs(_Fragment,{children:[showOpenItems?/*#__PURE__*/_jsxs(\"div\",{className:\"pd-todo\",children:[/*#__PURE__*/_jsxs(\"p\",{children:[/*#__PURE__*/_jsx(\"b\",{children:\"Build note — remove before launch.\"}),\" \",\"Still open from the Session 1 audit:\"]}),/*#__PURE__*/_jsx(\"ul\",{children:OPEN_ITEMS.map(x=>/*#__PURE__*/_jsx(\"li\",{children:x},x))})]}):null,/*#__PURE__*/_jsxs(\"p\",{className:\"pd-upd\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-dot pd-dot--live\"}),/*#__PURE__*/_jsx(\"span\",{children:withDate(t(\"heroChip\"),asOf,asOfLabel)})]})]}),/*#__PURE__*/_jsx(Section,{id:\"scale\",title:t(\"scale.title\"),sub:t(\"scale.sub\"),children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-g3\",children:SCALE.map(m=>/*#__PURE__*/_jsx(MetricCard,{m:m,howLabel:howLabel},m.id))})}),/*#__PURE__*/_jsx(Section,{id:\"performance\",title:t(\"performance.title\"),sub:t(\"performance.sub\"),children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-g3\",children:PERFORMANCE.map(m=>/*#__PURE__*/_jsx(MetricCard,{m:m,howLabel:howLabel},m.id))})}),/*#__PURE__*/_jsxs(Section,{id:\"reliability\",title:t(\"reliability.title\"),sub:t(\"reliability.sub\"),children:[/*#__PURE__*/_jsx(\"div\",{className:\"pd-g2\",children:RELIABILITY.map(m=>/*#__PURE__*/_jsx(MetricCard,{m:m,howLabel:howLabel},m.id))}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-note\",children:rich(t(\"reliability.note\"),\"https://status.edgegap.com/\")})]}),metricsOnly?null:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(Section,{id:\"cost\",title:t(\"cost.title\"),sub:t(\"cost.sub\"),children:[/*#__PURE__*/_jsx(\"div\",{className:\"pd-pgrid\",children:hasCards?pricingCards.map((card,i)=>/*#__PURE__*/_jsx(\"div\",{children:card},i)):PRICING.map(p=>/*#__PURE__*/_jsx(PlanCard,{p:p,compare:t(\"cost.compare\")},p.id))}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-subh\",children:[/*#__PURE__*/_jsx(\"h3\",{id:\"cost-scenarios\",children:t(\"scn.title\")}),/*#__PURE__*/_jsx(\"p\",{children:t(\"scn.sub\")})]}),/*#__PURE__*/_jsx(\"div\",{className:\"pd-g2\",children:SCENARIOS.map(sc=>/*#__PURE__*/_jsxs(\"article\",{className:\"pd-card pd-scn\",id:sc.id,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"pd-pill\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pd-dot pd-dot--mod\"}),t(\"scn.pill\")]}),/*#__PURE__*/_jsx(\"h3\",{children:sc.title}),/*#__PURE__*/_jsxs(\"p\",{className:\"pd-price\",children:[/*#__PURE__*/_jsx(\"b\",{children:sc.cost}),/*#__PURE__*/_jsx(\"span\",{className:\"pd-unit\",children:sc.per})]}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-per\",children:sc.unitCost}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-desc\",children:hl(sc.vs,\"pd-save\")}),/*#__PURE__*/_jsx(\"dl\",{className:\"pd-kv\",children:sc.inputs.map(([k,v],i)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"dt\",{children:k}),/*#__PURE__*/_jsx(\"dd\",{children:v})]},i))}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-asof pd-run\",children:withDate(t(\"scn.run\"),asOf,asOfLabel)})]},sc.id))}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-band\",children:[I.calc,/*#__PURE__*/_jsxs(\"div\",{className:\"pd-band-tx\",children:[/*#__PURE__*/_jsx(\"p\",{children:t(\"calc.lede\")}),/*#__PURE__*/_jsx(\"p\",{children:t(\"calc.cta\")})]}),/*#__PURE__*/_jsx(\"a\",{className:\"pd-btn pd-btn--w\",href:\"https://edgegap.com/resources/pricing/calculator\",children:/*#__PURE__*/_jsx(\"span\",{children:t(\"calc.btn\")})})]}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-note\",children:rich(t(\"cost.quote\"),\"mailto:sales@edgegap.com\")})]}),/*#__PURE__*/_jsxs(Section,{id:\"customer-results\",title:t(\"results.title\"),sub:t(\"results.sub\"),children:[/*#__PURE__*/_jsx(\"div\",{className:\"pd-g3\",children:RESULT_METRICS.map(r=>/*#__PURE__*/_jsxs(\"article\",{id:r.id,className:\"pd-card pd-stat\",children:[/*#__PURE__*/_jsx(\"h3\",{children:r.label}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-num\",\"aria-hidden\":\"true\",children:r.figure}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-desc\",children:r.body}),r.sources.length?/*#__PURE__*/_jsx(\"div\",{className:\"pd-srcs\",children:r.sources.map(s=>/*#__PURE__*/_jsxs(\"a\",{className:\"pd-more\",href:s.href,children:[s.label,I.arrow]},s.href))}):null]},r.id))}),/*#__PURE__*/_jsx(\"div\",{className:\"pd-cases\",children:LOCAL_CASES.map(c=>/*#__PURE__*/_jsx(CaseRow,{c:c,img:caseImages[c.slot],btn:t(\"case.btn\")},c.key))}),/*#__PURE__*/_jsx(\"p\",{className:\"pd-note\",children:rich(t(\"case.index\"),\"https://edgegap.com/gaming/case-studies\")})]})]}),/*#__PURE__*/_jsx(Section,{id:\"methodology\",title:t(\"method.title\"),sub:t(\"method.sub\"),children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-acc\",children:ALL_METRICS.map(m=>/*#__PURE__*/_jsxs(\"details\",{className:\"pd-detail\",id:`${m.id}-methodology`,children:[/*#__PURE__*/_jsx(\"summary\",{\"data-n\":t(m.id+\".short\"),children:m.label}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-body\",children:[/*#__PURE__*/_jsx(\"p\",{children:m.href?rich(m.methodology??m.scope,m.href):plain(m.methodology??m.scope)}),/*#__PURE__*/_jsx(\"a\",{className:\"pd-back\",href:`#${m.id}`,children:t(\"method.back\")})]})]},m.id))})}),metricsOnly?null:/*#__PURE__*/_jsx(Section,{id:\"citing\",title:t(\"citing.title\"),sub:t(\"citing.sub\"),children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-acc pd-acc--plain\",children:/*#__PURE__*/_jsxs(\"details\",{className:\"pd-detail\",children:[/*#__PURE__*/_jsx(\"summary\",{children:t(\"citing.all\")}),/*#__PURE__*/_jsx(\"div\",{className:\"pd-body\",children:/*#__PURE__*/_jsx(\"div\",{className:\"pd-cites\",children:[...ALL_METRICS,...RESULT_METRICS,...SCENARIOS].map(m=>/*#__PURE__*/_jsxs(\"div\",{className:\"pd-cite\",children:[/*#__PURE__*/_jsx(\"h3\",{children:m.label??m.title}),/*#__PURE__*/_jsxs(\"q\",{children:[m.citation,\" (\",/*#__PURE__*/_jsx(\"a\",{href:PAGE_URL+\"#\"+m.id,children:t(\"citing.source\")}),\")\"]})]},m.id))})})]})})}),/*#__PURE__*/_jsx(Section,{id:\"refresh\",title:t(\"refresh.title\"),sub:t(\"refresh.sub\"),children:/*#__PURE__*/_jsxs(\"div\",{className:\"pd-refresh\",children:[/*#__PURE__*/_jsx(\"p\",{children:t(\"refresh.body\")}),/*#__PURE__*/_jsxs(\"div\",{className:\"pd-chips\",children:[/*#__PURE__*/_jsx(DateTile,{s:t(\"refresh.updated\"),iso:asOf,label:asOfLabel,dot:\" pd-dot--live\",later:null}),/*#__PURE__*/_jsx(DateTile,{s:t(\"refresh.next\"),iso:nextDue,label:nextDueLabel,dot:\" pd-dot--mod\",later:t(\"refresh.later\")})]})]})})]})]});}PlatformData.defaultProps={asOf:\"2026-09-30\",asOfLabel:\"30 September 2026\",nextDue:\"2027-01-15\",nextDueLabel:\"15 January 2027\",benchmarkLink:DEFAULT_BENCHMARK_LINK,showOpenItems:false,metricsOnly:false,pricingCards:[],caseImages:[],textGroup:\"page\",...Object.fromEntries(TEXT.map(e=>[pk(e.k),e.v]))};/**\n * Set to false if a text field ever fails to show up in Framer's Localization\n * panel: every text control is then always visible instead of filtered by the\n * \"Edit text\" picker. The picker only changes what the property panel shows.\n */const GROUP_PANEL=true;const TEXT_CONTROLS=Object.fromEntries(TEXT.map(e=>[pk(e.k),{type:ControlType.String,title:e.title,defaultValue:e.v,displayTextArea:e.v.length>60,hidden:GROUP_PANEL?p=>p.textGroup!==\"all\"&&p.textGroup!==e.g:undefined}]));addPropertyControls(PlatformData,{asOf:{type:ControlType.String,title:\"As of (ISO)\"},asOfLabel:{type:ControlType.String,title:\"As of (shown)\"},nextDue:{type:ControlType.String,title:\"Next due (ISO)\"},nextDueLabel:{type:ControlType.String,title:\"Next due (shown)\"},// Target of the [bracketed] words in the deployment-rate methodology.\n// Pick the page in Framer so it follows the visitor's locale.\nbenchmarkLink:{type:ControlType.Link,title:\"Benchmark link\",defaultValue:DEFAULT_BENCHMARK_LINK},showOpenItems:{type:ControlType.Boolean,title:\"Build notes\",defaultValue:false},// Reuse elsewhere: keeps the measured sections, drops the page framing.\nmetricsOnly:{type:ControlType.Boolean,title:\"Metrics only\",enabledTitle:\"On\",disabledTitle:\"Off\",defaultValue:false},pricingCards:{type:ControlType.Array,title:\"Pricing cards\",maxCount:2,control:{type:ControlType.ComponentInstance}},// 500×300 covers, IN CASES ORDER:\n// 1 Slipstream · 2 Ghosts of Tabor · 3 Bloody Bastards · 4 Loftia · 5 Zombonk\ncaseImages:{type:ControlType.Array,title:\"Case covers\",maxCount:5,control:{type:ControlType.ResponsiveImage}},// ── Page text (translatable) ──\ntextGroup:{type:ControlType.Enum,title:\"Edit text\",options:GROUPS.map(([v])=>v),optionTitles:GROUPS.map(([,l])=>l),defaultValue:\"page\",hidden:()=>!GROUP_PANEL},...TEXT_CONTROLS});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PlatformData\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./platform_data.map"],"mappings":"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"}