// ==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.99 // @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 opencritic-api.p.rapidapi.com // @connect www.pcgamingwiki.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_addValueChangeListener // @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-hide-homepage-fuse="1"] .prosper-adframe,html[data-blp-hide-homepage-fuse="1"] .row:has(>.col:only-child>.prosper-adframe:only-child){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(var(--blp-accent-rgb, 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(var(--blp-accent-rgb, 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(var(--blp-accent-rgb, 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:rgba(var(--blp-accent-rgb, 61, 184, 154),.45)!important;box-shadow:0 0 0 3px rgba(var(--blp-accent-rgb, 61, 184, 154),.14)}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:rgba(var(--blp-accent-rgb, 61, 184, 154),.45)!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:rgba(var(--blp-accent-rgb, 61, 184, 154),.12)!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 rgba(var(--blp-accent-rgb, 61, 184, 154),.28);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 rgba(var(--blp-accent-rgb, 61, 184, 154),.36);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 rgba(var(--blp-accent-rgb, 61, 184, 154),.2)}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-accent-rgb: 61, 184, 154;--blp-accent-ink: #0b1210;--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:var(--blp-accent-ink, #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:var(--blp-accent-ink, #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:rgba(var(--blp-accent-rgb, 61, 184, 154),.5);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.1)}.blp-export-option.is-disabled{opacity:.55;cursor:not-allowed}.blp-export-option input{margin-top:.15rem;accent-color:var(--blp-accent, #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:rgba(var(--blp-accent-rgb, 61, 184, 154),.45);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:var(--blp-accent-ink, #0b1210);font-weight:600}.blp-export-backdrop .blp-btn.blp-primary:hover,.blp-export-dialog .blp-actions .blp-btn.blp-primary:hover{background:color-mix(in srgb,var(--blp-accent, #3db89a) 82%,#fff);color:var(--blp-accent-ink, #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-link-btn{display:inline-flex;align-items:center;gap:.4em;margin:.1em .45em .1em 0;padding:.2em .7em;border-radius:999px;border:1px solid rgba(var(--blp-accent-rgb, 61, 184, 154),.45);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.12);color:var(--blp-accent, #3db89a)!important;font-size:.85em;font-weight:700;line-height:1.3;text-decoration:none!important;white-space:nowrap;vertical-align:middle;transition:background-color .15s ease,border-color .15s ease}[data-blp-enrich] .blp-link-btn:hover{background:rgba(var(--blp-accent-rgb, 61, 184, 154),.24);border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.7)}[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:rgba(var(--blp-accent-rgb, 61, 184, 154),.45);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(var(--blp-accent-rgb, 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;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:20px 22px 12px}.blp-settings__head-text{min-width:0;flex:1 1 240px}.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:rgba(var(--blp-accent-rgb, 61, 184, 154),.55)}.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 rgba(var(--blp-accent-rgb, 61, 184, 154),.45);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:rgba(var(--blp-accent-rgb, 61, 184, 154),.14);border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.28)}.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:rgba(var(--blp-accent-rgb, 61, 184, 154),.22)}.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:rgba(var(--blp-accent-rgb, 61, 184, 154),.08)}.blp-settings__tab:focus-visible{outline:2px solid rgba(var(--blp-accent-rgb, 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-search{position:relative;display:flex;align-items:center;flex:0 1 300px;min-width:200px;color:var(--blp-muted)}.blp-search__icon{position:absolute;left:12px;pointer-events:none;transition:color .15s ease}.blp-search__input{width:100%;padding:9px 76px 9px 36px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--blp-settings-inset);color:var(--blp-text);font:inherit;font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.blp-search__input::placeholder{color:var(--blp-muted)}.blp-search__input:hover{border-color:#ffffff29}.blp-search__input:focus{outline:none;border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.55);box-shadow:0 0 0 3px rgba(var(--blp-accent-rgb, 61, 184, 154),.16)}.blp-search:focus-within .blp-search__icon{color:var(--blp-accent)}.blp-search__count{position:absolute;right:34px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--blp-muted);pointer-events:none;white-space:nowrap}.blp-search__kbd{position:absolute;right:10px;min-width:20px;padding:1px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--blp-muted);font:600 11px/1.5 system-ui,sans-serif;text-align:center;pointer-events:none}.blp-search__kbd[hidden]{display:none}.blp-search__clear{appearance:none;position:absolute;right:6px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:0;padding:0;border:0;border-radius:7px;background:transparent;color:var(--blp-muted);cursor:pointer;transition:color .15s ease,background-color .15s ease}.blp-search__clear[hidden]{display:none}.blp-search__clear:hover,.blp-search__clear:focus-visible{color:var(--blp-text);background:#ffffff14;outline:none}.blp-search-hide{display:none!important}.blp-settings .blp-toggle.blp-search-first,.blp-settings .blp-field.blp-search-first{border-top:0}.blp-mark{padding:0 1px;border-radius:3px;background:rgba(var(--blp-accent-rgb, 61, 184, 154),.3);color:inherit;box-shadow:0 0 0 1px rgba(var(--blp-accent-rgb, 61, 184, 154),.18)}.blp-search-panel-head{display:none}.blp-settings.is-searching .blp-search-panel-head{appearance:none;display:flex;align-items:center;gap:8px;width:100%;margin:0 0 12px;padding:6px 4px 8px;border:0;border-bottom:1px solid var(--blp-border);border-radius:0;background:transparent;color:var(--blp-text);cursor:pointer;font:inherit;font-size:14px;font-weight:700;text-align:left}.blp-settings.is-searching .blp-search-panel-head:hover .blp-search-panel-head__label,.blp-settings.is-searching .blp-search-panel-head:focus-visible .blp-search-panel-head__label{color:var(--blp-accent)}.blp-search-panel-head:focus-visible{outline:2px solid rgba(var(--blp-accent-rgb, 61, 184, 154),.55);outline-offset:2px}.blp-search-panel-head__count{min-width:1.6em;padding:1px 7px;border-radius:999px;background:rgba(var(--blp-accent-rgb, 61, 184, 154),.14);color:var(--blp-accent);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.blp-settings.is-searching .blp-settings__panel{margin-bottom:22px;animation:none}.blp-settings.is-searching .blp-settings__panel:last-of-type{margin-bottom:0}.blp-settings.is-searching .blp-settings__tab.is-active{color:var(--blp-muted);background:transparent}.blp-settings.is-searching .blp-settings__tab-ink{opacity:0}.blp-settings__tab.is-dim{opacity:.4}.blp-toggle.is-flash,.blp-field.is-flash,.blp-settings-group.is-flash{animation:blp-search-flash 1.1s ease-out}@keyframes blp-search-flash{0%{background:rgba(var(--blp-accent-rgb, 61, 184, 154),.28)}to{background:transparent}}.blp-search-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:44px 16px;text-align:center;color:var(--blp-muted)}.blp-search-empty[hidden]{display:none}.blp-search-empty .blp-hint{margin:0}.blp-search-empty__title{margin:8px 0 0;color:var(--blp-text);font-size:14px;font-weight:600;overflow-wrap:anywhere}@media(max-width:640px){.blp-search{flex-basis:100%}}.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-backup{display:flex;flex-direction:column;gap:12px}.blp-settings-backup__item{display:flex;align-items:center;gap:14px}.blp-settings-backup__item .blp-btn{flex:0 0 auto;min-width:7.5rem}.blp-settings-backup__hint{margin:0;min-width:0;flex:1 1 auto}.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=text],.blp-field input[type=number],.blp-field input[type=password]{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=text]:hover,.blp-field input[type=number]:hover,.blp-field input[type=password]:hover{border-color:#ffffff29}.blp-field select:focus,.blp-field input[type=text]:focus,.blp-field input[type=number]:focus,.blp-field input[type=password]:focus{outline:none;border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.55);box-shadow:0 0 0 3px rgba(var(--blp-accent-rgb, 61, 184, 154),.16)}.blp-hint-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;color:var(--blp-accent, #3db89a);text-decoration:none}.blp-hint-link:hover{text-decoration:underline}.blp-field select:disabled,.blp-field input:disabled{opacity:.5;cursor:not-allowed}.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:rgba(var(--blp-accent-rgb, 61, 184, 154),.45);color:var(--blp-accent);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.08)}.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-settings-list[data-blp-links-list]{position:relative}.blp-link-row{gap:10px;padding-left:8px}.blp-link-row.is-dragging{position:relative;z-index:2;background:rgba(var(--blp-accent-rgb, 61, 184, 154),.14);box-shadow:0 8px 22px #00000073,inset 0 0 0 1px rgba(var(--blp-accent-rgb, 61, 184, 154),.4)}.blp-link-dragging,.blp-link-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}.blp-link-row__grip,.blp-link-row__btn{display:inline-grid;place-items:center;flex:0 0 auto;width:26px;height:30px;margin:0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--blp-muted);cursor:pointer;transition:color .15s ease,background-color .15s ease}.blp-link-row__grip{cursor:grab;touch-action:none}.blp-link-row__grip:hover,.blp-link-row__btn:hover{color:var(--blp-text);background:#ffffff12}.blp-link-row__btn--danger:hover{color:#ef7f8c;background:#c44b5a29}.blp-link-row__grip:focus-visible,.blp-link-row__btn:focus-visible{outline:2px solid rgba(var(--blp-accent-rgb, 61, 184, 154),.65);outline-offset:1px}.blp-link-row__actions{display:inline-flex;flex:0 0 auto;gap:2px}.blp-link-tag{padding:1px 7px;border-radius:999px;background:rgba(var(--blp-accent-rgb, 61, 184, 154),.16);color:var(--blp-accent);font-size:10.5px;font-weight:700;letter-spacing:.05em;line-height:1.5;text-transform:uppercase}.blp-link-add{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.06)}.blp-link-add .blp-btn:disabled{opacity:.5;cursor:not-allowed}.blp-link-add .blp-hint{margin:0}.blp-link-editor,.blp-link-editor *,.blp-link-editor *:before,.blp-link-editor *:after{box-sizing:border-box}.blp-link-editor{--blp-settings-elevated: #1a202b;--blp-settings-inset: #0f1319;width:min(520px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:14px;font:14px/1.45 system-ui,sans-serif}.blp-link-editor h3{margin-bottom:.8rem}.blp-link-editor .blp-field{padding:0 0 12px}.blp-link-editor .blp-hint{margin:6px 0 0}.blp-link-editor__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.blp-chip{padding:3px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:var(--blp-settings-elevated);color:var(--blp-text);font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;cursor:pointer;transition:border-color .15s ease,color .15s ease,background-color .15s ease}.blp-chip:hover{border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.5);color:var(--blp-accent);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.08)}.blp-link-editor__preview{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:var(--blp-settings-inset)}.blp-link-editor__preview-label{color:var(--blp-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.blp-link-editor__preview-link{display:inline-flex;align-items:center;gap:.4em;color:var(--blp-text);font-size:13.5px;font-weight:600}.blp-link-editor__preview-link .blp-favicon{width:14px;height:14px;border-radius:2px;object-fit:contain}.blp-link-editor__preview-url{display:block;padding:0;background:none;color:var(--blp-muted);font-size:12px;word-break:break-all}.blp-link-editor__error{margin:0 0 10px;color:#ef7f8c;font-size:12.5px;font-weight:600}.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 rgba(var(--blp-accent-rgb, 61, 184, 154),.14)}.blp-switch:focus-visible{outline:2px solid rgba(var(--blp-accent-rgb, 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-settings__foot .blp-actions--start{margin-left:0}.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:var(--blp-accent-ink, #0b1210);font-weight:700}.blp-actions button.blp-primary:hover{filter:brightness(1.06);border-color:transparent}.blp-actions button.blp-danger,.blp-confirm-dialog .blp-btn.blp-danger{background:#c44b5a;border-color:transparent;color:#fff;font-weight:700}.blp-actions button.blp-danger:hover,.blp-confirm-dialog .blp-btn.blp-danger:hover{filter:brightness(1.08)}.blp-confirm-backdrop{position:fixed;inset:0;z-index:1000001;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0000008c}.blp-confirm-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-confirm-dialog h3{margin:0 0 .35rem;font-size:1rem}.blp-confirm-dialog .blp-hint{margin:0 0 .85rem;color:var(--blp-muted);font-size:.78rem;line-height:1.4}.blp-confirm-dialog .blp-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.blp-confirm-dialog .blp-btn{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}.blp-confirm-dialog .blp-btn:hover{border-color:#ffffff2e}.blp-confirm-dialog .blp-btn.blp-primary{background:var(--blp-accent);border-color:transparent;color:var(--blp-accent-ink, #0b1210);font-weight:700}.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:var(--blp-accent-ink, #0b1210);font-weight:600}.blp-export-backdrop .blp-btn.blp-primary:hover,.blp-export-dialog .blp-actions button.blp-btn.blp-primary:hover{background:color-mix(in srgb,var(--blp-accent, #3db89a) 82%,#fff);background-color:color-mix(in srgb,var(--blp-accent, #3db89a) 82%,#fff);color:var(--blp-accent-ink, #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:rgba(var(--blp-accent-rgb, 61, 184, 154),.4);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.08)}.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(var(--blp-accent-rgb, 61, 184, 154),.18);background:rgba(var(--blp-accent-rgb, 61, 184, 154),.07);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(var(--blp-accent-rgb, 61, 184, 154),.35);background:#ffffff0f;box-shadow:0 0 0 3px rgba(var(--blp-accent-rgb, 61, 184, 154),.08)}.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{--blp-cache-game: #6ea8fe;--blp-cache-profiles: #c084fc;--blp-cache-translations: #fbbf24;--blp-cache-fx: #34d399;--blp-cache-system: #94a3b8;margin:0}.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-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:0 0 auto;padding-bottom:2px;text-align:right}.blp-cache-meter__used{font-size:12px;font-variant-numeric:tabular-nums;color:var(--blp-muted)}.blp-cache-meter__entries{font-size:11px;font-variant-numeric:tabular-nums;color:#9aa0a6d9}.blp-cache-meter__bar{display:flex;height:14px;border-radius:8px;overflow:hidden;background:#ffffff0d;border:1px solid var(--blp-border);box-shadow:inset 0 1px #ffffff0a}.blp-cache-meter__seg{display:block;height:100%;min-width:0;transition:width .22s ease}.blp-cache-meter__seg--game{background:linear-gradient(180deg,#8bbcff 0%,var(--blp-cache-game) 100%)}.blp-cache-meter__seg--profiles{background:linear-gradient(180deg,#d8b4fe 0%,var(--blp-cache-profiles) 100%)}.blp-cache-meter__seg--translations{background:linear-gradient(180deg,#fcd34d 0%,var(--blp-cache-translations) 100%)}.blp-cache-meter__seg--fx{background:linear-gradient(180deg,#6ee7b7 0%,var(--blp-cache-fx) 100%)}.blp-cache-meter__seg--system{background:linear-gradient(180deg,#cbd5e1 0%,var(--blp-cache-system) 100%)}.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:12px 0 0;padding:0;display:grid;gap:6px;font-size:12px;color:var(--blp-muted);font-variant-numeric:tabular-nums}.blp-cache-meter__row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.blp-cache-meter__row.is-off{opacity:.55}.blp-cache-meter__row.is-off .blp-cache-meter__swatch{filter:grayscale(.7)}.blp-cache-meter__name{display:flex;align-items:center;gap:6px;min-width:0;color:var(--blp-text);font-weight:500}.blp-cache-meter__off{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--blp-gs-partial);border:1px solid rgba(255,179,33,.35);border-radius:4px;padding:1px 5px;line-height:1.3}.blp-cache-meter__meta{display:flex;align-items:baseline;gap:10px;flex:0 0 auto;white-space:nowrap}.blp-cache-meter__count{color:var(--blp-muted)}.blp-cache-meter__size{color:var(--blp-text);font-weight:600;min-width:4.5em;text-align:right}.blp-cache-meter__swatch{width:10px;height:10px;border-radius:3px;flex:0 0 auto;box-shadow:inset 0 0 0 1px #0003}.blp-cache-meter__swatch--game{background:var(--blp-cache-game)}.blp-cache-meter__swatch--profiles{background:var(--blp-cache-profiles)}.blp-cache-meter__swatch--translations{background:var(--blp-cache-translations)}.blp-cache-meter__swatch--fx{background:var(--blp-cache-fx)}.blp-cache-meter__swatch--system{background:var(--blp-cache-system)}.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);box-shadow:none}.blp-cache-meter .blp-hint{margin-top:10px;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:var(--blp-accent-ink, #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,var(--blp-accent-ink, #0b1210) 35%,transparent);border-top-color:var(--blp-accent-ink, #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-accent-picker{display:flex;flex-direction:column;gap:12px}.blp-accent-picker__swatches{display:flex;flex-wrap:wrap;gap:8px}.blp-accent-picker__swatch{width:28px;height:28px;padding:0;border-radius:50%;border:2px solid transparent;background:var(--blp-swatch);cursor:pointer;box-shadow:0 0 0 1px #ffffff2e;transition:transform .12s ease,box-shadow .12s ease}.blp-accent-picker__swatch:hover{transform:scale(1.1)}.blp-accent-picker__swatch:focus-visible{outline:2px solid #fff;outline-offset:2px}.blp-accent-picker__swatch.is-active{border-color:#fff;box-shadow:0 0 0 2px var(--blp-swatch)}.blp-accent-picker__custom{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.blp-accent-picker__custom input[type=color]{width:40px;height:30px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:transparent;cursor:pointer}.blp-accent-picker__value{min-width:4.5em;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--blp-muted)}@media(prefers-reduced-motion:reduce){.blp-accent-picker__swatch{transition: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(var(--blp-accent-rgb, 61, 184, 154),.32)!important;background:radial-gradient(110% 120% at 100% 0%,rgba(var(--blp-accent-rgb, 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:rgba(var(--blp-accent-rgb, 61, 184, 154),.5)!important}.blp-unified-rating[data-grade=mid]{border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.38)!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 0%,var(--blp-accent, #3db89a) 52%,#beee11 100%);transform-origin:left center;transition:width .55s cubic-bezier(.22,1,.36,1),opacity .3s ease;will-change:width}.blp-unified-rating__meter-fill.is-graded{background:linear-gradient(90deg,hsl(calc(var(--blp-ur-hue, 60) - 26),78%,52%),hsl(var(--blp-ur-hue, 60),82%,55%))}.blp-unified-rating__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;width:100%}.blp-unified-rating__grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.blp-unified-rating__cell[hidden]{display:none}@media(max-width:575.98px){.blp-unified-rating__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.blp-unified-rating__cell{position:relative;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-link{position:absolute;inset:0;z-index:1;border-radius:inherit}.blp-unified-rating__cell.has-link:hover,.blp-unified-rating__cell.has-link:focus-within{border-color:rgba(var(--blp-accent-rgb, 61, 184, 154),.55);background:#00000052}.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:rgba(var(--blp-accent-rgb, 61, 184, 154),.35)}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}}@property --ump-accent{syntax: ""; inherits: true; initial-value: #9a8b78;}@property --ump-bg0{syntax: ""; inherits: true; initial-value: #1a1714;}@property --ump-bg1{syntax: ""; inherits: true; initial-value: #2a241c;}@property --ump-edge{syntax: ""; inherits: true; initial-value: rgba(255,220,170,.28);}@property --ump-glow{syntax: ""; inherits: true; initial-value: rgba(180,140,90,.2);}@property --ump-ink{syntax: ""; inherits: true; initial-value: #f4efe6;}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-updating{transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.16,1,.3,1),filter .34s ease,top .22s cubic-bezier(.22,1,.36,1),left .22s cubic-bezier(.22,1,.36,1)}.blp-ump.is-updating .blp-ump__card{animation:none}.blp-ump.is-updating.is-open .blp-ump__card>*:not(.blp-ump__shine):not(.blp-ump__foil){opacity:1;transform:none;transition:none}.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;transition:--ump-accent .7s ease,--ump-bg0 .7s ease,--ump-bg1 .7s ease,--ump-edge .7s ease,--ump-glow .7s ease,--ump-ink .7s ease}.blp-ump .blp-ump__sec{display:flow-root;position:relative;z-index:1}.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;transition:opacity .7s ease;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__card--plain .blp-ump__top{justify-content:flex-end}.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{display:inline-block;width:96px;height:10px;vertical-align:middle;animation-delay:.12s}.blp-ump__bone--stat-n{width:42%;height:15px;margin:1px auto 0}.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__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__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;min-height:1.1em;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,.blp-ump__cover[data-blp-gmp-hover="1"]{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}@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__card,.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}}@property --gmp-accent{syntax: ""; inherits: true; initial-value: #3db89a;}@property --gmp-bg0{syntax: ""; inherits: true; initial-value: #12161c;}@property --gmp-bg1{syntax: ""; inherits: true; initial-value: #1c2430;}@property --gmp-edge{syntax: ""; inherits: true; initial-value: rgba(61,184,154,.28);}@property --gmp-glow{syntax: ""; inherits: true; initial-value: rgba(61,184,154,.22);}@property --gmp-ink{syntax: ""; inherits: true; initial-value: #eef3f6;}@property --gmp-foil{syntax: ""; inherits: true; initial-value: 0;}.game-cover[data-blp-gmp-hover="1"] .overflow-wrapper,.blp-similar__cover[data-blp-gmp-hover="1"]{filter:brightness(1.06)}.blp-gmp{position:fixed;z-index:1000005;width:min(312px,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-gmp.is-nested{z-index:1000006}.blp-gmp.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-gmp.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-gmp.is-open .blp-gmp__card{animation:blp-gmp-card-in .48s cubic-bezier(.22,1,.36,1) both}.blp-gmp.is-open .blp-gmp__card>*:not(.blp-gmp__shine){opacity:0;transform:translateY(10px);transition:opacity .36s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.16,1,.3,1)}.blp-gmp.is-open.is-ready .blp-gmp__card>*:not(.blp-gmp__shine){opacity:1;transform:none}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(1){transition-delay:.02s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(2){transition-delay:.04s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(3){transition-delay:.06s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(4){transition-delay:.08s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(5){transition-delay:.1s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(6){transition-delay:.12s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(7){transition-delay:.14s}.blp-gmp.is-open.is-ready .blp-gmp__card>*:nth-child(8){transition-delay:.16s}.blp-gmp.is-updating{transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.16,1,.3,1),filter .34s ease,top .22s cubic-bezier(.22,1,.36,1),left .22s cubic-bezier(.22,1,.36,1)}.blp-gmp.is-updating .blp-gmp__card{animation:none}.blp-gmp.is-updating.is-open .blp-gmp__card>*:not(.blp-gmp__shine){opacity:1;transform:none;transition:none}.blp-gmp.is-updating.is-open .blp-gmp__shine{display:none}.blp-gmp.is-leaving .blp-gmp__card{animation:blp-gmp-card-out .26s cubic-bezier(.4,0,.2,1) both}.blp-gmp.is-leaving .blp-gmp__card>*:not(.blp-gmp__shine){opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .2s ease;transition-delay:0s!important}@keyframes blp-gmp-card-in{0%{opacity:.55;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@keyframes blp-gmp-card-out{to{opacity:.4;transform:translateY(6px) scale(.98)}}.blp-gmp__card{--gmp-ink: #eef3f6;--gmp-muted: rgba(238, 243, 246, .7);--gmp-bg0: #12161c;--gmp-bg1: #1c2430;--gmp-accent: var(--blp-accent, #3db89a);--gmp-edge: rgba(var(--blp-accent-rgb, 61, 184, 154), .28);--gmp-glow: color-mix(in srgb, var(--gmp-accent) 22%, transparent);--gmp-foil: 0;position:relative;overflow:hidden;border-radius:14px;padding:14px 14px 12px;color:var(--gmp-ink);background:radial-gradient(120% 80% at 12% 0%,var(--gmp-glow),transparent 55%),linear-gradient(165deg,var(--gmp-bg1),var(--gmp-bg0) 62%);border:1px solid var(--gmp-edge);box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #00000040;transition:--gmp-accent .7s ease,--gmp-bg0 .7s ease,--gmp-bg1 .7s ease,--gmp-edge .7s ease,--gmp-glow .7s ease,--gmp-ink .7s ease,--gmp-foil .7s ease}.blp-gmp .blp-gmp__sec{display:flow-root;margin-top:10px}.blp-gmp .blp-gmp__sec[data-sec=hero]{margin-top:0}.blp-gmp .blp-gmp__sec[data-sec=links]{margin-top:12px}.blp-gmp .blp-gmp__sec>*{margin-top:0;margin-bottom:0}.blp-gmp__shine{pointer-events:none;position:absolute;inset:-40% -20% auto;height:70%;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.08) 48%,transparent 62%);transform:rotate(-8deg);opacity:.7}.blp-gmp__hero{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:start;margin-bottom:10px}.blp-gmp__cover-link{display:block;text-decoration:none}.blp-gmp__cover{width:72px;aspect-ratio:2 / 3;border-radius:8px;overflow:hidden;background:#ffffff0f;box-shadow:0 6px 16px #00000059}.blp-gmp__cover img{display:block;width:100%;height:100%;object-fit:cover}.blp-gmp__cover-ph{display:block;width:100%;height:100%;background:linear-gradient(135deg,#ffffff14,#ffffff05)}.blp-gmp__hero-meta{min-width:0;display:flex;flex-direction:column;gap:6px;padding-top:2px}.blp-gmp__title{font-size:15px;font-weight:700;line-height:1.25;color:var(--gmp-ink);text-decoration:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.blp-gmp__title:hover{color:color-mix(in srgb,var(--gmp-accent) 70%,#fff)}.blp-gmp__sub{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:20px}.blp-gmp__year{font-size:12px;color:var(--gmp-muted);letter-spacing:.02em}.blp-gmp__rating{font-size:12px;font-weight:700;color:#f0c14b;background:#f0c14b1f;border:1px solid rgba(240,193,75,.28);border-radius:999px;padding:1px 8px}.blp-gmp__section{margin-top:10px}.blp-gmp__devs{font-size:12px;line-height:1.35;color:var(--gmp-muted);margin-bottom:8px}.blp-gmp__dev{color:var(--gmp-muted);text-decoration:none}.blp-gmp__dev:hover{color:var(--gmp-ink)}.blp-gmp__sep{opacity:.55}.blp-gmp__chips{display:flex;flex-wrap:wrap;gap:5px}.blp-gmp__chip{font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--gmp-ink);background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:2px 7px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blp-gmp__steam{display:flex;flex-wrap:wrap;gap:6px}.blp-gmp__pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:650;line-height:1.2;text-decoration:none;color:var(--gmp-ink);background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:4px 9px}.blp-gmp__pill--price{background:color-mix(in srgb,var(--gmp-accent) 18%,transparent);border-color:color-mix(in srgb,var(--gmp-accent) 35%,transparent)}.blp-gmp__discount{color:#7dffa8;font-weight:700}.blp-gmp__fx{opacity:.75;font-weight:500}.blp-gmp__pill--owned{background:#3ecf8e29;border-color:#3ecf8e59;color:#8ef0c0}.blp-gmp__pill--wishlist{background:#6da8ff29;border-color:#6da8ff59;color:#a8c9ff}.blp-gmp__pill--review.blp-review--overwhelming,.blp-gmp__pill--review.blp-review--very-positive,.blp-gmp__pill--review.blp-review--positive,.blp-gmp__pill--review.blp-review--mostly-positive{color:#66c0f4;border-color:#66c0f459;background:#66c0f41f}.blp-gmp__pill--review.blp-review--mixed,.blp-gmp__pill--review.blp-review--mostly-negative,.blp-gmp__pill--review.blp-review--negative,.blp-gmp__pill--review.blp-review--very-negative,.blp-gmp__pill--review.blp-review--overwhelmingly-negative{color:#a34c25;border-color:#a34c2566;background:#a34c2524}.blp-gmp__pill--mc-high{color:#6c3;border-color:#6c36;background:#66cc331f}.blp-gmp__pill--mc-mid{color:#fc3;border-color:#fc36;background:#ffcc331f}.blp-gmp__pill--mc-low{color:red;border-color:#f446;background:#ff44441f}.blp-gmp__gs{display:inline-flex;align-items:center;font-size:11px;font-weight:650;text-decoration:none;border-radius:8px;padding:4px 9px;color:var(--gmp-ink);background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.blp-gmp__gs.blp-gs-badge--ready{color:#8ef0c0;background:#3ecf8e29;border-color:#3ecf8e59}.blp-gmp__gs.blp-gs-badge--partial,.blp-gmp__gs.blp-gs-badge--pending-recent{color:#f0c14b;background:#f0c14b24;border-color:#f0c14b59}.blp-gmp__gs.blp-gs-badge--pending-old{color:#c9aa78;background:#c8aa7824;border-color:#c8aa784d}.blp-gmp__gs.blp-gs-badge--release-today{color:#a8c9ff;background:#6da8ff29;border-color:#6da8ff59}.blp-gmp__desc{margin:10px 0 0;font-size:12px;line-height:1.45;color:var(--gmp-muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.blp-gmp__footer{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.blp-gmp__links{display:flex;flex-wrap:wrap;gap:6px}.blp-gmp__link{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--gmp-muted);text-decoration:none;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px 8px}.blp-gmp__link:hover{color:var(--gmp-ink);border-color:#ffffff29}.blp-gmp__link-icon{display:block;border-radius:2px}.blp-gmp__cta{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;text-decoration:none;color:var(--blp-accent-ink, #0b1512);background:linear-gradient(180deg,color-mix(in srgb,var(--gmp-accent) 92%,#fff),var(--gmp-accent));border-radius:9px;padding:8px 12px;box-shadow:0 6px 16px color-mix(in srgb,var(--gmp-accent) 28%,transparent)}.blp-gmp__cta:hover{filter:brightness(1.05)}.blp-gmp__status{margin:10px 0;font-size:12px;color:var(--gmp-muted);text-align:center}.blp-gmp__tier-pill{align-self:flex-start;display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;color:#120e0a;background:linear-gradient(180deg,#fff6e8,var(--gmp-accent));box-shadow:0 1px #ffffff59 inset}.blp-gmp__card--tier:before{content:"";position:absolute;inset:5px;border-radius:10px;border:1px solid var(--gmp-edge);pointer-events:none;opacity:.55}.blp-gmp__card--tier:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:var(--gmp-foil, 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-gmp__card--tier .blp-gmp__cover{box-shadow:0 0 0 2px var(--gmp-accent),0 6px 16px #00000059}.blp-gmp__card--tier .blp-gmp__title:hover{color:#fff}.blp-gmp__card--rookie{--gmp-accent: #8b9098;--gmp-bg0: #15171a;--gmp-bg1: #23262b;--gmp-edge: rgba(180, 190, 200, .22);--gmp-glow: rgba(140, 150, 160, .16)}.blp-gmp__card--bronze{--gmp-accent: #c8843d;--gmp-bg0: #1a120c;--gmp-bg1: #3a2414;--gmp-edge: rgba(210, 140, 70, .4);--gmp-glow: rgba(200, 120, 50, .28)}.blp-gmp__card--silver{--gmp-accent: #c5ced8;--gmp-bg0: #12151a;--gmp-bg1: #2a313a;--gmp-edge: rgba(210, 220, 230, .38);--gmp-glow: rgba(190, 205, 220, .24);--gmp-ink: #f2f5f8}.blp-gmp__card--gold{--gmp-accent: #e6b735;--gmp-bg0: #1a1406;--gmp-bg1: #3d2e0a;--gmp-edge: rgba(240, 190, 60, .48);--gmp-glow: rgba(230, 180, 40, .32);--gmp-foil: .35}.blp-gmp__card--platinum{--gmp-accent: #9ad7e8;--gmp-bg0: #0c1418;--gmp-bg1: #1b2c34;--gmp-edge: rgba(160, 220, 235, .45);--gmp-glow: rgba(120, 200, 220, .28);--gmp-ink: #eef8fb;--gmp-foil: .42}.blp-gmp__card--diamond{--gmp-accent: #6de0ff;--gmp-bg0: #071018;--gmp-bg1: #123044;--gmp-edge: rgba(110, 220, 255, .5);--gmp-glow: rgba(80, 200, 255, .34);--gmp-ink: #eaf9ff;--gmp-foil: .5}.blp-gmp__card--diamond:after{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-gmp__card--master{--gmp-accent: #3ecf8e;--gmp-bg0: #07140f;--gmp-bg1: #123528;--gmp-edge: rgba(70, 220, 150, .48);--gmp-glow: rgba(50, 200, 130, .32);--gmp-ink: #eafff4;--gmp-foil: .45}.blp-gmp__card--legend{--gmp-accent: #ffc14d;--gmp-bg0: #100a05;--gmp-bg1: #2a1808;--gmp-edge: rgba(255, 190, 70, .55);--gmp-glow: rgba(255, 160, 40, .36);--gmp-foil: .55}.blp-gmp__card--legend:after{animation:blp-gmp-foil 6s linear infinite;background:linear-gradient(110deg,#ff50502e,#ffc83c38,#50dca02e,#50a0ff33,#ff50502e);background-size:220% 220%}.blp-gmp__card--legend .blp-gmp__tier-pill{background:linear-gradient(90deg,#ffb347,#ffd76a,#ffe9a8,#ffb347);background-size:200% 100%;animation:blp-gmp-legend-pill 2.8s linear infinite}@keyframes blp-gmp-foil{0%{background-position:0% 50%}to{background-position:100% 50%}}@keyframes blp-gmp-legend-pill{0%{background-position:0% 50%}to{background-position:200% 50%}}.blp-gmp__bone{display:inline-block;border-radius:6px;background:linear-gradient(90deg,#ffffff0f,#ffffff1f,#ffffff0f);background-size:200% 100%;animation:blp-gmp-shimmer 1.1s ease-in-out infinite}.blp-gmp__bone--pill{align-self:flex-start;width:64px;height:20px;border-radius:999px}.blp-gmp__bone--rating{width:42px;height:18px;border-radius:999px}.blp-gmp__bone--line{display:block;width:70%;height:10px;margin-bottom:8px}.blp-gmp__bone--chip{width:52px;height:18px}.blp-gmp__bone--steam{width:68px;height:24px;border-radius:999px}.blp-gmp__bone--desc{display:block;width:100%;height:10px;margin-bottom:6px}.blp-gmp__bone--desc-short{display:block;width:62%;height:10px}@keyframes blp-gmp-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.blp-gmp,.blp-gmp.is-leaving,.blp-gmp.is-open .blp-gmp__card,.blp-gmp.is-open .blp-gmp__card>*:not(.blp-gmp__shine),.blp-gmp__card,.blp-gmp__card--legend:after,.blp-gmp__card--legend .blp-gmp__tier-pill,.blp-gmp__bone{animation:none!important;transition:none!important}.blp-gmp.is-open,.blp-gmp.is-open.is-ready .blp-gmp__card>*:not(.blp-gmp__shine){opacity:1;transform:none;filter:drop-shadow(0 18px 36px rgba(0,0,0,.5))}} '); (function () { 'use strict'; var e=(()=>"undefined"!=typeof GM_addValueChangeListener?GM_addValueChangeListener:void 0)(),t=(()=>"undefined"!=typeof GM_getValue?GM_getValue:void 0)(),a=(()=>"undefined"!=typeof GM_registerMenuCommand?GM_registerMenuCommand:void 0)(),i=(()=>"undefined"!=typeof GM_setValue?GM_setValue:void 0)(),n=(()=>"undefined"!=typeof GM_xmlhttpRequest?GM_xmlhttpRequest:void 0)(),r=(()=>"undefined"!=typeof unsafeWindow?unsafeWindow:void 0)();const o="#3db89a",s=[o,"#66c0f4","#8b9cf7","#c084fc","#f472b6","#ea377a","#f87171","#fb923c","#facc15","#a3e635"],l=[{name:"Nikitamce",handle:"Nikitamce",url:"https://github.com/Nikitamce",avatarUrl:"https://avatars.githubusercontent.com/u/187407575?s=96&v=4"},{name:"MaksVolkov7863",handle:"MaksVolkov7863",url:"https://github.com/MaksVolkov7863",avatarUrl:"https://avatars.githubusercontent.com/u/128893502?s=96&v=4"}],c="0.7.99",u="blp_settings",d="blp_cache_v1",p="blp_cache_script_version",m="blp_steam_overrides",g="data-blp-root",h="data-blp-enrich",b="data-blp-steamdb",f="data-blp-similar",S="data-blp-card",v="data-blp-card-state",y="data-blp-card-appid",w="data-blp-card-slug",k="data-blp-card-title",C="https://www.google.com/s2/favicons?domain={domain}&sz=32",P="#game-profile, #game-body, #logging-sidebar-section, .blp-settings-backdrop, .blp-fix-match-backdrop, .blp-export-backdrop",T=[{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}],B=[{id:"rookie",min:0},{id:"bronze",min:2.5},{id:"silver",min:3},{id:"gold",min:3.4},{id:"platinum",min:3.7},{id:"diamond",min:4},{id:"master",min:4.25},{id:"legend",min:4.5}],x=["hover","contextmenu","shiftclick"],A=5242880,L="https://store.steampowered.com/api/appdetails",H="https://store.steampowered.com/dynamicstore/userdata/",D="https://store.steampowered.com/tagdata/populartags/english",M="https://api.steampowered.com/IStoreBrowseService/GetItems/v1/",E="https://api.steampowered.com/ISteamUserStats/GetNumberOfCurrentPlayers/v1/",G="opencritic-api.p.rapidapi.com",$=`https://${G}`,_="https://www.pcgamingwiki.com/w/api.php",R=["auto","api"],I="https://opencritic.com",F="https://howlongtobeat.com",N=`${F}/api/bleed/init`,O=`${F}/api/bleed`,z="https://isthereanydeal.com",U="https://gameslike.co",q="https://shared.fastly.steamstatic.com/store_item_assets",j="https://steamdb.info",W=`${j}/app`,K="https://gamestatus.info",J="steam:userdata",V="steam:tagmap:english",Y=6048e5,Z=/^(https?-)?(store-)?steam(powered|static)?(-[a-z0-9]+)*(-com)?$|steampowered|steamstatic|akamaihd|^(on-)?wishlist$|^gamestatus$|^(soon-)?on-game-pass$/,X=["link","button"],Q=["igdb","steam","steamdb","metacritic","opencritic","hltb","pcgamingwiki","itad","gogdb","gameslike"],ee={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"},te=["US","GB","DE","FR","RU","KZ","BR","JP","KR","CN","AU","CA","PL","ES","IT","TR","UA"],ae={cacheHours:12,cacheGameData:true,cacheUserProfiles:true,cacheTranslations:true,cacheFx:true,uiLocale:"auto",siteLocale:"off",accentColor:o,steamCountry:"US",showPriceConvert:false,convertCurrency:"RUB",showSteam:true,showMetacritic:true,showOpenCritic:true,openCriticSource:"auto",openCriticApiKey:"",showHltb:true,showDeckProton:true,showGameStatus:false,showLinks:true,customLinksSeparate:false,customLinksStyle:"link",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:false,showGameMiniProfile:true,gameMiniProfileTrigger:"hover",gameMiniProfileTiers:true,preloadGameMiniProfile:false,showExport:false,showGameId:false,showTranslate:true,translateTargetLocale:"auto",translateDisplayMode:"replace",translateDescription:true,translateReviews:true,translateReviewsAuto:false,hideHomepageFuse:true,enhanceHeader:false,showUserMiniProfile:true,userMiniProfileTrigger:"hover",preloadUserMiniProfile:false,userMiniProfileTiers:true,showProfilePage:false,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},customLinks:[],linkOrder:[]},ie={en:{menuSettings:"Backloggd Plus — Settings",panelTitle:"Backloggd Plus",panelSubtitle:"Steam · scores · Deck/Proton · HLTB · list badges · links",settingsSearchPlaceholder:"Search settings…",settingsSearchLabel:"Search settings",settingsSearchClear:"Clear search",settingsSearchShortcut:"Press / or Ctrl+K to search",settingsSearchCount:"Found: {count}",settingsSearchEmpty:"Nothing found for “{query}”",settingsSearchEmptyHint:"Try another word or check the spelling.",settingsSearchOpenTab:"Open the “{tab}” tab",close:"Close",cancel:"Cancel",save:"Save",saveReload:"Save & Reload page",resetSettings:"Reset",resetSettingsConfirmTitle:"Reset settings?",resetSettingsConfirm:"All preferences will be restored to defaults. The page will reload. Your lookup cache is not cleared.",resetSettingsConfirmAction:"Reset",toastSettingsResetTitle:"Settings reset",toastSettingsReset:"Defaults restored. The page will reload.",repoLink:"GitHub",repoAbout:"Source code, updates, and issue reports",sectionGame:"Game page",sectionLists:"Game card",sectionListsHint:"Badges and hover mini-profiles 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.",generalGroupAccent:"Accent color",generalGroupAccentHint:"Color of Plus buttons, badges, and highlights. Previews live; Save applies it everywhere.",accentColorPick:"Custom color",accentColorReset:"Reset",generalGroupBackup:"Backup",generalGroupBackupHint:"Export or restore your Plus preferences. Lookup cache is not included.",generalGroupTransfer:"Data transfer",generalGroupTransferHint:"A companion userscript for moving your game logs to Backloggd.",transferLinkHint:"Imports game logs from other platforms via a transfer JSON or CSV. Installed separately.",settingsExport:"Export",settingsExportHint:"Download a JSON file with your current settings.",settingsImport:"Import",settingsImportHint:"Restore settings from a previously exported JSON file.",settingsImportConfirmTitle:"Import settings?",settingsImportConfirm:"Your current preferences will be replaced. The page will reload. Lookup cache is not changed.",settingsImportConfirmAction:"Import",toastSettingsExportedTitle:"Settings exported",toastSettingsExported:"Backup file downloaded.",toastSettingsExportFailedTitle:"Export failed",toastSettingsExportFailed:"Could not create the backup file.",toastSettingsImportedTitle:"Settings imported",toastSettingsImported:"Preferences restored. The page will reload.",toastSettingsImportFailedTitle:"Import failed",toastSettingsImportInvalid:"That file is not a valid settings backup.",toastSettingsImportEmpty:"No settings were found in that file.",toastSettingsImportTooLarge:"File is too large to import.",toastSettingsImportReadFailed:"Could not read that file.",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 ad blocks",hideHomepageFuseHint:"Hides empty Fuse / incontent ad rows (homepage, game reviews, etc.).",showUserMiniProfile:"User mini-profile cards",showUserMiniProfileHint:"Card with a brief profile on an avatar or username: stats, rating chart, bio, favorite and recent games (their covers open the game card) and badges. How it opens is set below.",miniTrigger:"Open card by",miniTriggerHover:"Hover",miniTriggerContextMenu:"Right-click",miniTriggerShiftClick:"Shift + click",userMiniTriggerHint:"How the user card opens. Right-click and Shift + click replace the native action on avatars and usernames; close with a click outside or Esc.",preloadUserMiniProfile:"Preload in viewport",preloadUserMiniProfileHint:"Fetch mini-profile data for profile links as they enter the viewport so hover cards open instantly.",userMiniProfileTiers:"Played-games tiers",userMiniProfileTiersHint:"Color the card by games played, Rookie to Legend — and show the tier pill. Off keeps a neutral card.",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.",siteLanguage:"Site language",siteLanguageHint:"Translates Backloggd itself from a built-in dictionary. Off leaves the site in English. Reviews and game descriptions stay as written.",siteLanguageOff:"As on the site",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).",openCriticSource:"OpenCritic source",openCriticSourceAuto:"Automatic (no key)",openCriticSourceApi:"My RapidAPI key",openCriticSourceHint:"Automatic finds the game via PCGamingWiki and web search, no key needed. OpenCritic's own API now requires a key.",openCriticApiKey:"OpenCritic API key",openCriticApiKeyHint:"Optional RapidAPI key for OpenCritic search. Stored only on this device; not included in settings backups.",openCriticApiKeyLink:"Get a key on RapidAPI",openCriticApiKeyPlaceholder:"Paste RapidAPI key",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.",cardGroupHover:"Hover cards",cardGroupHoverHint:"Mini-profile popover when hovering a game cover.",showGameMiniProfile:"Game mini-profile cards",showGameMiniProfileHint:"Hover a cover to preview title, rating, platforms, Steam price/reviews, and quick links.",gameMiniTriggerHint:"How the game card opens. Right-click and Shift + click replace the native action on covers; close with a click outside or Esc.",preloadGameMiniProfile:"Preload in viewport",preloadGameMiniProfileHint:"Fetch game mini-profile data as covers enter the viewport so hover cards open instantly.",gameMiniProfileTiers:"Rating tiers",gameMiniProfileTiersHint:"Color the card by Backloggd rating, Rookie to Legend (4.5★+) — same skins as user cards. Games without a rating keep the default look.",miniGameRating:"Backloggd rating",miniGameOpen:"Open game",miniGameLoading:"Loading game…",miniGameError:"Could not load game",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",steamFixMatchBlankHint:"Leave the field blank and save if the game is not on Steam.",steamMatchNone:"Not on Steam · manual",toastSteamMatchNoneTitle:"Steam hidden",toastSteamMatchNone:"Marked as not on Steam for this game",steamMatchLabel:"App {id} · {source}",sectionLinks:"Quick links",sectionLinksHint:"Choose which sites appear in the Links row on game pages, drag ⋮⋮ to reorder them, or add your own.",linkDrag:"Drag to reorder (or press ↑ / ↓)",linkAdd:"Add custom link",linkEdit:"Edit",linkRemove:"Remove",linkCustomTag:"custom",linkLimit:"Up to {n} custom links.",linkEditorAddTitle:"New custom link",linkEditorEditTitle:"Edit custom link",linkEditorName:"Name",linkEditorNamePh:"e.g. Wikipedia",linkEditorUrl:"Link template",linkEditorUrlHint:"Placeholders are replaced with the game’s data. If a game has no value for one (e.g. {appid} for a game not on Steam), the link is hidden for it.",linkEditorPlaceholders:"Insert placeholder",linkPhTitle:"Game title",linkPhSlug:"Backloggd slug",linkPhAppid:"Steam App ID",linkPhYear:"Release year",linkPhId:"Backloggd game ID",linkEditorFormat:"Title format",linkEditorFormatHint:"How {title} is written into the link. A single placeholder can override it, e.g. {title:plus}.",linkFormatEncoded:"Percent-encoded",linkFormatPlus:"Plus-separated",linkFormatSlug:"Slug",linkFormatUnderscore:"Underscores",linkFormatCompact:"No spaces",linkEditorIcon:"Icon image URL (optional)",linkEditorIconHint:"Link to a small image — full or relative to the site (e.g. /favicon.ico). Leave blank to use the site’s favicon.",linkEditorPreview:"Preview",linkEditorErrName:"Enter a name.",linkEditorErrUrl:"The link must start with http:// or https://",linkEditorErrIcon:"The icon must be an http(s) image link or a site-relative path.",linkEditorDone:"Save link",customLinksSeparate:"Show custom links in a separate row",customLinksSeparateHint:"Put your own links in their own “My links” row under the Links row instead of mixing them in. Their order among themselves still follows the list below.",customLinksRow:"My links",customLinksStyle:"Custom links look",customLinksStyleHint:"How your own links appear in the Links row: plain text links like the built-in sites, or small buttons.",customLinksStyleLink:"Link",customLinksStyleButton:"Button",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",sectionCacheHint:"How much lookup data this browser profile is holding against the soft 5 MB budget.",sectionCacheDuration:"Duration",sectionCacheSources:"What to cache",sectionCacheSourcesHint:"Turn off a source to stop storing it. Existing entries for that source are removed when you save.",sectionCacheClear:"Clear",cacheHours:"Cache duration (hours)",cacheHoursHint:"How long to reuse game lookups (Steam, GameStatus, scores, media, similar). 0 disables that category. Profiles, translations, and FX keep their own TTLs when those toggles are on. Online players are never cached.",cacheGameData:"Game data",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, screenshots, similar games.",cacheUserProfiles:"User mini-profiles",cacheUserProfilesHint:"Hover cards and profile page enrichment for Backloggd users.",cacheTranslations:"Translations",cacheTranslationsHint:"Cached Google Translate results for descriptions and reviews.",cacheFx:"Currency rates",cacheFxHint:"FX rates used for approximate price conversion.",cacheCatGame:"Game data",cacheCatProfiles:"Profiles",cacheCatTranslations:"Translations",cacheCatFx:"Currency",cacheCatSystem:"System",cacheCatOff:"Off",cacheBarCatCount:"{count}",cacheBarEntries:"{count} entries",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 by category. System (library/wishlist + tag map) stays on. Colored slices match the toggles below.",cacheBarAria:"Cache {pct}% full — {full} full, {partial} partial, {free} free",cacheBarAriaCats:"Cache {pct}% full — {detail}",cacheTabFillAria:"Cache {pct}% full",cacheClearHint:"Removes all lookup entries from this browser profile (does not change toggles).",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",unifiedRatingHintNoOpenCritic:"Average of Steam, Metacritic & 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 · бейджи · ссылки",settingsSearchPlaceholder:"Поиск по настройкам…",settingsSearchLabel:"Поиск по настройкам",settingsSearchClear:"Очистить поиск",settingsSearchShortcut:"Нажмите / или Ctrl+K для поиска",settingsSearchCount:"Найдено: {count}",settingsSearchEmpty:"По запросу «{query}» ничего не найдено",settingsSearchEmptyHint:"Попробуйте другое слово или проверьте написание.",settingsSearchOpenTab:"Открыть вкладку «{tab}»",close:"Закрыть",cancel:"Отмена",save:"Сохранить",saveReload:"Сохранить и перезагрузить",resetSettings:"Сбросить",resetSettingsConfirmTitle:"Сбросить настройки?",resetSettingsConfirm:"Все параметры будут возвращены к значениям по умолчанию. Страница перезагрузится. Кэш поиска не очищается.",resetSettingsConfirmAction:"Сбросить",toastSettingsResetTitle:"Настройки сброшены",toastSettingsReset:"Значения по умолчанию восстановлены. Страница будет перезагружена.",repoLink:"GitHub",repoAbout:"Исходники, обновления и баг-репорты",sectionGame:"Страница игры",sectionLists:"Карточка игры",sectionListsHint:"Бейджи и мини-профили при наведении на обложки в каталоге, поиске, журнале и блоке «Похожие игры».",sectionGeneral:"Общие",sectionProfile:"Профиль",sectionUi:"UI",generalGroupLanguage:"Язык",generalGroupLanguageHint:"Язык меню Plus, настроек и тостов.",generalGroupInterface:"Интерфейс",generalGroupInterfaceHint:"Опциональные правки оформления страниц Backloggd.",generalGroupAccent:"Акцентный цвет",generalGroupAccentHint:"Цвет кнопок, бейджей и подсветки Plus. Предпросмотр сразу; «Сохранить» применит везде.",accentColorPick:"Свой цвет",accentColorReset:"Сбросить",generalGroupBackup:"Резервная копия",generalGroupBackupHint:"Экспорт или восстановление настроек Plus. Кэш поиска не входит в файл.",generalGroupTransfer:"Перенос данных",generalGroupTransferHint:"Отдельный userscript для переноса игровых логов в Backloggd.",transferLinkHint:"Импорт логов из других платформ через transfer JSON или CSV. Устанавливается отдельно.",settingsExport:"Экспорт",settingsExportHint:"Скачать JSON-файл с текущими настройками.",settingsImport:"Импорт",settingsImportHint:"Восстановить настройки из ранее экспортированного JSON.",settingsImportConfirmTitle:"Импортировать настройки?",settingsImportConfirm:"Текущие параметры будут заменены. Страница перезагрузится. Кэш поиска не изменится.",settingsImportConfirmAction:"Импорт",toastSettingsExportedTitle:"Настройки экспортированы",toastSettingsExported:"Файл резервной копии скачан.",toastSettingsExportFailedTitle:"Ошибка экспорта",toastSettingsExportFailed:"Не удалось создать файл резервной копии.",toastSettingsImportedTitle:"Настройки импортированы",toastSettingsImported:"Параметры восстановлены. Страница будет перезагружена.",toastSettingsImportFailedTitle:"Ошибка импорта",toastSettingsImportInvalid:"Файл не является корректной резервной копией настроек.",toastSettingsImportEmpty:"В файле не найдено настроек.",toastSettingsImportTooLarge:"Файл слишком большой для импорта.",toastSettingsImportReadFailed:"Не удалось прочитать файл.",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:"Скрывать рекламные блоки",hideHomepageFuseHint:"Убирает пустые ряды Fuse / incontent (главная, отзывы на странице игры и т.п.).",showUserMiniProfile:"Мини-профиль пользователя",showUserMiniProfileHint:"Карточка с краткой информацией об аватаре или нике: статистика, график оценок, о себе, избранные и недавние игры (их обложки открывают карточку игры) и значки. Способ открытия настраивается ниже.",miniTrigger:"Открывать карточку",miniTriggerHover:"При наведении",miniTriggerContextMenu:"Правой кнопкой мыши",miniTriggerShiftClick:"Shift + клик",userMiniTriggerHint:"Как открывается карточка пользователя. Правый клик и Shift + клик заменяют стандартное действие на аватарах и никнеймах; закрывается кликом вне карточки или клавишей Esc.",preloadUserMiniProfile:"Предзагрузка в зоне видимости",preloadUserMiniProfileHint:"Загружает данные мини-профиля для ссылок на профиль в зоне видимости, чтобы карточка открывалась сразу.",userMiniProfileTiers:"Уровни по сыгранным играм",userMiniProfileTiersHint:"Окрашивает карточку по числу сыгранных игр, от Новичка до Легенды, и показывает плашку уровня. Выключено — нейтральная карточка.",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:"Авто — язык браузера. Выбор применится после перезагрузки.",siteLanguage:"Язык сайта",siteLanguageHint:"Переводит сам Backloggd словарём внутри скрипта. «Как на сайте» оставляет английский. Рецензии и описания игр не трогает.",siteLanguageOff:"Как на сайте",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 (поиск по названию).",openCriticSource:"Источник OpenCritic",openCriticSourceAuto:"Авто (без ключа)",openCriticSourceApi:"Свой ключ RapidAPI",openCriticSourceHint:"Авто находит игру через PCGamingWiki и веб-поиск, ключ не нужен. Собственный API OpenCritic теперь требует ключ.",openCriticApiKey:"Ключ API OpenCritic",openCriticApiKeyHint:"Необязательный ключ RapidAPI для поиска в OpenCritic. Хранится только на этом устройстве и не попадает в резервные копии настроек.",openCriticApiKeyLink:"Получить ключ на RapidAPI",openCriticApiKeyPlaceholder:"Вставьте ключ RapidAPI",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.",cardGroupHover:"Карточки при наведении",cardGroupHoverHint:"Мини-профиль при наведении на обложку игры.",showGameMiniProfile:"Мини-профиль игры",showGameMiniProfileHint:"При наведении на обложку — название, рейтинг, платформы, цена/отзывы Steam и быстрые ссылки.",gameMiniTriggerHint:"Как открывается карточка игры. Правый клик и Shift + клик заменяют стандартное действие на обложках; закрывается кликом вне карточки или клавишей Esc.",preloadGameMiniProfile:"Предзагрузка в зоне видимости",preloadGameMiniProfileHint:"Загружает данные мини-профиля для обложек в зоне видимости, чтобы карточка открывалась сразу.",gameMiniProfileTiers:"Уровни по рейтингу",gameMiniProfileTiersHint:"Окрашивает карточку по рейтингу Backloggd: от Новичка до Легенды (4.5★+) — те же скины, что у карточек пользователей. Игры без рейтинга остаются в обычном виде.",miniGameRating:"Рейтинг Backloggd",miniGameOpen:"Открыть игру",miniGameLoading:"Загрузка игры…",miniGameError:"Не удалось загрузить игру",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:"авто",steamFixMatchBlankHint:"Оставьте поле пустым и сохраните, если игры нет в Steam.",steamMatchNone:"Нет в Steam · вручную",toastSteamMatchNoneTitle:"Steam скрыт",toastSteamMatchNone:"Игра отмечена как отсутствующая в Steam",steamMatchLabel:"App {id} · {source}",sectionLinks:"Быстрые ссылки",sectionLinksHint:"Выберите, какие сайты показывать в ряду Links на странице игры, перетаскивайте ⋮⋮ для смены порядка или добавьте свои.",linkDrag:"Перетащите, чтобы изменить порядок (или нажмите ↑ / ↓)",linkAdd:"Добавить свою ссылку",linkEdit:"Изменить",linkRemove:"Удалить",linkCustomTag:"своя",linkLimit:"Не более {n} своих ссылок.",linkEditorAddTitle:"Новая ссылка",linkEditorEditTitle:"Изменить ссылку",linkEditorName:"Название",linkEditorNamePh:"напр. Wikipedia",linkEditorUrl:"Шаблон ссылки",linkEditorUrlHint:"Плейсхолдеры заменяются данными игры. Если для игры нет значения (например, {appid} у игры не из Steam), ссылка для неё скрывается.",linkEditorPlaceholders:"Вставить плейсхолдер",linkPhTitle:"Название игры",linkPhSlug:"Slug Backloggd",linkPhAppid:"Steam App ID",linkPhYear:"Год выхода",linkPhId:"ID игры на Backloggd",linkEditorFormat:"Формат названия",linkEditorFormatHint:"Как {title} записывается в ссылку. Отдельный плейсхолдер может переопределить формат, например {title:plus}.",linkFormatEncoded:"С кодированием (%20)",linkFormatPlus:"Через плюс",linkFormatSlug:"Slug",linkFormatUnderscore:"Через подчёркивание",linkFormatCompact:"Без пробелов",linkEditorIcon:"URL значка (необязательно)",linkEditorIconHint:"Ссылка на небольшое изображение — полная или относительная от корня сайта (например, /favicon.ico). Если пусто — берётся favicon сайта.",linkEditorPreview:"Предпросмотр",linkEditorErrName:"Введите название.",linkEditorErrUrl:"Ссылка должна начинаться с http:// или https://",linkEditorErrIcon:"Значок должен быть ссылкой на изображение (http/https) или путём относительно сайта.",linkEditorDone:"Сохранить ссылку",customLinksSeparate:"Свои ссылки в отдельном ряду",customLinksSeparateHint:"Показывать свои ссылки отдельным рядом «Мои ссылки» под рядом Links, а не вперемешку. Порядок между ними задаётся списком ниже.",customLinksRow:"Мои ссылки",customLinksStyle:"Вид своих ссылок",customLinksStyleHint:"Как свои ссылки выглядят в ряду Links: обычная ссылка, как у встроенных сайтов, или небольшая кнопка.",customLinksStyleLink:"Ссылка",customLinksStyleButton:"Кнопка",gameGroupSteam:"Steam",gameGroupScores:"Оценки и время",gameGroupCompat:"Совместимость и статус",gameGroupMedia:"Медиа и оформление",gameGroupTools:"Инструменты",gameGroupHosts:"Другие сайты",gameGroupHostsHint:"Кнопки Backloggd на страницах игр Steam и SteamDB.",navSettings:"Плюс",navSettingsTitle:"Настройки Backloggd Plus",sectionCacheHint:"Сколько данных запросов хранится в этом профиле браузера относительно мягкого лимита 5 МБ.",sectionCacheDuration:"Срок хранения",sectionCacheSources:"Что кешировать",sectionCacheSourcesHint:"Выключите источник, чтобы больше не сохранять его. При сохранении записи этого типа удалятся.",sectionCacheClear:"Очистка",cacheHours:"Время кэша (часы)",cacheHoursHint:"Как долго переиспользовать игровые запросы (Steam, GameStatus, оценки, медиа, похожие). 0 отключает эту категорию. Профили, переводы и курсы валют сохраняют свои TTL, если их переключатели включены. Онлайн-игроки не кешируются.",cacheGameData:"Данные игр",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, скриншоты, похожие игры.",cacheUserProfiles:"Мини-профили",cacheUserProfilesHint:"Карточки при наведении и оформление страниц пользователей Backloggd.",cacheTranslations:"Переводы",cacheTranslationsHint:"Результаты Google Translate для описаний и рецензий.",cacheFx:"Курсы валют",cacheFxHint:"Курсы для приблизительной конвертации цены.",cacheCatGame:"Игры",cacheCatProfiles:"Профили",cacheCatTranslations:"Переводы",cacheCatFx:"Валюта",cacheCatSystem:"Система",cacheCatOff:"Выкл",cacheBarCatCount:"{count}",cacheBarEntries:"записей: {count}",clearCache:"Очистить кэш",cacheCleared:"Удалено записей: {count}",cacheEmpty:"Очищать нечего — кэш уже пуст",cacheBarFull:"Полный",cacheBarPartial:"Частичный",cacheBarFree:"Свободно",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"заполнено",cacheBarHint:"Мягкий лимит по категориям. Система (библиотека/вишлист + карта тегов) всегда включена. Цвета совпадают с переключателями ниже.",cacheBarAria:"Кэш заполнен на {pct}% — {full} полный, {partial} частичный, {free} свободно",cacheBarAriaCats:"Кэш заполнен на {pct}% — {detail}",cacheTabFillAria:"Кэш заполнен на {pct}%",cacheClearHint:"Удаляет все записи кэша из этого профиля браузера (переключатели не меняет).",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",unifiedRatingHintNoOpenCritic:"Среднее Steam, Metacritic и 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 · 列表徽章 · 链接",settingsSearchPlaceholder:"搜索设置…",settingsSearchLabel:"搜索设置",settingsSearchClear:"清除搜索",settingsSearchShortcut:"按 / 或 Ctrl+K 搜索",settingsSearchCount:"找到:{count}",settingsSearchEmpty:"未找到“{query}”相关内容",settingsSearchEmptyHint:"换个关键词试试,或检查拼写。",settingsSearchOpenTab:"打开“{tab}”标签页",close:"关闭",cancel:"取消",save:"保存",saveReload:"保存并刷新页面",resetSettings:"重置",resetSettingsConfirmTitle:"重置设置?",resetSettingsConfirm:"所有偏好将恢复为默认值。页面将刷新。查找缓存不会被清除。",resetSettingsConfirmAction:"重置",toastSettingsResetTitle:"设置已重置",toastSettingsReset:"已恢复默认值。页面即将刷新。",repoLink:"GitHub",repoAbout:"源码、更新与问题反馈",sectionGame:"游戏页",sectionLists:"游戏卡片",sectionListsHint:"浏览、搜索、日志以及「相似游戏」封面卡片上的徽章与悬停迷你资料。",sectionGeneral:"通用",sectionProfile:"资料",sectionUi:"UI",generalGroupLanguage:"语言",generalGroupLanguageHint:"Plus 菜单、设置与提示的语言。",generalGroupInterface:"界面",generalGroupInterfaceHint:"可选的 Backloggd 页面外观调整。",generalGroupAccent:"强调色",generalGroupAccentHint:"Plus 按钮、徽章和高亮的颜色。实时预览,保存后全站生效。",accentColorPick:"自定义颜色",accentColorReset:"重置",generalGroupBackup:"备份",generalGroupBackupHint:"导出或恢复 Plus 偏好设置。查找缓存不包含在内。",generalGroupTransfer:"数据迁移",generalGroupTransferHint:"用于将游戏记录迁移到 Backloggd 的配套用户脚本。",transferLinkHint:"通过 transfer JSON 或 CSV 从其他平台导入游戏记录。需单独安装。",settingsExport:"导出",settingsExportHint:"下载包含当前设置的 JSON 文件。",settingsImport:"导入",settingsImportHint:"从先前导出的 JSON 文件恢复设置。",settingsImportConfirmTitle:"导入设置?",settingsImportConfirm:"当前偏好将被替换。页面将刷新。查找缓存不会更改。",settingsImportConfirmAction:"导入",toastSettingsExportedTitle:"设置已导出",toastSettingsExported:"备份文件已下载。",toastSettingsExportFailedTitle:"导出失败",toastSettingsExportFailed:"无法创建备份文件。",toastSettingsImportedTitle:"设置已导入",toastSettingsImported:"偏好已恢复。页面将刷新。",toastSettingsImportFailedTitle:"导入失败",toastSettingsImportInvalid:"该文件不是有效的设置备份。",toastSettingsImportEmpty:"文件中未找到设置。",toastSettingsImportTooLarge:"文件过大,无法导入。",toastSettingsImportReadFailed:"无法读取该文件。",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:"隐藏广告位",hideHomepageFuseHint:"隐藏空的 Fuse / incontent 广告行(首页、游戏评论区等)。",showUserMiniProfile:"用户迷你资料卡",showUserMiniProfileHint:"在头像或用户名上显示简明资料卡:统计、评分分布、简介、最爱和最近游戏(点开封面可打开游戏卡片)以及徽章。打开方式见下方设置。",miniTrigger:"打开卡片方式",miniTriggerHover:"悬停",miniTriggerContextMenu:"右键点击",miniTriggerShiftClick:"Shift + 点击",userMiniTriggerHint:"用户卡片的打开方式。右键和 Shift + 点击会替代头像与用户名上的原生操作;点击卡片外部或按 Esc 关闭。",preloadUserMiniProfile:"进入视口时预加载",preloadUserMiniProfileHint:"资料链接进入视口时预取迷你资料数据,悬停时可立即打开卡片。",userMiniProfileTiers:"按已玩游戏数分级",userMiniProfileTiersHint:"按已玩游戏数为卡片着色(从新手到传奇)并显示等级标签。关闭后使用中性卡片。",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 徽章(按标题搜索)。",openCriticSource:"OpenCritic 来源",openCriticSourceAuto:"自动(无需密钥)",openCriticSourceApi:"我的 RapidAPI 密钥",openCriticSourceHint:"自动模式通过 PCGamingWiki 和网页搜索查找游戏,无需密钥。OpenCritic 自身的 API 现在需要密钥。",openCriticApiKey:"OpenCritic API 密钥",openCriticApiKeyHint:"可选的 RapidAPI 密钥,用于 OpenCritic 搜索。仅保存在此设备,不会包含在设置备份中。",openCriticApiKeyLink:"在 RapidAPI 获取密钥",openCriticApiKeyPlaceholder:"粘贴 RapidAPI 密钥",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 的状态芯片。",cardGroupHover:"悬停卡片",cardGroupHoverHint:"鼠标悬停游戏封面时显示迷你资料卡。",showGameMiniProfile:"游戏迷你资料卡",showGameMiniProfileHint:"悬停封面可预览标题、评分、平台、Steam 价格/评价与快捷链接。",gameMiniTriggerHint:"游戏卡片的打开方式。右键和 Shift + 点击会替代封面上的原生操作;点击卡片外部或按 Esc 关闭。",preloadGameMiniProfile:"进入视口时预加载",preloadGameMiniProfileHint:"封面进入视口时预取迷你资料数据,悬停时可立即打开卡片。",gameMiniProfileTiers:"评分等级",gameMiniProfileTiersHint:"按 Backloggd 评分为卡片着色,从新手到传奇(4.5★+),皮肤与用户卡片相同。暂无评分的游戏保持默认样式。",miniGameRating:"Backloggd 评分",miniGameOpen:"打开游戏",miniGameLoading:"正在加载游戏…",miniGameError:"无法加载游戏",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:"自动",steamFixMatchBlankHint:"如果该游戏不在 Steam 上,请将此字段留空并保存。",steamMatchNone:"不在 Steam · 手动",toastSteamMatchNoneTitle:"已隐藏 Steam",toastSteamMatchNone:"已将此游戏标记为不在 Steam 上",steamMatchLabel:"App {id} · {source}",sectionLinks:"快捷链接",sectionLinksHint:"选择游戏页 Links 行中显示的站点,拖动 ⋮⋮ 调整顺序,或添加自己的链接。",linkDrag:"拖动以调整顺序(或按 ↑ / ↓)",linkAdd:"添加自定义链接",linkEdit:"编辑",linkRemove:"删除",linkCustomTag:"自定义",linkLimit:"最多 {n} 个自定义链接。",linkEditorAddTitle:"新建自定义链接",linkEditorEditTitle:"编辑自定义链接",linkEditorName:"名称",linkEditorNamePh:"例如 Wikipedia",linkEditorUrl:"链接模板",linkEditorUrlHint:"占位符会替换为游戏数据。若某个占位符对该游戏没有值(例如不在 Steam 上的游戏的 {appid}),则该游戏不显示此链接。",linkEditorPlaceholders:"插入占位符",linkPhTitle:"游戏标题",linkPhSlug:"Backloggd slug",linkPhAppid:"Steam App ID",linkPhYear:"发行年份",linkPhId:"Backloggd 游戏 ID",linkEditorFormat:"标题格式",linkEditorFormatHint:"{title} 写入链接的方式。单个占位符可单独指定,例如 {title:plus}。",linkFormatEncoded:"百分号编码",linkFormatPlus:"加号分隔",linkFormatSlug:"Slug",linkFormatUnderscore:"下划线分隔",linkFormatCompact:"无空格",linkEditorIcon:"图标图片 URL(可选)",linkEditorIconHint:"指向小图片的链接——可为完整地址或相对于网站根目录的路径(如 /favicon.ico)。留空则使用网站的 favicon。",linkEditorPreview:"预览",linkEditorErrName:"请输入名称。",linkEditorErrUrl:"链接必须以 http:// 或 https:// 开头",linkEditorErrIcon:"图标必须是 http(s) 图片链接或相对于网站的路径。",linkEditorDone:"保存链接",customLinksSeparate:"自定义链接单独成行",customLinksSeparateHint:"将自定义链接放在 Links 行下方的“我的链接”独立行中,而不是混排。它们之间的顺序仍按下方列表。",customLinksRow:"我的链接",customLinksStyle:"自定义链接外观",customLinksStyleHint:"自定义链接在 Links 行中的显示方式:与内置站点相同的文字链接,或小按钮。",customLinksStyleLink:"链接",customLinksStyleButton:"按钮",gameGroupSteam:"Steam",gameGroupScores:"评分与时长",gameGroupCompat:"兼容性与状态",gameGroupMedia:"媒体与布局",gameGroupTools:"工具",gameGroupHosts:"其他站点",gameGroupHostsHint:"在 Steam 和 SteamDB 游戏页显示 Backloggd 按钮。",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 设置",sectionCacheHint:"此浏览器配置相对 5 MB 软上限当前占用的查询数据量。",sectionCacheDuration:"时长",sectionCacheSources:"缓存内容",sectionCacheSourcesHint:"关闭某来源即不再写入;保存时会删除该来源的已有条目。",sectionCacheClear:"清除",cacheHours:"缓存时长(小时)",cacheHoursHint:"游戏查询(Steam、GameStatus、评分、媒体、相似游戏)的复用时长。0 禁用该类别。开启对应开关时,资料、翻译与汇率仍使用各自 TTL。在线玩家数不缓存。",cacheGameData:"游戏数据",cacheGameDataHint:"Steam、SteamDB、GameStatus、OpenCritic、HLTB、ProtonDB、截图、相似游戏。",cacheUserProfiles:"用户迷你资料",cacheUserProfilesHint:"悬停卡片与 Backloggd 用户页增强。",cacheTranslations:"翻译",cacheTranslationsHint:"描述与评论的 Google 翻译结果。",cacheFx:"汇率",cacheFxHint:"用于大致价格换算的 FX 汇率。",cacheCatGame:"游戏",cacheCatProfiles:"资料",cacheCatTranslations:"翻译",cacheCatFx:"货币",cacheCatSystem:"系统",cacheCatOff:"关",cacheBarCatCount:"{count}",cacheBarEntries:"{count} 条",clearCache:"清除缓存",cacheCleared:"已清除 {count} 条记录",cacheEmpty:"无需清理 — 缓存已为空",cacheBarFull:"完整",cacheBarPartial:"部分",cacheBarFree:"可用",cacheBarLegend:"{label}:{count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"已用",cacheBarHint:"按类别的软性存储上限。系统(库/愿望单 + 标签表)始终开启。颜色与下方开关对应。",cacheBarAriaCats:"缓存已用 {pct}% — {detail}",cacheBarAria:"缓存已用 {pct}% — 完整 {full},部分 {partial},可用 {free}",cacheTabFillAria:"缓存已用 {pct}%",cacheClearHint:"清除此浏览器配置中的全部查询条目(不改变开关)。",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 的平均分",unifiedRatingHintNoOpenCritic:"Steam、Metacritic 与 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",settingsSearchPlaceholder:"Buscar en ajustes…",settingsSearchLabel:"Buscar en ajustes",settingsSearchClear:"Borrar búsqueda",settingsSearchShortcut:"Pulsa / o Ctrl+K para buscar",settingsSearchCount:"Encontrados: {count}",settingsSearchEmpty:"No se encontró nada para «{query}»",settingsSearchEmptyHint:"Prueba con otra palabra o revisa la ortografía.",settingsSearchOpenTab:"Abrir la pestaña «{tab}»",close:"Cerrar",cancel:"Cancelar",save:"Guardar",saveReload:"Guardar y recargar",resetSettings:"Restablecer",resetSettingsConfirmTitle:"¿Restablecer ajustes?",resetSettingsConfirm:"Todas las preferencias volverán a los valores predeterminados. La página se recargará. La caché de consultas no se borra.",resetSettingsConfirmAction:"Restablecer",toastSettingsResetTitle:"Ajustes restablecidos",toastSettingsReset:"Valores predeterminados restaurados. La página se recargará.",repoLink:"GitHub",repoAbout:"Código, actualizaciones e informes",sectionGame:"Página del juego",sectionLists:"Tarjeta de juego",sectionListsHint:"Insignias y mini perfiles al pasar el cursor 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.",generalGroupAccent:"Color de acento",generalGroupAccentHint:"Color de los botones, insignias y resaltados de Plus. Vista previa en vivo; Guardar lo aplica en todas partes.",accentColorPick:"Color personalizado",accentColorReset:"Restablecer",generalGroupBackup:"Copia de seguridad",generalGroupBackupHint:"Exporta o restaura tus preferencias de Plus. La caché de consultas no se incluye.",generalGroupTransfer:"Transferencia de datos",generalGroupTransferHint:"Un userscript complementario para llevar tus registros de juegos a Backloggd.",transferLinkHint:"Importa registros de juegos de otras plataformas mediante un JSON de transferencia o CSV. Se instala por separado.",settingsExport:"Exportar",settingsExportHint:"Descarga un archivo JSON con tus ajustes actuales.",settingsImport:"Importar",settingsImportHint:"Restaura ajustes desde un JSON exportado anteriormente.",settingsImportConfirmTitle:"¿Importar ajustes?",settingsImportConfirm:"Tus preferencias actuales se reemplazarán. La página se recargará. La caché de consultas no cambia.",settingsImportConfirmAction:"Importar",toastSettingsExportedTitle:"Ajustes exportados",toastSettingsExported:"Archivo de copia descargado.",toastSettingsExportFailedTitle:"Error al exportar",toastSettingsExportFailed:"No se pudo crear el archivo de copia.",toastSettingsImportedTitle:"Ajustes importados",toastSettingsImported:"Preferencias restauradas. La página se recargará.",toastSettingsImportFailedTitle:"Error al importar",toastSettingsImportInvalid:"Ese archivo no es una copia de ajustes válida.",toastSettingsImportEmpty:"No se encontraron ajustes en ese archivo.",toastSettingsImportTooLarge:"El archivo es demasiado grande para importar.",toastSettingsImportReadFailed:"No se pudo leer ese archivo.",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 bloques publicitarios",hideHomepageFuseHint:"Oculta filas vacías de Fuse / incontent (inicio, reseñas del juego, etc.).",showUserMiniProfile:"Mini perfil de usuario",showUserMiniProfileHint:"Carta con un resumen del perfil en avatares o nombres: estadísticas, gráfico de notas, bio, juegos favoritos y recientes (sus portadas abren la carta del juego) e insignias. La forma de abrirla se elige abajo.",miniTrigger:"Abrir la tarjeta con",miniTriggerHover:"Pasar el cursor",miniTriggerContextMenu:"Clic derecho",miniTriggerShiftClick:"Shift + clic",userMiniTriggerHint:"Cómo se abre la tarjeta de usuario. El clic derecho y Shift + clic sustituyen la acción nativa en avatares y nombres; se cierra con un clic fuera o con Esc.",preloadUserMiniProfile:"Precargar en el viewport",preloadUserMiniProfileHint:"Obtiene los datos del miniperfil de los enlaces de perfil al entrar en el viewport para abrir la carta al instante.",userMiniProfileTiers:"Niveles por juegos jugados",userMiniProfileTiersHint:"Colorea la tarjeta según los juegos jugados, de Novato a Leyenda, y muestra la etiqueta de nivel. Desactivado: tarjeta neutra.",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).",openCriticSource:"Fuente de OpenCritic",openCriticSourceAuto:"Automática (sin clave)",openCriticSourceApi:"Mi clave de RapidAPI",openCriticSourceHint:"El modo automático encuentra el juego mediante PCGamingWiki y búsqueda web, sin clave. La API propia de OpenCritic ahora exige una clave.",openCriticApiKey:"Clave de API de OpenCritic",openCriticApiKeyHint:"Clave de RapidAPI opcional para buscar en OpenCritic. Se guarda solo en este dispositivo y no se incluye en las copias de ajustes.",openCriticApiKeyLink:"Obtener una clave en RapidAPI",openCriticApiKeyPlaceholder:"Pega la clave de RapidAPI",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.",cardGroupHover:"Tarjetas al pasar el cursor",cardGroupHoverHint:"Mini perfil al pasar el cursor sobre la portada de un juego.",showGameMiniProfile:"Mini perfiles de juego",showGameMiniProfileHint:"Pasa el cursor sobre una portada para ver título, nota, plataformas, precio/reseñas de Steam y enlaces.",gameMiniTriggerHint:"Cómo se abre la tarjeta de juego. El clic derecho y Shift + clic sustituyen la acción nativa en las portadas; se cierra con un clic fuera o con Esc.",preloadGameMiniProfile:"Precargar en el viewport",preloadGameMiniProfileHint:"Obtiene datos del mini perfil cuando las portadas entran en el viewport para abrir al instante.",gameMiniProfileTiers:"Niveles por nota",gameMiniProfileTiersHint:"Colorea la tarjeta según la nota de Backloggd, de Novato a Leyenda (4.5★+), con los mismos estilos que las tarjetas de usuario. Los juegos sin nota mantienen el aspecto normal.",miniGameRating:"Nota de Backloggd",miniGameOpen:"Abrir juego",miniGameLoading:"Cargando juego…",miniGameError:"No se pudo cargar el juego",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",steamFixMatchBlankHint:"Deja el campo vacío y guarda si el juego no está en Steam.",steamMatchNone:"No está en Steam · manual",toastSteamMatchNoneTitle:"Steam oculto",toastSteamMatchNone:"Juego marcado como no disponible en Steam",steamMatchLabel:"App {id} · {source}",sectionLinks:"Enlaces rápidos",sectionLinksHint:"Elige qué sitios aparecen en la fila Links de la página del juego, arrastra ⋮⋮ para reordenarlos o añade los tuyos.",linkDrag:"Arrastra para reordenar (o pulsa ↑ / ↓)",linkAdd:"Añadir enlace propio",linkEdit:"Editar",linkRemove:"Quitar",linkCustomTag:"propio",linkLimit:"Hasta {n} enlaces propios.",linkEditorAddTitle:"Nuevo enlace propio",linkEditorEditTitle:"Editar enlace propio",linkEditorName:"Nombre",linkEditorNamePh:"p. ej. Wikipedia",linkEditorUrl:"Plantilla del enlace",linkEditorUrlHint:"Los marcadores se sustituyen por los datos del juego. Si un juego no tiene valor para alguno (p. ej. {appid} en un juego que no está en Steam), el enlace se oculta para ese juego.",linkEditorPlaceholders:"Insertar marcador",linkPhTitle:"Título del juego",linkPhSlug:"Slug de Backloggd",linkPhAppid:"Steam App ID",linkPhYear:"Año de lanzamiento",linkPhId:"ID del juego en Backloggd",linkEditorFormat:"Formato del título",linkEditorFormatHint:"Cómo se escribe {title} en el enlace. Un marcador concreto puede cambiarlo, p. ej. {title:plus}.",linkFormatEncoded:"Codificado (%20)",linkFormatPlus:"Separado por +",linkFormatSlug:"Slug",linkFormatUnderscore:"Guiones bajos",linkFormatCompact:"Sin espacios",linkEditorIcon:"URL del icono (opcional)",linkEditorIconHint:"Enlace a una imagen pequeña, completo o relativo al sitio (p. ej. /favicon.ico). Déjalo vacío para usar el favicon del sitio.",linkEditorPreview:"Vista previa",linkEditorErrName:"Introduce un nombre.",linkEditorErrUrl:"El enlace debe empezar por http:// o https://",linkEditorErrIcon:"El icono debe ser un enlace de imagen http(s) o una ruta relativa al sitio.",linkEditorDone:"Guardar enlace",customLinksSeparate:"Enlaces propios en una fila aparte",customLinksSeparateHint:"Muestra tus enlaces en su propia fila «Mis enlaces», bajo la fila Links, en vez de mezclarlos. Su orden relativo sigue la lista de abajo.",customLinksRow:"Mis enlaces",customLinksStyle:"Aspecto de los enlaces propios",customLinksStyleHint:"Cómo se ven tus enlaces en la fila Links: enlaces de texto como los sitios integrados, o botones pequeños.",customLinksStyleLink:"Enlace",customLinksStyleButton:"Botón",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",sectionCacheHint:"Cuántos datos de consultas guarda este perfil frente al presupuesto suave de 5 MB.",sectionCacheDuration:"Duración",sectionCacheSources:"Qué cachear",sectionCacheSourcesHint:"Desactiva una fuente para dejar de guardarla. Al guardar se eliminan las entradas de esa fuente.",sectionCacheClear:"Vaciar",cacheHours:"Duración de caché (horas)",cacheHoursHint:"Cuánto reutilizar consultas de juegos (Steam, GameStatus, puntuaciones, medios, similares). 0 desactiva esa categoría. Perfiles, traducciones y FX conservan sus TTL si los interruptores están activos. Los jugadores online no se cachean.",cacheGameData:"Datos de juegos",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, capturas, juegos similares.",cacheUserProfiles:"Mini-perfiles",cacheUserProfilesHint:"Tarjetas al pasar el cursor y enriquecimiento de páginas de usuario.",cacheTranslations:"Traducciones",cacheTranslationsHint:"Resultados de Google Translate para descripciones y reseñas.",cacheFx:"Tipos de cambio",cacheFxHint:"Tipos FX para conversión aproximada de precios.",cacheCatGame:"Juegos",cacheCatProfiles:"Perfiles",cacheCatTranslations:"Traducciones",cacheCatFx:"Moneda",cacheCatSystem:"Sistema",cacheCatOff:"Off",cacheBarCatCount:"{count}",cacheBarEntries:"{count} entradas",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:"Presupuesto suave por categoría. Sistema (biblioteca/wishlist + mapa de tags) siempre activo. Los colores coinciden con los interruptores.",cacheBarAriaCats:"Caché al {pct}% — {detail}",cacheBarAria:"Caché al {pct}% — {full} completo, {partial} parcial, {free} libre",cacheTabFillAria:"Caché al {pct}%",cacheClearHint:"Elimina todas las entradas de este perfil del navegador (no cambia los interruptores).",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",unifiedRatingHintNoOpenCritic:"Media de Steam, Metacritic 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",settingsSearchPlaceholder:"Pesquisar nas configurações…",settingsSearchLabel:"Pesquisar nas configurações",settingsSearchClear:"Limpar pesquisa",settingsSearchShortcut:"Pressione / ou Ctrl+K para pesquisar",settingsSearchCount:"Encontrados: {count}",settingsSearchEmpty:"Nada encontrado para “{query}”",settingsSearchEmptyHint:"Tente outra palavra ou verifique a ortografia.",settingsSearchOpenTab:"Abrir a aba “{tab}”",close:"Fechar",cancel:"Cancelar",save:"Salvar",saveReload:"Salvar e recarregar",resetSettings:"Redefinir",resetSettingsConfirmTitle:"Redefinir configurações?",resetSettingsConfirm:"Todas as preferências voltarão aos valores padrão. A página será recarregada. O cache de consultas não é limpo.",resetSettingsConfirmAction:"Redefinir",toastSettingsResetTitle:"Configurações redefinidas",toastSettingsReset:"Padrões restaurados. A página será recarregada.",repoLink:"GitHub",repoAbout:"Código, atualizações e relatórios",sectionGame:"Página do jogo",sectionLists:"Cartão do jogo",sectionListsHint:"Badges e mini perfis ao passar o mouse 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.",generalGroupAccent:"Cor de destaque",generalGroupAccentHint:"Cor dos botões, selos e destaques do Plus. Pré-visualização ao vivo; Salvar aplica em todo lugar.",accentColorPick:"Cor personalizada",accentColorReset:"Redefinir",generalGroupBackup:"Cópia de segurança",generalGroupBackupHint:"Exporte ou restaure as preferências do Plus. O cache de consultas não é incluído.",generalGroupTransfer:"Transferência de dados",generalGroupTransferHint:"Um userscript complementar para levar seus registros de jogos para o Backloggd.",transferLinkHint:"Importa registros de jogos de outras plataformas via JSON de transferência ou CSV. Instalado separadamente.",settingsExport:"Exportar",settingsExportHint:"Baixe um arquivo JSON com as configurações atuais.",settingsImport:"Importar",settingsImportHint:"Restaure configurações a partir de um JSON exportado anteriormente.",settingsImportConfirmTitle:"Importar configurações?",settingsImportConfirm:"Suas preferências atuais serão substituídas. A página será recarregada. O cache de consultas não muda.",settingsImportConfirmAction:"Importar",toastSettingsExportedTitle:"Configurações exportadas",toastSettingsExported:"Arquivo de backup baixado.",toastSettingsExportFailedTitle:"Falha na exportação",toastSettingsExportFailed:"Não foi possível criar o arquivo de backup.",toastSettingsImportedTitle:"Configurações importadas",toastSettingsImported:"Preferências restauradas. A página será recarregada.",toastSettingsImportFailedTitle:"Falha na importação",toastSettingsImportInvalid:"Esse arquivo não é um backup de configurações válido.",toastSettingsImportEmpty:"Nenhuma configuração foi encontrada nesse arquivo.",toastSettingsImportTooLarge:"O arquivo é grande demais para importar.",toastSettingsImportReadFailed:"Não foi possível ler esse arquivo.",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 blocos de anúncios",hideHomepageFuseHint:"Oculta linhas vazias Fuse / incontent (página inicial, análises do jogo, etc.).",showUserMiniProfile:"Mini perfil do usuário",showUserMiniProfileHint:"Card com um resumo do perfil em avatares ou nomes: estatísticas, gráfico de notas, bio, jogos favoritos e recentes (as capas abrem o card do jogo) e emblemas. A forma de abrir é definida abaixo.",miniTrigger:"Abrir o cartão com",miniTriggerHover:"Passar o cursor",miniTriggerContextMenu:"Clique direito",miniTriggerShiftClick:"Shift + clique",userMiniTriggerHint:"Como o cartão de usuário abre. Clique direito e Shift + clique substituem a ação nativa em avatares e nomes; feche com um clique fora ou Esc.",preloadUserMiniProfile:"Pré-carregar na viewport",preloadUserMiniProfileHint:"Busca os dados do mini perfil dos links de perfil ao entrarem na viewport para o card abrir na hora.",userMiniProfileTiers:"Níveis por jogos jogados",userMiniProfileTiersHint:"Colore o cartão pelo número de jogos jogados, de Novato a Lenda, e mostra a etiqueta de nível. Desativado: cartão neutro.",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).",openCriticSource:"Fonte do OpenCritic",openCriticSourceAuto:"Automática (sem chave)",openCriticSourceApi:"Minha chave RapidAPI",openCriticSourceHint:"O modo automático encontra o jogo pelo PCGamingWiki e busca na web, sem chave. A API própria do OpenCritic agora exige uma chave.",openCriticApiKey:"Chave de API do OpenCritic",openCriticApiKeyHint:"Chave RapidAPI opcional para buscar no OpenCritic. Fica só neste dispositivo e não entra nos backups de configurações.",openCriticApiKeyLink:"Obter uma chave no RapidAPI",openCriticApiKeyPlaceholder:"Cole a chave RapidAPI",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.",cardGroupHover:"Cards ao passar o mouse",cardGroupHoverHint:"Mini perfil ao passar o mouse sobre a capa de um jogo.",showGameMiniProfile:"Mini perfis de jogo",showGameMiniProfileHint:"Passe o mouse sobre uma capa para ver título, nota, plataformas, preço/avaliações Steam e links.",gameMiniTriggerHint:"Como o cartão de jogo abre. Clique direito e Shift + clique substituem a ação nativa nas capas; feche com um clique fora ou Esc.",preloadGameMiniProfile:"Pré-carregar na viewport",preloadGameMiniProfileHint:"Busca dados do mini perfil quando as capas entram na viewport para abrir na hora.",gameMiniProfileTiers:"Níveis por nota",gameMiniProfileTiersHint:"Colore o cartão pela nota do Backloggd, de Novato a Lenda (4.5★+), com os mesmos estilos dos cartões de usuário. Jogos sem nota mantêm o visual padrão.",miniGameRating:"Nota do Backloggd",miniGameOpen:"Abrir jogo",miniGameLoading:"Carregando jogo…",miniGameError:"Não foi possível carregar o jogo",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",steamFixMatchBlankHint:"Deixe o campo em branco e salve se o jogo não estiver na Steam.",steamMatchNone:"Não está na Steam · manual",toastSteamMatchNoneTitle:"Steam oculta",toastSteamMatchNone:"Jogo marcado como não disponível na Steam",steamMatchLabel:"App {id} · {source}",sectionLinks:"Links rápidos",sectionLinksHint:"Escolha quais sites aparecem na linha Links da página do jogo, arraste ⋮⋮ para reordenar ou adicione os seus.",linkDrag:"Arraste para reordenar (ou pressione ↑ / ↓)",linkAdd:"Adicionar link próprio",linkEdit:"Editar",linkRemove:"Remover",linkCustomTag:"próprio",linkLimit:"Até {n} links próprios.",linkEditorAddTitle:"Novo link próprio",linkEditorEditTitle:"Editar link próprio",linkEditorName:"Nome",linkEditorNamePh:"ex.: Wikipedia",linkEditorUrl:"Modelo do link",linkEditorUrlHint:"Os marcadores são substituídos pelos dados do jogo. Se um jogo não tiver valor para algum (ex.: {appid} em jogo fora da Steam), o link fica oculto para ele.",linkEditorPlaceholders:"Inserir marcador",linkPhTitle:"Título do jogo",linkPhSlug:"Slug do Backloggd",linkPhAppid:"Steam App ID",linkPhYear:"Ano de lançamento",linkPhId:"ID do jogo no Backloggd",linkEditorFormat:"Formato do título",linkEditorFormatHint:"Como {title} é escrito no link. Um marcador pode substituir o formato, ex.: {title:plus}.",linkFormatEncoded:"Codificado (%20)",linkFormatPlus:"Separado por +",linkFormatSlug:"Slug",linkFormatUnderscore:"Sublinhados",linkFormatCompact:"Sem espaços",linkEditorIcon:"URL do ícone (opcional)",linkEditorIconHint:"Link para uma imagem pequena, completo ou relativo ao site (ex.: /favicon.ico). Deixe vazio para usar o favicon do site.",linkEditorPreview:"Pré-visualização",linkEditorErrName:"Digite um nome.",linkEditorErrUrl:"O link deve começar com http:// ou https://",linkEditorErrIcon:"O ícone deve ser um link de imagem http(s) ou um caminho relativo ao site.",linkEditorDone:"Salvar link",customLinksSeparate:"Links próprios em linha separada",customLinksSeparateHint:"Mostra seus links em uma linha própria «Meus links», abaixo da linha Links, em vez de misturá-los. A ordem entre eles segue a lista abaixo.",customLinksRow:"Meus links",customLinksStyle:"Aparência dos links próprios",customLinksStyleHint:"Como seus links aparecem na linha Links: links de texto como os sites integrados, ou botões pequenos.",customLinksStyleLink:"Link",customLinksStyleButton:"Botão",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",sectionCacheHint:"Quanto de dados de consulta este perfil guarda em relação ao orçamento suave de 5 MB.",sectionCacheDuration:"Duração",sectionCacheSources:"O que armazenar",sectionCacheSourcesHint:"Desligue uma fonte para parar de guardá-la. Ao salvar, as entradas dessa fonte são removidas.",sectionCacheClear:"Limpar",cacheHours:"Duração do cache (horas)",cacheHoursHint:"Por quanto tempo reutilizar consultas de jogos (Steam, GameStatus, notas, mídia, semelhantes). 0 desativa essa categoria. Perfis, traduções e FX mantêm seus TTLs quando os interruptores estão ligados. Jogadores online nunca são cacheados.",cacheGameData:"Dados de jogos",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, capturas, jogos semelhantes.",cacheUserProfiles:"Mini-perfis",cacheUserProfilesHint:"Cartões ao passar o mouse e enriquecimento de páginas de usuário.",cacheTranslations:"Traduções",cacheTranslationsHint:"Resultados do Google Translate para descrições e análises.",cacheFx:"Taxas de câmbio",cacheFxHint:"Taxas FX para conversão aproximada de preço.",cacheCatGame:"Jogos",cacheCatProfiles:"Perfis",cacheCatTranslations:"Traduções",cacheCatFx:"Moeda",cacheCatSystem:"Sistema",cacheCatOff:"Off",cacheBarCatCount:"{count}",cacheBarEntries:"{count} entradas",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:"Orçamento suave por categoria. Sistema (biblioteca/wishlist + mapa de tags) sempre ligado. As cores correspondem aos interruptores.",cacheBarAriaCats:"Cache em {pct}% — {detail}",cacheBarAria:"Cache em {pct}% — {full} completo, {partial} parcial, {free} livre",cacheTabFillAria:"Cache em {pct}%",cacheClearHint:"Remove todas as entradas deste perfil do navegador (não altera os interruptores).",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",unifiedRatingHintNoOpenCritic:"Média de Steam, Metacritic 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",settingsSearchPlaceholder:"Einstellungen durchsuchen…",settingsSearchLabel:"Einstellungen durchsuchen",settingsSearchClear:"Suche löschen",settingsSearchShortcut:"Drücke / oder Strg+K zum Suchen",settingsSearchCount:"Gefunden: {count}",settingsSearchEmpty:"Nichts gefunden für „{query}“",settingsSearchEmptyHint:"Versuche ein anderes Wort oder prüfe die Schreibweise.",settingsSearchOpenTab:"Tab „{tab}“ öffnen",close:"Schließen",cancel:"Abbrechen",save:"Speichern",saveReload:"Speichern & neu laden",resetSettings:"Zurücksetzen",resetSettingsConfirmTitle:"Einstellungen zurücksetzen?",resetSettingsConfirm:"Alle Einstellungen werden auf die Standardwerte zurückgesetzt. Die Seite wird neu geladen. Der Lookup-Cache bleibt erhalten.",resetSettingsConfirmAction:"Zurücksetzen",toastSettingsResetTitle:"Einstellungen zurückgesetzt",toastSettingsReset:"Standardwerte wiederhergestellt. Die Seite wird neu geladen.",repoLink:"GitHub",repoAbout:"Quellcode, Updates und Issue-Reports",sectionGame:"Spieleseite",sectionLists:"Spielkarte",sectionListsHint:"Badges und Hover-Mini-Profile 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.",generalGroupAccent:"Akzentfarbe",generalGroupAccentHint:"Farbe der Plus-Schaltflächen, Badges und Hervorhebungen. Live-Vorschau; Speichern übernimmt sie überall.",accentColorPick:"Eigene Farbe",accentColorReset:"Zurücksetzen",generalGroupBackup:"Sicherung",generalGroupBackupHint:"Plus-Einstellungen exportieren oder wiederherstellen. Der Lookup-Cache ist nicht enthalten.",generalGroupTransfer:"Datenübertragung",generalGroupTransferHint:"Ein ergänzendes Userscript, um deine Spielelogs zu Backloggd zu übertragen.",transferLinkHint:"Importiert Spielelogs von anderen Plattformen über eine Transfer-JSON oder CSV. Wird separat installiert.",settingsExport:"Exportieren",settingsExportHint:"JSON-Datei mit den aktuellen Einstellungen herunterladen.",settingsImport:"Importieren",settingsImportHint:"Einstellungen aus einer zuvor exportierten JSON-Datei wiederherstellen.",settingsImportConfirmTitle:"Einstellungen importieren?",settingsImportConfirm:"Deine aktuellen Einstellungen werden ersetzt. Die Seite wird neu geladen. Der Lookup-Cache bleibt unverändert.",settingsImportConfirmAction:"Importieren",toastSettingsExportedTitle:"Einstellungen exportiert",toastSettingsExported:"Sicherungsdatei heruntergeladen.",toastSettingsExportFailedTitle:"Export fehlgeschlagen",toastSettingsExportFailed:"Sicherungsdatei konnte nicht erstellt werden.",toastSettingsImportedTitle:"Einstellungen importiert",toastSettingsImported:"Einstellungen wiederhergestellt. Die Seite wird neu geladen.",toastSettingsImportFailedTitle:"Import fehlgeschlagen",toastSettingsImportInvalid:"Diese Datei ist keine gültige Einstellungs-Sicherung.",toastSettingsImportEmpty:"In der Datei wurden keine Einstellungen gefunden.",toastSettingsImportTooLarge:"Die Datei ist zu groß zum Importieren.",toastSettingsImportReadFailed:"Die Datei konnte nicht gelesen werden.",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:"Werbeblöcke ausblenden",hideHomepageFuseHint:"Blendet leere Fuse-/incontent-Werbezeilen aus (Startseite, Spielrezensionen usw.).",showUserMiniProfile:"Mini-Profilkarten",showUserMiniProfileHint:"Karte mit Kurzprofil bei Avataren oder Nutzernamen: Statistiken, Bewertungsdiagramm, Bio, Favoriten und zuletzt gespielte Spiele (deren Cover öffnen die Spielkarte) sowie Abzeichen. Wie sie sich öffnet, wird unten eingestellt.",miniTrigger:"Karte öffnen per",miniTriggerHover:"Mauszeiger",miniTriggerContextMenu:"Rechtsklick",miniTriggerShiftClick:"Shift + Klick",userMiniTriggerHint:"Wie die Nutzerkarte geöffnet wird. Rechtsklick und Shift + Klick ersetzen die Standardaktion bei Avataren und Namen; Schließen per Klick daneben oder Esc.",preloadUserMiniProfile:"Im Sichtbereich vorladen",preloadUserMiniProfileHint:"Lädt Miniprofil-Daten für Profil-Links im Sichtbereich vor, damit die Karte sofort öffnet.",userMiniProfileTiers:"Stufen nach gespielten Spielen",userMiniProfileTiersHint:"Färbt die Karte nach der Anzahl gespielter Spiele, von Anfänger bis Legende, und zeigt das Stufen-Label. Aus: neutrale Karte.",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).",openCriticSource:"OpenCritic-Quelle",openCriticSourceAuto:"Automatisch (ohne Schlüssel)",openCriticSourceApi:"Mein RapidAPI-Schlüssel",openCriticSourceHint:"Automatisch findet das Spiel über PCGamingWiki und Websuche, ohne Schlüssel. Die eigene OpenCritic-API verlangt jetzt einen Schlüssel.",openCriticApiKey:"OpenCritic-API-Schlüssel",openCriticApiKeyHint:"Optionaler RapidAPI-Schlüssel für die OpenCritic-Suche. Wird nur auf diesem Gerät gespeichert und nicht in Einstellungs-Backups aufgenommen.",openCriticApiKeyLink:"Schlüssel bei RapidAPI holen",openCriticApiKeyPlaceholder:"RapidAPI-Schlüssel einfügen",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.",cardGroupHover:"Hover-Karten",cardGroupHoverHint:"Mini-Profil-Popover beim Überfahren eines Spielcovers.",showGameMiniProfile:"Spiel-Mini-Profile",showGameMiniProfileHint:"Cover überfahren für Titel, Bewertung, Plattformen, Steam-Preis/Reviews und Schnelllinks.",gameMiniTriggerHint:"Wie die Spielkarte geöffnet wird. Rechtsklick und Shift + Klick ersetzen die Standardaktion bei Covern; Schließen per Klick daneben oder Esc.",preloadGameMiniProfile:"Im Sichtbereich vorladen",preloadGameMiniProfileHint:"Lädt Mini-Profil-Daten für Covers im Sichtbereich, damit Hover-Karten sofort öffnen.",gameMiniProfileTiers:"Stufen nach Bewertung",gameMiniProfileTiersHint:"Färbt die Karte nach der Backloggd-Bewertung, von Anfänger bis Legende (4.5★+) – dieselben Designs wie bei Nutzerkarten. Spiele ohne Bewertung behalten den Standardlook.",miniGameRating:"Backloggd-Bewertung",miniGameOpen:"Spiel öffnen",miniGameLoading:"Spiel wird geladen…",miniGameError:"Spiel konnte nicht geladen werden",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",steamFixMatchBlankHint:"Lass das Feld leer und speichere, wenn das Spiel nicht auf Steam ist.",steamMatchNone:"Nicht auf Steam · manuell",toastSteamMatchNoneTitle:"Steam ausgeblendet",toastSteamMatchNone:"Spiel als nicht auf Steam markiert",steamMatchLabel:"App {id} · {source}",sectionLinks:"Schnelllinks",sectionLinksHint:"Wähle, welche Seiten in der Links-Zeile der Spieleseite erscheinen, ordne sie per Ziehen an ⋮⋮ neu oder füge eigene hinzu.",linkDrag:"Zum Umsortieren ziehen (oder ↑ / ↓ drücken)",linkAdd:"Eigenen Link hinzufügen",linkEdit:"Bearbeiten",linkRemove:"Entfernen",linkCustomTag:"eigen",linkLimit:"Bis zu {n} eigene Links.",linkEditorAddTitle:"Neuer eigener Link",linkEditorEditTitle:"Eigenen Link bearbeiten",linkEditorName:"Name",linkEditorNamePh:"z. B. Wikipedia",linkEditorUrl:"Link-Vorlage",linkEditorUrlHint:"Platzhalter werden durch Spieldaten ersetzt. Fehlt für ein Spiel ein Wert (z. B. {appid} bei einem Spiel ohne Steam), wird der Link dort ausgeblendet.",linkEditorPlaceholders:"Platzhalter einfügen",linkPhTitle:"Spieltitel",linkPhSlug:"Backloggd-Slug",linkPhAppid:"Steam App ID",linkPhYear:"Erscheinungsjahr",linkPhId:"Backloggd-Spiel-ID",linkEditorFormat:"Titelformat",linkEditorFormatHint:"Wie {title} in den Link geschrieben wird. Ein einzelner Platzhalter kann es überschreiben, z. B. {title:plus}.",linkFormatEncoded:"Prozent-codiert (%20)",linkFormatPlus:"Mit Plus getrennt",linkFormatSlug:"Slug",linkFormatUnderscore:"Unterstriche",linkFormatCompact:"Ohne Leerzeichen",linkEditorIcon:"Symbol-URL (optional)",linkEditorIconHint:"Link zu einem kleinen Bild – vollständig oder relativ zur Seite (z. B. /favicon.ico). Leer lassen, um das Favicon der Seite zu nutzen.",linkEditorPreview:"Vorschau",linkEditorErrName:"Bitte einen Namen eingeben.",linkEditorErrUrl:"Der Link muss mit http:// oder https:// beginnen.",linkEditorErrIcon:"Das Symbol muss ein http(s)-Bildlink oder ein seitenrelativer Pfad sein.",linkEditorDone:"Link speichern",customLinksSeparate:"Eigene Links in separater Zeile",customLinksSeparateHint:"Zeigt eigene Links in einer eigenen Zeile „Meine Links“ unter der Links-Zeile statt vermischt. Ihre Reihenfolge untereinander folgt der Liste unten.",customLinksRow:"Meine Links",customLinksStyle:"Darstellung eigener Links",customLinksStyleHint:"Wie eigene Links in der Links-Zeile aussehen: Textlinks wie bei den integrierten Seiten oder kleine Schaltflächen.",customLinksStyleLink:"Link",customLinksStyleButton:"Schaltfläche",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",sectionCacheHint:"Wie viel Lookup-Daten dieses Browserprofil gegen das weiche 5-MB-Budget speichert.",sectionCacheDuration:"Dauer",sectionCacheSources:"Was cachen",sectionCacheSourcesHint:"Quelle ausschalten, um sie nicht mehr zu speichern. Vorhandene Einträge werden beim Speichern entfernt.",sectionCacheClear:"Leeren",cacheHours:"Cache-Dauer (Stunden)",cacheHoursHint:"Wie lange Spiel-Lookups (Steam, GameStatus, Scores, Medien, Similar) wiederverwendet werden. 0 deaktiviert diese Kategorie. Profile, Übersetzungen und FX behalten eigene TTLs, wenn die Schalter an sind. Online-Spieler werden nicht gecacht.",cacheGameData:"Spieldaten",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, Screenshots, ähnliche Spiele.",cacheUserProfiles:"User-Mini-Profile",cacheUserProfilesHint:"Hover-Karten und Profilseiten-Anreicherung für Backloggd-Nutzer.",cacheTranslations:"Übersetzungen",cacheTranslationsHint:"Zwischengespeicherte Google-Translate-Ergebnisse für Beschreibungen und Reviews.",cacheFx:"Wechselkurse",cacheFxHint:"FX-Kurse für ungefähre Preisumrechnung.",cacheCatGame:"Spieldaten",cacheCatProfiles:"Profile",cacheCatTranslations:"Übersetzungen",cacheCatFx:"Währung",cacheCatSystem:"System",cacheCatOff:"Aus",cacheBarCatCount:"{count}",cacheBarEntries:"{count} Einträge",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 nach Kategorie. System (Bibliothek/Wunschliste + Tag-Map) bleibt an. Farben entsprechen den Schaltern unten.",cacheBarAriaCats:"Cache zu {pct}% voll — {detail}",cacheBarAria:"Cache zu {pct}% voll — {full} voll, {partial} teilweise, {free} frei",cacheTabFillAria:"Cache zu {pct}% voll",cacheClearHint:"Entfernt alle Lookup-Einträge aus diesem Browserprofil (ändert die Schalter nicht).",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",unifiedRatingHintNoOpenCritic:"Durchschnitt aus Steam, Metacritic & 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",settingsSearchPlaceholder:"Rechercher dans les réglages…",settingsSearchLabel:"Rechercher dans les réglages",settingsSearchClear:"Effacer la recherche",settingsSearchShortcut:"Appuyez sur / ou Ctrl+K pour rechercher",settingsSearchCount:"Trouvés : {count}",settingsSearchEmpty:"Aucun résultat pour « {query} »",settingsSearchEmptyHint:"Essayez un autre mot ou vérifiez l’orthographe.",settingsSearchOpenTab:"Ouvrir l’onglet « {tab} »",close:"Fermer",cancel:"Annuler",save:"Enregistrer",saveReload:"Enregistrer et recharger",resetSettings:"Réinitialiser",resetSettingsConfirmTitle:"Réinitialiser les réglages ?",resetSettingsConfirm:"Toutes les préférences seront restaurées aux valeurs par défaut. La page sera rechargée. Le cache de recherche n’est pas effacé.",resetSettingsConfirmAction:"Réinitialiser",toastSettingsResetTitle:"Réglages réinitialisés",toastSettingsReset:"Valeurs par défaut restaurées. La page va se recharger.",repoLink:"GitHub",repoAbout:"Code source, mises à jour et signalements",sectionGame:"Page jeu",sectionLists:"Fiche jeu",sectionListsHint:"Badges et mini-profils au survol 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.",generalGroupAccent:"Couleur d'accent",generalGroupAccentHint:"Couleur des boutons, badges et surbrillances de Plus. Aperçu en direct ; Enregistrer l'applique partout.",accentColorPick:"Couleur personnalisée",accentColorReset:"Réinitialiser",generalGroupBackup:"Sauvegarde",generalGroupBackupHint:"Exportez ou restaurez vos préférences Plus. Le cache de recherche n’est pas inclus.",generalGroupTransfer:"Transfert de données",generalGroupTransferHint:"Un userscript complémentaire pour transférer vos journaux de jeu vers Backloggd.",transferLinkHint:"Importe des journaux de jeu d'autres plateformes via un JSON de transfert ou un CSV. À installer séparément.",settingsExport:"Exporter",settingsExportHint:"Télécharger un fichier JSON avec vos réglages actuels.",settingsImport:"Importer",settingsImportHint:"Restaurer les réglages depuis un JSON exporté précédemment.",settingsImportConfirmTitle:"Importer les réglages ?",settingsImportConfirm:"Vos préférences actuelles seront remplacées. La page sera rechargée. Le cache de recherche ne change pas.",settingsImportConfirmAction:"Importer",toastSettingsExportedTitle:"Réglages exportés",toastSettingsExported:"Fichier de sauvegarde téléchargé.",toastSettingsExportFailedTitle:"Échec de l’export",toastSettingsExportFailed:"Impossible de créer le fichier de sauvegarde.",toastSettingsImportedTitle:"Réglages importés",toastSettingsImported:"Préférences restaurées. La page va se recharger.",toastSettingsImportFailedTitle:"Échec de l’import",toastSettingsImportInvalid:"Ce fichier n’est pas une sauvegarde de réglages valide.",toastSettingsImportEmpty:"Aucun réglage trouvé dans ce fichier.",toastSettingsImportTooLarge:"Le fichier est trop volumineux pour être importé.",toastSettingsImportReadFailed:"Impossible de lire ce fichier.",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 blocs publicitaires",hideHomepageFuseHint:"Masque les rangées Fuse / incontent vides (accueil, avis de jeu, etc.).",showUserMiniProfile:"Mini-profil utilisateur",showUserMiniProfileHint:"Carte de profil résumé sur les avatars ou les noms : statistiques, graphique des notes, bio, jeux favoris et récents (leurs jaquettes ouvrent la carte du jeu) et badges. Le mode d’ouverture se règle ci-dessous.",miniTrigger:"Ouvrir la carte par",miniTriggerHover:"Survol",miniTriggerContextMenu:"Clic droit",miniTriggerShiftClick:"Maj + clic",userMiniTriggerHint:"Comment s'ouvre la carte utilisateur. Le clic droit et Maj + clic remplacent l'action native sur les avatars et pseudos ; fermeture par un clic à l'extérieur ou Échap.",preloadUserMiniProfile:"Précharger dans le viewport",preloadUserMiniProfileHint:"Récupère les données du mini-profil pour les liens de profil visibles afin d’ouvrir la carte immédiatement.",userMiniProfileTiers:"Niveaux par jeux joués",userMiniProfileTiersHint:"Colore la carte selon le nombre de jeux joués, de Novice à Légende, et affiche l’étiquette de niveau. Désactivé : carte neutre.",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).",openCriticSource:"Source OpenCritic",openCriticSourceAuto:"Automatique (sans clé)",openCriticSourceApi:"Ma clé RapidAPI",openCriticSourceHint:"Le mode automatique trouve le jeu via PCGamingWiki et la recherche web, sans clé. L'API d'OpenCritic exige désormais une clé.",openCriticApiKey:"Clé API OpenCritic",openCriticApiKeyHint:"Clé RapidAPI facultative pour la recherche OpenCritic. Stockée uniquement sur cet appareil, absente des sauvegardes des réglages.",openCriticApiKeyLink:"Obtenir une clé sur RapidAPI",openCriticApiKeyPlaceholder:"Collez la clé RapidAPI",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.",cardGroupHover:"Cartes au survol",cardGroupHoverHint:"Mini-profil au survol d’une jaquette de jeu.",showGameMiniProfile:"Mini-profils de jeu",showGameMiniProfileHint:"Survolez une jaquette pour voir titre, note, plateformes, prix/avis Steam et liens rapides.",gameMiniTriggerHint:"Comment s'ouvre la carte de jeu. Le clic droit et Maj + clic remplacent l'action native sur les jaquettes ; fermeture par un clic à l'extérieur ou Échap.",preloadGameMiniProfile:"Précharger dans le viewport",preloadGameMiniProfileHint:"Charge les données du mini-profil quand les jaquettes entrent dans le viewport pour une ouverture instantanée.",gameMiniProfileTiers:"Niveaux par note",gameMiniProfileTiersHint:"Colore la carte selon la note Backloggd, de Débutant à Légende (4.5★+), avec les mêmes styles que les cartes utilisateur. Les jeux sans note gardent l’apparence par défaut.",miniGameRating:"Note Backloggd",miniGameOpen:"Ouvrir le jeu",miniGameLoading:"Chargement du jeu…",miniGameError:"Impossible de charger le jeu",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",steamFixMatchBlankHint:"Laissez le champ vide et enregistrez si le jeu n'est pas sur Steam.",steamMatchNone:"Pas sur Steam · manuel",toastSteamMatchNoneTitle:"Steam masqué",toastSteamMatchNone:"Jeu marqué comme absent de Steam",steamMatchLabel:"App {id} · {source}",sectionLinks:"Liens rapides",sectionLinksHint:"Choisissez les sites affichés dans la rangée Links de la page du jeu, faites glisser ⋮⋮ pour les réordonner ou ajoutez les vôtres.",linkDrag:"Glisser pour réordonner (ou appuyer sur ↑ / ↓)",linkAdd:"Ajouter un lien perso",linkEdit:"Modifier",linkRemove:"Supprimer",linkCustomTag:"perso",linkLimit:"Jusqu’à {n} liens perso.",linkEditorAddTitle:"Nouveau lien perso",linkEditorEditTitle:"Modifier le lien perso",linkEditorName:"Nom",linkEditorNamePh:"p. ex. Wikipedia",linkEditorUrl:"Modèle de lien",linkEditorUrlHint:"Les variables sont remplacées par les données du jeu. Si un jeu n’a pas de valeur pour l’une d’elles (p. ex. {appid} hors Steam), le lien est masqué pour ce jeu.",linkEditorPlaceholders:"Insérer une variable",linkPhTitle:"Titre du jeu",linkPhSlug:"Slug Backloggd",linkPhAppid:"Steam App ID",linkPhYear:"Année de sortie",linkPhId:"ID du jeu Backloggd",linkEditorFormat:"Format du titre",linkEditorFormatHint:"Façon d’écrire {title} dans le lien. Une variable peut la remplacer, p. ex. {title:plus}.",linkFormatEncoded:"Encodage pourcentage (%20)",linkFormatPlus:"Séparé par des +",linkFormatSlug:"Slug",linkFormatUnderscore:"Tirets bas",linkFormatCompact:"Sans espaces",linkEditorIcon:"URL de l’icône (facultatif)",linkEditorIconHint:"Lien vers une petite image, complet ou relatif au site (p. ex. /favicon.ico). Laissez vide pour utiliser le favicon du site.",linkEditorPreview:"Aperçu",linkEditorErrName:"Saisissez un nom.",linkEditorErrUrl:"Le lien doit commencer par http:// ou https://",linkEditorErrIcon:"L’icône doit être un lien d’image http(s) ou un chemin relatif au site.",linkEditorDone:"Enregistrer le lien",customLinksSeparate:"Liens perso sur une rangée séparée",customLinksSeparateHint:"Affiche vos liens dans leur propre rangée « Mes liens », sous la rangée Links, au lieu de les mélanger. Leur ordre relatif suit la liste ci-dessous.",customLinksRow:"Mes liens",customLinksStyle:"Apparence des liens perso",customLinksStyleHint:"Aspect de vos liens dans la rangée Links : liens texte comme les sites intégrés, ou petits boutons.",customLinksStyleLink:"Lien",customLinksStyleButton:"Bouton",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",sectionCacheHint:"Volume de données de requêtes stockées dans ce profil par rapport au budget souple de 5 Mo.",sectionCacheDuration:"Durée",sectionCacheSources:"Quoi mettre en cache",sectionCacheSourcesHint:"Désactivez une source pour ne plus la stocker. Les entrées existantes sont supprimées à l’enregistrement.",sectionCacheClear:"Vider",cacheHours:"Durée du cache (heures)",cacheHoursHint:"Durée de réutilisation des requêtes jeu (Steam, GameStatus, scores, médias, similaires). 0 désactive cette catégorie. Profils, traductions et FX gardent leurs TTL si les interrupteurs sont actifs. Les joueurs en ligne ne sont jamais mis en cache.",cacheGameData:"Données de jeu",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, captures, jeux similaires.",cacheUserProfiles:"Mini-profils",cacheUserProfilesHint:"Cartes au survol et enrichissement des pages utilisateur Backloggd.",cacheTranslations:"Traductions",cacheTranslationsHint:"Résultats Google Translate pour descriptions et critiques.",cacheFx:"Taux de change",cacheFxHint:"Taux FX pour une conversion approximative des prix.",cacheCatGame:"Jeux",cacheCatProfiles:"Profils",cacheCatTranslations:"Traductions",cacheCatFx:"Devise",cacheCatSystem:"Système",cacheCatOff:"Off",cacheBarCatCount:"{count}",cacheBarEntries:"{count} entrées",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 souple par catégorie. Système (bibliothèque/wishlist + carte de tags) toujours actif. Les couleurs correspondent aux interrupteurs.",cacheBarAriaCats:"Cache rempli à {pct}% — {detail}",cacheBarAria:"Cache rempli à {pct}% — {full} complet, {partial} partiel, {free} libre",cacheTabFillAria:"Cache rempli à {pct}%",cacheClearHint:"Supprime toutes les entrées de ce profil navigateur (ne change pas les interrupteurs).",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",unifiedRatingHintNoOpenCritic:"Moyenne Steam, Metacritic 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 · バッジ · リンク",settingsSearchPlaceholder:"設定を検索…",settingsSearchLabel:"設定を検索",settingsSearchClear:"検索をクリア",settingsSearchShortcut:"/ または Ctrl+K で検索",settingsSearchCount:"見つかった項目:{count}",settingsSearchEmpty:"「{query}」に一致する項目はありません",settingsSearchEmptyHint:"別の言葉を試すか、スペルを確認してください。",settingsSearchOpenTab:"「{tab}」タブを開く",close:"閉じる",cancel:"キャンセル",save:"保存",saveReload:"保存して再読み込み",resetSettings:"リセット",resetSettingsConfirmTitle:"設定をリセットしますか?",resetSettingsConfirm:"すべての設定が初期値に戻ります。ページが再読み込みされます。検索キャッシュは消えません。",resetSettingsConfirmAction:"リセット",toastSettingsResetTitle:"設定をリセットしました",toastSettingsReset:"初期値に戻しました。ページを再読み込みします。",repoLink:"GitHub",repoAbout:"ソースコード、更新、Issue報告",sectionGame:"ゲームページ",sectionLists:"ゲームカード",sectionListsHint:"browse / 検索 / journal と「似ているゲーム」のカバーバッジとホバーミニプロフィール。",sectionGeneral:"一般",sectionProfile:"プロフィール",sectionUi:"UI",generalGroupLanguage:"言語",generalGroupLanguageHint:"Plus のメニュー・設定・トーストの言語。",generalGroupInterface:"インターフェース",generalGroupInterfaceHint:"Backloggd ページの任意の見た目調整。",generalGroupAccent:"アクセントカラー",generalGroupAccentHint:"Plus のボタン、バッジ、ハイライトの色です。プレビューは即時反映され、保存するとすべてに適用されます。",accentColorPick:"カスタムカラー",accentColorReset:"リセット",generalGroupBackup:"バックアップ",generalGroupBackupHint:"Plus の設定を書き出し/復元します。検索キャッシュは含まれません。",generalGroupTransfer:"データ移行",generalGroupTransferHint:"ゲームのログを Backloggd に移行するための別のユーザースクリプトです。",transferLinkHint:"他のプラットフォームのゲームログを、転送用 JSON または CSV からインポートします。別途インストールが必要です。",settingsExport:"エクスポート",settingsExportHint:"現在の設定を JSON ファイルでダウンロードします。",settingsImport:"インポート",settingsImportHint:"以前エクスポートした JSON から設定を復元します。",settingsImportConfirmTitle:"設定をインポートしますか?",settingsImportConfirm:"現在の設定が置き換えられます。ページが再読み込みされます。検索キャッシュは変更されません。",settingsImportConfirmAction:"インポート",toastSettingsExportedTitle:"設定をエクスポートしました",toastSettingsExported:"バックアップファイルをダウンロードしました。",toastSettingsExportFailedTitle:"エクスポート失敗",toastSettingsExportFailed:"バックアップファイルを作成できませんでした。",toastSettingsImportedTitle:"設定をインポートしました",toastSettingsImported:"設定を復元しました。ページを再読み込みします。",toastSettingsImportFailedTitle:"インポート失敗",toastSettingsImportInvalid:"有効な設定バックアップではありません。",toastSettingsImportEmpty:"ファイルに設定が見つかりませんでした。",toastSettingsImportTooLarge:"ファイルが大きすぎてインポートできません。",toastSettingsImportReadFailed:"ファイルを読み取れませんでした。",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:"広告枠を非表示",hideHomepageFuseHint:"空の Fuse / incontent 広告行を非表示にします(ホーム、ゲームレビューなど)。",showUserMiniProfile:"ユーザーミニプロフィール",showUserMiniProfileHint:"アバターやユーザー名に簡易プロフィールカードを表示:統計、評価グラフ、自己紹介、お気に入り/最近のゲーム(カバーからゲームカードを開けます)、バッジ。開き方は下の設定で選べます。",miniTrigger:"カードの開き方",miniTriggerHover:"ホバー",miniTriggerContextMenu:"右クリック",miniTriggerShiftClick:"Shift + クリック",userMiniTriggerHint:"ユーザーカードの開き方。右クリックと Shift + クリックはアバターやユーザー名の標準動作の代わりになります。カード外クリックまたは Esc で閉じます。",preloadUserMiniProfile:"表示領域で事前読込",preloadUserMiniProfileHint:"表示領域に入ったプロフィールリンクのミニプロフィールを先読みし、ホバーですぐ開けます。",userMiniProfileTiers:"プレイ数ランク",userMiniProfileTiersHint:"プレイしたゲーム数でカードを色分け(ルーキーからレジェンド)し、ランクのラベルを表示します。オフにすると標準のカードになります。",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バッジ(タイトル検索)。",openCriticSource:"OpenCritic のソース",openCriticSourceAuto:"自動(キー不要)",openCriticSourceApi:"自分の RapidAPI キー",openCriticSourceHint:"自動モードは PCGamingWiki とウェブ検索でゲームを探します。キーは不要です。OpenCritic 公式 API は現在キーが必要です。",openCriticApiKey:"OpenCritic API キー",openCriticApiKeyHint:"OpenCritic 検索用の任意の RapidAPI キー。この端末にのみ保存され、設定のバックアップには含まれません。",openCriticApiKeyLink:"RapidAPI でキーを取得",openCriticApiKeyPlaceholder:"RapidAPI キーを貼り付け",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 ステータスチップ。",cardGroupHover:"ホバーカード",cardGroupHoverHint:"ゲームカバーにホバーしたときのミニプロフィール。",showGameMiniProfile:"ゲームミニプロフィール",showGameMiniProfileHint:"カバーにホバーするとタイトル・評価・プラットフォーム・Steam価格/レビュー・クイックリンクを表示。",gameMiniTriggerHint:"ゲームカードの開き方。右クリックと Shift + クリックはカバーの標準動作の代わりになります。カード外クリックまたは Esc で閉じます。",preloadGameMiniProfile:"表示領域で事前読込",preloadGameMiniProfileHint:"カバーが表示領域に入るとミニプロフィールを先読みし、ホバーですぐ開けます。",gameMiniProfileTiers:"評価ランク",gameMiniProfileTiersHint:"Backloggdの評価に応じてカードを色分けします(ルーキー〜レジェンド、4.5★以上)。ユーザーカードと同じデザインです。評価のないゲームは通常の見た目のままです。",miniGameRating:"Backloggd評価",miniGameOpen:"ゲームを開く",miniGameLoading:"ゲームを読み込み中…",miniGameError:"ゲームを読み込めませんでした",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:"自動",steamFixMatchBlankHint:"ゲームが Steam にない場合は、空欄のまま保存してください。",steamMatchNone:"Steam にありません · 手動",toastSteamMatchNoneTitle:"Steam を非表示にしました",toastSteamMatchNone:"このゲームを Steam にないものとして設定しました",steamMatchLabel:"App {id} · {source}",sectionLinks:"クイックリンク",sectionLinksHint:"ゲームページのLinks行に表示するサイトを選び、⋮⋮ をドラッグして並べ替えるか、独自のリンクを追加できます。",linkDrag:"ドラッグして並べ替え(または ↑ / ↓ キー)",linkAdd:"カスタムリンクを追加",linkEdit:"編集",linkRemove:"削除",linkCustomTag:"カスタム",linkLimit:"カスタムリンクは最大 {n} 件です。",linkEditorAddTitle:"新規カスタムリンク",linkEditorEditTitle:"カスタムリンクを編集",linkEditorName:"名前",linkEditorNamePh:"例: Wikipedia",linkEditorUrl:"リンクのテンプレート",linkEditorUrlHint:"プレースホルダーはゲームの情報に置き換わります。値がないゲーム(例: Steam にないゲームの {appid})では、そのリンクは非表示になります。",linkEditorPlaceholders:"プレースホルダーを挿入",linkPhTitle:"ゲームタイトル",linkPhSlug:"Backloggd のスラッグ",linkPhAppid:"Steam App ID",linkPhYear:"発売年",linkPhId:"Backloggd のゲームID",linkEditorFormat:"タイトルの形式",linkEditorFormatHint:"{title} をリンクに書き込む形式です。{title:plus} のように個別に上書きもできます。",linkFormatEncoded:"パーセントエンコード",linkFormatPlus:"プラス区切り",linkFormatSlug:"スラッグ",linkFormatUnderscore:"アンダースコア区切り",linkFormatCompact:"スペースなし",linkEditorIcon:"アイコン画像のURL(任意)",linkEditorIconHint:"小さな画像へのリンク。フルURLまたはサイトからの相対パス(例: /favicon.ico)。空欄ならサイトのファビコンを使います。",linkEditorPreview:"プレビュー",linkEditorErrName:"名前を入力してください。",linkEditorErrUrl:"リンクは http:// または https:// で始めてください。",linkEditorErrIcon:"アイコンは http(s) の画像リンクまたはサイト相対パスにしてください。",linkEditorDone:"リンクを保存",customLinksSeparate:"カスタムリンクを別の行に表示",customLinksSeparateHint:"カスタムリンクを混ぜず、Links行の下の「マイリンク」行に表示します。その中の順序は下のリストに従います。",customLinksRow:"マイリンク",customLinksStyle:"カスタムリンクの見た目",customLinksStyleHint:"Links行でのカスタムリンクの表示方法:組み込みサイトと同じテキストリンク、または小さなボタン。",customLinksStyleLink:"リンク",customLinksStyleButton:"ボタン",gameGroupSteam:"Steam",gameGroupScores:"スコアとプレイ時間",gameGroupCompat:"互換性とステータス",gameGroupMedia:"メディアとレイアウト",gameGroupTools:"ツール",gameGroupHosts:"その他のサイト",gameGroupHostsHint:"Steam / SteamDB のゲームページに Backloggd ボタンを表示します。",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 設定",sectionCacheHint:"このブラウザプロファイルがソフト上限5MBに対して保持している照会データの量。",sectionCacheDuration:"保持期間",sectionCacheSources:"キャッシュする内容",sectionCacheSourcesHint:"ソースをオフにすると保存を止めます。保存時にそのソースの既存エントリは削除されます。",sectionCacheClear:"消去",cacheHours:"キャッシュ時間(時間)",cacheHoursHint:"ゲーム照会(Steam・GameStatus・スコア・メディア・類似)の再利用時間。0でそのカテゴリを無効。プロフィール・翻訳・FXは各トグルがオンなら独自TTLを維持。オンラインプレイヤー数はキャッシュしない。",cacheGameData:"ゲームデータ",cacheGameDataHint:"Steam、SteamDB、GameStatus、OpenCritic、HLTB、ProtonDB、スクリーンショット、類似ゲーム。",cacheUserProfiles:"ユーザーミニプロフィール",cacheUserProfilesHint:"ホバーカードとBackloggdユーザーページの装飾。",cacheTranslations:"翻訳",cacheTranslationsHint:"説明文・レビューのGoogle翻訳結果。",cacheFx:"為替レート",cacheFxHint:"おおよその価格換算に使うFXレート。",cacheCatGame:"ゲーム",cacheCatProfiles:"プロフィール",cacheCatTranslations:"翻訳",cacheCatFx:"通貨",cacheCatSystem:"システム",cacheCatOff:"オフ",cacheBarCatCount:"{count}",cacheBarEntries:"{count} 件",clearCache:"キャッシュを消去",cacheCleared:"{count} 件を削除しました",cacheEmpty:"クリアするものはありません — すでに空です",cacheBarFull:"完全",cacheBarPartial:"部分",cacheBarFree:"空き",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"使用中",cacheBarHint:"カテゴリ別の目安容量。システム(ライブラリ/ウィッシュリスト+タグマップ)は常にオン。色は下のトグルと対応。",cacheBarAriaCats:"キャッシュ使用率 {pct}% — {detail}",cacheBarAria:"キャッシュ使用率 {pct}% — 完全 {full}、部分 {partial}、空き {free}",cacheTabFillAria:"キャッシュ使用率 {pct}%",cacheClearHint:"このブラウザプロファイルの照会エントリをすべて削除(トグルは変更しません)。",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の平均",unifiedRatingHintNoOpenCritic:"Steam・Metacritic・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 · 배지 · 링크",settingsSearchPlaceholder:"설정 검색…",settingsSearchLabel:"설정 검색",settingsSearchClear:"검색 지우기",settingsSearchShortcut:"/ 또는 Ctrl+K로 검색",settingsSearchCount:"검색 결과: {count}",settingsSearchEmpty:"“{query}”에 대한 결과가 없습니다",settingsSearchEmptyHint:"다른 단어를 입력하거나 철자를 확인해 보세요.",settingsSearchOpenTab:"“{tab}” 탭 열기",close:"닫기",cancel:"취소",save:"저장",saveReload:"저장 후 새로고침",resetSettings:"초기화",resetSettingsConfirmTitle:"설정을 초기화할까요?",resetSettingsConfirm:"모든 설정이 기본값으로 돌아갑니다. 페이지가 새로고침됩니다. 조회 캐시는 지워지지 않습니다.",resetSettingsConfirmAction:"초기화",toastSettingsResetTitle:"설정 초기화됨",toastSettingsReset:"기본값이 복원되었습니다. 페이지를 새로고침합니다.",repoLink:"GitHub",repoAbout:"소스 코드, 업데이트, 이슈 보고",sectionGame:"게임 페이지",sectionLists:"게임 카드",sectionListsHint:"browse / 검색 / journal 및 비슷한 게임 커버의 배지와 호버 미니 프로필.",sectionGeneral:"일반",sectionProfile:"프로필",sectionUi:"UI",generalGroupLanguage:"언어",generalGroupLanguageHint:"Plus 메뉴, 설정, 토스트 언어.",generalGroupInterface:"인터페이스",generalGroupInterfaceHint:"Backloggd 페이지의 선택적 화면 조정.",generalGroupAccent:"강조 색상",generalGroupAccentHint:"Plus 버튼, 배지, 강조 표시의 색상입니다. 미리보기는 즉시 반영되며 저장하면 모든 곳에 적용됩니다.",accentColorPick:"사용자 지정 색상",accentColorReset:"초기화",generalGroupBackup:"백업",generalGroupBackupHint:"Plus 설정을 내보내거나 복원합니다. 조회 캐시는 포함되지 않습니다.",generalGroupTransfer:"데이터 이전",generalGroupTransferHint:"게임 기록을 Backloggd로 옮기기 위한 별도 유저스크립트입니다.",transferLinkHint:"다른 플랫폼의 게임 기록을 전송용 JSON 또는 CSV로 가져옵니다. 별도로 설치해야 합니다.",settingsExport:"내보내기",settingsExportHint:"현재 설정이 담긴 JSON 파일을 다운로드합니다.",settingsImport:"가져오기",settingsImportHint:"이전에 내보낸 JSON 파일에서 설정을 복원합니다.",settingsImportConfirmTitle:"설정을 가져올까요?",settingsImportConfirm:"현재 설정이 교체됩니다. 페이지가 새로고침됩니다. 조회 캐시는 변경되지 않습니다.",settingsImportConfirmAction:"가져오기",toastSettingsExportedTitle:"설정 내보내기 완료",toastSettingsExported:"백업 파일을 다운로드했습니다.",toastSettingsExportFailedTitle:"내보내기 실패",toastSettingsExportFailed:"백업 파일을 만들 수 없습니다.",toastSettingsImportedTitle:"설정 가져오기 완료",toastSettingsImported:"설정을 복원했습니다. 페이지가 새로고침됩니다.",toastSettingsImportFailedTitle:"가져오기 실패",toastSettingsImportInvalid:"유효한 설정 백업 파일이 아닙니다.",toastSettingsImportEmpty:"파일에서 설정을 찾지 못했습니다.",toastSettingsImportTooLarge:"파일이 너무 커서 가져올 수 없습니다.",toastSettingsImportReadFailed:"파일을 읽을 수 없습니다.",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:"광고 블록 숨기기",hideHomepageFuseHint:"빈 Fuse / incontent 광고 행을 숨깁니다(홈, 게임 리뷰 등).",showUserMiniProfile:"사용자 미니 프로필",showUserMiniProfileHint:"아바타나 사용자 이름에 요약 프로필 카드를 표시합니다: 통계, 평점 차트, 소개, 즐겨찾기·최근 게임(커버를 누르면 게임 카드가 열림), 배지. 여는 방식은 아래에서 설정합니다.",miniTrigger:"카드 여는 방법",miniTriggerHover:"마우스 오버",miniTriggerContextMenu:"오른쪽 클릭",miniTriggerShiftClick:"Shift + 클릭",userMiniTriggerHint:"사용자 카드를 여는 방법입니다. 오른쪽 클릭과 Shift + 클릭은 아바타와 사용자명의 기본 동작을 대체하며, 카드 밖을 클릭하거나 Esc로 닫습니다.",preloadUserMiniProfile:"화면에 보이면 미리 불러오기",preloadUserMiniProfileHint:"프로필 링크가 화면에 들어오면 미니 프로필을 미리 받아 호버 시 바로 열리게 합니다.",userMiniProfileTiers:"플레이 수 등급",userMiniProfileTiersHint:"플레이한 게임 수에 따라 카드 색을 바꾸고(루키~레전드) 등급 라벨을 표시합니다. 끄면 기본 카드로 표시됩니다.",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 배지(제목 검색).",openCriticSource:"OpenCritic 소스",openCriticSourceAuto:"자동(키 불필요)",openCriticSourceApi:"내 RapidAPI 키",openCriticSourceHint:"자동 모드는 PCGamingWiki와 웹 검색으로 게임을 찾으며 키가 필요 없습니다. OpenCritic 자체 API는 이제 키가 필요합니다.",openCriticApiKey:"OpenCritic API 키",openCriticApiKeyHint:"OpenCritic 검색용 선택 사항 RapidAPI 키. 이 기기에만 저장되며 설정 백업에는 포함되지 않습니다.",openCriticApiKeyLink:"RapidAPI에서 키 받기",openCriticApiKeyPlaceholder:"RapidAPI 키 붙여넣기",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 상태 칩.",cardGroupHover:"호버 카드",cardGroupHoverHint:"게임 커버에 마우스를 올리면 미니 프로필이 열립니다.",showGameMiniProfile:"게임 미니 프로필",showGameMiniProfileHint:"커버에 마우스를 올리면 제목, 평점, 플랫폼, Steam 가격/리뷰, 바로가기 링크를 봅니다.",gameMiniTriggerHint:"게임 카드를 여는 방법입니다. 오른쪽 클릭과 Shift + 클릭은 커버의 기본 동작을 대체하며, 카드 밖을 클릭하거나 Esc로 닫습니다.",preloadGameMiniProfile:"화면에 보이면 미리 불러오기",preloadGameMiniProfileHint:"커버가 화면에 들어오면 미니 프로필을 미리 가져와 호버 시 바로 엽니다.",gameMiniProfileTiers:"평점 등급",gameMiniProfileTiersHint:"Backloggd 평점에 따라 카드 색을 바꿉니다(루키~레전드, 4.5★ 이상). 사용자 카드와 같은 스킨입니다. 평점이 없는 게임은 기본 모양을 유지합니다.",miniGameRating:"Backloggd 평점",miniGameOpen:"게임 열기",miniGameLoading:"게임 불러오는 중…",miniGameError:"게임을 불러오지 못했습니다",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:"자동",steamFixMatchBlankHint:"게임이 Steam에 없다면 입력란을 비워 둔 채 저장하세요.",steamMatchNone:"Steam에 없음 · 수동",toastSteamMatchNoneTitle:"Steam 숨김",toastSteamMatchNone:"이 게임을 Steam에 없는 것으로 표시했습니다",steamMatchLabel:"App {id} · {source}",sectionLinks:"빠른 링크",sectionLinksHint:"게임 페이지 Links 행에 표시할 사이트를 선택하고, ⋮⋮ 를 끌어 순서를 바꾸거나 직접 추가하세요.",linkDrag:"끌어서 순서 변경 (또는 ↑ / ↓ 키)",linkAdd:"사용자 링크 추가",linkEdit:"편집",linkRemove:"삭제",linkCustomTag:"사용자",linkLimit:"사용자 링크는 최대 {n}개입니다.",linkEditorAddTitle:"새 사용자 링크",linkEditorEditTitle:"사용자 링크 편집",linkEditorName:"이름",linkEditorNamePh:"예: Wikipedia",linkEditorUrl:"링크 템플릿",linkEditorUrlHint:"자리표시자는 게임 정보로 바뀝니다. 어떤 게임에 값이 없으면(예: Steam에 없는 게임의 {appid}) 그 게임에서는 링크가 숨겨집니다.",linkEditorPlaceholders:"자리표시자 삽입",linkPhTitle:"게임 제목",linkPhSlug:"Backloggd 슬러그",linkPhAppid:"Steam App ID",linkPhYear:"출시 연도",linkPhId:"Backloggd 게임 ID",linkEditorFormat:"제목 형식",linkEditorFormatHint:"{title}을(를) 링크에 쓰는 방식입니다. {title:plus}처럼 개별로 덮어쓸 수 있습니다.",linkFormatEncoded:"퍼센트 인코딩",linkFormatPlus:"플러스 구분",linkFormatSlug:"슬러그",linkFormatUnderscore:"밑줄 구분",linkFormatCompact:"공백 없음",linkEditorIcon:"아이콘 이미지 URL (선택)",linkEditorIconHint:"작은 이미지 링크입니다. 전체 주소 또는 사이트 기준 상대 경로(예: /favicon.ico)를 쓸 수 있습니다. 비워 두면 사이트의 파비콘을 사용합니다.",linkEditorPreview:"미리보기",linkEditorErrName:"이름을 입력하세요.",linkEditorErrUrl:"링크는 http:// 또는 https://로 시작해야 합니다.",linkEditorErrIcon:"아이콘은 http(s) 이미지 링크이거나 사이트 기준 상대 경로여야 합니다.",linkEditorDone:"링크 저장",customLinksSeparate:"사용자 링크를 별도 행에 표시",customLinksSeparateHint:'사용자 링크를 섞지 않고 Links 행 아래 "내 링크" 행에 따로 표시합니다. 그 안의 순서는 아래 목록을 따릅니다.',customLinksRow:"내 링크",customLinksStyle:"사용자 링크 모양",customLinksStyleHint:"Links 행에서 사용자 링크가 보이는 방식: 기본 사이트와 같은 텍스트 링크 또는 작은 버튼.",customLinksStyleLink:"링크",customLinksStyleButton:"버튼",gameGroupSteam:"Steam",gameGroupScores:"점수 및 플레이 시간",gameGroupCompat:"호환성 및 상태",gameGroupMedia:"미디어 및 레이아웃",gameGroupTools:"도구",gameGroupHosts:"다른 사이트",gameGroupHostsHint:"Steam 및 SteamDB 게임 페이지의 Backloggd 버튼.",navSettings:"Plus",navSettingsTitle:"Backloggd Plus 설정",sectionCacheHint:"이 브라우저 프로필이 소프트 한도 5MB 기준으로 보관 중인 조회 데이터 양.",sectionCacheDuration:"보관 시간",sectionCacheSources:"캐시할 항목",sectionCacheSourcesHint:"소스를 끄면 더 이상 저장하지 않습니다. 저장 시 해당 소스의 기존 항목이 삭제됩니다.",sectionCacheClear:"비우기",cacheHours:"캐시 시간(시간)",cacheHoursHint:"게임 조회(Steam, GameStatus, 점수, 미디어, 유사 게임) 재사용 시간. 0은 해당 카테고리 비활성. 프로필·번역·FX는 토글이 켜져 있으면 자체 TTL 유지. 온라인 플레이어 수는 캐시하지 않음.",cacheGameData:"게임 데이터",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, 스크린샷, 유사 게임.",cacheUserProfiles:"유저 미니 프로필",cacheUserProfilesHint:"호버 카드와 Backloggd 유저 페이지 꾸밈.",cacheTranslations:"번역",cacheTranslationsHint:"설명·리뷰용 Google Translate 결과.",cacheFx:"환율",cacheFxHint:"대략적인 가격 환산에 쓰는 FX 환율.",cacheCatGame:"게임",cacheCatProfiles:"프로필",cacheCatTranslations:"번역",cacheCatFx:"통화",cacheCatSystem:"시스템",cacheCatOff:"끔",cacheBarCatCount:"{count}",cacheBarEntries:"{count}개 항목",clearCache:"캐시 비우기",cacheCleared:"{count}개 항목 삭제됨",cacheEmpty:"지울 항목 없음 — 이미 비어 있음",cacheBarFull:"완전",cacheBarPartial:"부분",cacheBarFree:"여유",cacheBarLegend:"{label}: {count} · {size}",cacheBarUsed:"{used} / {limit}",cacheBarPct:"{pct}%",cacheBarFilled:"사용 중",cacheBarHint:"카테고리별 소프트 한도. 시스템(라이브러리/위시리스트 + 태그 맵)은 항상 켜짐. 색은 아래 토글과 일치.",cacheBarAriaCats:"캐시 {pct}% 사용 — {detail}",cacheBarAria:"캐시 {pct}% 사용 — 완전 {full}, 부분 {partial}, 여유 {free}",cacheTabFillAria:"캐시 {pct}% 사용",cacheClearHint:"이 브라우저 프로필의 모든 조회 항목을 삭제합니다(토글은 바꾸지 않음).",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 평균",unifiedRatingHintNoOpenCritic:"Steam, Metacritic, 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",settingsSearchPlaceholder:"Szukaj w ustawieniach…",settingsSearchLabel:"Szukaj w ustawieniach",settingsSearchClear:"Wyczyść wyszukiwanie",settingsSearchShortcut:"Naciśnij / lub Ctrl+K, aby wyszukać",settingsSearchCount:"Znaleziono: {count}",settingsSearchEmpty:"Brak wyników dla „{query}”",settingsSearchEmptyHint:"Spróbuj innego słowa lub sprawdź pisownię.",settingsSearchOpenTab:"Otwórz kartę „{tab}”",close:"Zamknij",cancel:"Anuluj",save:"Zapisz",saveReload:"Zapisz i przeładuj",resetSettings:"Resetuj",resetSettingsConfirmTitle:"Zresetować ustawienia?",resetSettingsConfirm:"Wszystkie preferencje wrócą do wartości domyślnych. Strona zostanie przeładowana. Cache wyszukiwań nie jest czyszczony.",resetSettingsConfirmAction:"Resetuj",toastSettingsResetTitle:"Ustawienia zresetowane",toastSettingsReset:"Przywrócono domyślne wartości. Strona zostanie przeładowana.",repoLink:"GitHub",repoAbout:"Kod źródłowy, aktualizacje i zgłoszenia",sectionGame:"Strona gry",sectionLists:"Karta gry",sectionListsHint:"Odznaki i mini profile po najechaniu na okładki 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.",generalGroupAccent:"Kolor akcentu",generalGroupAccentHint:"Kolor przycisków, odznak i wyróżnień Plus. Podgląd na żywo; Zapisz stosuje go wszędzie.",accentColorPick:"Własny kolor",accentColorReset:"Resetuj",generalGroupBackup:"Kopia zapasowa",generalGroupBackupHint:"Eksportuj lub przywróć ustawienia Plus. Pamięć podręczna zapytań nie jest dołączana.",generalGroupTransfer:"Przenoszenie danych",generalGroupTransferHint:"Osobny userscript do przenoszenia logów gier do Backloggd.",transferLinkHint:"Importuje logi gier z innych platform przez JSON transferowy lub CSV. Instalowany osobno.",settingsExport:"Eksportuj",settingsExportHint:"Pobierz plik JSON z bieżącymi ustawieniami.",settingsImport:"Importuj",settingsImportHint:"Przywróć ustawienia z wcześniej wyeksportowanego pliku JSON.",settingsImportConfirmTitle:"Zaimportować ustawienia?",settingsImportConfirm:"Bieżące preferencje zostaną zastąpione. Strona się przeładuje. Pamięć podręczna zapytań się nie zmieni.",settingsImportConfirmAction:"Importuj",toastSettingsExportedTitle:"Ustawienia wyeksportowane",toastSettingsExported:"Pobrano plik kopii zapasowej.",toastSettingsExportFailedTitle:"Eksport nieudany",toastSettingsExportFailed:"Nie udało się utworzyć pliku kopii zapasowej.",toastSettingsImportedTitle:"Ustawienia zaimportowane",toastSettingsImported:"Preferencje przywrócone. Strona zostanie przeładowana.",toastSettingsImportFailedTitle:"Import nieudany",toastSettingsImportInvalid:"Ten plik nie jest prawidłową kopią ustawień.",toastSettingsImportEmpty:"W pliku nie znaleziono ustawień.",toastSettingsImportTooLarge:"Plik jest zbyt duży, by go zaimportować.",toastSettingsImportReadFailed:"Nie udało się odczytać pliku.",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 bloki reklamowe",hideHomepageFuseHint:"Ukrywa puste wiersze Fuse / incontent (strona główna, recenzje gry itd.).",showUserMiniProfile:"Mini profil użytkownika",showUserMiniProfileHint:"Karta z krótkim profilem przy awatarze lub nicku: statystyki, wykres ocen, bio, ulubione i ostatnie gry (ich okładki otwierają kartę gry) oraz odznaki. Sposób otwierania ustawisz poniżej.",miniTrigger:"Otwieraj kartę przez",miniTriggerHover:"Najechanie",miniTriggerContextMenu:"Prawy przycisk myszy",miniTriggerShiftClick:"Shift + klik",userMiniTriggerHint:"Jak otwiera się karta użytkownika. Prawy przycisk i Shift + klik zastępują natywną akcję na awatarach i nazwach; zamknij kliknięciem poza kartą lub Esc.",preloadUserMiniProfile:"Wczytuj w obszarze widoczności",preloadUserMiniProfileHint:"Pobiera dane mini profilu dla linków profilu w polu widzenia, by karta otwierała się od razu.",userMiniProfileTiers:"Poziomy wg zagranych gier",userMiniProfileTiersHint:"Koloruje kartę według liczby zagranych gier, od Nowicjusza do Legendy, i pokazuje etykietę poziomu. Wyłączone: neutralna karta.",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).",openCriticSource:"Źródło OpenCritic",openCriticSourceAuto:"Automatyczne (bez klucza)",openCriticSourceApi:"Mój klucz RapidAPI",openCriticSourceHint:"Tryb automatyczny znajduje grę przez PCGamingWiki i wyszukiwarkę, bez klucza. Własne API OpenCritic wymaga teraz klucza.",openCriticApiKey:"Klucz API OpenCritic",openCriticApiKeyHint:"Opcjonalny klucz RapidAPI do wyszukiwania w OpenCritic. Zapisany tylko na tym urządzeniu, nie trafia do kopii ustawień.",openCriticApiKeyLink:"Zdobądź klucz na RapidAPI",openCriticApiKeyPlaceholder:"Wklej klucz RapidAPI",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.",cardGroupHover:"Karty po najechaniu",cardGroupHoverHint:"Mini profil po najechaniu na okładkę gry.",showGameMiniProfile:"Mini profile gier",showGameMiniProfileHint:"Najedź na okładkę, by zobaczyć tytuł, ocenę, platformy, cenę/recenzje Steam i szybkie linki.",gameMiniTriggerHint:"Jak otwiera się karta gry. Prawy przycisk i Shift + klik zastępują natywną akcję na okładkach; zamknij kliknięciem poza kartą lub Esc.",preloadGameMiniProfile:"Wczytuj w obszarze widoczności",preloadGameMiniProfileHint:"Pobiera dane mini profilu, gdy okładki wchodzą w widok, by karty otwierały się od razu.",gameMiniProfileTiers:"Poziomy wg oceny",gameMiniProfileTiersHint:"Koloruje kartę według oceny Backloggd, od Nowicjusza do Legendy (4.5★+) – te same skórki co karty użytkowników. Gry bez oceny zachowują domyślny wygląd.",miniGameRating:"Ocena Backloggd",miniGameOpen:"Otwórz grę",miniGameLoading:"Ładowanie gry…",miniGameError:"Nie udało się wczytać gry",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",steamFixMatchBlankHint:"Zostaw pole puste i zapisz, jeśli gry nie ma na Steam.",steamMatchNone:"Brak na Steam · ręcznie",toastSteamMatchNoneTitle:"Steam ukryty",toastSteamMatchNone:"Gra oznaczona jako niedostępna na Steam",steamMatchLabel:"App {id} · {source}",sectionLinks:"Szybkie linki",sectionLinksHint:"Wybierz witryny widoczne w wierszu Links na stronie gry, przeciągaj ⋮⋮, aby zmienić kolejność, lub dodaj własne.",linkDrag:"Przeciągnij, aby zmienić kolejność (lub naciśnij ↑ / ↓)",linkAdd:"Dodaj własny link",linkEdit:"Edytuj",linkRemove:"Usuń",linkCustomTag:"własny",linkLimit:"Do {n} własnych linków.",linkEditorAddTitle:"Nowy własny link",linkEditorEditTitle:"Edytuj własny link",linkEditorName:"Nazwa",linkEditorNamePh:"np. Wikipedia",linkEditorUrl:"Szablon linku",linkEditorUrlHint:"Symbole zastępcze są podmieniane na dane gry. Jeśli gra nie ma wartości dla któregoś (np. {appid} dla gry spoza Steam), link jest dla niej ukryty.",linkEditorPlaceholders:"Wstaw symbol zastępczy",linkPhTitle:"Tytuł gry",linkPhSlug:"Slug Backloggd",linkPhAppid:"Steam App ID",linkPhYear:"Rok wydania",linkPhId:"ID gry w Backloggd",linkEditorFormat:"Format tytułu",linkEditorFormatHint:"Jak {title} jest zapisywany w linku. Pojedynczy symbol może to zmienić, np. {title:plus}.",linkFormatEncoded:"Kodowanie procentowe (%20)",linkFormatPlus:"Rozdzielone plusami",linkFormatSlug:"Slug",linkFormatUnderscore:"Podkreślenia",linkFormatCompact:"Bez spacji",linkEditorIcon:"URL ikony (opcjonalnie)",linkEditorIconHint:"Link do małego obrazka — pełny lub względny względem witryny (np. /favicon.ico). Zostaw puste, aby użyć favicony witryny.",linkEditorPreview:"Podgląd",linkEditorErrName:"Wpisz nazwę.",linkEditorErrUrl:"Link musi zaczynać się od http:// lub https://",linkEditorErrIcon:"Ikona musi być linkiem do obrazu http(s) lub ścieżką względną witryny.",linkEditorDone:"Zapisz link",customLinksSeparate:"Własne linki w osobnym wierszu",customLinksSeparateHint:"Pokazuje własne linki w osobnym wierszu „Moje linki” pod wierszem Links zamiast mieszać je z resztą. Ich kolejność nadal wynika z listy poniżej.",customLinksRow:"Moje linki",customLinksStyle:"Wygląd własnych linków",customLinksStyleHint:"Jak własne linki wyglądają w wierszu Links: zwykłe linki jak wbudowane witryny lub małe przyciski.",customLinksStyleLink:"Link",customLinksStyleButton:"Przycisk",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",sectionCacheHint:"Ile danych zapytań ten profil przeglądarki trzyma względem miękkiego limitu 5 MB.",sectionCacheDuration:"Czas przechowywania",sectionCacheSources:"Co cache’ować",sectionCacheSourcesHint:"Wyłącz źródło, aby go nie zapisywać. Przy zapisie wpisy tego typu zostaną usunięte.",sectionCacheClear:"Czyszczenie",cacheHours:"Czas cache (godziny)",cacheHoursHint:"Jak długo ponownie używać zapytań o gry (Steam, GameStatus, oceny, media, podobne). 0 wyłącza tę kategorię. Profile, tłumaczenia i FX zachowują własne TTL, gdy przełączniki są włączone. Gracze online nigdy nie są cache’owani.",cacheGameData:"Dane gier",cacheGameDataHint:"Steam, SteamDB, GameStatus, OpenCritic, HLTB, ProtonDB, zrzuty, podobne gry.",cacheUserProfiles:"Mini-profile",cacheUserProfilesHint:"Karty po najechaniu i wzbogacenie stron użytkowników Backloggd.",cacheTranslations:"Tłumaczenia",cacheTranslationsHint:"Wyniki Google Translate dla opisów i recenzji.",cacheFx:"Kursy walut",cacheFxHint:"Kursy FX do przybliżonej konwersji ceny.",cacheCatGame:"Gry",cacheCatProfiles:"Profile",cacheCatTranslations:"Tłumaczenia",cacheCatFx:"Waluta",cacheCatSystem:"System",cacheCatOff:"Wył.",cacheBarCatCount:"{count}",cacheBarEntries:"wpisów: {count}",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 według kategorii. System (biblioteka/wishlist + mapa tagów) zawsze włączony. Kolory odpowiadają przełącznikom poniżej.",cacheBarAriaCats:"Cache zapełniony w {pct}% — {detail}",cacheBarAria:"Cache zapełniony w {pct}% — {full} pełny, {partial} częściowy, {free} wolne",cacheTabFillAria:"Cache zapełniony w {pct}%",cacheClearHint:"Usuwa wszystkie wpisy z tego profilu przeglądarki (nie zmienia przełączników).",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",unifiedRatingHintNoOpenCritic:"Średnia Steam, Metacritic 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"}},ne=["en","ru","zh","es","pt","de","fr","ja","ko","pl"],re={en:"English",ru:"Русский",zh:"中文",es:"Español",pt:"Português",de:"Deutsch",fr:"Français",ja:"日本語",ko:"한국어",pl:"Polski"},oe={en:"🇺🇸",ru:"🇷🇺",zh:"🇨🇳",es:"🇪🇸",pt:"🇧🇷",de:"🇩🇪",fr:"🇫🇷",ja:"🇯🇵",ko:"🇰🇷",pl:"🇵🇱"};function se(e){const t=e||"auto";return "auto"!==t&&ne.includes(t)?t:function(){const e=String(navigator.language||"en").toLowerCase().slice(0,2);return ne.includes(e)?e:"en"}()}function le(e,t){return String(e).replace(/\{(\w+)\}/g,(e,a)=>null==t[a]?"":String(t[a]))}const ce=/^#[0-9a-f]{6}$/i,ue=/^#[0-9a-f]{3}$/i;function de(e,t){const a=String(null!=e?e:"").trim();if(ce.test(a))return a.toLowerCase();if(ue.test(a)){const[,e,t,i]=a.toLowerCase();return `#${e}${e}${t}${t}${i}${i}`}return t}function pe(e){const t=Number.parseInt(e.slice(1),16);return [t>>16&255,t>>8&255,255&t]}function me(e){const t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4}function ge(e){const[t,a,i]=pe(e);return .2126*me(t)+.7152*me(a)+.0722*me(i)}function he(e,t){const[a,i]=e>t?[e,t]:[t,e];return (a+.05)/(i+.05)}function be(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 fe(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 Se=["encoded","plus","slug","underscore","compact"],ve=["title","slug","appid","year","id"],ye=new RegExp(`\\{(${ve.join("|")})(?::(${Se.join("|")}))?\\}`,"gi");function we(e){return "string"==typeof e&&e.startsWith("c_")}function ke(){const e=Math.random().toString(36).slice(2,8);return `c_${Date.now().toString(36)}${e}`}function Ce(e){const t=String(null!=e?e:"").trim().toLowerCase();return Se.includes(t)?t:"encoded"}function Pe(e){return String(null!=e?e:"").trim().split(/\s+/).filter(Boolean)}function Te(e,t){switch(Ce(t)){case "plus":return Pe(e).map(encodeURIComponent).join("+");case "slug":return be(e);case "underscore":return Pe(e).map(encodeURIComponent).join("_");case "compact":return encodeURIComponent(Pe(e).join(""));default:return encodeURIComponent(String(null!=e?e:"").trim())}}function Be(e){return /^https?:\/\/[^\s/?#]+/i.test(String(null!=e?e:"").trim())}function xe(e){const t=String(null!=e?e:"").trim().slice(0,600);return !t||/\s/.test(t.replace(/^data:[^,]*,.*$/is,""))?"":/^https?:\/\/[^\s]+$/i.test(t)||/^data:image\/(png|jpe?g|gif|webp|svg\+xml|x-icon|vnd\.microsoft\.icon);/i.test(t)?t:/^[a-z][a-z0-9+.-]*:/i.test(t)?"":t}function Ae(e,t){const a=xe(e);if(!a)return "";if(/^(https?:|data:)/i.test(a))return a;try{const e=new URL(String(null!=t?t:"").replace(/\{[^}]*\}/g,"x")),i=a.startsWith("//")||a.startsWith("/")?a:`/${a.replace(/^\.\//,"")}`,n=new URL(i,e.origin);return /^https?:$/.test(n.protocol)?n.href:""}catch(i){return ""}}function Le(e,t={}){var a;const i=String(null!=(a=null==e?void 0:e.url)?a:"").trim();if(!Be(i))return "";let n=false;const r=i.replace(ye,(a,i,r)=>{var o;const s=i.toLowerCase();let l="";return "title"===s?l=Te(t.title||t.slug||"",r||e.format):"slug"===s?l=encodeURIComponent(String(null!=(o=t.slug)?o:"").replace(/^\/+|\/+$/g,"")):"appid"===s?l=null!=t.appId?encodeURIComponent(String(t.appId)):"":"year"===s?l=t.year?encodeURIComponent(String(t.year)):"":"id"===s&&(l=t.gameId?encodeURIComponent(String(t.gameId)):""),l||(n=true),l});return n||!Be(r)?"":r}function He(e){var t,a;if(!e||"object"!=typeof e||Array.isArray(e))return null;const i=String(null!=(t=e.label)?t:"").replace(/\s+/g," ").trim().slice(0,40),n=String(null!=(a=e.url)?a:"").trim().slice(0,600);return i&&Be(n)?{id:we(e.id)&&/^c_[a-z0-9]{3,40}$/i.test(e.id)?e.id:ke(),label:i,url:n,format:Ce(e.format),icon:xe(e.icon),enabled:false!==e.enabled}:null}function De(e){if(!Array.isArray(e))return [];const t=new Set,a=[];for(const i of e){const e=He(i);if(e&&(t.has(e.id)&&(e.id=ke()),t.add(e.id),a.push(e),a.length>=30))break}return a}function Me(e,t=[]){const a=new Set([...Q,...t.map(e=>e.id)]),i=[],n=new Set;for(const r of Array.isArray(e)?e:[])"string"==typeof r&&a.has(r)&&!n.has(r)&&(n.add(r),i.push(r));for(const r of a)n.has(r)||i.push(r);return i}new Set(Q);const Ee="backloggd-plus-settings",Ge=262144,$e=new Set(["RUB","USD","EUR","KZT","UAH","GBP","TRY","CNY","PLN","BRL","JPY","KRW"]),_e=new Set(te),Re=new Set(Q),Ie=Object.keys(ae).filter(e=>"links"!==e&&"boolean"==typeof ae[e]),Fe=["customLinks","linkOrder"],Ne=["showProfilePage","showProfileHeader","showProfileTierChip","showProfileStats","showProfileNav","showProfileFavorites"];function Oe(e,t){if(!("showProfilePage"in e)&&false===e.showUserMiniProfile)for(const a of Ne)t[a]=false;return t}function ze(e){return e.customLinks=De(e.customLinks),e.linkOrder=Me(e.linkOrder,e.customLinks),e}function Ue(){return ze({...ae,links:{...ae.links}})}function qe(){try{const e=t(u,null);if(!e||"object"!=typeof e)return Ue();const a={...ae,...e,links:{...ae.links,...e.links||{}}};return ze(a),Oe(e,a)}catch(e){return Ue()}}function je(e){const t={...ae,...e,links:{...ae.links,...e.links||{}}};ze(t),i(u,t);}function We(e,t){return Boolean(t.showLinks&&t.links&&false!==t.links[e])}function Ke(e,t){return "boolean"==typeof e?e:1===e||"1"===e||"true"===e||0!==e&&"0"!==e&&"false"!==e&&t}function Je(e,t){const a=String(null!=e?e:"").trim();return a&&("auto"===a||ne.includes(a))?a:t}function Ve(e){return String(null!=e?e:"").replace(/\s+/g,"").slice(0,200)}function Ye(e){const t=String(null!=e?e:"").trim().toLowerCase();return x.includes(t)?t:"hover"}function Ze(e){const t=String(null!=e?e:"").trim().toLowerCase();return X.includes(t)?t:"link"}function Xe(e){var t,a;const i=Ue();if(!e||"object"!=typeof e||Array.isArray(e))return {settings:i,appliedKeys:[],ignoredKeys:[]};const n=[],r=[],o={...i};for(const s of Object.keys(e))"links"!==s&&(s in ae||r.push(s));for(const s of Ie)s in e&&(o[s]=Ke(e[s],i[s]),n.push(s));if("cacheHours"in e&&(o.cacheHours=function(e,t){const a="number"==typeof e?e:Number(String(null!=e?e:"").trim());return Number.isFinite(a)?Math.max(0,Math.min(168,Math.round(a))):t}(e.cacheHours,i.cacheHours),n.push("cacheHours")),"uiLocale"in e&&(o.uiLocale=Je(e.uiLocale,i.uiLocale),n.push("uiLocale")),"siteLocale"in e){const a=String(null!=(t=e.siteLocale)?t:"").trim().toLowerCase();o.siteLocale="off"===a||/^[a-z]{2}$/.test(a)?a:"off",n.push("siteLocale");}if("accentColor"in e&&(o.accentColor=de(e.accentColor,i.accentColor),n.push("accentColor")),"translateTargetLocale"in e&&(o.translateTargetLocale=Je(e.translateTargetLocale,i.translateTargetLocale),n.push("translateTargetLocale")),"steamCountry"in e&&(o.steamCountry=function(e,t){const a=String(null!=e?e:"").trim().toUpperCase();return _e.has(a)?a:t}(e.steamCountry,i.steamCountry),n.push("steamCountry")),"convertCurrency"in e&&(o.convertCurrency=function(e,t){const a=String(null!=e?e:"").trim().toUpperCase();return $e.has(a)?a:t}(e.convertCurrency,i.convertCurrency),n.push("convertCurrency")),"customLinksStyle"in e&&(o.customLinksStyle=Ze(e.customLinksStyle),n.push("customLinksStyle")),"openCriticSource"in e){const t=String(null!=(a=e.openCriticSource)?a:"").trim().toLowerCase();o.openCriticSource=R.includes(t)?t:i.openCriticSource,n.push("openCriticSource");}"openCriticApiKey"in e&&(o.openCriticApiKey=Ve(e.openCriticApiKey),n.push("openCriticApiKey")),"translateDisplayMode"in e&&(o.translateDisplayMode=function(e,t){const a=String(null!=e?e:"").trim().toLowerCase();return "replace"===a||"below"===a?a:t}(e.translateDisplayMode,i.translateDisplayMode),n.push("translateDisplayMode"));for(const s of ["gameMiniProfileTrigger","userMiniProfileTrigger"])s in e&&(o[s]=Ye(e[s]),n.push(s));if("links"in e){const{links:t,applied:a,ignored:s}=function(e,t){const a={...t};if(!e||"object"!=typeof e||Array.isArray(e))return {links:a,applied:0,ignored:0};let i=0,n=0;for(const[r,o]of Object.entries(e))Re.has(r)?(a[r]=Ke(o,false!==a[r]),i+=1):n+=1;return {links:a,applied:i,ignored:n}}(e.links,i.links);o.links=t,(a>0||s>0||e.links&&"object"==typeof e.links)&&n.push("links"),s>0&&r.push("links.*");}if(Fe.some(t=>t in e)){const t="customLinks"in e?De(e.customLinks):[];o.customLinks=t,o.linkOrder=Me("linkOrder"in e?e.linkOrder:[],t),"customLinks"in e&&n.push("customLinks"),"linkOrder"in e&&n.push("linkOrder");}return Oe(e,o),{settings:o,appliedKeys:[...new Set(n)],ignoredKeys:[...new Set(r)]}}let Qe=qe(),et=se(Qe.uiLocale),tt=ie[et]||ie.en,at=null,it=0;const nt=new Map,rt=new Set;function ot(){Qe=qe(),et=se(Qe.uiLocale),tt=ie[et]||ie.en;}function st(e){at=e;}function lt(e){it=e;}function ct(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function ut(e){return ct(e)}const dt=new Set([J,V]),pt=[{id:"game",settingKey:"cacheGameData",labelKey:"cacheCatGame",swatch:"game"},{id:"profiles",settingKey:"cacheUserProfiles",labelKey:"cacheCatProfiles",swatch:"profiles"},{id:"translations",settingKey:"cacheTranslations",labelKey:"cacheCatTranslations",swatch:"translations"},{id:"fx",settingKey:"cacheFx",labelKey:"cacheCatFx",swatch:"fx"},{id:"system",settingKey:null,labelKey:"cacheCatSystem",swatch:"system"}];let mt=false,gt=0;const ht=new Set,bt=new Set,ft=new Map,St=new WeakMap,vt="undefined"!=typeof TextEncoder?new TextEncoder:null;function yt(e){ht.add(e),bt.delete(e),ft.delete(e);}function wt(e){bt.add(e),ht.delete(e),ft.delete(e);}function kt(e){const t=String(e||"");return t===J||t===V?"system":t.startsWith("user:profile:")?"profiles":t.startsWith("gtx:")?"translations":t.startsWith("fx:")?"fx":"game"}function Ct(e){return "system"===e||("game"===e?false!==Qe.cacheGameData:"profiles"===e?false!==Qe.cacheUserProfiles:"translations"===e?false!==Qe.cacheTranslations:"fx"!==e||false!==Qe.cacheFx)}function Pt(){try{const e=t(d,null);return e&&"object"==typeof e&&!Array.isArray(e)?e:{}}catch(e){return {}}}function Tt(){return at||(st(Pt()),at)}function Bt(){clearTimeout(it),lt(0),gt=0,function(){if(ht.size>0||bt.size>0||ft.size>0)try{const e=Tt(),t=Pt();for(const a of ht)e[a]&&(t[a]=e[a]);for(const a of bt)delete t[a];for(const[a,i]of ft){const e=t[a];e&&(Number(e.at)||0)0)return Number(t.ttlMs);if(e===V)return Y;if(e===J){const e=null==t?void 0:t.data;return function(e){if(e)return 3e5;const t=At();return t>0?t:36e5}(!(e&&(Array.isArray(e.appIds)&&0!==e.appIds.length||Array.isArray(e.wishlistAppIds)&&0!==e.wishlistAppIds.length)))}return At()}(e,t);return !a||Date.now()-t.ts>a}function Dt(e,t){if(!t||"object"!=typeof t)return;const a=Date.now();t.at=a,ht.has(e)||ft.set(e,a),xt(3e4);}function Mt(e){if(!Ct(kt(e)))return null;const t=Tt()[e];return (null==t?void 0:t.ts)&&(Lt(e)||Number(t.ttlMs)>0||At())?Ht(e,t)?null:(Dt(e,t),t.data):null}function Et(e,t,a){if(!Ct(kt(e)))return;const i=Number(null==a?void 0:a.ttlMs),n=Number.isFinite(i)&&i>0;if(!Lt(e)&&!n&&!At())return;const r=Date.now(),o={ts:r,at:r,data:t};n?o.ttlMs=i:e===V&&(o.ttlMs=Y),Tt()[e]=o,yt(e),xt();}function Gt(e){return null==e||"object"!=typeof e?e:Array.isArray(e)?Object.assign(e.slice(),{_cache:"hit"}):{...e,_cache:"hit"}}function $t(e){return null==e||"object"!=typeof e?e:Array.isArray(e)?Object.assign(e.slice(),{_cache:"miss"}):{...e,_cache:"miss"}}function _t(e){const t=null==e?void 0:e._cache;return "hit"===t||"miss"===t||"mixed"===t||"na"===t?t:null}function Rt(...e){const t=e.map(e=>"string"==typeof e?e:_t(e)).filter(e=>e&&"na"!==e);if(!t.length)return "na";const a=t.some(e=>"hit"===e||"mixed"===e),i=t.some(e=>"miss"===e||"mixed"===e);return a&&i||t.includes("mixed")?"mixed":a?"hit":"miss"}function It(e){if(!e||"object"!=typeof e||Array.isArray(e))return e;const{_debug:t,_cache:a,...i}=e;return i}function Ft(){const e=Tt()[J];return (null==e?void 0:e.ts)&&e.data&&Array.isArray(e.data.appIds)&&Array.isArray(e.data.wishlistAppIds)?Ht(J,e)?null:(Dt(J,e),e.data):null}function Nt(){try{const e=t(m,null);return e&&"object"==typeof e?e:{}}catch(e){return {}}}function Ot(e){try{i(m,e&&"object"==typeof e?e:{});}catch(t){}}function zt(e){const t=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!t)return null;const a=Number(Nt()[t]);return Number.isFinite(a)&&a>0?a:null}function Ut(e){const t=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!t)return false;const a=Nt();return Object.prototype.hasOwnProperty.call(a,t)&&0===Number(a[t])}function qt(e,t){const a=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!a)return;const i=Number(t),n=Nt();Number.isFinite(i)&&i>0?n[a]=i:delete n[a],Ot(n),rt.clear();}function jt(e,t){if(Ht(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 Wt(e,t){const a=String(e),i=vt?vt.encode(a).length:a.length,n=t&&"object"==typeof t,r=n?St.get(t):void 0;if(null!=r)return i+r;try{const e=(JSON.stringify(t)||"").length;return n&&St.set(t,e),i+e}catch(o){return 0}}function Kt(){const e=Tt();let t=0;for(const a of Object.keys(e))Ht(a,e[a])&&(delete e[a],wt(a),t+=1);return t}function Jt(){const e=Tt();let t=0;const a=[];for(const n of Object.keys(e)){const i=e[n],r=Wt(n,i);t+=r,dt.has(n)||a.push({key:n,bytes:r,at:Number((null==i?void 0:i.at)||(null==i?void 0:i.ts))||0});}if(t<=A)return 0;a.sort((e,t)=>e.at-t.at);let i=0;for(const n of a){if(t<=A)break;delete e[n.key],wt(n.key),t-=n.bytes,i+=1;}return i}function Vt(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 Yt(){const e=Tt(),t=Object.fromEntries(pt.map(e=>[e.id,{bytes:0,count:0,partialCount:0}]));let a=0,i=0,n=0,r=0;for(const l of Object.keys(e)){const o=e[l],s=Wt(l,o),c=kt(l),u=t[c]||t.game;u.bytes+=s,u.count+=1,jt(l,o)?(i+=s,r+=1,u.partialCount+=1):(a+=s,n+=1);}const o=a+i,s=A;return {fullBytes:a,partialBytes:i,freeBytes:Math.max(0,s-o),usedBytes:o,limitBytes:s,fullCount:n,partialCount:r,totalCount:n+r,categories:pt.map(e=>{const a=t[e.id]||{bytes:0,count:0,partialCount:0};return {id:e.id,labelKey:e.labelKey,swatch:e.swatch,settingKey:e.settingKey,bytes:a.bytes,count:a.count,partialCount:a.partialCount,enabled:Ct(e.id)}})}}function Zt(){const e=Tt();let t=0;for(const a of Object.keys(e))Ct(kt(a))||(delete e[a],wt(a),t+=1);return t&&xt(),t}function Xt(e,t){return t?Math.max(0,Math.min(100,e/t*100)):0}function Qt(e){const t=e||Yt();return Math.round(Xt(t.usedBytes,t.limitBytes))}function ea(e){const t=Math.max(0,Math.min(100,Number(e)||0));return t>=90?"high":t>=70?"mid":"low"}function ta(e){const t=Qt(e||Yt()),a=ea(t),i=le(tt.cacheBarPct,{pct:t});return `${ct(i)}`}function aa(e){const t=e||Yt(),a=Math.max(t.usedBytes,t.limitBytes,1),i=Qt(t),n=ea(i),r=le(tt.cacheBarPct,{pct:i}),o=Xt(t.freeBytes,a),s=t.categories.filter(e=>e.bytes>0),l=s.map(e=>`${tt[e.labelKey]||e.id} ${Vt(e.bytes)}`).concat([`${tt.cacheBarFree} ${Vt(t.freeBytes)}`]),c=le(tt.cacheBarAriaCats,{pct:i,detail:l.join(", ")}),u=s.map(e=>{const t=Xt(e.bytes,a);return t<=0?"":``}).join(""),d=t.categories.map(e=>{const t=tt[e.labelKey]||e.id,a=e.enabled?"":" is-off",i=Vt(e.bytes),n=le(tt.cacheBarCatCount,{count:e.count}),r=e.enabled?"":`${ct(tt.cacheCatOff)}`;return `\n
  • \n \n ${ct(t)}${r}\n \n ${ct(n)}\n ${ct(i)}\n \n
  • `}).join(""),p=`\n
  • \n \n ${ct(tt.cacheBarFree)}\n \n ${ct(Vt(t.freeBytes))}\n \n
  • `;return `\n
    \n
    \n
    \n ${ct(r)}\n ${ct(tt.cacheBarFilled)}\n
    \n
    \n ${ct(le(tt.cacheBarUsed,{used:Vt(t.usedBytes),limit:Vt(t.limitBytes)}))}\n ${ct(le(tt.cacheBarEntries,{count:t.totalCount}))}\n
    \n
    \n \n
      \n ${d}\n ${p}\n
    \n

    ${ct(tt.cacheBarHint)}

    \n
    \n `}function ia(e){var t;const a=Yt(),i=null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"[data-blp-cache-meter]");if(i){const e=document.createElement("div");e.innerHTML=aa(a).trim();const t=e.firstElementChild;t&&i.replaceWith(t);}!function(e,t){var a;const i=null==(a=null==e?void 0:e.querySelector)?void 0:a.call(e,"[data-blp-cache-tab-badge]");if(!i)return;const n=document.createElement("div");n.innerHTML=ta(t).trim();const r=n.firstElementChild;r&&i.replaceWith(r);}(e,a);}function na(){const e=Yt().totalCount;clearTimeout(it),lt(0),gt=0,ht.clear(),bt.clear(),ft.clear(),st({});try{i(d,{});}catch(t){}return e}const ra=["--blp-accent","--blp-accent-rgb","--blp-accent-ink"];function oa(e){return de(e,o)}function sa(e=Qe.accentColor){const t=document.documentElement,a=oa(e);if(a!==o)t.style.setProperty("--blp-accent",a),t.style.setProperty("--blp-accent-rgb",pe(a).join(", ")),t.style.setProperty("--blp-accent-ink",function(e,t="#0b1210",a="#ffffff"){const i=ge(e),n=he(i,ge(a));return n>=3?a:he(i,ge(t))>=n?t:a}(a));else for(const i of ra)t.style.removeProperty(i);}function la(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(i){if(e.allow404&&404===i.status)t(null);else if(i.status>=200&&i.status<300){const a=e.responseType||"json";if("text"===a)t(null!=i.responseText&&""!==i.responseText?i.responseText:i.response);else if("json"===a){if(null!=i.response&&"object"==typeof i.response)return void t(i.response);const e=i.responseText;if("string"==typeof e&&e.trim())try{return void t(JSON.parse(e))}catch(n){}t(i.response);}else t(i.response);}else a(new Error(`HTTP ${i.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 ca=["RUB","USD","EUR","KZT","UAH","GBP","TRY","CNY","PLN","BRL","JPY","KRW"],ua=["https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies","https://latest.currency-api.pages.dev/v1/currencies"],da={KZT:"₸",RUB:"₽",USD:"$",EUR:"€",UAH:"₴",GBP:"£",TRY:"₺",CNY:"¥",PLN:"zł",BRL:"R$",JPY:"¥",KRW:"₩"};function pa(e){return String(e||"").trim().toUpperCase()}async function ma(e,t,a){const i=pa(t),n=pa(a);if(!i||!n||i===n)return null;if(!Number.isFinite(Number(e)))return null;const r=await async function(e,t){const a=pa(e),i=pa(t);if(!a||!i)return null;if(a===i)return 1;const n=function(e,t){return `fx:${pa(e)}:${pa(t)}`}(a,i),r=Mt(n);if(r&&Number.isFinite(Number(r.rate))&&Number(r.rate)>0)return Number(r.rate);if(nt.has(n))return nt.get(n);const o=(async()=>{var e;const t=a.toLowerCase(),r=i.toLowerCase();let o=null;for(const l of ua)try{const s=`${l}/${t}.min.json`,c=await la({url:s,responseType:"json",timeout:15e3,anonymous:!0}),u=c&&(c[t]||c[a]||c),d=u&&(null!=(e=u[r])?e:u[i]);if(Number.isFinite(Number(d))&&Number(d)>0){const e=Number(d);return Et(n,{rate:e,date:(null==c?void 0:c.date)||null,from:a,to:i},{ttlMs:432e5}),e}o=new Error(`No rate ${a}->${i}`);}catch(s){o=s;}return o&&console.warn("BLP FX:",o.message||o),null})();nt.set(n,o);try{return await o}finally{nt.delete(n);}}(i,n);return r?function(e,t){const a=pa(t);if(!Number.isFinite(e)||!a)return null;const i=new Set(["JPY","KRW","VND","CLP"]),n=i.has(a)?0:2;let r;try{r=new Intl.NumberFormat(void 0,{maximumFractionDigits:n,minimumFractionDigits:0}).format(i.has(a)?Math.round(e):e);}catch(s){r=i.has(a)?String(Math.round(e)):e.toFixed(2);}const o=da[a]||a;return "$"===o||"€"===o||"£"===o||"¥"===o||"₩"===o?`${o}${r}`:`${r} ${o}`}(Number(e)/100*r,n):null}async function ga(e,t){if(!e)return null;const a=await ma(e.final,e.currency,t);if(!a)return null;let i=null;return Number(e.discount_percent)>0&&Number.isFinite(Number(e.initial))&&Number(e.initial)>Number(e.final)&&(i=await ma(e.initial,e.currency,t)),{now:a,was:i}}const ha=Object.assign({"../i18n/site/en.json":{Home:"Home",Games:"Games",Journal:"Journal",Reviews:"Reviews",Lists:"Lists",Community:"Community",Search:"Search","Search games...":"Search games...","Search...":"Search...","Log In":"Log In",Login:"Login","Sign Up":"Sign Up",Register:"Register","Sign Out":"Sign Out","Log Out":"Log Out",Profile:"Profile",Settings:"Settings",Notifications:"Notifications","No recent notifications":"No recent notifications","Mark all as read":"Mark all as read","Log a Game":"Log a Game","Quick Log":"Quick Log",Library:"Library",Activity:"Activity",Friends:"Friends",Followers:"Followers",Following:"Following",Follow:"Follow",Unfollow:"Unfollow","Follows you":"Follows you",Likes:"Likes",Like:"Like",Liked:"Liked",Bio:"Bio",About:"About",Contact:"Contact","Contact Us":"Contact Us",Backers:"Backers",Backer:"Backer",BACKER:"BACKER",Roadmap:"Roadmap",Changelog:"Changelog",Terms:"Terms","Terms of Service":"Terms of Service",Privacy:"Privacy","Privacy Policy":"Privacy Policy","Community Guidelines":"Community Guidelines",FAQ:"FAQ","Recent News":"Recent News","Game Data":"Game Data","Backer Perks":"Backer Perks",Development:"Development",Legal:"Legal",Socials:"Socials","Powered by":"Powered by","Submit feedback on the home page":"Submit feedback on the home page","Submit feedback":"Submit feedback","Submit Feedback":"Submit Feedback",", try shuffle sort when you can't decide what to play!":", try shuffle sort when you can't decide what to play!","try shuffle sort when you can't decide what to play!":"try shuffle sort when you can't decide what to play!",Showing:"Showing","games with":"games with","Categories: Games":"Categories: Games",Categories:"Categories",Display:"Display","When Added":"When Added","When Played":"When Played","Infinite scroll":"Infinite scroll","Fade played":"Fade played","Custom covers":"Custom covers","Any cover":"Any cover","Your covers":"Your covers","No covers":"No covers","Games Played":"Games Played","Played in 2026":"Played in 2026","Recently Played":"Recently Played","Recently Reviewed":"Recently Reviewed","Earned Badges":"Earned Badges",Earned:"Earned",Locked:"Locked","Keep using the site to unlock!":"Keep using the site to unlock!",Roadtrip:"Roadtrip","Voted for at least 3 features on the roadmap":"Voted for at least 3 features on the roadmap","2 Years of Service":"2 Years of Service","Being part of the Backloggd community for 2 years":"Being part of the Backloggd community for 2 years",Pinged:"Pinged","Mentioned by another user":"Mentioned by another user","GOTY '24":"GOTY '24","Participated in the 2024 Game of the Year Event":"Participated in the 2024 Game of the Year Event","Replay '07":"Replay '07","Replay '08":"Replay '08","Participated in the 2007 Replay Event":"Participated in the 2007 Replay Event",Loved:"Loved",Adored:"Adored",Treasured:"Treasured",N00b:"N00b",Gamer:"Gamer","Elite Gamer":"Elite Gamer","Epic Gamer":"Epic Gamer",Noticed:"Noticed","Trend Setter":"Trend Setter",Famous:"Famous","Well Written":"Well Written","On Schedule":"On Schedule","Full-Time":"Full-Time","Clearin your Calendar":"Clearin your Calendar","Busy Day":"Busy Day",Listed:"Listed",Swamped:"Swamped",Donor:"Donor","Best Friends":"Best Friends",Organized:"Organized","Gone Gold":"Gone Gold","Top Shelf":"Top Shelf","Earned on":"Earned on","Joined on":"Joined on",Show:"Show","All sessions":"All sessions",Year:"Year","Start and finish sessions":"Start and finish sessions","First-time finish sessions":"First-time finish sessions","Most recent session":"Most recent session",Finished:"Finished",Started:"Started",Prev:"Prev",You:"You",Inbound:"Inbound",Types:"Types",Badges:"Badges","GuessThe.Game":"GuessThe.Game",Follows:"Follows","UNSELECT ALL":"UNSELECT ALL","Unselect all":"Unselect all","No recent activity":"No recent activity","Want to see more?":"Want to see more?","Upgrade to 60 days of activity by becoming a Backer":"Upgrade to 60 days of activity by becoming a Backer","Create Folder":"Create Folder","Apply Filters":"Apply Filters","Recently Updated":"Recently Updated","Creation Date":"Creation Date","List Name":"List Name",Folders:"Folders","All Lists":"All Lists",Recent:"Recent",Submit:"Submit",Cancel:"Cancel",Save:"Save","Save Changes":"Save Changes",Close:"Close",Edit:"Edit",Delete:"Delete",Remove:"Remove",Add:"Add",Create:"Create",Update:"Update",Confirm:"Confirm",Continue:"Continue",Done:"Done",Back:"Back",Next:"Next",Previous:"Previous",Apply:"Apply",Reset:"Reset",Clear:"Clear","Clear filters":"Clear filters","Clear all":"Clear all","Show more":"Show more","Show less":"Show less","See More":"See More","See more":"See more","See Past Articles":"See Past Articles","View All":"View All","View All Reviews":"View All Reviews","Load more":"Load more",expand:"expand",collapse:"collapse",Expand:"Expand",Collapse:"Collapse",Share:"Share","Copy link":"Copy link",Report:"Report",Block:"Block",Unblock:"Unblock",Blocked:"Blocked",Comments:"Comments",Comment:"Comment",Reply:"Reply","Write a comment...":"Write a comment...","No comments yet":"No comments yet","Discover, collect, analyze your games":"Discover, collect, analyze your games","Create a free account":"Create a free account","or log in if you have an account":"or log in if you have an account",or:"or","log in":"log in","Create an account":"Create an account","SHOW MORE":"SHOW MORE","SHOW LESS":"SHOW LESS","Show More":"Show More","Show Less":"Show Less","if you have an account":"if you have an account",by:"by","Create an account or log in to access tracking features":"Create an account or log in to access tracking features","Create an account or log in":"Create an account or log in","to access tracking features":"to access tracking features","all versions":"all versions",EXPAND:"EXPAND",COLLAPSE:"COLLAPSE","What is Backloggd?":"What is Backloggd?","Backloggd is a place to virtually track your game collection. Keep your backlog updated, rate the games you've played and add those upcoming to your wishlist. Share your gaming journey with your friends by following each other to keep up-to-date on your latest play sessions.":"Backloggd is a place to virtually track your game collection. Keep your backlog updated, rate the games you've played and add those upcoming to your wishlist. Share your gaming journey with your friends by following each other to keep up-to-date on your latest play sessions.","Track your personal game collection":"Track your personal game collection","Log any and every game you've played, are currently playing, and want to play. Be as detailed as you want with features such as time tracking, daily journaling, platform ownership and more.":"Log any and every game you've played, are currently playing, and want to play. Be as detailed as you want with features such as time tracking, daily journaling, platform ownership and more.","Express your thoughts with reviews":"Express your thoughts with reviews","See what everyone is thinking with reviews. Every game has an average rating comprised of everyone's rating to give you a quality score from a glance. Then once you're ready, add your review to define what the game means to you.":"See what everyone is thinking with reviews. Every game has an average rating comprised of everyone's rating to give you a quality score from a glance. Then once you're ready, add your review to define what the game means to you.","Keep up with the latest from friends":"Keep up with the latest from friends","Follow others for an all-in-one activity feed that will keep you updated with their latest gaming progress. Games, reviews, and lists from friends appear directly on your home page so you don't miss a thing.":"Follow others for an all-in-one activity feed that will keep you updated with their latest gaming progress. Games, reviews, and lists from friends appear directly on your home page so you don't miss a thing.","Create and organize games with lists":"Create and organize games with lists","Lists allow you to create a custom collection of games with options such as tracking your progress or enabling rankings. You can then decide to share your list with the community or keep it private to yourself.":"Lists allow you to create a custom collection of games with options such as tracking your progress or enabling rankings. You can then decide to share your list with the community or keep it private to yourself.","Recently trending":"Recently trending","Popular reviews":"Popular reviews","Latest news":"Latest news","Popular lists":"Popular lists","Coming soon":"Coming soon","Recently anticipated":"Recently anticipated","Sleeper hits":"Sleeper hits","Welcome back":"Welcome back",", your collection awaits...":", your collection awaits...",Played:"Played",Ratings:"Ratings","Remember me":"Remember me","New User? Sign up here":"New User? Sign up here","Forgot your password? Resend":"Forgot your password? Resend","Forgot your password?":"Forgot your password?","Didn't receive confirmation instructions? Resend":"Didn't receive confirmation instructions? Resend",Email:"Email","Email / Username":"Email / Username",Username:"Username",Password:"Password","Password confirmation":"Password confirmation","Current password":"Current password","New password":"New password","Sign in":"Sign in","Create account":"Create account",Resend:"Resend",Warning:"Warning","Verify your password to continue:":"Verify your password to continue:","Incorrect -- try again":"Incorrect -- try again","UH-OH!":"UH-OH!","(Error 404) This page does not exist.":"(Error 404) This page does not exist.","Return back to":"Return back to","404 Page Not Found":"404 Page Not Found","Nothing here!":"Nothing here!","Nothing here yet":"Nothing here yet","No results":"No results","No results found":"No results found","No games found":"No games found","Try a different search":"Try a different search",Released:"Released","Release Date":"Release Date","Release date":"Release date",Genres:"Genres",Genre:"Genre",Platforms:"Platforms",Platform:"Platform",Awards:"Awards","More info on":"More info on","More on":"More on","More info on IGDB":"More info on IGDB","Game Details":"Game Details","Backloggd Stats":"Backloggd Stats","Time Played":"Time Played","Total Playtime":"Total Playtime","Related Games":"Related Games",Updates:"Updates",Series:"Series",Editions:"Editions",Edition:"Edition",DLC:"DLC",Mods:"Mods",Episodes:"Episodes","All Editions":"All Editions","All versions":"All versions","Stats for":"Stats for","Stats for all versions":"Stats for all versions",Plays:"Plays",Playing:"Playing",Backlog:"Backlog",Backlogs:"Backlogs",Wishlist:"Wishlist",Wishlists:"Wishlists","Avg Rating":"Avg Rating","Avg. Rating":"Avg. Rating",average:"average","to finish":"to finish","to master":"to master",Hidden:"Hidden",Avg:"Avg",AVG:"AVG",Trending:"Trending",Latest:"Latest","Top Liked":"Top Liked","Top Rated":"Top Rated",Popularity:"Popularity",Popular:"Popular",Reviewed:"Reviewed",reviewed:"reviewed","Open review":"Open review","Write a review":"Write a review","Edit review":"Edit review",Review:"Review","Your review":"Your review","Contains spoilers":"Contains spoilers",Spoilers:"Spoilers","Show spoilers":"Show spoilers","Hide spoilers":"Hide spoilers",Formatting:"Formatting","What'd you think...":"What'd you think...","What'd you think…":"What'd you think…","What’d you think...":"What’d you think...","What’d you think…":"What’d you think…","Game of the Year":"Game of the Year",Gameplay:"Gameplay",Narrative:"Narrative","Art Direction":"Art Direction",Soundtrack:"Soundtrack",Music:"Music",Multiplayer:"Multiplayer","Indie Debut":"Indie Debut",ADULT:"ADULT",Adult:"Adult",RESTRICTED:"RESTRICTED",Restricted:"Restricted","Main Game":"Main Game",Expansion:"Expansion",Bundle:"Bundle",Mod:"Mod",Episode:"Episode",Season:"Season",Remake:"Remake",Remaster:"Remaster",Remastered:"Remastered",Port:"Port",Pack:"Pack","Standalone Expansion":"Standalone Expansion",Fork:"Fork",Completed:"Completed",Mastered:"Mastered",Retired:"Retired",Shelved:"Shelved",Abandoned:"Abandoned",Replay:"Replay","Play Status":"Play Status",Status:"Status","Game Status":"Game Status","Played Status":"Played Status",None:"None",Unplayed:"Unplayed","Log Title":"Log Title","Create Log":"Create Log","Edit Log":"Edit Log","Delete this log":"Delete this log","Use Quick Editor":"Use Quick Editor","Use Full Editor":"Use Full Editor","Specify an edition..":"Specify an edition..","Select release platform..":"Select release platform..","Select release platform...":"Select release platform...","Played platform":"Played platform","Mark your log dates":"Mark your log dates","Bundle played":"Bundle played","Add played & finished times":"Add played & finished times",Watched:"Watched","owned, subscription,...":"owned, subscription,...","owned, subscription, ...":"owned, subscription, ...",Log:"Log","Manage lists":"Manage lists","Manage your lists":"Manage your lists","Destroy all data":"Destroy all data","You currently have no lists. Go here to create one.":"You currently have no lists. Go here to create one.","You currently have no lists.":"You currently have no lists.","Go here":"Go here","to create one.":"to create one.","Delete your data for this log? This includes the associated review and journal entries for this log.":"Delete your data for this log? This includes the associated review and journal entries for this log.",Return:"Return","Your logs have unsaved changes.":"Your logs have unsaved changes.",Discard:"Discard","Return to edit":"Return to edit",Details:"Details",CURRENT:"CURRENT",Current:"Current",h:"h",m:"m","Create a new log":"Create a new log","Your ownership of the game when you played.":"Your ownership of the game when you played.","The platform you physically played on. Useful for emulation and handhelds.":"The platform you physically played on. Useful for emulation and handhelds.","The release platform version played":"The release platform version played","The release platform version you played.":"The release platform version you played.","The release platform version you played":"The release platform version you played","Total time playing this log. Use sync sessions to auto-add all journal playtime instead.":"Total time playing this log. Use sync sessions to auto-add all journal playtime instead.","Total time playing this log.":"Total time playing this log.","You currently have no lists. Go here":"You currently have no lists. Go here","You currently have no lists. Go":"You currently have no lists. Go",here:"here",Here:"Here",Bundles:"Bundles","Ownership of the game when it was played":"Ownership of the game when it was played","Ownership of the game when it was played.":"Ownership of the game when it was played.","The platform physically played on, useful for emulation and handhelds":"The platform physically played on, useful for emulation and handhelds","The platform physically played on, useful for emulation and handhelds.":"The platform physically played on, useful for emulation and handhelds.","Vote for the features you'd like to see the most! Choose wisely as you have a limited number of hearts to give.":"Vote for the features you'd like to see the most! Choose wisely as you have a limited number of hearts to give.",Left:"Left","Mobile App - Android":"Mobile App - Android","Backloggd gone mobile! This would be a release of an Android version of Backloggd.":"Backloggd gone mobile! This would be a release of an Android version of Backloggd.","Importing - Steam":"Importing - Steam","Be able to import your game data from Steam.":"Be able to import your game data from Steam.","Game Recommendations":"Game Recommendations","Get a curated list of recommended games based on what you like!":"Get a curated list of recommended games based on what you like!","Mobile App - iOS":"Mobile App - iOS","Backloggd gone mobile! This would be a release of an iOS version of Backloggd.":"Backloggd gone mobile! This would be a release of an iOS version of Backloggd.","More Game Info":"More Game Info","Show DLC status, all companies, alt names, and other extensive game info":"Show DLC status, all companies, alt names, and other extensive game info",Exporting:"Exporting","Take your Backloggd data to-go with a CSV export tool.":"Take your Backloggd data to-go with a CSV export tool.","More Advanced Filters":"More Advanced Filters","Such as decades, exclusivity, select multiple of the same filter...":"Such as decades, exclusivity, select multiple of the same filter...","Game Categorization":"Game Categorization","Be able to tell which games are DLC, demos, cancelled, beta, etc":"Be able to tell which games are DLC, demos, cancelled, beta, etc","Social Page":"Social Page","A hub for things social, including reviews and lists from other users.":"A hub for things social, including reviews and lists from other users.","Importing - CSV":"Importing - CSV","Be able to import your game data from your own spreadsheets.":"Be able to import your game data from your own spreadsheets.","Search Improvements":"Search Improvements","Search filters, better accuracy such as alt names, and adding companies to search":"Search filters, better accuracy such as alt names, and adding companies to search","Mobile Improvements":"Mobile Improvements","Better support for the mobile browser version of the site.":"Better support for the mobile browser version of the site.","Auto Log Organizing":"Auto Log Organizing","Auto select / deselect log statuses based on recent activity. Ex: Remove from wishlist if start playing, remove from backlog if played, etc.. Will have config settings.":"Auto select / deselect log statuses based on recent activity. Ex: Remove from wishlist if start playing, remove from backlog if played, etc.. Will have config settings.","Spoiler Markdown":"Spoiler Markdown","Apply spoiler tags to blocks of text in reviews":"Apply spoiler tags to blocks of text in reviews","Better Genres":"Better Genres","More genre options and fleshed out features around them":"More genre options and fleshed out features around them","Showdown Events":"Showdown Events","Semi-regular events that encourage users to put together their best list given a theme.":"Semi-regular events that encourage users to put together their best list given a theme.","Review Language Preference":"Review Language Preference","Be able to tag and set a language preference for reviews":"Be able to tag and set a language preference for reviews","Feature Suggestion Page":"Feature Suggestion Page","A version of this roadmap but that allows custom suggestions and voting":"A version of this roadmap but that allows custom suggestions and voting","Alternate Journal Views":"Alternate Journal Views","View your journal in a large calendar view similar to the editor or a more condensed list view. The possibilities are endless!":"View your journal in a large calendar view similar to the editor or a more condensed list view. The possibilities are endless!","List Discovery Page":"List Discovery Page","A dedicated page to browse lists by other users, complete with filters and sorting":"A dedicated page to browse lists by other users, complete with filters and sorting","Better Release Dates":"Better Release Dates","Games having a single date is too easy, this would show multiple release dates for the different stages / regions. Also better formatting for vague releases (ex: Q4 2023)":"Games having a single date is too easy, this would show multiple release dates for the different stages / regions. Also better formatting for vague releases (ex: Q4 2023)","Friend Recommendations":"Friend Recommendations","Send game recommendations to any mutual friend":"Send game recommendations to any mutual friend","Collection View Modes":"Collection View Modes","Be able to switch between grid and list viewing modes for your game / backlog collection.":"Be able to switch between grid and list viewing modes for your game / backlog collection.","Company Improvements":"Company Improvements","Various improvements to companies, including company search, more details on company pages, etc...":"Various improvements to companies, including company search, more details on company pages, etc...","Review Drafts":"Review Drafts","Save and edit a draft of your review before posting it":"Save and edit a draft of your review before posting it","Hide Games":"Hide Games","Hide unwanted games from appearing in common places":"Hide unwanted games from appearing in common places","List Tags":"List Tags","Add a limited number of keywords to your lists for searchability and sorting":"Add a limited number of keywords to your lists for searchability and sorting","More Sorting / Filtering by Journal":"More Sorting / Filtering by Journal","More options around dates pulled from your journal, such as sort by # days played, filter by year played, etc..":"More options around dates pulled from your journal, such as sort by # days played, filter by year played, etc..","Library profile section":"Library profile section","A space on your profile to browse all games added to your library entries":"A space on your profile to browse all games added to your library entries","Profile game search":"Profile game search","Search for games across any profile":"Search for games across any profile","Light mode":"Light mode","View the site in the opposite of dark":"View the site in the opposite of dark","Time Played Expanded":"Time Played Expanded","Usecases for aggerating the time played field, show things like average time per game":"Usecases for aggerating the time played field, show things like average time per game","Personalized Game Covers":"Personalized Game Covers","IGDB now supports localized covers! Be able to set your game cover preference across the site":"IGDB now supports localized covers! Be able to set your game cover preference across the site","Game Editions Combining":"Game Editions Combining","This would greatly reduce duplicates by combining all versions of a game into it's base game. Although you would still be able to mark that special version when logging.":"This would greatly reduce duplicates by combining all versions of a game into it's base game. Although you would still be able to mark that special version when logging.",Franchises:"Franchises","See what games come from what series!":"See what games come from what series!","Put all that data to use by displaying stats about your game collection.":"Put all that data to use by displaying stats about your game collection.","More List Improvements":"More List Improvements","Likes, list search, games appearing in lists, auto-sorting, folders etc..":"Likes, list search, games appearing in lists, auto-sorting, folders etc..","Personalized Coming Soon":"Personalized Coming Soon","Have an extension to the home page coming soon section by showing all the games you have on your wishlist, displaying in terms of how far away they are.":"Have an extension to the home page coming soon section by showing all the games you have on your wishlist, displaying in terms of how far away they are.","Changeable Usernames":"Changeable Usernames","Be able to change your username!":"Be able to change your username!","Comments Section":"Comments Section","Be able to leave comments on reviews, profiles, and other commentary worthy areas!":"Be able to leave comments on reviews, profiles, and other commentary worthy areas!","Activity Feed":"Activity Feed","Show a stream of activities from friends to let you know what's up!":"Show a stream of activities from friends to let you know what's up!","Journal 2.0":"Journal 2.0","Have advanced fields for logging a playthrough such as time played, physically / digitally owned, start/end play dates, play types, etc.":"Have advanced fields for logging a playthrough such as time played, physically / digitally owned, start/end play dates, play types, etc.","Have the ability to create your own personal lists with custom ordering.":"Have the ability to create your own personal lists with custom ordering.","Text Formatting":"Text Formatting","Allow for limited formatting such as bold, italics, and links in your bio and reviews.":"Allow for limited formatting such as bold, italics, and links in your bio and reviews.","Game Genres":"Game Genres","We all want to know the type of games we play, genres are essential for just that.":"We all want to know the type of games we play, genres are essential for just that.","Game Plays Page":"Game Plays Page","See what everyone gave for a rating for any game!":"See what everyone gave for a rating for any game!","Star Customization":"Star Customization","Implement a user profile feature that allows you to choose between a 10-star and 5-star system.":"Implement a user profile feature that allows you to choose between a 10-star and 5-star system.","Have a suggestion? Submit your idea via the contact form":"Have a suggestion? Submit your idea via the contact form","Have a suggestion? Submit your idea via the":"Have a suggestion? Submit your idea via the","contact form":"contact form","You currently have no lists. Go here to create one":"You currently have no lists. Go here to create one","owned, subscription, emulation, ...":"owned, subscription, emulation, ...","owned, subscription, emulation...":"owned, subscription, emulation...","Specify an edition...":"Specify an edition...","Played on":"Played on",Ownership:"Ownership",Owned:"Owned",Subscription:"Subscription",Borrowed:"Borrowed",Rented:"Rented",Shared:"Shared",Other:"Other","Started on":"Started on","Finished on":"Finished on",Start:"Start",Finish:"Finish","Time Tracker":"Time Tracker","Manual input":"Manual input","Enter total playtime manually":"Enter total playtime manually","Sum log times":"Sum log times","Total playtime is the sum of all log playtimes":"Total playtime is the sum of all log playtimes","Sum journal times":"Sum journal times","Total playtime is the sum of all journal session playtimes":"Total playtime is the sum of all journal session playtimes","Time to finish":"Time to finish","Time to master":"Time to master","Time to Beat":"Time to Beat","Avg. Play Time":"Avg. Play Time","Avg. Finish Time":"Avg. Finish Time",Session:"Session",Sessions:"Sessions","Add session":"Add session","Sync sessions":"Sync sessions",Note:"Note",Notes:"Notes","Add a note":"Add a note",Hours:"Hours",Minutes:"Minutes",hrs:"hrs",hr:"hr",hours:"hours",hour:"hour",minutes:"minutes",minute:"minute",mins:"mins","Game Title":"Game Title",Name:"Name","Date Added":"Date Added","Last played":"Last played","Last Played":"Last Played","User rating":"User rating","Your rating":"Your rating",Rating:"Rating",Filter:"Filter",Filters:"Filters",Sort:"Sort","Sort by":"Sort by",Order:"Order",Ascending:"Ascending",Descending:"Descending",Random:"Random",Grid:"Grid",List:"List",Category:"Category","Release year":"Release year","Release Year":"Release Year",Playtime:"Playtime","Create list":"Create list","Create List":"Create List","New list":"New list","Edit list":"Edit list","Delete list":"Delete list","Add game":"Add game","Add to list":"Add to list","Remove from list":"Remove from list","List title":"List title",Description:"Description",Ranked:"Ranked",Unranked:"Unranked",Public:"Public",Private:"Private",Unlisted:"Unlisted",Progress:"Progress","Track progress":"Track progress","Comments enabled":"Comments enabled","No time listed":"No time listed",Updated:"Updated",Published:"Published",Draft:"Draft",Pinned:"Pinned",Pin:"Pin",Unpin:"Unpin","Personal Ratings":"Personal Ratings","Profile Stats":"Profile Stats","Game Ratings":"Game Ratings","Total Games Played":"Total Games Played","Games Backloggd":"Games Backloggd","Edit profile":"Edit profile","Edit Profile":"Edit Profile","Favorite games":"Favorite games",Favorites:"Favorites",Avatar:"Avatar",Banner:"Banner","Display name":"Display name",Location:"Location",Website:"Website",Timezone:"Timezone",Account:"Account",Preferences:"Preferences","Privacy settings":"Privacy settings","Adult content":"Adult content","Show adult games":"Show adult games","Hide adult games":"Hide adult games","Change password":"Change password","Change email":"Change email","Delete account":"Delete account","Blocked users":"Blocked users","Export data":"Export data",Import:"Import","Connected accounts":"Connected accounts",Theme:"Theme",Dark:"Dark",Light:"Light",System:"System","Jump to...":"Jump to...",Today:"Today",Yesterday:"Yesterday",Tomorrow:"Tomorrow",January:"January",February:"February",March:"March",April:"April",May:"May",June:"June",July:"July",August:"August",September:"September",October:"October",November:"November",December:"December",Jan:"Jan",Feb:"Feb",Mar:"Mar",Apr:"Apr",Jun:"Jun",Jul:"Jul",Aug:"Aug",Sep:"Sep",Oct:"Oct",Nov:"Nov",Dec:"Dec",Monday:"Monday",Tuesday:"Tuesday",Wednesday:"Wednesday",Thursday:"Thursday",Friday:"Friday",Saturday:"Saturday",Sunday:"Sunday",Mon:"Mon",Tue:"Tue",Wed:"Wed",Thu:"Thu",Fri:"Fri",Sat:"Sat",Sun:"Sun",Adventure:"Adventure","Role-playing (RPG)":"Role-playing (RPG)",RPG:"RPG",Shooter:"Shooter",Puzzle:"Puzzle",Platformer:"Platformer",Racing:"Racing",Sport:"Sport",Sports:"Sports",Fighting:"Fighting",Simulation:"Simulation",Indie:"Indie","Visual Novel":"Visual Novel","Turn Based":"Turn Based","Turn-based strategy (TBS)":"Turn-based strategy (TBS)",Tactical:"Tactical","Tactical RPG":"Tactical RPG","Point-and-click":"Point-and-click","Card & Board Game":"Card & Board Game","Card Game":"Card Game","Board Game":"Board Game",Strategy:"Strategy","Real Time Strategy (RTS)":"Real Time Strategy (RTS)","Hack and slash/Beat 'em up":"Hack and slash/Beat 'em up","Quiz/Trivia":"Quiz/Trivia",Pinball:"Pinball",Arcade:"Arcade",MOBA:"MOBA",MMORPG:"MMORPG","Windows PC":"Windows PC",PC:"PC",Mobile:"Mobile","Web browser":"Web browser",Browser:"Browser",Yes:"Yes",No:"No",On:"On",Off:"Off",Optional:"Optional",Required:"Required",All:"All",Any:"Any",Unknown:"Unknown",TBA:"TBA",TBD:"TBD",Cancelled:"Cancelled","Coming Soon":"Coming Soon","Early Access":"Early Access",Alpha:"Alpha",Beta:"Beta",Unreleased:"Unreleased",Developer:"Developer",Developers:"Developers",Publisher:"Publisher",Publishers:"Publishers",Companies:"Companies",Company:"Company","Involved companies":"Involved companies","Similar games":"Similar games","You might also like":"You might also like","Friends played":"Friends played","Also played":"Also played",Results:"Results",result:"result",results:"results",Page:"Page","per page":"per page",Select:"Select",Selected:"Selected",Deselect:"Deselect","Select all":"Select all","Bulk edit":"Bulk edit",Move:"Move",Duplicate:"Duplicate",Refresh:"Refresh",Help:"Help",Feedback:"Feedback",Language:"Language",English:"English",Russian:"Russian","Just now":"Just now",Online:"Online",Offline:"Offline","Member since":"Member since",Joined:"Joined","Last online":"Last online",Mutual:"Mutual",Suggested:"Suggested",Discover:"Discover",Explore:"Explore",New:"New",Hot:"Hot",Rising:"Rising","Staff picks":"Staff picks","Editor's choice":"Editor's choice",Featured:"Featured",Announcement:"Announcement",Maintenance:"Maintenance","Are you sure?":"Are you sure?","This cannot be undone.":"This cannot be undone.","Something went wrong":"Something went wrong","Please try again":"Please try again",Loading:"Loading","Loading...":"Loading...",Saved:"Saved",Copied:"Copied","Link copied":"Link copied","Change cover":"Change cover","Log history":"Log history","Reviewed on":"Reviewed on","Log or review":"Log or review","or review":"or review","Cracked on release day":"Cracked on release day","Cracked on release":"Cracked on release"},"../i18n/site/ru.json":{Home:"Главная",Games:"Игры",Journal:"Журнал",Reviews:"Рецензии",Lists:"Списки",Community:"Сообщество",Search:"Поиск","Search games...":"Поиск игр…","Search...":"Поиск…","Log In":"Войти",Login:"Войти","Sign Up":"Регистрация",Register:"Регистрация","Sign Out":"Выйти","Log Out":"Выйти",Profile:"Профиль",Settings:"Настройки",Notifications:"Уведомления","No recent notifications":"Нет новых уведомлений","Mark all as read":"Отметить все прочитанными","Log a Game":"Записать игру","Quick Log":"Быстрая запись",Library:"Библиотека",Activity:"Активность",Friends:"Друзья",Followers:"Подписчики",Following:"Подписки",Follow:"Подписаться",Unfollow:"Отписаться","Follows you":"Подписан на вас",Likes:"Лайки",Like:"Лайк",Liked:"Понравилось",Bio:"О себе",About:"О сайте",Contact:"Контакты","Contact Us":"Связаться с нами",Backers:"Спонсоры",Backer:"Спонсор",BACKER:"СПОНСОР",Roadmap:"Планы",Changelog:"Список изменений",Terms:"Условия","Terms of Service":"Условия использования",Privacy:"Конфиденциальность","Privacy Policy":"Политика конфиденциальности","Community Guidelines":"Правила сообщества",FAQ:"Вопросы","Recent News":"Новости","Game Data":"Данные об играх","Backer Perks":"Бонусы спонсоров",Development:"Разработка",Legal:"Правовое",Socials:"Соцсети","Powered by":"Данные","Submit feedback on the home page":"Оставить отзыв о главной","Submit feedback":"Оставить отзыв","Submit Feedback":"Оставить отзыв",", try shuffle sort when you can't decide what to play!":", попробуй случайный порядок, если не можешь выбрать, во что играть!","try shuffle sort when you can't decide what to play!":"попробуй случайный порядок, если не можешь выбрать, во что играть!",Showing:"Показано","games with":"игр с","Categories: Games":"Категории: игры",Categories:"Категории",Display:"Вид","When Added":"По дате добавления","When Played":"По дате игры","Infinite scroll":"Бесконечная прокрутка","Fade played":"Приглушать сыгранное","Custom covers":"Свои обложки","Any cover":"Любая обложка","Your covers":"Твои обложки","No covers":"Без обложек","Games Played":"Сыграно игр","Played in 2026":"Сыграно в 2026","Recently Played":"Недавно сыграно","Recently Reviewed":"Недавние рецензии","Earned Badges":"Полученные значки",Earned:"Получено",Locked:"Закрыто","Keep using the site to unlock!":"Пользуйся сайтом, чтобы открыть!",Roadtrip:"Путешествие","Voted for at least 3 features on the roadmap":"Проголосовал минимум за 3 идеи в планах","2 Years of Service":"2 года на сайте","Being part of the Backloggd community for 2 years":"Два года в сообществе Backloggd",Pinged:"Упоминание","Mentioned by another user":"Тебя упомянул другой пользователь","GOTY '24":"Игра года '24","Participated in the 2024 Game of the Year Event":"Участвовал в событии «Игра года 2024»","Replay '07":"Переигрыш '07","Replay '08":"Переигрыш '08","Participated in the 2007 Replay Event":"Участвовал в событии Replay 2007",Loved:"Обожаемое",Adored:"Обожаемое",Treasured:"Ценное",N00b:"Новичок",Gamer:"Игрок","Elite Gamer":"Опытный игрок","Epic Gamer":"Заядлый игрок",Noticed:"Замеченный","Trend Setter":"Законодатель",Famous:"Известный","Well Written":"Хорошо написано","On Schedule":"По графику","Full-Time":"На полную","Clearin your Calendar":"Чистим календарь","Busy Day":"Занятый день",Listed:"В списках",Swamped:"Завален",Donor:"Донатер","Best Friends":"Лучшие друзья",Organized:"Порядок","Gone Gold":"Ушло в золото","Top Shelf":"Верхняя полка","Earned on":"Получено","Joined on":"На сайте с",Show:"Показать","All sessions":"Все сессии",Year:"Год","Start and finish sessions":"Сессии старта и финиша","First-time finish sessions":"Первые финиши","Most recent session":"Последняя сессия",Finished:"Закончил",Started:"Начал",Prev:"Назад",You:"Вы",Inbound:"Входящие",Types:"Типы",Badges:"Значки","GuessThe.Game":"Угадай игру",Follows:"Подписки","UNSELECT ALL":"СНЯТЬ ВЫБОР","Unselect all":"Снять выбор","No recent activity":"Нет недавней активности","Want to see more?":"Хотите больше?","Upgrade to 60 days of activity by becoming a Backer":"60 дней активности откроются со статусом спонсора","Create Folder":"Создать папку","Apply Filters":"Применить фильтры","Recently Updated":"Недавно обновлённые","Creation Date":"Дата создания","List Name":"Название списка",Folders:"Папки","All Lists":"Все списки",Recent:"Недавние",Submit:"Отправить",Cancel:"Отмена",Save:"Сохранить","Save Changes":"Сохранить изменения",Close:"Закрыть",Edit:"Изменить",Delete:"Удалить",Remove:"Убрать",Add:"Добавить",Create:"Создать",Update:"Обновить",Confirm:"Подтвердить",Continue:"Продолжить",Done:"Готово",Back:"Назад",Next:"Далее",Previous:"Назад",Apply:"Применить",Reset:"Сбросить",Clear:"Очистить","Clear filters":"Сбросить фильтры","Clear all":"Сбросить всё","Show more":"Показать ещё","Show less":"Свернуть","See More":"Ещё","See more":"Ещё","See Past Articles":"Прошлые статьи","View All":"Смотреть все","View All Reviews":"Все рецензии","Load more":"Загрузить ещё",expand:"развернуть",collapse:"свернуть",Expand:"Развернуть",Collapse:"Свернуть",Share:"Поделиться","Copy link":"Копировать ссылку",Report:"Пожаловаться",Block:"Заблокировать",Unblock:"Разблокировать",Blocked:"Заблокированные",Comments:"Комментарии",Comment:"Комментарий",Reply:"Ответить","Write a comment...":"Написать комментарий…","No comments yet":"Комментариев пока нет","Discover, collect, analyze your games":"Открывайте, собирайте и разбирайте свою коллекцию","Create a free account":"Создать бесплатный аккаунт","or log in if you have an account":"или войдите, если аккаунт уже есть",or:"или","log in":"войдите,","Create an account":"Создайте аккаунт","SHOW MORE":"ПОКАЗАТЬ ЕЩЁ","SHOW LESS":"СВЕРНУТЬ","Show More":"Показать ещё","Show Less":"Свернуть","if you have an account":"если аккаунт уже есть",by:"от","Create an account or log in to access tracking features":"Создайте аккаунт или войдите, чтобы пользоваться отслеживанием","Create an account or log in":"Создайте аккаунт или войдите","to access tracking features":"чтобы пользоваться отслеживанием","all versions":"всех версий",EXPAND:"РАЗВЕРНУТЬ",COLLAPSE:"СВЕРНУТЬ","What is Backloggd?":"Что такое Backloggd?","Backloggd is a place to virtually track your game collection. Keep your backlog updated, rate the games you've played and add those upcoming to your wishlist. Share your gaming journey with your friends by following each other to keep up-to-date on your latest play sessions.":"Backloggd — место, где ведут личную коллекцию игр. Обновляйте бэклог, ставьте оценки пройденному и добавляйте ожидаемое в список желаемого. Подписывайтесь на друзей и следите за их сессиями.","Track your personal game collection":"Ведите свою коллекцию","Log any and every game you've played, are currently playing, and want to play. Be as detailed as you want with features such as time tracking, daily journaling, platform ownership and more.":"Записывайте всё, во что играли, играете и хотите сыграть. Можно указать время, дневник сессий, платформы и владение копией.","Express your thoughts with reviews":"Делитесь мнением в рецензиях","See what everyone is thinking with reviews. Every game has an average rating comprised of everyone's rating to give you a quality score from a glance. Then once you're ready, add your review to define what the game means to you.":"Читайте, что думают другие. У каждой игры есть средняя оценка. Когда будете готовы, добавьте свою рецензию.","Keep up with the latest from friends":"Следите за друзьями","Follow others for an all-in-one activity feed that will keep you updated with their latest gaming progress. Games, reviews, and lists from friends appear directly on your home page so you don't miss a thing.":"Подпишитесь на людей и смотрите их прогресс в одной ленте. Игры, рецензии и списки друзей появляются на главной.","Create and organize games with lists":"Собирайте игры в списки","Lists allow you to create a custom collection of games with options such as tracking your progress or enabling rankings. You can then decide to share your list with the community or keep it private to yourself.":"Список — своя подборка игр. Можно вести прогресс и рейтинг, сделать список публичным или оставить только себе.","Recently trending":"Сейчас в тренде","Popular reviews":"Популярные рецензии","Latest news":"Последние новости","Popular lists":"Популярные списки","Coming soon":"Скоро выйдут","Recently anticipated":"Ждут больше всего","Sleeper hits":"Тихие хиты","Welcome back":"С возвращением",", your collection awaits...":", коллекция ждёт…",Played:"Сыграно",Ratings:"Оценки","Remember me":"Запомнить меня","New User? Sign up here":"Нет аккаунта? Зарегистрируйтесь","Forgot your password? Resend":"Забыли пароль? Отправить заново","Forgot your password?":"Забыли пароль?","Didn't receive confirmation instructions? Resend":"Не пришло письмо с подтверждением? Отправить снова",Email:"Эл. почта","Email / Username":"Почта или имя",Username:"Имя пользователя",Password:"Пароль","Password confirmation":"Пароль ещё раз","Current password":"Текущий пароль","New password":"Новый пароль","Sign in":"Войти","Create account":"Создать аккаунт",Resend:"Отправить снова",Warning:"Внимание","Verify your password to continue:":"Подтвердите пароль, чтобы продолжить:","Incorrect -- try again":"Неверно — попробуйте ещё раз","UH-OH!":"ОЙ!","(Error 404) This page does not exist.":"(Ошибка 404) Такой страницы нет.","Return back to":"Вернуться на","404 Page Not Found":"Страница не найдена","Nothing here!":"Здесь пусто","Nothing here yet":"Пока пусто","No results":"Ничего не найдено","No results found":"Ничего не найдено","No games found":"Игры не найдены","Try a different search":"Попробуйте другой запрос",Released:"Вышла","Release Date":"Дата выхода","Release date":"Дата выхода",Genres:"Жанры",Genre:"Жанр",Platforms:"Платформы",Platform:"Платформа",Awards:"Награды","More info on":"Подробнее на","More on":"Ещё на","More info on IGDB":"Подробнее на IGDB","Game Details":"Об игре","Backloggd Stats":"Статистика Backloggd","Time Played":"Время в игре","Total Playtime":"Всего времени","Related Games":"Похожие и связанные",Updates:"Обновления",Series:"Серия",Editions:"Издания",Edition:"Издание",DLC:"Дополнения",Mods:"Моды",Episodes:"Эпизоды","All Editions":"Все издания","All versions":"Все версии","Stats for":"Статистика для","Stats for all versions":"Статистика по всем версиям",Plays:"Прохождений",Playing:"Играю",Backlog:"Бэклог",Backlogs:"В бэклоге",Wishlist:"Желаемое",Wishlists:"В желаемом","Avg Rating":"Средняя оценка","Avg. Rating":"Средняя оценка",average:"в среднем","to finish":"до финала","to master":"до полного прохождения",Hidden:"Скрыто",Avg:"Средн.",AVG:"Средн.",Trending:"В тренде",Latest:"Новые","Top Liked":"По лайкам","Top Rated":"По оценке",Popularity:"Популярность",Popular:"Популярные",Reviewed:"С рецензией",reviewed:"рецензия на","Open review":"Открыть рецензию","Write a review":"Написать рецензию","Edit review":"Изменить рецензию",Review:"Рецензия","Your review":"Ваша рецензия","Contains spoilers":"Есть спойлеры",Spoilers:"Спойлеры","Show spoilers":"Показать спойлеры","Hide spoilers":"Скрыть спойлеры",Formatting:"Форматирование","What'd you think...":"Что думаете…","What'd you think…":"Что думаете…","What’d you think...":"Что думаете…","What’d you think…":"Что думаете…","Game of the Year":"Игра года",Gameplay:"Геймплей",Narrative:"Сюжет","Art Direction":"Художественное решение",Soundtrack:"Саундтрек",Music:"Музыка",Multiplayer:"Мультиплеер","Indie Debut":"Инди-дебют",ADULT:"18+",Adult:"18+",RESTRICTED:"ОГРАНИЧЕНО",Restricted:"Ограничено","Main Game":"Основная игра",Expansion:"Дополнение",Bundle:"Набор",Mod:"Мод",Episode:"Эпизод",Season:"Сезон",Remake:"Ремейк",Remaster:"Ремастер",Remastered:"Ремастер",Port:"Порт",Pack:"Набор","Standalone Expansion":"Отдельное дополнение",Fork:"Ответвление",Completed:"Пройдено",Mastered:"На 100%",Retired:"Отложено навсегда",Shelved:"На паузе",Abandoned:"Брошено",Replay:"Перепроход","Play Status":"Статус",Status:"Статус","Game Status":"Статус игры","Played Status":"Статус прохождения",None:"Нет",Unplayed:"Не играл","Log Title":"Название записи","Create Log":"Создать запись","Edit Log":"Изменить запись","Delete this log":"Удалить эту запись","Use Quick Editor":"Быстрый редактор","Use Full Editor":"Полный редактор","Specify an edition..":"Укажите издание…","Select release platform..":"Выберите платформу выхода…","Select release platform...":"Выберите платформу выхода…","Played platform":"Платформа, где играли","Mark your log dates":"Отметить даты в журнале","Bundle played":"Сыгранный набор","Add played & finished times":"Добавить время игры и прохождения",Watched:"Смотрел","owned, subscription,...":"своя копия, подписка…","owned, subscription, ...":"своя копия, подписка…",Log:"Запись","Manage lists":"Управление списками","Manage your lists":"Управление списками","Destroy all data":"Удалить все данные","You currently have no lists. Go here to create one.":"Списков пока нет. Создайте здесь.","You currently have no lists.":"Списков пока нет.","Go here":"Создайте здесь","to create one.":"","Delete your data for this log? This includes the associated review and journal entries for this log.":"Удалить данные этой записи? Пропадут связанная рецензия и записи журнала.",Return:"Назад","Your logs have unsaved changes.":"В записях есть несохранённые изменения.",Discard:"Не сохранять","Return to edit":"Вернуться к правке",Details:"Подробности",CURRENT:"ТЕКУЩАЯ",Current:"Текущая",h:"ч",m:"м","Create a new log":"Создать новую запись","Your ownership of the game when you played.":"Как игра была у вас, когда вы в неё играли.","The platform you physically played on. Useful for emulation and handhelds.":"Платформа, на которой вы играли. Полезно для эмуляции и портативных консолей.","The release platform version played":"Версия платформы, на которой играли","The release platform version you played.":"Версия платформы, на которой вы играли.","The release platform version you played":"Версия платформы, на которой вы играли.","Total time playing this log. Use sync sessions to auto-add all journal playtime instead.":"Общее время этой записи. Синхронизация сессий подставит время из журнала сама.","Total time playing this log.":"Общее время этой записи.","You currently have no lists. Go here":"Списков пока нет. Создайте здесь","You currently have no lists. Go":"Списков пока нет. Создайте",here:"здесь",Here:"Здесь",Bundles:"Наборы","Ownership of the game when it was played":"Кому принадлежала игра в момент прохождения","Ownership of the game when it was played.":"Кому принадлежала игра в момент прохождения.","The platform physically played on, useful for emulation and handhelds":"Платформа, на которой играли. Полезно для эмуляции и портативных консолей","The platform physically played on, useful for emulation and handhelds.":"Платформа, на которой играли. Полезно для эмуляции и портативных консолей.","Vote for the features you'd like to see the most! Choose wisely as you have a limited number of hearts to give.":"Голосуйте за функции, которые хотите больше всего. Сердец немного, выбирайте внимательно.",Left:"осталось","Mobile App - Android":"Мобильное приложение — Android","Backloggd gone mobile! This would be a release of an Android version of Backloggd.":"Backloggd в кармане: отдельное приложение для Android.","Importing - Steam":"Импорт — Steam","Be able to import your game data from Steam.":"Импорт игровых данных из Steam.","Game Recommendations":"Рекомендации игр","Get a curated list of recommended games based on what you like!":"Подборка игр по тому, что вам нравится.","Mobile App - iOS":"Мобильное приложение — iOS","Backloggd gone mobile! This would be a release of an iOS version of Backloggd.":"Backloggd в кармане: отдельное приложение для iOS.","More Game Info":"Больше сведений об игре","Show DLC status, all companies, alt names, and other extensive game info":"Статус дополнений, все компании, другие названия и прочие подробности.",Exporting:"Экспорт","Take your Backloggd data to-go with a CSV export tool.":"Выгрузка своих данных в CSV.","More Advanced Filters":"Более точные фильтры","Such as decades, exclusivity, select multiple of the same filter...":"Десятилетия, эксклюзивы, несколько значений одного фильтра…","Game Categorization":"Категории игр","Be able to tell which games are DLC, demos, cancelled, beta, etc":"Видно, что перед вами: дополнение, демо, отмена, бета и так далее.","Social Page":"Социальная страница","A hub for things social, including reviews and lists from other users.":"Место для рецензий и списков других людей.","Importing - CSV":"Импорт — CSV","Be able to import your game data from your own spreadsheets.":"Импорт игровых данных из своих таблиц.","Search Improvements":"Улучшение поиска","Search filters, better accuracy such as alt names, and adding companies to search":"Фильтры, поиск по другим названиям и по компаниям.","Mobile Improvements":"Улучшения для телефона","Better support for the mobile browser version of the site.":"Удобнее пользоваться сайтом в мобильном браузере.","Auto Log Organizing":"Автопорядок записей","Auto select / deselect log statuses based on recent activity. Ex: Remove from wishlist if start playing, remove from backlog if played, etc.. Will have config settings.":"Статусы меняются сами по недавней активности. Например, убрать из желаемого, когда начали играть, и из бэклога, когда уже сыграли. Будут настройки.","Spoiler Markdown":"Спойлеры в тексте","Apply spoiler tags to blocks of text in reviews":"Скрывать куски текста рецензии спойлер-тегами.","Better Genres":"Жанры получше","More genre options and fleshed out features around them":"Больше жанров и отдельные возможности вокруг них.","Showdown Events":"События Showdown","Semi-regular events that encourage users to put together their best list given a theme.":"Периодические события: собрать лучший список на заданную тему.","Review Language Preference":"Язык рецензий","Be able to tag and set a language preference for reviews":"Метки языка и выбор, на каком языке показывать рецензии.","Feature Suggestion Page":"Страница идей","A version of this roadmap but that allows custom suggestions and voting":"Как эти планы, но со своими идеями и голосованием.","Alternate Journal Views":"Другие виды журнала","View your journal in a large calendar view similar to the editor or a more condensed list view. The possibilities are endless!":"Журнал большим календарём, как в редакторе, или компактным списком.","List Discovery Page":"Поиск списков","A dedicated page to browse lists by other users, complete with filters and sorting":"Отдельная страница чужих списков с фильтрами и сортировкой.","Better Release Dates":"Даты выхода точнее","Games having a single date is too easy, this would show multiple release dates for the different stages / regions. Also better formatting for vague releases (ex: Q4 2023)":"Не одна дата, а несколько: этапы и регионы. И понятнее для приблизительных, например «4-й квартал 2023».","Friend Recommendations":"Советы друзьям","Send game recommendations to any mutual friend":"Отправлять рекомендации игр взаимным друзьям.","Collection View Modes":"Виды коллекции","Be able to switch between grid and list viewing modes for your game / backlog collection.":"Переключение коллекции и бэклога между плиткой и списком.","Company Improvements":"Компании получше","Various improvements to companies, including company search, more details on company pages, etc...":"Поиск компаний и больше сведений на их страницах.","Review Drafts":"Черновики рецензий","Save and edit a draft of your review before posting it":"Сохранять и править черновик рецензии до публикации.","Hide Games":"Скрывать игры","Hide unwanted games from appearing in common places":"Убирать ненужные игры из общих списков.","List Tags":"Метки списков","Add a limited number of keywords to your lists for searchability and sorting":"Несколько ключевых слов у списка для поиска и сортировки.","More Sorting / Filtering by Journal":"Больше сортировок по журналу","More options around dates pulled from your journal, such as sort by # days played, filter by year played, etc..":"Даты из журнала: сортировка по числу дней, фильтр по году и другое.","Library profile section":"Библиотека в профиле","A space on your profile to browse all games added to your library entries":"В профиле можно смотреть все игры из библиотеки.","Profile game search":"Поиск игр в профиле","Search for games across any profile":"Искать игры в любом профиле.","Light mode":"Светлая тема","View the site in the opposite of dark":"Смотреть сайт не в тёмной теме.","Time Played Expanded":"Время в игре подробнее","Usecases for aggerating the time played field, show things like average time per game":"Сводка времени: например, среднее время на игру.","Personalized Game Covers":"Свои обложки игр","IGDB now supports localized covers! Be able to set your game cover preference across the site":"В IGDB появились локальные обложки. Можно выбрать, какие показывать на сайте.","Game Editions Combining":"Объединение изданий","This would greatly reduce duplicates by combining all versions of a game into it's base game. Although you would still be able to mark that special version when logging.":"Все версии склеиваются с основной игрой, дублей меньше. Особое издание всё ещё можно указать в записи.",Franchises:"Франшизы","See what games come from what series!":"Видно, какие игры из какой серии.","Put all that data to use by displaying stats about your game collection.":"Статистика по вашей коллекции игр.","More List Improvements":"Ещё улучшения списков","Likes, list search, games appearing in lists, auto-sorting, folders etc..":"Лайки, поиск списков, игры в списках, автосортировка, папки и другое.","Personalized Coming Soon":"Своё «Скоро выйдет»","Have an extension to the home page coming soon section by showing all the games you have on your wishlist, displaying in terms of how far away they are.":"На главной в блоке «скоро» показывать желаемое и насколько близок выход.","Changeable Usernames":"Смена имени","Be able to change your username!":"Можно сменить имя пользователя.","Comments Section":"Комментарии","Be able to leave comments on reviews, profiles, and other commentary worthy areas!":"Комментарии к рецензиям, профилям и другим местам.","Activity Feed":"Лента активности","Show a stream of activities from friends to let you know what's up!":"Лента событий друзей.","Journal 2.0":"Журнал 2.0","Have advanced fields for logging a playthrough such as time played, physically / digitally owned, start/end play dates, play types, etc.":"Подробная запись прохождения: время, диск или цифра, даты начала и конца, тип игры и другое.","Have the ability to create your own personal lists with custom ordering.":"Свои списки со своим порядком.","Text Formatting":"Оформление текста","Allow for limited formatting such as bold, italics, and links in your bio and reviews.":"Жирный, курсив и ссылки в биографии и рецензиях.","Game Genres":"Жанры игр","We all want to know the type of games we play, genres are essential for just that.":"Жанры, чтобы было видно, в какие типы игр вы играете.","Game Plays Page":"Страница прохождений","See what everyone gave for a rating for any game!":"Какие оценки люди поставили игре.","Star Customization":"Свои звёзды","Implement a user profile feature that allows you to choose between a 10-star and 5-star system.":"В профиле можно выбрать шкалу из 10 или 5 звёзд.","Have a suggestion? Submit your idea via the contact form":"Есть идея? Отправьте её через форму обратной связи","Have a suggestion? Submit your idea via the":"Есть идея? Отправьте её через","contact form":"форму обратной связи","You currently have no lists. Go here to create one":"Списков пока нет. Создайте здесь","owned, subscription, emulation, ...":"своя копия, подписка…","owned, subscription, emulation...":"своя копия, подписка…","Specify an edition...":"Укажите издание…","Played on":"Платформа",Ownership:"Владение",Owned:"Своя копия",Subscription:"Подписка",Borrowed:"Взял поиграть",Rented:"Аренда",Shared:"Общая",Other:"Другое","Started on":"Начал","Finished on":"Закончил",Start:"Начало",Finish:"Финиш","Time Tracker":"Учёт времени","Manual input":"Вручную","Enter total playtime manually":"Ввести общее время вручную","Sum log times":"Сумма записей","Total playtime is the sum of all log playtimes":"Общее время — сумма времени всех записей","Sum journal times":"Сумма сессий журнала","Total playtime is the sum of all journal session playtimes":"Общее время — сумма всех сессий в журнале","Time to finish":"Время до финала","Time to master":"Время до 100%","Time to Beat":"Время прохождения","Avg. Play Time":"Среднее время","Avg. Finish Time":"Среднее до финала",Session:"Сессия",Sessions:"Сессии","Add session":"Добавить сессию","Sync sessions":"Синхронизировать сессии",Note:"Заметка",Notes:"Заметки","Add a note":"Добавить заметку",Hours:"Часы",Minutes:"Минуты",hrs:"ч",hr:"ч",hours:"ч",hour:"ч",minutes:"мин",minute:"мин",mins:"мин","Game Title":"Название",Name:"Название","Date Added":"Дата добавления","Last played":"Последняя игра","Last Played":"Последняя игра","User rating":"Ваша оценка","Your rating":"Ваша оценка",Rating:"Оценка",Filter:"Фильтр",Filters:"Фильтры",Sort:"Сортировка","Sort by":"Сортировать по",Order:"Порядок",Ascending:"По возрастанию",Descending:"По убыванию",Random:"Случайно",Grid:"Плитка",List:"Список",Category:"Категория","Release year":"Год выхода","Release Year":"Год выхода",Playtime:"Время в игре","Create list":"Создать список","Create List":"Создать список","New list":"Новый список","Edit list":"Изменить список","Delete list":"Удалить список","Add game":"Добавить игру","Add to list":"В список","Remove from list":"Убрать из списка","List title":"Название списка",Description:"Описание",Ranked:"С рейтингом",Unranked:"Без рейтинга",Public:"Публичный",Private:"Только я",Unlisted:"По ссылке",Progress:"Прогресс","Track progress":"Отслеживать прогресс","Comments enabled":"Комментарии включены","No time listed":"Время не указано",Updated:"Обновлено",Published:"Опубликовано",Draft:"Черновик",Pinned:"Закреплено",Pin:"Закрепить",Unpin:"Открепить","Personal Ratings":"Личные оценки","Profile Stats":"Статистика профиля","Game Ratings":"Оценки игр","Total Games Played":"Всего сыграно игр","Games Backloggd":"Игр в бэклоге","Edit profile":"Изменить профиль","Edit Profile":"Изменить профиль","Favorite games":"Любимые игры",Favorites:"Избранное",Avatar:"Аватар",Banner:"Шапка","Display name":"Отображаемое имя",Location:"Откуда",Website:"Сайт",Timezone:"Часовой пояс",Account:"Аккаунт",Preferences:"Параметры","Privacy settings":"Приватность","Adult content":"Контент 18+","Show adult games":"Показывать игры 18+","Hide adult games":"Скрывать игры 18+","Change password":"Сменить пароль","Change email":"Сменить почту","Delete account":"Удалить аккаунт","Blocked users":"Заблокированные","Export data":"Экспорт данных",Import:"Импорт","Connected accounts":"Связанные аккаунты",Theme:"Тема",Dark:"Тёмная",Light:"Светлая",System:"Как в системе","Jump to...":"Перейти к…",Today:"Сегодня",Yesterday:"Вчера",Tomorrow:"Завтра",January:"январь",February:"февраль",March:"март",April:"апрель",May:"май",June:"июнь",July:"июль",August:"август",September:"сентябрь",October:"октябрь",November:"ноябрь",December:"декабрь",Jan:"янв",Feb:"фев",Mar:"мар",Apr:"апр",Jun:"июн",Jul:"июл",Aug:"авг",Sep:"сен",Oct:"окт",Nov:"ноя",Dec:"дек",Monday:"понедельник",Tuesday:"вторник",Wednesday:"среда",Thursday:"четверг",Friday:"пятница",Saturday:"суббота",Sunday:"воскресенье",Mon:"пн",Tue:"вт",Wed:"ср",Thu:"чт",Fri:"пт",Sat:"сб",Sun:"вс",Adventure:"Приключение","Role-playing (RPG)":"Ролевая (RPG)",RPG:"RPG",Shooter:"Шутер",Puzzle:"Головоломка",Platformer:"Платформер",Racing:"Гонки",Sport:"Спорт",Sports:"Спорт",Fighting:"Файтинг",Simulation:"Симулятор",Indie:"Инди","Visual Novel":"Визуальная новелла","Turn Based":"Пошаговая","Turn-based strategy (TBS)":"Пошаговая стратегия",Tactical:"Тактика","Tactical RPG":"Тактическая RPG","Point-and-click":"Point-and-click","Card & Board Game":"Карты и настолки","Card Game":"Карточная","Board Game":"Настольная",Strategy:"Стратегия","Real Time Strategy (RTS)":"Стратегия в реальном времени","Hack and slash/Beat 'em up":"Слэшер","Quiz/Trivia":"Викторина",Pinball:"Пинбол",Arcade:"Аркада",MOBA:"MOBA",MMORPG:"MMORPG","Windows PC":"Windows",PC:"ПК",Mobile:"Телефон","Web browser":"Браузер",Browser:"Браузер",Yes:"Да",No:"Нет",On:"на",Off:"Выкл",Optional:"Необязательно",Required:"Обязательно",All:"Все",Any:"Любой",Unknown:"Неизвестно",TBA:"Дата не объявлена",TBD:"Уточняется",Cancelled:"Отменена","Coming Soon":"Скоро","Early Access":"Ранний доступ",Alpha:"Альфа",Beta:"Бета",Unreleased:"Ещё не вышла",Developer:"Разработчик",Developers:"Разработчики",Publisher:"Издатель",Publishers:"Издатели",Companies:"Компании",Company:"Компания","Involved companies":"Компании","Similar games":"Похожие игры","You might also like":"Может понравиться","Friends played":"Играли друзья","Also played":"Ещё играли",Results:"Результаты",result:"результат",results:"результатов",Page:"Страница","per page":"на странице",Select:"Выбрать",Selected:"Выбрано",Deselect:"Снять выбор","Select all":"Выбрать все","Bulk edit":"Массовое изменение",Move:"Переместить",Duplicate:"Дублировать",Refresh:"Обновить",Help:"Помощь",Feedback:"Обратная связь",Language:"Язык",English:"Английский",Russian:"Русский","Just now":"только что",Online:"В сети",Offline:"Не в сети","Member since":"На сайте с",Joined:"Регистрация","Last online":"Был в сети",Mutual:"Общие",Suggested:"Рекомендации",Discover:"Обзор",Explore:"Обзор",New:"Новое",Hot:"Горячее",Rising:"Растёт","Staff picks":"Выбор редакции","Editor's choice":"Выбор редакции",Featured:"Избранное",Announcement:"Объявление",Maintenance:"Техработы","Are you sure?":"Точно?","This cannot be undone.":"Это нельзя отменить.","Something went wrong":"Что-то пошло не так","Please try again":"Попробуйте ещё раз",Loading:"Загрузка","Loading...":"Загрузка…",Saved:"Сохранено",Copied:"Скопировано","Link copied":"Ссылка скопирована","Change cover":"Сменить обложку","Log history":"История записей","Reviewed on":"Рецензия от","Log or review":"Запись или рецензия","or review":"или рецензия","Cracked on release day":"Взломана в день выхода","Cracked on release":"Взломана в день выхода"}});function ba(){return Object.keys(ha).map(e=>{const t=e.match(/\/([a-z]{2})\.json$/);return t?t[1]:""}).filter(e=>e&&"en"!==e).sort()}const fa=new Set(["SCRIPT","STYLE","NOSCRIPT","TEXTAREA","CODE","PRE","SVG","CANVAS"]);let Sa=null;function va(e){const t=1===e.nodeType?e:e.parentElement;return Boolean(t&&t.closest(".blp-settings, .blp-settings-backdrop, .blp-toast"))}function ya(){const e=function(e){const t=String(null!=e?e:"off").trim().toLowerCase();return "off"===t||"en"===t||"auto"===t?"off":ba().includes(t)?t:"off"}(Qe.siteLocale);if(!e||Sa)return;const t=function(e){const t=Object.keys(ha).find(t=>t.endsWith(`/${e}.json`));return t?ha[t]:null}(e);if(!t)return;Sa=e;const a=function(e,t){const a=new Map;for(const[f,S]of Object.entries(t))a.set(f.toLowerCase(),S);const i="ru"===e,n={Jan:"янв",Feb:"фев",Mar:"мар",Apr:"апр",May:"мая",Jun:"июн",Jul:"июл",Aug:"авг",Sep:"сен",Oct:"окт",Nov:"ноя",Dec:"дек"},r={January:"января",February:"февраля",March:"марта",April:"апреля",May:"мая",June:"июня",July:"июля",August:"августа",September:"сентября",October:"октября",November:"ноября",December:"декабря"},o={minute:["минуту","минуты","минут"],minutes:["минуту","минуты","минут"],hour:["час","часа","часов"],hours:["час","часа","часов"],day:["день","дня","дней"],days:["день","дня","дней"],week:["неделю","недели","недель"],weeks:["неделю","недели","недель"],month:["месяц","месяца","месяцев"],months:["месяц","месяца","месяцев"],year:["год","года","лет"],years:["год","года","лет"]},s={Likes:["лайк","лайка","лайков"],Like:["лайк","лайка","лайков"],Reviews:["рецензия","рецензии","рецензий"],Review:["рецензия","рецензии","рецензий"],Plays:["прохождение","прохождения","прохождений"],Play:["прохождение","прохождения","прохождений"],Lists:["список","списка","списков"],List:["список","списка","списков"],Games:["игра","игры","игр"],Game:["игра","игры","игр"],Comments:["комментарий","комментария","комментариев"],Comment:["комментарий","комментария","комментариев"],Ratings:["оценка","оценки","оценок"],Rating:["оценка","оценки","оценок"],Backlogs:["в бэклоге","в бэклоге","в бэклоге"],Wishlists:["в желаемом","в желаемом","в желаемом"],Playing:["играет","играют","играют"],Followers:["подписчик","подписчика","подписчиков"],Following:["подписка","подписки","подписок"]};function l(e,t){const a=Math.abs(Number(e))%100,i=a%10;return a>10&&a<20?t[2]:i>1&&i<5?t[1]:1===i?t[0]:t[2]}function c(e,t){const a=s[t];if(!a)return null;const i=String(e).replace(/,/g,""),n=/[KMBkmb]$/.test(i)?5:Number(i);return `${e} ${l(Number.isFinite(n)?n:5,a)}`}function u(e,t){return e.match(/^\s*/)[0]+t+e.match(/\s*$/)[0]}function d(e){if(!e)return null;const d=e.replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/\s+/g," ").trim();if(!d||d.length>600)return null;if(i){if(/^owned,\s*subscription,/i.test(d))return u(e,"своя копия, подписка…");if(/^Added in (.+)$/i.test(d))return u(e,`Добавлено в ${d.replace(/^Added in\s+/i,"")}`);if(/^you currently have no lists\b/i.test(d))return u(e,/\b(go\s+)?here\b/i.test(d)?"Списков пока нет. Создайте здесь":"Списков пока нет. Создайте");if(/^what['’]d you think[.…]{0,3}$/i.test(d))return u(e,"Что думаете…");if(/over\s+\d+/.test(d)){const t=d.replace(/s?\s*over\s+(\d+)/i," на $1");if(t!==d)return u(e,t.replace(/^\s+/,""))}}if(Object.prototype.hasOwnProperty.call(t,d))return u(e,t[d]);const p=a.get(d.toLowerCase());if(null!=p)return u(e,p);if(!i)return null;const m=d.match(/^([\d.,]+[KMBkmb]?)\s+(Likes|Like|Reviews|Review|Plays|Play|Lists|List|Games|Game|Comments|Comment|Ratings|Rating|Backlogs|Wishlists|Playing|Followers|Following)$/);if(m){const t=c(m[1],m[2]);if(t)return u(e,t)}const g=d.match(/^(\d+)\s+(minute|minutes|hour|hours|day|days|week|weeks|month|months|year|years)\s+ago$/);if(g)return u(e,`${g[1]} ${l(g[1],o[g[2]])} назад`);const h=d.match(/^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d{1,2})(?:,\s+(\d{4}))?$/);if(h)return u(e,`${h[2]} ${n[h[1]]}${h[3]?` ${h[3]}`:""}`);const b=d.match(/^(January|February|March|April|May|June|July|August|September|October|November|December)\s+(\d{1,2}),\s+(\d{4})$/);if(b)return u(e,`${b[2]} ${r[b[1]]} ${b[3]}`);const f=d.match(/^(January|February|March|April|May|June|July|August|September|October|November|December),\s+(\d{4})$/);if(f)return u(e,`${{January:"январь",February:"февраль",March:"март",April:"апрель",May:"май",June:"июнь",July:"июль",August:"август",September:"сентябрь",October:"октябрь",November:"ноябрь",December:"декабрь"}[f[1]]} ${f[2]}`);const S=d.match(/^Showing\s+(\d+)\s+games?(?:\s+with)?$/i);if(S){const t=/with$/i.test(d)?" с":"";return u(e,`Показано ${S[1]} ${l(S[1],s.Games)}${t}`)}if(/^Added in /i.test(d))return null;const v=d.match(/^(.+) has no lists$/);if(v)return u(e,`У ${v[1]} нет списков`);const y=d.match(/^(\d+)\s+games liked by (.+)$/i);if(y)return u(e,`${c(y[1],"Games")}, которые лайкнул ${y[2]}`);const w=d.match(/^(\d+)\s+reviews liked by (.+)$/i);if(w)return u(e,`${c(w[1],"Reviews")}, которые лайкнул ${w[2]}`);const k=d.match(/^by\s+(\S+)$/);if(k)return u(e,`от ${k[1]}`);const C=d.match(/^on\s+(.+)$/);if(C)return u(e,`на ${t[C[1]]||C[1]}`);const P=d.match(/^Cracked in (\d+) day\(s\)$/i);if(P){const t=Number(P[1]);return u(e,`Взломана через ${P[1]} ${1===t?"день":t>1&&t<5?"дня":"дней"}`)}const T=d.match(/^Played in (\d{4})$/);if(T)return u(e,`Сыграно в ${T[1]}`);const B=d.match(/^(Earned|Joined) on (.+)$/);return B?u(e,`${"Earned"===B[1]?"Получено":"На сайте с"} ${B[2]}`):/^[‹«<]\s*Prev$/i.test(d)?u(e,"‹ Назад"):/^Next\s*[›»>]$/i.test(d)?u(e,"Далее ›"):null}const p=new Set(["placeholder","title","aria-label","aria-description","alt","data-original-title","data-title","data-content","data-text","value"]),m='a.review-more, #summary-expand-btn, a[data-toggle="collapse"], a[data-bs-toggle="collapse"]';function g(e){e.classList.remove("blp-site-toggle","blp-site-after","blp-site-before"),e.removeAttribute("data-blp-site-toggle"),e.removeAttribute("data-blp-site-after"),e.removeAttribute("data-blp-site-before");}function h(e,t){try{const a=String(getComputedStyle(e,t).content||"").replace(/^["']|["']$/g,"").trim();if(/^(expand|collapse|show more|show less)$/i.test(a))return a}catch(a){}return ""}function b(e){var t,a;const i=(null==(t=null==e?void 0:e.matches)?void 0:t.call(e,m))?e:null==(a=null==e?void 0:e.querySelector)?void 0:a.call(e,m);if(!i||va(i))return;i.classList.remove("blp-expand-face","blp-expand-face-before","blp-expand-cover","blp-site-after","blp-site-before");const n=(i.textContent||"").replace(/\s+/g," ").trim(),r=Boolean(h(i,"::after")||h(i,"::before")||/^(expand|collapse|show more|show less)$/i.test(n)||i.classList.contains("blp-expand-ghost")),o=r?i:i.parentElement;if(!o)return;const s=(o.textContent||"").replace(/\s+/g," ").trim();if(!r&&!Boolean(h(o,"::after")||h(o,"::before")||/^(expand|collapse|show more|show less)$/i.test(s)||o.classList.contains("blp-expand-ghost")))return;o.classList.add("blp-expand-ghost");const l=o.parentElement||o,c="true"===i.getAttribute("aria-expanded"),u=/show/i.test(h(o,"::after")||h(o,"::before")||"")?"show":o.getAttribute("data-blp-expand-kind")||"expand";o.setAttribute("data-blp-expand-kind",u);const p=d(c?"show"===u?"SHOW LESS":"COLLAPSE":"show"===u?"SHOW MORE":"EXPAND");if(!p||!p.trim())return;let g=l.querySelector(":scope > .blp-expand-ru");g||(g=document.createElement("span"),g.className="blp-expand-ru",g.setAttribute("aria-hidden","true"),l.appendChild(g)),g.textContent=p.trim();}return {translateNode:function e(t){if(t&&!va(t))if(11!==t.nodeType){if(3===t.nodeType){if(/^(expand|collapse|show more|show less)$/i.test(String(t.nodeValue||"").trim()))return;const e=d(t.nodeValue);return void(null!=e&&e!==t.nodeValue&&(t.nodeValue=e))}if(1===t.nodeType&&(function(e){if(e&&1===e.nodeType&&e.attributes&&!va(e)){for(const t of e.attributes){const a=t.name.toLowerCase();if(!p.has(a)&&!a.startsWith("data-"))continue;if("data-target"===a||"data-action"===a||"data-controller"===a)continue;const i=t.value,n="placeholder"===a||"title"===a||"aria-label"===a||"aria-description"===a;if(!i||i.length>240)continue;if(!n&&(i.includes("/")||-1===i.indexOf(" ")&&i.length>24))continue;const r=d(i);null!=r&&r.trim()!==i&&e.setAttribute(t.name,r.trim());}if("INPUT"===e.tagName){const t=(e.getAttribute("type")||"").toLowerCase();if("submit"===t||"button"===t||"reset"===t){const t=d(e.value);null!=t&&t!==e.value&&(e.value=t.trim());}}}}(t),!fa.has(t.tagName)&&!t.isContentEditable)){t.shadowRoot&&e(t.shadowRoot);for(const a of t.childNodes)e(a);}}else for(const a of t.childNodes)e(a);},fixSplitOver:function(e){if(!i)return;const t=e.querySelectorAll("div, span, p, a, li, small, section, h2, h3, h4");for(const a of t){if(va(a))continue;const e=a.innerText||"";if(e.length>90||!/over\s*\d+/i.test(e))continue;if([...a.children].some(e=>/over\s*\d+/i.test(e.innerText||"")))continue;const t=document.createTreeWalker(a,NodeFilter.SHOW_TEXT),i=[];for(;t.nextNode();)i.push(t.currentNode);for(const a of i){const e=a.nodeValue;e&&(/over/i.test(e)?a.nodeValue=e.replace(/s?\s*over\s*/i," на "):"s"===e.trim()&&(a.nodeValue=""));}}},translatePseudos:function(e){const t="blp-site-locale-pseudo";let a=document.getElementById(t);a||(a=document.createElement("style"),a.id=t,(document.body||document.documentElement).appendChild(a)),a.textContent=[".blp-site-before::before { content: attr(data-blp-site-before) !important; }",".blp-site-after::after { content: attr(data-blp-site-after) !important; }",".blp-expand-ghost::after { color: transparent !important; }",".blp-expand-ru { pointer-events: none; color: #e8eaed; font-size: 12px; line-height: 1; margin-left: 0.35rem; }",".blp-welcome-wrap { white-space: normal !important; overflow: visible !important; text-overflow: unset !important; min-width: 0 !important; flex: 1 1 16rem !important; max-width: 100%; }",".blp-welcome-row { flex-wrap: wrap !important; align-items: center !important; }"].join("\n"),e.querySelectorAll(`${m}, .expand-review-col, .expand-review-col *`).forEach(e=>g(e)),e.querySelectorAll(".blp-site-after, .blp-site-before, .blp-site-toggle").forEach(e=>{(e.closest(".expand-review-col, .review-bottom-bar")||e.querySelector(m))&&g(e);});const i=e.querySelectorAll("a, button, span, div, label, p, i, em, small");for(const r of i)if(!va(r)&&!(r.matches(m)||r.closest(".expand-review-col, .review-bottom-bar")||r.querySelector(m)||(r.textContent||"").trim().length>48))for(const e of ["::before","::after"]){let t="";try{t=getComputedStyle(r,e).content;}catch(n){continue}const a=String(t||"").replace(/^["']|["']$/g,"").trim();if(!a||"none"===a||"normal"===a)continue;const i=d(a),o=null==i?null:i.trim();null!=o&&o!==a&&("::before"===e?(r.setAttribute("data-blp-site-before",o),r.classList.add("blp-site-before")):(r.setAttribute("data-blp-site-after",o),r.classList.add("blp-site-after")));}e.querySelectorAll(m).forEach(e=>b(e));},labelToggle:g,paintToggleFace:b}}(e,t);document.documentElement.dataset.blpExpandFix||(document.documentElement.dataset.blpExpandFix="1",document.addEventListener("click",e=>{var t,a,i;const n=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,'a.review-more, #summary-expand-btn, a[data-toggle="collapse"], a[data-bs-toggle="collapse"], .expand-review-col');if(!n||n.closest(".blp-settings, .blp-translate-btn"))return;const o=n.matches(".expand-review-col")&&n.querySelector('a, button, [data-toggle="collapse"], [data-bs-toggle="collapse"]')||n,s=function(e){const t=e.getAttribute("href")||e.getAttribute("data-target")||e.getAttribute("data-bs-target")||"";if(!t||"#"!==t.charAt(0)||"#"===t)return null;try{return document.querySelector(t)}catch(a){return null}}(o);if(!s)return;e.preventDefault(),e.stopPropagation();const l=s.classList.contains("show"),c=r||window,u=c.jQuery||c.$;if(null==(i=null==u?void 0:u.fn)?void 0:i.collapse)try{return void u(s).collapse(l?"hide":"show")}catch(d){}s.classList.toggle("show",!l),s.classList.add("collapse"),s.style.display=l?"none":"block",s.style.height=l?"":"auto",o.classList.toggle("collapsed",l),o.setAttribute("aria-expanded",l?"false":"true");},true));let i=false;const n=()=>{i=false,document.body&&(a.translateNode(document.body),a.fixSplitOver(document.body),a.translatePseudos(document.body),function(){if(!document.body)return;const e=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();){const t=e.currentNode;if(t.closest(".blp-settings, .blp-toast"))continue;const a=t.textContent||"";if(a.includes("С возвращением")&&a.includes("попробуй случайный")&&!(a.length>420||[...t.children].some(e=>{const t=e.textContent||"";return t.includes("С возвращением")&&t.includes("попробуй случайный")})))return t.classList.remove("text-nowrap"),t.style.setProperty("white-space","normal","important"),t.style.setProperty("min-width","0","important"),void t.style.setProperty("flex","1 1 auto","important")}}());},o=()=>{i||(i=true,"function"==typeof requestAnimationFrame?requestAnimationFrame(n):setTimeout(n,16));};o(),new MutationObserver(e=>{var t,i;for(const n of e){"characterData"===n.type&&(a.translateNode(n.target),n.target.parentElement&&a.paintToggleFace(n.target.parentElement));for(const e of n.addedNodes)a.translateNode(e);"aria-expanded"===n.attributeName&&(null==(i=null==(t=n.target)?void 0:t.matches)?void 0:i.call(t,'a.review-more, #summary-expand-btn, a[data-toggle="collapse"], a[data-bs-toggle="collapse"]'))&&a.paintToggleFace(n.target),"attributes"===n.type&&n.target&&a.translateNode(n.target);}}).observe(document.documentElement,{childList:true,subtree:true,characterData:true,attributes:true,attributeFilter:["placeholder","title","aria-label","aria-expanded"]}),document.addEventListener("turbo:load",o),document.addEventListener("turbo:render",o),document.addEventListener("turbo:frame-render",o);}const wa=new Map;function ka(e){return String(e||"").toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[™®©'’":]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-")}function Ca(e){return `https://gamestatus.info/back/api/gameinfo/game/${encodeURIComponent(e)}/`}async function Pa(e,t){var a;const i=await la({url:Ca(e),allow404:true,headers:{Accept:"application/json","Accept-Language":"zh"===et?"zh-CN":"pt"===et?"pt-BR":"en"===et?"en-US":et||"en-US"},timeout:15e3});if(!i)return {data:null,match:false,outcome:"404"};const n=function(e,t){return !(!e||e.steam_prod_id&&String(e.steam_prod_id)!==String(t))}(i,t);return {data:i,match:n,outcome:n?"match":"steam_prod_id_mismatch",steam_prod_id:null!=(a=i.steam_prod_id)?a:null,readable_status:i.readable_status||null,title:i.title||null,slug:i.slug||e}}async function Ta({appId:e,storeUrl:t,name:a,title:i,pageSlug:n}){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=Mt(r);if(o)return Gt(o);const s=wa.get(r);if(s&&Date.now()-s<6e5)return $t({missing:true,data:null,slug:null,_debug:{reason:"GameStatus miss (session memory)",appId:e,cacheKey:r}});if(wa.delete(r),nt.has(r))return nt.get(r);const l=(async()=>{var o;const s=function({storeUrl:e,name:t,title:a,pageSlug:i}){const n=[],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)&&!n.includes(e)&&n.push(e);},o=e=>{const t=String(e||"").replace(/\s+/g," ").trim();t&&(r(ka(t)),r(ka(t.replace(/\s*[-–—:|].*$/,""))));};return r(function(e){const t=String(e||"").replace(/^\/+|\/+$/g,"");return /--1$/i.test(t)?ka(t.replace(/--1$/i,"-remake")):null}(i)),r(function(e){const t=String(e||"").match(/\/app\/\d+\/([^/?#]+)/i);return t?ka(t[1].replace(/_/g,"-")):null}(e)),o(t),o(a),r(ka(i)),n}({storeUrl:t,name:a,title:i,pageSlug:n}),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 Pa(t,e);if(c.attempts.push({slug:t,url:Ca(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 Et(r,It(e)),$t(e)}}catch(d){c.attempts.push({slug:t,url:Ca(t),outcome:"error",error:String((null==d?void 0:d.message)||d)});}c.reason=l.length?"No GameStatus match for tried slugs":"No valid GameStatus slug candidates";const u={missing:true,data:null,slug:l[0]||null,_debug:c};return l.length>0&&c.attempts.some(e=>"404"===e.outcome||"steam_prod_id_mismatch"===e.outcome)&&wa.set(r,Date.now()),$t(u)})();nt.set(r,l);try{return await l}finally{nt.delete(r);}}function Ba(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 xa(e,t){return e?e.readable_status?e.readable_status:"ready"===t?tt.gsReady:"pending-recent"===t||"pending-old"===t?tt.gsPending:"partial"===t?tt.gsPartial:"release-today"===t?tt.gsReleaseToday:tt.gsUnknown:tt.gsNotInDatabase}function Aa(e){return String(e||"").replace(/^[\s\[\(\{"'`]+|[\]\)\}"'`\s]+$/g,"").replace(/^["'`]+|["'`]+$/g,"").trim()}function La(e){if(null==e||""===e)return [];if(Array.isArray(e))return e.map(Aa).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(Aa).filter(Boolean);if("string"==typeof e)return [Aa(e)].filter(Boolean)}catch(a){}return t.split(/[,;/|]+/).map(Aa).filter(Boolean)}function Ha(e){return /denuvo/i.test(e)?"blp-gs-chip--highlight":"blp-gs-chip--protection"}const Da=/^(?=.*[ivxlcdm])(?=[mdclxvi]+$)m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/;function Ma(e){const t=String(e||"").replace(/[™®©]/g,"").normalize("NFKD").replace(/[̀-ͯ]/g,"").normalize("NFC").toLowerCase().replace(/(?<=[a-z])\.(?=[a-z])/g,"").replace(/[^\p{L}\p{N}]+/gu," ").trim();return t?t.split(/\s+/).filter(Boolean).map((e,t)=>{const a=function(e,{allowLoneI:t=false}={}){const a=String(e||"").toLowerCase();if(!Da.test(a))return null;if("i"===a&&!t)return null;const i={i:1,v:5,x:10,l:50,c:100,d:500,m:1e3};let n=0;for(let r=0;re?-e:e;}return n>0?n:null}(e,{allowLoneI:t>0});return null!=a?String(a):e}).join(" "):""}function Ea(e){return Ma(e).split(/\s+/).filter(Boolean)}function Ga(e){return /^(the|a|an|official|new)$/i.test(e)}const $a=/^(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 _a(e){const t=Ma(e);if(!t)return true;if($a.test(t))return true;const a=t.split(/\s+/);let i=0;for(;i=1;t-=1){const n=a.slice(i,i+t).join(" ");if($a.test(n)){i+=t,e=true;break}}if(!e)return false}return true}function Ra(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 i=t.slice(t.length-a).join(" ");if($a.test(i)){t.splice(t.length-a,a),e=true;break}}if(!e)break}return t.join(" ")}const Ia=/\s*[([]\s*((?:19|20)\d{2})\s*[)\]]\s*$/;function Fa(e){const t=String(e||"").match(Ia);return t?Number(t[1]):null}function Na(e,t,a=null){const i=Fa(e);if(null!=i){const n=Number(a),r=Number.isFinite(n)&&n>0;if(r&&i!==n)return 0;const o=Na(String(e).replace(Ia,""),t);return r&&o>=100?101:o}const n=Ma(e),r=Ma(t);if(!n||!r)return 0;if(n===r)return 100;const o=Ra(n),s=Ra(r);if(o&&s&&o===s)return 95;if(n.startsWith(`${r} `)&&_a(n.slice(r.length).trim()))return 90;if(o&&s&&o.startsWith(`${s} `)&&_a(o.slice(s.length).trim()))return 88;const l=Ea(o||n),c=Ea(s||r);if(c.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 i=true;for(let n=0;n=0){const t=l.slice(0,e),a=l.slice(e+c.length);if(t.every(Ga)&&_a(a.join(" ")))return 85}}return 0}const Oa=216e5;function za(e){return `game:mini:${String(e||"").trim().toLowerCase()}`}function Ua(e){var t;const a=Number(null==(t=Wa(e))?void 0:t.year);return Number.isFinite(a)&&a>0?a:null}function qa(e){const t=Number(null==e?void 0:e.year);return Number.isFinite(t)&&t>0?t:null}async function ja(e,t){const a=String(e||"").trim().toLowerCase(),i=Number(t);if(!a||!Number.isFinite(i)||i<=0)return a;const n=`game:slug:${a}@${i}`,r=Mt(n);if("string"==typeof r&&r)return r;const o=qa(await ri(a).catch(()=>null));if(null==o||Math.abs(o-i)<=1)return a;const s=(await async function(e){const t=String(e||"").trim().toLowerCase();if(!t)return [];const a=`game:remakes:${t}`,i=Mt(a);if(Array.isArray(i))return i;const n=`remakes:${t}`;if(nt.has(n))return nt.get(n);const r=(async()=>{var e;const i=await la({url:`https://www.backloggd.com/games/${encodeURIComponent(t)}/related/associated/popular:desc/category:remake,remaster/`,method:"GET",responseType:"text",anonymous:false,headers:{Accept:"text/html"}}),n=(new DOMParser).parseFromString(String(i||""),"text/html"),r=[];for(const a of n.querySelectorAll('a[href^="/games/"]')){const i=(a.getAttribute("href")||"").match(/^\/games\/([a-z0-9][a-z0-9-]*)\/$/i),n=null==(e=null==i?void 0:i[1])?void 0:e.toLowerCase();n&&"lib"!==n&&n!==t&&!r.includes(n)&&r.push(n);}return r.length&&Et(a,r,{ttlMs:Oa}),r})().catch(()=>[]);nt.set(n,r);try{return await r}finally{nt.delete(n);}}(a)).filter(e=>e.startsWith(a));let l=a,c=Math.abs(o-i);for(const u of s.slice(0,4)){const e=qa(await ri(u).catch(()=>null));if(null==e)continue;const t=Math.abs(e-i);if(t1?a:(l!==a&&Et(n,l,{ttlMs:Oa}),l)}function Wa(e){const t=String(e||"").trim().toLowerCase();if(!t)return null;const a=Mt(za(t));return (null==a?void 0:a.slug)?a:null}function Ka(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(i){return ""}}function Ja(e){return ((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim()}function Va(e){const t=String(e||"").trim();return t?/^windows\s*pc$/i.test(t)?"PC":t:""}function Ya(e){var t,a,i;const n=e.querySelector("#interaction-sidebar .col-cover .game-cover img")||e.querySelector("#interaction-sidebar .game-cover img")||e.querySelector(".col-cover .game-cover img")||e.querySelector('meta[property="og:image"]');return Ka((null==(t=null==n?void 0:n.getAttribute)?void 0:t.call(n,"data-src"))||(null==(a=null==n?void 0:n.getAttribute)?void 0:a.call(n,"src"))||(null==(i=null==n?void 0:n.getAttribute)?void 0:i.call(n,"content"))||"")}function Za(e){const t=[...e.querySelectorAll('#game-body a[href*="release_year:"], #game_detail_section a[href*="release_year:"], a.game-year')];for(const a of t){const e=Ja(a).match(/\b(19|20)\d{2}\b/);if(e)return e[0];const t=(a.getAttribute("href")||"").match(/release_year:(\d{4})/i);if(t)return t[1]}return ""}function Xa(e){return [...e.querySelectorAll('#game-body a[href*="release_year:"], #game_detail_section a[href*="release_year:"]')].map(e=>Ja(e)).filter(e=>/\d/.test(e)&&/[a-z]/i.test(e))[0]||""}function Qa(e){const t=e.querySelector("#game-body #game-page-platforms, #game-page-platforms")||e.querySelector("#game_detail_section");if(!t)return [];const a=[],i=new Set;for(const n of t.querySelectorAll('a[href*="release_platform:"]')||[]){const e=Va(Ja(n));if(!e)continue;const t=e.toLowerCase();if(!i.has(t)&&(i.add(t),a.push(e),a.length>=8))break}return a}function ei(e){const t=[...e.querySelectorAll('#game-body .game-title-section a[href*="/company/"], #interaction-sidebar .game-subtitle a[href*="/company/"]')],a=[],i=new Set;for(const n of t){const e=Ja(n);if(!e)continue;const t=e.toLowerCase();if(!i.has(t)&&(i.add(t),a.push({name:e,href:Ka(n.getAttribute("href")||"")||n.getAttribute("href")||""}),a.length>=4))break}return a}function ti(e){const t=e.querySelectorAll("#game-rating h1, .game-rating h1");for(const a of t){const e=Ja(a).replace(",","."),t=Number(e);if(Number.isFinite(t)&&t>0)return Math.max(0,Math.min(5,Math.round(10*t)/10))}return null}function ai(e){const t=e.querySelector("#collapseSummary");if(!t)return "";const a=Ja(t.querySelector("p")||t);return a?a.length<=180?a:`${a.slice(0,179).trimEnd()}…`:""}function ii(e){var t;const a=null==(t=e.querySelector("#game-page-meta[data-game-id]"))?void 0:t.getAttribute("data-game-id"),i=Number(a);return Number.isFinite(i)&&i>0?i:null}function ni(e){const t=e.querySelector('a[href*="igdb.com/games/"]');return Ka((null==t?void 0:t.getAttribute("href"))||"")}async function ri(e){const t=String(e||"").trim().toLowerCase();if(!t)return null;const a=za(t),i=Mt(a);if(null==i?void 0:i.slug)return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{const e=`https://www.backloggd.com/games/${encodeURIComponent(t)}/`,a=function(e,t=""){return function(e,t=""){if(!e)return null;const a=String(t||"").trim().toLowerCase(),i=function(e){var t,a;const i=[e.querySelector("#game-body .game-title-section h1"),e.querySelector("#game-profile h1"),e.querySelector("#center-content h1"),e.querySelector("main h1"),e.querySelector('meta[property="og:title"]')];for(const n of i){if(!n)continue;if(null==(t=n.closest)?void 0:t.call(n,"#game-rating, .game-rating, #ratings-bars-height"))continue;const e=(null==(a=n.getAttribute)?void 0:a.call(n,"content"))||(()=>{var e,t,a;const i=n.cloneNode(true);return null==(a=null==(t=null==(e=i.querySelectorAll)?void 0:e.call(i,"small, .blp-game-id"))?void 0:t.forEach)||a.call(t,e=>e.remove()),Ja(i)})(),i=String(e||"").replace(/\s+\(\d{4}\)\s*$/,"").trim();if(i)return i}return ""}(e)||(a?a.replace(/-/g," "):"");if(!a&&!i)return null;const n=a||(()=>{var t;const a=((null==(t=e.querySelector('link[rel="canonical"]'))?void 0:t.getAttribute("href"))||"").match(/\/games\/([^/?#]+)/i);return a?a[1].toLowerCase():""})();return n?{slug:n,title:i,coverUrl:Ya(e),year:Za(e),releaseDate:Xa(e),platforms:Qa(e),developers:ei(e),rating:ti(e),description:ai(e),gameId:ii(e),igdbUrl:ni(e),gameUrl:`/games/${encodeURIComponent(n)}/`}:null}((new DOMParser).parseFromString(String(e||""),"text/html"),t)}(await la({url:e,method:"GET",responseType:"text",anonymous:false,headers:{Accept:"text/html","Cache-Control":"no-cache"}}),t);return a?(function(e){(null==e?void 0:e.slug)&&Et(za(e.slug),e,{ttlMs:Oa});}(a),$t(a)):null})().catch(()=>null);nt.set(a,n);try{return await n}finally{nt.delete(a);}}function oi(e){return String((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim().toLowerCase()}function si(e){const t=String(e||"").trim();return t?/^https?:\/\//i.test(t)?t:t.startsWith("/")?`${j}${t}`:`${j}/${t}`:""}function li(e){const t=String(e||"").trim();return t?`${j}/franchise/${encodeURIComponent(t).replace(/%20/g,"+")}/`:""}function ci(e){return `steamdb:meta:${Number(e)}`}function ui(e){const t=e.querySelectorAll(":scope > td");return t.length>=2?t:e.querySelectorAll("td")}function di(e){var t,a;if(!(null==e?void 0:e.querySelectorAll))return null;const i={franchise:null,systems:null,technologies:[],lastRecordUpdate:null,source:"steamdb",blocked:false},n=e.querySelectorAll(".span8 table.table tbody tr, table.table-bordered tbody tr, table.table tbody tr");for(const r of n){const e=ui(r);if(e.length<2)continue;const n=oi(e[0]),o=e[1];if(n.startsWith("franchise")){const e=o.querySelector('a[href*="/franchise/"]'),t=String((null==e?void 0:e.textContent)||o.textContent||"").replace(/\s+/g," ").trim();t&&(i.franchise={name:t,url:si(null==e?void 0:e.getAttribute("href"))||li(t)});continue}if(n.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 n=o.querySelector('[aria-label*="Steam Deck"]')||o.querySelector('[aria-label*="steam deck"]'),r=String((null==n?void 0:n.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)&&(i.systems={list:t,deckCompat:a});continue}if(n.startsWith("technologies")){const e=[];o.querySelectorAll('a[href*="/tech/"]').forEach(t=>{const a=String(t.textContent||"").replace(/\s+/g," ").trim(),i=si(t.getAttribute("href"));a&&i&&e.push({name:a,url:i});}),i.technologies=e;continue}if(n.startsWith("last record update")){const e=o.querySelector("relative-time[datetime], relative-time[content]"),n=(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(),(n||r)&&(i.lastRecordUpdate={iso:n||null,label:r||n});}}return i.franchise||i.systems||i.technologies.length||i.lastRecordUpdate?i:null}function pi(e,t,{pageUrl:a=""}={}){const i=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||`${W}/${i}/`}}async function mi(){const e=Mt(V);if(e&&"object"==typeof e)return e;if(nt.has(V))return nt.get(V);const t=(async()=>{const e=await la({url:D}),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 Et(V,t,{ttlMs:Y}),t})();nt.set(V,t);try{return await t}finally{nt.delete(V);}}function gi(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 hi(e){const t=String(e||"").trim();return t?`https://steamdb.info/franchise/${encodeURIComponent(t).replace(/%20/g,"+")}/`:""}function bi(e){var t,a;const i=null==(t=null==e?void 0:e.basic_info)?void 0:t.franchises;if(!Array.isArray(i)||!i.length)return null;const n=String((null==(a=i[0])?void 0:a.name)||"").trim();return n?{name:n,url:hi(n)}:null}function fi(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 i=gi(e);return a.length||null!=i?{list:a,deckCompat:i}:null}async function Si(e,t){const a=Number(e),i=String(t||"US").toUpperCase(),n=`steam:storeitem:${a}:${i}`,r=`steam:tags:${a}`,o=`steam:assets:${a}`,s=`steam:extras:${a}:${i}`,l=Mt(r),c=Mt(o),u=Mt(s),d=null!=c;if(l&&d&&u)return {tags:l,assets:c.empty?null:c,extras:u,_cache:"hit"};if(nt.has(n))return nt.get(n);const p=(async()=>{var e,t;try{const n=JSON.stringify({ids:[{appid:a}],context:{language:"english",country_code:i,steam_realm:1},data_request:{include_tag_count:12,include_assets:!0,include_platforms:!0,include_basic_info:!0,include_all_purchase_options:!0}}),[p,m]=await Promise.all([la({url:`${M}?input_json=${encodeURIComponent(n)}`}),mi()]),g=null==(t=null==(e=null==p?void 0:p.response)?void 0:e.store_items)?void 0:t[0],h=(Array.isArray(null==g?void 0:g.tags)?g.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),b=function(e,t){if(!t||"object"!=typeof t)return null;const a=Number(e),i=String(t.community_icon||"").trim(),n=i?`https://shared.fastly.steamstatic.com/community_assets/images/apps/${a}/${i}.jpg`:"",r=String(t.header||"header.jpg").trim();let o="";return t.asset_url_format&&r&&(o=`${q}/${String(t.asset_url_format).replace("${FILENAME}",r)}`),!o&&r&&(o=Ei(a,r)),n||o?{iconUrl:n,logoUrl:o,source:"steam-assets"}:null}(a,null==g?void 0:g.assets),f=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 i=Array.isArray(t.active_discounts)?t.active_discounts:[];for(const n of i){const e=Number(null==n?void 0:n.discount_end_date);if(Number.isFinite(e)&&e>0){a=e;break}}return {discountEndDate:a}}(g),S={deckCompat:gi(g),franchise:bi(g),systems:fi(g),...f};Et(r,h),Et(o,b||{empty:!0}),Et(s,S);const v=Boolean(l||d||u);return {tags:h.length?h:l||[],assets:b||(c&&!c.empty?c:null)||null,extras:S||u||null,_cache:v?"mixed":"miss"}}catch(n){return {tags:l||[],assets:c&&!c.empty?c:null,extras:u||null,_cache:l||d||u?"hit":"miss"}}})();nt.set(n,p);try{return await p}finally{nt.delete(n);}}async function vi(e,t){const{tags:a}=await Si(e,t);return a}function yi(e,t){const a=String(t||"").trim();if(!a)return "";const i=String((null==e?void 0:e.asset_url_format)||"").trim();return i?`${q}/${i.replace("${FILENAME}",a)}`:""}function wi(e){var t;const a=new Map;if(!Array.isArray(e))return a;for(const i of e){const e=Number(null!=(t=null==i?void 0:i.id)?t:null==i?void 0:i.tagid);if(!Number.isFinite(e)||e<=0)continue;const n=Number(null==i?void 0:i.weight);a.set(e,Number.isFinite(n)&&n>0?n:1);}return a}function ki(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 Ci(e){return (Array.isArray(e)?e:[]).map(Number).filter(e=>Number.isFinite(e)&&e>0)}async function Pi(){const e=Ft();if(e)return {owned:new Set(e.appIds),wishlist:new Set(e.wishlistAppIds)};if(nt.has(J))return nt.get(J);const t=(async()=>{try{const e=await la({url:`${H}?t=${Date.now()}`,anonymous:!1,headers:{"Cache-Control":"no-cache"}}),t=Ci(null==e?void 0:e.rgOwnedApps),a=Ci(null==e?void 0:e.rgWishlist);return function(e){const t=Date.now();Tt()[J]={ts:t,at:t,data:e},yt(J),xt();}({appIds:t,wishlistAppIds:a}),{owned:new Set(t),wishlist:new Set(a)}}catch(e){return {owned:new Set,wishlist:new Set}}})();nt.set(J,t);try{return await t}finally{nt.delete(J);}}async function Ti({appId:e,country:t,hit:a=null,anonymous:i=true,usedUsFallback:n=false,requestedCountry:r,onPartial:o,includeTags:s=true,debugBase:l=null,cacheKey:c="",manualOverride:u=false}){var d;const p=Number(e),m=String(t||"US").toUpperCase(),g=String(r||m).toUpperCase(),h=l||{appId:p,country:g,cacheKey:c,cacheSkipped:false,manualOverride:u},b=`${L}?appids=${p}&cc=${encodeURIComponent(m)}&l=english`,f=`https://store.steampowered.com/appreviews/${p}?json=1&language=all&purchase_type=all&num_per_page=0`;h.detailsUrl=b,h.reviewsUrl=f,h.manualOverride=Boolean(u);const S=s&&false!==Qe.showSteamTags,v=s;if(S||v){const e=JSON.stringify({ids:[{appid:p}],context:{language:"english",country_code:m,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=`${M}?input_json=${encodeURIComponent(e)}`,h.tagMapUrl=D;}const y=la({url:b,anonymous:i}),w=la({url:f,anonymous:i}).catch(e=>(h.reviewsError=String((null==e?void 0:e.message)||e),null)),k=S||v?Si(p,m).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 y;}catch(_){return h.reason=`Steam details failed: ${(null==_?void 0:_.message)||_}`,{found:false,manualOverride:Boolean(u),_debug:h}}let P=null,T=[],B=null,x=false;const A=()=>{var e,t,r,o,s;const l=(null==(e=null==C?void 0:C[p])?void 0:e.success)?C[p].data:null;h.reason=l?`Matched Steam app ${p} (${(u?["manual App ID",m]:[i?"guest items":"session items",n?`US fallback (requested ${g})`:m]).join(", ")})`:`App ${p} resolved, but appdetails success=false`,h.detailsSuccess=Boolean(null==(t=null==C?void 0:C[p])?void 0:t.success),h.detailsCountry=m,h.reviews=(null==P?void 0:P.query_summary)||null,h.tags=T,h.categories=ki(l),h.extras=B;const c=(null==B?void 0:B.franchise)||null,d=(null==B?void 0:B.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:p,name:(null==l?void 0:l.name)||(null==a?void 0:a.name)||`App ${p}`,storeUrl:`https://store.steampowered.com/app/${p}/`,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==P?void 0:P.query_summary)||null,tags:T,categories:ki(l),deckCompat:null!=(o=null==B?void 0:B.deckCompat)?o:null,franchise:c,systems:d,discountEndDate:null!=(s=null==B?void 0:B.discountEndDate)?s:null,releaseYear:Ai(l),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(n),requestedCountry:g,searchCountry:m,manualOverride:Boolean(u),_debug:h}},H=()=>{x&&"function"==typeof o&&o(A());},E=w.then(e=>(P=e,H(),e)),G=k.then(e=>(T=S&&(null==e?void 0:e.tags)||[],B=(null==e?void 0:e.extras)||null,H(),e));x=true,H(),await Promise.all([E,G]);const $=A();return (null==(d=null==C?void 0:C[p])?void 0:d.success)||a||($.found=false),c&&$.found&&function(e,t,a){var i;if(!e||!(null==t?void 0:t.found)||!At())return;const n=It(t);if(a)return n.tagsLoaded=true,void Et(e,n);n.tagsLoaded=false;const r=Tt()[e];(null==(i=null==r?void 0:r.data)?void 0:i.found)&&true===r.data.tagsLoaded&&!Ht(e,r)||Et(e,n);}(c,$,s),$t($)}async function Bi(e,{includeTags:t,country:a,manualOverride:i,accept:n}){const r=Mt(e);if(!r)return null;if("function"==typeof n&&!n(r))return null;let o={...r,manualOverride:Boolean(i||r.manualOverride)},s=false;return function(e,t){return !(!t||false===Qe.showSteamTags||!(null==e?void 0:e.found)||null==e.appId||true===e.tagsLoaded)}(o,t)&&(o=await async function(e,t){const a=await vi(e.appId,t).catch(()=>[]);return {...e,tags:Array.isArray(a)?a:[],tagsLoaded:true}}(o,a),Et(e,It(o)),s=true),s?null==(l=o)||"object"!=typeof l?l:{...l,_cache:"mixed"}:Gt(o);var l;}async function xi(e,t,{onPartial:a,includeTags:i=true,manualOverride:n=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=i?s:`${s}:lite`,c=await Bi(s,{includeTags:i,country:o,manualOverride:n});if(c)return c;if(nt.has(l))return nt.get(l);const u=Ti({appId:r,country:o,requestedCountry:o,anonymous:true,onPartial:a,includeTags:i,cacheKey:s,manualOverride:n,debugBase:{appId:r,country:o,cacheKey:s,cacheSkipped:false,manualOverride:Boolean(n),searches:[]}});nt.set(l,u);try{return await u}finally{nt.delete(l);}}function Ai(e){var t;const a=String((null==(t=null==e?void 0:e.release_date)?void 0:t.date)||"").match(/(19|20)\d{2}/);return a?Number(a[0]):null}function Li(e,t,a){const i=Number(t),n=Number(null==e?void 0:e.releaseYear);return !(!(null==e?void 0:e.found)||e.manualOverride||!Number.isFinite(i)||i<=0||!Number.isFinite(n)||n<=0||n-i<10||Fa(e.name)===i||!(Na(e.name,a)>=100))}function Hi(e,t,a=null){const i=Number(a),n=Number.isFinite(i)&&i>0?`@${i}`:"";return `steam:${String(e||"US").toUpperCase()}:${Ma(t)}${n}`}function Di(e,t,a=null){const i=Hi(e,t,a),n=Hi(e,t,null);return i===n?[i]:[i,n]}async function Mi({title:e,slug:t,country:a,onPartial:i,includeTags:n=true,year:r=null}){if(Ut(t))return {found:false,manualOverride:true,disabled:true,_debug:{reason:"Marked as not on Steam (manual)",slug:t}};const o=zt(t)?null:Number(r)||Ua(t),s=function(e,t,a,i=null){const n=String(a||"US").toUpperCase(),r=zt(t);return r?`id:${n}:${r}`:`title:${n}:${Ma(e)}${Number(i)>0?`@${Number(i)}`:""}`}(e,t,a,o);if(rt.has(s))return {found:false,_debug:{reason:"Steam miss (session memory)",missKey:s}};const l=zt(t);let c;if(l)c=await xi(l,a,{onPartial:i,includeTags:n,manualOverride:true});else if(c=await async function(e,t,{onPartial:a,includeTags:i=true,year:n=null}={}){const r=String(t||"US").toUpperCase(),o=Hi(r,e,n),s=i?o:`${o}:lite`;for(const c of Di(r,e,n)){const t=await Bi(c,{includeTags:i,country:r,manualOverride:false,accept:c===o?void 0:t=>!Li(t,n,e)});if(t)return t}if(nt.has(s))return nt.get(s);const l=(async()=>{const t={title:e,country:r,cacheKey:o,cacheSkipped:false,searches:[]},s=async(t,a)=>{var i,n;const r=(t=>`https://store.steampowered.com/api/storesearch/?term=${encodeURIComponent(e)}&l=english&cc=${encodeURIComponent(t)}`)(t);try{const e=await la({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!=(i=null==e?void 0:e.total)?i:o.length,items:o,summary:{anonymous:a,country:t,url:r,total:null!=(n=null==e?void 0:e.total)?n: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)}}}},l=(t,a)=>{const i=new Map;for(const e of [...t.items||[],...a.items||[]])(null==e?void 0:e.id)&&(i.has(e.id)||i.set(e.id,e));const r=[...i.values()],o=function(e,t,a=null){const i=(e||[]).filter(e=>e&&"app"===e.type&&e.id);if(!i.length)return null;const n=i.filter(e=>!/\b(dlc|soundtrack|ost|bundle|pack|edition upgrade|cosmetic)\b/i.test(e.name)),r=n.length?n:i;let o=null,s=0;for(const l of r){const e=Na(l.name,t,a);e>s&&(s=e,o=l);}return s>=85?o:null}(r,e,n)||null,s=new Set((t.items||[]).map(e=>null==e?void 0:e.id).filter(Boolean));return {hit:o,mergedItems:r,anonymous:o?!s.has(o.id):Boolean(a.ok&&!t.ok)}},c=async e=>{const[a,i]=await Promise.all([s(e,false),s(e,true)]);return t.searches.push(a.summary,i.summary),{...l(a,i),sessionResult:a,guestResult:i,country:e}};let u=r,d=false,p=await c(u);p.hit||"US"===u||(d=true,u="US",t.usFallback={from:r,to:"US",reason:`No matches for ${r}; retrying US`},p=await c("US"));const{hit:m,anonymous:g}=p;return t.searchCountry=u,t.usedUsFallback=d,t.anonymous=g,m?(t.picked={id:m.id,name:m.name,type:m.type},Ti({appId:m.id,country:u,hit:m,anonymous:g,usedUsFallback:d,requestedCountry:r,onPartial:a,includeTags:i,debugBase:t,cacheKey:o,manualOverride:false})):(t.reason=d?`No Steam search match for ${r} or US (session + guest, parallel)`:"No Steam search match (session + guest, parallel)",{found:false,_debug:t})})();nt.set(s,l);try{return await l}finally{nt.delete(s);}}(e,a,{onPartial:"function"==typeof i?t=>{Li(t,o,e)||i(t);}:void 0,includeTags:n,year:o}),Li(c,o,e))return function(e,t){return {found:false,yearMismatch:true,_debug:{...(null==e?void 0:e._debug)||{},reason:`Skipped Steam app ${null==e?void 0:e.appId} "${null==e?void 0:e.name}": released ${null==e?void 0:e.releaseYear}, Backloggd entry is ${t} (likely a remake/reboot)`}}}(c,o);return (null==c?void 0:c.found)?rt.delete(s):rt.add(s),c}function Ei(e,t){return `https://shared.fastly.steamstatic.com/store_item_assets/steam/apps/${Number(e)}/${t}`}async function Gi(e,{onPartial:t,country:a}={}){const i=Number(e);if(!Number.isFinite(i)||i<=0)return null;const n=Qe.showSteamDbIcon||Qe.showSteamDbCover,r=Qe.showSteamDbGallery,o=Qe.showSteamPlayers,s=false!==Qe.showSteamDbDetails;if(!(n||r||o||s))return null;const l=`steamdb:media:${i}`,c=`steam:screenshots:${i}`,u=Boolean(Qe.debugMode);let d=Mt(l),p=Boolean(d),m=r?Mt(c):null,g=Array.isArray(m);m&&!Array.isArray(m)&&(m=null,g=false);let h=null,b=null,f=null,S=null,v=false;const y=a||Qe.steamCountry||"US",w=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)||Ei(i,"header.jpg")||Ei(i,"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=n?p?"hit":d?"miss":"na":"na",y=r?g?"hit":Array.isArray(m)?"miss":"na":"na",w=s?v?"hit":S?"miss":"na":"na",k=Array.isArray(null==S?void 0:S.technologies)?S.technologies:[];return {appId:i,iconUrl:n&&Qe.showSteamDbIcon?e:"",logoUrl:n&&Qe.showSteamDbCover?t:"",logoIsPortrait:Boolean(a),screenshots:r&&Array.isArray(m)?m:null,players:o?h:null,franchise:s&&(null==S?void 0:S.franchise)||null,systems:s&&(null==S?void 0:S.systems)||null,technologies:s?k:[],lastRecordUpdate:s&&(null==S?void 0:S.lastRecordUpdate)||null,metaBlocked:Boolean(null==S?void 0:S.blocked),source:(null==d?void 0:d.source)||(null==S?void 0:S.source)||"steam",_cache:Rt(c,y,w),_cacheMedia:c,_cacheShots:y,_cachePlayers:l,_cacheMeta:w,_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}`:n?"Waiting for Steam assets":null,r?Array.isArray(m)?`Screenshots: ${m.length} from appdetails`:"Screenshots pending":null,"steam-api"===b?"Players from GetNumberOfCurrentPlayers (live, not cached)":o?"Players pending":null,s?(null==S?void 0:S.blocked)?"SteamDB HTML blocked (Cloudflare)":"steamdb"===(null==S?void 0:S.source)?"SteamDB app table parsed":(null==S?void 0:S.error)?`SteamDB meta error: ${S.error}`:"SteamDB meta pending":null].filter(Boolean).join(" · "),chartsUrl:`${W}/${i}/charts/`,pageUrl:`${W}/${i}/`,playersApiUrl:f,playersSource:b,media:d,screenshots:m,players:h,pageMeta:S,iconUrl:e,logoUrl:t}:void 0}};n&&!d?(d={iconUrl:"",logoUrl:Ei(i,"header.jpg"),source:"steam-cdn-early"},w(k())):(n||r||s)&&w(k());const C=n&&!p?async function(e,t){const{assets:a}=await Si(e,t);return a}(i,y).catch(()=>null):Promise.resolve(null),P=r&&!Array.isArray(m)?async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return $t([]);const a=`steam:screenshots:${t}`,i=Mt(a);if(Array.isArray(i))return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{var e;try{const i=`${L}?appids=${encodeURIComponent(t)}&filters=screenshots&l=english`,n=await la({url:i,anonymous:!0}),r=function(e){const t=Array.isArray(null==e?void 0:e.screenshots)?e.screenshots:[],a=[];for(const i of t){const e=String((null==i?void 0:i.path_thumbnail)||"").trim(),t=String((null==i?void 0:i.path_full)||e).trim();(e||t)&&a.push({id:null!=(null==i?void 0:i.id)?Number(i.id):a.length,thumb:e||t,full:t||e});}return a}((null==(e=null==n?void 0:n[t])?void 0:e.success)?n[t].data:null);return r.length&&Et(a,r),$t(r)}catch(i){return $t([])}})();nt.set(a,n);try{return await n}finally{nt.delete(a);}}(i).then(e=>(m=Array.isArray(e)?e:[],g="hit"===_t(e),w(k()),m)):Promise.resolve(m),T=o&&null==h?(async()=>{f=`${E}?appid=${encodeURIComponent(i)}`;const e=await async function(e){var t;try{const a=await la({url:`${E}?appid=${encodeURIComponent(e)}`,anonymous:!0}),i=Number(null==(t=null==a?void 0:a.response)?void 0:t.player_count);return Number.isFinite(i)?i:null}catch(a){return null}}(i);null!=e&&(h=e,b="steam-api",w(k()));})():Promise.resolve(),B=s?async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return $t(null);const a=ci(t),i=Mt(a);if(i&&"object"==typeof i&&!i.blocked)return Gt(i);if(nt.has(a))return nt.get(a);const n=`${W}/${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 di(t)}(await la({url:n,responseType:"text",timeout:2e4,anonymous:!1}));if(!e||e.blocked)return $t(e||{blocked:!0,source:"steamdb-cf"});const i=pi(t,e,{pageUrl:n});return Et(a,i),$t(i)}catch(e){return $t({blocked:false,source:"steamdb-error",error:String((null==e?void 0:e.message)||e),pageUrl:n})}})();nt.set(a,r);try{return await r}finally{nt.delete(a);}}(i).then(e=>(S=e&&"object"==typeof e?It(e)||e:null,v="hit"===_t(e),w(k()),S)):Promise.resolve(null),[x]=await Promise.all([C,P,T,B]);x&&(x.iconUrl||x.logoUrl)&&(d={iconUrl:x.iconUrl||(null==d?void 0:d.iconUrl)||"",logoUrl:x.logoUrl||(null==d?void 0:d.logoUrl)||"",source:"steam-assets"},p||Et(l,d),w(k())),n&&Qe.showSteamDbIcon&&d&&!d.iconUrl&&(d={...d,iconUrl:Ei(i,"capsule_sm_120.jpg")}),r&&!Array.isArray(m)&&(m=[]);const A=k();return w(A),A}const $i=function(){const e="undefined"!=typeof document&&document.createElement("link").relList;return e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}(),_i={},Ri="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";let Ii=null;function Fi(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 Ni(e){const t=Number(e);return !Number.isFinite(t)||t<=0?null:t/3600}function Oi(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 zi(e,t){if(!Array.isArray(e)||!e.length)return null;const a=e.map(e=>({item:e,titleScore:Na((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 i=a[0];return i.titleScore>=85?{item:i.item,score:i.titleScore}:Number.isFinite(i.dist)&&i.dist<=.12?{item:i.item,score:Math.max(i.titleScore,80)}:null}function Ui(e){return {Accept:"application/json","X-RapidAPI-Key":e,"X-RapidAPI-Host":G}}function qi(...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}async function ji(e){return function(e,t){var a;const i=function(e){return e.replace(/&q;/g,'"').replace(/&s;/g,"'").replace(/&a;/g,"&")}(String(e||""));if(!i)return null;let n=null,r=null,o=null,s=null;const l=i.match(/"topCriticScore"\s*:\s*(-?[0-9]+(?:\.[0-9]+)?)\s*,\s*"percentile"\s*:\s*[0-9.]+\s*,\s*"tier"\s*:\s*"(Mighty|Strong|Fair|Weak)"(?:\s*,\s*"name"\s*:\s*"([^"]+)")?/i),c=null!=(a=qi(null==l?void 0:l[1]))?a:function(e){const t=e.match(/"topCriticScore"\s*:\s*([0-9]+(?:\.[0-9]+)?)/);if(t){const e=qi(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=qi(a[1]);if(null!=e)return e}const i=e.match(/Top Critic Average[\s\S]{0,160}?(\d{2,3})/i);if(i){const e=qi(i[1]);if(null!=e)return e}return null}(i);l&&(n=l[2],r=l[3]);const u=i.match(/"id"\s*:\s*(\d+)/);u&&(o=Number(u[1]));const d=i.match(/"slug"\s*:\s*"([a-z0-9-]+)"/i);if(d&&(s=d[1]),!r){const e=i.match(/]*>\s*([^|<]+?)\s*(?:Reviews)?\s*[-–|]/i);e&&(r=e[1].trim());}const p=String(t||"").match(/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/i);return p&&(o=Number(p[1]),s=p[2]),n?{id:o,name:r||s||null,tier:n,score:c,url:o&&s?`${I}/game/${o}/${encodeURIComponent(s)}`:t||I,source:"html",scoreParseV2:true}:null}(await la({url:e,responseType:"text",headers:{Accept:"text/html",Referer:`${I}/`},timeout:2e4}),e)}function Wi(){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 Ki(){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 Ji(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 Vi=[];function Yi(e){Vi=e;}function Zi(e){const t=document.querySelector(`[${b}="cover"]`);if(!t)return;const a=Array.isArray(e)?e.findIndex(e=>"cover"===e.kind):-1;if(!Qe.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",tt.steamGalleryOpen);const i=()=>rn(e,a);t.onclick=e=>{e.preventDefault(),i();},t.onkeydown=e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i());};}const Xi="data-blp-cover-viewer";function Qi(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 i={src:t||a,thumb:a||t,kind:"cover",alt:e.getAttribute("alt")||""},n=new Set([i.src,i.thumb].filter(Boolean)),r=[];for(const o of Vi||[]){const e=String(o.full||o.src||o.thumb||"").trim(),t=String(o.thumb||o.full||o.src||"").trim();e&&!n.has(e)&&(n.add(e),r.push({src:e,thumb:t||e,kind:o.kind||"screenshot",alt:o.alt||""}));}nn({items:[i,...r],index:0,title:Ki()||tt.viewerOpenCover});}(t);}function en(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.stopPropagation(),Qi(e));}function tn(){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(Xi)&&(e.setAttribute(Xi,"1"),e.classList.add("blp-cover-zoomable"),e.setAttribute("role","button"),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",tt.viewerOpenCover),e.addEventListener("click",Qi),e.addEventListener("keydown",en));}const an=(()=>{const e=1.25;let t=null;function a(e,t,a){return Math.min(a,Math.max(t,e))}function i(){if(!t)return;const{root:e,onKeyDown:a,onClose:i,prevOverflow:n}=t;if(document.removeEventListener("keydown",a,true),null==e||e.remove(),null!=n&&(document.documentElement.style.overflow=n),t=null,"function"==typeof i)try{i();}catch(r){}}function n(){if(!t)return;const{frame:e,scale:a,tx:i,ty:n}=t;e.style.transform=`translate(${i}px, ${n}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(i)<1&&Math.abs(n)<1);}function r(){t&&(t.scale=1,t.tx=0,t.ty=0,n());}function o(e,i,r){if(!t)return;const o=t.stage.getBoundingClientRect(),s=(null==i?o.left+o.width/2:i)-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),n()):n();}function s(e,a,i){t&&o(t.scale*e,a,i);}function l(e){var a,i;t&&(null==(a=t.stage)||a.classList.toggle("is-loading",Boolean(e)),null==(i=t.root)||i.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:i,img:n}=t,o=(e%i.length+i.length)%i.length;t.index=o;const s=i[o];if(!s||!n)return;const c=++t.loadGen;n.alt=s.alt||"",a||r(),function(){if(!t)return;const{film:e,index:a,items:i}=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 n=e.querySelector(`[data-blp-viewer-thumb="${a}"]`);null==n||n.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"}),t.counter&&(t.counter.textContent=le(tt.viewerOf,{current:a+1,total:i.length}));const r=i.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 i of [-1,1,2]){const n=a[((e+i)%a.length+a.length)%a.length],r=null==n?void 0:n.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((n.getAttribute("src")||"")===u&&n.complete&&n.naturalWidth>0)return void l(false);l(true);const d=()=>{t&&t.loadGen===c&&l(false);};n.addEventListener("load",d,{once:true}),n.addEventListener("error",d,{once:true}),n.src=u,n.complete&&n.naturalWidth>0&&d();}function u(e){t&&c(t.index+e);}return {open:function(l={}){var d,p,m,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(),i=String(a.thumb||a.thumbnail||e).trim();(e||i)&&t.push({src:e||i,thumb:i||e,alt:String(a.alt||""),kind:String(a.kind||"")});}return t}(l.items);if(!b.length)return null;i();let f=Number(l.index);Number.isFinite(f)||(f=0),f=a(0|f,0,b.length-1);const S=l.title||tt.steamGalleryTitle||"",v=document.createElement("div");v.className="blp-viewer",v.setAttribute("role","dialog"),v.setAttribute("aria-modal","true"),v.setAttribute("aria-label",S||"Image viewer"),v.innerHTML=`\n
    \n
    \n ${ct(S)}\n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n `;const y=v.querySelector("[data-blp-viewer-film]");y.innerHTML=b.map((e,t)=>`\n \n `).join("");const w=a=>{if(t)return "Escape"===a.key?(a.preventDefault(),void i()):"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:f,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:y,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:w,onClose:l.onClose},document.documentElement.style.overflow="hidden",null==(d=t.prevBtn)||d.addEventListener("click",e=>{e.stopPropagation(),u(-1);}),null==(p=t.nextBtn)||p.addEventListener("click",e=>{e.stopPropagation(),u(1);}),null==(m=t.zoomInBtn)||m.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();}),y.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,p=0,m=new Map,g=0,h=1;const b=(e,a)=>{const i=t.img;if(!i)return false;const n=i.getBoundingClientRect();return e>=n.left&&e<=n.right&&a>=n.top&&a<=n.bottom},f=e=>{var t;m.delete(e.pointerId),m.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 i,n;if(null==e.button||0===e.button){if(m.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===m.size){const n=[...m.values()];return g=Math.hypot(n[0].x-n[1].x,n[0].y-n[1].y)||1,h=t.scale,c=false,void(null==(i=a.setPointerCapture)||i.call(a,e.pointerId))}b(e.clientX,e.clientY)&&(null==(n=a.setPointerCapture)||n.call(a,e.pointerId),c=true,u=false,d=e.clientX,p=e.clientY,a.classList.add("is-dragging"));}}),a.addEventListener("pointermove",e=>{if(m.has(e.pointerId)&&m.set(e.pointerId,{x:e.clientX,y:e.clientY}),2===m.size){const e=[...m.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,i=e.clientY-p;(Math.abs(a)>1||Math.abs(i)>1)&&(u=true),d=e.clientX,p=e.clientY,t.tx+=a,t.ty+=i,n();}),a.addEventListener("pointerup",f),a.addEventListener("pointercancel",f),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]")?i():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)||i());});}(),document.body.appendChild(v),document.addEventListener("keydown",w,true),c(f),t},close:i,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 nn(e){return an.open(e)}function rn(e,t){nn({items:e,index:t,title:tt.steamGalleryTitle});}function on(e){return "hit"===e?tt.debugCacheHit:"miss"===e?tt.debugCacheMiss:"mixed"===e?tt.debugCacheMixed:tt.debugCacheNa}function sn(e,t,{titleSelector:a=".game-details-header"}={}){var i;if(!e)return;const n=["hit","miss","mixed","na"];e.classList.remove("blp-debug-cache",...n.map(e=>`blp-debug-cache--${e}`));const r=e.querySelector(a);if(null==(i=null==r?void 0:r.querySelector(".blp-cache-badge"))||i.remove(),!Qe.debugMode)return;const o=n.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=on(o),s.title=on(o),r.appendChild(s);}function ln(e,t){let a=0;return function(...i){clearTimeout(a),a=setTimeout(()=>e.apply(this,i),t);}}const cn="blp-toast-host",un="blp_toast_queue",dn={success:'',info:'',warning:'',error:''};function pn(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 mn(e,t={}){let a="",i="",n=t;e&&"object"==typeof e&&!Array.isArray(e)?(n={...e,...t},a=n.title||"",i=n.message||n.description||""):(i=String(e||""),a=t.title||"");const r=function(e){return ["info","success","warning","error"].includes(e)?e:"info"}(n.type);return a=String(a||"").trim()||function(e){return "success"===e?tt.toastTitleSuccess||"Success":"warning"===e?tt.toastTitleWarning||"Notice":"error"===e?tt.toastTitleError||"Error":tt.toastTitleInfo||"Info"}(r),i=String(i||"").trim(),{title:a,message:i,type:r,duration:Number.isFinite(n.duration)&&n.duration>0?n.duration:4200}}function gn(e,t={}){const{title:a,message:i,type:n,duration:r}=mn(e,t);if(!a&&!i)return null;const o=function(){let e=document.getElementById(cn);return (null==e?void 0:e.isConnected)||(e=document.createElement("div"),e.id=cn,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;)pn(o.firstElementChild);const s=tt.toastDismiss||"Dismiss",l=document.createElement("div");l.className=`blp-toast blp-toast--${n}`,l.setAttribute("role","status"),l.innerHTML=``+(a?`${ct(a)}`:"")+(i?`${ct(i)}`:"")+``+(r<1/0?``:"");const c=l.querySelector(".blp-toast__close");if(null==c||c.addEventListener("click",e=>{e.stopPropagation(),pn(l);}),l.addEventListener("click",e=>{e.target.closest(".blp-toast__close")||pn(l);}),o.appendChild(l),requestAnimationFrame(()=>{l.classList.add("is-in");}),r<1/0){let e=r,t=Date.now(),a=setTimeout(()=>pn(l),e);const i=l.querySelector(".blp-toast__progress");l.addEventListener("mouseenter",()=>{clearTimeout(a),e-=Date.now()-t,i&&(i.style.animationPlayState="paused");}),l.addEventListener("mouseleave",()=>{"1"!==l.dataset.blpLeaving&&(t=Date.now(),a=setTimeout(()=>pn(l),Math.max(0,e)),i&&(i.style.animationPlayState="running"));});}return l}function hn(e,t={}){const{title:a,message:i,type:n,duration:r}=mn(e,t);if(a||i)try{const e=sessionStorage.getItem(un),t=e?JSON.parse(e):[],o=Array.isArray(t)?t:[];o.push({title:a,message:i,type:n,duration:r}),sessionStorage.setItem(un,JSON.stringify(o.slice(-5)));}catch(o){}}function bn(){return true===Qe.showExport}const fn=["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"],Sn="data-blp-export",vn="blp-export-backdrop";function yn(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 wn(e){const t=null==e?"":String(e);return /[",\r\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t}function kn(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 Cn(e){const t=String(e||"").trim();return t?/^windows\s*pc$/i.test(t)?"PC":t:""}function Pn(){return document.querySelector("#log-editor-full")||document.querySelector("#journal-game-modal .modal-content #log-editor-full")||document.querySelector("#journal-game-modal .modal-body")}function Tn(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 Bn={wishlist:"Planned",backlog:"Planned",playing:"In progress",shelved:"Deferred",abandoned:"Dropped",retired:"Tried",played:"Done"},xn={wishlist:"Wishlist",backlog:"Backlog",playing:"Playing",shelved:"Shelved",abandoned:"Abandoned",retired:"Retired",played:"Played"};function An(e,t="notion"){const a=Tn(e);return "original"===t?a&&xn[a]||"":a?Bn[a]||"":"Not started"}function Ln(){var e,t;const a=Pn();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 i=Tn(null==(e=a.querySelector("#status"))?void 0:e.value);return i||Tn(((null==(t=a.querySelector("#play-label-title"))?void 0:t.textContent)||"").trim())}const i=[[".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[n,r]of i){const e=document.querySelectorAll(`#logging-sidebar-section ${n}`);for(const t of e)if(kn(t))return r}return ""}function Hn(){const e=Pn();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 Dn(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(i){}return t}function Mn(){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 En(){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 Gn(){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 $n(){const e=function(){var e;const t=Pn();if(!t)return "";const a=function(e,t=document){var a;const i=t.querySelector(`button[data-id="${e}"]`),n=((null==(a=null==i?void 0:i.querySelector(".filter-option-inner-inner"))?void 0:a.textContent)||(null==i?void 0:i.getAttribute("title"))||"").trim();if(n&&!/select|choose|ex:/i.test(n))return n;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 Cn(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=>Cn(e)).join(", ")}function _n(){const e=[...document.querySelectorAll('[data-blp-enrich="steam"] .blp-steam-tag')].map(e=>(e.textContent||"").trim()).filter(Boolean);return [...new Set(e)].join(", ")}function Rn(){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 In(){var e,t,a;const i=(null==(e=document.querySelector(`[${b}="cover"]`))?void 0:e.getAttribute("data-blp-appid"))||(null==(t=document.querySelector(`[${b}="icon"]`))?void 0:t.getAttribute("data-blp-appid"))||"";if(i)return `https://store.steampowered.com/app/${i}/`;const n=document.querySelector('[data-blp-enrich="links"] a[href*="store.steampowered.com/app/"]');return (null==(a=null==n?void 0:n.href)?void 0:a.split("?")[0])||""}function Fn(e,{ratingStyle:t="text",statusStyle:a="notion"}={}){var i;const n={};for(const r of fn)n[r]=null!=(i=e[r])?i:"";return n.Rating=yn(e._ratingScore10,t),n.Status=An(e._statusKey,a),n}const Nn={csv:{ext:"csv",mime:"text/csv;charset=utf-8",bom:true,build:function(e,t={}){return function(e,t=fn){const a=[t.map(wn).join(",")];for(const i of e)a.push(t.map(e=>{var t;return wn(null!=(t=i[e])?t:"")}).join(","));return `${a.join("\r\n")}\r\n`}([Fn(e,t)])}},markdown:{ext:"md",mime:"text/markdown;charset=utf-8",bom:false,build:function(e,t={}){var a;const i=Fn(e,t),n=[`# ${i.Name||"Untitled"}`,""];for(const r of fn)"Name"!==r&&n.push(`${r}: ${null!=(a=i[r])?a:""}`);return `${n.join("\n")}\n`}},json:{ext:"json",mime:"application/json;charset=utf-8",bom:false,build:function(e,t={}){return `${JSON.stringify(Fn(e,t),null,2)}\n`}}};function On(e,t,a={}){const i=Nn[e];if(!i)return null;const n=i.build(t,a);return {ext:i.ext,mime:i.mime,text:i.bom?`\ufeff${n}`:n,copyText:n}}function zn({includeLogEditor:e=true}={}){document.querySelectorAll(`[${Sn}="btn"]`).forEach(e=>e.remove()),e&&document.querySelectorAll(`[${Sn}="log-btn"]`).forEach(e=>e.remove()),document.querySelectorAll(`.${vn}`).forEach(e=>e.remove());}function Un(e){e&&"1"!==e.dataset.blpExportBound&&(e.dataset.blpExportBound="1",e.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),function(){var e,t,a,i;if(!bn())return;if(document.querySelector(`.${vn}`))return;if(!Wi().isGamePage&&!Pn())return;const n=function(){const e=function(){var e,t;const a=Pn();if(!a)return {start:"",end:""};const i=((null==(e=a.querySelector("#started-on-datepicker"))?void 0:e.value)||"").trim(),n=((null==(t=a.querySelector("#finished-on-datepicker"))?void 0:t.value)||"").trim();return {start:Dn(i),end:Dn(n)}}(),t=function(){const e=Pn();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()}()||Ki(),a=function(){const e=Pn();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}(),i=function(){const e=Pn();if(!e)return "";const t=(t,a)=>{var i,n;const r=Number(null==(i=e.querySelector(t))?void 0:i.value),o=Number(null==(n=e.querySelector(a))?void 0:n.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:Hn(),Status:"",Rating:"","Expected Rating":"",Difficulty:"",Received:"",Platform:$n(),"Date start":e.start,"Date end":e.end,"Time to Complete":i,Developer:En(),"Release date":Gn(),Franchise:Rn(),"Is DLC":Mn(),Tags:_n(),Advantages:"",Disadvantages:"",Passing:"",Source:In(),_ratingScore10:a,_statusKey:Ln()}}(),r=document.createElement("div");r.className=vn,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=Jn(n,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 i=On(e,n,t);if(!i)return void gn(tt.exportFormatUnavailable,{type:"error",title:tt.exportFormatUnavailableTitle});!function(e,t,a="text/csv;charset=utf-8"){const i=new Blob([t],{type:a}),n=URL.createObjectURL(i),r=document.createElement("a");r.href=n,r.download=e,r.rel="noopener",document.body.appendChild(r),r.click(),r.remove(),window.setTimeout(()=>URL.revokeObjectURL(n),2e3);}(`${a=n.Name,String(a||"game").trim().replace(/[<>:"/\\|?*\u0000-\u001f]+/g,"").replace(/\s+/g," ").slice(0,80)||"game"}.${i.ext}`,i.text,i.mime),gn(le(tt.toastExportDone,{name:n.Name||i.ext.toUpperCase()}),{type:"success",title:tt.toastExportDoneTitle}),s();}catch(i){gn(tt.toastExportFailed,{type:"error",title:tt.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=On(e,n,t);if(!a)return void gn(tt.exportFormatUnavailable,{type:"error",title:tt.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 i=document.execCommand("copy");if(a.remove(),!i)throw new Error("copy failed")}(a.copyText),gn(tt.toastExportCopied,{type:"success",title:tt.toastExportCopiedTitle});}catch(a){gn(tt.toastExportCopyFailed,{type:"error",title:tt.toastExportCopyFailedTitle});}}),document.body.appendChild(r),null==(i=r.querySelector("[data-blp-export-run]"))||i.focus();}();}));}function qn(){var e;if(!bn())return document.querySelectorAll(`[${Sn}="log-btn"]`).forEach(e=>e.remove()),null;const t=document.querySelector("#log-editor-footer");if(!t)return null;let a=t.querySelector(`[${Sn}="log-btn"]`);if(a)return a;a=document.createElement("div"),a.setAttribute(Sn,"log-btn"),a.className="blp-export-log-wrap col-auto my-auto pr-0",a.innerHTML=`\n \n `,Un(a.querySelector("[data-blp-export-open]"));const i=(null==(e=t.querySelector('[data-dismiss="modal"]'))?void 0:e.closest(".col-auto"))||t.querySelector("#btn-save-log");return i?i.insertAdjacentElement("beforebegin",a):t.appendChild(a),a}let jn=null;function Wn(e,t,a,i,{enabled:n=true,checked:r=false}={}){return `\n \n `}function Kn(e){if(null==e)return true;const t=String(e).trim();return !t||"—"===t||t===tt.exportNoRating}function Jn(e,t="text",a="notion",i="csv"){if("json"===i){const i=Fn(e,{ratingStyle:t,statusStyle:a}),n=Object.fromEntries(Object.entries(i).filter(([,e])=>!Kn(e)));return `\n
    \n \n
    ${ct(JSON.stringify(n,null,2))}
    \n
    \n `}const n=function(e,t="text",a="notion"){var i;const n={};for(const r of fn)n[r]=null!=(i=e[r])?i:"";return n.Rating=null==e._ratingScore10?"":yn(e._ratingScore10,t)||"",n.Status=function(e,t){return An(e,t)||""}(e._statusKey,a),n}(e,t,a),r=fn.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 Kn(t)?"":`\n
    \n ${ct(e)}\n ${ct(t)}\n
    \n `}(e,n[e],t)}).join("");return `\n
    \n \n
    \n ${r}\n
    \n
    \n `}function Vn(e=""){bn()?Wi().isGamePage?(function(e=""){if(!bn()||!Wi().isGamePage)return document.querySelectorAll(`[${Sn}="btn"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${Sn}="btn"]`);const a=document.querySelector(`[${b}="cover"]`),i=(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");i&&(t||(t=document.createElement("div"),t.setAttribute(Sn,"btn"),t.className="blp-export-wrap",t.innerHTML=`\n \n `,Un(t.querySelector("[data-blp-export-open]"))),e&&t.setAttribute("data-blp-token",e),a?t.previousElementSibling!==a&&a.insertAdjacentElement("afterend",t):t.parentElement!==i&&i.appendChild(t));}(e),qn()):document.querySelectorAll(`[${Sn}="btn"]`).forEach(e=>e.remove()):zn();}function Yn(){an.close(),Yi([]),document.querySelectorAll(`[${b}]`).forEach(e=>e.remove());}function Zn(e){return /(?:^|\/)logo\.(png|jpe?g)(?:$|\?)/i.test(String(e||""))}function Xn(e,t,a){if(!e||!t||!a)return;const i=t.getAttribute("src")||"";if(i===a&&t.classList.contains("is-ready")&&t.complete&&t.naturalWidth)return void e.classList.remove("is-loading");const n=()=>{(t.getAttribute("src")||"")===a&&(t.classList.add("is-ready"),e.classList.remove("is-loading"));};if(i===a)return t.addEventListener("load",n,{once:true}),void(t.complete&&t.naturalWidth&&n());const r=t.classList.contains("is-ready")&&Boolean(i),o=String((Number(t.dataset.blpRevealGen||"0")||0)+1);t.dataset.blpRevealGen=o;const s=()=>{t.dataset.blpRevealGen===o&&n();};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 Qn(e=""){if(!Qe.showSteamDbIcon)return document.querySelectorAll(`[${b}="icon"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${b}="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(b,"icon"),t.className="blp-title-icon-wrap is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML='';const i=t.querySelector("img");return i&&i.addEventListener("error",()=>{if("1"===i.dataset.blpFallback)return void t.remove();i.dataset.blpFallback="1";const e=t.getAttribute("data-blp-appid");e?Xn(t,i,Ei(e,"capsule_sm_120.jpg")):t.remove();}),a.insertAdjacentElement("afterbegin",t),t}function er(e=""){if(!Qe.showSteamDbCover)return document.querySelectorAll(`[${b}="cover"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${b}="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(b,"cover"),t.className="blp-steamdb-cover is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML='';const i=t.querySelector("img");return i&&i.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 i=Math.max(0,Math.min(e.scrollWidth-e.clientWidth,e.scrollLeft+a));i!==e.scrollLeft&&(t.preventDefault(),e.scrollLeft=i);},{passive:false}));}function nr(e=""){if(!Qe.showSteamDbGallery)return document.querySelectorAll(`[${b}="gallery"]`).forEach(e=>e.remove()),null;let t=document.querySelector(`[${b}="gallery"]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=tr();return a?(t=document.createElement("section"),t.setAttribute(b,"gallery"),t.className="blp-steam-gallery is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML=`\n \n \n `,a.insertAdjacentElement("afterend",t),ir(t.querySelector("[data-blp-gallery-track]")),t):null}function rr(e,t="",{final:a=false}={}){var i;e?(Qe.showSteamDbIcon&&Qn(t),Qe.showSteamDbCover&&er(t),function(e,t,a=""){if(!Qe.showSteamDbIcon)return void document.querySelectorAll(`[${b}="icon"]`).forEach(e=>e.remove());if(!e)return;const i=Qn(a);if(!i)return;t&&i.setAttribute("data-blp-appid",String(t));const n=i.querySelector("img.blp-title-icon");n&&(delete n.dataset.blpFallback,Xn(i,n,e));}(e.iconUrl,e.appId,t),function(e,t,{logoIsPortrait:a=false,token:i=""}={}){if(!Qe.showSteamDbCover)return void document.querySelectorAll(`[${b}="cover"]`).forEach(e=>e.remove());if(!e)return;const n=er(i);if(!n)return;const r=[],o=e=>{e&&!r.includes(e)&&r.push(e);};o(e),o(Ei(t,"header.jpg")),o(Ei(t,"library_600x900.jpg")),o(Ei(t,"logo.png")),n.dataset.blpFallbacks=r.join("\n"),n.dataset.blpFallbackIdx="0",t&&n.setAttribute("data-blp-appid",String(t));const s=n.querySelector("img");if(!s)return;const l=Zn(r[0])&&!a;s.classList.toggle("blp-steamdb-cover__logo",l),Xn(n,s,r[0]);}(e.logoUrl,e.appId,{logoIsPortrait:Boolean(e.logoIsPortrait),token:t}),Vn(t),function(e,t,a="",{final:i=false,coverUrl:n=""}={}){var r;if(!Qe.showSteamDbGallery)return Yi([]),document.querySelectorAll(`[${b}="gallery"]`).forEach(e=>e.remove()),void Zi([]);const o=!Array.isArray(e),s=function(e,t){const a=[],i=String(t||"").trim();if(i&&a.push({thumb:i,full:i,kind:"cover"}),Array.isArray(e))for(const n of e){const e=String((null==n?void 0:n.thumb)||"").trim(),t=String((null==n?void 0:n.full)||e).trim();(e||t)&&a.push({id:null==n?void 0:n.id,thumb:e||t,full:t||e,kind:"screenshot"});}return a}(o?[]:e,n);if(o&&!n)return void nr(a);if(!s.length)return Yi([]),i?document.querySelectorAll(`[${b}="gallery"]`).forEach(e=>e.remove()):nr(a),void Zi([]);const l=nr(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),Yi(s),void Zi(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),Yi(s);const u=t?`${W}/${t}/screenshots/`:`${W}/`,d=s.map((e,t)=>{const a=ut(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"));rn(s,t);});}),ir(l.querySelector("[data-blp-gallery-track]")),Zi(s);}(e.screenshots,e.appId,t,{final:a,coverUrl:e.logoUrl||""}),"steamdb"===e.source&&e.logoUrl&&Zn(e.logoUrl)&&(null==(i=document.querySelector(`[${b}="cover"] img`))||i.classList.add("blp-steamdb-cover__logo")),t&&document.querySelectorAll(`[${b}]`).forEach(e=>{e.setAttribute("data-blp-token",t);})):Yn();}function or(){document.querySelectorAll(`[${f}]`).forEach(e=>e.remove());}function sr(e=""){if(!Qe.showSimilarGames)return or(),null;let t=document.querySelector(`[${f}]`);if(t)return e&&t.setAttribute("data-blp-token",e),t;const a=document.querySelector(`[${b}="gallery"]`)||tr();return a?(t=document.createElement("section"),t.setAttribute(f,"1"),t.className="blp-similar is-loading",e&&t.setAttribute("data-blp-token",e),t.innerHTML=`\n
    \n ${ct(tt.similarGamesTitle)}\n
    \n
    \n \n \n \n \n \n
    \n `,a.insertAdjacentElement("afterend",t),ir(t.querySelector("[data-blp-similar-track]")),t):null}function lr(e,t,a="",{final:i=false}={}){if(!Qe.showSimilarGames)return void or();if(!Array.isArray(e)||!e.length)return void(i?or():sr(a));const n=sr(a);if(!n)return;const r=`${t||""}|${e.map(e=>`${e.appId}:${e.matchPct}`).join(",")}`;if("1"===n.dataset.blpSimilarReady&&n.dataset.blpSimilarKey===r)return a&&n.setAttribute("data-blp-token",a),void sn(n,_t(e)||"miss",{titleSelector:".blp-similar__title"});t&&n.setAttribute("data-blp-appid",String(t)),a&&n.setAttribute("data-blp-token",a),n.dataset.blpSimilarReady="1",n.dataset.blpSimilarKey=r,sn(n,_t(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=ut(e.backloggdUrl||e.storeUrl||"#"),i=ut(e.coverUrl||""),n=ct(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?`${ct(o.join(" · "))}`:"",l=ut(e.storeUrl||""),c=l?`\n \n `:"";const u=Number(e.appId),d=Number.isFinite(u)&&u>0?` ${y}="${ut(String(u))}"`:"",p=e.backloggdUrl&&(null==(t=e.backloggdUrl.match(/\/games\/([^/?#]+)/i))?void 0:t[1])||be(e.name)||"",m=p?` ${w}="${ut(p)}"`:"",g=Number(e.year),h=p&&g>0?` data-blp-year="${g}"`:"";return `\n
    \n
    \n \n ${r}%\n ${ct(tt.similarGamesMatch)}\n \n ${c}\n \n ${i?``:""}\n \n
    \n \n ${n}\n ${s}\n \n
    \n `}).join("");n.classList.remove("is-loading"),n.innerHTML=`\n
    \n ${ct(tt.similarGamesTitle)}\n Steam\n
    \n
    ${s}
    \n `,n.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}));}),ir(n.querySelector("[data-blp-similar-track]")),async function(e){const t=[...e.querySelectorAll(".blp-similar__cover[data-blp-year]")];let a=0;const i=async()=>{for(var e;an);if(!r||r===n||!i.isConnected)continue;i.setAttribute(w,r);const o=`https://www.backloggd.com/games/${encodeURIComponent(r)}/`;null==(e=i.closest(".blp-similar__card"))||e.querySelectorAll("a.blp-similar__hit, a.blp-similar__meta").forEach(e=>e.setAttribute("href",o));}};await Promise.all([i(),i()]);}(n);}const cr="data-blp-game-id";function ur(){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:""}function dr(){document.querySelectorAll(`[${cr}]`).forEach(e=>e.remove());}function pr(e,t){let a=e.querySelector(`[${cr}]`);if(a){if(a.getAttribute(cr)===t)return a;a.remove();}return a=document.createElement("button"),a.type="button",a.setAttribute(cr,t),a.className="blp-game-id",a.textContent=`#${t}`,a.title=tt.gameIdCopyLabel||"",a.setAttribute("aria-label",tt.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 i=document.execCommand("copy");if(a.remove(),!i)throw new Error("copy failed")}(t),gn(le(tt.toastGameIdCopied,{id:t}),{type:"success",title:tt.toastGameIdCopiedTitle});}catch(a){gn(tt.toastExportCopyFailed,{type:"error",title:tt.toastExportCopyFailedTitle});}}),e.appendChild(a),a}function mr(){if(!Qe.showGameId)return void dr();const e=ur();if(!e)return void dr();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 dr();const a=new Set;for(const i of t)a.add(pr(i,e));document.querySelectorAll(`[${cr}]`).forEach(e=>{a.has(e)||e.remove();});}function gr(e,t){var a;const i=e.querySelector('.blp-unified-rating__cell[data-blp-provider="opencritic"]');i&&(i.hidden=!t),null==(a=e.querySelector(".blp-unified-rating__grid"))||a.classList.toggle("blp-unified-rating__grid--3",!t);const n=e.querySelector(".blp-unified-rating__title"),r=t?tt.unifiedRatingHint:tt.unifiedRatingHintNoOpenCritic;n&&n.textContent!==r&&(n.textContent=r);}function hr(e=""){document.querySelectorAll(`#game-rating [${h}="unified-rating"]`).forEach(e=>e.remove());const t=tr();if(!t)return null;let a=document.querySelector(`.blp-unified-rating-row[${h}="unified-rating"]`);if(a){e&&a.setAttribute("data-blp-token",e);const i=a.querySelector(".blp-unified-rating");return i&&gr(i,false!==Qe.showOpenCritic),a.nextElementSibling!==t&&t.insertAdjacentElement("beforebegin",a),a}const i=[["steam",tt.unifiedRatingSteam],["metacritic",tt.unifiedRatingMetacritic],["opencritic",tt.unifiedRatingOpenCritic],["backloggd",tt.unifiedRatingBackloggd]].map(([e,t])=>`
    \n ${ct(t)}\n \n \n
    `).join("");a=document.createElement("div"),a.className="row blp-unified-rating-row",a.setAttribute(h,"unified-rating"),e&&a.setAttribute("data-blp-token",e),a.innerHTML=`\n
    \n
    \n
    \n
    \n

    ${ct(tt.unifiedRatingTitle)}

    \n

    \n \n
    \n
    \n
    \n

    ${ct(tt.unifiedRatingHint)}

    \n

    ${ct(tt.unifiedRatingLoading)}

    \n
    \n
    \n
    \n
    \n
    ${i}
    \n
    \n
    \n
    \n
    \n `;const n=a.querySelector(".blp-unified-rating");return n&&gr(n,false!==Qe.showOpenCritic),t.insertAdjacentElement("beforebegin",a),a}function br(e){const t=Number(e);return !Number.isFinite(t)||t<0||t>100?null:t}function fr(e){return (Math.round(10*e)/10).toFixed(1)}function Sr(){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 vr=0;function yr(e,t,a,{indeterminate:i,avg5:n=null}){if(!e||!t)return;if(t.classList.toggle("is-graded",!i&&null!=n),i||null==n||t.style.setProperty("--blp-ur-hue",String(function(e){const t=Math.max(1,Math.min(5,Number(e)||1));return Math.round((t-1)/4*118)}(n))),i)return e.classList.add("blp-unified-rating__meter--loading"),void(t.style.width="36%");const r=e.classList.contains("blp-unified-rating__meter--loading");e.classList.remove("blp-unified-rating__meter--loading");const o=`${Math.max(0,Math.min(100,a))}%`;!r&&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=o;}function wr(e,t){var a;if(!e)return;const i=e.dataset.blpStatus||"",n=t.status;if(e.classList.toggle("is-loading","loading"===n),e.classList.toggle("is-missing","missing"===n),"loading"===n)return void("loading"!==i&&(e.classList.remove("has-link"),e.dataset.blpStatus=n,e.innerHTML=`\n ${ct(t.label)}\n \n \n `));const r="ready"===n&&t.url||"",o=`${n}|${t.display||""}|${null!=(a=t.score5)?a:""}|${r}`;if(i===n&&e.dataset.blpDisplay===o)return;e.dataset.blpStatus=n,e.dataset.blpDisplay=o;const s="missing"===n?tt.unifiedRatingMissing:ct(t.display),l="missing"===n?"":`${ct(fr(t.score5))} ★`,c=r?``:"";e.classList.toggle("has-link",Boolean(r)),e.innerHTML=`\n ${ct(t.label)}\n ${s}\n ${l}\n ${c}\n `,"ready"!==n||"loading"!==i||Sr()||(e.classList.remove("is-reveal"),e.classList.add("is-reveal"));}function kr(e){var t,a,i,n,r,o;const s=document.querySelector(`.blp-unified-rating-row[${h}="unified-rating"]`);if(!s)return;const l=s.querySelector(".blp-unified-rating");if(!l)return;const c=null!=(null==e?void 0:e.steam),u=false!==Qe.showOpenCritic,d=!u||null!=(null==e?void 0:e.opencritic),p=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}(),m=(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,g=null!=(null==(i=null==(a=null==e?void 0:e.steam)?void 0:a.metacritic)?void 0:i.score)?br(e.steam.metacritic.score):null,b=null!=(null==(n=null==e?void 0:e.opencritic)?void 0:n.score)?br(e.opencritic.score):null;gr(l,u);const{slug:f}=Wi(),S=(null==(r=null==e?void 0:e.steam)?void 0:r.appId)?`https://store.steampowered.com/app/${e.steam.appId}/#app_reviews_hash`:"",v=fe(Ki(),f),y=(null==(o=null==e?void 0:e.opencritic)?void 0:o.url)||"",w=[{key:"steam",label:tt.unifiedRatingSteam,display:null!=m?`${m}%`:null,score5:null!=m?m/20:null,status:c?null!=m?"ready":"missing":"loading",url:S},{key:"metacritic",label:tt.unifiedRatingMetacritic,display:null!=g?String(g):null,score5:null!=g?g/20:null,status:c?null!=g?"ready":"missing":"loading",url:v},{key:"opencritic",label:tt.unifiedRatingOpenCritic,display:null!=b?String(b):null,score5:null!=b?b/20:null,status:d?null!=b?"ready":"missing":"loading",url:y},{key:"backloggd",label:tt.unifiedRatingBackloggd,display:null!=p?fr(p):null,score5:p,status:null!=p?"ready":"missing"}].filter(e=>u||"opencritic"!==e.key),k=w.filter(e=>"ready"===e.status),C=k.filter(e=>"backloggd"!==e.key),P=w.some(e=>"loading"===e.status);if(C.length)s.style.display="";else {if(c&&d)return void(s.style.display="none");s.style.display="";}const T=k.length>0&&C.length>0,B=T?k.reduce((e,t)=>e+t.score5,0)/k.length:null,x=null!=B?Math.round(10*B)/10:null,A=null==x?"mid":x>=4?"high":x>=3?"mid":"low",L=null!=x?Math.max(0,Math.min(100,x/5*100)):0;l.classList.toggle("is-loading",P&&!T),l.setAttribute("data-grade",A);const H=l.querySelector(".blp-unified-rating__num"),D=l.querySelector(".blp-unified-rating__denom"),M=l.querySelector(".blp-unified-rating__hint"),E=l.querySelector(".blp-unified-rating__meter"),G=l.querySelector(".blp-unified-rating__meter-fill");T&&null!=x?(function(e,t){if(!e)return;const a=Number(t);if(!Number.isFinite(a))return;const i=Sr(),n=e.dataset.blpNum,r=null!=n&&""!==n?Number(n):NaN;e.dataset.blpNum=String(a),e.classList.remove("is-skel");const o=t=>{e.textContent=fr(t),i||(e.classList.remove("is-pulse"),e.classList.add("is-pulse"));};if(i||!Number.isFinite(r)||Math.abs(r-a)<.05)return void o(a);const s=++vr,l=performance.now(),c=r,u=t=>{if(s!==vr)return;const i=Math.min(1,(t-l)/480),n=1-Math.pow(1-i,3);e.textContent=fr(c+(a-c)*n),i<1?requestAnimationFrame(u):o(a);};requestAnimationFrame(u);}(H,x),D&&(D.textContent=tt.unifiedRatingOutOf),M&&(M.textContent=P?tt.unifiedRatingLoading:le(tt.unifiedRatingSources,{n:k.length})),yr(E,G,L,{indeterminate:false,avg5:x})):(H&&(H.classList.add("is-skel"),H.classList.remove("is-pulse"),delete H.dataset.blpNum,H.innerHTML=''),D&&(D.innerHTML=''),M&&(M.textContent=tt.unifiedRatingLoading),yr(E,G,0,{indeterminate:true}));for(const h of w)wr(l.querySelector(`.blp-unified-rating__cell[data-blp-provider="${h.key}"]`)||null,h);}function Cr(e){const t=Number(e);return Number.isFinite(t)?t>=75?"high":t>=50?"mid":"low":""}function Pr(e){const t=Number(e);return 3===t?{key:"verified",label:tt.deckVerified,cls:"blp-deck-badge--verified"}:2===t?{key:"playable",label:tt.deckPlayable,cls:"blp-deck-badge--playable"}:1===t?{key:"unsupported",label:tt.deckUnsupported,cls:"blp-deck-badge--unsupported"}:0===t?{key:"unknown",label:tt.deckUnknown,cls:"blp-deck-badge--unknown"}:null}function Tr(e,t){return (null==e?void 0:e.franchise)||(null==t?void 0:t.franchise)||null}function Br(e,t){return (null==e?void 0:e.systems)||(null==t?void 0:t.systems)||null}function xr(e,{appId:t=null}={}){if(!e)return "";const a=[],i=Array.isArray(e.list)?e.list.filter(Boolean):[],n=t?`${W}/${t}/`:`${W}/`;for(const o of i)a.push(`${ct(o)}`);const r=Pr(e.deckCompat);return r&&a.push(`${ct(le(tt.steamDeckStatus,{status:r.label}))}`),a.length?`${a.join("")}`:""}function Ar(e){const t=Array.isArray(e)?e.filter(e=>null==e?void 0:e.name):[];return t.length?`${t.map(e=>`${ct(e.name)}`).join("")}`:""}function Lr(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?`${ct(a)}`:""}function Hr(e,t,a=""){return t?`
    \n ${ct(e)}\n ${t}\n
    `:""}function Dr(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 Mr(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 Er(e){return e&&e.total_reviews?`${Math.round(e.total_positive/e.total_reviews*100)}%`:null}function Gr(e){try{const t=new URL(e).hostname.replace(/^www\./,"");return C.replace("{domain}",encodeURIComponent(t))}catch(t){return ""}}function $r(e){if(!(null==e?void 0:e.found))return null;if(e.isFree)return tt.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 _r({title:e,slug:t,igdbUrl:a,steam:i,year:n=null}){const r=encodeURIComponent(e||t||""),o=[];a&&o.push({key:"igdb",label:tt.linkIgdb,url:a}),(null==i?void 0:i.storeUrl)?o.push({key:"steam",label:tt.linkSteam,url:i.storeUrl}):r&&o.push({key:"steam",label:tt.linkSteam,url:`https://store.steampowered.com/search/?term=${r}`}),(null==i?void 0:i.appId)?o.push({key:"steamdb",label:tt.linkSteamDb,url:`https://steamdb.info/app/${i.appId}/`}):r&&o.push({key:"steamdb",label:tt.linkSteamDb,url:`https://steamdb.info/search/?a=app&q=${r}`});const s=fe(e,t);if(s&&o.push({key:"metacritic",label:tt.linkMetacritic,url:s}),r&&(o.push({key:"opencritic",label:tt.linkOpencritic,url:`https://opencritic.com/search?q=${r}`}),o.push({key:"hltb",label:tt.linkHltb,url:`https://howlongtobeat.com/?q=${r}`}),o.push({key:"pcgamingwiki",label:tt.linkPcgamingwiki,url:`https://www.pcgamingwiki.com/wiki/Special:Search?search=${r}`}),o.push((null==i?void 0:i.appId)?{key:"itad",label:tt.linkItad,url:`${z}/steam/app/${i.appId}/`}:{key:"itad",label:tt.linkItad,url:`${z}/search/?q=${r}`}),o.push({key:"gogdb",label:tt.linkGogdb,url:`https://www.gogdb.org/?q=${r}`})),null==i?void 0:i.appId){const a=be(i.name||e)||String(t||"").replace(/^\/+|\/+$/g,"").replace(/--\d+$/i,"");o.push({key:"gameslike",label:tt.linkGameslike,url:a?`${U}/app/${i.appId}/${a}`:`${U}/app/${i.appId}`});}return function(e,{title:t,slug:a,steam:i,year:n}){var r;const o=new Map(e.map(e=>[e.key,e])),s=Qe.customLinks||[],l=new Map(s.map(e=>[e.id,e])),c={title:t,slug:a,appId:null!=(r=null==i?void 0:i.appId)?r:null,year:n,gameId:ur()},u=[];for(const d of Me(Qe.linkOrder,s)){if(we(d)){const e=l.get(d);if(!e||!Qe.showLinks||false===e.enabled)continue;const t=Le(e,c);t&&u.push({key:d,label:e.label,url:t,icon:Ae(e.icon,t),custom:true});continue}const e=o.get(d);e&&We(e.key,Qe)&&u.push(e);}return u}(o,{title:e,slug:t,steam:i,year:n})}function Rr(){document.querySelectorAll(`[${h}]`).forEach(e=>e.remove()),document.querySelectorAll("[data-blp-debug]").forEach(e=>e.remove()),Yn(),zn({includeLogEditor:false}),dr(),or(),document.querySelectorAll(`img[${Xi}]`).forEach(e=>{e.removeEventListener("click",Qi),e.removeEventListener("keydown",en),e.removeAttribute(Xi),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 Ir(e,t){const a=document.createElement("div");return a.className="row mt-2",a.setAttribute(h,e),a.innerHTML=`\n
    \n

    ${ct(t)}

    \n
    \n
    \n `,a}function Fr(e){return "customlinks"===e?[0,1].map(()=>'').join(""):"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 Nr(e,t){const a=null==e?void 0:e.querySelector("[data-blp-values]");a&&(a.innerHTML=t);}function Or(e){e&&(e.hidden=true);}function zr(e){e&&(e.hidden=false);}function Ur(e){return "owned"===e?`${ct(tt.steamOwned)}`:"wishlist"===e?`${ct(tt.steamWishlist)}`:""}function qr(e,t){if(!t)return "";const a=zt(t),i=Ut(t),n=(null==e?void 0:e.appId)||a||"";return n||i||Qe.showSteam?`\n ${ct(i?tt.steamMatchNone:n?le(tt.steamMatchLabel,{id:n,source:a||(null==e?void 0:e.manualOverride)?tt.steamMatchManual:tt.steamMatchAuto}):tt.steamFixMatch)}\n \n `:""}function jr(e,{owned:t=false,wishlist:a=false,slug:i=""}={}){var n,r;const o=[];t?o.push({html:Ur("owned")}):a&&o.push({html:Ur("wishlist")});const s=function(e){var t;const a=$r(e);if(!a)return "";let i;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=$r(e);return a&&t===a?null:t}(e),n=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?`${ct(t)}`:"",o=n?`${ct(le(tt.discountEnds,{date:n}))}`:"";i=`\n ${ct(le(tt.discount,{n:e.price.discount_percent}))}\n ${r}${ct(a)}\n ${o}\n `;}else i=`${ct(a)}`;return function(e,t){var a;if(!Qe.showPriceConvert||(null==t?void 0:t.isFree)||!(null==(a=null==t?void 0:t.price)?void 0:a.currency))return e;const i=String(t.price.currency).toUpperCase(),n=String(Qe.convertCurrency||"RUB").toUpperCase();if(!i||!n||i===n)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="${ut(String(t.price.initial))}"`:"",o=``;return e.includes("")?e.replace("",` ${o}`):`${e} ${o}`}(i,e)}(e);s&&o.push({html:s});const l=Mr(e.reviews),c=Dr(e.reviews);if(l?o.push({html:`${ct(l)}`}):e.recommendations&&o.push({html:`${ct(le(tt.recommendations,{n:e.recommendations.toLocaleString()}))}`}),e.usedUsFallback&&o.push({html:`${ct(le(tt.steamUsFallback,{cc:e.requestedCountry||""}))}`}),false!==Qe.showSteamCategories&&(null==(n=e.categories)?void 0:n.length)){const t=e.categories.map(e=>{return `${ct(e.description)}`;var t;}).join("");o.push({html:`${t}`});}if(false!==Qe.showSteamTags&&(null==(r=e.tags)?void 0:r.length)){const t=e.tags.map(e=>{return `${ct(e.name)}`;var t;}).join("");o.push({html:`${t}`});}const u=qr(e,i);return u&&o.push({html:u}),o.length?o.map(e=>`${e.html}`).join(""):`${ct(tt.steam)}`}function Wr(e,t,a,i){if(!t)return "";const n=i?`${ct(tt.debugSrcRequest)}`:"",r=a?`${ct(a)}`:"";return `
  • \n
    \n ${n}${ct(e)}${r}\n
    \n ${ct(t)}\n
  • `}function Kr(e,{steam:t,links:a,error:i,owned:n=false,wishlist:r=false,gamestatus:o=null,title:s="",slug:l="",steamDb:u=null,opencritic:d=null,hltb:p=null,proton:m=null,skipDebug:g=false}){var b;const f=Boolean(Qe.debugMode);if(e.steam)if(i)Nr(e.steam,`${ct(tt.loadError)}${qr(t,l)}`),zr(e.steam),sn(e.steam,_t(t)||"miss");else if(null==t?void 0:t.found)Nr(e.steam,jr(t,{owned:n,wishlist:r,slug:l})),zr(e.steam),sn(e.steam,_t(t)||"miss"),async function(e=document){if(!Qe.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"),i=Number(e.getAttribute("data-blp-fx-final")),n=e.getAttribute("data-blp-fx-initial"),r=null!=n&&""!==n?Number(n):NaN;if(!t||!a||t===a||!Number.isFinite(i))return;const o=await ga({final:i,initial:Number.isFinite(r)?r:void 0,currency:t,discount_percent:Number.isFinite(r)&&r>i?1:0},a);(null==o?void 0:o.now)&&(o.was?e.innerHTML=`~ ${ct(o.now)}~ ${ct(o.was)}`:e.textContent=`~ ${o.now}`,e.hidden=false,e.removeAttribute("hidden"));}));}(e.steam);else {const a=f&&!(null==t?void 0:t.disabled)?`${ct(tt.notOnSteam)}`:"",i=qr(t,l);a||i?(Nr(e.steam,`${a}${i?`${i}`:""}`),zr(e.steam),sn(e.steam,_t(t)||"miss")):Or(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,i=[Hr(tt.franchise,(n=Tr(e,t),(null==n?void 0:n.name)?`${ct(n.name)}`:""),"franchise"),Hr(tt.supportedSystems,xr(Br(e,t),{appId:a}),"systems"),Hr(tt.technologies,Ar(null==t?void 0:t.technologies),"technologies"),Hr(tt.lastRecordUpdate,Lr(null==t?void 0:t.lastRecordUpdate,{appId:a}),"lastRecordUpdate")].filter(Boolean);var n;return i.length?`
    ${i.join("")}
    `:""}(t,u);a&&!i?(Nr(e.steamdb,a),zr(e.steamdb),sn(e.steamdb,Rt((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?zr(e.steamdb):f&&(null==t?void 0:t.found)?(Nr(e.steamdb,`${ct((null==u?void 0:u.metaBlocked)?tt.steamDbBlocked:"—")}`),zr(e.steamdb),sn(e.steamdb,(null==u?void 0:u._cacheMeta)||"na")):Or(e.steamdb);}if(e.metacritic){const a=null==(b=null==t?void 0:t.metacritic)?void 0:b.score;null==a||i?Or(e.metacritic):(Nr(e.metacritic,function(e,t){const a=Cr(e),i="blp-mc-badge"+(a?` blp-mc-badge--${a}`:""),n=ct(String(e));return t?`${n}`:`${n}`}(a,fe(s,l))),zr(e.metacritic),sn(e.metacritic,_t(t)||"miss"));}if(e.opencritic)if(null==d)zr(e.opencritic);else {const t=(S=d)&&!S.missing&&S.tier?`${ct(S.tier)}`:"";t&&!i?(Nr(e.opencritic,t),zr(e.opencritic),sn(e.opencritic,_t(d)||"miss")):Or(e.opencritic);}var S;if(e.hltb)if(null==p)zr(e.hltb);else {const t=function(e){if(!e||e.missing)return "";const t=[],a=Fi(e.main),i=Fi(e.extra),n=Fi(e.complete);return a&&t.push(`${ct(le(tt.hltbMain,{n:a}))}`),i&&t.push(`${ct(le(tt.hltbExtra,{n:i}))}`),n&&t.push(`${ct(le(tt.hltbComplete,{n:n}))}`),t.length?`${t.join("")}`:""}(p);t&&!i?(Nr(e.hltb,t),zr(e.hltb),sn(e.hltb,_t(p)||"miss")):Or(e.hltb);}if(e.deckproton){const a=function({steam:e,proton:t}){const a=[],i=Pr(null==e?void 0:e.deckCompat);if(i&&a.push(`${ct(i.label)}`),null==t?void 0:t.tier){const e=t.tier.charAt(0).toUpperCase()+t.tier.slice(1),i=`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(`${ct(le(tt.protonTier,{tier:e}))}`);}return a.length?`${a.join("")}`:""}({steam:t,proton:m});a&&!i?(Nr(e.deckproton,a),zr(e.deckproton),sn(e.deckproton,Rt(t,m))):f&&(null==t?void 0:t.found)?(Nr(e.deckproton,'—'),zr(e.deckproton),sn(e.deckproton,Rt(t,m))):Or(e.deckproton);}if(e.players){const t=null==u?void 0:u.players;if(null==t||i)f?(Nr(e.players,'—'),zr(e.players),sn(e.players,"na")):Or(e.players);else {const a=(null==u?void 0:u.appId)?`${W}/${u.appId}/charts/`:`${W}/`,i=le(tt.playersOnline,{n:Number(t).toLocaleString()});Nr(e.players,`${ct(i)}`),zr(e.players),sn(e.players,"miss");}}e.gamestatus&&(o&&!o.missing&&o.data?(Nr(e.gamestatus,function(e){const t=null==e?void 0:e.data;if(!t)return "";const a=Ba(t),i=xa(t,a),n=t.slug||e.slug,r=n?`${K}/${encodeURIComponent(n)}`:K,o=[];for(const l of La(t.protections))o.push(`${ct(l)}`);for(const l of La(t.hacked_groups_en||t.hacked_groups)){const e=/bypass|обход|hypervisor/i.test(l)?"partial":a;o.push(`${ct(l)}`);}t.is_AAA&&o.push('AAA');const s=[`${ct(i)}`];return o.length&&s.push(`${o.join("")}`),s.join("")}(o)),zr(e.gamestatus),sn(e.gamestatus,_t(o)||"miss")):Or(e.gamestatus));const v=(e,t)=>{if(e)if(null==t?void 0:t.length){const a=e=>Boolean(null==e?void 0:e.custom)&&"button"===Qe.customLinksStyle;Nr(e,t.map((e,i)=>function(e,{last:t=false,button:a=false}={}){const i=e.icon||Gr(e.url),n=i?``:"",r=t||a?"":'•';return `\n \n \n ${n}${ct(e.label)}\n ${r}\n \n `}(e,{last:i===t.length-1||a(t[i+1]),button:a(e)})).join("")),zr(e),sn(e,"na");}else Or(e);};if(e.links||e.customlinks){const t=Boolean(e.customlinks);v(e.links,t?null==a?void 0:a.filter(e=>!e.custom):a),v(e.customlinks,null==a?void 0:a.filter(e=>e.custom));}g||function({steam:e,steamDb:t,gamestatus:a,owned:i=false,wishlist:n=false,error:r=false,title:o="",slug:s=""}){var l,u,d,p;const m=Boolean(document.querySelector("[data-blp-debug][open]"));if(document.querySelectorAll("[data-blp-debug]").forEach(e=>e.remove()),!Qe.debugMode)return;const g=function({steam:e,steamDb:t,gamestatus:a,title:i,slug:n}){const r=[],o=(e,t,a,i,n=false)=>{a&&!r.some(i=>i.url===a&&i.label===t&&i.module===e)&&r.push({module:e,label:t,url:a,purpose:i||"",request:Boolean(n)});};o("page","Backloggd",location.href,tt.debugSrcBackloggd),n&&o("page","IGDB",Ji(n),tt.debugSrcIgdb);const s=fe(i,n);s&&o("page","Metacritic",s,tt.debugSrcMetacritic),(null==e?void 0:e.storeUrl)&&o("steam","Steam Store",e.storeUrl,tt.debugSrcSteamStore),(null==e?void 0:e.tinyImage)&&o("steam","Steam tiny image",e.tinyImage,tt.debugSrcSteamTiny),(null==e?void 0:e.headerImage)&&o("steam","Steam header image",e.headerImage,tt.debugSrcSteamHeader),(Qe.showSteamOwned||Qe.showSteamWishlist)&&o("steam","Steam userdata",H,tt.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,tt.debugSrcSteamSearch,true);l.detailsUrl&&o("steam","Steam appdetails",l.detailsUrl,tt.debugSrcSteamDetails,true),l.reviewsUrl&&o("steam","Steam appreviews",l.reviewsUrl,tt.debugSrcSteamReviews,true),l.tagsUrl&&o("steam","Steam GetItems (tags)",l.tagsUrl,tt.debugSrcSteamTags,true),l.tagMapUrl&&o("steam","Steam populartags",l.tagMapUrl,tt.debugSrcSteamTagMap,true),(null==e?void 0:e.appId)&&(o("steamdb","SteamDB",`${W}/${e.appId}/`,tt.debugSrcSteamDb),o("steamdb","SteamDB charts",`${W}/${e.appId}/charts/`,tt.debugSrcSteamDbCharts),o("steamdb","SteamDB info",`${W}/${e.appId}/info/`,tt.debugSrcSteamDbInfo));const c=(null==t?void 0:t._debug)||{};c.chartsUrl&&o("steamdb","SteamDB charts",c.chartsUrl,tt.debugSrcSteamDbCharts),c.playersApiUrl&&o("steamdb","Steam players API",c.playersApiUrl,tt.debugSrcSteamPlayersApi,true),(c.iconUrl||(null==t?void 0:t.iconUrl))&&o("steamdb","Icon URL",c.iconUrl||t.iconUrl,tt.debugSrcIcon),(c.logoUrl||(null==t?void 0:t.logoUrl))&&o("steamdb","Logo URL",c.logoUrl||t.logoUrl,tt.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,tt.debugSrcGameStatusApi,true);return (null==a?void 0:a.slug)&&o("gamestatus","GameStatus page",`${K}/${encodeURIComponent(a.slug)}`,tt.debugSrcGameStatusPage),r}({steam:e,steamDb:t,gamestatus:a,title:o,slug:s}),b=function(e){const t=[{key:"page",label:tt.debugSectionPage},{key:"steam",label:tt.debugSectionSteam},{key:"steamdb",label:tt.debugSectionSteamDb},{key:"gamestatus",label:tt.debugSectionGameStatus}],a=[];for(const i of t){const t=e.filter(e=>e.module===i.key).sort((e,t)=>Number(t.request)-Number(e.request));if(!t.length)continue;const n=t.map(e=>Wr(e.label,e.url,e.purpose,e.request)).join("");a.push(`\n
    \n
    ${ct(i.label)}
    \n
      ${n}
    \n
    \n `);}return a.join("")||`
    ${ct("—")}
    `}(g),f=[],S=(e,t,a)=>{let i="";try{i=JSON.stringify(a,null,2);}catch(n){i=String(a);}f.push(`\n
    \n ${ct(e)}\n ${ct(t||"—")}\n
    ${ct(i)}
    \n
    \n `);};S(tt.debugSectionPage,`${o||"—"} / ${s||"—"}`,{href:location.href,title:o,slug:s,settings:{steamCountry:Qe.steamCountry,showSteam:Qe.showSteam,showSteamOwned:Qe.showSteamOwned,showSteamWishlist:Qe.showSteamWishlist,showSteamTags:Qe.showSteamTags,showSteamCategories:Qe.showSteamCategories,showMetacritic:Qe.showMetacritic,showOpenCritic:Qe.showOpenCritic,showHltb:Qe.showHltb,showDeckProton:Qe.showDeckProton,showGameStatus:Qe.showGameStatus,showSteamDbIcon:Qe.showSteamDbIcon,showSteamDbCover:Qe.showSteamDbCover,showSteamDbGallery:Qe.showSteamDbGallery,showSteamDbDetails:Qe.showSteamDbDetails,showSimilarGames:Qe.showSimilarGames,showGameStats:Qe.showGameStats,showSteamPlayers:Qe.showSteamPlayers,showCardBadges:Qe.showCardBadges,showCardBadgePrice:Qe.showCardBadgePrice,showCardBadgeReview:Qe.showCardBadgeReview,showCardBadgeOwned:Qe.showCardBadgeOwned,showCardBadgeWishlist:Qe.showCardBadgeWishlist,showCardBadgeGameStatus:Qe.showCardBadgeGameStatus,showLinks:Qe.showLinks,links:Qe.links,steamOverride:zt(s),steamDisabled:Ut(s)},owned:i,wishlist:n,error:r,SCRIPT_VERSION:c}),S(tt.debugSectionSteam,(null==(l=null==e?void 0:e._debug)?void 0:l.reason)||((null==e?void 0:e.found)?`appId=${e.appId}`:tt.notOnSteam),(null==e?void 0:e._debug)||e||{reason:"Steam payload missing"}),S(tt.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"}),S(tt.debugSectionGameStatus,(null==(d=null==a?void 0:a._debug)?void 0:d.reason)||(a&&!a.missing?`slug=${a.slug}`:tt.gsNotInDatabase),(null==a?void 0:a._debug)||a||{reason:"GameStatus payload missing"});const v={page:{href:location.href,title:o,slug:s,owned:i,wishlist:n,error:r,SCRIPT_VERSION:c},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:g};let y="";try{y=JSON.stringify(v,null,2);}catch(T){y=String(v);}const w=document.createElement("details");w.className="blp-debug-panel",w.setAttribute("data-blp-debug","1"),m&&(w.open=true),w.innerHTML=`\n \n

    ${ct(tt.debugPanelTitle)} · v${ct(c)}

    \n
    \n
    \n
    ${ct(tt.debugOwned)}: ${i?tt.on:tt.off}
    \n
    \n ${ct(tt.debugSources)}\n
    ${b}
    \n
    \n ${f.join("")}\n
    \n ${ct(tt.debugDump)}\n
    ${ct(y)}
    \n
    \n
    \n `;const k=document.querySelector(`[${h}]:last-of-type`),C=document.querySelector("#game-body #game-page-platforms, #game-page-platforms"),P=k||C;P?P.insertAdjacentElement("afterend",w):null==(p=document.querySelector("#game-body"))||p.appendChild(w);}({steam:t,steamDb:u,gamestatus:o,owned:n,wishlist:r,error:i,title:s,slug:l});}let Jr=0;async function Vr(){var e,t,a,i,n,r;const o=Wi();if(!o.isGamePage||!o.slug)return void Rr();const s=Ki();if(!s)return void mr();const l=`${o.slug}|${s}|${Qe.steamCountry}|${Qe.showSteam}|${Qe.showSteamOwned}|${Qe.showSteamWishlist}|${Qe.showSteamTags}|${Qe.showSteamCategories}|${Qe.showMetacritic}|${Qe.showOpenCritic}|${Qe.showHltb}|${Qe.showDeckProton}|${Qe.showGameStatus}|${Qe.showLinks}|${Qe.showSteamDbIcon}|${Qe.showSteamDbCover}|${Qe.showSteamDbGallery}|${Qe.showSteamDbDetails}|${Qe.showSimilarGames}|${Qe.showGameStats}|${Qe.showSteamPlayers}|${Qe.showExport}|${Qe.showGameId}|${zt(o.slug)||""}|${Qe.debugMode}|${JSON.stringify(Qe.links)}`,c=document.querySelector(`[${h}]`);if((null==c?void 0:c.getAttribute("data-blp-token"))===l)return hr(l),ar(),tn(),Vn(l),void mr();Rr(),mr();const u=function(){const e=document.querySelector("#game-body #game-page-platforms, #game-page-platforms");if(!e)return null;let t=e;if(document.querySelector(`[${h}]`))return {steam:document.querySelector(`[${h}="steam"]`),steamdb:document.querySelector(`[${h}="steamdb"]`),metacritic:document.querySelector(`[${h}="metacritic"]`),opencritic:document.querySelector(`[${h}="opencritic"]`),hltb:document.querySelector(`[${h}="hltb"]`),deckproton:document.querySelector(`[${h}="deckproton"]`),players:document.querySelector(`[${h}="players"]`),gamestatus:document.querySelector(`[${h}="gamestatus"]`),links:document.querySelector(`[${h}="links"]`),customlinks:document.querySelector(`[${h}="customlinks"]`)};const a={},i=[];Qe.showSteam&&i.push(["steam",tt.steam]),false!==Qe.showSteamDbDetails&&i.push(["steamdb",tt.linkSteamDb]),Qe.showMetacritic&&i.push(["metacritic",tt.metacritic]),Qe.showOpenCritic&&i.push(["opencritic",tt.openCritic]),Qe.showHltb&&i.push(["hltb",tt.hltb]),Qe.showDeckProton&&i.push(["deckproton",tt.deckProton]),Qe.showSteamPlayers&&i.push(["players",tt.players]),Qe.showGameStatus&&i.push(["gamestatus",tt.gameStatus]),Qe.showLinks&&i.push(["links",tt.links]),function(e=Qe){return Boolean(e.showLinks&&e.customLinksSeparate&&(e.customLinks||[]).some(e=>false!==e.enabled))}(Qe)&&i.push(["customlinks",tt.customLinksRow]);for(const[n,r]of i){const e=Ir(n,r);e.querySelector("[data-blp-values]").innerHTML=Fr(n),t.insertAdjacentElement("afterend",e),t=e,a[n]=e;}return a}();if(!u)return;Object.values(u).forEach(e=>null==e?void 0:e.setAttribute("data-blp-token",l)),hr(l),ar(),tn();const d=++Jr,p=Ji(o.slug),m=()=>d===Jr&&Wi().isGamePage,g=Qe.showSteamDbIcon||Qe.showSteamDbCover||Qe.showSteamDbGallery||Qe.showSteamPlayers||false!==Qe.showSteamDbDetails,b=Qe.showSteamDbIcon||Qe.showSteamDbCover||Qe.showSteamDbGallery,f=Qe.showSteam||Qe.showMetacritic||Qe.showDeckProton||Qe.showGameStatus||g||Qe.showSimilarGames||false!==Qe.showSteamDbDetails||Qe.showLinks&&(false!==(null==(e=Qe.links)?void 0:e.itad)||false!==(null==(t=Qe.links)?void 0:t.steamdb)||false!==(null==(a=Qe.links)?void 0:a.gameslike))||function(e=Qe){return !!e.showLinks&&(e.customLinks||[]).some(e=>false!==e.enabled&&function(e){const t=new Set;return String(null!=e?e:"").replace(ye,(e,a)=>(t.add(a.toLowerCase()),"")),t}(e.url).has("appid"))}(),S=Qe.showSteam&&(Qe.showSteamOwned||Qe.showSteamWishlist),v=Number(Za(document))||null,y=function({title:e,slug:t,country:a,year:i=null}={}){const n=String(a||Qe.steamCountry||"US").toUpperCase()||"US",r=String(e||"").trim(),o=r?Ma(r):"",s=t?zt(t):null;let l=null;if(s){const e=Number(s);if(Number.isFinite(e)&&e>0){const t=Mt(`steam:id:${n}:${e}`);(null==t?void 0:t.found)&&(l=Gt({...t,manualOverride:true}));}}else if(o&&(!t||!Ut(t))){const a=Number(i)||Ua(t);for(const t of Di(n,r,a)){const i=Mt(t);if((null==i?void 0:i.found)&&!Li(i,a,e)){l=Gt({...i,manualOverride:Boolean(i.manualOverride)});break}}}let c=null;if(Qe.showOpenCritic&&o){const e=Mt(`opencritic:${o}`);e&&(null!=e.score||e.missing||e.scoreParseV2)&&(c=Gt(e));}let u=null;if(Qe.showHltb&&o){const e=Mt(`hltb:${o}`);e&&(u=Gt(e));}let d=null;const p=Ft();p&&(d={owned:new Set(p.appIds),wishlist:new Set(p.wishlistAppIds)});let m=null,g=null,h=null,b=null;const f=(null==l?void 0:l.found)&&null!=l.appId?Number(l.appId):NaN;if(Number.isFinite(f)&&f>0){if(Qe.showGameStatus){const e=Mt(`gs:${f}`);e&&(m=Gt(e));}if(Qe.showDeckProton){const e=Mt(`protondb:${f}`);e&&(g=Gt(e));}if(Qe.showSimilarGames){const e=Mt(`steam:similar:${f}`);Array.isArray(e)&&e.length&&(b=Gt(e));}h=function(e,t){const a=Qe.showSteamDbIcon||Qe.showSteamDbCover,i=Qe.showSteamDbGallery,n=false!==Qe.showSteamDbDetails;if(!(a||i||n||Qe.showSteamPlayers))return null;const r=a?Mt(`steamdb:media:${e}`):null;let o=i?Mt(`steam:screenshots:${e}`):null;o&&!Array.isArray(o)&&(o=null);const s=n?Mt(`steamdb:meta:${e}`):null,l=Boolean(r),c=Array.isArray(o),u=Boolean(s);if(!l&&!c&&!u)return null;const d=(null==r?void 0:r.iconUrl)||"",p=(null==r?void 0:r.logoUrl)||(a?Ei(e,"header.jpg")||Ei(e,"library_600x900.jpg"):""),m=Boolean(p&&/library_600x900/i.test(p)&&!(null==r?void 0:r.logoUrl)),g=Array.isArray(null==s?void 0:s.technologies)?s.technologies:[],h=a&&l?"hit":"na",b=i&&c?"hit":"na",f=n&&u?"hit":"na";return {appId:e,iconUrl:a&&Qe.showSteamDbIcon?d:"",logoUrl:a&&Qe.showSteamDbCover?p:"",logoIsPortrait:Boolean(m),screenshots:i&&c?o:null,players:null,franchise:n&&((null==s?void 0:s.franchise)||(null==t?void 0:t.franchise))||null,systems:n&&((null==s?void 0:s.systems)||(null==t?void 0:t.systems))||null,technologies:n?g:[],lastRecordUpdate:n&&(null==s?void 0:s.lastRecordUpdate)||null,metaBlocked:Boolean(null==s?void 0:s.blocked),source:(null==r?void 0:r.source)||(null==s?void 0:s.source)||"steam",_cache:Rt(h,b,f),_cacheMedia:h,_cacheShots:b,_cachePlayers:"na",_cacheMeta:f}}(f,l);}return {steam:l,opencritic:c,hltb:u,userdata:d,gamestatus:m,proton:g,steamDb:h,similar:b}}({title:s,slug:o.slug,country:Qe.steamCountry||"US",year:v});b?function(e=""){Qn(e),er(e),Vn(e),nr(e);}(l):Vn(l),Qe.showSimilarGames&&sr(l);const w={steam:y.steam||null,owned:false,wishlist:false,userdata:y.userdata||null,gamestatus:y.gamestatus||null,steamDb:y.steamDb||null,opencritic:y.opencritic||null,hltb:y.hltb||null,proton:y.proton||null,error:false},k=e=>{if(!m()||!u.links)return;const t=_r({title:s,slug:o.slug,igdbUrl:p,steam:e,year:v});Kr({links:u.links,customlinks:u.customlinks},{steam:e,links:t,error:w.error,skipDebug:true});},C=()=>{var e;if(w.userdata&&(null==(e=w.steam)?void 0:e.found)&&null!=w.steam.appId){const e=Number(w.steam.appId);w.owned=false!==Qe.showSteamOwned&&w.userdata.owned.has(e),w.wishlist=!w.owned&&false!==Qe.showSteamWishlist&&w.userdata.wishlist.has(e);}else w.owned=false,w.wishlist=false;},P=()=>{m()&&null!=w.steam&&(C(),Kr({steam:u.steam,steamdb:u.steamdb,metacritic:u.metacritic,deckproton:u.deckproton},{steam:w.steam,steamDb:w.steamDb,proton:w.proton,error:w.error,owned:w.owned,wishlist:w.wishlist,title:s,slug:o.slug,skipDebug:true}),k(w.steam),kr(w));},T=()=>{m()&&Kr({steamdb:u.steamdb,players:u.players},{steam:w.steam,steamDb:w.steamDb,error:w.error,skipDebug:true});},B=()=>{m()&&(u.opencritic&&Kr({opencritic:u.opencritic},{opencritic:w.opencritic,error:w.error,skipDebug:true}),kr(w));},x=()=>{m()&&u.hltb&&Kr({hltb:u.hltb},{hltb:w.hltb,error:w.error,skipDebug:true});},A=()=>{m()&&u.deckproton&&Kr({deckproton:u.deckproton},{steam:w.steam,proton:w.proton,error:w.error,skipDebug:true});},L=()=>{m()&&u.players&&Kr({players:u.players},{steamDb:w.steamDb,error:w.error,skipDebug:true});},H=()=>{m()&&u.gamestatus&&Kr({gamestatus:u.gamestatus},{gamestatus:w.gamestatus,skipDebug:true});};k(w.steam),w.steam&&P(),w.opencritic&&B(),w.hltb&&x(),(w.steam||w.proton)&&A(),w.gamestatus&&H(),w.steamDb&&(rr(w.steamDb,l),T()),y.similar&&null!=(null==(i=w.steam)?void 0:i.appId)&&lr(y.similar,w.steam.appId,l,{final:true});let D=false,M=Promise.resolve();const E=(e,t)=>({missing:true,data:null,slug:null,_debug:Qe.debugMode?{reason:t,steamFound:Boolean(null==e?void 0:e.found),steamDebug:(null==e?void 0:e._debug)||null}:void 0}),G=e=>{if(D||!(null==e?void 0:e.found)||null==e.appId)return;D=true;const t=[];g&&t.push(Gi(e.appId,{country:Qe.steamCountry||"US",onPartial:e=>{m()&&(w.steamDb=e,rr(e,l),null!=(null==e?void 0:e.players)&&L(),T());}}).then(e=>{m()&&e&&(w.steamDb=e,rr(e,l,{final:true}),L(),T());}).catch(t=>{m()&&(w.steamDb={appId:e.appId,iconUrl:"",logoUrl:"",players:null,technologies:[],lastRecordUpdate:null,_debug:Qe.debugMode?{reason:`SteamDB error: ${(null==t?void 0:t.message)||t}`}:void 0},Yn(),L(),T());})),Qe.showGameStatus&&t.push(Ta({appId:e.appId,storeUrl:e.storeUrl,name:e.name,title:s,pageSlug:o.slug}).then(e=>{m()&&(w.gamestatus=e,H());}).catch(t=>{m()&&(w.gamestatus=E(e,`GameStatus error: ${(null==t?void 0:t.message)||t}`),H());})),Qe.showDeckProton&&t.push(async function(e){const t=Number(e);if(!Number.isFinite(t)||t<=0)return null;const a=`protondb:${t}`,i=Mt(a);if(i)return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{const e=await la({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 i="string"==typeof e.tier?e.tier:null;if(!i)return null;const n={tier:i,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 Et(a,n),$t(n)})().catch(()=>null);nt.set(a,n);try{return await n}finally{nt.delete(a);}}(e.appId).then(e=>{m()&&(w.proton=e,A());}).catch(()=>{m()&&A();})),Qe.showSimilarGames&&(sr(l),t.push(async function(e,t,a){const i=Number(e);if(!Number.isFinite(i)||i<=0)return [];const n=String(a).toUpperCase()||"US",r=`steam:similar:${i}`,o=Mt(r);if(Array.isArray(o)&&o.length)return Gt(o);const s=`similar:${i}:${n}`;if(nt.has(s))return nt.get(s);const l=(async()=>{var e;try{let a=Array.isArray(t)?t:[];a.length||(a=await vi(i,n).catch(()=>[]));const o=JSON.stringify({item_id:{appid:i},count:12,context:{language:"english",country_code:n,steam_realm:1},data_request:{include_assets:!0,include_basic_info:!0,include_release:!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([la({url:`https://api.steampowered.com/IStoreQueryService/MoreLikeThis/v1/?input_json=${encodeURIComponent(o)}`}),mi()]),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,i){var n,r,o;const s=Number(null!=(n=null==e?void 0:e.appid)?n:null==e?void 0:e.id);if(!Number.isFinite(s)||s<=0)return null;const l=String((null==e?void 0:e.name)||"").trim();if(!l)return null;const c=(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:u,sharedTagIds:d}=function(e,t){const a=wi(e),i=wi(t);if(!a.size||!i.size)return {matchPct:0,sharedTagIds:[]};let n=0,r=0;const o=[],s=new Set([...a.keys(),...i.keys()]);for(const l of s){const e=a.get(l)||0,t=i.get(l)||0;n+=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*n/r):0,sharedTagIds:o.slice(0,2).map(e=>e.id)}}(t,c),p=d.map(e=>{var t;return a[e]||(null==(t=c.find(t=>t.id===e))?void 0:t.name)}).filter(Boolean).slice(0,2),m=function(e,t){if(!t||"object"!=typeof t)return "";const a=Number(e),i=[t.library_capsule_2x,t.library_capsule,t.header_2x,t.header,t.main_capsule_2x,t.main_capsule];for(const n of i){const e=yi(t,n);if(e)return e;const i=String(n||"").trim();if(i&&Number.isFinite(a)&&a>0)return Ei(a,i)}return ""}(s,null==e?void 0:e.assets),g=be(l),h=Number(null==(r=null==e?void 0:e.release)?void 0:r.original_release_date)||Number(null==(o=null==e?void 0:e.release)?void 0:o.steam_release_date)||0;return {appId:s,name:l,year:h>0?new Date(1e3*h).getUTCFullYear():null,coverUrl:m,matchPct:u,sharedTags:p,storeUrl:`https://store.steampowered.com/app/${s}/`,backloggdUrl:g?`https://www.backloggd.com/games/${encodeURIComponent(g)}/`:"",apiIndex:i}}(e,a,l||{},t)).filter(e=>e&&e.appId!==i).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&&Et(r,c),$t(c)}catch(a){return $t([])}})();nt.set(s,l);try{return await l}finally{nt.delete(s);}}(e.appId,e.tags,Qe.steamCountry||"US").then(t=>{m()&&(lr(t,e.appId,l,{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 i=document.querySelector("meta[property=csp-nonce]"),n=(null==i?void 0:i.nonce)||(null==i?void 0:i.getAttribute("nonce"));a=e(t.map(e=>{if((e=function(e){return "/"+e}(e))in _i)return;_i[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":$i,t||(a.as="script"),a.crossOrigin="",a.href=e,n&&a.setAttribute("nonce",n),document.head.appendChild(a),t?new Promise((t,i)=>{a.addEventListener("load",t),a.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${e}`)));}):void 0}));}function i(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&&i(t.reason);return Promise.resolve().then(()=>bo).catch(i)})}(0,void 0).then(e=>e.scheduleCardBadges()));}).catch(()=>{m()&&or();}))),M=Promise.all(t);};(null==(n=w.steam)?void 0:n.found)&&G(w.steam);try{const e=[];Qe.showOpenCritic&&e.push(async function(e){const t=String(e||"").trim();if(!t)return null;const a=`opencritic:${Ma(t)}`,i=Mt(a);if(i&&(null!=i.score||i.missing||i.scoreParseV2))return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{const e="api"===Qe.openCriticSource?String(Qe.openCriticApiKey||"").trim():"",i=[e?()=>async function(e,t){var a;if(!t)return null;const i=await la({url:`${$}/game/search?criteria=${encodeURIComponent(e)}`,headers:Ui(t),timeout:15e3}),n=zi(Array.isArray(i)?i:[],e);if(!(null==(a=null==n?void 0:n.item)?void 0:a.id))return null;const r=Number(n.item.id);let o=null;try{o=await la({url:`${$}/game/${r}`,headers:Ui(t),timeout:15e3});}catch(s){o=null;}return function(e,t,a,i){if(!e||"object"!=typeof e)return null;const n="string"==typeof e.tier&&e.tier||"string"==typeof(null==t?void 0:t.tier)&&t.tier||null;if(!n)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:n,score:qi(e.topCriticScore,e.medianScore,null==t?void 0:t.topCriticScore,null==t?void 0:t.medianScore),url:o?`${I}/game/${r}/${encodeURIComponent(o)}`:Number.isFinite(r)?`${I}/game/${r}`:`${I}/search?q=${encodeURIComponent(a)}`,matchScore:i||null,source:"api",scoreParseV2:!0}}(o||n.item,n.item,e,n.score)}(t,e):null,()=>async function(e){const t=await async function(e){var t,a,i,n,r,o,s;const l=await la({url:`${_}?action=opensearch&limit=8&format=json&search=${encodeURIComponent(e)}`,headers:{Accept:"application/json"},timeout:15e3}),c=Array.isArray(null==l?void 0:l[1])?l[1]:[];let u=null,d=0;for(const h of c){const t=Na(h,e);t>d&&(d=t,u=h);}if(!u||d<85)return null;const p=await la({url:`${_}?action=query&prop=revisions&rvprop=content&rvslots=main&redirects=1&format=json&formatversion=2&titles=${encodeURIComponent(u)}`,headers:{Accept:"application/json"},timeout:15e3}),m=function(e){const t=String(e||"").match(/\{\{\s*Infobox game\/row\/reception\s*\|\s*OpenCritic\s*\|\s*(\d+)(?:\/([a-z0-9-]+))?/i);if(!t)return null;const a=Number(t[1]);return a>0?{id:a,slug:t[2]||null}:null}(null==(s=null==(o=null==(r=null==(n=null==(i=null==(a=null==(t=null==p?void 0:p.query)?void 0:t.pages)?void 0:a[0])?void 0:i.revisions)?void 0:n[0])?void 0:r.slots)?void 0:o.main)?void 0:s.content);if(!m)return null;const g=m.slug||Ma(u).replace(/\s+/g,"-")||"game";return {id:m.id,slug:g,name:u,url:`${I}/game/${m.id}/${g}`,matchScore:d}}(e);if(!t)return null;const a=await ji(t.url);return a?{...a,matchScore:t.matchScore,source:"pcgw"}:null}(t),()=>async function(e){const t=await async function(e){const t=`${e} site:opencritic.com/game`,a=await la({url:`https://html.duckduckgo.com/html/?q=${encodeURIComponent(t)}`,responseType:"text",headers:{Accept:"text/html"},timeout:15e3}),i=function(e){const t=[],a=(e,a)=>{const i=Number(e),n=String(a||"").toLowerCase().replace(/[^a-z0-9-]+/g,"").replace(/^-+|-+$/g,"");!Number.isFinite(i)||i<=0||!n||t.some(e=>e.id===i)||t.push({id:i,slug:n,url:`${I}/game/${i}/${n}`,name:n.replace(/-/g," ")});},i=/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/gi;let n;for(;n=i.exec(e);)a(n[1],n[2]);const r=/[?&]uddg=([^&"']+)/gi;for(;n=r.exec(e);)try{const e=decodeURIComponent(n[1]).match(/opencritic\.com\/game\/(\d+)\/([a-z0-9-]+)/i);e&&a(e[1],e[2]);}catch(o){}return t}(String(a||""));if(!i.length)return null;const n=zi(i,e);if(null==n?void 0:n.item)return n.item;const r=Ma(e);return i.find(e=>{const t=Ma(e.name);return t===r||t.includes(r)||r.includes(t)})||i[0]||null}(e);if(!(null==t?void 0:t.url))return null;const a=await ji(t.url);if(!a)return null;if(a.name){const t=Na(a.name,e);if(t>0&&t<50)return null}return a}(t)].filter(Boolean);for(const t of i){const e=await t().catch(()=>null);if(e)return Et(a,e),$t(e)}return null})().catch(()=>null);nt.set(a,n);try{return await n}finally{nt.delete(a);}}(s).then(e=>{m()&&(w.opencritic=e||{missing:!0},B());}).catch(()=>{m()&&(w.opencritic={missing:!0},B());})),Qe.showHltb&&e.push(async function(e){const t=String(e||"").trim();if(!t)return null;const a=`hltb:${Ma(t)}`,i=Mt(a);if(i)return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{const e=async e=>{const a=await async function(e=!1){if(!e&&Ii&&Date.now()n&&(n=e,i=r);}return !i||n<85?null:{item:i,score:n}}(Array.isArray(null==i?void 0:i.data)?i.data:[],t,e=>e.game_name);if(!n)return null;const r=n.item,o=r.game_id,s={id:null!=o?String(o):null,name:r.game_name||t,url:o?`${F}/game/${o}`:`${F}/?q=${encodeURIComponent(t)}`,main:Ni(r.comp_main),extra:Ni(r.comp_plus),complete:Ni(r.comp_100),matchScore:n.score};return s.main||s.extra||s.complete?(Et(a,s),$t(s)):null})().catch(()=>null);nt.set(a,n);try{return await n}finally{nt.delete(a);}}(s).then(e=>{m()&&(w.hltb=e||{missing:!0},x());}).catch(()=>{m()&&(w.hltb={missing:!0},x());}));const t=S?Pi().then(e=>m()?(w.userdata=e,w.steam&&P(),e):null).catch(()=>null):Promise.resolve(null),a=f?Mi({title:s,slug:o.slug,year:v,country:Qe.steamCountry||"US",onPartial:e=>{m()&&(w.steam=e,P(),G(e));}}):Promise.resolve(null),[i]=await Promise.all([a,t,...e]);if(!m())return;w.steam=i,(null==i?void 0:i.found)?(P(),G(i)):f&&(w.steam=i||{found:!1},P(),b&&Yn(),Vn(l),Qe.showSimilarGames&&or()),Qe.showGameStatus&&!D&&(w.gamestatus=E(w.steam,(null==(r=w.steam)?void 0:r.found)?"GameStatus enabled but Steam appId missing":"GameStatus skipped — Steam app not found"),H()),await M;}catch(R){w.error=true,w.steam=w.steam||{found:false,_debug:{reason:`Enrichment error: ${(null==R?void 0:R.message)||R}`}},w.owned=false,w.wishlist=false,w.gamestatus=w.gamestatus||{missing:true,data:null,slug:null,_debug:{reason:`Enrichment error: ${(null==R?void 0:R.message)||R}`}},b&&!w.steamDb&&Yn(),Vn(l),Qe.showSimilarGames&&or(),P(),B(),x(),A(),H(),L(),T();}m()&&(()=>{if(!m())return;C();const e=_r({title:s,slug:o.slug,igdbUrl:p,steam:w.steam,year:v});Kr(u,{steam:w.steam,links:e,error:w.error,owned:w.owned,wishlist:w.wishlist,gamestatus:w.gamestatus,title:s,slug:o.slug,steamDb:w.steamDb,opencritic:w.opencritic,hltb:w.hltb,proton:w.proton}),w.steamDb&&rr(w.steamDb,l,{final:true}),kr(w);})();}function Yr(){return [Qe.steamCountry||"US",Qe.showPriceConvert?1:0,Qe.convertCurrency||"RUB",Qe.showCardBadges?1:0,false!==Qe.showCardBadgePrice?1:0,false!==Qe.showCardBadgeReview?1:0,false!==Qe.showCardBadgeOwned?1:0,false!==Qe.showCardBadgeWishlist?1:0,false!==Qe.showCardBadgeGameStatus?1:0].join("|")}function Zr(){return false!==Qe.showCardBadgePrice||false!==Qe.showCardBadgeReview||false!==Qe.showCardBadgeOwned||false!==Qe.showCardBadgeWishlist||false!==Qe.showCardBadgeGameStatus}function Xr(e){var t,a,i,n,r,o;const s=null==(t=e.getAttribute)?void 0:t.call(e,w);if(s)return s.toLowerCase();const l=[e,e.parentElement,e.closest('a[href*="/games/"]'),e.closest("[game_id], .result, .col, .row")].filter(Boolean);for(const u of l){const e=(null==(a=u.matches)?void 0:a.call(u,'a[href*="/games/"]'))?u:null==(i=u.querySelector)?void 0:i.call(u,'a[href*="/games/"]'),t=((null==(n=null==e?void 0:e.getAttribute)?void 0:n.call(e,"href"))||"").match(/\/games\/([^/?#]+)/i);if(t)return t[1].toLowerCase()}const c=((null==(o=null==(r=e.querySelector)?void 0:r.call(e,"a.cover-link"))?void 0:o.getAttribute("href"))||"").match(/\/u\/[^/?#]+\/logs\/([^/?#]+)/i);return c?c[1].toLowerCase():""}function Qr(e,t){var a,i;const n=null==(a=e.getAttribute)?void 0:a.call(e,k);if(n)return n.trim();const r=e.querySelector("img[alt]");if(null==r?void 0:r.alt)return r.alt.trim();const o=null==(i=e.closest(".result, .row, .col, [game_id]"))?void 0:i.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 eo(e){var t;const a=null==(t=e.getAttribute)?void 0:t.call(e,y),i=Number(a);return Number.isFinite(i)&&i>0?i:null}function to(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 ao({steam:e,owned:t,wishlist:a,gamestatus:i}){var n,r;const o=[];if(null==e?void 0:e.found){if(false!==Qe.showCardBadgePrice){const t=$r(e);if(t){const a=(null==(n=e.price)?void 0:n.discount_percent)>0?` ${ct(le(tt.discount,{n:e.price.discount_percent}))}`:"";let i="";if(Qe.showPriceConvert&&e.price&&!e.isFree){const t=await ga(e.price,Qe.convertCurrency||"RUB");(null==t?void 0:t.now)&&(i=t.was?` ~ ${ct(t.now)}~ ${ct(t.was)}`:` ~ ${ct(t.now)}`);}o.push(`${ct(t)}${a}${i}`);}}if(false!==Qe.showCardBadgeReview){const t=Er(e.reviews),a=Mr(e.reviews),i=Dr(e.reviews);if(t)o.push(`${ct(t)}`);else if(null!=(null==(r=e.metacritic)?void 0:r.score)){const t=e.metacritic.score,a=Cr(t);o.push(`${ct(String(t))}`);}}}if(t&&false!==Qe.showCardBadgeOwned?o.push(`${ct(tt.steamOwned)}`):a&&false!==Qe.showCardBadgeWishlist&&o.push(`${ct(tt.steamWishlist)}`),false!==Qe.showCardBadgeGameStatus&&i&&!i.missing&&i.data){const e=Ba(i.data),t=xa(i.data,e),a=i.data.slug||i.slug,n=a?`${K}/${encodeURIComponent(a)}`:K;o.push(`${ct(t)}`);}return o.join("")}const io=[];let no=0,ro=null;function oo(){for(;no<3&&io.length;){const e=io.shift();no+=1,Promise.resolve().then(e.fn).then(e.resolve,e.reject).finally(()=>{no-=1,oo();});}}function so(e){return new Promise((t,a)=>{io.push({fn:e,resolve:t,reject:a}),oo();})}function lo(e,t){if(e.getAttribute(S)!==t)return false;const a=e.getAttribute(v);return "done"===a||"empty"===a||"loading"===a}function co(e,t,a){e.setAttribute(S,t),e.setAttribute(v,a);}function uo(e){var t;e.removeAttribute(S),e.removeAttribute(v),null==(t=e.querySelector(".blp-card-badges"))||t.remove();}function po(){document.querySelectorAll(".blp-card-badges").forEach(e=>e.remove()),document.querySelectorAll(`[${S}]`).forEach(e=>{e.removeAttribute(S),e.removeAttribute(v);});}async function mo(e){const t=Yr();if(lo(e,t))return;if(!Zr())return uo(e),void co(e,t,"empty");const a=eo(e),i=Xr(e),n=Qr(e,i);if(!(a||i&&n))return uo(e),void co(e,t,"empty");co(e,t,"loading");const r=to(e);r.classList.add("is-loading"),await so(async()=>{if(e.getAttribute(S)!==t)return;const o=false!==Qe.showCardBadgeOwned||false!==Qe.showCardBadgeWishlist,s=false!==Qe.showCardBadgeGameStatus,l=Qe.steamCountry||"US",[c,u]=await Promise.all([a?xi(a,l,{includeTags:false}).catch(()=>({found:false})):Mi({title:n,slug:i,country:l,includeTags:false}).catch(()=>({found:false})),o?Pi().catch(()=>null):Promise.resolve(null)]);let d=null;if(s&&(null==c?void 0:c.found)&&null!=c.appId&&(d=await Ta({appId:c.appId,storeUrl:c.storeUrl,name:c.name,title:n||c.name,pageSlug:i}).catch(()=>null)),e.getAttribute(S)!==t)return;let p=false,m=false;if(u&&(null==c?void 0:c.found)&&null!=c.appId){const e=Number(c.appId);p=false!==Qe.showCardBadgeOwned&&u.owned.has(e),m=!p&&false!==Qe.showCardBadgeWishlist&&u.wishlist.has(e);}const g=await ao({steam:c,owned:p,wishlist:m,gamestatus:d});if(r.classList.remove("is-loading"),!g)return co(e,t,"empty"),void r.remove();r.innerHTML=g,co(e,t,"done");});}function go(){const e=Wi(),t=[];return e.isGamePage?(document.querySelectorAll(`.blp-similar__cover[${y}]`).forEach(e=>{t.push(e);}),t):(document.querySelectorAll(".game-cover").forEach(e=>{e.closest(P)||e.closest(".home-games-section")||t.push(e);}),t)}function ho(e=false){if(!Qe.showCardBadges||!Zr())return po(),null==ro||ro.disconnect(),void(ro=null);const t=Yr();ro||(ro=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;ro.unobserve(e),mo(e);}},{rootMargin:"240px 0px"})),go().forEach(a=>{!e&&lo(a,t)||(e&&uo(a),ro.observe(a));});}const bo=Object.freeze(Object.defineProperty({__proto__:null,anyCardBadgeTypeEnabled:Zr,get cardActive(){return no},cardBadgeToken:Yr,cardIsSettled:lo,get cardObserver(){return ro},clearAllCardBadges:po,clearCardMarkers:uo,collectCardCovers:go,enqueueCardJob:so,enrichGameCard:mo,ensureCardBadgeMount:to,markCardState:co,parseCardAppId:eo,parseCardSlug:Xr,parseCardTitle:Qr,pumpCardQueue:oo,renderCardBadgesHtml:ao,scheduleCardBadges:ho},Symbol.toStringTag,{value:"Module"})),fo=".blp-toggle, .blp-field, .blp-settings-backup__item",So="blp-search-hide",vo="blp-search-first";function yo(e){let t="";const a=[];for(let i=0;ie.includes(t))}function Co(e,t){const{norm:a,map:i}=yo(e),n=[];for(const o of t){let e=0;for(;;){const t=a.indexOf(o,e);if(t<0)break;n.push([i[t],i[t+o.length-1]+1]),e=t+o.length;}}if(!n.length)return n;n.sort((e,t)=>e[0]-t[0]);const r=[n[0]];for(let o=1;or&&i.append(e.slice(r,t));const a=document.createElement("mark");a.className="blp-mark",a.textContent=e.slice(t,n),i.append(a),r=n;}r{t.add(e.parentNode),e.replaceWith(document.createTextNode(e.textContent));}),t.forEach(e=>null==e?void 0:e.normalize());}const Bo=[{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 xo(e,t){return `\n \n `}function Ao(e,t,a){const i=a?`${ct(tt[a])}`:"";return `\n
    \n \n ${ct(tt[e])}\n ${i}\n \n ${xo(`data-blp-toggle="${ut(e)}"`,t)}\n
    \n `}function Lo(...e){return `
    ${e.filter(Boolean).join("")}
    `}function Ho(e,t,...a){const i=t?`

    ${ct(tt[t])}

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

    ${ct(tt[e])}

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

    ${ct(i)}

    `:""}\n
    \n `}function Mo(e,t,a){return `\n
    \n \n

    ${ct(tt[a])}

    \n
    \n `}function Eo(e){const t=function(e){const t=e||"auto";return "auto"===t||ne.includes(t)?t:"auto"}(e),a=t.toUpperCase(),i="auto"===t?tt.translateAsUi:re[t]||a;return `${ct(a)}`}const Go={title:"linkPhTitle",slug:"linkPhSlug",appid:"linkPhAppid",year:"linkPhYear",id:"linkPhId"},$o={encoded:"linkFormatEncoded",plus:"linkFormatPlus",slug:"linkFormatSlug",underscore:"linkFormatUnderscore",compact:"linkFormatCompact"},_o={title:"Half-Life 2",slug:"half-life-2",appId:220,year:2004,gameId:"1234"};function Ro(e){var t;const a=Ae(null==e?void 0:e.icon,null==e?void 0:e.url);if(a)return a;try{const a=new URL(String(null!=(t=null==e?void 0:e.url)?t:"").replace(/\{[^}]*\}/g,"x")).hostname.replace(/^www\./,"");return a?C.replace("{domain}",encodeURIComponent(a)):""}catch(i){return ""}}function Io({link:e=null,onSave:t}){var a;if(document.querySelector(".blp-link-editor-backdrop"))return;const i=document.activeElement,n=e?tt.linkEditorEditTitle:tt.linkEditorAddTitle,r=Se.map(t=>{const a=Te(_o.title,t);return ``}).join(""),o=ve.map(e=>``).join(""),s=document.createElement("div");s.className="blp-confirm-backdrop blp-link-editor-backdrop",s.innerHTML=`\n \n `;const l=s.querySelector("form"),c=s.querySelector("#blp-le-name"),u=s.querySelector("#blp-le-url"),d=s.querySelector("#blp-le-format"),p=s.querySelector("#blp-le-icon"),m=s.querySelector("[data-blp-le-error]"),g=s.querySelector("[data-blp-le-preview-icon]"),h=s.querySelector("[data-blp-le-preview-name]"),b=s.querySelector("[data-blp-le-preview-url]"),f=()=>({label:c.value.replace(/\s+/g," ").trim(),url:u.value.trim(),format:Ce(d.value),icon:p.value.trim()}),S=()=>{const e=f();h.textContent=e.label||"—";const t=Le(e,_o);b.textContent=t||"—";const a=Ro(e);a?(g.src=a,g.hidden=false):(g.removeAttribute("src"),g.hidden=true),m.hidden=true;};[c,u,p].forEach(e=>e.addEventListener("input",S)),d.addEventListener("change",S),s.querySelectorAll("[data-blp-le-ph]").forEach(e=>{e.addEventListener("click",()=>{var t,a;const i=`{${e.getAttribute("data-blp-le-ph")}}`,n=null!=(t=u.selectionStart)?t:u.value.length,r=null!=(a=u.selectionEnd)?a:n;u.setRangeText(i,n,r,"end"),u.focus(),S();});});const v=()=>{document.removeEventListener("keydown",y,true),s.remove(),i&&"function"==typeof i.focus&&document.contains(i)&&i.focus();},y=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),v());},w=(e,t)=>{m.textContent=e,m.hidden=false,null==t||t.focus();};l.addEventListener("submit",e=>{e.preventDefault();const a=f();return a.label?Be(a.url)&&Le(a,_o)?a.icon&&!xe(a.icon)?w(tt.linkEditorErrIcon,p):(v(),void t({...a,icon:xe(a.icon)})):w(tt.linkEditorErrUrl,u):w(tt.linkEditorErrName,c)}),null==(a=s.querySelector("[data-blp-le-cancel]"))||a.addEventListener("click",v),s.addEventListener("mousedown",e=>{e.target===s&&v();}),document.body.appendChild(s),document.addEventListener("keydown",y,true),S(),c.focus();}const Fo=["cacheGameData","cacheUserProfiles","cacheTranslations","cacheFx"];function No(e,t){const a=e===t;return `class="blp-settings__panel${a?" is-active":""}" id="blp-panel-${ut(e)}" role="tabpanel" aria-labelledby="blp-tab-${ut(e)}"${a?"":" hidden"}`}function Oo({name:e,handle:t,url:a,avatarUrl:i,email:n}){const r=n?``:"";return `\n
    \n \n \n \n
    \n ${ct(e)}\n @${ct(t)}\n ${r}\n
    \n
    \n `}function zo({url:e,domain:t,label:a,hint:i}){const n=C.replace("{domain}",encodeURIComponent(t));return `\n \n \n \n ${ct(a)}\n ${ct(i)}\n \n \n `}function Uo(e){const t=e.querySelector(".blp-settings__tabs"),a=e.querySelector(".blp-settings__tab-ink"),i=e.querySelector(".blp-settings__tab.is-active");t&&a&&i&&(a.style.width=`${i.offsetWidth}px`,a.style.transform=`translateX(${i.offsetLeft}px)`);}function qo(e,t){e.classList.toggle("is-on",t),e.setAttribute("aria-checked",t?"true":"false");}function jo(e,t){var a,i;Bo.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;}),Uo(e),null==(i=null==(a=e.querySelector(".blp-settings__tabs"))?void 0:a.querySelector(".blp-settings__tab.is-active"))||i.scrollIntoView({inline:"nearest",block:"nearest",behavior:"smooth"}));}function Wo({title:e,message:t,confirmLabel:a,danger:i=false,onConfirm:n}){var r,o,s;if(document.querySelector(".blp-confirm-backdrop"))return;const l=document.createElement("div");l.className="blp-confirm-backdrop",l.innerHTML=`\n \n `;const c=()=>{document.removeEventListener("keydown",u,true),l.remove();},u=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),c());};l.addEventListener("click",e=>{e.target===l&&c();}),null==(r=l.querySelector("[data-blp-confirm-cancel]"))||r.addEventListener("click",c),null==(o=l.querySelector("[data-blp-confirm-ok]"))||o.addEventListener("click",()=>{c(),null==n||n();}),document.body.appendChild(l),document.addEventListener("keydown",u,true),null==(s=l.querySelector("[data-blp-confirm-cancel]"))||s.focus();}function Ko(){var e,t,a,i,n,r,u,d,p,m,g,h;if(document.querySelector(".blp-settings-backdrop"))return;const b={...Qe,links:{...ae.links,...Qe.links||{}},customLinks:(Qe.customLinks||[]).map(e=>({...e}))};b.linkOrder=Me(Qe.linkOrder,b.customLinks);const f=Ze(b.customLinksStyle),S=`\n \n `,v=e=>b.customLinks.find(t=>t.id===e)||null,y=e=>{var t;return we(e)?false!==(null==(t=v(e))?void 0:t.enabled):false!==b.links[e]},w=e=>{const t=we(e),a=t?v(e):null,i=t?(null==a?void 0:a.label)||"":tt[n=e,{igdb:"linkIgdb",steam:"linkSteam",steamdb:"linkSteamDb",metacritic:"linkMetacritic",opencritic:"linkOpencritic",hltb:"linkHltb",pcgamingwiki:"linkPcgamingwiki",itad:"linkItad",gogdb:"linkGogdb",gameslike:"linkGameslike"}[n]||n]||e;var n;const r=t?Ro(a):C.replace("{domain}",encodeURIComponent(ee[e]||e)),o=r?``:"",s=t?`${ct(tt.linkCustomTag)}`:"",l=t?`\n \n \n `:"";return `\n \n \n ${o}${ct(i)}${s}\n \n ${l}\n ${xo(`data-blp-link="${ut(e)}"`,y(e))}\n `},k=e=>``,P=`\n
    \n ${Ao("showLinks",b.showLinks)}\n ${Ao("customLinksSeparate",true===b.customLinksSeparate,"customLinksSeparateHint")}\n ${Do("blp-custom-links-style",tt.customLinksStyle,S,tt.customLinksStyleHint)}\n ${b.linkOrder.map(k).join("")}\n \n
    \n `,T=`\n \n `,B=b.siteLocale||"off",x=`\n \n `,A=`\n \n `,L=`\n \n `,H=b.translateTargetLocale||"auto",D=`\n \n `,M="below"===b.translateDisplayMode?"below":"replace",E=`\n \n `,G="api"===b.openCriticSource?"api":"auto",$=`\n \n `,_=`\n \n ${ct(tt.openCriticApiKeyLink)} ↗\n `,R=(e,t)=>{const a=Ye(t);return `\n \n `},I="general",F=document.createElement("div");F.className="blp-settings-backdrop",F.innerHTML=`\n \n `;const N=document.documentElement.style.overflow;document.documentElement.style.overflow="hidden";const O=()=>{if("1"===F.dataset.blpClosing)return;F.dataset.blpClosing="1",F.classList.remove("is-open"),document.removeEventListener("keydown",U,true),window.removeEventListener("resize",j),null==q||q.destroy();let e=false;const t=()=>{e||(e=true,F.remove(),document.documentElement.style.overflow=N,sa());};F.addEventListener("transitionend",t,{once:true}),setTimeout(t,240);},z=F.querySelector(".blp-settings"),U=e=>{if("Escape"===e.key){if(document.querySelector(".blp-confirm-backdrop"))return;if(e.preventDefault(),null==q?void 0:q.handleEscape())return;O();}},q=function(e,{activateTab:t}){const a=e.querySelector("[data-blp-search]"),i=e.querySelector(".blp-settings__body"),n=e.querySelector("[data-blp-search-count]"),r=e.querySelector("[data-blp-search-clear]"),o=e.querySelector(".blp-search__kbd"),s=e.querySelector("[data-blp-search-empty]"),l=e.querySelector("[data-blp-search-empty-title]"),c=e.querySelector(".blp-settings__tabs");if(!a||!i)return {handleEscape:()=>false,destroy(){}};const u=new Map;e.querySelectorAll("[data-blp-tab]").forEach(e=>{var t,a;u.set(e.getAttribute("data-blp-tab"),(null==(a=null==(t=e.querySelector(".blp-settings__tab-label"))?void 0:t.textContent)?void 0:a.trim())||"");});const d=[...i.querySelectorAll(".blp-settings__panel")].map(e=>{const t=e.id.replace(/^blp-panel-/,""),a=document.createElement("button");a.type="button",a.className="blp-search-panel-head",a.setAttribute("data-blp-search-tab",t),a.title=le(tt.settingsSearchOpenTab,{tab:u.get(t)||t}),a.innerHTML=`${ct(u.get(t)||t)}`,e.prepend(a);const i=[...e.querySelectorAll(".blp-settings-group")].map(e=>{const t=e.querySelector(".blp-settings-group__head"),a=[...e.querySelectorAll(fo)].map(e=>({el:e,text:wo(e.textContent)}));return {el:e,head:t,headText:wo(null==t?void 0:t.textContent),items:a,wholeText:a.length?"":wo(e.textContent)}});return {id:t,el:e,head:a,groups:i}});let p=false,m=0;const g=()=>{i.querySelectorAll(`.${So}, .${vo}`).forEach(e=>{e.classList.remove(So,vo);}),s&&(s.hidden=true);},h=t=>{p=t,e.classList.toggle("is-searching",t),null==c||c.querySelectorAll("[data-blp-tab]").forEach(e=>{t||e.classList.remove("is-dim");});},b=(s=true)=>{var l;if((p||a.value)&&(a.value="",To(i),g(),h(false),n&&(n.textContent=""),r&&(r.hidden=true),o&&(o.hidden=false),s)){const a=null==(l=null==c?void 0:c.querySelector(".blp-settings__tab.is-active"))?void 0:l.getAttribute("data-blp-tab");a&&t(e,a);}};a.addEventListener("input",()=>{var e;const t=a.value,u=function(e){return wo(e).split(" ").filter(Boolean)}(t);if(r&&(r.hidden=!t),o&&(o.hidden=Boolean(t)),!u.length)return void b(true);To(i),g(),h(true);let p=0;for(const a of d){let t=0;for(const e of a.groups){let a=0;if(e.items.length){for(const t of e.items){const i=ko(`${e.headText} ${t.text}`,u);t.el.classList.toggle(So,!i),i&&(a+=1,Po(t.el,u));}e.el.querySelectorAll(".blp-settings-list").forEach(e=>{const t=e.querySelector(`${fo}:not(.${So})`);e.classList.toggle(So,!t),null==t||t.classList.add(vo);});}else ko(e.wholeText,u)&&(a=1,Po(e.el,u));e.el.classList.toggle(So,0===a),a&&(Po(e.head,u),t+=a);}a.el.hidden=0===t;const i=a.head.querySelector(".blp-search-panel-head__count");i&&(i.textContent=t?String(t):""),null==(e=null==c?void 0:c.querySelector(`[data-blp-tab="${a.id}"]`))||e.classList.toggle("is-dim",0===t),p+=t;}n&&(n.textContent=p?le(tt.settingsSearchCount,{count:p}):""),s&&(s.hidden=p>0,l&&(l.textContent=le(tt.settingsSearchEmpty,{query:t.trim()}))),i.scrollTop=0;}),a.addEventListener("keydown",e=>{if("Enter"===e.key||"ArrowDown"===e.key){if(!p)return;e.preventDefault(),(()=>{const e=d.find(e=>!e.el.hidden);if(!e)return;const t=e.groups.find(e=>!e.el.classList.contains(So));if(!t)return;const a=t.items.find(e=>!e.el.classList.contains(So)),i=(null==a?void 0:a.el)||t.el;i.scrollIntoView({block:"center",behavior:"smooth"});const n=i.querySelector(".blp-switch, select:not(:disabled), input:not(:disabled), button");null==n||n.focus({preventScroll:true}),i.classList.add("is-flash"),window.clearTimeout(m),m=window.setTimeout(()=>i.classList.remove("is-flash"),1100);})();}}),null==r||r.addEventListener("click",()=>{b(true),a.focus();}),null==c||c.addEventListener("click",e=>{var t,a;p&&(null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-tab]"))&&b(false);},true),i.addEventListener("click",a=>{var i,n;const r=null==(n=null==(i=a.target)?void 0:i.closest)?void 0:n.call(i,"[data-blp-search-tab]");if(!r)return;const o=r.getAttribute("data-blp-search-tab");b(false),t(e,o);});const f=e=>{var t,i;if(e.defaultPrevented)return;const n=e.ctrlKey||e.metaKey;(n&&!e.altKey&&("k"===e.key||"K"===e.key)||!n&&!e.altKey&&"/"===e.key&&!(null==(i=null==(t=e.target)?void 0:t.closest)?void 0:i.call(t,"input, textarea, select, [contenteditable]")))&&(document.querySelector(".blp-confirm-backdrop")||(e.preventDefault(),a.focus(),a.select()));};return document.addEventListener("keydown",f,true),{handleEscape:()=>!!a.value&&(b(true),a.focus(),true),destroy(){window.clearTimeout(m),document.removeEventListener("keydown",f,true);}}}(z,{activateTab:jo}),j=()=>Uo(z);window.addEventListener("resize",j),F.addEventListener("click",e=>{e.target===F&&O();}),null==(e=F.querySelector("[data-blp-cancel]"))||e.addEventListener("click",O);const W=F.querySelector("#blp-accent-color"),K=F.querySelector("[data-blp-accent-value]"),J=e=>{const t=oa(e);b.accentColor=t,W&&(W.value=t),K&&(K.textContent=t.toUpperCase()),F.querySelectorAll("[data-blp-accent]").forEach(e=>{const a=e.dataset.blpAccent===t;e.classList.toggle("is-active",a),e.setAttribute("aria-pressed",a?"true":"false");}),sa(t);};J(b.accentColor),null==W||W.addEventListener("input",()=>J(W.value)),F.querySelectorAll("[data-blp-accent]").forEach(e=>{e.addEventListener("click",()=>J(e.dataset.blpAccent));}),null==(t=F.querySelector("[data-blp-accent-reset]"))||t.addEventListener("click",()=>J(o)),null==(a=F.querySelector("#blp-translate-locale"))||a.addEventListener("change",e=>{var t;!function(e,t){var a;const i=null==(a=null==e?void 0:e.querySelector)?void 0:a.call(e,"[data-blp-translate-tab-badge]");if(!i)return;const n=document.createElement("div");n.innerHTML=Eo(t).trim();const r=n.firstElementChild;r&&i.replaceWith(r);}(F,null==(t=e.target)?void 0:t.value),Uo(z);}),null==(i=null==z?void 0:z.querySelector(".blp-settings__tabs"))||i.addEventListener("click",e=>{var t,a;const i=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-tab]");i&&z.contains(i)&&jo(z,i.getAttribute("data-blp-tab"));}),null==(n=null==z?void 0:z.querySelector(".blp-settings__tabs"))||n.addEventListener("keydown",e=>{var t,a;const i=[...z.querySelectorAll("[data-blp-tab]")],n=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-tab]");if(!n||!i.length)return;const r=i.indexOf(n);if(r<0)return;let o=-1;if("ArrowRight"===e.key||"ArrowDown"===e.key?o=(r+1)%i.length:"ArrowLeft"===e.key||"ArrowUp"===e.key?o=(r-1+i.length)%i.length:"Home"===e.key?o=0:"End"===e.key&&(o=i.length-1),o<0)return;e.preventDefault();const s=i[o].getAttribute("data-blp-tab");jo(z,s),i[o].focus();}),null==(r=null==z?void 0:z.querySelector(".blp-settings__tabs"))||r.addEventListener("scroll",()=>Uo(z),{passive:true});const V=()=>{const e=F.querySelector("#blp-oc-source"),t=F.querySelector("#blp-oc-key");e&&(e.disabled=!b.showOpenCritic),t&&(t.disabled=!b.showOpenCritic||"api"!==(null==e?void 0:e.value));};null==(u=F.querySelector("#blp-oc-source"))||u.addEventListener("change",V),F.querySelectorAll("[data-blp-toggle]").forEach(e=>{e.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation();const a=e.getAttribute("data-blp-toggle");if(b[a]=!b[a],qo(e,b[a]),"showPriceConvert"===a){const e=F.querySelector("#blp-convert-ccy");e&&(e.disabled=!b.showPriceConvert);}if("showOpenCritic"===a&&V(),"showUserMiniProfile"===a||"showGameMiniProfile"===a){const e=F.querySelector("showUserMiniProfile"===a?"#blp-user-mp-trigger":"#blp-game-mp-trigger");e&&(e.disabled=false===b[a]);}"cacheGameData"!==a&&"cacheUserProfiles"!==a&&"cacheTranslations"!==a&&"cacheFx"!==a||(function(e,t){const a={};for(const i of Fo)a[i]=Qe[i],Qe[i]=false!==t[i];try{ia(e);}finally{for(const e of Fo)Qe[e]=a[e];}}(F,b),Uo(z));});});const Y=F.querySelector("[data-blp-links-list]"),Z=()=>[...(null==Y?void 0:Y.querySelectorAll("[data-blp-link-id]"))||[]],X=()=>{b.linkOrder=Z().map(e=>e.getAttribute("data-blp-link-id"));},Q=()=>{const e=b.customLinks.length>=30,t=null==Y?void 0:Y.querySelector("[data-blp-link-add]"),a=null==Y?void 0:Y.querySelector("[data-blp-link-limit]");t&&(t.disabled=e),a&&(a.textContent=e?le(tt.linkLimit,{n:30}):"");};Q();const ie=(e,t)=>{const a=Z(),i=new Map(a.map(e=>[e,e.getBoundingClientRect().top])),n=t||Y.querySelector(".blp-link-add");return e.nextElementSibling!==n&&(Y.insertBefore(e,n),a.forEach(t=>{if(t===e)return;const a=i.get(t)-t.getBoundingClientRect().top;a&&(t.style.transition="none",t.style.transform=`translateY(${a}px)`,t.style.transition="transform 0.16s ease",t.style.transform="");}),true)};let se=null;const ce=()=>{if(!se)return;const{row:e,y:t}=se,a=t-Y.getBoundingClientRect().top,i=Z().filter(t=>t!==e).find(e=>a{if(!se)return;const e=F.querySelector(".blp-settings__body");if(e){const t=e.getBoundingClientRect(),a=48;se.yt.bottom-a&&(e.scrollTop+=Math.ceil((se.y-(t.bottom-a))/4));}ce(),se.raf=requestAnimationFrame(ue);},de=e=>{se&&e.pointerId===se.pointerId&&(se.y=e.clientY,ce());},pe=e=>{se&&e.pointerId===se.pointerId&&(cancelAnimationFrame(se.raf),se.row.classList.remove("is-dragging"),document.documentElement.classList.remove("blp-link-dragging"),document.removeEventListener("pointermove",de),document.removeEventListener("pointerup",pe),document.removeEventListener("pointercancel",pe),se=null,X());};null==Y||Y.addEventListener("pointerdown",e=>{var t,a;const i=null==(a=(t=e.target).closest)?void 0:a.call(t,"[data-blp-link-grip]"),n=null==i?void 0:i.closest("[data-blp-link-id]");!n||"mouse"===e.pointerType&&0!==e.button||(e.preventDefault(),se={row:n,pointerId:e.pointerId,y:e.clientY,raf:0},n.classList.add("is-dragging"),document.documentElement.classList.add("blp-link-dragging"),document.addEventListener("pointermove",de),document.addEventListener("pointerup",pe),document.addEventListener("pointercancel",pe),se.raf=requestAnimationFrame(ue));}),null==Y||Y.addEventListener("keydown",e=>{var t,a;const i=null==(a=(t=e.target).closest)?void 0:a.call(t,"[data-blp-link-grip]");if(!i||"ArrowUp"!==e.key&&"ArrowDown"!==e.key)return;e.preventDefault();const n=i.closest("[data-blp-link-id]"),r=Z(),o=r.indexOf(n);if("ArrowUp"===e.key&&o>0)ie(n,r[o-1]);else {if(!("ArrowDown"===e.key&&o{var t,a,i,n;const r=null==(a=(t=e.target).closest)?void 0:a.call(t,"[data-blp-link-id]");if(null==(n=(i=e.target).closest)?void 0:n.call(i,"[data-blp-link-add]")){if(b.customLinks.length>=30)return;Io({onSave:e=>{var t;const a={id:ke(),enabled:true,...e};b.customLinks.push(a),null==(t=Y.querySelector(".blp-link-add"))||t.insertAdjacentHTML("beforebegin",k(a.id)),X(),Q();const i=Y.querySelector(`[data-blp-link-id="${a.id}"]`);null==i||i.scrollIntoView({block:"nearest",behavior:"smooth"}),null==i||i.classList.add("is-flash"),window.setTimeout(()=>null==i?void 0:i.classList.remove("is-flash"),1100);}});}else if(r&&!e.target.closest("[data-blp-link-grip], a, input, select"))if(e.target.closest("[data-blp-link-edit]"))(e=>{const t=e.getAttribute("data-blp-link-id"),a=v(t);a&&Io({link:a,onSave:i=>{Object.assign(a,i),e.innerHTML=w(t);}});})(r);else {if(e.target.closest("[data-blp-link-remove]")){const e=r.getAttribute("data-blp-link-id");return b.customLinks=b.customLinks.filter(t=>t.id!==e),r.remove(),X(),void Q()}(e=>{const t=e.getAttribute("data-blp-link-id");if(we(t)){const e=v(t);e&&(e.enabled=false===e.enabled);}else b.links[t]=false===b.links[t];const a=e.querySelector(".blp-switch");a&&qo(a,y(t));})(r);}}),F.querySelectorAll(".blp-toggle:not([data-blp-link-id])").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==(d=F.querySelector("[data-blp-clear]"))||d.addEventListener("click",()=>{const e=na();ia(F),Uo(z),gn(e?le(tt.cacheCleared,{count:e}):tt.cacheEmpty,{type:e?"success":"info",title:e?tt.toastCacheClearedTitle:tt.cacheEmptyTitle});}),null==(p=F.querySelector("[data-blp-settings-export]"))||p.addEventListener("click",()=>{var e,t,a,i,n,r,o,s,l;try{const u=null==(e=F.querySelector("#blp-steam-cc"))?void 0:e.value,d=Number(null==(t=F.querySelector("#blp-cache-hours"))?void 0:t.value),p=null==(a=F.querySelector("#blp-ui-locale"))?void 0:a.value,m=null==(i=F.querySelector("#blp-translate-locale"))?void 0:i.value,g=null==(n=F.querySelector("#blp-translate-mode"))?void 0:n.value,h=null==(r=F.querySelector("#blp-convert-ccy"))?void 0:r.value,f=null==(o=F.querySelector("#blp-user-mp-trigger"))?void 0:o.value,S=null==(s=F.querySelector("#blp-game-mp-trigger"))?void 0:s.value,v={...b,links:{...b.links},customLinks:b.customLinks.map(e=>({...e}))};null!=p&&(v.uiLocale=p),null!=m&&(v.translateTargetLocale=m),null!=g&&(v.translateDisplayMode=g);const y=null==(l=F.querySelector("#blp-custom-links-style"))?void 0:l.value;null!=y&&(v.customLinksStyle=Ze(y)),null!=u&&(v.steamCountry=u),null!=h&&(v.convertCurrency=h),null!=f&&(v.userMiniProfileTrigger=f),null!=S&&(v.gameMiniProfileTrigger=S),Number.isFinite(d)&&(v.cacheHours=d),function(e,t){const a=`${JSON.stringify(t,null,2)}\n`,i=new Blob([a],{type:"application/json;charset=utf-8"}),n=URL.createObjectURL(i),r=document.createElement("a");r.href=n,r.download=e,r.rel="noopener",document.body.appendChild(r),r.click(),r.remove(),window.setTimeout(()=>URL.revokeObjectURL(n),2e3);}(function(e=new Date){return `backloggd-plus-settings-${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}.json`}(),function(e=qe()){const{settings:t}=Xe(e);return t.openCriticApiKey="",{kind:Ee,version:1,scriptVersion:c,exportedAt:(new Date).toISOString(),settings:t}}(v)),gn(tt.toastSettingsExported,{type:"success",title:tt.toastSettingsExportedTitle});}catch(u){gn(tt.toastSettingsExportFailed,{type:"error",title:tt.toastSettingsExportFailedTitle});}});const me=F.querySelector("[data-blp-settings-import-file]"),ge=async e=>{var t;if(e)try{const a=await function(e){return new Promise((t,a)=>{const i=new FileReader;i.onload=()=>t(String(i.result||"")),i.onerror=()=>a(i.error||new Error("read failed")),i.readAsText(e);})}(e),i=function(e,t=0){if(t>Ge)return {ok:!1,code:"too_large"};const a=String(null!=e?e:"").replace(/^\uFEFF/,"").trim();if(!a)return {ok:!1,code:"empty"};if(a.length>Ge)return {ok:!1,code:"too_large"};let i;try{i=JSON.parse(a);}catch(c){return {ok:!1,code:"invalid_json"}}const{raw:n,meta:r}=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return {raw:null,meta:{}};if(e.kind===Ee&&e.settings&&"object"==typeof e.settings&&!Array.isArray(e.settings))return {raw:e.settings,meta:{kind:e.kind,formatVersion:e.version,scriptVersion:e.scriptVersion,exportedAt:e.exportedAt}};for(const t of ["settings","data","preferences","config"]){const a=e[t];if(a&&"object"==typeof a&&!Array.isArray(a))return {raw:a,meta:{kind:"string"==typeof e.kind?e.kind:null,formatVersion:e.version,scriptVersion:e.scriptVersion,exportedAt:e.exportedAt}}}return {raw:e,meta:{}}}(i);if(!function(e){return !(!e||"object"!=typeof e||Array.isArray(e))&&(!(!e.links||"object"!=typeof e.links||Array.isArray(e.links))||Object.keys(ae).some(t=>"links"!==t&&t in e))}(n))return {ok:!1,code:"not_settings"};const{settings:o,appliedKeys:s,ignoredKeys:l}=Xe(n);return 0===s.length?{ok:!1,code:"empty"}:{ok:!0,settings:o,appliedKeys:s,ignoredKeys:l,meta:r}}(a,e.size||0);if(!i.ok)return void gn((t=i.code,"too_large"===t?tt.toastSettingsImportTooLarge:"empty"===t?tt.toastSettingsImportEmpty:"invalid_json"===t||"not_settings"===t?tt.toastSettingsImportInvalid:tt.toastSettingsImportReadFailed),{type:"error",title:tt.toastSettingsImportFailedTitle});Wo({title:tt.settingsImportConfirmTitle,message:tt.settingsImportConfirm,confirmLabel:tt.settingsImportConfirmAction,danger:!0,onConfirm:()=>(e=>{e.settings.openCriticApiKey||(e.settings.openCriticApiKey=Qe.openCriticApiKey||""),je(e.settings),ot(),Zt(),hn(tt.toastSettingsImported,{type:"success",title:tt.toastSettingsImportedTitle}),location.reload();})(i)});}catch(a){gn(tt.toastSettingsImportReadFailed,{type:"error",title:tt.toastSettingsImportFailedTitle});}};null==(m=F.querySelector("[data-blp-settings-import]"))||m.addEventListener("click",()=>{me&&(me.value="",me.click());}),null==me||me.addEventListener("change",()=>{var e;const t=null==(e=me.files)?void 0:e[0];ge(t);}),null==(g=F.querySelector("[data-blp-reset]"))||g.addEventListener("click",()=>{Wo({title:tt.resetSettingsConfirmTitle,message:tt.resetSettingsConfirm,confirmLabel:tt.resetSettingsConfirmAction,danger:true,onConfirm:()=>{je(Ue()),ot(),hn(tt.toastSettingsReset,{type:"success",title:tt.toastSettingsResetTitle}),location.reload();}});}),null==(h=F.querySelector("[data-blp-save]"))||h.addEventListener("click",()=>{var e,t,a,i,n,r,o,s,l,c,u,d,p,m,g,h;const f=(null==(e=F.querySelector("#blp-steam-cc"))?void 0:e.value)||"US",S=Number(null==(t=F.querySelector("#blp-cache-hours"))?void 0:t.value),v=(null==(a=F.querySelector("#blp-ui-locale"))?void 0:a.value)||"auto";b.uiLocale="auto"===v||ne.includes(v)?v:"auto";const y=(null==(i=F.querySelector("#blp-site-locale"))?void 0:i.value)||"off";b.siteLocale="off"===y||ba().includes(y)?y:"off";const w=(null==(n=F.querySelector("#blp-translate-locale"))?void 0:n.value)||"auto";b.translateTargetLocale="auto"===w||ne.includes(w)?w:"auto";const k=(null==(r=F.querySelector("#blp-translate-mode"))?void 0:r.value)||"replace";b.translateDisplayMode="below"===k?"below":"replace",b.steamCountry=String(f).toUpperCase(),b.userMiniProfileTrigger=Ye(null!=(s=null==(o=F.querySelector("#blp-user-mp-trigger"))?void 0:o.value)?s:b.userMiniProfileTrigger),b.gameMiniProfileTrigger=Ye(null!=(c=null==(l=F.querySelector("#blp-game-mp-trigger"))?void 0:l.value)?c:b.gameMiniProfileTrigger);const C=(null==(u=F.querySelector("#blp-convert-ccy"))?void 0:u.value)||"RUB";b.convertCurrency=String(C).toUpperCase(),b.openCriticSource="api"===(null==(d=F.querySelector("#blp-oc-source"))?void 0:d.value)?"api":"auto",b.openCriticApiKey=Ve(null!=(m=null==(p=F.querySelector("#blp-oc-key"))?void 0:p.value)?m:b.openCriticApiKey),b.showPriceConvert=Boolean(b.showPriceConvert),b.cacheHours=Number.isFinite(S)?Math.max(0,Math.min(168,S)):ae.cacheHours,b.cacheGameData=false!==b.cacheGameData,b.cacheUserProfiles=false!==b.cacheUserProfiles,b.cacheTranslations=false!==b.cacheTranslations,b.cacheFx=false!==b.cacheFx,X(),b.customLinksStyle=Ze(null!=(h=null==(g=F.querySelector("#blp-custom-links-style"))?void 0:g.value)?h:b.customLinksStyle),je(b),ot(),Zt(),hn(tt.toastSettingsSaved,{type:"success",title:tt.toastSettingsSavedTitle}),location.reload();}),document.body.appendChild(F),document.addEventListener("keydown",U,true),requestAnimationFrame(()=>{F.classList.add("is-open"),Uo(z);});}const Jo="blp-nav-settings",Vo="blp-profile-menu-settings";function Yo(){!function(){const e=document.getElementById(Vo);if(true!==Qe.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=Vo,a.className="dropdown-item py-1",a.href="#",a.textContent=tt.navSettings,a.title=tt.navSettingsTitle,a.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),Ko();});const i=t.querySelector('a.dropdown-item[href="/settings/"], a.dropdown-item[href="/settings"]');if(i)return void i.insertAdjacentElement("beforebegin",a);const n=t.querySelector('a.dropdown-item[href="/users/sign_out"], a.dropdown-item[href="/users/sign_out/"]');n?n.insertAdjacentElement("beforebegin",a):t.appendChild(a);}();const e=document.getElementById(Jo);if(true===Qe.showProfileMenuSettings)return void(null==e||e.remove());if(e)return;const t=document.createElement("button");t.id=Jo,t.type="button",t.className="btn btn-main mb-2 my-sm-0 py-0",t.title=tt.navSettingsTitle,t.innerHTML=` ${ct(tt.navSettings)}`,t.addEventListener("click",e=>{e.preventDefault(),Ko();});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 i=document.querySelector("#navbarSupportedContent .col.my-auto, #primary-nav .col.my-auto");if(i)return t.classList.add("ml-2"),void i.appendChild(t);const n=document.querySelector("#navbarSupportedContent > ul.navbar-nav")||document.querySelector("#primary-nav ul.navbar-nav.ml-auto");if(!n)return;const r=document.createElement("li");r.className="nav-item my-auto",r.appendChild(t),n.appendChild(r);}const Zo="data-blp-hide-homepage-fuse",Xo="data-blp-floating-header",Qo="data-blp-header-compact";let es=false;function ts(){document.documentElement.hasAttribute(Xo)&&document.documentElement.toggleAttribute(Qo,window.scrollY>12);}function as(e){return `user:profile:${String(e||"").trim().toLowerCase()}`}function is(e){const t=Math.max(0,Number(e)||0);let a=T[0];for(const i of T)t>=i.min&&(a=i);return {...a,gamesPlayed:t}}function ns(e){return e?e.tierId?e.tierId:is(e.gamesPlayed).id:"rookie"}function rs(e){(null==e?void 0:e.username)&&Et(as(e.username),e,{ttlMs:216e5});}function os(e){const t=String(e||"").match(/\/u\/([^/?#]+)/i);if(!t)return "";try{return decodeURIComponent(t[1]).trim()}catch(a){return t[1].trim()}}function ss(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(i){return ""}}function ls(e){return String(e||"").replace(/\/t_cover_big(_2x)?\//i,"/t_cover_small/")}function cs(e){return ((null==e?void 0:e.textContent)||"").replace(/\s+/g," ").trim()}function us(e){const t=String(e||"").replace(/[^\d]/g,"");return t&&Number.parseInt(t,10)||0}function ds(e){const t=[];for(const a of e.querySelectorAll(".badges .backlog-badge-cus-col")||[]){const i=a.querySelector(".badge-tooltip"),n=(null==i?void 0:i.getAttribute("badge_id"))||"",r=n?e.getElementById(`badge-${n}`):null,o=cs((null==r?void 0:r.querySelector(".badge-title"))||a.querySelector(".badge-title")),s=cs((null==r?void 0:r.querySelector(".badge-desc"))||a.querySelector(".badge-desc")),l=a.querySelector(".badge-image img"),c=ss((null==l?void 0:l.getAttribute("src"))||"");if((o||c)&&(t.push({id:n,title:o,desc:s,imageUrl:c}),t.length>=6))break}return t}function ps(e,t){var a,i;if(!e)return [];const n=[],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==(i=null==(a=o.parentElement)?void 0:a.querySelector)?void 0:i.call(a,'a[href*="/games/"]')),s=ss((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=cs(o.querySelector(".game-text-centered"))||((null==u?void 0:u.getAttribute("alt"))||"").trim()||c.replace(/-/g," "),p=ls(ss((null==u?void 0:u.getAttribute("data-src"))||(null==u?void 0:u.getAttribute("src"))||""));if(n.push({slug:c,title:d,coverUrl:p,href:s||`/games/${c}/`}),n.length>=t)break}return n}function ms(e){const t=e.querySelector("#bio-body");if(!t)return "";const a=t.querySelector("i.text-color-secondary");if(a&&/nothing here/i.test(cs(a)))return "";const i=t.cloneNode(true);return i.querySelectorAll("script, style").forEach(e=>e.remove()),cs(i).slice(0,280)}function gs(e,t=""){var a,i,n,r;if(!e)return null;const o=cs(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=ss((null==(a=null==s?void 0:s.getAttribute)?void 0:a.call(s,"src"))||(null==(i=null==s?void 0:s.getAttribute)?void 0:i.call(s,"content"))||""),c=(null==(n=e.querySelector("button.friend-btn[user_id]"))?void 0:n.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 i of a){const e=cs(i.querySelector("h4")).replace(/\s+/g," "),a=us(cs(i.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),p=function(e){return [...e.querySelectorAll("#ratings-bars-height .top-tooltip")||[]].map((e,t)=>{var a;const i=e.getAttribute("data-tippy-content")||"",n=i.match(/^(\d+)\s*\|\s*([\d.]+)/),r=n&&Number(n[1])||0,o=n&&Number(n[2])||.5*(t+1),s=i.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),m=p.reduce((e,t)=>e+(t.count||0),0),g=p.reduce((e,t)=>e+(t.count||0)*(t.stars||0),0),h=m>0?Math.round(g/m*10)/10:null,b=is(d.gamesPlayed);return {username:o,userId:u,avatarUrl:l,bio:ms(e),gamesPlayed:d.gamesPlayed,playedYear:d.playedYear,playedYearLabel:d.playedYearLabel,backlog:d.backlog,ratings:p,ratedCount:m,avgRating:h,badges:ds(e),favorites:ps(e.querySelector("#profile-favorites"),5),recent:ps(e.querySelector("#profile-journal"),4),profileUrl:`/u/${encodeURIComponent(o)}/`,tierId:b.id,tierMin:b.min}}function hs(e){const t=String(e||"").trim();if(!t)return null;const a=Mt(as(t));return (null==a?void 0:a.username)?a:null}async function bs(e){const t=String(e||"").trim();if(!t)return null;const a=as(t),i=Mt(a);if(null==i?void 0:i.username)return Gt(i);if(nt.has(a))return nt.get(a);const n=(async()=>{const e=`https://www.backloggd.com/u/${encodeURIComponent(t)}/`,a=function(e,t=""){return gs((new DOMParser).parseFromString(String(e||""),"text/html"),t)}(await la({url:e,method:"GET",responseType:"text",anonymous:false,headers:{Accept:"text/html","Cache-Control":"no-cache"}}),t);return a?(rs(a),$t(a)):null})().catch(()=>null);nt.set(a,n);try{return await n}finally{nt.delete(a);}}const fs="cubic-bezier(0.22, 1, 0.36, 1)",Ss="is-leaving-sec";function vs(){var e;return true===(null==(e=window.matchMedia)?void 0:e.call(window,"(prefers-reduced-motion: reduce)").matches)}function ys(e,t,a){const i=[...e.children];for(const n of [...t.children]){const e=i.findIndex(e=>e.outerHTML===n.outerHTML);if(e>=0){const[t]=i.splice(e,1);n.replaceWith(t),a.add(t);continue}const t=i.findIndex(e=>e.tagName===n.tagName&&e.className===n.className);if(t>=0){const[e]=i.splice(t,1);ys(e,n,a);}}}function ws(e,t,a=[]){const i=[...e.children];if(!i.length)return a.push(e),a;for(const n of i)t.has(n)||([...t].some(e=>n.contains(e))?ws(n,t,a):a.push(n));return a}function ks(e,t,a){const i=document.createElement("template");i.innerHTML=t.trim();const n=i.content.firstElementChild,r=e.querySelector(`:scope > ${a}`);if(!n||!r||!r.querySelector(":scope > [data-sec]"))return e.innerHTML=t,false;r.className=n.className;const o=new Map;r.querySelectorAll(`:scope > [data-sec]:not(.${Ss})`).forEach(e=>o.set(e.dataset.sec,e));const s=[...n.querySelectorAll(":scope > [data-sec]")],l=new Set(s.map(e=>e.dataset.sec));o.forEach((e,t)=>{l.has(t)||function(e){if(vs())return void e.remove();e.classList.add(Ss),e.style.overflow="hidden";const t=e.animate([{height:`${e.offsetHeight}px`,marginTop:getComputedStyle(e).marginTop,opacity:1},{height:"0px",marginTop:"0px",opacity:0}],{duration:320,easing:fs,fill:"forwards"});t.onfinish=()=>e.remove(),t.oncancel=()=>e.remove();}(e);});const c=[],u=[];for(const g of s){const e=o.get(g.dataset.sec);if(!e){c.push(g),u.push({node:g,fresh:true});continue}if(e.innerHTML===g.innerHTML){c.push(e);continue}const t=new Set,a=e.firstElementChild,i=g.firstElementChild;a&&i&&ys(a,i,t);const n=e.offsetHeight;e.replaceWith(g),c.push(g),u.push({node:g,h0:n,reused:t});}const d=e=>{let t=e?e.nextElementSibling:r.firstElementChild;for(;null==t?void 0:t.classList.contains(Ss);)t=t.nextElementSibling;return t},p=r.querySelectorAll(":scope > :not([data-sec])");let m=p.length?p[p.length-1]:null;for(const g of c){const e=d(m);g!==e&&r.insertBefore(g,e),m=g;}if(vs())return true;for(const g of u){const{node:e}=g,t=e.offsetHeight,a=(t,a)=>{e.style.overflow="hidden";const i=e.animate(t,{duration:420,easing:fs,...a}),n=()=>{e.style.overflow="";};i.onfinish=n,i.oncancel=n;};if(g.fresh){a([{height:"0px",marginTop:"0px",opacity:0,transform:"translateY(8px)"},{height:`${t}px`,marginTop:getComputedStyle(e).marginTop,opacity:1,transform:"none"}],{});continue}Math.abs(t-g.h0)>1&&a([{height:`${g.h0}px`},{height:`${t}px`}],{});const i=e.firstElementChild;i&&ws(i,g.reused).forEach((e,t)=>{e.animate([{opacity:0,transform:"translateY(5px)"},{opacity:1,transform:"none"}],{duration:380,delay:35*Math.min(t,6),easing:fs,fill:"backwards"});});}return true}const Cs="data-blp-gmp-hover",Ps="data-blp-gmp",Ts="data-blp-gmp-preload",Bs="blp-game-mini-profile",xs=`#${Bs}, .blp-gmp, #blp-user-mini-profile, .blp-ump, .blp-settings-backdrop, .blp-fix-match-backdrop, .blp-export-backdrop`,As="a.blp-ump__cover",Ls="is-nested",Hs="#blp-user-mini-profile";function Ds(e){var t;return Boolean((null==(t=null==e?void 0:e.matches)?void 0:t.call(e,As))&&e.closest(Hs))}function Ms(e){var t;const a=null==(t=null==e?void 0:e.closest)?void 0:t.call(e,`#${Bs}`);return Boolean(null==a?void 0:a.classList.contains(Ls))}function Es({immediate:e=false}={}){(null==Os?void 0:Os.classList.contains(Ls))&&al({immediate:e});}let Gs=false,$s=0,_s=0,Rs=0,Is=null,Fs=null,Ns="",Os=null,zs=0,Us=0,qs=0;const js=[];let Ws=null;const Ks=new Set,Js=new Map,Vs=new Map;function Ys(){return Ye(Qe.gameMiniProfileTrigger)}function Zs(e){var t;return false===Qe.gameMiniProfileTiers?null:function(e){const t=Number(e);if(null==e||!Number.isFinite(t)||t<=0)return null;let a=B[0];for(const i of B)t>=i.min&&(a=i);return a.id}(null==(t=null==e?void 0:e.profile)?void 0:t.rating)}function Xs(e){return C.replace("{domain}",encodeURIComponent(e))}function Qs(e){var t,a,i;const n=null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"img");return ((null==(a=null==n?void 0:n.getAttribute)?void 0:a.call(n,"data-src"))||(null==(i=null==n?void 0:n.getAttribute)?void 0:i.call(n,"src"))||"").trim()}function el(){return Os&&document.body.contains(Os)||(Os=document.createElement("div"),Os.id=Bs,Os.className="blp-gmp",Os.setAttribute("role","dialog"),Os.setAttribute("aria-hidden","true"),Os.addEventListener("pointerenter",()=>{window.clearTimeout(_s);}),Os.addEventListener("pointerleave",()=>{"hover"===Ys()&&fl();}),document.body.appendChild(Os)),Os}function tl(){var e;window.clearTimeout(Rs),Os&&Is&&(Os.removeEventListener("transitionend",Is),Is=null),Os&&(Os.classList.remove("is-open","is-leaving","is-loading","is-ready","is-updating",Ls),Os.setAttribute("aria-hidden","true"),Os.innerHTML="",null==(e=null==Fs?void 0:Fs.removeAttribute)||e.call(Fs,Cs),Fs=null,Ns="");}function al({immediate:e=false}={}){if(!Os)return;Us+=1,window.clearTimeout(Rs),Is&&(Os.removeEventListener("transitionend",Is),Is=null);const t=Os.classList.contains("is-open");!e&&t?(Os.classList.add("is-leaving"),Os.classList.remove("is-open","is-loading","is-ready"),Os.setAttribute("aria-hidden","true"),Is=e=>{e.target===Os&&("opacity"!==e.propertyName&&"transform"!==e.propertyName||tl());},Os.addEventListener("transitionend",Is),Rs=window.setTimeout(tl,300)):tl();}function il(e){var t,a;const i=el(),n=e.getBoundingClientRect(),r=(null==(a=null==(t=e.closest)?void 0:t.call(e,Hs))?void 0:a.getBoundingClientRect())||n,o=i.offsetWidth||312,s=i.offsetHeight||420;let l=r.right+10,c=n.top+n.height/2-s/2;l+o>window.innerWidth-12&&(l=r.left-o-10),l<12&&(l=Math.max(12,Math.min(window.innerWidth-o-12,n.left+n.width/2-o/2)),c=n.bottom+10,c+s>window.innerHeight-12&&(c=n.top-s-10)),c=Math.max(12,Math.min(window.innerHeight-s-12,c)),i.style.left=`${Math.round(l)}px`,i.style.top=`${Math.round(c)}px`;}function nl(e=""){return ``}const rl=[{id:"hero",render:e=>function(e){const t=e.profile,a=(null==t?void 0:t.title)||e.titleHint||e.slug,i=(null==t?void 0:t.year)||"",n=(null==t?void 0:t.coverUrl)||e.coverHint||"",r=null==t?void 0:t.rating,o=(null==t?void 0:t.gameUrl)||`/games/${encodeURIComponent(e.slug)}/`,s=n?``:'',l=null!=r?`${ct(String(r))}★`:e.loadingProfile?nl("blp-gmp__bone--rating"):"",c=i?`${ct(i)}`:"",u=Zs(e),d=u?`${ct(function(e){return {rookie:tt.miniProfileTierRookie,bronze:tt.miniProfileTierBronze,silver:tt.miniProfileTierSilver,gold:tt.miniProfileTierGold,platinum:tt.miniProfileTierPlatinum,diamond:tt.miniProfileTierDiamond,master:tt.miniProfileTierMaster,legend:tt.miniProfileTierLegend}[e]||tt.miniProfileTierRookie}(u))}`:e.loadingProfile&&!t&&false!==Qe.gameMiniProfileTiers?nl("blp-gmp__bone--pill"):"";return `\n
    \n \n
    ${s}
    \n
    \n
    \n ${d}\n ${ct(a)}\n
    \n ${c}\n ${l}\n
    \n
    \n
    \n `}(e)},{id:"meta",render:e=>function(e){const t=e.profile;if(!t&&e.loadingProfile)return `\n \n `;if(!t)return "";const a=(t.developers||[]).map(e=>e.href?`${ct(e.name)}`:`${ct(e.name)}`).join(' · '),i=(t.platforms||[]).map(e=>`${ct(e)}`).join("");return a||i?`\n
    \n ${a?`
    ${a}
    `:""}\n ${i?`
    ${i}
    `:""}\n
    \n `:""}(e)},{id:"steam",render:e=>async function(e){var t,a;const{steam:i,owned:n,wishlist:r,loadingSteam:o}=e;if(o&&!(null==i?void 0:i.found))return `\n
    \n ${nl("blp-gmp__bone--steam")}\n ${nl("blp-gmp__bone--steam")}\n
    \n `;if(!(null==i?void 0:i.found))return "";const s=[],l=$r(i);if(l){const e=(null==(t=i.price)?void 0:t.discount_percent)>0?` ${ct(le(tt.discount,{n:i.price.discount_percent}))}`:"";let a="";if(Qe.showPriceConvert&&i.price&&!i.isFree){const e=await ga(i.price,Qe.convertCurrency||"RUB");(null==e?void 0:e.now)&&(a=` ~ ${ct(e.now)}`);}s.push(`${ct(l)}${e}${a}`);}const c=Er(i.reviews),u=Mr(i.reviews),d=Dr(i.reviews);if(c)s.push(`${ct(c)}`);else if(null!=(null==(a=i.metacritic)?void 0:a.score)){const e=i.metacritic.score,t=Cr(e);s.push(`${ct(String(e))}`);}return n?s.push(`${ct(tt.steamOwned)}`):r&&s.push(`${ct(tt.steamWishlist)}`),s.length?`
    ${s.join("")}
    `:""}(e)},{id:"gamestatus",render:e=>function(e){const t=e.gamestatus;if(e.loadingSteam&&!t)return "";if(!t||t.missing||!t.data)return "";const a=Ba(t.data),i=xa(t.data,a),n=t.data.slug||t.slug,r=n?`${K}/${encodeURIComponent(n)}`:K;return `\n
    \n ${ct(i)}\n
    \n `}(e)},{id:"description",render:e=>function(e){var t;const a=null==(t=e.profile)?void 0:t.description;return !a&&e.loadingProfile?`\n \n `:a?`

    ${ct(a)}

    `:""}(e)},{id:"links",render:e=>function(e){const t=e.profile,a=e.steam,i=(null==t?void 0:t.gameUrl)||`/games/${encodeURIComponent(e.slug)}/`,n=[];(null==a?void 0:a.found)&&a.storeUrl&&(n.push({href:a.storeUrl,label:"Steam",icon:Xs("store.steampowered.com"),external:true}),null!=a.appId&&n.push({href:`${W}/${a.appId}/`,label:"SteamDB",icon:Xs("steamdb.info"),external:true})),(null==t?void 0:t.igdbUrl)&&n.push({href:t.igdbUrl,label:"IGDB",icon:Gr(t.igdbUrl)||Xs("igdb.com"),external:true});const r=n.map(e=>{const t=e.icon?``:"",a=e.external?' target="_blank" rel="noopener noreferrer"':' data-turbo-frame="_top"';return `${t}${ct(e.label)}`}).join("");return `\n \n `}(e)}];function ol(e){const t=String(e||"").trim().toLowerCase();if(!t)return Promise.resolve(null);const a=Wa(t);if(a)return Promise.resolve(a);let i=Js.get(t);return i||(i=(n=()=>ri(t),new Promise(e=>{const t=async()=>{qs+=1;try{e(await n());}finally{qs-=1;const e=js.shift();e&&e();}};qs<2?t():js.push(t);})).finally(()=>{Js.delete(t);}),Js.set(t,i),i);var n;}function sl(e){var t,a;(null==e?void 0:e.removeAttribute)&&(e.removeAttribute(Ps),e.removeAttribute(Cs),e.removeAttribute(Ts),null==(t=e.querySelector(".blp-gmp-cover-spin"))||t.remove(),null==(a=e.querySelector(".overflow-wrapper > .blp-gmp-cover-spin"))||a.remove());}function ll(e){var t,a;if(!e||1!==e.nodeType)return false;if(Ds(e))return Boolean(Xr(e));if(!(null==(t=e.classList)?void 0:t.contains("game-cover"))&&!(null==(a=e.classList)?void 0:a.contains("blp-similar__cover")))return false;if(e.closest(xs))return false;if(e.closest(P)&&!e.matches(".blp-similar__cover, turbo-frame#game_detail_section .game-cover"))return false;const i=Xr(e);return Boolean(i)}function cl(e){if(!ll(e))return sl(e),null;const t=Xr(e);return t?(e.setAttribute(Ps,"1"),{cover:e,slug:t,title:Qr(e,t),appId:eo(e),coverHint:Qs(e)}):(sl(e),null)}function ul(){Js.clear(),document.querySelectorAll(`[${Ps}], [${Cs}], [${Ts}], .blp-gmp-cover-spin`).forEach(e=>{var t;(null==(t=e.classList)?void 0:t.contains("blp-gmp-cover-spin"))?e.remove():sl(e);});}function dl(){null==Ws||Ws.disconnect(),Ws=null;}function pl(e){const t=String(e||"").trim().toLowerCase();t&&(Wa(t)||Ks.has(t)||(Ks.add(t),ol(t)));}const ml=ln(()=>function(e=document){if(false===Qe.showGameMiniProfile)return ul(),void dl();(e.querySelectorAll?e:document).querySelectorAll(".game-cover, .blp-similar__cover").forEach(e=>{cl(e);}),function(){if(false===Qe.showGameMiniProfile||true!==Qe.preloadGameMiniProfile)return void dl();const e=Ws||(Ws=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;Ws.unobserve(e);const a=Xr(e);a&&pl(a);}},{rootMargin:"160px 0px",threshold:.01}),Ws);document.querySelectorAll(`[${Ps}]`).forEach(t=>{if("1"===t.getAttribute(Ts))return;const a=Xr(t);a&&(Wa(a)?t.setAttribute(Ts,"1"):(t.setAttribute(Ts,"1"),e.observe(t)));});}();}(),120);let gl=0;async function hl(e,t,{soft:a=false}={}){const i=el(),n=++Us,r=await async function(e){const t=[];for(const i of rl){const a=await i.render(e);a&&t.push(`
    ${a}
    `);}const a=Zs(e);return `\n
    \n \n ${t.join("")}\n
    \n `}(t);n===Us&&(i.classList.toggle("is-loading",Boolean(t.loadingProfile&&!t.profile)),i.classList.toggle("is-updating",a),a?ks(i,r,".blp-gmp__card"):i.innerHTML=r,function(e){window.clearTimeout(Rs),Is&&(e.removeEventListener("transitionend",Is),Is=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");});}(i),il(e),function(e,t=520){const a=++gl,i=performance.now()+t,n=()=>{a===gl&&Fs===e&&(null==Os?void 0:Os.classList.contains("is-open"))&&(il(e),performance.now()({slug:t,titleHint:a,coverHint:n,profile:l,loadingProfile:!l,loadingSteam:!u,...c,...e});await hl(e,d());const p=ol(t),m=function({slug:e,title:t,appId:a}){const i=String(e||"").trim().toLowerCase();if(!i&&!a)return Promise.resolve({steam:null,owned:false,wishlist:false,gamestatus:null});const n=i||`app:${a}`;let r=Vs.get(n);return r||(r=(async()=>{const e=Qe.steamCountry||"US",[n,r]=await Promise.all([a?xi(a,e,{includeTags:false}).catch(()=>({found:false})):Mi({title:t,slug:i,country:e,includeTags:false}).catch(()=>({found:false})),Pi().catch(()=>null)]);let o=null;(Qe.showGameStatus||false!==Qe.showCardBadgeGameStatus)&&(null==n?void 0:n.found)&&null!=n.appId&&(o=await Ta({appId:n.appId,storeUrl:n.storeUrl,name:n.name,title:t||n.name,pageSlug:i}).catch(()=>null));let s=false,l=false;if(r&&(null==n?void 0:n.found)&&null!=n.appId){const e=Number(n.appId);s=r.owned.has(e),l=!s&&r.wishlist.has(e);}return {steam:n,owned:s,wishlist:l,gamestatus:o}})().finally(()=>{Vs.delete(n);}),Vs.set(n,r),r)}({slug:t,title:a,appId:i}),g=async()=>{s===zs&&Ns===t&&await hl(e,d({loadingProfile:!l}),{soft:true});};if(m.then(async e=>{s===zs&&Ns===t&&(c=e,u=true,await g());}),l=await p,s===zs&&Ns===t){if(o.classList.remove("is-loading"),!l){Us+=1,o.classList.add("is-updating"),o.innerHTML=function(e,t){const a=`/games/${encodeURIComponent(e)}/`;return `\n
    \n \n
    \n
    \n
    \n
    ${ct(t||e)}
    \n
    \n
    \n
    ${ct(tt.miniGameError)}
    \n ${ct(tt.miniGameOpen)}\n
    \n `}(t,a),il(e),requestAnimationFrame(()=>il(e));const i=await m;if(s!==zs||Ns!==t)return;return c=i,u=true,void((null==(r=null==i?void 0:i.steam)?void 0:r.found)&&await hl(e,{slug:t,titleHint:a,coverHint:n,profile:null,loadingProfile:false,loadingSteam:false,...c},{soft:true}))}await g();}}function fl(){window.clearTimeout($s),window.clearTimeout(_s),_s=window.setTimeout(()=>{al();},180);}function Sl(e){var t,a,i;if(!e||1!==e.nodeType)return null;const n=null==(t=e.closest)?void 0:t.call(e,As);if(n&&ll(n))return cl(n);if(null==(a=e.closest)?void 0:a.call(e,xs))return null;const r=null==(i=e.closest)?void 0:i.call(e,".game-cover, .blp-similar__cover");return r&&ll(r)?cl(r):null}function vl(e){if(false===Qe.showGameMiniProfile||"hover"!==Ys())return;const t=Sl(e.target);t&&(Wa(t.slug)||ol(t.slug),t.cover===Fs&&(null==Os?void 0:Os.classList.contains("is-open"))?window.clearTimeout(_s):(t.cover.setAttribute(Cs,"1"),function(e,t){window.clearTimeout(_s),window.clearTimeout($s),(null==Os?void 0:Os.classList.contains("is-leaving"))&&Os.classList.remove("is-leaving"),$s=window.setTimeout(()=>{bl(e,t);},280);}(t.cover,t)));}function yl(e){if("hover"!==Ys())return;const t=Sl(e.target);if(!t)return;const a=e.relatedTarget;a&&(t.cover.contains(a)||(null==Os?void 0:Os.contains(a)))||(t.cover.removeAttribute(Cs),fl());}function wl(e){if(false===Qe.showGameMiniProfile)return;const t=Ys();if("hover"===t)return;if("contextmenu"===t){if("contextmenu"!==e.type||e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)return}else if("click"!==e.type||0!==e.button||!e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)return;const a=Sl(e.target);a&&(e.preventDefault(),e.stopPropagation(),window.clearTimeout($s),window.clearTimeout(_s),bl(a.cover,a));}function kl(e){"hover"!==Ys()&&(null==Os?void 0:Os.classList.contains("is-open"))&&(Os.contains(e.target)||al());}function Cl(e){"Escape"===e.key&&"hover"!==Ys()&&(null==Os?void 0:Os.classList.contains("is-open"))&&al();}function Pl(){(null==Os?void 0:Os.classList.contains("is-open"))&&Fs&&(document.contains(Fs)?il(Fs):al({immediate:true}));}const Tl="data-blp-profile-hover",Bl="data-blp-ump",xl="data-blp-ump-tier",Al="data-blp-ump-preload",Ll="data-blp-ump-loading",Hl="blp-ump-avatar-spin",Dl="blp-user-mini-profile";let Ml=false,El=0,Gl=0,$l=0,_l=null,Rl=null,Il="",Fl=null,Nl=0,Ol=0,zl=0;const Ul=[];let ql=null;const jl=new Set,Wl=new Set,Kl=new Map;function Jl(){return Ye(Qe.userMiniProfileTrigger)}function Vl(){return false!==Qe.userMiniProfileTiers}function Yl(e){const t=Number(e)||0;return t>=1e3?`${(t/1e3).toFixed(t%1e3==0?0:1)}k`:String(t)}function Zl(){return Fl&&document.body.contains(Fl)||(Fl=document.createElement("div"),Fl.id=Dl,Fl.className="blp-ump",Fl.setAttribute("role","dialog"),Fl.setAttribute("aria-hidden","true"),Fl.addEventListener("pointerenter",()=>{window.clearTimeout(Gl);}),Fl.addEventListener("pointerleave",e=>{Ms(e.relatedTarget)||"hover"===Jl()&&vc();}),document.body.appendChild(Fl)),Fl}function Xl(){var e;window.clearTimeout($l),Fl&&_l&&(Fl.removeEventListener("transitionend",_l),_l=null),Fl&&(Fl.classList.remove("is-open","is-leaving","is-ready","is-updating"),Fl.setAttribute("aria-hidden","true"),Fl.innerHTML="",null==(e=null==Rl?void 0:Rl.removeAttribute)||e.call(Rl,Tl),Rl=null,Il="");}function Ql({immediate:e=false}={}){if(!Fl)return;Es({immediate:e}),window.clearTimeout($l),_l&&(Fl.removeEventListener("transitionend",_l),_l=null);const t=Fl.classList.contains("is-open");!e&&t?(Fl.classList.add("is-leaving"),Fl.classList.remove("is-open","is-ready"),Fl.setAttribute("aria-hidden","true"),_l=e=>{e.target===Fl&&("opacity"!==e.propertyName&&"transform"!==e.propertyName||Xl());},Fl.addEventListener("transitionend",_l),$l=window.setTimeout(Xl,300)):Xl();}function ec(e){const t=Zl(),a=e.getBoundingClientRect(),i=t.offsetWidth||300,n=t.offsetHeight||420;let r=a.right+10,o=a.top+a.height/2-n/2;r+i>window.innerWidth-12&&(r=a.left-i-10),r<12&&(r=Math.max(12,Math.min(window.innerWidth-i-12,a.left+a.width/2-i/2)),o=a.bottom+10,o+n>window.innerHeight-12&&(o=a.top-n-10)),o=Math.max(12,Math.min(window.innerHeight-n-12,o)),t.style.left=`${Math.round(r)}px`,t.style.top=`${Math.round(o)}px`;}function tc(e,t,a=5){if(!Array.isArray(e)||!e.length)return "";const i=e.map(e=>{const t=e.coverUrl?``:'',a=e.slug?` ${w}="${ut(e.slug)}"`:"",i=e.title?` ${k}="${ut(e.title)}"`:"";return `${t}`}).join("");return `
    ${i}
    `}function ac(e=""){return ``}function ic(e){var t;return (null==(t=e.profile)?void 0:t.profileUrl)||`/u/${encodeURIComponent(e.username)}/`}const nc=[{id:"top",render:function(e){const{profile:t,loading:a}=e,i=Vl();if(a)return `
    ${i?ac("blp-ump__bone--pill"):""}${ac("blp-ump__bone--avg")}
    `;if(!t)return "";const n=i?`${ct((r=ns(t),{rookie:tt.miniProfileTierRookie,bronze:tt.miniProfileTierBronze,silver:tt.miniProfileTierSilver,gold:tt.miniProfileTierGold,platinum:tt.miniProfileTierPlatinum,diamond:tt.miniProfileTierDiamond,master:tt.miniProfileTierMaster,legend:tt.miniProfileTierLegend}[r]||tt.miniProfileTierRookie))}`:"";var r;const o=null!=t.avgRating?`${ct(String(t.avgRating))}★`:"";return n||o?`
    ${n}${o}
    `:""}},{id:"identity",render:function(e){const{profile:t,loading:a}=e,i=ct((null==t?void 0:t.username)||e.username),n=ut(ic(e)),r=`${i}`;return a||t?`\n
    \n ${a?'':`
    ${t.avatarUrl?``:""}
    `}
    \n ${r}\n
    ${a?ac("blp-ump__bone--sub"):ct(String(tt.miniProfileTierSub||"").replace("{count}",Yl(t.gamesPlayed)))}
    \n
    \n `:`
    ${r}
    `}},{id:"stats",render:function(e){const{profile:t,loading:a}=e;return a||t?`
    ${[[null==t?void 0:t.gamesPlayed,tt.miniProfilePlayed],[null==t?void 0:t.playedYear,tt.miniProfileThisYear],[null==t?void 0:t.backlog,tt.miniProfileBacklog]].map(([e,t])=>`
    ${a?ac("blp-ump__bone--stat-n"):ct(Yl(e))}${ct(t)}
    `).join("")}
    `:""}},{id:"ratings",render:function(e){var t;return e.loading?``:function(e){if(!Array.isArray(e)||!e.length)return "";const t=Math.max(...e.map(e=>e.height||0),1);return ``}(null==(t=e.profile)?void 0:t.ratings)}},{id:"bio",render:function(e){var t;const a=null==(t=e.profile)?void 0:t.bio;return a?`

    ${ct(a)}

    `:""}},{id:"favorites",render:function(e){var t;return e.loading?function(e){const t=Array.from({length:5},(e,t)=>``).join("");return ``}(tt.miniProfileFavorites):tc(null==(t=e.profile)?void 0:t.favorites,tt.miniProfileFavorites,5)}},{id:"recent",render:function(e){var t;return tc(null==(t=e.profile)?void 0:t.recent,tt.miniProfileRecent,4)}},{id:"badges",render:function(e){var t;return 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}
    `}(null==(t=e.profile)?void 0:t.badges)}},{id:"status",render:function(e){return e.loading||e.profile?"":`
    ${ct(tt.miniProfileError)}
    `}},{id:"cta",render:function(e){return `${ct(tt.miniProfileViewProfile)}`}}];function rc(e,t){var a,i;if(!(null==e?void 0:e.setAttribute))return;if(!function(e){var t;return Boolean(null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"img"))}(e))return void(t||e.removeAttribute(Ll));const n=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(Ll,"1"),!n.querySelector(`.${Hl}`)){const e=document.createElement("span");e.className=Hl,e.setAttribute("aria-hidden","true"),n.appendChild(e);}}else e.removeAttribute(Ll),null==(a=n.querySelector(`.${Hl}`))||a.remove(),n!==e&&(null==(i=e.querySelector(`.${Hl}`))||i.remove());}function oc(e,t){const a=String(e||"").toLowerCase();a&&document.querySelectorAll(`a[${Bl}]`).forEach(e=>{os(e.getAttribute("href")||e.href).toLowerCase()===a&&rc(e,t);});}function sc(e,t){const a=String(e||"").trim().toLowerCase();if(a)return t?(Wl.has(a)||Wl.add(a),void oc(e,true)):void(Wl.has(a)&&(Wl.delete(a),oc(e,false)))}function lc(e){const t=String(e||"").trim();if(!t)return Promise.resolve(null);const a=t.toLowerCase(),i=hs(t);if(i)return sc(t,false),Promise.resolve(i);let n=Kl.get(a);return n?(sc(t,true),n):(sc(t,true),n=(r=()=>bs(t),new Promise(e=>{const t=async()=>{zl+=1;try{e(await r());}finally{zl-=1;const e=Ul.shift();e&&e();}};zl<2?t():Ul.push(t);})).then(e=>(e&&pc(t,ns(e)),e)).finally(()=>{Kl.delete(a),sc(t,false);}),Kl.set(a,n),n);var r;}function cc(e){(null==e?void 0:e.removeAttribute)&&(rc(e,false),e.removeAttribute(Bl),e.removeAttribute(xl),e.removeAttribute(Tl),e.removeAttribute(Al));}function uc(e){if(!e||1!==e.nodeType)return false;if(e.closest(`#${Dl}, .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)&&Boolean(os(t))}function dc(e){if(!uc(e))return cc(e),null;const t=os(e.getAttribute("href")||e.href);if(!t)return cc(e),null;e.setAttribute(Bl,"1");const a=hs(t);return a?(e.setAttribute(xl,ns(a)),rc(e,false)):e.hasAttribute(xl),Wl.has(t.toLowerCase())&&rc(e,true),{anchor:e,username:t}}function pc(e,t){const a=String(e||"").toLowerCase();a&&t&&document.querySelectorAll(`a[${Bl}]`).forEach(e=>{os(e.getAttribute("href")||e.href).toLowerCase()===a&&e.setAttribute(xl,t);});}function mc(){Wl.clear(),Kl.clear(),document.querySelectorAll(`a[${Bl}], a[${xl}], a[${Tl}], a[${Al}], a[${Ll}]`).forEach(cc);}function gc(){null==ql||ql.disconnect(),ql=null;}function hc(e){const t=String(e||"").trim();if(!t)return;const a=t.toLowerCase();hs(t)||jl.has(a)||(jl.add(a),lc(t));}const bc=ln(()=>function(e=document){if(false===Qe.showUserMiniProfile)return mc(),void gc();(e.querySelectorAll?e:document).querySelectorAll('a[href*="/u/"]').forEach(e=>{dc(e);}),function(){if(false===Qe.showUserMiniProfile||true!==Qe.preloadUserMiniProfile)return void gc();const e=ql||(ql=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;ql.unobserve(e);const a=os(e.getAttribute("href")||e.href);a&&hc(a);}},{rootMargin:"160px 0px",threshold:.01}),ql);document.querySelectorAll(`a[${Bl}]`).forEach(t=>{if("1"===t.getAttribute(Al))return;const a=os(t.getAttribute("href")||t.href);if(!a)return;const i=hs(a);if(i)return pc(a,ns(i)),void t.setAttribute(Al,"1");t.setAttribute(Al,"1"),e.observe(t);});}();}(),120);function fc(e,t,{soft:a=false}={}){const i=Zl(),n=function(e){const t=Vl(),a=t&&e.profile?ns(e.profile):"rookie",i=[];for(const n of nc){const t=n.render(e);t&&i.push(`
    ${t}
    `);}return `\n
    \n \n \n ${i.join("")}\n
    \n `}(t);t.loading?(i.setAttribute("aria-busy","true"),i.setAttribute("aria-label",tt.miniProfileLoading)):(i.removeAttribute("aria-busy"),i.removeAttribute("aria-label")),i.classList.toggle("is-updating",a),a?ks(i,n,".blp-ump__card"):i.innerHTML=n,function(e){window.clearTimeout($l),_l&&(e.removeEventListener("transitionend",_l),_l=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");});}(i),ec(e),function(e,t=520){const a=++Ol,i=performance.now()+t,n=()=>{a===Ol&&Rl===e&&(null==Fl?void 0:Fl.classList.contains("is-open"))&&(ec(e),performance.now(){Ql();},180);}function yc(e){var t,a;if(!e||1!==e.nodeType)return null;if(null==(t=e.closest)?void 0:t.call(e,`#${Dl}, .blp-ump, .blp-settings-backdrop, #primary-nav`))return null;const i=null==(a=e.closest)?void 0:a.call(e,'a[href*="/u/"]');if(!i||!uc(i))return null;const n=os(i.getAttribute("href")||i.href);return n?{anchor:i,username:n}:null}function wc(e){if(false===Qe.showUserMiniProfile||"hover"!==Jl())return;if(Ms(e.target))return void window.clearTimeout(Gl);const t=yc(e.target);var a,i;t&&(dc(t.anchor),hs(t.username)||lc(t.username),t.anchor===Rl&&(null==Fl?void 0:Fl.classList.contains("is-open"))?window.clearTimeout(Gl):(t.anchor.setAttribute(Tl,"1"),a=t.anchor,i=t.username,window.clearTimeout(Gl),window.clearTimeout(El),(null==Fl?void 0:Fl.classList.contains("is-leaving"))&&Fl.classList.remove("is-leaving"),El=window.setTimeout(()=>{Sc(a,i);},280)));}function kc(e){if("hover"!==Jl())return;if(Ms(e.target)){const t=e.relatedTarget;return void(t&&((null==Fl?void 0:Fl.contains(t))||Ms(t))||vc())}const t=yc(e.target);if(!t)return;const a=e.relatedTarget;a&&(t.anchor.contains(a)||(null==Fl?void 0:Fl.contains(a)))||(t.anchor.removeAttribute(Tl),vc());}function Cc(e){if(false===Qe.showUserMiniProfile)return;const t=Jl();if("hover"===t)return;if("contextmenu"===t){if("contextmenu"!==e.type||e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)return}else if("click"!==e.type||0!==e.button||!e.shiftKey||e.ctrlKey||e.altKey||e.metaKey)return;const a=yc(e.target);a&&(dc(a.anchor),e.preventDefault(),e.stopPropagation(),window.clearTimeout(El),window.clearTimeout(Gl),Sc(a.anchor,a.username));}function Pc(e){"hover"!==Jl()&&(null==Fl?void 0:Fl.classList.contains("is-open"))&&(Fl.contains(e.target)||Ms(e.target)||Ql());}function Tc(e){"Escape"===e.key&&"hover"!==Jl()&&(null==Fl?void 0:Fl.classList.contains("is-open"))&&Ql();}function Bc(){(null==Fl?void 0:Fl.classList.contains("is-open"))&&Rl&&(document.contains(Rl)?ec(Rl):Ql({immediate:true}));}const xc="data-blp-profile-tier",Ac="blp-profile-tier-chip",Lc="blp-profile-avatar";let Hc=0;function Dc(){return false!==Qe.showProfilePage}function Mc(){return Dc()&&false!==Qe.showProfileHeader}function Ec(){return Dc()&&false!==Qe.showProfileTierChip}function Gc(){return Dc()&&false!==Qe.showProfileStats}function $c(){return Dc()&&false!==Qe.showProfileNav}function _c(){return Dc()&&false!==Qe.showProfileFavorites}function Rc(){return Mc()||Ec()||Gc()||$c()||_c()}function Ic(e){return {rookie:tt.miniProfileTierRookie,bronze:tt.miniProfileTierBronze,silver:tt.miniProfileTierSilver,gold:tt.miniProfileTierGold,platinum:tt.miniProfileTierPlatinum,diamond:tt.miniProfileTierDiamond,master:tt.miniProfileTierMaster,legend:tt.miniProfileTierLegend}[e]||tt.miniProfileTierRookie}function Fc(){var e,t,a;document.documentElement.removeAttribute(xc);const i=document.getElementById("profile-header");i&&(i.removeAttribute(xc),i.classList.remove("blp-profile-header")),document.querySelectorAll(`.${Ac}`).forEach(e=>e.remove()),document.querySelectorAll(`.${Lc}`).forEach(e=>{e.classList.remove(Lc);}),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 n=document.getElementById("profile-favorites");n&&(n.classList.remove("blp-profile-favorites"),n.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 Nc(e){var t;const a=document.getElementById("profile-header");if(!a||!e)return;const i=ns(e);if(Fc(),Rc()){if(document.documentElement.setAttribute(xc,i),Mc()){a.setAttribute(xc,i),a.classList.add("blp-profile-header");const e=a.querySelector(".avatar");e&&e.classList.add(Lc);}Ec()&&function(e,t,a){var i,n;const r=null==(i=e.querySelector("h3.main-header"))?void 0:i.closest(".col-auto");if(!r)return;let o=e.querySelector(`.${Ac}`);o||(o=document.createElement("div"),o.className=`${Ac} col-auto pl-2 my-auto`,o.setAttribute("data-blp-profile-chrome","1"),r.insertAdjacentElement("afterend",o));const s=function(e){const t=is(e),a=T.findIndex(e=>e.id===t.id),i=a>=0?T[a+1]:null;if(!i)return null;const n=Math.max(1,i.min-t.min),r=Math.max(0,t.gamesPlayed-t.min);return {current:t,next:i,remaining:Math.max(0,i.min-t.gamesPlayed),progress:Math.min(1,r/n)}}(t.gamesPlayed),l=s?Math.round(100*s.progress):100,c=s?le(tt.profileTierProgress||"{n} to {tier}",{n:s.remaining,tier:Ic(s.next.id)}):tt.profileTierMax||"",u=le(tt.miniProfileTierSub||"{count} games played",{count:String(null!=(n=t.gamesPlayed)?n:0)});o.innerHTML=`\n
    ${ct(Ic(a))}
    \n
    \n
    ${ct(u)}
    \n ${c?`
    ${ct(c)}
    `:""}\n \n
    \n `;}(a,e,i),Gc()&&(null==(t=document.getElementById("profile-stats"))||t.classList.add("blp-profile-stats")),$c()&&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");}(),_c()&&function(){var e,t;const a=document.getElementById("profile-favorites");if(!a)return;a.classList.add("blp-profile-favorites");const i=(null==(t=null==(e=a.previousElementSibling)?void 0:e.querySelector)?void 0:t.call(e,"h2"))||document.getElementById("profile-recent-play");i&&/favorite/i.test(i.textContent||"")&&i.classList.add("blp-profile-fav-title"),[...a.querySelectorAll(".game-cover")].forEach((e,t)=>{e.setAttribute("data-blp-fav-rank",String(t+1));});}();}}const Oc=ln(()=>{!async function(){if(!Rc())return void Fc();if(!document.getElementById("profile-header"))return void Fc();const e=++Hc,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()||os(location.pathname)}();if(!e)return null;const t=gs(document,e),a=Boolean(document.getElementById("profile-stats"));if(t&&a)return rs(t),t;const i=hs(e);return i?{...i,avatarUrl:(null==t?void 0:t.avatarUrl)||i.avatarUrl,username:(null==t?void 0:t.username)||i.username}:(null==t?void 0:t.gamesPlayed)>0?(rs(t),t):await bs(e)||t}();e===Hc&&(t?Nc(t):Fc());}();},80);function zc(e){var t,a;const i=null==e?void 0:e[2];if("string"==typeof i&&i)return i.toLowerCase().slice(0,2);const n=null==(a=null==(t=null==e?void 0:e[8])?void 0:t[0])?void 0:a[0];return "string"==typeof n&&n?n.toLowerCase().slice(0,2):""}const Uc="blp-translate-btn",qc="blp-translate-result",jc="data-blp-translate",Wc="data-blp-translate-state",Kc="data-blp-translate-original",Jc="data-blp-translate-auto";let Vc=false,Yc=null,Zc=0;const Xc=[];function Qc(){return "below"===Qe.translateDisplayMode?"below":"replace"}function eu(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 tu(){const e=document.querySelector("#collapseSummary");return e?e.querySelector("p")||e:null}function au(e){return e.querySelector(".review-body .card-text")||e.querySelector('.review-body [id^="collapseReview"]')||e.querySelector(".card-text")}function iu(e){var t;return (null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,`.${Uc}[data-blp-translate-kind="review"]`))||null}function nu(e,t){if(!e)return;if("loading"===t)return e.innerHTML=`${ct(tt.translateLoading)}`,e.setAttribute("aria-busy","true"),void e.classList.add("is-loading");e.removeAttribute("aria-busy"),e.classList.remove("is-loading");let a=tt.translateButton;"original"===t?a=tt.translateShowOriginal:"hide"===t?a=tt.translateHide:"error"===t&&(a=tt.translateError),e.innerHTML=`${ct(a)}`;}function ru(e){const t=document.createElement("button");return t.type="button",t.className=`${Uc} ${Uc}--chip${"desc"===e?` ${Uc}--desc`:` ${Uc}--review`}`,t.setAttribute("data-blp-translate-kind",e),nu(t,"idle"),t}function ou(e,t){var a,i,n,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 p=u[0]||null;if(!(e.classList.contains("collapse")&&!e.classList.contains("show")||"false"===(null==p?void 0:p.getAttribute("aria-expanded"))||(null==(i=null==p?void 0:p.classList)?void 0:i.contains("collapsed"))))return;try{const t=r||window,a=(null==t?void 0:t.jQuery)||(null==t?void 0:t.$);(null==(n=null==a?void 0:a.fn)?void 0:n.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 m=e.parentElement;for(let r=0;r<3&&m;r++)((null==(o=m.classList)?void 0:o.contains("position-relative"))||(null==(s=m.classList)?void 0:s.contains("col")))&&(m.style.maxHeight="none",m.style.overflow="visible"),m=m.parentElement;u.forEach(e=>{e.classList.remove("collapsed"),e.setAttribute("aria-expanded","true");});}function su(e,t){var a,i,n,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(`.${qc}`).forEach(e=>e.remove());null==(i=null==e?void 0:e.querySelectorAll)||i.call(e,`.${qc}`).forEach(e=>e.remove());const l=(null==(n=null==t?void 0:t.closest)?void 0:n.call(t,".position-relative"))||(null==t?void 0:t.parentElement)||e;null==(r=null==l?void 0:l.querySelectorAll)||r.call(l,`.${qc}`).forEach(e=>e.remove());const c=null==l?void 0:l.nextElementSibling;(null==(o=null==c?void 0:c.classList)?void 0:o.contains(qc))&&c.remove();}async function lu({textEl:e,host:t,card:a,btn:i,isReview:n,expand:r=true}){var o;if(!e)return "skip";if("translated"===(null==i?void 0:i.getAttribute(Wc)))return "skip";if(e.hasAttribute(Kc)&&"replace"===Qc())return "skip";if(n&&(null==(o=null==a?void 0:a.querySelector)?void 0:o.call(a,`.${qc}`)))return "skip";n&&r&&ou(e,a);const s=e.hasAttribute(Kc)?e.getAttribute(Kc):e.innerHTML,l=eu(s);if(!l)return "skip";const c=function(){const e=Qe.translateTargetLocale||"auto";return "auto"!==e&&ne.includes(e)?e:et}();nu(i,"loading");const u=await async function(e,t){const a=String(e||"").trim(),i=String(t||"").trim().toLowerCase().slice(0,2);if(!a||!i)return null;const n=`gtx:${i}:${function(e){let t=5381;const a=String(e);for(let i=0;i>>0).toString(36)}(a)}`,r=Mt(n);if(r&&"string"==typeof r.text)return Gt(r);if(nt.has(n))return nt.get(n);const o=(async()=>{const e=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${encodeURIComponent(i)}&dt=t&q=${encodeURIComponent(a)}`,t=await la({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:zc(t)};return Et(n,o),$t(o)})().catch(()=>null);nt.set(n,o);try{return await o}finally{nt.delete(n);}}(l,c);if(!(null==u?void 0:u.text))return nu(i,"error"),i&&setTimeout(()=>nu(i,"idle"),1800),"error";const d=String(u.detectedSourceLang||"").toLowerCase().slice(0,2);if(d&&d===c&&u.text.trim()===l)return i&&(i.style.display="none"),nu(i,"idle"),"same";const p=ct(String(u.text||"")).replace(/\r\n|\r|\n/g,"
    "),m=Qc();return n&&r&&ou(e,a),"below"===m?(function(e,t,a,i){su(t,e);const n=document.createElement("div");if(n.className=i?`${qc} ${qc}--card`:qc,i){n.innerHTML=`\n
    ${ct(tt.translateResultLabel)}
    \n
    ${a}
    \n `;const t=e.closest(".review-body");if(t)return t.insertAdjacentElement("afterend",n),requestAnimationFrame(()=>{requestAnimationFrame(()=>n.classList.add("is-in"));}),n}else n.innerHTML=a;const r=e.closest(".position-relative")||e.parentElement||t;r&&r!==e?r.appendChild(n):e.insertAdjacentElement("afterend",n),i&&requestAnimationFrame(()=>{requestAnimationFrame(()=>n.classList.add("is-in"));});}(e,t,p,n),i&&(i.setAttribute(Wc,"translated"),nu(i,"hide")),"ok"):(e.hasAttribute(Kc)||e.setAttribute(Kc,s),e.innerHTML=p,n&&r&&ou(e,a),i&&(i.setAttribute(Wc,"translated"),nu(i,"original")),"ok")}async function cu(e){var t,a;const i=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,`.${Uc}`);if(!i||i.classList.contains("is-loading"))return;e.preventDefault(),e.stopPropagation();const n=function(e){if("desc"===e.getAttribute("data-blp-translate-kind")){const e=tu();return e?{textEl:e,host:e.parentElement||e}:null}const t=e.closest(".review-card");if(!t)return null;const a=au(t);return a?{textEl:a,host:a.parentElement||a,card:t}:null}(i);if(!n)return;const{textEl:r,host:o,card:s}=n,l=Qc(),c=i.getAttribute(Wc)||"idle",u="review"===i.getAttribute("data-blp-translate-kind");if("replace"===l&&"translated"===c){const e=r.getAttribute(Kc);return null!=e&&(r.innerHTML=e),r.removeAttribute(Kc),i.removeAttribute(Wc),void nu(i,"idle")}if("below"===l&&"translated"===c)return su(o,r),i.removeAttribute(Wc),void nu(i,"idle");await lu({textEl:r,host:o,card:s,btn:i,isReview:u});}function uu(){Yc&&(Yc.disconnect(),Yc=null),Xc.length=0,Zc=0;}function du(){for(;Zc<2&&Xc.length;){const e=Xc.shift();if(!(null==e?void 0:e.isConnected))continue;if("done"===e.getAttribute(Jc)||"busy"===e.getAttribute(Jc))continue;Zc+=1,e.setAttribute(Jc,"busy");const t=au(e),a=iu(e),i=(null==t?void 0:t.parentElement)||t;Promise.resolve().then(()=>lu({textEl:t,host:i,card:e,btn:a,isReview:true,expand:false})).then(t=>{"ok"===t||"same"===t?e.setAttribute(Jc,"done"):e.removeAttribute(Jc);}).catch(()=>{e.removeAttribute(Jc);}).finally(()=>{Zc-=1,du();});}}function pu(e){e&&"done"!==e.getAttribute(Jc)&&"busy"!==e.getAttribute(Jc)&&(Xc.includes(e)||(Xc.push(e),du()));}function mu(){Vc||(Vc=true,document.addEventListener("click",cu,true)),false!==Qe.showTranslate?(function(){var e;if(!Qe.translateDescription){document.querySelectorAll(".blp-translate-desc-slot").forEach(e=>e.remove()),document.querySelectorAll(`.${Uc}[data-blp-translate-kind="desc"]`).forEach(e=>{e.remove();});const t=tu();return (null==t?void 0:t.hasAttribute(Kc))&&(t.innerHTML=t.getAttribute(Kc),t.removeAttribute(Kc)),null==(e=document.querySelector("#collapseSummary"))||e.removeAttribute(jc),void document.querySelectorAll(`.${qc}`).forEach(e=>{e.closest("#center-content, #collapseSummary, #game-body")&&(e.closest(".review-card")||e.remove());})}const t=tu(),a=document.querySelector("#collapseSummary");if(!t||!a)return;if(!eu(t.innerHTML))return;a.setAttribute(jc,"desc"),document.querySelectorAll(".review-card .blp-translate-desc-slot").forEach(e=>e.remove()),document.querySelectorAll(`.review-card .${Uc}[data-blp-translate-kind="desc"]`).forEach(e=>{e.remove();});const i=[...document.querySelectorAll(`.${Uc}[data-blp-translate-kind="desc"]`)].filter(e=>!e.closest(".review-card"));if(i.slice(1).forEach(e=>{var t;null==(t=e.closest(".blp-translate-desc-slot"))||t.remove(),e.remove();}),i[0])return;const n=ru("desc"),r=document.createElement("div");r.className="col-auto my-auto blp-translate-desc-slot",r.appendChild(n);const o=document.getElementById("summary-expand-btn"),s=o&&!o.closest(".review-card")?o.closest(".col-auto"):null;s?s.insertAdjacentElement("beforebegin",r):a.closest(".review-card")||(a.querySelector(".row")||a).appendChild(r);}(),function(){if(!Qe.translateReviews)return document.querySelectorAll(`.${Uc}[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[${jc}="review"]`).forEach(e=>{e.removeAttribute(jc);});document.querySelectorAll(".review-card").forEach(e=>function(e){var t;if(null==(t=e.parentElement)?void 0:t.closest(".review-card"))return;const a=au(e);if(!a||!eu(a.innerHTML))return;const i=[...e.querySelectorAll(".review-bottom-bar")].filter(t=>{var a;return !(null==(a=t.parentElement)?void 0:a.closest(".review-bottom-bar"))&&t.closest(".review-card")===e})[0];if(!i)return;e.querySelectorAll(".blp-translate-desc-slot").forEach(e=>e.remove()),e.querySelectorAll(`.${Uc}[data-blp-translate-kind="desc"]`).forEach(e=>e.remove());const n=[...e.querySelectorAll(".blp-translate-review-slot")];let r=n.find(e=>i.contains(e)&&!e.closest(".expand-review-col"));n.forEach(e=>{e!==r&&e.remove();});let o=(null==r?void 0:r.querySelector(`.${Uc}[data-blp-translate-kind="review"]`))||null;if(!o){e.setAttribute(jc,"review"),o=ru("review");const t=document.createElement("div");t.className="col-auto my-auto pr-1 blp-translate-review-slot",t.appendChild(o);const a=i.querySelector(".expand-review-col, a.review-more, #summary-expand-btn"),n=null==a?void 0:a.closest(".col, .col-auto");n&&i.contains(n)?n.insertAdjacentElement("beforebegin",t):i.appendChild(t),r=t;}e.querySelectorAll(`.${Uc}`).forEach(e=>{if(e===o)return;const t=e.closest(".blp-translate-review-slot, .blp-translate-desc-slot");t?t.remove():e.remove();});}(e)),document.querySelectorAll(`.${Uc}[data-blp-translate-kind="review"]`).forEach(e=>{if(e.closest(".review-bottom-bar"))return;const t=e.closest(".blp-translate-review-slot");t?t.remove():e.remove();});}(),function(){if(false===Qe.showTranslate||false===Qe.translateReviews||true!==Qe.translateReviewsAuto)return uu(),void document.querySelectorAll(`.review-card[${Jc}="busy"]`).forEach(e=>{e.removeAttribute(Jc);});Yc||(Yc=new IntersectionObserver(e=>{for(const t of e){if(!t.isIntersecting)continue;const e=t.target;null==Yc||Yc.unobserve(e),pu(e);}},{root:null,rootMargin:"120px 0px",threshold:.15})),document.querySelectorAll(".review-card").forEach(e=>{if("done"===e.getAttribute(Jc)||"busy"===e.getAttribute(Jc))return;const t=au(e);t&&eu(t.innerHTML)&&Yc.observe(e);});}()):function(e=document){uu(),e.querySelectorAll(".blp-translate-desc-slot, .blp-translate-review-slot").forEach(e=>{e.remove();}),e.querySelectorAll(`.${Uc}`).forEach(e=>e.remove()),e.querySelectorAll(`.${qc}`).forEach(e=>e.remove()),e.querySelectorAll(`[${jc}]`).forEach(e=>{e.removeAttribute(jc);}),e.querySelectorAll(`[${Jc}]`).forEach(e=>{e.removeAttribute(Jc);}),e.querySelectorAll(`[${Kc}]`).forEach(e=>{const t=e.getAttribute(Kc);null!=t&&(e.innerHTML=t),e.removeAttribute(Kc),e.removeAttribute(Wc);});}();}function gu(){Yo(),document.documentElement.hasAttribute("data-blp-fix-bound")||(document.documentElement.setAttribute("data-blp-fix-bound","1"),document.addEventListener("click",e=>{var t,a;const i=null==(a=null==(t=e.target)?void 0:t.closest)?void 0:a.call(t,"[data-blp-fix-match]");i&&(e.preventDefault(),e.stopPropagation(),function(e,t){var a,i,n,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==(i=s.querySelector("[data-blp-fix-clear]"))||i.addEventListener("click",()=>{!function(e){qt(e,null);}(e),l(),Rr(),Vr(),ho(true),gn(tt.toastSteamMatchCleared,{type:"info",title:tt.toastSteamMatchClearedTitle});}),null==(n=s.querySelector("[data-blp-fix-save]"))||n.addEventListener("click",()=>{var t;const a=String((null==(t=c())?void 0:t.value)||"").trim();if(!a)return function(e){const t=String(e||"").toLowerCase().replace(/^\/+|\/+$/g,"");if(!t)return;const a=Nt();a[t]=0,Ot(a),rt.clear();}(e),l(),Rr(),Vr(),ho(true),void gn(tt.toastSteamMatchNone,{type:"info",title:tt.toastSteamMatchNoneTitle});const i=Number(a.replace(/[^\d]/g,""));if(!Number.isFinite(i)||i<=0){const e=s.querySelector("[data-blp-fix-error]");return e&&(e.hidden=false,e.textContent=tt.steamFixMatchInvalid),void gn(tt.steamFixMatchInvalid,{type:"error",title:tt.steamFixMatchInvalidTitle})}qt(e,i),l(),Rr(),Vr(),ho(true),gn(le(tt.toastSteamMatchSaved,{id:i}),{type:"success",title:tt.toastSteamMatchSavedTitle});}),document.body.appendChild(s),null==(r=c())||r.focus(),null==(o=c())||o.select();}(i.getAttribute("data-blp-slug")||Wi().slug,i.getAttribute("data-blp-appid")||""));},true)),function(){if(jn)return jn;const e=ln(()=>{bn()?document.querySelector("#log-editor-footer")&&qn():document.querySelectorAll(`[${Sn}="log-btn"]`).forEach(e=>e.remove());},200);jn=new MutationObserver(e),jn.observe(document.documentElement,{childList:true,subtree:true}),qn();}(),qn(),false!==Qe.hideHomepageFuse?document.documentElement.setAttribute(Zo,"1"):document.documentElement.removeAttribute(Zo),function(){const e=document.documentElement;true===Qe.enhanceHeader?(e.setAttribute(Xo,"1"),es||(es=true,window.addEventListener("scroll",ts,{passive:true})),ts()):(e.removeAttribute(Xo),e.removeAttribute(Qo));}(),Vr(),ho(),function(){if(false===Qe.showUserMiniProfile)return Ql({immediate:true}),mc(),void gc();Ml||(Ml=true,document.addEventListener("pointerover",wc,true),document.addEventListener("pointerout",kc,true),document.addEventListener("contextmenu",Cc,true),document.addEventListener("click",Cc,true),document.addEventListener("pointerdown",Pc,true),document.addEventListener("keydown",Tc,true),window.addEventListener("scroll",Bc,true),window.addEventListener("resize",Bc));}(),bc(),function(){if(false===Qe.showGameMiniProfile)return al({immediate:true}),ul(),void dl();Gs||(Gs=true,document.addEventListener("pointerover",vl,true),document.addEventListener("pointerout",yl,true),document.addEventListener("contextmenu",wl,true),document.addEventListener("click",wl,true),document.addEventListener("pointerdown",kl,true),document.addEventListener("keydown",Cl,true),window.addEventListener("scroll",Pl,true),window.addEventListener("resize",Pl));}(),ml(),Oc(),mu();}function hu(e){var t,a,i,n,r,o,s,l,c,u,d,p,m,g,y,w,k,C,P,T,B,x,A,L,H,D,M,E,G,$,_,R;return !(!e||1!==e.nodeType)&&(!!((null==(t=e.hasAttribute)?void 0:t.call(e,h))||(null==(a=e.hasAttribute)?void 0:a.call(e,b))||(null==(i=e.hasAttribute)?void 0:i.call(e,f))||(null==(n=e.hasAttribute)?void 0:n.call(e,S))||(null==(r=e.hasAttribute)?void 0:r.call(e,v))||(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==(p=e.classList)?void 0:p.contains("blp-export-backdrop"))||(null==(m=e.classList)?void 0:m.contains("blp-export-wrap"))||(null==(g=e.classList)?void 0:g.contains("blp-export-log-wrap"))||(null==(y=e.classList)?void 0:y.contains("blp-debug-panel"))||(null==(w=e.classList)?void 0:w.contains("blp-steamdb-cover"))||(null==(k=e.classList)?void 0:k.contains("blp-steam-gallery"))||(null==(C=e.classList)?void 0:C.contains("blp-similar"))||(null==(P=e.classList)?void 0:P.contains("blp-viewer"))||(null==(T=e.classList)?void 0:T.contains("blp-title-icon-wrap"))||(null==(B=e.classList)?void 0:B.contains("blp-game-id"))||(null==(x=e.classList)?void 0:x.contains("blp-toast-host"))||(null==(A=e.classList)?void 0:A.contains("blp-toast"))||(null==(L=e.classList)?void 0:L.contains("blp-ump"))||(null==(H=e.classList)?void 0:H.contains("blp-ump-avatar-spin"))||(null==(D=e.classList)?void 0:D.contains("blp-gmp"))||(null==(M=e.classList)?void 0:M.contains("blp-profile-tier-chip"))||(null==(E=e.classList)?void 0:E.contains("blp-translate-btn"))||(null==(G=e.classList)?void 0:G.contains("blp-translate-result"))||(null==($=e.classList)?void 0:$.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||"blp-game-mini-profile"===e.id)||Boolean(null==(R=e.closest)?void 0:R.call(e,`[${h}], [${b}], [${f}], [${S}], .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-game-mini-profile, .blp-gmp, .blp-profile-tier-chip`)))}function bu(e){const t=ln(e,400),a=new MutationObserver(e=>{(function(e){for(const t of e)for(const e of t.addedNodes)if(1===e.nodeType&&!hu(e))return false;return true})(e)||t();});return a.observe(document.documentElement,{childList:true,subtree:true}),a}const fu="blp-steam-backloggd-btn",Su="https://www.backloggd.com";function vu(){var e;if(!Qe.showSteamPageLink)return void(null==(e=document.getElementById(fu))||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?be(e[1].replace(/_/g,"-")):""}();if(e)return `${Su}/games/${encodeURIComponent(e)}/`;const t=be((null==(i=null==(a=document.getElementById("appHubAppName"))?void 0:a.textContent)?void 0:i.trim())||(null==(r=null==(n=document.querySelector(".apphub_AppName"))?void 0:n.textContent)?void 0:r.trim())||document.title.replace(/\s+on\s+Steam.*$/i,"").replace(/\s+::\s+.*$/i,"").trim());var a,i,n,r;return t?`${Su}/games/${encodeURIComponent(t)}/`:Su}(),i=document.getElementById(fu);if(i)return void(i.href=a);const n=function(e){const t=document.createElement("a");return t.id=fu,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",n),r.previousSibling===n&&n.insertAdjacentText("afterend"," ")):t.appendChild(n);}function yu(){vu();}const wu="blp-steamdb-backloggd-btn";function ku(){const e=location.pathname.match(/\/app\/(\d+)/i);return e?e[1]:""}function Cu(){var e;if(!Qe.showSteamDbPageLink)return void(null==(e=document.getElementById(wu))||e.remove());if(!ku())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 `${Su}/games/${encodeURIComponent(e)}/`;const t=be(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?`${Su}/games/${encodeURIComponent(t)}/`:Su}(),i=document.getElementById(wu);if(i)return void(i.href=a);const n=function(e){const t=document.createElement("a");return t.id=wu,t.className="btn tooltipped tooltipped-n",t.href=e,t.target="_blank",t.rel="noopener noreferrer",t.setAttribute("aria-label",tt.steamBackloggdTooltip),t.textContent=tt.steamDbBackloggdLabel,t}(a),r=t.querySelector('a.btn[href*="store.steampowered.com"]');if(r)r.insertAdjacentElement("afterend",n);else {const e=t.querySelector('a.btn[href*="igdb.com"]');e?e.insertAdjacentElement("beforebegin",n):t.appendChild(n);}}function Pu(){Cu();const e=ku();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 i=pi(a,t);(i.franchise||i.systems||i.technologies.length||i.lastRecordUpdate)&&Et(ci(a),i);}(t,di(document));}(e);}function Tu(){if(document.documentElement.hasAttribute(g))return;document.documentElement.setAttribute(g,"1"),ot(),sa(),function(){if(mt||"undefined"==typeof window)return;mt=true;const t=()=>Bt();window.addEventListener("pagehide",t),document.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&(ht.size||bt.size)&&t();});try{null==e||e(d,(e,t,a,i)=>{i&&function(e){const t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},a=at;if(a)for(const i of ht)a[i]&&(t[i]=a[i]);for(const i of bt)delete t[i];st(t);}(a);});}catch(a){}}();const n=function(){let e=null;try{e=t(p,null);}catch(a){e=null;}if(e===c){const e=Kt(),t=Jt();return (e>0||t>0)&&Bt(),null}na();try{i(p,c);}catch(a){}return null==e?"install":"upgrade"}();return function(){let e=[];try{const t=sessionStorage.getItem(un);sessionStorage.removeItem(un),t&&(e=JSON.parse(t));}catch(t){e=[];}Array.isArray(e)&&e.length&&setTimeout(()=>{for(const t of e)t&&gn({title:t.title||"",message:t.message||"",type:t.type||"info",duration:t.duration});},120);}(),"upgrade"===n&&gn(le(tt.toastCacheClearedOnUpdate,{version:c}),{type:"info",title:tt.toastCacheClearedOnUpdateTitle,duration:5200}),"function"==typeof a&&a(tt.menuSettings,Ko),function(){const e=location.hostname;return "store.steampowered.com"===e||e.endsWith(".steampowered.com")||"steamcommunity.com"===e||e.endsWith(".steamcommunity.com")}()?(yu(),void bu(yu)):/(^|\.)steamdb\.info$/i.test(location.hostname)?(Pu(),void bu(Pu)):void(/(^|\.)backloggd\.com$/i.test(location.hostname)&&(ya(),Yo(),gu(),bu(gu),function(){const e=ln(gu,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",Tu,{once:true}):Tu(); })();