// ==UserScript== // @name Backloggd Plus // @name:ru Backloggd Plus // @name:zh-CN Backloggd Plus // @name:es Backloggd Plus // @name:pt-BR Backloggd Plus // @name:de Backloggd Plus // @name:fr Backloggd Plus // @name:ja Backloggd Plus // @name:ko Backloggd Plus // @name:pl Backloggd Plus // @namespace https://github.com/NemoKing1210/backloggd-plus // @version 0.7.79 // @author NemoKing1210 // @description Extends Backloggd and adds a Backloggd button on Steam game pages // @description:ru Расширяет Backloggd и добавляет кнопку Backloggd на страницах игр Steam // @description:zh-CN 扩展 Backloggd:更多游戏信息、更丰富的界面与使用体验 // @description:es Amplía Backloggd con más información de juegos, UI enriquecida y mejoras QoL // @description:pt-BR Amplia o Backloggd com mais info de jogos, UI enriquecida e melhorias QoL // @description:de Erweitert Backloggd um mehr Spielinfos, reichere UI und QoL-Features // @description:fr Enrichit Backloggd avec plus d’infos jeux, une UI améliorée et des QoL // @description:ja Backloggdを拡張:追加のゲーム情報、UI強化、QoL機能 // @description:ko Backloggd 확장: 추가 게임 정보, 풍부한 UI, QoL 기능 // @description:pl Rozszerza Backloggd o więcej informacji, bogatsze UI i usprawnienia QoL // @license MIT // @icon https://www.backloggd.com/favicon.ico // @homepage https://github.com/NemoKing1210/backloggd-plus // @homepageURL https://github.com/NemoKing1210/backloggd-plus // @source https://github.com/NemoKing1210/backloggd-plus.git // @supportURL https://github.com/NemoKing1210/backloggd-plus/issues // @match https://www.backloggd.com/* // @match https://backloggd.com/* // @match https://store.steampowered.com/app/* // @match https://steamcommunity.com/app/* // @match https://steamdb.info/app/* // @tag backloggd // @tag games // @connect www.backloggd.com // @connect backloggd.com // @connect store.steampowered.com // @connect api.steampowered.com // @connect steamdb.info // @connect gamestatus.info // @connect howlongtobeat.com // @connect api.opencritic.com // @connect opencritic.com // @connect html.duckduckgo.com // @connect www.protondb.com // @connect protondb.com // @connect cdn.jsdelivr.net // @connect latest.currency-api.pages.dev // @connect translate.googleapis.com // @grant GM_addStyle // @grant GM_getValue // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-idle // @noframes // ==/UserScript== (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const a=document.createElement("style");a.textContent=e,document.head.append(a)})(' turbo-frame#game-stats[data-blp-hide-game-stats="1"]{display:none!important}html[data-blp-hide-homepage-fuse="1"] .fuse-unit,html[data-blp-hide-homepage-fuse="1"] .min-fuse-height[data-fuse],html[data-blp-hide-homepage-fuse="1"] .row:has(>.col>.fuse-unit),html[data-blp-hide-homepage-fuse="1"] .row:has(>.col>.min-fuse-height[data-fuse]),html[data-blp-hide-homepage-fuse="1"] .row.d-sm-flex:has(>.col>[data-fuse]),html[data-blp-hide-homepage-fuse="1"] .row.d-none:has(>.col>[data-fuse]){display:none!important}html[data-blp-floating-header="1"] body>header,html[data-blp-floating-header="1"] header:has(#primary-nav){position:sticky;top:0;z-index:1040;padding:10px 12px 6px;margin:0;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible}html[data-blp-floating-header="1"] #primary-nav.navbar{position:relative;isolation:isolate;max-width:1180px;margin-inline:auto;padding:.45rem .85rem;border-radius:16px;border:1px solid rgba(255,255,255,.1)!important;background:transparent!important;box-shadow:0 14px 40px #00000061,inset 0 1px #ffffff0f;overflow:visible;transition:box-shadow .28s ease,border-color .28s ease,padding .28s ease,transform .28s ease}html[data-blp-floating-header="1"] #primary-nav.navbar:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(61,184,154,.1) 0%,transparent 42%),#12161eb8;backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);pointer-events:none;z-index:-1;transition:background-color .28s ease,background .28s ease}html[data-blp-floating-header="1"][data-blp-header-compact="1"] #primary-nav.navbar{padding:.28rem .75rem;border-color:#ffffff24!important;box-shadow:0 10px 32px #0000007a,inset 0 1px #ffffff0d}html[data-blp-floating-header="1"][data-blp-header-compact="1"] #primary-nav.navbar:before{background:linear-gradient(135deg,rgba(61,184,154,.12) 0%,transparent 40%),#0e1118e0}html[data-blp-floating-header="1"] #primary-nav .navbar-brand{font-weight:700;letter-spacing:-.02em;text-shadow:0 1px 12px rgba(61,184,154,.25);transition:color .2s ease,opacity .2s ease}html[data-blp-floating-header="1"] #primary-nav .navbar-brand:hover{color:var(--blp-accent, #3db89a)!important}html[data-blp-floating-header="1"] #primary-nav .nav-link{border-radius:8px;padding-inline:.65rem;transition:background-color .18s ease,color .18s ease}html[data-blp-floating-header="1"] #primary-nav .nav-link:hover,html[data-blp-floating-header="1"] #primary-nav .nav-link:focus{background:#ffffff0f}html[data-blp-floating-header="1"] #primary-nav .form-control.search-bar{border-radius:10px 0 0 10px!important;background:#00000047!important;border-color:#ffffff1a!important;color:var(--blp-text, #e8eaed)!important;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}html[data-blp-floating-header="1"] #primary-nav .search-btn{border-radius:0 10px 10px 0!important;background:#00000047!important;border-color:#ffffff1a!important;color:var(--blp-muted, #9aa0a6)!important}html[data-blp-floating-header="1"] #primary-nav .form-control.search-bar:focus{background:#0006!important;border-color:#3db89a73!important;box-shadow:0 0 0 3px #3db89a24}html[data-blp-floating-header="1"] #primary-nav .form-control.search-bar:focus+.input-group-append .search-btn,html[data-blp-floating-header="1"] #primary-nav .input-group:focus-within .search-btn{border-color:#3db89a73!important;color:var(--blp-accent, #3db89a)!important}html[data-blp-floating-header="1"] #primary-nav .dropdown-menu{margin-top:0!important;border-radius:12px!important;border:1px solid rgba(255,255,255,.1)!important;background:#12161ef0!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 16px 40px #00000073;overflow:hidden}html[data-blp-floating-header="1"] #primary-nav .dropdown-item{transition:background-color .15s ease,color .15s ease}html[data-blp-floating-header="1"] #primary-nav .dropdown-item:hover,html[data-blp-floating-header="1"] #primary-nav .dropdown-item:focus{background:#3db89a1f!important;color:var(--blp-accent, #3db89a)!important}html[data-blp-floating-header="1"] #primary-nav .btn-main{border-radius:999px!important;box-shadow:0 4px 14px #3db89a47;transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}html[data-blp-floating-header="1"] #primary-nav .btn-main:hover,html[data-blp-floating-header="1"] #primary-nav .btn-main:focus-visible{filter:brightness(1.06);box-shadow:0 6px 18px #3db89a5c;transform:translateY(-1px)}html[data-blp-floating-header="1"] #primary-nav .navbar-toggler{border-radius:10px;border-color:#ffffff24!important;padding:.35rem .5rem}html[data-blp-floating-header="1"] #primary-nav .navbar-toggler:focus{outline:none;box-shadow:0 0 0 3px #3db89a33}html[data-blp-floating-header="1"] #primary-nav #mobile-user-nav .nav-link{border-radius:10px;background:#ffffff08;margin-bottom:.35rem}@media(max-width:767.98px){html[data-blp-floating-header="1"] body>header,html[data-blp-floating-header="1"] header:has(#primary-nav){padding:8px 8px 4px}html[data-blp-floating-header="1"] #primary-nav.navbar{border-radius:14px;padding:.4rem .65rem}}@media(prefers-reduced-motion:reduce){html[data-blp-floating-header="1"] #primary-nav.navbar,html[data-blp-floating-header="1"] #primary-nav .nav-link,html[data-blp-floating-header="1"] #primary-nav .btn-main{transition:none!important}}:root{--blp-accent: #3db89a;--blp-text: #e8eaed;--blp-muted: #9aa0a6;--blp-border: rgba(255, 255, 255, .08);--blp-mc-high: #6c3;--blp-mc-mid: #fc3;--blp-mc-low: #f67;--blp-rev-overwhelming: #66c0f4;--blp-rev-positive: #66c0f4;--blp-rev-mixed: #b9a404;--blp-rev-negative: #c35c2c;--blp-owned: #beee11;--blp-owned-bg: #3d4f1a;--blp-owned-border: rgba(190, 238, 17, .35);--blp-wishlist: #67c1f5;--blp-wishlist-bg: #2a4a63;--blp-wishlist-border: rgba(103, 193, 245, .4);--blp-gs-ready: #beee11;--blp-gs-ready-bg: #4c6b22;--blp-gs-partial: #ffb321;--blp-gs-partial-bg: #5a4630;--blp-gs-pending: #ffb321;--blp-gs-pending-bg: #5a4630;--blp-gs-old: #fecaca;--blp-gs-old-bg: #5a3030;--blp-gs-today: #67c1f5;--blp-gs-today-bg: #2a4a63;--blp-gs-unknown: #b0aeac;--blp-gs-unknown-bg: #3a4149;--blp-skel: rgba(128, 128, 128, .22);--blp-skel-shine: rgba(255, 255, 255, .18)}[data-blp-enrich] .blp-ext-link,.blp-settings .blp-toggle__label{display:inline-flex;align-items:center;gap:.35em;vertical-align:middle}[data-blp-enrich] .blp-favicon,.blp-settings .blp-favicon{width:14px;height:14px;border-radius:2px;flex:0 0 auto;object-fit:contain}#blp-steam-backloggd-btn{margin-right:2px}#blp-steam-backloggd-btn img.ico16{width:16px;height:16px;vertical-align:middle;border-radius:2px}#blp-nav-settings,.blp-export-btn.btn-main,.blp-export-log-btn.btn-main{white-space:nowrap;vertical-align:middle;background-color:var(--blp-accent)!important;border-color:transparent!important;color:#0b1210!important;font-weight:600}#blp-nav-settings:hover,#blp-nav-settings:focus-visible,.blp-export-btn.btn-main:hover,.blp-export-btn.btn-main:focus-visible,.blp-export-log-btn.btn-main:hover,.blp-export-log-btn.btn-main:focus-visible{filter:brightness(1.06);color:#0b1210!important}#add-a-game+#blp-nav-settings{min-height:var(--blp-nav-btn-h, unset)}#blp-nav-settings.nav-item,li.nav-item>#blp-nav-settings{margin-left:.5rem}#game-profile h1 .blp-title-icon-wrap,.game-title-section h1 .blp-title-icon-wrap,h1 .blp-title-icon-wrap{display:inline-block;position:relative;width:32px;height:32px;vertical-align:middle;margin-right:.45em;border-radius:5px;overflow:hidden;box-shadow:0 0 0 1px #ffffff24;background:#8080802e}#game-body .game-title-section h1 .blp-game-id,.game-title-section h1 .blp-game-id{display:inline;margin:0 0 0 .35em;padding:0;border:0;background:none;color:inherit;opacity:.55;font:inherit;font-weight:500;letter-spacing:.02em;cursor:pointer;vertical-align:baseline;transition:opacity .15s ease}#game-body .game-title-section h1 .blp-game-id:hover,.game-title-section h1 .blp-game-id:hover,#game-body .game-title-section h1 .blp-game-id:focus-visible,.game-title-section h1 .blp-game-id:focus-visible{opacity:.9;text-decoration:underline;outline:none}.blp-title-icon-wrap .blp-title-icon-skel{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--blp-skel) 0%,var(--blp-skel-shine) 45%,var(--blp-skel) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite;transition:opacity .28s ease}.blp-title-icon-wrap:not(.is-loading) .blp-title-icon-skel{opacity:0;pointer-events:none}#game-profile h1 .blp-title-icon,.game-title-section h1 .blp-title-icon,h1 .blp-title-icon{position:relative;display:block;width:32px;height:32px;border-radius:5px;object-fit:cover;opacity:0;transition:opacity .35s ease}#game-profile h1 .blp-title-icon-wrap .blp-title-icon.is-ready,.game-title-section h1 .blp-title-icon-wrap .blp-title-icon.is-ready,h1 .blp-title-icon-wrap .blp-title-icon.is-ready,.blp-title-icon-wrap .blp-title-icon.is-ready{opacity:1}.col-cover .blp-steamdb-cover,#logging-sidebar-section .blp-steamdb-cover,.blp-steamdb-cover{position:relative;margin-top:.75rem;width:100%;max-width:100%;line-height:0;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#00000040}.blp-steamdb-cover.is-loading{aspect-ratio:460 / 215;min-height:72px}.blp-steamdb-cover .blp-steamdb-cover-skel{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:0;background:linear-gradient(90deg,var(--blp-skel) 0%,var(--blp-skel-shine) 45%,var(--blp-skel) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite;transition:opacity .32s ease;z-index:1}.blp-steamdb-cover:not(.is-loading) .blp-steamdb-cover-skel{opacity:0;pointer-events:none}.blp-steamdb-cover img{display:block;width:100%;height:auto;max-height:none;object-fit:cover;object-position:center top;background:#1a1d24;opacity:0;transition:opacity .4s ease}.blp-steamdb-cover img.is-ready{opacity:1}.blp-steamdb-cover img.blp-steamdb-cover__logo{max-height:110px;object-fit:contain;object-position:center;padding:.65rem .5rem;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.06),transparent 65%)}.blp-steam-gallery{margin-top:1rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.blp-steam-gallery__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.blp-steam-gallery__title{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blp-muted)}.blp-steam-gallery__link{font-size:.78rem;color:var(--back-interact-secondary, #839df9);text-decoration:none}.blp-steam-gallery__link:hover{color:var(--back-text, #badefc);text-decoration:underline}.blp-steam-gallery__track{display:flex;flex-wrap:nowrap;gap:.5rem;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:.35rem;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) rgba(255,255,255,.06)}.blp-steam-gallery__track::-webkit-scrollbar{height:6px}.blp-steam-gallery__track::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}.blp-steam-gallery__track::-webkit-scrollbar-thumb{background:#ffffff47;border-radius:999px}.blp-steam-gallery__skel{flex:0 0 auto;width:min(42vw,220px);aspect-ratio:16 / 9;border-radius:6px;background:linear-gradient(90deg,var(--blp-skel) 0%,var(--blp-skel-shine) 45%,var(--blp-skel) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite}.blp-steamdb-cover.is-gallery{cursor:zoom-in}.blp-steamdb-cover.is-gallery:focus-visible{outline:2px solid var(--back-interact-secondary, #839df9);outline-offset:2px}.blp-export-wrap{margin-top:.55rem;width:100%}.blp-export-wrap .blp-export-btn{width:100%}#log-editor-footer .blp-export-log-wrap{display:flex;align-items:center}.blp-export-backdrop{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c}.blp-export-dialog{width:min(440px,100%);max-height:min(90vh,720px);display:flex;flex-direction:column;overflow:hidden;background:#1a1d24;border:1px solid var(--blp-border);border-radius:8px;padding:1rem 1.1rem;color:var(--blp-text);box-shadow:0 12px 40px #00000073}@media(min-width:720px){.blp-export-dialog{width:min(980px,100%)}}.blp-export-dialog__head{flex:0 0 auto}.blp-export-dialog h3{margin:0 0 .35rem;font-size:1rem}.blp-export-dialog .blp-hint{margin:0 0 .85rem;color:var(--blp-muted);font-size:.78rem;line-height:1.4}.blp-export-layout{display:flex;flex-direction:column;gap:.85rem;min-height:0;flex:1 1 auto;overflow:auto}.blp-export-main{order:2;min-width:0}.blp-export-preview{order:1;margin:0;padding:.75rem .85rem;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:#00000038;font-size:.82rem}@media(min-width:720px){.blp-export-layout{flex-direction:row;align-items:stretch;overflow:hidden}.blp-export-main{order:1;flex:1 1 auto;overflow:auto;padding-right:.15rem}.blp-export-preview{order:2;flex:0 0 min(520px,52%);max-width:560px;overflow:auto}}.blp-export-preview .blp-export-section-label{margin-bottom:.5rem}.blp-export-preview__fields{display:flex;flex-direction:column;gap:.35rem}.blp-export-preview__row{display:grid;grid-template-columns:minmax(6.5rem,42%) 1fr;gap:.3rem .55rem;align-items:start;font-size:.74rem;line-height:1.35}.blp-export-preview__key{color:var(--blp-muted);font-weight:600}.blp-export-preview__val{color:var(--blp-text);word-break:break-word}.blp-export-preview__json{margin:0;padding:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;line-height:1.4;color:var(--blp-text)}.blp-export-section-label{margin:0 0 .4rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blp-muted)}.blp-export-formats{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.85rem}.blp-export-advanced{margin:0 0 .85rem;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#0000002e}.blp-export-advanced__summary{display:flex;align-items:center;gap:.45rem;padding:.55rem .7rem;cursor:pointer;list-style:none;user-select:none;font-size:.78rem;font-weight:600;color:var(--blp-muted)}.blp-export-advanced__summary::-webkit-details-marker{display:none}.blp-export-advanced__summary:before{content:"";width:.38rem;height:.38rem;border-right:2px solid var(--blp-muted);border-bottom:2px solid var(--blp-muted);transform:rotate(-45deg);transition:transform .15s ease;flex:0 0 auto;margin-top:-.08rem}.blp-export-advanced[open]>.blp-export-advanced__summary:before{transform:rotate(45deg);margin-top:0}.blp-export-advanced[open]>.blp-export-advanced__summary{color:var(--blp-text);border-bottom:1px solid rgba(255,255,255,.06)}.blp-export-advanced__body{padding:.7rem .7rem .85rem}.blp-export-advanced__body .blp-export-formats{margin-bottom:0}.blp-export-advanced__body .blp-export-section-label:first-child{margin-top:0}.blp-export-advanced__body .blp-export-section-label{margin-top:.75rem}.blp-export-option{display:flex;align-items:flex-start;gap:.55rem;margin:0;padding:.55rem .65rem;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;cursor:pointer}.blp-export-option:has(input:checked){border-color:#3db89a80;background:#3db89a1a}.blp-export-option.is-disabled{opacity:.55;cursor:not-allowed}.blp-export-option input{margin-top:.15rem;accent-color:#3db89a}.blp-export-option__body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.blp-export-option__label{font-size:.84rem;font-weight:600;color:var(--blp-text)}.blp-export-option__label em{font-style:normal;font-weight:500;font-size:.72rem;color:var(--blp-muted);margin-left:.25rem}.blp-export-option__hint{font-size:.72rem;color:var(--blp-muted);line-height:1.35}.blp-export-dialog .blp-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.blp-export-backdrop .blp-btn{appearance:none;border:1px solid var(--blp-border);background:#ffffff14;color:var(--blp-text);border-radius:6px;padding:.4rem .8rem;font-size:.8rem;font-weight:500;line-height:1.3;cursor:pointer}.blp-export-backdrop .blp-btn:hover{border-color:#3db89a73;color:#fff}.blp-export-backdrop .blp-btn.blp-primary,.blp-export-dialog .blp-actions .blp-btn.blp-primary{background:var(--blp-accent, #3db89a);border-color:transparent;color:#0b1210;font-weight:600}.blp-export-backdrop .blp-btn.blp-primary:hover,.blp-export-dialog .blp-actions .blp-btn.blp-primary:hover{background:#48c9a8;color:#0b1210;border-color:transparent}#interaction-sidebar .col-cover img.blp-cover-zoomable,img.blp-cover-zoomable{cursor:zoom-in}#interaction-sidebar .col-cover img.blp-cover-zoomable:focus-visible,img.blp-cover-zoomable:focus-visible{outline:2px solid var(--back-interact-secondary, #839df9);outline-offset:2px}.blp-steam-gallery__item{flex:0 0 auto;width:min(42vw,220px);aspect-ratio:16 / 9;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:6px;overflow:hidden;background:#12151c;cursor:zoom-in;scroll-snap-align:start;transition:border-color .15s ease,transform .15s ease}.blp-steam-gallery__item--cover{aspect-ratio:460 / 215}.blp-steam-gallery__item:hover,.blp-steam-gallery__item:focus-visible{border-color:var(--back-interact-secondary, #839df9);transform:translateY(-1px);outline:none}.blp-steam-gallery__item img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}.blp-steam-gallery__item img.is-ready{opacity:1}.blp-similar{margin-top:1.15rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.blp-similar__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.blp-similar__title{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--blp-muted)}.blp-similar__link{font-size:.78rem;color:var(--back-interact-secondary, #839df9);text-decoration:none}.blp-similar__link:hover{color:var(--back-text, #badefc);text-decoration:underline}.blp-similar__track{display:flex;flex-wrap:nowrap;gap:.65rem;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:.4rem;scroll-snap-type:x proximity;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) rgba(255,255,255,.06)}.blp-similar__track::-webkit-scrollbar{height:6px}.blp-similar__track::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}.blp-similar__track::-webkit-scrollbar-thumb{background:#ffffff47;border-radius:999px}.blp-similar__skel{flex:0 0 auto;width:118px;height:210px;border-radius:8px;background:linear-gradient(90deg,var(--blp-skel) 0%,var(--blp-skel-shine) 45%,var(--blp-skel) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite}.blp-similar__card{flex:0 0 auto;width:118px;display:flex;flex-direction:column;gap:.35rem;color:inherit;scroll-snap-align:start;border-radius:8px;transition:transform .15s ease}.blp-similar__card:hover,.blp-similar__card:focus-within{transform:translateY(-2px)}.blp-similar__card:focus-within .blp-similar__cover{border-color:var(--back-interact-secondary, #839df9)}.blp-similar__cover{position:relative;width:100%;aspect-ratio:600 / 900;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#12151c}.blp-similar__hit{display:block;width:100%;height:100%;text-decoration:none;color:inherit}.blp-similar__cover img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}.blp-similar__cover img.is-ready{opacity:1}.blp-similar__badge{position:absolute;top:.35rem;left:.35rem;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;padding:.2rem .35rem;border-radius:5px;background:#0c0e12d1;backdrop-filter:blur(4px);line-height:1.1;pointer-events:none}.blp-similar__pct{font-size:.82rem;font-weight:700;color:var(--back-text, #badefc)}.blp-similar__match{font-size:.58rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--blp-muted, #8a9bb8)}.blp-similar__steam{position:absolute;top:.3rem;right:.3rem;z-index:2;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:4px;background:#0c0e12c7;opacity:0;transition:opacity .15s ease;text-decoration:none}.blp-similar__card:hover .blp-similar__steam,.blp-similar__card:focus-within .blp-similar__steam{opacity:1}.blp-similar__steam img{width:14px;height:14px;display:block;opacity:1}.blp-similar__meta{display:flex;flex-direction:column;gap:.15rem;min-width:0;text-decoration:none;color:inherit}.blp-similar__meta:hover .blp-similar__name,.blp-similar__meta:focus-visible .blp-similar__name{color:var(--back-interact-secondary, #839df9)}.blp-similar__name{font-size:.72rem;font-weight:600;line-height:1.25;color:var(--back-text, #badefc);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blp-similar__tags{font-size:.62rem;line-height:1.2;color:var(--blp-muted, #8a9bb8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blp-viewer{position:fixed;inset:0;z-index:1000001;display:flex;flex-direction:column;background:color-mix(in srgb,var(--back-primary, #16181c) 88%,transparent);backdrop-filter:blur(4px);color:var(--back-text, #badefc);font:13px/1.35 system-ui,sans-serif;user-select:none;-webkit-user-select:none}.blp-viewer__chrome{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;background:linear-gradient(180deg,color-mix(in srgb,var(--back-primary, #16181c) 75%,transparent),transparent);z-index:2}.blp-viewer__chrome-left,.blp-viewer__chrome-right{display:flex;align-items:center;gap:.4rem;min-width:0}.blp-viewer__title{font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:.72rem;color:var(--back-text-secondary, #8f9ca7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:28vw}.blp-viewer__counter{font-variant-numeric:tabular-nums;color:var(--back-text, #badefc);padding:.2rem .55rem;border-radius:999px;background:var(--back-field, #30394c);border:1px solid var(--back-field-border, #3b414e)}.blp-viewer__tool{width:36px;height:36px;border:1px solid var(--back-field-border, #3b414e);border-radius:8px;background:var(--back-secondary, #242832);color:var(--back-text, #badefc);font-size:1.05rem;line-height:1;cursor:pointer}.blp-viewer__tool:hover,.blp-viewer__tool:focus-visible{background:var(--back-field-highlight, #3b4760);border-color:var(--back-field-border-hover, #3f4b64);color:var(--back-btn-toggled-text, #fff);outline:none}.blp-viewer__tool:disabled{opacity:.35;cursor:default}.blp-viewer__body{flex:1 1 auto;position:relative;min-height:0;display:grid;grid-template-columns:auto 1fr auto;align-items:stretch;gap:.25rem;padding:0 .35rem}.blp-viewer__nav{align-self:center;width:44px;height:44px;border:1px solid var(--back-field-border, #3b414e);border-radius:999px;background:var(--back-secondary, #242832);color:var(--back-text, #badefc);font-size:1.45rem;line-height:1;cursor:pointer;z-index:2}.blp-viewer__nav:hover,.blp-viewer__nav:focus-visible{background:var(--back-interact, #4a5e8d);border-color:var(--back-interact-secondary, #839df9);color:var(--back-btn-toggled-text, #fff);outline:none}.blp-viewer__nav[hidden]{visibility:hidden;pointer-events:none}.blp-viewer__stage{position:relative;min-width:0;min-height:0;overflow:hidden;cursor:grab;touch-action:none}.blp-viewer__stage.is-dragging{cursor:grabbing}.blp-viewer__frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-origin:center center;will-change:transform}.blp-viewer__img{max-width:min(92vw,1280px);max-height:calc(100% - 8px);width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 18px 48px #0000008c;background:var(--back-field-background, #272c37);pointer-events:auto;opacity:1;transition:opacity .2s ease}.blp-viewer__stage.is-loading .blp-viewer__img{opacity:.28}.blp-viewer__spinner{position:absolute;top:50%;left:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:50%;border:3px solid var(--back-field-border, #3b414e);border-top-color:var(--back-field-selected, var(--back-pink-dk, #ea377a));opacity:0;pointer-events:none;z-index:3;transition:opacity .15s ease}.blp-viewer__stage.is-loading .blp-viewer__spinner{opacity:1;animation:blp-viewer-spin .7s linear infinite}@keyframes blp-viewer-spin{to{transform:rotate(360deg)}}.blp-viewer__film{flex:0 0 auto;display:flex;justify-content:safe center;justify-content:center;gap:.45rem;overflow-x:auto;overflow-y:hidden;padding:.55rem .85rem .85rem;scroll-snap-type:x proximity;background:color-mix(in srgb,var(--back-secondary, #242832) 88%,transparent);border-top:1px solid var(--back-dropdown-divider, #3f4b64);z-index:2}.blp-viewer__film::-webkit-scrollbar{height:6px}.blp-viewer__film::-webkit-scrollbar-thumb{background:var(--back-field-border-hover, #3f4b64);border-radius:999px}.blp-viewer__thumb{flex:0 0 auto;width:88px;aspect-ratio:16 / 9;padding:0;border:2px solid transparent;border-radius:6px;overflow:hidden;background:var(--back-field-background, #272c37);cursor:pointer;opacity:.55;scroll-snap-align:center;transition:opacity .15s ease,border-color .15s ease,transform .15s ease}.blp-viewer__thumb--cover{aspect-ratio:460 / 215}.blp-viewer__thumb:hover,.blp-viewer__thumb:focus-visible{opacity:.9;border-color:var(--back-field-border-hover, #3f4b64);outline:none}.blp-viewer__thumb.is-active{opacity:1;border-color:var(--back-field-selected, var(--back-pink-dk, #ea377a));transform:translateY(-2px);box-shadow:0 0 0 1px color-mix(in srgb,var(--back-pink-dk, #ea377a) 45%,transparent)}.blp-viewer__thumb.is-near{opacity:.78;border-color:var(--back-field-border, #3b414e)}.blp-viewer__thumb img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}[data-blp-enrich=players] .blp-players-badge{display:inline-flex;align-items:center;gap:.35em;padding:.12em .55em .14em;border-radius:4px;font-size:.82em;font-weight:700;line-height:1.45;text-decoration:none!important;color:#67c1f5!important;background:linear-gradient(180deg,#355a78,#2a4a63);border:1px solid rgba(103,193,245,.35);box-shadow:inset 0 1px #ffffff1a;width:fit-content;white-space:nowrap}[data-blp-enrich=players] .blp-players-badge__dot{width:.45em;height:.45em;border-radius:50%;background:currentColor;flex:0 0 auto;box-shadow:0 0 6px currentColor}[data-blp-enrich] .blp-mc-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.85em;padding:.18em .42em;border-radius:3px;font-size:.88em;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1.2;text-decoration:none!important;vertical-align:middle;white-space:nowrap;width:fit-content;box-shadow:inset 0 1px #ffffff38}[data-blp-enrich] .blp-mc-badge--high{background:var(--blp-mc-high);color:#14200a!important;border:1px solid rgba(102,204,51,.55)}[data-blp-enrich] .blp-mc-badge--mid{background:var(--blp-mc-mid);color:#2a2200!important;border:1px solid rgba(255,204,51,.55)}[data-blp-enrich] .blp-mc-badge--low{background:var(--blp-mc-low);color:#2a0a12!important;border:1px solid rgba(255,102,119,.5)}[data-blp-enrich] .blp-oc-badge,[data-blp-enrich] .blp-deck-badge,[data-blp-enrich] .blp-proton-badge,[data-blp-enrich] .blp-hltb-chip{display:inline-flex;align-items:center;justify-content:center;padding:.18em .5em;border-radius:3px;font-size:.82em;font-weight:700;line-height:1.2;text-decoration:none!important;white-space:nowrap;vertical-align:middle}[data-blp-enrich] .blp-oc-badge--mighty{background:#fc4;color:#1a1400!important;border:1px solid rgba(255,204,68,.55)}[data-blp-enrich] .blp-oc-badge--strong{background:#6c3;color:#14200a!important;border:1px solid rgba(102,204,51,.55)}[data-blp-enrich] .blp-oc-badge--fair{background:#fc3;color:#2a2200!important;border:1px solid rgba(255,204,51,.55)}[data-blp-enrich] .blp-oc-badge--weak{background:#f67;color:#2a0a12!important;border:1px solid rgba(255,102,119,.5)}[data-blp-enrich] .blp-oc-badge:not([class*=blp-oc-badge--]){background:#3a4149;color:#e8eaed!important;border:1px solid rgba(255,255,255,.12)}[data-blp-enrich] .blp-hltb-chips,[data-blp-enrich] .blp-deck-proton-chips,[data-blp-enrich] .blp-oc-chips{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end;align-items:center}@media(min-width:768px){[data-blp-enrich] .blp-hltb-chips,[data-blp-enrich] .blp-deck-proton-chips,[data-blp-enrich] .blp-oc-chips{justify-content:flex-start}}[data-blp-enrich] .blp-hltb-chip{background:#1b2838;color:#c6d4df!important;border:1px solid rgba(198,212,223,.28)}[data-blp-enrich] .blp-deck-badge--verified{background:#1a9fff;color:#061018!important;border:1px solid rgba(26,159,255,.55)}[data-blp-enrich] .blp-deck-badge--playable{background:#ffc82c;color:#1a1400!important;border:1px solid rgba(255,200,44,.55)}[data-blp-enrich] .blp-deck-badge--unsupported,[data-blp-enrich] .blp-deck-badge--unknown{background:#3a4149;color:#e8eaed!important;border:1px solid rgba(255,255,255,.12)}[data-blp-enrich] .blp-proton-badge--platinum{background:#e5e4e2;color:#1a1a1a!important;border:1px solid rgba(229,228,226,.6)}[data-blp-enrich] .blp-proton-badge--gold{background:#d4af37;color:#1a1400!important;border:1px solid rgba(212,175,55,.55)}[data-blp-enrich] .blp-proton-badge--silver{background:silver;color:#1a1a1a!important;border:1px solid rgba(192,192,192,.55)}[data-blp-enrich] .blp-proton-badge--bronze{background:#cd7f32;color:#1a0e04!important;border:1px solid rgba(205,127,50,.55)}[data-blp-enrich] .blp-proton-badge--borked{background:#c35c2c;color:#fff!important;border:1px solid rgba(195,92,44,.55)}[data-blp-enrich] .blp-price{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35em .45em;text-decoration:none!important}[data-blp-enrich] .blp-price--sale{gap:.4em .5em}[data-blp-enrich] .blp-price__stack{display:inline-flex;flex-direction:column;align-items:flex-end;gap:.05em;line-height:1.15}@media(min-width:768px){[data-blp-enrich] .blp-price__stack{align-items:flex-start}}[data-blp-enrich] .blp-price__was{font-size:.78em;font-weight:500;color:var(--blp-muted, #9aa0a6);text-decoration:line-through;text-decoration-thickness:1px;opacity:.85}[data-blp-enrich] .blp-price__now{font-weight:700;color:#beee11;letter-spacing:.01em}[data-blp-enrich] .blp-price__fx{display:inline-flex;align-items:baseline;flex-wrap:nowrap;gap:.35em;margin-left:.2em;white-space:nowrap;vertical-align:baseline;color:var(--blp-muted, #9aa0a6);font-weight:600;opacity:.92}[data-blp-enrich] .blp-price__fx-now{font-weight:600;color:var(--blp-muted, #9aa0a6)}[data-blp-enrich] .blp-price__fx-was{font-size:.78em;font-weight:500;color:var(--blp-muted, #9aa0a6);text-decoration:line-through;text-decoration-thickness:1px;opacity:.8}.blp-card-badge--fx{opacity:.88;font-weight:600;white-space:nowrap}.blp-card-badge--fx-was{font-size:.85em;font-weight:500;opacity:.75;text-decoration:line-through;margin-left:.25em}[data-blp-enrich] .blp-discount{display:inline-flex;align-items:center;justify-content:center;min-width:2.6em;padding:.18em .42em;border-radius:3px;font-size:.92em;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.2;color:#1b2838!important;background:#beee11;box-shadow:0 0 0 1px #beee1159}[data-blp-enrich] .blp-discount-ends{display:inline-block;padding:.12em .4em;border-radius:3px;font-size:.78em;font-weight:600;line-height:1.25;color:#c6ef5e;background:#3d4f1a8c;border:1px solid rgba(190,238,17,.28);opacity:1;margin-left:0}[data-blp-enrich] .blp-review--overwhelming,[data-blp-enrich] .blp-review--very-positive{color:var(--blp-rev-overwhelming)!important;font-weight:600}[data-blp-enrich] .blp-review--positive,[data-blp-enrich] .blp-review--mostly-positive{color:var(--blp-rev-positive)!important;font-weight:600}[data-blp-enrich] .blp-review--mixed{color:var(--blp-rev-mixed)!important;font-weight:600}[data-blp-enrich] .blp-review--mostly-negative,[data-blp-enrich] .blp-review--negative,[data-blp-enrich] .blp-review--very-negative,[data-blp-enrich] .blp-review--overwhelmingly-negative{color:var(--blp-rev-negative)!important;font-weight:600}[data-blp-enrich] .blp-steam-note{opacity:.65;font-size:.85em}[data-blp-enrich] .blp-steam-tags,[data-blp-enrich] .blp-steam-categories{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}@media(min-width:768px){[data-blp-enrich] .blp-steam-tags,[data-blp-enrich] .blp-steam-categories{justify-content:flex-start}}[data-blp-enrich] .blp-steam-tag{background:#1b2838;color:#66c0f4!important;border:1px solid rgba(102,192,244,.28);text-decoration:none!important}[data-blp-enrich] .blp-steam-tag:hover{background:#2a475e;color:#fff!important}[data-blp-enrich] .blp-steam-category{background:#ffffff0f;color:#c7d5e0!important;border:1px solid rgba(255,255,255,.14);text-decoration:none!important}[data-blp-enrich] .blp-steam-category:hover{background:#ffffff1f;color:#fff!important}[data-blp-enrich=steam]{align-items:flex-start}[data-blp-enrich=steam]>[class*=col]{margin-top:.35rem!important;margin-bottom:.35rem!important}[data-blp-enrich=steam] [data-blp-values]{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}@media(min-width:768px){[data-blp-enrich=steam] [data-blp-values]{align-items:flex-start}}[data-blp-enrich=steam] .blp-steam-line{display:block;line-height:1.35}[data-blp-enrich=steamdb] .blp-sdb-facts{display:flex;flex-direction:column;gap:.4rem;width:100%;max-width:36rem;padding:.15rem 0 .15rem .7rem;border-left:2px solid rgba(102,192,244,.42)}[data-blp-enrich=steamdb] .blp-sdb-fact{display:grid;grid-template-columns:minmax(6.75rem,9.25rem) minmax(0,1fr);column-gap:.75rem;row-gap:.15rem;align-items:start}[data-blp-enrich=steamdb] .blp-sdb-fact__label{color:var(--blp-muted);font-size:.8em;font-weight:600;letter-spacing:.01em;line-height:1.45;padding-top:.12em}[data-blp-enrich=steamdb] .blp-sdb-fact__value{min-width:0;line-height:1.45}[data-blp-enrich=steamdb] .blp-sdb-value-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}[data-blp-enrich=steamdb] .blp-sdb-link{color:#66c0f4;text-decoration:none;font-weight:600}[data-blp-enrich=steamdb] .blp-sdb-link:hover,[data-blp-enrich=steamdb] .blp-sdb-link:focus-visible{color:#8ed0f8;text-decoration:underline}[data-blp-enrich=steamdb] .blp-sdb-link--muted{color:var(--blp-text);font-weight:500;font-variant-numeric:tabular-nums;font-size:.92em}[data-blp-enrich=steamdb] .blp-sdb-link--muted:hover,[data-blp-enrich=steamdb] .blp-sdb-link--muted:focus-visible{color:#66c0f4}[data-blp-enrich=steamdb] .blp-sdb-os,[data-blp-enrich=steamdb] .blp-sdb-tech{display:inline-flex;align-items:center;padding:.12em .48em;border-radius:4px;font-size:.8em;font-weight:600;line-height:1.35;text-decoration:none!important;white-space:nowrap}[data-blp-enrich=steamdb] .blp-sdb-os{color:#c6d4df!important;background:#1b2838;border:1px solid rgba(198,212,223,.22)}[data-blp-enrich=steamdb] .blp-sdb-os:hover,[data-blp-enrich=steamdb] .blp-sdb-os:focus-visible{border-color:#66c0f48c;color:#fff!important}[data-blp-enrich=steamdb] .blp-sdb-tech{color:#d7e6f0!important;background:linear-gradient(180deg,#2a475e,#1b2838);border:1px solid rgba(102,192,244,.28)}[data-blp-enrich=steamdb] .blp-sdb-tech:hover,[data-blp-enrich=steamdb] .blp-sdb-tech:focus-visible{border-color:#66c0f4a6;color:#fff!important}@media(max-width:575.98px){[data-blp-enrich=steamdb] .blp-sdb-facts{padding-left:.55rem;max-width:none}[data-blp-enrich=steamdb] .blp-sdb-fact{grid-template-columns:1fr;gap:.12rem}[data-blp-enrich=steamdb] .blp-sdb-fact__label{padding-top:0}}[data-blp-enrich] .blp-owned-badge{display:inline-flex;align-items:center;gap:.28em;padding:.1em .5em .12em;border-radius:4px;border:1px solid var(--blp-owned-border);background:linear-gradient(180deg,#4c6b22 0%,var(--blp-owned-bg) 100%);color:var(--blp-owned)!important;font-size:.78em;font-weight:700;letter-spacing:.03em;line-height:1.45;vertical-align:middle;white-space:nowrap;box-shadow:inset 0 1px #ffffff1f;width:fit-content}[data-blp-enrich] .blp-owned-badge__icon{width:.85em;height:.85em;flex:0 0 auto}[data-blp-enrich] .blp-wishlist-badge{display:inline-flex;align-items:center;gap:.28em;padding:.1em .5em .12em;border-radius:4px;border:1px solid var(--blp-wishlist-border);background:linear-gradient(180deg,#3a5f7d 0%,var(--blp-wishlist-bg) 100%);color:var(--blp-wishlist)!important;font-size:.78em;font-weight:700;letter-spacing:.03em;line-height:1.45;vertical-align:middle;white-space:nowrap;box-shadow:inset 0 1px #ffffff1f;width:fit-content}[data-blp-enrich] .blp-steam-match{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;margin-top:.15rem;font-size:.72rem;color:var(--blp-muted)}[data-blp-enrich] .blp-steam-match__btn,.blp-fix-match-backdrop .blp-btn{appearance:none;border:1px solid var(--blp-border);background:#ffffff0f;color:var(--blp-text);border-radius:4px;padding:.15rem .45rem;font-size:.72rem;line-height:1.3;cursor:pointer}[data-blp-enrich] .blp-steam-match__btn:hover,.blp-fix-match-backdrop .blp-btn:hover{border-color:#3db89a73;color:#fff}.blp-fix-match-backdrop{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c}.blp-fix-match-dialog{width:min(420px,100%);background:#1a1d24;border:1px solid var(--blp-border);border-radius:8px;padding:1rem 1.1rem;color:var(--blp-text);box-shadow:0 12px 40px #00000073}.blp-fix-match-dialog h3{margin:0 0 .35rem;font-size:1rem}.blp-fix-match-dialog .blp-hint{margin:0 0 .75rem;color:var(--blp-muted);font-size:.78rem;line-height:1.4}.blp-fix-match-dialog input{width:100%;margin-bottom:.65rem;padding:.4rem .5rem;border-radius:4px;border:1px solid var(--blp-border);background:#12151b;color:var(--blp-text)}.blp-fix-match-dialog .blp-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.blp-fix-match-dialog .blp-error{color:#f67;font-size:.75rem;margin:0 0 .5rem}.game-cover{position:relative}.game-cover .blp-card-badges{position:absolute;top:.28rem;left:.28rem;right:.28rem;z-index:6;display:flex;flex-wrap:wrap;gap:.2rem;pointer-events:none;opacity:1;transition:opacity .15s ease}.blp-similar__cover .blp-card-badges{position:absolute;top:auto;bottom:.28rem;left:.28rem;right:.28rem;z-index:3;display:flex;flex-wrap:wrap;gap:.2rem;pointer-events:none;opacity:1;transition:opacity .15s ease}.game-cover:hover .blp-card-badges,.blp-similar__cover:hover .blp-card-badges{opacity:.25;pointer-events:none}.game-cover .blp-card-badges a,.game-cover .blp-card-badges button,.blp-similar__cover .blp-card-badges a,.blp-similar__cover .blp-card-badges button{pointer-events:auto}.game-cover:hover .blp-card-badges a,.game-cover:hover .blp-card-badges button,.blp-similar__cover:hover .blp-card-badges a,.blp-similar__cover:hover .blp-card-badges button{pointer-events:none}.blp-card-badge{display:inline-flex;align-items:center;gap:.2em;max-width:100%;padding:.08em .38em;border-radius:3px;font-size:.62rem;font-weight:700;line-height:1.35;letter-spacing:.02em;white-space:nowrap;text-decoration:none!important;color:#fff!important;background:#14181ed1;border:1px solid rgba(255,255,255,.12);box-shadow:0 1px 2px #00000059}.blp-card-badge--price{background:#1a2838e6}.blp-card-badge--discount{display:inline-flex;align-items:center;margin-left:.15em;padding:.05em .32em;border-radius:2px;font-weight:800;font-variant-numeric:tabular-nums;color:#1b2838!important;background:#beee11;border:none}.blp-card-badge--review{font-variant-numeric:tabular-nums}.blp-card-badge--review.blp-review--overwhelming,.blp-card-badge--review.blp-review--very-positive,.blp-card-badge--review.blp-review--positive,.blp-card-badge--review.blp-review--mostly-positive{color:var(--blp-rev-overwhelming)!important;border-color:#66c0f466;background:#2a4a63eb}.blp-card-badge--review.blp-review--mixed{color:var(--blp-rev-mixed)!important;border-color:#b9a40466;background:#4a4018eb}.blp-card-badge--review.blp-review--mostly-negative,.blp-card-badge--review.blp-review--negative,.blp-card-badge--review.blp-review--very-negative,.blp-card-badge--review.blp-review--overwhelmingly-negative{color:#fecaca!important;border-color:#c35c2c73;background:#5a3028eb}.blp-card-badge--mc{font-variant-numeric:tabular-nums;font-weight:800}.blp-card-badge--mc-high{color:#1a1d24!important;background:var(--blp-mc-high);border-color:transparent}.blp-card-badge--mc-mid{color:#1a1d24!important;background:var(--blp-mc-mid);border-color:transparent}.blp-card-badge--mc-low{color:#fff!important;background:var(--blp-mc-low);border-color:transparent}.blp-card-badge--owned{color:var(--blp-owned)!important;background:#3d4f1aeb;border-color:var(--blp-owned-border)}.blp-card-badge--wishlist{color:var(--blp-wishlist)!important;background:#2a4a63eb;border-color:var(--blp-wishlist-border)}.blp-card-badge--gs{text-transform:none}.blp-card-badge--gs.blp-gs-badge--ready{color:var(--blp-gs-ready)!important;background:#4c6b22eb}.blp-card-badge--gs.blp-gs-badge--partial,.blp-card-badge--gs.blp-gs-badge--pending-recent{color:var(--blp-gs-pending)!important;background:#5a4630eb}.blp-card-badge--gs.blp-gs-badge--pending-old{color:var(--blp-gs-old)!important;background:#5a3030eb}.blp-card-badge--gs.blp-gs-badge--release-today{color:var(--blp-gs-today)!important;background:#2a4a63eb}.blp-card-badges.is-loading .blp-card-badge{min-width:2.4rem;min-height:.95rem;background:linear-gradient(90deg,var(--blp-skel),var(--blp-skel-shine),var(--blp-skel));background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite;border:0}[data-blp-enrich=gamestatus]{align-items:flex-start}[data-blp-enrich=gamestatus]>[class*=col]{margin-top:.35rem!important;margin-bottom:.35rem!important}[data-blp-enrich=gamestatus] [data-blp-values]{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}@media(min-width:768px){[data-blp-enrich=gamestatus] [data-blp-values]{align-items:flex-start}}[data-blp-enrich] .blp-gs-badge{display:inline-flex;align-items:center;gap:.35em;padding:.12em .55em .14em;border-radius:4px;font-size:.82em;font-weight:700;line-height:1.45;text-decoration:none!important;width:fit-content;white-space:nowrap;box-shadow:inset 0 1px #ffffff1a}[data-blp-enrich] .blp-gs-badge__dot{width:.45em;height:.45em;border-radius:50%;background:currentColor;flex:0 0 auto}[data-blp-enrich] .blp-gs-badge--ready{color:var(--blp-gs-ready)!important;background:linear-gradient(180deg,#5a7d28 0%,var(--blp-gs-ready-bg) 100%);border:1px solid rgba(190,238,17,.35)}[data-blp-enrich] .blp-gs-badge--partial,[data-blp-enrich] .blp-gs-badge--pending-recent{color:var(--blp-gs-partial)!important;background:linear-gradient(180deg,#6a5538 0%,var(--blp-gs-partial-bg) 100%);border:1px solid rgba(255,179,33,.35)}[data-blp-enrich] .blp-gs-badge--pending-old{color:var(--blp-gs-old)!important;background:linear-gradient(180deg,#6a3838 0%,var(--blp-gs-old-bg) 100%);border:1px solid rgba(254,202,202,.3)}[data-blp-enrich] .blp-gs-badge--release-today{color:var(--blp-gs-today)!important;background:linear-gradient(180deg,#355a78 0%,var(--blp-gs-today-bg) 100%);border:1px solid rgba(103,193,245,.35)}[data-blp-enrich] .blp-gs-badge--unknown,[data-blp-enrich] .blp-gs-badge--missing{color:var(--blp-gs-unknown)!important;background:linear-gradient(180deg,#4a5158 0%,var(--blp-gs-unknown-bg) 100%);border:1px solid rgba(176,174,172,.25)}[data-blp-enrich] .blp-gs-chips{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}@media(min-width:768px){[data-blp-enrich] .blp-gs-chips{justify-content:flex-start}}[data-blp-enrich] .blp-gs-chip{display:inline-flex;align-items:center;padding:.08em .45em;border-radius:3px;font-size:.72em;font-weight:600;line-height:1.4;white-space:nowrap}[data-blp-enrich] .blp-gs-chip--protection{background:#2a3644;color:#acb2b8}[data-blp-enrich] .blp-gs-chip--highlight{background:#6b1f1f;color:#ff6b6b;border:1px solid rgba(255,107,107,.35)}[data-blp-enrich] .blp-gs-chip--ready{background:var(--blp-gs-ready-bg);color:var(--blp-gs-ready)}[data-blp-enrich] .blp-gs-chip--partial,[data-blp-enrich] .blp-gs-chip--pending-recent{background:var(--blp-gs-partial-bg);color:var(--blp-gs-partial)}[data-blp-enrich] .blp-gs-chip--pending-old{background:var(--blp-gs-old-bg);color:var(--blp-gs-old)}[data-blp-enrich] .blp-gs-chip--release-today{background:var(--blp-gs-today-bg);color:var(--blp-gs-today)}[data-blp-enrich] .blp-gs-chip--unknown{background:var(--blp-gs-unknown-bg);color:var(--blp-gs-unknown)}[data-blp-enrich] .blp-gs-chip--aaa{background:linear-gradient(to bottom,#66c0f4 5%,#417a9b 95%);color:#fff;font-weight:700}[data-blp-enrich] .blp-empty{opacity:.55}[data-blp-enrich] .blp-skeleton{display:inline-block;height:.95em;border-radius:4px;vertical-align:middle;background:linear-gradient(90deg,var(--blp-skel) 0%,var(--blp-skel-shine) 45%,var(--blp-skel) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite}[data-blp-enrich] .blp-skeleton--sm{width:4.5rem}[data-blp-enrich] .blp-skeleton--md{width:8rem}[data-blp-enrich] .blp-skeleton--lg{width:12rem}[data-blp-enrich] .blp-skeleton--link{width:4.25rem;height:1.1em;margin-right:.35rem}@keyframes blp-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.blp-settings-backdrop{position:fixed;inset:0;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:16px;background:#06080c9e;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .2s ease}.blp-settings-backdrop.is-open{opacity:1}.blp-settings{--blp-settings-surface: #151921;--blp-settings-elevated: #1a202b;--blp-settings-inset: #0f1319;--blp-settings-row: rgba(255, 255, 255, .035);width:min(1040px,100%);max-height:min(90vh,1440px);display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(120% 80% at 100% -10%,rgba(61,184,154,.12),transparent 42%),var(--blp-settings-surface);color:var(--blp-text);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 24px 64px #0000008c,inset 0 1px #ffffff0d;font:14px/1.45 system-ui,sans-serif;transform:translateY(12px) scale(.985);opacity:0;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s ease}.blp-settings-backdrop.is-open .blp-settings{transform:translateY(0) scale(1);opacity:1}.blp-settings__head{flex:0 0 auto;padding:20px 22px 12px}.blp-settings__tabs{position:relative;display:flex;flex:0 0 auto;gap:2px;padding:0 14px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-padding-inline:14px;border-bottom:1px solid var(--blp-border);background:#0000002e;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.blp-settings__tabs::-webkit-scrollbar{height:4px}.blp-settings__tabs::-webkit-scrollbar-track{background:transparent;margin-inline:10px}.blp-settings__tabs::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:999px}.blp-settings__tabs::-webkit-scrollbar-thumb:hover{background:#3db89a8c}.blp-settings__tab-ink{position:absolute;left:0;bottom:0;height:2px;width:0;border-radius:2px 2px 0 0;background:var(--blp-accent);box-shadow:0 0 12px #3db89a73;pointer-events:none;transition:transform .28s cubic-bezier(.22,1,.36,1),width .28s cubic-bezier(.22,1,.36,1);will-change:transform,width}.blp-settings__tab{flex:0 0 auto;appearance:none;position:relative;z-index:1;display:inline-flex;align-items:center;gap:7px;margin:0;padding:12px 14px 11px;border:0;background:transparent;color:var(--blp-muted);cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.02em;white-space:nowrap;line-height:1.2;border-radius:10px 10px 0 0;transition:color .18s ease,background-color .18s ease}.blp-settings__tab-label{display:inline-block}.blp-settings__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.4em;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1.35;border:1px solid transparent;transition:color .18s ease,background-color .18s ease,border-color .18s ease}.blp-settings__tab-badge--low{color:var(--blp-accent);background:#3db89a24;border-color:#3db89a47}.blp-settings__tab-badge--mid{color:var(--blp-gs-partial);background:#ffb32124;border-color:#ffb3214d}.blp-settings__tab-badge--high{color:#fecaca;background:#fecaca1f;border-color:#fecaca47}.blp-settings__tab.is-active .blp-settings__tab-badge--low{background:#3db89a38}.blp-settings__tab.is-active .blp-settings__tab-badge--mid{background:#ffb32138}.blp-settings__tab.is-active .blp-settings__tab-badge--high{background:#fecaca2e}.blp-settings__tab:hover{color:var(--blp-text);background:#ffffff0a}.blp-settings__tab.is-active{color:var(--blp-accent);background:#3db89a14}.blp-settings__tab:focus-visible{outline:2px solid rgba(61,184,154,.55);outline-offset:-2px}.blp-settings__body{flex:1 1 auto;min-height:0;overflow:auto;padding:16px 18px 18px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.blp-settings__panel{animation:blp-settings-panel-in .24s cubic-bezier(.22,1,.36,1)}.blp-settings__panel[hidden]{display:none}@keyframes blp-settings-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.blp-settings__foot{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px 16px;padding:12px 18px 14px;border-top:1px solid var(--blp-border);background:#00000029}.blp-settings h2{margin:0 0 4px;font-size:19px;font-weight:700;letter-spacing:-.01em}.blp-settings__sub{margin:0;color:var(--blp-muted);font-size:13px}.blp-settings-group{margin:0 0 22px}.blp-settings-group:last-child{margin-bottom:0}.blp-settings-group__head{margin:0 0 10px}.blp-settings-group__head h3,.blp-settings h3{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--blp-muted);font-weight:700}.blp-settings-group__head .blp-settings__intro,.blp-settings__intro{margin:5px 0 0;font-size:12.5px;line-height:1.45;color:var(--blp-muted)}.blp-settings-list{display:flex;flex-direction:column;margin:0 0 12px;padding:2px 0;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:var(--blp-settings-inset);box-shadow:inset 0 1px #ffffff08;overflow:hidden}.blp-settings-list:last-child{margin-bottom:0}.blp-settings-list--stack{gap:0;padding:12px 14px 14px}.blp-settings-list__actions{margin-top:4px}.blp-settings-list>.blp-toggle+.blp-toggle,.blp-settings-list>.blp-field+.blp-toggle,.blp-settings-list>.blp-toggle+.blp-field{border-top:1px solid rgba(255,255,255,.06)}.blp-field{margin:0;padding:12px 14px}.blp-settings-list--stack>.blp-field{padding:10px 0 0}.blp-field label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--blp-text)}.blp-field select,.blp-field input[type=number]{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--blp-settings-elevated);color:var(--blp-text);font:inherit;font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.blp-field select:hover,.blp-field input[type=number]:hover{border-color:#ffffff29}.blp-field select:focus,.blp-field input[type=number]:focus{outline:none;border-color:#3db89a8c;box-shadow:0 0 0 3px #3db89a29}.blp-hint{margin:6px 0 0;font-size:12px;line-height:1.4;color:var(--blp-muted)}.blp-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:0;padding:9px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--blp-settings-elevated);color:var(--blp-text);cursor:pointer;font:inherit;font-size:13px;font-weight:600;line-height:1.2;transition:border-color .15s ease,color .15s ease,background-color .15s ease,transform .12s ease}.blp-btn:hover{border-color:#3db89a73;color:var(--blp-accent);background:#3db89a14}.blp-btn:active{transform:scale(.98)}.blp-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:12px 14px;cursor:pointer;transition:background-color .15s ease}.blp-toggle:hover{background:var(--blp-settings-row)}.blp-toggle__text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}.blp-toggle__label{font-size:13.5px;font-weight:600;color:var(--blp-text);line-height:1.3}.blp-toggle__hint{font-size:12px;line-height:1.4;color:var(--blp-muted)}.blp-switch{appearance:none;position:relative;flex:0 0 auto;width:44px;height:26px;margin:0;padding:0;border:0;border-radius:999px;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff0f;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.blp-switch:hover{background:#ffffff29}.blp-switch.is-on{background:var(--blp-accent);box-shadow:inset 0 0 0 1px #ffffff14,0 0 0 3px #3db89a24}.blp-switch:focus-visible{outline:2px solid rgba(61,184,154,.65);outline-offset:2px}.blp-switch__thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#f4f7f6;box-shadow:0 2px 6px #00000059;transition:transform .22s cubic-bezier(.22,1,.36,1)}.blp-switch.is-on .blp-switch__thumb{transform:translate(18px)}.blp-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:0}.blp-settings__foot .blp-actions{margin-top:0;margin-left:auto}.blp-actions button{padding:9px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--blp-settings-elevated, #1a202b);color:var(--blp-text);cursor:pointer;font:inherit;font-size:13px;font-weight:600;transition:border-color .15s ease,background-color .15s ease,transform .12s ease,filter .15s ease}.blp-actions button:hover{border-color:#ffffff2e}.blp-actions button:active{transform:scale(.98)}.blp-actions button.blp-primary{background:var(--blp-accent);border-color:transparent;color:#0b1210;font-weight:700}.blp-actions button.blp-primary:hover{filter:brightness(1.06);border-color:transparent}.blp-export-backdrop .blp-btn.blp-primary,.blp-export-dialog .blp-actions button.blp-btn.blp-primary{background:var(--blp-accent, #3db89a);background-color:var(--blp-accent, #3db89a);border-color:transparent;color:#0b1210;font-weight:600}.blp-export-backdrop .blp-btn.blp-primary:hover,.blp-export-dialog .blp-actions button.blp-btn.blp-primary:hover{background:#48c9a8;background-color:#48c9a8;color:#0b1210;border-color:transparent}.blp-settings__ver{margin-left:.4em;padding:2px 7px;border-radius:999px;font-size:.68em;font-weight:600;color:var(--blp-muted);background:#ffffff0f;vertical-align:middle}.blp-settings__footer{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .5em;margin-top:0;font-size:12px;color:var(--blp-muted);min-width:0}.blp-settings__footer a{color:var(--blp-accent);text-decoration:none;font-weight:600}.blp-settings__footer a:hover{text-decoration:underline}.blp-about{display:flex;flex-direction:column;gap:12px}.blp-about__desc{margin:0;font-size:13.5px;line-height:1.55;color:var(--blp-text)}.blp-about__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.blp-about__chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--blp-muted);background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.blp-about__link,.blp-about__repo{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--blp-settings-elevated, #1a202b);color:inherit;text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.blp-about__link:hover,.blp-about__repo:hover{border-color:#3db89a66;background:#3db89a14}.blp-about__link-icon,.blp-about__repo-icon{flex:0 0 auto;width:16px;height:16px;border-radius:3px}.blp-about__link-text,.blp-about__repo-text{display:flex;flex-direction:column;gap:1px;min-width:0}.blp-about__link-label,.blp-about__repo-label{font-size:13px;font-weight:600;color:var(--blp-accent)}.blp-about__link-hint,.blp-about__repo-hint{font-size:11.5px;color:var(--blp-muted)}.blp-about__note{margin:10px 0 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(61,184,154,.18);background:#3db89a12;font-size:12.5px;line-height:1.5;color:var(--blp-text)}.blp-about__note--contribute{border-color:#ffffff14;background:#ffffff09;color:var(--blp-muted)}.blp-about__author-label{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blp-muted)}.blp-about__people{display:flex;flex-direction:column;gap:12px}.blp-about__author-row{display:flex;align-items:center;gap:14px}.blp-about__avatar-link{flex:0 0 auto;line-height:0;border-radius:50%}.blp-about__avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid rgba(61,184,154,.35);background:#ffffff0f;box-shadow:0 0 0 3px #3db89a14}.blp-about__author-info{display:flex;flex-direction:column;gap:2px;min-width:0}.blp-about__name{font-size:15px;font-weight:700;color:var(--blp-text);text-decoration:none}.blp-about__name:hover{color:var(--blp-accent)}.blp-about__handle{font-size:12px;color:var(--blp-muted);font-variant-numeric:tabular-nums}.blp-about__email{margin-top:4px;font-size:12.5px;color:var(--blp-accent);text-decoration:none;word-break:break-all}.blp-about__email:hover{text-decoration:underline}@media(max-width:560px){.blp-settings__foot{flex-direction:column;align-items:stretch}.blp-settings__foot .blp-actions{margin-left:0;width:100%}.blp-settings__foot .blp-actions button{flex:1 1 auto}}@media(prefers-reduced-motion:reduce){.blp-settings-backdrop,.blp-settings,.blp-settings__tab-ink,.blp-settings__panel,.blp-switch,.blp-switch__thumb{transition:none!important;animation:none!important}.blp-settings-backdrop:not(.is-open) .blp-settings,.blp-settings-backdrop .blp-settings{transform:none}}.blp-cache-msg{margin-top:6px;font-size:12px;color:var(--blp-accent)}.blp-cache-meter{margin:0 0 14px}.blp-cache-meter__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.blp-cache-meter__pct{display:flex;flex-direction:column;gap:2px;min-width:0}.blp-cache-meter__pct-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}.blp-cache-meter__pct-caption{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blp-muted)}.blp-cache-meter__pct--low .blp-cache-meter__pct-value{color:var(--blp-accent)}.blp-cache-meter__pct--mid .blp-cache-meter__pct-value{color:var(--blp-gs-partial)}.blp-cache-meter__pct--high .blp-cache-meter__pct-value{color:#fecaca}.blp-cache-meter__used{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--blp-muted);padding-bottom:2px;text-align:right}.blp-cache-meter__bar{display:flex;height:12px;border-radius:7px;overflow:hidden;background:#ffffff0f;border:1px solid var(--blp-border)}.blp-cache-meter__seg{display:block;height:100%;min-width:0;transition:width .2s ease}.blp-cache-meter__seg--full{background:var(--blp-accent)}.blp-cache-meter__seg--partial{background:var(--blp-gs-partial)}.blp-cache-meter__seg--free{background:transparent}.blp-cache-meter__legend{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:12px;color:var(--blp-muted);font-variant-numeric:tabular-nums}.blp-cache-meter__legend li{display:flex;align-items:center;gap:6px}.blp-cache-meter__swatch{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.blp-cache-meter__swatch--full{background:var(--blp-accent)}.blp-cache-meter__swatch--partial{background:var(--blp-gs-partial)}.blp-cache-meter__swatch--free{background:#ffffff1f;border:1px solid var(--blp-border)}.blp-cache-meter .blp-hint{margin-top:8px;margin-bottom:0}.blp-debug-panel{margin:1rem 0 1.25rem;padding:.75rem .85rem;border-radius:8px;border:1px dashed rgba(255,179,33,.45);background:#00000052;text-align:left;width:100%;max-width:100%;box-sizing:border-box}.blp-debug-panel__summary{display:flex;align-items:center;gap:.45rem;margin:0;cursor:pointer;list-style:none;user-select:none}.blp-debug-panel__summary::-webkit-details-marker{display:none}.blp-debug-panel__summary:before{content:"";width:.4rem;height:.4rem;border-right:2px solid #ffb321;border-bottom:2px solid #ffb321;transform:rotate(-45deg);transition:transform .15s ease;flex:0 0 auto;margin-top:-.1rem}.blp-debug-panel[open]>.blp-debug-panel__summary:before{transform:rotate(45deg);margin-top:0}.blp-debug-panel__body{margin-top:.55rem}.blp-debug-cache{position:relative;border-radius:4px;box-shadow:inset 0 0 0 1px #ffffff14}.blp-debug-cache--hit{background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(72,199,142,.14) 5px,rgba(72,199,142,.14) 10px)}.blp-debug-cache--miss{background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(255,160,40,.16) 5px,rgba(255,160,40,.16) 10px)}.blp-debug-cache--mixed{background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(120,170,255,.16) 5px,rgba(120,170,255,.16) 10px)}.blp-debug-cache--na{background-image:repeating-linear-gradient(-45deg,transparent,transparent 5px,rgba(255,255,255,.06) 5px,rgba(255,255,255,.06) 10px)}.blp-cache-badge{display:inline-block;margin-left:.45em;padding:.08em .42em;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;vertical-align:middle;line-height:1.3;white-space:nowrap}.blp-cache-badge--hit{color:#1a3d2c;background:#48c78e}.blp-cache-badge--miss{color:#3d2208;background:#ffb321}.blp-cache-badge--mixed{color:#12233f;background:#7aabff}.blp-cache-badge--na{color:#ffffffd9;background:#ffffff2e}.blp-similar.blp-debug-cache{padding:.35rem .45rem .55rem;margin-left:-.45rem;margin-right:-.45rem}.blp-debug-panel__title{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#ffb321}.blp-debug-panel__section{margin-bottom:.65rem}.blp-debug-panel__label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#ffb321;margin-bottom:.25rem}.blp-debug-panel__reason{display:block;font-size:.82rem;color:var(--blp-text);margin-bottom:.35rem;word-break:break-word}.blp-debug-panel__sources{list-style:none;margin:0 0 .45rem;padding:0;display:flex;flex-direction:column;gap:.65rem}.blp-debug-panel__source-group{display:flex;flex-direction:column;gap:.35rem}.blp-debug-panel__source-group-title{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#c9a227;margin:0}.blp-debug-panel__source-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.blp-debug-panel__source-group-list li{display:flex;flex-direction:column;gap:.12rem}.blp-debug-panel__source-group-list li.is-request{padding-left:.4rem;border-left:2px solid #ffb321}.blp-debug-panel__source-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .45rem;font-size:.78rem;line-height:1.35;color:var(--blp-text)}.blp-debug-panel__source-head strong{color:#ffb321;font-weight:700}.blp-debug-panel__source-badge{display:inline-block;flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#1a1d24;background:#ffb321;padding:.08rem .32rem;border-radius:3px;line-height:1.2}.blp-debug-panel__source-purpose{color:var(--blp-muted);font-size:.74rem}.blp-debug-panel__sources a{color:#67c1f5!important;text-decoration:underline!important;word-break:break-all;font-size:.74rem;line-height:1.35}.blp-debug-panel__sources a:hover{color:#9ad4f8!important}.blp-debug-panel__meta{font-size:.75rem;color:var(--blp-muted);margin-bottom:.35rem}.blp-debug-panel__pre{margin:0;padding:.5rem .55rem;border-radius:5px;background:#0006;color:#b0aeac;font-size:.68rem;line-height:1.35;overflow:auto;max-height:28rem;white-space:pre-wrap;word-break:break-word}.blp-toast-host{position:fixed;z-index:1000010;right:16px;top:16px;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:10px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}.blp-toast{--blp-toast-tone: #67c1f5;pointer-events:auto;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px 12px;width:max-content;min-width:min(280px,100%);max-width:100%;padding:12px 12px 14px;overflow:hidden;border-radius:12px;border:1px solid color-mix(in srgb,var(--blp-toast-tone) 28%,var(--blp-border));background:linear-gradient(135deg,color-mix(in srgb,var(--blp-toast-tone) 14%,#151921),#151921 42%,#12161e);color:var(--blp-text);box-shadow:0 14px 36px #0000007a,inset 0 1px #ffffff0a;font:13px/1.4 system-ui,sans-serif;cursor:pointer;opacity:0;transform:translateY(-10px) scale(.98);transition:opacity .22s ease,transform .22s ease}.blp-toast.is-in{opacity:1;transform:translateY(0) scale(1)}.blp-toast.is-leaving{opacity:0;transform:translateY(-8px) scale(.98)}.blp-toast__icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:1px;border-radius:8px;color:var(--blp-toast-tone);background:color-mix(in srgb,var(--blp-toast-tone) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--blp-toast-tone) 28%,transparent);flex:0 0 auto}.blp-toast__icon svg{width:16px;height:16px;display:block}.blp-toast__body{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:1px}.blp-toast__title{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--blp-text);line-height:1.3}.blp-toast__text{font-size:12.5px;line-height:1.4;color:var(--blp-muted);word-break:break-word}.blp-toast__close{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-2px -2px 0 0;padding:0;border:0;border-radius:7px;background:transparent;color:var(--blp-muted);cursor:pointer;transition:color .15s ease,background .15s ease}.blp-toast__close svg{width:12px;height:12px;display:block}.blp-toast__close:hover,.blp-toast__close:focus-visible{color:var(--blp-text);background:#ffffff0f;outline:none}.blp-toast__progress{position:absolute;left:0;right:0;bottom:0;height:2px;transform-origin:left center;background:color-mix(in srgb,var(--blp-toast-tone) 75%,#fff);opacity:.85;animation:blp-toast-progress var(--blp-toast-ms, 4.2s) linear forwards}@keyframes blp-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.blp-toast--success{--blp-toast-tone: var(--blp-accent)}.blp-toast--info{--blp-toast-tone: #67c1f5}.blp-toast--warning{--blp-toast-tone: #ffb321}.blp-toast--error{--blp-toast-tone: #f66777}@media(max-width:480px){.blp-toast-host{left:12px;right:12px;top:12px;align-items:stretch;max-width:none}.blp-toast{width:100%;min-width:0}}@media(prefers-reduced-motion:reduce){.blp-toast,.blp-toast.is-in,.blp-toast.is-leaving{transition:none;transform:none}.blp-toast__progress{animation:none;opacity:.35;transform:scaleX(1)}}.blp-translate-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.4em;margin:0;font:inherit;line-height:1.2;cursor:pointer;text-decoration:none;border:0;background:none;padding:0;color:inherit;transition:color .15s ease,background .15s ease,border-color .15s ease,opacity .15s ease,filter .15s ease}.blp-translate-btn__spin{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:2px solid color-mix(in srgb,var(--blp-accent, #3db89a) 35%,transparent);border-top-color:var(--blp-accent, #3db89a);animation:blp-translate-spin .65s linear infinite}.blp-translate-btn__label{white-space:nowrap}.blp-translate-btn:hover,.blp-translate-btn:focus-visible{outline:none}.blp-translate-btn.is-loading{cursor:wait;pointer-events:none}.blp-translate-btn--chip{opacity:1;padding:.28rem .75rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--blp-accent, #3db89a) 55%,transparent);background:color-mix(in srgb,var(--blp-accent, #3db89a) 16%,#1a1f24);color:var(--blp-accent, #3db89a);font-size:.8rem;font-weight:600;letter-spacing:.01em}.blp-translate-btn--chip:hover,.blp-translate-btn--chip:focus-visible{color:#0b1210;border-color:var(--blp-accent, #3db89a);background:var(--blp-accent, #3db89a)}.blp-translate-btn--chip:hover .blp-translate-btn__spin,.blp-translate-btn--chip:focus-visible .blp-translate-btn__spin{border-color:color-mix(in srgb,#0b1210 35%,transparent);border-top-color:#0b1210}.blp-translate-btn--chip.is-loading{opacity:.9;color:var(--blp-accent, #3db89a);background:color-mix(in srgb,var(--blp-accent, #3db89a) 16%,#1a1f24);border-color:color-mix(in srgb,var(--blp-accent, #3db89a) 55%,transparent)}.blp-translate-btn--review{font-size:.78rem;padding:.2rem .6rem}.blp-translate-btn--review .blp-translate-btn__spin{width:11px;height:11px}.blp-translate-desc-slot,.blp-translate-review-slot{display:flex;align-items:center}.blp-translate-desc-slot{padding-right:.35rem}.blp-translate-result{margin-top:.65rem;padding-top:.55rem;border-top:1px solid color-mix(in srgb,var(--blp-accent, #3db89a) 22%,transparent);opacity:.92;font-size:inherit;line-height:inherit;white-space:pre-wrap}.blp-translate-result--card{margin:0 0 .75rem;padding:.7rem .85rem .8rem;border:1px solid color-mix(in srgb,var(--blp-accent, #3db89a) 28%,transparent);border-radius:10px;background:color-mix(in srgb,var(--blp-accent, #3db89a) 10%,#1a1f24);box-shadow:0 1px color-mix(in srgb,#000 35%,transparent);opacity:0;transform:translateY(6px);white-space:normal;transition:opacity .28s ease,transform .28s ease}.blp-translate-result--card.is-in{opacity:1;transform:translateY(0)}.blp-translate-result__head{margin:0 0 .4rem;font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--blp-accent, #3db89a);opacity:.9}.blp-translate-result__body{font-size:inherit;line-height:1.45;color:var(--blp-text, #e8eaed);white-space:pre-wrap;opacity:.95}.review-card .blp-translate-result--card{margin-left:0;margin-right:0}@keyframes blp-translate-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.blp-translate-btn__spin{animation:none;border-color:var(--blp-accent, #3db89a);opacity:.55}.blp-translate-result--card{transition:none;opacity:1;transform:none}}.blp-unified-rating-row{margin-top:1rem;margin-bottom:.15rem}@media(min-width:768px){.blp-unified-rating-row{margin-top:.85rem}}.blp-unified-rating{position:relative;overflow:hidden;padding:.85rem 1rem .9rem!important;border:1px solid rgba(61,184,154,.32)!important;background:radial-gradient(110% 120% at 100% 0%,rgba(61,184,154,.14),transparent 52%),radial-gradient(90% 90% at 0% 100%,rgba(102,192,244,.08),transparent 48%),var(--back-container, #1a1d24)!important}.blp-unified-rating[data-grade=high]{border-color:#beee1166!important}.blp-unified-rating[data-grade=mid]{border-color:#3db89a61!important}.blp-unified-rating[data-grade=low]{border-color:#ff667752!important}.blp-unified-rating__layout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem 1.25rem;align-items:stretch;width:100%}@media(max-width:575.98px){.blp-unified-rating__layout{grid-template-columns:1fr;gap:.7rem}}.blp-unified-rating__score-block{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:6.5rem;padding:.35rem .75rem;border-radius:10px;background:#00000038;border:1px solid rgba(255,255,255,.08);text-align:center;aspect-ratio:1 / 1}.blp-unified-rating__label{margin:0;font-size:.78rem;font-weight:700;color:var(--blp-muted, #9aa0a6);white-space:nowrap}.blp-unified-rating__num{margin:.1rem 0 0;font-size:clamp(2.4rem,4.5vw,3.1rem);font-weight:900;line-height:1;letter-spacing:-.04em;color:#fff;transition:color .35s ease;font-variant-numeric:tabular-nums}.blp-unified-rating__num.is-pulse{animation:blp-unified-num-pulse .5s cubic-bezier(.22,1,.36,1)}@keyframes blp-unified-num-pulse{0%{transform:scale(1);filter:brightness(1)}35%{transform:scale(1.07);filter:brightness(1.15)}to{transform:scale(1);filter:brightness(1)}}.blp-unified-rating[data-grade=high] .blp-unified-rating__num{color:#beee11}.blp-unified-rating[data-grade=mid] .blp-unified-rating__num{color:#7ee0c5}.blp-unified-rating[data-grade=low] .blp-unified-rating__num{color:#ff8a98}.blp-unified-rating__denom{margin-top:.15rem;font-size:.75rem;font-weight:700;color:var(--blp-muted, #9aa0a6)}.blp-unified-rating__main{display:flex;flex-direction:column;justify-content:space-between;min-width:0;gap:.55rem}.blp-unified-rating__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem}.blp-unified-rating__title{margin:0;font-size:1rem;font-weight:800;color:var(--blp-text, #e8eaed)}.blp-unified-rating__hint{margin:0;font-size:.75rem;color:var(--blp-muted, #9aa0a6)}.blp-unified-rating__meter{height:7px;border-radius:999px;background:#ffffff14;overflow:hidden}.blp-unified-rating__meter-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#66c0f4,#3db89a 52%,#beee11);transform-origin:left center;transition:width .55s cubic-bezier(.22,1,.36,1),opacity .3s ease;will-change:width}.blp-unified-rating__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;width:100%}@media(max-width:575.98px){.blp-unified-rating__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.blp-unified-rating__cell{display:flex;flex-direction:column;justify-content:center;gap:.12rem;min-width:0;padding:.55rem .65rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#00000038;transition:opacity .3s ease,border-color .3s ease,transform .35s cubic-bezier(.22,1,.36,1)}.blp-unified-rating__cell.is-missing{opacity:.5}.blp-unified-rating__cell.is-loading{opacity:.85}.blp-unified-rating__cell.is-reveal{animation:blp-unified-cell-reveal .4s cubic-bezier(.22,1,.36,1)}@keyframes blp-unified-cell-reveal{0%{opacity:.45;transform:translateY(3px);border-color:#3db89a59}to{opacity:1;transform:none}}.blp-unified-rating__cell-label{font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--blp-muted, #9aa0a6)}.blp-unified-rating__cell-value{font-size:1.15rem;font-weight:800;line-height:1.15;color:#fff;font-variant-numeric:tabular-nums}.blp-unified-rating__cell-sub{font-size:.72rem;color:var(--blp-muted, #9aa0a6);min-height:.85rem}.blp-unified-rating .blp-skeleton{display:inline-block;border-radius:4px;vertical-align:middle;background:linear-gradient(90deg,var(--blp-skel, rgba(255, 255, 255, .08)) 0%,var(--blp-skel-shine, rgba(255, 255, 255, .16)) 45%,var(--blp-skel, rgba(255, 255, 255, .08)) 90%);background-size:200% 100%;animation:blp-shimmer 1.1s ease-in-out infinite}.blp-unified-rating.is-loading .blp-unified-rating__num,.blp-unified-rating__num.is-skel{display:flex;justify-content:center;align-items:center;min-height:2.8rem}.blp-unified-rating__skel-num{display:block;width:3.4rem;height:2.5rem;border-radius:8px}.blp-unified-rating__skel-denom{display:block;width:3.6rem;height:.7rem;margin:.2rem auto 0;border-radius:4px}.blp-unified-rating__skel-value{display:block;width:2.5rem;height:1.1rem;margin-top:.1rem;border-radius:4px}.blp-unified-rating__skel-sub{display:block;width:2rem;height:.65rem;margin-top:.15rem;border-radius:4px}.blp-unified-rating__meter--loading .blp-unified-rating__meter-fill{width:36%;opacity:.55;transition:none;animation:blp-unified-meter-indeterminate 1.35s ease-in-out infinite}@keyframes blp-unified-meter-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}@media(prefers-reduced-motion:reduce){.blp-unified-rating__num.is-pulse,.blp-unified-rating__cell.is-reveal,.blp-unified-rating__meter--loading .blp-unified-rating__meter-fill,.blp-unified-rating .blp-skeleton{animation:none!important}.blp-unified-rating__meter-fill,.blp-unified-rating__num,.blp-unified-rating__cell{transition:none!important}}a[data-blp-ump]>img,a[data-blp-ump] img{outline:2px solid rgba(200,210,220,.42);outline-offset:2px;border-radius:6px;transition:outline-color .2s ease,outline-width .15s ease,box-shadow .2s ease}a[data-blp-ump][data-blp-ump-tier=rookie] img{outline-color:#8b9098;box-shadow:0 0 0 1px #8b909840}a[data-blp-ump][data-blp-ump-tier=bronze] img{outline-color:#c8843d;box-shadow:0 0 8px #c8843d59}a[data-blp-ump][data-blp-ump-tier=silver] img{outline-color:#c5ced8;box-shadow:0 0 8px #c5ced866}a[data-blp-ump][data-blp-ump-tier=gold] img{outline-color:#e6b735;box-shadow:0 0 10px #e6b73573}a[data-blp-ump][data-blp-ump-tier=platinum] img{outline-color:#9ad7e8;box-shadow:0 0 10px #9ad7e873}a[data-blp-ump][data-blp-ump-tier=diamond] img{outline-color:#6de0ff;box-shadow:0 0 12px #6de0ff80}a[data-blp-ump][data-blp-ump-tier=master] img{outline-color:#3ecf8e;box-shadow:0 0 12px #3ecf8e80}a[data-blp-ump][data-blp-ump-tier=legend] img{outline-color:#ffc14d;box-shadow:0 0 0 1px #ffc14d59,0 0 14px #ffa0288c}a[data-blp-profile-hover="1"] img{outline-width:3px;filter:brightness(1.06)}a[data-blp-ump-loading]{position:relative;isolation:isolate}a[data-blp-ump-loading] .overflow-wrapper{position:relative}a[data-blp-ump-loading]>img,a[data-blp-ump-loading] img{filter:brightness(.72)}.blp-ump-avatar-spin{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:inherit}.blp-ump-avatar-spin:after{content:"";flex:0 0 auto;width:14px;height:14px;border-radius:50%;border:2px solid color-mix(in srgb,var(--blp-accent, #3db89a) 35%,transparent);border-top-color:var(--blp-accent, #3db89a);animation:blp-translate-spin .65s linear infinite}.blp-ump{position:fixed;z-index:1000005;width:min(304px,calc(100vw - 24px));pointer-events:none;opacity:0;transform:translate3d(0,14px,0) scale(.92);filter:drop-shadow(0 18px 40px rgba(0,0,0,.55)) blur(5px);transform-origin:center top;transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.16,1,.3,1),filter .34s ease;will-change:transform,opacity,filter}.blp-ump.is-open{pointer-events:auto;opacity:1;transform:translateZ(0) scale(1);filter:drop-shadow(0 22px 48px rgba(0,0,0,.58)) blur(0)}.blp-ump.is-leaving{pointer-events:none;opacity:0;transform:translate3d(0,10px,0) scale(.95);filter:drop-shadow(0 12px 28px rgba(0,0,0,.4)) blur(4px);transition:opacity .24s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1),filter .24s ease}.blp-ump.is-open .blp-ump__card{animation:blp-ump-card-in .48s cubic-bezier(.22,1,.36,1) both}.blp-ump.is-open .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil){opacity:0;transform:translateY(10px);transition:opacity .36s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.16,1,.3,1)}.blp-ump.is-open.is-ready .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil){opacity:1;transform:none}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(1){transition-delay:.02s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(2){transition-delay:.04s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(3){transition-delay:.05s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(4){transition-delay:.07s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(5){transition-delay:.09s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(6){transition-delay:.11s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(7){transition-delay:.13s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(8){transition-delay:.15s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(9){transition-delay:.17s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(10){transition-delay:.19s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(11){transition-delay:.21s}.blp-ump.is-open.is-ready .blp-ump__card>*:nth-child(12){transition-delay:.23s}.blp-ump.is-leaving .blp-ump__card{animation:blp-ump-card-out .26s cubic-bezier(.4,0,.2,1) both}.blp-ump.is-leaving .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil){opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .2s ease;transition-delay:0s!important}@keyframes blp-ump-card-in{0%{opacity:.55;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes blp-ump-card-out{to{opacity:.4;transform:translateY(6px) scale(.98)}}.blp-ump__card{--ump-ink: #f4efe6;--ump-muted: rgba(244, 239, 230, .72);--ump-bg0: #1a1714;--ump-bg1: #2a241c;--ump-accent: #9a8b78;--ump-edge: rgba(255, 220, 170, .28);--ump-glow: rgba(180, 140, 90, .2);position:relative;overflow:hidden;border-radius:18px;padding:14px 14px 12px;color:var(--ump-ink);background:radial-gradient(120% 80% at 50% -10%,var(--ump-glow),transparent 55%),linear-gradient(160deg,var(--ump-bg1),var(--ump-bg0) 58%,#0e0c0a);border:1px solid var(--ump-edge);box-shadow:inset 0 1px #ffffff1f,inset 0 -1px #00000059;font-family:Montserrat,Roboto,system-ui,sans-serif}.blp-ump__card:before{content:"";position:absolute;inset:5px;border-radius:13px;border:1px solid var(--ump-edge);pointer-events:none;opacity:.55}.blp-ump__shine,.blp-ump__foil{position:absolute;inset:0;pointer-events:none}.blp-ump__shine{background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.08) 48%,transparent 62%);transform:translate(-120%);animation:blp-ump-shine 4.8s ease-in-out infinite}.blp-ump__foil{opacity:0;mix-blend-mode:soft-light;background:repeating-linear-gradient(-18deg,rgba(255,255,255,.05) 0 2px,transparent 2px 7px),radial-gradient(circle at 30% 20%,rgba(255,255,255,.2),transparent 45%)}.blp-ump__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;position:relative;z-index:1}.blp-ump__tier-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#120e0a;background:linear-gradient(180deg,#fff6e8,var(--ump-accent));box-shadow:0 1px #ffffff59 inset}.blp-ump__avg{font-size:12px;font-weight:700;color:var(--ump-ink);opacity:.9}.blp-ump__avatar-link{display:block;width:fit-content;margin:0 auto 8px;position:relative;z-index:1}.blp-ump__avatar{width:88px;height:88px;border-radius:50%;overflow:hidden;margin:0 auto;border:3px solid var(--ump-accent);box-shadow:0 0 0 3px #00000059,0 10px 24px #00000059;background:#111}.blp-ump__avatar img{width:100%;height:100%;object-fit:cover;display:block}.blp-ump__avatar--skel{display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.08),transparent 42%),linear-gradient(110deg,#1a1612,#2e2820 40%,#3a3228,#2e2820 60%,#1a1612);background-size:100% 100%,220% 100%;animation:blp-ump-skel 1.35s ease-in-out infinite}.blp-ump__spinner--avatar{width:14px;height:14px;border-width:2px;position:relative;z-index:1;flex:0 0 auto}.blp-ump__bone{display:block;border-radius:6px;background:linear-gradient(110deg,#ffffff0d,#ffffff1f,#ffffff0d 90%);background-size:220% 100%;animation:blp-ump-skel 1.35s ease-in-out infinite}.blp-ump__bone--pill{width:72px;height:20px;border-radius:999px}.blp-ump__bone--avg{width:36px;height:14px;border-radius:4px;animation-delay:.08s}.blp-ump__bone--sub{width:48%;height:10px;margin:6px auto 12px;animation-delay:.12s;position:relative;z-index:1}.blp-ump__bone--stat-n{width:42%;height:15px;margin:0 auto 6px}.blp-ump__bone--stat-l{width:58%;height:8px;margin:0 auto;animation-delay:.1s}.blp-ump__bone--label{width:64px;height:9px;margin-bottom:8px;animation-delay:.16s}.blp-ump__stat--skel{display:flex;flex-direction:column;justify-content:center;min-height:44px}.blp-ump__name--skel{opacity:.85;letter-spacing:.02em}.blp-ump__bar--skel{opacity:.35;background:linear-gradient(180deg,#ffffff59,#ffffff14);animation:blp-ump-skel-bar 1.2s ease-in-out infinite;animation-delay:var(--d, 0s)}.blp-ump__cover--skel{flex:0 0 calc((100% - (var(--ump-slots) - 1) * var(--ump-gap)) / var(--ump-slots));width:calc((100% - (var(--ump-slots) - 1) * var(--ump-gap)) / var(--ump-slots));aspect-ratio:3 / 4;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(110deg,#ffffff0a,#ffffff1f,#ffffff0a 90%);background-size:220% 100%;animation:blp-ump-skel 1.35s ease-in-out infinite;animation-delay:var(--d, 0s);pointer-events:none}.blp-ump__card.is-skeleton .blp-ump__status{display:block;width:100%;margin-top:4px;padding:8px 0 2px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;opacity:.75}.blp-ump__spinner{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:2px solid color-mix(in srgb,var(--blp-accent, #3db89a) 35%,transparent);border-top-color:var(--blp-accent, #3db89a);animation:blp-translate-spin .65s linear infinite}.blp-ump__card.is-skeleton .blp-ump__shine{animation-duration:2.4s}.blp-ump__name{display:block;text-align:center;font-size:18px;font-weight:800;letter-spacing:.01em;color:var(--ump-ink);text-decoration:none;position:relative;z-index:1;line-height:1.2}.blp-ump__name:hover{color:#fff;text-decoration:none}.blp-ump__tier-sub{text-align:center;font-size:11px;color:var(--ump-muted);margin:4px 0 12px;position:relative;z-index:1}.blp-ump__status{text-align:center;font-size:12px;color:var(--ump-muted);margin:8px 0 4px;position:relative;z-index:1}.blp-ump__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;position:relative;z-index:1}.blp-ump__stat{text-align:center;padding:7px 4px;border-radius:10px;background:#00000047;border:1px solid rgba(255,255,255,.06)}.blp-ump__stat strong{display:block;font-size:16px;font-weight:800;line-height:1.1}.blp-ump__stat span{display:block;margin-top:3px;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--ump-muted);line-height:1.2}.blp-ump__ratings{display:flex;align-items:flex-end;gap:3px;height:36px;margin:0 2px 10px;position:relative;z-index:1}.blp-ump__bar{flex:1;height:var(--h, 10%);min-height:4px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#fff,var(--ump-accent));opacity:.9}.blp-ump__bio{margin:0 0 10px;font-size:11px;line-height:1.4;color:var(--ump-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1}.blp-ump__section{margin-bottom:10px;position:relative;z-index:1}.blp-ump__section-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ump-muted);margin-bottom:6px}.blp-ump__covers{--ump-slots: 5;--ump-gap: 5px;display:flex;gap:var(--ump-gap)}.blp-ump__cover{flex:0 0 calc((100% - (var(--ump-slots) - 1) * var(--ump-gap)) / var(--ump-slots));width:calc((100% - (var(--ump-slots) - 1) * var(--ump-gap)) / var(--ump-slots));max-width:calc((100% - (var(--ump-slots) - 1) * var(--ump-gap)) / var(--ump-slots));aspect-ratio:3 / 4;border-radius:6px;overflow:hidden;background:#0a0908;border:1px solid rgba(255,255,255,.1);transition:transform .15s ease,border-color .15s ease}.blp-ump__cover:hover{transform:translateY(-2px);border-color:var(--ump-accent)}.blp-ump__cover img,.blp-ump__cover-ph{width:100%;height:100%;object-fit:cover;display:block}.blp-ump__cover-ph{background:#2a241c}.blp-ump__badges{display:flex;flex-wrap:wrap;gap:6px}.blp-ump__badge{width:28px;height:28px;border-radius:8px;overflow:hidden;background:#00000040;border:1px solid rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center}.blp-ump__badge img{width:22px;height:22px;object-fit:contain}.blp-ump__cta{display:block;text-align:center;margin-top:4px;padding:8px 10px;border-radius:10px;font-size:12px;font-weight:700;text-decoration:none;color:#120e0a;background:linear-gradient(180deg,#fff4e4,var(--ump-accent));position:relative;z-index:1;transition:filter .15s ease,transform .15s ease}.blp-ump__cta:hover{filter:brightness(1.06);transform:translateY(-1px);color:#120e0a;text-decoration:none}.blp-ump__card--rookie{--ump-accent: #8b9098;--ump-bg0: #15171a;--ump-bg1: #23262b;--ump-edge: rgba(180, 190, 200, .22);--ump-glow: rgba(140, 150, 160, .16)}.blp-ump__card--bronze{--ump-accent: #c8843d;--ump-bg0: #1a120c;--ump-bg1: #3a2414;--ump-edge: rgba(210, 140, 70, .4);--ump-glow: rgba(200, 120, 50, .28)}.blp-ump__card--silver{--ump-accent: #c5ced8;--ump-bg0: #12151a;--ump-bg1: #2a313a;--ump-edge: rgba(210, 220, 230, .38);--ump-glow: rgba(190, 205, 220, .24);--ump-ink: #f2f5f8}.blp-ump__card--gold{--ump-accent: #e6b735;--ump-bg0: #1a1406;--ump-bg1: #3d2e0a;--ump-edge: rgba(240, 190, 60, .48);--ump-glow: rgba(230, 180, 40, .32)}.blp-ump__card--gold .blp-ump__foil{opacity:.35}.blp-ump__card--platinum{--ump-accent: #9ad7e8;--ump-bg0: #0c1418;--ump-bg1: #1b2c34;--ump-edge: rgba(160, 220, 235, .45);--ump-glow: rgba(120, 200, 220, .28);--ump-ink: #eef8fb}.blp-ump__card--platinum .blp-ump__foil{opacity:.42}.blp-ump__card--diamond{--ump-accent: #6de0ff;--ump-bg0: #071018;--ump-bg1: #123044;--ump-edge: rgba(110, 220, 255, .5);--ump-glow: rgba(80, 200, 255, .34);--ump-ink: #eaf9ff}.blp-ump__card--diamond .blp-ump__foil{opacity:.5;background:conic-gradient(from 120deg,rgba(255,255,255,.15),transparent 30%,rgba(120,220,255,.2),transparent 70%),repeating-linear-gradient(-18deg,rgba(255,255,255,.06) 0 2px,transparent 2px 7px)}.blp-ump__card--master{--ump-accent: #3ecf8e;--ump-bg0: #07140f;--ump-bg1: #123528;--ump-edge: rgba(70, 220, 150, .48);--ump-glow: rgba(50, 200, 130, .32);--ump-ink: #eafff4}.blp-ump__card--master .blp-ump__foil{opacity:.45}.blp-ump__card--legend{--ump-accent: #ffc14d;--ump-bg0: #100a05;--ump-bg1: #2a1808;--ump-edge: rgba(255, 190, 70, .55);--ump-glow: rgba(255, 160, 40, .36)}.blp-ump__card--legend .blp-ump__foil{opacity:.55;animation:blp-ump-foil 6s linear infinite;background:linear-gradient(110deg,#ff50502e,#ffc83c38,#50dca02e,#50a0ff33,#ff50502e);background-size:220% 220%}.blp-ump__card--legend .blp-ump__tier-pill{background:linear-gradient(90deg,#ffb347,#ffd76a,#ffe9a8,#ffb347);background-size:200% 100%;animation:blp-ump-legend-pill 2.8s linear infinite}.blp-ump__card.is-skeleton .blp-ump__name{opacity:.85}@keyframes blp-ump-skel-bar{0%,to{opacity:.28;transform:scaleY(.92)}50%{opacity:.55;transform:scaleY(1)}}@keyframes blp-ump-shine{0%,55%{transform:translate(-120%)}75%,to{transform:translate(120%)}}@keyframes blp-ump-foil{0%{background-position:0% 50%}to{background-position:100% 50%}}@keyframes blp-ump-legend-pill{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes blp-ump-skel{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.blp-ump__spinner,.blp-ump-avatar-spin:after{animation:none!important;border-color:var(--blp-accent, #3db89a);opacity:.55}.blp-ump,.blp-ump.is-open,.blp-ump.is-leaving,.blp-ump.is-open .blp-ump__card,.blp-ump.is-open .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil),.blp-ump.is-open.is-ready .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil),.blp-ump.is-leaving .blp-ump__card,.blp-ump.is-leaving .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil),.blp-ump__shine,.blp-ump__foil,.blp-ump__card--legend .blp-ump__tier-pill,.blp-ump__cover,.blp-ump__cta,.blp-ump__bone,.blp-ump__avatar--skel,.blp-ump__cover--skel,.blp-ump__bar--skel,.blp-ump-avatar-spin,.blp-profile-header,.blp-profile-avatar,.blp-profile-tier-chip__bar>span,#profile-favorites.blp-profile-favorites .game-cover{animation:none!important;transition:none!important;filter:none!important;transform:none!important}.blp-ump.is-open{opacity:1}.blp-ump:not(.is-open){opacity:0}.blp-ump__shine,.blp-ump__foil{opacity:.15}.blp-profile-header:before{animation:none!important}}#profile-header.blp-profile-header{--blp-tier: #8b9098;--blp-tier-soft: rgba(139, 144, 152, .18);--blp-tier-glow: rgba(139, 144, 152, .22);position:relative;border-radius:16px;padding:16px 16px 8px;margin-left:-8px;margin-right:-8px;overflow:hidden;isolation:isolate}#profile-header.blp-profile-header:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(90% 120% at 8% 20%,var(--blp-tier-glow),transparent 55%),linear-gradient(135deg,var(--blp-tier-soft),transparent 48%);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px var(--blp-tier-soft);border-radius:inherit;pointer-events:none}#profile-header.blp-profile-header[data-blp-profile-tier=rookie]{--blp-tier: #8b9098;--blp-tier-soft: rgba(139, 144, 152, .14);--blp-tier-glow: rgba(139, 144, 152, .2)}#profile-header.blp-profile-header[data-blp-profile-tier=bronze]{--blp-tier: #c8843d;--blp-tier-soft: rgba(200, 132, 61, .16);--blp-tier-glow: rgba(200, 132, 61, .28)}#profile-header.blp-profile-header[data-blp-profile-tier=silver]{--blp-tier: #c5ced8;--blp-tier-soft: rgba(197, 206, 216, .16);--blp-tier-glow: rgba(197, 206, 216, .28)}#profile-header.blp-profile-header[data-blp-profile-tier=gold]{--blp-tier: #e6b735;--blp-tier-soft: rgba(230, 183, 53, .18);--blp-tier-glow: rgba(230, 183, 53, .32)}#profile-header.blp-profile-header[data-blp-profile-tier=platinum]{--blp-tier: #9ad7e8;--blp-tier-soft: rgba(154, 215, 232, .16);--blp-tier-glow: rgba(154, 215, 232, .3)}#profile-header.blp-profile-header[data-blp-profile-tier=diamond]{--blp-tier: #6de0ff;--blp-tier-soft: rgba(109, 224, 255, .16);--blp-tier-glow: rgba(109, 224, 255, .34)}#profile-header.blp-profile-header[data-blp-profile-tier=master]{--blp-tier: #3ecf8e;--blp-tier-soft: rgba(62, 207, 142, .16);--blp-tier-glow: rgba(62, 207, 142, .32)}#profile-header.blp-profile-header[data-blp-profile-tier=legend]{--blp-tier: #ffc14d;--blp-tier-soft: rgba(255, 193, 77, .18);--blp-tier-glow: rgba(255, 160, 40, .36)}#profile-header.blp-profile-header[data-blp-profile-tier=legend]:before{background:radial-gradient(90% 120% at 8% 20%,var(--blp-tier-glow),transparent 55%),linear-gradient(120deg,#ff78501f,#ffc84624,#50c8a01a,#ff78501f);background-size:100% 100%,220% 220%;animation:blp-profile-legend-wash 8s linear infinite}.blp-profile-avatar{box-shadow:0 0 0 3px var(--blp-tier),0 10px 28px var(--blp-tier-glow);border-radius:8px}.blp-profile-avatar img{border-radius:6px}.blp-profile-tier-chip{display:flex;align-items:center;gap:10px;min-width:0;max-width:min(280px,55vw)}.blp-profile-tier-chip__pill{flex:0 0 auto;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#120e0a;background:linear-gradient(180deg,#fff6e8,var(--blp-tier));box-shadow:0 1px #ffffff59 inset;white-space:nowrap}.blp-profile-tier-chip__body{min-width:0;flex:1}.blp-profile-tier-chip__played{font-size:12px;font-weight:650;line-height:1.2;color:inherit;opacity:.92}.blp-profile-tier-chip__next{margin-top:2px;font-size:11px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blp-profile-tier-chip__bar{margin-top:6px;height:4px;border-radius:999px;background:#7f7f7f38;overflow:hidden}.blp-profile-tier-chip__bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blp-tier),#fff4d8);transition:width .45s cubic-bezier(.22,1,.36,1)}#profile-nav.blp-profile-nav a.current .selected-bar{background:var(--blp-tier, currentColor)!important;box-shadow:0 0 10px var(--blp-tier-glow, transparent)}#profile-stats.blp-profile-stats{position:relative;border-radius:14px;padding:10px 6px 4px;background:linear-gradient(180deg,var(--blp-tier-soft, transparent),transparent 70%);border:1px solid rgba(255,255,255,.1)}#profile-stats.blp-profile-stats h1{color:var(--blp-tier, inherit);text-shadow:0 0 18px var(--blp-tier-glow, transparent)}#profile-nav-row.blp-profile-nav-row{margin-top:1rem!important}#profile-nav.blp-profile-nav{align-items:center;gap:2px;padding:6px 8px!important;border-radius:14px;background:linear-gradient(180deg,var(--blp-tier-soft),transparent 80%),#00000038;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px #ffffff0f,0 8px 24px #0000002e}#profile-nav.blp-profile-nav>.col-auto{padding-left:2px!important;padding-right:2px!important}#profile-nav.blp-profile-nav a.d-inline{display:inline-flex!important;align-items:center;position:relative;padding:7px 11px;border-radius:10px;font-weight:600;letter-spacing:.01em;text-decoration:none!important;color:inherit;opacity:.72;transition:background .18s ease,color .18s ease,opacity .18s ease,box-shadow .18s ease}#profile-nav.blp-profile-nav a.d-inline:hover{opacity:1;background:#ffffff0f}#profile-nav.blp-profile-nav a.d-inline.current{opacity:1;color:#120e0a;background:linear-gradient(180deg,#fff6e8,var(--blp-tier));box-shadow:0 1px #ffffff59 inset,0 6px 16px var(--blp-tier-glow)}#profile-nav.blp-profile-nav a .selected-bar{display:none!important}h2.blp-profile-fav-title{display:inline-flex;align-items:center;gap:10px;letter-spacing:.02em}h2.blp-profile-fav-title:after{content:"";display:inline-block;width:42px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--blp-tier),transparent);box-shadow:0 0 12px var(--blp-tier-glow)}#profile-favorites.blp-profile-favorites{position:relative;padding:10px 6px 4px;margin-left:0!important;margin-right:0!important;border-radius:16px;background:radial-gradient(80% 90% at 50% 0%,var(--blp-tier-soft),transparent 60%);border:1px solid rgba(255,255,255,.08)}#profile-favorites.blp-profile-favorites .game-cover{position:relative;border-radius:8px;box-shadow:0 0 0 2px #ffffff14,0 0 0 3px var(--blp-tier),0 10px 22px #00000059,0 0 18px var(--blp-tier-glow);transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}#profile-favorites.blp-profile-favorites .game-cover:hover{transform:translateY(-5px);box-shadow:0 0 0 2px #ffffff24,0 0 0 3px var(--blp-tier),0 16px 30px #0000006b,0 0 26px var(--blp-tier-glow)}#profile-favorites.blp-profile-favorites .game-cover .overflow-wrapper{border-radius:6px;overflow:hidden}#profile-favorites.blp-profile-favorites .game-cover[data-blp-fav-rank]:before{content:attr(data-blp-fav-rank);position:absolute;z-index:5;top:6px;left:6px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;letter-spacing:.02em;color:#120e0a;background:linear-gradient(180deg,#fff6e8,var(--blp-tier));box-shadow:0 1px #ffffff59 inset,0 4px 10px #00000059;pointer-events:none}#profile-favorites.blp-profile-favorites .game-cover[data-blp-fav-rank="1"]{box-shadow:0 0 0 2px #fff3,0 0 0 3px var(--blp-tier),0 0 0 6px #ffd77838,0 12px 26px #0006,0 0 28px var(--blp-tier-glow)}#profile-favorites.blp-profile-favorites .game-cover[data-blp-fav-rank="1"]:before{content:"\u2605 1";min-width:28px}html[data-blp-profile-tier=legend] #profile-favorites.blp-profile-favorites .game-cover{animation:blp-profile-fav-foil 7s linear infinite}@keyframes blp-profile-fav-foil{0%,to{filter:saturate(1)}50%{filter:saturate(1.15) brightness(1.04)}}html[data-blp-profile-tier]{--blp-tier: #8b9098;--blp-tier-soft: rgba(139, 144, 152, .14);--blp-tier-glow: rgba(139, 144, 152, .2)}html[data-blp-profile-tier=bronze]{--blp-tier: #c8843d;--blp-tier-soft: rgba(200, 132, 61, .16);--blp-tier-glow: rgba(200, 132, 61, .28)}html[data-blp-profile-tier=silver]{--blp-tier: #c5ced8;--blp-tier-soft: rgba(197, 206, 216, .16);--blp-tier-glow: rgba(197, 206, 216, .28)}html[data-blp-profile-tier=gold]{--blp-tier: #e6b735;--blp-tier-soft: rgba(230, 183, 53, .18);--blp-tier-glow: rgba(230, 183, 53, .32)}html[data-blp-profile-tier=platinum]{--blp-tier: #9ad7e8;--blp-tier-soft: rgba(154, 215, 232, .16);--blp-tier-glow: rgba(154, 215, 232, .3)}html[data-blp-profile-tier=diamond]{--blp-tier: #6de0ff;--blp-tier-soft: rgba(109, 224, 255, .16);--blp-tier-glow: rgba(109, 224, 255, .34)}html[data-blp-profile-tier=master]{--blp-tier: #3ecf8e;--blp-tier-soft: rgba(62, 207, 142, .16);--blp-tier-glow: rgba(62, 207, 142, .32)}html[data-blp-profile-tier=legend]{--blp-tier: #ffc14d;--blp-tier-soft: rgba(255, 193, 77, .18);--blp-tier-glow: rgba(255, 160, 40, .36)}@keyframes blp-profile-legend-wash{0%{background-position:0% 50%,0% 50%}to{background-position:0% 50%,100% 50%}}@media(max-width:575.98px){#profile-header.blp-profile-header{padding:12px 10px 6px;margin-left:0;margin-right:0}.blp-profile-tier-chip{max-width:100%;margin-top:6px}} '); (function () { 'use strict'; var e=(()=>"undefined"!=typeof GM_getValue?GM_getValue:void 0)(),t=(()=>"undefined"!=typeof GM_registerMenuCommand?GM_registerMenuCommand:void 0)(),a=(()=>"undefined"!=typeof GM_setValue?GM_setValue:void 0)(),n=(()=>"undefined"!=typeof GM_xmlhttpRequest?GM_xmlhttpRequest:void 0)(),i=(()=>"undefined"!=typeof unsafeWindow?unsafeWindow:void 0)();const r=[{name:"Nikitamce",handle:"Nikitamce",url:"https://github.com/Nikitamce",avatarUrl:"https://avatars.githubusercontent.com/u/187407575?s=96&v=4"}],o="0.7.79",s="blp_settings",l="blp_cache_v1",c="blp_cache_script_version",u="blp_steam_overrides",d="data-blp-root",m="data-blp-enrich",p="data-blp-steamdb",g="data-blp-similar",h="data-blp-card",b="data-blp-card-state",S="data-blp-card-appid",f="data-blp-card-slug",v="data-blp-card-title",w="https://www.google.com/s2/favicons?domain={domain}&sz=32",y=[{id:"rookie",min:0},{id:"bronze",min:25},{id:"silver",min:50},{id:"gold",min:100},{id:"platinum",min:200},{id:"diamond",min:300},{id:"master",min:500},{id:"legend",min:1e3}],k=5242880,P="https://store.steampowered.com/api/appdetails",C="https://store.steampowered.com/dynamicstore/userdata/",B="https://store.steampowered.com/tagdata/populartags/english",x="https://api.steampowered.com/IStoreBrowseService/GetItems/v1/",D="https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/",H="https://api.opencritic.com/api",T="https://opencritic.com",A="https://howlongtobeat.com",G=`${A}/api/bleed/init`,_=`${A}/api/bleed`,M="https://isthereanydeal.com",L="https://gameslike.co",$="https://shared.fastly.steamstatic.com/store_item_assets",I="https://steamdb.info",R=`${I}/app`,E="https://gamestatus.info",N="steam:userdata",O="steam:tagmap:english",F=6048e5,z=/^(https?-)?(store-)?steam(powered|static)?(-[a-z0-9]+)*(-com)?$|steampowered|steamstatic|akamaihd|^(on-)?wishlist$|^gamestatus$|^(soon-)?on-game-pass$/,U=["igdb","steam","steamdb","metacritic","opencritic","hltb","pcgamingwiki","itad","gogdb","gameslike"],q={igdb:"igdb.com",steam:"store.steampowered.com",steamdb:"steamdb.info",metacritic:"metacritic.com",opencritic:"opencritic.com",hltb:"howlongtobeat.com",pcgamingwiki:"pcgamingwiki.com",itad:"isthereanydeal.com",gogdb:"gogdb.org",gameslike:"gameslike.co"},j=["US","GB","DE","FR","RU","KZ","BR","JP","KR","CN","AU","CA","PL","ES","IT","TR","UA"],W={cacheHours:12,uiLocale:"auto",steamCountry:"US",showPriceConvert:false,convertCurrency:"RUB",showSteam:true,showMetacritic:true,showOpenCritic:true,showHltb:true,showDeckProton:true,showGameStatus:true,showLinks:true,showSteamOwned:true,showSteamWishlist:true,showSteamTags:true,showSteamCategories:true,showSteamPageLink:true,showSteamDbPageLink:true,showSteamDbIcon:true,showSteamDbCover:true,showSteamDbGallery:true,showSimilarGames:true,showGameStats:true,showSteamPlayers:true,showSteamDbDetails:true,showCardBadges:true,showCardBadgePrice:true,showCardBadgeReview:true,showCardBadgeOwned:true,showCardBadgeWishlist:true,showCardBadgeGameStatus:true,showExport:false,showGameId:false,showTranslate:true,translateTargetLocale:"auto",translateDisplayMode:"replace",translateDescription:true,translateReviews:true,translateReviewsAuto:false,hideHomepageFuse:false,enhanceHeader:false,showUserMiniProfile:true,preloadUserMiniProfile:false,showProfilePage:true,showProfileHeader:true,showProfileTierChip:true,showProfileStats:true,showProfileNav:true,showProfileFavorites:true,showProfileMenuSettings:false,debugMode:false,links:{igdb:true,steam:true,steamdb:true,metacritic:true,opencritic:true,hltb:true,pcgamingwiki:true,itad:true,gogdb:true,gameslike:true}},V={en:{menuSettings:"Backloggd Plus — Settings",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · scores · Deck/Proton · HLTB · list badges · links",close:"Close",cancel:"Cancel",save:"Save",saveReload:"Save & Reload page",repoLink:"GitHub",repoAbout:"Source code, updates, and issue reports",sectionGame:"Game page",sectionLists:"Game card",sectionListsHint:"Badges on cover cards in browse, search, journal, and Similar games.",sectionGeneral:"General",sectionProfile:"Profile",sectionUi:"UI",generalGroupLanguage:"Language",generalGroupLanguageHint:"Language of Plus menus, settings, and toasts.",generalGroupInterface:"Interface",generalGroupInterfaceHint:"Optional chrome tweaks on Backloggd pages.",profileGroupHover:"Hover cards",profileGroupHoverHint:"Brief mini profile when hovering user avatars.",profileGroupPage:"Profile page",profileGroupPageHint:"Tier chrome on /u/… profile pages (same ranks as hover cards).",profileGroupBlocks:"Page blocks",profileGroupBlocksHint:"Which parts of the profile page get tier styling when enhancement is on.",sectionCache:"Cache",sectionDebug:"Debug",sectionAbout:"About",sectionTranslate:"Translation",aboutDescription:"Backloggd Plus is a userscript that enriches Backloggd with Steam data, scores, Deck/Proton, HLTB, GameStatus, cover badges, screenshots, similar games, and quality-of-life tools. It also adds a Backloggd button on Steam and SteamDB app pages.",aboutLicense:"MIT License",aboutRepo:"GitHub repository",aboutAuthor:"Author",aboutContributors:"Contributors",aboutContributorsThanks:"Thank you to everyone who helps improve Backloggd Plus.",aboutBackloggd:"Backloggd profile",aboutBackloggdHint:"@{user} on Backloggd",aboutBackloggdNote:"Feel free to add me as a friend, say hello, or share feedback — always happy to chat.",aboutContribute:"Contribute",aboutContributeHint:"Open source — anyone can help make Backloggd better.",aboutContributeBody:"Ideas, bug reports, translations, and pull requests are all welcome. Every contribution helps the community.",aboutContributeCta:"Open the repository",aboutContributeCtaHint:"Issues, PRs, and discussions on GitHub",enhanceHeader:"Floating header",enhanceHeaderHint:"Sticky glass navbar that floats over the page and tightens slightly while scrolling.",hideHomepageFuse:"Hide Fuse ad slots",hideHomepageFuseHint:"Hides empty Fuse / incontent ad rows (homepage, game reviews, etc.).",showUserMiniProfile:"User mini-profile cards",showUserMiniProfileHint:"Brief mini profile on avatar hover. Tier grows with games played (25+ bronze … 1000+ legend).",preloadUserMiniProfile:"Preload in viewport",preloadUserMiniProfileHint:"Fetch mini-profile data for avatars as they enter the viewport so hover cards open instantly.",showProfilePage:"Enhance profile page",showProfilePageHint:"Applies tier styling to the profile page. Turn off individual blocks below as needed.",showProfileHeader:"Header & avatar",showProfileHeaderHint:"Tier wash behind the header and a colored avatar frame.",showProfileTierChip:"Tier chip",showProfileTierChipHint:"Rank pill next to the username with progress to the next tier.",showProfileStats:"Stats row",showProfileStatsHint:"Tier accent on Games Played / Backlog / This Year stats.",showProfileNav:"Profile navigation",showProfileNavHint:"Profile / Games / … tabs as a tier-tinted pill bar.",showProfileFavorites:"Favorite games",showProfileFavoritesHint:"Rank frames and hover lift on Favorite Games covers.",showProfileMenuSettings:"Plus settings in profile menu",showProfileMenuSettingsHint:"Adds a Plus entry to the account dropdown (next to Settings) and hides the header Plus button.",miniProfilePlayed:"Played",miniProfileBacklog:"Backlog",miniProfileThisYear:"This year",miniProfileFavorites:"Favorites",miniProfileRecent:"Recent",miniProfileBadges:"Badges",miniProfileAvgRating:"Average rating",miniProfileViewProfile:"View profile",miniProfileLoading:"Loading profile…",miniProfileError:"Could not load profile",miniProfileTierSub:"{count} games played",miniProfileTierRookie:"Rookie",miniProfileTierBronze:"Bronze",miniProfileTierSilver:"Silver",miniProfileTierGold:"Gold",miniProfileTierPlatinum:"Platinum",miniProfileTierDiamond:"Diamond",miniProfileTierMaster:"Master",miniProfileTierLegend:"Legend",profileTierProgress:"{n} to {tier}",profileTierMax:"Max tier",debugMode:"Debug mode",debugModeHint:"Show one debug panel on the game page with sources and a full response dump. Enrichment rows get a hatch + Cache/Network badge.",debugCacheHit:"Cache",debugCacheMiss:"Network",debugCacheMixed:"Mixed",debugCacheNa:"Derived",debugReason:"Reason",debugResponse:"Response",debugPanelTitle:"Debug",debugSources:"Sources",debugDump:"Full dump",debugSectionPage:"Page",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / players",debugSectionGameStatus:"GameStatus",debugOwned:"Owned",debugSrcRequest:"request",debugSrcBackloggd:"Current Backloggd game page",debugSrcIgdb:"Game slug / Links row (IGDB)",debugSrcMetacritic:"Links row — Metacritic URL (slug guess)",debugSrcSteamStore:"Steam store page — Links row + Steam row link",debugSrcSteamDb:"Links row — SteamDB app page",debugSrcSteamDbCharts:"SteamDB charts (reference; not scraped)",debugSrcSteamDbInfo:"SteamDB info (reference; not scraped)",debugSrcSteamTiny:"Tiny capsule — icon fallback",debugSrcSteamHeader:"Header image from appdetails",debugSrcSteamSearch:"storesearch — resolve Steam App ID",debugSrcSteamDetails:"appdetails — price, free, Metacritic, header",debugSrcSteamReviews:"appreviews — review summary for Steam row",debugSrcSteamTags:"GetItems — popular tags for Steam row",debugSrcSteamTagMap:"populartags — tag id → name map",debugSrcSteamOwned:"dynamicstore/userdata — owned library check",debugSrcSteamDbPage:"SteamDB HTML scrape — icon, logo, players",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — players fallback",debugSrcIcon:"Title icon (SteamDB / CDN)",debugSrcLogo:"Cover logo under Change cover",debugSrcGameStatusApi:"GameStatus API — status",debugSrcGameStatusPage:"GameStatus site page for matched slug",uiLanguage:"Interface language",uiLanguageHint:"Auto follows your browser language. Saved choice applies after reload.",uiLanguageAuto:"Auto (browser)",steamCountry:"Steam store region",steamCountryHint:"Affects price currency from the Steam Store API.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Show Steam price & reviews",showMetacritic:"Show Metacritic score",showOpenCritic:"Show OpenCritic score",showOpenCriticHint:"OpenCritic tier badge (searched by title).",showHltb:"Show HowLongToBeat times",showHltbHint:"Main / Extra / Complete hours from HowLongToBeat.",showDeckProton:"Show Steam Deck & ProtonDB",showDeckProtonHint:"Steam Deck Verified/Playable plus ProtonDB tier (needs a Steam App ID).",showGameStatus:"Show GameStatus",showGameStatusHint:"Status from GameStatus.info (needs a Steam match).",showLinks:"Show quick links row",showSteamOwned:"Show Steam owned status",showSteamOwnedHint:"Shows “Owned” when the game is in your Steam library. Requires being logged into Steam in this browser.",showSteamWishlist:"Show Steam wishlist status",showSteamWishlistHint:"Shows “Wishlist” when the game is on your Steam wishlist (hidden if already owned). Requires Steam login in this browser.",showSteamTags:"Show Steam tags",showSteamTagsHint:"Popular community tags from the Steam store (Open World, RPG, …).",showSteamCategories:"Show Steam categories",showSteamCategoriesHint:"Store categories from Steam app details (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Show Backloggd button on Steam",showSteamPageLinkHint:"Adds a SteamDB-style button in Other site info on Steam app pages.",showSteamDbPageLink:"Show Backloggd button on SteamDB",showSteamDbPageLinkHint:"Adds a Backloggd button next to Store / IGDB in SteamDB app links.",showSteamDbIcon:"Show SteamDB icon before title",showSteamDbIconHint:"App icon from Steam store assets (community_icon), same CDN as SteamDB.",showSteamDbCover:"Show SteamDB logo under Change cover",showSteamDbCoverHint:"Steam header image under the cover / Change cover control.",showSteamDbGallery:"Show Steam screenshots gallery",showSteamDbGalleryHint:"Horizontal screenshot strip after game stats (Steam store assets, same as SteamDB). Click to enlarge.",steamGalleryTitle:"Screenshots",steamGalleryOpen:"Open screenshot",steamGalleryClose:"Close",steamGalleryPrev:"Previous",steamGalleryNext:"Next",showSimilarGames:"Show similar games",showSimilarGamesHint:"Horizontal similar-games strip under screenshots (Steam More Like This + tag match %). Cards link to Backloggd.",similarGamesTitle:"Similar games",similarGamesMatch:"Match",similarGamesOpenSteam:"Open on Steam",showGameStats:"Show game stats block",showGameStatsHint:"Native Backloggd Plays / Playing / Backlogs / Wishlists / Ratings strip (#game-stats).",viewerZoomIn:"Zoom in",viewerZoomOut:"Zoom out",viewerZoomReset:"Reset zoom",viewerOf:"{current} / {total}",viewerOpenCover:"Open cover",showSteamPlayers:"Show online players",showSteamPlayersHint:"Current players from Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Show SteamDB details",showSteamDbDetailsHint:"One SteamDB row: franchise and systems from Steam; technologies and last record update from SteamDB when reachable.",showExport:"Show export button",showExportHint:"Adds an Export control on game pages and in the log editor (CSV / Markdown / JSON for Notion). Off by default.",showGameId:"Show game ID",showGameIdHint:"Shows the Backloggd game ID (#…) after the title. Click to copy the numeric ID.",gameIdCopyLabel:"Copy game ID",showTranslate:"Enable translation",showTranslateHint:"Show Translate buttons on game descriptions and reviews (Google Translate).",translateTargetLocale:"Target language",translateTargetLocaleHint:"Language to translate into. “Same as interface” follows Settings → General → Interface language.",translateAsUi:"Same as interface",translateDisplayMode:"Display mode",translateDisplayModeHint:"How translated text is shown after you press Translate.",translateModeReplace:"Replace text (toggle original)",translateModeBelow:"Show translation below original",translateDescription:"Translate game description",translateDescriptionHint:"Button next to the summary on game pages.",translateReviews:"Translate reviews",translateReviewsHint:"Button on each review card.",translateReviewsAuto:"Auto-translate reviews",translateReviewsAutoHint:"When a review scrolls into view, translate it automatically. Off by default.",translateButton:"Translate",translateShowOriginal:"Show original",translateHide:"Hide translation",translateLoading:"Translating…",translateError:"Could not translate",translateResultLabel:"Translation",showCardBadges:"Show cover badges",showCardBadgesHint:"Master switch for chips on game cover cards. Off hides every badge.",cardGroupTypes:"Badge types",cardGroupTypesHint:"Which chips appear when cover badges are enabled.",showCardBadgePrice:"Price",showCardBadgePriceHint:"Steam store price for your region (sale price when discounted).",showCardBadgeReview:"Steam review %",showCardBadgeReviewHint:"Positive review percentage from Steam.",showCardBadgeOwned:"Owned",showCardBadgeOwnedHint:"Shows when the game is in your Steam library. Requires Steam login in this browser.",showCardBadgeWishlist:"Wishlist",showCardBadgeWishlistHint:"Shows when the game is on your Steam wishlist (hidden if already owned). Requires Steam login.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Release / status chip from GameStatus.info when a Steam match exists.",steamBackloggdTooltip:"View on Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"Owned",steamWishlist:"Wishlist",steamFixMatch:"Fix match",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Override the automatic Steam store search for this Backloggd page. Paste the numeric App ID from the Steam store URL.",steamFixMatchPlaceholder:"e.g. 1245620",steamFixMatchClear:"Use automatic match",steamFixMatchInvalid:"Enter a valid numeric Steam App ID",steamMatchManual:"manual",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Quick links",sectionLinksHint:"Choose which sites appear in the Links row on game pages.",gameGroupSteam:"Steam",gameGroupScores:"Scores & playtime",gameGroupCompat:"Compatibility & status",gameGroupMedia:"Media & layout",gameGroupTools:"Tools",gameGroupHosts:"Other sites",gameGroupHostsHint:"Backloggd buttons on Steam and SteamDB app pages.",navSettings:"Plus",navSettingsTitle:"Backloggd Plus settings",cacheHours:"Cache duration (hours)",cacheHoursHint:"How long to reuse Steam, GameStatus, scores, media, and similar-game lookups. 0 disables that cache. Steam library/wishlist and the tag map keep their own short TTLs. Online players are never cached.",clearCache:"Clear cache",cacheCleared:"{count} lookup entries removed",cacheEmpty:"Nothing to clear — already empty",cacheBarFull:"Full",cacheBarPartial:"Partial",cacheBarFree:"Free",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"filled",cacheBarHint:"Soft storage budget. Full = game-page Steam resolves (with tags); partial = list/card lite or expired entries.",cacheBarAria:"Cache {pct}% full — {full} full, {partial} partial, {free} free",cacheTabFillAria:"Cache {pct}% full",cacheClearHint:"Removes stored Steam / GameStatus lookups from this browser profile.",toastTitleSuccess:"Success",toastTitleError:"Error",toastTitleInfo:"Info",toastTitleWarning:"Notice",toastDismiss:"Dismiss",toastSettingsSavedTitle:"Settings saved",toastSettingsSaved:"Your preferences will apply after the page reloads.",toastCacheClearedTitle:"Cache cleared",cacheEmptyTitle:"Cache",toastCacheClearedOnUpdateTitle:"Updated",toastCacheClearedOnUpdate:"v{version} — lookup cache was cleared",toastSteamMatchSavedTitle:"Match saved",toastSteamMatchSaved:"Steam App ID set to {id}",toastSteamMatchClearedTitle:"Match reset",toastSteamMatchCleared:"Using automatic Steam search again",steamFixMatchInvalidTitle:"Invalid App ID",on:"ON",off:"OFF",loading:"Loading…",notOnSteam:"Not found on Steam",loadError:"Could not load Steam data",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Ready",gsPending:"Pending",gsPartial:"Partial",gsReleaseToday:"Release today",gsUnknown:"Unknown",gsNotInDatabase:"Not in database",reviews:"Reviews",price:"Price",free:"Free",discount:"-{n}%",discountEnds:"ends {date}",steamUsFallback:"Found via US store ({cc} search returned nothing)",recommendations:"{n} recommendations",links:"Links",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",players:"Players",playersOnline:"{n} playing",franchise:"Franchise",supportedSystems:"Supported Systems",technologies:"Technologies",lastRecordUpdate:"Last Record Update",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB blocked",openCritic:"OpenCritic",hltb:"HLTB",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",unifiedRatingTitle:"Plus rating",unifiedRatingHint:"Average of Steam, Metacritic, OpenCritic & Backloggd",unifiedRatingOutOf:"out of 5",unifiedRatingSources:"{n} sources",unifiedRatingLoading:"Gathering scores…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Export",exportTitle:"Export game",exportHint:"Export this game as CSV, Markdown, or JSON for Notion.",exportFormats:"Export format",exportAdvanced:"Additional settings",exportRatingFormat:"Rating format",exportRatingText:"Text",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Numeric",exportRatingNumericHint:"Stars out of 5 (e.g. 4.5)",exportStatusFormat:"Status format",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Columns match a Notion game database.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Notion-style page: title + property lines.",exportFormatJson:"JSON",exportFormatJsonHint:"Same fields as CSV, pretty-printed JSON.",exportDownload:"Download",exportCopy:"Copy",exportSoon:"Soon",exportNoRating:"No rating",exportPreviewTitle:"Preview",exportPreviewDeveloper:"Developer",exportPreviewRelease:"Release",exportPreviewTime:"Time",exportPreviewFavorite:"Favorite",exportPreviewTags:"Tags",exportPreviewSource:"Source",exportPreviewRating:"Rating",exportPreviewStatus:"Status",exportPreviewPlatform:"Platform",exportPreviewDlc:"DLC",exportPreviewDates:"Dates",exportFormatUnavailable:"That format is not available yet",exportFormatUnavailableTitle:"Unavailable",toastExportDoneTitle:"Exported",toastExportDone:"{name}",toastExportCopiedTitle:"Copied",toastExportCopied:"Content copied to the clipboard",toastExportCopyFailedTitle:"Copy failed",toastExportCopyFailed:"Could not copy to the clipboard",toastExportFailedTitle:"Export failed",toastExportFailed:"Could not create the file",toastGameIdCopiedTitle:"Game ID copied",toastGameIdCopied:"{id} copied to the clipboard"},ru:{menuSettings:"Backloggd Plus — Настройки",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · оценки · Deck/Proton · HLTB · бейджи · ссылки",close:"Закрыть",cancel:"Отмена",save:"Сохранить",saveReload:"Сохранить и перезагрузить",repoLink:"GitHub",repoAbout:"Исходники, обновления и баг-репорты",sectionGame:"Страница игры",sectionLists:"Карточка игры",sectionListsHint:"Бейджи на обложках в каталоге, поиске, журнале и блоке «Похожие игры».",sectionGeneral:"Общие",sectionProfile:"Профиль",sectionUi:"UI",generalGroupLanguage:"Язык",generalGroupLanguageHint:"Язык меню Plus, настроек и тостов.",generalGroupInterface:"Интерфейс",generalGroupInterfaceHint:"Опциональные правки оформления страниц Backloggd.",profileGroupHover:"Мини-профиль",profileGroupHoverHint:"Карточка с краткой информацией при наведении на аватар пользователя.",profileGroupPage:"Страница профиля",profileGroupPageHint:"Оформление страниц /u/… по тирам (те же ранги, что у мини-профиля).",profileGroupBlocks:"Блоки страницы",profileGroupBlocksHint:"Какие части страницы профиля стилизовать, когда оформление включено.",sectionCache:"Кэш",sectionDebug:"Отладка",sectionAbout:"О скрипте",sectionTranslate:"Перевод",aboutDescription:"Backloggd Plus — userscript, который дополняет Backloggd данными Steam, оценками, Deck/Proton, HLTB, GameStatus, бейджами на обложках, скриншотами, похожими играми и удобными инструментами. Также добавляет кнопку Backloggd на страницах игр Steam и SteamDB.",aboutLicense:"Лицензия MIT",aboutRepo:"Репозиторий на GitHub",aboutAuthor:"Автор",aboutContributors:"Участники",aboutContributorsThanks:"Спасибо всем, кто помогает улучшать Backloggd Plus.",aboutBackloggd:"Профиль на Backloggd",aboutBackloggdHint:"@{user} на Backloggd",aboutBackloggdNote:"Можете добавить меня в друзья, написать или поделиться идеями — всегда рад общению.",aboutContribute:"Участие",aboutContributeHint:"Скрипт открытый — каждый может помочь сделать Backloggd удобнее.",aboutContributeBody:"Идеи, баг-репорты, переводы и pull request’ы приветствуются. Любой вклад помогает сообществу.",aboutContributeCta:"Открыть репозиторий",aboutContributeCtaHint:"Issues, PR и обсуждения на GitHub",enhanceHeader:"Плавающий хедер",enhanceHeaderHint:"Липкая стеклянная панель навигации поверх страницы; при прокрутке чуть уплотняется.",hideHomepageFuse:"Скрывать рекламные блоки Fuse",hideHomepageFuseHint:"Убирает пустые ряды Fuse / incontent (главная, отзывы на странице игры и т.п.).",showUserMiniProfile:"Мини-профиль пользователя",showUserMiniProfileHint:"Карточка с краткой информацией при наведении на аватар. Тир растёт с числом сыгранных игр (25+ бронза … 1000+ легенда).",preloadUserMiniProfile:"Предзагрузка в зоне видимости",preloadUserMiniProfileHint:"Загружает данные мини-профиля для аватаров в зоне видимости, чтобы карточка открывалась сразу.",showProfilePage:"Оформление страницы профиля",showProfilePageHint:"Применяет тир-стиль к странице профиля. Отдельные блоки можно отключить ниже.",showProfileHeader:"Шапка и аватар",showProfileHeaderHint:"Градиент шапки и цветная рамка аватара по тиру.",showProfileTierChip:"Чип тира",showProfileTierChipHint:"Рядом с именем: тир и прогресс до следующего ранга.",showProfileStats:"Статистика",showProfileStatsHint:"Подсветка ряда Games Played / Backlog / This Year.",showProfileNav:"Навигация профиля",showProfileNavHint:"Вкладки Profile / Games / … в виде тир-панели.",showProfileFavorites:"Избранные игры",showProfileFavoritesHint:"Рамки рангов и эффект при наведении у Favorite Games.",showProfileMenuSettings:"Настройки Plus в меню профиля",showProfileMenuSettingsHint:"Добавляет пункт Plus в меню аккаунта рядом с Settings и скрывает кнопку Plus в хедере.",miniProfilePlayed:"Сыграно",miniProfileBacklog:"Бэклог",miniProfileThisYear:"В этом году",miniProfileFavorites:"Избранное",miniProfileRecent:"Недавние",miniProfileBadges:"Значки",miniProfileAvgRating:"Средняя оценка",miniProfileViewProfile:"Открыть профиль",miniProfileLoading:"Загрузка профиля…",miniProfileError:"Не удалось загрузить профиль",miniProfileTierSub:"{count} игр сыграно",miniProfileTierRookie:"Новичок",miniProfileTierBronze:"Бронза",miniProfileTierSilver:"Серебро",miniProfileTierGold:"Золото",miniProfileTierPlatinum:"Платина",miniProfileTierDiamond:"Алмаз",miniProfileTierMaster:"Мастер",miniProfileTierLegend:"Легенда",profileTierProgress:"{n} до «{tier}»",profileTierMax:"Максимальный тир",debugMode:"Режим отладки",debugModeHint:"Одна панель отладки на странице игры: источники и полный дамп. Ряды обогащения — штриховка и бейдж Кэш/Сеть.",debugCacheHit:"Кэш",debugCacheMiss:"Сеть",debugCacheMixed:"Смешанно",debugCacheNa:"Локально",debugReason:"Причина",debugResponse:"Ответ",debugPanelTitle:"Отладка",debugSources:"Источники",debugDump:"Полный дамп",debugSectionPage:"Страница",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / игроки",debugSectionGameStatus:"GameStatus",debugOwned:"Куплено",debugSrcRequest:"запрос",debugSrcBackloggd:"Текущая страница игры на Backloggd",debugSrcIgdb:"Слаг игры / ряд Links (IGDB)",debugSrcMetacritic:"Ряд Links — URL Metacritic (по слагу)",debugSrcSteamStore:"Страница в Steam — Links + ссылка в ряду Steam",debugSrcSteamDb:"Ряд Links — страница приложения SteamDB",debugSrcSteamDbCharts:"SteamDB charts (справочно; не скрапится)",debugSrcSteamDbInfo:"SteamDB info (справочно; не скрапится)",debugSrcSteamTiny:"Маленькая капсула — запасной icon",debugSrcSteamHeader:"Картинка header из API appdetails",debugSrcSteamSearch:"Поиск Steam App ID (storesearch)",debugSrcSteamDetails:"appdetails — цена, бесплатно, Metacritic, header",debugSrcSteamReviews:"appreviews — сводка отзывов для ряда Steam",debugSrcSteamTags:"GetItems — популярные теги для ряда Steam",debugSrcSteamTagMap:"populartags — карта id тега → имя",debugSrcSteamOwned:"dynamicstore/userdata — проверка библиотеки",debugSrcSteamDbPage:"HTML SteamDB — icon, logo, игроки",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — запасной онлайн",debugSrcIcon:"Иконка у заголовка (SteamDB / CDN)",debugSrcLogo:"Логотип обложки под кнопкой смены обложки (Change cover)",debugSrcGameStatusApi:"API GameStatus — статус",debugSrcGameStatusPage:"Страница GameStatus для найденного слага",uiLanguage:"Язык интерфейса",uiLanguageHint:"Авто — язык браузера. Выбор применится после перезагрузки.",uiLanguageAuto:"Авто (браузер)",steamCountry:"Регион Steam Store",steamCountryHint:"Влияет на валюту цены из Steam Store API.",showPriceConvert:"Показывать цену в другой валюте",showPriceConvertHint:"После цены Steam Store — приблизительная сумма в выбранной валюте (рыночный курс, не второй регион Steam). Пример: 1 400 ₸ ~ 560 ₽. При скидке справа мелко зачёркнута цена без скидки.",convertCurrency:"Переводить цены в",convertCurrencyHint:"Только если включён перевод и валюта магазина отличается от выбранной.",showSteam:"Показывать цену и отзывы Steam",showMetacritic:"Показывать оценку Metacritic",showOpenCritic:"Показывать оценку OpenCritic",showOpenCriticHint:"Бейдж уровня (tier) с OpenCritic (поиск по названию).",showHltb:"Показывать время HowLongToBeat",showHltbHint:"Время «основное / с дополнениями / 100%» с HowLongToBeat.",showDeckProton:"Показывать Steam Deck и ProtonDB",showDeckProtonHint:"Статус Steam Deck (проверено / играбельно) и уровень ProtonDB (нужен Steam App ID).",showGameStatus:"Показывать статус GameStatus",showGameStatusHint:"Статус с GameStatus.info (нужно совпадение со Steam).",showLinks:"Показывать ряд ссылок",showSteamOwned:"Показывать «Куплено» в Steam",showSteamOwnedHint:"Показывает «Куплено», если игра в вашей библиотеке Steam. Нужен вход в Steam в этом браузере.",showSteamWishlist:"Показывать «В вишлисте» Steam",showSteamWishlistHint:"Показывает «В вишлисте», если игра в списке желаний Steam (скрывается, если уже куплена). Нужен вход в Steam.",showSteamTags:"Показывать теги Steam",showSteamTagsHint:"Популярные пользовательские теги из Steam Store (открытый мир, RPG, …).",showSteamCategories:"Показывать категории Steam",showSteamCategoriesHint:"Категории из карточки Steam (одиночная, мультиплеер, достижения Steam, …).",showSteamPageLink:"Кнопка Backloggd на Steam",showSteamPageLinkHint:"Кнопка в стиле SteamDB в блоке Other site info на страницах игр Steam.",showSteamDbPageLink:"Кнопка Backloggd на SteamDB",showSteamDbPageLinkHint:"Кнопка рядом со Store / IGDB в блоке app-links на SteamDB.",showSteamDbIcon:"Иконка SteamDB перед названием",showSteamDbIconHint:"Иконка из Steam store assets (community_icon), тот же CDN, что у SteamDB.",showSteamDbCover:"Логотип SteamDB под кнопкой смены обложки",showSteamDbCoverHint:"Картинка Steam header под обложкой / кнопкой смены обложки (Change cover).",showSteamDbGallery:"Галерея скриншотов Steam",showSteamDbGalleryHint:"Горизонтальная лента скриншотов после блока статистики (ассеты Steam Store, как на SteamDB). Клик — увеличить.",steamGalleryTitle:"Скриншоты",steamGalleryOpen:"Открыть скриншот",steamGalleryClose:"Закрыть",steamGalleryPrev:"Назад",steamGalleryNext:"Вперёд",showSimilarGames:"Похожие игры",showSimilarGamesHint:"Лента похожих игр под скриншотами (рекомендации Steam + % совпадения тегов). Карточки ведут на Backloggd.",similarGamesTitle:"Похожие игры",similarGamesMatch:"Сходство",similarGamesOpenSteam:"Открыть в Steam",showGameStats:"Блок статистики игры",showGameStatsHint:"Блок Backloggd: сыграно / играют / бэклог / вишлист / оценки (#game-stats).",viewerZoomIn:"Увеличить",viewerZoomOut:"Уменьшить",viewerZoomReset:"Сбросить масштаб",viewerOf:"{current} / {total}",viewerOpenCover:"Открыть обложку",showSteamPlayers:"Показывать онлайн игроков",showSteamPlayersHint:"Текущие игроки через Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Показывать детали SteamDB",showSteamDbDetailsHint:"Один ряд SteamDB: франшиза и системы из Steam; технологии и последнее обновление записи — со SteamDB, если страница доступна.",showExport:"Показывать кнопку экспорта",showExportHint:"Кнопка экспорта на странице игры и в редакторе лога (CSV / Markdown / JSON для Notion). По умолчанию выключено.",showGameId:"Показывать ID игры",showGameIdHint:"Показывает ID игры Backloggd (#…) после названия. Клик копирует числовой ID.",gameIdCopyLabel:"Скопировать ID игры",showTranslate:"Включить перевод",showTranslateHint:"Кнопки «Перевести» у описания игры и обзоров (Google Translate).",translateTargetLocale:"Целевой язык",translateTargetLocaleHint:"Язык перевода. «Как интерфейс» следует настройке Общие → Язык интерфейса.",translateAsUi:"Как интерфейс",translateDisplayMode:"Режим отображения",translateDisplayModeHint:"Как показывать перевод после нажатия «Перевести».",translateModeReplace:"Заменить текст (переключение с оригиналом)",translateModeBelow:"Показать перевод под оригиналом",translateDescription:"Переводить описание игры",translateDescriptionHint:"Кнопка рядом с кратким описанием на странице игры.",translateReviews:"Переводить обзоры",translateReviewsHint:"Кнопка на каждой карточке обзора.",translateReviewsAuto:"Автоперевод обзоров",translateReviewsAutoHint:"Когда обзор появляется в зоне видимости, переводить его автоматически. По умолчанию выкл.",translateButton:"Перевести",translateShowOriginal:"Показать оригинал",translateHide:"Скрыть перевод",translateLoading:"Перевод…",translateError:"Не удалось перевести",translateResultLabel:"Перевод",showCardBadges:"Показывать бейджи на обложках",showCardBadgesHint:"Главный переключатель. Выключите — и все бейджи на карточках скроются.",cardGroupTypes:"Типы бейджей",cardGroupTypesHint:"Какие чипы показывать, когда бейджи включены.",showCardBadgePrice:"Цена",showCardBadgePriceHint:"Цена в Steam Store для вашего региона (со скидкой — акционная).",showCardBadgeReview:"Рейтинг Steam %",showCardBadgeReviewHint:"Процент положительных отзывов в Steam.",showCardBadgeOwned:"Куплено",showCardBadgeOwnedHint:"Если игра в вашей библиотеке Steam. Нужен вход в Steam в этом браузере.",showCardBadgeWishlist:"Вишлист",showCardBadgeWishlistHint:"Если игра в списке желаний Steam (скрывается, если уже куплена). Нужен вход в Steam.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Статус релиза с GameStatus.info, если есть матч Steam.",steamBackloggdTooltip:"Открыть на Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"Куплено",steamWishlist:"В вишлисте",steamFixMatch:"Исправить матч",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Переопределить автоматический поиск в Steam Store для этой страницы Backloggd. Вставьте числовой App ID из URL магазина Steam.",steamFixMatchPlaceholder:"например 1245620",steamFixMatchClear:"Автоматический матч",steamFixMatchInvalid:"Введите корректный числовой Steam App ID",steamMatchManual:"вручную",steamMatchAuto:"авто",steamMatchLabel:"App {id} · {source}",sectionLinks:"Быстрые ссылки",sectionLinksHint:"Какие сайты показывать в ряду Links на странице игры.",gameGroupSteam:"Steam",gameGroupScores:"Оценки и время",gameGroupCompat:"Совместимость и статус",gameGroupMedia:"Медиа и оформление",gameGroupTools:"Инструменты",gameGroupHosts:"Другие сайты",gameGroupHostsHint:"Кнопки Backloggd на страницах игр Steam и SteamDB.",navSettings:"Плюс",navSettingsTitle:"Настройки Backloggd Plus",cacheHours:"Время кэша (часы)",cacheHoursHint:"Как долго переиспользовать ответы Steam, GameStatus, оценок, медиа и похожих игр. 0 отключает этот кэш. Библиотека/вишлист Steam и карта тегов сохраняют свои короткие TTL. Онлайн-игроки не кешируются.",clearCache:"Очистить кэш",cacheCleared:"Удалено записей: {count}",cacheEmpty:"Очищать нечего — кэш уже пуст",cacheBarFull:"Полный",cacheBarPartial:"Частичный",cacheBarFree:"Свободно",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"заполнено",cacheBarHint:"Мягкий лимит хранилища. Полный — резолвы со страницы игры (с тегами); частичный — lite с карточек или просроченные.",cacheBarAria:"Кэш заполнен на {pct}% — {full} полный, {partial} частичный, {free} свободно",cacheTabFillAria:"Кэш заполнен на {pct}%",cacheClearHint:"Удаляет сохранённые запросы Steam / GameStatus из этого профиля браузера.",toastTitleSuccess:"Готово",toastTitleError:"Ошибка",toastTitleInfo:"Инфо",toastTitleWarning:"Внимание",toastDismiss:"Закрыть",toastSettingsSavedTitle:"Настройки сохранены",toastSettingsSaved:"Параметры применятся после перезагрузки страницы.",toastCacheClearedTitle:"Кэш очищен",cacheEmptyTitle:"Кэш",toastCacheClearedOnUpdateTitle:"Обновлено",toastCacheClearedOnUpdate:"v{version} — кэш запросов очищен",toastSteamMatchSavedTitle:"Матч сохранён",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchClearedTitle:"Матч сброшен",toastSteamMatchCleared:"Снова используется автоматический поиск Steam",steamFixMatchInvalidTitle:"Неверный App ID",on:"ВКЛ",off:"ВЫКЛ",loading:"Загрузка…",notOnSteam:"Не найдено в Steam",loadError:"Не удалось загрузить данные Steam",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Готово",gsPending:"Ожидание",gsPartial:"Частично",gsReleaseToday:"Релиз сегодня",gsUnknown:"Неизвестно",gsNotInDatabase:"Нет в базе",reviews:"Отзывы",price:"Цена",free:"Бесплатно",discount:"-{n}%",discountEnds:"до {date}",steamUsFallback:"Найдено через магазин US (в {cc} ничего не нашлось)",recommendations:"{n} рекомендаций",links:"Ссылки",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",players:"Игроки",playersOnline:"{n} в игре",franchise:"Франшиза",supportedSystems:"Поддерживаемые системы",technologies:"Технологии",lastRecordUpdate:"Последнее обновление записи",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB недоступен",openCritic:"OpenCritic",hltb:"HLTB",hltbMain:"Основной {n}ч",hltbExtra:"С дополнениями {n}ч",hltbComplete:"100% {n}ч",deckProton:"Deck / Proton",deckVerified:"Проверено",deckPlayable:"Играбельно",deckUnsupported:"Не поддерживается",deckUnknown:"Неизвестно",protonTier:"ProtonDB {tier}",unifiedRatingTitle:"Рейтинг Plus",unifiedRatingHint:"Среднее Steam, Metacritic, OpenCritic и Backloggd",unifiedRatingOutOf:"из 5",unifiedRatingSources:"{n} источников",unifiedRatingLoading:"Собираем оценки…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Экспорт",exportTitle:"Экспорт игры",exportHint:"Экспорт игры в CSV, Markdown или JSON для Notion.",exportFormats:"Формат экспорта",exportAdvanced:"Дополнительные настройки",exportRatingFormat:"Формат оценки",exportRatingText:"Текст",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Число",exportRatingNumericHint:"Звёзды из 5 (например 4.5)",exportStatusFormat:"Формат статуса",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Колонки как в Notion-базе игр.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Страница Notion: заголовок + свойства.",exportFormatJson:"JSON",exportFormatJsonHint:"Те же поля, что в CSV, в JSON.",exportDownload:"Скачать",exportCopy:"Скопировать",exportSoon:"Скоро",exportNoRating:"Без оценки",exportPreviewTitle:"Превью",exportPreviewDeveloper:"Разработчик",exportPreviewRelease:"Релиз",exportPreviewTime:"Время",exportPreviewFavorite:"Избранное",exportPreviewTags:"Теги",exportPreviewSource:"Источник",exportPreviewRating:"Оценка",exportPreviewStatus:"Статус",exportPreviewPlatform:"Платформа",exportPreviewDlc:"DLC",exportPreviewDates:"Даты",exportFormatUnavailable:"Этот формат пока недоступен",exportFormatUnavailableTitle:"Недоступно",toastExportDoneTitle:"Экспортировано",toastExportDone:"{name}",toastExportCopiedTitle:"Скопировано",toastExportCopied:"Содержимое скопировано в буфер обмена",toastExportCopyFailedTitle:"Не удалось скопировать",toastExportCopyFailed:"Не получилось записать в буфер обмена",toastExportFailedTitle:"Ошибка экспорта",toastExportFailed:"Не удалось создать файл",toastGameIdCopiedTitle:"ID скопирован",toastGameIdCopied:"{id} скопирован в буфер обмена"},zh:{menuSettings:"Backloggd Plus — 设置",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · 评分 · Deck/Proton · HLTB · 列表徽章 · 链接",close:"关闭",cancel:"取消",save:"保存",saveReload:"保存并刷新页面",repoLink:"GitHub",repoAbout:"源码、更新与问题反馈",sectionGame:"游戏页",sectionLists:"游戏卡片",sectionListsHint:"浏览、搜索、日志以及「相似游戏」封面卡片上的徽章。",sectionGeneral:"通用",sectionProfile:"资料",sectionUi:"UI",generalGroupLanguage:"语言",generalGroupLanguageHint:"Plus 菜单、设置与提示的语言。",generalGroupInterface:"界面",generalGroupInterfaceHint:"可选的 Backloggd 页面外观调整。",profileGroupHover:"悬停卡片",profileGroupHoverHint:"悬停用户头像时显示简明资料卡。",profileGroupPage:"资料页",profileGroupPageHint:"为 /u/… 资料页应用与迷你资料相同的等级样式。",profileGroupBlocks:"页面区块",profileGroupBlocksHint:"启用资料页美化时,分别控制各区块样式。",sectionCache:"缓存",sectionDebug:"调试",sectionAbout:"关于",sectionTranslate:"翻译",aboutDescription:"Backloggd Plus 是一款 userscript,为 Backloggd 补充 Steam 数据、评分、Deck/Proton、HLTB、GameStatus、封面徽章、截图、相似游戏与实用工具,并在 Steam / SteamDB 游戏页加入 Backloggd 按钮。",aboutLicense:"MIT 许可证",aboutRepo:"GitHub 仓库",aboutAuthor:"作者",aboutContributors:"贡献者",aboutContributorsThanks:"感谢所有帮助改进 Backloggd Plus 的人。",aboutBackloggd:"Backloggd 主页",aboutBackloggdHint:"Backloggd 上的 @{user}",aboutBackloggdNote:"欢迎加我好友、打个招呼或分享反馈——很乐意交流。",aboutContribute:"参与贡献",aboutContributeHint:"开源项目——任何人都能让 Backloggd 变得更好。",aboutContributeBody:"欢迎提出想法、报告问题、翻译或提交 PR。每一份贡献都惠及社区。",aboutContributeCta:"打开仓库",aboutContributeCtaHint:"在 GitHub 上提 Issue、PR 与讨论",enhanceHeader:"浮动顶栏",enhanceHeaderHint:"粘性毛玻璃导航栏,随页面滚动略微收紧。",hideHomepageFuse:"隐藏 Fuse 广告位",hideHomepageFuseHint:"隐藏空的 Fuse / incontent 广告行(首页、游戏评论区等)。",showUserMiniProfile:"用户迷你资料卡",showUserMiniProfileHint:"悬停头像时显示简明资料。等级随游玩数量提升(25+ 青铜 … 1000+ 传奇)。",preloadUserMiniProfile:"进入视口时预加载",preloadUserMiniProfileHint:"头像进入视口时预取迷你资料数据,悬停时可立即打开卡片。",showProfilePage:"美化资料页",showProfilePageHint:"为资料页应用等级样式。可在下方单独关闭各区块。",showProfileHeader:"顶部与头像",showProfileHeaderHint:"顶部渐变背景与彩色头像边框。",showProfileTierChip:"等级徽章",showProfileTierChipHint:"用户名旁显示等级与到下一阶的进度。",showProfileStats:"统计行",showProfileStatsHint:"为 Games Played / Backlog 等统计添加等级强调色。",showProfileNav:"资料导航",showProfileNavHint:"将 Profile / Games 等标签显示为等级色药丸栏。",showProfileFavorites:"最爱游戏",showProfileFavoritesHint:"最爱游戏封面的等级边框与悬停抬起效果。",showProfileMenuSettings:"在个人菜单中显示 Plus 设置",showProfileMenuSettingsHint:"在账号下拉菜单中靠近 Settings 处添加 Plus 项,并隐藏顶栏 Plus 按钮。",miniProfilePlayed:"已玩",miniProfileBacklog:"待玩",miniProfileThisYear:"今年",miniProfileFavorites:"最爱",miniProfileRecent:"最近",miniProfileBadges:"徽章",miniProfileAvgRating:"平均评分",miniProfileViewProfile:"查看资料",miniProfileLoading:"正在加载资料…",miniProfileError:"无法加载资料",miniProfileTierSub:"已玩 {count} 款",miniProfileTierRookie:"新秀",miniProfileTierBronze:"青铜",miniProfileTierSilver:"白银",miniProfileTierGold:"黄金",miniProfileTierPlatinum:"铂金",miniProfileTierDiamond:"钻石",miniProfileTierMaster:"大师",miniProfileTierLegend:"传奇",profileTierProgress:"距{tier}还差 {n}",profileTierMax:"已满级",debugMode:"调试模式",debugModeHint:"在游戏页显示调试面板与完整响应。各增强行带斜线底纹和缓存/网络徽章。",debugCacheHit:"缓存",debugCacheMiss:"网络",debugCacheMixed:"混合",debugCacheNa:"派生",debugReason:"原因",debugResponse:"响应",debugPanelTitle:"调试",debugSources:"来源",debugDump:"完整转储",debugSectionPage:"页面",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / 玩家",debugSectionGameStatus:"GameStatus",debugOwned:"已拥有",debugSrcRequest:"请求",debugSrcBackloggd:"当前 Backloggd 游戏页",debugSrcIgdb:"游戏 slug / Links 行(IGDB)",debugSrcMetacritic:"Links 行 — Metacritic URL(按 slug 猜测)",debugSrcSteamStore:"Steam 商店页 — Links + Steam 行链接",debugSrcSteamDb:"Links 行 — SteamDB 应用页",debugSrcSteamDbCharts:"SteamDB charts(参考;不抓取)",debugSrcSteamDbInfo:"SteamDB info(参考;不抓取)",debugSrcSteamTiny:"小胶囊图 — 图标回退",debugSrcSteamHeader:"来自 appdetails 的 header 图",debugSrcSteamSearch:"storesearch — 解析 Steam App ID",debugSrcSteamDetails:"appdetails — 价格、免费、Metacritic、header",debugSrcSteamReviews:"appreviews — Steam 行评价摘要",debugSrcSteamTags:"GetItems — Steam 行热门标签",debugSrcSteamTagMap:"populartags — 标签 id → 名称",debugSrcSteamOwned:"dynamicstore/userdata — 库拥有检查",debugSrcSteamDbPage:"SteamDB HTML — icon、logo、玩家数",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — 玩家数回退",debugSrcIcon:"标题图标(SteamDB / CDN)",debugSrcLogo:"Change cover 下的封面 logo",debugSrcGameStatusApi:"GameStatus API — 状态",debugSrcGameStatusPage:"匹配 slug 的 GameStatus 页面",uiLanguage:"界面语言",uiLanguageHint:"自动跟随浏览器语言。保存后刷新生效。",uiLanguageAuto:"自动(浏览器)",steamCountry:"Steam 商店地区",steamCountryHint:"影响 Steam Store API 返回的货币。",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"显示 Steam 价格与评价",showMetacritic:"显示 Metacritic 分数",showOpenCritic:"显示 OpenCritic 分数",showOpenCriticHint:"来自 OpenCritic 的 Tier 徽章(按标题搜索)。",showHltb:"显示 HowLongToBeat 时长",showHltbHint:"来自 HowLongToBeat 的 Main / Extra / Complete 小时数。",showDeckProton:"显示 Steam Deck 与 ProtonDB",showDeckProtonHint:"Steam Deck Verified/Playable 与 ProtonDB 等级(需要 Steam App ID)。",showGameStatus:"显示 GameStatus",showGameStatusHint:"来自 GameStatus.info 的状态(需要匹配到 Steam)。",showLinks:"显示快捷链接行",showSteamOwned:"显示 Steam 已拥有状态",showSteamOwnedHint:"若游戏在您的 Steam 库中则显示“已拥有”。需要在此浏览器登录 Steam。",showSteamWishlist:"显示 Steam 愿望单状态",showSteamWishlistHint:"若游戏在您的 Steam 愿望单中则显示“愿望单”(已拥有时隐藏)。需要在此浏览器登录 Steam。",showSteamTags:"显示 Steam 标签",showSteamTagsHint:"来自 Steam 商店的热门社区标签(Open World、RPG 等)。",showSteamCategories:"显示 Steam 类别",showSteamCategoriesHint:"来自 Steam 应用详情的商店类别(单人、多人、Steam 成就等)。",showSteamPageLink:"在 Steam 显示 Backloggd 按钮",showSteamPageLinkHint:"在 Steam 游戏页 Other site info 中添加类似 SteamDB 的按钮。",showSteamDbPageLink:"在 SteamDB 显示 Backloggd 按钮",showSteamDbPageLinkHint:"在 SteamDB app-links 中、Store / IGDB 旁添加 Backloggd 按钮。",showSteamDbIcon:"在标题前显示 SteamDB 图标",showSteamDbIconHint:"来自 SteamDB 页面标题的应用图标,失败时回退到 Steam 胶囊图。",showSteamDbCover:"在 Change cover 下显示 SteamDB Logo",showSteamDbCoverHint:"在封面 / Change cover 下方显示 SteamDB 封面图。",showSteamDbGallery:"显示 Steam 截图库",showSteamDbGalleryHint:"在游戏统计下方显示横向截图条(Steam 商店资源,与 SteamDB 相同)。点击放大。",steamGalleryTitle:"截图",steamGalleryOpen:"打开截图",steamGalleryClose:"关闭",steamGalleryPrev:"上一张",steamGalleryNext:"下一张",showSimilarGames:"显示相似游戏",showSimilarGamesHint:"在截图下方显示相似游戏条(Steam More Like This + 标签匹配百分比)。卡片链接到 Backloggd。",similarGamesTitle:"相似游戏",similarGamesMatch:"匹配",similarGamesOpenSteam:"在 Steam 打开",showGameStats:"显示游戏统计块",showGameStatsHint:"Backloggd 原生 Plays / Playing / Backlogs / Wishlists / Ratings 区块(#game-stats)。",viewerZoomIn:"放大",viewerZoomOut:"缩小",viewerZoomReset:"重置缩放",viewerOf:"{current} / {total}",viewerOpenCover:"打开封面",showSteamPlayers:"显示在线玩家数",showSteamPlayersHint:"当前玩家来自 Steam GetNumberOfCurrentPlayers。",showSteamDbDetails:"显示 SteamDB 详情",showSteamDbDetailsHint:"系列与支持系统来自 Steam;技术与最后记录更新在可访问时来自 SteamDB。",showExport:"显示导出按钮",showExportHint:"在游戏页和日志编辑器中显示导出(CSV / Markdown / JSON,用于 Notion)。默认关闭。",showGameId:"显示游戏 ID",showGameIdHint:"在标题后显示 Backloggd 游戏 ID(#…)。点击复制数字 ID。",gameIdCopyLabel:"复制游戏 ID",showTranslate:"启用翻译",showTranslateHint:"在游戏简介和评论上显示“翻译”按钮(Google 翻译)。",translateTargetLocale:"目标语言",translateTargetLocaleHint:"翻译成的语言。“与界面相同”跟随 通用 → 界面语言。",translateAsUi:"与界面相同",translateDisplayMode:"显示方式",translateDisplayModeHint:"按下“翻译”后如何显示译文。",translateModeReplace:"替换原文(可切换回原文)",translateModeBelow:"在原文下方显示译文",translateDescription:"翻译游戏简介",translateDescriptionHint:"游戏页简介旁的按钮。",translateReviews:"翻译评论",translateReviewsHint:"每条评论卡片上的按钮。",translateReviewsAuto:"自动翻译评论",translateReviewsAutoHint:"评论进入可视区域时自动翻译。默认关闭。",translateButton:"翻译",translateShowOriginal:"显示原文",translateHide:"隐藏译文",translateLoading:"翻译中…",translateError:"无法翻译",translateResultLabel:"译文",showCardBadges:"显示封面徽章",showCardBadgesHint:"封面卡片徽章总开关。关闭后隐藏全部徽章。",cardGroupTypes:"徽章类型",cardGroupTypesHint:"启用封面徽章时显示哪些芯片。",showCardBadgePrice:"价格",showCardBadgePriceHint:"您所在地区的 Steam 商店价格(打折时为特价)。",showCardBadgeReview:"Steam 好评%",showCardBadgeReviewHint:"Steam 好评价百分比。",showCardBadgeOwned:"已拥有",showCardBadgeOwnedHint:"游戏在您的 Steam 库中时显示。需要在此浏览器登录 Steam。",showCardBadgeWishlist:"愿望单",showCardBadgeWishlistHint:"游戏在愿望单中时显示(已拥有则隐藏)。需要登录 Steam。",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"有 Steam 匹配时显示 GameStatus.info 的状态芯片。",steamBackloggdTooltip:"在 Backloggd 查看",steamDbBackloggdLabel:"Backloggd",steamOwned:"已拥有",steamWishlist:"愿望单",steamFixMatch:"修正匹配",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"覆盖此 Backloggd 页面的自动 Steam 商店搜索。粘贴 Steam 商店 URL 中的数字 App ID。",steamFixMatchPlaceholder:"例如 1245620",steamFixMatchClear:"使用自动匹配",steamFixMatchInvalid:"请输入有效的数字 Steam App ID",steamMatchManual:"手动",steamMatchAuto:"自动",steamMatchLabel:"App {id} · {source}",sectionLinks:"快捷链接",sectionLinksHint:"选择游戏页 Links 行中显示的站点。",gameGroupSteam:"Steam",gameGroupScores:"评分与时长",gameGroupCompat:"兼容性与状态",gameGroupMedia:"媒体与布局",gameGroupTools:"工具",gameGroupHosts:"其他站点",gameGroupHostsHint:"在 Steam 和 SteamDB 游戏页显示 Backloggd 按钮。",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 设置",cacheHours:"缓存时长(小时)",cacheHoursHint:"复用 Steam、GameStatus、评分、媒体与相似游戏查询的时间。0 禁用该缓存。Steam 库/愿望单与标签表仍使用各自的短 TTL。在线玩家数不缓存。",clearCache:"清除缓存",cacheCleared:"已清除 {count} 条记录",cacheEmpty:"无需清理 — 缓存已为空",cacheBarFull:"完整",cacheBarPartial:"部分",cacheBarFree:"可用",cacheBarLegend:"{label}:{count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"已用",cacheBarHint:"软性存储上限。完整 = 可用查询;部分 = 不完整或已过期但仍占用空间的条目。",cacheBarAria:"缓存已用 {pct}% — 完整 {full},部分 {partial},可用 {free}",cacheTabFillAria:"缓存已用 {pct}%",cacheClearHint:"删除此浏览器配置中的 Steam / GameStatus 查询缓存。",toastSettingsSaved:"偏好设置将在页面刷新后生效。",toastCacheClearedOnUpdate:"v{version} — 查询缓存已清空",toastSteamMatchSaved:"Steam App ID 已设为 {id}",toastSteamMatchCleared:"已恢复自动 Steam 搜索",toastTitleSuccess:"成功",toastTitleError:"错误",toastTitleInfo:"提示",toastTitleWarning:"注意",toastDismiss:"关闭",toastSettingsSavedTitle:"设置已保存",toastCacheClearedTitle:"缓存已清除",cacheEmptyTitle:"缓存",toastCacheClearedOnUpdateTitle:"已更新",toastSteamMatchSavedTitle:"匹配已保存",toastSteamMatchClearedTitle:"匹配已重置",steamFixMatchInvalidTitle:"无效 App ID",exportFormatUnavailableTitle:"不可用",toastExportDoneTitle:"已导出",toastExportCopiedTitle:"已复制",toastExportCopyFailedTitle:"复制失败",toastExportFailedTitle:"导出失败",toastGameIdCopiedTitle:"游戏 ID 已复制",toastGameIdCopied:"{id} 已复制到剪贴板",on:"开",off:"关",loading:"加载中…",notOnSteam:"在 Steam 未找到",loadError:"无法加载 Steam 数据",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"就绪",gsPending:"待定",gsPartial:"部分",gsReleaseToday:"今日发售",gsUnknown:"未知",gsNotInDatabase:"不在数据库",reviews:"评价",price:"价格",free:"免费",discount:"-{n}%",steamUsFallback:"通过 US 商店找到({cc} 搜索无结果)",recommendations:"{n} 条推荐",links:"链接",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"至 {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}小时",hltbExtra:"Extra {n}小时",hltbComplete:"Complete {n}小时",players:"玩家",playersOnline:"{n} 在玩",franchise:"系列",supportedSystems:"支持的系统",technologies:"技术",lastRecordUpdate:"最后记录更新",steamDeckStatus:"Steam Deck:{status}",steamDbBlocked:"SteamDB 被拦截",unifiedRatingTitle:"Plus 评分",unifiedRatingHint:"Steam、Metacritic、OpenCritic 与 Backloggd 的平均分",unifiedRatingOutOf:"/ 5",unifiedRatingSources:"{n} 个来源",unifiedRatingLoading:"正在汇总评分…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"导出",exportTitle:"导出游戏",exportHint:"将游戏导出为 CSV、Markdown 或 JSON(适用于 Notion)。",exportFormats:"导出格式",exportAdvanced:"其他设置",exportRatingFormat:"评分格式",exportRatingText:"文本",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"数字",exportRatingNumericHint:"5 星制(如 4.5)",exportStatusFormat:"状态格式",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"列与 Notion 游戏数据库一致。",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Notion 风格页面:标题 + 属性行。",exportFormatJson:"JSON",exportFormatJsonHint:"与 CSV 相同字段的 JSON。",exportDownload:"下载",exportCopy:"复制",exportSoon:"即将推出",exportNoRating:"无评分",exportPreviewTitle:"预览",exportPreviewDeveloper:"开发商",exportPreviewRelease:"发行",exportPreviewTime:"时长",exportPreviewFavorite:"收藏",exportPreviewTags:"标签",exportPreviewSource:"来源",exportPreviewRating:"评分",exportPreviewStatus:"状态",exportPreviewPlatform:"平台",exportPreviewDlc:"DLC",exportPreviewDates:"日期",exportFormatUnavailable:"该格式尚不可用",toastExportDone:"{name}",toastExportCopied:"内容已复制到剪贴板",toastExportCopyFailed:"无法写入剪贴板",toastExportFailed:"无法创建文件"},es:{menuSettings:"Backloggd Plus — Ajustes",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · notas · Deck/Proton · HLTB · insignias · enlaces",close:"Cerrar",cancel:"Cancelar",save:"Guardar",saveReload:"Guardar y recargar",repoLink:"GitHub",repoAbout:"Código, actualizaciones e informes",sectionGame:"Página del juego",sectionLists:"Tarjeta de juego",sectionListsHint:"Insignias en portadas de browse, búsqueda, journal y Juegos similares.",sectionGeneral:"General",sectionProfile:"Perfil",sectionUi:"UI",generalGroupLanguage:"Idioma",generalGroupLanguageHint:"Idioma de menús, ajustes y toasts de Plus.",generalGroupInterface:"Interfaz",generalGroupInterfaceHint:"Ajustes opcionales del aspecto en páginas de Backloggd.",profileGroupHover:"Tarjetas al pasar el cursor",profileGroupHoverHint:"Mini perfil con información breve al pasar el cursor sobre avatares.",profileGroupPage:"Página de perfil",profileGroupPageHint:"Estilo por nivel en páginas /u/… (mismos rangos que las tarjetas).",profileGroupBlocks:"Bloques de la página",profileGroupBlocksHint:"Qué partes del perfil se estilizan cuando la mejora está activa.",sectionCache:"Caché",sectionDebug:"Depuración",sectionAbout:"Acerca de",sectionTranslate:"Traducción",aboutDescription:"Backloggd Plus es un userscript que enriquece Backloggd con datos de Steam, puntuaciones, Deck/Proton, HLTB, GameStatus, insignias en portadas, capturas, juegos similares y herramientas de uso diario. También añade un botón de Backloggd en páginas de Steam y SteamDB.",aboutLicense:"Licencia MIT",aboutRepo:"Repositorio en GitHub",aboutAuthor:"Autor",aboutContributors:"Colaboradores",aboutContributorsThanks:"Gracias a todos los que ayudan a mejorar Backloggd Plus.",aboutBackloggd:"Perfil en Backloggd",aboutBackloggdHint:"@{user} en Backloggd",aboutBackloggdNote:"Si quieres, agrégame como amigo, saluda o comparte ideas — siempre encantado de charlar.",aboutContribute:"Contribuir",aboutContributeHint:"Código abierto: cualquiera puede ayudar a mejorar Backloggd.",aboutContributeBody:"Ideas, reportes de errores, traducciones y pull requests son bienvenidos. Cada aporte ayuda a la comunidad.",aboutContributeCta:"Abrir el repositorio",aboutContributeCtaHint:"Issues, PR y debates en GitHub",enhanceHeader:"Cabecera flotante",enhanceHeaderHint:"Barra de navegación de cristal adhesiva sobre la página; se compacta un poco al desplazarse.",hideHomepageFuse:"Ocultar espacios publicitarios Fuse",hideHomepageFuseHint:"Oculta filas vacías de Fuse / incontent (inicio, reseñas del juego, etc.).",showUserMiniProfile:"Mini perfil de usuario",showUserMiniProfileHint:"Muestra una carta con información breve al pasar el cursor sobre avatares. El nivel sube con juegos jugados (25+ bronce … 1000+ leyenda).",preloadUserMiniProfile:"Precargar en el viewport",preloadUserMiniProfileHint:"Obtiene los datos del miniperfil de los avatares al entrar en el viewport para abrir la carta al instante.",showProfilePage:"Mejorar página de perfil",showProfilePageHint:"Aplica el estilo por nivel a la página de perfil. Desactiva bloques abajo si quieres.",showProfileHeader:"Cabecera y avatar",showProfileHeaderHint:"Degradado de cabecera y marco de avatar por nivel.",showProfileTierChip:"Chip de nivel",showProfileTierChipHint:"Pastilla junto al nombre con progreso al siguiente nivel.",showProfileStats:"Fila de estadísticas",showProfileStatsHint:"Acento de nivel en Games Played / Backlog / This Year.",showProfileNav:"Navegación del perfil",showProfileNavHint:"Pestañas Profile / Games / … como barra de pastillas por nivel.",showProfileFavorites:"Juegos favoritos",showProfileFavoritesHint:"Marcos de rango y elevación al pasar el cursor en Favorite Games.",showProfileMenuSettings:"Ajustes Plus en el menú de perfil",showProfileMenuSettingsHint:"Añade una entrada Plus al menú de la cuenta (junto a Settings) y oculta el botón Plus del encabezado.",miniProfilePlayed:"Jugados",miniProfileBacklog:"Backlog",miniProfileThisYear:"Este año",miniProfileFavorites:"Favoritos",miniProfileRecent:"Recientes",miniProfileBadges:"Insignias",miniProfileAvgRating:"Nota media",miniProfileViewProfile:"Ver perfil",miniProfileLoading:"Cargando perfil…",miniProfileError:"No se pudo cargar el perfil",miniProfileTierSub:"{count} juegos jugados",miniProfileTierRookie:"Novato",miniProfileTierBronze:"Bronce",miniProfileTierSilver:"Plata",miniProfileTierGold:"Oro",miniProfileTierPlatinum:"Platino",miniProfileTierDiamond:"Diamante",miniProfileTierMaster:"Maestro",miniProfileTierLegend:"Leyenda",profileTierProgress:"{n} para {tier}",profileTierMax:"Nivel máximo",debugMode:"Modo depuración",debugModeHint:"Panel de depuración con fuentes y volcado. Filas enriquecidas: tramado + insignia Caché/Red.",debugCacheHit:"Caché",debugCacheMiss:"Red",debugCacheMixed:"Mixto",debugCacheNa:"Derivado",debugReason:"Motivo",debugResponse:"Respuesta",debugPanelTitle:"Depuración",debugSources:"Fuentes",debugDump:"Volcado completo",debugSectionPage:"Página",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / jugadores",debugSectionGameStatus:"GameStatus",debugOwned:"En biblioteca",debugSrcRequest:"petición",debugSrcBackloggd:"Página actual del juego en Backloggd",debugSrcIgdb:"Slug del juego / fila Links (IGDB)",debugSrcMetacritic:"Fila Links — URL Metacritic (por slug)",debugSrcSteamStore:"Página Steam — Links + enlace en la fila Steam",debugSrcSteamDb:"Fila Links — página de app SteamDB",debugSrcSteamDbCharts:"SteamDB charts (referencia; no se scrapea)",debugSrcSteamDbInfo:"SteamDB info (referencia; no se scrapea)",debugSrcSteamTiny:"Cápsula pequeña — fallback de icono",debugSrcSteamHeader:"Imagen header de appdetails",debugSrcSteamSearch:"storesearch — resolver Steam App ID",debugSrcSteamDetails:"appdetails — precio, free, Metacritic, header",debugSrcSteamReviews:"appreviews — resumen de reseñas para Steam",debugSrcSteamTags:"GetItems — etiquetas populares para Steam",debugSrcSteamTagMap:"populartags — mapa id → nombre",debugSrcSteamOwned:"dynamicstore/userdata — comprobar biblioteca",debugSrcSteamDbPage:"HTML SteamDB — icono, logo, jugadores",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — fallback de jugadores",debugSrcIcon:"Icono del título (SteamDB / CDN)",debugSrcLogo:"Logo de portada bajo Change cover",debugSrcGameStatusApi:"API GameStatus — estado",debugSrcGameStatusPage:"Página GameStatus del slug encontrado",uiLanguage:"Idioma de la interfaz",uiLanguageHint:"Auto sigue el idioma del navegador. Se aplica al recargar.",uiLanguageAuto:"Auto (navegador)",steamCountry:"Región de Steam Store",steamCountryHint:"Afecta la moneda del precio de la API de Steam.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Mostrar precio y reseñas de Steam",showMetacritic:"Mostrar puntuación de Metacritic",showOpenCritic:"Mostrar puntuación de OpenCritic",showOpenCriticHint:"Insignia de tier de OpenCritic (búsqueda por título).",showHltb:"Mostrar tiempos de HowLongToBeat",showHltbHint:"Horas Main / Extra / Complete de HowLongToBeat.",showDeckProton:"Mostrar Steam Deck y ProtonDB",showDeckProtonHint:"Verified/Playable de Steam Deck y nivel ProtonDB (hace falta un Steam App ID).",showGameStatus:"Mostrar estado GameStatus",showGameStatusHint:"Estado de GameStatus.info (requiere coincidencia con Steam).",showLinks:"Mostrar fila de enlaces",showSteamOwned:"Mostrar si está en tu biblioteca Steam",showSteamOwnedHint:"Muestra “En propiedad” si el juego está en tu biblioteca de Steam. Requiere estar conectado a Steam en este navegador.",showSteamWishlist:"Mostrar estado de wishlist de Steam",showSteamWishlistHint:"Muestra “Wishlist” si el juego está en tu lista de deseos de Steam (oculto si ya lo tienes). Requiere sesión de Steam.",showSteamTags:"Mostrar etiquetas de Steam",showSteamTagsHint:"Etiquetas populares de la tienda Steam (Open World, RPG, …).",showSteamCategories:"Mostrar categorías de Steam",showSteamCategoriesHint:"Categorías de la ficha de Steam (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Botón Backloggd en Steam",showSteamPageLinkHint:"Añade un botón estilo SteamDB en Other site info en páginas de Steam.",showSteamDbPageLink:"Botón Backloggd en SteamDB",showSteamDbPageLinkHint:"Añade un botón junto a Store / IGDB en app-links de SteamDB.",showSteamDbIcon:"Icono SteamDB antes del título",showSteamDbIconHint:"Icono de la app desde la cabecera de SteamDB; reserva: cápsula de Steam.",showSteamDbCover:"Logo SteamDB bajo Change cover",showSteamDbCoverHint:"Portada de SteamDB debajo de la portada / Change cover.",showSteamDbGallery:"Galería de capturas de Steam",showSteamDbGalleryHint:"Franja horizontal de capturas tras las estadísticas (assets de Steam Store, como SteamDB). Clic para ampliar.",steamGalleryTitle:"Capturas",steamGalleryOpen:"Abrir captura",steamGalleryClose:"Cerrar",steamGalleryPrev:"Anterior",steamGalleryNext:"Siguiente",showSimilarGames:"Mostrar juegos similares",showSimilarGamesHint:"Franja de juegos similares bajo las capturas (Steam More Like This + % de coincidencia de etiquetas). Las tarjetas enlazan a Backloggd.",similarGamesTitle:"Juegos similares",similarGamesMatch:"Afinidad",similarGamesOpenSteam:"Abrir en Steam",showGameStats:"Mostrar bloque de estadísticas",showGameStatsHint:"Bloque nativo de Backloggd: Plays, Playing, Backlogs, Wishlists y Ratings (#game-stats).",viewerZoomIn:"Acercar",viewerZoomOut:"Alejar",viewerZoomReset:"Restablecer zoom",viewerOf:"{current} / {total}",viewerOpenCover:"Abrir portada",showSteamPlayers:"Mostrar jugadores en línea",showSteamPlayersHint:"Jugadores actuales desde Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Mostrar detalles de SteamDB",showSteamDbDetailsHint:"Franquicia y sistemas desde Steam; tecnologías y última actualización desde SteamDB si es accesible.",showExport:"Mostrar botón de exportación",showExportHint:"Añade Exportar en la página del juego y en el editor de log (CSV / Markdown / JSON para Notion). Desactivado por defecto.",showGameId:"Mostrar ID del juego",showGameIdHint:"Muestra el ID de Backloggd (#…) después del título. Clic para copiar el ID numérico.",gameIdCopyLabel:"Copiar ID del juego",showTranslate:"Activar traducción",showTranslateHint:"Mostrar botones Traducir en descripciones y reseñas (Google Translate).",translateTargetLocale:"Idioma de destino",translateTargetLocaleHint:"Idioma al que traducir. “Igual que la interfaz” sigue General → Idioma de la interfaz.",translateAsUi:"Igual que la interfaz",translateDisplayMode:"Modo de visualización",translateDisplayModeHint:"Cómo se muestra el texto traducido al pulsar Traducir.",translateModeReplace:"Reemplazar texto (alternar original)",translateModeBelow:"Mostrar traducción bajo el original",translateDescription:"Traducir descripción del juego",translateDescriptionHint:"Botón junto al resumen en la página del juego.",translateReviews:"Traducir reseñas",translateReviewsHint:"Botón en cada tarjeta de reseña.",translateReviewsAuto:"Traducir reseñas automáticamente",translateReviewsAutoHint:"Cuando una reseña entra en la vista, traducirla automáticamente. Desactivado por defecto.",translateButton:"Traducir",translateShowOriginal:"Mostrar original",translateHide:"Ocultar traducción",translateLoading:"Traduciendo…",translateError:"No se pudo traducir",translateResultLabel:"Traducción",showCardBadges:"Mostrar insignias en portadas",showCardBadgesHint:"Interruptor principal de chips en tarjetas de portada. Off oculta todas.",cardGroupTypes:"Tipos de insignia",cardGroupTypesHint:"Qué chips aparecen cuando las insignias están activadas.",showCardBadgePrice:"Precio",showCardBadgePriceHint:"Precio de Steam Store de tu región (precio de oferta si hay descuento).",showCardBadgeReview:"% de reseñas Steam",showCardBadgeReviewHint:"Porcentaje de reseñas positivas en Steam.",showCardBadgeOwned:"En propiedad",showCardBadgeOwnedHint:"Se muestra si el juego está en tu biblioteca de Steam. Requiere sesión de Steam.",showCardBadgeWishlist:"Wishlist",showCardBadgeWishlistHint:"Se muestra si está en tu wishlist de Steam (oculto si ya lo tienes). Requiere sesión de Steam.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Chip de estado de GameStatus.info cuando hay coincidencia de Steam.",steamBackloggdTooltip:"Ver en Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"En propiedad",steamWishlist:"Wishlist",steamFixMatch:"Corregir coincidencia",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Anula la búsqueda automática en Steam Store para esta página de Backloggd. Pega el App ID numérico de la URL de Steam.",steamFixMatchPlaceholder:"p. ej. 1245620",steamFixMatchClear:"Usar coincidencia automática",steamFixMatchInvalid:"Introduce un Steam App ID numérico válido",steamMatchManual:"manual",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Enlaces rápidos",sectionLinksHint:"Elige qué sitios aparecen en la fila Links.",gameGroupSteam:"Steam",gameGroupScores:"Puntuaciones y duración",gameGroupCompat:"Compatibilidad y estado",gameGroupMedia:"Medios y diseño",gameGroupTools:"Herramientas",gameGroupHosts:"Otros sitios",gameGroupHostsHint:"Botones de Backloggd en páginas de Steam y SteamDB.",navSettings:"Plus",navSettingsTitle:"Ajustes de Backloggd Plus",cacheHours:"Duración de caché (horas)",cacheHoursHint:"Cuánto reutilizar búsquedas de Steam, GameStatus, puntuaciones, medios y juegos similares. 0 desactiva esa caché. La biblioteca/wishlist de Steam y el mapa de etiquetas conservan sus TTL cortos. Los jugadores online no se cachean.",clearCache:"Vaciar caché",cacheCleared:"{count} entradas eliminadas",cacheEmpty:"Nada que borrar — ya está vacía",cacheBarFull:"Completo",cacheBarPartial:"Parcial",cacheBarFree:"Libre",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"ocupado",cacheBarHint:"Límite blando de almacenamiento. Completo = consultas útiles; parcial = incompletas o caducadas que aún ocupan espacio.",cacheBarAria:"Caché al {pct}% — {full} completo, {partial} parcial, {free} libre",cacheTabFillAria:"Caché al {pct}%",cacheClearHint:"Elimina las búsquedas de Steam / GameStatus de este perfil.",toastSettingsSaved:"Tus preferencias se aplicarán al recargar la página.",toastCacheClearedOnUpdate:"v{version} — caché de consultas vaciada",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchCleared:"Se usa de nuevo la búsqueda automática de Steam",toastTitleSuccess:"Listo",toastTitleError:"Error",toastTitleInfo:"Info",toastTitleWarning:"Aviso",toastDismiss:"Cerrar",toastSettingsSavedTitle:"Ajustes guardados",toastCacheClearedTitle:"Caché vaciada",cacheEmptyTitle:"Caché",toastCacheClearedOnUpdateTitle:"Actualizado",toastSteamMatchSavedTitle:"Coincidencia guardada",toastSteamMatchClearedTitle:"Coincidencia restablecida",steamFixMatchInvalidTitle:"App ID no válido",exportFormatUnavailableTitle:"No disponible",toastExportDoneTitle:"Exportado",toastExportCopiedTitle:"Copiado",toastExportCopyFailedTitle:"Error al copiar",toastExportFailedTitle:"Error al exportar",toastGameIdCopiedTitle:"ID copiado",toastGameIdCopied:"{id} copiado al portapapeles",on:"ON",off:"OFF",loading:"Cargando…",notOnSteam:"No encontrado en Steam",loadError:"No se pudieron cargar datos de Steam",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Listo",gsPending:"Pendiente",gsPartial:"Parcial",gsReleaseToday:"Lanzamiento hoy",gsUnknown:"Desconocido",gsNotInDatabase:"No está en la base",reviews:"Reseñas",price:"Precio",free:"Gratis",discount:"-{n}%",steamUsFallback:"Encontrado en tienda US (la búsqueda en {cc} no dio resultados)",recommendations:"{n} recomendaciones",links:"Enlaces",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"hasta {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",players:"Jugadores",playersOnline:"{n} jugando",franchise:"Franquicia",supportedSystems:"Sistemas compatibles",technologies:"Tecnologías",lastRecordUpdate:"Última actualización del registro",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB bloqueado",unifiedRatingTitle:"Nota Plus",unifiedRatingHint:"Media de Steam, Metacritic, OpenCritic y Backloggd",unifiedRatingOutOf:"de 5",unifiedRatingSources:"{n} fuentes",unifiedRatingLoading:"Recopilando notas…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Exportar",exportTitle:"Exportar juego",exportHint:"Exporta este juego como CSV, Markdown o JSON para Notion.",exportFormats:"Formato de exportación",exportAdvanced:"Ajustes adicionales",exportRatingFormat:"Formato de valoración",exportRatingText:"Texto",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Numérico",exportRatingNumericHint:"Estrellas sobre 5 (p. ej. 4.5)",exportStatusFormat:"Formato de estado",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Columnas como en una base Notion.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Página Notion: título + propiedades.",exportFormatJson:"JSON",exportFormatJsonHint:"Los mismos campos que el CSV, en JSON.",exportDownload:"Descargar",exportCopy:"Copiar",exportSoon:"Pronto",exportNoRating:"Sin valoración",exportPreviewTitle:"Vista previa",exportPreviewDeveloper:"Desarrollador",exportPreviewRelease:"Lanzamiento",exportPreviewTime:"Tiempo",exportPreviewFavorite:"Favorito",exportPreviewTags:"Etiquetas",exportPreviewSource:"Fuente",exportPreviewRating:"Valoración",exportPreviewStatus:"Estado",exportPreviewPlatform:"Plataforma",exportPreviewDlc:"DLC",exportPreviewDates:"Fechas",exportFormatUnavailable:"Ese formato aún no está disponible",toastExportDone:"{name}",toastExportCopied:"Contenido copiado al portapapeles",toastExportCopyFailed:"No se pudo copiar al portapapeles",toastExportFailed:"No se pudo crear el archivo"},pt:{menuSettings:"Backloggd Plus — Configurações",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · notas · Deck/Proton · HLTB · badges · links",close:"Fechar",cancel:"Cancelar",save:"Salvar",saveReload:"Salvar e recarregar",repoLink:"GitHub",repoAbout:"Código, atualizações e relatórios",sectionGame:"Página do jogo",sectionLists:"Cartão do jogo",sectionListsHint:"Badges nas capas em browse, busca, journal e Jogos semelhantes.",sectionGeneral:"Geral",sectionProfile:"Perfil",sectionUi:"UI",generalGroupLanguage:"Idioma",generalGroupLanguageHint:"Idioma dos menus, configurações e toasts do Plus.",generalGroupInterface:"Interface",generalGroupInterfaceHint:"Ajustes opcionais de aparência nas páginas do Backloggd.",profileGroupHover:"Cards ao passar o mouse",profileGroupHoverHint:"Mini perfil com informações resumidas ao passar o mouse sobre avatares.",profileGroupPage:"Página de perfil",profileGroupPageHint:"Visual por nível nas páginas /u/… (mesmos ranks dos cards).",profileGroupBlocks:"Blocos da página",profileGroupBlocksHint:"Quais partes do perfil estilizar quando a melhoria está ativa.",sectionCache:"Cache",sectionDebug:"Depuração",sectionAbout:"Sobre",sectionTranslate:"Tradução",aboutDescription:"Backloggd Plus é um userscript que enriquece o Backloggd com dados da Steam, notas, Deck/Proton, HLTB, GameStatus, badges nas capas, capturas, jogos semelhantes e ferramentas de QoL. Também adiciona um botão Backloggd nas páginas da Steam e do SteamDB.",aboutLicense:"Licença MIT",aboutRepo:"Repositório no GitHub",aboutAuthor:"Autor",aboutContributors:"Colaboradores",aboutContributorsThanks:"Obrigado a todos que ajudam a melhorar o Backloggd Plus.",aboutBackloggd:"Perfil no Backloggd",aboutBackloggdHint:"@{user} no Backloggd",aboutBackloggdNote:"Sinta-se à vontade para me adicionar como amigo, dizer oi ou enviar feedback — adoro conversar.",aboutContribute:"Contribuir",aboutContributeHint:"Código aberto — qualquer um pode ajudar a melhorar o Backloggd.",aboutContributeBody:"Ideias, relatos de bugs, traduções e pull requests são bem-vindos. Cada contribuição ajuda a comunidade.",aboutContributeCta:"Abrir o repositório",aboutContributeCtaHint:"Issues, PRs e discussões no GitHub",enhanceHeader:"Cabeçalho flutuante",enhanceHeaderHint:"Barra de navegação em vidro adesiva sobre a página; fica um pouco mais compacta ao rolar.",hideHomepageFuse:"Ocultar espaços de anúncio Fuse",hideHomepageFuseHint:"Oculta linhas vazias Fuse / incontent (página inicial, análises do jogo, etc.).",showUserMiniProfile:"Mini perfil do usuário",showUserMiniProfileHint:"Mostra um card com informações resumidas ao passar o mouse sobre avatares. O nível sobe com jogos jogados (25+ bronze … 1000+ lenda).",preloadUserMiniProfile:"Pré-carregar na viewport",preloadUserMiniProfileHint:"Busca os dados do mini perfil dos avatares ao entrarem na viewport para o card abrir na hora.",showProfilePage:"Melhorar página de perfil",showProfilePageHint:"Aplica o visual por nível à página de perfil. Desative blocos abaixo se quiser.",showProfileHeader:"Cabeçalho e avatar",showProfileHeaderHint:"Degradê do cabeçalho e moldura colorida do avatar.",showProfileTierChip:"Chip de nível",showProfileTierChipHint:"Pílula ao lado do nome com progresso até o próximo nível.",showProfileStats:"Linha de estatísticas",showProfileStatsHint:"Destaque de nível em Games Played / Backlog / This Year.",showProfileNav:"Navegação do perfil",showProfileNavHint:"Abas Profile / Games / … como barra de pílulas por nível.",showProfileFavorites:"Jogos favoritos",showProfileFavoritesHint:"Molduras de rank e elevação no hover em Favorite Games.",showProfileMenuSettings:"Configurações Plus no menu do perfil",showProfileMenuSettingsHint:"Adiciona um item Plus ao menu da conta (ao lado de Settings) e oculta o botão Plus do cabeçalho.",miniProfilePlayed:"Jogados",miniProfileBacklog:"Backlog",miniProfileThisYear:"Este ano",miniProfileFavorites:"Favoritos",miniProfileRecent:"Recentes",miniProfileBadges:"Emblemas",miniProfileAvgRating:"Nota média",miniProfileViewProfile:"Ver perfil",miniProfileLoading:"Carregando perfil…",miniProfileError:"Não foi possível carregar o perfil",miniProfileTierSub:"{count} jogos jogados",miniProfileTierRookie:"Novato",miniProfileTierBronze:"Bronze",miniProfileTierSilver:"Prata",miniProfileTierGold:"Ouro",miniProfileTierPlatinum:"Platina",miniProfileTierDiamond:"Diamante",miniProfileTierMaster:"Mestre",miniProfileTierLegend:"Lenda",profileTierProgress:"{n} para {tier}",profileTierMax:"Nível máximo",debugMode:"Modo debug",debugModeHint:"Painel de debug com fontes e dump. Linhas de enriquecimento: hachura + badge Cache/Rede.",debugCacheHit:"Cache",debugCacheMiss:"Rede",debugCacheMixed:"Misto",debugCacheNa:"Derivado",debugReason:"Motivo",debugResponse:"Resposta",debugPanelTitle:"Debug",debugSources:"Fontes",debugDump:"Dump completo",debugSectionPage:"Página",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / jogadores",debugSectionGameStatus:"GameStatus",debugOwned:"Na biblioteca",debugSrcRequest:"requisição",debugSrcBackloggd:"Página atual do jogo no Backloggd",debugSrcIgdb:"Slug do jogo / linha Links (IGDB)",debugSrcMetacritic:"Linha Links — URL Metacritic (por slug)",debugSrcSteamStore:"Página Steam — Links + link na linha Steam",debugSrcSteamDb:"Linha Links — página do app SteamDB",debugSrcSteamDbCharts:"SteamDB charts (referência; não é scrape)",debugSrcSteamDbInfo:"SteamDB info (referência; não é scrape)",debugSrcSteamTiny:"Cápsula pequena — fallback de ícone",debugSrcSteamHeader:"Imagem header do appdetails",debugSrcSteamSearch:"storesearch — resolver Steam App ID",debugSrcSteamDetails:"appdetails — preço, free, Metacritic, header",debugSrcSteamReviews:"appreviews — resumo de reviews para Steam",debugSrcSteamTags:"GetItems — tags populares para Steam",debugSrcSteamTagMap:"populartags — mapa id → nome",debugSrcSteamOwned:"dynamicstore/userdata — checagem da biblioteca",debugSrcSteamDbPage:"HTML SteamDB — ícone, logo, jogadores",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — fallback de jogadores",debugSrcIcon:"Ícone do título (SteamDB / CDN)",debugSrcLogo:"Logo da capa sob Change cover",debugSrcGameStatusApi:"API GameStatus — status",debugSrcGameStatusPage:"Página GameStatus do slug encontrado",uiLanguage:"Idioma da interface",uiLanguageHint:"Auto segue o idioma do navegador. Aplica ao recarregar.",uiLanguageAuto:"Auto (navegador)",steamCountry:"Região da Steam Store",steamCountryHint:"Afeta a moeda do preço da API da Steam.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Mostrar preço e avaliações Steam",showMetacritic:"Mostrar nota Metacritic",showOpenCritic:"Mostrar nota OpenCritic",showOpenCriticHint:"Badge de tier do OpenCritic (busca pelo título).",showHltb:"Mostrar tempos do HowLongToBeat",showHltbHint:"Horas Main / Extra / Complete do HowLongToBeat.",showDeckProton:"Mostrar Steam Deck e ProtonDB",showDeckProtonHint:"Verified/Playable do Steam Deck e nível ProtonDB (precisa de Steam App ID).",showGameStatus:"Mostrar status GameStatus",showGameStatusHint:"Status do GameStatus.info (precisa bater com a Steam).",showLinks:"Mostrar linha de links",showSteamOwned:"Mostrar se está na biblioteca Steam",showSteamOwnedHint:"Mostra “Possui” se o jogo estiver na sua biblioteca Steam. É preciso estar logado na Steam neste navegador.",showSteamWishlist:"Mostrar status da wishlist Steam",showSteamWishlistHint:"Mostra “Wishlist” se o jogo estiver na lista de desejos Steam (oculto se já possuir). Requer login Steam.",showSteamTags:"Mostrar tags da Steam",showSteamTagsHint:"Tags populares da Steam Store (Open World, RPG, …).",showSteamCategories:"Mostrar categorias da Steam",showSteamCategoriesHint:"Categorias da ficha Steam (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Botão Backloggd no Steam",showSteamPageLinkHint:"Adiciona um botão estilo SteamDB em Other site info nas páginas da Steam.",showSteamDbPageLink:"Botão Backloggd no SteamDB",showSteamDbPageLinkHint:"Adiciona um botão ao lado de Store / IGDB em app-links do SteamDB.",showSteamDbIcon:"Ícone SteamDB antes do título",showSteamDbIconHint:"Ícone do app no cabeçalho do SteamDB; fallback: cápsula da Steam.",showSteamDbCover:"Logo SteamDB sob Change cover",showSteamDbCoverHint:"Capa do SteamDB abaixo da capa / Change cover.",showSteamDbGallery:"Galeria de screenshots da Steam",showSteamDbGalleryHint:"Faixa horizontal de screenshots após as estatísticas (assets da Steam Store, como no SteamDB). Clique para ampliar.",steamGalleryTitle:"Screenshots",steamGalleryOpen:"Abrir screenshot",steamGalleryClose:"Fechar",steamGalleryPrev:"Anterior",steamGalleryNext:"Próximo",showSimilarGames:"Mostrar jogos similares",showSimilarGamesHint:"Faixa de jogos similares abaixo dos screenshots (Steam More Like This + % de coincidência de tags). Os cards levam ao Backloggd.",similarGamesTitle:"Jogos similares",similarGamesMatch:"Afinidade",similarGamesOpenSteam:"Abrir na Steam",showGameStats:"Mostrar bloco de estatísticas",showGameStatsHint:"Bloco nativo do Backloggd: Plays, Playing, Backlogs, Wishlists e Ratings (#game-stats).",viewerZoomIn:"Aumentar zoom",viewerZoomOut:"Diminuir zoom",viewerZoomReset:"Redefinir zoom",viewerOf:"{current} / {total}",viewerOpenCover:"Abrir capa",showSteamPlayers:"Mostrar jogadores online",showSteamPlayersHint:"Jogadores atuais via Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Mostrar detalhes do SteamDB",showSteamDbDetailsHint:"Franquia e sistemas via Steam; tecnologias e última atualização via SteamDB quando acessível.",showExport:"Mostrar botão de exportação",showExportHint:"Adiciona Exportar na página do jogo e no editor de log (CSV / Markdown / JSON para Notion). Desativado por padrão.",showGameId:"Mostrar ID do jogo",showGameIdHint:"Mostra o ID do Backloggd (#…) após o título. Clique para copiar o ID numérico.",gameIdCopyLabel:"Copiar ID do jogo",showTranslate:"Ativar tradução",showTranslateHint:"Mostrar botões Traduzir em descrições e análises (Google Translate).",translateTargetLocale:"Idioma de destino",translateTargetLocaleHint:"Idioma para traduzir. “Igual à interface” segue Geral → Idioma da interface.",translateAsUi:"Igual à interface",translateDisplayMode:"Modo de exibição",translateDisplayModeHint:"Como o texto traduzido aparece após Traduzir.",translateModeReplace:"Substituir texto (alternar original)",translateModeBelow:"Mostrar tradução abaixo do original",translateDescription:"Traduzir descrição do jogo",translateDescriptionHint:"Botão junto ao resumo na página do jogo.",translateReviews:"Traduzir análises",translateReviewsHint:"Botão em cada cartão de análise.",translateReviewsAuto:"Traduzir análises automaticamente",translateReviewsAutoHint:"Quando uma análise entra na tela, traduzir automaticamente. Desligado por padrão.",translateButton:"Traduzir",translateShowOriginal:"Mostrar original",translateHide:"Ocultar tradução",translateLoading:"Traduzindo…",translateError:"Não foi possível traduzir",translateResultLabel:"Tradução",showCardBadges:"Mostrar badges nas capas",showCardBadgesHint:"Interruptor principal dos chips nas capas. Desligado oculta todos.",cardGroupTypes:"Tipos de badge",cardGroupTypesHint:"Quais chips aparecem quando os badges estão ativos.",showCardBadgePrice:"Preço",showCardBadgePriceHint:"Preço da Steam Store da sua região (preço promocional com desconto).",showCardBadgeReview:"% de avaliações Steam",showCardBadgeReviewHint:"Porcentagem de avaliações positivas no Steam.",showCardBadgeOwned:"Possui",showCardBadgeOwnedHint:"Aparece se o jogo está na sua biblioteca Steam. Requer login Steam neste navegador.",showCardBadgeWishlist:"Wishlist",showCardBadgeWishlistHint:"Aparece se está na wishlist Steam (oculto se já possuir). Requer login Steam.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Chip de status do GameStatus.info quando há correspondência Steam.",steamBackloggdTooltip:"Ver no Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"Possui",steamWishlist:"Wishlist",steamFixMatch:"Corrigir correspondência",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Substitui a busca automática na Steam Store nesta página do Backloggd. Cole o App ID numérico da URL da Steam.",steamFixMatchPlaceholder:"ex. 1245620",steamFixMatchClear:"Usar correspondência automática",steamFixMatchInvalid:"Digite um Steam App ID numérico válido",steamMatchManual:"manual",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Links rápidos",sectionLinksHint:"Escolha quais sites aparecem na linha Links.",gameGroupSteam:"Steam",gameGroupScores:"Notas e duração",gameGroupCompat:"Compatibilidade e status",gameGroupMedia:"Mídia e layout",gameGroupTools:"Ferramentas",gameGroupHosts:"Outros sites",gameGroupHostsHint:"Botões do Backloggd nas páginas Steam e SteamDB.",navSettings:"Plus",navSettingsTitle:"Configurações do Backloggd Plus",cacheHours:"Duração do cache (horas)",cacheHoursHint:"Por quanto tempo reutilizar buscas Steam, GameStatus, notas, mídia e jogos semelhantes. 0 desativa esse cache. Biblioteca/wishlist Steam e o mapa de tags mantêm seus TTLs curtos. Jogadores online nunca são cacheados.",clearCache:"Limpar cache",cacheCleared:"{count} entradas removidas",cacheEmpty:"Nada para limpar — já está vazio",cacheBarFull:"Completo",cacheBarPartial:"Parcial",cacheBarFree:"Livre",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"ocupado",cacheBarHint:"Limite suave de armazenamento. Completo = consultas úteis; parcial = incompletas ou expiradas ainda armazenadas.",cacheBarAria:"Cache em {pct}% — {full} completo, {partial} parcial, {free} livre",cacheTabFillAria:"Cache em {pct}%",cacheClearHint:"Remove buscas Steam / GameStatus deste perfil do navegador.",toastSettingsSaved:"Suas preferências serão aplicadas após recarregar a página.",toastCacheClearedOnUpdate:"v{version} — cache de consultas limpo",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchCleared:"Busca automática do Steam restaurada",toastTitleSuccess:"Pronto",toastTitleError:"Erro",toastTitleInfo:"Info",toastTitleWarning:"Aviso",toastDismiss:"Fechar",toastSettingsSavedTitle:"Configurações salvas",toastCacheClearedTitle:"Cache limpo",cacheEmptyTitle:"Cache",toastCacheClearedOnUpdateTitle:"Atualizado",toastSteamMatchSavedTitle:"Correspondência salva",toastSteamMatchClearedTitle:"Correspondência redefinida",steamFixMatchInvalidTitle:"App ID inválido",exportFormatUnavailableTitle:"Indisponível",toastExportDoneTitle:"Exportado",toastExportCopiedTitle:"Copiado",toastExportCopyFailedTitle:"Falha ao copiar",toastExportFailedTitle:"Falha na exportação",toastGameIdCopiedTitle:"ID copiado",toastGameIdCopied:"{id} copiado para a área de transferência",on:"ON",off:"OFF",loading:"Carregando…",notOnSteam:"Não encontrado na Steam",loadError:"Falha ao carregar dados da Steam",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Pronto",gsPending:"Pendente",gsPartial:"Parcial",gsReleaseToday:"Lançamento hoje",gsUnknown:"Desconhecido",gsNotInDatabase:"Não está na base",reviews:"Avaliações",price:"Preço",free:"Grátis",discount:"-{n}%",steamUsFallback:"Encontrado na loja US (busca em {cc} sem resultados)",recommendations:"{n} recomendações",links:"Links",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"até {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",players:"Jogadores",playersOnline:"{n} jogando",franchise:"Franquia",supportedSystems:"Sistemas suportados",technologies:"Tecnologias",lastRecordUpdate:"Última atualização do registro",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB bloqueado",unifiedRatingTitle:"Nota Plus",unifiedRatingHint:"Média de Steam, Metacritic, OpenCritic e Backloggd",unifiedRatingOutOf:"de 5",unifiedRatingSources:"{n} fontes",unifiedRatingLoading:"Coletando notas…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Exportar",exportTitle:"Exportar jogo",exportHint:"Exporte este jogo como CSV, Markdown ou JSON para o Notion.",exportFormats:"Formato de exportação",exportAdvanced:"Configurações adicionais",exportRatingFormat:"Formato da nota",exportRatingText:"Texto",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Numérico",exportRatingNumericHint:"Estrelas de 5 (ex. 4.5)",exportStatusFormat:"Formato do status",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Colunas como no banco Notion.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Página Notion: título + propriedades.",exportFormatJson:"JSON",exportFormatJsonHint:"Os mesmos campos do CSV, em JSON.",exportDownload:"Baixar",exportCopy:"Copiar",exportSoon:"Em breve",exportNoRating:"Sem nota",exportPreviewTitle:"Prévia",exportPreviewDeveloper:"Desenvolvedor",exportPreviewRelease:"Lançamento",exportPreviewTime:"Tempo",exportPreviewFavorite:"Favorito",exportPreviewTags:"Tags",exportPreviewSource:"Fonte",exportPreviewRating:"Nota",exportPreviewStatus:"Status",exportPreviewPlatform:"Plataforma",exportPreviewDlc:"DLC",exportPreviewDates:"Datas",exportFormatUnavailable:"Esse formato ainda não está disponível",toastExportDone:"{name}",toastExportCopied:"Conteúdo copiado para a área de transferência",toastExportCopyFailed:"Não foi possível copiar para a área de transferência",toastExportFailed:"Não foi possível criar o arquivo"},de:{menuSettings:"Backloggd Plus — Einstellungen",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · Wertungen · Deck/Proton · HLTB · Badges · Links",close:"Schließen",cancel:"Abbrechen",save:"Speichern",saveReload:"Speichern & neu laden",repoLink:"GitHub",repoAbout:"Quellcode, Updates und Issue-Reports",sectionGame:"Spieleseite",sectionLists:"Spielkarte",sectionListsHint:"Badges auf Covers in Browse, Suche, Journal und Ähnliche Spiele.",sectionGeneral:"Allgemein",sectionProfile:"Profil",sectionUi:"UI",generalGroupLanguage:"Sprache",generalGroupLanguageHint:"Sprache der Plus-Menüs, Einstellungen und Toasts.",generalGroupInterface:"Oberfläche",generalGroupInterfaceHint:"Optionale Anpassungen des Backloggd-Seitenlayouts.",profileGroupHover:"Hover-Karten",profileGroupHoverHint:"Minikarte mit Kurzinfos beim Hover über Avatare.",profileGroupPage:"Profilseite",profileGroupPageHint:"Stufen-Styling auf /u/…-Seiten (gleiche Ränge wie Hover-Karten).",profileGroupBlocks:"Seitenblöcke",profileGroupBlocksHint:"Welche Profilteile gestylt werden, wenn die Aufwertung aktiv ist.",sectionCache:"Cache",sectionDebug:"Debug",sectionAbout:"Über",sectionTranslate:"Übersetzung",aboutDescription:"Backloggd Plus ist ein Userscript, das Backloggd um Steam-Daten, Wertungen, Deck/Proton, HLTB, GameStatus, Cover-Badges, Screenshots, ähnliche Spiele und QoL-Tools ergänzt. Auf Steam- und SteamDB-App-Seiten erscheint zusätzlich ein Backloggd-Button.",aboutLicense:"MIT-Lizenz",aboutRepo:"GitHub-Repository",aboutAuthor:"Autor",aboutContributors:"Mitwirkende",aboutContributorsThanks:"Danke an alle, die Backloggd Plus mitverbessern.",aboutBackloggd:"Backloggd-Profil",aboutBackloggdHint:"@{user} auf Backloggd",aboutBackloggdNote:"Gerne als Freund hinzufügen, Hallo sagen oder Feedback teilen — ich freue mich über Austausch.",aboutContribute:"Mitmachen",aboutContributeHint:"Open Source — jeder kann helfen, Backloggd besser zu machen.",aboutContributeBody:"Ideen, Fehlermeldungen, Übersetzungen und Pull Requests sind willkommen. Jeder Beitrag hilft der Community.",aboutContributeCta:"Repository öffnen",aboutContributeCtaHint:"Issues, PRs und Diskussionen auf GitHub",enhanceHeader:"Schwebender Header",enhanceHeaderHint:"Klebende Glas-Navigation über der Seite; wird beim Scrollen etwas kompakter.",hideHomepageFuse:"Fuse-Werbeplätze ausblenden",hideHomepageFuseHint:"Blendet leere Fuse-/incontent-Werbezeilen aus (Startseite, Spielrezensionen usw.).",showUserMiniProfile:"Mini-Profilkarten",showUserMiniProfileHint:"Minikarte mit Kurzinfos beim Hover über Avatare. Stufe steigt mit gespielten Spielen (25+ Bronze … 1000+ Legende).",preloadUserMiniProfile:"Im Sichtbereich vorladen",preloadUserMiniProfileHint:"Lädt Miniprofil-Daten für Avatare im Sichtbereich vor, damit die Karte sofort öffnet.",showProfilePage:"Profilseite aufwerten",showProfilePageHint:"Wendet Stufen-Styling auf die Profilseite an. Einzelne Blöcke unten abschaltbar.",showProfileHeader:"Kopfbereich & Avatar",showProfileHeaderHint:"Stufen-Verlauf hinter dem Header und farbiger Avatar-Rahmen.",showProfileTierChip:"Stufen-Chip",showProfileTierChipHint:"Rang-Pille neben dem Namen mit Fortschritt zur nächsten Stufe.",showProfileStats:"Statistikzeile",showProfileStatsHint:"Stufen-Akzent bei Games Played / Backlog / This Year.",showProfileNav:"Profilnavigation",showProfileNavHint:"Profile / Games / …-Tabs als stufenfarbige Pillenleiste.",showProfileFavorites:"Lieblingsspiele",showProfileFavoritesHint:"Rang-Rahmen und Hover-Lift bei Favorite Games.",showProfileMenuSettings:"Plus-Einstellungen im Profilmenü",showProfileMenuSettingsHint:"Fügt einen Plus-Eintrag im Kontomenü (neben Settings) hinzu und blendet den Plus-Button im Header aus.",miniProfilePlayed:"Gespielt",miniProfileBacklog:"Backlog",miniProfileThisYear:"Dieses Jahr",miniProfileFavorites:"Favoriten",miniProfileRecent:"Zuletzt",miniProfileBadges:"Abzeichen",miniProfileAvgRating:"Durchschnittswertung",miniProfileViewProfile:"Profil öffnen",miniProfileLoading:"Profil wird geladen…",miniProfileError:"Profil konnte nicht geladen werden",miniProfileTierSub:"{count} Spiele gespielt",miniProfileTierRookie:"Anfänger",miniProfileTierBronze:"Bronze",miniProfileTierSilver:"Silber",miniProfileTierGold:"Gold",miniProfileTierPlatinum:"Platin",miniProfileTierDiamond:"Diamant",miniProfileTierMaster:"Meister",miniProfileTierLegend:"Legende",profileTierProgress:"{n} bis {tier}",profileTierMax:"Maximalstufe",debugMode:"Debug-Modus",debugModeHint:"Debug-Panel mit Quellen und Dump. Anreicherungszeilen: Schraffur + Cache/Netz-Badge.",debugCacheHit:"Cache",debugCacheMiss:"Netz",debugCacheMixed:"Gemischt",debugCacheNa:"Abgeleitet",debugReason:"Grund",debugResponse:"Antwort",debugPanelTitle:"Debug",debugSources:"Quellen",debugDump:"Vollständiger Dump",debugSectionPage:"Seite",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / Spieler",debugSectionGameStatus:"GameStatus",debugOwned:"Im Besitz",debugSrcRequest:"Anfrage",debugSrcBackloggd:"Aktuelle Backloggd-Spieleseite",debugSrcIgdb:"Spiel-Slug / Links-Zeile (IGDB)",debugSrcMetacritic:"Links-Zeile — Metacritic-URL (Slug-Schätzung)",debugSrcSteamStore:"Steam-Store-Seite — Links + Steam-Zeilenlink",debugSrcSteamDb:"Links-Zeile — SteamDB-App-Seite",debugSrcSteamDbCharts:"SteamDB charts (Referenz; kein Scraping)",debugSrcSteamDbInfo:"SteamDB info (Referenz; kein Scraping)",debugSrcSteamTiny:"Kleine Capsule — Icon-Fallback",debugSrcSteamHeader:"Header-Bild aus appdetails",debugSrcSteamSearch:"storesearch — Steam App ID auflösen",debugSrcSteamDetails:"appdetails — Preis, free, Metacritic, Header",debugSrcSteamReviews:"appreviews — Review-Zusammenfassung für Steam",debugSrcSteamTags:"GetItems — beliebte Tags für Steam",debugSrcSteamTagMap:"populartags — Tag-id → Name",debugSrcSteamOwned:"dynamicstore/userdata — Bibliotheksprüfung",debugSrcSteamDbPage:"SteamDB-HTML — Icon, Logo, Spieler",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — Spieler-Fallback",debugSrcIcon:"Titel-Icon (SteamDB / CDN)",debugSrcLogo:"Cover-Logo unter Change cover",debugSrcGameStatusApi:"GameStatus-API — Status",debugSrcGameStatusPage:"GameStatus-Seite für gefundenen Slug",uiLanguage:"Oberflächensprache",uiLanguageHint:"Auto folgt der Browsersprache. Gilt nach dem Neuladen.",uiLanguageAuto:"Auto (Browser)",steamCountry:"Steam-Store-Region",steamCountryHint:"Beeinflusst die Währung der Steam-Store-API.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Steam-Preis & Bewertungen anzeigen",showMetacritic:"Metacritic-Wertung anzeigen",showOpenCritic:"OpenCritic-Wertung anzeigen",showOpenCriticHint:"OpenCritic-Tier-Badge (Suche nach Titel).",showHltb:"HowLongToBeat-Zeiten anzeigen",showHltbHint:"Main / Extra / Complete in Stunden von HowLongToBeat.",showDeckProton:"Steam Deck & ProtonDB anzeigen",showDeckProtonHint:"Steam Deck Verified/Playable plus ProtonDB-Stufe (braucht eine Steam App ID).",showGameStatus:"GameStatus-Status anzeigen",showGameStatusHint:"Status von GameStatus.info (Steam-Treffer erforderlich).",showLinks:"Link-Zeile anzeigen",showSteamOwned:"Steam-Besitz anzeigen",showSteamOwnedHint:"Zeigt „Im Besitz“, wenn das Spiel in Ihrer Steam-Bibliothek ist. Erfordert eine Steam-Anmeldung in diesem Browser.",showSteamWishlist:"Steam-Wunschliste anzeigen",showSteamWishlistHint:"Zeigt „Wunschliste“, wenn das Spiel auf Ihrer Steam-Wunschliste steht (ausgeblendet bei Besitz). Steam-Login nötig.",showSteamTags:"Steam-Tags anzeigen",showSteamTagsHint:"Beliebte Community-Tags aus dem Steam Store (Open World, RPG, …).",showSteamCategories:"Steam-Kategorien anzeigen",showSteamCategoriesHint:"Store-Kategorien aus den Steam-Appdetails (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Backloggd-Button auf Steam",showSteamPageLinkHint:"SteamDB-ähnlicher Button in Other site info auf Steam-Spieleseiten.",showSteamDbPageLink:"Backloggd-Button auf SteamDB",showSteamDbPageLinkHint:"Button neben Store / IGDB in den SteamDB app-links.",showSteamDbIcon:"SteamDB-Icon vor dem Titel",showSteamDbIconHint:"App-Icon aus dem SteamDB-Seitenkopf, Fallback: Steam-Kapsel.",showSteamDbCover:"SteamDB-Logo unter Change cover",showSteamDbCoverHint:"Cover-Bild von SteamDB unter Cover / Change cover.",showSteamDbGallery:"Steam-Screenshot-Galerie zeigen",showSteamDbGalleryHint:"Horizontale Screenshot-Leiste nach den Spielstatistiken (Steam-Store-Assets wie bei SteamDB). Klick zum Vergrößern.",steamGalleryTitle:"Screenshots",steamGalleryOpen:"Screenshot öffnen",steamGalleryClose:"Schließen",steamGalleryPrev:"Zurück",steamGalleryNext:"Weiter",showSimilarGames:"Ähnliche Spiele anzeigen",showSimilarGamesHint:"Leiste ähnlicher Spiele unter den Screenshots (Steam More Like This + Tag-Übereinstimmung %). Karten führen zu Backloggd.",similarGamesTitle:"Ähnliche Spiele",similarGamesMatch:"Ähnlichkeit",similarGamesOpenSteam:"Auf Steam öffnen",showGameStats:"Spielstatistiken-Block anzeigen",showGameStatsHint:"Nativer Backloggd-Block: Plays, Playing, Backlogs, Wishlists und Ratings (#game-stats).",viewerZoomIn:"Vergrößern",viewerZoomOut:"Verkleinern",viewerZoomReset:"Zoom zurücksetzen",viewerOf:"{current} / {total}",viewerOpenCover:"Cover öffnen",showSteamPlayers:"Online-Spieler anzeigen",showSteamPlayersHint:"Aktuelle Spieler über Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"SteamDB-Details anzeigen",showSteamDbDetailsHint:"Franchise und Systeme von Steam; Technologien und letzte Datensatzaktualisierung von SteamDB, wenn erreichbar.",showExport:"Export-Schaltfläche anzeigen",showExportHint:"Export auf der Spieleite und im Log-Editor (CSV / Markdown / JSON für Notion). Standardmäßig aus.",showGameId:"Spiel-ID anzeigen",showGameIdHint:"Zeigt die Backloggd-Spiel-ID (#…) nach dem Titel. Klick kopiert die numerische ID.",gameIdCopyLabel:"Spiel-ID kopieren",showTranslate:"Übersetzung aktivieren",showTranslateHint:"Übersetzen-Buttons bei Spielbeschreibungen und Reviews (Google Translate).",translateTargetLocale:"Zielsprache",translateTargetLocaleHint:"Sprache der Übersetzung. „Wie Oberfläche“ folgt Allgemein → Sprache der Oberfläche.",translateAsUi:"Wie Oberfläche",translateDisplayMode:"Anzeigemodus",translateDisplayModeHint:"Wie der übersetzte Text nach Übersetzen angezeigt wird.",translateModeReplace:"Text ersetzen (Original umschalten)",translateModeBelow:"Übersetzung unter dem Original zeigen",translateDescription:"Spielbeschreibung übersetzen",translateDescriptionHint:"Button neben der Kurzbeschreibung auf der Spieleseite.",translateReviews:"Reviews übersetzen",translateReviewsHint:"Button auf jeder Review-Karte.",translateReviewsAuto:"Reviews automatisch übersetzen",translateReviewsAutoHint:"Wenn ein Review in den sichtbaren Bereich kommt, automatisch übersetzen. Standardmäßig aus.",translateButton:"Übersetzen",translateShowOriginal:"Original anzeigen",translateHide:"Übersetzung ausblenden",translateLoading:"Übersetze…",translateError:"Übersetzung fehlgeschlagen",translateResultLabel:"Übersetzung",showCardBadges:"Cover-Badges anzeigen",showCardBadgesHint:"Hauptschalter für Chips auf Cover-Karten. Aus blendet alle Badges.",cardGroupTypes:"Badge-Typen",cardGroupTypesHint:"Welche Chips erscheinen, wenn Cover-Badges aktiv sind.",showCardBadgePrice:"Preis",showCardBadgePriceHint:"Steam-Store-Preis Ihrer Region (Angebotspreis bei Rabatt).",showCardBadgeReview:"Steam-Bewertung %",showCardBadgeReviewHint:"Anteil positiver Steam-Bewertungen.",showCardBadgeOwned:"Besitz",showCardBadgeOwnedHint:"Zeigt an, wenn das Spiel in Ihrer Steam-Bibliothek ist. Steam-Login in diesem Browser nötig.",showCardBadgeWishlist:"Wunschliste",showCardBadgeWishlistHint:"Zeigt an, wenn das Spiel auf der Steam-Wunschliste steht (ausgeblendet bei Besitz). Steam-Login nötig.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Status-Chip von GameStatus.info bei vorhandenem Steam-Match.",steamBackloggdTooltip:"Auf Backloggd ansehen",steamDbBackloggdLabel:"Backloggd",steamOwned:"Im Besitz",steamWishlist:"Wunschliste",steamFixMatch:"Treffer korrigieren",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Überschreibt die automatische Steam-Store-Suche für diese Backloggd-Seite. Numerische App-ID aus der Steam-URL einfügen.",steamFixMatchPlaceholder:"z. B. 1245620",steamFixMatchClear:"Automatischen Treffer verwenden",steamFixMatchInvalid:"Gültige numerische Steam App ID eingeben",steamMatchManual:"manuell",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Schnelllinks",sectionLinksHint:"Welche Seiten in der Links-Zeile erscheinen.",gameGroupSteam:"Steam",gameGroupScores:"Wertungen & Spielzeit",gameGroupCompat:"Kompatibilität & Status",gameGroupMedia:"Medien & Layout",gameGroupTools:"Werkzeuge",gameGroupHosts:"Andere Seiten",gameGroupHostsHint:"Backloggd-Buttons auf Steam- und SteamDB-Spielseiten.",navSettings:"Plus",navSettingsTitle:"Backloggd Plus Einstellungen",cacheHours:"Cache-Dauer (Stunden)",cacheHoursHint:"Wie lange Steam-, GameStatus-, Score-, Medien- und Similar-Game-Abfragen wiederverwendet werden. 0 deaktiviert diesen Cache. Steam-Bibliothek/Wunschliste und die Tag-Map behalten eigene kurze TTLs. Online-Spieler werden nicht gecacht.",clearCache:"Cache leeren",cacheCleared:"{count} Einträge entfernt",cacheEmpty:"Nichts zu löschen — Cache ist schon leer",cacheBarFull:"Voll",cacheBarPartial:"Teilweise",cacheBarFree:"Frei",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"belegt",cacheBarHint:"Weiches Speicherbudget. Voll = nutzbare Einträge; teilweise = unvollständig oder abgelaufen, aber noch gespeichert.",cacheBarAria:"Cache zu {pct}% voll — {full} voll, {partial} teilweise, {free} frei",cacheTabFillAria:"Cache zu {pct}% voll",cacheClearHint:"Entfernt gespeicherte Steam-/GameStatus-Abfragen aus diesem Profil.",toastSettingsSaved:"Deine Einstellungen greifen nach dem Neuladen der Seite.",toastCacheClearedOnUpdate:"v{version} — Abfrage-Cache geleert",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchCleared:"Automatische Steam-Suche wird wieder verwendet",toastTitleSuccess:"Erfolg",toastTitleError:"Fehler",toastTitleInfo:"Info",toastTitleWarning:"Hinweis",toastDismiss:"Schließen",toastSettingsSavedTitle:"Einstellungen gespeichert",toastCacheClearedTitle:"Cache geleert",cacheEmptyTitle:"Cache",toastCacheClearedOnUpdateTitle:"Aktualisiert",toastSteamMatchSavedTitle:"Treffer gespeichert",toastSteamMatchClearedTitle:"Treffer zurückgesetzt",steamFixMatchInvalidTitle:"Ungültige App ID",exportFormatUnavailableTitle:"Nicht verfügbar",toastExportDoneTitle:"Exportiert",toastExportCopiedTitle:"Kopiert",toastExportCopyFailedTitle:"Kopieren fehlgeschlagen",toastExportFailedTitle:"Export fehlgeschlagen",toastGameIdCopiedTitle:"Spiel-ID kopiert",toastGameIdCopied:"{id} in die Zwischenablage kopiert",on:"AN",off:"AUS",loading:"Lädt…",notOnSteam:"Nicht auf Steam gefunden",loadError:"Steam-Daten konnten nicht geladen werden",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Bereit",gsPending:"Ausstehend",gsPartial:"Eingeschränkt",gsReleaseToday:"Release heute",gsUnknown:"Unbekannt",gsNotInDatabase:"Nicht in der Datenbank",reviews:"Bewertungen",price:"Preis",free:"Kostenlos",discount:"-{n}%",steamUsFallback:"Über US-Store gefunden (Suche in {cc} ohne Treffer)",recommendations:"{n} Empfehlungen",links:"Links",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"bis {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",players:"Spieler",playersOnline:"{n} spielen",franchise:"Franchise",supportedSystems:"Unterstützte Systeme",technologies:"Technologien",lastRecordUpdate:"Letzte Datensatzaktualisierung",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB blockiert",unifiedRatingTitle:"Plus-Wertung",unifiedRatingHint:"Durchschnitt aus Steam, Metacritic, OpenCritic & Backloggd",unifiedRatingOutOf:"von 5",unifiedRatingSources:"{n} Quellen",unifiedRatingLoading:"Wertungen werden geladen…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Export",exportTitle:"Spiel exportieren",exportHint:"Dieses Spiel als CSV, Markdown oder JSON für Notion exportieren.",exportFormats:"Exportformat",exportAdvanced:"Weitere Einstellungen",exportRatingFormat:"Bewertungsformat",exportRatingText:"Text",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Numerisch",exportRatingNumericHint:"Sterne von 5 (z. B. 4.5)",exportStatusFormat:"Statusformat",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Spalten wie in einer Notion-Spieldatenbank.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Notion-Seite: Titel + Eigenschaften.",exportFormatJson:"JSON",exportFormatJsonHint:"Dieselben Felder wie CSV, als JSON.",exportDownload:"Herunterladen",exportCopy:"Kopieren",exportSoon:"Bald",exportNoRating:"Keine Bewertung",exportPreviewTitle:"Vorschau",exportPreviewDeveloper:"Entwickler",exportPreviewRelease:"Release",exportPreviewTime:"Zeit",exportPreviewFavorite:"Favorit",exportPreviewTags:"Tags",exportPreviewSource:"Quelle",exportPreviewRating:"Bewertung",exportPreviewStatus:"Status",exportPreviewPlatform:"Plattform",exportPreviewDlc:"DLC",exportPreviewDates:"Daten",exportFormatUnavailable:"Dieses Format ist noch nicht verfügbar",toastExportDone:"{name}",toastExportCopied:"Inhalt in die Zwischenablage kopiert",toastExportCopyFailed:"Konnte nicht in die Zwischenablage kopieren",toastExportFailed:"Datei konnte nicht erstellt werden"},fr:{menuSettings:"Backloggd Plus — Réglages",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · notes · Deck/Proton · HLTB · badges · liens",close:"Fermer",cancel:"Annuler",save:"Enregistrer",saveReload:"Enregistrer et recharger",repoLink:"GitHub",repoAbout:"Code source, mises à jour et signalements",sectionGame:"Page jeu",sectionLists:"Fiche jeu",sectionListsHint:"Badges sur les jaquettes en browse, recherche, journal et Jeux similaires.",sectionGeneral:"Général",sectionProfile:"Profil",sectionUi:"UI",generalGroupLanguage:"Langue",generalGroupLanguageHint:"Langue des menus, réglages et toasts de Plus.",generalGroupInterface:"Interface",generalGroupInterfaceHint:"Ajustements optionnels de l’apparence sur Backloggd.",profileGroupHover:"Cartes au survol",profileGroupHoverHint:"Mini-profil avec un aperçu au survol des avatars.",profileGroupPage:"Page de profil",profileGroupPageHint:"Style par palier sur les pages /u/… (mêmes rangs que les cartes).",profileGroupBlocks:"Blocs de la page",profileGroupBlocksHint:"Quelles parties du profil styliser lorsque l’amélioration est active.",sectionCache:"Cache",sectionDebug:"Débogage",sectionAbout:"À propos",sectionTranslate:"Traduction",aboutDescription:"Backloggd Plus est un userscript qui enrichit Backloggd avec des données Steam, des notes, Deck/Proton, HLTB, GameStatus, des badges de couverture, des captures, des jeux similaires et des outils QoL. Il ajoute aussi un bouton Backloggd sur les pages Steam et SteamDB.",aboutLicense:"Licence MIT",aboutRepo:"Dépôt GitHub",aboutAuthor:"Auteur",aboutContributors:"Contributeurs",aboutContributorsThanks:"Merci à toutes les personnes qui aident à améliorer Backloggd Plus.",aboutBackloggd:"Profil Backloggd",aboutBackloggdHint:"@{user} sur Backloggd",aboutBackloggdNote:"N’hésitez pas à m’ajouter en ami, à dire bonjour ou à partager vos retours — toujours content d’échanger.",aboutContribute:"Contribuer",aboutContributeHint:"Open source — chacun peut aider à améliorer Backloggd.",aboutContributeBody:"Idées, rapports de bugs, traductions et pull requests sont les bienvenus. Chaque contribution aide la communauté.",aboutContributeCta:"Ouvrir le dépôt",aboutContributeCtaHint:"Issues, PR et discussions sur GitHub",enhanceHeader:"En-tête flottant",enhanceHeaderHint:"Barre de navigation en verre collante au-dessus de la page ; se compacte un peu au défilement.",hideHomepageFuse:"Masquer les emplacements pub Fuse",hideHomepageFuseHint:"Masque les rangées Fuse / incontent vides (accueil, avis de jeu, etc.).",showUserMiniProfile:"Mini-profil utilisateur",showUserMiniProfileHint:"Carte avec un aperçu au survol des avatars. Le palier monte avec les jeux joués (25+ bronze … 1000+ légende).",preloadUserMiniProfile:"Précharger dans le viewport",preloadUserMiniProfileHint:"Récupère les données du mini-profil pour les avatars visibles afin d’ouvrir la carte immédiatement.",showProfilePage:"Améliorer la page de profil",showProfilePageHint:"Applique le style par palier à la page de profil. Désactivez des blocs ci-dessous si besoin.",showProfileHeader:"En-tête et avatar",showProfileHeaderHint:"Dégradé d’en-tête et cadre d’avatar coloré selon le palier.",showProfileTierChip:"Pastille de palier",showProfileTierChipHint:"Pastille à côté du nom avec progression vers le palier suivant.",showProfileStats:"Ligne de stats",showProfileStatsHint:"Accent de palier sur Games Played / Backlog / This Year.",showProfileNav:"Navigation du profil",showProfileNavHint:"Onglets Profile / Games / … en barre de pastilles teintée.",showProfileFavorites:"Jeux favoris",showProfileFavoritesHint:"Cadres de rang et soulèvement au survol sur Favorite Games.",showProfileMenuSettings:"Réglages Plus dans le menu profil",showProfileMenuSettingsHint:"Ajoute une entrée Plus au menu du compte (à côté de Settings) et masque le bouton Plus de l’en-tête.",miniProfilePlayed:"Joués",miniProfileBacklog:"Backlog",miniProfileThisYear:"Cette année",miniProfileFavorites:"Favoris",miniProfileRecent:"Récents",miniProfileBadges:"Badges",miniProfileAvgRating:"Note moyenne",miniProfileViewProfile:"Voir le profil",miniProfileLoading:"Chargement du profil…",miniProfileError:"Impossible de charger le profil",miniProfileTierSub:"{count} jeux joués",miniProfileTierRookie:"Débutant",miniProfileTierBronze:"Bronze",miniProfileTierSilver:"Argent",miniProfileTierGold:"Or",miniProfileTierPlatinum:"Platine",miniProfileTierDiamond:"Diamant",miniProfileTierMaster:"Maître",miniProfileTierLegend:"Légende",profileTierProgress:"{n} avant {tier}",profileTierMax:"Palier max",debugMode:"Mode debug",debugModeHint:"Panneau debug avec sources et dump. Lignes d’enrichissement : hachures + badge Cache/Réseau.",debugCacheHit:"Cache",debugCacheMiss:"Réseau",debugCacheMixed:"Mixte",debugCacheNa:"Dérivé",debugReason:"Raison",debugResponse:"Réponse",debugPanelTitle:"Debug",debugSources:"Sources",debugDump:"Dump complet",debugSectionPage:"Page",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / joueurs",debugSectionGameStatus:"GameStatus",debugOwned:"Possédé",debugSrcRequest:"requête",debugSrcBackloggd:"Page jeu Backloggd actuelle",debugSrcIgdb:"Slug du jeu / rangée Links (IGDB)",debugSrcMetacritic:"Rangée Links — URL Metacritic (slug)",debugSrcSteamStore:"Page Steam — Links + lien rangée Steam",debugSrcSteamDb:"Rangée Links — page app SteamDB",debugSrcSteamDbCharts:"SteamDB charts (référence ; non scrapé)",debugSrcSteamDbInfo:"SteamDB info (référence ; non scrapé)",debugSrcSteamTiny:"Petite capsule — fallback icône",debugSrcSteamHeader:"Image header depuis appdetails",debugSrcSteamSearch:"storesearch — résoudre le Steam App ID",debugSrcSteamDetails:"appdetails — prix, free, Metacritic, header",debugSrcSteamReviews:"appreviews — résumé des avis pour Steam",debugSrcSteamTags:"GetItems — tags populaires pour Steam",debugSrcSteamTagMap:"populartags — carte id → nom",debugSrcSteamOwned:"dynamicstore/userdata — contrôle bibliothèque",debugSrcSteamDbPage:"HTML SteamDB — icône, logo, joueurs",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — fallback joueurs",debugSrcIcon:"Icône du titre (SteamDB / CDN)",debugSrcLogo:"Logo couverture sous Change cover",debugSrcGameStatusApi:"API GameStatus — statut",debugSrcGameStatusPage:"Page GameStatus du slug trouvé",uiLanguage:"Langue de l’interface",uiLanguageHint:"Auto suit la langue du navigateur. Appliqué après rechargement.",uiLanguageAuto:"Auto (navigateur)",steamCountry:"Région Steam Store",steamCountryHint:"Affecte la devise du prix via l’API Steam Store.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Afficher prix et avis Steam",showMetacritic:"Afficher le score Metacritic",showOpenCritic:"Afficher le score OpenCritic",showOpenCriticHint:"Badge de tier OpenCritic (recherche par titre).",showHltb:"Afficher les temps HowLongToBeat",showHltbHint:"Heures Main / Extra / Complete depuis HowLongToBeat.",showDeckProton:"Afficher Steam Deck et ProtonDB",showDeckProtonHint:"Verified/Playable Steam Deck et palier ProtonDB (nécessite un Steam App ID).",showGameStatus:"Afficher le statut GameStatus",showGameStatusHint:"Statut via GameStatus.info (correspondance Steam requise).",showLinks:"Afficher la rangée de liens",showSteamOwned:"Afficher le statut possédé Steam",showSteamOwnedHint:"Affiche « Possédé » si le jeu est dans votre bibliothèque Steam. Connexion Steam requise dans ce navigateur.",showSteamWishlist:"Afficher le statut wishlist Steam",showSteamWishlistHint:"Affiche « Wishlist » si le jeu est dans votre liste de souhaits Steam (masqué si déjà possédé). Connexion Steam requise.",showSteamTags:"Afficher les tags Steam",showSteamTagsHint:"Tags communautaires populaires du Steam Store (Open World, RPG, …).",showSteamCategories:"Afficher les catégories Steam",showSteamCategoriesHint:"Catégories de la fiche Steam (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Bouton Backloggd sur Steam",showSteamPageLinkHint:"Ajoute un bouton style SteamDB dans Other site info sur les pages Steam.",showSteamDbPageLink:"Bouton Backloggd sur SteamDB",showSteamDbPageLinkHint:"Ajoute un bouton à côté de Store / IGDB dans app-links SteamDB.",showSteamDbIcon:"Icône SteamDB avant le titre",showSteamDbIconHint:"Icône app dans l’en-tête SteamDB, repli : capsule Steam.",showSteamDbCover:"Logo SteamDB sous Change cover",showSteamDbCoverHint:"Jaquette SteamDB sous la jaquette / Change cover.",showSteamDbGallery:"Galerie de captures Steam",showSteamDbGalleryHint:"Bandeau horizontal de captures après les stats (assets Steam Store, comme SteamDB). Clic pour agrandir.",steamGalleryTitle:"Captures",steamGalleryOpen:"Ouvrir la capture",steamGalleryClose:"Fermer",steamGalleryPrev:"Précédente",steamGalleryNext:"Suivante",showSimilarGames:"Afficher les jeux similaires",showSimilarGamesHint:"Bandeau de jeux similaires sous les captures (Steam More Like This + % de correspondance des tags). Les cartes mènent à Backloggd.",similarGamesTitle:"Jeux similaires",similarGamesMatch:"Affinité",similarGamesOpenSteam:"Ouvrir sur Steam",showGameStats:"Afficher le bloc de stats",showGameStatsHint:"Bloc natif Backloggd : Plays, Playing, Backlogs, Wishlists et Ratings (#game-stats).",viewerZoomIn:"Zoom avant",viewerZoomOut:"Zoom arrière",viewerZoomReset:"Réinitialiser le zoom",viewerOf:"{current} / {total}",viewerOpenCover:"Ouvrir la jaquette",showSteamPlayers:"Afficher les joueurs en ligne",showSteamPlayersHint:"Joueurs actuels via Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Afficher les détails SteamDB",showSteamDbDetailsHint:"Franchise et systèmes via Steam ; technologies et dernière mise à jour via SteamDB si accessible.",showExport:"Afficher le bouton d’export",showExportHint:"Ajoute Exporter sur la page du jeu et dans l’éditeur de log (CSV / Markdown / JSON pour Notion). Désactivé par défaut.",showGameId:"Afficher l’ID du jeu",showGameIdHint:"Affiche l’ID Backloggd (#…) après le titre. Clic pour copier l’ID numérique.",gameIdCopyLabel:"Copier l’ID du jeu",showTranslate:"Activer la traduction",showTranslateHint:"Afficher les boutons Traduire sur les descriptions et critiques (Google Traduction).",translateTargetLocale:"Langue cible",translateTargetLocaleHint:"Langue de traduction. « Comme l’interface » suit Général → Langue de l’interface.",translateAsUi:"Comme l’interface",translateDisplayMode:"Mode d’affichage",translateDisplayModeHint:"Comment le texte traduit s’affiche après Traduire.",translateModeReplace:"Remplacer le texte (basculer l’original)",translateModeBelow:"Afficher la traduction sous l’original",translateDescription:"Traduire la description du jeu",translateDescriptionHint:"Bouton près du résumé sur la page du jeu.",translateReviews:"Traduire les critiques",translateReviewsHint:"Bouton sur chaque carte de critique.",translateReviewsAuto:"Traduire les critiques automatiquement",translateReviewsAutoHint:"Quand une critique entre dans le champ de vision, la traduire automatiquement. Désactivé par défaut.",translateButton:"Traduire",translateShowOriginal:"Afficher l’original",translateHide:"Masquer la traduction",translateLoading:"Traduction…",translateError:"Échec de la traduction",translateResultLabel:"Traduction",showCardBadges:"Afficher les badges sur les jaquettes",showCardBadgesHint:"Interrupteur principal des chips sur les cartes. Off masque tous les badges.",cardGroupTypes:"Types de badge",cardGroupTypesHint:"Quels chips apparaissent lorsque les badges sont activés.",showCardBadgePrice:"Prix",showCardBadgePriceHint:"Prix Steam Store de votre région (prix promo en solde).",showCardBadgeReview:"% d’avis Steam",showCardBadgeReviewHint:"Pourcentage d’avis positifs sur Steam.",showCardBadgeOwned:"Possédé",showCardBadgeOwnedHint:"Affiché si le jeu est dans votre bibliothèque Steam. Connexion Steam requise.",showCardBadgeWishlist:"Wishlist",showCardBadgeWishlistHint:"Affiché si le jeu est dans votre wishlist Steam (masqué si déjà possédé). Connexion Steam requise.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Chip de statut GameStatus.info lorsqu’une correspondance Steam existe.",steamBackloggdTooltip:"Voir sur Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"Possédé",steamWishlist:"Wishlist",steamFixMatch:"Corriger la correspondance",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Remplace la recherche automatique Steam Store pour cette page Backloggd. Collez l’App ID numérique de l’URL Steam.",steamFixMatchPlaceholder:"ex. 1245620",steamFixMatchClear:"Utiliser la correspondance auto",steamFixMatchInvalid:"Entrez un Steam App ID numérique valide",steamMatchManual:"manuel",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Liens rapides",sectionLinksHint:"Choisissez les sites affichés dans la rangée Links.",gameGroupSteam:"Steam",gameGroupScores:"Notes et durée",gameGroupCompat:"Compatibilité et statut",gameGroupMedia:"Médias et mise en page",gameGroupTools:"Outils",gameGroupHosts:"Autres sites",gameGroupHostsHint:"Boutons Backloggd sur les pages Steam et SteamDB.",navSettings:"Plus",navSettingsTitle:"Réglages Backloggd Plus",cacheHours:"Durée du cache (heures)",cacheHoursHint:"Durée de réutilisation des requêtes Steam, GameStatus, scores, médias et jeux similaires. 0 désactive ce cache. Bibliothèque/wishlist Steam et la carte de tags gardent leurs TTL courts. Les joueurs en ligne ne sont jamais mis en cache.",clearCache:"Vider le cache",cacheCleared:"{count} entrées supprimées",cacheEmpty:"Rien à effacer — déjà vide",cacheBarFull:"Complet",cacheBarPartial:"Partiel",cacheBarFree:"Libre",cacheBarLegend:"{label} : {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"utilisé",cacheBarHint:"Budget de stockage indicatif. Complet = requêtes utiles ; partiel = incomplètes ou expirées encore stockées.",cacheBarAria:"Cache rempli à {pct}% — {full} complet, {partial} partiel, {free} libre",cacheTabFillAria:"Cache rempli à {pct}%",cacheClearHint:"Supprime les requêtes Steam / GameStatus de ce profil navigateur.",toastSettingsSaved:"Vos préférences s'appliqueront après le rechargement de la page.",toastCacheClearedOnUpdate:"v{version} — cache de requêtes vidé",toastSteamMatchSaved:"Steam App ID : {id}",toastSteamMatchCleared:"Recherche Steam automatique rétablie",toastTitleSuccess:"Succès",toastTitleError:"Erreur",toastTitleInfo:"Info",toastTitleWarning:"Attention",toastDismiss:"Fermer",toastSettingsSavedTitle:"Réglages enregistrés",toastCacheClearedTitle:"Cache vidé",cacheEmptyTitle:"Cache",toastCacheClearedOnUpdateTitle:"Mis à jour",toastSteamMatchSavedTitle:"Correspondance enregistrée",toastSteamMatchClearedTitle:"Correspondance réinitialisée",steamFixMatchInvalidTitle:"App ID invalide",exportFormatUnavailableTitle:"Indisponible",toastExportDoneTitle:"Exporté",toastExportCopiedTitle:"Copié",toastExportCopyFailedTitle:"Échec de la copie",toastExportFailedTitle:"Échec de l'export",toastGameIdCopiedTitle:"ID copié",toastGameIdCopied:"{id} copié dans le presse-papiers",on:"ON",off:"OFF",loading:"Chargement…",notOnSteam:"Introuvable sur Steam",loadError:"Impossible de charger les données Steam",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Prêt",gsPending:"En attente",gsPartial:"Partiel",gsReleaseToday:"Sortie aujourd’hui",gsUnknown:"Inconnu",gsNotInDatabase:"Absent de la base",reviews:"Avis",price:"Prix",free:"Gratuit",discount:"-{n}%",steamUsFallback:"Trouvé via le magasin US (aucune réponse pour {cc})",recommendations:"{n} recommandations",links:"Liens",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"jusqu’au {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",players:"Joueurs",playersOnline:"{n} en jeu",franchise:"Franchise",supportedSystems:"Systèmes pris en charge",technologies:"Technologies",lastRecordUpdate:"Dernière mise à jour de l'enregistrement",steamDeckStatus:"Steam Deck : {status}",steamDbBlocked:"SteamDB bloqué",unifiedRatingTitle:"Note Plus",unifiedRatingHint:"Moyenne Steam, Metacritic, OpenCritic et Backloggd",unifiedRatingOutOf:"sur 5",unifiedRatingSources:"{n} sources",unifiedRatingLoading:"Collecte des notes…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Exporter",exportTitle:"Exporter le jeu",exportHint:"Exporter ce jeu en CSV, Markdown ou JSON pour Notion.",exportFormats:"Format d’export",exportAdvanced:"Paramètres supplémentaires",exportRatingFormat:"Format de la note",exportRatingText:"Texte",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Numérique",exportRatingNumericHint:"Étoiles sur 5 (ex. 4.5)",exportStatusFormat:"Format du statut",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Colonnes comme une base Notion.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Page Notion : titre + propriétés.",exportFormatJson:"JSON",exportFormatJsonHint:"Mêmes champs que le CSV, en JSON.",exportDownload:"Télécharger",exportCopy:"Copier",exportSoon:"Bientôt",exportNoRating:"Sans note",exportPreviewTitle:"Aperçu",exportPreviewDeveloper:"Développeur",exportPreviewRelease:"Sortie",exportPreviewTime:"Temps",exportPreviewFavorite:"Favori",exportPreviewTags:"Tags",exportPreviewSource:"Source",exportPreviewRating:"Note",exportPreviewStatus:"Statut",exportPreviewPlatform:"Plateforme",exportPreviewDlc:"DLC",exportPreviewDates:"Dates",exportFormatUnavailable:"Ce format n’est pas encore disponible",toastExportDone:"{name}",toastExportCopied:"Contenu copié dans le presse-papiers",toastExportCopyFailed:"Impossible de copier dans le presse-papiers",toastExportFailed:"Impossible de créer le fichier"},ja:{menuSettings:"Backloggd Plus — 設定",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · スコア · Deck/Proton · HLTB · バッジ · リンク",close:"閉じる",cancel:"キャンセル",save:"保存",saveReload:"保存して再読み込み",repoLink:"GitHub",repoAbout:"ソースコード、更新、Issue報告",sectionGame:"ゲームページ",sectionLists:"ゲームカード",sectionListsHint:"browse / 検索 / journal と「似ているゲーム」のカバーに出すバッジ。",sectionGeneral:"一般",sectionProfile:"プロフィール",sectionUi:"UI",generalGroupLanguage:"言語",generalGroupLanguageHint:"Plus のメニュー・設定・トーストの言語。",generalGroupInterface:"インターフェース",generalGroupInterfaceHint:"Backloggd ページの任意の見た目調整。",profileGroupHover:"ホバーカード",profileGroupHoverHint:"アバターにホバーすると簡易プロフィールを表示。",profileGroupPage:"プロフィールページ",profileGroupPageHint:"/u/… ページにホバーカードと同じティア装飾を適用。",profileGroupBlocks:"ページブロック",profileGroupBlocksHint:"装飾が有効なとき、どの部分をスタイリングするか。",sectionCache:"キャッシュ",sectionDebug:"デバッグ",sectionAbout:"このスクリプトについて",sectionTranslate:"翻訳",aboutDescription:"Backloggd Plus は、Steam データ、スコア、Deck/Proton、HLTB、GameStatus、カバーバッジ、スクリーンショット、類似ゲーム、QoL 機能で Backloggd を拡張する userscript です。Steam / SteamDB のゲームページには Backloggd ボタンも追加します。",aboutLicense:"MIT ライセンス",aboutRepo:"GitHub リポジトリ",aboutAuthor:"作者",aboutContributors:"貢献者",aboutContributorsThanks:"Backloggd Plus の改善に協力してくださる皆さんに感謝します。",aboutBackloggd:"Backloggd プロフィール",aboutBackloggdHint:"Backloggd の @{user}",aboutBackloggdNote:"フレンド追加やあいさつ、フィードバックも大歓迎です。気軽にどうぞ。",aboutContribute:"コントリビュート",aboutContributeHint:"オープンソース — 誰でも Backloggd をより良くできます。",aboutContributeBody:"アイデア、バグ報告、翻訳、プルリクエストを歓迎します。すべての貢献がコミュニティの助けになります。",aboutContributeCta:"リポジトリを開く",aboutContributeCtaHint:"GitHub の Issue・PR・議論",enhanceHeader:"フローティングヘッダー",enhanceHeaderHint:"ページ上に浮かぶガラス風の固定ナビ。スクロールすると少しコンパクトになります。",hideHomepageFuse:"Fuse広告枠を非表示",hideHomepageFuseHint:"空の Fuse / incontent 広告行を非表示にします(ホーム、ゲームレビューなど)。",showUserMiniProfile:"ユーザーミニプロフィール",showUserMiniProfileHint:"アバターにホバーすると簡易カードを表示。プレイ数が増えるほどティアが上がります(25+ ブロンズ … 1000+ レジェンド)。",preloadUserMiniProfile:"表示領域で事前読込",preloadUserMiniProfileHint:"表示領域に入ったアバターのミニプロフィールを先読みし、ホバーですぐ開けます。",showProfilePage:"プロフィールページを装飾",showProfilePageHint:"プロフィールページにティア装飾を適用。下でブロック単位にオフにできます。",showProfileHeader:"ヘッダーとアバター",showProfileHeaderHint:"ヘッダーのグラデーションと色付きアバター枠。",showProfileTierChip:"ティアチップ",showProfileTierChipHint:"ユーザー名の横にティアと次ランクまでの進捗。",showProfileStats:"統計行",showProfileStatsHint:"Games Played / Backlog などにティアのアクセント。",showProfileNav:"プロフィールナビ",showProfileNavHint:"Profile / Games などのタブをティア色のピルバーに。",showProfileFavorites:"お気に入りゲーム",showProfileFavoritesHint:"Favorite Games カバーのランク枠とホバー浮き。",showProfileMenuSettings:"プロフィールメニューに Plus 設定",showProfileMenuSettingsHint:"アカウントのドロップダウン(Settings の近く)に Plus を追加し、ヘッダーの Plus ボタンを非表示にします。",miniProfilePlayed:"プレイ済み",miniProfileBacklog:"バックログ",miniProfileThisYear:"今年",miniProfileFavorites:"お気に入り",miniProfileRecent:"最近",miniProfileBadges:"バッジ",miniProfileAvgRating:"平均評価",miniProfileViewProfile:"プロフィールを見る",miniProfileLoading:"プロフィールを読み込み中…",miniProfileError:"プロフィールを読み込めませんでした",miniProfileTierSub:"{count} 本プレイ",miniProfileTierRookie:"ルーキー",miniProfileTierBronze:"ブロンズ",miniProfileTierSilver:"シルバー",miniProfileTierGold:"ゴールド",miniProfileTierPlatinum:"プラチナ",miniProfileTierDiamond:"ダイヤモンド",miniProfileTierMaster:"マスター",miniProfileTierLegend:"レジェンド",profileTierProgress:"{tier}まであと {n}",profileTierMax:"最高ティア",debugMode:"デバッグモード",debugModeHint:"デバッグパネルと応答ダンプ。各行に斜線ハッチとキャッシュ/ネットワークバッジ。",debugCacheHit:"キャッシュ",debugCacheMiss:"ネットワーク",debugCacheMixed:"混在",debugCacheNa:"派生",debugReason:"理由",debugResponse:"レスポンス",debugPanelTitle:"デバッグ",debugSources:"ソース",debugDump:"完全ダンプ",debugSectionPage:"ページ",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / プレイヤー",debugSectionGameStatus:"GameStatus",debugOwned:"所持",debugSrcRequest:"リクエスト",debugSrcBackloggd:"現在の Backloggd ゲームページ",debugSrcIgdb:"ゲーム slug / Links 行(IGDB)",debugSrcMetacritic:"Links 行 — Metacritic URL(slug 推定)",debugSrcSteamStore:"Steam ストアページ — Links + Steam 行リンク",debugSrcSteamDb:"Links 行 — SteamDB アプリページ",debugSrcSteamDbCharts:"SteamDB charts(参考;スクレイプしない)",debugSrcSteamDbInfo:"SteamDB info(参考;スクレイプしない)",debugSrcSteamTiny:"小さいカプセル — アイコン用フォールバック",debugSrcSteamHeader:"appdetails のヘッダー画像",debugSrcSteamSearch:"storesearch — Steam App ID の解決",debugSrcSteamDetails:"appdetails — 価格・無料・Metacritic・header",debugSrcSteamReviews:"appreviews — Steam 行のレビュー概要",debugSrcSteamTags:"GetItems — Steam 行の人気タグ",debugSrcSteamTagMap:"populartags — タグ id → 名前",debugSrcSteamOwned:"dynamicstore/userdata — ライブラリ所持確認",debugSrcSteamDbPage:"SteamDB HTML — icon / logo / プレイヤー",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — プレイヤー数フォールバック",debugSrcIcon:"タイトル横アイコン(SteamDB / CDN)",debugSrcLogo:"Change cover 下のカバー logo",debugSrcGameStatusApi:"GameStatus API — 状態",debugSrcGameStatusPage:"一致した slug の GameStatus ページ",uiLanguage:"表示言語",uiLanguageHint:"自動はブラウザ言語に従います。保存後の再読み込みで反映。",uiLanguageAuto:"自動(ブラウザ)",steamCountry:"Steamストア地域",steamCountryHint:"Steam Store APIの価格通貨に影響します。",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Steamの価格とレビューを表示",showMetacritic:"Metacriticスコアを表示",showOpenCritic:"OpenCriticスコアを表示",showOpenCriticHint:"OpenCriticのTierバッジ(タイトル検索)。",showHltb:"HowLongToBeatの時間を表示",showHltbHint:"HowLongToBeatのMain / Extra / Complete時間。",showDeckProton:"Steam DeckとProtonDBを表示",showDeckProtonHint:"Steam DeckのVerified/PlayableとProtonDBティア(Steam App IDが必要)。",showGameStatus:"GameStatusの状態を表示",showGameStatusHint:"GameStatus.info の状態(Steam一致が必要)。",showLinks:"リンク行を表示",showSteamOwned:"Steam所持を表示",showSteamOwnedHint:"ライブラリにある場合「所持」を表示します。このブラウザでSteamにログインしている必要があります。",showSteamWishlist:"Steamウィッシュリストを表示",showSteamWishlistHint:"ウィッシュリストにある場合「ウィッシュリスト」を表示(所持中は非表示)。このブラウザでSteamログインが必要です。",showSteamTags:"Steamタグを表示",showSteamTagsHint:"Steamストアの人気コミュニティタグ(Open World、RPG など)。",showSteamCategories:"Steamカテゴリを表示",showSteamCategoriesHint:"Steamアプリ詳細のストアカテゴリ(シングルプレイヤー、マルチプレイヤー、Steam実績など)。",showSteamPageLink:"SteamにBackloggdボタン",showSteamPageLinkHint:"Steamのゲームページ Other site info にSteamDB風ボタンを追加します。",showSteamDbPageLink:"SteamDBにBackloggdボタン",showSteamDbPageLinkHint:"SteamDBのapp-linksでStore / IGDBの横にボタンを追加します。",showSteamDbIcon:"タイトル前に SteamDB アイコン",showSteamDbIconHint:"SteamDB ページ見出しのアプリアイコン。失敗時は Steam カプセル。",showSteamDbCover:"Change cover の下に SteamDB ロゴ",showSteamDbCoverHint:"カバー / Change cover の下に SteamDB のカバー画像。",showSteamDbGallery:"Steam スクリーンショットギャラリー",showSteamDbGalleryHint:"統計ブロックの下に横スクロールのスクショ(Steam Store アセット、SteamDB と同じ)。クリックで拡大。",steamGalleryTitle:"スクリーンショット",steamGalleryOpen:"スクリーンショットを開く",steamGalleryClose:"閉じる",steamGalleryPrev:"前へ",steamGalleryNext:"次へ",showSimilarGames:"類似ゲームを表示",showSimilarGamesHint:"スクリーンショット下の類似ゲーム帯(Steam More Like This + タグ一致率)。カードは Backloggd へ。",similarGamesTitle:"類似ゲーム",similarGamesMatch:"一致",similarGamesOpenSteam:"Steam で開く",showGameStats:"ゲーム統計ブロックを表示",showGameStatsHint:"Backloggd 本体の Plays / Playing / Backlogs / Wishlists / Ratings ブロック(#game-stats)。",viewerZoomIn:"拡大",viewerZoomOut:"縮小",viewerZoomReset:"ズームをリセット",viewerOf:"{current} / {total}",viewerOpenCover:"カバーを開く",showSteamPlayers:"オンラインプレイヤー数を表示",showSteamPlayersHint:"Steam GetNumberOfCurrentPlayers の現在のプレイヤー数。",showSteamDbDetails:"SteamDBの詳細を表示",showSteamDbDetailsHint:"フランチャイズと対応システムはSteamから。技術と最終レコード更新はSteamDBが届く場合。",showExport:"エクスポートボタンを表示",showExportHint:"ゲームページとログ編集にエクスポートを追加(Notion 向け CSV / Markdown / JSON)。既定はオフ。",showGameId:"ゲーム ID を表示",showGameIdHint:"タイトルの後に Backloggd のゲーム ID(#…)を表示。クリックで数値 ID をコピー。",gameIdCopyLabel:"ゲーム ID をコピー",showTranslate:"翻訳を有効にする",showTranslateHint:"ゲーム説明とレビューに「翻訳」ボタンを表示(Google 翻訳)。",translateTargetLocale:"翻訳先の言語",translateTargetLocaleHint:"翻訳する言語。「インターフェースと同じ」は 一般 → インターフェース言語 に従います。",translateAsUi:"インターフェースと同じ",translateDisplayMode:"表示モード",translateDisplayModeHint:"「翻訳」後の表示方法。",translateModeReplace:"テキストを置換(原文と切替)",translateModeBelow:"原文の下に翻訳を表示",translateDescription:"ゲーム説明を翻訳",translateDescriptionHint:"ゲームページの概要横のボタン。",translateReviews:"レビューを翻訳",translateReviewsHint:"各レビューカードのボタン。",translateReviewsAuto:"レビューを自動翻訳",translateReviewsAutoHint:"レビューが画面に入ったら自動で翻訳します。デフォルトはオフ。",translateButton:"翻訳",translateShowOriginal:"原文を表示",translateHide:"翻訳を隠す",translateLoading:"翻訳中…",translateError:"翻訳できませんでした",translateResultLabel:"翻訳",showCardBadges:"カバーにバッジを表示",showCardBadgesHint:"カバーカードのバッジ総スイッチ。オフですべて非表示。",cardGroupTypes:"バッジの種類",cardGroupTypesHint:"カバーバッジが有効なときに表示するチップ。",showCardBadgePrice:"価格",showCardBadgePriceHint:"地域の Steam ストア価格(割引時はセール価格)。",showCardBadgeReview:"Steam評価%",showCardBadgeReviewHint:"Steam の好評率。",showCardBadgeOwned:"所持",showCardBadgeOwnedHint:"Steam ライブラリにある場合に表示。このブラウザで Steam ログインが必要。",showCardBadgeWishlist:"ウィッシュリスト",showCardBadgeWishlistHint:"Steam ウィッシュリストにある場合に表示(所持時は非表示)。Steam ログインが必要。",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Steam マッチがあるときの GameStatus.info ステータスチップ。",steamBackloggdTooltip:"Backloggdで見る",steamDbBackloggdLabel:"Backloggd",steamOwned:"所持",steamWishlist:"ウィッシュリスト",steamFixMatch:"一致を修正",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"このBackloggdページの自動Steamストア検索を上書きします。Steam URLの数字App IDを貼り付けてください。",steamFixMatchPlaceholder:"例: 1245620",steamFixMatchClear:"自動一致を使う",steamFixMatchInvalid:"有効な数字のSteam App IDを入力してください",steamMatchManual:"手動",steamMatchAuto:"自動",steamMatchLabel:"App {id} · {source}",sectionLinks:"クイックリンク",sectionLinksHint:"Links行に表示するサイトを選択します。",gameGroupSteam:"Steam",gameGroupScores:"スコアとプレイ時間",gameGroupCompat:"互換性とステータス",gameGroupMedia:"メディアとレイアウト",gameGroupTools:"ツール",gameGroupHosts:"その他のサイト",gameGroupHostsHint:"Steam / SteamDB のゲームページに Backloggd ボタンを表示します。",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 設定",cacheHours:"キャッシュ時間(時間)",cacheHoursHint:"Steam・GameStatus・スコア・メディア・類似ゲーム照会の再利用時間。0でそのキャッシュを無効。Steamライブラリ/ウィッシュリスト・タグマップは独自の短いTTLを維持。オンラインプレイヤー数はキャッシュしない。",clearCache:"キャッシュを消去",cacheCleared:"{count} 件を削除しました",cacheEmpty:"クリアするものはありません — すでに空です",cacheBarFull:"完全",cacheBarPartial:"部分",cacheBarFree:"空き",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"使用中",cacheBarHint:"目安の容量上限。完全=利用可能な照会、部分=不完全または期限切れでまだ残っている項目。",cacheBarAria:"キャッシュ使用率 {pct}% — 完全 {full}、部分 {partial}、空き {free}",cacheTabFillAria:"キャッシュ使用率 {pct}%",cacheClearHint:"このブラウザプロファイルのSteam / GameStatus照会を削除します。",toastSettingsSaved:"ページを再読み込みすると設定が反映されます。",toastCacheClearedOnUpdate:"v{version} — 照会キャッシュをクリアしました",toastSteamMatchSaved:"Steam App ID を {id} に設定",toastSteamMatchCleared:"自動 Steam 検索に戻しました",toastTitleSuccess:"成功",toastTitleError:"エラー",toastTitleInfo:"情報",toastTitleWarning:"注意",toastDismiss:"閉じる",toastSettingsSavedTitle:"設定を保存しました",toastCacheClearedTitle:"キャッシュをクリア",cacheEmptyTitle:"キャッシュ",toastCacheClearedOnUpdateTitle:"更新しました",toastSteamMatchSavedTitle:"マッチを保存",toastSteamMatchClearedTitle:"マッチをリセット",steamFixMatchInvalidTitle:"無効な App ID",exportFormatUnavailableTitle:"利用不可",toastExportDoneTitle:"エクスポート完了",toastExportCopiedTitle:"コピーしました",toastExportCopyFailedTitle:"コピー失敗",toastExportFailedTitle:"エクスポート失敗",toastGameIdCopiedTitle:"ゲーム ID をコピー",toastGameIdCopied:"{id} をクリップボードにコピーしました",on:"ON",off:"OFF",loading:"読み込み中…",notOnSteam:"Steamで見つかりません",loadError:"Steamデータを読み込めませんでした",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"対応済み",gsPending:"未対応",gsPartial:"一部対応",gsReleaseToday:"本日リリース",gsUnknown:"不明",gsNotInDatabase:"データベースになし",reviews:"レビュー",price:"価格",free:"無料",discount:"-{n}%",steamUsFallback:"USストア経由で検出({cc} の検索は結果なし)",recommendations:"おすすめ {n}",links:"リンク",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"{date}まで",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}時間",hltbExtra:"Extra {n}時間",hltbComplete:"Complete {n}時間",players:"プレイヤー",playersOnline:"{n} 人がプレイ中",franchise:"フランチャイズ",supportedSystems:"対応システム",technologies:"テクノロジー",lastRecordUpdate:"最終レコード更新",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDBがブロックされています",unifiedRatingTitle:"Plusスコア",unifiedRatingHint:"Steam・Metacritic・OpenCritic・Backloggdの平均",unifiedRatingOutOf:"/ 5",unifiedRatingSources:"{n}件のソース",unifiedRatingLoading:"スコアを集計中…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"エクスポート",exportTitle:"ゲームをエクスポート",exportHint:"このゲームを CSV / Markdown / JSON で Notion 向けに書き出します。",exportFormats:"エクスポート形式",exportAdvanced:"詳細設定",exportRatingFormat:"評価の形式",exportRatingText:"テキスト",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"数値",exportRatingNumericHint:"5 点満点(例: 4.5)",exportStatusFormat:"ステータス形式",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Notion のゲーム DB と同じ列。",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Notion 形式: タイトル + プロパティ行。",exportFormatJson:"JSON",exportFormatJsonHint:"CSV と同じフィールドの JSON。",exportDownload:"ダウンロード",exportCopy:"コピー",exportSoon:"近日",exportNoRating:"未評価",exportPreviewTitle:"プレビュー",exportPreviewDeveloper:"開発元",exportPreviewRelease:"発売",exportPreviewTime:"時間",exportPreviewFavorite:"お気に入り",exportPreviewTags:"タグ",exportPreviewSource:"ソース",exportPreviewRating:"評価",exportPreviewStatus:"ステータス",exportPreviewPlatform:"プラットフォーム",exportPreviewDlc:"DLC",exportPreviewDates:"日付",exportFormatUnavailable:"この形式はまだ利用できません",toastExportDone:"{name}",toastExportCopied:"クリップボードにコピーしました",toastExportCopyFailed:"クリップボードにコピーできませんでした",toastExportFailed:"ファイルを作成できませんでした"},ko:{menuSettings:"Backloggd Plus — 설정",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · 점수 · Deck/Proton · HLTB · 배지 · 링크",close:"닫기",cancel:"취소",save:"저장",saveReload:"저장 후 새로고침",repoLink:"GitHub",repoAbout:"소스 코드, 업데이트, 이슈 보고",sectionGame:"게임 페이지",sectionLists:"게임 카드",sectionListsHint:"browse / 검색 / journal 및 비슷한 게임 커버의 배지.",sectionGeneral:"일반",sectionProfile:"프로필",sectionUi:"UI",generalGroupLanguage:"언어",generalGroupLanguageHint:"Plus 메뉴, 설정, 토스트 언어.",generalGroupInterface:"인터페이스",generalGroupInterfaceHint:"Backloggd 페이지의 선택적 화면 조정.",profileGroupHover:"호버 카드",profileGroupHoverHint:"아바타에 마우스를 올리면 요약 미니 프로필을 표시합니다.",profileGroupPage:"프로필 페이지",profileGroupPageHint:"/u/… 페이지에 호버 카드와 같은 티어 스타일을 적용합니다.",profileGroupBlocks:"페이지 블록",profileGroupBlocksHint:"꾸미기가 켜져 있을 때 스타일을 적용할 프로필 구역입니다.",sectionCache:"캐시",sectionDebug:"디버그",sectionAbout:"정보",sectionTranslate:"번역",aboutDescription:"Backloggd Plus는 Steam 데이터, 점수, Deck/Proton, HLTB, GameStatus, 커버 배지, 스크린샷, 유사 게임, QoL 도구로 Backloggd를 확장하는 userscript입니다. Steam / SteamDB 게임 페이지에 Backloggd 버튼도 추가합니다.",aboutLicense:"MIT 라이선스",aboutRepo:"GitHub 저장소",aboutAuthor:"제작자",aboutContributors:"기여자",aboutContributorsThanks:"Backloggd Plus 개선에 도움을 주시는 모든 분께 감사드립니다.",aboutBackloggd:"Backloggd 프로필",aboutBackloggdHint:"Backloggd의 @{user}",aboutBackloggdNote:"친구 추가, 인사, 피드백 모두 환영합니다. 편하게 연락해 주세요.",aboutContribute:"기여하기",aboutContributeHint:"오픈 소스 — 누구나 Backloggd를 더 좋게 만들 수 있습니다.",aboutContributeBody:"아이디어, 버그 제보, 번역, PR을 환영합니다. 모든 기여가 커뮤니티에 도움이 됩니다.",aboutContributeCta:"저장소 열기",aboutContributeCtaHint:"GitHub의 Issue, PR, 토론",enhanceHeader:"플로팅 헤더",enhanceHeaderHint:"페이지 위에 떠 있는 글래스 스타일 고정 내비. 스크롤 시 조금 더 컴팩트해집니다.",hideHomepageFuse:"Fuse 광고 슬롯 숨기기",hideHomepageFuseHint:"빈 Fuse / incontent 광고 행을 숨깁니다(홈, 게임 리뷰 등).",showUserMiniProfile:"사용자 미니 프로필",showUserMiniProfileHint:"아바타에 마우스를 올리면 요약 미니 카드를 표시합니다. 플레이 수에 따라 티어가 올라갑니다(25+ 브론즈 … 1000+ 레전드).",preloadUserMiniProfile:"화면에 보이면 미리 불러오기",preloadUserMiniProfileHint:"아바타가 화면에 들어오면 미니 프로필을 미리 받아 호버 시 바로 열리게 합니다.",showProfilePage:"프로필 페이지 꾸미기",showProfilePageHint:"프로필 페이지에 티어 스타일을 적용합니다. 아래에서 구역별로 끌 수 있습니다.",showProfileHeader:"헤더와 아바타",showProfileHeaderHint:"헤더 그라데이션과 티어 색 아바타 테두리.",showProfileTierChip:"티어 칩",showProfileTierChipHint:"이름 옆에 티어와 다음 등급까지 진행도.",showProfileStats:"통계 행",showProfileStatsHint:"Games Played / Backlog 등에 티어 강조.",showProfileNav:"프로필 탐색",showProfileNavHint:"Profile / Games 탭을 티어 색 필 바로 표시.",showProfileFavorites:"즐겨찾기 게임",showProfileFavoritesHint:"Favorite Games 커버의 랭크 프레임과 호버 효과.",showProfileMenuSettings:"프로필 메뉴에 Plus 설정",showProfileMenuSettingsHint:"계정 드롭다운의 Settings 옆에 Plus 항목을 추가하고 헤더 Plus 버튼을 숨깁니다.",miniProfilePlayed:"플레이",miniProfileBacklog:"백로그",miniProfileThisYear:"올해",miniProfileFavorites:"즐겨찾기",miniProfileRecent:"최근",miniProfileBadges:"배지",miniProfileAvgRating:"평균 평점",miniProfileViewProfile:"프로필 보기",miniProfileLoading:"프로필 불러오는 중…",miniProfileError:"프로필을 불러오지 못했습니다",miniProfileTierSub:"{count}개 플레이",miniProfileTierRookie:"루키",miniProfileTierBronze:"브론즈",miniProfileTierSilver:"실버",miniProfileTierGold:"골드",miniProfileTierPlatinum:"플래티넘",miniProfileTierDiamond:"다이아몬드",miniProfileTierMaster:"마스터",miniProfileTierLegend:"레전드",profileTierProgress:"{tier}까지 {n}",profileTierMax:"최고 티어",debugMode:"디버그 모드",debugModeHint:"디버그 패널과 응답 덤프. 각 보강 행에 빗금 + 캐시/네트워크 배지.",debugCacheHit:"캐시",debugCacheMiss:"네트워크",debugCacheMixed:"혼합",debugCacheNa:"파생",debugReason:"이유",debugResponse:"응답",debugPanelTitle:"디버그",debugSources:"소스",debugDump:"전체 덤프",debugSectionPage:"페이지",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / 플레이어",debugSectionGameStatus:"GameStatus",debugOwned:"보유",debugSrcRequest:"요청",debugSrcBackloggd:"현재 Backloggd 게임 페이지",debugSrcIgdb:"게임 slug / Links 행 (IGDB)",debugSrcMetacritic:"Links 행 — Metacritic URL (slug 추정)",debugSrcSteamStore:"Steam 스토어 페이지 — Links + Steam 행 링크",debugSrcSteamDb:"Links 행 — SteamDB 앱 페이지",debugSrcSteamDbCharts:"SteamDB charts (참고; 스크래핑 안 함)",debugSrcSteamDbInfo:"SteamDB info (참고; 스크래핑 안 함)",debugSrcSteamTiny:"작은 캡슐 — 아이콘 폴백",debugSrcSteamHeader:"appdetails 헤더 이미지",debugSrcSteamSearch:"storesearch — Steam App ID 해석",debugSrcSteamDetails:"appdetails — 가격, 무료, Metacritic, header",debugSrcSteamReviews:"appreviews — Steam 행 리뷰 요약",debugSrcSteamTags:"GetItems — Steam 행 인기 태그",debugSrcSteamTagMap:"populartags — 태그 id → 이름",debugSrcSteamOwned:"dynamicstore/userdata — 라이브러리 보유 확인",debugSrcSteamDbPage:"SteamDB HTML — icon, logo, 플레이어",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — 플레이어 폴백",debugSrcIcon:"제목 아이콘 (SteamDB / CDN)",debugSrcLogo:"Change cover 아래 커버 logo",debugSrcGameStatusApi:"GameStatus API — 상태",debugSrcGameStatusPage:"일치한 slug의 GameStatus 페이지",uiLanguage:"인터페이스 언어",uiLanguageHint:"자동은 브라우저 언어를 따릅니다. 저장 후 새로고침 시 적용.",uiLanguageAuto:"자동 (브라우저)",steamCountry:"Steam 스토어 지역",steamCountryHint:"Steam Store API 가격 통화에 영향을 줍니다.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Steam 가격 및 리뷰 표시",showMetacritic:"Metacritic 점수 표시",showOpenCritic:"OpenCritic 점수 표시",showOpenCriticHint:"OpenCritic Tier 배지(제목 검색).",showHltb:"HowLongToBeat 시간 표시",showHltbHint:"HowLongToBeat의 Main / Extra / Complete 시간.",showDeckProton:"Steam Deck 및 ProtonDB 표시",showDeckProtonHint:"Steam Deck Verified/Playable과 ProtonDB 등급(Steam App ID 필요).",showGameStatus:"GameStatus 상태 표시",showGameStatusHint:"GameStatus.info의 상태(Steam 일치 필요).",showLinks:"링크 행 표시",showSteamOwned:"Steam 보유 표시",showSteamOwnedHint:"라이브러리에 있으면 “보유”를 표시합니다. 이 브라우저에서 Steam 로그인이 필요합니다.",showSteamWishlist:"Steam 위시리스트 상태 표시",showSteamWishlistHint:"위시리스트에 있으면 “위시리스트”를 표시합니다(보유 중이면 숨김). 이 브라우저에서 Steam 로그인이 필요합니다.",showSteamTags:"Steam 태그 표시",showSteamTagsHint:"Steam 스토어의 인기 커뮤니티 태그(Open World, RPG 등).",showSteamCategories:"Steam 카테고리 표시",showSteamCategoriesHint:"Steam 앱 상세의 스토어 카테고리(싱글플레이어, 멀티플레이어, Steam 도전 과제 등).",showSteamPageLink:"Steam에 Backloggd 버튼",showSteamPageLinkHint:"Steam 게임 페이지 Other site info에 SteamDB 스타일 버튼을 추가합니다.",showSteamDbPageLink:"SteamDB에 Backloggd 버튼",showSteamDbPageLinkHint:"SteamDB app-links에서 Store / IGDB 옆에 버튼을 추가합니다.",showSteamDbIcon:"제목 앞에 SteamDB 아이콘",showSteamDbIconHint:"SteamDB 페이지 헤더 앱 아이콘. 실패 시 Steam 캡슐.",showSteamDbCover:"Change cover 아래 SteamDB 로고",showSteamDbCoverHint:"커버 / Change cover 아래 SteamDB 커버 이미지.",showSteamDbGallery:"Steam 스크린샷 갤러리",showSteamDbGalleryHint:"통계 블록 아래 가로 스크린샷 스트립(Steam 스토어 에셋, SteamDB와 동일). 클릭하면 확대.",steamGalleryTitle:"스크린샷",steamGalleryOpen:"스크린샷 열기",steamGalleryClose:"닫기",steamGalleryPrev:"이전",steamGalleryNext:"다음",showSimilarGames:"유사 게임 표시",showSimilarGamesHint:"스크린샷 아래 유사 게임 스트립(Steam More Like This + 태그 일치 %). 카드는 Backloggd로 이동.",similarGamesTitle:"유사 게임",similarGamesMatch:"일치",similarGamesOpenSteam:"Steam에서 열기",showGameStats:"게임 통계 블록 표시",showGameStatsHint:"Backloggd 기본 Plays / Playing / Backlogs / Wishlists / Ratings 블록(#game-stats).",viewerZoomIn:"확대",viewerZoomOut:"축소",viewerZoomReset:"줌 초기화",viewerOf:"{current} / {total}",viewerOpenCover:"커버 열기",showSteamPlayers:"온라인 플레이어 수 표시",showSteamPlayersHint:"Steam GetNumberOfCurrentPlayers의 현재 플레이어 수.",showSteamDbDetails:"SteamDB 세부정보 표시",showSteamDbDetailsHint:"프랜차이즈와 지원 시스템은 Steam에서; 기술과 마지막 기록 업데이트는 SteamDB 접근 가능할 때.",showExport:"내보내기 버튼 표시",showExportHint:"게임 페이지와 로그 편집기에 내보내기 추가(Notion용 CSV / Markdown / JSON). 기본값은 끔.",showGameId:"게임 ID 표시",showGameIdHint:"제목 뒤에 Backloggd 게임 ID(#…)를 표시합니다. 클릭하면 숫자 ID를 복사합니다.",gameIdCopyLabel:"게임 ID 복사",showTranslate:"번역 사용",showTranslateHint:"게임 설명과 리뷰에 번역 버튼 표시(Google 번역).",translateTargetLocale:"대상 언어",translateTargetLocaleHint:'번역할 언어. "인터페이스와 동일"은 일반 → 인터페이스 언어를 따릅니다.',translateAsUi:"인터페이스와 동일",translateDisplayMode:"표시 모드",translateDisplayModeHint:"번역 버튼을 누른 뒤 표시 방식.",translateModeReplace:"텍스트 교체(원문 전환)",translateModeBelow:"원문 아래에 번역 표시",translateDescription:"게임 설명 번역",translateDescriptionHint:"게임 페이지 요약 옆 버튼.",translateReviews:"리뷰 번역",translateReviewsHint:"각 리뷰 카드의 버튼.",translateReviewsAuto:"리뷰 자동 번역",translateReviewsAutoHint:"리뷰가 화면에 보이면 자동으로 번역합니다. 기본값은 꺼짐.",translateButton:"번역",translateShowOriginal:"원문 보기",translateHide:"번역 숨기기",translateLoading:"번역 중…",translateError:"번역할 수 없음",translateResultLabel:"번역",showCardBadges:"커버 배지 표시",showCardBadgesHint:"커버 카드 배지 마스터 스위치. 끄면 모든 배지가 숨겨집니다.",cardGroupTypes:"배지 유형",cardGroupTypesHint:"커버 배지가 켜져 있을 때 표시할 칩.",showCardBadgePrice:"가격",showCardBadgePriceHint:"지역 Steam 스토어 가격(할인 시 특가).",showCardBadgeReview:"Steam 평가 %",showCardBadgeReviewHint:"Steam 긍정 평가 비율.",showCardBadgeOwned:"보유",showCardBadgeOwnedHint:"Steam 라이브러리에 있을 때 표시. 이 브라우저에서 Steam 로그인 필요.",showCardBadgeWishlist:"위시리스트",showCardBadgeWishlistHint:"Steam 위시리스트에 있을 때 표시(보유 시 숨김). Steam 로그인 필요.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Steam 매치가 있을 때 GameStatus.info 상태 칩.",steamBackloggdTooltip:"Backloggd에서 보기",steamDbBackloggdLabel:"Backloggd",steamOwned:"보유",steamWishlist:"위시리스트",steamFixMatch:"매치 수정",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"이 Backloggd 페이지의 자동 Steam 스토어 검색을 덮어씁니다. Steam URL의 숫자 App ID를 붙여넣으세요.",steamFixMatchPlaceholder:"예: 1245620",steamFixMatchClear:"자동 매치 사용",steamFixMatchInvalid:"유효한 숫자 Steam App ID를 입력하세요",steamMatchManual:"수동",steamMatchAuto:"자동",steamMatchLabel:"App {id} · {source}",sectionLinks:"빠른 링크",sectionLinksHint:"Links 행에 표시할 사이트를 선택합니다.",gameGroupSteam:"Steam",gameGroupScores:"점수 및 플레이 시간",gameGroupCompat:"호환성 및 상태",gameGroupMedia:"미디어 및 레이아웃",gameGroupTools:"도구",gameGroupHosts:"다른 사이트",gameGroupHostsHint:"Steam 및 SteamDB 게임 페이지의 Backloggd 버튼.",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 설정",cacheHours:"캐시 시간(시간)",cacheHoursHint:"Steam, GameStatus, 점수, 미디어, 유사 게임 조회 재사용 시간. 0은 해당 캐시 비활성. Steam 라이브러리/위시리스트, 태그 맵은 자체 짧은 TTL을 유지. 온라인 플레이어 수는 캐시하지 않음.",clearCache:"캐시 비우기",cacheCleared:"{count}개 항목 삭제됨",cacheEmpty:"지울 항목 없음 — 이미 비어 있음",cacheBarFull:"완전",cacheBarPartial:"부분",cacheBarFree:"여유",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"사용 중",cacheBarHint:"소프트 저장 한도. 완전 = 사용 가능한 조회, 부분 = 불완전하거나 만료됐지만 아직 남아 있는 항목.",cacheBarAria:"캐시 {pct}% 사용 — 완전 {full}, 부분 {partial}, 여유 {free}",cacheTabFillAria:"캐시 {pct}% 사용",cacheClearHint:"이 브라우저 프로필의 Steam / GameStatus 조회를 삭제합니다.",toastSettingsSaved:"페이지를 새로고침하면 설정이 적용됩니다.",toastCacheClearedOnUpdate:"v{version} — 조회 캐시가 지워짐",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchCleared:"자동 Steam 검색으로 복원됨",toastTitleSuccess:"성공",toastTitleError:"오류",toastTitleInfo:"정보",toastTitleWarning:"주의",toastDismiss:"닫기",toastSettingsSavedTitle:"설정 저장됨",toastCacheClearedTitle:"캐시 지움",cacheEmptyTitle:"캐시",toastCacheClearedOnUpdateTitle:"업데이트됨",toastSteamMatchSavedTitle:"매치 저장됨",toastSteamMatchClearedTitle:"매치 재설정",steamFixMatchInvalidTitle:"잘못된 App ID",exportFormatUnavailableTitle:"사용할 수 없음",toastExportDoneTitle:"내보내기 완료",toastExportCopiedTitle:"복사됨",toastExportCopyFailedTitle:"복사 실패",toastExportFailedTitle:"내보내기 실패",toastGameIdCopiedTitle:"게임 ID 복사됨",toastGameIdCopied:"{id}가 클립보드에 복사됨",on:"켜짐",off:"꺼짐",loading:"로딩 중…",notOnSteam:"Steam에서 찾을 수 없음",loadError:"Steam 데이터를 불러오지 못함",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"준비됨",gsPending:"대기",gsPartial:"부분",gsReleaseToday:"오늘 출시",gsUnknown:"알 수 없음",gsNotInDatabase:"데이터베이스 없음",reviews:"리뷰",price:"가격",free:"무료",discount:"-{n}%",steamUsFallback:"US 스토어로 찾음 ({cc} 검색 결과 없음)",recommendations:"추천 {n}",links:"링크",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"{date}까지",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}시간",hltbExtra:"Extra {n}시간",hltbComplete:"Complete {n}시간",players:"플레이어",playersOnline:"{n}명 플레이 중",franchise:"프랜차이즈",supportedSystems:"지원 시스템",technologies:"기술",lastRecordUpdate:"마지막 기록 업데이트",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB 차단됨",unifiedRatingTitle:"Plus 평점",unifiedRatingHint:"Steam, Metacritic, OpenCritic, Backloggd 평균",unifiedRatingOutOf:"/ 5",unifiedRatingSources:"출처 {n}개",unifiedRatingLoading:"평점 집계 중…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"내보내기",exportTitle:"게임 내보내기",exportHint:"이 게임을 Notion용 CSV, Markdown 또는 JSON으로 내보냅니다.",exportFormats:"내보내기 형식",exportAdvanced:"추가 설정",exportRatingFormat:"평점 형식",exportRatingText:"텍스트",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"숫자",exportRatingNumericHint:"5점 만점 (예: 4.5)",exportStatusFormat:"상태 형식",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Notion 게임 DB와 같은 열.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Notion 스타일: 제목 + 속성 줄.",exportFormatJson:"JSON",exportFormatJsonHint:"CSV와 같은 필드의 JSON.",exportDownload:"다운로드",exportCopy:"복사",exportSoon:"곧",exportNoRating:"평점 없음",exportPreviewTitle:"미리보기",exportPreviewDeveloper:"개발사",exportPreviewRelease:"출시",exportPreviewTime:"시간",exportPreviewFavorite:"즐겨찾기",exportPreviewTags:"태그",exportPreviewSource:"출처",exportPreviewRating:"평점",exportPreviewStatus:"상태",exportPreviewPlatform:"플랫폼",exportPreviewDlc:"DLC",exportPreviewDates:"날짜",exportFormatUnavailable:"아직 사용할 수 없는 형식입니다",toastExportDone:"{name}",toastExportCopied:"클립보드에 복사됨",toastExportCopyFailed:"클립보드에 복사할 수 없음",toastExportFailed:"파일을 만들 수 없음"},pl:{menuSettings:"Backloggd Plus — Ustawienia",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · oceny · Deck/Proton · HLTB · odznaki · linki",close:"Zamknij",cancel:"Anuluj",save:"Zapisz",saveReload:"Zapisz i przeładuj",repoLink:"GitHub",repoAbout:"Kod źródłowy, aktualizacje i zgłoszenia",sectionGame:"Strona gry",sectionLists:"Karta gry",sectionListsHint:"Odznaki na okładkach w browse, wyszukiwaniu, journal i Podobnych grach.",sectionGeneral:"Ogólne",sectionProfile:"Profil",sectionUi:"UI",generalGroupLanguage:"Język",generalGroupLanguageHint:"Język menu, ustawień i toastów Plus.",generalGroupInterface:"Interfejs",generalGroupInterfaceHint:"Opcjonalne poprawki wyglądu stron Backloggd.",profileGroupHover:"Karty po najechaniu",profileGroupHoverHint:"Mini profil z krótkimi informacjami po najechaniu na awatar.",profileGroupPage:"Strona profilu",profileGroupPageHint:"Styl według poziomu na stronach /u/… (te same rangi co karty).",profileGroupBlocks:"Bloki strony",profileGroupBlocksHint:"Które części profilu stylizować, gdy ulepszenie jest włączone.",sectionCache:"Cache",sectionDebug:"Debug",sectionAbout:"O skrypcie",sectionTranslate:"Tłumaczenie",aboutDescription:"Backloggd Plus to userscript, który wzbogaca Backloggd o dane Steam, oceny, Deck/Proton, HLTB, GameStatus, odznaki na okładkach, zrzuty ekranu, podobne gry i narzędzia QoL. Dodaje też przycisk Backloggd na stronach Steam i SteamDB.",aboutLicense:"Licencja MIT",aboutRepo:"Repozytorium GitHub",aboutAuthor:"Autor",aboutContributors:"Współtwórcy",aboutContributorsThanks:"Dziękujemy wszystkim, którzy pomagają ulepszać Backloggd Plus.",aboutBackloggd:"Profil Backloggd",aboutBackloggdHint:"@{user} na Backloggd",aboutBackloggdNote:"Śmiało dodaj mnie do znajomych, napisz lub podziel się opinią — zawsze chętnie pogadam.",aboutContribute:"Współtwórz",aboutContributeHint:"Open source — każdy może pomóc ulepszyć Backloggd.",aboutContributeBody:"Pomysły, zgłoszenia błędów, tłumaczenia i pull requesty są mile widziane. Każdy wkład pomaga społeczności.",aboutContributeCta:"Otwórz repozytorium",aboutContributeCtaHint:"Issues, PR i dyskusje na GitHubie",enhanceHeader:"Pływający nagłówek",enhanceHeaderHint:"Przyklejony szklany pasek nawigacji nad stroną; przy przewijaniu lekko się zagęszcza.",hideHomepageFuse:"Ukryj sloty reklamowe Fuse",hideHomepageFuseHint:"Ukrywa puste wiersze Fuse / incontent (strona główna, recenzje gry itd.).",showUserMiniProfile:"Mini profil użytkownika",showUserMiniProfileHint:"Karta z krótkimi informacjami po najechaniu na awatar. Poziom rośnie wraz z liczbą gier (25+ brąz … 1000+ legenda).",preloadUserMiniProfile:"Wczytuj w obszarze widoczności",preloadUserMiniProfileHint:"Pobiera dane mini profilu awatarów w polu widzenia, by karta otwierała się od razu.",showProfilePage:"Ulepsz stronę profilu",showProfilePageHint:"Stosuje styl poziomu do strony profilu. Poszczególne bloki można wyłączyć poniżej.",showProfileHeader:"Nagłówek i awatar",showProfileHeaderHint:"Gradient nagłówka i kolorowa ramka awatara według poziomu.",showProfileTierChip:"Chip poziomu",showProfileTierChipHint:"Pastylka przy nazwie z postępem do kolejnego poziomu.",showProfileStats:"Wiersz statystyk",showProfileStatsHint:"Akcent poziomu przy Games Played / Backlog / This Year.",showProfileNav:"Nawigacja profilu",showProfileNavHint:"Zakładki Profile / Games / … jako pasek pastylek poziomu.",showProfileFavorites:"Ulubione gry",showProfileFavoritesHint:"Ramki rang i unoszenie przy najechaniu na Favorite Games.",showProfileMenuSettings:"Ustawienia Plus w menu profilu",showProfileMenuSettingsHint:"Dodaje pozycję Plus w menu konta (obok Settings) i ukrywa przycisk Plus w nagłówku.",miniProfilePlayed:"Zagrane",miniProfileBacklog:"Backlog",miniProfileThisYear:"W tym roku",miniProfileFavorites:"Ulubione",miniProfileRecent:"Ostatnie",miniProfileBadges:"Odznaki",miniProfileAvgRating:"Średnia ocena",miniProfileViewProfile:"Zobacz profil",miniProfileLoading:"Ładowanie profilu…",miniProfileError:"Nie udało się wczytać profilu",miniProfileTierSub:"{count} gier zagranych",miniProfileTierRookie:"Nowicjusz",miniProfileTierBronze:"Brąz",miniProfileTierSilver:"Srebro",miniProfileTierGold:"Złoto",miniProfileTierPlatinum:"Platyna",miniProfileTierDiamond:"Diament",miniProfileTierMaster:"Mistrz",miniProfileTierLegend:"Legenda",profileTierProgress:"{n} do {tier}",profileTierMax:"Maksymalny poziom",debugMode:"Tryb debug",debugModeHint:"Panel debug ze źródłami i dumpem. Wiersze wzbogacenia: kreskowanie + badge Cache/Sieć.",debugCacheHit:"Cache",debugCacheMiss:"Sieć",debugCacheMixed:"Mieszane",debugCacheNa:"Pochodne",debugReason:"Powód",debugResponse:"Odpowiedź",debugPanelTitle:"Debug",debugSources:"Źródła",debugDump:"Pełny dump",debugSectionPage:"Strona",debugSectionSteam:"Steam",debugSectionSteamDb:"SteamDB / gracze",debugSectionGameStatus:"GameStatus",debugOwned:"Posiadane",debugSrcRequest:"żądanie",debugSrcBackloggd:"Bieżąca strona gry na Backloggd",debugSrcIgdb:"Slug gry / wiersz Links (IGDB)",debugSrcMetacritic:"Wiersz Links — URL Metacritic (po slugu)",debugSrcSteamStore:"Strona Steam — Links + link w wierszu Steam",debugSrcSteamDb:"Wiersz Links — strona aplikacji SteamDB",debugSrcSteamDbCharts:"SteamDB charts (referencja; bez scrapowania)",debugSrcSteamDbInfo:"SteamDB info (referencja; bez scrapowania)",debugSrcSteamTiny:"Mała kapsuła — fallback ikony",debugSrcSteamHeader:"Obraz header z appdetails",debugSrcSteamSearch:"storesearch — rozwiązanie Steam App ID",debugSrcSteamDetails:"appdetails — cena, free, Metacritic, header",debugSrcSteamReviews:"appreviews — podsumowanie recenzji dla Steam",debugSrcSteamTags:"GetItems — popularne tagi dla Steam",debugSrcSteamTagMap:"populartags — mapa id → nazwa",debugSrcSteamOwned:"dynamicstore/userdata — sprawdzenie biblioteki",debugSrcSteamDbPage:"HTML SteamDB — ikona, logo, gracze",debugSrcSteamPlayersApi:"GetNumberOfCurrentPlayers — fallback graczy",debugSrcIcon:"Ikona tytułu (SteamDB / CDN)",debugSrcLogo:"Logo okładki pod Change cover",debugSrcGameStatusApi:"API GameStatus — status",debugSrcGameStatusPage:"Strona GameStatus dla znalezionego sluga",uiLanguage:"Język interfejsu",uiLanguageHint:"Auto podąża za językiem przeglądarki. Działa po przeładowaniu.",uiLanguageAuto:"Auto (przeglądarka)",steamCountry:"Region Steam Store",steamCountryHint:"Wpływa na walutę ceny z API Steam Store.",showPriceConvert:"Show converted price",showPriceConvertHint:"After the Steam store price, show an approximate amount in another currency (mid-market FX, not a second Steam region). Example: 1 400 ₸ ~ 560 ₽. On sale, a smaller strikethrough amount to the right is the pre-discount convert.",convertCurrency:"Convert prices to",convertCurrencyHint:"Used only when “Show converted price” is on and the store currency differs from the target.",showSteam:"Pokaż cenę i opinie Steam",showMetacritic:"Pokaż wynik Metacritic",showOpenCritic:"Pokaż wynik OpenCritic",showOpenCriticHint:"Odznaka tier OpenCritic (wyszukiwanie po tytule).",showHltb:"Pokaż czasy HowLongToBeat",showHltbHint:"Godziny Main / Extra / Complete z HowLongToBeat.",showDeckProton:"Pokaż Steam Deck i ProtonDB",showDeckProtonHint:"Verified/Playable Steam Deck oraz poziom ProtonDB (wymaga Steam App ID).",showGameStatus:"Pokaż status GameStatus",showGameStatusHint:"Status z GameStatus.info (wymaga dopasowania Steam).",showLinks:"Pokaż wiersz linków",showSteamOwned:"Pokaż status posiadania Steam",showSteamOwnedHint:"Pokazuje „Posiadane”, jeśli gra jest w bibliotece Steam. Wymaga zalogowania do Steam w tej przeglądarce.",showSteamWishlist:"Pokaż status wishlisty Steam",showSteamWishlistHint:"Pokazuje „Wishlist”, jeśli gra jest na liście życzeń Steam (ukryte, gdy już posiadane). Wymaga logowania Steam.",showSteamTags:"Pokaż tagi Steam",showSteamTagsHint:"Popularne tagi społeczności ze Steam Store (Open World, RPG, …).",showSteamCategories:"Pokaż kategorie Steam",showSteamCategoriesHint:"Kategorie ze szczegółów aplikacji Steam (Single-player, Multi-player, Steam Achievements, …).",showSteamPageLink:"Przycisk Backloggd na Steam",showSteamPageLinkHint:"Dodaje przycisk w stylu SteamDB w Other site info na stronach Steam.",showSteamDbPageLink:"Przycisk Backloggd na SteamDB",showSteamDbPageLinkHint:"Dodaje przycisk obok Store / IGDB w app-links na SteamDB.",showSteamDbIcon:"Ikona SteamDB przed tytułem",showSteamDbIconHint:"Ikona aplikacji z nagłówka SteamDB; zapasowo kapsuła Steam.",showSteamDbCover:"Logo SteamDB pod Change cover",showSteamDbCoverHint:"Okładka ze SteamDB pod okładką / Change cover.",showSteamDbGallery:"Galeria screenshotów Steam",showSteamDbGalleryHint:"Poziomy pasek screenshotów po statystykach (assetty Steam Store, jak na SteamDB). Kliknij, by powiększyć.",steamGalleryTitle:"Screenshoty",steamGalleryOpen:"Otwórz screenshot",steamGalleryClose:"Zamknij",steamGalleryPrev:"Poprzedni",steamGalleryNext:"Następny",showSimilarGames:"Pokaż podobne gry",showSimilarGamesHint:"Pasek podobnych gier pod screenshotami (Steam More Like This + % zgodności tagów). Karty prowadzą do Backloggd.",similarGamesTitle:"Podobne gry",similarGamesMatch:"Podobieństwo",similarGamesOpenSteam:"Otwórz w Steam",showGameStats:"Pokaż blok statystyk gry",showGameStatsHint:"Natywny blok Backloggd: Plays, Playing, Backlogs, Wishlists i Ratings (#game-stats).",viewerZoomIn:"Powiększ",viewerZoomOut:"Pomniejsz",viewerZoomReset:"Resetuj zoom",viewerOf:"{current} / {total}",viewerOpenCover:"Otwórz okładkę",showSteamPlayers:"Pokaż graczy online",showSteamPlayersHint:"Bieżąca liczba graczy z Steam GetNumberOfCurrentPlayers.",showSteamDbDetails:"Pokaż szczegóły SteamDB",showSteamDbDetailsHint:"Franczyza i systemy ze Steam; technologie i ostatnia aktualizacja rekordu ze SteamDB, gdy dostępne.",showExport:"Pokaż przycisk eksportu",showExportHint:"Dodaje Eksport na stronie gry i w edytorze logu (CSV / Markdown / JSON do Notion). Domyślnie wyłączone.",showGameId:"Pokaż ID gry",showGameIdHint:"Pokazuje ID gry Backloggd (#…) po tytule. Kliknięcie kopiuje numeryczne ID.",gameIdCopyLabel:"Kopiuj ID gry",showTranslate:"Włącz tłumaczenie",showTranslateHint:"Przyciski „Przetłumacz” przy opisach i recenzjach (Google Translate).",translateTargetLocale:"Język docelowy",translateTargetLocaleHint:"Język tłumaczenia. „Jak interfejs” podąża za Ogólne → Język interfejsu.",translateAsUi:"Jak interfejs",translateDisplayMode:"Tryb wyświetlania",translateDisplayModeHint:"Jak pokazać tłumaczenie po kliknięciu Przetłumacz.",translateModeReplace:"Zastąp tekst (przełącz oryginał)",translateModeBelow:"Pokaż tłumaczenie pod oryginałem",translateDescription:"Tłumacz opis gry",translateDescriptionHint:"Przycisk obok opisu na stronie gry.",translateReviews:"Tłumacz recenzje",translateReviewsHint:"Przycisk na każdej karcie recenzji.",translateReviewsAuto:"Automatyczne tłumaczenie recenzji",translateReviewsAutoHint:"Gdy recenzja wejdzie w pole widzenia, tłumacz ją automatycznie. Domyślnie wyłączone.",translateButton:"Przetłumacz",translateShowOriginal:"Pokaż oryginał",translateHide:"Ukryj tłumaczenie",translateLoading:"Tłumaczenie…",translateError:"Nie udało się przetłumaczyć",translateResultLabel:"Tłumaczenie",showCardBadges:"Pokaż odznaki na okładkach",showCardBadgesHint:"Główny przełącznik chipów na kartach okładek. Off ukrywa wszystkie.",cardGroupTypes:"Typy odznak",cardGroupTypesHint:"Które chipy widać, gdy odznaki na okładkach są włączone.",showCardBadgePrice:"Cena",showCardBadgePriceHint:"Cena Steam Store w Twoim regionie (cena promocyjna przy zniżce).",showCardBadgeReview:"% recenzji Steam",showCardBadgeReviewHint:"Procent pozytywnych recenzji na Steam.",showCardBadgeOwned:"Posiadane",showCardBadgeOwnedHint:"Pokazuje, gdy gra jest w bibliotece Steam. Wymaga logowania Steam w tej przeglądarce.",showCardBadgeWishlist:"Wishlist",showCardBadgeWishlistHint:"Pokazuje, gdy gra jest na wishlist Steam (ukryte, jeśli już posiadana). Wymaga logowania Steam.",showCardBadgeGameStatus:"GameStatus",showCardBadgeGameStatusHint:"Chip statusu z GameStatus.info przy dopasowaniu Steam.",steamBackloggdTooltip:"Zobacz na Backloggd",steamDbBackloggdLabel:"Backloggd",steamOwned:"Posiadane",steamWishlist:"Wishlist",steamFixMatch:"Popraw dopasowanie",steamFixMatchTitle:"Steam App ID",steamFixMatchHint:"Nadpisuje automatyczne wyszukiwanie Steam Store dla tej strony Backloggd. Wklej liczbowe App ID z URL Steam.",steamFixMatchPlaceholder:"np. 1245620",steamFixMatchClear:"Użyj automatycznego dopasowania",steamFixMatchInvalid:"Podaj prawidłowe liczbowe Steam App ID",steamMatchManual:"ręcznie",steamMatchAuto:"auto",steamMatchLabel:"App {id} · {source}",sectionLinks:"Szybkie linki",sectionLinksHint:"Wybierz witryny widoczne w wierszu Links.",gameGroupSteam:"Steam",gameGroupScores:"Oceny i czas gry",gameGroupCompat:"Kompatybilność i status",gameGroupMedia:"Media i układ",gameGroupTools:"Narzędzia",gameGroupHosts:"Inne strony",gameGroupHostsHint:"Przyciski Backloggd na stronach Steam i SteamDB.",navSettings:"Plus",navSettingsTitle:"Ustawienia Backloggd Plus",cacheHours:"Czas cache (godziny)",cacheHoursHint:"Jak długo ponownie używać zapytań Steam, GameStatus, ocen, mediów i podobnych gier. 0 wyłącza ten cache. Biblioteka/wishlist Steam i mapa tagów zachowują własne krótkie TTL. Gracze online nigdy nie są cache’owani.",clearCache:"Wyczyść cache",cacheCleared:"Usunięto wpisów: {count}",cacheEmpty:"Nie ma czego czyścić — cache jest pusty",cacheBarFull:"Pełny",cacheBarPartial:"Częściowy",cacheBarFree:"Wolne",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"zajęte",cacheBarHint:"Miękki limit pamięci. Pełny = użyteczne wpisy; częściowy = niekompletne lub wygasłe, nadal zapisane.",cacheBarAria:"Cache zapełniony w {pct}% — {full} pełny, {partial} częściowy, {free} wolne",cacheTabFillAria:"Cache zapełniony w {pct}%",cacheClearHint:"Usuwa zapisane zapytania Steam / GameStatus z tego profilu.",toastSettingsSaved:"Preferencje zostaną zastosowane po przeładowaniu strony.",toastCacheClearedOnUpdate:"v{version} — cache zapytań wyczyszczony",toastSteamMatchSaved:"Steam App ID: {id}",toastSteamMatchCleared:"Ponownie używane jest automatyczne wyszukiwanie Steam",toastTitleSuccess:"Gotowe",toastTitleError:"Błąd",toastTitleInfo:"Info",toastTitleWarning:"Uwaga",toastDismiss:"Zamknij",toastSettingsSavedTitle:"Ustawienia zapisane",toastCacheClearedTitle:"Cache wyczyszczony",cacheEmptyTitle:"Cache",toastCacheClearedOnUpdateTitle:"Zaktualizowano",toastSteamMatchSavedTitle:"Dopasowanie zapisane",toastSteamMatchClearedTitle:"Dopasowanie zresetowane",steamFixMatchInvalidTitle:"Nieprawidłowe App ID",exportFormatUnavailableTitle:"Niedostępne",toastExportDoneTitle:"Wyeksportowano",toastExportCopiedTitle:"Skopiowano",toastExportCopyFailedTitle:"Kopiowanie nieudane",toastExportFailedTitle:"Eksport nieudany",toastGameIdCopiedTitle:"ID skopiowane",toastGameIdCopied:"{id} skopiowane do schowka",on:"WŁ",off:"WYŁ",loading:"Ładowanie…",notOnSteam:"Nie znaleziono na Steam",loadError:"Nie udało się wczytać danych Steam",steam:"Steam",metacritic:"Metacritic",gameStatus:"GameStatus",gsReady:"Gotowe",gsPending:"Oczekuje",gsPartial:"Częściowo",gsReleaseToday:"Premiera dziś",gsUnknown:"Nieznany",gsNotInDatabase:"Brak w bazie",reviews:"Opinie",price:"Cena",free:"Za darmo",discount:"-{n}%",steamUsFallback:"Znaleziono przez sklep US (wyszukiwanie {cc} bez wyników)",recommendations:"{n} rekomendacji",links:"Linki",linkIgdb:"IGDB",linkSteam:"Steam",linkSteamDb:"SteamDB",linkMetacritic:"Metacritic",linkOpencritic:"OpenCritic",linkHltb:"HLTB",discountEnds:"do {date}",linkPcgamingwiki:"PCGamingWiki",linkItad:"IsThereAnyDeal",linkGogdb:"GOG DB",linkGameslike:"GamesLike",openCritic:"OpenCritic",hltb:"HLTB",deckProton:"Deck / Proton",deckVerified:"Verified",deckPlayable:"Playable",deckUnsupported:"Unsupported",deckUnknown:"Unknown",protonTier:"ProtonDB {tier}",hltbMain:"Main {n}h",hltbExtra:"Extra {n}h",hltbComplete:"Complete {n}h",players:"Gracze",playersOnline:"{n} gra",franchise:"Franczyza",supportedSystems:"Obsługiwane systemy",technologies:"Technologie",lastRecordUpdate:"Ostatnia aktualizacja rekordu",steamDeckStatus:"Steam Deck: {status}",steamDbBlocked:"SteamDB zablokowane",unifiedRatingTitle:"Ocena Plus",unifiedRatingHint:"Średnia Steam, Metacritic, OpenCritic i Backloggd",unifiedRatingOutOf:"z 5",unifiedRatingSources:"{n} źródeł",unifiedRatingLoading:"Zbieranie ocen…",unifiedRatingSteam:"Steam",unifiedRatingMetacritic:"Metacritic",unifiedRatingOpenCritic:"OpenCritic",unifiedRatingBackloggd:"Backloggd",unifiedRatingMissing:"—",exportButton:"Eksport",exportTitle:"Eksportuj grę",exportHint:"Eksportuj tę grę jako CSV, Markdown lub JSON do Notion.",exportFormats:"Format eksportu",exportAdvanced:"Dodatkowe ustawienia",exportRatingFormat:"Format oceny",exportRatingText:"Tekst",exportRatingTextHint:"2.5★ Normal · 3★ Good · 3.5★ Great · 4★ Excellent · 5★ Amazing",exportRatingNumeric:"Liczba",exportRatingNumericHint:"Gwiazdki na 5 (np. 4.5)",exportStatusFormat:"Format statusu",exportStatusNotion:"Notion",exportStatusNotionHint:"Not started · Planned · Deferred · In progress · Dropped · Tried · Done",exportStatusOriginal:"Backloggd",exportStatusOriginalHint:"Wishlist · Backlog · Playing · Played · Shelved · Abandoned · Retired",exportFormatCsv:"CSV",exportFormatCsvHint:"Kolumny jak w bazie Notion.",exportFormatMarkdown:"Markdown",exportFormatMarkdownHint:"Strona Notion: tytuł + właściwości.",exportFormatJson:"JSON",exportFormatJsonHint:"Te same pola co CSV, w JSON.",exportDownload:"Pobierz",exportCopy:"Kopiuj",exportSoon:"Wkrótce",exportNoRating:"Brak oceny",exportPreviewTitle:"Podgląd",exportPreviewDeveloper:"Deweloper",exportPreviewRelease:"Premiera",exportPreviewTime:"Czas",exportPreviewFavorite:"Ulubione",exportPreviewTags:"Tagi",exportPreviewSource:"Źródło",exportPreviewRating:"Ocena",exportPreviewStatus:"Status",exportPreviewPlatform:"Platforma",exportPreviewDlc:"DLC",exportPreviewDates:"Daty",exportFormatUnavailable:"Ten format nie jest jeszcze dostępny",toastExportDone:"{name}",toastExportCopied:"Treść skopiowana do schowka",toastExportCopyFailed:"Nie udało się skopiować do schowka",toastExportFailed:"Nie udało się utworzyć pliku"}},J=["en","ru","zh","es","pt","de","fr","ja","ko","pl"],K={en:"English",ru:"Русский",zh:"中文",es:"Español",pt:"Português",de:"Deutsch",fr:"Français",ja:"日本語",ko:"한국어",pl:"Polski"},Z={en:"🇺🇸",ru:"🇷🇺",zh:"🇨🇳",es:"🇪🇸",pt:"🇧🇷",de:"🇩🇪",fr:"🇫🇷",ja:"🇯🇵",ko:"🇰🇷",pl:"🇵🇱"};function Y(e){const t=e||"auto";return "auto"!==t&&J.includes(t)?t:function(){const e=String(navigator.language||"en").toLowerCase().slice(0,2);return J.includes(e)?e:"en"}()}function Q(e,t){return String(e).replace(/\{(\w+)\}/g,(e,a)=>null==t[a]?"":String(t[a]))}const X=["showProfilePage","showProfileHeader","showProfileTierChip","showProfileStats","showProfileNav","showProfileFavorites"];function ee(){try{const t=e(s,null);return t&&"object"==typeof t?function(e,t){if(!("showProfilePage"in e)&&!1===e.showUserMiniProfile)for(const a of X)t[a]=!1;return t}(t,{...W,...t,links:{...W.links,...t.links||{}}}):{...W,links:{...W.links}}}catch(t){return {...W,links:{...W.links}}}}let te=ee(),ae=Y(te.uiLocale),ne=V[ae]||V.en,ie=null,re=0;const oe=new Map,se=new Set;function le(){te=ee(),ae=Y(te.uiLocale),ne=V[ae]||V.en;}function ce(e){ie=e;}function ue(e){re=e;}function de(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function me(e){return de(e)}const pe=new Set([N,O]);function ge(){if(ie)return ie;try{const t=e(l,null);ce(t&&"object"==typeof t?t:{});}catch(t){ce({});}return ie}function he(){clearTimeout(re),ue(setTimeout(()=>{try{_e(),Me(),a(l,ge());}catch(e){}},400));}function be(){const e=Number(te.cacheHours);return !Number.isFinite(e)||e<=0?0:3600*Math.min(e,168)*1e3}function Se(e){return e===O||e===N}function fe(e,t){if(!(null==t?void 0:t.ts))return true;const a=function(e,t){if(Number(null==t?void 0:t.ttlMs)>0)return Number(t.ttlMs);if(e===O)return F;if(e===N){const e=null==t?void 0:t.data;return function(e){if(e)return 3e5;const t=be();return t>0?t:36e5}(!(e&&(Array.isArray(e.appIds)&&0!==e.appIds.length||Array.isArray(e.wishlistAppIds)&&0!==e.wishlistAppIds.length)))}return be()}(e,t);return !a||Date.now()-t.ts>a}function ve(e){e&&"object"==typeof e&&(e.at=Date.now());}function we(e){if(!Se(e)&&!be())return null;const t=ge()[e];return (null==t?void 0:t.ts)?fe(e,t)?null:(ve(t),t.data):null}function ye(e,t,a){const n=Number(null==a?void 0:a.ttlMs),i=Number.isFinite(n)&&n>0;if(!Se(e)&&!i&&!be())return;const r=Date.now(),o={ts:r,at:r,data:t};i?o.ttlMs=n:e===O&&(o.ttlMs=F),ge()[e]=o,he();}function ke(e){return null==e||"object"!=typeof e?e:Array.isArray(e)?Object.assign(e.slice(),{_cache:"hit"}):{...e,_cache:"hit"}}function Pe(e){return null==e||"object"!=typeof e?e:Array.isArray(e)?Object.assign(e.slice(),{_cache:"miss"}):{...e,_cache:"miss"}}function Ce(e){const t=null==e?void 0:e._cache;return "hit"===t||"miss"===t||"mixed"===t||"na"===t?t:null}function Be(...e){const t=e.map(e=>"string"==typeof e?e:Ce(e)).filter(e=>e&&"na"!==e);if(!t.length)return "na";const a=t.some(e=>"hit"===e||"mixed"===e),n=t.some(e=>"miss"===e||"mixed"===e);return a&&n||t.includes("mixed")?"mixed":a?"hit":"miss"}function xe(e){if(!e||"object"!=typeof e||Array.isArray(e))return e;const{_debug:t,_cache:a,...n}=e;return n}function De(){try{const t=e(u,null);return t&&"object"==typeof t?t:{}}catch(t){return {}}}function He(e){const t=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!t)return null;const a=Number(De()[t]);return Number.isFinite(a)&&a>0?a:null}function Te(e,t){const n=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!n)return;const i=Number(t),r=De();Number.isFinite(i)&&i>0?r[n]=i:delete r[n],function(e){try{a(u,e&&"object"==typeof e?e:{});}catch(t){}}(r),se.clear();}function Ae(e,t){if(fe(e,t))return true;if(!function(e){return e.startsWith("steam:id:")||/^steam:[A-Z]{2}:/.test(e)}(e))return false;const a=null==t?void 0:t.data;return !(null==a?void 0:a.found)||true!==a.tagsLoaded}function Ge(e,t){try{const a=JSON.stringify(t);if("undefined"!=typeof TextEncoder){const t=new TextEncoder;return t.encode(String(e)).length+t.encode(a).length}return String(e).length+String(a).length}catch(a){return 0}}function _e(){const e=ge();let t=0;for(const a of Object.keys(e))fe(a,e[a])&&(delete e[a],t+=1);return t}function Me(){const e=ge();let t=0;const a=[];for(const i of Object.keys(e)){const n=e[i],r=Ge(i,n);t+=r,pe.has(i)||a.push({key:i,bytes:r,at:Number((null==n?void 0:n.at)||(null==n?void 0:n.ts))||0});}if(t<=k)return 0;a.sort((e,t)=>e.at-t.at);let n=0;for(const i of a){if(t<=k)break;delete e[i.key],t-=i.bytes,n+=1;}return n}function Le(e){const t=Math.max(0,Number(e)||0);return t<1024?`${Math.round(t)} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1048576).toFixed(2)} MB`}function $e(){const e=ge();let t=0,a=0,n=0,i=0;for(const s of Object.keys(e)){const r=e[s],o=Ge(s,r);Ae(s,r)?(a+=o,i+=1):(t+=o,n+=1);}const r=t+a,o=k;return {fullBytes:t,partialBytes:a,freeBytes:Math.max(0,o-r),usedBytes:r,limitBytes:o,fullCount:n,partialCount:i,totalCount:n+i}}function Ie(e,t){return t?Math.max(0,Math.min(100,e/t*100)):0}function Re(e){const t=e||$e();return Math.round(Ie(t.usedBytes,t.limitBytes))}function Ee(e){const t=Math.max(0,Math.min(100,Number(e)||0));return t>=90?"high":t>=70?"mid":"low"}function Ne(e){const t=Re(e||$e()),a=Ee(t),n=Q(ne.cacheBarPct,{pct:t});return `${de(n)}`}function Oe(e){const t=e||$e(),a=Math.max(t.usedBytes,t.limitBytes,1),n=Ie(t.fullBytes,a),i=Ie(t.partialBytes,a),r=Ie(t.freeBytes,a),o=Re(t),s=Ee(o),l=Q(ne.cacheBarPct,{pct:o}),c=Q(ne.cacheBarAria,{pct:o,full:Le(t.fullBytes),partial:Le(t.partialBytes),free:Le(t.freeBytes)}),u=Q(ne.cacheBarLegend,{label:ne.cacheBarFull,count:t.fullCount,size:Le(t.fullBytes)}),d=Q(ne.cacheBarLegend,{label:ne.cacheBarPartial,count:t.partialCount,size:Le(t.partialBytes)}),m=`${ne.cacheBarFree}: ${Le(t.freeBytes)}`;return `\n
\n
\n
\n ${de(l)}\n ${de(ne.cacheBarFilled)}\n
\n ${de(Q(ne.cacheBarUsed,{used:Le(t.usedBytes),limit:Le(t.limitBytes)}))}\n
\n \n \n

${de(ne.cacheBarHint)}

\n
\n `}function Fe(){const e=$e().totalCount;clearTimeout(re),ue(0),ce({});try{a(l,{});}catch(t){}return e}function ze(e){return new Promise((t,a)=>{const i={method:e.method||"GET",url:e.url,headers:e.headers||{},responseType:e.responseType||"json",timeout:e.timeout||2e4,onload(n){if(e.allow404&&404===n.status)t(null);else if(n.status>=200&&n.status<300){const a=e.responseType||"json";if("text"===a)t(null!=n.responseText&&""!==n.responseText?n.responseText:n.response);else if("json"===a){if(null!=n.response&&"object"==typeof n.response)return void t(n.response);const e=n.responseText;if("string"==typeof e&&e.trim())try{return void t(JSON.parse(e))}catch(i){}t(n.response);}else t(n.response);}else a(new Error(`HTTP ${n.status}`));},onerror:()=>a(new Error("Network error")),ontimeout:()=>a(new Error("Timeout"))};"boolean"==typeof e.anonymous&&(i.anonymous=e.anonymous),null!=e.data&&(i.data="string"==typeof e.data?e.data:JSON.stringify(e.data)),n(i);})}const Ue=["RUB","USD","EUR","KZT","UAH","GBP","TRY","CNY","PLN","BRL","JPY","KRW"],qe=["https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies","https://latest.currency-api.pages.dev/v1/currencies"],je={KZT:"₸",RUB:"₽",USD:"$",EUR:"€",UAH:"₴",GBP:"£",TRY:"₺",CNY:"¥",PLN:"zł",BRL:"R$",JPY:"¥",KRW:"₩"};function We(e){return String(e||"").trim().toUpperCase()}async function Ve(e,t,a){const n=We(t),i=We(a);if(!n||!i||n===i)return null;if(!Number.isFinite(Number(e)))return null;const r=await async function(e,t){const a=We(e),n=We(t);if(!a||!n)return null;if(a===n)return 1;const i=function(e,t){return `fx:${We(e)}:${We(t)}`}(a,n),r=we(i);if(r&&Number.isFinite(Number(r.rate))&&Number(r.rate)>0)return Number(r.rate);if(oe.has(i))return oe.get(i);const o=(async()=>{var e;const t=a.toLowerCase(),r=n.toLowerCase();let o=null;for(const l of qe)try{const s=`${l}/${t}.min.json`,c=await ze({url:s,responseType:"json",timeout:15e3,anonymous:!0}),u=c&&(c[t]||c[a]||c),d=u&&(null!=(e=u[r])?e:u[n]);if(Number.isFinite(Number(d))&&Number(d)>0){const e=Number(d);return ye(i,{rate:e,date:(null==c?void 0:c.date)||null,from:a,to:n},{ttlMs:432e5}),e}o=new Error(`No rate ${a}->${n}`);}catch(s){o=s;}return o&&console.warn("BLP FX:",o.message||o),null})();oe.set(i,o);try{return await o}finally{oe.delete(i);}}(n,i);return r?function(e,t){const a=We(t);if(!Number.isFinite(e)||!a)return null;const n=new Set(["JPY","KRW","VND","CLP"]),i=n.has(a)?0:2;let r;try{r=new Intl.NumberFormat(void 0,{maximumFractionDigits:i,minimumFractionDigits:0}).format(n.has(a)?Math.round(e):e);}catch(s){r=n.has(a)?String(Math.round(e)):e.toFixed(2);}const o=je[a]||a;return "$"===o||"€"===o||"£"===o||"¥"===o||"₩"===o?`${o}${r}`:`${r} ${o}`}(Number(e)/100*r,i):null}async function Je(e,t){if(!e)return null;const a=await Ve(e.final,e.currency,t);if(!a)return null;let n=null;return Number(e.discount_percent)>0&&Number.isFinite(Number(e.initial))&&Number(e.initial)>Number(e.final)&&(n=await Ve(e.initial,e.currency,t)),{now:a,was:n}}function Ke(e){return String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[™®©'’":]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-")}function Ze(e){return `https://gamestatus.info/back/api/gameinfo/game/${encodeURIComponent(e)}/`}async function Ye(e,t){var a;const n=await ze({url:Ze(e),allow404:true,headers:{Accept:"application/json","Accept-Language":"zh"===ae?"zh-CN":"pt"===ae?"pt-BR":"en"===ae?"en-US":ae||"en-US"},timeout:15e3});if(!n)return {data:null,match:false,outcome:"404"};const i=function(e,t){return !(!e||e.steam_prod_id&&String(e.steam_prod_id)!==String(t))}(n,t);return {data:n,match:i,outcome:i?"match":"steam_prod_id_mismatch",steam_prod_id:null!=(a=n.steam_prod_id)?a:null,readable_status:n.readable_status||null,title:n.title||null,slug:n.slug||e}}async function Qe({appId:e,storeUrl:t,name:a,title:n,pageSlug:i}){if(!e)return {missing:true,data:null,slug:null,_debug:{reason:"No Steam appId — GameStatus skipped",appId:null},_cache:"na"};const r=`gs:${e}`,o=we(r);if(o)return ke(o);if(oe.has(r))return oe.get(r);const s=(async()=>{var o;const s=function({storeUrl:e,name:t,title:a,pageSlug:n}){const i=[],r=e=>{e&&function(e){if(!e||e.length<2)return false;if(!/[a-z]/.test(e))return false;if(z.test(e))return false;if(/^\d+(-\d+)+$/.test(e))return false;const t=e.split("-").filter(Boolean);return !!t.length&&!t.every(e=>/^\d+$/.test(e))&&t.filter(e=>/^\d+$/.test(e)).length/t.length<=.5}(e)&&!i.includes(e)&&i.push(e);},o=e=>{const t=String(e||"").replace(/\s+/g," ").trim();t&&(r(Ke(t)),r(Ke(t.replace(/\s*[-–—:|].*$/,""))));};return r(function(e){const t=String(e||"").replace(/^\/+|\/+$/g,"");return /--1$/i.test(t)?Ke(t.replace(/--1$/i,"-remake")):null}(n)),r(function(e){const t=String(e||"").match(/\/app\/\d+\/([^/?#]+)/i);return t?Ke(t[1].replace(/_/g,"-")):null}(e)),o(t),o(a),r(Ke(n)),i}({storeUrl:t,name:a,title:n,pageSlug:i}),l=s.slice(0,2),c={appId:e,cacheKey:r,cacheSkipped:false,candidates:s,tried:l,attempts:[]};for(const t of l)try{const a=await Ye(t,e);if(c.attempts.push({slug:t,url:Ze(t),outcome:a.outcome,steam_prod_id:a.steam_prod_id,title:a.title,readable_status:a.readable_status}),a.match&&a.data){c.reason=`Matched slug "${a.slug||t}" (steam_prod_id=${null!=(o=a.steam_prod_id)?o:"empty"})`;const e={missing:!1,data:a.data,slug:a.data.slug||t,_debug:c};return ye(r,xe(e)),Pe(e)}}catch(u){c.attempts.push({slug:t,url:Ze(t),outcome:"error",error:String((null==u?void 0:u.message)||u)});}return c.reason=l.length?"No GameStatus match for tried slugs":"No valid GameStatus slug candidates",Pe({missing:true,data:null,slug:l[0]||null,_debug:c})})();oe.set(r,s);try{return await s}finally{oe.delete(r);}}function Xe(e){if(!e)return "missing";const t=String(e.readable_status||"").toLowerCase(),a=String(e.hacked_groups_en||e.hacked_groups||"").toLowerCase();return /release today|релиз сегодня|выходит сегодня/.test(t)?"release-today":/bypass|обход|hypervisor/.test(a)||/bypass|обход/.test(t)?"partial":/not cracked|не взлом|не взломан|unbroken|unreleased crack/.test(t)?function(e){const t=function(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}(e.release_date);if(!t)return "pending-recent";const a=new Date;return a.setMonth(a.getMonth()-1),t>a?"pending-recent":"pending-old"}(e):e.crack_date||/cracked|взлом/.test(t)?"ready":"unknown"}function et(e,t){return e?e.readable_status?e.readable_status:"ready"===t?ne.gsReady:"pending-recent"===t||"pending-old"===t?ne.gsPending:"partial"===t?ne.gsPartial:"release-today"===t?ne.gsReleaseToday:ne.gsUnknown:ne.gsNotInDatabase}function tt(e){return String(e||"").replace(/^[\s\[\(\{"'`]+|[\]\)\}"'`\s]+$/g,"").replace(/^["'`]+|["'`]+$/g,"").trim()}function at(e){if(null==e||""===e)return [];if(Array.isArray(e))return e.map(tt).filter(Boolean);const t=String(e).trim();if(!t)return [];if(/^[\[{"]/.test(t))try{const e=JSON.parse(t);if(Array.isArray(e))return e.map(tt).filter(Boolean);if("string"==typeof e)return [tt(e)].filter(Boolean)}catch(a){}return t.split(/[,;/|]+/).map(tt).filter(Boolean)}function nt(e){return /denuvo/i.test(e)?"blp-gs-chip--highlight":"blp-gs-chip--protection"}function it(e){return String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/&/g," and ").replace(/(?<=[a-z])\.(?=[a-z])/g,"").replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function rt(e,t){const a=String(t||"").replace(/^\/+|\/+$/g,"").replace(/--\d+$/i,"")||String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[''`´]/g,"").replace(/&/g," and ").replace(/(?<=[a-z])\.(?=[a-z])/g,"").replace(/[^a-z0-9]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");return a?`https://www.metacritic.com/game/${encodeURIComponent(a)}/`:""}const ot=/^(?=.*[ivxlcdm])(?=[mdclxvi]+$)m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/;function st(e){const t=String(e||"").toLowerCase().replace(/[™®©]/g,"").replace(/(?<=[a-z])\.(?=[a-z])/g,"").replace(/[^a-z0-9]+/g," ").trim();return t?t.split(/\s+/).filter(Boolean).map((e,t)=>{const a=function(e,{allowLoneI:t=false}={}){const a=String(e||"").toLowerCase();if(!ot.test(a))return null;if("i"===a&&!t)return null;const n={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3};let i=0;for(let r=0;re?-e:e;}return i>0?i:null}(e,{allowLoneI:t>0});return null!=a?String(a):e}).join(" "):""}function lt(e){return st(e).split(/\s+/).filter(Boolean)}function ct(e){return /^(the|a|an|official|new)$/i.test(e)}const ut=/^(game of the year|goty|definitive( edition)?|complete( edition)?|remastered|remake|deluxe( edition)?|ultimate( edition)?|gold( edition)?|standard( edition)?|premium( edition)?|collector'?s?( edition)?|anniversary( edition)?|enhanced( edition)?|director'?s cut|redux|legacy( edition)?|hd|vr|launcher|for windows( 10)?|pc( edition)?|windows|edition|collection)$/i;function dt(e){const t=st(e);if(!t)return true;if(ut.test(t))return true;const a=t.split(/\s+/);let n=0;for(;n=1;t-=1){const i=a.slice(n,n+t).join(" ");if(ut.test(i)){n+=t,e=true;break}}if(!e)return false}return true}function mt(e){const t=String(e||"").split(/\s+/).filter(Boolean);for(;t.length;){let e=false;for(let a=Math.min(4,t.length);a>=1;a-=1){const n=t.slice(t.length-a).join(" ");if(ut.test(n)){t.splice(t.length-a,a),e=true;break}}if(!e)break}return t.join(" ")}function pt(e,t){const a=st(e),n=st(t);if(!a||!n)return 0;if(a===n)return 100;const i=mt(a),r=mt(n);if(i&&r&&i===r)return 95;if(a.startsWith(`${n} `)&&dt(a.slice(n.length).trim()))return 90;if(i&&r&&i.startsWith(`${r} `)&&dt(i.slice(r.length).trim()))return 88;const o=lt(i||a),s=lt(r||n);if(s.length>=2){const e=function(e,t){if(!t.length||t.length>e.length)return -1;for(let a=0;a<=e.length-t.length;a+=1){let n=true;for(let i=0;i=0){const t=o.slice(0,e),a=o.slice(e+s.length);if(t.every(ct)&&dt(a.join(" ")))return 85}}return 0}function gt(e){return String((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim().toLowerCase()}function ht(e){const t=String(e||"").trim();return t?/^https?:\/\//i.test(t)?t:t.startsWith("/")?`${I}${t}`:`${I}/${t}`:""}function bt(e){const t=String(e||"").trim();return t?`${I}/franchise/${encodeURIComponent(t).replace(/%20/g,"+")}/`:""}function St(e){return `steamdb:meta:${Number(e)}`}function ft(e){const t=e.querySelectorAll(":scope > td");return t.length>=2?t:e.querySelectorAll("td")}function vt(e){var t,a;if(!(null==e?void 0:e.querySelectorAll))return null;const n={franchise:null,systems:null,technologies:[],lastRecordUpdate:null,source:"steamdb",blocked:false},i=e.querySelectorAll(".span8 table.table tbody tr, table.table-bordered tbody tr, table.table tbody tr");for(const r of i){const e=ft(r);if(e.length<2)continue;const i=gt(e[0]),o=e[1];if(i.startsWith("franchise")){const e=o.querySelector('a[href*="/franchise/"]'),t=String((null==e?void 0:e.textContent)||o.textContent||"").replace(/\s+/g," ").trim();t&&(n.franchise={name:t,url:ht(null==e?void 0:e.getAttribute("href"))||bt(t)});continue}if(i.startsWith("supported systems")){const e=o.querySelector('meta[itemprop="operatingSystem"]');let t=String((null==e?void 0:e.getAttribute("content"))||"").split(",").map(e=>e.trim()).filter(Boolean);if(!t.length){const e=String(o.textContent||"").replace(/\s+/g," ").trim();t=[],/\bwindows\b/i.test(e)&&t.push("Windows"),/\bmac\s*os\b|\bmacos\b/i.test(e)&&t.push("macOS"),/\blinux\b/i.test(e)&&t.push("Linux");}let a=null;const i=o.querySelector('[aria-label*="Steam Deck"]')||o.querySelector('[aria-label*="steam deck"]'),r=String((null==i?void 0:i.getAttribute("aria-label"))||"");/verified/i.test(r)?a=3:/playable/i.test(r)?a=2:/unsupported/i.test(r)?a=1:/unknown/i.test(r)&&(a=0),(t.length||null!=a)&&(n.systems={list:t,deckCompat:a});continue}if(i.startsWith("technologies")){const e=[];o.querySelectorAll('a[href*="/tech/"]').forEach(t=>{const a=String(t.textContent||"").replace(/\s+/g," ").trim(),n=ht(t.getAttribute("href"));a&&n&&e.push({name:a,url:n});}),n.technologies=e;continue}if(i.startsWith("last record update")){const e=o.querySelector("relative-time[datetime], relative-time[content]"),i=(null==e?void 0:e.getAttribute("datetime"))||(null==e?void 0:e.getAttribute("content"))||"";let r=String((null==(a=null==(t=o.childNodes)?void 0:t[0])?void 0:a.textContent)||o.textContent||"").replace(/\s+/g," ").trim();r=r.replace(/\([^)]*\)\s*$/,"").trim(),(i||r)&&(n.lastRecordUpdate={iso:i||null,label:r||i});}}return n.franchise||n.systems||n.technologies.length||n.lastRecordUpdate?n:null}function wt(e,t,{pageUrl:a=""}={}){const n=Number(e);return {franchise:(null==t?void 0:t.franchise)||null,systems:(null==t?void 0:t.systems)||null,technologies:Array.isArray(null==t?void 0:t.technologies)?t.technologies:[],lastRecordUpdate:(null==t?void 0:t.lastRecordUpdate)||null,source:(null==t?void 0:t.source)||"steamdb",pageUrl:a||`${R}/${n}/`}}async function yt(){const e=we(O);if(e&&"object"==typeof e)return e;if(oe.has(O))return oe.get(O);const t=(async()=>{const e=await ze({url:B}),t={};if(Array.isArray(e))for(const a of e)null!=(null==a?void 0:a.tagid)&&a.name&&(t[a.tagid]=a.name);return ye(O,t,{ttlMs:F}),t})();oe.set(O,t);try{return await t}finally{oe.delete(O);}}function kt(e){var t;const a=Number(null==(t=null==e?void 0:e.platforms)?void 0:t.steam_deck_compat_category);return Number.isFinite(a)?a:null}function Pt(e){const t=String(e||"").trim();return t?`https://steamdb.info/franchise/${encodeURIComponent(t).replace(/%20/g,"+")}/`:""}function Ct(e){var t,a;const n=null==(t=null==e?void 0:e.basic_info)?void 0:t.franchises;if(!Array.isArray(n)||!n.length)return null;const i=String((null==(a=n[0])?void 0:a.name)||"").trim();return i?{name:i,url:Pt(i)}:null}function Bt(e){const t=null==e?void 0:e.platforms;if(!t||"object"!=typeof t)return null;const a=[];t.windows&&a.push("Windows"),t.mac&&a.push("macOS"),(t.steamos_linux||t.linux)&&a.push("Linux");const n=kt(e);return a.length||null!=n?{list:a,deckCompat:n}:null}async function xt(e,t){const a=Number(e),n=String(t||"US").toUpperCase(),i=`steam:storeitem:${a}:${n}`,r=`steam:tags:${a}`,o=`steam:assets:${a}`,s=`steam:extras:${a}:${n}`,l=we(r),c=we(o),u=we(s);if(l&&c&&u)return {tags:l,assets:c,extras:u,_cache:"hit"};if(oe.has(i))return oe.get(i);const d=(async()=>{var e,t;try{const i=JSON.stringify({ids:[{appid:a}],context:{language:"english",country_code:n,steam_realm:1},data_request:{include_tag_count:12,include_assets:!0,include_platforms:!0,include_basic_info:!0,include_all_purchase_options:!0}}),[d,m]=await Promise.all([ze({url:`${x}?input_json=${encodeURIComponent(i)}`}),yt()]),p=null==(t=null==(e=null==d?void 0:d.response)?void 0:e.store_items)?void 0:t[0],g=(Array.isArray(null==p?void 0:p.tags)?p.tags:[]).slice().sort((e,t)=>(t.weight||0)-(e.weight||0)).map(e=>({id:e.tagid,name:m[e.tagid]||null,weight:e.weight||0})).filter(e=>e.name).slice(0,12),h=function(e,t){if(!t||"object"!=typeof t)return null;const a=Number(e),n=String(t.community_icon||"").trim(),i=n?`https://shared.fastly.steamstatic.com/community_assets/images/apps/${a}/${n}.jpg`:"",r=String(t.header||"header.jpg").trim();let o="";return t.asset_url_format&&r&&(o=`${$}/${String(t.asset_url_format).replace("${FILENAME}",r)}`),!o&&r&&(o=Rt(a,r)),i||o?{iconUrl:i,logoUrl:o,source:"steam-assets"}:null}(a,null==p?void 0:p.assets),b=function(e){const t=(null==e?void 0:e.best_purchase_option)||null;if(!t||"object"!=typeof t)return {discountEndDate:null};let a=null;const n=Array.isArray(t.active_discounts)?t.active_discounts:[];for(const i of n){const e=Number(null==i?void 0:i.discount_end_date);if(Number.isFinite(e)&&e>0){a=e;break}}return {discountEndDate:a}}(p),S={deckCompat:kt(p),franchise:Ct(p),systems:Bt(p),...b};ye(r,g),h&&ye(o,h),ye(s,S);const f=Boolean(l||c||u);return {tags:g.length?g:l||[],assets:h||c||null,extras:S||u||null,_cache:f?"mixed":"miss"}}catch(i){return {tags:l||[],assets:c||null,extras:u||null,_cache:l||c||u?"hit":"miss"}}})();oe.set(i,d);try{return await d}finally{oe.delete(i);}}async function Dt(e,t){const{tags:a}=await xt(e,t);return a}function Ht(e,t){const a=String(t||"").trim();if(!a)return "";const n=String((null==e?void 0:e.asset_url_format)||"").trim();return n?`${$}/${n.replace("${FILENAME}",a)}`:""}function Tt(e){var t;const a=new Map;if(!Array.isArray(e))return a;for(const n of e){const e=Number(null!=(t=null==n?void 0:n.id)?t:null==n?void 0:n.tagid);if(!Number.isFinite(e)||e<=0)continue;const i=Number(null==n?void 0:n.weight);a.set(e,Number.isFinite(i)&&i>0?i:1);}return a}function At(e){return Array.isArray(null==e?void 0:e.categories)?e.categories.map(e=>({id:Number(e.id),description:String(e.description||"").trim()})).filter(e=>e.description&&Number.isFinite(e.id)&&e.id>0):[]}function Gt(e){return (Array.isArray(e)?e:[]).map(Number).filter(e=>Number.isFinite(e)&&e>0)}async function _t(){const e=function(){const e=ge()[N];return (null==e?void 0:e.ts)&&e.data&&Array.isArray(e.data.appIds)&&Array.isArray(e.data.wishlistAppIds)?fe(N,e)?null:(ve(e),e.data):null}();if(e)return {owned:new Set(e.appIds),wishlist:new Set(e.wishlistAppIds)};if(oe.has(N))return oe.get(N);const t=(async()=>{try{const e=await ze({url:`${C}?t=${Date.now()}`,anonymous:!1,headers:{"Cache-Control":"no-cache"}}),t=Gt(null==e?void 0:e.rgOwnedApps),a=Gt(null==e?void 0:e.rgWishlist);return function(e){const t=Date.now();ge()[N]={ts:t,at:t,data:e},he();}({appIds:t,wishlistAppIds:a}),{owned:new Set(t),wishlist:new Set(a)}}catch(e){return {owned:new Set,wishlist:new Set}}})();oe.set(N,t);try{return await t}finally{oe.delete(N);}}async function Mt({appId:e,country:t,hit:a=null,anonymous:n=true,usedUsFallback:i=false,requestedCountry:r,onPartial:o,includeTags:s=true,debugBase:l=null,cacheKey:c="",manualOverride:u=false}){var d;const m=Number(e),p=String(t||"US").toUpperCase(),g=String(r||p).toUpperCase(),h=l||{appId:m,country:g,cacheKey:c,cacheSkipped:false,manualOverride:u},b=`${P}?appids=${m}&cc=${encodeURIComponent(p)}&l=english`,S=`https://store.steampowered.com/appreviews/${m}?json=1&language=all&purchase_type=all&num_per_page=0`;h.detailsUrl=b,h.reviewsUrl=S,h.manualOverride=Boolean(u);const f=s&&false!==te.showSteamTags,v=s;if(f||v){const e=JSON.stringify({ids:[{appid:m}],context:{language:"english",country_code:p,steam_realm:1},data_request:{include_tag_count:12,include_assets:true,include_platforms:true,include_basic_info:true,include_all_purchase_options:true}});h.tagsUrl=`${x}?input_json=${encodeURIComponent(e)}`,h.tagMapUrl=B;}const w=ze({url:b,anonymous:n}),y=ze({url:S,anonymous:n}).catch(e=>(h.reviewsError=String((null==e?void 0:e.message)||e),null)),k=f||v?xt(m,p).catch(e=>(h.tagsError=String((null==e?void 0:e.message)||e),{tags:[],assets:null,extras:null})):Promise.resolve({tags:[],assets:null,extras:null});let C=null;try{C=await w;}catch(I){return h.reason=`Steam details failed: ${(null==I?void 0:I.message)||I}`,{found:false,manualOverride:Boolean(u),_debug:h}}let D=null,H=[],T=null,A=false;const G=()=>{var e,t,r,o,s;const l=(null==(e=null==C?void 0:C[m])?void 0:e.success)?C[m].data:null;h.reason=l?`Matched Steam app ${m} (${(u?["manual App ID",p]:[n?"guest items":"session items",i?`US fallback (requested ${g})`:p]).join(", ")})`:`App ${m} resolved, but appdetails success=false`,h.detailsSuccess=Boolean(null==(t=null==C?void 0:C[m])?void 0:t.success),h.detailsCountry=p,h.reviews=(null==D?void 0:D.query_summary)||null,h.tags=H,h.categories=At(l),h.extras=T;const c=(null==T?void 0:T.franchise)||null,d=(null==T?void 0:T.systems)||function(e){const t=null==e?void 0:e.platforms;if(!t||"object"!=typeof t)return null;const a=[];return t.windows&&a.push("Windows"),t.mac&&a.push("macOS"),t.linux&&a.push("Linux"),a.length?{list:a,deckCompat:null}:null}(l)||null;return {found:Boolean(l)||Boolean(a),appId:m,name:(null==l?void 0:l.name)||(null==a?void 0:a.name)||`App ${m}`,storeUrl:`https://store.steampowered.com/app/${m}/`,isFree:Boolean(null==l?void 0:l.is_free),price:(null==l?void 0:l.price_overview)||(null==a?void 0:a.price)||null,metacritic:(null==l?void 0:l.metacritic)||((null==a?void 0:a.metascore)?{score:Number(a.metascore)}:null),recommendations:(null==(r=null==l?void 0:l.recommendations)?void 0:r.total)||null,reviews:(null==D?void 0:D.query_summary)||null,tags:H,categories:At(l),deckCompat:null!=(o=null==T?void 0:T.deckCompat)?o:null,franchise:c,systems:d,discountEndDate:null!=(s=null==T?void 0:T.discountEndDate)?s:null,tinyImage:(null==a?void 0:a.tiny_image)||(null==a?void 0:a.small_capsule)||null,headerImage:(null==l?void 0:l.header_image)||null,usedUsFallback:Boolean(i),requestedCountry:g,searchCountry:p,manualOverride:Boolean(u),_debug:h}},_=()=>{A&&"function"==typeof o&&o(G());},M=y.then(e=>(D=e,_(),e)),L=k.then(e=>(H=f&&(null==e?void 0:e.tags)||[],T=(null==e?void 0:e.extras)||null,_(),e));A=true,_(),await Promise.all([M,L]);const $=G();return (null==(d=null==C?void 0:C[m])?void 0:d.success)||a||($.found=false),c&&$.found&&function(e,t,a){var n;if(!e||!(null==t?void 0:t.found)||!be())return;const i=xe(t);if(a)return i.tagsLoaded=true,void ye(e,i);i.tagsLoaded=false;const r=ge()[e];(null==(n=null==r?void 0:r.data)?void 0:n.found)&&true===r.data.tagsLoaded&&!fe(e,r)||ye(e,i);}(c,$,s),Pe($)}async function Lt(e,{includeTags:t,country:a,manualOverride:n}){const i=we(e);if(!i)return null;let r={...i,manualOverride:Boolean(n||i.manualOverride)},o=false;return function(e,t){return !(!t||false===te.showSteamTags||!(null==e?void 0:e.found)||null==e.appId||true===e.tagsLoaded)}(r,t)&&(r=await async function(e,t){const a=await Dt(e.appId,t).catch(()=>[]);return {...e,tags:Array.isArray(a)?a:[],tagsLoaded:true}}(r,a),ye(e,xe(r)),o=true),o?null==(s=r)||"object"!=typeof s?s:{...s,_cache:"mixed"}:ke(r);var s;}async function $t(e,t,{onPartial:a,includeTags:n=true,manualOverride:i=false}={}){const r=Number(e);if(!Number.isFinite(r)||r<=0)return {found:false,_debug:{reason:"Invalid Steam App ID"},_cache:"na"};const o=String(t||"US").toUpperCase(),s=`steam:id:${o}:${r}`,l=n?s:`${s}:lite`,c=await Lt(s,{includeTags:n,country:o,manualOverride:i});if(c)return c;if(oe.has(l))return oe.get(l);const u=Mt({appId:r,country:o,requestedCountry:o,anonymous:true,onPartial:a,includeTags:n,cacheKey:s,manualOverride:i,debugBase:{appId:r,country:o,cacheKey:s,cacheSkipped:false,manualOverride:Boolean(i),searches:[]}});oe.set(l,u);try{return await u}finally{oe.delete(l);}}async function It({title:e,slug:t,country:a,onPartial:n,includeTags:i=true}){const r=function(e,t,a){const n=String(a||"US").toUpperCase(),i=He(t);return i?`id:${n}:${i}`:`title:${n}:${st(e)}`}(e,t,a);if(se.has(r))return {found:false,_debug:{reason:"Steam miss (session memory)",missKey:r}};const o=He(t);let s;return s=o?await $t(o,a,{onPartial:n,includeTags:i,manualOverride:true}):await async function(e,t,{onPartial:a,includeTags:n=true}={}){const i=String(t||"US").toUpperCase(),r=`steam:${i}:${st(e)}`,o=n?r:`${r}:lite`,s=await Lt(r,{includeTags:n,country:i,manualOverride:false});if(s)return s;if(oe.has(o))return oe.get(o);const l=(async()=>{const t={title:e,country:i,cacheKey:r,cacheSkipped:false,searches:[]},o=async(t,a)=>{var n,i;const r=(t=>`https://store.steampowered.com/api/storesearch/?term=${encodeURIComponent(e)}&l=english&cc=${encodeURIComponent(t)}`)(t);try{const e=await ze({url:r,anonymous:a}),o=Array.isArray(null==e?void 0:e.items)?e.items:[];return {ok:!0,anonymous:a,country:t,url:r,total:null!=(n=null==e?void 0:e.total)?n:o.length,items:o,summary:{anonymous:a,country:t,url:r,total:null!=(i=null==e?void 0:e.total)?i:o.length,items:o.slice(0,8).map(e=>({id:e.id,name:e.name,type:e.type}))}}}catch(o){return {ok:false,anonymous:a,country:t,url:r,items:[],summary:{anonymous:a,country:t,url:r,error:String((null==o?void 0:o.message)||o)}}}},s=(t,a)=>{const n=new Map;for(const e of [...t.items||[],...a.items||[]])(null==e?void 0:e.id)&&(n.has(e.id)||n.set(e.id,e));const i=[...n.values()],r=function(e,t){const a=(e||[]).filter(e=>e&&"app"===e.type&&e.id);if(!a.length)return null;const n=a.filter(e=>!/\b(dlc|soundtrack|ost|bundle|pack|edition upgrade|cosmetic)\b/i.test(e.name)),i=n.length?n:a;let r=null,o=0;for(const s of i){const e=pt(s.name,t);e>o&&(o=e,r=s);}return o>=85?r:null}(i,e)||null,o=new Set((t.items||[]).map(e=>null==e?void 0:e.id).filter(Boolean));return {hit:r,mergedItems:i,anonymous:r?!o.has(r.id):Boolean(a.ok&&!t.ok)}},l=async e=>{const[a,n]=await Promise.all([o(e,false),o(e,true)]);return t.searches.push(a.summary,n.summary),{...s(a,n),sessionResult:a,guestResult:n,country:e}};let c=i,u=false,d=await l(c);d.hit||"US"===c||(u=true,c="US",t.usFallback={from:i,to:"US",reason:`No matches for ${i}; retrying US`},d=await l("US"));const{hit:m,anonymous:p}=d;return t.searchCountry=c,t.usedUsFallback=u,t.anonymous=p,m?(t.picked={id:m.id,name:m.name,type:m.type},Mt({appId:m.id,country:c,hit:m,anonymous:p,usedUsFallback:u,requestedCountry:i,onPartial:a,includeTags:n,debugBase:t,cacheKey:r,manualOverride:false})):(t.reason=u?`No Steam search match for ${i} or US (session + guest, parallel)`:"No Steam search match (session + guest, parallel)",{found:false,_debug:t})})();oe.set(o,l);try{return await l}finally{oe.delete(o);}}(e,a,{onPartial:n,includeTags:i}),(null==s?void 0:s.found)?se.delete(r):se.add(r),s}function Rt(e,t){return `https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/${Number(e)}/${t}`}async function Et(e,{onPartial:t,country:a}={}){const n=Number(e);if(!Number.isFinite(n)||n<=0)return null;const i=te.showSteamDbIcon||te.showSteamDbCover,r=te.showSteamDbGallery,o=te.showSteamPlayers,s=false!==te.showSteamDbDetails;if(!(i||r||o||s))return null;const l=`steamdb:media:${n}`,c=`steam:screenshots:${n}`,u=Boolean(te.debugMode);let d=we(l),m=Boolean(d),p=r?we(c):null,g=Array.isArray(p);p&&!Array.isArray(p)&&(p=null,g=false);let h=null,b=null,S=null,f=null,v=false;const w=a||te.steamCountry||"US",y=e=>{"function"==typeof t&&t(e);},k=()=>{const{iconUrl:e,logoUrl:t,logoIsPortrait:a}=(()=>{const e=(null==d?void 0:d.iconUrl)||"",t=(null==d?void 0:d.logoUrl)||Rt(n,"header.jpg")||Rt(n,"library_600x900.jpg");return {iconUrl:e,logoUrl:t,logoIsPortrait:Boolean(t&&/library_600x900/i.test(t)&&!(null==d?void 0:d.logoUrl))}})(),l=null!=h?"miss":"na",c=i?m?"hit":d?"miss":"na":"na",w=r?g?"hit":Array.isArray(p)?"miss":"na":"na",y=s?v?"hit":f?"miss":"na":"na",k=Array.isArray(null==f?void 0:f.technologies)?f.technologies:[];return {appId:n,iconUrl:i&&te.showSteamDbIcon?e:"",logoUrl:i&&te.showSteamDbCover?t:"",logoIsPortrait:Boolean(a),screenshots:r&&Array.isArray(p)?p:null,players:o?h:null,franchise:s&&(null==f?void 0:f.franchise)||null,systems:s&&(null==f?void 0:f.systems)||null,technologies:s?k:[],lastRecordUpdate:s&&(null==f?void 0:f.lastRecordUpdate)||null,metaBlocked:Boolean(null==f?void 0:f.blocked),source:(null==d?void 0:d.source)||(null==f?void 0:f.source)||"steam",_cache:Be(c,w,y),_cacheMedia:c,_cacheShots:w,_cachePlayers:l,_cacheMeta:y,_debug:u?{reason:["steam-assets"===(null==d?void 0:d.source)?"Steam GetItems (community_icon + header)":(null==d?void 0:d.source)?`Media: ${d.source}`:i?"Waiting for Steam assets":null,r?Array.isArray(p)?`Screenshots: ${p.length} from appdetails`:"Screenshots pending":null,"steam-api"===b?"Players from GetNumberOfCurrentPlayers (live, not cached)":o?"Players pending":null,s?(null==f?void 0:f.blocked)?"SteamDB HTML blocked (Cloudflare)":"steamdb"===(null==f?void 0:f.source)?"SteamDB app table parsed":(null==f?void 0:f.error)?`SteamDB meta error: ${f.error}`:"SteamDB meta pending":null].filter(Boolean).join(" · "),chartsUrl:`${R}/${n}/charts/`,pageUrl:`${R}/${n}/`,playersApiUrl:S,playersSource:b,media:d,screenshots:p,players:h,pageMeta:f,iconUrl:e,logoUrl:t}:void 0}};i&&!d?(d={iconUrl:"",logoUrl:Rt(n,"header.jpg"),source:"steam-cdn-early"},y(k())):(i||r||s)&&y(k());const C=i?async function(e,t){const{assets:a}=await xt(e,t);return a}(n,w).catch(()=>null):Promise.resolve(null),B=r&&!Array.isArray(p)?async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return Pe([]);const a=`steam:screenshots:${t}`,n=we(a);if(Array.isArray(n))return ke(n);if(oe.has(a))return oe.get(a);const i=(async()=>{var e;try{const n=`${P}?appids=${encodeURIComponent(t)}&filters=screenshots&l=english`,i=await ze({url:n,anonymous:!0}),r=function(e){const t=Array.isArray(null==e?void 0:e.screenshots)?e.screenshots:[],a=[];for(const n of t){const e=String((null==n?void 0:n.path_thumbnail)||"").trim(),t=String((null==n?void 0:n.path_full)||e).trim();(e||t)&&a.push({id:null!=(null==n?void 0:n.id)?Number(n.id):a.length,thumb:e||t,full:t||e});}return a}((null==(e=null==i?void 0:i[t])?void 0:e.success)?i[t].data:null);return r.length&&ye(a,r),Pe(r)}catch(n){return Pe([])}})();oe.set(a,i);try{return await i}finally{oe.delete(a);}}(n).then(e=>(p=Array.isArray(e)?e:[],g="hit"===Ce(e),y(k()),p)):Promise.resolve(p),x=o&&null==h?(async()=>{S=`${D}?appid=${encodeURIComponent(n)}`;const e=await async function(e){var t;try{const a=await ze({url:`${D}?appid=${encodeURIComponent(e)}`,anonymous:!0}),n=Number(null==(t=null==a?void 0:a.response)?void 0:t.player_count);return Number.isFinite(n)?n:null}catch(a){return null}}(n);null!=e&&(h=e,b="steam-api",y(k()));})():Promise.resolve(),H=s?async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return Pe(null);const a=St(t),n=we(a);if(n&&"object"==typeof n&&!n.blocked)return ke(n);if(oe.has(a))return oe.get(a);const i=`${R}/${t}/`,r=(async()=>{try{const e=function(e){if(!e||"string"!=typeof e)return null;if(/just a moment|cf-browser-verification|challenge-platform|cdn-cgi\/challenge/i.test(e))return {blocked:!0,source:"steamdb-cf"};let t;try{t=(new DOMParser).parseFromString(e,"text/html");}catch(a){return null}return vt(t)}(await ze({url:i,responseType:"text",timeout:2e4,anonymous:!1}));if(!e||e.blocked)return Pe(e||{blocked:!0,source:"steamdb-cf"});const n=wt(t,e,{pageUrl:i});return ye(a,n),Pe(n)}catch(e){return Pe({blocked:false,source:"steamdb-error",error:String((null==e?void 0:e.message)||e),pageUrl:i})}})();oe.set(a,r);try{return await r}finally{oe.delete(a);}}(n).then(e=>(f=e&&"object"==typeof e?xe(e)||e:null,v="hit"===Ce(e),y(k()),f)):Promise.resolve(null),[T]=await Promise.all([C,B,x,H]);T&&(T.iconUrl||T.logoUrl)&&(d={iconUrl:T.iconUrl||(null==d?void 0:d.iconUrl)||"",logoUrl:T.logoUrl||(null==d?void 0:d.logoUrl)||"",source:"steam-assets"},m||ye(l,d),y(k())),i&&te.showSteamDbIcon&&d&&!d.iconUrl&&(d={...d,iconUrl:Rt(n,"capsule_sm_120.jpg")}),r&&!Array.isArray(p)&&(p=[]);const A=k();return y(A),A}const Nt=function(){const e="undefined"!=typeof document&&document.createElement("link").relList;return e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}(),Ot={},Ft="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";let zt=null;function Ut(e){if(!Number.isFinite(e)||e<=0)return null;const t=Math.round(10*e)/10;return Number.isInteger(t)?String(t):t.toFixed(1)}function qt(e){const t=Number(e);return !Number.isFinite(t)||t<=0?null:t/3600}function jt(e,t){return {searchType:"games",searchTerms:String(e||"").trim().split(/\s+/).filter(Boolean),searchPage:1,size:10,searchOptions:{games:{userId:0,platform:"",sortCategory:"popular",rangeCategory:"main",rangeTime:{min:null,max:null},gameplay:{perspective:"",flow:"",genre:"",difficulty:""},rangeYear:{min:"",max:""},modifier:""},users:{sortCategory:"postcount"},lists:{sortCategory:"follows"},filter:"",sort:0,randomizer:0},useCache:true,[t.hpKey]:t.hpVal}}function Wt(e,t){if(!Array.isArray(e)||!e.length)return null;const a=e.map(e=>({item:e,titleScore:pt((null==e?void 0:e.name)||(null==e?void 0:e.distilledName)||"",t),dist:Number(null==e?void 0:e.dist)})).filter(e=>{var t;return null!=(null==(t=e.item)?void 0:t.id)});if(!a.length)return null;a.sort((e,t)=>t.titleScore-e.titleScore||(Number.isFinite(e.dist)?e.dist:99)-(Number.isFinite(t.dist)?t.dist:99));const n=a[0];return n.titleScore>=TITLE_MATCH_MIN_SCORE?{item:n.item,score:n.titleScore}:Number.isFinite(n.dist)&&n.dist<=.12?{item:n.item,score:Math.max(n.titleScore,80)}:null}function Vt(...e){for(const t of e){if(null==t||""===t)continue;const e="number"==typeof t?t:Number(String(t).trim().replace(",","."));if(!(!Number.isFinite(e)||e<=0||e>100))return Math.round(e)}return null}function Jt(){const e=location.pathname||"/",t=e.match(/^\/games\/([^/]+)\/?/i);return {path:e,isGamePage:Boolean(t)&&!!document.getElementById("game-body"),slug:t?t[1].toLowerCase():"",isProfile:/^\/u\/[^/]+\/?/.test(e),isSearch:e.startsWith("/search")}}function Kt(){const e=document.querySelector("#game-profile h1, #center-content h1, main h1");if(!e)return "";const t=e.cloneNode(true);return t.querySelectorAll("[data-blp-game-id], .blp-title-icon-wrap").forEach(e=>e.remove()),(t.textContent||"").trim()}function Zt(e){const t=document.querySelector('a[href*="igdb.com/games/"]');return (null==t?void 0:t.href)?t.href.split("?")[0]:e?`https://www.igdb.com/games/${encodeURIComponent(e)}`:""}let Yt=[];function Qt(e){Yt=e;}function Xt(e){const t=document.querySelector(`[${p}="cover"]`);if(!t)return;const a=Array.isArray(e)?e.findIndex(e=>"cover"===e.kind):-1;if(!te.showSteamDbCover||a<0||!e.length)return t.classList.remove("is-gallery"),t.removeAttribute("role"),t.removeAttribute("tabindex"),t.removeAttribute("aria-label"),t.onclick=null,void(t.onkeydown=null);t.classList.add("is-gallery"),t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.setAttribute("aria-label",ne.steamGalleryOpen);const n=()=>oa(e,a);t.onclick=e=>{e.preventDefault(),n();},t.onkeydown=e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n());};}const ea="data-blp-cover-viewer";function ta(e){e.preventDefault(),e.stopPropagation();const t=e.currentTarget;t instanceof HTMLImageElement&&function(e){const t=function(e){if(!e)return "";const t=String(e.getAttribute("data-src")||"").trim(),a=String(e.currentSrc||e.getAttribute("src")||"").trim();return t||a}(e),a=String(e.currentSrc||e.getAttribute("src")||t).trim();if(!t&&!a)return;const n={src:t||a,thumb:a||t,kind:"cover",alt:e.getAttribute("alt")||""},i=new Set([n.src,n.thumb].filter(Boolean)),r=[];for(const o of Yt||[]){const e=String(o.full||o.src||o.thumb||"").trim(),t=String(o.thumb||o.full||o.src||"").trim();e&&!i.has(e)&&(i.add(e),r.push({src:e,thumb:t||e,kind:o.kind||"screenshot",alt:o.alt||""}));}ra({items:[n,...r],index:0,title:Kt()||ne.viewerOpenCover});}(t);}function aa(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.stopPropagation(),ta(e));}function na(){const e=document.querySelector("#interaction-sidebar > div > div.col.col-cover.px-sm-0.my-auto.mx-auto.mb-0.mb-2.mb-mb-0 > div > div > img")||document.querySelector("#interaction-sidebar .col-cover .game-cover img")||document.querySelector("#interaction-sidebar .col-cover img");e&&"1"!==e.getAttribute(ea)&&(e.setAttribute(ea,"1"),e.classList.add("blp-cover-zoomable"),e.setAttribute("role","button"),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",ne.viewerOpenCover),e.addEventListener("click",ta),e.addEventListener("keydown",aa));}const ia=(()=>{const e=1.25;let t=null;function a(e,t,a){return Math.min(a,Math.max(t,e))}function n(){if(!t)return;const{root:e,onKeyDown:a,onClose:n,prevOverflow:i}=t;if(document.removeEventListener("keydown",a,true),null==e||e.remove(),null!=i&&(document.documentElement.style.overflow=i),t=null,"function"==typeof n)try{n();}catch(r){}}function i(){if(!t)return;const{frame:e,scale:a,tx:n,ty:i}=t;e.style.transform=`translate(${n}px, ${i}px) scale(${a})`,t.zoomOutBtn&&(t.zoomOutBtn.disabled=a<=1.001),t.zoomInBtn&&(t.zoomInBtn.disabled=a>=4.999),t.resetBtn&&(t.resetBtn.disabled=a<=1.001&&Math.abs(n)<1&&Math.abs(i)<1);}function r(){t&&(t.scale=1,t.tx=0,t.ty=0,i());}function o(e,n,r){if(!t)return;const o=t.stage.getBoundingClientRect(),s=(null==n?o.left+o.width/2:n)-o.left-o.width/2,l=(null==r?o.top+o.height/2:r)-o.top-o.height/2,c=t.scale,u=a(e,1,5);u!==c?(t.tx=s-(s-t.tx)*u/c,t.ty=l-(l-t.ty)*u/c,t.scale=u,u<=1.001&&(t.tx=0,t.ty=0,t.scale=1),i()):i();}function s(e,a,n){t&&o(t.scale*e,a,n);}function l(e){var a,n;t&&(null==(a=t.stage)||a.classList.toggle("is-loading",Boolean(e)),null==(n=t.root)||n.setAttribute("aria-busy",e?"true":"false"),t.spinner&&t.spinner.setAttribute("aria-hidden",e?"false":"true"));}function c(e,{keepZoom:a=false}={}){if(!t)return;const{items:n,img:i}=t,o=(e%n.length+n.length)%n.length;t.index=o;const s=n[o];if(!s||!i)return;const c=++t.loadGen;i.alt=s.alt||"",a||r(),function(){if(!t)return;const{film:e,index:a,items:n}=t;e.querySelectorAll("[data-blp-viewer-thumb]").forEach(e=>{const t=Number(e.getAttribute("data-blp-viewer-thumb"));e.classList.toggle("is-active",t===a),e.classList.toggle("is-near",1===Math.abs(t-a)),e.setAttribute("aria-current",t===a?"true":"false");});const i=e.querySelector(`[data-blp-viewer-thumb="${a}"]`);null==i||i.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}),t.counter&&(t.counter.textContent=Q(ne.viewerOf,{current:a+1,total:n.length}));const r=n.length>1;t.prevBtn&&(t.prevBtn.hidden=!r),t.nextBtn&&(t.nextBtn.hidden=!r);}(),function(e){if(!t)return;const{items:a}=t;if(!(a.length<2))for(const n of [-1,1,2]){const i=a[((e+n)%a.length+a.length)%a.length],r=null==i?void 0:i.src;if(!r||t.prefetched.has(r))continue;t.prefetched.add(r);const o=new Image;o.decoding="async",o.referrerPolicy="no-referrer",o.src=r;}}(o);const u=s.src;if((i.getAttribute("src")||"")===u&&i.complete&&i.naturalWidth>0)return void l(false);l(true);const d=()=>{t&&t.loadGen===c&&l(false);};i.addEventListener("load",d,{once:true}),i.addEventListener("error",d,{once:true}),i.src=u,i.complete&&i.naturalWidth>0&&d();}function u(e){t&&c(t.index+e);}return {open:function(l={}){var d,m,p,g,h;const b=function(e){const t=[];for(const a of e||[]){if(!a)continue;if("string"==typeof a){const e=a.trim();e&&t.push({src:e,thumb:e,alt:"",kind:""});continue}const e=String(a.src||a.full||a.url||"").trim(),n=String(a.thumb||a.thumbnail||e).trim();(e||n)&&t.push({src:e||n,thumb:n||e,alt:String(a.alt||""),kind:String(a.kind||"")});}return t}(l.items);if(!b.length)return null;n();let S=Number(l.index);Number.isFinite(S)||(S=0),S=a(0|S,0,b.length-1);const f=l.title||ne.steamGalleryTitle||"",v=document.createElement("div");v.className="blp-viewer",v.setAttribute("role","dialog"),v.setAttribute("aria-modal","true"),v.setAttribute("aria-label",f||"Image viewer"),v.innerHTML=`\n
\n
\n ${de(f)}\n \n
\n
\n \n \n \n \n
\n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n `;const w=v.querySelector("[data-blp-viewer-film]");w.innerHTML=b.map((e,t)=>`\n \n `).join("");const y=a=>{if(t)return "Escape"===a.key?(a.preventDefault(),void n()):"ArrowLeft"===a.key?(a.preventDefault(),void u(-1)):"ArrowRight"===a.key?(a.preventDefault(),void u(1)):"Home"===a.key?(a.preventDefault(),void c(0)):"End"===a.key?(a.preventDefault(),void c(b.length-1)):"+"===a.key||"="===a.key?(a.preventDefault(),void s(e)):"-"===a.key||"_"===a.key?(a.preventDefault(),void s(.8)):void("0"===a.key&&(a.preventDefault(),r()))};return t={root:v,items:b,index:S,scale:1,tx:0,ty:0,loadGen:0,prefetched:new Set,prevOverflow:document.documentElement.style.overflow,img:v.querySelector(".blp-viewer__img"),frame:v.querySelector("[data-blp-viewer-frame]"),stage:v.querySelector("[data-blp-viewer-stage]"),spinner:v.querySelector("[data-blp-viewer-spinner]"),film:w,counter:v.querySelector("[data-blp-viewer-counter]"),prevBtn:v.querySelector("[data-blp-viewer-prev]"),nextBtn:v.querySelector("[data-blp-viewer-next]"),zoomInBtn:v.querySelector("[data-blp-viewer-zoom-in]"),zoomOutBtn:v.querySelector("[data-blp-viewer-zoom-out]"),resetBtn:v.querySelector("[data-blp-viewer-zoom-reset]"),onKeyDown:y,onClose:l.onClose},document.documentElement.style.overflow="hidden",null==(d=t.prevBtn)||d.addEventListener("click",e=>{e.stopPropagation(),u(-1);}),null==(m=t.nextBtn)||m.addEventListener("click",e=>{e.stopPropagation(),u(1);}),null==(p=t.zoomInBtn)||p.addEventListener("click",t=>{t.stopPropagation(),s(e);}),null==(g=t.zoomOutBtn)||g.addEventListener("click",e=>{e.stopPropagation(),s(.8);}),null==(h=t.resetBtn)||h.addEventListener("click",e=>{e.stopPropagation(),r();}),w.querySelectorAll("[data-blp-viewer-thumb]").forEach(e=>{e.addEventListener("click",t=>{t.stopPropagation(),c(Number(e.getAttribute("data-blp-viewer-thumb")));});}),function(){const{stage:a,root:l}=t;let c=false,u=false,d=0,m=0,p=new Map,g=0,h=1;const b=(e,a)=>{const n=t.img;if(!n)return false;const i=n.getBoundingClientRect();return e>=i.left&&e<=i.right&&a>=i.top&&a<=i.bottom},S=e=>{var t;p.delete(e.pointerId),p.size<2&&(g=0),c&&(c=false,a.classList.remove("is-dragging"),null==(t=a.releasePointerCapture)||t.call(a,e.pointerId));};a.addEventListener("wheel",t=>{t.preventDefault(),s(t.deltaY<0?e:.8,t.clientX,t.clientY);},{passive:false}),a.addEventListener("pointerdown",e=>{var n,i;if(null==e.button||0===e.button){if(p.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===p.size){const i=[...p.values()];return g=Math.hypot(i[0].x-i[1].x,i[0].y-i[1].y)||1,h=t.scale,c=false,void(null==(n=a.setPointerCapture)||n.call(a,e.pointerId))}b(e.clientX,e.clientY)&&(null==(i=a.setPointerCapture)||i.call(a,e.pointerId),c=true,u=false,d=e.clientX,m=e.clientY,a.classList.add("is-dragging"));}}),a.addEventListener("pointermove",e=>{if(p.has(e.pointerId)&&p.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===p.size){const e=[...p.values()],t=Math.hypot(e[0].x-e[1].x,e[0].y-e[1].y)||1;return void o(h*(t/g),(e[0].x+e[1].x)/2,(e[0].y+e[1].y)/2)}if(!c)return;const a=e.clientX-d,n=e.clientY-m;(Math.abs(a)>1||Math.abs(n)>1)&&(u=true),d=e.clientX,m=e.clientY,t.tx+=a,t.ty+=n,i();}),a.addEventListener("pointerup",S),a.addEventListener("pointercancel",S),a.addEventListener("dblclick",e=>{e.preventDefault(),t.scale>1.01||Math.abs(t.tx)>1||Math.abs(t.ty)>1?r():o(2.5,e.clientX,e.clientY);}),l.addEventListener("click",e=>{e.target.closest("[data-blp-viewer-close]")?n():e.target.closest(".blp-viewer__tool, .blp-viewer__nav, .blp-viewer__film, .blp-viewer__chrome, .blp-viewer__counter, .blp-viewer__title")||(u?u=false:b(e.clientX,e.clientY)||n());});}(),document.body.appendChild(v),document.addEventListener("keydown",y,true),c(S),t},close:n,isOpen:function(){var e;return Boolean(null==(e=null==t?void 0:t.root)?void 0:e.isConnected)},go:u,show:c,zoomBy:s,resetTransform:r}})();function ra(e){return ia.open(e)}function oa(e,t){ra({items:e,index:t,title:ne.steamGalleryTitle});}function sa(e){return "hit"===e?ne.debugCacheHit:"miss"===e?ne.debugCacheMiss:"mixed"===e?ne.debugCacheMixed:ne.debugCacheNa}function la(e,t,{titleSelector:a=".game-details-header"}={}){var n;if(!e)return;const i=["hit","miss","mixed","na"];e.classList.remove("blp-debug-cache",...i.map(e=>`blp-debug-cache--${e}`));const r=e.querySelector(a);if(null==(n=null==r?void 0:r.querySelector(".blp-cache-badge"))||n.remove(),!te.debugMode)return;const o=i.includes(t)?t:"na";if(e.classList.add("blp-debug-cache",`blp-debug-cache--${o}`),!r)return;const s=document.createElement("span");s.className=`blp-cache-badge blp-cache-badge--${o}`,s.textContent=sa(o),s.title=sa(o),r.appendChild(s);}function ca(e,t){let a=0;return function(...n){clearTimeout(a),a=setTimeout(()=>e.apply(this,n),t);}}const ua="blp-toast-host",da="blp_toast_queue",ma={success:'',info:'',warning:'',error:''};function pa(e){if(!e||"1"===e.dataset.blpLeaving)return;e.dataset.blpLeaving="1",e.classList.add("is-leaving");const t=()=>e.remove();e.addEventListener("transitionend",t,{once:true}),setTimeout(t,320);}function ga(e,t={}){let a="",n="",i=t;e&&"object"==typeof e&&!Array.isArray(e)?(i={...e,...t},a=i.title||"",n=i.message||i.description||""):(n=String(e||""),a=t.title||"");const r=function(e){return ["info","success","warning","error"].includes(e)?e:"info"}(i.type);return a=String(a||"").trim()||function(e){return "success"===e?ne.toastTitleSuccess||"Success":"warning"===e?ne.toastTitleWarning||"Notice":"error"===e?ne.toastTitleError||"Error":ne.toastTitleInfo||"Info"}(r),n=String(n||"").trim(),{title:a,message:n,type:r,duration:Number.isFinite(i.duration)&&i.duration>0?i.duration:4200}}function ha(e,t={}){const{title:a,message:n,type:i,duration:r}=ga(e,t);if(!a&&!n)return null;const o=function(){let e=document.getElementById(ua);return (null==e?void 0:e.isConnected)||(e=document.createElement("div"),e.id=ua,e.className="blp-toast-host",e.setAttribute("aria-live","polite"),e.setAttribute("aria-relevant","additions"),(document.body||document.documentElement).appendChild(e)),e}();for(;o.children.length>=4;)pa(o.firstElementChild);const s=ne.toastDismiss||"Dismiss",l=document.createElement("div");l.className=`blp-toast blp-toast--${i}`,l.setAttribute("role","status"),l.innerHTML=``+(a?`${de(a)}`:"")+(n?`${de(n)}`:"")+``+(r<1/0?``:"");const c=l.querySelector(".blp-toast__close");if(null==c||c.addEventListener("click",e=>{e.stopPropagation(),pa(l);}),l.addEventListener("click",e=>{e.target.closest(".blp-toast__close")||pa(l);}),o.appendChild(l),requestAnimationFrame(()=>{l.classList.add("is-in");}),r<1/0){let e=r,t=Date.now(),a=setTimeout(()=>pa(l),e);const n=l.querySelector(".blp-toast__progress");l.addEventListener("mouseenter",()=>{clearTimeout(a),e-=Date.now()-t,n&&(n.style.animationPlayState="paused");}),l.addEventListener("mouseleave",()=>{"1"!==l.dataset.blpLeaving&&(t=Date.now(),a=setTimeout(()=>pa(l),Math.max(0,e)),n&&(n.style.animationPlayState="running"));});}return l}function ba(){return true===te.showExport}const Sa=["Name","Favorite","Status","Rating","Expected Rating","Difficulty","Received","Platform","Date start","Date end","Time to Complete","Developer","Release date","Franchise","Is DLC","Tags","Advantages","Disadvantages","Passing","Source"],fa="data-blp-export",va="blp-export-backdrop";function wa(e,t="text"){return null==e?"":"numeric"===t?function(e){const t=Math.round(Number(e));if(!Number.isFinite(t)||t<1)return "";const a=Math.min(10,Math.max(1,t))/2;return Number.isInteger(a)?String(a):a.toFixed(1)}(e):function(e){const t=Math.round(Number(e));if(!Number.isFinite(t)||t<1)return "";switch(Math.min(10,Math.max(1,t))){case 1:return "Terrible";case 2:return "Bad";case 3:case 4:return "Mediocre";case 5:return "Normal";case 6:return "Good";case 7:return "Great";case 8:case 9:return "Excellent";case 10:return "Amazing";default:return ""}}(e)}function ya(e){const t=null==e?"":String(e);return /[",\r\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t}function ka(e){if(!e)return false;if(String(e.getAttribute("play_type")||"").trim().toLowerCase())return true;if(e.classList.contains("active")||e.classList.contains("selected"))return true;if("true"===e.getAttribute("aria-pressed"))return true;const t=e.closest('[class*="-btn-container"]');return !(!(null==t?void 0:t.classList.contains("active"))&&!(null==t?void 0:t.classList.contains("selected")))}function Pa(e){const t=String(e||"").trim();return t?/^windows\s*pc$/i.test(t)?"PC":t:""}function Ca(){return document.querySelector("#log-editor-full")||document.querySelector("#journal-game-modal .modal-content #log-editor-full")||document.querySelector("#journal-game-modal .modal-body")}function Ba(e){const t=String(e||"").trim().toLowerCase().replace(/\s+/g," ");return t?"completed"===t||"played"===t||"done"===t?"played":"playing"===t||"in progress"===t?"playing":"backlog"===t?"backlog":"wishlist"===t?"wishlist":"retired"===t?"retired":"shelved"===t?"shelved":"abandoned"===t?"abandoned":"":""}const xa={wishlist:"Planned",backlog:"Planned",playing:"In progress",shelved:"Deferred",abandoned:"Dropped",retired:"Tried",played:"Done"},Da={wishlist:"Wishlist",backlog:"Backlog",playing:"Playing",shelved:"Shelved",abandoned:"Abandoned",retired:"Retired",played:"Played"};function Ha(e,t="notion"){const a=Ba(e);return "original"===t?a&&Da[a]||"":a?xa[a]||"":"Not started"}function Ta(){var e,t;const a=Ca();if(a){if(a.querySelector("#playing_toggle_checkbox:checked"))return "playing";if(a.querySelector("#backlog_toggle_checkbox:checked"))return "backlog";if(a.querySelector("#wishlist_toggle_checkbox:checked"))return "wishlist";const n=Ba(null==(e=a.querySelector("#status"))?void 0:e.value);return n||Ba(((null==(t=a.querySelector("#play-label-title"))?void 0:t.textContent)||"").trim())}const n=[[".played-btn-container .btn-play, .played-btn-container button","played"],[".playing-btn-container .btn-play, .playing-btn-container button","playing"],[".backlog-btn-container .btn-play, .backlog-btn-container button","backlog"],[".wishlist-btn-container .btn-play, .wishlist-btn-container button","wishlist"]];for(const[i,r]of n){const e=document.querySelectorAll(`#logging-sidebar-section ${i}`);for(const t of e)if(ka(t))return r}return ""}function Aa(){const e=Ca();if(e){const t=e.querySelector("#log_liked_checkbox");if(t)return t.checked?"Yes":"No"}const t=document.querySelector("#logging-sidebar-section .like-game-btn, .like-game-btn");return t?t.classList.contains("active")||t.classList.contains("liked")||t.querySelector(".fa-solid.fa-heart, i.fa-heart.fa-solid")?"Yes":t.querySelector(".fa-regular.fa-heart")?"No":"":""}function Ga(e){const t=String(e||"").trim();if(!t)return "";const a=new Date(t);if(!Number.isNaN(a.getTime()))try{return a.toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}catch(n){}return t}function _a(){const e=document.querySelector(".game-parent-category");if(!e)return "No";const t=(e.textContent||"").replace(/\s+/g," ").trim();return /DLC/i.test(t)?"Yes":"No"}function Ma(){const e=[...document.querySelectorAll('#game-body .game-title-section a[href*="/company/"], #interaction-sidebar .game-subtitle a[href*="/company/"]')],t=[];for(const a of e){const e=(a.textContent||"").trim();e&&!t.includes(e)&&t.push(e);}return t.join(", ")}function La(){const e=document.querySelector('#game-body a[href*="release_year:"], #game_detail_section a[href*="release_year:"], a.game-year'),t=[...document.querySelectorAll('#game-body a[href*="release_year:"], #game_detail_section a[href*="release_year:"]')].map(e=>(e.textContent||"").trim()).filter(e=>/\d/.test(e)&&/[a-z]/i.test(e));return t.length?t[0]:((null==e?void 0:e.textContent)||"").trim()}function $a(){const e=function(){var e;const t=Ca();if(!t)return "";const a=function(e,t=document){var a;const n=t.querySelector(`button[data-id="${e}"]`),i=((null==(a=null==n?void 0:n.querySelector(".filter-option-inner-inner"))?void 0:a.textContent)||(null==n?void 0:n.getAttribute("title"))||"").trim();if(i&&!/select|choose|ex:/i.test(i))return i;const r=t.querySelector(`#${e}`);if(!r)return "";const o=r.querySelector("option:checked")||[...r.selectedOptions||[]][0];return ((null==o?void 0:o.textContent)||"").trim()}("playthrough_platform",t);return Pa(a||((null==(e=t.querySelector("#playthrough-container .btn-nav.current .playthrough-option-title"))?void 0:e.textContent)||"").trim())}();if(e)return e;const t=document.querySelector("#game-body #game-page-platforms, #game-page-platforms")||document.querySelector("#game_detail_section");if(!t)return "";const a=[...t.querySelectorAll('a[href*="release_platform:"]')].map(e=>(e.textContent||"").trim()).filter(Boolean);return [...new Set(a)].map(e=>Pa(e)).join(", ")}function Ia(){const e=[...document.querySelectorAll('[data-blp-enrich="steam"] .blp-steam-tag')].map(e=>(e.textContent||"").trim()).filter(Boolean);return [...new Set(e)].join(", ")}function Ra(){const e=document.querySelector('[data-blp-enrich="steamdb"] [data-blp-sdb="franchise"] .blp-sdb-fact__value');return String((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim()}function Ea(){var e,t,a;const n=(null==(e=document.querySelector(`[${p}="cover"]`))?void 0:e.getAttribute("data-blp-appid"))||(null==(t=document.querySelector(`[${p}="icon"]`))?void 0:t.getAttribute("data-blp-appid"))||"";if(n)return `https://store.steampowered.com/app/${n}/`;const i=document.querySelector('[data-blp-enrich="links"] a[href*="store.steampowered.com/app/"]');return (null==(a=null==i?void 0:i.href)?void 0:a.split("?")[0])||""}function Na(e,{ratingStyle:t="text",statusStyle:a="notion"}={}){var n;const i={};for(const r of Sa)i[r]=null!=(n=e[r])?n:"";return i.Rating=wa(e._ratingScore10,t),i.Status=Ha(e._statusKey,a),i}const Oa={csv:{ext:"csv",mime:"text/csv;charset=utf-8",bom:true,build:function(e,t={}){return function(e,t=Sa){const a=[t.map(ya).join(",")];for(const n of e)a.push(t.map(e=>{var t;return ya(null!=(t=n[e])?t:"")}).join(","));return `${a.join("\r\n")}\r\n`}([Na(e,t)])}},markdown:{ext:"md",mime:"text/markdown;charset=utf-8",bom:false,build:function(e,t={}){var a;const n=Na(e,t),i=[`# ${n.Name||"Untitled"}`,""];for(const r of Sa)"Name"!==r&&i.push(`${r}: ${null!=(a=n[r])?a:""}`);return `${i.join("\n")}\n`}},json:{ext:"json",mime:"application/json;charset=utf-8",bom:false,build:function(e,t={}){return `${JSON.stringify(Na(e,t),null,2)}\n`}}};function Fa(e,t,a={}){const n=Oa[e];if(!n)return null;const i=n.build(t,a);return {ext:n.ext,mime:n.mime,text:n.bom?`\ufeff${i}`:i,copyText:i}}function za({includeLogEditor:e=true}={}){document.querySelectorAll(`[${fa}="btn"]`).forEach(e=>e.remove()),e&&document.querySelectorAll(`[${fa}="log-btn"]`).forEach(e=>e.remove()),document.querySelectorAll(`.${va}`).forEach(e=>e.remove());}function Ua(e){e&&"1"!==e.dataset.blpExportBound&&(e.dataset.blpExportBound="1",e.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),function(){var e,t,a,n;if(!ba())return;if(document.querySelector(`.${va}`))return;if(!Jt().isGamePage&&!Ca())return;const i=function(){const e=function(){var e,t;const a=Ca();if(!a)return {start:"",end:""};const n=((null==(e=a.querySelector("#started-on-datepicker"))?void 0:e.value)||"").trim(),i=((null==(t=a.querySelector("#finished-on-datepicker"))?void 0:t.value)||"").trim();return {start:Ga(n),end:Ga(i)}}(),t=function(){const e=Ca();if(!e)return "";const t=e.querySelector("h2.main-header");if(!t)return "";const a=t.cloneNode(true);return a.querySelectorAll("small").forEach(e=>e.remove()),(a.textContent||"").trim()}()||Kt(),a=function(){const e=Ca();if(e){const t=e.querySelector('#modal-rating input[name="rating_modal"]:checked');if(t){const e=Number(t.value);if(Number.isFinite(e)&&e>=1&&e<=10)return e}}const t=document.querySelector("#logging-sidebar-section .star-rating-game input.star-radio:checked, .star-rating-game input.star-radio:checked");if(t){const e=Number(t.value);if(Number.isFinite(e)&&e>=1&&e<=10)return e}return null}(),n=function(){const e=Ca();if(!e)return "";const t=(t,a)=>{var n,i;const r=Number(null==(n=e.querySelector(t))?void 0:n.value),o=Number(null==(i=e.querySelector(a))?void 0:i.value),s=Number.isFinite(r)?r:0,l=Number.isFinite(o)?o:0;if(s<=0&&l<=0)return "";const c=s+l/60;return Number.isInteger(c)?String(c):String(Math.round(10*c)/10)};return t("#playthrough-time-finished-hours","#playthrough-time-finished-minutes")||t("#playthrough-time-played-hours","#playthrough-time-played-minutes")||""}()||function(){const e=document.querySelector('[data-blp-enrich="hltb"]');if(!e)return "";const t=e.textContent||"",a=t.match(/Main\s+([\d.]+)\s*h/i)||t.match(/([\d.]+)\s*h/);return a?a[1]:""}();return {Name:t,Favorite:Aa(),Status:"",Rating:"","Expected Rating":"",Difficulty:"",Received:"",Platform:$a(),"Date start":e.start,"Date end":e.end,"Time to Complete":n,Developer:Ma(),"Release date":La(),Franchise:Ra(),"Is DLC":_a(),Tags:Ia(),Advantages:"",Disadvantages:"",Passing:"",Source:Ea(),_ratingScore10:a,_statusKey:Ta()}}(),r=document.createElement("div");r.className=va,r.innerHTML=`\n \n `;const o=document.documentElement.style.overflow;document.documentElement.style.overflow="hidden";const s=()=>{document.documentElement.style.overflow=o,r.remove();},l=()=>{var e;return (null==(e=r.querySelector('input[name="blp-export-rating"]:checked'))?void 0:e.value)||"text"},c=()=>{var e;return (null==(e=r.querySelector('input[name="blp-export-status"]:checked'))?void 0:e.value)||"notion"},u=()=>{var e;return (null==(e=r.querySelector('input[name="blp-export-format"]:checked'))?void 0:e.value)||"csv"},d=()=>{const e=r.querySelector("[data-blp-export-preview]");if(!e)return;const t=document.createElement("div");t.innerHTML=Ja(i,l(),c(),u());const a=t.firstElementChild;a&&e.replaceWith(a);};r.addEventListener("click",e=>{e.target===r&&s();}),null==(e=r.querySelector("[data-blp-export-cancel]"))||e.addEventListener("click",s),r.addEventListener("keydown",e=>{"Escape"===e.key&&(e.preventDefault(),s());}),r.querySelectorAll('input[name="blp-export-format"]').forEach(e=>{e.addEventListener("change",d);}),r.querySelectorAll('input[name="blp-export-rating"]').forEach(e=>{e.addEventListener("change",d);}),r.querySelectorAll('input[name="blp-export-status"]').forEach(e=>{e.addEventListener("change",d);}),null==(t=r.querySelector("[data-blp-export-run]"))||t.addEventListener("click",()=>{const e=u(),t={ratingStyle:l(),statusStyle:c()};try{const n=Fa(e,i,t);if(!n)return void ha(ne.exportFormatUnavailable,{type:"error",title:ne.exportFormatUnavailableTitle});!function(e,t,a="text/csv;charset=utf-8"){const n=new Blob([t],{type:a}),i=URL.createObjectURL(n),r=document.createElement("a");r.href=i,r.download=e,r.rel="noopener",document.body.appendChild(r),r.click(),r.remove(),window.setTimeout(()=>URL.revokeObjectURL(i),2e3);}(`${a=i.Name,String(a||"game").trim().replace(/[<>:"/\\|?*\u0000-\u001f]+/g,"").replace(/\s+/g," ").slice(0,80)||"game"}.${n.ext}`,n.text,n.mime),ha(Q(ne.toastExportDone,{name:i.Name||n.ext.toUpperCase()}),{type:"success",title:ne.toastExportDoneTitle}),s();}catch(n){ha(ne.toastExportFailed,{type:"error",title:ne.toastExportFailedTitle});}var a;}),null==(a=r.querySelector("[data-blp-export-copy]"))||a.addEventListener("click",async()=>{const e=u(),t={ratingStyle:l(),statusStyle:c()};try{const a=Fa(e,i,t);if(!a)return void ha(ne.exportFormatUnavailable,{type:"error",title:ne.exportFormatUnavailableTitle});await async function(e){var t;if(null==(t=navigator.clipboard)?void 0:t.writeText)return void(await navigator.clipboard.writeText(e));const a=document.createElement("textarea");a.value=e,a.setAttribute("readonly",""),a.style.cssText="position:fixed;left:-9999px;top:0",document.body.appendChild(a),a.select();const n=document.execCommand("copy");if(a.remove(),!n)throw new Error("copy failed")}(a.copyText),ha(ne.toastExportCopied,{type:"success",title:ne.toastExportCopiedTitle});}catch(a){ha(ne.toastExportCopyFailed,{type:"error",title:ne.toastExportCopyFailedTitle});}}),document.body.appendChild(r),null==(n=r.querySelector("[data-blp-export-run]"))||n.focus();}();}));}function qa(){var e;if(!ba())return document.querySelectorAll(`[${fa}="log-btn"]`).forEach(e=>e.remove()),null;const t=document.querySelector("#log-editor-footer");if(!t)return null;let a=t.querySelector(`[${fa}="log-btn"]`);if(a)return a;a=document.createElement("div"),a.setAttribute(fa,"log-btn"),a.className="blp-export-log-wrap col-auto my-auto pr-0",a.innerHTML=`\n \n `,Ua(a.querySelector("[data-blp-export-open]"));const n=(null==(e=t.querySelector('[data-dismiss="modal"]'))?void 0:e.closest(".col-auto"))||t.querySelector("#btn-save-log");return n?n.insertAdjacentElement("beforebegin",a):t.appendChild(a),a}let ja=null;function Wa(e,t,a,n,{enabled:i=true,checked:r=false}={}){return `\n \n `}function Va(e){if(null==e)return true;const t=String(e).trim();return !t||"—"===t||t===ne.exportNoRating}function Ja(e,t="text",a="notion",n="csv"){if("json"===n){const n=Na(e,{ratingStyle:t,statusStyle:a}),i=Object.fromEntries(Object.entries(n).filter(([,e])=>!Va(e)));return `\n
\n \n
${de(JSON.stringify(i,null,2))}
\n
\n `}const i=function(e,t="text",a="notion"){var n;const i={};for(const r of Sa)i[r]=null!=(n=e[r])?n:"";return i.Rating=null==e._ratingScore10?"":wa(e._ratingScore10,t)||"",i.Status=function(e,t){return Ha(e,t)||""}(e._statusKey,a),i}(e,t,a),r=Sa.map(e=>{let t="";return "Rating"===e?t="data-blp-export-rating-row":"Status"===e&&(t="data-blp-export-status-row"),function(e,t,a=""){return Va(t)?"":`\n
\n ${de(e)}\n ${de(t)}\n
\n `}(e,i[e],t)}).join("");return `\n
\n \n
\n ${r}\n
\n
\n `}function Ka(e=""){ba()?Jt().isGamePage?(function(e=""){if(!ba()||!Jt().isGamePage)return document.querySelectorAll(`[${fa}="btn"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${fa}="btn"]`);const a=document.querySelector(`[${p}="cover"]`),n=(null==a?void 0:a.parentElement)||document.querySelector("#logging-sidebar-section > div > div")||document.querySelector("#logging-sidebar-section .col.col-md-5")||document.querySelector("#logging-sidebar-section .col-md-5")||document.querySelector("#logging-sidebar-section .col");n&&(t||(t=document.createElement("div"),t.setAttribute(fa,"btn"),t.className="blp-export-wrap",t.innerHTML=`\n \n `,Ua(t.querySelector("[data-blp-export-open]"))),e&&t.setAttribute("data-blp-token",e),a?t.previousElementSibling!==a&&a.insertAdjacentElement("afterend",t):t.parentElement!==n&&n.appendChild(t));}(e),qa()):document.querySelectorAll(`[${fa}="btn"]`).forEach(e=>e.remove()):za();}function Za(){ia.close(),Qt([]),document.querySelectorAll(`[${p}]`).forEach(e=>e.remove());}function Ya(e){return /(?:^|\/)logo\.(png|jpe?g)(?:$|\?)/i.test(String(e||""))}function Qa(e,t,a){if(!e||!t||!a)return;const n=t.getAttribute("src")||"";if(n===a&&t.classList.contains("is-ready")&&t.complete&&t.naturalWidth)return void e.classList.remove("is-loading");const i=()=>{(t.getAttribute("src")||"")===a&&(t.classList.add("is-ready"),e.classList.remove("is-loading"));};if(n===a)return t.addEventListener("load",i,{once:true}),void(t.complete&&t.naturalWidth&&i());const r=t.classList.contains("is-ready")&&Boolean(n),o=String((Number(t.dataset.blpRevealGen||"0")||0)+1);t.dataset.blpRevealGen=o;const s=()=>{t.dataset.blpRevealGen===o&&i();};if(r)return t.classList.remove("is-ready"),void window.setTimeout(()=>{t.dataset.blpRevealGen===o&&(t.addEventListener("load",s,{once:true}),t.src=a,t.complete&&t.naturalWidth&&s());},160);t.classList.remove("is-ready"),e.classList.add("is-loading"),t.addEventListener("load",s,{once:true}),t.src=a,t.complete&&t.naturalWidth&&s();}function Xa(e=""){if(!te.showSteamDbIcon)return document.querySelectorAll(`[${p}="icon"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${p}="icon"]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=document.querySelector("#game-body > div:nth-child(2) > div.row.d-none.d-sm-flex.mx-n1.game-title-section h1")||document.querySelector("#game-body .row.d-none.d-sm-flex.game-title-section h1")||document.querySelector("#game-body .game-title-section.d-none.d-sm-flex h1");if(!a)return null;t=document.createElement("span"),t.setAttribute(p,"icon"),t.className="blp-title-icon-wrap is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML='';const n=t.querySelector("img");return n&&n.addEventListener("error",()=>{if("1"===n.dataset.blpFallback)return void t.remove();n.dataset.blpFallback="1";const e=t.getAttribute("data-blp-appid");e?Qa(t,n,Rt(e,"capsule_sm_120.jpg")):t.remove();}),a.insertAdjacentElement("afterbegin",t),t}function en(e=""){if(!te.showSteamDbCover)return document.querySelectorAll(`[${p}="cover"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${p}="cover"]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=document.querySelector("#logging-sidebar-section > div > div")||document.querySelector("#logging-sidebar-section .col.col-md-5")||document.querySelector("#logging-sidebar-section .col-md-5")||document.querySelector("#logging-sidebar-section .col");if(!a)return null;t=document.createElement("div"),t.setAttribute(p,"cover"),t.className="blp-steamdb-cover is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML='';const n=t.querySelector("img");return n&&n.addEventListener("error",()=>{const e=String(t.dataset.blpFallbacks||"").split("\n").filter(Boolean);let a=Number(t.dataset.blpFallbackIdx||"0")+1;if(t.dataset.blpFallbackIdx=String(a),a{if(t.ctrlKey||t.metaKey)return;if(e.scrollWidth<=e.clientWidth+1)return;const a=t.deltaY;if(Math.abs(t.deltaX)>Math.abs(a))return;if(!a)return;const n=Math.max(0,Math.min(e.scrollWidth-e.clientWidth,e.scrollLeft+a));n!==e.scrollLeft&&(t.preventDefault(),e.scrollLeft=n);},{passive:false}));}function rn(e=""){if(!te.showSteamDbGallery)return document.querySelectorAll(`[${p}="gallery"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${p}="gallery"]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=tn();return a?(t=document.createElement("section"),t.setAttribute(p,"gallery"),t.className="blp-steam-gallery is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML=`\n \n \n `,a.insertAdjacentElement("afterend",t),nn(t.querySelector("[data-blp-gallery-track]")),t):null}function on(e,t="",{final:a=false}={}){var n;e?(te.showSteamDbIcon&&Xa(t),te.showSteamDbCover&&en(t),function(e,t,a=""){if(!te.showSteamDbIcon)return void document.querySelectorAll(`[${p}="icon"]`).forEach(e=>e.remove());if(!e)return;const n=Xa(a);if(!n)return;t&&n.setAttribute("data-blp-appid",String(t));const i=n.querySelector("img.blp-title-icon");i&&(delete i.dataset.blpFallback,Qa(n,i,e));}(e.iconUrl,e.appId,t),function(e,t,{logoIsPortrait:a=false,token:n=""}={}){if(!te.showSteamDbCover)return void document.querySelectorAll(`[${p}="cover"]`).forEach(e=>e.remove());if(!e)return;const i=en(n);if(!i)return;const r=[],o=e=>{e&&!r.includes(e)&&r.push(e);};o(e),o(Rt(t,"header.jpg")),o(Rt(t,"library_600x900.jpg")),o(Rt(t,"logo.png")),i.dataset.blpFallbacks=r.join("\n"),i.dataset.blpFallbackIdx="0",t&&i.setAttribute("data-blp-appid",String(t));const s=i.querySelector("img");if(!s)return;const l=Ya(r[0])&&!a;s.classList.toggle("blp-steamdb-cover__logo",l),Qa(i,s,r[0]);}(e.logoUrl,e.appId,{logoIsPortrait:Boolean(e.logoIsPortrait),token:t}),Ka(t),function(e,t,a="",{final:n=false,coverUrl:i=""}={}){var r;if(!te.showSteamDbGallery)return Qt([]),document.querySelectorAll(`[${p}="gallery"]`).forEach(e=>e.remove()),void Xt([]);const o=!Array.isArray(e),s=function(e,t){const a=[],n=String(t||"").trim();if(n&&a.push({thumb:n,full:n,kind:"cover"}),Array.isArray(e))for(const i of e){const e=String((null==i?void 0:i.thumb)||"").trim(),t=String((null==i?void 0:i.full)||e).trim();(e||t)&&a.push({id:null==i?void 0:i.id,thumb:e||t,full:t||e,kind:"screenshot"});}return a}(o?[]:e,i);if(o&&!i)return void rn(a);if(!s.length)return Qt([]),n?document.querySelectorAll(`[${p}="gallery"]`).forEach(e=>e.remove()):rn(a),void Xt([]);const l=rn(a);if(!l)return;const c=`${t||""}|${s.length}|${(null==(r=s[0])?void 0:r.full)||""}|${o?"p":"d"}`;if("1"===l.dataset.blpGalleryReady&&l.dataset.blpGalleryKey===c)return a&&l.setAttribute("data-blp-token",a),Qt(s),void Xt(s);t&&l.setAttribute("data-blp-appid",String(t)),a&&l.setAttribute("data-blp-token",a),l.dataset.blpGalleryReady="1",l.dataset.blpGalleryKey=c,l.dataset.blpGalleryCount=String(s.length),Qt(s);const u=t?`${R}/${t}/screenshots/`:`${R}/`,d=s.map((e,t)=>{const a=me(e.thumb||e.full);return `\n \n `}).join("");l.classList.remove("is-loading"),l.innerHTML=`\n \n \n `,l.querySelectorAll(".blp-steam-gallery__item img").forEach(e=>{const t=()=>e.classList.add("is-ready");e.addEventListener("load",t,{once:true}),e.complete&&e.naturalWidth&&t();}),l.querySelectorAll("[data-blp-gallery-index]").forEach(e=>{e.addEventListener("click",()=>{const t=Number(e.getAttribute("data-blp-gallery-index"));oa(s,t);});}),nn(l.querySelector("[data-blp-gallery-track]")),Xt(s);}(e.screenshots,e.appId,t,{final:a,coverUrl:e.logoUrl||""}),"steamdb"===e.source&&e.logoUrl&&Ya(e.logoUrl)&&(null==(n=document.querySelector(`[${p}="cover"] img`))||n.classList.add("blp-steamdb-cover__logo")),t&&document.querySelectorAll(`[${p}]`).forEach(e=>{e.setAttribute("data-blp-token",t);})):Za();}function sn(){document.querySelectorAll(`[${g}]`).forEach(e=>e.remove());}function ln(e=""){if(!te.showSimilarGames)return sn(),null;let t=document.querySelector(`[${g}]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=document.querySelector(`[${p}="gallery"]`)||tn();return a?(t=document.createElement("section"),t.setAttribute(g,"1"),t.className="blp-similar is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML=`\n
\n ${de(ne.similarGamesTitle)}\n
\n
\n \n \n \n \n \n
\n `,a.insertAdjacentElement("afterend",t),nn(t.querySelector("[data-blp-similar-track]")),t):null}const cn="data-blp-game-id";function un(){document.querySelectorAll(`[${cn}]`).forEach(e=>e.remove());}function dn(e,t){let a=e.querySelector(`[${cn}]`);if(a){if(a.getAttribute(cn)===t)return a;a.remove();}return a=document.createElement("button"),a.type="button",a.setAttribute(cn,t),a.className="blp-game-id",a.textContent=`#${t}`,a.title=ne.gameIdCopyLabel||"",a.setAttribute("aria-label",ne.gameIdCopyLabel||`Copy ${t}`),a.addEventListener("click",async e=>{e.preventDefault(),e.stopPropagation();try{await async function(e){var t;if(null==(t=navigator.clipboard)?void 0:t.writeText)return void(await navigator.clipboard.writeText(e));const a=document.createElement("textarea");a.value=e,a.setAttribute("readonly",""),a.style.position="fixed",a.style.left="-9999px",document.body.appendChild(a),a.select();const n=document.execCommand("copy");if(a.remove(),!n)throw new Error("copy failed")}(t),ha(Q(ne.toastGameIdCopied,{id:t}),{type:"success",title:ne.toastGameIdCopiedTitle});}catch(a){ha(ne.toastExportCopyFailed,{type:"error",title:ne.toastExportCopyFailedTitle});}}),e.appendChild(a),a}function mn(){if(!te.showGameId)return void un();const e=function(){const e=document.getElementById("game-page-meta"),t=(null==e?void 0:e.getAttribute("data-game-id"))||"",a=String(t).trim();return /^\d+$/.test(a)?a:""}();if(!e)return void un();const t=function(){const e=new Set,t=[];for(const a of document.querySelectorAll("#game-body .game-title-section h1"))a.closest("#game-rating, #ratings-bars-height, .game-rating")||e.has(a)||(e.add(a),t.push(a));return t}();if(!t.length)return void un();const a=new Set;for(const n of t)a.add(dn(n,e));document.querySelectorAll(`[${cn}]`).forEach(e=>{a.has(e)||e.remove();});}function pn(e=""){document.querySelectorAll(`#game-rating [${m}="unified-rating"]`).forEach(e=>e.remove());const t=tn();if(!t)return null;let a=document.querySelector(`.blp-unified-rating-row[${m}="unified-rating"]`);if(a)return e&&a.setAttribute("data-blp-token",e),a.nextElementSibling!==t&&t.insertAdjacentElement("beforebegin",a),a;const n=[["steam",ne.unifiedRatingSteam],["metacritic",ne.unifiedRatingMetacritic],["opencritic",ne.unifiedRatingOpenCritic],["backloggd",ne.unifiedRatingBackloggd]].map(([e,t])=>`
\n ${de(t)}\n \n \n
`).join("");return a=document.createElement("div"),a.className="row blp-unified-rating-row",a.setAttribute(m,"unified-rating"),e&&a.setAttribute("data-blp-token",e),a.innerHTML=`\n
\n
\n
\n
\n

${de(ne.unifiedRatingTitle)}

\n

\n \n
\n
\n
\n

${de(ne.unifiedRatingHint)}

\n

${de(ne.unifiedRatingLoading)}

\n
\n
\n
\n
\n
${n}
\n
\n
\n
\n
\n `,t.insertAdjacentElement("beforebegin",a),a}function gn(e){const t=Number(e);return !Number.isFinite(t)||t<0||t>100?null:t}function hn(e){return (Math.round(10*e)/10).toFixed(1)}function bn(){var e,t;try{return Boolean(null==(t=null==(e=window.matchMedia)?void 0:e.call(window,"(prefers-reduced-motion: reduce)"))?void 0:t.matches)}catch(a){return false}}let Sn=0;function fn(e,t,a,{indeterminate:n}){if(!e||!t)return;if(n)return e.classList.add("blp-unified-rating__meter--loading"),void(t.style.width="36%");const i=e.classList.contains("blp-unified-rating__meter--loading");e.classList.remove("blp-unified-rating__meter--loading");const r=`${Math.max(0,Math.min(100,a))}%`;!i&&t.style.width&&"0%"!==t.style.width&&"36%"!==t.style.width||(t.style.transition="none",t.style.width="0%",t.style.removeProperty("transition")),t.style.width=r;}function vn(e,t){var a;if(!e)return;const n=e.dataset.blpStatus||"",i=t.status;if(e.classList.toggle("is-loading","loading"===i),e.classList.toggle("is-missing","missing"===i),"loading"===i)return void("loading"!==n&&(e.dataset.blpStatus=i,e.innerHTML=`\n ${de(t.label)}\n \n \n `));const r=`${i}|${t.display||""}|${null!=(a=t.score5)?a:""}`;if(n===i&&e.dataset.blpDisplay===r)return;e.dataset.blpStatus=i,e.dataset.blpDisplay=r;const o="missing"===i?ne.unifiedRatingMissing:de(t.display),s="missing"===i?"":`${de(hn(t.score5))} ★`;e.innerHTML=`\n ${de(t.label)}\n ${o}\n ${s}\n `,"ready"!==i||"loading"!==n||bn()||(e.classList.remove("is-reveal"),e.classList.add("is-reveal"));}function wn(e){var t,a,n,i;const r=document.querySelector(`.blp-unified-rating-row[${m}="unified-rating"]`);if(!r)return;const o=r.querySelector(".blp-unified-rating");if(!o)return;const s=null!=(null==e?void 0:e.steam),l=!(false!==te.showOpenCritic)||null!=(null==e?void 0:e.opencritic),c=function(){const e=document.querySelectorAll("#game-rating h1, .game-rating h1");for(const t of e){const e=((null==t?void 0:t.textContent)||"").trim().replace(",","."),a=Number(e);if(Number.isFinite(a)&&a>0)return Math.max(0,Math.min(5,a))}return null}(),u=(null==(t=null==e?void 0:e.steam)?void 0:t.reviews)?function(e){if(!e||!e.total_reviews)return null;const t=e.total_positive/e.total_reviews*100;return Number.isFinite(t)?Math.round(t):null}(e.steam.reviews):null,d=null!=(null==(n=null==(a=null==e?void 0:e.steam)?void 0:a.metacritic)?void 0:n.score)?gn(e.steam.metacritic.score):null,p=null!=(null==(i=null==e?void 0:e.opencritic)?void 0:i.score)?gn(e.opencritic.score):null,g=[{key:"steam",label:ne.unifiedRatingSteam,display:null!=u?`${u}%`:null,score5:null!=u?u/20:null,status:s?null!=u?"ready":"missing":"loading"},{key:"metacritic",label:ne.unifiedRatingMetacritic,display:null!=d?String(d):null,score5:null!=d?d/20:null,status:s?null!=d?"ready":"missing":"loading"},{key:"opencritic",label:ne.unifiedRatingOpenCritic,display:null!=p?String(p):null,score5:null!=p?p/20:null,status:l?null!=p?"ready":"missing":"loading"},{key:"backloggd",label:ne.unifiedRatingBackloggd,display:null!=c?hn(c):null,score5:c,status:null!=c?"ready":"missing"}],h=g.filter(e=>"ready"===e.status),b=h.filter(e=>"backloggd"!==e.key),S=g.some(e=>"loading"===e.status);if(b.length)r.style.display="";else {if(s&&l)return void(r.style.display="none");r.style.display="";}const f=h.length>0&&b.length>0,v=f?h.reduce((e,t)=>e+t.score5,0)/h.length:null,w=null!=v?Math.round(10*v)/10:null,y=null==w?"mid":w>=4?"high":w>=3?"mid":"low",k=null!=w?Math.max(0,Math.min(100,w/5*100)):0;o.classList.toggle("is-loading",S&&!f),o.setAttribute("data-grade",y);const P=o.querySelector(".blp-unified-rating__num"),C=o.querySelector(".blp-unified-rating__denom"),B=o.querySelector(".blp-unified-rating__hint"),x=o.querySelector(".blp-unified-rating__meter"),D=o.querySelector(".blp-unified-rating__meter-fill");f&&null!=w?(function(e,t){if(!e)return;const a=Number(t);if(!Number.isFinite(a))return;const n=bn(),i=e.dataset.blpNum,r=null!=i&&""!==i?Number(i):NaN;e.dataset.blpNum=String(a),e.classList.remove("is-skel");const o=t=>{e.textContent=hn(t),n||(e.classList.remove("is-pulse"),e.classList.add("is-pulse"));};if(n||!Number.isFinite(r)||Math.abs(r-a)<.05)return void o(a);const s=++Sn,l=performance.now(),c=r,u=t=>{if(s!==Sn)return;const n=Math.min(1,(t-l)/480),i=1-Math.pow(1-n,3);e.textContent=hn(c+(a-c)*i),n<1?requestAnimationFrame(u):o(a);};requestAnimationFrame(u);}(P,w),C&&(C.textContent=ne.unifiedRatingOutOf),B&&(B.textContent=S?ne.unifiedRatingLoading:Q(ne.unifiedRatingSources,{n:h.length})),fn(x,D,k,{indeterminate:false})):(P&&(P.classList.add("is-skel"),P.classList.remove("is-pulse"),delete P.dataset.blpNum,P.innerHTML=''),C&&(C.innerHTML=''),B&&(B.textContent=ne.unifiedRatingLoading),fn(x,D,0,{indeterminate:true}));for(const m of g)vn(o.querySelector(`.blp-unified-rating__cell[data-blp-provider="${m.key}"]`)||null,m);}function yn(e){const t=Number(e);return Number.isFinite(t)?t>=75?"high":t>=50?"mid":"low":""}function kn(e){const t=Number(e);return 3===t?{key:"verified",label:ne.deckVerified,cls:"blp-deck-badge--verified"}:2===t?{key:"playable",label:ne.deckPlayable,cls:"blp-deck-badge--playable"}:1===t?{key:"unsupported",label:ne.deckUnsupported,cls:"blp-deck-badge--unsupported"}:0===t?{key:"unknown",label:ne.deckUnknown,cls:"blp-deck-badge--unknown"}:null}function Pn(e,t){return (null==e?void 0:e.franchise)||(null==t?void 0:t.franchise)||null}function Cn(e,t){return (null==e?void 0:e.systems)||(null==t?void 0:t.systems)||null}function Bn(e,{appId:t=null}={}){if(!e)return "";const a=[],n=Array.isArray(e.list)?e.list.filter(Boolean):[],i=t?`${R}/${t}/`:`${R}/`;for(const o of n)a.push(`${de(o)}`);const r=kn(e.deckCompat);return r&&a.push(`${de(Q(ne.steamDeckStatus,{status:r.label}))}`),a.length?`${a.join("")}`:""}function xn(e){const t=Array.isArray(e)?e.filter(e=>null==e?void 0:e.name):[];return t.length?`${t.map(e=>`${de(e.name)}`).join("")}`:""}function Dn(e,{appId:t=null}={}){const a=function(e){if(!e)return "";const t=e.iso;if(t){const e=Date.parse(t);if(Number.isFinite(e))try{return new Date(e).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",timeZoneName:"short"})}catch(a){}}return String(e.label||"").trim()}(e);return a?`${de(a)}`:""}function Hn(e,t,a=""){return t?`
\n ${de(e)}\n ${t}\n
`:""}function Tn(e){const t=Number(null==e?void 0:e.review_score);if(!Number.isFinite(t)||t<=0){if(!(null==e?void 0:e.total_reviews))return "";const t=e.total_positive/e.total_reviews*100;return t>=80?"blp-review--very-positive":t>=70?"blp-review--mostly-positive":t>=40?"blp-review--mixed":"blp-review--mostly-negative"}return {1:"blp-review--overwhelmingly-negative",2:"blp-review--very-negative",3:"blp-review--negative",4:"blp-review--mostly-negative",5:"blp-review--mixed",6:"blp-review--mostly-positive",7:"blp-review--positive",8:"blp-review--very-positive",9:"blp-review--overwhelming"}[t]||""}function An(e){if(!e||!e.total_reviews)return null;const t=Math.round(e.total_positive/e.total_reviews*100),a=e.review_score_desc||"";return a?`${a} (${t}%)`:`${t}%`}function Gn(e){if(!(null==e?void 0:e.found))return null;if(e.isFree)return ne.free;if(!e.price)return null;let t=e.price.final_formatted||"";return !t&&Number.isFinite(e.price.final)&&(t=(e.price.final/100).toFixed(2),e.price.currency&&(t=`${t} ${e.price.currency}`)),t||null}function _n({title:e,slug:t,igdbUrl:a,steam:n}){const i=encodeURIComponent(e||t||""),r=[];a&&r.push({key:"igdb",label:ne.linkIgdb,url:a}),(null==n?void 0:n.storeUrl)?r.push({key:"steam",label:ne.linkSteam,url:n.storeUrl}):i&&r.push({key:"steam",label:ne.linkSteam,url:`https://store.steampowered.com/search/?term=${i}`}),(null==n?void 0:n.appId)?r.push({key:"steamdb",label:ne.linkSteamDb,url:`https://steamdb.info/app/${n.appId}/`}):i&&r.push({key:"steamdb",label:ne.linkSteamDb,url:`https://steamdb.info/search/?a=app&q=${i}`});const o=rt(e,t);if(o&&r.push({key:"metacritic",label:ne.linkMetacritic,url:o}),i&&(r.push({key:"opencritic",label:ne.linkOpencritic,url:`https://opencritic.com/search?q=${i}`}),r.push({key:"hltb",label:ne.linkHltb,url:`https://howlongtobeat.com/?q=${i}`}),r.push({key:"pcgamingwiki",label:ne.linkPcgamingwiki,url:`https://www.pcgamingwiki.com/wiki/Special:Search?search=${i}`}),r.push((null==n?void 0:n.appId)?{key:"itad",label:ne.linkItad,url:`${M}/steam/app/${n.appId}/`}:{key:"itad",label:ne.linkItad,url:`${M}/search/?q=${i}`}),r.push({key:"gogdb",label:ne.linkGogdb,url:`https://www.gogdb.org/?q=${i}`})),null==n?void 0:n.appId){const a=it(n.name||e)||String(t||"").replace(/^\/+|\/+$/g,"").replace(/--\d+$/i,"");r.push({key:"gameslike",label:ne.linkGameslike,url:a?`${L}/app/${n.appId}/${a}`:`${L}/app/${n.appId}`});}return r.filter(e=>{return t=te,Boolean(t.showLinks&&t.links&&false!==t.links[e.key]);var t;})}function Mn(){document.querySelectorAll(`[${m}]`).forEach(e=>e.remove()),document.querySelectorAll("[data-blp-debug]").forEach(e=>e.remove()),Za(),za({includeLogEditor:false}),un(),sn(),document.querySelectorAll(`img[${ea}]`).forEach(e=>{e.removeEventListener("click",ta),e.removeEventListener("keydown",aa),e.removeAttribute(ea),e.classList.remove("blp-cover-zoomable"),e.removeAttribute("role"),e.removeAttribute("tabindex"),e.removeAttribute("aria-label");}),document.querySelectorAll("[data-blp-hide-game-stats]").forEach(e=>{e.removeAttribute("data-blp-hide-game-stats");});}function Ln(e,t){const a=document.createElement("div");return a.className="row mt-2",a.setAttribute(m,e),a.innerHTML=`\n
\n

${de(t)}

\n
\n
\n `,a}function $n(e){return "links"===e?[0,1,2,3,4].map(()=>'').join(""):"steam"===e?'\n \n \n \n ':"metacritic"===e||"opencritic"===e?'':"hltb"===e?'\n \n \n \n ':"deckproton"===e?'\n \n \n ':"players"===e?'':"steamdb"===e?'\n \n \n \n \n ':"gamestatus"===e?'\n \n \n ':''}function In(e,t){const a=null==e?void 0:e.querySelector("[data-blp-values]");a&&(a.innerHTML=t);}function Rn(e){e&&(e.hidden=true);}function En(e){e&&(e.hidden=false);}function Nn(e){return "owned"===e?`${de(ne.steamOwned)}`:"wishlist"===e?`${de(ne.steamWishlist)}`:""}function On(e,t){if(!t)return "";const a=He(t),n=(null==e?void 0:e.appId)||a||"";return n||te.showSteam?`\n ${de(n?Q(ne.steamMatchLabel,{id:n,source:a||(null==e?void 0:e.manualOverride)?ne.steamMatchManual:ne.steamMatchAuto}):ne.steamFixMatch)}\n \n `:""}function Fn(e,{owned:t=false,wishlist:a=false,slug:n=""}={}){var i,r;const o=[];t?o.push({html:Nn("owned")}):a&&o.push({html:Nn("wishlist")});const s=function(e){var t;const a=Gn(e);if(!a)return "";let n;if((null==(t=e.price)?void 0:t.discount_percent)>0){const t=function(e){if(!((null==e?void 0:e.price)&&e.price.discount_percent>0))return null;let t=e.price.initial_formatted||"";if(!t&&Number.isFinite(e.price.initial)&&(t=(e.price.initial/100).toFixed(2),e.price.currency&&(t=`${t} ${e.price.currency}`)),!t)return null;const a=Gn(e);return a&&t===a?null:t}(e),i=function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return null;try{return new Date(1e3*t).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch(a){return null}}(e.discountEndDate),r=t?`${de(t)}`:"",o=i?`${de(Q(ne.discountEnds,{date:i}))}`:"";n=`\n ${de(Q(ne.discount,{n:e.price.discount_percent}))}\n ${r}${de(a)}\n ${o}\n `;}else n=`${de(a)}`;return function(e,t){var a;if(!te.showPriceConvert||(null==t?void 0:t.isFree)||!(null==(a=null==t?void 0:t.price)?void 0:a.currency))return e;const n=String(t.price.currency).toUpperCase(),i=String(te.convertCurrency||"RUB").toUpperCase();if(!n||!i||n===i)return e;if(!Number.isFinite(Number(t.price.final)))return e;const r=Number(t.price.discount_percent)>0&&Number.isFinite(Number(t.price.initial))&&Number(t.price.initial)>Number(t.price.final)?` data-blp-fx-initial="${me(String(t.price.initial))}"`:"",o=``;return e.includes("")?e.replace("",` ${o}`):`${e} ${o}`}(n,e)}(e);s&&o.push({html:s});const l=An(e.reviews),c=Tn(e.reviews);if(l?o.push({html:`${de(l)}`}):e.recommendations&&o.push({html:`${de(Q(ne.recommendations,{n:e.recommendations.toLocaleString()}))}`}),e.usedUsFallback&&o.push({html:`${de(Q(ne.steamUsFallback,{cc:e.requestedCountry||""}))}`}),false!==te.showSteamCategories&&(null==(i=e.categories)?void 0:i.length)){const t=e.categories.map(e=>{return `${de(e.description)}`;var t;}).join("");o.push({html:`${t}`});}if(false!==te.showSteamTags&&(null==(r=e.tags)?void 0:r.length)){const t=e.tags.map(e=>{return `${de(e.name)}`;var t;}).join("");o.push({html:`${t}`});}const u=On(e,n);return u&&o.push({html:u}),o.length?o.map(e=>`${e.html}`).join(""):`${de(ne.steam)}`}function zn(e,t,a,n){if(!t)return "";const i=n?`${de(ne.debugSrcRequest)}`:"",r=a?`${de(a)}`:"";return `
  • \n
    \n ${i}${de(e)}${r}\n
    \n ${de(t)}\n
  • `}function Un(e,{steam:t,links:a,error:n,owned:i=false,wishlist:r=false,gamestatus:s=null,title:l="",slug:c="",steamDb:u=null,opencritic:d=null,hltb:p=null,proton:g=null,skipDebug:h=false}){var b;const S=Boolean(te.debugMode);if(e.steam)if(n)In(e.steam,`${de(ne.loadError)}${On(t,c)}`),En(e.steam),la(e.steam,Ce(t)||"miss");else if(null==t?void 0:t.found)In(e.steam,Fn(t,{owned:i,wishlist:r,slug:c})),En(e.steam),la(e.steam,Ce(t)||"miss"),async function(e=document){if(!te.showPriceConvert)return;const t=((null==e?void 0:e.querySelectorAll)?e:document).querySelectorAll("[data-blp-fx]");await Promise.all([...t].map(async e=>{const t=e.getAttribute("data-blp-fx-from"),a=e.getAttribute("data-blp-fx-to"),n=Number(e.getAttribute("data-blp-fx-final")),i=e.getAttribute("data-blp-fx-initial"),r=null!=i&&""!==i?Number(i):NaN;if(!t||!a||t===a||!Number.isFinite(n))return;const o=await Je({final:n,initial:Number.isFinite(r)?r:void 0,currency:t,discount_percent:Number.isFinite(r)&&r>n?1:0},a);(null==o?void 0:o.now)&&(o.was?e.innerHTML=`~ ${de(o.now)}~ ${de(o.was)}`:e.textContent=`~ ${o.now}`,e.hidden=false,e.removeAttribute("hidden"));}));}(e.steam);else {const a=S?`${de(ne.notOnSteam)}`:"",n=On(t,c);a||n?(In(e.steam,`${a}${n?`${n}`:""}`),En(e.steam),la(e.steam,Ce(t)||"miss")):Rn(e.steam);}if(e.steamdb){const a=function(e,t){const a=(null==e?void 0:e.appId)||(null==t?void 0:t.appId)||null,n=[Hn(ne.franchise,(i=Pn(e,t),(null==i?void 0:i.name)?`${de(i.name)}`:""),"franchise"),Hn(ne.supportedSystems,Bn(Cn(e,t),{appId:a}),"systems"),Hn(ne.technologies,xn(null==t?void 0:t.technologies),"technologies"),Hn(ne.lastRecordUpdate,Dn(null==t?void 0:t.lastRecordUpdate,{appId:a}),"lastRecordUpdate")].filter(Boolean);var i;return n.length?`
    ${n.join("")}
    `:""}(t,u);a&&!n?(In(e.steamdb,a),En(e.steamdb),la(e.steamdb,Be((null==t?void 0:t.franchise)||(null==t?void 0:t.systems)?t:null,(null==u?void 0:u._cacheMeta)||u))):null==t&&null==u?En(e.steamdb):S&&(null==t?void 0:t.found)?(In(e.steamdb,`${de((null==u?void 0:u.metaBlocked)?ne.steamDbBlocked:"—")}`),En(e.steamdb),la(e.steamdb,(null==u?void 0:u._cacheMeta)||"na")):Rn(e.steamdb);}if(e.metacritic){const a=null==(b=null==t?void 0:t.metacritic)?void 0:b.score;null==a||n?Rn(e.metacritic):(In(e.metacritic,function(e,t){const a=yn(e),n="blp-mc-badge"+(a?` blp-mc-badge--${a}`:""),i=de(String(e));return t?`${i}`:`${i}`}(a,rt(l,c))),En(e.metacritic),la(e.metacritic,Ce(t)||"miss"));}if(e.opencritic)if(null==d)En(e.opencritic);else {const t=(f=d)&&!f.missing&&f.tier?`${de(f.tier)}`:"";t&&!n?(In(e.opencritic,t),En(e.opencritic),la(e.opencritic,Ce(d)||"miss")):Rn(e.opencritic);}var f;if(e.hltb)if(null==p)En(e.hltb);else {const t=function(e){if(!e||e.missing)return "";const t=[],a=Ut(e.main),n=Ut(e.extra),i=Ut(e.complete);return a&&t.push(`${de(Q(ne.hltbMain,{n:a}))}`),n&&t.push(`${de(Q(ne.hltbExtra,{n:n}))}`),i&&t.push(`${de(Q(ne.hltbComplete,{n:i}))}`),t.length?`${t.join("")}`:""}(p);t&&!n?(In(e.hltb,t),En(e.hltb),la(e.hltb,Ce(p)||"miss")):Rn(e.hltb);}if(e.deckproton){const a=function({steam:e,proton:t}){const a=[],n=kn(null==e?void 0:e.deckCompat);if(n&&a.push(`${de(n.label)}`),null==t?void 0:t.tier){const e=t.tier.charAt(0).toUpperCase()+t.tier.slice(1),n=`blp-proton-badge ${function(e){const t=String(e||"").toLowerCase();return "platinum"===t?"blp-proton-badge--platinum":"gold"===t?"blp-proton-badge--gold":"silver"===t?"blp-proton-badge--silver":"bronze"===t?"blp-proton-badge--bronze":"borked"===t?"blp-proton-badge--borked":""}(t.tier)}`.trim();a.push(`${de(Q(ne.protonTier,{tier:e}))}`);}return a.length?`${a.join("")}`:""}({steam:t,proton:g});a&&!n?(In(e.deckproton,a),En(e.deckproton),la(e.deckproton,Be(t,g))):S&&(null==t?void 0:t.found)?(In(e.deckproton,''),En(e.deckproton),la(e.deckproton,Be(t,g))):Rn(e.deckproton);}if(e.players){const t=null==u?void 0:u.players;if(null==t||n)S?(In(e.players,''),En(e.players),la(e.players,"na")):Rn(e.players);else {const a=(null==u?void 0:u.appId)?`${R}/${u.appId}/charts/`:`${R}/`,n=Q(ne.playersOnline,{n:Number(t).toLocaleString()});In(e.players,`${de(n)}`),En(e.players),la(e.players,"miss");}}if(e.gamestatus&&(s&&!s.missing&&s.data?(In(e.gamestatus,function(e){const t=null==e?void 0:e.data;if(!t)return "";const a=Xe(t),n=et(t,a),i=t.slug||e.slug,r=i?`${E}/${encodeURIComponent(i)}`:E,o=[];for(const l of at(t.protections))o.push(`${de(l)}`);for(const l of at(t.hacked_groups_en||t.hacked_groups)){const e=/bypass|обход|hypervisor/i.test(l)?"partial":a;o.push(`${de(l)}`);}t.is_AAA&&o.push('AAA');const s=[`${de(n)}`];return o.length&&s.push(`${o.join("")}`),s.join("")}(s)),En(e.gamestatus),la(e.gamestatus,Ce(s)||"miss")):Rn(e.gamestatus)),e.links)if(null==a?void 0:a.length){const t=a.map((e,t)=>function(e,{last:t=false}={}){const a=function(e){try{const t=new URL(e).hostname.replace(/^www\./,"");return w.replace("{domain}",encodeURIComponent(t))}catch(t){return ""}}(e.url),n=a?``:"",i=t?"":'';return `\n \n \n ${n}${de(e.label)}\n ${i}\n \n `}(e,{last:t===a.length-1})).join("");In(e.links,t),En(e.links),la(e.links,"na");}else Rn(e.links);h||function({steam:e,steamDb:t,gamestatus:a,owned:n=false,wishlist:i=false,error:r=false,title:s="",slug:l=""}){var c,u,d,p;const g=Boolean(document.querySelector("[data-blp-debug][open]"));if(document.querySelectorAll("[data-blp-debug]").forEach(e=>e.remove()),!te.debugMode)return;const h=function({steam:e,steamDb:t,gamestatus:a,title:n,slug:i}){const r=[],o=(e,t,a,n,i=false)=>{a&&!r.some(n=>n.url===a&&n.label===t&&n.module===e)&&r.push({module:e,label:t,url:a,purpose:n||"",request:Boolean(i)});};o("page","Backloggd",location.href,ne.debugSrcBackloggd),i&&o("page","IGDB",Zt(i),ne.debugSrcIgdb);const s=rt(n,i);s&&o("page","Metacritic",s,ne.debugSrcMetacritic),(null==e?void 0:e.storeUrl)&&o("steam","Steam Store",e.storeUrl,ne.debugSrcSteamStore),(null==e?void 0:e.tinyImage)&&o("steam","Steam tiny image",e.tinyImage,ne.debugSrcSteamTiny),(null==e?void 0:e.headerImage)&&o("steam","Steam header image",e.headerImage,ne.debugSrcSteamHeader),(te.showSteamOwned||te.showSteamWishlist)&&o("steam","Steam userdata",C,ne.debugSrcSteamOwned,true);const l=(null==e?void 0:e._debug)||{};for(const d of l.searches||[])(null==d?void 0:d.url)&&o("steam",`Steam search (${d.anonymous?"guest":"session"}, ${d.country||"?"})`,d.url,ne.debugSrcSteamSearch,true);l.detailsUrl&&o("steam","Steam appdetails",l.detailsUrl,ne.debugSrcSteamDetails,true),l.reviewsUrl&&o("steam","Steam appreviews",l.reviewsUrl,ne.debugSrcSteamReviews,true),l.tagsUrl&&o("steam","Steam GetItems (tags)",l.tagsUrl,ne.debugSrcSteamTags,true),l.tagMapUrl&&o("steam","Steam populartags",l.tagMapUrl,ne.debugSrcSteamTagMap,true),(null==e?void 0:e.appId)&&(o("steamdb","SteamDB",`${R}/${e.appId}/`,ne.debugSrcSteamDb),o("steamdb","SteamDB charts",`${R}/${e.appId}/charts/`,ne.debugSrcSteamDbCharts),o("steamdb","SteamDB info",`${R}/${e.appId}/info/`,ne.debugSrcSteamDbInfo));const c=(null==t?void 0:t._debug)||{};c.chartsUrl&&o("steamdb","SteamDB charts",c.chartsUrl,ne.debugSrcSteamDbCharts),c.playersApiUrl&&o("steamdb","Steam players API",c.playersApiUrl,ne.debugSrcSteamPlayersApi,true),(c.iconUrl||(null==t?void 0:t.iconUrl))&&o("steamdb","Icon URL",c.iconUrl||t.iconUrl,ne.debugSrcIcon),(c.logoUrl||(null==t?void 0:t.logoUrl))&&o("steamdb","Logo URL",c.logoUrl||t.logoUrl,ne.debugSrcLogo);const u=(null==a?void 0:a._debug)||{};for(const d of u.attempts||[])(null==d?void 0:d.url)&&o("gamestatus",`GameStatus API (${d.slug||"?"})`,d.url,ne.debugSrcGameStatusApi,true);return (null==a?void 0:a.slug)&&o("gamestatus","GameStatus page",`${E}/${encodeURIComponent(a.slug)}`,ne.debugSrcGameStatusPage),r}({steam:e,steamDb:t,gamestatus:a,title:s,slug:l}),b=function(e){const t=[{key:"page",label:ne.debugSectionPage},{key:"steam",label:ne.debugSectionSteam},{key:"steamdb",label:ne.debugSectionSteamDb},{key:"gamestatus",label:ne.debugSectionGameStatus}],a=[];for(const n of t){const t=e.filter(e=>e.module===n.key).sort((e,t)=>Number(t.request)-Number(e.request));if(!t.length)continue;const i=t.map(e=>zn(e.label,e.url,e.purpose,e.request)).join("");a.push(`\n
    \n
    ${de(n.label)}
    \n
      ${i}
    \n
    \n `);}return a.join("")||`
    ${de("—")}
    `}(h),S=[],f=(e,t,a)=>{let n="";try{n=JSON.stringify(a,null,2);}catch(i){n=String(a);}S.push(`\n
    \n ${de(e)}\n ${de(t||"—")}\n
    ${de(n)}
    \n
    \n `);};f(ne.debugSectionPage,`${s||"—"} / ${l||"—"}`,{href:location.href,title:s,slug:l,settings:{steamCountry:te.steamCountry,showSteam:te.showSteam,showSteamOwned:te.showSteamOwned,showSteamWishlist:te.showSteamWishlist,showSteamTags:te.showSteamTags,showSteamCategories:te.showSteamCategories,showMetacritic:te.showMetacritic,showOpenCritic:te.showOpenCritic,showHltb:te.showHltb,showDeckProton:te.showDeckProton,showGameStatus:te.showGameStatus,showSteamDbIcon:te.showSteamDbIcon,showSteamDbCover:te.showSteamDbCover,showSteamDbGallery:te.showSteamDbGallery,showSteamDbDetails:te.showSteamDbDetails,showSimilarGames:te.showSimilarGames,showGameStats:te.showGameStats,showSteamPlayers:te.showSteamPlayers,showCardBadges:te.showCardBadges,showCardBadgePrice:te.showCardBadgePrice,showCardBadgeReview:te.showCardBadgeReview,showCardBadgeOwned:te.showCardBadgeOwned,showCardBadgeWishlist:te.showCardBadgeWishlist,showCardBadgeGameStatus:te.showCardBadgeGameStatus,showLinks:te.showLinks,links:te.links,steamOverride:He(l)},owned:n,wishlist:i,error:r,SCRIPT_VERSION:o}),f(ne.debugSectionSteam,(null==(c=null==e?void 0:e._debug)?void 0:c.reason)||((null==e?void 0:e.found)?`appId=${e.appId}`:ne.notOnSteam),(null==e?void 0:e._debug)||e||{reason:"Steam payload missing"}),f(ne.debugSectionSteamDb,(null==(u=null==t?void 0:t._debug)?void 0:u.reason)||(t?`source=${t.source}`:"SteamDB extras not fetched"),(null==t?void 0:t._debug)||t||{reason:"SteamDB payload missing"}),f(ne.debugSectionGameStatus,(null==(d=null==a?void 0:a._debug)?void 0:d.reason)||(a&&!a.missing?`slug=${a.slug}`:ne.gsNotInDatabase),(null==a?void 0:a._debug)||a||{reason:"GameStatus payload missing"});const v={page:{href:location.href,title:s,slug:l,owned:n,wishlist:i,error:r,SCRIPT_VERSION:o},steam:(null==e?void 0:e._debug)||e||null,steamDb:(null==t?void 0:t._debug)||t||null,gamestatus:(null==a?void 0:a._debug)||a||null,sources:h};let w="";try{w=JSON.stringify(v,null,2);}catch(x){w=String(v);}const y=document.createElement("details");y.className="blp-debug-panel",y.setAttribute("data-blp-debug","1"),g&&(y.open=true),y.innerHTML=`\n \n

    ${de(ne.debugPanelTitle)} · v${de(o)}

    \n
    \n
    \n
    ${de(ne.debugOwned)}: ${n?ne.on:ne.off}
    \n
    \n ${de(ne.debugSources)}\n
    ${b}
    \n
    \n ${S.join("")}\n
    \n ${de(ne.debugDump)}\n
    ${de(w)}
    \n
    \n
    \n `;const k=document.querySelector(`[${m}]:last-of-type`),P=document.querySelector("#game-body #game-page-platforms, #game-page-platforms"),B=k||P;B?B.insertAdjacentElement("afterend",y):null==(p=document.querySelector("#game-body"))||p.appendChild(y);}({steam:t,steamDb:u,gamestatus:s,owned:i,wishlist:r,error:n,title:l,slug:c});}let qn=0;async function jn(){var e,t,a,n;const i=Jt();if(!i.isGamePage||!i.slug)return void Mn();const r=Kt();if(!r)return void mn();const o=`${i.slug}|${r}|${te.steamCountry}|${te.showSteam}|${te.showSteamOwned}|${te.showSteamWishlist}|${te.showSteamTags}|${te.showSteamCategories}|${te.showMetacritic}|${te.showOpenCritic}|${te.showHltb}|${te.showDeckProton}|${te.showGameStatus}|${te.showLinks}|${te.showSteamDbIcon}|${te.showSteamDbCover}|${te.showSteamDbGallery}|${te.showSteamDbDetails}|${te.showSimilarGames}|${te.showGameStats}|${te.showSteamPlayers}|${te.showExport}|${te.showGameId}|${He(i.slug)||""}|${te.debugMode}|${JSON.stringify(te.links)}`,s=document.querySelector(`[${m}]`);if((null==s?void 0:s.getAttribute("data-blp-token"))===o)return pn(o),an(),na(),Ka(o),void mn();Mn(),mn();const l=function(){const e=document.querySelector("#game-body #game-page-platforms, #game-page-platforms");if(!e)return null;let t=e;if(document.querySelector(`[${m}]`))return {steam:document.querySelector(`[${m}="steam"]`),steamdb:document.querySelector(`[${m}="steamdb"]`),metacritic:document.querySelector(`[${m}="metacritic"]`),opencritic:document.querySelector(`[${m}="opencritic"]`),hltb:document.querySelector(`[${m}="hltb"]`),deckproton:document.querySelector(`[${m}="deckproton"]`),players:document.querySelector(`[${m}="players"]`),gamestatus:document.querySelector(`[${m}="gamestatus"]`),links:document.querySelector(`[${m}="links"]`)};const a={},n=[];te.showSteam&&n.push(["steam",ne.steam]),false!==te.showSteamDbDetails&&n.push(["steamdb",ne.linkSteamDb]),te.showMetacritic&&n.push(["metacritic",ne.metacritic]),te.showOpenCritic&&n.push(["opencritic",ne.openCritic]),te.showHltb&&n.push(["hltb",ne.hltb]),te.showDeckProton&&n.push(["deckproton",ne.deckProton]),te.showSteamPlayers&&n.push(["players",ne.players]),te.showGameStatus&&n.push(["gamestatus",ne.gameStatus]),te.showLinks&&n.push(["links",ne.links]);for(const[i,r]of n){const e=Ln(i,r);e.querySelector("[data-blp-values]").innerHTML=$n(i),t.insertAdjacentElement("afterend",e),t=e,a[i]=e;}return a}();if(!l)return;Object.values(l).forEach(e=>null==e?void 0:e.setAttribute("data-blp-token",o)),pn(o),an(),na();const c=++qn,u=Zt(i.slug),d=()=>c===qn&&Jt().isGamePage,p=te.showSteamDbIcon||te.showSteamDbCover||te.showSteamDbGallery||te.showSteamPlayers||false!==te.showSteamDbDetails,g=te.showSteamDbIcon||te.showSteamDbCover||te.showSteamDbGallery;g?function(e=""){Xa(e),en(e),Ka(e),rn(e);}(o):Ka(o),te.showSimilarGames&&ln(o);const h=te.showSteam||te.showMetacritic||te.showDeckProton||te.showGameStatus||p||te.showSimilarGames||false!==te.showSteamDbDetails||te.showLinks&&(false!==(null==(e=te.links)?void 0:e.itad)||false!==(null==(t=te.links)?void 0:t.steamdb)||false!==(null==(a=te.links)?void 0:a.gameslike)),b=te.showSteam&&(te.showSteamOwned||te.showSteamWishlist),y={steam:null,owned:false,wishlist:false,userdata:null,gamestatus:null,steamDb:null,opencritic:null,hltb:null,proton:null,error:false},k=e=>{if(!d()||!l.links)return;const t=_n({title:r,slug:i.slug,igdbUrl:u,steam:e});Un({links:l.links},{steam:e,links:t,error:y.error,skipDebug:true});},P=()=>{var e;if(y.userdata&&(null==(e=y.steam)?void 0:e.found)&&null!=y.steam.appId){const e=Number(y.steam.appId);y.owned=false!==te.showSteamOwned&&y.userdata.owned.has(e),y.wishlist=!y.owned&&false!==te.showSteamWishlist&&y.userdata.wishlist.has(e);}else y.owned=false,y.wishlist=false;},C=()=>{d()&&null!=y.steam&&(P(),Un({steam:l.steam,steamdb:l.steamdb,metacritic:l.metacritic,deckproton:l.deckproton},{steam:y.steam,steamDb:y.steamDb,proton:y.proton,error:y.error,owned:y.owned,wishlist:y.wishlist,title:r,slug:i.slug,skipDebug:true}),k(y.steam),wn(y));},B=()=>{d()&&Un({steamdb:l.steamdb,players:l.players},{steam:y.steam,steamDb:y.steamDb,error:y.error,skipDebug:true});},x=()=>{d()&&(l.opencritic&&Un({opencritic:l.opencritic},{opencritic:y.opencritic,error:y.error,skipDebug:true}),wn(y));},D=()=>{d()&&l.hltb&&Un({hltb:l.hltb},{hltb:y.hltb,error:y.error,skipDebug:true});},M=()=>{d()&&l.deckproton&&Un({deckproton:l.deckproton},{steam:y.steam,proton:y.proton,error:y.error,skipDebug:true});},L=()=>{d()&&l.players&&Un({players:l.players},{steamDb:y.steamDb,error:y.error,skipDebug:true});},$=()=>{d()&&l.gamestatus&&Un({gamestatus:l.gamestatus},{gamestatus:y.gamestatus,skipDebug:true});};k(null);let I=false,R=Promise.resolve();const E=(e,t)=>({missing:true,data:null,slug:null,_debug:te.debugMode?{reason:t,steamFound:Boolean(null==e?void 0:e.found),steamDebug:(null==e?void 0:e._debug)||null}:void 0}),N=e=>{if(I||!(null==e?void 0:e.found)||null==e.appId)return;I=true;const t=[];p&&t.push(Et(e.appId,{country:te.steamCountry||"US",onPartial:e=>{d()&&(y.steamDb=e,on(e,o),null!=(null==e?void 0:e.players)&&L(),B());}}).then(e=>{d()&&e&&(y.steamDb=e,on(e,o,{final:true}),L(),B());}).catch(t=>{d()&&(y.steamDb={appId:e.appId,iconUrl:"",logoUrl:"",players:null,technologies:[],lastRecordUpdate:null,_debug:te.debugMode?{reason:`SteamDB error: ${(null==t?void 0:t.message)||t}`}:void 0},Za(),L(),B());})),te.showGameStatus&&t.push(Qe({appId:e.appId,storeUrl:e.storeUrl,name:e.name,title:r,pageSlug:i.slug}).then(e=>{d()&&(y.gamestatus=e,$());}).catch(t=>{d()&&(y.gamestatus=E(e,`GameStatus error: ${(null==t?void 0:t.message)||t}`),$());})),te.showDeckProton&&t.push(async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return null;const a=`protondb:${t}`,n=we(a);if(n)return ke(n);if(oe.has(a))return oe.get(a);const i=(async()=>{const e=await ze({url:`https://www.protondb.com/api/v1/reports/summaries/${t}.json`,allow404:true,headers:{Accept:"application/json"},timeout:15e3});if(!e||"object"!=typeof e)return null;const n="string"==typeof e.tier?e.tier:null;if(!n)return null;const i={tier:n,bestReportedTier:e.bestReportedTier||null,confidence:e.confidence||null,score:null!=e.score?Number(e.score):null,total:null!=e.total?Number(e.total):null,url:`https://www.protondb.com/app/${t}`};return ye(a,i),Pe(i)})().catch(()=>null);oe.set(a,i);try{return await i}finally{oe.delete(a);}}(e.appId).then(e=>{d()&&(y.proton=e,M());}).catch(()=>{d()&&M();})),te.showSimilarGames&&(ln(o),t.push(async function(e,t,a){const n=Number(e);if(!Number.isFinite(n)||n<=0)return [];const i=String(a).toUpperCase()||"US",r=`steam:similar:${n}`,o=we(r);if(Array.isArray(o)&&o.length)return ke(o);const s=`similar:${n}:${i}`;if(oe.has(s))return oe.get(s);const l=(async()=>{var e;try{let a=Array.isArray(t)?t:[];a.length||(a=await Dt(n,i).catch(()=>[]));const o=JSON.stringify({item_id:{appid:n},count:12,context:{language:"english",country_code:i,steam_realm:1},data_request:{include_assets:!0,include_basic_info:!0,include_tag_count:12},filters:{type_filters:{include_games:!0,include_dlc:!1,include_demos:!1,include_software:!1,include_video:!1,include_hardware:!1}}}),[s,l]=await Promise.all([ze({url:`https://api.steampowered.com/IStoreQueryService/MoreLikeThis/v1/?input_json=${encodeURIComponent(o)}`}),yt()]),c=(Array.isArray(null==(e=null==s?void 0:s.response)?void 0:e.store_items)?s.response.store_items:[]).map((e,t)=>function(e,t,a,n){var i;const r=Number(null!=(i=null==e?void 0:e.appid)?i:null==e?void 0:e.id);if(!Number.isFinite(r)||r<=0)return null;const o=String((null==e?void 0:e.name)||"").trim();if(!o)return null;const s=(Array.isArray(null==e?void 0:e.tags)?e.tags:[]).slice().sort((e,t)=>(t.weight||0)-(e.weight||0)).map(e=>({id:e.tagid,name:a[e.tagid]||null,weight:e.weight||0})).filter(e=>null!=e.id),{matchPct:l,sharedTagIds:c}=function(e,t){const a=Tt(e),n=Tt(t);if(!a.size||!n.size)return {matchPct:0,sharedTagIds:[]};let i=0,r=0;const o=[],s=new Set([...a.keys(),...n.keys()]);for(const l of s){const e=a.get(l)||0,t=n.get(l)||0;i+=Math.min(e,t),r+=Math.max(e,t),e>0&&t>0&&o.push({id:l,weight:Math.min(e,t)});}return o.sort((e,t)=>t.weight-e.weight),{matchPct:r>0?Math.round(100*i/r):0,sharedTagIds:o.slice(0,2).map(e=>e.id)}}(t,s),u=c.map(e=>{var t;return a[e]||(null==(t=s.find(t=>t.id===e))?void 0:t.name)}).filter(Boolean).slice(0,2),d=function(e,t){if(!t||"object"!=typeof t)return "";const a=Number(e),n=[t.library_capsule_2x,t.library_capsule,t.header_2x,t.header,t.main_capsule_2x,t.main_capsule];for(const i of n){const e=Ht(t,i);if(e)return e;const n=String(i||"").trim();if(n&&Number.isFinite(a)&&a>0)return Rt(a,n)}return ""}(r,null==e?void 0:e.assets),m=it(o);return {appId:r,name:o,coverUrl:d,matchPct:l,sharedTags:u,storeUrl:`https://store.steampowered.com/app/${r}/`,backloggdUrl:m?`https://www.backloggd.com/games/${encodeURIComponent(m)}/`:"",apiIndex:n}}(e,a,l||{},t)).filter(e=>e&&e.appId!==n).sort((e,t)=>t.matchPct!==e.matchPct?t.matchPct-e.matchPct:e.apiIndex-t.apiIndex).slice(0,10).map(({apiIndex:e,...t})=>t);return c.length&&ye(r,c),Pe(c)}catch(a){return Pe([])}})();oe.set(s,l);try{return await l}finally{oe.delete(s);}}(e.appId,e.tags,te.steamCountry||"US").then(t=>{d()&&(function(e,t,a="",{final:n=false}={}){if(!te.showSimilarGames)return void sn();if(!Array.isArray(e)||!e.length)return void(n?sn():ln(a));const i=ln(a);if(!i)return;const r=`${t||""}|${e.map(e=>`${e.appId}:${e.matchPct}`).join(",")}`;if("1"===i.dataset.blpSimilarReady&&i.dataset.blpSimilarKey===r)return a&&i.setAttribute("data-blp-token",a),void la(i,Ce(e)||"miss",{titleSelector:".blp-similar__title"});t&&i.setAttribute("data-blp-appid",String(t)),a&&i.setAttribute("data-blp-token",a),i.dataset.blpSimilarReady="1",i.dataset.blpSimilarKey=r,la(i,Ce(e)||"miss",{titleSelector:".blp-similar__title"});const o=t?`https://store.steampowered.com/app/${t}/`:"https://store.steampowered.com/",s=e.map(e=>{var t;const a=me(e.backloggdUrl||e.storeUrl||"#"),n=me(e.coverUrl||""),i=de(e.name),r=Math.max(0,Math.min(100,Number(e.matchPct)||0)),o=Array.isArray(e.sharedTags)?e.sharedTags.filter(Boolean):[],s=o.length?`${de(o.join(" · "))}`:"",l=me(e.storeUrl||""),c=l?`\n \n `:"",u=Number(e.appId),d=Number.isFinite(u)&&u>0?` ${S}="${me(String(u))}"`:"",m=e.backloggdUrl&&(null==(t=e.backloggdUrl.match(/\/games\/([^/?#]+)/i))?void 0:t[1])||it(e.name)||"";return `\n
    \n
    \n \n ${r}%\n ${de(ne.similarGamesMatch)}\n \n ${c}\n \n ${n?``:""}\n \n
    \n \n ${i}\n ${s}\n \n
    \n `}).join("");i.classList.remove("is-loading"),i.innerHTML=`\n
    \n ${de(ne.similarGamesTitle)}\n Steam\n
    \n
    ${s}
    \n `,i.querySelectorAll(".blp-similar__cover img").forEach(e=>{const t=()=>e.classList.add("is-ready");e.complete&&e.naturalWidth?t():(e.addEventListener("load",t,{once:true}),e.addEventListener("error",t,{once:true}));}),nn(i.querySelector("[data-blp-similar-track]"));}(t,e.appId,o,{final:true}),function(e,t){let a=Promise.resolve();if(t&&t.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))};document.getElementsByTagName("link");const n=document.querySelector("meta[property=csp-nonce]"),i=(null==n?void 0:n.nonce)||(null==n?void 0:n.getAttribute("nonce"));a=e(t.map(e=>{if((e=function(e){return "/"+e}(e))in Ot)return;Ot[e]=true;const t=e.endsWith(".css");if(document.querySelector(`link[href="${e}"]${t?'[rel="stylesheet"]':""}`))return;const a=document.createElement("link");return a.rel=t?"stylesheet":Nt,t||(a.as="script"),a.crossOrigin="",a.href=e,i&&a.setAttribute("nonce",i),document.head.appendChild(a),t?new Promise((t,n)=>{a.addEventListener("load",t),a.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)));}):void 0}));}function n(e){const t=new Event("vite:preloadError",{cancelable:true});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(e=>{for(const t of e||[])"rejected"===t.status&&n(t.reason);return Promise.resolve().then(()=>di).catch(n)})}(0,void 0).then(e=>e.scheduleCardBadges()));}).catch(()=>{d()&&sn();}))),R=Promise.all(t);};try{const e=[];te.showOpenCritic&&e.push(async function(e){const t=String(e||"").trim();if(!t)return null;const a=`opencritic:${st(t)}`,n=we(a);if(n&&(null!=n.score||n.missing||n.scoreParseV2))return ke(n);if(oe.has(a))return oe.get(a);const i=(async()=>{const e=await async function(e){var t;const a=`${H}/game/search?criteria=${encodeURIComponent(e)}`,n=await ze({url:a,headers:{Accept:"application/json",Origin:T,Referer:`${T}/`},timeout:15e3}),i=Wt(Array.isArray(n)?n:[],e);if(!(null==(t=null==i?void 0:i.item)?void 0:t.id))return null;const r=Number(i.item.id);let o=null;try{o=await ze({url:`${H}/game/${r}`,headers:{Accept:"application/json",Origin:T,Referer:`${T}/`},timeout:15e3});}catch(s){o=null;}return function(e,t,a,n){if(!e||"object"!=typeof e)return null;const i="string"==typeof e.tier&&e.tier||"string"==typeof(null==t?void 0:t.tier)&&t.tier||null;if(!i)return null;const r=Number(e.id||(null==t?void 0:t.id)),o=e.slug||(null==t?void 0:t.slug);return {id:r,name:e.name||(null==t?void 0:t.name)||a,tier:i,score:Vt(e.topCriticScore,e.medianScore,null==t?void 0:t.topCriticScore,null==t?void 0:t.medianScore),url:o?`${T}/game/${r}/${encodeURIComponent(o)}`:Number.isFinite(r)?`${T}/game/${r}`:`${T}/search?q=${encodeURIComponent(a)}`,matchScore:n||null,source:"api",scoreParseV2:!0}}(o||i.item,i.item,e,i.score)}(t).catch(()=>null);if(e)return ye(a,e),Pe(e);const n=await async function(e){const t=await async function(e){const t=`${e} site:opencritic.com/game`,a=await ze({url:`https://html.duckduckgo.com/html/?q=${encodeURIComponent(t)}`,responseType:"text",headers:{Accept:"text/html"},timeout:15e3}),n=function(e){const t=[],a=(e,a)=>{const n=Number(e),i=String(a||"").toLowerCase().replace(/[^a-z0-9-]+/g,"").replace(/^-+|-+$/g,"");!Number.isFinite(n)||n<=0||!i||t.some(e=>e.id===n)||t.push({id:n,slug:i,url:`${T}/game/${n}/${i}`,name:i.replace(/-/g," ")});},n=/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/gi;let i;for(;i=n.exec(e);)a(i[1],i[2]);const r=/[?&]uddg=([^&"']+)/gi;for(;i=r.exec(e);)try{const e=decodeURIComponent(i[1]).match(/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/i);e&&a(e[1],e[2]);}catch(o){}return t}(String(a||""));if(!n.length)return null;const i=Wt(n,e);if(null==i?void 0:i.item)return i.item;const r=st(e);return n.find(e=>{const t=st(e.name);return t===r||t.includes(r)||r.includes(t)})||n[0]||null}(e);if(!(null==t?void 0:t.url))return null;const a=function(e,t){const a=String(e||"");if(!a)return null;let n=null,i=null,r=null,o=null;const s=function(e){const t=e.match(/"topCriticScore"\s*:\s*([0-9]+(?:\.[0-9]+)?)/);if(t){const e=Vt(t[1]);if(null!=e)return e}const a=e.match(/(\d{2,3})(?:\s*<[^>]*>|\s| |){0,12}\s*Top Critic Average/i);if(a){const e=Vt(a[1]);if(null!=e)return e}const n=e.match(/Top Critic Average[\s\S]{0,160}?(\d{2,3})/i);if(n){const e=Vt(n[1]);if(null!=e)return e}return null}(a),l=a.match(/"tier"\s*:\s*"(Mighty|Strong|Fair|Weak)"/i);l&&(n=l[1]);const c=a.match(/"name"\s*:\s*"([^"\\]+)"/);c&&(i=c[1]);const u=a.match(/"id"\s*:\s*(\d+)/);u&&(r=Number(u[1]));const d=a.match(/"slug"\s*:\s*"([a-z0-9-]+)"/i);if(d&&(o=d[1]),!n){const e=a.match(/\b(Mighty|Strong|Fair|Weak)\b/);e&&(n=e[1]);}if(!i){const e=a.match(/]*>\s*([^|<]+?)\s*(?:Reviews)?\s*[-–|]/i);e&&(i=e[1].trim());}const m=String(t||"").match(/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/i);return m&&(r||(r=Number(m[1])),o||(o=m[2])),n?{id:r,name:i||o||null,tier:n,score:s,url:r&&o?`${T}/game/${r}/${encodeURIComponent(o)}`:t||T,source:"html",scoreParseV2:!0}:null}(await ze({url:t.url,responseType:"text",headers:{Accept:"text/html",Referer:`${T}/`},timeout:2e4}),t.url);if(!a)return null;if(a.name){const t=pt(a.name,e);if(t>0&&t<50)return null}return a}(t).catch(()=>null);return n?(ye(a,n),Pe(n)):null})().catch(()=>null);oe.set(a,i);try{return await i}finally{oe.delete(a);}}(r).then(e=>{d()&&(y.opencritic=e||{missing:!0},x());}).catch(()=>{d()&&(y.opencritic={missing:!0},x());})),te.showHltb&&e.push(async function(e){const t=String(e||"").trim();if(!t)return null;const a=`hltb:${st(t)}`,n=we(a);if(n)return ke(n);if(oe.has(a))return oe.get(a);const i=(async()=>{const e=async e=>{const a=await async function(e=!1){if(!e&&zt&&Date.now()i&&(i=e,n=r);}return !n||ie.game_name);if(!i)return null;const r=i.item,o=r.game_id,s={id:null!=o?String(o):null,name:r.game_name||t,url:o?`${A}/game/${o}`:`${A}/?q=${encodeURIComponent(t)}`,main:qt(r.comp_main),extra:qt(r.comp_plus),complete:qt(r.comp_100),matchScore:i.score};return s.main||s.extra||s.complete?(ye(a,s),Pe(s)):null})().catch(()=>null);oe.set(a,i);try{return await i}finally{oe.delete(a);}}(r).then(e=>{d()&&(y.hltb=e||{missing:!0},D());}).catch(()=>{d()&&(y.hltb={missing:!0},D());}));const t=b?_t().then(e=>d()?(y.userdata=e,y.steam&&C(),e):null).catch(()=>null):Promise.resolve(null),a=h?It({title:r,slug:i.slug,country:te.steamCountry||"US",onPartial:e=>{d()&&(y.steam=e,C(),N(e));}}):Promise.resolve(null),[s]=await Promise.all([a,t,...e]);if(!d())return;y.steam=s,(null==s?void 0:s.found)?(C(),N(s)):h&&(y.steam=s||{found:!1},C(),g&&Za(),Ka(o),te.showSimilarGames&&sn()),te.showGameStatus&&!I&&(y.gamestatus=E(y.steam,(null==(n=y.steam)?void 0:n.found)?"GameStatus enabled but Steam appId missing":"GameStatus skipped — Steam app not found"),$()),await R;}catch(O){y.error=true,y.steam=y.steam||{found:false,_debug:{reason:`Enrichment error: ${(null==O?void 0:O.message)||O}`}},y.owned=false,y.wishlist=false,y.gamestatus=y.gamestatus||{missing:true,data:null,slug:null,_debug:{reason:`Enrichment error: ${(null==O?void 0:O.message)||O}`}},g&&!y.steamDb&&Za(),Ka(o),te.showSimilarGames&&sn(),C(),x(),D(),M(),$(),L(),B();}d()&&(()=>{if(!d())return;P();const e=_n({title:r,slug:i.slug,igdbUrl:u,steam:y.steam});Un(l,{steam:y.steam,links:e,error:y.error,owned:y.owned,wishlist:y.wishlist,gamestatus:y.gamestatus,title:r,slug:i.slug,steamDb:y.steamDb,opencritic:y.opencritic,hltb:y.hltb,proton:y.proton}),y.steamDb&&on(y.steamDb,o,{final:true}),wn(y);})();}function Wn(){return [te.steamCountry||"US",te.showPriceConvert?1:0,te.convertCurrency||"RUB",te.showCardBadges?1:0,false!==te.showCardBadgePrice?1:0,false!==te.showCardBadgeReview?1:0,false!==te.showCardBadgeOwned?1:0,false!==te.showCardBadgeWishlist?1:0,false!==te.showCardBadgeGameStatus?1:0].join("|")}function Vn(){return false!==te.showCardBadgePrice||false!==te.showCardBadgeReview||false!==te.showCardBadgeOwned||false!==te.showCardBadgeWishlist||false!==te.showCardBadgeGameStatus}function Jn(e){var t,a,n,i;const r=null==(t=e.getAttribute)?void 0:t.call(e,f);if(r)return r.toLowerCase();const o=[e,e.parentElement,e.closest('a[href*="/games/"]'),e.closest("[game_id], .result, .col, .row")].filter(Boolean);for(const s of o){const e=(null==(a=s.matches)?void 0:a.call(s,'a[href*="/games/"]'))?s:null==(n=s.querySelector)?void 0:n.call(s,'a[href*="/games/"]'),t=((null==(i=null==e?void 0:e.getAttribute)?void 0:i.call(e,"href"))||"").match(/\/games\/([^/?#]+)/i);if(t)return t[1].toLowerCase()}return ""}function Kn(e,t){var a,n;const i=null==(a=e.getAttribute)?void 0:a.call(e,v);if(i)return i.trim();const r=e.querySelector("img[alt]");if(null==r?void 0:r.alt)return r.alt.trim();const o=null==(n=e.closest(".result, .row, .col, [game_id]"))?void 0:n.querySelector(".game-name h3, h3, .game-name a");return (null==o?void 0:o.textContent)?o.textContent.replace(/\s+\d{4}\s*$/,"").trim():t?t.replace(/-/g," "):""}function Zn(e){var t;const a=null==(t=e.getAttribute)?void 0:t.call(e,S),n=Number(a);return Number.isFinite(n)&&n>0?n:null}function Yn(e){let t=e.querySelector(".blp-card-badges");if(t)return t;const a=e.querySelector(".overflow-wrapper")||e;return "static"===getComputedStyle(a).position&&(a.style.position="relative"),t=document.createElement("div"),t.className="blp-card-badges is-loading",t.innerHTML='',a.appendChild(t),t}async function Qn({steam:e,owned:t,wishlist:a,gamestatus:n}){var i,r;const o=[];if(null==e?void 0:e.found){if(false!==te.showCardBadgePrice){const t=Gn(e);if(t){const a=(null==(i=e.price)?void 0:i.discount_percent)>0?` ${de(Q(ne.discount,{n:e.price.discount_percent}))}`:"";let n="";if(te.showPriceConvert&&e.price&&!e.isFree){const t=await Je(e.price,te.convertCurrency||"RUB");(null==t?void 0:t.now)&&(n=t.was?` ~ ${de(t.now)}~ ${de(t.was)}`:` ~ ${de(t.now)}`);}o.push(`${de(t)}${a}${n}`);}}if(false!==te.showCardBadgeReview){const t=(s=e.reviews)&&s.total_reviews?`${Math.round(s.total_positive/s.total_reviews*100)}%`:null,a=An(e.reviews),n=Tn(e.reviews);if(t)o.push(`${de(t)}`);else if(null!=(null==(r=e.metacritic)?void 0:r.score)){const t=e.metacritic.score,a=yn(t);o.push(`${de(String(t))}`);}}}var s;if(t&&false!==te.showCardBadgeOwned?o.push(`${de(ne.steamOwned)}`):a&&false!==te.showCardBadgeWishlist&&o.push(`${de(ne.steamWishlist)}`),false!==te.showCardBadgeGameStatus&&n&&!n.missing&&n.data){const e=Xe(n.data),t=et(n.data,e),a=n.data.slug||n.slug,i=a?`${E}/${encodeURIComponent(a)}`:E;o.push(`${de(t)}`);}return o.join("")}const Xn=[];let ei=0,ti=null;function ai(){for(;ei<3&&Xn.length;){const e=Xn.shift();ei+=1,Promise.resolve().then(e.fn).then(e.resolve,e.reject).finally(()=>{ei-=1,ai();});}}function ni(e){return new Promise((t,a)=>{Xn.push({fn:e,resolve:t,reject:a}),ai();})}function ii(e,t){if(e.getAttribute(h)!==t)return false;const a=e.getAttribute(b);return "done"===a||"empty"===a||"loading"===a}function ri(e,t,a){e.setAttribute(h,t),e.setAttribute(b,a);}function oi(e){var t;e.removeAttribute(h),e.removeAttribute(b),null==(t=e.querySelector(".blp-card-badges"))||t.remove();}function si(){document.querySelectorAll(".blp-card-badges").forEach(e=>e.remove()),document.querySelectorAll(`[${h}]`).forEach(e=>{e.removeAttribute(h),e.removeAttribute(b);});}async function li(e){const t=Wn();if(ii(e,t))return;if(!Vn())return oi(e),void ri(e,t,"empty");const a=Zn(e),n=Jn(e),i=Kn(e,n);if(!(a||n&&i))return oi(e),void ri(e,t,"empty");ri(e,t,"loading");const r=Yn(e);r.classList.add("is-loading"),await ni(async()=>{if(e.getAttribute(h)!==t)return;const o=false!==te.showCardBadgeOwned||false!==te.showCardBadgeWishlist,s=false!==te.showCardBadgeGameStatus,l=te.steamCountry||"US",[c,u]=await Promise.all([a?$t(a,l,{includeTags:false}).catch(()=>({found:false})):It({title:i,slug:n,country:l,includeTags:false}).catch(()=>({found:false})),o?_t().catch(()=>null):Promise.resolve(null)]);let d=null;if(s&&(null==c?void 0:c.found)&&null!=c.appId&&(d=await Qe({appId:c.appId,storeUrl:c.storeUrl,name:c.name,title:i||c.name,pageSlug:n}).catch(()=>null)),e.getAttribute(h)!==t)return;let m=false,p=false;if(u&&(null==c?void 0:c.found)&&null!=c.appId){const e=Number(c.appId);m=false!==te.showCardBadgeOwned&&u.owned.has(e),p=!m&&false!==te.showCardBadgeWishlist&&u.wishlist.has(e);}const g=await Qn({steam:c,owned:m,wishlist:p,gamestatus:d});if(r.classList.remove("is-loading"),!g)return ri(e,t,"empty"),void r.remove();r.innerHTML=g,ri(e,t,"done");});}function ci(){const e=Jt(),t=[];return e.isGamePage?(document.querySelectorAll(`.blp-similar__cover[${S}]`).forEach(e=>{t.push(e);}),t):(document.querySelectorAll(".game-cover").forEach(e=>{e.closest("#game-profile, #game-body, #logging-sidebar-section, .blp-settings-backdrop, .blp-fix-match-backdrop, .blp-export-backdrop")||t.push(e);}),t)}function ui(e=false){if(!te.showCardBadges||!Vn())return si(),null==ti||ti.disconnect(),void(ti=null);const t=Wn();ti||(ti=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;ti.unobserve(e),li(e);}},{rootMargin:"240px 0px"})),ci().forEach(a=>{!e&&ii(a,t)||(e&&oi(a),ti.observe(a));});}const di=Object.freeze(Object.defineProperty({__proto__:null,anyCardBadgeTypeEnabled:Vn,get cardActive(){return ei},cardBadgeToken:Wn,cardIsSettled:ii,get cardObserver(){return ti},clearAllCardBadges:si,clearCardMarkers:oi,collectCardCovers:ci,enqueueCardJob:ni,enrichGameCard:li,ensureCardBadgeMount:Yn,markCardState:ri,parseCardAppId:Zn,parseCardSlug:Jn,parseCardTitle:Kn,pumpCardQueue:ai,renderCardBadgesHtml:Qn,scheduleCardBadges:ui},Symbol.toStringTag,{value:"Module"})),mi=[{id:"general",labelKey:"sectionGeneral"},{id:"profile",labelKey:"sectionProfile"},{id:"game",labelKey:"sectionGame"},{id:"lists",labelKey:"sectionLists"},{id:"translate",labelKey:"sectionTranslate"},{id:"cache",labelKey:"sectionCache"},{id:"debug",labelKey:"sectionDebug"},{id:"about",labelKey:"sectionAbout"}];function pi(e,t){return `\n \n `}function gi(e,t,a){const n=a?`${de(ne[a])}`:"";return `\n
    \n \n ${de(ne[e])}\n ${n}\n \n ${pi(`data-blp-toggle="${me(e)}"`,t)}\n
    \n `}function hi(...e){return `
    ${e.filter(Boolean).join("")}
    `}function bi(e,t,...a){const n=t?`

    ${de(ne[t])}

    `:"";return `\n
    \n
    \n

    ${de(ne[e])}

    \n ${n}\n
    \n ${a.filter(Boolean).join("")}\n
    \n `}function Si(e,t,a,n){return `\n
    \n \n ${a}\n ${n?`

    ${de(n)}

    `:""}\n
    \n `}function fi(e){const t=function(e){const t=e||"auto";return "auto"===t||J.includes(t)?t:"auto"}(e),a=t.toUpperCase(),n="auto"===t?ne.translateAsUi:K[t]||a;return `${de(a)}`}function vi(e,t){const a=e===t;return `class="blp-settings__panel${a?" is-active":""}" id="blp-panel-${me(e)}" role="tabpanel" aria-labelledby="blp-tab-${me(e)}"${a?"":" hidden"}`}function wi({name:e,handle:t,url:a,avatarUrl:n,email:i}){const r=i?``:"";return `\n
    \n \n \n \n
    \n ${de(e)}\n @${de(t)}\n ${r}\n
    \n
    \n `}function yi({url:e,domain:t,label:a,hint:n}){const i=w.replace("{domain}",encodeURIComponent(t));return `\n \n \n \n ${de(a)}\n ${de(n)}\n \n \n `}function ki(e){const t=e.querySelector(".blp-settings__tabs"),a=e.querySelector(".blp-settings__tab-ink"),n=e.querySelector(".blp-settings__tab.is-active");t&&a&&n&&(a.style.width=`${n.offsetWidth}px`,a.style.transform=`translateX(${n.offsetLeft}px)`);}function Pi(e,t){e.classList.toggle("is-on",t),e.setAttribute("aria-checked",t?"true":"false");}function Ci(e,t){var a,n;mi.some(e=>e.id===t)&&(e.querySelectorAll("[data-blp-tab]").forEach(e=>{const a=e.getAttribute("data-blp-tab")===t;e.classList.toggle("is-active",a),e.setAttribute("aria-selected",a?"true":"false"),e.tabIndex=a?0:-1;}),e.querySelectorAll('[role="tabpanel"]').forEach(e=>{const a=e.id===`blp-panel-${t}`;e.classList.toggle("is-active",a),e.hidden=!a;}),ki(e),null==(n=null==(a=e.querySelector(".blp-settings__tabs"))?void 0:a.querySelector(".blp-settings__tab.is-active"))||n.scrollIntoView({inline:"nearest",block:"nearest",behavior:"smooth"}));}function Bi(){var e,t,n,i,l,c,u;if(document.querySelector(".blp-settings-backdrop"))return;const d={...te,links:{...W.links,...te.links||{}}},m=U.map(e=>{const t=false!==d.links[e],a=ne[function(e){return {igdb:"linkIgdb",steam:"linkSteam",steamdb:"linkSteamDb",metacritic:"linkMetacritic",opencritic:"linkOpencritic",hltb:"linkHltb",pcgamingwiki:"linkPcgamingwiki",itad:"linkItad",gogdb:"linkGogdb",gameslike:"linkGameslike"}[e]||e}(e)]||e;return `\n
    \n \n \n \n ${de(a)}\n \n \n ${pi(`data-blp-link="${me(e)}"`,t)}\n
    \n `}),p=`\n \n `,g=`\n \n `,h=`\n \n `,b=d.translateTargetLocale||"auto",S=`\n \n `,f="below"===d.translateDisplayMode?"below":"replace",v=`\n \n `,y="general",k=document.createElement("div");k.className="blp-settings-backdrop",k.innerHTML=`\n \n `;const P=document.documentElement.style.overflow;document.documentElement.style.overflow="hidden";const C=()=>{if("1"===k.dataset.blpClosing)return;k.dataset.blpClosing="1",k.classList.remove("is-open"),document.removeEventListener("keydown",x,true),window.removeEventListener("resize",D);let e=false;const t=()=>{e||(e=true,k.remove(),document.documentElement.style.overflow=P);};k.addEventListener("transitionend",t,{once:true}),setTimeout(t,240);},B=k.querySelector(".blp-settings"),x=e=>{"Escape"===e.key&&(e.preventDefault(),C());},D=()=>ki(B);window.addEventListener("resize",D),k.addEventListener("click",e=>{e.target===k&&C();}),null==(e=k.querySelector("[data-blp-cancel]"))||e.addEventListener("click",C),null==(t=k.querySelector("#blp-translate-locale"))||t.addEventListener("change",e=>{var t;!function(e,t){var a;const n=null==(a=null==e?void 0:e.querySelector)?void 0:a.call(e,"[data-blp-translate-tab-badge]");if(!n)return;const i=document.createElement("div");i.innerHTML=fi(t).trim();const r=i.firstElementChild;r&&n.replaceWith(r);}(k,null==(t=e.target)?void 0:t.value),ki(B);}),null==(n=null==B?void 0:B.querySelector(".blp-settings__tabs"))||n.addEventListener("click",e=>{var t,a;const n=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-tab]");n&&B.contains(n)&&Ci(B,n.getAttribute("data-blp-tab"));}),null==(i=null==B?void 0:B.querySelector(".blp-settings__tabs"))||i.addEventListener("keydown",e=>{var t,a;const n=[...B.querySelectorAll("[data-blp-tab]")],i=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-tab]");if(!i||!n.length)return;const r=n.indexOf(i);if(r<0)return;let o=-1;if("ArrowRight"===e.key||"ArrowDown"===e.key?o=(r+1)%n.length:"ArrowLeft"===e.key||"ArrowUp"===e.key?o=(r-1+n.length)%n.length:"Home"===e.key?o=0:"End"===e.key&&(o=n.length-1),o<0)return;e.preventDefault();const s=n[o].getAttribute("data-blp-tab");Ci(B,s),n[o].focus();}),null==(l=null==B?void 0:B.querySelector(".blp-settings__tabs"))||l.addEventListener("scroll",()=>ki(B),{passive:true}),k.querySelectorAll("[data-blp-toggle]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute("data-blp-toggle");if(d[a]=!d[a],Pi(e,d[a]),"showPriceConvert"===a){const e=k.querySelector("#blp-convert-ccy");e&&(e.disabled=!d.showPriceConvert);}});}),k.querySelectorAll("[data-blp-link]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute("data-blp-link");d.links[a]=!d.links[a],Pi(e,d.links[a]);});}),k.querySelectorAll(".blp-toggle").forEach(e=>{e.addEventListener("click",t=>{var a;t.target.closest(".blp-switch, a, select, input, button")||null==(a=e.querySelector(".blp-switch"))||a.click();});}),null==(c=k.querySelector("[data-blp-clear]"))||c.addEventListener("click",()=>{const e=Fe();((function(e){var t;const a=$e(),n=null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"[data-blp-cache-meter]");if(n){const e=document.createElement("div");e.innerHTML=Oe(a).trim();const t=e.firstElementChild;t&&n.replaceWith(t);}!function(e,t){var a;const n=null==(a=null==e?void 0:e.querySelector)?void 0:a.call(e,"[data-blp-cache-tab-badge]");if(!n)return;const i=document.createElement("div");i.innerHTML=Ne(t).trim();const r=i.firstElementChild;r&&n.replaceWith(r);}(e,a);}))(k),ki(B),ha(e?Q(ne.cacheCleared,{count:e}):ne.cacheEmpty,{type:e?"success":"info",title:e?ne.toastCacheClearedTitle:ne.cacheEmptyTitle});}),null==(u=k.querySelector("[data-blp-save]"))||u.addEventListener("click",()=>{var e,t,n,i,r,o;const l=(null==(e=k.querySelector("#blp-steam-cc"))?void 0:e.value)||"US",c=Number(null==(t=k.querySelector("#blp-cache-hours"))?void 0:t.value),u=(null==(n=k.querySelector("#blp-ui-locale"))?void 0:n.value)||"auto";d.uiLocale="auto"===u||J.includes(u)?u:"auto";const m=(null==(i=k.querySelector("#blp-translate-locale"))?void 0:i.value)||"auto";d.translateTargetLocale="auto"===m||J.includes(m)?m:"auto";const p=(null==(r=k.querySelector("#blp-translate-mode"))?void 0:r.value)||"replace";d.translateDisplayMode="below"===p?"below":"replace",d.steamCountry=String(l).toUpperCase();const g=(null==(o=k.querySelector("#blp-convert-ccy"))?void 0:o.value)||"RUB";d.convertCurrency=String(g).toUpperCase(),d.showPriceConvert=Boolean(d.showPriceConvert),d.cacheHours=Number.isFinite(c)?Math.max(0,Math.min(168,c)):W.cacheHours,function(e){const t={...W,...e,links:{...W.links,...e.links||{}}};a(s,t);}(d),le(),function(e,t={}){const{title:a,message:n,type:i,duration:r}=ga(e,t);if(a||n)try{const e=sessionStorage.getItem(da),t=e?JSON.parse(e):[],o=Array.isArray(t)?t:[];o.push({title:a,message:n,type:i,duration:r}),sessionStorage.setItem(da,JSON.stringify(o.slice(-5)));}catch(o){}}(ne.toastSettingsSaved,{type:"success",title:ne.toastSettingsSavedTitle}),location.reload();}),document.body.appendChild(k),document.addEventListener("keydown",x,true),requestAnimationFrame(()=>{k.classList.add("is-open"),ki(B);});}const xi="blp-nav-settings",Di="blp-profile-menu-settings";function Hi(){!function(){const e=document.getElementById(Di);if(true!==te.showProfileMenuSettings)return void(null==e||e.remove());if(e)return;const t=document.querySelector("#profile-li .dropdown-menu")||document.querySelector("#navbarDropdown + .dropdown-menu");if(!t)return;const a=document.createElement("a");a.id=Di,a.className="dropdown-item py-1",a.href="#",a.textContent=ne.navSettings,a.title=ne.navSettingsTitle,a.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),Bi();});const n=t.querySelector('a.dropdown-item[href="/settings/"], a.dropdown-item[href="/settings"]');if(n)return void n.insertAdjacentElement("beforebegin",a);const i=t.querySelector('a.dropdown-item[href="/users/sign_out"], a.dropdown-item[href="/users/sign_out/"]');i?i.insertAdjacentElement("beforebegin",a):t.appendChild(a);}();const e=document.getElementById(xi);if(true===te.showProfileMenuSettings)return void(null==e||e.remove());if(e)return;const t=document.createElement("button");t.id=xi,t.type="button",t.className="btn btn-main mb-2 my-sm-0 py-0",t.title=ne.navSettingsTitle,t.innerHTML=` ${de(ne.navSettings)}`,t.addEventListener("click",e=>{e.preventDefault(),Bi();});const a=document.getElementById("add-a-game");if(null==a?void 0:a.parentElement){t.classList.add("ml-2");const e=a.getBoundingClientRect().height;return e>0&&document.documentElement.style.setProperty("--blp-nav-btn-h",`${Math.round(e)}px`),void a.insertAdjacentElement("afterend",t)}const n=document.querySelector("#navbarSupportedContent .col.my-auto, #primary-nav .col.my-auto");if(n)return t.classList.add("ml-2"),void n.appendChild(t);const i=document.querySelector("#navbarSupportedContent > ul.navbar-nav")||document.querySelector("#primary-nav ul.navbar-nav.ml-auto");if(!i)return;const r=document.createElement("li");r.className="nav-item my-auto",r.appendChild(t),i.appendChild(r);}const Ti="data-blp-hide-homepage-fuse",Ai="data-blp-floating-header",Gi="data-blp-header-compact";let _i=false;function Mi(){document.documentElement.hasAttribute(Ai)&&document.documentElement.toggleAttribute(Gi,window.scrollY>12);}function Li(e){return `user:profile:${String(e||"").trim().toLowerCase()}`}function $i(e){const t=Math.max(0,Number(e)||0);let a=y[0];for(const n of y)t>=n.min&&(a=n);return {...a,gamesPlayed:t}}function Ii(e){return e?e.tierId?e.tierId:$i(e.gamesPlayed).id:"rookie"}function Ri(e){(null==e?void 0:e.username)&&ye(Li(e.username),e,{ttlMs:216e5});}function Ei(e){const t=String(e||"").match(/\/u\/([^/?#]+)/i);if(!t)return "";try{return decodeURIComponent(t[1]).trim()}catch(a){return t[1].trim()}}function Ni(e,t="https://www.backloggd.com/"){const a=String(e||"").trim();if(!a||a.startsWith("data:"))return "";try{return new URL(a,t).href}catch(n){return ""}}function Oi(e){return String(e||"").replace(/\/t_cover_big(_2x)?\//i,"/t_cover_small/")}function Fi(e){return ((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim()}function zi(e){const t=String(e||"").replace(/[^\d]/g,"");return t&&Number.parseInt(t,10)||0}function Ui(e){const t=[];for(const a of e.querySelectorAll(".badges .backlog-badge-cus-col")||[]){const n=a.querySelector(".badge-tooltip"),i=(null==n?void 0:n.getAttribute("badge_id"))||"",r=i?e.getElementById(`badge-${i}`):null,o=Fi((null==r?void 0:r.querySelector(".badge-title"))||a.querySelector(".badge-title")),s=Fi((null==r?void 0:r.querySelector(".badge-desc"))||a.querySelector(".badge-desc")),l=a.querySelector(".badge-image img"),c=Ni((null==l?void 0:l.getAttribute("src"))||"");if((o||c)&&(t.push({id:i,title:o,desc:s,imageUrl:c}),t.length>=6))break}return t}function qi(e,t){var a,n;if(!e)return [];const i=[],r=new Set;for(const o of e.querySelectorAll(".game-cover")||[]){const e=o.querySelector('a.cover-link[href*="/games/"]')||o.querySelector('a[href*="/games/"]')||o.closest('a[href*="/games/"]')||(null==(n=null==(a=o.parentElement)?void 0:a.querySelector)?void 0:n.call(a,'a[href*="/games/"]')),s=Ni((null==e?void 0:e.getAttribute("href"))||""),l=s.match(/\/games\/([^/?#]+)/i),c=l?l[1].toLowerCase():"";if(!c||r.has(c))continue;r.add(c);const u=o.querySelector("img"),d=Fi(o.querySelector(".game-text-centered"))||((null==u?void 0:u.getAttribute("alt"))||"").trim()||c.replace(/-/g," "),m=Oi(Ni((null==u?void 0:u.getAttribute("data-src"))||(null==u?void 0:u.getAttribute("src"))||""));if(i.push({slug:c,title:d,coverUrl:m,href:s||`/games/${c}/`}),i.length>=t)break}return i}function ji(e){const t=e.querySelector("#bio-body");if(!t)return "";const a=t.querySelector("i.text-color-secondary");if(a&&/nothing here/i.test(Fi(a)))return "";const n=t.cloneNode(true);return n.querySelectorAll("script, style").forEach(e=>e.remove()),Fi(n).slice(0,280)}function Wi(e,t=""){var a,n,i,r;if(!e)return null;const o=Fi(e.querySelector("#profile-header h3.main-header"))||String(t||"").trim();if(!o)return null;const s=e.querySelector("#profile-header .avatar img")||e.querySelector('meta[property="og:image"]'),l=Ni((null==(a=null==s?void 0:s.getAttribute)?void 0:a.call(s,"src"))||(null==(n=null==s?void 0:s.getAttribute)?void 0:n.call(s,"content"))||""),c=(null==(i=e.querySelector("button.friend-btn[user_id]"))?void 0:i.getAttribute("user_id"))||(null==(r=e.querySelector("button.report-btn[user_id]"))?void 0:r.getAttribute("user_id"))||"",u=Number(c)||null,d=function(e){const t={gamesPlayed:0,playedYear:0,playedYearLabel:"",backlog:0},a=[...e.querySelectorAll("#profile-stats > div")||[]];for(const n of a){const e=Fi(n.querySelector("h4")).replace(/\s+/g," "),a=zi(Fi(n.querySelector("h1")));/games played/i.test(e)?t.gamesPlayed=a:/backlog/i.test(e)?t.backlog=a:/played in/i.test(e)&&(t.playedYear=a,t.playedYearLabel=e);}return t}(e),m=function(e){return [...e.querySelectorAll("#ratings-bars-height .top-tooltip")||[]].map((e,t)=>{var a;const n=e.getAttribute("data-tippy-content")||"",i=n.match(/^(\d+)\s*\|\s*([\d.]+)/),r=i&&Number(i[1])||0,o=i&&Number(i[2])||.5*(t+1),s=n.match(/\(([\d.]+)%\)/),l=s&&Number(s[1])||0,c=e.querySelector(".bar-h"),u=(null==(a=null==c?void 0:c.style)?void 0:a.height)||"";return {stars:o,count:r,pct:l,height:Number.parseFloat(u)||0}})}(e),p=m.reduce((e,t)=>e+(t.count||0),0),g=m.reduce((e,t)=>e+(t.count||0)*(t.stars||0),0),h=p>0?Math.round(g/p*10)/10:null,b=$i(d.gamesPlayed);return {username:o,userId:u,avatarUrl:l,bio:ji(e),gamesPlayed:d.gamesPlayed,playedYear:d.playedYear,playedYearLabel:d.playedYearLabel,backlog:d.backlog,ratings:m,ratedCount:p,avgRating:h,badges:Ui(e),favorites:qi(e.querySelector("#profile-favorites"),5),recent:qi(e.querySelector("#profile-journal"),4),profileUrl:`/u/${encodeURIComponent(o)}/`,tierId:b.id,tierMin:b.min}}function Vi(e){const t=String(e||"").trim();if(!t)return null;const a=we(Li(t));return (null==a?void 0:a.username)?a:null}async function Ji(e){const t=String(e||"").trim();if(!t)return null;const a=Li(t),n=we(a);if(null==n?void 0:n.username)return ke(n);if(oe.has(a))return oe.get(a);const i=(async()=>{const e=`https://www.backloggd.com/u/${encodeURIComponent(t)}/`,a=function(e,t=""){return Wi((new DOMParser).parseFromString(String(e||""),"text/html"),t)}(await ze({url:e,method:"GET",responseType:"text",anonymous:false,headers:{Accept:"text/html","Cache-Control":"no-cache"}}),t);return a?(Ri(a),Pe(a)):null})().catch(()=>null);oe.set(a,i);try{return await i}finally{oe.delete(a);}}const Ki="data-blp-profile-hover",Zi="data-blp-ump",Yi="data-blp-ump-tier",Qi="data-blp-ump-preload",Xi="data-blp-ump-loading",er="blp-ump-avatar-spin",tr="blp-user-mini-profile";let ar=false,nr=0,ir=0,rr=0,or=null,sr=null,lr="",cr=null,ur=0,dr=0;const mr=[];let pr=null;const gr=new Set,hr=new Set,br=new Map;function Sr(e){const t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3==0?0:1)}k`:String(t)}function fr(){return cr&&document.body.contains(cr)||(cr=document.createElement("div"),cr.id=tr,cr.className="blp-ump",cr.setAttribute("role","dialog"),cr.setAttribute("aria-hidden","true"),cr.addEventListener("pointerenter",()=>{window.clearTimeout(ir);}),cr.addEventListener("pointerleave",()=>{Er();}),document.body.appendChild(cr)),cr}function vr(){window.clearTimeout(rr),cr&&or&&(cr.removeEventListener("transitionend",or),or=null),cr&&(cr.classList.remove("is-open","is-leaving","is-loading","is-ready"),cr.setAttribute("aria-hidden","true"),cr.innerHTML="",sr=null,lr="");}function wr({immediate:e=false}={}){if(!cr)return;window.clearTimeout(rr),or&&(cr.removeEventListener("transitionend",or),or=null);const t=cr.classList.contains("is-open");!e&&t?(cr.classList.add("is-leaving"),cr.classList.remove("is-open","is-loading","is-ready"),cr.setAttribute("aria-hidden","true"),or=e=>{e.target===cr&&("opacity"!==e.propertyName&&"transform"!==e.propertyName||vr());},cr.addEventListener("transitionend",or),rr=window.setTimeout(vr,300)):vr();}function yr(e){window.clearTimeout(rr),or&&(e.removeEventListener("transitionend",or),or=null),e.classList.remove("is-leaving"),e.classList.contains("is-open"),e.classList.add("is-open"),e.setAttribute("aria-hidden","false"),requestAnimationFrame(()=>{e.classList.add("is-ready");});}function kr(e){const t=fr(),a=e.getBoundingClientRect(),n=t.offsetWidth||300,i=t.offsetHeight||420;let r=a.right+10,o=a.top+a.height/2-i/2;r+n>window.innerWidth-12&&(r=a.left-n-10),r<12&&(r=Math.max(12,Math.min(window.innerWidth-n-12,a.left+a.width/2-n/2)),o=a.bottom+10,o+i>window.innerHeight-12&&(o=a.top-i-10)),o=Math.max(12,Math.min(window.innerHeight-i-12,o)),t.style.left=`${Math.round(r)}px`,t.style.top=`${Math.round(o)}px`;}function Pr(e,t,a=5){if(!Array.isArray(e)||!e.length)return "";const n=e.map(e=>{const t=e.coverUrl?``:'';return `${t}`}).join("");return `
    ${n}
    `}function Cr(e=""){return ``}function Br(e){const t=Ii(e),a=e.bio?`

    ${de(e.bio)}

    `:"",n=null!=e.avgRating?`${de(String(e.avgRating))}★`:"";return `\n
    \n \n \n
    \n ${de(function(e){return {rookie:ne.miniProfileTierRookie,bronze:ne.miniProfileTierBronze,silver:ne.miniProfileTierSilver,gold:ne.miniProfileTierGold,platinum:ne.miniProfileTierPlatinum,diamond:ne.miniProfileTierDiamond,master:ne.miniProfileTierMaster,legend:ne.miniProfileTierLegend}[e]||ne.miniProfileTierRookie}(t))}\n ${n}\n
    \n \n
    \n ${e.avatarUrl?``:""}\n
    \n
    \n ${de(e.username)}\n
    ${de(String(ne.miniProfileTierSub||"").replace("{count}",Sr(e.gamesPlayed)))}
    \n
    \n
    \n ${de(Sr(e.gamesPlayed))}\n ${de(ne.miniProfilePlayed)}\n
    \n
    \n ${de(Sr(e.playedYear))}\n ${de(ne.miniProfileThisYear)}\n
    \n
    \n ${de(Sr(e.backlog))}\n ${de(ne.miniProfileBacklog)}\n
    \n
    \n ${function(e){if(!Array.isArray(e)||!e.length)return "";const t=Math.max(...e.map(e=>e.height||0),1);return ``}(e.ratings)}\n ${a}\n ${Pr(e.favorites,ne.miniProfileFavorites,5)}\n ${Pr(e.recent,ne.miniProfileRecent,4)}\n ${function(e){if(!Array.isArray(e)||!e.length)return "";const t=e.map(e=>{const t=[e.title,e.desc].filter(Boolean).join(" — "),a=e.imageUrl?``:"";return `${a}`}).join("");return `
    ${t}
    `}(e.badges)}\n ${de(ne.miniProfileViewProfile)}\n
    \n `}function xr(e,t){var a,n;if(!(null==e?void 0:e.setAttribute))return;const i=function(e){var t;return e.querySelector(".overflow-wrapper")||(null==(t=e.querySelector("img"))?void 0:t.parentElement)||e}(e);if(t){if(e.setAttribute(Xi,"1"),!i.querySelector(`.${er}`)){const e=document.createElement("span");e.className=er,e.setAttribute("aria-hidden","true"),i.appendChild(e);}}else e.removeAttribute(Xi),null==(a=i.querySelector(`.${er}`))||a.remove(),i!==e&&(null==(n=e.querySelector(`.${er}`))||n.remove());}function Dr(e,t){const a=String(e||"").toLowerCase();a&&document.querySelectorAll(`a[${Zi}]`).forEach(e=>{Ei(e.getAttribute("href")||e.href).toLowerCase()===a&&xr(e,t);});}function Hr(e,t){const a=String(e||"").trim().toLowerCase();if(a)return t?(hr.has(a)||hr.add(a),void Dr(e,true)):void(hr.has(a)&&(hr.delete(a),Dr(e,false)))}function Tr(e){const t=String(e||"").trim();if(!t)return Promise.resolve(null);const a=t.toLowerCase(),n=Vi(t);if(n)return Hr(t,false),Promise.resolve(n);let i=br.get(a);return i?(Hr(t,true),i):(Hr(t,true),i=(r=()=>Ji(t),new Promise(e=>{const t=async()=>{dr+=1;try{e(await r());}finally{dr-=1;const e=mr.shift();e&&e();}};dr<2?t():mr.push(t);})).then(e=>(e&&Mr(t,Ii(e)),e)).finally(()=>{br.delete(a),Hr(t,false);}),br.set(a,i),i);var r;}function Ar(e){(null==e?void 0:e.removeAttribute)&&(xr(e,false),e.removeAttribute(Zi),e.removeAttribute(Yi),e.removeAttribute(Ki),e.removeAttribute(Qi));}function Gr(e){if(!e||1!==e.nodeType)return false;if(e.closest(`#${tr}, .blp-ump, .blp-settings-backdrop, #primary-nav, #profile-header`))return false;if(e.closest(".badge-tooltip, .badges, .backlog-badge-cus-col, .badge-image"))return false;const t=e.getAttribute("href")||e.href||"";return !!function(e){const t=String(e||"").trim();if(!t)return false;try{const e=new URL(t,"https://www.backloggd.com/").pathname;return /^\/u\/[^/]+\/?$/i.test(e)}catch(a){return /^\/u\/[^/?#]+\/?$/i.test(t.split(/[?#]/,2)[0])}}(t)&&!!e.querySelector("img")&&Boolean(Ei(t))}function _r(e){if(!Gr(e))return Ar(e),null;const t=Ei(e.getAttribute("href")||e.href);if(!t)return Ar(e),null;e.setAttribute(Zi,"1");const a=Vi(t);return a?(e.setAttribute(Yi,Ii(a)),xr(e,false)):e.hasAttribute(Yi),hr.has(t.toLowerCase())&&xr(e,true),{anchor:e,username:t}}function Mr(e,t){const a=String(e||"").toLowerCase();a&&t&&document.querySelectorAll(`a[${Zi}]`).forEach(e=>{Ei(e.getAttribute("href")||e.href).toLowerCase()===a&&e.setAttribute(Yi,t);});}function Lr(){hr.clear(),br.clear(),document.querySelectorAll(`a[${Zi}], a[${Yi}], a[${Ki}], a[${Qi}], a[${Xi}]`).forEach(Ar);}function $r(){null==pr||pr.disconnect(),pr=null;}function Ir(e){const t=String(e||"").trim();if(!t)return;const a=t.toLowerCase();Vi(t)||gr.has(a)||(gr.add(a),Tr(t));}const Rr=ca(()=>function(e=document){if(false===te.showUserMiniProfile)return Lr(),void $r();(e.querySelectorAll?e:document).querySelectorAll('a[href*="/u/"]').forEach(e=>{_r(e);}),function(){if(false===te.showUserMiniProfile||true!==te.preloadUserMiniProfile)return void $r();const e=pr||(pr=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;pr.unobserve(e);const a=Ei(e.getAttribute("href")||e.href);a&&Ir(a);}},{rootMargin:"160px 0px",threshold:.01}),pr);document.querySelectorAll(`a[${Zi}]`).forEach(t=>{if("1"===t.getAttribute(Qi))return;const a=Ei(t.getAttribute("href")||t.href);if(!a)return;const n=Vi(a);if(n)return Mr(a,Ii(n)),void t.setAttribute(Qi,"1");t.setAttribute(Qi,"1"),e.observe(t);});}();}(),120);function Er(){window.clearTimeout(nr),window.clearTimeout(ir),ir=window.setTimeout(()=>{wr();},180);}function Nr(e){var t,a;if(!e||1!==e.nodeType)return null;if(null==(t=e.closest)?void 0:t.call(e,`#${tr}, .blp-ump, .blp-settings-backdrop, #primary-nav`))return null;const n=null==(a=e.closest)?void 0:a.call(e,'a[href*="/u/"]');if(!n||!Gr(n))return null;const i=Ei(n.getAttribute("href")||n.href);return i?{anchor:n,username:i}:null}function Or(e){if(false===te.showUserMiniProfile)return;const t=Nr(e.target);var a,n;t&&(_r(t.anchor),Vi(t.username)||Tr(t.username),t.anchor===sr&&(null==cr?void 0:cr.classList.contains("is-open"))?window.clearTimeout(ir):(t.anchor.setAttribute(Ki,"1"),a=t.anchor,n=t.username,window.clearTimeout(ir),window.clearTimeout(nr),(null==cr?void 0:cr.classList.contains("is-leaving"))&&cr.classList.remove("is-leaving"),nr=window.setTimeout(()=>{!async function(e,t){const a=fr();sr=e,lr=t;const n=++ur,i=Vi(t);if(i)return Mr(t,Ii(i)),a.classList.remove("is-loading"),a.innerHTML=Br(i),yr(a),kr(e),void requestAnimationFrame(()=>kr(e));a.classList.add("is-loading"),a.innerHTML=function(e){const t=Vi(e);return `\n
    \n \n \n
    \n ${Cr("blp-ump__bone--pill")}\n ${Cr("blp-ump__bone--avg")}\n
    \n \n
    ${de(e)}
    \n ${Cr("blp-ump__bone--sub")}\n \n \n \n
    ${de(ne.miniProfileLoading)}
    \n
    \n `}(t),yr(a),kr(e);const r=await Tr(t);n===ur&&lr===t&&(a.classList.remove("is-loading"),a.classList.remove("is-ready"),a.innerHTML=r?Br(r):function(e){return `\n
    \n \n
    ${de(e)}
    \n
    ${de(ne.miniProfileError)}
    \n ${de(ne.miniProfileViewProfile)}\n
    \n `}(t),requestAnimationFrame(()=>{a.classList.add("is-ready"),kr(e);}));}(a,n);},280)));}function Fr(e){const t=Nr(e.target);if(!t)return;const a=e.relatedTarget;a&&(t.anchor.contains(a)||(null==cr?void 0:cr.contains(a)))||(t.anchor.removeAttribute(Ki),Er());}function zr(){(null==cr?void 0:cr.classList.contains("is-open"))&&sr&&(document.contains(sr)?kr(sr):wr({immediate:true}));}const Ur="data-blp-profile-tier",qr="blp-profile-tier-chip",jr="blp-profile-avatar";let Wr=0;function Vr(){return false!==te.showProfilePage}function Jr(){return Vr()&&false!==te.showProfileHeader}function Kr(){return Vr()&&false!==te.showProfileTierChip}function Zr(){return Vr()&&false!==te.showProfileStats}function Yr(){return Vr()&&false!==te.showProfileNav}function Qr(){return Vr()&&false!==te.showProfileFavorites}function Xr(){return Jr()||Kr()||Zr()||Yr()||Qr()}function eo(e){return {rookie:ne.miniProfileTierRookie,bronze:ne.miniProfileTierBronze,silver:ne.miniProfileTierSilver,gold:ne.miniProfileTierGold,platinum:ne.miniProfileTierPlatinum,diamond:ne.miniProfileTierDiamond,master:ne.miniProfileTierMaster,legend:ne.miniProfileTierLegend}[e]||ne.miniProfileTierRookie}function to(){var e,t,a;document.documentElement.removeAttribute(Ur);const n=document.getElementById("profile-header");n&&(n.removeAttribute(Ur),n.classList.remove("blp-profile-header")),document.querySelectorAll(`.${qr}`).forEach(e=>e.remove()),document.querySelectorAll(`.${jr}`).forEach(e=>{e.classList.remove(jr);}),null==(e=document.getElementById("profile-stats"))||e.classList.remove("blp-profile-stats"),null==(t=document.getElementById("profile-nav"))||t.classList.remove("blp-profile-nav"),null==(a=document.getElementById("profile-nav-row"))||a.classList.remove("blp-profile-nav-row");const i=document.getElementById("profile-favorites");i&&(i.classList.remove("blp-profile-favorites"),i.querySelectorAll(".game-cover[data-blp-fav-rank]").forEach(e=>{e.removeAttribute("data-blp-fav-rank");})),document.querySelectorAll(".blp-profile-fav-title").forEach(e=>{e.classList.remove("blp-profile-fav-title");});}function ao(e){var t;const a=document.getElementById("profile-header");if(!a||!e)return;const n=Ii(e);if(to(),Xr()){if(document.documentElement.setAttribute(Ur,n),Jr()){a.setAttribute(Ur,n),a.classList.add("blp-profile-header");const e=a.querySelector(".avatar");e&&e.classList.add(jr);}Kr()&&function(e,t,a){var n,i;const r=null==(n=e.querySelector("h3.main-header"))?void 0:n.closest(".col-auto");if(!r)return;let o=e.querySelector(`.${qr}`);o||(o=document.createElement("div"),o.className=`${qr} col-auto pl-2 my-auto`,o.setAttribute("data-blp-profile-chrome","1"),r.insertAdjacentElement("afterend",o));const s=function(e){const t=$i(e),a=y.findIndex(e=>e.id===t.id),n=a>=0?y[a+1]:null;if(!n)return null;const i=Math.max(1,n.min-t.min),r=Math.max(0,t.gamesPlayed-t.min);return {current:t,next:n,remaining:Math.max(0,n.min-t.gamesPlayed),progress:Math.min(1,r/i)}}(t.gamesPlayed),l=s?Math.round(100*s.progress):100,c=s?Q(ne.profileTierProgress||"{n} to {tier}",{n:s.remaining,tier:eo(s.next.id)}):ne.profileTierMax||"",u=Q(ne.miniProfileTierSub||"{count} games played",{count:String(null!=(i=t.gamesPlayed)?i:0)});o.innerHTML=`\n
    ${de(eo(a))}
    \n
    \n
    ${de(u)}
    \n ${c?`
    ${de(c)}
    `:""}\n \n
    \n `;}(a,e,n),Zr()&&(null==(t=document.getElementById("profile-stats"))||t.classList.add("blp-profile-stats")),Yr()&&function(){const e=document.getElementById("profile-nav"),t=document.getElementById("profile-nav-row");e&&e.classList.add("blp-profile-nav"),t&&t.classList.add("blp-profile-nav-row");}(),Qr()&&function(){var e,t;const a=document.getElementById("profile-favorites");if(!a)return;a.classList.add("blp-profile-favorites");const n=(null==(t=null==(e=a.previousElementSibling)?void 0:e.querySelector)?void 0:t.call(e,"h2"))||document.getElementById("profile-recent-play");n&&/favorite/i.test(n.textContent||"")&&n.classList.add("blp-profile-fav-title"),[...a.querySelectorAll(".game-cover")].forEach((e,t)=>{e.setAttribute("data-blp-fav-rank",String(t+1));});}();}}const no=ca(()=>{!async function(){if(!Xr())return void to();if(!document.getElementById("profile-header"))return void to();const e=++Wr,t=await async function(){const e=function(){const e=document.querySelector("#profile-header h3.main-header");return ((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim()||Ei(location.pathname)}();if(!e)return null;const t=Wi(document,e),a=Boolean(document.getElementById("profile-stats"));if(t&&a)return Ri(t),t;const n=Vi(e);return n?{...n,avatarUrl:(null==t?void 0:t.avatarUrl)||n.avatarUrl,username:(null==t?void 0:t.username)||n.username}:(null==t?void 0:t.gamesPlayed)>0?(Ri(t),t):await Ji(e)||t}();e===Wr&&(t?ao(t):to());}();},80);function io(e){var t,a;const n=null==e?void 0:e[2];if("string"==typeof n&&n)return n.toLowerCase().slice(0,2);const i=null==(a=null==(t=null==e?void 0:e[8])?void 0:t[0])?void 0:a[0];return "string"==typeof i&&i?i.toLowerCase().slice(0,2):""}const ro="blp-translate-btn",oo="blp-translate-result",so="data-blp-translate",lo="data-blp-translate-state",co="data-blp-translate-original",uo="data-blp-translate-auto";let mo=false,po=null,go=0;const ho=[];function bo(){return "below"===te.translateDisplayMode?"below":"replace"}function So(e){const t=document.createElement("div");return t.innerHTML=String(e||""),t.querySelectorAll("br").forEach(e=>e.replaceWith("\n")),(t.textContent||"").replace(/\u00a0/g," ").trim()}function fo(){const e=document.querySelector("#collapseSummary");return e?e.querySelector("p")||e:null}function vo(e){return e.querySelector(".review-body .card-text")||e.querySelector('.review-body [id^="collapseReview"]')||e.querySelector(".card-text")}function wo(e){var t;return (null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,`.${ro}[data-blp-translate-kind="review"]`))||null}function yo(e,t){if(!e)return;if("loading"===t)return e.innerHTML=`${de(ne.translateLoading)}`,e.setAttribute("aria-busy","true"),void e.classList.add("is-loading");e.removeAttribute("aria-busy"),e.classList.remove("is-loading");let a=ne.translateButton;"original"===t?a=ne.translateShowOriginal:"hide"===t?a=ne.translateHide:"error"===t&&(a=ne.translateError),e.innerHTML=`${de(a)}`;}function ko(e){const t=document.createElement("button");return t.type="button",t.className=`${ro} ${ro}--chip${"desc"===e?` ${ro}--desc`:` ${ro}--review`}`,t.setAttribute("data-blp-translate-kind",e),yo(t,"idle"),t}function Po(e,t){var a,n,r,o,s;if(!e)return;const l=t||e.closest(".review-card")||(null==(a=e.closest(".review-body"))?void 0:a.parentElement)||document,c=e.id||"",u=[];if(c){const e=l.querySelector(`a.review-more[href="#${c}"]`),t=l.querySelector(`a.review-more[aria-controls="${c}"]`);e&&u.push(e),t&&t!==e&&u.push(t);}const d=l.querySelector(".expand-review-col a.review-more, a.review-more");d&&!u.includes(d)&&u.push(d);const m=u[0]||null;if(!(e.classList.contains("collapse")&&!e.classList.contains("show")||"false"===(null==m?void 0:m.getAttribute("aria-expanded"))||(null==(n=null==m?void 0:m.classList)?void 0:n.contains("collapsed"))))return;try{const t=i||window,a=(null==t?void 0:t.jQuery)||(null==t?void 0:t.$);(null==(r=null==a?void 0:a.fn)?void 0:r.collapse)&&a(e).collapse("show");}catch(g){}e.classList.remove("collapsing"),e.classList.add("collapse","show"),e.style.display="block",e.style.height="auto",e.style.maxHeight="none",e.style.overflow="visible",e.style.visibility="visible";let p=e.parentElement;for(let i=0;i<3&&p;i++)((null==(o=p.classList)?void 0:o.contains("position-relative"))||(null==(s=p.classList)?void 0:s.contains("col")))&&(p.style.maxHeight="none",p.style.overflow="visible"),p=p.parentElement;u.forEach(e=>{e.classList.remove("collapsed"),e.setAttribute("aria-expanded","true");});}function Co(e,t){var a,n,i,r,o;const s=null==(a=null==t?void 0:t.closest)?void 0:a.call(t,".review-card");if(s)return void s.querySelectorAll(`.${oo}`).forEach(e=>e.remove());null==(n=null==e?void 0:e.querySelectorAll)||n.call(e,`.${oo}`).forEach(e=>e.remove());const l=(null==(i=null==t?void 0:t.closest)?void 0:i.call(t,".position-relative"))||(null==t?void 0:t.parentElement)||e;null==(r=null==l?void 0:l.querySelectorAll)||r.call(l,`.${oo}`).forEach(e=>e.remove());const c=null==l?void 0:l.nextElementSibling;(null==(o=null==c?void 0:c.classList)?void 0:o.contains(oo))&&c.remove();}async function Bo({textEl:e,host:t,card:a,btn:n,isReview:i,expand:r=true}){var o;if(!e)return "skip";if("translated"===(null==n?void 0:n.getAttribute(lo)))return "skip";if(e.hasAttribute(co)&&"replace"===bo())return "skip";if(i&&(null==(o=null==a?void 0:a.querySelector)?void 0:o.call(a,`.${oo}`)))return "skip";i&&r&&Po(e,a);const s=e.hasAttribute(co)?e.getAttribute(co):e.innerHTML,l=So(s);if(!l)return "skip";const c=function(){const e=te.translateTargetLocale||"auto";return "auto"!==e&&J.includes(e)?e:ae}();yo(n,"loading");const u=await async function(e,t){const a=String(e||"").trim(),n=String(t||"").trim().toLowerCase().slice(0,2);if(!a||!n)return null;const i=`gtx:${n}:${function(e){let t=5381;const a=String(e);for(let n=0;n>>0).toString(36)}(a)}`,r=we(i);if(r&&"string"==typeof r.text)return ke(r);if(oe.has(i))return oe.get(i);const o=(async()=>{const e=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${encodeURIComponent(n)}&dt=t&q=${encodeURIComponent(a)}`,t=await ze({url:e,responseType:"json",headers:{Accept:"application/json"},timeout:2e4}),r=function(e){return Array.isArray(null==e?void 0:e[0])?e[0].map(e=>Array.isArray(e)&&"string"==typeof e[0]?e[0]:"").join(""):""}(t).trim();if(!r)return null;const o={text:r,detectedSourceLang:io(t)};return ye(i,o),Pe(o)})().catch(()=>null);oe.set(i,o);try{return await o}finally{oe.delete(i);}}(l,c);if(!(null==u?void 0:u.text))return yo(n,"error"),n&&setTimeout(()=>yo(n,"idle"),1800),"error";const d=String(u.detectedSourceLang||"").toLowerCase().slice(0,2);if(d&&d===c&&u.text.trim()===l)return n&&(n.style.display="none"),yo(n,"idle"),"same";const m=de(String(u.text||"")).replace(/\r\n|\r|\n/g,"
    "),p=bo();return i&&r&&Po(e,a),"below"===p?(function(e,t,a,n){Co(t,e);const i=document.createElement("div");if(i.className=n?`${oo} ${oo}--card`:oo,n){i.innerHTML=`\n
    ${de(ne.translateResultLabel)}
    \n
    ${a}
    \n `;const t=e.closest(".review-body");if(t)return t.insertAdjacentElement("afterend",i),requestAnimationFrame(()=>{requestAnimationFrame(()=>i.classList.add("is-in"));}),i}else i.innerHTML=a;const r=e.closest(".position-relative")||e.parentElement||t;r&&r!==e?r.appendChild(i):e.insertAdjacentElement("afterend",i),n&&requestAnimationFrame(()=>{requestAnimationFrame(()=>i.classList.add("is-in"));});}(e,t,m,i),n&&(n.setAttribute(lo,"translated"),yo(n,"hide")),"ok"):(e.hasAttribute(co)||e.setAttribute(co,s),e.innerHTML=m,i&&r&&Po(e,a),n&&(n.setAttribute(lo,"translated"),yo(n,"original")),"ok")}async function xo(e){var t,a;const n=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,`.${ro}`);if(!n||n.classList.contains("is-loading"))return;e.preventDefault(),e.stopPropagation();const i=function(e){if("desc"===e.getAttribute("data-blp-translate-kind")){const e=fo();return e?{textEl:e,host:e.parentElement||e}:null}const t=e.closest(".review-card");if(!t)return null;const a=vo(t);return a?{textEl:a,host:a.parentElement||a,card:t}:null}(n);if(!i)return;const{textEl:r,host:o,card:s}=i,l=bo(),c=n.getAttribute(lo)||"idle",u="review"===n.getAttribute("data-blp-translate-kind");if("replace"===l&&"translated"===c){const e=r.getAttribute(co);return null!=e&&(r.innerHTML=e),r.removeAttribute(co),n.removeAttribute(lo),void yo(n,"idle")}if("below"===l&&"translated"===c)return Co(o,r),n.removeAttribute(lo),void yo(n,"idle");await Bo({textEl:r,host:o,card:s,btn:n,isReview:u});}function Do(){po&&(po.disconnect(),po=null),ho.length=0,go=0;}function Ho(){for(;go<2&&ho.length;){const e=ho.shift();if(!(null==e?void 0:e.isConnected))continue;if("done"===e.getAttribute(uo)||"busy"===e.getAttribute(uo))continue;go+=1,e.setAttribute(uo,"busy");const t=vo(e),a=wo(e),n=(null==t?void 0:t.parentElement)||t;Promise.resolve().then(()=>Bo({textEl:t,host:n,card:e,btn:a,isReview:true,expand:false})).then(t=>{"ok"===t||"same"===t?e.setAttribute(uo,"done"):e.removeAttribute(uo);}).catch(()=>{e.removeAttribute(uo);}).finally(()=>{go-=1,Ho();});}}function To(e){e&&"done"!==e.getAttribute(uo)&&"busy"!==e.getAttribute(uo)&&(ho.includes(e)||(ho.push(e),Ho()));}function Ao(){mo||(mo=true,document.addEventListener("click",xo,true)),false!==te.showTranslate?(function(){var e;if(!te.translateDescription){document.querySelectorAll(".blp-translate-desc-slot").forEach(e=>e.remove()),document.querySelectorAll(`.${ro}[data-blp-translate-kind="desc"]`).forEach(e=>{e.remove();});const t=fo();return (null==t?void 0:t.hasAttribute(co))&&(t.innerHTML=t.getAttribute(co),t.removeAttribute(co)),null==(e=document.querySelector("#collapseSummary"))||e.removeAttribute(so),void document.querySelectorAll(`.${oo}`).forEach(e=>{e.closest("#center-content, #collapseSummary, #game-body")&&(e.closest(".review-card")||e.remove());})}const t=fo(),a=document.querySelector("#collapseSummary");if(!t||!a)return;if(!So(t.innerHTML))return;a.setAttribute(so,"desc");let n=document.querySelector(`.${ro}[data-blp-translate-kind="desc"]`);if(n)return;n=ko("desc");const i=document.getElementById("summary-expand-btn"),r=null==i?void 0:i.closest(".col-auto");if(r){const e=document.createElement("div");return e.className="col-auto my-auto blp-translate-desc-slot",e.appendChild(n),void r.insertAdjacentElement("beforebegin",e)}t.insertAdjacentElement("afterend",n);}(),function(){if(!te.translateReviews)return document.querySelectorAll(`.${ro}[data-blp-translate-kind="review"]`).forEach(e=>{var t;null==(t=e.closest(".blp-translate-review-slot"))||t.remove(),e.remove();}),void document.querySelectorAll(`.review-card[${so}="review"]`).forEach(e=>{e.removeAttribute(so);});document.querySelectorAll(".review-card").forEach(e=>function(e){if(e.querySelector(`.${ro}[data-blp-translate-kind="review"]`))return;const t=vo(e);if(!t||!So(t.innerHTML))return;e.setAttribute(so,"review");const a=ko("review"),n=e.querySelector(".review-bottom-bar");if(n){const e=document.createElement("div");e.className="col-auto my-auto pr-1 blp-translate-review-slot",e.appendChild(a);const t=n.querySelector(".expand-review-col");return void(t?t.insertAdjacentElement("beforebegin",e):n.appendChild(e))}t.insertAdjacentElement("afterend",a);}(e));}(),function(){if(false===te.showTranslate||false===te.translateReviews||true!==te.translateReviewsAuto)return Do(),void document.querySelectorAll(`.review-card[${uo}="busy"]`).forEach(e=>{e.removeAttribute(uo);});po||(po=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;null==po||po.unobserve(e),To(e);}},{root:null,rootMargin:"120px 0px",threshold:.15})),document.querySelectorAll(".review-card").forEach(e=>{if("done"===e.getAttribute(uo)||"busy"===e.getAttribute(uo))return;const t=vo(e);t&&So(t.innerHTML)&&po.observe(e);});}()):function(e=document){Do(),e.querySelectorAll(".blp-translate-desc-slot, .blp-translate-review-slot").forEach(e=>{e.remove();}),e.querySelectorAll(`.${ro}`).forEach(e=>e.remove()),e.querySelectorAll(`.${oo}`).forEach(e=>e.remove()),e.querySelectorAll(`[${so}]`).forEach(e=>{e.removeAttribute(so);}),e.querySelectorAll(`[${uo}]`).forEach(e=>{e.removeAttribute(uo);}),e.querySelectorAll(`[${co}]`).forEach(e=>{const t=e.getAttribute(co);null!=t&&(e.innerHTML=t),e.removeAttribute(co),e.removeAttribute(lo);});}();}function Go(){Hi(),document.documentElement.hasAttribute("data-blp-fix-bound")||(document.documentElement.setAttribute("data-blp-fix-bound","1"),document.addEventListener("click",e=>{var t,a;const n=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-fix-match]");n&&(e.preventDefault(),e.stopPropagation(),function(e,t){var a,n,i,r,o;if(!e||document.querySelector(".blp-fix-match-backdrop"))return;const s=document.createElement("div");s.className="blp-fix-match-backdrop",s.innerHTML=`\n \n `;const l=()=>s.remove(),c=()=>s.querySelector("#blp-fix-appid");s.addEventListener("click",e=>{e.target===s&&l();}),null==(a=s.querySelector("[data-blp-fix-cancel]"))||a.addEventListener("click",l),null==(n=s.querySelector("[data-blp-fix-clear]"))||n.addEventListener("click",()=>{!function(e){Te(e,null);}(e),l(),Mn(),jn(),ui(true),ha(ne.toastSteamMatchCleared,{type:"info",title:ne.toastSteamMatchClearedTitle});}),null==(i=s.querySelector("[data-blp-fix-save]"))||i.addEventListener("click",()=>{var t;const a=String((null==(t=c())?void 0:t.value)||"").trim(),n=Number(a.replace(/[^\d]/g,""));if(!Number.isFinite(n)||n<=0){const e=s.querySelector("[data-blp-fix-error]");return e&&(e.hidden=false,e.textContent=ne.steamFixMatchInvalid),void ha(ne.steamFixMatchInvalid,{type:"error",title:ne.steamFixMatchInvalidTitle})}Te(e,n),l(),Mn(),jn(),ui(true),ha(Q(ne.toastSteamMatchSaved,{id:n}),{type:"success",title:ne.toastSteamMatchSavedTitle});}),document.body.appendChild(s),null==(r=c())||r.focus(),null==(o=c())||o.select();}(n.getAttribute("data-blp-slug")||Jt().slug,n.getAttribute("data-blp-appid")||""));},true)),function(){if(ja)return ja;const e=ca(()=>{ba()?document.querySelector("#log-editor-footer")&&qa():document.querySelectorAll(`[${fa}="log-btn"]`).forEach(e=>e.remove());},200);ja=new MutationObserver(e),ja.observe(document.documentElement,{childList:true,subtree:true}),qa();}(),qa(),true===te.hideHomepageFuse?document.documentElement.setAttribute(Ti,"1"):document.documentElement.removeAttribute(Ti),function(){const e=document.documentElement;true===te.enhanceHeader?(e.setAttribute(Ai,"1"),_i||(_i=true,window.addEventListener("scroll",Mi,{passive:true})),Mi()):(e.removeAttribute(Ai),e.removeAttribute(Gi));}(),jn(),ui(),function(){if(false===te.showUserMiniProfile)return wr({immediate:true}),Lr(),void $r();ar||(ar=true,document.addEventListener("pointerover",Or,true),document.addEventListener("pointerout",Fr,true),window.addEventListener("scroll",zr,true),window.addEventListener("resize",zr));}(),Rr(),no(),Ao();}function _o(e){var t,a,n,i,r,o,s,l,c,u,d,S,f,v,w,y,k,P,C,B,x,D,H,T,A,G,_,M,L,$,I;return !(!e||1!==e.nodeType)&&(!!((null==(t=e.hasAttribute)?void 0:t.call(e,m))||(null==(a=e.hasAttribute)?void 0:a.call(e,p))||(null==(n=e.hasAttribute)?void 0:n.call(e,g))||(null==(i=e.hasAttribute)?void 0:i.call(e,h))||(null==(r=e.hasAttribute)?void 0:r.call(e,b))||(null==(o=e.hasAttribute)?void 0:o.call(e,"data-blp-debug"))||(null==(s=e.hasAttribute)?void 0:s.call(e,"data-blp-token"))||(null==(l=e.hasAttribute)?void 0:l.call(e,"data-blp-translate"))||"blp-nav-settings"===e.id||"blp-profile-menu-settings"===e.id||"blp-steam-backloggd-btn"===e.id||"blp-steamdb-backloggd-btn"===e.id)||!!((null==(c=e.classList)?void 0:c.contains("blp-card-badges"))||(null==(u=e.classList)?void 0:u.contains("blp-settings-backdrop"))||(null==(d=e.classList)?void 0:d.contains("blp-fix-match-backdrop"))||(null==(S=e.classList)?void 0:S.contains("blp-export-backdrop"))||(null==(f=e.classList)?void 0:f.contains("blp-export-wrap"))||(null==(v=e.classList)?void 0:v.contains("blp-export-log-wrap"))||(null==(w=e.classList)?void 0:w.contains("blp-debug-panel"))||(null==(y=e.classList)?void 0:y.contains("blp-steamdb-cover"))||(null==(k=e.classList)?void 0:k.contains("blp-steam-gallery"))||(null==(P=e.classList)?void 0:P.contains("blp-similar"))||(null==(C=e.classList)?void 0:C.contains("blp-viewer"))||(null==(B=e.classList)?void 0:B.contains("blp-title-icon-wrap"))||(null==(x=e.classList)?void 0:x.contains("blp-game-id"))||(null==(D=e.classList)?void 0:D.contains("blp-toast-host"))||(null==(H=e.classList)?void 0:H.contains("blp-toast"))||(null==(T=e.classList)?void 0:T.contains("blp-ump"))||(null==(A=e.classList)?void 0:A.contains("blp-ump-avatar-spin"))||(null==(G=e.classList)?void 0:G.contains("blp-profile-tier-chip"))||(null==(_=e.classList)?void 0:_.contains("blp-translate-btn"))||(null==(M=e.classList)?void 0:M.contains("blp-translate-result"))||(null==(L=e.classList)?void 0:L.contains("blp-translate-desc-slot"))||(null==($=e.classList)?void 0:$.contains("blp-translate-review-slot"))||"blp-toast-host"===e.id||"blp-user-mini-profile"===e.id)||Boolean(null==(I=e.closest)?void 0:I.call(e,`[${m}], [${p}], [${g}], [${h}], .blp-card-badges, .blp-settings-backdrop, .blp-fix-match-backdrop, .blp-export-backdrop, .blp-export-wrap, .blp-export-log-wrap, [data-blp-debug], [data-blp-translate], .blp-translate-btn, .blp-translate-result, .blp-translate-desc-slot, .blp-translate-review-slot, #blp-nav-settings, #blp-profile-menu-settings, #blp-toast-host, .blp-toast-host, #blp-user-mini-profile, .blp-ump, .blp-ump-avatar-spin, .blp-profile-tier-chip`)))}function Mo(e){const t=ca(e,400),a=new MutationObserver(e=>{(function(e){for(const t of e)for(const e of t.addedNodes)if(1===e.nodeType&&!_o(e))return false;return true})(e)||t();});return a.observe(document.documentElement,{childList:true,subtree:true}),a}const Lo="blp-steam-backloggd-btn",$o="https://www.backloggd.com";function Io(){var e;if(!te.showSteamPageLink)return void(null==(e=document.getElementById(Lo))||e.remove());if(!function(){const e=location.pathname.match(/\/app\/(\d+)/i);return e?e[1]:""}())return;const t=document.querySelector(".apphub_OtherSiteInfo");if(!t)return;const a=function(){const e=function(){const e=location.pathname.match(/\/app\/\d+\/([^/?#]+)/i);return e?it(e[1].replace(/_/g,"-")):""}();if(e)return `${$o}/games/${encodeURIComponent(e)}/`;const t=it((null==(n=null==(a=document.getElementById("appHubAppName"))?void 0:a.textContent)?void 0:n.trim())||(null==(r=null==(i=document.querySelector(".apphub_AppName"))?void 0:i.textContent)?void 0:r.trim())||document.title.replace(/\s+on\s+Steam.*$/i,"").replace(/\s+::\s+.*$/i,"").trim());var a,n,i,r;return t?`${$o}/games/${encodeURIComponent(t)}/`:$o}(),n=document.getElementById(Lo);if(n)return void(n.href=a);const i=function(e){const t=document.createElement("a");return t.id=Lo,t.className="btnv6_blue_hoverfade btn_medium",t.href=e,t.target="_blank",t.rel="noopener noreferrer",t.innerHTML=`\n \n Backloggd\n \n `,t}(a),r=t.querySelector('a.btnv6_blue_hoverfade[href*="steamcommunity.com/app/"]')||t.querySelector('a.btnv6_blue_hoverfade[href*="store.steampowered.com/app/"]')||[...t.querySelectorAll("a.btnv6_blue_hoverfade")].find(e=>/community hub|store page/i.test(e.textContent||""));r?(r.insertAdjacentElement("beforebegin",i),r.previousSibling===i&&i.insertAdjacentText("afterend"," ")):t.appendChild(i);}function Ro(){Io();}const Eo="blp-steamdb-backloggd-btn";function No(){const e=location.pathname.match(/\/app\/(\d+)/i);return e?e[1]:""}function Oo(){var e;if(!te.showSteamDbPageLink)return void(null==(e=document.getElementById(Eo))||e.remove());if(!No())return;const t=document.querySelector("nav.app-links");if(!t)return;const a=function(){const e=function(){const e=document.querySelector('.app-links a[href*="igdb.com/games/"], a[href*="igdb.com/games/"]');if(!(null==e?void 0:e.href))return "";const t=String(e.href).match(/igdb\.com\/games\/([^/?#]+)/i);return t?decodeURIComponent(t[1]).toLowerCase():""}();if(e)return `${$o}/games/${encodeURIComponent(e)}/`;const t=it(function(){const e=document.querySelector('.app-page header h1, .header-title h1, h1[itemprop="name"]')||document.querySelector("h1");let t=((null==e?void 0:e.textContent)||"").trim();return t=t?t.split(/\n/)[0].trim():document.title.replace(/\s*[·•|].*$/,"").replace(/\s*AppID.*$/i,"").trim(),t}());return t?`${$o}/games/${encodeURIComponent(t)}/`:$o}(),n=document.getElementById(Eo);if(n)return void(n.href=a);const i=function(e){const t=document.createElement("a");return t.id=Eo,t.className="btn tooltipped tooltipped-n",t.href=e,t.target="_blank",t.rel="noopener noreferrer",t.setAttribute("aria-label",ne.steamBackloggdTooltip),t.textContent=ne.steamDbBackloggdLabel,t}(a),r=t.querySelector('a.btn[href*="store.steampowered.com"]');if(r)r.insertAdjacentElement("afterend",i);else {const e=t.querySelector('a.btn[href*="igdb.com"]');e?e.insertAdjacentElement("beforebegin",i):t.appendChild(i);}}function Fo(){Oo();const e=No();e&&function(e=""){const t=Number(e);!Number.isFinite(t)||t<=0||function(e,t){const a=Number(e);if(!Number.isFinite(a)||a<=0||!t||t.blocked)return null;const n=wt(a,t);(n.franchise||n.systems||n.technologies.length||n.lastRecordUpdate)&&ye(St(a),n);}(t,vt(document));}(e);}function zo(){if(document.documentElement.hasAttribute(d))return;document.documentElement.setAttribute(d,"1"),le();const n=function(){let t=null;try{t=e(c,null);}catch(n){t=null;}if(t===o){const e=_e(),t=Me();if(e>0||t>0)try{a(l,ge());}catch(n){}return null}Fe();try{a(c,o);}catch(n){}return null==t?"install":"upgrade"}();return function(){let e=[];try{const t=sessionStorage.getItem(da);sessionStorage.removeItem(da),t&&(e=JSON.parse(t));}catch(t){e=[];}Array.isArray(e)&&e.length&&setTimeout(()=>{for(const t of e)t&&ha({title:t.title||"",message:t.message||"",type:t.type||"info",duration:t.duration});},120);}(),"upgrade"===n&&ha(Q(ne.toastCacheClearedOnUpdate,{version:o}),{type:"info",title:ne.toastCacheClearedOnUpdateTitle,duration:5200}),"function"==typeof t&&t(ne.menuSettings,Bi),function(){const e=location.hostname;return "store.steampowered.com"===e||e.endsWith(".steampowered.com")||"steamcommunity.com"===e||e.endsWith(".steamcommunity.com")}()?(Ro(),void Mo(Ro)):/(^|\.)steamdb\.info$/i.test(location.hostname)?(Fo(),void Mo(Fo)):void(/(^|\.)backloggd\.com$/i.test(location.hostname)&&(Hi(),Go(),Mo(Go),function(){const e=ca(Go,50);["turbo:load","turbo:render","turbo:frame-load","popstate"].forEach(t=>{document.addEventListener(t,e,true),window.addEventListener(t,e,true);});let t=location.href;setInterval(()=>{location.href!==t&&(t=location.href,e());},500);}()))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",zo,{once:true}):zo(); })();