// ==UserScript== // @name Steam Plus // @name:ru Steam Plus // @name:zh-CN Steam Plus // @name:es Steam Plus // @name:pt-BR Steam Plus // @name:de Steam Plus // @name:fr Steam Plus // @name:ja Steam Plus // @name:ko Steam Plus // @name:pl Steam Plus // @namespace https://github.com/NemoKing1210/steam-plus // @version 0.30.2 // @author NemoKing1210 // @description Improves Steam functionality // @description:ru Улучшает функционал Steam // @description:zh-CN 改善 Steam 的功能 // @description:es Mejora la funcionalidad de Steam // @description:pt-BR Melhora a funcionalidade do Steam // @description:de Verbessert die Funktionalität von Steam // @description:fr Améliore les fonctionnalités de Steam // @description:ja Steam の機能を改善 // @description:ko Steam 기능 개선 // @description:pl Poprawia funkcjonalność Steam // @license MIT // @icon https://store.steampowered.com/favicon.ico // @homepage https://github.com/NemoKing1210/steam-plus // @homepageURL https://github.com/NemoKing1210/steam-plus // @source https://github.com/NemoKing1210/steam-plus.git // @supportURL https://github.com/NemoKing1210/steam-plus/issues // @downloadURL https://raw.githubusercontent.com/NemoKing1210/steam-plus/main/steam-plus.user.js // @updateURL https://raw.githubusercontent.com/NemoKing1210/steam-plus/main/steam-plus.user.js // @match https://store.steampowered.com/* // @match https://steamcommunity.com/* // @tag steam // @tag translation // @connect translate.googleapis.com // @connect open.er-api.com // @connect cdn.jsdelivr.net // @connect store.steampowered.com // @connect * // @grant GM_addStyle // @grant GM_deleteValue // @grant GM_getValue // @grant GM_info // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_xmlhttpRequest // @run-at document-idle // @noframes // ==/UserScript== (e=>{if(typeof GM_addStyle=="function"){GM_addStyle(e);return}const t=document.createElement("style");t.textContent=e,document.head.append(t)})(' :root{--sp-accent: #66c0f4;--sp-accent-soft: #67c1f5;--sp-accent-deep: #417a9b;--sp-bg-1: #1b2838;--sp-bg-2: #16202d;--sp-bg-deep: #0e141b;--sp-field: #316282;--sp-field-active: #3d7a9c;--sp-text: #c7d5e0;--sp-text-strong: #ffffff;--sp-text-muted: #8f98a0;--sp-success: #a4d007;--sp-discount-bg: #4c6b22;--sp-discount-fg: #beee11;--sp-border: #000000;--sp-line: rgba(255, 255, 255, .1);--sp-highlight: rgba(255, 255, 255, .04)}#sp-settings-btn.sp-menu-item{cursor:pointer;text-decoration:none}#sp-settings-btn.sp-menu-item.is-open{color:var(--sp-accent)}.sp-header-btn{display:inline-flex;align-items:center;gap:6px;height:24px;margin-right:8px;padding:0 10px;border:none;border-radius:2px;background:linear-gradient(to bottom,var(--sp-accent-soft) 5%,var(--sp-accent-deep) 95%);color:var(--sp-text-strong);font:700 11px/24px Motiva Sans,Arial,Helvetica,sans-serif;text-shadow:0 1px 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px #00000059;cursor:pointer;white-space:nowrap;position:relative}.sp-header-btn:hover{background:linear-gradient(to bottom,#7dcafa 5%,#4d8bb0 95%)}.sp-header-btn.is-open{background:linear-gradient(to bottom,var(--sp-success) 5%,#536904 95%)}.sp-header-btn__dot{width:7px;height:7px;border-radius:50%;background:#ffffff59;box-shadow:inset 0 0 0 1px #00000040;flex:0 0 auto}.sp-header-btn__dot.is-on{background:var(--sp-success);box-shadow:0 0 6px #beee11cc}.sp-panel-overlay{position:fixed;inset:0;z-index:1000000;display:flex;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box;background:#000000b8;font-family:Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text)}.sp-panel-overlay[hidden],.sp-panel [hidden]{display:none}html.sp-modal-open,html.sp-modal-open body{overflow:hidden;overscroll-behavior:none}html.sp-modal-open body{position:fixed;left:0;right:0;width:100%}.sp-panel{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(90vh,760px);overflow:hidden;background:linear-gradient(180deg,var(--sp-bg-1) 0%,var(--sp-bg-2) 100%);border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 16px 48px #000000a6,inset 0 1px 0 var(--sp-highlight);color:var(--sp-text);font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif}.sp-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 10px;background:radial-gradient(120% 80% at 0% 0%,rgba(102,192,244,.18),transparent 55%),linear-gradient(90deg,#1a2332,var(--sp-bg-1));border-bottom:1px solid var(--sp-border);flex-shrink:0;position:sticky;top:0;z-index:2}.sp-panel__title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.sp-panel__title{color:var(--sp-text-strong);font-size:14px;font-weight:700}.sp-panel__subtitle{margin-top:2px;color:var(--sp-text-muted);font-size:11px}.sp-panel__version{display:inline-flex;align-items:center;padding:1px 7px;border-radius:2px;background:#66c0f424;border:1px solid rgba(102,192,244,.35);color:var(--sp-accent);font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.4}.sp-panel__close{border:0;background:transparent;color:var(--sp-text-muted);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}.sp-panel__close:hover{color:var(--sp-text-strong)}.sp-panel__nav{display:flex;flex-direction:column;gap:8px}.sp-panel__nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;appearance:none;border:1px solid rgba(0,0,0,.65);border-radius:3px;background:#00000038;box-shadow:inset 0 1px 0 var(--sp-highlight);color:var(--sp-text);text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}.sp-panel__nav-item:hover{background:#66c0f414;border-color:#66c0f459}.sp-panel__nav-item:hover .sp-panel__nav-title{color:var(--sp-text-strong)}.sp-panel__nav-item:hover .sp-panel__nav-chevron{color:var(--sp-accent);transform:translate(2px)}.sp-panel__nav-icon{display:inline-flex;flex:0 0 auto;width:22px;height:22px;color:var(--sp-accent)}.sp-panel__nav-icon svg{width:100%;height:100%}.sp-panel__nav-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}.sp-panel__nav-title{color:var(--sp-text);font-size:13px;font-weight:700;line-height:1.2;transition:color .15s ease}.sp-panel__nav-desc{color:var(--sp-text-muted);font-size:11px;line-height:1.35}.sp-panel__nav-chevron{flex:0 0 auto;color:var(--sp-text-muted);font-size:18px;line-height:1;transition:color .15s ease,transform .15s ease}.sp-panel__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.1em;padding:1px 5px;border-radius:999px;border:1px solid transparent;font:700 9px/1.3 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.02em;text-transform:none;flex:0 0 auto}.sp-panel__tab-badge--low{color:var(--sp-accent);background:#66c0f41f;border-color:#66c0f447}.sp-panel__tab-badge--mid{color:#e5b04a;background:#e5b04a24;border-color:#e5b04a59}.sp-panel__tab-badge--high{color:#f1a3a3;background:#f1a3a324;border-color:#f1a3a359}.sp-panel__body{overflow-x:hidden;overflow-y:auto;flex:1 1 auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--sp-accent-deep) transparent}.sp-panel__view{padding:12px 12px 8px}.sp-panel__body[data-sp-dir=fwd]>.sp-panel__view{animation:sp-pane-in-fwd .22s ease-out}.sp-panel__body[data-sp-dir=back]>.sp-panel__view{animation:sp-pane-in-back .22s ease-out}@keyframes sp-pane-in-fwd{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@keyframes sp-pane-in-back{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:none}}.sp-panel__body[data-sp-dir] .sp-panel__nav-item{animation:sp-item-in .25s ease-out both}.sp-panel__body[data-sp-dir] .sp-panel__page-content>*{animation:sp-item-in .25s ease-out both}.sp-panel__body[data-sp-dir] .sp-panel__nav-item:nth-child(1),.sp-panel__body[data-sp-dir] .sp-panel__page-content>*:nth-child(1){animation-delay:0s}.sp-panel__body[data-sp-dir] .sp-panel__nav-item:nth-child(2),.sp-panel__body[data-sp-dir] .sp-panel__page-content>*:nth-child(2){animation-delay:.04s}.sp-panel__body[data-sp-dir] .sp-panel__nav-item:nth-child(3),.sp-panel__body[data-sp-dir] .sp-panel__page-content>*:nth-child(3){animation-delay:.08s}.sp-panel__body[data-sp-dir] .sp-panel__nav-item:nth-child(4),.sp-panel__body[data-sp-dir] .sp-panel__page-content>*:nth-child(4){animation-delay:.12s}.sp-panel__body[data-sp-dir] .sp-panel__nav-item:nth-child(n+5),.sp-panel__body[data-sp-dir] .sp-panel__page-content>*:nth-child(n+5){animation-delay:.16s}@keyframes sp-item-in{0%{opacity:0}to{opacity:1}}.sp-panel__page{display:flex;flex-direction:column}.sp-panel__crumb{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--sp-line)}.sp-panel__back{appearance:none;display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:var(--sp-accent);font:700 11px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color .15s ease}.sp-panel__back:hover{color:var(--sp-text-strong)}.sp-panel__crumb-title{color:var(--sp-text-muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sp-panel__footer{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;border-top:1px solid var(--sp-border);background:#0003;flex-shrink:0;position:sticky;bottom:0;z-index:2}.sp-panel__footer-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.sp-panel__section{margin:0 0 10px;padding:12px 14px;background:#00000038;border:1px solid rgba(0,0,0,.65);box-shadow:inset 0 1px 0 var(--sp-highlight);border-radius:3px}.sp-panel__section:last-child{margin-bottom:4px}.sp-panel__section>*+*{margin-top:10px}.sp-panel__section-title{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--sp-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sp-panel__section-icon{display:inline-flex;flex:0 0 auto;width:14px;height:14px;color:var(--sp-accent)}.sp-panel__section-icon svg{width:100%;height:100%}.sp-field{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.sp-field:last-child{margin-bottom:0}.sp-field>.sp-hint{margin:0}.sp-field__label{color:var(--sp-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.sp-hint{margin:6px 0 0;color:var(--sp-text-muted);font-size:11px;line-height:1.45}.sp-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sp-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none}.sp-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.sp-switch__track{position:relative;box-sizing:border-box;width:34px;height:18px;flex:0 0 auto;border-radius:9px;background:var(--sp-bg-deep);border:1px solid var(--sp-border);box-shadow:inset 0 1px 2px #00000080;transition:background .15s ease;cursor:pointer}.sp-switch__track:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:var(--sp-text-muted);transition:transform .15s ease,background .15s ease}.sp-switch:hover .sp-switch__track{filter:brightness(1.12)}.sp-switch input:checked+.sp-switch__track{background:linear-gradient(to bottom,var(--sp-accent-soft),var(--sp-accent-deep));box-shadow:inset 0 1px 2px #00000080,0 0 8px #66c0f466}.sp-switch input:checked+.sp-switch__track:after{transform:translate(16px);background:var(--sp-text-strong)}.sp-switch__label{color:var(--sp-text);font-size:13px}.sp-pill{font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:2px;background:var(--sp-bg-deep);color:var(--sp-text-muted);border:1px solid var(--sp-border);flex:0 0 auto}.sp-pill.is-on{color:#beee11;background:#1b3708;border-color:#53760d}.sp-select{height:30px;padding:0 8px;border:1px solid var(--sp-border);border-radius:2px;background:var(--sp-field);color:var(--sp-text-strong);box-shadow:inset 0 0 0 1px #ffffff0d;outline:none;font:500 12px/28px Motiva Sans,Arial,Helvetica,sans-serif;min-width:160px}.sp-select:focus{background:var(--sp-field-active);box-shadow:0 0 0 1px var(--sp-accent)}.sp-select--block{width:100%}.sp-segmented{position:relative;display:flex;align-self:stretch;width:100%;border:1px solid var(--sp-border);border-radius:3px;background:var(--sp-bg-deep);box-shadow:inset 0 1px 2px #0006;padding:2px}.sp-segmented__thumb{position:absolute;top:2px;bottom:2px;left:0;width:0;border-radius:2px;background:#66c0f433;box-shadow:inset 0 0 0 1px var(--sp-accent),0 0 8px #66c0f440;transition:transform .2s ease,width .2s ease;pointer-events:none}.sp-segmented__option{position:relative;z-index:1;flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:7px;appearance:none;border:none;background:transparent;color:var(--sp-text-muted);font:500 12px/30px Motiva Sans,Arial,Helvetica,sans-serif;padding:0 10px;border-radius:2px;cursor:pointer;white-space:nowrap;transition:color .15s ease,transform .1s ease}.sp-segmented__option:hover{color:var(--sp-text-strong)}.sp-segmented__option:active{transform:scale(.97)}.sp-segmented__option--active{color:var(--sp-text-strong);text-shadow:0 0 8px rgba(102,192,244,.6)}.sp-segmented__icon{display:inline-flex;flex:0 0 auto;width:14px;height:14px}.sp-segmented__icon svg{width:100%;height:100%}.sp-switch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 16px}.sp-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 12px;border:none;border-radius:2px;cursor:pointer;color:var(--sp-text-strong);font:700 12px/28px Motiva Sans,Arial,Helvetica,sans-serif;background:linear-gradient(to bottom,var(--sp-accent-soft) 5%,var(--sp-accent-deep) 95%);text-shadow:0 1px 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px #0006;text-decoration:none}.sp-button:hover{filter:brightness(1.08)}.sp-button--secondary,.sp-button--ghost{background:linear-gradient(to bottom,#3d4450 5%,#2c313a 95%)}.sp-button--green{background:linear-gradient(to bottom,var(--sp-success) 5%,#536904 95%)}.sp-button--danger{background:linear-gradient(to bottom,var(--sp-danger) 5%,#8a3030 95%)}.sp-cache-meter{margin:8px 0 0}.sp-cache-meter__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}.sp-cache-meter__pct-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1}.sp-cache-meter__pct--low .sp-cache-meter__pct-value{color:var(--sp-accent)}.sp-cache-meter__pct--mid .sp-cache-meter__pct-value{color:#e5b04a}.sp-cache-meter__pct--high .sp-cache-meter__pct-value{color:#f1a3a3}.sp-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}.sp-cache-meter__used{font-size:12px;font-variant-numeric:tabular-nums;color:var(--sp-text-muted)}.sp-cache-meter__bar{display:flex;height:14px;border-radius:3px;overflow:hidden;background:#ffffff0d;border:1px solid rgba(0,0,0,.55);box-shadow:inset 0 1px #ffffff0a}.sp-cache-meter__seg{display:block;height:100%;min-width:0}.sp-cache-meter__seg--p0{background:linear-gradient(180deg,#8ed0f8 0%,var(--sp-accent) 100%)}.sp-cache-meter__seg--p1{background:linear-gradient(180deg,#b6bcc2 0%,var(--sp-text-muted) 100%)}.sp-cache-meter__seg--p2{background:linear-gradient(180deg,#d7e69a 0%,var(--sp-success) 100%)}.sp-cache-meter__seg--free{background:transparent}.sp-cache-meter__legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;font-size:12px;color:var(--sp-text-muted);font-variant-numeric:tabular-nums}.sp-cache-meter__row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.sp-cache-meter__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sp-text);font-weight:500}.sp-cache-meter__meta{display:flex;align-items:baseline;gap:10px;flex:0 0 auto;white-space:nowrap}.sp-cache-meter__count{color:var(--sp-text-muted)}.sp-cache-meter__size{color:var(--sp-text);font-weight:600;min-width:4.5em;text-align:right}.sp-cache-meter__swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto;box-shadow:inset 0 0 0 1px #00000040}.sp-cache-meter__swatch--p0{background:var(--sp-accent)}.sp-cache-meter__swatch--p1{background:var(--sp-text-muted)}.sp-cache-meter__swatch--p2{background:var(--sp-success)}.sp-cache-meter__swatch--free{background:#ffffff1f;border:1px solid rgba(255,255,255,.12);box-shadow:none}.sp-cache-list{margin-top:8px;max-height:220px;overflow:auto;border:1px solid rgba(0,0,0,.55);border-radius:3px;background:#00000038;scrollbar-width:thin;scrollbar-color:var(--sp-accent-deep) transparent}.sp-cache-list__empty{padding:14px 12px;color:var(--sp-text-muted);font-size:12px;text-align:center}.sp-cache-list__more{padding:8px 10px;color:var(--sp-text-muted);font-size:11px;text-align:center;border-top:1px solid rgba(0,0,0,.35)}.sp-cache-list__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.35)}.sp-cache-list__item:last-child{border-bottom:0}.sp-cache-list__item:hover{background:#66c0f414}.sp-cache-list__main{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.sp-cache-list__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sp-text);font-size:12px}.sp-cache-list__meta{display:flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--sp-text-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-cache-list__remove{min-width:28px;min-height:0;padding:2px 8px;font-size:14px;line-height:1.2}.sp-cache-collapser__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;border:0;background:transparent;color:var(--sp-text);font:700 11px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}.sp-cache-collapser__toggle:hover{color:var(--sp-text-strong)}.sp-cache-collapser__chevron{color:var(--sp-accent);font-size:12px;line-height:1;transition:transform .15s ease}.sp-cache-collapser__toggle[aria-expanded=true] .sp-cache-collapser__chevron{transform:rotate(90deg)}.sp-cache-collapser__count{margin-left:auto;color:var(--sp-text-muted);font-weight:400;letter-spacing:0;text-transform:none}.sp-cache-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.sp-cache-status{margin:8px 0 0;min-height:14px;color:var(--sp-success);font-size:11px}.sp-toasts{position:fixed;right:16px;bottom:16px;z-index:1000002;display:flex;flex-direction:column;gap:8px;width:min(340px,calc(100vw - 32px));pointer-events:none;font-family:Motiva Sans,Arial,Helvetica,sans-serif}.sp-toasts--top-right{top:16px;bottom:auto}.sp-toasts--top-left{inset:16px auto auto 16px}.sp-toasts--bottom-left{left:16px;right:auto}.sp-toasts--top-left .sp-toast,.sp-toasts--bottom-left .sp-toast{animation-name:sp-toast-in-left}.sp-toasts--top-left .sp-toast--leaving,.sp-toasts--bottom-left .sp-toast--leaving{transform:translate(-24px)}@keyframes sp-toast-in-left{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.sp-toast{position:relative;display:flex;gap:10px;align-items:flex-start;padding:10px 12px 12px;overflow:hidden;background:linear-gradient(180deg,var(--sp-bg-1) 0%,var(--sp-bg-2) 100%);border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 8px 24px #0009,inset 0 1px 0 var(--sp-highlight);color:var(--sp-text);font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;pointer-events:auto;animation:sp-toast-in .2s ease-out}.sp-toast--leaving{opacity:0;transform:translate(24px);transition:opacity .18s ease,transform .18s ease}.sp-toast--clickable{cursor:pointer}@keyframes sp-toast-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.sp-toast__icon{display:inline-flex;flex:0 0 auto;width:20px;height:20px;margin-top:1px}.sp-toast__icon svg{width:100%;height:100%}.sp-toast__icon--info{color:var(--sp-accent)}.sp-toast__icon--success{color:var(--sp-success)}.sp-toast__icon--warning{color:#e5b04a}.sp-toast__icon--error{color:var(--sp-danger)}.sp-toast__body{flex:1 1 auto;min-width:0}.sp-toast__title{color:var(--sp-text-strong);font-size:13px;font-weight:700}.sp-toast__message{margin-top:2px;color:var(--sp-text-muted);font-size:12px;line-height:1.45}.sp-toast__actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.sp-toast__action{appearance:none;display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border:none;border-radius:2px;cursor:pointer;color:var(--sp-text-strong);font:700 11px/24px Motiva Sans,Arial,Helvetica,sans-serif;background:linear-gradient(to bottom,var(--sp-accent-soft) 5%,var(--sp-accent-deep) 95%);text-shadow:0 1px 1px rgba(0,0,0,.3);box-shadow:0 0 0 1px #0006}.sp-toast__action:hover{filter:brightness(1.08)}.sp-toast__action--ghost{background:linear-gradient(to bottom,#3d4450 5%,#2c313a 95%)}.sp-toast__action--danger{background:linear-gradient(to bottom,var(--sp-danger) 5%,#8a3030 95%)}.sp-toast__close{flex:0 0 auto;border:0;background:transparent;color:var(--sp-text-muted);font-size:16px;line-height:1;cursor:pointer;padding:0 0 0 4px}.sp-toast__close:hover{color:var(--sp-text-strong)}.sp-toast__progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:#ffffff0f}.sp-toast__progress span{display:block;height:100%;width:100%;background:var(--sp-accent);transform-origin:left center;animation-name:sp-toast-progress;animation-timing-function:linear;animation-fill-mode:forwards}.sp-toast--success .sp-toast__progress span{background:var(--sp-success)}.sp-toast--warning .sp-toast__progress span{background:#e5b04a}.sp-toast--error .sp-toast__progress span{background:var(--sp-danger)}.sp-toast:hover .sp-toast__progress span{animation-play-state:paused}@keyframes sp-toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.sp-confirm-overlay{position:fixed;inset:0;z-index:1000001;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#0009;font-family:Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text)}.sp-confirm{width:min(400px,100%);padding:14px 14px 12px;background:linear-gradient(180deg,var(--sp-bg-1) 0%,var(--sp-bg-2) 100%);border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 16px 48px #000000a6,inset 0 1px 0 var(--sp-highlight);font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;animation:sp-confirm-in .15s ease-out}@keyframes sp-confirm-in{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:none}}.sp-confirm__title{color:var(--sp-text-strong);font-size:14px;font-weight:700}.sp-confirm__message{margin-top:8px;color:var(--sp-text);font-size:12px;line-height:1.5}.sp-confirm__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.sp-viewer-overlay{position:fixed;inset:0;z-index:999999;display:flex;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:#000000e6}.sp-viewer-overlay[hidden]{display:none}.sp-viewer{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;outline:none}.sp-viewer__bar{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#0000008c;border-bottom:1px solid var(--sp-border)}.sp-viewer__meta{display:flex;align-items:baseline;gap:10px;min-width:0}.sp-viewer__title{overflow:hidden;color:var(--sp-text-strong);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.sp-viewer__counter{color:var(--sp-text-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-viewer__tools{display:flex;align-items:center;gap:4px;margin-left:auto}.sp-viewer__tool{appearance:none;width:28px;height:28px;padding:0;border:1px solid var(--sp-border);border-radius:2px;background:linear-gradient(180deg,#3d4450,#2c313a);color:var(--sp-text);font:700 14px/1 Motiva Sans,Arial,Helvetica,sans-serif;cursor:pointer}.sp-viewer__tool:hover{color:var(--sp-text-strong);border-color:var(--sp-accent)}.sp-viewer__tool--close:hover{color:var(--sp-text-strong);background:linear-gradient(180deg,#c45c5c,#8a3030);border-color:var(--sp-border)}.sp-viewer__sep{width:1px;height:18px;background:var(--sp-line)}.sp-viewer__stage{position:relative;display:flex;flex:1 1 auto;align-items:center;justify-content:center;min-height:0;overflow:hidden;cursor:grab;touch-action:none}.sp-viewer.is-dragging .sp-viewer__stage{cursor:grabbing}.sp-viewer__image{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:transform .12s ease-out}.sp-viewer.is-dragging .sp-viewer__image{transition:none}.sp-viewer__image.is-loading{opacity:.35}.sp-viewer__nav{position:absolute;top:50%;width:44px;height:72px;padding:0;transform:translateY(-50%);appearance:none;border:1px solid var(--sp-border);border-radius:2px;background:#00000080;color:var(--sp-text);font:700 24px/1 Motiva Sans,Arial,Helvetica,sans-serif;cursor:pointer}.sp-viewer__nav[hidden]{display:none}.sp-viewer__nav:hover{color:var(--sp-text-strong);border-color:var(--sp-accent)}.sp-viewer__nav:disabled{opacity:.35;cursor:default}.sp-viewer__nav--prev{left:12px}.sp-viewer__nav--next{right:12px}.sp-viewer__spinner{position:absolute;box-sizing:border-box;width:22px;height:22px;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);border-radius:50%;animation:sp-spin .7s linear infinite}.sp-viewer__spinner[hidden]{display:none}.sp-viewer__status{position:absolute;max-width:80%;margin:0;padding:8px 12px;border:1px solid var(--sp-border);border-left:3px solid #c45c5c;border-radius:0 3px 3px 0;background:#0009;color:var(--sp-text)}.sp-viewer__status[hidden]{display:none}.sp-viewer__thumbs{display:flex;flex:0 0 auto;gap:8px;padding:8px 12px;overflow-x:auto;background:#0000008c;border-top:1px solid var(--sp-border);scrollbar-color:#417a9b transparent}.sp-viewer__thumbs[hidden]{display:none}.sp-viewer__thumb{flex:0 0 auto;width:92px;height:35px;padding:0;overflow:hidden;appearance:none;border:2px solid transparent;border-radius:2px;background:var(--sp-bg-deep);cursor:pointer}.sp-viewer__thumb:hover{border-color:var(--sp-accent-soft)}.sp-viewer__thumb.is-active{border-color:var(--sp-accent)}.sp-viewer__thumb-img{display:block;width:100%;height:100%;object-fit:cover}.sp-viewer__hint{margin:0;padding:6px 12px 8px;color:var(--sp-text-muted);font-size:11px;text-align:center;background:#0000008c}.sp-about{display:flex;flex-direction:column;gap:12px;padding:2px 2px 4px}.sp-about__hero{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sp-about__name{color:var(--sp-text-strong);font-size:15px;font-weight:700}.sp-about__blurb{margin:0;color:var(--sp-text);font-size:12px;line-height:1.5}.sp-about__author{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--sp-border);border-radius:3px;background:#00000040;box-shadow:inset 0 1px 0 var(--sp-highlight);text-decoration:none}.sp-about__author:hover{background:#66c0f414}.sp-about__author-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.sp-about__author-name{color:var(--sp-text-strong);font-size:13px;font-weight:700;line-height:1.2}.sp-about__author:hover .sp-about__author-name{color:var(--sp-accent)}.sp-about__author-sub{color:var(--sp-text-muted);font-size:11px;line-height:1.3}.sp-about__actions{display:flex;gap:8px}.sp-translate-btn{display:inline-flex;align-items:center;gap:7px;margin:8px 0 4px;appearance:none;background:#67c1f533;border:1px solid var(--sp-accent);color:var(--sp-accent);border-radius:2px;font-size:12px;padding:4px 10px;cursor:pointer;transition:background .15s ease,color .15s ease}.sp-translate-btn:hover{background:#67c1f559;color:var(--sp-text-strong)}.sp-translate-btn--error{border-color:var(--sp-danger);color:var(--sp-danger)}.sp-translate-btn--replace{display:flex;width:fit-content;margin:0 0 8px;padding:2px 8px;font-size:11px}.sp-translate-btn--actions{flex:0 0 auto;align-self:center;margin:0}.sp-translate-btn--above{display:flex;width:fit-content;margin:0 0 8px}.sp-translate-btn--pending{display:none}.sp-translate-btn__icon{display:inline-flex;flex:0 0 auto;width:13px;height:13px}.sp-translate-btn__icon svg{width:100%;height:100%}.sp-translate-btn__spinner{display:inline-block;flex:0 0 auto;box-sizing:border-box;width:12px;height:12px;border-radius:50%;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);animation:sp-spin .7s linear infinite}@keyframes sp-spin{to{transform:rotate(360deg)}}.sp-translation{margin:6px 0 10px;padding:10px 12px;background:#67c1f514;border-left:3px solid var(--sp-accent);border-radius:0 2px 2px 0;color:var(--sp-text);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word}.sp-translation-rich{white-space:normal}.sp-translation-rich>:first-child{margin-top:0}.sp-translation-rich>:last-child{margin-bottom:0}.sp-translation-rich p,.sp-translation-rich div{margin:0 0 8px}.sp-translation-rich h1,.sp-translation-rich h2,.sp-translation-rich h3,.sp-translation-rich h4,.sp-translation-rich h5,.sp-translation-rich h6{margin:10px 0 6px;color:var(--sp-text-strong);font-weight:700;line-height:1.3}.sp-translation-rich h1{font-size:16px}.sp-translation-rich h2{font-size:15px}.sp-translation-rich h3{font-size:14px}.sp-translation-rich h4,.sp-translation-rich h5,.sp-translation-rich h6{font-size:13px}.sp-translation-rich a{color:var(--sp-accent);text-decoration:underline;text-underline-offset:2px}.sp-translation-rich a:hover{color:var(--sp-text-strong)}.sp-translation-rich img,.sp-translation-rich video,.sp-translation-rich iframe{max-width:100%;height:auto;border-radius:2px}.sp-translation-rich img{margin:4px 2px;vertical-align:middle}.sp-translation-rich ul,.sp-translation-rich ol{margin:0 0 8px;padding-left:20px}.sp-translation-rich li{margin:2px 0}.sp-translation-rich blockquote{margin:0 0 8px;padding:6px 10px;border-left:3px solid var(--sp-line);background:#0003;border-radius:0 2px 2px 0}.sp-translation-rich code,.sp-translation-rich kbd,.sp-translation-rich samp,.sp-translation-rich var{padding:1px 5px;background:var(--sp-bg-deep);border:1px solid var(--sp-border);border-radius:2px;font-family:Consolas,Courier New,monospace;font-size:12px;white-space:pre-wrap}.sp-prices{margin:0 0 12px;padding:10px 12px;background:#00000040;border:1px solid rgba(0,0,0,.65);box-shadow:inset 0 1px 0 var(--sp-highlight);border-radius:3px;color:var(--sp-text);font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif}.sp-prices__head{display:flex;align-items:center;gap:8px}.sp-prices__title{color:var(--sp-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sp-prices__updated{margin-left:auto;color:var(--sp-text-muted);font-size:11px;white-space:nowrap}.sp-prices__refresh{appearance:none;border:0;background:transparent;color:var(--sp-text-muted);font-size:14px;line-height:1;padding:2px 4px;cursor:pointer}.sp-prices__refresh:hover{color:var(--sp-text-strong)}.sp-prices__toggle{appearance:none;border:0;background:transparent;color:var(--sp-text-muted);font-size:14px;line-height:1;padding:2px 4px;cursor:pointer;transition:transform .15s}.sp-prices__toggle:hover{color:var(--sp-text-strong)}.sp-prices.is-collapsed .sp-prices__toggle{transform:rotate(-90deg)}.sp-prices.is-collapsed .sp-prices__body,.sp-prices.is-collapsed .sp-prices__hint{display:none}.sp-prices__hint{margin:4px 0 0;color:var(--sp-text-muted);font-size:11px}.sp-prices__body{margin-top:4px}.sp-prices__scroll{margin:4px -4px 0;padding:0 4px;overflow-x:auto}.sp-prices__table{width:100%;border-collapse:collapse}.sp-prices__th{padding:2px 4px 6px;color:var(--sp-text-muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:left;white-space:nowrap}.sp-prices__th.is-num{text-align:right}.sp-prices__sort{appearance:none;display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:2px 0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.sp-prices__sort:hover{color:var(--sp-text-strong)}.sp-prices__th.is-active .sp-prices__sort{color:var(--sp-accent)}.sp-prices__arrow{font-size:9px}.sp-prices__td{padding:6px 4px;border-top:1px solid var(--sp-line);vertical-align:middle}.sp-prices__td.is-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-prices__tr.is-home .sp-prices__td{background:#66c0f412}.sp-prices__tr.is-cheapest .sp-prices__td{background:#a4d00712}.sp-prices__tr.is-cheapest .sp-prices__td:first-child{box-shadow:inset 3px 0 0 var(--sp-success)}.sp-prices__td small.sp-prices__currency{margin-left:6px;color:var(--sp-text-muted);font-size:11px}.sp-prices__td .sp-pill{margin-left:8px}.sp-prices__price-main{color:var(--sp-text-strong);font-size:13px;font-weight:700}.sp-prices__price-sub{margin-top:1px;color:var(--sp-text-muted);font-size:11px}.sp-prices__price-sub s{margin-right:6px}.sp-prices__badge{padding:1px 6px;border-radius:2px;background:#4c6b22;color:#beee11;font-size:11px;font-weight:700;white-space:nowrap}.sp-prices__save{color:var(--sp-text-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-prices__save.is-cheap{color:var(--sp-success);font-weight:700}.sp-prices__state{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--sp-text-muted)}.sp-prices__spinner{display:inline-block;flex:0 0 auto;box-sizing:border-box;width:12px;height:12px;border-radius:50%;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);animation:sp-spin .7s linear infinite}.sp-links{margin:0 0 12px;padding:10px 12px;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:#00000040;border:1px solid var(--sp-border);border-radius:3px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-links[hidden]{display:none}.sp-links__head{display:flex;align-items:center;gap:8px}.sp-links__title{color:var(--sp-accent);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sp-links__body{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.sp-links__chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:5px 10px 5px 7px;color:var(--sp-text);font-size:12px;font-weight:700;white-space:nowrap;text-decoration:none;background:#00000059;border:1px solid var(--sp-border);border-radius:2px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-links__chip:hover{color:var(--sp-text-strong);border-color:var(--sp-accent)}.sp-links__icon{flex:0 0 auto;width:16px;height:16px;border-radius:2px}.sp-links__letter{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;border-radius:2px;background:var(--sp-field);color:var(--sp-text-strong);font-size:10px;font-weight:700}.sp-links__label{overflow:hidden;text-overflow:ellipsis}.sp-link-list{display:flex;flex-direction:column;gap:10px}.sp-link-card{padding:10px 12px;background:#00000038;border:1px solid var(--sp-border);border-radius:3px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-link-card__top{display:flex;align-items:center;gap:8px}.sp-link-card__favicon{display:inline-flex;flex:0 0 auto}.sp-link-card__name{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--sp-text-strong);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.sp-link-card__actions{display:flex;flex:0 0 auto;gap:4px;margin-left:auto}.sp-link-card__btn{min-width:26px;min-height:24px;padding:0 6px;font-size:12px;line-height:24px}.sp-link-card__open{align-self:flex-start;margin-top:4px}.sp-link-card__add-row{display:flex;gap:8px;margin-top:4px}.sp-input.is-invalid{outline:1px solid var(--sp-danger);outline-offset:-1px}.sp-input{width:100%;box-sizing:border-box;height:30px;padding:0 10px;font:inherit;color:var(--sp-text-strong);background:var(--sp-field);border:1px solid var(--sp-border);box-shadow:inset 0 0 0 1px #ffffff0d;border-radius:2px}.sp-input::placeholder{color:var(--sp-text-muted)}.sp-input:focus{background:var(--sp-field-active);outline:1px solid var(--sp-accent);outline-offset:-1px}.sp-input[type=password]{letter-spacing:.08em}.sp-dlc{margin:0 0 12px;padding:10px 12px;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:#00000040;border:1px solid var(--sp-border);border-radius:3px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-dlc__head{display:flex;align-items:center;gap:8px}.sp-dlc__title{color:var(--sp-accent);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.sp-dlc__summary{flex:0 0 auto;padding:1px 6px;border-radius:2px;background:#00000059;border:1px solid var(--sp-line);color:var(--sp-text-muted);font-size:10px;font-weight:700;white-space:nowrap}.sp-dlc__summary[hidden]{display:none}.sp-dlc__summary.is-on{background:#1b3708;border-color:var(--sp-discount-bg);color:var(--sp-discount-fg)}.sp-dlc__status{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sp-text-muted);font-size:11px}.sp-dlc__refresh,.sp-dlc__toggle{appearance:none;flex:0 0 auto;border:0;background:transparent;color:var(--sp-text-muted);font-size:14px;line-height:1;padding:2px 4px;cursor:pointer}.sp-dlc__refresh[hidden]{display:none}.sp-dlc__refresh:hover,.sp-dlc__toggle:hover{color:var(--sp-text-strong)}.sp-dlc__toggle{transition:transform .15s}.sp-dlc.is-collapsed .sp-dlc__toggle{transform:rotate(-90deg)}.sp-dlc.is-collapsed .sp-dlc__body,.sp-dlc.is-collapsed .sp-dlc__hint{display:none}.sp-dlc__hint{margin:4px 0 0;color:var(--sp-text-muted);font-size:11px}.sp-dlc__body{margin-top:4px}.sp-dlc__state{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--sp-text-muted)}.sp-dlc__spinner{display:inline-block;flex:0 0 auto;box-sizing:border-box;width:12px;height:12px;border-radius:50%;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);animation:sp-spin .7s linear infinite}.sp-dlc__list{margin:0;padding:0;list-style:none;max-height:320px;overflow-y:auto;scrollbar-color:#417a9b transparent}.sp-dlc__row{display:flex;align-items:center;gap:8px;padding:5px 2px;border-top:1px solid var(--sp-line)}.sp-dlc__row:first-child{border-top:0}.sp-dlc__row.is-owned{background:#a4d0070f}.sp-dlc__thumb-btn{display:inline-flex;flex:0 0 auto;padding:0;appearance:none;border:0;border-radius:2px;background:none;cursor:zoom-in}.sp-dlc__thumb-btn:hover .sp-dlc__thumb,.sp-dlc__thumb-btn:focus-visible .sp-dlc__thumb{border-color:var(--sp-accent)}.sp-dlc__thumb{flex:0 0 auto;width:64px;height:24px;border:1px solid var(--sp-border);border-radius:2px;background:var(--sp-bg-deep);object-fit:cover}.sp-dlc__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sp-text);text-decoration:none}.sp-dlc__name:hover{color:var(--sp-text-strong)}.sp-dlc__row.is-owned .sp-dlc__name{color:var(--sp-text-muted)}.sp-dlc__meta{flex:0 0 auto;display:inline-flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}.sp-dlc__price{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-dlc__initial{color:var(--sp-text-muted);font-size:11px}.sp-dlc__final{color:var(--sp-text-strong);font-size:12px;font-weight:700}.sp-dlc__final.is-free{color:var(--sp-success)}.sp-dlc__badge{padding:1px 5px;border-radius:2px;background:var(--sp-discount-bg);color:var(--sp-discount-fg);font-size:10px;font-weight:700}.sp-dlc__soon{color:var(--sp-text-muted);font-size:11px}.sp-dlc__date{color:var(--sp-text-muted);font-size:11px;white-space:nowrap}.sp-region-banner{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:10px 12px;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:#00000040;border:1px solid var(--sp-border);border-left:3px solid var(--sp-accent);border-radius:0 3px 3px 0;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-region-banner__badge{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sp-accent)}.sp-region-banner__body{flex:1 1 auto;min-width:0}.sp-region-banner__title{font-size:13px;font-weight:700;color:var(--sp-text-strong)}.sp-region-banner__details{margin-top:2px;font-size:11px;color:var(--sp-text-muted)}.sp-region-banner__reload{flex:0 0 auto}.sp-region-offer,.sp-region-status{display:flex;align-items:center;gap:12px;margin:24px auto;padding:14px 16px;max-width:640px;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:linear-gradient(180deg,var(--sp-bg-1),var(--sp-bg-2));border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 8px 24px #00000080,inset 0 1px 0 var(--sp-highlight)}.sp-region-status--error{border-left:3px solid var(--sp-danger)}.sp-region-offer{border-left:3px solid var(--sp-accent)}.sp-region-offer__text,.sp-region-status__text{flex:1 1 auto;min-width:0}.sp-region-offer__button,.sp-region-status__retry{flex:0 0 auto}.sp-region-othersite-reload{margin-left:8px;cursor:pointer}.sp-region-loader{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;background:#0000008c;opacity:0;transition:opacity .18s ease}.sp-region-loader.is-visible{opacity:1}.sp-region-loader__card{display:flex;align-items:center;gap:12px;padding:14px 18px;color:var(--sp-text);background:linear-gradient(180deg,var(--sp-bg-1),var(--sp-bg-2));border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 16px 48px #000000a6,inset 0 1px 0 var(--sp-highlight)}.sp-region-loader__spinner{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);animation:sp-spin .7s linear infinite}.sp-region-loader__text{font-size:12px}.sp-searchbox{display:inline-flex;align-items:stretch;align-self:center;min-width:0;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;background:var(--sp-bg-deep);border:1px solid var(--sp-border);border-radius:2px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-searchbox__input{flex:1 1 auto;min-width:0;width:160px;height:28px;padding:0 8px;border:0;background:transparent;color:var(--sp-text-strong);font:inherit;outline:none}.sp-searchbox__input::placeholder{color:var(--sp-text-muted)}.sp-searchbox__go{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:30px;border:0;border-left:1px solid var(--sp-border);background:linear-gradient(to bottom,var(--sp-accent-soft) 5%,var(--sp-accent-deep) 95%);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.3);cursor:pointer}.sp-searchbox__go:hover{filter:brightness(1.08)}.sp-searchbox__go svg{width:15px;height:15px}.sp-searchbox:focus-within{border-color:var(--sp-accent)}.sp-search-overlay{position:fixed;inset:0;z-index:900000;display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px 16px;background:#000000b8;animation:sp-fade-in .15s ease-out}.sp-search-overlay[hidden]{display:none}.sp-search{display:flex;flex-direction:column;width:min(640px,100%);max-height:80vh;font:12px/1.4 Motiva Sans,Arial,Helvetica,sans-serif;color:var(--sp-text);background:linear-gradient(180deg,var(--sp-bg-1),var(--sp-bg-2));border:1px solid var(--sp-border);border-radius:3px;box-shadow:0 16px 48px #000000a6,inset 0 1px 0 var(--sp-highlight);animation:sp-search-in .2s ease-out}@keyframes sp-search-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}@keyframes sp-fade-in{0%{opacity:0}}.sp-search__head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--sp-border)}.sp-search__title{color:var(--sp-text-strong);font-size:14px;font-weight:700}.sp-search__close{border:0;background:transparent;color:var(--sp-text-muted);font-size:18px;line-height:1;cursor:pointer}.sp-search__close:hover{color:var(--sp-text-strong)}.sp-search__box{display:flex;align-items:center;gap:8px;margin:12px 14px 0;padding:0 10px;background:var(--sp-bg-deep);border:1px solid var(--sp-border);border-radius:2px;box-shadow:inset 0 1px 0 var(--sp-highlight)}.sp-search__icon{display:inline-flex;flex:0 0 auto;width:16px;color:var(--sp-text-muted)}.sp-search__icon svg{width:100%;height:100%}.sp-search__input{flex:1 1 auto;min-width:0;height:34px;border:0;background:transparent;color:var(--sp-text-strong);font:inherit;outline:none}.sp-search__input::placeholder{color:var(--sp-text-muted)}.sp-search__box .sp-search__rows{flex:0 0 auto;width:auto;height:26px;padding:0 4px 0 8px;border:0;border-left:1px solid var(--sp-line);border-radius:0;background:transparent;box-shadow:none;color:var(--sp-text-muted);font-size:12px;cursor:pointer}.sp-search__box .sp-search__rows:focus{color:var(--sp-text-strong);box-shadow:none}.sp-search__select{flex:1 1 auto;min-width:0}.sp-search__results{overflow-y:auto;margin:10px 14px 0;min-height:64px}.sp-search__list{display:flex;flex-direction:column}.sp-search__row{display:flex;align-items:center;gap:10px;padding:8px 10px;color:var(--sp-text);text-decoration:none;border-radius:2px}.sp-search__row+.sp-search__row{border-top:1px solid var(--sp-line)}.sp-search__row:hover{background:#66c0f414}.sp-search__row:hover .sp-search__name{color:var(--sp-text-strong)}.sp-search__thumb{display:inline-flex;flex:0 0 auto;width:92px}.sp-search__thumb img{width:100%;border-radius:2px}.sp-search__letter{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:32px;height:32px;background:var(--sp-field);color:var(--sp-text-strong);font-size:14px;font-weight:700;border-radius:2px}.sp-search__main{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.sp-search__name{flex:1 1 auto;min-width:0;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.sp-search__meta{overflow:hidden;color:var(--sp-text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sp-search__meta:empty{display:none}.sp-search__platforms{display:flex;align-items:center;gap:6px;margin-top:2px}.sp-search__prices{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:2px}.sp-search__price{color:var(--sp-text-muted);font-size:12px;font-variant-numeric:tabular-nums}.sp-search__price-old{color:var(--sp-text-muted);font-size:11px;text-decoration:line-through;font-variant-numeric:tabular-nums}.sp-search__price-final{color:var(--sp-text-strong);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.sp-search__discount{padding:1px 6px;background:var(--sp-discount-bg);color:var(--sp-discount-fg);font-size:11px;font-weight:700;border-radius:2px;font-variant-numeric:tabular-nums}.sp-search__loading,.sp-search__notice{display:flex;align-items:center;gap:10px;padding:16px 10px;color:var(--sp-text-muted);font-size:12px}.sp-search__spinner{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid rgba(102,192,244,.3);border-top-color:var(--sp-accent);animation:sp-spin .7s linear infinite}.sp-search__retry{flex:0 0 auto;margin-left:auto}.sp-search__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 12px;border-top:1px solid var(--sp-line)}.sp-search__advanced{flex:0 0 auto;color:var(--sp-accent);font-size:12px;text-decoration:none}.sp-search__advanced:hover{color:var(--sp-text-strong)}.sp-search__note{min-width:0;overflow:hidden;color:var(--sp-text-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sp-search__row:focus-visible,.sp-search__close:focus-visible{outline:1px solid var(--sp-accent);outline-offset:2px}.sp-panel-overlay a:focus-visible,.sp-panel-overlay button:focus-visible,.sp-panel-overlay select:focus-visible,.sp-panel-overlay input:focus-visible{outline:1px solid var(--sp-accent);outline-offset:2px}#sp-settings-btn.sp-header-btn:focus-visible{outline:1px solid var(--sp-accent);outline-offset:2px}.sp-toast__action:focus-visible,.sp-toast__close:focus-visible,.sp-prices__refresh:focus-visible,.sp-prices__toggle:focus-visible,.sp-prices__sort:focus-visible,.sp-prices .sp-button:focus-visible,.sp-links__chip:focus-visible,.sp-dlc__refresh:focus-visible,.sp-dlc__toggle:focus-visible,.sp-dlc__name:focus-visible,.sp-dlc .sp-button:focus-visible,.sp-viewer__tool:focus-visible,.sp-viewer__nav:focus-visible,.sp-viewer__thumb:focus-visible,.sp-region-banner__reload:focus-visible,.sp-region-offer__button:focus-visible,.sp-region-othersite-reload:focus-visible,.sp-region-status__retry:focus-visible{outline:1px solid var(--sp-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.sp-panel__view,.sp-panel__nav-item,.sp-panel__nav-title,.sp-panel__nav-chevron,.sp-panel__back,.sp-panel__page-content>*,.sp-segmented__thumb,.sp-segmented__option,.sp-confirm,.sp-toast,.sp-toast--leaving,.sp-translate-btn__spinner,.sp-prices__spinner,.sp-dlc__spinner,.sp-dlc__toggle,.sp-viewer__image,.sp-viewer__spinner,.sp-prices__toggle,.sp-region-loader__spinner,.sp-switch__track,.sp-switch__track:after,.sp-cache-collapser__chevron,.sp-search-overlay,.sp-search,.sp-search__spinner{animation:none;transition:none}}@media(max-width:900px){.sp-header-btn__text{display:none}} '); (function () { 'use strict'; var e=Object.defineProperty;const t="Steam Plus",n="sp_settings_v1",o="sp_translation_cache_v1",a="sp_prices_cache_v1",r="sp_dlc_cache_v1",s=6048e5,i=2e3,l=4e3,c=864e5,d=18e5,u=[3,5,8,10,15,20],p={language:"auto",translation:{enabled:true,provider:"google-free",trigger:"manual",display:"below",targetLanguage:"auto",showCached:true,scopes:{gameDescription:true,gameReviews:true,profileComments:true,gameNews:true,newsArticle:true,guides:true}},gamepage:{enabled:true,hidden:{media:false,purchase:false,description:false,dlc:false,sysreq:false,reviews:false,curators:false,events:false,details:false,recommendations:false,sale:false,edition:false,earlyaccess:false},compact:{earlyaccess:false}},prices:{enabled:true,autoLoad:true,regions:["US","DE","GB","PL","UA","KZ","TR"],position:"purchase",sort:"custom",showOriginal:true,showDiscount:true,showSavings:true,highlightCheapest:true,showHomeRow:true,convertTo:"auto",showConverted:true,collapsed:true},links:{enabled:true,position:"purchase",openInNewTab:true,items:[{id:"steamdb",name:"SteamDB",url:"https://steamdb.info/app/{appid}/",icon:"https://steamdb.info/favicon.ico",enabled:true},{id:"protondb",name:"ProtonDB",url:"https://www.protondb.com/apps/{appid}",icon:"https://www.protondb.com/favicon.ico",enabled:true},{id:"hltb",name:"HowLongToBeat",url:"https://howlongtobeat.com/?q={name}",icon:"https://howlongtobeat.com/favicon.ico",enabled:true}]},dlc:{enabled:true,position:"purchase",sort:"missing",collapsed:true,showSummary:true,showOwned:true,showPrices:true,showThumbnails:true,showReleaseDate:true,viewer:true,viewerThumbnails:true,viewerLoop:true},region:{enabled:true,searchEnabled:true,searchMaxRows:6,mode:"auto",countryCode:"",proxyEnabled:false,proxyHost:"",proxyPort:"",proxyUser:"",proxyPass:"",proxyMode:"gateway",showBanner:false},toasts:{enabled:true,position:"bottom-right",duration:5e3}};function g(){return JSON.parse(JSON.stringify(p))}const h="SP-1101",m="SP-1110",b="SP-1111",v="SP-1310",f="SP-1311",y="SP-1312",w="SP-1410",k="SP-1411",C="SP-1414",_="SP-1415",S="SP-1416",x="SP-1510",D="SP-1511",z="SP-1512",q="SP-1513",P="SP-1514",A="font-weight:bold",L="color:#8f98a0";function E(e,t,n,o){const a=new Error(`[${e}] ${t}`);return a.code=e,void 0!==n&&(a.details=n),void 0!==o&&(a.cause=o),a}function T(e,t=120){const n=String(null!=e?e:"").replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1).trim()}…`}function j(e,t,n,o,a){ void 0===a?e(`%cSteam Plus%c ${n} ${o}`,t,A):e(`%cSteam Plus%c ${n} ${o}`,t,A,a);}function R(e,t,n){j(console.error,"background:#8a3030;color:#fff;border-radius:2px;padding:1px 6px;font-weight:bold",e,t,n);}function M(e,t,n){j(console.warn,"background:#6b5416;color:#ffe1a8;border-radius:2px;padding:1px 6px;font-weight:bold",e,t,n);}function B(e,t,n){(function(){try{if("undefined"!=typeof window&&!0===window.__SP_DEBUG__)return !0}catch(e){}try{return "1"===localStorage.getItem("sp_debug")}catch(e){return false}})()&&(void 0===n?console.info(`%cSteam Plus · ${e}%c ${t}`,L,""):console.info(`%cSteam Plus · ${e}%c ${t}`,L,"",n));}const N=new Map;function I(e,t){return N.has(e)||N.set(e,new Set),N.get(e).add(t),()=>function(e,t){var n;null==(n=N.get(e))||n.delete(t);}(e,t)}function O(e,t){var n;null==(n=N.get(e))||n.forEach(n=>{try{n(t);}catch(o){R("SP-1001",`listener for "${e}" failed`,{event:e,error:o});}});}const H=["en","ru","de","es","fr","pt-BR","zh-CN","ja","ko","pl"],U={en:"en","en-us":"en","en-gb":"en",ru:"ru","ru-ru":"ru",de:"de","de-de":"de",es:"es","es-es":"es","es-419":"es",fr:"fr","fr-fr":"fr","pt-br":"pt-BR",pt:"pt-BR","pt-pt":"pt-BR","zh-cn":"zh-CN","zh-sg":"zh-CN",zh:"zh-CN",ja:"ja","ja-jp":"ja",ko:"ko","ko-kr":"ko",pl:"pl","pl-pl":"pl"},$={en:"English",ru:"Русский",de:"Deutsch",es:"Español",fr:"Français","pt-BR":"Português (Brasil)","zh-CN":"简体中文",ja:"日本語",ko:"한국어",pl:"Polski"},G={en:{"menu.settings":"Settings Steam Plus","tab.general":"General","tab.translation":"Translation","tab.gamepage":"Game page","tab.prices":"Prices","tab.cache":"Cache","tab.about":"About","tab.backup":"Backup","tab.general.desc":"Interface language and notifications.","tab.translation.desc":"Translate descriptions, reviews, comments and news.","tab.gamepage.desc":"Hide unneeded blocks on game pages.","tab.prices.desc":"Compare regional prices and convert currency.","tab.links":"External links","tab.links.desc":"Quick links to other stores and databases.","tab.dlc":"Add-ons","tab.dlc.desc":"DLC list with prices and ownership status.","tab.region":"Region","tab.region.desc":"Load store pages blocked in your region.","tab.cache.desc":"Stored translations and storage usage.","tab.about.desc":"Version, author and source code.","tab.backup.desc":"Export settings to a file and import them back.","panel.subtitle":"Translation · game page · prices · links · add-ons · region · cache · backup · interface","panel.back":"Back","common.on":"On","common.off":"Off","common.auto":"Auto","common.close":"Close","common.cancel":"Cancel","common.save":"Save","common.reset":"Reset to defaults","common.saved":"Saved","common.settings":"Settings","general.language":"Interface language","general.languageDesc":"Language of the Steam Plus settings panel.","general.saveHint":"Changes apply when you press Save below.","reset.confirm":"Reset all settings to their defaults?","general.toasts":"Notifications","toasts.enabled":"Toast notifications","toasts.enabledDesc":"Show success and error popups for settings and translations.","toasts.position":"Position on screen","toasts.duration":"Auto-hide after (seconds)","toasts.durationDesc":"0 keeps notifications until dismissed.","toastPos.bottom-right":"Bottom right","toastPos.bottom-left":"Bottom left","toastPos.top-right":"Top right","toastPos.top-left":"Top left","translation.title":"Translation","translation.behavior":"Behavior","translation.desc":"Translate Steam content: descriptions, reviews, comments and news.","translation.enabled":"Translation enabled","translation.enabledDesc":"Master switch for the translation feature.","translation.provider":"Translation provider","translation.providerDesc":"Service used to translate texts.","provider.google-free":"Google (free)","translation.trigger":"Translation mode","translation.triggerDesc":"Translate automatically when content appears, or via a button.","trigger.auto":"Automatically","trigger.manual":"Via button","translation.display":"Translation display","translation.displayDesc":"Replace the original text or show the translation below it.","display.below":"Below original","display.replace":"Replace text","translation.targetLanguage":"Target language","translation.targetLanguageDesc":"Language to translate content into.","targetLanguage.auto":"Same as Steam / browser","translation.showCached":"Show saved translations instantly","translation.showCachedDesc":"If a translation is already cached, display it right away without pressing the button.","translation.scopes":"What to translate","translation.scopesDesc":"Choose which content types are translated.","scope.gameDescription":"Game descriptions","scope.gameReviews":"Game reviews","scope.profileComments":"Profile comments","scope.gameNews":"News and events","scope.newsArticle":"News article pages","scope.guides":"Guides","gamepage.title":"Game page","gamepage.desc":"Declutter Steam game pages: hide blocks you never read.","gamepage.enabled":"Hide game page blocks","gamepage.enabledDesc":"Master switch for hiding blocks on game pages.","gamepage.blocks":"Hidden blocks","gamepage.blocksDesc":"Choose which blocks to hide on game pages (store app pages).","block.media":"Screenshots & trailers","block.purchase":"Buy options & bundles","block.description":"About this game","block.dlc":"Content for this game (DLC)","block.sysreq":"System requirements","block.reviews":"User reviews","block.curators":"What curators say","block.events":"Events & announcements","block.details":"Details & sidebar info","block.recommendations":"Franchise & recommendations","block.sale":"Sale event banner","block.edition":"Edition & bundle contents","block.earlyaccess":"Early Access notice","gamepage.earlyAccess":"Early Access block","gamepage.earlyAccessDesc":"Show the full Early Access Q&A, keep only the slim header, or hide the block entirely.","earlyAccess.full":"Full","earlyAccess.compact":"Compact","earlyAccess.hidden":"Hidden","prices.title":"Regional prices","prices.desc":"Compare the game price across Steam store regions, right on the game page.","prices.enabled":"Regional prices enabled","prices.enabledDesc":"Master switch for the regional price comparison block.","prices.autoLoad":"Load prices automatically","prices.autoLoadDesc":"Off shows a load button on every game page instead.","prices.position":"Block position","prices.positionDesc":"Where the comparison block appears on game pages.","pricesPos.purchase":"Above buy options","pricesPos.sidebar":"Sidebar","pricesPos.description":"Below description","prices.sort":"Row order","prices.sortDesc":"Price order uses approximate exchange rates.","pricesSort.custom":"As listed","pricesSort.priceAsc":"Lowest price first","pricesSort.discountDesc":"Biggest discount first","prices.conversion":"Currency conversion","prices.conversionDesc":"Convert every price into one currency using live exchange rates.","prices.convertTo":"Display currency","prices.convertToDesc":"Auto uses the currency of the store you are browsing.","convertTo.auto":"Auto (your store currency)","convertTo.off":"Off (no conversion)","prices.showConverted":"Show converted price","prices.fxCache":"Rates cache lifetime","prices.fxCacheDesc":"How long exchange rates are reused before a fresh request.","fxTtl.1h":"1 hour","fxTtl.6h":"6 hours","fxTtl.24h":"24 hours","fxTtl.7d":"7 days","prices.fxCached":"Cached rates: {provider}, {date}","prices.fxCacheEmpty":"No cached rates yet — open any game page once.","prices.fxClear":"Clear rates cache","prices.regions":"Compared regions","prices.regionsDesc":"Store regions to fetch prices for (up to 24).","prices.display":"Display","prices.showOriginal":"Original price","prices.showDiscount":"Discount badge","prices.showSavings":"Savings vs your price","prices.highlightCheapest":"Highlight cheapest","prices.showHomeRow":"Your price row","prices.collapsed":"Start collapsed","prices.collapsedDesc":"Collapse the comparison block by default to save space; expand it with the header toggle.","prices.colRegion":"Region","prices.colPrice":"Price","prices.colDiscount":"Discount","prices.colSavings":"Savings","prices.yours":"Your price","prices.cheapest":"Lowest","prices.load":"Load prices","prices.loading":"Loading prices…","prices.retry":"Retry","prices.failed":"Could not load prices","prices.noRegions":"Select at least one region in settings","prices.updated":"Updated {time}","prices.refresh":"Refresh prices","prices.collapse":"Collapse block","prices.expand":"Expand block","prices.fxHint":"Exchange rates: {provider} ({date}).","links.title":"External links","links.desc":"Quick links to other stores and databases, right on the game page.","links.enabled":"External links enabled","links.enabledDesc":"Master switch for the external links block.","links.position":"Block position","links.positionDesc":"Where the links block appears on game pages.","links.newTab":"Open in new tab","links.newTabDesc":"Open external links in a new tab.","links.list":"Links","links.listDesc":"Links shown on game pages. Unresolvable templates are skipped.","links.templateHelp":"URL template: use {name} for the game title and {appid} for the Steam id — e.g. https://store.epicgames.com/en-US/browse?q={name} or https://steamdb.info/app/{appid}/","links.name":"Name","links.namePlaceholder":"GOG","links.url":"Link address","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Icon address (optional)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Add link","links.remove":"Remove this link","links.moveUp":"Move up","links.moveDown":"Move down","links.empty":"No links yet — add one below.","links.restore":"Restore defaults","links.preview":"Preview","links.open":"Open","dlc.title":"Add-on content","dlc.desc":"List every add-on of the game with its price and whether you already own it.","dlc.enabled":"Add-on content enabled","dlc.enabledDesc":"Master switch for the add-on content block.","dlc.position":"Block position","dlc.positionDesc":"Where the add-on list appears on game pages.","dlcPos.purchase":"Above buy options","dlcPos.sidebar":"Sidebar","dlcPos.description":"Below description","dlc.sort":"Row order","dlc.sortDesc":"“Not owned first” puts the add-ons you are missing on top.","dlcSort.missing":"Not owned first","dlcSort.store":"Steam order","dlc.display":"Display","dlc.collapsed":"Start collapsed","dlc.collapsedDesc":"Collapse the add-on list by default to save space; expand it with the header toggle.","dlc.showSummary":"Owned counter","dlc.showOwned":"List owned add-ons","dlc.showPrices":"Show prices","dlc.showThumbnails":"Add-on images","dlc.showReleaseDate":"Release dates","dlc.viewerSection":"Image viewer","dlc.viewer":"Enlarge on click","dlc.viewerDesc":"Click an add-on image to open the built-in viewer: fit to screen, zoom with the wheel or +/−, drag to move, rotate, ← → to browse every add-on, Esc to close.","dlc.viewerThumbnails":"Thumbnail strip","dlc.viewerLoop":"Wrap around","dlc.cache":"Add-on cache","dlc.cacheDesc":"Add-on data (names, prices, images, release dates) is cached for a day, your ownership for 30 minutes.","dlc.clearCache":"Clear add-on cache","dlc.cacheCleared":"Add-on cache cleared.","dlc.owned":"Owned","dlc.free":"Free","dlc.soon":"Coming soon","dlc.released":"Released","dlc.summary":"Owned {owned} of {total}","dlc.loading":"Loading add-ons…","dlc.loadingProgress":"Loading add-ons {done}/{total}…","dlc.failed":"Could not load the add-on list","dlc.retry":"Retry","dlc.refresh":"Refresh add-ons","dlc.collapse":"Collapse block","dlc.expand":"Expand block","dlc.updated":"Updated {time}","dlc.empty":"No add-on content","dlc.allOwned":"All add-ons are owned","dlc.loginHint":"Sign in to Steam to see which add-ons you own.","dlc.truncated":"Showing the first {count} add-ons","region.title":"Region bypass","region.desc":"Reload store pages blocked with “unavailable in your region” via an anonymous guest fetch (no account cookies).","region.enabled":"Region bypass enabled","region.enabledDesc":"Master switch for reloading blocked store pages.","region.showBanner":"Show notice banner","region.showBannerDesc":"Show a notice that the page was loaded via an anonymous guest fetch. Hidden by default; applies on the next reload.","region.mode":"On blocked pages","region.modeDesc":"Automatic replaces the error page immediately; manual shows an offer button first.","regionMode.auto":"Automatically","regionMode.manual":"Via button","region.country":"Store country (cc)","region.countryDesc":"Optional two-letter store country override for guest requests. Empty keeps your own country.","region.searchTitle":"Search","region.searchDesc":"Replace the store search box with Steam Plus search: guest-region results with review and price details.","region.searchEnabled":"Region search enabled","region.searchEnabledDesc":"Hide the native search box and show ours instead. Disabled keeps the Steam search untouched.","region.searchRows":"Result rows","region.searchRowsDesc":"How many games each overlay search shows.","region.searchNote":"Uses the store country and proxy gateway from this tab. With an empty country the guest results match your own, so no extra rows appear.","region.searchOpen":"Open region search","region.searchHotkey":"Tip: press / anywhere in the store to open the search.","region.proxy":"Proxy gateway","region.proxyDesc":"For IP-based locks: route the anonymous fetch through an HTTP gateway in an unrestricted region.","region.proxyEnabled":"Use proxy gateway","region.proxyMode":"Gateway mode","region.proxyModeDesc":"How the store URL is appended to host:port.","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"Host","region.proxyPort":"Port","region.proxyUser":"Username","region.proxyPass":"Password","region.bannerBadge":"Region blocked","region.bannerTitle":"This page is unavailable in your region","region.bannerBody":"Shown via anonymous guest fetch (no account cookies)","region.bannerViaProxy":"via proxy gateway","region.reload":"Reload","region.retry":"Retry","region.offer":"This page is blocked in your region. Load the store page without account cookies?","region.offerButton":"Show store page","region.loading":"Loading store page without account cookies…","region.errorBlocked":"Still blocked by IP/region. Enable a proxy gateway in settings and point it to an unrestricted region.","region.errorBlockedProxy":"Still blocked. The proxy IP is likely in a restricted region — try another exit node.","region.errorAgeGate":"Steam returned an age gate. Press Retry — birthtime cookies are sent automatically.","region.errorFailed":"Failed to load: {error}","search.guestTitle":"Found in another region ({country})","search.guestHint":"Missing from your store search — opens through the guest fetch.","search.title":"Search all regions","search.placeholder":"Search games in any region…","search.loading":"Searching…","search.empty":"No games found.","search.free":"Free","search.advanced":"Advanced search","cache.usage":"Storage usage","cache.contents":"Stored translations","cache.clear":"Clear cache","cache.cleared":"Cache cleared ({count})","cache.empty":"Cache is empty","cache.clearHint":"Removes all stored translations from this browser profile.","cache.listEmpty":"No stored translations yet — translate something and it will appear here.","cache.listMore":"…and {count} more","cache.removeEntry":"Remove this entry","cache.entries":"{count} entries","cache.used":"{used} in {count} entries","cache.free":"Free","cache.pct":"{pct}% full","about.blurb":"Improves Steam store and community pages: content translation with caching, and more to come.","about.repo":"GitHub","about.repoHint":"Source code, updates, and issue reports","backup.export":"Export","backup.exportDesc":"Save all current settings to a JSON file, or copy them to the clipboard.","backup.download":"Download file","backup.copy":"Copy to clipboard","backup.copied":"Settings copied to the clipboard.","backup.copyFailed":"Could not access the clipboard.","backup.import":"Import","backup.importDesc":"Load settings from a previously exported file. Current settings are overwritten.","backup.chooseFile":"Choose file…","backup.importConfirmTitle":"Import settings?","backup.importConfirm":"This overwrites all current settings with the values from the file.","backup.importDone":"Settings imported.","backup.importInvalid":"Not a settings file: nothing was changed.","toast.saved":"Settings saved","toast.rateLimited":"Translation throttled","toast.rateLimitedDesc":"Google is throttling requests right now. Blocks retry automatically — or press Retry later.","toast.translateFailed":"Translation failed","toast.translateFailedDesc":"Something went wrong. Press Retry on the block to try again.","toast.unknownProvider":"Unknown translation provider","toast.unknownProviderDesc":"Check the provider in settings and save again.","toast.cacheCleared":"Target language changed — translation cache cleared.","translate.button":"Translate","translate.original":"Original","translate.loading":"Translating...","translate.loadingShort":"Translating","translate.error":"Translation failed","translate.retry":"Retry","viewer.title":"Image viewer","viewer.close":"Close","viewer.prev":"Previous image","viewer.next":"Next image","viewer.zoomIn":"Zoom in","viewer.zoomOut":"Zoom out","viewer.reset":"Reset zoom and rotation","viewer.rotate":"Rotate","viewer.counter":"{current} / {total}","viewer.failed":"Could not load the image","viewer.open":"Open image","viewer.thumbs":"Images","viewer.hint":"Wheel or +/− to zoom · drag to move · ← → to browse · Esc to close","queue.addToWishlist":"Add to your wishlist","queue.onWishlist":"On Wishlist","queue.addedNotice":"Item added to your wishlist!","queue.oops":"Oops, sorry!","queue.follow":"Follow","queue.following":"Following","queue.ignore":"Ignore","queue.ignored":"Ignored","queue.viewQueue":"View Your Queue","queue.manageWishlist":"Manage your wishlist","queue.removeWishlist":"Remove from your wishlist","queue.ignoreDefault":"Ignore This (Default)","queue.ignoreDefaultSub":"Hide from store, ignore notifications, and don’t use this to generate other recommendations.","queue.playedElsewhere":"Played on Another Platform","queue.playedElsewhereSub":"Hide from store. Can be used to generate recommendations.","queue.actionFailed":"Could not save changes","queue.actionFailedDesc":"There was a problem saving your changes. Please try again later."},ru:{"menu.settings":"Настройки Steam Plus","tab.general":"Общие","tab.translation":"Перевод","tab.gamepage":"Страница игры","tab.prices":"Цены","tab.cache":"Кэш","tab.about":"О скрипте","tab.backup":"Бэкап","tab.general.desc":"Язык интерфейса и уведомления.","tab.translation.desc":"Перевод описаний, обзоров, комментариев и новостей.","tab.gamepage.desc":"Скрывайте лишние блоки на страницах игр.","tab.prices.desc":"Сравнение цен по регионам и конвертация валют.","tab.links":"Внешние ссылки","tab.links.desc":"Быстрые ссылки на другие магазины и базы данных.","tab.dlc":"Дополнения","tab.dlc.desc":"Список DLC с ценами и статусом покупки.","tab.region":"Регион","tab.region.desc":"Загрузка страниц магазина, заблокированных в вашем регионе.","tab.cache.desc":"Сохранённые переводы и занятое место.","tab.about.desc":"Версия, автор и исходный код.","tab.backup.desc":"Выгрузка настроек в файл и загрузка обратно.","panel.subtitle":"Перевод · страница игры · цены · ссылки · дополнения · регион · кэш · бэкап · интерфейс","panel.back":"Назад","common.on":"Вкл.","common.off":"Выкл.","common.auto":"Автоматически","common.close":"Закрыть","common.cancel":"Отмена","common.save":"Сохранить","common.reset":"Сбросить настройки","common.saved":"Сохранено","common.settings":"Настройки","general.language":"Язык интерфейса","general.languageDesc":"Язык панели настроек Steam Plus.","general.saveHint":"Изменения применятся после нажатия «Сохранить» внизу.","reset.confirm":"Сбросить все настройки к значениям по умолчанию?","general.toasts":"Уведомления","toasts.enabled":"Всплывающие уведомления","toasts.enabledDesc":"Показывать всплывающие уведомления об успехах и ошибках настроек и перевода.","toasts.position":"Положение на экране","toasts.duration":"Скрывать через (секунд)","toasts.durationDesc":"0 — не скрывать до закрытия вручную.","toastPos.bottom-right":"Справа внизу","toastPos.bottom-left":"Слева внизу","toastPos.top-right":"Справа вверху","toastPos.top-left":"Слева вверху","translation.title":"Перевод","translation.behavior":"Поведение","translation.desc":"Перевод контента Steam: описаний, отзывов, комментариев и новостей.","translation.enabled":"Перевод включён","translation.enabledDesc":"Глобальный переключатель функции перевода.","translation.provider":"Провайдер перевода","translation.providerDesc":"Сервис, используемый для перевода текстов.","provider.google-free":"Google (бесплатный)","translation.trigger":"Режим перевода","translation.triggerDesc":"Переводить автоматически при появлении контента или по кнопке.","trigger.auto":"Автоматически","trigger.manual":"По кнопке","translation.display":"Отображение перевода","translation.displayDesc":"Заменять оригинальный текст или показывать перевод под ним.","display.below":"Под оригиналом","display.replace":"Заменять текст","translation.targetLanguage":"Язык перевода","translation.targetLanguageDesc":"На какой язык переводить контент.","targetLanguage.auto":"Как в Steam / браузере","translation.showCached":"Сразу показывать сохранённые переводы","translation.showCachedDesc":"Если перевод уже есть в кэше, показать его сразу без нажатия кнопки.","translation.scopes":"Что переводить","translation.scopesDesc":"Выберите типы контента, которые нужно переводить.","scope.gameDescription":"Описания игр","scope.gameReviews":"Отзывы к играм","scope.profileComments":"Комментарии в профиле","scope.gameNews":"Новости и события","scope.newsArticle":"Страницы новостей","scope.guides":"Руководства","gamepage.title":"Страница игры","gamepage.desc":"Наведите порядок на страницах игр Steam: скрывайте ненужные блоки.","gamepage.enabled":"Скрывать блоки страницы игры","gamepage.enabledDesc":"Главный переключатель скрытия блоков на страницах игр.","gamepage.blocks":"Скрытые блоки","gamepage.blocksDesc":"Выберите блоки, которые нужно скрывать на страницах игр (страницы приложений магазина).","block.media":"Скриншоты и трейлеры","block.purchase":"Варианты покупки и наборы","block.description":"Об игре","block.dlc":"Контент для игры (DLC)","block.sysreq":"Системные требования","block.reviews":"Отзывы пользователей","block.curators":"Мнение кураторов","block.events":"События и анонсы","block.details":"Детали и боковая панель","block.recommendations":"Франшиза и рекомендации","block.sale":"Баннер события распродажи","block.edition":"Состав изданий и комплектов","block.earlyaccess":"Плашка раннего доступа","gamepage.earlyAccess":"Блок раннего доступа","gamepage.earlyAccessDesc":"Показывать полные ответы разработчиков, оставить только компактный заголовок или скрыть блок целиком.","earlyAccess.full":"Полный","earlyAccess.compact":"Компактный","earlyAccess.hidden":"Скрыт","prices.title":"Региональные цены","prices.desc":"Сравнивайте цену игры в разных регионах Steam прямо на странице игры.","prices.enabled":"Региональные цены включены","prices.enabledDesc":"Главный переключатель блока сравнения региональных цен.","prices.autoLoad":"Загружать цены автоматически","prices.autoLoadDesc":"Если выключено, на каждой странице игры будет кнопка загрузки.","prices.position":"Положение блока","prices.positionDesc":"Где показывать блок сравнения на страницах игр.","pricesPos.purchase":"Над вариантами покупки","pricesPos.sidebar":"Боковая панель","pricesPos.description":"Под описанием","prices.sort":"Порядок строк","prices.sortDesc":"Порядок по цене использует примерные курсы валют.","pricesSort.custom":"Как в списке","pricesSort.priceAsc":"Сначала дешевле","pricesSort.discountDesc":"Сначала больше скидка","prices.conversion":"Конвертация валют","prices.conversionDesc":"Пересчитывать все цены в одну валюту по живому курсу.","prices.convertTo":"Валюта отображения","prices.convertToDesc":"Авто — валюта магазина, который вы просматриваете.","convertTo.auto":"Авто (валюта вашего магазина)","convertTo.off":"Выкл (без конвертации)","prices.showConverted":"Показывать цену в пересчёте","prices.fxCache":"Время жизни кэша курсов","prices.fxCacheDesc":"Как долго переиспользовать курсы валют до нового запроса.","fxTtl.1h":"1 час","fxTtl.6h":"6 часов","fxTtl.24h":"24 часа","fxTtl.7d":"7 дней","prices.fxCached":"Кэш курсов: {provider}, {date}","prices.fxCacheEmpty":"Кэша курсов пока нет — откройте любую страницу игры.","prices.fxClear":"Очистить кэш курсов","prices.regions":"Сравниваемые регионы","prices.regionsDesc":"Регионы магазина, для которых загружать цены (до 24).","prices.display":"Отображение","prices.showOriginal":"Исходная цена","prices.showDiscount":"Бейдж скидки","prices.showSavings":"Выгода относительно вашей цены","prices.highlightCheapest":"Выделять дешевле всего","prices.showHomeRow":"Строка вашей цены","prices.collapsed":"Сворачивать по умолчанию","prices.collapsedDesc":"Блок сравнения свёрнут по умолчанию, чтобы занимать меньше места; разворачивается кнопкой в заголовке.","prices.colRegion":"Регион","prices.colPrice":"Цена","prices.colDiscount":"Скидка","prices.colSavings":"Выгода","prices.yours":"Ваша цена","prices.cheapest":"Дешевле всего","prices.load":"Загрузить цены","prices.loading":"Загрузка цен…","prices.retry":"Повторить","prices.failed":"Не удалось загрузить цены","prices.noRegions":"Выберите хотя бы один регион в настройках","prices.updated":"Обновлено в {time}","prices.refresh":"Обновить цены","prices.collapse":"Свернуть блок","prices.expand":"Развернуть блок","prices.fxHint":"Курсы валют: {provider} ({date}).","links.title":"Внешние ссылки","links.desc":"Быстрые ссылки на другие магазины и базы данных прямо на странице игры.","links.enabled":"Внешние ссылки включены","links.enabledDesc":"Главный переключатель блока внешних ссылок.","links.position":"Положение блока","links.positionDesc":"Где показывать блок ссылок на страницах игр.","links.newTab":"Открывать в новой вкладке","links.newTabDesc":"Открывать внешние ссылки в новой вкладке.","links.list":"Ссылки","links.listDesc":"Ссылки на страницах игр. Нерабочие шаблоны пропускаются.","links.templateHelp":"Шаблон адреса: {name} — название игры, {appid} — id в Steam. Например: https://store.epicgames.com/en-US/browse?q={name} или https://steamdb.info/app/{appid}/","links.name":"Название","links.namePlaceholder":"GOG","links.url":"Адрес ссылки","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Адрес иконки (необязательно)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Добавить ссылку","links.remove":"Удалить ссылку","links.moveUp":"Переместить выше","links.moveDown":"Переместить ниже","links.empty":"Пока нет ссылок — добавьте ниже.","links.restore":"Вернуть стандартные","links.preview":"Предпросмотр","links.open":"Открыть","dlc.title":"Контент для игры (DLC)","dlc.desc":"Показывает все дополнения игры, их цену и то, куплены ли они у вас.","dlc.enabled":"Контент для игры (DLC) включён","dlc.enabledDesc":"Главный переключатель блока дополнений.","dlc.position":"Положение блока","dlc.positionDesc":"Где показывать список дополнений на страницах игр.","dlcPos.purchase":"Над вариантами покупки","dlcPos.sidebar":"Боковая панель","dlcPos.description":"Под описанием","dlc.sort":"Порядок строк","dlc.sortDesc":"«Сначала не купленные» поднимает наверх дополнения, которых у вас нет.","dlcSort.missing":"Сначала не купленные","dlcSort.store":"Порядок Steam","dlc.display":"Отображение","dlc.collapsed":"Сворачивать по умолчанию","dlc.collapsedDesc":"Список дополнений свёрнут по умолчанию, чтобы занимать меньше места; разворачивается кнопкой в заголовке.","dlc.showSummary":"Счётчик купленных","dlc.showOwned":"Показывать купленные дополнения","dlc.showPrices":"Показывать цены","dlc.showThumbnails":"Изображения дополнений","dlc.showReleaseDate":"Даты выхода","dlc.viewerSection":"Просмотр изображений","dlc.viewer":"Увеличивать по клику","dlc.viewerDesc":"Нажмите на изображение дополнения, чтобы открыть встроенный просмотрщик: по размеру экрана, масштаб колесом или +/−, перетаскивание для сдвига, поворот, ← → для перехода между дополнениями, Esc для закрытия.","dlc.viewerThumbnails":"Полоса миниатюр","dlc.viewerLoop":"Зациклить","dlc.cache":"Кэш дополнений","dlc.cacheDesc":"Данные дополнений (названия, цены, изображения, даты выхода) кэшируются на сутки, данные о покупке — на 30 минут.","dlc.clearCache":"Очистить кэш дополнений","dlc.cacheCleared":"Кэш дополнений очищен.","dlc.owned":"Куплено","dlc.free":"Бесплатно","dlc.soon":"Скоро","dlc.released":"Вышло","dlc.summary":"Куплено {owned} из {total}","dlc.loading":"Загрузка дополнений…","dlc.loadingProgress":"Загрузка дополнений {done}/{total}…","dlc.failed":"Не удалось загрузить список дополнений","dlc.retry":"Повторить","dlc.refresh":"Обновить дополнения","dlc.collapse":"Свернуть блок","dlc.expand":"Развернуть блок","dlc.updated":"Обновлено в {time}","dlc.empty":"Дополнений нет","dlc.allOwned":"Все дополнения куплены","dlc.loginHint":"Войдите в Steam, чтобы увидеть, какие дополнения у вас куплены.","dlc.truncated":"Показаны первые {count} дополнений","region.title":"Обход блокировки","region.desc":"Перезагрузка страниц магазина с ошибкой «недоступно в вашем регионе» через анонимный гостевой запрос (без cookies аккаунта).","region.enabled":"Обход блокировки включён","region.enabledDesc":"Главный переключатель перезагрузки заблокированных страниц.","region.showBanner":"Показывать плашку-уведомление","region.showBannerDesc":"Показывает, что страница загружена через анонимный гостевой запрос. По умолчанию скрыта; применяется после перезагрузки.","region.mode":"На заблокированных страницах","region.modeDesc":"Авто сразу заменяет страницу ошибки; вручную — сначала показывает кнопку.","regionMode.auto":"Автоматически","regionMode.manual":"По кнопке","region.country":"Страна магазина (cc)","region.countryDesc":"Необязательный двухбуквенный код страны для гостевых запросов. Пусто — ваша страна.","region.searchTitle":"Поиск","region.searchDesc":"Заменяет строку поиска магазина поиском Steam Plus: гостевая выдача с оценками и ценами.","region.searchEnabled":"Поиск по регионам включен","region.searchEnabledDesc":"Скрывает нативный поиск и показывает наш. Выключено — поиск Steam не тронут.","region.searchRows":"Строк в выдаче","region.searchRowsDesc":"Сколько игр показывает каждый поиск в оверлее.","region.searchNote":"Используются страна магазина и прокси-шлюз с этой вкладки. С пустой страной гостевая выдача совпадает с вашей, и дополнительных строк не будет.","region.searchOpen":"Открыть поиск по регионам","region.searchHotkey":"Подсказка: нажмите / в любом месте магазина, чтобы открыть поиск.","region.proxy":"Прокси-шлюз","region.proxyDesc":"При IP-блокировке: направлять анонимный запрос через HTTP-шлюз в открытом регионе.","region.proxyEnabled":"Использовать прокси-шлюз","region.proxyMode":"Режим шлюза","region.proxyModeDesc":"Как адрес магазина добавляется к host:port.","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"Хост","region.proxyPort":"Порт","region.proxyUser":"Имя пользователя","region.proxyPass":"Пароль","region.bannerBadge":"Регион заблокирован","region.bannerTitle":"Страница недоступна в вашем регионе","region.bannerBody":"Показано через анонимный гостевой запрос (без cookies аккаунта)","region.bannerViaProxy":"через прокси-шлюз","region.reload":"Обновить","region.retry":"Повторить","region.offer":"Страница заблокирована в вашем регионе. Загрузить её без cookies аккаунта?","region.offerButton":"Показать страницу","region.loading":"Загрузка страницы без cookies аккаунта…","region.errorBlocked":"Всё ещё заблокировано по IP/региону. Включите прокси-шлюз и направьте его в открытый регион.","region.errorBlockedProxy":"Всё ещё заблокировано. IP прокси, вероятно, тоже в закрытом регионе — попробуйте другую точку выхода.","region.errorAgeGate":"Steam показал проверку возраста. Нажмите «Повторить» — cookies возраста отправляются автоматически.","region.errorFailed":"Не удалось загрузить: {error}","search.guestTitle":"Найдено в другом регионе ({country})","search.guestHint":"Нет в поиске вашего региона — откроется через гостевую загрузку.","search.title":"Поиск по всем регионам","search.placeholder":"Поиск игр в любом регионе…","search.loading":"Ищем…","search.empty":"Игры не найдены.","search.free":"Бесплатно","search.advanced":"Расширенный поиск","cache.usage":"Использование хранилища","cache.contents":"Сохранённые переводы","cache.clear":"Очистить кэш","cache.cleared":"Кэш очищен ({count})","cache.empty":"Кэш пуст","cache.clearHint":"Удаляет все сохранённые переводы из этого браузера.","cache.listEmpty":"Пока нет сохранённых переводов — переведите что-нибудь, и оно появится здесь.","cache.listMore":"…и ещё {count}","cache.removeEntry":"Удалить эту запись","cache.entries":"Записей: {count}","cache.used":"{used} в {count} записях","cache.free":"Свободно","cache.pct":"Заполнено на {pct}%","about.blurb":"Улучшает страницы магазина и сообщества Steam: перевод контента с кэшированием, дальше — больше.","about.repo":"GitHub","about.repoHint":"Исходный код, обновления и сообщения об ошибках","backup.export":"Экспорт","backup.exportDesc":"Сохраните текущие настройки в JSON-файл или скопируйте их в буфер обмена.","backup.download":"Скачать файл","backup.copy":"Скопировать","backup.copied":"Настройки скопированы в буфер обмена.","backup.copyFailed":"Не удалось получить доступ к буферу обмена.","backup.import":"Импорт","backup.importDesc":"Загрузите настройки из ранее выгруженного файла. Текущие настройки будут перезаписаны.","backup.chooseFile":"Выбрать файл…","backup.importConfirmTitle":"Импортировать настройки?","backup.importConfirm":"Текущие настройки будут заменены значениями из файла.","backup.importDone":"Настройки импортированы.","backup.importInvalid":"Это не файл настроек: ничего не изменено.","toast.saved":"Настройки сохранены","toast.rateLimited":"Перевод временно ограничен","toast.rateLimitedDesc":"Google временно ограничивает запросы. Блоки повторят попытку сами — или нажмите «Повторить» позже.","toast.translateFailed":"Ошибка перевода","toast.translateFailedDesc":"Что-то пошло не так. Нажмите «Повторить» на блоке.","toast.unknownProvider":"Неизвестный провайдер перевода","toast.unknownProviderDesc":"Проверьте провайдер в настройках и сохраните снова.","toast.cacheCleared":"Язык перевода изменён — кэш переводов очищен.","translate.button":"Перевести","translate.original":"Оригинал","translate.loading":"Перевод…","translate.loadingShort":"Перевод","translate.error":"Ошибка перевода","translate.retry":"Повторить","viewer.title":"Просмотрщик изображений","viewer.close":"Закрыть","viewer.prev":"Предыдущее изображение","viewer.next":"Следующее изображение","viewer.zoomIn":"Увеличить","viewer.zoomOut":"Уменьшить","viewer.reset":"Сбросить масштаб и поворот","viewer.rotate":"Повернуть","viewer.counter":"{current} / {total}","viewer.failed":"Не удалось загрузить изображение","viewer.open":"Открыть изображение","viewer.thumbs":"Изображения","viewer.hint":"Колесо или +/− для масштаба · перетаскивание для сдвига · ← → для перехода · Esc для закрытия","queue.addToWishlist":"Добавить в желаемое","queue.onWishlist":"В желаемом","queue.addedNotice":"Игра добавлена в желаемое!","queue.oops":"Упс, извините!","queue.follow":"Отслеживать","queue.following":"Отслеживается","queue.ignore":"Игнорировать","queue.ignored":"Игнорируется","queue.viewQueue":"Посмотреть очередь","queue.manageWishlist":"Управление списком желаемого","queue.removeWishlist":"Убрать из желаемого","queue.ignoreDefault":"Игнорировать (по умолчанию)","queue.ignoreDefaultSub":"Скрыть из магазина, отключить уведомления и не использовать для рекомендаций.","queue.playedElsewhere":"Играл на другой платформе","queue.playedElsewhereSub":"Скрыть из магазина. Может использоваться для рекомендаций.","queue.actionFailed":"Не удалось сохранить изменения","queue.actionFailedDesc":"Возникла проблема при сохранении изменений. Попробуйте позже."},de:{"menu.settings":"Einstellungen Steam Plus","tab.general":"Allgemein","tab.translation":"Übersetzung","tab.gamepage":"Spielseite","tab.prices":"Preise","tab.cache":"Cache","tab.about":"Über das Skript","tab.backup":"Backup","tab.general.desc":"Oberflächensprache und Benachrichtigungen.","tab.translation.desc":"Beschreibungen, Rezensionen, Kommentare und News übersetzen.","tab.gamepage.desc":"Unerwünschte Blöcke auf Spieleseiten ausblenden.","tab.prices.desc":"Regionale Preise vergleichen und Währung umrechnen.","tab.links":"Externe Links","tab.links.desc":"Schnellzugriff auf andere Shops und Datenbanken.","tab.dlc":"Zusatzinhalte","tab.dlc.desc":"Liste der Zusatzinhalte mit Preisen und Besitzstatus.","tab.region":"Region","tab.region.desc":"In deiner Region blockierte Store-Seiten laden.","tab.cache.desc":"Gespeicherte Übersetzungen und Speichernutzung.","tab.about.desc":"Version, Autor und Quellcode.","tab.backup.desc":"Einstellungen in eine Datei exportieren und wieder importieren.","panel.subtitle":"Übersetzung · Spielseite · Preise · Links · Zusatzinhalte · Region · Cache · Backup · Oberfläche","panel.back":"Zurück","common.on":"Ein","common.off":"Aus","common.auto":"Automatisch","common.close":"Schließen","common.cancel":"Abbrechen","common.save":"Speichern","common.reset":"Auf Standard zurücksetzen","common.saved":"Gespeichert","common.settings":"Einstellungen","general.language":"Sprache der Oberfläche","general.languageDesc":"Sprache des Steam-Plus-Einstellungsbereichs.","general.saveHint":"Änderungen werden nach einem Klick auf Speichern übernommen.","reset.confirm":"Alle Einstellungen auf die Standardwerte zurücksetzen?","general.toasts":"Benachrichtigungen","toasts.enabled":"Popup-Benachrichtigungen","toasts.enabledDesc":"Erfolgs- und Fehlermeldungen für Einstellungen und Übersetzungen anzeigen.","toasts.position":"Position auf dem Bildschirm","toasts.duration":"Automatisch ausblenden nach (Sekunden)","toasts.durationDesc":"0 = bleibt, bis es geschlossen wird.","toastPos.bottom-right":"Unten rechts","toastPos.bottom-left":"Unten links","toastPos.top-right":"Oben rechts","toastPos.top-left":"Oben links","translation.title":"Übersetzung","translation.behavior":"Verhalten","translation.desc":"Übersetzung von Steam-Inhalten: Beschreibungen, Rezensionen, Kommentare und Neuigkeiten.","translation.enabled":"Übersetzung aktiv","translation.enabledDesc":"Hauptschalter der Übersetzungsfunktion.","translation.provider":"Übersetzungsanbieter","translation.providerDesc":"Dienst, der zum Übersetzen der Texte verwendet wird.","provider.google-free":"Google (kostenlos)","translation.trigger":"Übersetzungsmodus","translation.triggerDesc":"Automatisch beim Erscheinen von Inhalten oder per Schaltfläche übersetzen.","trigger.auto":"Automatisch","trigger.manual":"Per Schaltfläche","translation.display":"Anzeige der Übersetzung","translation.displayDesc":"Originaltext ersetzen oder die Übersetzung darunter anzeigen.","display.below":"Unter dem Original","display.replace":"Text ersetzen","translation.targetLanguage":"Zielsprache","translation.targetLanguageDesc":"In welche Sprache der Inhalt übersetzt wird.","targetLanguage.auto":"Wie Steam / Browser","translation.showCached":"Gespeicherte Übersetzungen sofort anzeigen","translation.showCachedDesc":"Liegt eine Übersetzung bereits im Cache, wird sie ohne Klick angezeigt.","translation.scopes":"Was übersetzt wird","translation.scopesDesc":"Wählen Sie die Inhaltstypen aus, die übersetzt werden sollen.","scope.gameDescription":"Spielbeschreibungen","scope.gameReviews":"Spieler-Rezensionen","scope.profileComments":"Profilkommentare","scope.gameNews":"Neuigkeiten und Events","scope.newsArticle":"Nachrichtenseiten","scope.guides":"Anleitungen","gamepage.title":"Spielseite","gamepage.desc":"Steam-Spielseiten aufräumen: Blöcke ausblenden, die du nie liest.","gamepage.enabled":"Blöcke der Spielseite ausblenden","gamepage.enabledDesc":"Hauptschalter zum Ausblenden von Blöcken auf Spielseiten.","gamepage.blocks":"Ausgeblendete Blöcke","gamepage.blocksDesc":"Wähle, welche Blöcke auf Spielseiten (Store-App-Seiten) ausgeblendet werden.","block.media":"Screenshots & Trailer","block.purchase":"Kaufoptionen & Bundles","block.description":"Über dieses Spiel","block.dlc":"Inhalte für dieses Spiel (DLC)","block.sysreq":"Systemanforderungen","block.reviews":"Nutzerrezensionen","block.curators":"Was Kuratoren sagen","block.events":"Events & Ankündigungen","block.details":"Details & Seitenleiste","block.recommendations":"Franchise & Empfehlungen","block.sale":"Sale-Event-Banner","block.edition":"Inhalte von Editionen & Paketen","block.earlyaccess":"Early-Access-Hinweis","gamepage.earlyAccess":"Early-Access-Block","gamepage.earlyAccessDesc":"Vollständige Early-Access-Fragen zeigen, nur die kompakte Kopfzeile behalten oder den Block ganz ausblenden.","earlyAccess.full":"Voll","earlyAccess.compact":"Kompakt","earlyAccess.hidden":"Ausgeblendet","prices.title":"Regionale Preise","prices.desc":"Vergleiche den Spielpreis über Steam-Store-Regionen direkt auf der Spielseite.","prices.enabled":"Regionale Preise aktiviert","prices.enabledDesc":"Hauptschalter für den regionalen Preisvergleich.","prices.autoLoad":"Preise automatisch laden","prices.autoLoadDesc":"Aus zeigt stattdessen eine Lade-Schaltfläche auf jeder Spielseite.","prices.position":"Blockposition","prices.positionDesc":"Wo der Vergleichsblock auf Spielseiten erscheint.","pricesPos.purchase":"Über den Kaufoptionen","pricesPos.sidebar":"Seitenleiste","pricesPos.description":"Unter der Beschreibung","prices.sort":"Zeilenfolge","prices.sortDesc":"Die Preisreihenfolge nutzt ungefähre Wechselkurse.","pricesSort.custom":"Wie aufgelistet","pricesSort.priceAsc":"Günstigste zuerst","pricesSort.discountDesc":"Größter Rabatt zuerst","prices.conversion":"Währungsumrechnung","prices.conversionDesc":"Alle Preise mit Live-Wechselkursen in eine Währung umrechnen.","prices.convertTo":"Anzeigewährung","prices.convertToDesc":"Auto nutzt die Währung des geöffneten Stores.","convertTo.auto":"Auto (deine Store-Währung)","convertTo.off":"Aus (keine Umrechnung)","prices.showConverted":"Umrechnung anzeigen","prices.fxCache":"Cache-Dauer der Kurse","prices.fxCacheDesc":"Wie lange Wechselkurse wiederverwendet werden, bevor sie neu geladen werden.","fxTtl.1h":"1 Stunde","fxTtl.6h":"6 Stunden","fxTtl.24h":"24 Stunden","fxTtl.7d":"7 Tage","prices.fxCached":"Gespeicherte Kurse: {provider}, {date}","prices.fxCacheEmpty":"Noch keine gespeicherten Kurse — öffne einmal eine Spielseite.","prices.fxClear":"Kurs-Cache leeren","prices.regions":"Verglichene Regionen","prices.regionsDesc":"Store-Regionen, für die Preise geladen werden (bis zu 24).","prices.display":"Anzeige","prices.showOriginal":"Originalpreis","prices.showDiscount":"Rabatt-Badge","prices.showSavings":"Ersparnis ggü. deinem Preis","prices.highlightCheapest":"Günstigste hervorheben","prices.showHomeRow":"Eigene Preiszeile","prices.collapsed":"Standardmäßig eingeklappt","prices.collapsedDesc":"Der Vergleichsblock startet eingeklappt und spart Platz; per Schalter in der Kopfzeile aufklappen.","prices.colRegion":"Region","prices.colPrice":"Preis","prices.colDiscount":"Rabatt","prices.colSavings":"Ersparnis","prices.yours":"Dein Preis","prices.cheapest":"Günstigste","prices.load":"Preise laden","prices.loading":"Preise werden geladen…","prices.retry":"Wiederholen","prices.failed":"Preise konnten nicht geladen werden","prices.noRegions":"Wähle mindestens eine Region in den Einstellungen","prices.updated":"Aktualisiert {time}","prices.refresh":"Preise aktualisieren","prices.collapse":"Block einklappen","prices.expand":"Block aufklappen","prices.fxHint":"Wechselkurse: {provider} ({date}).","links.title":"Externe Links","links.desc":"Schnellzugriff auf andere Shops und Datenbanken direkt auf der Spielseite.","links.enabled":"Externe Links aktiviert","links.enabledDesc":"Hauptschalter für den Block externer Links.","links.position":"Blockposition","links.positionDesc":"Wo der Links-Block auf Spielseiten erscheint.","links.newTab":"In neuem Tab öffnen","links.newTabDesc":"Externe Links in einem neuen Tab öffnen.","links.list":"Links","links.listDesc":"Links auf Spielseiten. Unauflösbare Vorlagen werden übersprungen.","links.templateHelp":"URL-Vorlage: {name} für den Spieltitel, {appid} für die Steam-ID — z. B. https://store.epicgames.com/en-US/browse?q={name} oder https://steamdb.info/app/{appid}/","links.name":"Name","links.namePlaceholder":"GOG","links.url":"Linkadresse","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Symboladresse (optional)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Link hinzufügen","links.remove":"Diesen Link entfernen","links.moveUp":"Nach oben","links.moveDown":"Nach unten","links.empty":"Noch keine Links — unten hinzufügen.","links.restore":"Standards wiederherstellen","links.preview":"Vorschau","links.open":"Öffnen","dlc.title":"Zusatzinhalte","dlc.desc":"Listet alle Zusatzinhalte des Spiels mit Preis und ob du sie bereits besitzt.","dlc.enabled":"Zusatzinhalte aktiviert","dlc.enabledDesc":"Hauptschalter für den Zusatzinhalte-Block.","dlc.position":"Blockposition","dlc.positionDesc":"Wo die Liste der Zusatzinhalte auf Spielseiten erscheint.","dlcPos.purchase":"Über den Kaufoptionen","dlcPos.sidebar":"Seitenleiste","dlcPos.description":"Unter der Beschreibung","dlc.sort":"Zeilenfolge","dlc.sortDesc":"„Nicht im Besitz zuerst“ setzt die fehlenden Zusatzinhalte nach oben.","dlcSort.missing":"Nicht im Besitz zuerst","dlcSort.store":"Steam-Reihenfolge","dlc.display":"Anzeige","dlc.collapsed":"Standardmäßig eingeklappt","dlc.collapsedDesc":"Die Zusatzinhalte-Liste startet eingeklappt und spart Platz; per Schalter in der Kopfzeile aufklappen.","dlc.showSummary":"Besitz-Zähler","dlc.showOwned":"Zusatzinhalte im Besitz auflisten","dlc.showPrices":"Preise anzeigen","dlc.showThumbnails":"Bilder der Zusatzinhalte","dlc.showReleaseDate":"Veröffentlichungsdaten","dlc.viewerSection":"Bildbetrachter","dlc.viewer":"Zum Vergrößern klicken","dlc.viewerDesc":"Klicke auf ein Bild eines Zusatzinhalts, um den integrierten Betrachter zu öffnen: ans Bildschirmformat anpassen, mit dem Mausrad oder +/− zoomen, ziehen zum Verschieben, drehen, ← → zum Durchblättern aller Zusatzinhalte, Esc zum Schließen.","dlc.viewerThumbnails":"Miniaturansichtsleiste","dlc.viewerLoop":"Umlaufend","dlc.cache":"Zusatzinhalte-Cache","dlc.cacheDesc":"Daten der Zusatzinhalte (Namen, Preise, Bilder, Veröffentlichungsdaten) werden einen Tag lang zwischengespeichert, dein Besitz 30 Minuten.","dlc.clearCache":"Zusatzinhalte-Cache leeren","dlc.cacheCleared":"Zusatzinhalte-Cache geleert.","dlc.owned":"Im Besitz","dlc.free":"Kostenlos","dlc.soon":"Demnächst verfügbar","dlc.released":"Veröffentlicht","dlc.summary":"{owned} von {total} im Besitz","dlc.loading":"Zusatzinhalte werden geladen…","dlc.loadingProgress":"Zusatzinhalte werden geladen {done}/{total}…","dlc.failed":"Zusatzinhalte konnten nicht geladen werden","dlc.retry":"Wiederholen","dlc.refresh":"Zusatzinhalte aktualisieren","dlc.collapse":"Block einklappen","dlc.expand":"Block aufklappen","dlc.updated":"Aktualisiert {time}","dlc.empty":"Keine Zusatzinhalte","dlc.allOwned":"Alle Zusatzinhalte sind im Besitz","dlc.loginHint":"Melde dich bei Steam an, um zu sehen, welche Zusatzinhalte du besitzt.","dlc.truncated":"Es werden die ersten {count} Zusatzinhalte angezeigt","region.title":"Regionsperre umgehen","region.desc":"Store-Seiten mit „in deiner Region nicht verfügbar“ per anonymer Gastanfrage neu laden (ohne Account-Cookies).","region.enabled":"Regionsperre umgehen","region.enabledDesc":"Hauptschalter zum Neuladen blockierter Store-Seiten.","region.showBanner":"Hinweisbanner anzeigen","region.showBannerDesc":"Zeigt, dass die Seite per anonymer Gastanfrage geladen wurde. Standardmäßig verborgen; greift ab dem nächsten Neuladen.","region.mode":"Auf blockierten Seiten","region.modeDesc":"Automatisch ersetzt die Fehlerseite sofort; manuell zeigt zuerst eine Schaltfläche.","regionMode.auto":"Automatisch","regionMode.manual":"Per Knopf","region.country":"Store-Land (cc)","region.countryDesc":"Optionale zweibuchstabige Länderkennung für Gastanfragen. Leer lässt dein Land.","region.searchTitle":"Suche","region.searchDesc":"Ersetzt das Store-Suchfeld durch die Steam-Plus-Suche: Gast-Ergebnisse mit Wertungen und Preisen.","region.searchEnabled":"Regionale Suche aktiviert","region.searchEnabledDesc":"Blendet die native Suche aus und zeigt unsere. Deaktiviert lässt die Steam-Suche unberührt.","region.searchRows":"Ergebniszeilen","region.searchRowsDesc":"Wie viele Spiele jede Overlay-Suche zeigt.","region.searchNote":"Nutzt Store-Land und Proxy-Gateway aus diesem Tab. Bei leerem Land entspricht das Gastergebnis deinem eigenen, es erscheinen keine Extra-Zeilen.","region.searchOpen":"Regionale Suche öffnen","region.searchHotkey":"Tipp: Drücke / irgendwo im Store, um die Suche zu öffnen.","region.proxy":"Proxy-Gateway","region.proxyDesc":"Bei IP-Sperren: die anonyme Anfrage über ein HTTP-Gateway in einer freien Region leiten.","region.proxyEnabled":"Proxy-Gateway verwenden","region.proxyMode":"Gateway-Modus","region.proxyModeDesc":"Wie die Store-URL an Host:Port angehängt wird.","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"Host","region.proxyPort":"Port","region.proxyUser":"Benutzername","region.proxyPass":"Passwort","region.bannerBadge":"Region blockiert","region.bannerTitle":"Diese Seite ist in deiner Region nicht verfügbar","region.bannerBody":"Per anonymer Gastanfrage gezeigt (ohne Account-Cookies)","region.bannerViaProxy":"über Proxy-Gateway","region.reload":"Neu laden","region.retry":"Wiederholen","region.offer":"Diese Seite ist in deiner Region blockiert. Store-Seite ohne Account-Cookies laden?","region.offerButton":"Store-Seite anzeigen","region.loading":"Store-Seite wird ohne Account-Cookies geladen…","region.errorBlocked":"Weiterhin per IP/Region blockiert. Aktiviere ein Proxy-Gateway in eine freie Region.","region.errorBlockedProxy":"Weiterhin blockiert. Die Proxy-IP liegt wohl ebenfalls in einer Sperrregion — versuche einen anderen Exit-Knoten.","region.errorAgeGate":"Steam zeigt eine Altersprüfung. Drücke Wiederholen — Alters-Cookies werden automatisch gesendet.","region.errorFailed":"Laden fehlgeschlagen: {error}","search.guestTitle":"In einer anderen Region gefunden ({country})","search.guestHint":"Fehlt in deiner Storesuche — wird per Gastabruf geöffnet.","search.title":"Alle Regionen durchsuchen","search.placeholder":"Spiele in jeder Region suchen…","search.loading":"Suche…","search.empty":"Keine Spiele gefunden.","search.free":"Kostenlos","search.advanced":"Erweiterte Suche","cache.usage":"Speichernutzung","cache.contents":"Gespeicherte Übersetzungen","cache.clear":"Cache leeren","cache.cleared":"Cache geleert ({count})","cache.empty":"Cache ist leer","cache.clearHint":"Entfernt alle gespeicherten Übersetzungen aus diesem Browserprofil.","cache.listEmpty":"Noch keine gespeicherten Übersetzungen — übersetzen Sie etwas, dann erscheint es hier.","cache.listMore":"…und {count} weitere","cache.removeEntry":"Diesen Eintrag entfernen","cache.entries":"{count} Einträge","cache.used":"{used} in {count} Einträgen","cache.free":"Frei","cache.pct":"{pct} % voll","about.blurb":"Verbessert Steam-Shop- und Community-Seiten: Inhaltsübersetzung mit Cache, vieles mehr ist geplant.","about.repo":"GitHub","about.repoHint":"Quellcode, Updates und Fehlermeldungen","backup.export":"Export","backup.exportDesc":"Alle aktuellen Einstellungen in einer JSON-Datei speichern oder in die Zwischenablage kopieren.","backup.download":"Datei herunterladen","backup.copy":"In Zwischenablage kopieren","backup.copied":"Einstellungen in die Zwischenablage kopiert.","backup.copyFailed":"Kein Zugriff auf die Zwischenablage.","backup.import":"Import","backup.importDesc":"Einstellungen aus einer exportierten Datei laden. Die aktuellen Einstellungen werden überschrieben.","backup.chooseFile":"Datei wählen…","backup.importConfirmTitle":"Einstellungen importieren?","backup.importConfirm":"Alle aktuellen Einstellungen werden mit den Werten aus der Datei überschrieben.","backup.importDone":"Einstellungen importiert.","backup.importInvalid":"Keine Einstellungsdatei: nichts wurde geändert.","toast.saved":"Einstellungen gespeichert","toast.rateLimited":"Übersetzung gedrosselt","toast.rateLimitedDesc":"Google drosselt gerade Anfragen. Blöcke versuchen es automatisch erneut — oder später auf Wiederholen klicken.","toast.translateFailed":"Übersetzung fehlgeschlagen","toast.translateFailedDesc":"Etwas ist schiefgelaufen. Am Block auf Wiederholen klicken.","toast.unknownProvider":"Unbekannter Übersetzungsanbieter","toast.unknownProviderDesc":"Anbieter in den Einstellungen prüfen und erneut speichern.","toast.cacheCleared":"Zielsprache geändert — Übersetzungs-Cache geleert.","translate.button":"Übersetzen","translate.original":"Original","translate.loading":"Übersetze…","translate.loadingShort":"Übersetzen","translate.error":"Übersetzungsfehler","translate.retry":"Erneut versuchen","viewer.title":"Bildbetrachter","viewer.close":"Schließen","viewer.prev":"Vorheriges Bild","viewer.next":"Nächstes Bild","viewer.zoomIn":"Vergrößern","viewer.zoomOut":"Verkleinern","viewer.reset":"Zoom und Drehung zurücksetzen","viewer.rotate":"Drehen","viewer.counter":"{current} / {total}","viewer.failed":"Das Bild konnte nicht geladen werden","viewer.open":"Bild öffnen","viewer.thumbs":"Bilder","viewer.hint":"Mausrad oder +/− zum Zoomen · ziehen zum Verschieben · ← → zum Durchblättern · Esc zum Schließen","queue.addToWishlist":"Auf die Wunschliste","queue.onWishlist":"Auf der Wunschliste","queue.addedNotice":"Artikel wurde auf die Wunschliste gesetzt!","queue.oops":"Hoppla!","queue.follow":"Folgen","queue.following":"Gefolgt","queue.ignore":"Ignorieren","queue.ignored":"Ignoriert","queue.viewQueue":"Warteschlange anzeigen","queue.manageWishlist":"Wunschliste verwalten","queue.removeWishlist":"Von der Wunschliste entfernen","queue.ignoreDefault":"Ignorieren (Standard)","queue.ignoreDefaultSub":"Im Shop ausblenden, Benachrichtigungen ignorieren und nicht für Empfehlungen verwenden.","queue.playedElsewhere":"Auf einer anderen Plattform gespielt","queue.playedElsewhereSub":"Im Shop ausblenden. Kann für Empfehlungen verwendet werden.","queue.actionFailed":"Änderungen konnten nicht gespeichert werden","queue.actionFailedDesc":"Beim Speichern der Änderungen ist ein Problem aufgetreten. Bitte versuchen Sie es später erneut."},es:{"menu.settings":"Ajustes Steam Plus","tab.general":"General","tab.translation":"Traducción","tab.gamepage":"Página del juego","tab.prices":"Precios","tab.cache":"Caché","tab.about":"Acerca del script","tab.backup":"Copia de seguridad","tab.general.desc":"Idioma de la interfaz y notificaciones.","tab.translation.desc":"Traduce descripciones, reseñas, comentarios y noticias.","tab.gamepage.desc":"Oculta bloques innecesarios en las páginas de juegos.","tab.prices.desc":"Compara precios regionales y convierte divisas.","tab.links":"Enlaces externos","tab.links.desc":"Accesos rápidos a otras tiendas y bases de datos.","tab.dlc":"DLC","tab.dlc.desc":"Lista de DLC con precios y estado de propiedad.","tab.region":"Región","tab.region.desc":"Carga páginas de la tienda bloqueadas en tu región.","tab.cache.desc":"Traducciones guardadas y uso de almacenamiento.","tab.about.desc":"Versión, autor y código fuente.","tab.backup.desc":"Exporta los ajustes a un archivo e impórtalos de nuevo.","panel.subtitle":"Traducción · página del juego · precios · enlaces · DLC · región · caché · copia · interfaz","panel.back":"Volver","common.on":"Sí","common.off":"No","common.auto":"Automático","common.close":"Cerrar","common.cancel":"Cancelar","common.save":"Guardar","common.reset":"Restablecer valores","common.saved":"Guardado","common.settings":"Ajustes","general.language":"Idioma de la interfaz","general.languageDesc":"Idioma del panel de ajustes de Steam Plus.","general.saveHint":"Los cambios se aplican al pulsar Guardar.","reset.confirm":"¿Restablecer todos los ajustes a los valores predeterminados?","general.toasts":"Notificaciones","toasts.enabled":"Notificaciones emergentes","toasts.enabledDesc":"Mostrar avisos de éxito y error de ajustes y traducciones.","toasts.position":"Posición en pantalla","toasts.duration":"Ocultar tras (segundos)","toasts.durationDesc":"0 = se queda hasta cerrarlo.","toastPos.bottom-right":"Abajo a la derecha","toastPos.bottom-left":"Abajo a la izquierda","toastPos.top-right":"Arriba a la derecha","toastPos.top-left":"Arriba a la izquierda","translation.title":"Traducción","translation.behavior":"Comportamiento","translation.desc":"Traducción de contenido de Steam: descripciones, reseñas, comentarios y noticias.","translation.enabled":"Traducción activada","translation.enabledDesc":"Interruptor global de la función de traducción.","translation.provider":"Proveedor de traducción","translation.providerDesc":"Servicio utilizado para traducir los textos.","provider.google-free":"Google (gratuito)","translation.trigger":"Modo de traducción","translation.triggerDesc":"Traducir automáticamente al aparecer el contenido o mediante un botón.","trigger.auto":"Automático","trigger.manual":"Con botón","translation.display":"Visualización de la traducción","translation.displayDesc":"Reemplazar el texto original o mostrar la traducción debajo.","display.below":"Debajo del original","display.replace":"Reemplazar texto","translation.targetLanguage":"Idioma de traducción","translation.targetLanguageDesc":"Idioma al que se traducirá el contenido.","targetLanguage.auto":"Como Steam / navegador","translation.showCached":"Mostrar traducciones guardadas al instante","translation.showCachedDesc":"Si la traducción ya está en caché, se muestra sin pulsar el botón.","translation.scopes":"Qué traducir","translation.scopesDesc":"Selecciona los tipos de contenido que se traducirán.","scope.gameDescription":"Descripciones de juegos","scope.gameReviews":"Reseñas de juegos","scope.profileComments":"Comentarios del perfil","scope.gameNews":"Noticias y eventos","scope.newsArticle":"Páginas de noticias","scope.guides":"Guías","gamepage.title":"Página del juego","gamepage.desc":"Ordena las páginas de juegos de Steam: oculta los bloques que nunca lees.","gamepage.enabled":"Ocultar bloques de la página del juego","gamepage.enabledDesc":"Interruptor principal para ocultar bloques en las páginas de juegos.","gamepage.blocks":"Bloques ocultos","gamepage.blocksDesc":"Elige qué bloques ocultar en las páginas de juegos (páginas de la tienda).","block.media":"Capturas y tráileres","block.purchase":"Opciones de compra y paquetes","block.description":"Acerca de este juego","block.dlc":"Contenido para este juego (DLC)","block.sysreq":"Requisitos del sistema","block.reviews":"Reseñas de usuarios","block.curators":"Lo que dicen los mentores","block.events":"Eventos y anuncios","block.details":"Detalles e info lateral","block.recommendations":"Franquicia y recomendaciones","block.sale":"Banner del evento de oferta","block.edition":"Contenido de ediciones y paquetes","block.earlyaccess":"Aviso de acceso anticipado","gamepage.earlyAccess":"Bloque de acceso anticipado","gamepage.earlyAccessDesc":"Muestra las preguntas completas, conserva solo el encabezado compacto u oculta el bloque por completo.","earlyAccess.full":"Completo","earlyAccess.compact":"Compacto","earlyAccess.hidden":"Oculto","prices.title":"Precios regionales","prices.desc":"Compara el precio del juego entre regiones de Steam directamente en la página del juego.","prices.enabled":"Precios regionales activados","prices.enabledDesc":"Interruptor principal del bloque de comparación de precios.","prices.autoLoad":"Cargar precios automáticamente","prices.autoLoadDesc":"Desactivado muestra un botón de carga en cada página del juego.","prices.position":"Posición del bloque","prices.positionDesc":"Dónde aparece el bloque de comparación en las páginas de juegos.","pricesPos.purchase":"Encima de las opciones de compra","pricesPos.sidebar":"Barra lateral","pricesPos.description":"Debajo de la descripción","prices.sort":"Orden de filas","prices.sortDesc":"El orden por precio usa tipos de cambio aproximados.","pricesSort.custom":"Como en la lista","pricesSort.priceAsc":"Precio más bajo primero","pricesSort.discountDesc":"Mayor descuento primero","prices.conversion":"Conversión de moneda","prices.conversionDesc":"Convierte todos los precios a una moneda con tipos de cambio en vivo.","prices.convertTo":"Moneda de visualización","prices.convertToDesc":"Auto usa la moneda de la tienda que estás viendo.","convertTo.auto":"Auto (moneda de tu tienda)","convertTo.off":"No (sin conversión)","prices.showConverted":"Mostrar precio convertido","prices.fxCache":"Duración de la caché","prices.fxCacheDesc":"Cuánto tiempo se reutilizan los tipos de cambio antes de pedirlos de nuevo.","fxTtl.1h":"1 hora","fxTtl.6h":"6 horas","fxTtl.24h":"24 horas","fxTtl.7d":"7 días","prices.fxCached":"Tipos en caché: {provider}, {date}","prices.fxCacheEmpty":"Aún no hay tipos en caché — abre cualquier página de juego una vez.","prices.fxClear":"Borrar caché de tipos","prices.regions":"Regiones comparadas","prices.regionsDesc":"Regiones de la tienda para las que cargar precios (hasta 24).","prices.display":"Visualización","prices.showOriginal":"Precio original","prices.showDiscount":"Insignia de descuento","prices.showSavings":"Ahorro frente a tu precio","prices.highlightCheapest":"Resaltar el más barato","prices.showHomeRow":"Fila de tu precio","prices.collapsed":"Empezar contraído","prices.collapsedDesc":"El bloque de comparación aparece contraído para ocupar menos; amplíalo con el botón del encabezado.","prices.colRegion":"Región","prices.colPrice":"Precio","prices.colDiscount":"Descuento","prices.colSavings":"Ahorro","prices.yours":"Tu precio","prices.cheapest":"Más barato","prices.load":"Cargar precios","prices.loading":"Cargando precios…","prices.retry":"Reintentar","prices.failed":"No se pudieron cargar los precios","prices.noRegions":"Selecciona al menos una región en los ajustes","prices.updated":"Actualizado {time}","prices.refresh":"Actualizar precios","prices.collapse":"Contraer bloque","prices.expand":"Expandir bloque","prices.fxHint":"Tipos de cambio: {provider} ({date}).","links.title":"Enlaces externos","links.desc":"Accesos rápidos a otras tiendas y bases de datos en la página del juego.","links.enabled":"Enlaces externos activados","links.enabledDesc":"Interruptor principal del bloque de enlaces externos.","links.position":"Posición del bloque","links.positionDesc":"Dónde aparece el bloque de enlaces en las páginas de juegos.","links.newTab":"Abrir en pestaña nueva","links.newTabDesc":"Abrir los enlaces externos en una pestaña nueva.","links.list":"Enlaces","links.listDesc":"Enlaces en las páginas de juegos. Las plantillas no válidas se omiten.","links.templateHelp":"Plantilla de URL: {name} para el título del juego, {appid} para el id de Steam. Ej.: https://store.epicgames.com/en-US/browse?q={name} o https://steamdb.info/app/{appid}/","links.name":"Nombre","links.namePlaceholder":"GOG","links.url":"Dirección del enlace","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Dirección del icono (opcional)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Añadir enlace","links.remove":"Eliminar este enlace","links.moveUp":"Subir","links.moveDown":"Bajar","links.empty":"Aún no hay enlaces — añade uno abajo.","links.restore":"Restaurar valores","links.preview":"Vista previa","links.open":"Abrir","dlc.title":"Contenido adicional (DLC)","dlc.desc":"Lista todos los DLC del juego con su precio y si ya los tienes.","dlc.enabled":"Contenido adicional activado","dlc.enabledDesc":"Interruptor principal del bloque de contenido adicional.","dlc.position":"Posición del bloque","dlc.positionDesc":"Dónde aparece la lista de DLC en las páginas de juegos.","dlcPos.purchase":"Encima de las opciones de compra","dlcPos.sidebar":"Barra lateral","dlcPos.description":"Debajo de la descripción","dlc.sort":"Orden de filas","dlc.sortDesc":"«No adquiridos primero» pone arriba los DLC que te faltan.","dlcSort.missing":"No adquiridos primero","dlcSort.store":"Orden de Steam","dlc.display":"Visualización","dlc.collapsed":"Empezar contraído","dlc.collapsedDesc":"El bloque aparece contraído por defecto para ocupar menos; amplíalo con el botón del encabezado.","dlc.showSummary":"Contador de adquiridos","dlc.showOwned":"Listar DLC adquiridos","dlc.showPrices":"Mostrar precios","dlc.showThumbnails":"Imágenes de DLC","dlc.showReleaseDate":"Fechas de lanzamiento","dlc.viewerSection":"Visor de imágenes","dlc.viewer":"Ampliar al hacer clic","dlc.viewerDesc":"Haz clic en la imagen de un complemento para abrir el visor integrado: ajuste a pantalla, zoom con la rueda o +/−, arrastra para mover, gira, ← → para recorrer cada complemento, Esc para cerrar.","dlc.viewerThumbnails":"Tira de miniaturas","dlc.viewerLoop":"Bucle continuo","dlc.cache":"Caché de DLC","dlc.cacheDesc":"Los datos de los DLC (nombres, precios, imágenes, fechas de lanzamiento) se guardan un día; tu propiedad, 30 minutos.","dlc.clearCache":"Borrar caché de DLC","dlc.cacheCleared":"Caché de DLC borrada.","dlc.owned":"Adquirido","dlc.free":"Gratis","dlc.soon":"Próximamente","dlc.released":"Lanzado","dlc.summary":"Tienes {owned} de {total}","dlc.loading":"Cargando DLC…","dlc.loadingProgress":"Cargando DLC {done}/{total}…","dlc.failed":"No se pudo cargar la lista de DLC","dlc.retry":"Reintentar","dlc.refresh":"Actualizar DLC","dlc.collapse":"Contraer bloque","dlc.expand":"Expandir bloque","dlc.updated":"Actualizado {time}","dlc.empty":"Sin contenido adicional","dlc.allOwned":"Todos los DLC están adquiridos","dlc.loginHint":"Inicia sesión en Steam para ver qué DLC tienes.","dlc.truncated":"Mostrando los primeros {count} DLC","region.title":"Bypass de región","region.desc":"Recarga páginas con «no disponible en tu región» mediante una petición anónima de invitado (sin cookies de cuenta).","region.enabled":"Bypass de región activado","region.enabledDesc":"Interruptor principal para recargar páginas bloqueadas.","region.showBanner":"Mostrar aviso","region.showBannerDesc":"Muestra que la página se cargó por petición anónima de invitado. Oculto por defecto; se aplica al recargar.","region.mode":"En páginas bloqueadas","region.modeDesc":"Automático reemplaza la página de error al instante; manual muestra primero un botón.","regionMode.auto":"Automáticamente","regionMode.manual":"Con botón","region.country":"País de la tienda (cc)","region.countryDesc":"Código de país de dos letras opcional para las peticiones de invitado. Vacío mantiene tu país.","region.searchTitle":"Búsqueda","region.searchDesc":"Reemplaza el buscador de la tienda con la búsqueda Steam Plus: resultados de invitado con valoraciones y precios.","region.searchEnabled":"Búsqueda regional activada","region.searchEnabledDesc":"Oculta el buscador nativo y muestra el nuestro. Desactivado deja intacta la búsqueda de Steam.","region.searchRows":"Filas de resultados","region.searchRowsDesc":"Cuántos juegos muestra cada búsqueda del panel.","region.searchNote":"Usa el país de la tienda y el proxy de esta pestaña. Con el país vacío, el resultado de invitado coincide con el tuyo y no aparecen filas extra.","region.searchOpen":"Abrir búsqueda regional","region.searchHotkey":"Consejo: pulsa / en cualquier parte de la tienda para abrir la búsqueda.","region.proxy":"Gateway proxy","region.proxyDesc":"Para bloqueos por IP: envía la petición anónima por un gateway HTTP en una región libre.","region.proxyEnabled":"Usar gateway proxy","region.proxyMode":"Modo del gateway","region.proxyModeDesc":"Cómo se añade la URL de la tienda a host:puerto.","regionProxyMode.gateway":"host:puerto/https://…","regionProxyMode.path":"host:puerto/store.steampowered.com/…","regionProxyMode.query":"host:puerto/?url=…","region.proxyHost":"Host","region.proxyPort":"Puerto","region.proxyUser":"Usuario","region.proxyPass":"Contraseña","region.bannerBadge":"Región bloqueada","region.bannerTitle":"Esta página no está disponible en tu región","region.bannerBody":"Mostrada por petición anónima de invitado (sin cookies de cuenta)","region.bannerViaProxy":"vía gateway proxy","region.reload":"Recargar","region.retry":"Reintentar","region.offer":"Esta página está bloqueada en tu región. ¿Cargarla sin cookies de cuenta?","region.offerButton":"Mostrar página","region.loading":"Cargando la página sin cookies de cuenta…","region.errorBlocked":"Sigue bloqueada por IP/región. Activa un gateway proxy hacia una región libre.","region.errorBlockedProxy":"Sigue bloqueada. La IP del proxy también está en una región restringida — prueba otro nodo de salida.","region.errorAgeGate":"Steam mostró una verificación de edad. Pulsa Reintentar — las cookies de edad se envían solas.","region.errorFailed":"No se pudo cargar: {error}","search.guestTitle":"Encontrado en otra región ({country})","search.guestHint":"No está en la búsqueda de tu región — se abre con la carga de invitado.","search.title":"Buscar en todas las regiones","search.placeholder":"Buscar juegos en cualquier región…","search.loading":"Buscando…","search.empty":"Sin juegos.","search.free":"Gratis","search.advanced":"Búsqueda avanzada","cache.usage":"Uso de almacenamiento","cache.contents":"Traducciones guardadas","cache.clear":"Borrar caché","cache.cleared":"Caché borrada ({count})","cache.empty":"La caché está vacía","cache.clearHint":"Elimina todas las traducciones guardadas de este perfil de navegador.","cache.listEmpty":"Aún no hay traducciones guardadas: traduce algo y aparecerá aquí.","cache.listMore":"…y {count} más","cache.removeEntry":"Eliminar esta entrada","cache.entries":"{count} entradas","cache.used":"{used} en {count} entradas","cache.free":"Libre","cache.pct":"{pct} % lleno","about.blurb":"Mejora las páginas de la tienda y la comunidad de Steam: traducción de contenido con caché y mucho más en camino.","about.repo":"GitHub","about.repoHint":"Código fuente, actualizaciones e informes de errores","backup.export":"Exportar","backup.exportDesc":"Guarda los ajustes actuales en un archivo JSON o cópialos al portapapeles.","backup.download":"Descargar archivo","backup.copy":"Copiar al portapapeles","backup.copied":"Ajustes copiados al portapapeles.","backup.copyFailed":"No se pudo acceder al portapapeles.","backup.import":"Importar","backup.importDesc":"Carga los ajustes desde un archivo exportado. Los ajustes actuales se sobrescriben.","backup.chooseFile":"Elegir archivo…","backup.importConfirmTitle":"¿Importar ajustes?","backup.importConfirm":"Se sobrescribirán todos los ajustes actuales con los valores del archivo.","backup.importDone":"Ajustes importados.","backup.importInvalid":"No es un archivo de ajustes: no se cambió nada.","toast.saved":"Ajustes guardados","toast.rateLimited":"Traducción limitada","toast.rateLimitedDesc":"Google está limitando las solicitudes. Los bloques reintentan solos, o pulsa Reintentar más tarde.","toast.translateFailed":"Error de traducción","toast.translateFailedDesc":"Algo salió mal. Pulsa Reintentar en el bloque.","toast.unknownProvider":"Proveedor desconocido","toast.unknownProviderDesc":"Revisa el proveedor en ajustes y guarda de nuevo.","toast.cacheCleared":"Idioma cambiado — caché de traducciones borrada.","translate.button":"Traducir","translate.original":"Original","translate.loading":"Traduciendo…","translate.loadingShort":"Traduciendo","translate.error":"Error de traducción","translate.retry":"Reintentar","viewer.title":"Visor de imágenes","viewer.close":"Cerrar","viewer.prev":"Imagen anterior","viewer.next":"Imagen siguiente","viewer.zoomIn":"Acercar","viewer.zoomOut":"Alejar","viewer.reset":"Restablecer zoom y rotación","viewer.rotate":"Girar","viewer.counter":"{current} / {total}","viewer.failed":"No se pudo cargar la imagen","viewer.open":"Abrir imagen","viewer.thumbs":"Imágenes","viewer.hint":"Rueda o +/− para zoom · arrastra para mover · ← → para navegar · Esc para cerrar","queue.addToWishlist":"Añadir a tu lista de deseados","queue.onWishlist":"En tu lista de deseados","queue.addedNotice":"¡Artículo añadido a tu lista de deseados!","queue.oops":"¡Vaya, lo sentimos!","queue.follow":"Seguir","queue.following":"Siguiendo","queue.ignore":"Ignorar","queue.ignored":"Ignorado","queue.viewQueue":"Ver tu cola","queue.manageWishlist":"Gestionar tu lista de deseados","queue.removeWishlist":"Quitar de tu lista de deseados","queue.ignoreDefault":"Ignorar esto (predeterminado)","queue.ignoreDefaultSub":"Ocultar de la tienda, ignorar notificaciones y no usar para generar otras recomendaciones.","queue.playedElsewhere":"Jugado en otra plataforma","queue.playedElsewhereSub":"Ocultar de la tienda. Puede usarse para generar recomendaciones.","queue.actionFailed":"No se pudieron guardar los cambios","queue.actionFailedDesc":"Hubo un problema al guardar los cambios. Inténtalo de nuevo más tarde."},fr:{"menu.settings":"Paramètres Steam Plus","tab.general":"Général","tab.translation":"Traduction","tab.gamepage":"Page du jeu","tab.prices":"Prix","tab.cache":"Cache","tab.about":"À propos du script","tab.backup":"Sauvegarde","tab.general.desc":"Langue de l’interface et notifications.","tab.translation.desc":"Traduit descriptions, avis, commentaires et actualités.","tab.gamepage.desc":"Masque les blocs inutiles des pages de jeux.","tab.prices.desc":"Compare les prix régionaux et convertit les devises.","tab.links":"Liens externes","tab.links.desc":"Accès rapides aux autres boutiques et bases de données.","tab.dlc":"DLC","tab.dlc.desc":"Liste des DLC avec prix et statut de possession.","tab.region":"Région","tab.region.desc":"Charge les pages du magasin bloquées dans votre région.","tab.cache.desc":"Traductions enregistrées et utilisation du stockage.","tab.about.desc":"Version, auteur et code source.","tab.backup.desc":"Exporte les réglages dans un fichier et réimporte-les.","panel.subtitle":"Traduction · page du jeu · prix · liens · DLC · région · cache · sauvegarde · interface","panel.back":"Retour","common.on":"Activé","common.off":"Désactivé","common.auto":"Automatique","common.close":"Fermer","common.cancel":"Annuler","common.save":"Enregistrer","common.reset":"Valeurs par défaut","common.saved":"Enregistré","common.settings":"Paramètres","general.language":"Langue de l’interface","general.languageDesc":"Langue du panneau de paramètres de Steam Plus.","general.saveHint":"Les modifications sont appliquées via Enregistrer ci-dessous.","reset.confirm":"Rétablir tous les paramètres sur leurs valeurs par défaut ?","general.toasts":"Notifications","toasts.enabled":"Notifications pop-up","toasts.enabledDesc":"Afficher les pop-ups de succès et d’erreur des paramètres et traductions.","toasts.position":"Position à l’écran","toasts.duration":"Masquage auto après (secondes)","toasts.durationDesc":"0 = reste jusqu’à fermeture manuelle.","toastPos.bottom-right":"En bas à droite","toastPos.bottom-left":"En bas à gauche","toastPos.top-right":"En haut à droite","toastPos.top-left":"En haut à gauche","translation.title":"Traduction","translation.behavior":"Comportement","translation.desc":"Traduction du contenu Steam : descriptions, évaluations, commentaires et actualités.","translation.enabled":"Traduction activée","translation.enabledDesc":"Interrupteur global de la fonction de traduction.","translation.provider":"Fournisseur de traduction","translation.providerDesc":"Service utilisé pour traduire les textes.","provider.google-free":"Google (gratuit)","translation.trigger":"Mode de traduction","translation.triggerDesc":"Traduire automatiquement à l’apparition du contenu ou via un bouton.","trigger.auto":"Automatique","trigger.manual":"Par bouton","translation.display":"Affichage de la traduction","translation.displayDesc":"Remplacer le texte original ou afficher la traduction en dessous.","display.below":"Sous l’original","display.replace":"Remplacer le texte","translation.targetLanguage":"Langue de traduction","translation.targetLanguageDesc":"Langue vers laquelle le contenu sera traduit.","targetLanguage.auto":"Comme Steam / navigateur","translation.showCached":"Afficher aussitôt les traductions enregistrées","translation.showCachedDesc":"Si la traduction est déjà en cache, elle s’affiche sans clic.","translation.scopes":"Contenu à traduire","translation.scopesDesc":"Choisissez les types de contenu à traduire.","scope.gameDescription":"Descriptions de jeux","scope.gameReviews":"Évaluations de jeux","scope.profileComments":"Commentaires de profil","scope.gameNews":"Actualités et événements","scope.newsArticle":"Pages d’actualités","scope.guides":"Guides","gamepage.title":"Page du jeu","gamepage.desc":"Épure les pages de jeux Steam : masque les blocs que tu ne lis jamais.","gamepage.enabled":"Masquer les blocs de la page du jeu","gamepage.enabledDesc":"Interrupteur principal pour masquer les blocs sur les pages de jeux.","gamepage.blocks":"Blocs masqués","gamepage.blocksDesc":"Choisis les blocs à masquer sur les pages de jeux (pages applicatives du magasin).","block.media":"Captures & bandes-annonces","block.purchase":"Options d’achat & packs","block.description":"À propos de ce jeu","block.dlc":"Contenu pour ce jeu (DLC)","block.sysreq":"Configuration requise","block.reviews":"Évaluations des utilisateurs","block.curators":"Ce qu’en disent les curateurs","block.events":"Événements & annonces","block.details":"Détails & panneau latéral","block.recommendations":"Franchise & recommandations","block.sale":"Bannière d’événement promo","block.edition":"Contenu des éditions & packs","block.earlyaccess":"Bandeau d’accès anticipé","gamepage.earlyAccess":"Bloc d’accès anticipé","gamepage.earlyAccessDesc":"Affiche le Q&R complet, garde uniquement l’en-tête compact ou masque tout le bloc.","earlyAccess.full":"Complet","earlyAccess.compact":"Compact","earlyAccess.hidden":"Masqué","prices.title":"Prix régionaux","prices.desc":"Compare le prix du jeu entre les régions Steam, directement sur la page du jeu.","prices.enabled":"Prix régionaux activés","prices.enabledDesc":"Interrupteur principal du bloc de comparaison des prix.","prices.autoLoad":"Charger les prix automatiquement","prices.autoLoadDesc":"Désactivé affiche un bouton de chargement sur chaque page de jeu.","prices.position":"Position du bloc","prices.positionDesc":"Où le bloc de comparaison apparaît sur les pages de jeux.","pricesPos.purchase":"Au-dessus des options d’achat","pricesPos.sidebar":"Panneau latéral","pricesPos.description":"Sous la description","prices.sort":"Ordre des lignes","prices.sortDesc":"L’ordre par prix utilise des taux de change approximatifs.","pricesSort.custom":"Comme listé","pricesSort.priceAsc":"Prix le plus bas d’abord","pricesSort.discountDesc":"Plus grosse remise d’abord","prices.conversion":"Conversion de devise","prices.conversionDesc":"Convertit tous les prix dans une devise avec des taux en direct.","prices.convertTo":"Devise d’affichage","prices.convertToDesc":"Auto utilise la devise du magasin que tu parcours.","convertTo.auto":"Auto (devise de ton magasin)","convertTo.off":"Non (pas de conversion)","prices.showConverted":"Afficher le prix converti","prices.fxCache":"Durée du cache des taux","prices.fxCacheDesc":"Combien de temps les taux sont réutilisés avant une nouvelle requête.","fxTtl.1h":"1 heure","fxTtl.6h":"6 heures","fxTtl.24h":"24 heures","fxTtl.7d":"7 jours","prices.fxCached":"Taux en cache : {provider}, {date}","prices.fxCacheEmpty":"Aucun taux en cache — ouvre une page de jeu une fois.","prices.fxClear":"Vider le cache des taux","prices.regions":"Régions comparées","prices.regionsDesc":"Régions du magasin pour lesquelles charger les prix (24 max).","prices.display":"Affichage","prices.showOriginal":"Prix d’origine","prices.showDiscount":"Badge de remise","prices.showSavings":"Économies par rapport à ton prix","prices.highlightCheapest":"Surligner le moins cher","prices.showHomeRow":"Ligne de ton prix","prices.collapsed":"Commencer réduit","prices.collapsedDesc":"Le bloc comparatif démarre réduit pour gagner de la place ; déplie-le via le bouton d’en-tête.","prices.colRegion":"Région","prices.colPrice":"Prix","prices.colDiscount":"Remise","prices.colSavings":"Économies","prices.yours":"Ton prix","prices.cheapest":"Moins cher","prices.load":"Charger les prix","prices.loading":"Chargement des prix…","prices.retry":"Réessayer","prices.failed":"Impossible de charger les prix","prices.noRegions":"Sélectionne au moins une région dans les réglages","prices.updated":"Mis à jour {time}","prices.refresh":"Actualiser les prix","prices.collapse":"Réduire le bloc","prices.expand":"Déplier le bloc","prices.fxHint":"Taux de change : {provider} ({date}).","links.title":"Liens externes","links.desc":"Accès rapides aux autres boutiques et bases de données sur la page du jeu.","links.enabled":"Liens externes activés","links.enabledDesc":"Interrupteur principal du bloc de liens externes.","links.position":"Position du bloc","links.positionDesc":"Emplacement du bloc de liens sur les pages de jeux.","links.newTab":"Ouvrir dans un nouvel onglet","links.newTabDesc":"Ouvrir les liens externes dans un nouvel onglet.","links.list":"Liens","links.listDesc":"Liens affichés sur les pages de jeux. Les modèles invalides sont ignorés.","links.templateHelp":"Modèle d’URL : {name} pour le titre du jeu, {appid} pour l’identifiant Steam — ex. https://store.epicgames.com/en-US/browse?q={name} ou https://steamdb.info/app/{appid}/","links.name":"Nom","links.namePlaceholder":"GOG","links.url":"Adresse du lien","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Adresse de l’icône (facultatif)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Ajouter un lien","links.remove":"Supprimer ce lien","links.moveUp":"Monter","links.moveDown":"Descendre","links.empty":"Aucun lien — ajoutez-en un ci-dessous.","links.restore":"Restaurer les valeurs","links.preview":"Aperçu","links.open":"Ouvrir","dlc.title":"Contenu additionnel","dlc.desc":"Liste tous les DLC du jeu avec leur prix et si vous les possédez déjà.","dlc.enabled":"Contenu additionnel activé","dlc.enabledDesc":"Interrupteur principal du bloc de contenu additionnel.","dlc.position":"Position du bloc","dlc.positionDesc":"Où la liste des DLC apparaît sur les pages de jeux.","dlcPos.purchase":"Au-dessus des options d’achat","dlcPos.sidebar":"Panneau latéral","dlcPos.description":"Sous la description","dlc.sort":"Ordre des lignes","dlc.sortDesc":"« Non possédés d’abord » place en haut les DLC qui vous manquent.","dlcSort.missing":"Non possédés d’abord","dlcSort.store":"Ordre Steam","dlc.display":"Affichage","dlc.collapsed":"Commencer réduit","dlc.collapsedDesc":"Réduit la liste des DLC par défaut pour gagner de la place ; déplie-la via le bouton d’en-tête.","dlc.showSummary":"Compteur de possession","dlc.showOwned":"Lister les DLC possédés","dlc.showPrices":"Afficher les prix","dlc.showThumbnails":"Images des DLC","dlc.showReleaseDate":"Dates de sortie","dlc.viewerSection":"Visionneuse d’images","dlc.viewer":"Agrandir au clic","dlc.viewerDesc":"Cliquez sur l’image d’un DLC pour ouvrir la visionneuse intégrée : ajustement à l’écran, zoom à la molette ou +/−, glisser pour déplacer, rotation, ← → pour parcourir tous les DLC, Esc pour fermer.","dlc.viewerThumbnails":"Bande de vignettes","dlc.viewerLoop":"Boucler","dlc.cache":"Cache des DLC","dlc.cacheDesc":"Les données des DLC (noms, prix, images, dates de sortie) sont mises en cache un jour, votre possession 30 minutes.","dlc.clearCache":"Vider le cache des DLC","dlc.cacheCleared":"Cache des DLC vidé.","dlc.owned":"Possédé","dlc.free":"Gratuit","dlc.soon":"Bientôt disponible","dlc.released":"Sorti","dlc.summary":"{owned} sur {total} possédés","dlc.loading":"Chargement des DLC…","dlc.loadingProgress":"Chargement des DLC {done}/{total}…","dlc.failed":"Impossible de charger la liste des DLC","dlc.retry":"Réessayer","dlc.refresh":"Actualiser les DLC","dlc.collapse":"Réduire le bloc","dlc.expand":"Déplier le bloc","dlc.updated":"Mis à jour {time}","dlc.empty":"Aucun contenu additionnel","dlc.allOwned":"Tous les DLC sont possédés","dlc.loginHint":"Connectez-vous à Steam pour voir quels DLC vous possédez.","dlc.truncated":"Affichage des {count} premiers DLC","region.title":"Contournement régional","region.desc":"Recharge les pages « indisponible dans votre région » via une requête invitée anonyme (sans cookies de compte).","region.enabled":"Contournement régional activé","region.enabledDesc":"Interrupteur principal pour recharger les pages bloquées.","region.showBanner":"Afficher le bandeau","region.showBannerDesc":"Indique que la page vient d’une requête invitée anonyme. Masqué par défaut ; appliqué au prochain rechargement.","region.mode":"Sur les pages bloquées","region.modeDesc":"Auto remplace la page d’erreur aussitôt ; manuel affiche d’abord un bouton.","regionMode.auto":"Automatiquement","regionMode.manual":"Via bouton","region.country":"Pays du magasin (cc)","region.countryDesc":"Code pays à deux lettres, optionnel, pour les requêtes invitées. Vide garde votre pays.","region.searchTitle":"Recherche","region.searchDesc":"Remplace la recherche du magasin par la recherche Steam Plus : résultats invité avec avis et prix.","region.searchEnabled":"Recherche régionale activée","region.searchEnabledDesc":"Masque la recherche native et affiche la nôtre. Désactivée, la recherche Steam reste intacte.","region.searchRows":"Lignes de résultats","region.searchRowsDesc":"Combien de jeux affiche chaque recherche du panneau.","region.searchNote":"Utilise le pays du magasin et la passerelle proxy de cet onglet. Avec un pays vide, le résultat invité égale le vôtre : aucune ligne supplémentaire.","region.searchOpen":"Ouvrir la recherche régionale","region.searchHotkey":"Astuce : appuyez sur / n’importe où dans le magasin pour ouvrir la recherche.","region.proxy":"Passerelle proxy","region.proxyDesc":"Pour les verrous IP : fait passer la requête anonyme par une passerelle HTTP dans une région libre.","region.proxyEnabled":"Utiliser la passerelle proxy","region.proxyMode":"Mode passerelle","region.proxyModeDesc":"Façon d’ajouter l’URL du magasin à hôte:port.","regionProxyMode.gateway":"hôte:port/https://…","regionProxyMode.path":"hôte:port/store.steampowered.com/…","regionProxyMode.query":"hôte:port/?url=…","region.proxyHost":"Hôte","region.proxyPort":"Port","region.proxyUser":"Utilisateur","region.proxyPass":"Mot de passe","region.bannerBadge":"Région bloquée","region.bannerTitle":"Cette page est indisponible dans votre région","region.bannerBody":"Affichée via une requête invitée anonyme (sans cookies de compte)","region.bannerViaProxy":"via la passerelle proxy","region.reload":"Recharger","region.retry":"Réessayer","region.offer":"Cette page est bloquée dans votre région. La charger sans cookies de compte ?","region.offerButton":"Afficher la page","region.loading":"Chargement sans cookies de compte…","region.errorBlocked":"Toujours bloqué par IP/région. Activez une passerelle proxy vers une région libre.","region.errorBlockedProxy":"Toujours bloqué. L’IP du proxy est sans doute aussi restreinte — essayez un autre nœud de sortie.","region.errorAgeGate":"Steam affiche un contrôle d’âge. Appuyez sur Réessayer — les cookies d’âge partent seuls.","region.errorFailed":"Échec du chargement : {error}","search.guestTitle":"Trouvé dans une autre région ({country})","search.guestHint":"Absent de votre recherche — s’ouvre via le chargement invité.","search.title":"Chercher dans toutes les régions","search.placeholder":"Chercher des jeux dans chaque région…","search.loading":"Recherche…","search.empty":"Aucun jeu trouvé.","search.free":"Gratuit","search.advanced":"Recherche avancée","cache.usage":"Utilisation du stockage","cache.contents":"Traductions enregistrées","cache.clear":"Vider le cache","cache.cleared":"Cache vidé ({count})","cache.empty":"Le cache est vide","cache.clearHint":"Supprime toutes les traductions enregistrées de ce profil de navigateur.","cache.listEmpty":"Aucune traduction enregistrée pour l’instant — traduisez un contenu et il apparaîtra ici.","cache.listMore":"…et {count} autres","cache.removeEntry":"Supprimer cette entrée","cache.entries":"{count} entrées","cache.used":"{used} dans {count} entrées","cache.free":"Libre","cache.pct":"{pct} % plein","about.blurb":"Améliore les pages du magasin et de la communauté Steam : traduction du contenu avec cache, et bien plus à venir.","about.repo":"GitHub","about.repoHint":"Code source, mises à jour et signalements de problèmes","backup.export":"Exporter","backup.exportDesc":"Enregistre tous les réglages dans un fichier JSON ou copie-les dans le presse-papiers.","backup.download":"Télécharger le fichier","backup.copy":"Copier dans le presse-papiers","backup.copied":"Réglages copiés dans le presse-papiers.","backup.copyFailed":"Accès au presse-papiers impossible.","backup.import":"Importer","backup.importDesc":"Charge les réglages depuis un fichier exporté. Les réglages actuels sont écrasés.","backup.chooseFile":"Choisir un fichier…","backup.importConfirmTitle":"Importer les réglages ?","backup.importConfirm":"Tous les réglages actuels seront remplacés par ceux du fichier.","backup.importDone":"Réglages importés.","backup.importInvalid":"Fichier de réglages invalide : rien n’a été modifié.","toast.saved":"Paramètres enregistrés","toast.rateLimited":"Traduction limitée","toast.rateLimitedDesc":"Google limite actuellement les requêtes. Les blocs réessaient automatiquement — ou cliquez sur Réessayer plus tard.","toast.translateFailed":"Échec de la traduction","toast.translateFailedDesc":"Une erreur est survenue. Cliquez sur Réessayer sur le bloc.","toast.unknownProvider":"Fournisseur inconnu","toast.unknownProviderDesc":"Vérifiez le fournisseur dans les paramètres et enregistrez.","toast.cacheCleared":"Langue cible modifiée — cache de traduction vidé.","translate.button":"Traduire","translate.original":"Original","translate.loading":"Traduction…","translate.loadingShort":"Traduction","translate.error":"Erreur de traduction","translate.retry":"Réessayer","viewer.title":"Visionneuse d’images","viewer.close":"Fermer","viewer.prev":"Image précédente","viewer.next":"Image suivante","viewer.zoomIn":"Zoom avant","viewer.zoomOut":"Zoom arrière","viewer.reset":"Réinitialiser le zoom et la rotation","viewer.rotate":"Pivoter","viewer.counter":"{current} / {total}","viewer.failed":"Impossible de charger l’image","viewer.open":"Ouvrir l’image","viewer.thumbs":"Images","viewer.hint":"Molette ou +/− pour zoomer · glisser pour déplacer · ← → pour parcourir · Esc pour fermer","queue.addToWishlist":"Ajouter à votre liste de souhaits","queue.onWishlist":"Dans la liste de souhaits","queue.addedNotice":"Article ajouté à votre liste de souhaits !","queue.oops":"Oups, désolé !","queue.follow":"Suivre","queue.following":"Suivi","queue.ignore":"Ignorer","queue.ignored":"Ignoré","queue.viewQueue":"Voir votre file","queue.manageWishlist":"Gérer votre liste de souhaits","queue.removeWishlist":"Retirer de votre liste de souhaits","queue.ignoreDefault":"Ignorer ceci (par défaut)","queue.ignoreDefaultSub":"Masquer du magasin, ignorer les notifications et ne pas utiliser pour générer d’autres recommandations.","queue.playedElsewhere":"Joué sur une autre plateforme","queue.playedElsewhereSub":"Masquer du magasin. Peut être utilisé pour générer des recommandations.","queue.actionFailed":"Impossible d’enregistrer les modifications","queue.actionFailedDesc":"Un problème est survenu lors de l’enregistrement. Veuillez réessayer plus tard."},"pt-BR":{"menu.settings":"Configurações Steam Plus","tab.general":"Geral","tab.translation":"Tradução","tab.gamepage":"Página do jogo","tab.prices":"Preços","tab.cache":"Cache","tab.about":"Sobre o script","tab.backup":"Backup","tab.general.desc":"Idioma da interface e notificações.","tab.translation.desc":"Traduz descrições, análises, comentários e notícias.","tab.gamepage.desc":"Oculta blocos desnecessários nas páginas de jogos.","tab.prices.desc":"Compara preços regionais e converte moedas.","tab.links":"Links externos","tab.links.desc":"Atalhos para outras lojas e bancos de dados.","tab.dlc":"Conteúdos adicionais","tab.dlc.desc":"Lista de DLC com preços e status de posse.","tab.region":"Região","tab.region.desc":"Carrega páginas da loja bloqueadas na sua região.","tab.cache.desc":"Traduções salvas e uso de armazenamento.","tab.about.desc":"Versão, autor e código-fonte.","tab.backup.desc":"Exporta as configurações para um arquivo e importa de volta.","panel.subtitle":"Tradução · página do jogo · preços · links · conteúdos adicionais · região · cache · backup · interface","panel.back":"Voltar","common.on":"Ativado","common.off":"Desativado","common.auto":"Automático","common.close":"Fechar","common.cancel":"Cancelar","common.save":"Salvar","common.reset":"Restaurar padrões","common.saved":"Salvo","common.settings":"Configurações","general.language":"Idioma da interface","general.languageDesc":"Idioma do painel de configurações do Steam Plus.","general.saveHint":"As alterações são aplicadas ao pressionar Salvar abaixo.","reset.confirm":"Restaurar todas as configurações para os valores padrão?","general.toasts":"Notificações","toasts.enabled":"Notificações pop-up","toasts.enabledDesc":"Mostrar pop-ups de sucesso e erro de configurações e traduções.","toasts.position":"Posição na tela","toasts.duration":"Ocultar após (segundos)","toasts.durationDesc":"0 = permanece até ser dispensado.","toastPos.bottom-right":"Inferior direito","toastPos.bottom-left":"Inferior esquerdo","toastPos.top-right":"Superior direito","toastPos.top-left":"Superior esquerdo","translation.title":"Tradução","translation.behavior":"Comportamento","translation.desc":"Tradução de conteúdo do Steam: descrições, análises, comentários e notícias.","translation.enabled":"Tradução ativada","translation.enabledDesc":"Interruptor global do recurso de tradução.","translation.provider":"Provedor de tradução","translation.providerDesc":"Serviço usado para traduzir os textos.","provider.google-free":"Google (gratuito)","translation.trigger":"Modo de tradução","translation.triggerDesc":"Traduzir automaticamente quando o conteúdo aparecer ou por botão.","trigger.auto":"Automaticamente","trigger.manual":"Por botão","translation.display":"Exibição da tradução","translation.displayDesc":"Substituir o texto original ou mostrar a tradução abaixo dele.","display.below":"Abaixo do original","display.replace":"Substituir texto","translation.targetLanguage":"Idioma da tradução","translation.targetLanguageDesc":"Idioma para o qual o conteúdo será traduzido.","targetLanguage.auto":"Como o Steam / navegador","translation.showCached":"Mostrar traduções salvas na hora","translation.showCachedDesc":"Se a tradução já estiver em cache, ela aparece sem clicar no botão.","translation.scopes":"O que traduzir","translation.scopesDesc":"Selecione os tipos de conteúdo a serem traduzidos.","scope.gameDescription":"Descrições de jogos","scope.gameReviews":"Análises de jogos","scope.profileComments":"Comentários do perfil","scope.gameNews":"Notícias e eventos","scope.newsArticle":"Páginas de notícias","scope.guides":"Guias","gamepage.title":"Página do jogo","gamepage.desc":"Organize as páginas de jogos da Steam: oculte os blocos que você nunca lê.","gamepage.enabled":"Ocultar blocos da página do jogo","gamepage.enabledDesc":"Chave principal para ocultar blocos nas páginas de jogos.","gamepage.blocks":"Blocos ocultos","gamepage.blocksDesc":"Escolha quais blocos ocultar nas páginas de jogos (páginas de aplicativo da loja).","block.media":"Capturas & trailers","block.purchase":"Opções de compra & pacotes","block.description":"Sobre este jogo","block.dlc":"Conteúdo para este jogo (DLC)","block.sysreq":"Requisitos do sistema","block.reviews":"Análises de usuários","block.curators":"O que dizem os curadores","block.events":"Eventos & anúncios","block.details":"Detalhes & barra lateral","block.recommendations":"Franquia & recomendações","block.sale":"Banner do evento de oferta","block.edition":"Conteúdo de edições & pacotes","block.earlyaccess":"Aviso de acesso antecipado","gamepage.earlyAccess":"Bloco de acesso antecipado","gamepage.earlyAccessDesc":"Mostra o Q&A completo, mantém só o cabeçalho compacto ou oculta o bloco inteiro.","earlyAccess.full":"Completo","earlyAccess.compact":"Compacto","earlyAccess.hidden":"Oculto","prices.title":"Preços regionais","prices.desc":"Compare o preço do jogo entre regiões da Steam direto na página do jogo.","prices.enabled":"Preços regionais ativados","prices.enabledDesc":"Chave principal do bloco de comparação de preços.","prices.autoLoad":"Carregar preços automaticamente","prices.autoLoadDesc":"Desligado mostra um botão de carregar em cada página de jogo.","prices.position":"Posição do bloco","prices.positionDesc":"Onde o bloco de comparação aparece nas páginas de jogos.","pricesPos.purchase":"Acima das opções de compra","pricesPos.sidebar":"Barra lateral","pricesPos.description":"Abaixo da descrição","prices.sort":"Ordem das linhas","prices.sortDesc":"A ordem por preço usa taxas de câmbio aproximadas.","pricesSort.custom":"Como listado","pricesSort.priceAsc":"Menor preço primeiro","pricesSort.discountDesc":"Maior desconto primeiro","prices.conversion":"Conversão de moeda","prices.conversionDesc":"Converte todos os preços para uma moeda com taxas ao vivo.","prices.convertTo":"Moeda de exibição","prices.convertToDesc":"Auto usa a moeda da loja que você está vendo.","convertTo.auto":"Auto (moeda da sua loja)","convertTo.off":"Não (sem conversão)","prices.showConverted":"Mostrar preço convertido","prices.fxCache":"Duração do cache","prices.fxCacheDesc":"Por quanto tempo as taxas são reutilizadas antes de um novo pedido.","fxTtl.1h":"1 hora","fxTtl.6h":"6 horas","fxTtl.24h":"24 horas","fxTtl.7d":"7 dias","prices.fxCached":"Taxas em cache: {provider}, {date}","prices.fxCacheEmpty":"Sem taxas em cache — abra qualquer página de jogo uma vez.","prices.fxClear":"Limpar cache de taxas","prices.regions":"Regiões comparadas","prices.regionsDesc":"Regiões da loja para carregar preços (até 24).","prices.display":"Exibição","prices.showOriginal":"Preço original","prices.showDiscount":"Selo de desconto","prices.showSavings":"Economia vs seu preço","prices.highlightCheapest":"Destacar o mais barato","prices.showHomeRow":"Linha do seu preço","prices.collapsed":"Começar recolhido","prices.collapsedDesc":"O bloco de comparação começa recolhido para economizar espaço; expanda pelo botão do cabeçalho.","prices.colRegion":"Região","prices.colPrice":"Preço","prices.colDiscount":"Desconto","prices.colSavings":"Economia","prices.yours":"Seu preço","prices.cheapest":"Mais barato","prices.load":"Carregar preços","prices.loading":"Carregando preços…","prices.retry":"Tentar de novo","prices.failed":"Não foi possível carregar os preços","prices.noRegions":"Selecione ao menos uma região nas configurações","prices.updated":"Atualizado {time}","prices.refresh":"Atualizar preços","prices.collapse":"Recolher bloco","prices.expand":"Expandir bloco","prices.fxHint":"Taxas de câmbio: {provider} ({date}).","links.title":"Links externos","links.desc":"Atalhos para outras lojas e bancos de dados na página do jogo.","links.enabled":"Links externos ativados","links.enabledDesc":"Chave principal do bloco de links externos.","links.position":"Posição do bloco","links.positionDesc":"Onde o bloco de links aparece nas páginas de jogos.","links.newTab":"Abrir em nova guia","links.newTabDesc":"Abrir links externos em uma nova guia.","links.list":"Links","links.listDesc":"Links exibidos nas páginas de jogos. Modelos inválidos são ignorados.","links.templateHelp":"Modelo de URL: {name} para o título do jogo, {appid} para o id da Steam. Ex.: https://store.epicgames.com/en-US/browse?q={name} ou https://steamdb.info/app/{appid}/","links.name":"Nome","links.namePlaceholder":"GOG","links.url":"Endereço do link","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Endereço do ícone (opcional)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Adicionar link","links.remove":"Remover este link","links.moveUp":"Mover para cima","links.moveDown":"Mover para baixo","links.empty":"Sem links — adicione um abaixo.","links.restore":"Restaurar padrões","links.preview":"Prévia","links.open":"Abrir","dlc.title":"Conteúdo adicional","dlc.desc":"Liste todos os conteúdos adicionais do jogo com o preço e se você já os possui.","dlc.enabled":"Conteúdo adicional ativado","dlc.enabledDesc":"Chave principal do bloco de conteúdo adicional.","dlc.position":"Posição do bloco","dlc.positionDesc":"Onde a lista de conteúdos adicionais aparece nas páginas de jogos.","dlcPos.purchase":"Acima das opções de compra","dlcPos.sidebar":"Barra lateral","dlcPos.description":"Abaixo da descrição","dlc.sort":"Ordem das linhas","dlc.sortDesc":"“Não possuídos primeiro” coloca os conteúdos adicionais que faltam no topo.","dlcSort.missing":"Não possuídos primeiro","dlcSort.store":"Ordem da Steam","dlc.display":"Exibição","dlc.collapsed":"Começar recolhido","dlc.collapsedDesc":"Recolhe a lista de conteúdos adicionais por padrão para economizar espaço; expanda pelo botão do cabeçalho.","dlc.showSummary":"Contador de possuídos","dlc.showOwned":"Listar conteúdos adicionais possuídos","dlc.showPrices":"Mostrar preços","dlc.showThumbnails":"Imagens dos conteúdos adicionais","dlc.showReleaseDate":"Datas de lançamento","dlc.viewerSection":"Visualizador de imagens","dlc.viewer":"Ampliar ao clicar","dlc.viewerDesc":"Clique na imagem de um conteúdo adicional para abrir o visualizador integrado: ajuste à tela, zoom com a roda ou +/−, arraste para mover, gire, ← → para percorrer todos os conteúdos adicionais, Esc para fechar.","dlc.viewerThumbnails":"Faixa de miniaturas","dlc.viewerLoop":"Repetir em ciclo","dlc.cache":"Cache de conteúdos adicionais","dlc.cacheDesc":"Dados dos conteúdos adicionais (nomes, preços, imagens, datas de lançamento) ficam em cache por um dia; sua posse, por 30 minutos.","dlc.clearCache":"Limpar cache de conteúdos adicionais","dlc.cacheCleared":"Cache de conteúdos adicionais limpo.","dlc.owned":"Possuído","dlc.free":"Grátis","dlc.soon":"Em breve","dlc.released":"Lançado","dlc.summary":"Possui {owned} de {total}","dlc.loading":"Carregando conteúdos adicionais…","dlc.loadingProgress":"Carregando conteúdos adicionais {done}/{total}…","dlc.failed":"Não foi possível carregar a lista de conteúdos adicionais","dlc.retry":"Tentar de novo","dlc.refresh":"Atualizar conteúdos adicionais","dlc.collapse":"Recolher bloco","dlc.expand":"Expandir bloco","dlc.updated":"Atualizado {time}","dlc.empty":"Sem conteúdo adicional","dlc.allOwned":"Todos os conteúdos adicionais são possuídos","dlc.loginHint":"Entre na Steam para ver quais conteúdos adicionais você possui.","dlc.truncated":"Mostrando os primeiros {count} conteúdos adicionais","region.title":"Bypass de região","region.desc":"Recarrega páginas com «indisponível na sua região» via requisição anônima de visitante (sem cookies da conta).","region.enabled":"Bypass de região ativado","region.enabledDesc":"Chave principal para recarregar páginas bloqueadas.","region.showBanner":"Mostrar aviso","region.showBannerDesc":"Mostra que a página foi carregada via requisição anônima de visitante. Oculto por padrão; vale a partir da próxima recarga.","region.mode":"Em páginas bloqueadas","region.modeDesc":"Automático substitui a página de erro na hora; manual mostra um botão antes.","regionMode.auto":"Automaticamente","regionMode.manual":"Via botão","region.country":"País da loja (cc)","region.countryDesc":"Código de país de duas letras, opcional, para requisições de visitante. Vazio mantém seu país.","region.searchTitle":"Busca","region.searchDesc":"Substitui a busca da loja pela busca Steam Plus: resultados de convidado com avaliações e preços.","region.searchEnabled":"Busca regional ativada","region.searchEnabledDesc":"Oculta a busca nativa e mostra a nossa. Desativada mantém a busca da Steam intacta.","region.searchRows":"Linhas de resultado","region.searchRowsDesc":"Quantos jogos cada busca do painel mostra.","region.searchNote":"Usa o país da loja e o proxy desta aba. Com o país vazio, o resultado de convidado é igual ao seu e nenhuma linha extra aparece.","region.searchOpen":"Abrir busca regional","region.searchHotkey":"Dica: pressione / em qualquer lugar da loja para abrir a busca.","region.proxy":"Gateway proxy","region.proxyDesc":"Para bloqueios por IP: envia a requisição anônima por um gateway HTTP numa região livre.","region.proxyEnabled":"Usar gateway proxy","region.proxyMode":"Modo do gateway","region.proxyModeDesc":"Como a URL da loja é anexada a host:porta.","regionProxyMode.gateway":"host:porta/https://…","regionProxyMode.path":"host:porta/store.steampowered.com/…","regionProxyMode.query":"host:porta/?url=…","region.proxyHost":"Host","region.proxyPort":"Porta","region.proxyUser":"Usuário","region.proxyPass":"Senha","region.bannerBadge":"Região bloqueada","region.bannerTitle":"Esta página está indisponível na sua região","region.bannerBody":"Exibida via requisição anônima de visitante (sem cookies da conta)","region.bannerViaProxy":"via gateway proxy","region.reload":"Recarregar","region.retry":"Tentar de novo","region.offer":"Esta página está bloqueada na sua região. Carregá-la sem cookies da conta?","region.offerButton":"Mostrar página","region.loading":"Carregando sem cookies da conta…","region.errorBlocked":"Ainda bloqueada por IP/região. Ative um gateway proxy para uma região livre.","region.errorBlockedProxy":"Ainda bloqueada. O IP do proxy também deve estar restrito — tente outro nó de saída.","region.errorAgeGate":"A Steam mostrou verificação de idade. Aperte Tentar de novo — os cookies de idade vão sozinhos.","region.errorFailed":"Falha ao carregar: {error}","search.guestTitle":"Encontrado em outra região ({country})","search.guestHint":"Fora da busca da sua região — abre via carregamento de convidado.","search.title":"Buscar em todas as regiões","search.placeholder":"Buscar jogos em qualquer região…","search.loading":"Buscando…","search.empty":"Nenhum jogo encontrado.","search.free":"Grátis","search.advanced":"Busca avançada","cache.usage":"Uso de armazenamento","cache.contents":"Traduções salvas","cache.clear":"Limpar cache","cache.cleared":"Cache limpo ({count})","cache.empty":"O cache está vazio","cache.clearHint":"Remove todas as traduções salvas deste perfil de navegador.","cache.listEmpty":"Ainda não há traduções salvas — traduza algo e ele aparecerá aqui.","cache.listMore":"…e mais {count}","cache.removeEntry":"Remover esta entrada","cache.entries":"{count} entradas","cache.used":"{used} em {count} entradas","cache.free":"Livre","cache.pct":"{pct}% cheio","about.blurb":"Melhora as páginas da loja e da comunidade Steam: tradução de conteúdo com cache e muito mais por vir.","about.repo":"GitHub","about.repoHint":"Código-fonte, atualizações e relatórios de problemas","backup.export":"Exportar","backup.exportDesc":"Salva todas as configurações em um arquivo JSON ou copia para a área de transferência.","backup.download":"Baixar arquivo","backup.copy":"Copiar","backup.copied":"Configurações copiadas.","backup.copyFailed":"Não foi possível acessar a área de transferência.","backup.import":"Importar","backup.importDesc":"Carrega as configurações de um arquivo exportado. As atuais serão substituídas.","backup.chooseFile":"Escolher arquivo…","backup.importConfirmTitle":"Importar configurações?","backup.importConfirm":"Todas as configurações atuais serão substituídas pelos valores do arquivo.","backup.importDone":"Configurações importadas.","backup.importInvalid":"Arquivo inválido: nada foi alterado.","toast.saved":"Configurações salvas","toast.rateLimited":"Tradução limitada","toast.rateLimitedDesc":"O Google está limitando as solicitações. Os blocos tentam de novo sozinhos — ou pressione Tentar novamente mais tarde.","toast.translateFailed":"Falha na tradução","toast.translateFailedDesc":"Algo deu errado. Pressione Tentar novamente no bloco.","toast.unknownProvider":"Provedor desconhecido","toast.unknownProviderDesc":"Verifique o provedor nas configurações e salve novamente.","toast.cacheCleared":"Idioma alterado — cache de traduções limpo.","translate.button":"Traduzir","translate.original":"Original","translate.loading":"Traduzindo…","translate.loadingShort":"Traduzindo","translate.error":"Erro de tradução","translate.retry":"Tentar novamente","viewer.title":"Visualizador de imagens","viewer.close":"Fechar","viewer.prev":"Imagem anterior","viewer.next":"Próxima imagem","viewer.zoomIn":"Aumentar zoom","viewer.zoomOut":"Diminuir zoom","viewer.reset":"Redefinir zoom e rotação","viewer.rotate":"Girar","viewer.counter":"{current} / {total}","viewer.failed":"Não foi possível carregar a imagem","viewer.open":"Abrir imagem","viewer.thumbs":"Imagens","viewer.hint":"Roda ou +/− para zoom · arraste para mover · ← → para navegar · Esc para fechar","queue.addToWishlist":"Adicionar à lista de desejos","queue.onWishlist":"Na lista de desejos","queue.addedNotice":"Item adicionado à lista de desejos!","queue.oops":"Ops, desculpe!","queue.follow":"Seguir","queue.following":"Seguindo","queue.ignore":"Ignorar","queue.ignored":"Ignorado","queue.viewQueue":"Ver sua fila","queue.manageWishlist":"Gerenciar lista de desejos","queue.removeWishlist":"Remover da lista de desejos","queue.ignoreDefault":"Ignorar isto (padrão)","queue.ignoreDefaultSub":"Ocultar da loja, ignorar notificações e não usar para gerar outras recomendações.","queue.playedElsewhere":"Jogado em outra plataforma","queue.playedElsewhereSub":"Ocultar da loja. Pode ser usado para gerar recomendações.","queue.actionFailed":"Não foi possível salvar as alterações","queue.actionFailedDesc":"Ocorreu um problema ao salvar as alterações. Tente novamente mais tarde."},"zh-CN":{"menu.settings":"设置 Steam Plus","tab.general":"常规","tab.translation":"翻译","tab.gamepage":"游戏页面","tab.prices":"价格","tab.cache":"缓存","tab.about":"关于脚本","tab.backup":"备份","tab.general.desc":"界面语言和通知。","tab.translation.desc":"翻译描述、评测、评论和新闻。","tab.gamepage.desc":"隐藏游戏页面上不需要的区块。","tab.prices.desc":"比较各区域价格并换算货币。","tab.links":"外部链接","tab.links.desc":"快速跳转到其他商店和数据库。","tab.dlc":"附加内容(DLC)","tab.dlc.desc":"带价格和拥有状态的 DLC 列表。","tab.region":"区域","tab.region.desc":"加载在您所在区域被屏蔽的商店页面。","tab.cache.desc":"已保存的翻译和存储占用。","tab.about.desc":"版本、作者和源代码。","tab.backup.desc":"将设置导出到文件并重新导入。","panel.subtitle":"翻译 · 游戏页面 · 价格 · 链接 · 附加内容(DLC) · 区域 · 缓存 · 备份 · 界面","panel.back":"返回","common.on":"开","common.off":"关","common.auto":"自动","common.close":"关闭","common.cancel":"取消","common.save":"保存","common.reset":"恢复默认设置","common.saved":"已保存","common.settings":"设置","general.language":"界面语言","general.languageDesc":"Steam Plus 设置面板的语言。","general.saveHint":"点击下方的“保存”后应用更改。","reset.confirm":"将所有设置恢复为默认值吗?","general.toasts":"通知","toasts.enabled":"弹出通知","toasts.enabledDesc":"显示设置和翻译的成功与错误弹出通知。","toasts.position":"屏幕位置","toasts.duration":"自动隐藏(秒)","toasts.durationDesc":"0 表示手动关闭前一直显示。","toastPos.bottom-right":"右下","toastPos.bottom-left":"左下","toastPos.top-right":"右上","toastPos.top-left":"左上","translation.title":"翻译","translation.behavior":"行为","translation.desc":"翻译 Steam 内容:简介、评测、评论和新闻。","translation.enabled":"启用翻译","translation.enabledDesc":"翻译功能的总开关。","translation.provider":"翻译服务提供商","translation.providerDesc":"用于翻译文本的服务。","provider.google-free":"Google(免费)","translation.trigger":"翻译模式","translation.triggerDesc":"在内容出现时自动翻译,或通过按钮翻译。","trigger.auto":"自动","trigger.manual":"通过按钮","translation.display":"翻译显示方式","translation.displayDesc":"替换原文,或在原文下方显示翻译。","display.below":"显示在原文下方","display.replace":"替换原文","translation.targetLanguage":"翻译目标语言","translation.targetLanguageDesc":"将内容翻译成哪种语言。","targetLanguage.auto":"跟随 Steam / 浏览器","translation.showCached":"立即显示已保存的翻译","translation.showCachedDesc":"如果翻译已在缓存中,则无需点击按钮直接显示。","translation.scopes":"翻译内容","translation.scopesDesc":"选择需要翻译的内容类型。","scope.gameDescription":"游戏简介","scope.gameReviews":"游戏评测","scope.profileComments":"个人资料评论","scope.gameNews":"新闻与活动","scope.newsArticle":"新闻文章页面","scope.guides":"指南","gamepage.title":"游戏页面","gamepage.desc":"整理 Steam 游戏页面:隐藏你从不阅读的版块。","gamepage.enabled":"隐藏游戏页面版块","gamepage.enabledDesc":"在游戏页面隐藏版块的总开关。","gamepage.blocks":"隐藏的版块","gamepage.blocksDesc":"选择要在游戏页面(商店应用页面)上隐藏的版块。","block.media":"截图与预告片","block.purchase":"购买选项与捆绑包","block.description":"关于此游戏","block.dlc":"此游戏的内容(DLC)","block.sysreq":"系统要求","block.reviews":"用户评测","block.curators":"鉴赏家点评","block.events":"活动与公告","block.details":"详情与侧栏信息","block.recommendations":"系列与推荐","block.sale":"促销活动横幅","block.edition":"版本与捆绑包内容","block.earlyaccess":"抢先体验提示","gamepage.earlyAccess":"抢先体验版块","gamepage.earlyAccessDesc":"显示完整问答、仅保留精简标题,或完全隐藏该版块。","earlyAccess.full":"完整","earlyAccess.compact":"精简","earlyAccess.hidden":"隐藏","prices.title":"区域价格","prices.desc":"直接在游戏页面比较 Steam 各区域的游戏价格。","prices.enabled":"已启用区域价格","prices.enabledDesc":"区域价格比较模块的总开关。","prices.autoLoad":"自动加载价格","prices.autoLoadDesc":"关闭后,每个游戏页面将显示加载按钮。","prices.position":"模块位置","prices.positionDesc":"比较模块在游戏页面上的显示位置。","pricesPos.purchase":"购买选项上方","pricesPos.sidebar":"侧栏","pricesPos.description":"简介下方","prices.sort":"行排序","prices.sortDesc":"按价格排序使用近似汇率。","pricesSort.custom":"按列表顺序","pricesSort.priceAsc":"价格从低到高","pricesSort.discountDesc":"折扣从高到低","prices.conversion":"货币换算","prices.conversionDesc":"按实时汇率将所有价格换算为一种货币。","prices.convertTo":"显示货币","prices.convertToDesc":"自动使用您当前浏览商店的货币。","convertTo.auto":"自动(您商店的货币)","convertTo.off":"关闭(不换算)","prices.showConverted":"显示换算价格","prices.fxCache":"汇率缓存时长","prices.fxCacheDesc":"汇率在重新请求之前可复用多长时间。","fxTtl.1h":"1 小时","fxTtl.6h":"6 小时","fxTtl.24h":"24 小时","fxTtl.7d":"7 天","prices.fxCached":"已缓存汇率:{provider},{date}","prices.fxCacheEmpty":"暂无缓存汇率——打开任意游戏页面一次即可。","prices.fxClear":"清除汇率缓存","prices.regions":"比较的区域","prices.regionsDesc":"要加载价格的商店区域(最多 24 个)。","prices.display":"显示","prices.showOriginal":"原价","prices.showDiscount":"折扣徽章","prices.showSavings":"相对你的价格节省","prices.highlightCheapest":"高亮最低价","prices.showHomeRow":"你的价格行","prices.collapsed":"默认折叠","prices.collapsedDesc":"对比版块默认折叠以节省空间,点击标题按钮可展开。","prices.colRegion":"区域","prices.colPrice":"价格","prices.colDiscount":"折扣","prices.colSavings":"节省","prices.yours":"你的价格","prices.cheapest":"最低","prices.load":"加载价格","prices.loading":"正在加载价格…","prices.retry":"重试","prices.failed":"无法加载价格","prices.noRegions":"请在设置中至少选择一个区域","prices.updated":"更新于 {time}","prices.refresh":"刷新价格","prices.collapse":"折叠版块","prices.expand":"展开版块","prices.fxHint":"汇率:{provider}({date})。","links.title":"外部链接","links.desc":"在游戏页面上快速跳转到其他商店和数据库。","links.enabled":"启用外部链接","links.enabledDesc":"外部链接版块的总开关。","links.position":"版块位置","links.positionDesc":"链接版块在游戏页面上的显示位置。","links.newTab":"在新标签页中打开","links.newTabDesc":"在新标签页中打开外部链接。","links.list":"链接","links.listDesc":"显示在游戏页面上的链接。无法解析的模板会被跳过。","links.templateHelp":"网址模板:{name} 为游戏名称,{appid} 为 Steam id。例如:https://store.epicgames.com/en-US/browse?q={name} 或 https://steamdb.info/app/{appid}/","links.name":"名称","links.namePlaceholder":"GOG","links.url":"链接地址","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"图标地址(可选)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"添加链接","links.remove":"删除此链接","links.moveUp":"上移","links.moveDown":"下移","links.empty":"暂无链接 — 请在下方添加。","links.restore":"恢复默认","links.preview":"预览","links.open":"打开","dlc.title":"附加内容(DLC)","dlc.desc":"列出游戏的全部附加内容、价格以及你是否已拥有。","dlc.enabled":"已启用附加内容","dlc.enabledDesc":"附加内容模块的总开关。","dlc.position":"模块位置","dlc.positionDesc":"附加内容列表在游戏页面上的显示位置。","dlcPos.purchase":"购买选项上方","dlcPos.sidebar":"侧栏","dlcPos.description":"简介下方","dlc.sort":"行排序","dlc.sortDesc":"“未拥有优先”会把你还未拥有的附加内容排在最前。","dlcSort.missing":"未拥有优先","dlcSort.store":"Steam 顺序","dlc.display":"显示","dlc.collapsed":"默认折叠","dlc.collapsedDesc":"默认折叠附加内容列表以节省空间;用标题栏的开关展开。","dlc.showSummary":"已拥有计数","dlc.showOwned":"列出已拥有的附加内容","dlc.showPrices":"显示价格","dlc.showThumbnails":"附加内容图片","dlc.showReleaseDate":"发布日期","dlc.viewerSection":"图片查看器","dlc.viewer":"点击放大","dlc.viewerDesc":"点击附加内容图片即可打开内置查看器:适应屏幕、滚轮或 +/− 缩放、拖动移动、旋转、← → 浏览所有附加内容、Esc 关闭。","dlc.viewerThumbnails":"缩略图栏","dlc.viewerLoop":"循环浏览","dlc.cache":"附加内容缓存","dlc.cacheDesc":"附加内容数据(名称、价格、图片、发布日期)缓存一天,拥有状态缓存 30 分钟。","dlc.clearCache":"清空附加内容缓存","dlc.cacheCleared":"已清空附加内容缓存。","dlc.owned":"已拥有","dlc.free":"免费","dlc.soon":"即将推出","dlc.released":"已发布","dlc.summary":"已拥有 {owned}/{total}","dlc.loading":"正在加载附加内容…","dlc.loadingProgress":"正在加载附加内容 {done}/{total}…","dlc.failed":"无法加载附加内容列表","dlc.retry":"重试","dlc.refresh":"刷新附加内容","dlc.collapse":"折叠模块","dlc.expand":"展开模块","dlc.updated":"更新于 {time}","dlc.empty":"暂无附加内容","dlc.allOwned":"已拥有全部附加内容","dlc.loginHint":"登录 Steam 以查看你拥有哪些附加内容。","dlc.truncated":"仅显示前 {count} 项附加内容","region.title":"区域限制绕过","region.desc":"通过匿名访客请求(不带账号 Cookie)重新加载显示“在您所在区域不可用”的商店页面。","region.enabled":"启用区域限制绕过","region.enabledDesc":"重新加载被屏蔽商店页面的总开关。","region.showBanner":"显示通知横幅","region.showBannerDesc":"显示页面是通过匿名访客请求加载的。默认隐藏;下次重新加载后生效。","region.mode":"在被屏蔽页面上","region.modeDesc":"自动模式立即替换错误页;手动模式先显示一个按钮。","regionMode.auto":"自动","regionMode.manual":"按按钮","region.country":"商店国家(cc)","region.countryDesc":"访客请求的可选两字母商店国家代码。留空则使用您自己的国家。","region.searchTitle":"搜索","region.searchDesc":"用 Steam Plus 搜索替换商店搜索框:带评价和价格的访客结果。","region.searchEnabled":"已启用区域搜索","region.searchEnabledDesc":"隐藏原生搜索并显示我们的。关闭后 Steam 搜索保持原样。","region.searchRows":"结果行数","region.searchRowsDesc":"每次浮层搜索显示多少个游戏。","region.searchNote":"使用本选项卡中的商店国家和代理网关。国家为空时访客结果与您的一致,不会出现额外的行。","region.searchOpen":"打开区域搜索","region.searchHotkey":"提示:在商店任意位置按 / 可打开搜索。","region.proxy":"代理网关","region.proxyDesc":"针对 IP 封锁:经由开放区域的 HTTP 网关发送匿名请求。","region.proxyEnabled":"使用代理网关","region.proxyMode":"网关模式","region.proxyModeDesc":"商店 URL 附加到 host:port 的方式。","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"主机","region.proxyPort":"端口","region.proxyUser":"用户名","region.proxyPass":"密码","region.bannerBadge":"区域受限","region.bannerTitle":"此页面在您所在区域不可用","region.bannerBody":"通过匿名访客请求显示(不带账号 Cookie)","region.bannerViaProxy":"经由代理网关","region.reload":"重新加载","region.retry":"重试","region.offer":"此页面在您所在区域被屏蔽。是否不带账号 Cookie 加载?","region.offerButton":"显示商店页面","region.loading":"正在不带账号 Cookie 加载商店页面…","region.errorBlocked":"仍被 IP/区域屏蔽。请在设置中启用代理网关并指向开放区域。","region.errorBlockedProxy":"仍然被屏蔽。代理 IP 可能也在受限区域——请尝试其他出口节点。","region.errorAgeGate":"Steam 显示了年龄验证。请按“重试”——年龄 Cookie 会自动发送。","region.errorFailed":"加载失败:{error}","search.guestTitle":"在其他区域找到 ({country})","search.guestHint":"在您所在区域的搜索中缺失 — 将通过访客加载打开。","search.title":"搜索所有区域","search.placeholder":"在任意区域搜索游戏…","search.loading":"搜索中…","search.empty":"未找到游戏。","search.free":"免费","search.advanced":"高级搜索","cache.usage":"存储用量","cache.contents":"已保存的翻译","cache.clear":"清空缓存","cache.cleared":"已清空缓存({count})","cache.empty":"缓存为空","cache.clearHint":"删除此浏览器配置文件中保存的所有翻译。","cache.listEmpty":"暂无已保存的翻译——翻译一些内容后会显示在这里。","cache.listMore":"……还有 {count} 条","cache.removeEntry":"删除此条目","cache.entries":"{count} 条","cache.used":"{used},共 {count} 条","cache.free":"可用","cache.pct":"已使用 {pct}%","about.blurb":"改善 Steam 商店和社区页面:带缓存的内容翻译,更多功能即将到来。","about.repo":"GitHub","about.repoHint":"源代码、更新与问题反馈","backup.export":"导出","backup.exportDesc":"将当前所有设置保存为 JSON 文件,或复制到剪贴板。","backup.download":"下载文件","backup.copy":"复制到剪贴板","backup.copied":"设置已复制到剪贴板。","backup.copyFailed":"无法访问剪贴板。","backup.import":"导入","backup.importDesc":"从之前导出的文件加载设置。当前设置将被覆盖。","backup.chooseFile":"选择文件…","backup.importConfirmTitle":"导入设置?","backup.importConfirm":"当前所有设置将被文件中的值覆盖。","backup.importDone":"设置已导入。","backup.importInvalid":"不是有效的设置文件:未做任何更改。","toast.saved":"设置已保存","toast.rateLimited":"翻译被限流","toast.rateLimitedDesc":"Google 目前正在限流。区块会自动重试,也可以稍后点击“重试”。","toast.translateFailed":"翻译失败","toast.translateFailedDesc":"出了点问题,点击区块上的“重试”再试一次。","toast.unknownProvider":"未知的翻译服务","toast.unknownProviderDesc":"请检查设置中的翻译服务并重新保存。","toast.cacheCleared":"目标语言已更改——翻译缓存已清空。","translate.button":"翻译","translate.original":"原文","translate.loading":"翻译中…","translate.loadingShort":"翻译中","translate.error":"翻译出错","translate.retry":"重试","viewer.title":"图片查看器","viewer.close":"关闭","viewer.prev":"上一张","viewer.next":"下一张","viewer.zoomIn":"放大","viewer.zoomOut":"缩小","viewer.reset":"重置缩放和旋转","viewer.rotate":"旋转","viewer.counter":"{current} / {total}","viewer.failed":"无法加载图片","viewer.open":"打开图片","viewer.thumbs":"图片","viewer.hint":"滚轮或 +/− 缩放 · 拖动移动 · ← → 浏览 · Esc 关闭","queue.addToWishlist":"添加到愿望单","queue.onWishlist":"已在愿望单中","queue.addedNotice":"已将物品添加至愿望单!","queue.oops":"抱歉,出错了!","queue.follow":"关注","queue.following":"已关注","queue.ignore":"忽略","queue.ignored":"已忽略","queue.viewQueue":"查看您的探索队列","queue.manageWishlist":"管理愿望单","queue.removeWishlist":"从愿望单中移除","queue.ignoreDefault":"忽略此项(默认)","queue.ignoreDefaultSub":"在商店中隐藏,忽略通知,且不用于生成其他推荐。","queue.playedElsewhere":"已在其他平台游玩","queue.playedElsewhereSub":"在商店中隐藏。可用于生成推荐。","queue.actionFailed":"无法保存更改","queue.actionFailedDesc":"保存更改时出现问题。请稍后再试。"},ja:{"menu.settings":"設定 Steam Plus","tab.general":"一般","tab.translation":"翻訳","tab.gamepage":"ゲームページ","tab.prices":"価格","tab.cache":"キャッシュ","tab.about":"スクリプトについて","tab.backup":"バックアップ","tab.general.desc":"インターフェース言語と通知。","tab.translation.desc":"説明、レビュー、コメント、ニュースを翻訳します。","tab.gamepage.desc":"ゲームページの不要なブロックを非表示にします。","tab.prices.desc":"地域ごとの価格を比較し、通貨を換算します。","tab.links":"外部リンク","tab.links.desc":"他のストアやデータベースへのクイックリンク。","tab.dlc":"追加コンテンツ","tab.dlc.desc":"価格と所有状況がわかる追加コンテンツ一覧。","tab.region":"リージョン","tab.region.desc":"お住まいの地域でブロックされたストアページを読み込みます。","tab.cache.desc":"保存済みの翻訳とストレージ使用量。","tab.about.desc":"バージョン、作者、ソースコード。","tab.backup.desc":"設定をファイルにエクスポート・インポート。","panel.subtitle":"翻訳 · ゲームページ · 価格 · リンク · 追加コンテンツ · リージョン · キャッシュ · バックアップ · インターフェース","panel.back":"戻る","common.on":"オン","common.off":"オフ","common.auto":"自動","common.close":"閉じる","common.cancel":"キャンセル","common.save":"保存","common.reset":"既定値に戻す","common.saved":"保存しました","common.settings":"設定","general.language":"インターフェースの言語","general.languageDesc":"Steam Plus 設定パネルの言語。","general.saveHint":"下の「保存」で変更が適用されます。","reset.confirm":"すべての設定を既定値に戻しますか?","general.toasts":"通知","toasts.enabled":"ポップアップ通知","toasts.enabledDesc":"設定と翻訳の成功・エラー通知を表示します。","toasts.position":"画面上の位置","toasts.duration":"自動で閉じるまで(秒)","toasts.durationDesc":"0 = 手動で閉じるまで表示。","toastPos.bottom-right":"右下","toastPos.bottom-left":"左下","toastPos.top-right":"右上","toastPos.top-left":"左上","translation.title":"翻訳","translation.behavior":"動作","translation.desc":"Steam コンテンツの翻訳:説明、レビュー、コメント、ニュース。","translation.enabled":"翻訳を有効にする","translation.enabledDesc":"翻訳機能のマスタースイッチ。","translation.provider":"翻訳プロバイダー","translation.providerDesc":"テキストの翻訳に使用するサービス。","provider.google-free":"Google(無料)","translation.trigger":"翻訳モード","translation.triggerDesc":"コンテンツ表示時に自動で翻訳するか、ボタンで翻訳するか。","trigger.auto":"自動","trigger.manual":"ボタンで翻訳","translation.display":"翻訳の表示方法","translation.displayDesc":"元のテキストを置き換えるか、下に翻訳を表示するか。","display.below":"原文の下に表示","display.replace":"テキストを置き換える","translation.targetLanguage":"翻訳先の言語","translation.targetLanguageDesc":"コンテンツをどの言語に翻訳するか。","targetLanguage.auto":"Steam / ブラウザに合わせる","translation.showCached":"保存済みの翻訳をすぐ表示","translation.showCachedDesc":"翻訳がキャッシュにある場合、ボタンを押さずにすぐ表示します。","translation.scopes":"翻訳する内容","translation.scopesDesc":"翻訳するコンテンツの種類を選択してください。","scope.gameDescription":"ゲームの説明","scope.gameReviews":"ゲームのレビュー","scope.profileComments":"プロフィールのコメント","scope.gameNews":"ニュースとイベント","scope.newsArticle":"ニュース記事ページ","scope.guides":"ガイド","gamepage.title":"ゲームページ","gamepage.desc":"Steamのゲームページを整理:読まないブロックを非表示に。","gamepage.enabled":"ゲームページのブロックを非表示","gamepage.enabledDesc":"ゲームページでブロックを非表示にするマスタースイッチ。","gamepage.blocks":"非表示のブロック","gamepage.blocksDesc":"ゲームページ(ストアのアプリページ)で非表示にするブロックを選択。","block.media":"スクリーンショットとトレーラー","block.purchase":"購入オプションとバンドル","block.description":"このゲームについて","block.dlc":"このゲームのコンテンツ(DLC)","block.sysreq":"システム要件","block.reviews":"ユーザーレビュー","block.curators":"キュレーターの声","block.events":"イベントとお知らせ","block.details":"詳細とサイドバー情報","block.recommendations":"フランチャイズとおすすめ","block.sale":"セールイベントバナー","block.edition":"エディション・バンドル内容","block.earlyaccess":"早期アクセス案内","gamepage.earlyAccess":"早期アクセスブロック","gamepage.earlyAccessDesc":"完全なQ&Aを表示、スリムなヘッダーのみ残す、またはブロック全体を非表示。","earlyAccess.full":"フル","earlyAccess.compact":"コンパクト","earlyAccess.hidden":"非表示","prices.title":"地域別価格","prices.desc":"ゲームページ上でSteam各地域の価格を比較。","prices.enabled":"地域別価格を有効化","prices.enabledDesc":"価格比較ブロックのマスタースイッチ。","prices.autoLoad":"価格を自動的に読み込む","prices.autoLoadDesc":"オフにすると各ゲームページに読み込みボタンが表示されます。","prices.position":"ブロックの位置","prices.positionDesc":"ゲームページ上で比較ブロックを表示する位置。","pricesPos.purchase":"購入オプションの上","pricesPos.sidebar":"サイドバー","pricesPos.description":"説明文の下","prices.sort":"行の順序","prices.sortDesc":"価格順はおおよその為替レートを使用します。","pricesSort.custom":"リスト通り","pricesSort.priceAsc":"安い順","pricesSort.discountDesc":"割引率の高い順","prices.conversion":"通貨換算","prices.conversionDesc":"ライブ為替レートですべての価格を1つの通貨に換算。","prices.convertTo":"表示通貨","prices.convertToDesc":"自動は閲覧中のストアの通貨を使用します。","convertTo.auto":"自動(あなたのストアの通貨)","convertTo.off":"オフ(換算しない)","prices.showConverted":"換算価格を表示","prices.fxCache":"レートキャッシュの保持期間","prices.fxCacheDesc":"為替レートを再取得するまで再利用する期間。","fxTtl.1h":"1 時間","fxTtl.6h":"6 時間","fxTtl.24h":"24 時間","fxTtl.7d":"7 日間","prices.fxCached":"キャッシュ済みレート: {provider}、{date}","prices.fxCacheEmpty":"キャッシュ済みレートはまだありません — ゲームページを一度開いてください。","prices.fxClear":"レートキャッシュをクリア","prices.regions":"比較する地域","prices.regionsDesc":"価格を取得するストア地域(最大24)。","prices.display":"表示","prices.showOriginal":"元の価格","prices.showDiscount":"割引バッジ","prices.showSavings":"あなたの価格との差","prices.highlightCheapest":"最安値をハイライト","prices.showHomeRow":"あなたの価格行","prices.collapsed":"初期状態で折りたたむ","prices.collapsedDesc":"比較ブロックを折りたたんだ状態で表示して省スペース化。ヘッダーのボタンで展開。","prices.colRegion":"地域","prices.colPrice":"価格","prices.colDiscount":"割引","prices.colSavings":"差額","prices.yours":"あなたの価格","prices.cheapest":"最安","prices.load":"価格を読み込む","prices.loading":"価格を読み込み中…","prices.retry":"再試行","prices.failed":"価格を読み込めませんでした","prices.noRegions":"設定で地域を1つ以上選択してください","prices.updated":"更新 {time}","prices.refresh":"価格を更新","prices.collapse":"ブロックを折りたたむ","prices.expand":"ブロックを展開する","prices.fxHint":"為替レート: {provider}({date})。","links.title":"外部リンク","links.desc":"ゲームページから他のストアやデータベースへ素早く移動できます。","links.enabled":"外部リンクを有効化","links.enabledDesc":"外部リンクブロックのマスタースイッチ。","links.position":"ブロックの位置","links.positionDesc":"ゲームページ上のリンクブロックの表示位置。","links.newTab":"新しいタブで開く","links.newTabDesc":"外部リンクを新しいタブで開きます。","links.list":"リンク","links.listDesc":"ゲームページに表示するリンク。解決できないテンプレートはスキップされます。","links.templateHelp":"URLテンプレート:ゲーム名は {name}、Steam IDは {appid}。例:https://store.epicgames.com/en-US/browse?q={name}、https://steamdb.info/app/{appid}/","links.name":"名前","links.namePlaceholder":"GOG","links.url":"リンク先アドレス","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"アイコンアドレス(任意)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"リンクを追加","links.remove":"このリンクを削除","links.moveUp":"上へ移動","links.moveDown":"下へ移動","links.empty":"リンクがありません — 下から追加してください。","links.restore":"デフォルトに戻す","links.preview":"プレビュー","links.open":"開く","dlc.title":"追加コンテンツ","dlc.desc":"ゲームのすべての追加コンテンツを価格と所有状況とともに一覧表示します。","dlc.enabled":"追加コンテンツを有効化","dlc.enabledDesc":"追加コンテンツブロックのマスタースイッチ。","dlc.position":"ブロックの位置","dlc.positionDesc":"ゲームページで追加コンテンツ一覧を表示する位置。","dlcPos.purchase":"購入オプションの上","dlcPos.sidebar":"サイドバー","dlcPos.description":"説明文の下","dlc.sort":"行の順序","dlc.sortDesc":"「未所有を先頭」にすると、まだ所有していない追加コンテンツが上に表示されます。","dlcSort.missing":"未所有を先頭","dlcSort.store":"Steam の順序","dlc.display":"表示","dlc.collapsed":"初期状態で折りたたむ","dlc.collapsedDesc":"スペース節約のため追加コンテンツ一覧を初期状態で折りたたみ、ヘッダーのボタンで展開します。","dlc.showSummary":"所有数のカウンター","dlc.showOwned":"所有済みの追加コンテンツを表示","dlc.showPrices":"価格を表示","dlc.showThumbnails":"追加コンテンツの画像","dlc.showReleaseDate":"リリース日","dlc.viewerSection":"画像ビューアー","dlc.viewer":"クリックで拡大","dlc.viewerDesc":"追加コンテンツの画像をクリックすると内蔵ビューアーが開きます。画面に合わせて表示し、ホイールまたは +/− でズーム、ドラッグで移動、回転、← → で追加コンテンツを切り替え、Esc で閉じます。","dlc.viewerThumbnails":"サムネイル一覧","dlc.viewerLoop":"端で折り返す","dlc.cache":"追加コンテンツのキャッシュ","dlc.cacheDesc":"追加コンテンツの名前・価格・画像・リリース日は1日、所有状況は30分間キャッシュされます。","dlc.clearCache":"追加コンテンツのキャッシュを消去","dlc.cacheCleared":"追加コンテンツのキャッシュを消去しました。","dlc.owned":"所有済み","dlc.free":"無料","dlc.soon":"近日公開","dlc.released":"リリース済み","dlc.summary":"所有 {owned} / {total}","dlc.loading":"追加コンテンツを読み込み中…","dlc.loadingProgress":"追加コンテンツを読み込み中 {done}/{total}…","dlc.failed":"追加コンテンツ一覧を読み込めませんでした","dlc.retry":"再試行","dlc.refresh":"追加コンテンツを更新","dlc.collapse":"ブロックを折りたたむ","dlc.expand":"ブロックを展開する","dlc.updated":"更新 {time}","dlc.empty":"追加コンテンツはありません","dlc.allOwned":"すべての追加コンテンツを所有しています","dlc.loginHint":"所有している追加コンテンツを確認するには Steam にサインインしてください。","dlc.truncated":"最初の {count} 件の追加コンテンツを表示中","region.title":"リージョンバイパス","region.desc":"「お住まいの地域では利用できません」と表示されるページを、匿名ゲスト取得(アカウントCookieなし)で再読み込みします。","region.enabled":"リージョンバイパスを有効化","region.enabledDesc":"ブロックされたページを再読み込みするマスタースイッチ。","region.showBanner":"通知バナーを表示","region.showBannerDesc":"匿名ゲスト取得で読み込んだことを表示します。既定は非表示で、次回リロードから適用されます。","region.mode":"ブロックページでの動作","region.modeDesc":"自動はエラーページを即座に置換、手動は先にボタンを表示します。","regionMode.auto":"自動","regionMode.manual":"ボタンで","region.country":"ストア国(cc)","region.countryDesc":"ゲスト取得用の任意2文字の国コード。空欄で自分の国を使います。","region.searchTitle":"検索","region.searchDesc":"ストアの検索ボックスをSteam Plus検索に置き換えます。評価と価格付きのゲスト結果。","region.searchEnabled":"地域検索を有効化","region.searchEnabledDesc":"ネイティブ検索を隠してこちらを表示します。無効のままではSteam検索は変更されません。","region.searchRows":"結果の行数","region.searchRowsDesc":"オーバーレイ検索ごとに表示するゲーム数。","region.searchNote":"このタブのストア国とプロキシゲートウェイを使用します。国が空の場合、ゲスト結果は自分の結果と同じになり、追加の行は表示されません。","region.searchOpen":"地域検索を開く","region.searchHotkey":"ヒント:ストア内のどこでも / を押すと検索が開きます。","region.proxy":"プロキシゲートウェイ","region.proxyDesc":"IPベースの制限用:制限のない地域のHTTPゲートウェイ経由で匿名取得します。","region.proxyEnabled":"プロキシゲートウェイを使う","region.proxyMode":"ゲートウェイモード","region.proxyModeDesc":"ストアURLをhost:portに付加する方法。","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"ホスト","region.proxyPort":"ポート","region.proxyUser":"ユーザー名","region.proxyPass":"パスワード","region.bannerBadge":"地域ブロック中","region.bannerTitle":"このページはお住まいの地域では利用できません","region.bannerBody":"匿名ゲスト取得で表示しています(アカウントCookieなし)","region.bannerViaProxy":"プロキシ経由","region.reload":"再読み込み","region.retry":"再試行","region.offer":"このページはお住まいの地域でブロックされています。アカウントCookieなしで読み込みますか?","region.offerButton":"ストアページを表示","region.loading":"アカウントCookieなしで読み込み中…","region.errorBlocked":"IP/地域でまだブロックされています。設定でプロキシゲートウェイを制限のない地域に向けてください。","region.errorBlockedProxy":"まだブロックされています。プロキシIPも制限地域の可能性があります — 別の出口を試してください。","region.errorAgeGate":"年齢確認が表示されました。再試行を押してください — 年齢Cookieは自動送信されます。","region.errorFailed":"読み込みに失敗: {error}","search.guestTitle":"他のリージョンで見つかりました ({country})","search.guestHint":"お住まいの地域の検索にありません — ゲスト取得で開きます。","search.title":"全リージョンを検索","search.placeholder":"あらゆる地域のゲームを検索…","search.loading":"検索中…","search.empty":"ゲームが見つかりません。","search.free":"無料","search.advanced":"詳細検索","cache.usage":"ストレージ使用量","cache.contents":"保存済みの翻訳","cache.clear":"キャッシュを消去","cache.cleared":"キャッシュを消去しました({count})","cache.empty":"キャッシュは空です","cache.clearHint":"このブラウザプロファイルに保存されたすべての翻訳を削除します。","cache.listEmpty":"保存済みの翻訳はまだありません——何か翻訳するとここに表示されます。","cache.listMore":"…ほか {count} 件","cache.removeEntry":"この項目を削除","cache.entries":"{count} 件","cache.used":"{used}({count} 件)","cache.free":"空き","cache.pct":"{pct}% 使用中","about.blurb":"Steam ストアやコミュニティページを改善します:キャッシュ付きコンテンツ翻訳など、今後さらに拡充予定。","about.repo":"GitHub","about.repoHint":"ソースコード、更新情報、不具合報告","backup.export":"エクスポート","backup.exportDesc":"現在の設定をすべてJSONファイルに保存、またはクリップボードにコピー。","backup.download":"ファイルをダウンロード","backup.copy":"クリップボードにコピー","backup.copied":"設定をクリップボードにコピーしました。","backup.copyFailed":"クリップボードにアクセスできませんでした。","backup.import":"インポート","backup.importDesc":"エクスポート済みファイルから設定を読み込み。現在の設定は上書きされます。","backup.chooseFile":"ファイルを選択…","backup.importConfirmTitle":"設定をインポートしますか?","backup.importConfirm":"現在の設定はすべてファイルの値で上書きされます。","backup.importDone":"設定をインポートしました。","backup.importInvalid":"設定ファイルではありません:何も変更されませんでした。","toast.saved":"設定を保存しました","toast.rateLimited":"翻訳が制限されています","toast.rateLimitedDesc":"Google がリクエストを制限中です。ブロックは自動で再試行します。後で「再試行」も可能です。","toast.translateFailed":"翻訳に失敗しました","toast.translateFailedDesc":"問題が発生しました。ブロックの「再試行」を押してください。","toast.unknownProvider":"不明な翻訳プロバイダー","toast.unknownProviderDesc":"設定でプロバイダーを確認し、再度保存してください。","toast.cacheCleared":"翻訳先言語を変更したため、翻訳キャッシュを消去しました。","translate.button":"翻訳","translate.original":"原文","translate.loading":"翻訳中…","translate.loadingShort":"翻訳中","translate.error":"翻訳エラー","translate.retry":"再試行","viewer.title":"画像ビューアー","viewer.close":"閉じる","viewer.prev":"前の画像","viewer.next":"次の画像","viewer.zoomIn":"拡大","viewer.zoomOut":"縮小","viewer.reset":"ズームと回転をリセット","viewer.rotate":"回転","viewer.counter":"{current} / {total}","viewer.failed":"画像を読み込めませんでした","viewer.open":"画像を開く","viewer.thumbs":"画像","viewer.hint":"ホイールまたは +/− でズーム · ドラッグで移動 · ← → で切り替え · Esc で閉じる","queue.addToWishlist":"ウィッシュリストに追加","queue.onWishlist":"ウィッシュリスト登録済み","queue.addedNotice":"アイテムをウィッシュリストに追加しました!","queue.oops":"申し訳ありません!","queue.follow":"フォロー","queue.following":"フォロー中","queue.ignore":"無視","queue.ignored":"無視中","queue.viewQueue":"キューを見る","queue.manageWishlist":"ウィッシュリストを管理","queue.removeWishlist":"ウィッシュリストから削除","queue.ignoreDefault":"これを無視(デフォルト)","queue.ignoreDefaultSub":"ストアで非表示にし、通知を無視して、他のおすすめ生成に使用しません。","queue.playedElsewhere":"他のプラットフォームでプレイ済み","queue.playedElsewhereSub":"ストアで非表示にします。おすすめ生成に使用できます。","queue.actionFailed":"変更を保存できませんでした","queue.actionFailedDesc":"変更の保存中に問題が発生しました。後でもう一度お試しください。"},ko:{"menu.settings":"설정 Steam Plus","tab.general":"일반","tab.translation":"번역","tab.gamepage":"게임 페이지","tab.prices":"가격","tab.cache":"캐시","tab.about":"스크립트 정보","tab.backup":"백업","tab.general.desc":"인터페이스 언어와 알림.","tab.translation.desc":"설명, 평가, 댓글, 뉴스를 번역합니다.","tab.gamepage.desc":"게임 페이지에서 불필요한 블록을 숨깁니다.","tab.prices.desc":"지역별 가격을 비교하고 통화를 환산합니다.","tab.links":"외부 링크","tab.links.desc":"다른 상점과 데이터베이스로 바로 이동.","tab.dlc":"추가 콘텐츠","tab.dlc.desc":"가격과 보유 여부가 표시된 DLC 목록.","tab.region":"지역","tab.region.desc":"내 지역에서 차단된 상점 페이지를 불러옵니다.","tab.cache.desc":"저장된 번역과 저장 공간 사용량.","tab.about.desc":"버전, 작성자, 소스 코드.","tab.backup.desc":"설정을 파일로 내보내고 가져오기.","panel.subtitle":"번역 · 게임 페이지 · 가격 · 링크 · 추가 콘텐츠 · 지역 · 캐시 · 백업 · 인터페이스","panel.back":"뒤로","common.on":"켜짐","common.off":"꺼짐","common.auto":"자동","common.close":"닫기","common.cancel":"취소","common.save":"저장","common.reset":"기본값으로 초기화","common.saved":"저장됨","common.settings":"설정","general.language":"인터페이스 언어","general.languageDesc":"Steam Plus 설정 패널의 언어입니다.","general.saveHint":"아래의 저장 버튼을 누르면 변경 사항이 적용됩니다.","reset.confirm":"모든 설정을 기본값으로 되돌릴까요?","general.toasts":"알림","toasts.enabled":"팝업 알림","toasts.enabledDesc":"설정 및 번역의 성공/오류 팝업을 표시합니다.","toasts.position":"화면 위치","toasts.duration":"자동 숨김 (초)","toasts.durationDesc":"0 = 직접 닫을 때까지 유지.","toastPos.bottom-right":"오른쪽 아래","toastPos.bottom-left":"왼쪽 아래","toastPos.top-right":"오른쪽 위","toastPos.top-left":"왼쪽 위","translation.title":"번역","translation.behavior":"동작","translation.desc":"Steam 콘텐츠 번역: 설명, 리뷰, 댓글, 뉴스.","translation.enabled":"번역 사용","translation.enabledDesc":"번역 기능의 전체 스위치입니다.","translation.provider":"번역 공급자","translation.providerDesc":"텍스트 번역에 사용할 서비스입니다.","provider.google-free":"Google (무료)","translation.trigger":"번역 모드","translation.triggerDesc":"콘텐츠가 나타날 때 자동으로 번역하거나 버튼으로 번역합니다.","trigger.auto":"자동","trigger.manual":"버튼으로","translation.display":"번역 표시 방식","translation.displayDesc":"원본 텍스트를 대체하거나 아래에 번역을 표시합니다.","display.below":"원본 아래에 표시","display.replace":"텍스트 대체","translation.targetLanguage":"번역 언어","translation.targetLanguageDesc":"콘텐츠를 어떤 언어로 번역할지 지정합니다.","targetLanguage.auto":"Steam / 브라우저와 동일","translation.showCached":"저장된 번역 즉시 표시","translation.showCachedDesc":"번역이 캐시에 있으면 버튼을 누르지 않아도 바로 표시됩니다.","translation.scopes":"번역 대상","translation.scopesDesc":"번역할 콘텐츠 유형을 선택하세요.","scope.gameDescription":"게임 설명","scope.gameReviews":"게임 리뷰","scope.profileComments":"프로필 댓글","scope.gameNews":"뉴스 및 이벤트","scope.newsArticle":"뉴스 기사 페이지","scope.guides":"가이드","gamepage.title":"게임 페이지","gamepage.desc":"Steam 게임 페이지를 정리하세요: 읽지 않는 블록을 숨기세요.","gamepage.enabled":"게임 페이지 블록 숨기기","gamepage.enabledDesc":"게임 페이지에서 블록을 숨기는 마스터 스위치.","gamepage.blocks":"숨긴 블록","gamepage.blocksDesc":"게임 페이지(상점 앱 페이지)에서 숨길 블록을 선택하세요.","block.media":"스크린샷 & 트레일러","block.purchase":"구매 옵션 & 번들","block.description":"이 게임에 대해","block.dlc":"이 게임의 콘텐츠(DLC)","block.sysreq":"시스템 요구 사항","block.reviews":"사용자 리뷰","block.curators":"큐레이터 평가","block.events":"이벤트 & 공지","block.details":"세부 정보 & 사이드바","block.recommendations":"프랜차이즈 & 추천","block.sale":"세일 이벤트 배너","block.edition":"에디션 & 번들 구성","block.earlyaccess":"앞서 해보기 안내","gamepage.earlyAccess":"앞서 해보기 블록","gamepage.earlyAccessDesc":"전체 Q&A 표시, 슬림 헤더만 유지, 또는 블록 전체 숨기기.","earlyAccess.full":"전체","earlyAccess.compact":"간략히","earlyAccess.hidden":"숨김","prices.title":"지역별 가격","prices.desc":"게임 페이지에서 Steam 지역별 게임 가격을 비교하세요.","prices.enabled":"지역별 가격 사용","prices.enabledDesc":"가격 비교 블록의 마스터 스위치.","prices.autoLoad":"가격 자동 불러오기","prices.autoLoadDesc":"끄면 각 게임 페이지에 불러오기 버튼이 표시됩니다.","prices.position":"블록 위치","prices.positionDesc":"게임 페이지에서 비교 블록이 표시될 위치.","pricesPos.purchase":"구매 옵션 위","pricesPos.sidebar":"사이드바","pricesPos.description":"설명 아래","prices.sort":"행 순서","prices.sortDesc":"가격순은 근사 환율을 사용합니다.","pricesSort.custom":"목록 순서대로","pricesSort.priceAsc":"낮은 가격부터","pricesSort.discountDesc":"높은 할인부터","prices.conversion":"통화 변환","prices.conversionDesc":"실시간 환율로 모든 가격을 하나의 통화로 변환합니다.","prices.convertTo":"표시 통화","prices.convertToDesc":"자동은 보고 있는 상점의 통화를 사용합니다.","convertTo.auto":"자동(내 상점 통화)","convertTo.off":"끔(변환 안 함)","prices.showConverted":"변환 가격 표시","prices.fxCache":"환율 캐시 유지 기간","prices.fxCacheDesc":"환율을 새로 요청하기 전까지 재사용하는 기간.","fxTtl.1h":"1시간","fxTtl.6h":"6시간","fxTtl.24h":"24시간","fxTtl.7d":"7일","prices.fxCached":"캐시된 환율: {provider}, {date}","prices.fxCacheEmpty":"캐시된 환율이 없습니다 — 게임 페이지를 한 번 여세요.","prices.fxClear":"환율 캐시 지우기","prices.regions":"비교 지역","prices.regionsDesc":"가격을 불러올 상점 지역(최대 24개).","prices.display":"표시","prices.showOriginal":"원래 가격","prices.showDiscount":"할인 배지","prices.showSavings":"내 가격 대비 절약","prices.highlightCheapest":"최저가 강조","prices.showHomeRow":"내 가격 행","prices.collapsed":"기본적으로 접기","prices.collapsedDesc":"비교 블록을 접힌 상태로 시작해 공간을 절약하세요. 헤더 버튼으로 펼칠 수 있습니다.","prices.colRegion":"지역","prices.colPrice":"가격","prices.colDiscount":"할인","prices.colSavings":"절약","prices.yours":"내 가격","prices.cheapest":"최저","prices.load":"가격 불러오기","prices.loading":"가격 불러오는 중…","prices.retry":"다시 시도","prices.failed":"가격을 불러오지 못했습니다","prices.noRegions":"설정에서 지역을 하나 이상 선택하세요","prices.updated":"{time} 업데이트","prices.refresh":"가격 새로고침","prices.collapse":"블록 접기","prices.expand":"블록 펼치기","prices.fxHint":"환율: {provider} ({date}).","links.title":"외부 링크","links.desc":"게임 페이지에서 다른 상점과 데이터베이스로 바로 이동합니다.","links.enabled":"외부 링크 사용","links.enabledDesc":"외부 링크 블록의 마스터 스위치.","links.position":"블록 위치","links.positionDesc":"게임 페이지에서 링크 블록이 표시될 위치.","links.newTab":"새 탭에서 열기","links.newTabDesc":"외부 링크를 새 탭에서 엽니다.","links.list":"링크","links.listDesc":"게임 페이지에 표시되는 링크. 해석할 수 없는 템플릿은 건너뜁니다.","links.templateHelp":"URL 템플릿: 게임 이름은 {name}, Steam id는 {appid}. 예: https://store.epicgames.com/en-US/browse?q={name} 또는 https://steamdb.info/app/{appid}/","links.name":"이름","links.namePlaceholder":"GOG","links.url":"링크 주소","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"아이콘 주소(선택)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"링크 추가","links.remove":"이 링크 삭제","links.moveUp":"위로 이동","links.moveDown":"아래로 이동","links.empty":"링크가 없습니다 — 아래에서 추가하세요.","links.restore":"기본값으로 복원","links.preview":"미리 보기","links.open":"열기","dlc.title":"추가 콘텐츠","dlc.desc":"게임의 모든 추가 콘텐츠를 가격과 보유 여부와 함께 표시합니다.","dlc.enabled":"추가 콘텐츠 사용","dlc.enabledDesc":"추가 콘텐츠 블록의 마스터 스위치.","dlc.position":"블록 위치","dlc.positionDesc":"게임 페이지에서 추가 콘텐츠 목록이 표시될 위치.","dlcPos.purchase":"구매 옵션 위","dlcPos.sidebar":"사이드바","dlcPos.description":"설명 아래","dlc.sort":"행 순서","dlc.sortDesc":"“보유하지 않음 우선”은 보유하지 않은 추가 콘텐츠를 맨 위에 표시합니다.","dlcSort.missing":"보유하지 않음 우선","dlcSort.store":"Steam 순서","dlc.display":"표시","dlc.collapsed":"기본적으로 접기","dlc.collapsedDesc":"공간을 절약하기 위해 추가 콘텐츠 목록을 기본적으로 접습니다. 헤더 버튼으로 펼칠 수 있습니다.","dlc.showSummary":"보유 개수","dlc.showOwned":"보유한 추가 콘텐츠 표시","dlc.showPrices":"가격 표시","dlc.showThumbnails":"추가 콘텐츠 이미지","dlc.showReleaseDate":"출시일","dlc.viewerSection":"이미지 뷰어","dlc.viewer":"클릭하여 확대","dlc.viewerDesc":"추가 콘텐츠 이미지를 클릭하면 내장 뷰어가 열립니다: 화면에 맞춤, 휠 또는 +/−로 확대/축소, 드래그하여 이동, 회전, ← →로 모든 추가 콘텐츠 탐색, Esc로 닫기.","dlc.viewerThumbnails":"썸네일 스트립","dlc.viewerLoop":"순환","dlc.cache":"추가 콘텐츠 캐시","dlc.cacheDesc":"추가 콘텐츠 정보(이름, 가격, 이미지, 출시일)는 하루, 보유 여부는 30분 동안 캐시됩니다.","dlc.clearCache":"추가 콘텐츠 캐시 지우기","dlc.cacheCleared":"추가 콘텐츠 캐시를 지웠습니다.","dlc.owned":"보유","dlc.free":"무료","dlc.soon":"출시 예정","dlc.released":"출시됨","dlc.summary":"전체 {total}개 중 {owned}개 보유","dlc.loading":"추가 콘텐츠 불러오는 중…","dlc.loadingProgress":"추가 콘텐츠 불러오는 중 {done}/{total}…","dlc.failed":"추가 콘텐츠 목록을 불러오지 못했습니다","dlc.retry":"다시 시도","dlc.refresh":"추가 콘텐츠 새로고침","dlc.collapse":"블록 접기","dlc.expand":"블록 펼치기","dlc.updated":"{time} 업데이트","dlc.empty":"추가 콘텐츠 없음","dlc.allOwned":"모든 추가 콘텐츠를 보유하고 있습니다","dlc.loginHint":"Steam에 로그인하여 어떤 추가 콘텐츠를 보유했는지 확인하세요.","dlc.truncated":"처음 {count}개 추가 콘텐츠 표시","region.title":"지역 차단 우회","region.desc":"“해당 지역에서 이용할 수 없음” 페이지를 익명 게스트 요청(계정 쿠키 없음)으로 다시 불러옵니다.","region.enabled":"지역 차단 우회 사용","region.enabledDesc":"차단된 상점 페이지를 다시 불러오는 마스터 스위치.","region.showBanner":"알림 배너 표시","region.showBannerDesc":"익명 게스트 요청으로 불러왔음을 표시합니다. 기본적으로 숨겨져 있으며 다음 새로고침부터 적용됩니다.","region.mode":"차단된 페이지에서","region.modeDesc":"자동은 오류 페이지를 즉시 교체하고, 수동은 먼저 버튼을 보여줍니다.","regionMode.auto":"자동","regionMode.manual":"버튼으로","region.country":"상점 국가 (cc)","region.countryDesc":"게스트 요청용 두 글자 국가 코드(선택). 비우면 내 국가를 사용합니다.","region.searchTitle":"검색","region.searchDesc":"상점 검색창을 Steam Plus 검색으로 교체합니다. 평가와 가격이 포함된 게스트 결과.","region.searchEnabled":"지역 검색 사용","region.searchEnabledDesc":"네이티브 검색을 숨기고 이 검색을 표시합니다. 끄면 Steam 검색이 그대로 유지됩니다.","region.searchRows":"결과 행 수","region.searchRowsDesc":"오버레이 검색마다 표시할 게임 수.","region.searchNote":"이 탭의 상점 국가와 프록시 게이트웨이를 사용합니다. 국가가 비어 있으면 게스트 결과가 내 결과와 같아 추가 행이 나타나지 않습니다.","region.searchOpen":"지역 검색 열기","region.searchHotkey":"팁: 상점 어디에서나 /를 누르면 검색이 열립니다.","region.proxy":"프록시 게이트웨이","region.proxyDesc":"IP 기반 차단용: 제한 없는 지역의 HTTP 게이트웨이를 경유해 익명으로 요청합니다.","region.proxyEnabled":"프록시 게이트웨이 사용","region.proxyMode":"게이트웨이 모드","region.proxyModeDesc":"상점 URL을 host:port에 덧붙이는 방식.","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"호스트","region.proxyPort":"포트","region.proxyUser":"사용자 이름","region.proxyPass":"비밀번호","region.bannerBadge":"지역 차단됨","region.bannerTitle":"이 페이지는 해당 지역에서 이용할 수 없습니다","region.bannerBody":"익명 게스트 요청으로 표시 중 (계정 쿠키 없음)","region.bannerViaProxy":"프록시 경유","region.reload":"새로고침","region.retry":"다시 시도","region.offer":"이 페이지는 해당 지역에서 차단되었습니다. 계정 쿠키 없이 불러올까요?","region.offerButton":"상점 페이지 표시","region.loading":"계정 쿠키 없이 불러오는 중…","region.errorBlocked":"IP/지역에 의해 계속 차단됩니다. 설정에서 제한 없는 지역으로 프록시 게이트웨이를 지정하세요.","region.errorBlockedProxy":"계속 차단됩니다. 프록시 IP도 제한 지역일 수 있습니다 — 다른 출구를 시도하세요.","region.errorAgeGate":"연령 확인이 표시되었습니다. 다시 시도를 누르세요 — 연령 쿠키는 자동으로 전송됩니다.","region.errorFailed":"불러오기 실패: {error}","search.guestTitle":"다른 지역에서 찾음 ({country})","search.guestHint":"내 지역 검색에 없음 — 게스트 가져오기로 열립니다.","search.title":"모든 지역 검색","search.placeholder":"모든 지역에서 게임 검색…","search.loading":"검색 중…","search.empty":"게임을 찾을 수 없습니다.","search.free":"무료","search.advanced":"고급 검색","cache.usage":"저장 공간 사용량","cache.contents":"저장된 번역","cache.clear":"캐시 지우기","cache.cleared":"캐시를 지웠습니다({count})","cache.empty":"캐시가 비어 있습니다","cache.clearHint":"이 브라우저 프로필에 저장된 모든 번역을 삭제합니다.","cache.listEmpty":"저장된 번역이 아직 없습니다 — 콘텐츠를 번역하면 여기에 표시됩니다.","cache.listMore":"…외 {count}개","cache.removeEntry":"이 항목 삭제","cache.entries":"{count}개 항목","cache.used":"{used} · {count}개 항목","cache.free":"여유","cache.pct":"{pct}% 사용 중","about.blurb":"Steam 상점 및 커뮤니티 페이지를 개선합니다: 캐시를 갖춘 콘텐츠 번역 등 আরও 많은 기능을 준비 중입니다.","about.repo":"GitHub","about.repoHint":"소스 코드, 업데이트 및 문제 보고","backup.export":"내보내기","backup.exportDesc":"현재 모든 설정을 JSON 파일로 저장하거나 클립보드에 복사.","backup.download":"파일 다운로드","backup.copy":"클립보드에 복사","backup.copied":"설정이 클립보드에 복사되었습니다.","backup.copyFailed":"클립보드에 접근할 수 없습니다.","backup.import":"가져오기","backup.importDesc":"내보낸 파일에서 설정을 불러옵니다. 현재 설정은 덮어씁니다.","backup.chooseFile":"파일 선택…","backup.importConfirmTitle":"설정을 가져오겠습니까?","backup.importConfirm":"현재 모든 설정이 파일의 값으로 덮어씁니다.","backup.importDone":"설정을 가져왔습니다.","backup.importInvalid":"설정 파일이 아닙니다. 변경된 내용이 없습니다.","toast.saved":"설정이 저장되었습니다","toast.rateLimited":"번역이 제한됨","toast.rateLimitedDesc":"Google에서 요청을 제한하고 있습니다. 자동으로 다시 시도되며, 나중에 다시 시도를 눌러도 됩니다.","toast.translateFailed":"번역 실패","toast.translateFailedDesc":"문제가 발생했습니다. 블록에서 다시 시도를 눌러주세요.","toast.unknownProvider":"알 수 없는 번역 제공자","toast.unknownProviderDesc":"설정에서 제공자를 확인하고 다시 저장하세요.","toast.cacheCleared":"번역 언어가 변경되어 번역 캐시를 지웠습니다.","translate.button":"번역","translate.original":"원본","translate.loading":"번역 중…","translate.loadingShort":"번역 중","translate.error":"번역 오류","translate.retry":"다시 시도","viewer.title":"이미지 뷰어","viewer.close":"닫기","viewer.prev":"이전 이미지","viewer.next":"다음 이미지","viewer.zoomIn":"확대","viewer.zoomOut":"축소","viewer.reset":"확대/회전 초기화","viewer.rotate":"회전","viewer.counter":"{current} / {total}","viewer.failed":"이미지를 불러올 수 없습니다","viewer.open":"이미지 열기","viewer.thumbs":"이미지","viewer.hint":"휠 또는 +/−로 확대/축소 · 드래그하여 이동 · ← →로 탐색 · Esc로 닫기","queue.addToWishlist":"찜 목록에 추가","queue.onWishlist":"찜 목록에 있음","queue.addedNotice":"아이템이 찜 목록에 추가되었습니다!","queue.oops":"앗, 죄송합니다!","queue.follow":"팔로우","queue.following":"팔로우 중","queue.ignore":"무시","queue.ignored":"무시 중","queue.viewQueue":"대기열 보기","queue.manageWishlist":"찜 목록 관리","queue.removeWishlist":"찜 목록에서 제거","queue.ignoreDefault":"이 항목 무시(기본값)","queue.ignoreDefaultSub":"스토어에서 숨기고, 알림을 무시하며, 다른 추천 생성에 사용하지 않습니다.","queue.playedElsewhere":"다른 플랫폼에서 플레이함","queue.playedElsewhereSub":"스토어에서 숨깁니다. 추천 생성에 사용할 수 있습니다.","queue.actionFailed":"변경 사항을 저장할 수 없습니다","queue.actionFailedDesc":"변경 사항을 저장하는 중 문제가 발생했습니다. 나중에 다시 시도해 주세요."},pl:{"menu.settings":"Ustawienia Steam Plus","tab.general":"Ogólne","tab.translation":"Tłumaczenie","tab.gamepage":"Strona gry","tab.prices":"Ceny","tab.cache":"Pamięć podręczna","tab.about":"O skrypcie","tab.backup":"Kopia zapasowa","tab.general.desc":"Język interfejsu i powiadomienia.","tab.translation.desc":"Tłumaczy opisy, recenzje, komentarze i wiadomości.","tab.gamepage.desc":"Ukrywa niepotrzebne bloki na stronach gier.","tab.prices.desc":"Porównuje ceny regionalne i przelicza waluty.","tab.links":"Linki zewnętrzne","tab.links.desc":"Szybkie linki do innych sklepów i baz danych.","tab.dlc":"Dodatki","tab.dlc.desc":"Lista DLC z cenami i informacją o posiadaniu.","tab.region":"Region","tab.region.desc":"Wczytuje strony sklepu zablokowane w twoim regionie.","tab.cache.desc":"Zapisane tłumaczenia i wykorzystanie pamięci.","tab.about.desc":"Wersja, autor i kod źródłowy.","tab.backup.desc":"Eksportuj ustawienia do pliku i importuj je z powrotem.","panel.subtitle":"Tłumaczenie · strona gry · ceny · linki · dodatki · region · pamięć podręczna · kopia · interfejs","panel.back":"Wstecz","common.on":"Wł.","common.off":"Wył.","common.auto":"Automatycznie","common.close":"Zamknij","common.cancel":"Anuluj","common.save":"Zapisz","common.reset":"Przywróć domyślne","common.saved":"Zapisano","common.settings":"Ustawienia","general.language":"Język interfejsu","general.languageDesc":"Język panelu ustawień Steam Plus.","general.saveHint":"Zmiany zostaną zastosowane po naciśnięciu Zapisz poniżej.","reset.confirm":"Przywrócić wszystkie ustawienia do wartości domyślnych?","general.toasts":"Powiadomienia","toasts.enabled":"Wyskakujące powiadomienia","toasts.enabledDesc":"Pokazuj wyskakujące powiadomienia o sukcesach i błędach ustawień i tłumaczeń.","toasts.position":"Położenie na ekranie","toasts.duration":"Ukrywaj po (sekund)","toasts.durationDesc":"0 = pozostaje do ręcznego zamknięcia.","toastPos.bottom-right":"Prawy dół","toastPos.bottom-left":"Lewy dół","toastPos.top-right":"Prawa góra","toastPos.top-left":"Lewa góra","translation.title":"Tłumaczenie","translation.behavior":"Zachowanie","translation.desc":"Tłumaczenie treści Steam: opisów, recenzji, komentarzy i aktualności.","translation.enabled":"Tłumaczenie włączone","translation.enabledDesc":"Główny przełącznik funkcji tłumaczenia.","translation.provider":"Dostawca tłumaczeń","translation.providerDesc":"Usługa używana do tłumaczenia tekstów.","provider.google-free":"Google (darmowy)","translation.trigger":"Tryb tłumaczenia","translation.triggerDesc":"Tłumacz automatycznie po pojawieniu się treści lub przyciskiem.","trigger.auto":"Automatycznie","trigger.manual":"Przyciskiem","translation.display":"Wyświetlanie tłumaczenia","translation.displayDesc":"Zamieniać oryginalny tekst lub pokazywać tłumaczenie pod nim.","display.below":"Pod oryginałem","display.replace":"Zamieniaj tekst","translation.targetLanguage":"Język tłumaczenia","translation.targetLanguageDesc":"Na jaki język tłumaczyć treści.","targetLanguage.auto":"Jak Steam / przeglądarka","translation.showCached":"Pokazuj zapisane tłumaczenia od razu","translation.showCachedDesc":"Jeśli tłumaczenie jest w pamięci, pokaż je bez klikania przycisku.","translation.scopes":"Co tłumaczyć","translation.scopesDesc":"Wybierz rodzaje treści do tłumaczenia.","scope.gameDescription":"Opisy gier","scope.gameReviews":"Recenzje gier","scope.profileComments":"Komentarze w profilu","scope.gameNews":"Aktualności i wydarzenia","scope.newsArticle":"Strony wiadomości","scope.guides":"Poradniki","gamepage.title":"Strona gry","gamepage.desc":"Uporządkuj strony gier Steam: ukrywaj bloki, których nigdy nie czytasz.","gamepage.enabled":"Ukrywaj bloki strony gry","gamepage.enabledDesc":"Główny przełącznik ukrywania bloków na stronach gier.","gamepage.blocks":"Ukryte bloki","gamepage.blocksDesc":"Wybierz bloki do ukrycia na stronach gier (strony aplikacji sklepu).","block.media":"Zrzuty ekranu i zwiastuny","block.purchase":"Opcje zakupu i pakiety","block.description":"O tej grze","block.dlc":"Zawartość do tej gry (DLC)","block.sysreq":"Wymagania systemowe","block.reviews":"Recenzje użytkowników","block.curators":"Co mówią kuratorzy","block.events":"Wydarzenia i ogłoszenia","block.details":"Szczegóły i panel boczny","block.recommendations":"Franczyza i rekomendacje","block.sale":"Banner wydarzenia wyprzedaży","block.edition":"Zawartość edycji i pakietów","block.earlyaccess":"Pasek wczesnego dostępu","gamepage.earlyAccess":"Blok wczesnego dostępu","gamepage.earlyAccessDesc":"Pokaż pełne Q&A, zostaw tylko zwarty nagłówek albo ukryj cały blok.","earlyAccess.full":"Pełny","earlyAccess.compact":"Zwarty","earlyAccess.hidden":"Ukryty","prices.title":"Ceny regionalne","prices.desc":"Porównuj cenę gry w regionach Steam bezpośrednio na stronie gry.","prices.enabled":"Ceny regionalne włączone","prices.enabledDesc":"Główny przełącznik bloku porównania cen.","prices.autoLoad":"Wczytuj ceny automatycznie","prices.autoLoadDesc":"Wyłączone pokazuje przycisk wczytywania na każdej stronie gry.","prices.position":"Położenie bloku","prices.positionDesc":"Gdzie blok porównania pojawia się na stronach gier.","pricesPos.purchase":"Nad opcjami zakupu","pricesPos.sidebar":"Panel boczny","pricesPos.description":"Pod opisem","prices.sort":"Kolejność wierszy","prices.sortDesc":"Kolejność cen używa przybliżonych kursów walut.","pricesSort.custom":"Jak na liście","pricesSort.priceAsc":"Najpierw najtańsze","pricesSort.discountDesc":"Najpierw największe rabaty","prices.conversion":"Przeliczanie walut","prices.conversionDesc":"Przelicza wszystkie ceny na jedną walutę po kursach na żywo.","prices.convertTo":"Waluta wyświetlania","prices.convertToDesc":"Auto używa waluty przeglądanego sklepu.","convertTo.auto":"Auto (waluta twojego sklepu)","convertTo.off":"Nie (bez przeliczania)","prices.showConverted":"Pokazuj cenę po przeliczeniu","prices.fxCache":"Czas cache kursów","prices.fxCacheDesc":"Jak długo kursy są używane ponownie przed nowym zapytaniem.","fxTtl.1h":"1 godzina","fxTtl.6h":"6 godzin","fxTtl.24h":"24 godziny","fxTtl.7d":"7 dni","prices.fxCached":"Kursy w cache: {provider}, {date}","prices.fxCacheEmpty":"Brak kursów w cache — otwórz raz dowolną stronę gry.","prices.fxClear":"Wyczyść cache kursów","prices.regions":"Porównywane regiony","prices.regionsDesc":"Regiony sklepu, dla których wczytywać ceny (do 24).","prices.display":"Wyświetlanie","prices.showOriginal":"Cena pierwotna","prices.showDiscount":"Odznaka rabatu","prices.showSavings":"Oszczędność względem twojej ceny","prices.highlightCheapest":"Wyróżnij najtańszy","prices.showHomeRow":"Wiersz twojej ceny","prices.collapsed":"Zaczynaj zwinięty","prices.collapsedDesc":"Blok porównania jest domyślnie zwinięty, aby zajmować mniej miejsca; rozwiń go przyciskiem w nagłówku.","prices.colRegion":"Region","prices.colPrice":"Cena","prices.colDiscount":"Rabat","prices.colSavings":"Oszczędność","prices.yours":"Twoja cena","prices.cheapest":"Najniższa","prices.load":"Wczytaj ceny","prices.loading":"Wczytywanie cen…","prices.retry":"Ponów","prices.failed":"Nie udało się wczytać cen","prices.noRegions":"Wybierz co najmniej jeden region w ustawieniach","prices.updated":"Zaktualizowano {time}","prices.refresh":"Odśwież ceny","prices.collapse":"Zwiń blok","prices.expand":"Rozwiń blok","prices.fxHint":"Kursy walut: {provider} ({date}).","links.title":"Linki zewnętrzne","links.desc":"Szybkie linki do innych sklepów i baz danych na stronie gry.","links.enabled":"Linki zewnętrzne włączone","links.enabledDesc":"Główny przełącznik bloku linków zewnętrznych.","links.position":"Pozycja bloku","links.positionDesc":"Gdzie blok linków pojawia się na stronach gier.","links.newTab":"Otwieraj w nowej karcie","links.newTabDesc":"Otwieraj linki zewnętrzne w nowej karcie.","links.list":"Linki","links.listDesc":"Linki wyświetlane na stronach gier. Nierozpoznane szablony są pomijane.","links.templateHelp":"Szablon URL: {name} — tytuł gry, {appid} — id Steam. Np.: https://store.epicgames.com/en-US/browse?q={name} lub https://steamdb.info/app/{appid}/","links.name":"Nazwa","links.namePlaceholder":"GOG","links.url":"Adres linku","links.urlPlaceholder":"https://www.gog.com/games?query={name}","links.icon":"Adres ikony (opcjonalnie)","links.iconPlaceholder":"https://www.gog.com/favicon.ico","links.add":"Dodaj link","links.remove":"Usuń ten link","links.moveUp":"Przenieś w górę","links.moveDown":"Przenieś w dół","links.empty":"Brak linków — dodaj poniżej.","links.restore":"Przywróć domyślne","links.preview":"Podgląd","links.open":"Otwórz","dlc.title":"Zawartość dodatkowa","dlc.desc":"Wyświetla wszystkie dodatki do gry wraz z ceną i informacją, czy już je posiadasz.","dlc.enabled":"Zawartość dodatkowa włączona","dlc.enabledDesc":"Główny przełącznik bloku zawartości dodatkowej.","dlc.position":"Położenie bloku","dlc.positionDesc":"Gdzie lista dodatków pojawia się na stronach gier.","dlcPos.purchase":"Nad opcjami zakupu","dlcPos.sidebar":"Panel boczny","dlcPos.description":"Pod opisem","dlc.sort":"Kolejność wierszy","dlc.sortDesc":"„Najpierw nieposiadane” umieszcza brakujące dodatki na górze.","dlcSort.missing":"Najpierw nieposiadane","dlcSort.store":"Kolejność Steam","dlc.display":"Wyświetlanie","dlc.collapsed":"Zaczynaj zwinięty","dlc.collapsedDesc":"Lista dodatków jest domyślnie zwinięta, aby zajmować mniej miejsca; rozwiń ją przyciskiem w nagłówku.","dlc.showSummary":"Licznik posiadanych","dlc.showOwned":"Pokazuj posiadane dodatki","dlc.showPrices":"Pokazuj ceny","dlc.showThumbnails":"Obrazki dodatków","dlc.showReleaseDate":"Daty wydania","dlc.viewerSection":"Przeglądarka obrazów","dlc.viewer":"Powiększ po kliknięciu","dlc.viewerDesc":"Kliknij obrazek dodatku, aby otworzyć wbudowaną przeglądarkę: dopasowanie do ekranu, powiększanie kółkiem lub +/−, przeciągnij, aby przesunąć, obróć, ← → aby przeglądać dodatki, Esc aby zamknąć.","dlc.viewerThumbnails":"Pasek miniatur","dlc.viewerLoop":"Zapętl","dlc.cache":"Pamięć podręczna dodatków","dlc.cacheDesc":"Dane dodatków (nazwy, ceny, obrazki, daty wydania) są zapisywane na dobę, informacja o posiadaniu na 30 minut.","dlc.clearCache":"Wyczyść pamięć podręczną dodatków","dlc.cacheCleared":"Pamięć podręczna dodatków wyczyszczona.","dlc.owned":"Posiadane","dlc.free":"Darmowe","dlc.soon":"Wkrótce","dlc.released":"Wydane","dlc.summary":"Posiadasz {owned} z {total}","dlc.loading":"Wczytywanie dodatków…","dlc.loadingProgress":"Wczytywanie dodatków {done}/{total}…","dlc.failed":"Nie udało się wczytać listy dodatków","dlc.retry":"Ponów","dlc.refresh":"Odśwież dodatki","dlc.collapse":"Zwiń blok","dlc.expand":"Rozwiń blok","dlc.updated":"Zaktualizowano {time}","dlc.empty":"Brak zawartości dodatkowej","dlc.allOwned":"Wszystkie dodatki są posiadane","dlc.loginHint":"Zaloguj się do Steam, aby zobaczyć, które dodatki posiadasz.","dlc.truncated":"Pokazywanie pierwszych {count} dodatków","region.title":"Obejście blokady regionu","region.desc":"Ponownie wczytuje strony z błędem „niedostępne w twoim regionie” anonimowym żądaniem gościa (bez cookies konta).","region.enabled":"Obejście blokady regionu","region.enabledDesc":"Główny przełącznik ponownego wczytywania zablokowanych stron.","region.showBanner":"Pokazuj pasek powiadomienia","region.showBannerDesc":"Pokazuje, że strona pochodzi z anonimowego żądania gościa. Domyślnie ukryte; działa od następnego przeładowania.","region.mode":"Na zablokowanych stronach","region.modeDesc":"Auto od razu podmienia stronę błędu; ręcznie pokazuje najpierw przycisk.","regionMode.auto":"Automatycznie","regionMode.manual":"Przyciskiem","region.country":"Kraj sklepu (cc)","region.countryDesc":"Opcjonalny dwuliterowy kod kraju dla żądań gościa. Puste zachowuje twój kraj.","region.searchTitle":"Wyszukiwanie","region.searchDesc":"Zastępuje wyszukiwarkę sklepu wyszukiwaniem Steam Plus: wyniki gościa z ocenami i cenami.","region.searchEnabled":"Wyszukiwanie regionalne włączone","region.searchEnabledDesc":"Ukrywa natywną wyszukiwarkę i pokazuje naszą. Wyłączona zostawia wyszukiwarkę Steam nietkniętą.","region.searchRows":"Wiersze wyników","region.searchRowsDesc":"Ile gier pokazuje każde wyszukiwanie w nakładce.","region.searchNote":"Używa kraju sklepu i bramy proxy z tej karty. Przy pustym kraju wynik gościa jest taki sam jak twój — dodatkowe wiersze się nie pojawią.","region.searchOpen":"Otwórz wyszukiwanie regionalne","region.searchHotkey":"Wskazówka: naciśnij / w dowolnym miejscu sklepu, aby otworzyć wyszukiwarkę.","region.proxy":"Gateway proxy","region.proxyDesc":"Przy blokadach IP: kieruje anonimowe żądanie przez bramkę HTTP w otwartym regionie.","region.proxyEnabled":"Używaj gateway proxy","region.proxyMode":"Tryb gateway","region.proxyModeDesc":"Sposób dołączania adresu sklepu do host:port.","regionProxyMode.gateway":"host:port/https://…","regionProxyMode.path":"host:port/store.steampowered.com/…","regionProxyMode.query":"host:port/?url=…","region.proxyHost":"Host","region.proxyPort":"Port","region.proxyUser":"Nazwa użytkownika","region.proxyPass":"Hasło","region.bannerBadge":"Region zablokowany","region.bannerTitle":"Ta strona jest niedostępna w twoim regionie","region.bannerBody":"Pokazano anonimowym żądaniem gościa (bez cookies konta)","region.bannerViaProxy":"przez gateway proxy","region.reload":"Odśwież","region.retry":"Ponów","region.offer":"Ta strona jest zablokowana w twoim regionie. Wczytać ją bez cookies konta?","region.offerButton":"Pokaż stronę","region.loading":"Wczytywanie strony bez cookies konta…","region.errorBlocked":"Nadal zablokowane przez IP/region. Włącz gateway proxy do otwartego regionu.","region.errorBlockedProxy":"Nadal zablokowane. IP proxy też jest w ograniczonym regionie — spróbuj innego węzła wyjściowego.","region.errorAgeGate":"Steam pokazał weryfikację wieku. Naciśnij Ponów — cookies wieku wysyłają się same.","region.errorFailed":"Nie udało się wczytać: {error}","search.guestTitle":"Znaleziono w innym regionie ({country})","search.guestHint":"Brak w wyszukiwarce twojego regionu — otworzy się przez pobieranie gościa.","search.title":"Szukaj we wszystkich regionach","search.placeholder":"Szukaj gier w każdym regionie…","search.loading":"Szukanie…","search.empty":"Nie znaleziono gier.","search.free":"Za darmo","search.advanced":"Wyszukiwanie zaawansowane","cache.usage":"Zużycie pamięci","cache.contents":"Zapisane tłumaczenia","cache.clear":"Wyczyść pamięć","cache.cleared":"Wyczyszczono pamięć ({count})","cache.empty":"Pamięć jest pusta","cache.clearHint":"Usuwa wszystkie zapisane tłumaczenia z tego profilu przeglądarki.","cache.listEmpty":"Brak zapisanych tłumaczeń — przetłumacz coś, a pojawi się tutaj.","cache.listMore":"…i {count} więcej","cache.removeEntry":"Usuń ten wpis","cache.entries":"wpisów: {count}","cache.used":"{used} w {count} wpisach","cache.free":"Wolne","cache.pct":"Zapełnienie: {pct}%","about.blurb":"Ulepsza strony sklepu i społeczności Steam: tłumaczenie treści z pamięcią podręczną, a wkrótce więcej.","about.repo":"GitHub","about.repoHint":"Kod źródłowy, aktualizacje i zgłaszanie problemów","backup.export":"Eksport","backup.exportDesc":"Zapisz bieżące ustawienia do pliku JSON albo skopiuj je do schowka.","backup.download":"Pobierz plik","backup.copy":"Kopiuj do schowka","backup.copied":"Skopiowano ustawienia do schowka.","backup.copyFailed":"Brak dostępu do schowka.","backup.import":"Import","backup.importDesc":"Wczytaj ustawienia z wyeksportowanego pliku. Bieżące ustawienia zostaną nadpisane.","backup.chooseFile":"Wybierz plik…","backup.importConfirmTitle":"Zaimportować ustawienia?","backup.importConfirm":"Wszystkie bieżące ustawienia zostaną zastąpione wartościami z pliku.","backup.importDone":"Zaimportowano ustawienia.","backup.importInvalid":"To nie jest plik ustawień: niczego nie zmieniono.","toast.saved":"Zapisano ustawienia","toast.rateLimited":"Tłumaczenie ograniczone","toast.rateLimitedDesc":"Google chwilowo ogranicza zapytania. Bloki ponowią próbę same — lub naciśnij Ponów później.","toast.translateFailed":"Tłumaczenie nie powiodło się","toast.translateFailedDesc":"Coś poszło nie tak. Naciśnij Ponów na bloku.","toast.unknownProvider":"Nieznany dostawca tłumaczeń","toast.unknownProviderDesc":"Sprawdź dostawcę w ustawieniach i zapisz ponownie.","toast.cacheCleared":"Zmieniono język — wyczyszczono pamięć tłumaczeń.","translate.button":"Przetłumacz","translate.original":"Oryginał","translate.loading":"Tłumaczenie…","translate.loadingShort":"Tłumaczenie","translate.error":"Błąd tłumaczenia","translate.retry":"Ponów","viewer.title":"Przeglądarka obrazów","viewer.close":"Zamknij","viewer.prev":"Poprzedni obraz","viewer.next":"Następny obraz","viewer.zoomIn":"Powiększ","viewer.zoomOut":"Pomniejsz","viewer.reset":"Resetuj powiększenie i obrót","viewer.rotate":"Obróć","viewer.counter":"{current} / {total}","viewer.failed":"Nie udało się wczytać obrazu","viewer.open":"Otwórz obraz","viewer.thumbs":"Obrazy","viewer.hint":"Kółko lub +/−, aby powiększyć · przeciągnij, aby przesunąć · ← →, aby przeglądać · Esc, aby zamknąć","queue.addToWishlist":"Dodaj do listy życzeń","queue.onWishlist":"Na liście życzeń","queue.addedNotice":"Dodano do listy życzeń!","queue.oops":"Ups, przepraszamy!","queue.follow":"Obserwuj","queue.following":"Obserwowane","queue.ignore":"Ignoruj","queue.ignored":"Ignorowane","queue.viewQueue":"Zobacz swoją kolejkę","queue.manageWishlist":"Zarządzaj listą życzeń","queue.removeWishlist":"Usuń z listy życzeń","queue.ignoreDefault":"Ignoruj to (domyślnie)","queue.ignoreDefaultSub":"Ukryj w sklepie, ignoruj powiadomienia i nie używaj do generowania innych rekomendacji.","queue.playedElsewhere":"Grano na innej platformie","queue.playedElsewhereSub":"Ukryj w sklepie. Może służyć do generowania rekomendacji.","queue.actionFailed":"Nie udało się zapisać zmian","queue.actionFailedDesc":"Wystąpił problem z zapisaniem zmian. Spróbuj ponownie później."}};let F="en";function W(e){const t=String(e||"").trim().toLowerCase();return U[t]||U[t.split("-")[0]]||null}function K(e="auto"){return F="auto"===e?function(){var e;const t=(null==(e=navigator.languages)?void 0:e.length)?navigator.languages:[navigator.language];for(const n of t){const e=W(n);if(e)return e}return "en"}():W(e)||"en",F}function V(e,t={}){var n,o,a;const r=null!=(a=null!=(o=null==(n=G[F])?void 0:n[e])?o:G.en[e])?a:e;return Object.entries(t).reduce((e,[t,n])=>e.split(`{${t}}`).join(String(n)),r)}function Z(e,t){return "auto"===e||H.includes(e)?e:t}function J(e){return "replace"===e?"replace":"below"}function Q(e,t){return "string"==typeof e&&e?e:t}function X(e){return "string"==typeof e&&/^[a-z]{2}(-[A-Za-z]{2,4})?$/.test(e)?e:"auto"}function Y(e,t){const n={...t};if(e&&"object"==typeof e)for(const o of Object.keys(n))n[o]=false!==e[o];return n}function ee(e,t){const n=Number(e);return Number.isFinite(n)?Math.min(12e4,Math.max(0,Math.round(n))):t}function te(e,t){return {enabled:false!==(null==e?void 0:e.enabled),position:(n=null==e?void 0:e.position,["bottom-right","bottom-left","top-right","top-left"].includes(n)?n:"bottom-right"),duration:ee(null==e?void 0:e.duration,t.duration)};var n;}function ne(e,t){var n,o;const a={...t.hidden};for(const s of Object.keys(a))a[s]=true===(null==(n=null==e?void 0:e.hidden)?void 0:n[s]);const r={...t.compact};for(const s of Object.keys(r))r[s]=true===(null==(o=null==e?void 0:e.compact)?void 0:o[s]);return {enabled:false!==(null==e?void 0:e.enabled),hidden:a,compact:r}}const oe=["purchase","sidebar","description"],ae=["custom","priceAsc","discountDesc"],re=[36e5,216e5,864e5,6048e5],se=["purchase","sidebar","description"];function ie(){try{if("function"==typeof(null==crypto?void 0:crypto.randomUUID))return crypto.randomUUID()}catch(e){}return `link-${Date.now().toString(36)}-${Math.floor(65535*Math.random()).toString(16)}`}function le(e){const t=e=>"string"==typeof e?e.trim().slice(0,500):"";return {id:"string"==typeof(null==e?void 0:e.id)&&e.id?e.id.slice(0,64):ie(),name:t(null==e?void 0:e.name).slice(0,60),url:t(null==e?void 0:e.url),icon:t(null==e?void 0:e.icon),enabled:false!==(null==e?void 0:e.enabled)}}function ce(e,t){const n=Array.isArray(null==e?void 0:e.items)?e.items:t.items,o=new Set,a=[];for(const r of n.slice(0,30)){const e=le(r);e.name&&e.url&&(o.has(e.id)&&(e.id=ie()),o.add(e.id),a.push(e));}return {enabled:false!==(null==e?void 0:e.enabled),position:se.includes(null==e?void 0:e.position)?e.position:t.position,openInNewTab:false!==(null==e?void 0:e.openInNewTab),items:a}}const de=["missing","store"];function ue(e,t){return {enabled:false!==(null==e?void 0:e.enabled),position:se.includes(null==e?void 0:e.position)?e.position:t.position,sort:de.includes(null==e?void 0:e.sort)?e.sort:t.sort,collapsed:false!==(null==e?void 0:e.collapsed),showSummary:false!==(null==e?void 0:e.showSummary),showOwned:false!==(null==e?void 0:e.showOwned),showPrices:false!==(null==e?void 0:e.showPrices),showThumbnails:false!==(null==e?void 0:e.showThumbnails),showReleaseDate:false!==(null==e?void 0:e.showReleaseDate),viewer:false!==(null==e?void 0:e.viewer),viewerThumbnails:false!==(null==e?void 0:e.viewerThumbnails),viewerLoop:false!==(null==e?void 0:e.viewerLoop)}}const pe=["auto","manual"],ge=["gateway","path","query"];function he(e,t){const n=(e,t)=>"string"==typeof e?e.slice(0,t):"",o="string"==typeof(null==e?void 0:e.countryCode)&&/^[A-Za-z]{2}$/.test(e.countryCode.trim())?e.countryCode.trim().toUpperCase():"";return {enabled:false!==(null==e?void 0:e.enabled),mode:pe.includes(null==e?void 0:e.mode)?e.mode:t.mode,showBanner:true===(null==e?void 0:e.showBanner),countryCode:o,searchEnabled:false!==(null==e?void 0:e.searchEnabled),searchMaxRows:Number.isInteger(null==e?void 0:e.searchMaxRows)?Math.min(20,Math.max(1,e.searchMaxRows)):t.searchMaxRows,proxyEnabled:true===(null==e?void 0:e.proxyEnabled),proxyHost:n(null==e?void 0:e.proxyHost,253).trim(),proxyPort:n(null==e?void 0:e.proxyPort,5).trim(),proxyUser:n(null==e?void 0:e.proxyUser,128),proxyPass:n(null==e?void 0:e.proxyPass,256),proxyMode:ge.includes(null==e?void 0:e.proxyMode)?e.proxyMode:t.proxyMode}}function me(e,t){return "auto"===e||"off"===e?e:"string"==typeof e&&/^[A-Za-z]{3}$/.test(e)?e.toUpperCase():t}function be(e,t){const n=Array.isArray(null==e?void 0:e.regions)?[...new Set(e.regions.map(e=>String(e).toUpperCase()))]:[...t.regions];return {enabled:false!==(null==e?void 0:e.enabled),autoLoad:false!==(null==e?void 0:e.autoLoad),regions:n,position:oe.includes(null==e?void 0:e.position)?e.position:t.position,sort:ae.includes(null==e?void 0:e.sort)?e.sort:t.sort,showOriginal:false!==(null==e?void 0:e.showOriginal),showDiscount:false!==(null==e?void 0:e.showDiscount),showSavings:false!==(null==e?void 0:e.showSavings),highlightCheapest:false!==(null==e?void 0:e.highlightCheapest),showHomeRow:false!==(null==e?void 0:e.showHomeRow),convertTo:me(null==e?void 0:e.convertTo,t.convertTo),showConverted:false!==(null==e?void 0:e.showConverted),collapsed:false!==(null==e?void 0:e.collapsed),fxTtl:re.includes(Number(null==e?void 0:e.fxTtl))?Number(e.fxTtl):t.fxTtl}}function ve(e,t){return {enabled:false!==(null==e?void 0:e.enabled),provider:Q(null==e?void 0:e.provider,t.provider),trigger:(n=null==e?void 0:e.trigger,"auto"===n?"auto":"manual"),display:J(null==e?void 0:e.display),targetLanguage:X(null==e?void 0:e.targetLanguage),showCached:false!==(null==e?void 0:e.showCached),scopes:Y(null==e?void 0:e.scopes,t.scopes)};var n;}let fe=function(){const e=g();let t=null;try{t=GM_getValue(n,null);}catch(o){t=null;}return t&&"object"==typeof t?{language:Z(t.language,e.language),translation:ve(t.translation,e.translation),gamepage:ne(t.gamepage,e.gamepage),prices:be(t.prices,e.prices),links:ce(t.links,e.links),dlc:ue(t.dlc,e.dlc),region:he(t.region,e.region),toasts:te(t.toasts,e.toasts)}:e}();function ye(){return fe}function we(e){const t={...fe,...e};e.translation&&(t.translation=ve({...fe.translation,...e.translation},g().translation)),fe=t,e.gamepage&&(fe={...fe,gamepage:ne({...fe.gamepage,...e.gamepage},g().gamepage)}),e.prices&&(fe={...fe,prices:be({...fe.prices,...e.prices},g().prices)}),e.links&&(fe={...fe,links:ce({...fe.links,...e.links},g().links)}),e.dlc&&(fe={...fe,dlc:ue({...fe.dlc,...e.dlc},g().dlc)}),e.region&&(fe={...fe,region:he({...fe.region,...e.region},g().region)}),e.toasts&&(fe={...fe,toasts:te({...fe.toasts,...e.toasts},g().toasts)});try{GM_setValue(n,fe);}catch(o){R("SP-1002","failed to persist settings",{error:o});}return fe}function ke(e,t,n){const o=document.createElement(e);return t&&(o.className=t),void 0!==n&&(o.textContent=n),o}function Ce(e,t){let n=null;return (...o)=>{clearTimeout(n),n=setTimeout(()=>e(...o),t);}}function _e(e,t){if(e)for(let n=0;n=2?t.slice(0,2).toLowerCase():(navigator.language||"en").toLowerCase().split("-")[0]}const ze=new Map;let qe=false,Pe=null;function Ae(e,t,n){return `${e}|${t}|${n}`}function Le(){if(Pe=null,qe){qe=false;try{!function(){const e=[...ze.entries()].sort((e,t)=>t[1].time-e[1].time).slice(0,i);ze.clear();for(const[t,n]of e)ze.set(t,n);}(),GM_setValue(o,Object.fromEntries(ze));}catch(e){M("SP-1211","translation cache write failed, keeping memory copy",{entries:ze.size,error:e});}}}function Ee(){null!==Pe&&(clearTimeout(Pe),Pe=null),Le();}function Te(e,t,n){const o=ze.get(Ae(e,t,n));return o?Date.now()-o.time>=s?(ze.delete(Ae(e,t,n)),null):o.text:null}function je(e,t,n,o){ze.set(Ae(e,t,n),{text:o,time:Date.now()}),qe=true,null===Pe&&(Pe=setTimeout(Le,1e3));}function Re(){ze.clear();try{GM_setValue(o,{});}catch(e){}}function Me(e){const t="string"==typeof(null==e?void 0:e.text)?e.text:"";try{return (new TextEncoder).encode(t).length}catch(n){return t.length}}function Be(){var e;let t=0;const n=new Map;for(const[a,r]of ze.entries()){const o=Me(r);t+=o;const s=String(a).split("|")[0]||"unknown",i=null!=(e=n.get(s))?e:{provider:s,count:0,bytes:0};i.count+=1,i.bytes+=o,n.set(s,i);}const o=ze.size;return {totalCount:o,limitCount:i,usedBytes:t,freeCount:Math.max(0,i-o),providers:[...n.values()].sort((e,t)=>t.bytes-e.bytes)}}const Ne=new Map;function Ie(e){return Ne.get(e)||null}const Oe=new Set(["P","DIV","SECTION","ARTICLE","HEADER","FOOTER","MAIN","ASIDE","NAV","H1","H2","H3","H4","H5","H6","LI","BLOCKQUOTE","DT","DD","TD","TH","CAPTION","FIGCAPTION","SUMMARY"]),He=new Set(["UL","OL","DL","TABLE","THEAD","TBODY","TFOOT","TR","FIGURE"]),Ue=new Set(["IMG","VIDEO","AUDIO","SOURCE","TRACK","IFRAME","EMBED","OBJECT","SVG","CANVAS","HR","WBR","BR","CODE","PRE","KBD","SAMP","VAR","TT","SCRIPT","STYLE","NOSCRIPT","TEMPLATE","TEXTAREA","INPUT","BUTTON","SELECT","OPTION"]),$e=new Set(["P","DIV","H1","H2","H3","H4","H5","H6","BLOCKQUOTE"]),Ge=new Set(["A","B","STRONG","EM","I","U","S","STRIKE","DEL","INS","SUB","SUP","SMALL","BIG","MARK","Q","ABBR","CITE","DFN","TIME","SPAN","FONT"]),Fe=new Set(["noopener","noreferrer","ugc","nofollow","sponsored"]),We=["__SP","__SPX","__SPXX","__SPXXX"],Ke=/__SPX*\d+__/g;function Ve(e){return new RegExp(`${t=e,String(t).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(\\d+)__`,"g");var t;}function Ze(e){return String(e||"").replace(Ke,"").replace(/ +/g," ").trim()}function Je(e,t){let n;for(Ke.lastIndex=0;null!==(n=Ke.exec(e));){const e=n.index,o=e+n[0].length;if(t>e&&t0?e:o}return t}function Qe(e){return Ge.has(e)?e.toLowerCase():"span"}function Xe(e,t){if("A"===t.tag){"string"==typeof(n=t.attrs.href)&&/^(https?:\/\/|steam:\/\/|\/|#)/i.test(n.trim())&&e.setAttribute("href",t.attrs.href),t.attrs.title&&e.setAttribute("title",t.attrs.title),"_blank"===t.attrs.target&&e.setAttribute("target","_blank");const o=function(e){const t=String(e||"").split(/\s+/).filter(e=>Fe.has(e.toLowerCase()));return t.length?t.join(" "):null}(t.attrs.rel);o&&e.setAttribute("rel",o);}var n;t.attrs.class&&e.setAttribute("class",t.attrs.class);}function Ye(e){return Se(e.childNodes).map(e=>e.cloneNode(true))}function et(e){e.text=e.parts.join("").replace(/ +/g," ").trim(),e.parts=[];}function tt(e){const t=e.anon;e.anon=null,t&&(et(t),t.originalNodes=t.liveNodes.map(e=>e.cloneNode(true)),e.blocks.push(t));}function nt(e,t){return e.anon&&e.anon.parent===t||(tt(e),e.anon={element:null,tag:"p",listKind:null,parent:t,liveNodes:[],originalNodes:null,tokens:new Map,parts:[],prefix:e.prefix,text:"",rendered:[],translated:null}),e.anon}function ot(e,t,n){null!==t.element||t.liveNodes.includes(n)||t.liveNodes.push(n);}function at(e,t,n){const o=e.nextId;e.nextId+=1,t.tokens.set(o,n),t.parts.push(`${e.prefix}${o}__`);}function rt(e,t,n,o){var a,r,s,i,l,c;if(e.nodeType===Node.TEXT_NODE){const a=e.nodeValue.replace(/\s+/g," ");if(!a)return;const r=null!=n?n:nt(o,t);return r.parts.push(a),void ot(0,r,e)}if(e.nodeType!==Node.ELEMENT_NODE)return;if(xe(c=e)||c.closest instanceof Function&&c.closest(".sp-replaced-content"))return;const d=e.tagName;if(Ue.has(d)){const a=null!=n?n:nt(o,t);return at(o,a,{kind:"atomic",node:e.cloneNode(true)}),void ot(0,a,e)}if(Oe.has(d)){tt(o);const t=function(e,t,n){const o="LI"===n&&t.parentElement instanceof Element?"OL"===t.parentElement.tagName?"ol":"UL"===t.parentElement.tagName?"ul":null:null,a={element:t,tag:n.toLowerCase(),listKind:o,parent:null,liveNodes:[],originalNodes:null,tokens:new Map,parts:[],prefix:e.prefix,text:"",rendered:[],translated:null};return e.blocks.push(a),a}(o,e,d);return st(e,t,o),et(t),void(t.originalNodes=Ye(e))}if(He.has(d))return void st(e,n,o);const u=null!=n?n:nt(o,t);at(o,u,{kind:"open",tag:d,attrs:{href:null==(a=e.getAttribute)?void 0:a.call(e,"href"),title:null==(r=e.getAttribute)?void 0:r.call(e,"title"),target:null==(s=e.getAttribute)?void 0:s.call(e,"target"),rel:null==(i=e.getAttribute)?void 0:i.call(e,"rel"),class:null==(l=e.getAttribute)?void 0:l.call(e,"class")}}),st(e,u,o),at(o,u,{kind:"close"}),ot(0,u,e);}function st(e,t,n){for(let o=e.firstChild;o;o=o.nextSibling)rt(o,e,t,n);}function it(e,t){const n=document.createDocumentFragment(),o=[n],a=t||e.text,r=Ve(e.prefix);let s,i=0;const l=e=>{e&&o[o.length-1].append(document.createTextNode(e));};for(;null!==(s=r.exec(a));){l(a.slice(i,s.index)),i=s.index+s[0].length;const t=e.tokens.get(Number(s[1]));if(t)if("open"===t.kind){const e=document.createElement(Qe(t.tag));Xe(e,t),o[o.length-1].append(e),o.push(e);}else "close"===t.kind?o.length>1&&o.pop():o[o.length-1].append(t.node.cloneNode(true));}return l(a.slice(i)),n}const lt={globe:'',engine:'',sliders:'',bolt:'',cursor:'',below:'',swap:'',tag:'',database:'',bell:'',eye:'',eyeOff:'',grid:'',backup:'',cash:'',info:'',search:''};function ct(e){return lt[e]||""}function dt({icon:e,title:t}){const n=ke("section","sp-panel__section"),o=ke("div","sp-panel__section-title");if(o.setAttribute("role","heading"),o.setAttribute("aria-level","2"),e&<[e]){const t=ke("span","sp-panel__section-icon");t.setAttribute("aria-hidden","true"),t.innerHTML=lt[e],o.appendChild(t);}return o.appendChild(ke("span","",t)),n.appendChild(o),n}function ut(e){return ke("p","sp-hint",e)}function pt({label:e,control:t,hint:n}){const o=ke("div","sp-field");return e&&o.appendChild(ke("span","sp-field__label",e)),t&&(e&&t instanceof HTMLSelectElement&&!t.getAttribute("aria-label")&&t.setAttribute("aria-label",e),o.appendChild(t)),n&&o.appendChild(ke("p","sp-hint",n)),o}function gt(e,t){e.textContent=V(t?"common.on":"common.off"),e.classList.toggle("is-on",t);}function ht(e,t,n){const o=ke("label","sp-switch"),a=document.createElement("input");return a.type="checkbox",a.checked=e,n&&a.setAttribute("aria-label",n),a.addEventListener("change",()=>t(a.checked)),o.append(a,ke("span","sp-switch__track"),ke("span","sp-switch__label",n)),{root:o,input:a}}function mt({checked:e,onChange:t,label:n}){const o=ke("div","sp-toggle-row"),{root:a,input:r}=ht(e,t,n),s=ke("span","sp-pill","");return gt(s,e),r.addEventListener("change",()=>gt(s,r.checked)),o.append(a,s),o}function bt({checked:e,onChange:t,label:n}){return ht(e,t,n).root}function vt(e,t,n){const o=ke("select","sp-select");for(const a of e){const e=document.createElement("option");e.value=a.value,e.textContent=a.label,o.appendChild(e);}return o.value=t,o.addEventListener("change",()=>n(o.value)),o}const ft=new Set;let yt=false;function wt(e){const t=e.querySelector(".sp-segmented__thumb"),n=e.querySelector(".sp-segmented__option--active");t&&n&&(t.style.width=`${n.offsetWidth}px`,t.style.transform=`translateX(${n.offsetLeft-e.scrollLeft}px)`);}function kt(e){_e(e.querySelectorAll(".sp-segmented"),e=>wt(e));}function Ct(e,t,n){const o=ke("div","sp-segmented");o.setAttribute("role","group");const a=ke("span","sp-segmented__thumb");a.setAttribute("aria-hidden","true");const r=new Map;let s=t;const i=()=>wt(o);for(const l of e){const e=ke("button","sp-segmented__option");if(e.type="button",e.dataset.value=l.value,l.icon&<[l.icon]){const t=ke("span","sp-segmented__icon");t.setAttribute("aria-hidden","true"),t.innerHTML=lt[l.icon],e.appendChild(t);}e.appendChild(ke("span","",l.label)),e.setAttribute("aria-pressed",String(l.value===s)),l.value===s&&e.classList.add("sp-segmented__option--active"),e.addEventListener("click",()=>{if(l.value!==s){s=l.value;for(const[e,t]of r){const n=e===s;t.classList.toggle("sp-segmented__option--active",n),t.setAttribute("aria-pressed",String(n));}i(),n(s);}}),r.set(l.value,e),o.appendChild(e);}return o.appendChild(a),requestAnimationFrame(i),yt||(yt=true,window.addEventListener("resize",()=>{for(const e of ft)e.group.isConnected?e.move():ft.delete(e);})),ft.add({group:o,move:i}),kt(o),o}function _t({value:e,min:t=0,max:n=120,step:o=1,onChange:a}){const r=document.createElement("input");return r.type="number",r.className="sp-select",r.min=String(t),r.max=String(n),r.step=String(o),r.value=String(e),r.addEventListener("change",()=>{let e=Math.round(Number(r.value));Number.isFinite(e)||(e=t),e=Math.min(n,Math.max(t,e)),r.value=String(e),a(e);}),r}function St({value:e="",placeholder:t="",maxLength:n=253,onChange:o,inputMode:a="text",type:r="text"}){const s=document.createElement("input");return s.type="password"===r?"password":"text",s.className="sp-input",s.value=null!=e?e:"",t&&(s.placeholder=t),n&&(s.maxLength=n),a&&"text"!==a&&(s.inputMode=a),s.setAttribute("autocomplete","off"),s.setAttribute("spellcheck","false"),s.addEventListener("change",()=>o(s.value)),s}function xt(e,t,n=""){const o=ke("button",`sp-button ${n}`.trim(),e);return o.type="button",o.addEventListener("click",t),o}function Dt(e){const t=Math.max(0,Math.min(100,Number(e)||0));return t>=90?"high":t>=70?"mid":"low"}function zt(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 qt(e,t=90){const n=String(e||"").replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1).trim()}…`}function Pt(e){try{const t=Ie(e);if(t)return V(t.labelKey)}catch(t){}return e}const At={id:"cache",titleKey:"tab.cache",icon:"database",descKey:"tab.cache.desc",renderInto(e){const t=dt({icon:"database",title:V("cache.usage")}),n=ke("div","sp-cache-meter-slot");n.dataset.spCacheMeter="",t.appendChild(n),e.appendChild(t);const o=dt({icon:"tag",title:V("cache.contents")}),a=ke("div","sp-cache-collapser"),r=ke("button","sp-cache-collapser__toggle");r.type="button",r.dataset.sp="cache-list-toggle",r.setAttribute("aria-expanded","false");const s=ke("span","sp-cache-collapser__chevron","▸");s.setAttribute("aria-hidden","true"),r.append(s,ke("span","",V("cache.contents")));const i=ke("span","sp-cache-collapser__count","");i.dataset.spCacheListCount="",r.appendChild(i),a.appendChild(r);const l=ke("div","");l.dataset.spCacheList="",a.appendChild(l),o.appendChild(a),e.appendChild(o);const c=dt({icon:"engine",title:V("cache.clear")}),d=ke("div","sp-cache-row"),u=xt(V("cache.clear"),()=>{const e=Be();Re();const t=document.getElementById("sp-panel-overlay"),n=null==t?void 0:t.querySelector("[data-sp-cache-status]");n&&(n.textContent=e.totalCount>0?V("cache.cleared",{count:e.totalCount}):V("cache.empty")),t&&Lt(t);},"sp-button--danger");u.dataset.sp="cache-clear",d.appendChild(u),c.appendChild(d),c.appendChild(ut(V("cache.clearHint")));const p=ke("p","sp-cache-status","");p.dataset.spCacheStatus="",p.setAttribute("aria-live","polite"),c.appendChild(p),e.appendChild(c);}};function Lt(e,{removeKey:t}={}){var n,o,a,r,s,i,l;if(t){ze.delete(t)&&Ee();const o=null==(n=e.querySelector)?void 0:n.call(e,"[data-sp-cache-status]");o&&(o.textContent=V("cache.cleared",{count:1}));}const c=Be(),d=null==(o=e.querySelector)?void 0:o.call(e,"[data-sp-cache-meter]");d&&d.replaceWith(function(e){const t=Math.round(e.totalCount/Math.max(1,e.limitCount)*100),n=Dt(t),o=V("cache.used",{used:zt(e.usedBytes),count:e.totalCount}),a=ke("div","sp-cache-meter");a.dataset.spCacheMeter="";const r=ke("div","sp-cache-meter__head"),s=ke("div",`sp-cache-meter__pct sp-cache-meter__pct--${n}`);s.appendChild(ke("span","sp-cache-meter__pct-value",V("cache.pct",{pct:t})));const i=ke("div","sp-cache-meter__used-wrap");i.appendChild(ke("span","sp-cache-meter__used",o)),r.append(s,i),a.appendChild(r);const l=ke("div","sp-cache-meter__bar");l.setAttribute("role","img"),l.setAttribute("aria-label",o);const c=Math.max(e.limitCount,1);e.providers.forEach((e,t)=>{const n=Math.max(0,Math.min(100,e.count/c*100));if(n<=0)return;const o=ke("span","sp-cache-meter__seg sp-cache-meter__seg--p"+t%3);o.style.width=`${n}%`,o.title=`${Pt(e.provider)}: ${zt(e.bytes)}`,l.appendChild(o);});const d=ke("span","sp-cache-meter__seg sp-cache-meter__seg--free");d.style.width=`${Math.max(0,Math.min(100,e.freeCount/c*100))}%`,l.appendChild(d),a.appendChild(l);const u=ke("ul","sp-cache-meter__legend");e.providers.forEach((e,t)=>{const n=ke("li","sp-cache-meter__row");n.appendChild(ke("span","sp-cache-meter__swatch sp-cache-meter__swatch--p"+t%3)),n.appendChild(ke("span","sp-cache-meter__name",Pt(e.provider)));const o=ke("span","sp-cache-meter__meta");o.appendChild(ke("span","sp-cache-meter__count",V("cache.entries",{count:e.count}))),o.appendChild(ke("span","sp-cache-meter__size",zt(e.bytes))),n.appendChild(o),u.appendChild(n);});const p=ke("li","sp-cache-meter__row sp-cache-meter__row--free");p.appendChild(ke("span","sp-cache-meter__swatch sp-cache-meter__swatch--free")),p.appendChild(ke("span","sp-cache-meter__name",V("cache.free")));const g=ke("span","sp-cache-meter__meta");return g.appendChild(ke("span","sp-cache-meter__count",V("cache.entries",{count:e.freeCount}))),p.appendChild(g),u.appendChild(p),a.appendChild(u),a}(c));const u=null==(a=e.querySelector)?void 0:a.call(e,"[data-sp-cache-list]");if(u){const t="true"===(null==(s=null==(r=e.querySelector)?void 0:r.call(e,'[data-sp="cache-list-toggle"]'))?void 0:s.getAttribute("aria-expanded")),n=function(){const e=ke("div","sp-cache-list");e.dataset.spCacheList="";const t=[...ze.entries()].map(([e,t])=>{var n,o;const[a="",r="",...s]=String(e).split("|");return {key:e,provider:a,to:r,source:s.join("|"),translated:null!=(n=null==t?void 0:t.text)?n:"",bytes:Me(t),time:null!=(o=null==t?void 0:t.time)?o:0}}).sort((e,t)=>t.time-e.time);if(!t.length)return e.appendChild(ke("div","sp-cache-list__empty",V("cache.listEmpty"))),e;for(const n of t.slice(0,100)){const t=ke("div","sp-cache-list__item"),o=ke("div","sp-cache-list__main"),a=ke("span","sp-cache-list__label",qt(Ze(n.source)));a.title=`${Pt(n.provider)} → ${n.to}`,o.appendChild(a);const r=ke("div","sp-cache-list__meta");r.appendChild(ke("span","",`→ ${n.to} · ${zt(n.bytes)}`));const s=ke("button","sp-button sp-button--ghost sp-cache-list__remove","×");s.type="button",s.dataset.sp="cache-remove",s.dataset.spCacheKey=n.key,s.title=V("cache.removeEntry"),s.setAttribute("aria-label",V("cache.removeEntry")),r.appendChild(s),t.append(o,r),e.appendChild(t);}return t.length>100&&e.appendChild(ke("div","sp-cache-list__more",V("cache.listMore",{count:t.length-100}))),e}();n.hidden=!t,u.replaceWith(n);}const p=null==(i=e.querySelector)?void 0:i.call(e,"[data-sp-cache-tab-badge]");p&&p.replaceWith(function(e){const t=Math.round(e.totalCount/Math.max(1,e.limitCount)*100),n=ke("span",`sp-panel__tab-badge sp-panel__tab-badge--${Dt(t)}`,`${t}%`);return n.dataset.spCacheTabBadge="",n}(c));const g=null==(l=e.querySelector)?void 0:l.call(e,"[data-sp-cache-list-count]");g&&(g.textContent=V("cache.entries",{count:c.totalCount}));}let Et=null;function Tt({title:e,message:t="",confirmLabel:n,cancelLabel:o=V("common.cancel"),tone:a="danger"}={}){return function(){if(Et){const e=Et;Et=null,e(false);}}(),new Promise(r=>{Et=r;const s=document.activeElement instanceof HTMLElement?document.activeElement:null,i=ke("div","sp-confirm-overlay");i.setAttribute("role","presentation");const l=ke("div","sp-confirm");l.setAttribute("role","alertdialog"),l.setAttribute("aria-modal","true"),e&&l.setAttribute("aria-label",e),e&&l.appendChild(ke("div","sp-confirm__title",e)),t&&l.appendChild(ke("div","sp-confirm__message",t));const c=ke("div","sp-confirm__actions"),d=xt(o,()=>p(false),"sp-button--ghost"),u=xt(n,()=>p(true),"primary"===a?"":"sp-button--danger");function p(e){var t;document.removeEventListener("keydown",g,true),i.remove(),Et&&(Et=null,r(e)),null==(t=null==s?void 0:s.focus)||t.call(s);}function g(e){"Escape"===e.key&&(e.stopPropagation(),p(false));}c.append(d,u),l.appendChild(c),i.appendChild(l),document.body.appendChild(i),i.addEventListener("click",e=>{e.target===i&&p(false);}),document.addEventListener("keydown",g,true),("danger"===a?d:u).focus();})}const jt=5e3,Rt={info:'',success:'',warning:'',error:''},Mt={primary:"sp-toast__action",ghost:"sp-toast__action sp-toast__action--ghost",danger:"sp-toast__action sp-toast__action--danger"};let Bt=0;const Nt=new Map;function It(){var e;try{return null!=(e=ye().toasts)?e:null}catch(t){return null}}function Ot(e={}){var t,n,o;const a=It();if(a&&false===a.enabled)return {id:"sp-toast-off-"+ ++Bt,dismiss(){},update(){},touch(){}};const r={...e,duration:null!=(n=null!=(t=e.duration)?t:null==a?void 0:a.duration)?n:jt},s=r.key,i=s?Nt.get(s):null;if(i)return i.update({title:r.title,message:r.message}),i.touch(),i.handle;const l=function(){var e;let t=document.querySelector(".sp-toasts");t||(t=ke("div","sp-toasts"),t.setAttribute("aria-live","polite"),document.body.appendChild(t)),t.classList.remove("sp-toasts--top-right","sp-toasts--top-left","sp-toasts--bottom-left");const n=null==(e=It())?void 0:e.position;return n&&"bottom-right"!==n&&t.classList.add(`sp-toasts--${n}`),t}(),c=l.children.length-3+1;if(c>0){const e=new CustomEvent("sp-toast-evict");Se(l.children).slice(0,c).forEach(t=>{t.dispatchEvent(e);});}const d="sp-toast-"+ ++Bt,{node:u,titleNode:p,messageNode:g}=function(e){var t,n,o;const{type:a="info",icon:r=a,title:s="",message:i="",duration:l=jt,onClick:c,actions:d=[]}=e,u=ke("div",`sp-toast sp-toast--${a}`);u.setAttribute("role","error"===a?"alert":"status"),c&&(u.classList.add("sp-toast--clickable"),u.addEventListener("click",e=>{e.target.closest("button")||c();}));const p=ke("span",`sp-toast__icon sp-toast__icon--${a}`);p.setAttribute("aria-hidden","true"),p.innerHTML=null!=(n=null!=(t=Rt[r])?t:Rt[a])?n:Rt.info,u.appendChild(p);const g=ke("div","sp-toast__body"),h=ke("div","sp-toast__title",s);g.appendChild(h);const m=ke("div","sp-toast__message",i);i||(m.hidden=true),g.appendChild(m);const b=ke("div","sp-toast__actions");let v=false;for(const y of d){if(!(null==y?void 0:y.label)||"function"!=typeof y.onClick)continue;v=true;const e=ke("button",null!=(o=Mt[y.tone])?o:Mt.primary,y.label);e.type="button",e.addEventListener("click",e=>{e.stopPropagation(),y.onClick();}),b.appendChild(e);}v&&(b.hidden=false,g.appendChild(b)),u.appendChild(g);const f=ke("button","sp-toast__close","×");if(f.type="button",f.setAttribute("aria-label","×"),u.appendChild(f),l>0){const e=ke("div","sp-toast__progress"),t=ke("span","");t.style.animationDuration=`${l}ms`,e.appendChild(t),u.appendChild(e);}return {node:u,titleNode:h,messageNode:m}}(r);u.dataset.spToast=d;const h=null!=(o=r.duration)?o:jt;let m=null,b=h,v=0,f=false;const y={node:u,key:s},w={id:d,dismiss:()=>C(),update:({title:e,message:t})=>{ void 0!==e&&(p.textContent=e),void 0!==t&&(g.textContent=t,g.hidden=!t);},touch:()=>{h<=0||f||(clearTimeout(m),b=h,function(){const e=u.querySelector(".sp-toast__progress span");e&&(e.style.animation="none",e.style.animation="");}(),k());}};function k(){h<=0||f||(v=Date.now(),m=setTimeout(()=>C(),b));}function C(){f||(f=true,clearTimeout(m),s&&Nt.delete(s),u.classList.add("sp-toast--leaving"),setTimeout(()=>u.remove(),180));}return u.querySelector(".sp-toast__close").addEventListener("click",e=>{e.stopPropagation(),C();}),u.addEventListener("sp-toast-evict",()=>C()),h>0&&(u.addEventListener("mouseenter",()=>{clearTimeout(m),b=Math.max(0,b-(Date.now()-v));}),u.addEventListener("mouseleave",k)),l.appendChild(u),s&&Nt.set(s,{...y,...w}),k(),w}const Ht="sp-modal-open";let Ut=0,$t=null;function Gt(){if(Ut+=1,Ut>1||$t)return;const e=document.documentElement;if(e.classList.contains(Ht))return;const t=document.body,n=window.scrollY||e.scrollTop||t.scrollTop||0,o=Math.max(0,window.innerWidth-e.clientWidth);$t={y:n,pad:t.style.paddingRight},e.classList.add(Ht),o&&(t.style.paddingRight=`${o}px`),t.style.top=`-${n}px`;}function Ft(){if(Ut=Math.max(0,Ut-1),Ut>0||!$t)return;const e=document.documentElement,t=document.body,{y:n,pad:o}=$t;$t=null,e.classList.remove(Ht),t.style.top="",t.style.paddingRight=o,window.scrollTo(0,n);}const Wt="sp-viewer-overlay",Kt=.35,Vt={images:[],index:0,loop:true,thumbnails:true,minZoom:1,maxZoom:8,labels:null,resolveImage:null,onClose:null};let Zt=null,Jt=false;function Qt(e){var t;return (null==(t=null==Zt?void 0:Zt.opts.labels)?void 0:t[e])||V(`viewer.${e}`)}function Xt(){const e=document.getElementById(Wt);return {root:e,dialog:null==e?void 0:e.querySelector(".sp-viewer"),title:null==e?void 0:e.querySelector('[data-sp-viewer="title"]'),counter:null==e?void 0:e.querySelector('[data-sp-viewer="counter"]'),stage:null==e?void 0:e.querySelector('[data-sp-viewer="stage"]'),image:null==e?void 0:e.querySelector('[data-sp-viewer="image"]'),spinner:null==e?void 0:e.querySelector('[data-sp-viewer="spinner"]'),status:null==e?void 0:e.querySelector('[data-sp-viewer="status"]'),hint:null==e?void 0:e.querySelector('[data-sp-viewer="hint"]'),thumbs:null==e?void 0:e.querySelector('[data-sp-viewer="thumbs"]'),prev:null==e?void 0:e.querySelector('[data-sp-viewer="prev"]'),next:null==e?void 0:e.querySelector('[data-sp-viewer="next"]')}}function Yt(e,t,n,o=""){const a=ke("button",`sp-viewer__tool ${o}`.trim(),t);return a.type="button",a.dataset.spViewer=e,a.title=Qt(n),a.setAttribute("aria-label",Qt(n)),a}function en(){var e;const{dialog:t,image:n,counter:o,thumbs:a,prev:r,next:s}=Xt();if(!Zt||!t||!n)return;const{zoom:i,rotation:l,offset:c,images:d,index:u}=Zt;if(i>1||l%360!=0){const e=n.parentElement,t=l%180!=0,o=(t?n.clientWidth:n.clientHeight)*i,a=Math.max(0,((t?n.clientHeight:n.clientWidth)*i-e.clientWidth)/2),r=Math.max(0,(o-e.clientHeight)/2);c.x=Math.min(a,Math.max(-a,c.x)),c.y=Math.min(r,Math.max(-r,c.y));}else c.x=0,c.y=0;n.style.transform=1===i&&l%360==0?"":`translate(${c.x}px, ${c.y}px) scale(${i}) rotate(${l}deg)`,t.classList.toggle("is-zoomed",i>1),t.classList.toggle("is-rotated",l%360!=0),o&&(o.textContent=d.length>1?V("viewer.counter",{current:u+1,total:d.length}):"");const p=d.length>1;if(r&&(r.hidden=!p),s&&(s.hidden=!p),r&&(r.disabled=!p||!Zt.opts.loop&&0===u),s&&(s.disabled=!p||!Zt.opts.loop&&u===d.length-1),a){a.hidden=false===Zt.opts.thumbnails||!p;const t=a.querySelectorAll("[data-sp-viewer-thumb]");for(let e=0;e=Zt.images.length)||on(t);}function sn(e){Zt&&(Zt.zoom=Math.min(Zt.opts.maxZoom,Math.max(Zt.opts.minZoom,Number(e.toFixed(3)))),en());}function ln(){var e,t;if(!Zt)return;const{root:n}=Xt(),{focusReturn:o,opts:a}=Zt;Zt=null,n&&(n.hidden=true),document.removeEventListener("keydown",cn),Ft(),null==(e=null==o?void 0:o.focus)||e.call(o),null==(t=a.onClose)||t.call(a);}function cn(e){if(!Zt)return;const t=e.target instanceof Element?e.target.tagName:"";if(/^(INPUT|TEXTAREA|SELECT)$/.test(t))return;const n={Escape:ln,ArrowLeft:()=>rn(-1),ArrowRight:()=>rn(1),Home:()=>on(0),End:()=>on(Zt.images.length-1),"+":()=>sn(Zt.zoom+Kt),"=":()=>sn(Zt.zoom+Kt),"-":()=>sn(Zt.zoom-Kt),0:nn,r:()=>{Zt.rotation=(Zt.rotation+90)%360,en();}}[e.key];n&&(e.preventDefault(),n());}function dn(e){Zt&&(e.preventDefault(),sn(Zt.zoom+(e.deltaY<0?Kt:-0.35)));}function un(){Zt&&(Zt.zoom>1?nn():sn(2));}function pn(){const e=[];return Zt.pointers.forEach(t=>e.push(t)),2===e.length?e:null}function gn(e){var t;if(!Zt)return;const n=e.target instanceof Element?e.target:null,o=!(!n||!n.closest("button"));if(Zt.press={control:o,image:!(!n||!n.closest('[data-sp-viewer="image"]')),moved:false},o)return;const a=Xt().stage;null==(t=null==a?void 0:a.setPointerCapture)||t.call(a,e.pointerId),Zt.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});const r=pn();if(r)return Zt.pinch={distance:Math.hypot(r[0].x-r[1].x,r[0].y-r[1].y)||1,zoom:Zt.zoom},void(Zt.drag=null);Zt.drag={id:e.pointerId,x:e.clientX,y:e.clientY,ox:Zt.offset.x,oy:Zt.offset.y};}function hn(e){if(!(null==Zt?void 0:Zt.pointers.has(e.pointerId)))return;Zt.pointers.set(e.pointerId,{x:e.clientX,y:e.clientY});const t=Zt.pinch?pn():null;if(Zt.pinch&&t){const e=Math.hypot(t[0].x-t[1].x,t[0].y-t[1].y)||1;return void sn(Zt.pinch.zoom*(e/Zt.pinch.distance))}if(!Zt.drag||Zt.drag.id!==e.pointerId||Zt.zoom<=1)return;const n=e.clientX-Zt.drag.x,o=e.clientY-Zt.drag.y;(Math.abs(n)>15||Math.abs(o)>15)&&(Zt.press.moved=true),Zt.offset={x:Zt.drag.ox+n,y:Zt.drag.oy+o};const{dialog:a}=Xt();null==a||a.classList.add("is-dragging"),en();}function mn(e){var t,n,o;if(!Zt)return;const a=Zt.drag;if(Zt.pointers.delete(e.pointerId),Zt.pointers.size<2&&(Zt.pinch=null),!a||a.id!==e.pointerId)return;Zt.drag=null,null==(n=null==(t=Xt().stage)?void 0:t.releasePointerCapture)||n.call(t,e.pointerId),null==(o=Xt().dialog)||o.classList.remove("is-dragging");const r=e.clientX-a.x;Zt.zoom<=1&&Math.abs(r)>=60&&(Zt.press.moved=true,rn(r<0?1:-1));}function bn(e){var t,n;const o=e.target;if(!(o instanceof Element))return;const a=null!=(t=null==Zt?void 0:Zt.press)?t:null;if(Zt&&(Zt.press=null),null==a?void 0:a.moved)return;const r=null==(n=o.closest("[data-sp-viewer]"))?void 0:n.dataset.spViewer;if("close"===r)return ln();if("prev"===r)return rn(-1);if("next"===r)return rn(1);if("zoom-in"===r)return sn(Zt.zoom+Kt);if("zoom-out"===r)return sn(Zt.zoom-Kt);if("reset"===r)return nn();if("rotate"===r)return Zt.rotation=(Zt.rotation+90)%360,en();const s=o.closest("[data-sp-viewer-thumb]");if(s)return on(Number(s.dataset.spViewerThumb));(null==a?void 0:a.image)||"image"===r||"stage"!==r&&o!==Xt().root||ln();}function vn(){var e;const{spinner:t,status:n}=Xt();t&&(t.hidden=true),n&&(n.hidden=true),null==(e=Xt().image)||e.classList.remove("is-loading"),en();}function fn(){const{spinner:e,status:t,image:n}=Xt();e&&(e.hidden=true),null==n||n.classList.remove("is-loading"),t&&(t.textContent=Qt("failed"),t.hidden=false);}const yn=new Map;let wn=null,kn=false,Cn=null,_n=false;function Sn(){var e;try{if("undefined"!=typeof GM_info&&(null==(e=GM_info.script)?void 0:e.version))return GM_info.script.version}catch(t){}return ""}function xn(e){(null==e?void 0:e.id)&&"function"==typeof e.renderInto&&yn.set(e.id,e);}function Dn(){const e=ke("div","sp-panel__view sp-panel__home"),t=ke("nav","sp-panel__nav");t.setAttribute("aria-label",V("menu.settings"));for(const[n,o]of yn){const e=ke("button","sp-panel__nav-item");if(e.type="button",o.icon&&ct(o.icon)){const t=ke("span","sp-panel__nav-icon");t.setAttribute("aria-hidden","true"),t.innerHTML=ct(o.icon),e.appendChild(t);}const a=ke("span","sp-panel__nav-text");if(a.appendChild(ke("span","sp-panel__nav-title",V(o.titleKey))),o.descKey&&a.appendChild(ke("span","sp-panel__nav-desc",V(o.descKey))),e.appendChild(a),"cache"===n){const t=ke("span","sp-panel__tab-badge");t.dataset.spCacheTabBadge="",e.appendChild(t);}e.appendChild(ke("span","sp-panel__nav-chevron","›")),e.addEventListener("click",()=>Pn(n)),t.appendChild(e);}return e.appendChild(t),e}function zn(){const e=document.getElementById("sp-panel-overlay");var t,n;e&&Cn&&(t=e.querySelector(".sp-panel__body"),n=wn?function(){const e=yn.get(wn);if(!e)return Dn();const t=ke("div","sp-panel__view sp-panel__page"),n=ke("div","sp-panel__crumb"),o=ke("button","sp-panel__back",`‹ ${V("panel.back")}`);o.type="button",o.setAttribute("aria-label",V("panel.back")),o.addEventListener("click",qn),n.append(o,ke("span","sp-panel__crumb-title",V(e.titleKey))),t.appendChild(n);const a=ke("div","sp-panel__page-content");return e.renderInto(a,Cn),t.appendChild(a),t}():Dn(),t.dataset.spDir=wn?"fwd":"back",t.replaceChildren(n),t.scrollTop=0,Lt(e),requestAnimationFrame(()=>kt(e)));}function qn(){wn=null,zn();}function Pn(e){document.getElementById("sp-panel-overlay")&&yn.has(e)&&Cn&&e!==wn&&(wn=e,zn());}function An(e){var n;!function(){if(document.getElementById("sp-panel-overlay"))return;const e=ke("div","sp-panel-overlay");e.id="sp-panel-overlay",e.hidden=true,e.setAttribute("role","presentation");const n=ke("div","sp-panel");n.setAttribute("role","dialog"),n.setAttribute("aria-modal","true"),n.setAttribute("aria-label",V("menu.settings"));const o=ke("div","sp-panel__header"),a=ke("div"),r=ke("div","sp-panel__title-row");r.appendChild(ke("div","sp-panel__title",t));const s=Sn();s&&r.appendChild(ke("span","sp-panel__version",`v${s}`)),a.appendChild(r),a.appendChild(ke("div","sp-panel__subtitle",V("panel.subtitle"))),o.appendChild(a);const i=ke("button","sp-panel__close","×");i.type="button",i.dataset.sp="close",i.setAttribute("aria-label",V("common.close")),o.appendChild(i);const l=ke("div","sp-panel__body"),c=ke("div","sp-panel__footer"),d=ke("div","sp-panel__footer-actions"),u=ke("button","sp-button sp-button--danger",V("common.reset"));u.type="button",u.dataset.sp="reset",u.style.marginRight="auto";const p=ke("button","sp-button sp-button--ghost",V("common.cancel"));p.type="button",p.dataset.sp="close";const h=ke("button","sp-button",V("common.save"));h.type="button",h.dataset.sp="save",d.append(u,p,h),c.appendChild(d),n.append(o,l,c),e.appendChild(n),document.body.appendChild(e),e.addEventListener("click",t=>{var n,o,a,r,s,i,l,c,d,u;if(t.target===e)return void An(false);if(null==(o=(n=t.target).closest)?void 0:o.call(n,'[data-sp="close"]'))return void An(false);if(null==(r=(a=t.target).closest)?void 0:r.call(a,'[data-sp="save"]'))return function(){if(!Cn)return;const e=ye().translation.targetLanguage;we({language:Cn.language,translation:Cn.translation,gamepage:Cn.gamepage,prices:Cn.prices,links:Cn.links,dlc:Cn.dlc,region:Cn.region,toasts:Cn.toasts}),K(Cn.language),O("settings:language",Cn.language),O("settings:translation"),O("settings:gamepage"),O("settings:prices"),O("settings:links"),O("settings:dlc"),O("settings:region"),Cn.translation.targetLanguage!==e?(Re(),Ot({type:"success",title:V("toast.saved"),message:V("toast.cacheCleared")})):Ot({type:"success",title:V("toast.saved")});}(),void An(false);if(null==(i=(s=t.target).closest)?void 0:i.call(s,'[data-sp="reset"]'))return void Tt({title:V("common.reset"),message:V("reset.confirm"),confirmLabel:V("common.reset")}).then(e=>{e&&Cn&&(Cn=g(),zn());});const p=null==(c=(l=t.target).closest)?void 0:c.call(l,'[data-sp="cache-list-toggle"]');if(p){t.preventDefault();const n="true"===p.getAttribute("aria-expanded");p.setAttribute("aria-expanded",String(!n));const o=e.querySelector("[data-sp-cache-list]");return void(o&&(o.hidden=n))}const h=null==(u=(d=t.target).closest)?void 0:u.call(d,'[data-sp="cache-remove"]');h&&(t.preventDefault(),Lt(e,{removeKey:h.dataset.spCacheKey}));});}();const o=document.getElementById("sp-panel-overlay");o&&(_n||(_n=true,document.addEventListener("keydown",e=>{"Escape"===e.key&&kn&&(wn?qn():An(false));})),kn="boolean"==typeof e?e:!kn,o.hidden=!kn,null==(n=document.getElementById("sp-settings-btn"))||n.classList.toggle("is-open",kn),function(){if(kn){if(Gt(),Ln)return;return Ln=true,document.addEventListener("wheel",En,{passive:false,capture:true}),void document.addEventListener("touchmove",En,{passive:false,capture:true})}Ft(),Ln&&(Ln=false,document.removeEventListener("wheel",En,{capture:true}),document.removeEventListener("touchmove",En,{capture:true}));}(),kn?(Cn=JSON.parse(JSON.stringify(ye())),wn=null,zn()):Cn=null);}let Ln=false;function En(e){kn&&!Zt&&(function(e){const t=document.querySelector("#sp-panel-overlay .sp-panel__body");return !!(t&&e instanceof Node&&t.contains(e))}(e.target)||e.preventDefault());}const Tn=["bottom-right","bottom-left","top-right","top-left"],jn={id:"general",titleKey:"tab.general",icon:"sliders",descKey:"tab.general.desc",renderInto(e,t){const n=dt({icon:"globe",title:V("general.language")}),o=vt([{value:"auto",label:V("common.auto")},...H.map(e=>({value:e,label:$[e]}))],t.language,e=>{t.language=e;});o.classList.add("sp-select--block"),n.appendChild(pt({control:o,hint:V("general.languageDesc")})),e.appendChild(n);const a=dt({icon:"bell",title:V("general.toasts")});a.appendChild(mt({checked:false!==t.toasts.enabled,label:V("toasts.enabled"),onChange:e=>{t.toasts.enabled=e;}})),a.appendChild(ut(V("toasts.enabledDesc")));const r=Tn.map(e=>({value:e,label:V(`toastPos.${e}`)}));a.appendChild(pt({label:V("toasts.position"),control:vt(r,t.toasts.position,e=>{t.toasts.position=e;})})),a.appendChild(pt({label:V("toasts.duration"),hint:V("toasts.durationDesc"),control:_t({value:Math.round(t.toasts.duration/1e3),min:0,max:120,onChange:e=>{t.toasts.duration=1e3*e;}})})),e.appendChild(a),e.appendChild(ut(V("general.saveHint")));}},Rn=new Map;function Mn(e){if(!e||!e.id||"string"!=typeof e.selector)throw new Error("[Steam Plus] invalid translation target");Rn.set(e.id,e);}function Bn(){return [...Rn.values()]}const Nn={en:"English",ru:"Русский",de:"Deutsch",es:"Español",fr:"Français",pt:"Português","zh-CN":"中文(简体)",ja:"日本語",ko:"한국어",pl:"Polski",it:"Italiano",tr:"Türkçe",uk:"Українська",ar:"العربية",th:"ไทย"},In={id:"translation",titleKey:"tab.translation",icon:"globe",descKey:"tab.translation.desc",renderInto(e,t){const n=t.translation,o=dt({icon:"engine",title:V("translation.title")});o.appendChild(ut(V("translation.desc"))),o.appendChild(mt({checked:false!==n.enabled,label:V("translation.enabled"),onChange:e=>{n.enabled=e;}})),o.appendChild(ut(V("translation.enabledDesc")));const a=[...Ne.values()].map(e=>({value:e.id,label:V(e.labelKey)}));o.appendChild(pt({label:V("translation.provider"),hint:V("translation.providerDesc"),control:vt(a,n.provider,e=>{n.provider=e;})})),e.appendChild(o);const r=dt({icon:"sliders",title:V("translation.behavior")});r.appendChild(pt({label:V("translation.trigger"),hint:V("translation.triggerDesc"),control:Ct([{value:"auto",label:V("trigger.auto"),icon:"bolt"},{value:"manual",label:V("trigger.manual"),icon:"cursor"}],n.trigger,e=>{n.trigger=e;})})),r.appendChild(pt({label:V("translation.display"),hint:V("translation.displayDesc"),control:Ct([{value:"below",label:V("display.below"),icon:"below"},{value:"replace",label:V("display.replace"),icon:"swap"}],n.display,e=>{n.display=e;})}));const s=[{value:"auto",label:V("targetLanguage.auto")},...Object.entries(Nn).map(([e,t])=>({value:e,label:t}))];r.appendChild(pt({label:V("translation.targetLanguage"),hint:V("translation.targetLanguageDesc"),control:vt(s,n.targetLanguage,e=>{n.targetLanguage=e;})})),r.appendChild(mt({checked:false!==n.showCached,label:V("translation.showCached"),onChange:e=>{n.showCached=e;}})),r.appendChild(ut(V("translation.showCachedDesc"))),e.appendChild(r);const i=dt({icon:"tag",title:V("translation.scopes")});i.appendChild(ut(V("translation.scopesDesc")));const l=ke("div","sp-switch-grid");for(const c of Bn())l.appendChild(bt({label:V(c.labelKey),checked:false!==n.scopes[c.id],onChange:e=>{n.scopes[c.id]=e;}}));i.appendChild(l),e.appendChild(i);}},On="sp-gamepage-style",Hn=/^\/app\/\d+(\/|$)|^\/agecheck\/app\/\d+(\/|$)/;function Un(e){try{const t=new URL(String(e),location.href);return "store.steampowered.com"===t.hostname&&Hn.test(t.pathname)}catch(t){return false}}const $n=[{id:"media",labelKey:"block.media",selectors:["#game_highlights"]},{id:"purchase",labelKey:"block.purchase",selectors:["#game_area_purchase"]},{id:"description",labelKey:"block.description",selectors:["#aboutThisGame","#game_area_description"]},{id:"dlc",labelKey:"block.dlc",selectors:["#gameAreaDLCSection"]},{id:"sysreq",labelKey:"block.sysreq",selectors:[".game_page_autocollapse.sys_req"]},{id:"reviews",labelKey:"block.reviews",selectors:["#app_reviews_hash",".review_ctn","#userReviews"]},{id:"curators",labelKey:"block.curators",selectors:[".steam_curators_block"]},{id:"events",labelKey:"block.events",selectors:["#game_area_event",".announcement_section","#events_row",".event_section",'[data-featuretarget="events-row"]',".early_access_announcements"]},{id:"details",labelKey:"block.details",selectors:["#category_block","#languageTable","#bannerLanguages","#achievement_block","#appDetailsUnderlinedLinks",".glance_tags_ctn"]},{id:"recommendations",labelKey:"block.recommendations",selectors:["#recommended_block",".recommendation_ctn",".franchise_notice"]},{id:"sale",labelKey:"block.sale",selectors:[".saleEventBannerLink"]},{id:"edition",labelKey:"block.edition",selectors:[".game_page_autocollapse_ctn:has(.game_area_description:not(#game_area_description):not(#game_area_content_descriptors):not(#game_area_legal))",".game_page_autocollapse:has(> .game_area_description:not(#game_area_description):not(#game_area_content_descriptors):not(#game_area_legal))"]},{id:"earlyaccess",labelKey:"block.earlyaccess",selectors:["#earlyAccessHeader"],compactSelectors:["#earlyAccessHeader #earlyAccessBody","#earlyAccessHeader .heading p"]}],Gn={id:"gamepage",titleKey:"tab.gamepage",icon:"grid",descKey:"tab.gamepage.desc",renderInto(e,t){const n=t.gamepage,o=dt({icon:"grid",title:V("gamepage.title")});o.appendChild(ut(V("gamepage.desc"))),o.appendChild(mt({checked:false!==n.enabled,label:V("gamepage.enabled"),onChange:e=>{n.enabled=e;}})),o.appendChild(ut(V("gamepage.enabledDesc"))),e.appendChild(o);const a=dt({icon:"tag",title:V("gamepage.blocks")});a.appendChild(ut(V("gamepage.blocksDesc")));const r=ke("div","sp-switch-grid");for(const l of $n)"earlyaccess"!==l.id&&r.appendChild(bt({label:V(l.labelKey),checked:true===n.hidden[l.id],onChange:e=>{n.hidden[l.id]=e;}}));a.appendChild(r),e.appendChild(a);const s=dt({icon:"grid",title:V("gamepage.earlyAccess")});s.appendChild(ut(V("gamepage.earlyAccessDesc"))),null!=n.hidden||(n.hidden={}),null!=n.compact||(n.compact={});const i=true===n.hidden.earlyaccess?"hidden":true===n.compact.earlyaccess?"compact":"full";s.appendChild(pt({control:Ct([{value:"full",label:V("earlyAccess.full")},{value:"compact",label:V("earlyAccess.compact")},{value:"hidden",label:V("earlyAccess.hidden")}],i,e=>{n.hidden.earlyaccess="hidden"===e,n.compact.earlyaccess="compact"===e;})})),e.appendChild(s);}},Fn=[{cc:"US",name:"United States",currency:"USD"},{cc:"GB",name:"United Kingdom",currency:"GBP"},{cc:"DE",name:"Germany",currency:"EUR"},{cc:"PL",name:"Poland",currency:"PLN"},{cc:"UA",name:"Ukraine",currency:"UAH"},{cc:"RU",name:"Russia",currency:"RUB"},{cc:"KZ",name:"Kazakhstan",currency:"KZT"},{cc:"TR",name:"Türkiye",currency:"USD"},{cc:"AR",name:"Argentina",currency:"USD"},{cc:"BR",name:"Brazil",currency:"BRL"},{cc:"MX",name:"Mexico",currency:"MXN"},{cc:"CA",name:"Canada",currency:"CAD"},{cc:"AU",name:"Australia",currency:"AUD"},{cc:"NZ",name:"New Zealand",currency:"NZD"},{cc:"JP",name:"Japan",currency:"JPY"},{cc:"KR",name:"South Korea",currency:"KRW"},{cc:"CN",name:"China",currency:"CNY"},{cc:"SG",name:"Singapore",currency:"SGD"},{cc:"IN",name:"India",currency:"INR"},{cc:"ZA",name:"South Africa",currency:"ZAR"},{cc:"AE",name:"UAE",currency:"AED"},{cc:"CH",name:"Switzerland",currency:"CHF"},{cc:"SE",name:"Sweden",currency:"SEK"},{cc:"NO",name:"Norway",currency:"NOK"}];function Wn(e){var t;return null!=(t=Fn.find(t=>t.cc===String(e).toUpperCase()))?t:null}function Kn(e){return null!==Wn(e)}const Vn="sp_fx_cache_v1",Zn=[{name:"ExchangeRate-API",url:"https://open.er-api.com/v6/latest/USD",normalize(e){var t;return "success"===(null==e?void 0:e.result)&&(null==e?void 0:e.rates)?{rates:e.rates,date:null!=(t=e.time_last_update_utc)?t:null}:null}},{name:"jsDelivr currency API",url:"https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.json",normalize(e){var t;return (null==e?void 0:e.usd)&&"object"==typeof e.usd?{rates:e.usd,date:null!=(t=e.date)?t:null}:null}}];function Jn(e){if("function"==typeof GM_xmlhttpRequest)return new Promise((t,n)=>{GM_xmlhttpRequest({method:"GET",url:e,timeout:15e3,onload:e=>{if(200===e.status)try{t(JSON.parse(e.responseText));}catch(o){n(o);}else n(new Error(`HTTP ${e.status}`));},onerror:()=>n(new Error("network error")),ontimeout:()=>n(new Error("timed out"))});});const t=new AbortController,n=setTimeout(()=>t.abort(),15e3);return fetch(e,{signal:t.signal}).then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).finally(()=>clearTimeout(n))}function Qn(){try{const e=GM_getValue(Vn,null);if(e&&"object"==typeof e&&e.rates)return e}catch(e){B("fx","failed to read rates cache",{error:String(e)});}return null}function Xn(e){try{GM_setValue(Vn,e);}catch(t){B("fx","failed to persist rates cache",{error:String(t)});}}function Yn(e){const t={USD:1};for(const[n,o]of Object.entries(e))"number"==typeof o&&o>0&&(t[String(n).toUpperCase()]=o);return t}async function eo({force:e}={},t=864e5){var n;const o=Qn();if(!e&&function(e,t=864e5){return !!e&&Date.now()-e.ts{n.enabled=e;}})),o.appendChild(ut(V("prices.enabledDesc"))),o.appendChild(mt({checked:false!==n.autoLoad,label:V("prices.autoLoad"),onChange:e=>{n.autoLoad=e;}})),o.appendChild(ut(V("prices.autoLoadDesc"))),o.appendChild(pt({label:V("prices.position"),hint:V("prices.positionDesc"),control:vt(oo.map(e=>({value:e,label:V(`pricesPos.${e}`)})),n.position,e=>{n.position=e;})})),o.appendChild(pt({label:V("prices.sort"),hint:V("prices.sortDesc"),control:vt(ao.map(e=>({value:e,label:V(`pricesSort.${e}`)})),n.sort,e=>{n.sort=e;})})),e.appendChild(o);const a=dt({icon:"swap",title:V("prices.conversion")});a.appendChild(ut(V("prices.conversionDesc"))),a.appendChild(pt({label:V("prices.convertTo"),hint:V("prices.convertToDesc"),control:vt([{value:"auto",label:V("convertTo.auto")},{value:"off",label:V("convertTo.off")},...so.map(e=>({value:e,label:e}))],n.convertTo,e=>{n.convertTo=e;})})),a.appendChild(mt({checked:false!==n.showConverted,label:V("prices.showConverted"),onChange:e=>{n.showConverted=e;}})),a.appendChild(pt({label:V("prices.fxCache"),hint:V("prices.fxCacheDesc"),control:vt(ro.map(({value:e,key:t})=>({value:e,label:V(`fxTtl.${t}`)})),n.fxTtl,e=>{n.fxTtl=Number(e);})}));const r=ut(function(){var e;const t=Qn();if(!(null==t?void 0:t.rates))return V("prices.fxCacheEmpty");let n="";try{n=new Date(t.ts).toLocaleString();}catch(o){n="";}return V("prices.fxCached",{provider:null!=(e=t.provider)?e:"?",date:n})}());a.appendChild(r),a.appendChild(xt(V("prices.fxClear"),()=>{!function(){try{"function"==typeof GM_deleteValue?GM_deleteValue(Vn):GM_setValue(Vn,null);}catch(e){B("fx","failed to clear rates cache",{error:String(e)});}}(),r.textContent=V("prices.fxCacheEmpty");},"sp-button--ghost")),e.appendChild(a);const s=dt({icon:"globe",title:V("prices.regions")});s.appendChild(ut(V("prices.regionsDesc")));const i=ke("div","sp-switch-grid");for(const d of Fn)i.appendChild(bt({label:`${d.name} · ${d.currency}`,checked:n.regions.includes(d.cc),onChange:e=>{const t=new Set(n.regions);e?t.add(d.cc):t.delete(d.cc),n.regions=Fn.filter(e=>t.has(e.cc)).map(e=>e.cc);}}));s.appendChild(i),e.appendChild(s);const l=dt({icon:"sliders",title:V("prices.display")});l.appendChild(mt({checked:true===n.collapsed,label:V("prices.collapsed"),onChange:e=>{n.collapsed=e;}})),l.appendChild(ut(V("prices.collapsedDesc")));const c=[["showOriginal","prices.showOriginal"],["showDiscount","prices.showDiscount"],["showSavings","prices.showSavings"],["highlightCheapest","prices.highlightCheapest"],["showHomeRow","prices.showHomeRow"]];for(const[d,u]of c)l.appendChild(mt({checked:false!==n[d],label:V(u),onChange:e=>{n[d]=e;}}));e.appendChild(l);}},lo=/\/app\/(\d+)/,co=["{name}","%s","{searchterms}"];function uo(e){const t=lo.exec(String(null!=e?e:""));return t?t[1]:null}function po(){var e,t,n;const o=uo(location.href);if(!o)return null;const a=(null!=(n=null==(t=null==(e=document.querySelector("#appHubAppName"))?void 0:e.textContent)?void 0:t.trim())?n:"")||document.title.replace(/ on Steam\s*$/,"").trim();return a?{appid:o,name:a}:null}function go(e,t){var n;const o=String(null!=e?e:"").trim();if(!o)return null;let a=o;const r=null!=(n=null==t?void 0:t.name)?n:"",s=encodeURIComponent(r);for(const c of co)a=a.split(c).join(s),a=a.split(c.toUpperCase()).join(s);if(null==t?void 0:t.appid)a=a.split("{appid}").join(t.appid),a=a.split("{APPID}").join(t.appid);else if(/\{appid\}/i.test(a))return null;let i=null;try{i=new URL(a);}catch(l){return null}return "http:"!==i.protocol&&"https:"!==i.protocol?null:i.href}function ho(e){return null!==go(e,{appid:"440",name:"Team Fortress 2"})}function mo(e,t){const n=ke("span","sp-link-card__favicon ".trim());if(e.icon){const t=ke("img","sp-links__icon");t.src=e.icon,t.alt="",t.loading="lazy",t.referrerPolicy="no-referrer",t.addEventListener("error",()=>{n.textContent="",n.appendChild(ke("span","sp-links__letter",e.name.trim().charAt(0).toUpperCase()||"?"));}),n.appendChild(t);}else n.appendChild(ke("span","sp-links__letter",e.name.trim().charAt(0).toUpperCase()||"?"));return n}function bo(e,t,n){if(n<0||n>=e.length)return false;const[o]=e.splice(t,1);return e.splice(n,0,o),true}const vo={id:"links",titleKey:"tab.links",icon:"cursor",descKey:"tab.links.desc",renderInto(e,t){const n=t.links;Array.isArray(n.items)||(n.items=[]);const o=null!=(a=po())?a:{appid:"440",name:"Team Fortress 2"};var a;const r=dt({icon:"cursor",title:V("links.title")});r.appendChild(ut(V("links.desc"))),r.appendChild(mt({checked:false!==n.enabled,label:V("links.enabled"),onChange:e=>{n.enabled=e;}})),r.appendChild(ut(V("links.enabledDesc"))),r.appendChild(pt({label:V("links.position"),hint:V("links.positionDesc"),control:vt(se.map(e=>({value:e,label:V(`pricesPos.${e}`)})),n.position,e=>{n.position=e;})})),r.appendChild(mt({checked:false!==n.openInNewTab,label:V("links.newTab"),onChange:e=>{n.openInNewTab=e;}})),r.appendChild(ut(V("links.newTabDesc"))),e.appendChild(r);const s=dt({icon:"tag",title:V("links.list")});s.appendChild(ut(V("links.listDesc"))),s.appendChild(ut(V("links.templateHelp")));const i=ke("div","sp-link-list");s.appendChild(i);const l=(e,t)=>{const n=e.querySelector("[data-sp-link-preview]"),a=e.querySelector("[data-sp-link-open]"),r=e.querySelector("[data-sp-link-name]"),s=e.querySelector("[data-sp-link-favicon]");if(r&&(r.textContent=t.name||"—"),s){const e=mo(t);s.replaceWith(e),e.setAttribute("data-sp-link-favicon","");}const i=t.name&&t.url?go(t.url,o):null;n&&(n.textContent=i?`${V("links.preview")}: ${i}`:"",n.hidden=!i),a&&(a.hidden=!i,i&&(a.href=i));},c=()=>{i.textContent="",n.items.length||i.appendChild(ut(V("links.empty"))),n.items.forEach((e,t)=>{var o;const a=ke("div","sp-link-card"),r=ke("div","sp-link-card__top"),s=mo(e);s.setAttribute("data-sp-link-favicon",""),r.appendChild(s),r.appendChild(ke("span","sp-link-card__name",e.name||"—")),r.querySelector(".sp-link-card__name").setAttribute("data-sp-link-name","");const d=ke("div","sp-link-card__actions"),u=ke("button","sp-button sp-button--ghost sp-link-card__btn","↑");u.type="button",u.title=V("links.moveUp"),u.setAttribute("aria-label",V("links.moveUp")),u.disabled=0===t,u.addEventListener("click",()=>{bo(n.items,t,t-1)&&c();});const p=ke("button","sp-button sp-button--ghost sp-link-card__btn","↓");p.type="button",p.title=V("links.moveDown"),p.setAttribute("aria-label",V("links.moveDown")),p.disabled=t===n.items.length-1,p.addEventListener("click",()=>{bo(n.items,t,t+1)&&c();});const g=ke("button","sp-button sp-button--ghost sp-link-card__btn","×");g.type="button",g.title=V("links.remove"),g.setAttribute("aria-label",V("links.remove")),g.addEventListener("click",()=>{n.items.splice(t,1),c();}),d.append(u,p,g),r.appendChild(d);const h=ke("label","sp-switch"),m=ke("input","");m.type="checkbox",m.checked=false!==e.enabled,m.setAttribute("aria-label",e.name||V("links.list")),m.addEventListener("change",()=>{e.enabled=m.checked;}),h.append(m,ke("span","sp-switch__track")),r.appendChild(h),a.appendChild(r);const b=St({value:e.name,placeholder:V("links.namePlaceholder"),maxLength:60,onChange:t=>{e.name=t.trim().slice(0,60),l(a,e);}});a.appendChild(pt({label:V("links.name"),control:b}));const v=St({value:e.url,placeholder:V("links.urlPlaceholder"),maxLength:500,inputMode:"url",onChange:t=>{e.url=t.trim().slice(0,500),v.classList.toggle("is-invalid",!!e.url&&!ho(e.url)),l(a,e);}});e.url&&!ho(e.url)&&v.classList.add("is-invalid"),a.appendChild(pt({label:V("links.url"),control:v}));const f=St({value:null!=(o=e.icon)?o:"",placeholder:V("links.iconPlaceholder"),maxLength:500,inputMode:"url",onChange:t=>{e.icon=t.trim().slice(0,500),l(a,e);}});a.appendChild(pt({label:V("links.icon"),control:f}));const y=ke("p","sp-hint");y.setAttribute("data-sp-link-preview",""),a.appendChild(y);const w=ke("a","sp-button sp-button--ghost sp-link-card__open",V("links.open"));w.setAttribute("data-sp-link-open",""),w.target="_blank",w.rel="noopener noreferrer",a.appendChild(w),l(a,e),i.appendChild(a);});};c();const d=ke("div","sp-link-card sp-link-card--add"),u=St({value:"",placeholder:V("links.namePlaceholder"),maxLength:60,onChange:()=>{}}),p=St({value:"",placeholder:V("links.urlPlaceholder"),maxLength:500,inputMode:"url",onChange:()=>{}}),h=St({value:"",placeholder:V("links.iconPlaceholder"),maxLength:500,inputMode:"url",onChange:()=>{}});d.appendChild(pt({label:V("links.name"),control:u})),d.appendChild(pt({label:V("links.url"),control:p})),d.appendChild(pt({label:V("links.icon"),control:h}));const m=ke("div","sp-link-card__add-row"),b=xt(V("links.add"),()=>{const e=u.value.trim().slice(0,60),t=p.value.trim().slice(0,500),o=!!e&&ho(t);p.classList.toggle("is-invalid",!ho(t)),!o||n.items.length>=30||(n.items.push({id:ie(),name:e,url:t,icon:h.value.trim().slice(0,500),enabled:true}),u.value="",p.value="",h.value="",c());}),v=xt(V("links.restore"),()=>{n.items=g().links.items.map(e=>({...e})),c();},"sp-button--ghost");m.append(b,v),d.appendChild(m),s.appendChild(d),e.appendChild(s);}},fo=new Map,yo=new Map;let wo=null,ko=null;function Co(e,t){return !!e&&Date.now()-e.tsDo(),1e3);}function So(e){const t=yo.get(String(e));return Co(t,c)?t:null}function xo(e,t){yo.set(String(e),{...t,ts:Date.now()}),function(){if(yo.size<=2e3)return;const e=[];yo.forEach((t,n)=>e.push({key:n,ts:Number(null==t?void 0:t.ts)||0})),e.sort((e,t)=>e.ts-t.ts);for(let t=0;t{Co(t,c)&&(e.base[n]=t);}),yo.forEach((t,n)=>{Co(t,c)&&(e.details[n]=t);}),Co(wo,d)&&(e.owned=wo);try{GM_setValue(r,e);}catch(t){M(z,"failed to persist add-on cache",{error:t});}}const zo=["purchase","sidebar","description"],qo=["missing","store"],Po=[["showSummary","dlc.showSummary"],["showOwned","dlc.showOwned"],["showPrices","dlc.showPrices"],["showThumbnails","dlc.showThumbnails"],["showReleaseDate","dlc.showReleaseDate"]],Ao={id:"dlc",titleKey:"tab.dlc",icon:"tag",descKey:"tab.dlc.desc",renderInto(e,t){const n=t.dlc,o=dt({icon:"tag",title:V("dlc.title")});o.appendChild(ut(V("dlc.desc"))),o.appendChild(mt({checked:false!==n.enabled,label:V("dlc.enabled"),onChange:e=>{n.enabled=e;}})),o.appendChild(ut(V("dlc.enabledDesc"))),o.appendChild(pt({label:V("dlc.position"),hint:V("dlc.positionDesc"),control:vt(zo.map(e=>({value:e,label:V(`dlcPos.${e}`)})),n.position,e=>{n.position=e;})})),o.appendChild(pt({label:V("dlc.sort"),hint:V("dlc.sortDesc"),control:vt(qo.map(e=>({value:e,label:V(`dlcSort.${e}`)})),n.sort,e=>{n.sort=e;})})),e.appendChild(o);const a=dt({icon:"sliders",title:V("dlc.display")});a.appendChild(mt({checked:true===n.collapsed,label:V("dlc.collapsed"),onChange:e=>{n.collapsed=e;}})),a.appendChild(ut(V("dlc.collapsedDesc")));for(const[r,c]of Po)a.appendChild(mt({checked:false!==n[r],label:V(c),onChange:e=>{n[r]=e;}}));e.appendChild(a);const s=dt({icon:"eye",title:V("dlc.viewerSection")});s.appendChild(mt({checked:false!==n.viewer,label:V("dlc.viewer"),onChange:e=>{n.viewer=e;}})),s.appendChild(ut(V("dlc.viewerDesc"))),s.appendChild(mt({checked:false!==n.viewerThumbnails,label:V("dlc.viewerThumbnails"),onChange:e=>{n.viewerThumbnails=e;}})),s.appendChild(mt({checked:false!==n.viewerLoop,label:V("dlc.viewerLoop"),onChange:e=>{n.viewerLoop=e;}})),e.appendChild(s);const i=dt({icon:"database",title:V("dlc.cache")});i.appendChild(ut(V("dlc.cacheDesc")));const l=ut("");l.setAttribute("aria-live","polite"),i.appendChild(xt(V("dlc.clearCache"),()=>{!function(){clearTimeout(ko),ko=null,fo.clear(),yo.clear(),wo=null;try{GM_deleteValue(r);}catch(e){M(z,"failed to clear add-on cache",{error:e});}}(),l.textContent=V("dlc.cacheCleared");},"sp-button--ghost")),i.appendChild(l),e.appendChild(i);}},Lo={en:"english",ru:"russian","zh-CN":"schinese",es:"spanish","pt-BR":"brazilian",de:"german",fr:"french",ja:"japanese",ko:"koreana",pl:"polish"},Eo={english:"en-US,en;q=0.9",russian:"ru-RU,ru;q=0.9,en;q=0.8",schinese:"zh-CN,zh;q=0.9,en;q=0.8",tchinese:"zh-TW,zh;q=0.9,en;q=0.8",spanish:"es-ES,es;q=0.9,en;q=0.8",latam:"es-419,es;q=0.9,en;q=0.8",brazilian:"pt-BR,pt;q=0.9,en;q=0.8",portuguese:"pt-PT,pt;q=0.9,en;q=0.8",german:"de-DE,de;q=0.9,en;q=0.8",french:"fr-FR,fr;q=0.9,en;q=0.8",japanese:"ja-JP,ja;q=0.9,en;q=0.8",koreana:"ko-KR,ko;q=0.9,en;q=0.8",polish:"pl-PL,pl;q=0.9,en;q=0.8"};function To(e){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=document.cookie.match(new RegExp(`(?:^|;\\s*)${t}=([^;]*)`));return n?decodeURIComponent(n[1].trim()):""}function jo(){return To("Steam_Language")||Lo[F]||"english"}function Ro(e=ye().region){var t;if((null==e?void 0:e.countryCode)&&/^[A-Za-z]{2}$/.test(e.countryCode.trim()))return e.countryCode.trim().toUpperCase();const n=To("steamCountry");if(n){const e=null==(t=decodeURIComponent(n).split("|")[0])?void 0:t.trim();if(/^[A-Za-z]{2}$/.test(e))return e.toUpperCase()}return ""}function Mo(e,t=ye().region){if(!(null==t?void 0:t.proxyEnabled)||!String((null==t?void 0:t.proxyHost)||"").trim())return e;const n=function(e=ye().region){const t=String((null==e?void 0:e.proxyHost)||"").trim().replace(/\/+$/,""),n=String((null==e?void 0:e.proxyPort)||"").trim();return /^https?:\/\//i.test(t)?n&&!/:\d+$/.test(t.replace(/^https?:\/\//i,"").split("/")[0])?`${t}:${n}`:t:n?`http://${t}:${n}`:`http://${t}`}(t),o=(null==t?void 0:t.proxyMode)||"gateway";return "path"===o?`${n}/${e.replace(/^https?:\/\//,"")}`:"query"===o?`${n}/?url=${encodeURIComponent(e)}`:`${n}/${e}`}function Bo(e=ye().region){const t=jo(),n=["birthtime=-3338496000","mature_content=1","wants_mature_content=1","lastagecheckage=1-0-1980",`Steam_Language=${t}`],o=Ro(e);return o&&n.push(`steamCountry=${encodeURIComponent(`${o}|0`)}`),{Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language":Eo[t]||navigator.language||"en-US,en;q=0.9",Cookie:n.join("; ")}}function No(e,t=ye().region){return new Promise((n,o)=>{if("function"!=typeof GM_xmlhttpRequest)return void o(E(w,"GM_xmlhttpRequest is unavailable"));const a={method:"GET",url:e,anonymous:true,timeout:45e3,headers:Bo(t),onload:e=>n(e),onerror:e=>o(E(w,"guest request failed",{status:null==e?void 0:e.status,statusText:null==e?void 0:e.statusText})),ontimeout:()=>o(E(w,"guest request timed out",{url:e}))};(null==t?void 0:t.proxyEnabled)&&(null==t?void 0:t.proxyUser)&&(a.user=t.proxyUser,a.password=t.proxyPass||""),GM_xmlhttpRequest(a);})}const Io=[/unavailable in your region/i,/not available in your (?:country|region)/i,/недоступ[еаоы]?н.*(?:регион|стране|вашем регионе)/i,/в вашем регионе недоступн/i,/este artículo no está disponible en tu región/i,/cet article n'est pas disponible dans votre région/i],Oo=/\/(app|bundle|sub)\/(\d+)/i;function Ho(e=document){var t,n,o,a;const r=null==(t=e.querySelector)?void 0:t.call(e,"#error_box .error, #error_box");if(r){const e=r.textContent||"";if(Io.some(t=>t.test(e)))return true}const s=null==(n=e.querySelector)?void 0:n.call(e,".pageheader");if(s&&/oops/i.test(s.textContent||"")){const t=(null==(a=null==(o=e.querySelector)?void 0:o.call(e,".page_header_ctn, #error_box, .page_content"))?void 0:a.textContent)||"";if(Io.some(e=>e.test(t)))return true}return false}function Uo(){return !!document.querySelector("#account_pulldown, #account_dropdown, #header_notification_area, #global_actions .user_avatar, #global_actions .playerAvatar")||!!document.querySelector('#global_actions a[href*="steamcommunity.com/profiles/"], #global_actions a[href*="steamcommunity.com/id/"]')}function $o(){var e,t;return document.querySelector("#responsive_page_template_content")||document.querySelector(".responsive_page_content")||(null==(t=null==(e=document.querySelector("#error_box"))?void 0:e.closest(".page_content"))?void 0:t.parentElement)||document.body}const Go=".apphub_OtherSiteInfo",Fo="sp-region-othersite-reload";function Wo(e,{reloaded:t=false}={}){const n=V(t?"region.reload":"region.offerButton"),o=V(t?"region.bannerBody":"region.offer"),a=document.querySelectorAll(Go);return e?!!a.length&&(a.forEach(e=>{const a=e.querySelector(`:scope > .${Fo}`);if(a){const e=a.querySelector("span");return e&&e.textContent!==n&&(e.textContent=n),void(a.title!==o&&(a.title=o))}e.appendChild(function(e){const t=ke("a",`btnv6_blue_hoverfade btn_medium ${Fo}`);return t.tabIndex=0,t.setAttribute("role","button"),t.title=V(e?"region.bannerBody":"region.offer"),t.appendChild(ke("span",null,V(e?"region.reload":"region.offerButton"))),t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),va();}),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),va());}),t}(t));}),true):(document.querySelectorAll(`.${Fo}`).forEach(e=>e.remove()),false)}function Ko(){var e;null==(e=document.getElementById("sp-region-loader"))||e.remove();}function Vo(e,t,n,{onRetry:o=null}={}){document.querySelectorAll(".sp-region-status, .sp-region-offer").forEach(e=>e.remove()),Ko();const a=ke("div",`sp-region-status sp-region-status--${t}`);if(a.setAttribute("role","alert"),a.appendChild(ke("div","sp-region-status__text",n)),o){const e=ke("button","sp-button sp-region-status__retry",V("region.retry"));e.type="button",e.addEventListener("click",o),a.appendChild(e);}e.appendChild(a);}const Zo=[/g_AccountID\s*=/,/g_sessionID\s*=/,/g_bLoggedIn\s*=/,/BuildDefaultHeader/,/InitCookiePreferencesPopup/,/#global_header/];function Jo(e){try{return new URL(e,"https://store.steampowered.com").pathname}catch(t){return String(e)}}function Qo(e){return new Promise(t=>{let n=false;const o=o=>{n||(n=true,o||B("region","guest bundle failed to load",{src:e}),t());},a=document.createElement("script");a.async=false,a.onload=()=>o(true),a.onerror=()=>o(false),setTimeout(o,Math.max(1e4,0)),a.src=e,(document.head||document.documentElement).appendChild(a);})}function Xo(e){var t,n;return "SCRIPT"!==e.nodeName&&(null==(t=e.querySelectorAll)||t.call(e,".banner_open_in_steam").forEach(e=>e.remove()),null==(n=e.querySelectorAll)||n.call(e,"script").forEach(e=>e.remove()),true)}async function Yo(e,t){!function(e){var t;const n=null==(t=e.title)?void 0:t.trim();n&&(document.title=n);}(e),function(e){for(const t of ["documentElement","body"]){const n=e[t],o=document[t];n&&o&&n.classList.forEach(e=>{o.classList.contains(e)||o.classList.add(e);});}}(e);const n=function(e){const t=document.head,n=e.head;if(!t||!n)return 0;const o=new Set(Se(t.querySelectorAll('link[rel="stylesheet"]')).map(e=>Jo(e.getAttribute("href")||e.href)));let a=0;n.querySelectorAll('link[rel="stylesheet"]').forEach(e=>{const n=e.getAttribute("href");if(!n||o.has(Jo(n)))return;const r=document.createElement("link");r.rel="stylesheet";const s=e.getAttribute("media");s&&(r.media=s),r.href=n,t.appendChild(r),o.add(Jo(n)),a+=1;});const r=new Set(Se(t.querySelectorAll("style")).map(e=>e.textContent));return n.querySelectorAll("style").forEach(e=>{if(r.has(e.textContent))return;const n=document.createElement("style");n.textContent=e.textContent,t.appendChild(n),a+=1;}),a}(e),o=function(e){const t=[];return e.querySelectorAll("script:not([src])").forEach(e=>{const n=e.textContent||"";n.trim()&&!function(e){return Zo.some(t=>t.test(e))}(n)&&t.push(n);}),t}(e),a=function(e){const t=e.querySelector("#responsive_page_template_content"),n=document.querySelector("#responsive_page_template_content");if(!t||!n)return false;const o=Se(t.childNodes).map(e=>document.adoptNode(e)).filter(Xo);return !!o.length&&(n.replaceChildren(...o),true)}(e),r=!a&&function(e){const t=document.querySelector("#error_box");if(!t||!e)return false;const n=t.closest(".page_content, .page_content_ctn")||t,o=document.adoptNode(e);return !!Xo(o)&&(n.replaceWith(o),o.isConnected)}(t);if(!a&&!r)throw E(C,"guest content had no transplant target");const s=await async function(e){const t=function(e){const t=new Set(Se(document.querySelectorAll("script[src]")).map(e=>Jo(e.getAttribute("src")||e.src))),n=[];return e.querySelectorAll("head script[src]").forEach(e=>{const o=e.getAttribute("src");if(!o)return;const a=Jo(o);t.has(a)||(t.add(a),n.push(o));}),n}(e);for(const n of t)await Qo(n);return t.length}(e),i=function(e){let t=0;return e.forEach(e=>{try{const n=document.createElement("script");n.textContent=e,(document.head||document.documentElement).appendChild(n),n.remove(),t+=1;}catch(n){B("region","guest init script failed",{error:String(n)});}}),t}(o);if(Ho(document))throw E(C,"transplant left the error page behind");B("region","transplanted guest content",{target:a?"shell":"container",styles:n,bundles:s,scripts:i});}const ea="1_5_9_",ta="https://store.fastly.steamstatic.com/public/images/v6/ico/ico_selected.png",na="https://store.fastly.steamstatic.com/public/images/v6/btn_arrow_down_padded.png",oa="https://store.fastly.steamstatic.com/public/images/v6/ico/ico_selected_bright.png",aa="https://store.fastly.steamstatic.com/public/images/v6/ico/ico_unselected_bright.png",ra=/g_sessionID\s*=\s*"([^"]+)"/,sa=/g_AccountID\s*=\s*(\d+)/,ia=/GDynamicStore\.Init\(\s*(\d+)/;function la(e=document){var t,n;let o="",a=0;const r=null!=(n=null==(t=e.querySelectorAll)?void 0:t.call(e,"script:not([src])"))?n:[];for(let s=0;s0&&(a=n);}if(o&&a)break}return o||(o=To("sessionid")),{sessionId:o,accountId:a}}function ca(e,t={}){const n=new AbortController,o=setTimeout(()=>n.abort(),Math.max(45e3,0));return fetch(e,{...t,signal:n.signal}).finally(()=>clearTimeout(o))}function da(e,t){const n=new URLSearchParams;for(const[o,a]of Object.entries(t))n.append(o,String(a));return ca(`https://store.steampowered.com${e}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},body:n.toString()}).then(async t=>{if(!t.ok)throw E(_,`queue POST ${e} HTTP ${t.status}`,{status:t.status});const n=await t.text();if(!n)return {};try{return JSON.parse(n)}catch(o){return {}}})}function ua(e,t){const n=e.querySelector("#add_to_wishlist_area"),o=e.querySelector("#add_to_wishlist_area_success"),a=e.querySelector("#add_to_wishlist_area_fail");n&&(n.style.display=t?"none":""),o&&(o.style.display=t?"":"none"),a&&(a.style.display="none");}function pa(e,t,n=0){const o=e.querySelector("[data-sp-queue-ignore]"),a=e.querySelector("[data-sp-queue-unignore]");o&&(o.style.display=t?"none":""),a&&(a.style.display=t?"":"none");const r=e.querySelector("#queue_btn_ignore_menu"),s=e.querySelector("#queue_ignore_menu_arrow");null==r||r.classList.remove("not_interested","owned_elsewhere"),null==s||s.classList.remove("queue_btn_active","queue_btn_inactive"),t?(null==r||r.classList.add(2===n?"owned_elsewhere":"not_interested"),null==s||s.classList.add("queue_btn_active")):null==s||s.classList.add("queue_btn_inactive");}function ga(e,t,n){R(_,`queue ${e} failed`,{appid:t,error:String((null==n?void 0:n.message)||n)}),Ot({type:"error",title:V("queue.actionFailed"),message:V("queue.actionFailedDesc"),key:"sp-queue-action"});}function ha(e){return "1"!==e.dataset.spBusy&&(e.dataset.spBusy="1",true)}let ma=false;function ba(){return !!document.querySelector(".sp-region-banner")}async function va(){var e,t,n;if(ma)return;const o=$o();if(!o)return;const a=ye().region;ma=true,function(){Ko(),document.querySelectorAll(".sp-region-status, .sp-region-offer").forEach(e=>e.remove());const e=ke("div","sp-region-loader");e.id="sp-region-loader",e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true");const t=ke("div","sp-region-loader__card");t.appendChild(ke("div","sp-region-loader__spinner")),t.appendChild(ke("div","sp-region-loader__text",V("region.loading"))),e.appendChild(t),document.body.appendChild(e),requestAnimationFrame(()=>e.classList.add("is-visible"));}();try{const e=function(e=location.href,t=ye().region){const n=new URL(e);n.searchParams.delete("snr"),n.searchParams.set("l",jo());const o=Ro(t);return o&&n.searchParams.set("cc",o.toLowerCase()),n.toString()}(location.href,a),t=Mo(e,a);B("region","guest fetch");const n=await No(t,a);if(n.status<200||n.status>=400)throw E(w,`guest request HTTP ${n.status}`,{status:n.status});const s=n.responseText||"",i=(new DOMParser).parseFromString(s,"text/html");if(Ho(i))return void Vo(o,"error",V(a.proxyEnabled?"region.errorBlockedProxy":"region.errorBlocked"),{onRetry:()=>va()});if(i.querySelector("#agecheck_form, .agegate_birthday_desc, #app_agegate"))return void Vo(o,"error",V("region.errorAgeGate"),{onRetry:()=>va()});const l=function(e){var t,n,o,a,r;return (null==(t=e.querySelector)?void 0:t.call(e,".game_page_background"))||(null==(n=e.querySelector)?void 0:n.call(e,"#tabletGrid"))||(null==(o=e.querySelector)?void 0:o.call(e,".page_content_ctn[itemscope]"))||(null==(r=null==(a=e.querySelector)?void 0:a.call(e,"#game_highlights"))?void 0:r.closest(".page_content_ctn"))||null}(i);if(!l)throw E(k,"guest page held no store content");const c=!(!a.proxyEnabled||!a.proxyHost.trim()),d=Uo();let u=!1;try{await Yo(i,l),u=!0,d&&function(){var e;try{const t=function(e=location.href){const t=String(e).match(Oo);return t?{kind:t[1].toLowerCase(),id:t[2]}:null}();if(!t||"app"!==t.kind)return !1;if(!Uo())return !1;const n=document.querySelector("#queueActionsCtn");if(!n||"1"===n.dataset.spQueueRestored)return !1;if(n.querySelector("#add_to_wishlist_area"))return !1;if(!n.querySelector('a[href*="/login"]'))return !1;const{sessionId:o,accountId:a}=la();if(!o)return B("region","queue restore skipped: no live session found"),!1;const r=document.createElement("template");r.innerHTML=`\n \n \n \n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
`.trim();const s=n.querySelector("#shareBtn");n.querySelectorAll(":scope > p").forEach(e=>{e.querySelector('a[href*="/login"]')&&e.remove();}),Se(r.content.children).forEach(e=>n.insertBefore(e,s));const i=document.createElement("template");i.innerHTML=`\n
\n \n ${V("queue.viewQueue")}   \n `.trim(),Se(i.content.children).forEach(e=>n.appendChild(e)),document.getElementById("queueCtn")||null==(e=n.closest(".queue_ctn"))||e.setAttribute("id","queueCtn"),n.setAttribute("data-panel",'{"flow-children":"column"}'),n.dataset.spQueueRestored="1";const l=function(e,{appid:t,sessionId:n}){var o,a,r,s,i,l;let c=0;const d={sessionid:n,appid:t},u=e.querySelector("#add_to_wishlist_area > a"),p=e.querySelector("#view_wishlist_btn"),g=e.querySelector("[data-sp-queue-remove]"),h=e.querySelector("#add_to_wishlist_area_fail"),m=e.querySelector(".wishlist_added_temp_notice"),b=async(n,o)=>{if(ha(n))try{await da(o?"/api/removefromwishlist":"/api/addtowishlist",d),ua(e,!o),!o&&m&&(m.style.display="",setTimeout(()=>{m.style.display="none";},3e3));}catch(a){h&&(h.style.display=""),ga(o?"remove-wishlist":"add-wishlist",t,a);}finally{delete n.dataset.spBusy;}};null==u||u.addEventListener("click",e=>{e.preventDefault(),b(u,!1);});const v=e=>{e.preventDefault(),b(e.currentTarget,!0);};null==p||p.addEventListener("click",v),null==g||g.addEventListener("click",v);const f=async(n,o)=>{if(ha(n))try{await da("/explore/followgame/",o?{...d,unfollow:1}:d),function(e,t){const n=e.querySelector("[data-sp-queue-follow]"),o=e.querySelector("[data-sp-queue-unfollow]");n&&(n.style.display=t?"none":""),o&&(o.style.display=t?"":"none");}(e,!o);}catch(a){ga(o?"unfollow":"follow",t,a);}finally{delete n.dataset.spBusy;}};null==(o=e.querySelector("[data-sp-queue-follow]"))||o.addEventListener("click",e=>{f(e.currentTarget,!1);}),null==(a=e.querySelector("[data-sp-queue-unfollow]"))||a.addEventListener("click",e=>{f(e.currentTarget,!0);});const y=async(n,o,a=0)=>{var r;if(ha(n))try{await da("/recommended/ignorerecommendation/",o?{...d,snr:ea,remove:1}:{...d,snr:ea,ignore_reason:a}),o||(c=a),pa(e,!o,c),null==(r=e.querySelector("#queue_ignore_menu_arrow"))||r.setAttribute("aria-expanded","false");}catch(s){ga(o?"unignore":"ignore",t,s);}finally{delete n.dataset.spBusy;}};null==(r=e.querySelector("[data-sp-queue-ignore]"))||r.addEventListener("click",e=>{y(e.currentTarget,!1,0);}),null==(s=e.querySelector("[data-sp-queue-unignore]"))||s.addEventListener("click",e=>{y(e.currentTarget,!0);}),null==(i=e.querySelector("#queue_ignore_menu_option_not_interested"))||i.addEventListener("click",t=>{const n=e.querySelector("[data-sp-queue-unignore]");n&&"none"!==n.style.display&&0===c?y(n,!0):y(t.currentTarget,!1,0);}),null==(l=e.querySelector("#queue_ignore_menu_option_owned_elsewhere"))||l.addEventListener("click",t=>{const n=e.querySelector("[data-sp-queue-unignore]");n&&"none"!==n.style.display&&2===c?y(n,!0):y(t.currentTarget,!1,2);});const w=e.querySelector("#queue_ignore_menu_arrow"),k=e.querySelector("#ignore_menu_flyout > div");return null==w||w.addEventListener("click",()=>{var e;const t="true"===w.getAttribute("aria-expanded");w.setAttribute("aria-expanded",String(!t)),t||null==(e=null==k?void 0:k.querySelector(".queue_menu_option"))||e.focus({preventScroll:!0});}),null==k||k.addEventListener("focusout",e=>{k.contains(e.relatedTarget)||null==w||w.setAttribute("aria-expanded","false");}),document.addEventListener("click",t=>{var n;"true"===(null==w?void 0:w.getAttribute("aria-expanded"))&&((null==(n=e.querySelector("#ignoreBtn"))?void 0:n.contains(t.target))||w.setAttribute("aria-expanded","false"));}),{applyState(t){ua(e,t.onWishlist),pa(e,t.ignored,t.ignoreReason),c=t.ignoreReason;}}}(n,{appid:t.id,sessionId:o});return a&&async function(e,t){var n,o,a,r;const s={onWishlist:!1,ignored:!1,ignoreReason:0};if(!e)return s;const i=Ro(),l=`https://store.steampowered.com/dynamicstore/userdata/?id=${e}${i?`&cc=${i}`:""}`;try{const e=await ca(l,{credentials:"same-origin"});if(!e.ok)throw E(_,`queue state HTTP ${e.status}`);const i=await e.json(),c=null==i?void 0:i.rgWishlist;Array.isArray(c)?s.onWishlist=c.some(e=>String(e)===String(t)):c&&"object"==typeof c&&(s.onWishlist=Object.prototype.hasOwnProperty.call(c,t)||Object.prototype.hasOwnProperty.call(c,Number(t)));const d=null==i?void 0:i.rgIgnoredApps;if(d&&"object"==typeof d){const e=Object.prototype.hasOwnProperty.call(d,t)?t:Object.prototype.hasOwnProperty.call(d,Number(t))?Number(t):null;if(null!==e){s.ignored=!0;const t=Number(null!=(r=null!=(a=null==(n=d[e])?void 0:n.ignored_reason)?a:null==(o=d[e])?void 0:o.reason)?r:0);s.ignoreReason=2===t?2:0;}}}catch(c){B("region","queue state fetch failed, keeping defaults",{error:String((null==c?void 0:c.message)||c)});}return s}(a,t.id).then(e=>{n.isConnected&&l.applyState(e);}),B("region","queue actions restored",{appid:t.id}),!0}catch(t){return B("region","queue restore skipped",{error:String((null==t?void 0:t.message)||t)}),!1}}();}catch(r){B("region","transplant failed, falling back to rewrite",{error:String((null==r?void 0:r.message)||r)}),function(e){const t=Se(document.querySelectorAll("style")).filter(e=>{var t;return null==(t=e.textContent)?void 0:t.includes("--sp-")});document.open(),document.write(e),document.close();const n=document.head||document.documentElement;t.forEach(e=>n.appendChild(e.cloneNode(!0)));}(s);}Ko(),O("region:rewrote",{url:location.href,viaProxy:c,signedIn:d,transplanted:u});}catch(r){const a=(null==r?void 0:r.message)&&!/^SP-141\d/.test(String(r.message))?r.message:V("region.errorFailed",{error:null!=(n=null!=(t=null==(e=null==r?void 0:r.details)?void 0:e.status)?t:null==r?void 0:r.message)?n:""});R("SP-1413","region bypass failed",{error:String((null==r?void 0:r.message)||r)}),Vo(o,"error",a||V("region.errorFailed",{error:""}),{onRetry:()=>va()});}finally{ma=false;}}const fa=/\/app\/(\d+)/i;function ya(e){const t=(new DOMParser).parseFromString(String(e||""),"text/html"),n=new Set,o=[];return _e(t.querySelectorAll("a"),e=>{var t,a,r,s,i,l,c;const d=e.getAttribute("href")||"",u=(null==(t=e.dataset)?void 0:t.dsAppid)||(null==(a=d.match(fa))?void 0:a[1])||"";u&&!n.has(u)&&(n.add(u),o.push({appid:u,url:e.getAttribute("href")||`https://store.steampowered.com/app/${u}/`,name:(null==(s=null==(r=e.querySelector(".match_name"))?void 0:r.textContent)?void 0:s.trim())||"",img:(null==(i=e.querySelector(".match_img img"))?void 0:i.getAttribute("src"))||"",price:(null==(c=null==(l=e.querySelector(".match_price"))?void 0:l.textContent)?void 0:c.trim())||""}));}),o}function wa(e=ye().region){const t=null==e?void 0:e.searchMaxRows;return Number.isInteger(t)?Math.min(20,Math.max(1,t)):6}function ka(e,t){var n,o,a;return (null==(a=null==(o=null==(n=e.querySelector)?void 0:n.call(e,t))?void 0:o.textContent)?void 0:a.trim())||""}function Ca(e){var t,n;const o=null==(t=e.querySelector)?void 0:t.call(e,".search_review_summary");if(!o)return "";const a=(o.getAttribute("data-tooltip-html")||"").split(/|<br\s*\/?>/i);return [(a[0]||"").replace(/&[^;]+;/g,"").trim(),(null==(n=(a[1]||"").match(/(\d+%)/))?void 0:n[1])||""].filter(Boolean).join(" · ")}const _a=["win","mac","linux"];function Sa(e){var t;const n=[];return _e(null==(t=e.querySelectorAll)?void 0:t.call(e,".platform_img"),e=>{_e(_a,t=>{var o;(null==(o=e.classList)?void 0:o.contains(t))&&!n.includes(t)&&n.push(t);});}),n}function xa(e){const t=(new DOMParser).parseFromString(String(e||""),"text/html"),n=new Map;return _e(t.querySelectorAll("a.search_result_row[data-ds-appid]"),e=>{var t,o,a;const r=(null==(t=e.dataset)?void 0:t.dsAppid)||"";if(!r||n.has(r))return;const s=null==(o=e.querySelector)?void 0:o.call(e,".search_price_discount_combined");n.set(r,{appid:r,date:ka(e,".search_released"),review:Ca(e),platforms:Sa(e),discount:ka(e,".discount_pct"),original:ka(e,".discount_original_price"),final:ka(e,".discount_final_price"),free:"0"===(null==(a=null==s?void 0:s.getAttribute)?void 0:a.call(s,"data-price-final"))});}),n}let Da=null,za=null,qa=null,Pa=null,Aa=null,La=null;function Ea(){var e;const t=null==(e=ye().region)?void 0:e.countryCode;return /^[A-Za-z]{2}$/.test(t||"")?t.toUpperCase():"US"}function Ta(e){Pa.textContent="",e&&Pa.appendChild(e);}function ja(e){return e?[e.date,e.review].filter(Boolean).join(" • "):""}function Ra(e,t,n){if(e.textContent="",t&&(t.discount||t.original||t.final)){if(t.discount)return t.original&&e.appendChild(ke("span","sp-search__price-old",t.original)),t.final&&e.appendChild(ke("span","sp-search__price-final",t.final)),void e.appendChild(ke("span","sp-search__discount",t.discount));if(t.final)return void e.appendChild(ke("span","sp-search__price-final",t.final))}(null==t?void 0:t.free)?e.appendChild(ke("span","sp-search__price-final",V("search.free"))):n&&e.appendChild(ke("span","sp-search__price",n));}async function Ma(e,t=false){var n;if(!La||La.term!==e)return;const o=t?++La.gen:La.gen,{guestCc:a}=La;!function(){const e=ke("div","sp-search__loading");e.appendChild(ke("span","sp-search__spinner")),e.appendChild(ke("span","",V("search.loading"))),Ta(e);}();const r=ye().region;try{const t=await async function(e,t=ye().region,n=function(e=ye().region){return Ro(e)}(t)){const o=Mo(function(e,{cc:t="",lang:n="english"}={}){const o=new URL("https://store.steampowered.com/search/suggest");return o.searchParams.set("term",e),o.searchParams.set("f","games"),t&&o.searchParams.set("cc",t),n&&o.searchParams.set("l",n),o.toString()}(e,{cc:n,lang:jo()}),t),a=await No(o,t);if(a.status<200||a.status>=400)throw E(w,"guest suggest request failed",{status:a.status});return {cc:n,results:ya(a.responseText||"")}}(e,r,a);if(o!==La.gen||La.term!==e)return;const s=t.results.slice(0,null!=(n=null==La?void 0:La.rows)?n:wa());s.length?(function(e){var t;const n=ke("div","sp-search__list");for(const o of e.slice(0,null!=(t=null==La?void 0:La.rows)?t:wa())){const e=ke("a","sp-search__row");if(e.href=o.url,o.appid&&(e.dataset.appid=o.appid),o.img){const t=ke("span","sp-search__thumb"),n=ke("img");n.src=o.img,n.alt="",n.loading="lazy",t.appendChild(n),e.appendChild(t);}else e.appendChild(ke("span","sp-search__letter",(o.name||"?").slice(0,1).toUpperCase()));const t=ke("span","sp-search__main");t.appendChild(ke("span","sp-search__name",o.name||o.url)),t.appendChild(ke("span","sp-search__meta","")),e.appendChild(t);const a=ke("span","sp-search__prices");o.price&&(a.dataset.fallback=o.price,a.appendChild(ke("span","sp-search__price",o.price))),e.appendChild(a),n.appendChild(e);}Ta(n);}(s),async function(e,t,n){var o,a;const r=null==La?void 0:La.gen;let s;try{s=await async function(e,{cc:t="",lang:n="english",count:o=10,settings:a=ye().region}={}){var r;const s=new URL("https://store.steampowered.com/search/results/");s.searchParams.set("query",""),s.searchParams.set("start","0"),s.searchParams.set("count",String(o)),s.searchParams.set("dynamic_data",""),s.searchParams.set("sort_by","_ASC"),s.searchParams.set("term",e),s.searchParams.set("infinite","1"),t&&s.searchParams.set("cc",t),n&&s.searchParams.set("l",n);const i=await No(Mo(s.toString(),a),a);if(i.status<200||i.status>=400)throw E(w,"guest search results request failed",{status:i.status});let l;try{l=JSON.parse(i.responseText||"{}");}catch(c){throw E(k,"guest search results parse failed")}if(1!==(null==l?void 0:l.success)&&!0!==(null==l?void 0:l.success))throw E(k,"guest search results unsuccessful");return {cc:t,total:null!=(r=l.total_count)?r:0,rows:xa(l.results_html||"")}}(e,{cc:n,lang:jo(),count:t.length,settings:ye().region});}catch(i){return void R(S,"region search details failed",{error:String((null==i?void 0:i.message)||i),term:e})}if(La&&r===La.gen&&La.term===e&&Pa)for(const[l,c]of s.rows){const e=Pa.querySelector(`.sp-search__row[data-appid="${l}"]`);if(!e||!c)continue;const t=e.querySelector(".sp-search__meta");if(t&&(t.textContent=ja(c),t.textContent||t.remove()),Array.isArray(c.platforms)&&c.platforms.length){const t=ke("div","sp-search__platforms");for(const e of c.platforms){const n=ke("span",`platform_img ${e} sp-search__platform`);n.setAttribute("aria-hidden","true"),t.appendChild(n);}const n=null!=(o=e.querySelector(".sp-search__meta"))?o:e.querySelector(".sp-search__name");n?n.after(t):null==(a=e.querySelector(".sp-search__main"))||a.appendChild(t);}const n=e.querySelector(".sp-search__prices");n&&Ra(n,c,n.dataset.fallback||"");}}(e,s,a)):function(){const e=ke("div","sp-search__notice");e.appendChild(ke("span","",V("search.empty"))),Ta(e);}();}catch(s){if(o!==La.gen||La.term!==e)return;R(S,"region search suggest failed",{error:String((null==s?void 0:s.message)||s),term:e}),function(e,t){const n=ke("div","sp-search__notice");n.appendChild(ke("span","",V("region.errorFailed",{error:t})));const o=ke("button","sp-button sp-search__retry");o.type="button",o.textContent=V("region.retry"),o.addEventListener("click",()=>{Ma(e,true);}),n.appendChild(o),Ta(n);}(e,String((null==s?void 0:s.message)||s));}}const Ba=Ce(e=>{La&&Ma(e);},350);function Na(){if(!La)return;const e=za.value.trim();La.term=e,La.gen++,e.length<2?Ta(null):Ba(e);}function Ia(e){"Escape"===e.key&&Da&&!Da.hasAttribute("hidden")&&Ua();}function Oa(){return !!Da&&!Da.hasAttribute("hidden")}function Ha(e=""){if(!function(){const e=ye().region;return false!==(null==e?void 0:e.enabled)&&false!==(null==e?void 0:e.searchEnabled)}())return;Da||function(){Da=ke("div","sp-search-overlay"),Da.setAttribute("hidden",""),Da.addEventListener("mousedown",e=>{e.target===Da&&Ua();});const e=ke("div","sp-search");e.setAttribute("role","dialog"),e.setAttribute("aria-label",V("search.title"));const t=ke("div","sp-search__head");t.appendChild(ke("div","sp-search__title",V("search.title")));const n=ke("button","sp-search__close");n.type="button",n.textContent="×",n.setAttribute("aria-label",V("common.close")),n.addEventListener("click",Ua),t.appendChild(n),e.appendChild(t);const o=ke("div","sp-search__box"),a=ke("span","sp-search__icon");a.innerHTML='',o.appendChild(a),za=ke("input","sp-search__input"),za.type="text",za.autocomplete="off",za.spellcheck=false,za.placeholder=V("search.placeholder"),za.addEventListener("input",Na),za.addEventListener("keydown",e=>{"Escape"===e.key?Ua():"Enter"===e.key&&za.value.trim()&&(location.href=`https://store.steampowered.com/search/?term=${encodeURIComponent(za.value.trim())}`);}),o.appendChild(za),qa=ke("select","sp-select sp-search__select sp-search__rows"),qa.setAttribute("aria-label",V("region.searchRows"));for(const i of u){const e=document.createElement("option");e.value=i,e.textContent=i,qa.appendChild(e);}qa.addEventListener("change",()=>{La&&(La.rows=Number(qa.value)||wa(),we({region:{searchMaxRows:La.rows}}),La.term.length>=2&&Ma(La.term,true));}),o.appendChild(qa),e.appendChild(o),Pa=ke("div","sp-search__results"),e.appendChild(Pa);const r=ke("div","sp-search__foot"),s=ke("a","sp-search__advanced");s.href="https://store.steampowered.com/search/",s.textContent=V("search.advanced"),r.appendChild(s),Aa=ke("span","sp-search__note"),r.appendChild(Aa),e.appendChild(r),Da.appendChild(e),document.documentElement.appendChild(Da),document.addEventListener("keydown",Ia);}();const t=String(e||"").trim();var n,o,a;La={guestCc:Ea(),term:t,gen:0,rows:wa()},qa.value=String(La.rows),za.value=t,Aa&&La&&(Aa.textContent=V("search.guestHint",{country:(n=La.guestCc,n?null!=(a=null==(o=Wn(n))?void 0:o.name)?a:String(n).toUpperCase():"")})),Ta(null),Da.removeAttribute("hidden"),Gt(),document.addEventListener("wheel",$a,{passive:false,capture:true}),document.addEventListener("touchmove",$a,{passive:false,capture:true}),za.focus(),t.length>=2&&Ma(t,true);}function Ua(){La&&La.gen++,La=null,null==Da||Da.setAttribute("hidden",""),document.removeEventListener("wheel",$a,{capture:true}),document.removeEventListener("touchmove",$a,{capture:true}),Ft();}function $a(e){if(!La)return;const t=null==Da?void 0:Da.querySelector(".sp-search__results");t&&e.target instanceof Node&&t.contains(e.target)||e.preventDefault();}const Ga=["gateway","path","query"],Fa={id:"region",titleKey:"tab.region",icon:"globe",descKey:"tab.region.desc",renderInto(e,t){const n=t.region,o=dt({icon:"globe",title:V("region.title")});if(o.appendChild(ut(V("region.desc"))),o.appendChild(mt({checked:false!==n.enabled,label:V("region.enabled"),onChange:e=>{n.enabled=e;}})),o.appendChild(ut(V("region.enabledDesc"))),o.appendChild(mt({checked:true===n.showBanner,label:V("region.showBanner"),onChange:e=>{n.showBanner=e;}})),o.appendChild(ut(V("region.showBannerDesc"))),o.appendChild(pt({label:V("region.mode"),hint:V("region.modeDesc"),control:Ct([{value:"auto",label:V("regionMode.auto"),icon:"bolt"},{value:"manual",label:V("regionMode.manual"),icon:"cursor"}],n.mode,e=>{n.mode=e;})})),o.appendChild(pt({label:V("region.country"),hint:V("region.countryDesc"),control:vt([{value:"",label:V("common.auto")},...Fn.map(e=>({value:e.cc,label:`${e.name} (${e.cc})`}))],n.countryCode||"",e=>{n.countryCode=e;})})),Ho()&&!ba()&&false!==n.enabled){const e=ke("div","sp-cache-row");e.appendChild(xt(V("region.reload"),()=>{va();})),o.appendChild(e);}e.appendChild(o);const a=dt({icon:"search",title:V("region.searchTitle")});a.appendChild(ut(V("region.searchDesc"))),a.appendChild(mt({checked:false!==n.searchEnabled,label:V("region.searchEnabled"),onChange:e=>{n.searchEnabled=e;}})),a.appendChild(ut(V("region.searchEnabledDesc")));const r=ke("div","sp-cache-row");r.appendChild(xt(V("region.searchOpen"),()=>{Ha();})),a.appendChild(r),a.appendChild(pt({label:V("region.searchRows"),hint:V("region.searchRowsDesc"),control:vt(u.map(e=>({value:e,label:String(e)})),n.searchMaxRows,e=>{n.searchMaxRows=Number(e);})})),a.appendChild(ut(V("region.searchNote"))),a.appendChild(ut(V("region.searchHotkey"))),e.appendChild(a);const s=dt({icon:"swap",title:V("region.proxy")});s.appendChild(ut(V("region.proxyDesc"))),s.appendChild(mt({checked:true===n.proxyEnabled,label:V("region.proxyEnabled"),onChange:e=>{n.proxyEnabled=e;}})),s.appendChild(pt({label:V("region.proxyMode"),hint:V("region.proxyModeDesc"),control:vt(Ga.map(e=>({value:e,label:V(`regionProxyMode.${e}`)})),n.proxyMode,e=>{n.proxyMode=e;})})),s.appendChild(pt({label:V("region.proxyHost"),control:St({value:n.proxyHost||"",placeholder:"127.0.0.1",maxLength:253,onChange:e=>{n.proxyHost=String(e||"").trim();}})})),s.appendChild(pt({label:V("region.proxyPort"),control:St({value:n.proxyPort||"",placeholder:"8765",maxLength:5,inputMode:"numeric",onChange:e=>{n.proxyPort=String(e||"").trim();}})})),s.appendChild(pt({label:V("region.proxyUser"),control:St({value:n.proxyUser||"",maxLength:128,onChange:e=>{n.proxyUser=String(e||"");}})})),s.appendChild(pt({label:V("region.proxyPass"),control:St({value:n.proxyPass||"",maxLength:256,type:"password",onChange:e=>{n.proxyPass=String(e||"");}})})),e.appendChild(s);}},Wa=["language","translation","gamepage","prices","links","dlc","region","toasts"];function Ka(e,n){const o={};for(const t of Wa) void 0!==(null==e?void 0:e[t])&&(o[t]=e[t]);return {app:t,format:1,exportedAt:(new Date).toISOString(),version:n,settings:o}}const Va={id:"backup",titleKey:"tab.backup",icon:"backup",descKey:"tab.backup.desc",renderInto(e){const n=dt({icon:"backup",title:V("backup.export")});n.appendChild(ut(V("backup.exportDesc")));const o=ut("");o.setAttribute("aria-live","polite"),n.appendChild(xt(V("backup.download"),()=>{const e=Ka(ye(),Sn());!function(e,t){const n=new Blob([t],{type:"application/json"}),o=URL.createObjectURL(n),a=document.createElement("a");a.href=o,a.download="steam-plus-settings.json",document.body.appendChild(a),a.click(),a.remove(),setTimeout(()=>URL.revokeObjectURL(o),1e3);}(0,JSON.stringify(e,null,2));})),n.appendChild(xt(V("backup.copy"),async()=>{const e=Ka(ye(),Sn());try{if(!navigator.clipboard)throw new Error("clipboard unavailable");await navigator.clipboard.writeText(JSON.stringify(e,null,2)),o.textContent=V("backup.copied");}catch(t){o.textContent=V("backup.copyFailed");}},"sp-button--ghost")),n.appendChild(o),e.appendChild(n);const a=dt({icon:"backup",title:V("backup.import")});a.appendChild(ut(V("backup.importDesc")));const r=ut("");r.setAttribute("aria-live","polite");const s=document.createElement("input");s.type="file",s.accept="application/json,.json",s.hidden=true,s.addEventListener("change",async()=>{var e;const n=null==(e=s.files)?void 0:e[0];if(s.value="",!n)return;let o="";try{o=await n.text();}catch(i){o="";}const a=o?function(e){let n=null;try{n=JSON.parse(e);}catch(i){return {ok:false}}if(!n||"object"!=typeof n||Array.isArray(n))return {ok:false};if(void 0!==n.app&&n.app!==t)return {ok:false};const o=n.settings&&"object"==typeof n.settings?n.settings:n,a={};for(const t of Wa) void 0!==o[t]&&(a[t]=o[t]);return 0===Object.keys(a).length?{ok:false}:{ok:true,patch:a}}(o):{ok:false};if(!a.ok)return r.textContent=V("backup.importInvalid"),void Ot({type:"error",title:V("backup.importInvalid")});await Tt({title:V("backup.importConfirmTitle"),message:V("backup.importConfirm"),confirmLabel:V("backup.import")})&&(function(e){const t=ye().translation.targetLanguage;we(e);const n=ye();K(n.language),O("settings:language",n.language),O("settings:translation"),O("settings:gamepage"),O("settings:prices"),O("settings:links"),O("settings:dlc"),O("settings:region"),n.translation.targetLanguage!==t&&Re(),Cn&&(Cn=JSON.parse(JSON.stringify(ye())),zn());}(a.patch),r.textContent=V("backup.importDone"),Ot({type:"success",title:V("backup.importDone")}));}),a.appendChild(xt(V("backup.chooseFile"),()=>s.click(),"sp-button--ghost")),a.appendChild(s),a.appendChild(r),e.appendChild(a);}},Za={id:"about",titleKey:"tab.about",icon:"info",descKey:"tab.about.desc",renderInto(e){const n=ke("div","sp-about"),o=ke("div","sp-about__hero");o.appendChild(ke("div","sp-about__name",t));const a=Sn();a&&o.appendChild(ke("span","sp-panel__version",`v${a}`)),n.appendChild(o),n.appendChild(ke("p","sp-about__blurb",V("about.blurb")));const r=document.createElement("a");r.className="sp-about__author",r.href="https://github.com/NemoKing1210",r.target="_blank",r.rel="noopener noreferrer";const s=ke("span","sp-about__author-meta");s.append(ke("span","sp-about__author-name","NemoKing1210")),s.appendChild(ke("span","sp-about__author-sub","github.com/NemoKing1210")),r.appendChild(s),n.appendChild(r);const i=ke("div","sp-about__actions"),l=document.createElement("a");l.className="sp-button sp-button--ghost",l.href="https://github.com/NemoKing1210/steam-plus",l.target="_blank",l.rel="noopener noreferrer",l.textContent=V("about.repo"),i.appendChild(l),n.appendChild(i),n.appendChild(ut(V("about.repoHint"))),e.appendChild(n);}};xn(jn),xn(In),xn(Gn),xn(io),xn(vo),xn(Ao),xn(Fa),xn(At),xn(Va),xn(Za);const Ja="sp-settings-btn";function Qa(){return document.querySelector("#account_dropdown .popup_body.popup_menu")}function Xa(e){e.preventDefault(),e.stopPropagation(),function(){if("function"==typeof window.HideMenu)try{return void window.HideMenu("account_pulldown","account_dropdown")}catch(t){}const e=document.getElementById("account_dropdown");e&&(e.style.display="none",e.style.visibility="hidden");}(),An();}function Ya(){const e=document.querySelector(`#${Ja}.sp-header-btn .sp-header-btn__dot`);if(!e)return;const t=function(){try{return JSON.stringify(ye())!==JSON.stringify(g())}catch(e){return false}}();e.classList.toggle("is-on",t),e.title=V(t?"common.on":"common.off");}async function er(){const e=await function(e,t=2e4){return new Promise(n=>{const o=document.querySelector(e);if(o)return void n(o);const a=new MutationObserver(()=>{const t=document.querySelector(e);t&&(a.disconnect(),n(t));});a.observe(document.documentElement,{childList:true,subtree:true}),setTimeout(()=>{a.disconnect(),n(document.querySelector(e));},t);})}("#global_actions");if(!e||document.getElementById(Ja))return document.getElementById(Ja)&&Ya(),document.getElementById(Ja);const n=Qa();return n?function(e){const t=document.getElementById(Ja);if(t)return t;const n=document.createElement("a");n.id=Ja,n.className="popup_menu_item sp-menu-item sp-settings-btn",n.href="#",n.title=V("menu.settings");const o=document.createElement("span");return o.textContent=V("menu.settings"),n.appendChild(o),n.addEventListener("click",Xa),e.appendChild(n),n}(n):function(e){const n=document.getElementById(Ja);if(n)return n;const o=document.createElement("button");return o.type="button",o.id=Ja,o.className="sp-header-btn sp-settings-btn",o.title=V("menu.settings"),o.innerHTML='\n \n ',o.querySelector(".sp-header-btn__text").textContent=`${V("common.settings")} · ${t}`,o.addEventListener("click",Xa),e.insertBefore(o,e.firstChild),Ya(),o}(e)}let tr=null,nr=false;const or=new Set;let ar=false;function rr(){for(const t of [...or])try{t(location.href);}catch(e){}}function sr(e){return function(){if(!ar){ar=true;for(const t of ["pushState","replaceState"])try{const e=history[t];if("function"!=typeof e||e.__spWrapped)continue;const n=function(...t){const n=e.apply(this,t);return rr(),n};n.__spWrapped=!0,history[t]=n;}catch(e){}window.addEventListener("popstate",rr),window.addEventListener("hashchange",rr);}}(),or.add(e),()=>or.delete(e)}function ir(){var e;const{gamepage:t}=ye(),n=false===(null==t?void 0:t.enabled)?"":function(e,t){const n=e&&"object"==typeof e?e:{},o=t&&"object"==typeof t?t:{},a=[];for(const r of $n) true!==n[r.id]?true===o[r.id]&&Array.isArray(r.compactSelectors)&&r.compactSelectors.length>0&&a.push(`${r.compactSelectors.join(", ")} { display: none !important; }`):a.push(`${r.selectors.join(", ")} { display: none !important; }`);return a.join("\n")}(null==t?void 0:t.hidden,null==t?void 0:t.compact),o=Un(location.href)&&n?n:"",a=document.getElementById(On);if(!o)return void(null==a||a.remove());if((null==a?void 0:a.textContent)===o)return;const r=null!=a?a:document.createElement("style");r.id=On,r.textContent=o,a||(null!=(e=document.head)?e:document.documentElement).appendChild(r);}let lr=false;function cr(e){var t,n,o;const a=e=>document.querySelector(e);if("sidebar"===e){const e=null!=(t=a(".rightcol.game_meta_data"))?t:a("#game_area_purchase");return {target:e,mode:(null==e?void 0:e.classList.contains("game_meta_data"))?"prepend":"before"}}return "description"===e?{target:null!=(n=a("#game_area_description"))?n:a("#game_area_purchase"),mode:"after"}:{target:null!=(o=a("#game_area_purchase"))?o:a("#game_area_description"),mode:"before"}}function dr(e,t){return !!(null==t?void 0:t.target)&&("prepend"===t.mode?t.target.insertBefore(e,t.target.firstChild):"before"===t.mode?t.target.before(e):t.target.after(e),e.isConnected)}const ur=new Map;let pr=null;function gr(e,t){return `${e}|${null!=t?t:"home"}`}function hr(e){return !!e&&Date.now()-e.ts<36e5}function mr(){clearTimeout(pr),pr=null;const e={};for(const[n,o]of ur)hr(o)&&(e[n]=o);try{GM_setValue(a,e);}catch(t){M(y,"failed to persist price cache",{error:t});}}async function br(e,t,{force:n}={}){var o,a;if(!n){const n=function(e,t){const n=ur.get(gr(e,t));if(hr(n))return n.overview;ur.delete(gr(e,t));}(e,t);if(void 0!==n)return n}const r=new AbortController,s=setTimeout(()=>r.abort(),15e3);let i,l;try{i=await fetch(function(e,t){const n=new URLSearchParams({appids:String(e),filters:"price_overview",l:"en"});return t&&n.set("cc",t),`https://store.steampowered.com/api/appdetails?${n}`}(e,t),{credentials:"same-origin",signal:r.signal});}catch(u){throw E(v,`price request failed for app ${e}`,{appid:e,cc:null!=t?t:"home",error:String(u)})}finally{clearTimeout(s);}if(!i.ok)throw E(v,`price request failed for app ${e}`,{appid:e,cc:null!=t?t:"home",status:i.status});try{l=await i.json();}catch(u){throw E(f,`price response was not JSON for app ${e}`,{appid:e,cc:null!=t?t:"home",error:String(u)})}const c=null==l?void 0:l[String(e)];if(!c||"object"!=typeof c||!c.success)throw E(f,`price response failed for app ${e}`,{appid:e,cc:null!=t?t:"home"});const d=null!=(a=null==(o=c.data)?void 0:o.price_overview)?a:null;return function(e,t,n){ur.set(gr(e,t),{ts:Date.now(),overview:n}),clearTimeout(pr),pr=setTimeout(()=>{mr();},1e3);}(e,t,d),d}async function vr(e,t,{force:n}={}){const o=[...new Set(t)],a=[],r=Array.from({length:Math.min(3,Math.max(o.length,1))},async()=>{for(;o.length;){const r=o.shift();try{a.push({cc:r,overview:await br(e,r,{force:n})});}catch(t){a.push({cc:r,overview:null,failed:true});}}});let s=null,i=false;try{s=await br(e,null,{force:n});}catch(l){i=true;}return await Promise.all(r),{home:s,homeFailed:i,regions:a}}function fr(e){try{return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}catch(t){return ""}}function yr(e,t,n){return null===e&&null===t?0:null===e?1:null===t?-1:"asc"===n?e-t:t-e}function wr(e,t,n){const o=ke("button","sp-prices__sort");o.type="button";const a=(null==t?void 0:t.key)===e.key;if(o.appendChild(ke("span","",V(e.labelKey))),a){const e=ke("span","sp-prices__arrow","desc"===t.dir?"▼":"▲");e.setAttribute("aria-hidden","true"),o.appendChild(e);}return o.addEventListener("click",()=>n(e.key)),o}function kr(e,t){const n=document.createElement("td");return n.className=e,n.textContent=t,n}function Cr(e,t,n){const o=document.createElement("td");return o.className="sp-prices__td",o.appendChild(ke("span","",e)),o.appendChild(ke("small","sp-prices__currency",t)),n&&o.appendChild(ke("span","sp-pill is-on",V("prices.cheapest"))),o}function _r(e,t){const n=document.createElement("td");if(n.className="sp-prices__td is-num",n.appendChild(ke("div","sp-prices__price-main",e)),t){const e=ke("div","sp-prices__price-sub");t.initial&&e.appendChild(ke("s","",t.initial)),t.converted&&e.appendChild(ke("span","",t.converted)),n.appendChild(e);}return n}function Sr(e,{home:t,cheapest:n}){const o=document.createElement("tr");o.className=`sp-prices__tr${t?" is-home":""}${n?" is-cheapest":""}`;for(const a of e)o.appendChild(a);return o}function xr(e,t,n,o){return t.map(t=>{if("region"===t.key)return Cr(e.name,e.currency,o);if("price"===t.key)return _r(e.final_formatted,{initial:n.showOriginal&&e.initial>e.final?e.initial_formatted:null,converted:e.converted});if("discount"===t.key){const t=document.createElement("td");return t.className="sp-prices__td is-num",n.showDiscount&&e.discount>0&&t.appendChild(ke("span","sp-prices__badge",`-${e.discount}%`)),t}if("savings"===t.key){const t=document.createElement("td");if(t.className="sp-prices__td is-num",null!=e.save){const n=ke("span","sp-prices__save",`${e.save>0?"−":"+"}${Math.abs(e.save)}%`);n.classList.toggle("is-cheap",e.save>0),t.appendChild(n);}return t}return kr("sp-prices__td","")})}function Dr(e,t,n){const o=ke("button","sp-button"+(n?"":" sp-button--ghost"),e);return o.type="button",o.addEventListener("click",t),o}function zr(e,t){e.classList.toggle("is-collapsed",t);const n=e.querySelector("[data-sp-prices-toggle]");if(!n)return;n.setAttribute("aria-expanded",String(!t));const o=V(t?"prices.expand":"prices.collapse");n.title=o,n.setAttribute("aria-label",o);}function qr(e,t,n,o){const a=e.querySelector("[data-sp-prices-body]"),r=e.querySelector("[data-sp-prices-updated]"),s=e.querySelector("[data-sp-prices-hint]"),i=e.querySelector("[data-sp-prices-refresh]"),l=e.querySelector("[data-sp-prices-toggle]");if(!(a&&s&&i&&l))return;if(i.onclick=()=>o.onRefresh(),i.hidden="ready"!==t.status,l.onclick=()=>zr(e,!e.classList.contains("is-collapsed")),zr(e,e.classList.contains("is-collapsed")),a.replaceChildren(),s.textContent="",s.hidden=true,"loading"===t.status){const e=ke("div","sp-prices__state");return e.appendChild(ke("span","sp-prices__spinner")),e.appendChild(ke("span","",V("prices.loading"))),a.appendChild(e),void(r&&(r.textContent=""))}if("manual"===t.status)return a.appendChild(Dr(V("prices.load"),o.onLoad,true)),void(r&&(r.textContent=""));if("empty-regions"===t.status)return a.appendChild(ke("p","sp-prices__state",V("prices.noRegions"))),void(r&&(r.textContent=""));if("error"===t.status){const e=ke("div","sp-prices__state");return e.appendChild(ke("span","",V("prices.failed"))),e.appendChild(Dr(V("prices.retry"),o.onRetry,false)),a.appendChild(e),void(r&&(r.textContent=""))}const c=[{key:"region",labelKey:"prices.colRegion",numeric:false},{key:"price",labelKey:"prices.colPrice",numeric:true},...n.showDiscount&&[t.home,...t.rows].some(e=>e&&e.discount>0)?[{key:"discount",labelKey:"prices.colDiscount",numeric:true}]:[],...n.showSavings&&t.rows.some(e=>null!=e.save)?[{key:"savings",labelKey:"prices.colSavings",numeric:true}]:[]],d=ke("div","sp-prices__scroll"),u=document.createElement("table");u.className="sp-prices__table",u.appendChild(function(e,t,n){const o=document.createElement("thead"),a=document.createElement("tr");for(const r of e){const e=document.createElement("th");e.className=`sp-prices__th${r.numeric?" is-num":""}${(null==t?void 0:t.key)===r.key?" is-active":""}`,(null==t?void 0:t.key)===r.key&&e.setAttribute("aria-sort","desc"===t.dir?"descending":"ascending"),e.appendChild(wr(r,t,n)),a.appendChild(e);}return o.appendChild(a),o}(c,t.sort,o.onSort));const p=document.createElement("tbody");n.showHomeRow&&t.home&&p.appendChild(Sr(function(e,t,n){return t.map(t=>{if("region"===t.key)return Cr(V("prices.yours"),e.currency,false);if("price"===t.key)return _r(e.final_formatted,{initial:n.showOriginal&&e.initial>e.final?e.initial_formatted:null,converted:e.converted});if("discount"===t.key){const t=document.createElement("td");return t.className="sp-prices__td is-num",n.showDiscount&&e.discount>0&&t.appendChild(ke("span","sp-prices__badge",`-${e.discount}%`)),t}return kr("sp-prices__td is-num","")})}(t.home,c,n),{home:true,cheapest:false}));for(const g of function(e,t){if(!t||"custom"===t.key)return e;const n="desc"===t.dir?"desc":"asc",o=[...e];return "region"===t.key?o.sort((e,t)=>{const o=String(e.name).localeCompare(String(t.name));return "asc"===n?o:-o}):"price"===t.key?o.sort((e,t)=>yr(e.usd,t.usd,n)):"discount"===t.key?o.sort((e,t)=>yr(e.discount,t.discount,n)):"savings"===t.key&&o.sort((e,t)=>yr(e.save,t.save,n)),o}(t.rows,t.sort))p.appendChild(Sr(xr(g,c,n,n.highlightCheapest&&g.cc===t.cheapestCc),{home:false,cheapest:n.highlightCheapest&&g.cc===t.cheapestCc}));u.appendChild(p),d.appendChild(u),a.appendChild(d),r&&(r.textContent=t.updatedAt?V("prices.updated",{time:fr(t.updatedAt)}):""),t.fxHint&&(s.textContent=V("prices.fxHint",t.fxHint),s.hidden=false);}const Pr=/\/app\/(\d+)/;function Ar(e,t,n,o){if(!n||t===n||!o)return null;const a=to(e,t,n,o);return null===a?null:`≈ ${function(e,t){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:String(t).toUpperCase()}).format(e)}catch(n){return `${e.toFixed(2)} ${t}`}}(a,n)}`}function Lr(e,t,n,o,a){var r,s;if(!t)return null;const i=Wn(e);return {cc:e,name:null!=(r=null==i?void 0:i.name)?r:e,currency:t.currency,final:t.final,final_formatted:t.final_formatted||`${(t.final/100).toFixed(2)} ${t.currency}`,initial:t.initial,initial_formatted:t.initial_formatted||"",discount:null!=(s=t.discount_percent)?s:0,usd:n?no(t.final,t.currency,n):null,converted:a?Ar(t.final,t.currency,o,n):null}}function Er(e,t){return null!==e&&null!==t&&e>0?Math.round((e-t)/e*100):null}function Tr(e){if(!(null==e?void 0:e.date))return "";const t=new Date(e.date);return Number.isNaN(t.getTime())?String(e.date):t.toLocaleDateString()}let jr=null;function Rr(e){return "discount"===e||"savings"===e?"desc":"asc"}function Mr(){(null==jr?void 0:jr.data)&&jr.root.isConnected&&qr(jr.root,{...jr.data,sort:jr.sort},ye().prices,Ir(jr.appid,jr.root));}function Br(){var e;null==(e=document.querySelector(".sp-prices"))||e.remove(),jr=null;}async function Nr(e,t,n,{force:o}={}){var a,r,s;qr(t,{status:"loading"},n,Ir(e,t));const[i,l]=await Promise.all([vr(e,n.regions,{force:o}),eo({force:o},n.fxTtl).catch(()=>null)]);if(!t.isConnected||(null==jr?void 0:jr.root)!==t)return;const{home:c,homeFailed:d,regions:u}=i,p=null!=(a=null==l?void 0:l.rates)?a:null,g=function(e,t){var n;return "off"===e?null:"auto"===e?null!=(n=null==t?void 0:t.currency)?n:null:e}(n.convertTo,c),h=n.showConverted&&null!==g,m=u.map(({cc:e,overview:t})=>Lr(e,t,p,g,h)).filter(Boolean),b=c?Lr("home",c,p,g,h):null;if(!b&&!m.length)return void(d||u.some(e=>e.failed)?qr(t,{status:"error"},ye().prices,Ir(e,t)):(t.remove(),(null==jr?void 0:jr.root)===t&&(jr=null)));const v=null!=(r=null==b?void 0:b.usd)?r:null;for(const C of m)C.save=n.showSavings?Er(v,C.usd):null;const f=m.filter(e=>null!==e.usd),y=f.length?f.reduce((e,t)=>t.usde.converted)),k=n.showSavings||n.highlightCheapest||"custom"!==n.sort;(null==jr?void 0:jr.root)===t&&(jr.data={status:"ready",home:b,rows:m,cheapestCc:null!=(s=null==y?void 0:y.cc)?s:null,updatedAt:Date.now(),fxHint:l&&(w||k)?{provider:l.provider,date:Tr(l)}:null},Mr());}function Ir(e,t){return {onLoad:()=>{(null==jr?void 0:jr.root)===t&&Nr(e,t,ye().prices);},onRetry:()=>{(null==jr?void 0:jr.root)===t&&Nr(e,t,ye().prices);},onRefresh:()=>{(null==jr?void 0:jr.root)===t&&Nr(e,t,ye().prices,{force:true});},onSort:e=>{(null==jr?void 0:jr.root)===t&&(jr.sort=jr.sort.key===e?{key:e,dir:"desc"===jr.sort.dir?"asc":"desc"}:{key:e,dir:Rr(e)},Mr());}}}function Or(){const{prices:e}=ye(),t=Un(location.href)?function(e){const t=String(e).match(Pr);return t?t[1]:null}(location.href):null;e.enabled&&t?function(e){Br();const t=ye().prices,n=t.regions.filter(Kn),o=function(){const e=ke("div","sp-prices");e.dataset.spPrices="";const t=ke("div","sp-prices__head");t.appendChild(ke("span","sp-prices__title",V("prices.title")));const n=ke("span","sp-prices__updated","");n.dataset.spPricesUpdated="";const o=ke("button","sp-prices__refresh","⟳");o.type="button",o.dataset.spPricesRefresh="",o.title=V("prices.refresh"),o.setAttribute("aria-label",V("prices.refresh"));const a=ke("button","sp-prices__toggle","▾");a.type="button",a.dataset.spPricesToggle="",a.setAttribute("aria-expanded","true"),a.title=V("prices.collapse"),a.setAttribute("aria-label",V("prices.collapse")),t.append(n,o,a),e.appendChild(t);const r=ke("p","sp-prices__hint","");r.dataset.spPricesHint="",r.hidden=true,e.appendChild(r);const s=ke("div","sp-prices__body");return s.dataset.spPricesBody="",e.appendChild(s),e}();var a;zr(o,true===t.collapsed),dr(o,cr(t.position))?(jr={appid:e,root:o,sort:(a=t.sort,"priceAsc"===a?{key:"price",dir:"asc"}:"discountDesc"===a?{key:"discount",dir:"desc"}:{key:"custom",dir:"asc"}),data:null},n.length?t.autoLoad?Nr(e,o,t):qr(o,{status:"manual"},t,Ir(e,o)):qr(o,{status:"empty-regions"},t,Ir(e,o))):M(P,"no anchor for regional prices",{appid:e,url:location.href});}(t):Br();}let Hr=false;function Ur(e){return ke("span","sp-links__letter",e.trim().charAt(0).toUpperCase()||"?")}function $r(e){if(!e.icon)return Ur(e.name);const t=ke("img","sp-links__icon");return t.src=e.icon,t.alt="",t.loading="lazy",t.referrerPolicy="no-referrer",t.addEventListener("error",()=>{t.replaceWith(Ur(e.name));}),t}let Gr=null;function Fr(){null==Gr||Gr.remove(),Gr=null;}function Wr(){const{links:e}=ye(),t=Un(location.href)?uo(location.href):null;if(false===(null==e?void 0:e.enabled)||!t)return void Fr();Fr();const n=Array.isArray(null==e?void 0:e.items)?e.items.filter(e=>false!==(null==e?void 0:e.enabled)&&(null==e?void 0:e.name)&&(null==e?void 0:e.url)):[];if(!n.length)return;const o=function(){const e=ke("section","sp-links");e.setAttribute("aria-label",V("links.title"));const t=ke("div","sp-links__head");return t.appendChild(ke("span","sp-links__title",V("links.title"))),e.appendChild(t),e.appendChild(ke("div","sp-links__body")),e}();if(!dr(o,cr(null==e?void 0:e.position)))return void M(P,"no anchor for external links",{appid:t,url:location.href});const a=function(e,{context:t,items:n,openInNewTab:o}){const a=e.querySelector(".sp-links__body");a.textContent="";let r=0;for(const s of n){if(false===(null==s?void 0:s.enabled))continue;const e=go(null==s?void 0:s.url,t);if(!e)continue;const n=ke("a","sp-links__chip");n.href=e,n.title=e,false!==o&&(n.target="_blank",n.rel="noopener noreferrer"),n.append($r(s),ke("span","sp-links__label",s.name)),a.appendChild(n),r+=1;}return e.hidden=0===r,r}(o,{context:po(),items:n,openInNewTab:null==e?void 0:e.openInNewTab});a?Gr=o:o.remove();}let Kr=false;const Vr=/\/app\/(\d+)/,Zr="https://store.steampowered.com";function Jr(){const e=document.documentElement.lang||"";return /^[a-z]{2}/i.test(e)?e.slice(0,2).toLowerCase():"en"}function Qr(e,t){const n=new URLSearchParams({appids:String(e),filters:t,l:Jr()}),o=function(){const e=(To("steamCountry").split("|")[0]||"").trim();return /^[A-Za-z]{2}$/.test(e)?e.toUpperCase():""}();return o&&n.set("cc",o),`${Zr}/api/appdetails?${n}`}async function Xr(e,{signal:t,code:n,what:o}){const a=new AbortController,r=setTimeout(()=>a.abort(),15e3),s=()=>a.abort();null==t||t.addEventListener("abort",s);try{const t=await fetch(e,{credentials:"same-origin",signal:a.signal});if(!t.ok)throw E(n,`${o} request failed`,{url:e,status:t.status});return await t.json()}catch(i){if(null==i?void 0:i.code)throw i;throw E(n,`${o} request failed`,{url:e,error:String(i)},i)}finally{clearTimeout(r),null==t||t.removeEventListener("abort",s);}}function Yr(e,t,n,o){const a=null==e?void 0:e[String(t)];if(!a||"object"!=typeof a||!a.success||!a.data)throw E(n,`${o} response failed for app ${t}`,{appid:t});return a.data}async function es(e,{signal:t}={}){const n=Yr(await Xr(Qr(e,"basic,release_date,price_overview"),{signal:t,code:x,what:"add-on detail"}),e,D,"add-on detail"),o=n.release_date,a=o&&"object"==typeof o?{date:String(o.date||"").trim(),comingSoon:true===o.coming_soon}:null;return {name:String(n.name||""),free:true===n.is_free,comingSoon:true===(null==a?void 0:a.comingSoon),release:(null==a?void 0:a.date)?a:null,image:n.capsule_image||n.capsule_imagev5||n.header_image||"",imageLarge:n.header_image||"",price:(r=n.price_overview,r?{final:r.final_formatted||"",initial:r.initial>r.final&&r.initial_formatted||null,discount:null!=(s=r.discount_percent)?s:0}:null)};var r,s;}function ts(e){var t,n,o,a,r,s,i;const l=e.querySelector(".discount_block"),c=Number(null!=(n=null==(t=null==l?void 0:l.dataset)?void 0:t.discount)?n:0),d=(null==(a=null==(o=e.querySelector(".discount_final_price"))?void 0:o.textContent)?void 0:a.trim())||"",u=(null==(s=null==(r=e.querySelector(".discount_original_price"))?void 0:r.textContent)?void 0:s.trim())||"";if(d)return {price:{final:d,initial:c>0&&u?u:null,discount:c>0?c:0},known:true};const p=((null==(i=e.querySelector(".game_area_dlc_price"))?void 0:i.textContent)||"").replace(/\s+/g," ").trim();return p?/^(n\/a|—|-)$/i.test(p)?{price:null,known:true}:{price:{final:p,initial:null,discount:0},known:true}:{price:null,known:false}}function ns(e){var t;const n=e.querySelector(".game_area_dlc_name");if(!n)return "";const o=n.cloneNode(true);return null==(t=o.querySelector('.dlc_highlight_reason_container, [class*="dlc_highlight"]'))||t.remove(),(o.textContent||"").replace(/\s+/g," ").trim()}function os(e){const t=e.querySelector("img");return (null==t?void 0:t.getAttribute("src"))||(null==t?void 0:t.getAttribute("data-src"))||""}function as(e){var t,n,o,a,r,s,i;const l=[null==(t=e.dataset)?void 0:t.dsAppid,null==(n=e.getAttribute)?void 0:n.call(e,"data-ds-appid"),null==(o=e.getAttribute)?void 0:o.call(e,"id"),null==(a=e.getAttribute)?void 0:a.call(e,"href"),null==(r=e.querySelector("[data-ds-appid]"))?void 0:r.getAttribute("data-ds-appid"),null==(s=e.querySelector('a[href*="/app/"]'))?void 0:s.getAttribute("href")];for(let c=0;cn.remove()),false===t.viewer)return n;n.dataset.spViewerSrc=e.imageLarge||e.image,e.imageLarge&&(n.dataset.spViewerLarge="1");const o=ke("button","sp-dlc__thumb-btn");return o.type="button",o.title=V("viewer.open"),o.setAttribute("aria-label",V("viewer.open")),o.appendChild(n),o}(t,n);o&&e.appendChild(o);const a=ke("a","sp-dlc__name",t.name||`App ${t.appid}`);a.href=`/app/${t.appid}/`,a.title=a.textContent,e.appendChild(a),e.appendChild(function(e,t){const n=ke("span","sp-dlc__meta");e.owned?n.appendChild(ke("span","sp-pill is-on",V("dlc.owned"))):false!==t.showPrices&&(e.comingSoon&&!e.price?n.appendChild(ke("span","sp-dlc__soon",V("dlc.soon"))):e.free&&!e.price?n.appendChild(ke("span","sp-dlc__final is-free",V("dlc.free"))):e.price&&n.appendChild(function(e){const t=ke("span","sp-dlc__price");return (null==e?void 0:e.initial)&&t.appendChild(ke("s","sp-dlc__initial",e.initial)),t.appendChild(ke("span","sp-dlc__final",(null==e?void 0:e.final)||"")),(null==e?void 0:e.discount)>0&&t.appendChild(ke("span","sp-dlc__badge",`-${e.discount}%`)),t}(e.price)));const o=function(e,t){var n;if(false===t.showReleaseDate||!(null==(n=e.release)?void 0:n.date))return null;const o=ke("span","sp-dlc__date",e.release.date);return o.title=V("dlc.released"),o}(e,t);return o&&n.appendChild(o),n}(t,n));}function ls(e,t){const n=ke("li","sp-dlc__row");return n.dataset.spDlcAppid=String(e.appid),is(n,e,t),n}function cs(e,t){const n=e.querySelector("[data-sp-dlc-status]");n&&(n.textContent=t||"");}function ds(e,t,n){cs(e,n>0?V("dlc.loadingProgress",{done:t,total:n}):"");}function us(e,t){cs(e,t?V("dlc.updated",{time:rs(t)}):"");}function ps(e,t,n,o){const a=e.querySelector("[data-sp-dlc-body]"),r=e.querySelector("[data-sp-dlc-summary]"),s=e.querySelector("[data-sp-dlc-hint]"),i=e.querySelector("[data-sp-dlc-refresh]"),l=e.querySelector("[data-sp-dlc-toggle]");if(!(a&&r&&s&&i&&l))return;if(i.onclick=()=>o.onRefresh(),l.onclick=()=>{const t=!e.classList.contains("is-collapsed");ss(e,t),t||o.onExpand();},a.onclick=e=>{const t=e.target instanceof Element?e.target.closest(".sp-dlc__thumb-btn"):null,n=null==t?void 0:t.closest("[data-sp-dlc-appid]");n&&o.onOpenImage(Number(n.dataset.spDlcAppid));},ss(e,e.classList.contains("is-collapsed")),i.hidden="ready"!==t.status,a.replaceChildren(),s.textContent="",s.hidden=true,r.hidden=true,"loading"===t.status){const t=ke("div","sp-dlc__state");return t.appendChild(ke("span","sp-dlc__spinner")),t.appendChild(ke("span","",V("dlc.loading"))),a.appendChild(t),void cs(e,"")}if("error"===t.status){const t=ke("div","sp-dlc__state");t.appendChild(ke("span","",V("dlc.failed")));const n=ke("button","sp-button sp-button--ghost",V("dlc.retry"));return n.type="button",n.addEventListener("click",()=>o.onRefresh()),t.appendChild(n),a.appendChild(t),void cs(e,"")} false!==n.showSummary&&t.loggedIn&&(r.textContent=V("dlc.summary",{owned:t.ownedCount,total:t.total}),r.classList.toggle("is-on",t.total>0&&t.ownedCount===t.total),r.hidden=false);const c=function(e,t,n){const o=false===n.showOwned?e.filter(e=>!e.owned):e.slice();return "store"!==t&&o.sort((e,t)=>Number(e.owned)-Number(t.owned)),o}(t.rows,t.sort,n);if(c.length){const e=ke("ul","sp-dlc__list");for(let t=0;te.owned).length,loggedIn:e.loggedIn,sort:e.sort,truncated:e.truncated,pending:e.detailsStarted&&e.pendingIds.length>0,loaded:e.loaded,pendingTotal:e.loaded+e.pendingIds.length,updatedAt:e.updatedAt}}function bs(e){if(!e||e.detailsStarted||!e.pendingIds.length)return;e.detailsStarted=true;const{root:t,controller:n}=e,o=ye().dlc;ds(t,e.loaded,e.loaded+e.pendingIds.length),async function(e,{onEach:t,signal:n}={}){const o=e.slice(),a=Array.from({length:Math.min(3,Math.max(o.length,1))},async()=>{for(;o.length&&!(null==n?void 0:n.aborted);){const a=o.shift();let r=null;try{r=await es(a,{signal:n});}catch(e){if(null==n?void 0:n.aborted)return;B("dlc","add-on detail failed",{appid:a,error:String((null==e?void 0:e.message)||e)});}null==t||t(a,r);}});await Promise.all(a);}(e.pendingIds,{signal:n.signal,onEach:(n,a)=>{if(gs!==e||!t.isConnected)return;const r=e.rows.find(e=>e.appid===n);a&&(xo(n,a),function(e,t){var n,o;e&&t&&(e.name||(e.name=t.name||""),e.image||(e.image=t.image||""),e.imageLarge||(e.imageLarge=t.imageLarge||""),e.price||e.priceKnown||e.free||e.comingSoon||(e.price=null!=(n=t.price)?n:null),e.free=true===t.free,e.comingSoon=true===t.comingSoon,e.release||(e.release=null!=(o=t.release)?o:null));}(r,a)),e.loaded+=1;const s=e.pendingIds.indexOf(n);s>=0&&e.pendingIds.splice(s,1),r&&function(e,t,n){const o=e.querySelector(`[data-sp-dlc-appid="${t.appid}"]`);o&&is(o,t,n);}(t,r,o),ds(t,e.loaded,e.loaded+e.pendingIds.length);}}).then(()=>{gs===e&&t.isConnected&&(e.updatedAt=Date.now(),ps(t,ms(e),o,vs(e.appid,t)),us(t,e.updatedAt));});}function vs(e,t){return {onRefresh:()=>{ys(e,t,{force:true});},onExpand:()=>bs(gs),onOpenImage:e=>function(e,t){var n;const o=[];let a=0;const r=e.querySelectorAll(".sp-dlc__row");for(let i=0;ie.stopPropagation());}(),Zt||(document.addEventListener("keydown",cn),Gt()),Zt=n;const{root:o,dialog:a,hint:r}=Xt();o.hidden=false,function(){const{root:e,dialog:t}=Xt();if(!e)return;const n=e.querySelectorAll("[data-sp-viewer]");for(let a=0;a{if(e.large)return null;const t=await async function(e){const t=So(e);if(t)return t;const n=fs.get(e);if(n)return n;const o=(async()=>{try{const t=await es(e);return xo(e,t),t}catch(t){return logInfo("dlc","add-on detail failed",{appid:e,error:String((null==t?void 0:t.message)||t)}),null}finally{fs.delete(e);}})();return fs.set(e,o),o}(e.appid);return (null==t?void 0:t.imageLarge)?(e.large=true,t.imageLarge):null}});}(t,e)}}const fs=new Map;async function ys(e,t,{force:n}={}){const o=gs;if(!o||o.root!==t)return;const a=ye().dlc,r=o.controller.signal;ps(t,{...ms(o),status:"loading"},a,vs(e,t));let s=n?null:function(e){const t=fo.get(String(e));return Co(t,c)?t:null}(e);if(!s)try{s=await async function(e,{signal:t}={}){const n=Yr(await Xr(Qr(e,"basic,dlc"),{signal:t,code:x,what:"add-on list"}),e,D,"add-on list"),o=Array.isArray(n.dlc)?n.dlc.map(Number).filter(e=>Number.isFinite(e)&&e>0):[];return {name:String(n.name||""),dlcIds:o}}(e,{signal:r}),function(e,t){fo.set(String(e),{...t,ts:Date.now()}),_o();}(e,s);}catch(h){if(r.aborted||gs!==o)return;return R(x,"failed to load add-on list",{appid:e,error:String((null==h?void 0:h.message)||h)}),void ps(t,{...ms(o),status:"error"},a,vs(e,t))}if(gs!==o||!t.isConnected)return;const i=function(e=document){const t=new Map,n=e.querySelectorAll("#gameAreaDLCSection .game_area_dlc_row, .game_area_dlc_section .game_area_dlc_row");for(let o=0;o0&&n.searchParams.set("id",String(t));const o=await Xr(n.toString(),{signal:e,code:q,what:"owned apps"});return {loggedIn:!0,ids:Array.isArray(null==o?void 0:o.rgOwnedApps)?o.rgOwnedApps.map(Number).filter(e=>Number.isFinite(e)):[]}}({signal:r}),u=l,wo={...u,ts:Date.now()},_o();}catch(h){if(r.aborted||gs!==o)return;R(q,"failed to read owned apps",{error:String((null==h?void 0:h.message)||h)}),l={loggedIn:false,ids:[]};}var u;if(gs!==o||!t.isConnected)return;const p=s.dlcIds.slice(0,300),g=new Set(l.ids);o.loggedIn=l.loggedIn,o.truncated=s.dlcIds.length>p.length,o.rows=p.map(e=>function(e,{detail:t,prefill:n,owned:o}){var a,r,s;return {appid:e,name:(null==t?void 0:t.name)||(null==n?void 0:n.name)||"",image:(null==n?void 0:n.image)||(null==t?void 0:t.image)||"",imageLarge:(null==t?void 0:t.imageLarge)||"",price:null!=(r=null!=(a=null==n?void 0:n.price)?a:null==t?void 0:t.price)?r:null,release:null!=(s=null==t?void 0:t.release)?s:null,free:true===(null==t?void 0:t.free),comingSoon:true===(null==t?void 0:t.comingSoon),priceKnown:true===(null==n?void 0:n.priceKnown),owned:o}}(e,{detail:So(e),prefill:i.get(e),owned:g.has(e)})),o.pendingIds=o.rows.filter(e=>function(e,t){return !e.name||false!==t.showThumbnails&&!e.image||false!==t.showReleaseDate&&!e.release||!(e.price||e.free||e.comingSoon||e.priceKnown)&&false!==t.showPrices}(e,a)).map(e=>e.appid),o.loaded=0,o.detailsStarted=false,o.updatedAt=Date.now(),ps(t,ms(o),a,vs(e,t)),o.pendingIds.length?t.classList.contains("is-collapsed")||bs(o):us(t,o.updatedAt);}function ws(){const{dlc:e}=ye(),t=Un(location.href)?uo(location.href):null;e.enabled&&t?function(e){hs();const t=ye().dlc,n=function(){const e=ke("section","sp-dlc");e.dataset.spDlc="",e.setAttribute("aria-label",V("dlc.title"));const t=ke("div","sp-dlc__head");t.appendChild(ke("span","sp-dlc__title",V("dlc.title")));const n=ke("span","sp-dlc__summary","");n.dataset.spDlcSummary="",n.hidden=true;const o=ke("span","sp-dlc__status","");o.dataset.spDlcStatus="";const a=ke("button","sp-dlc__refresh","⟳");a.type="button",a.dataset.spDlcRefresh="",a.title=V("dlc.refresh"),a.setAttribute("aria-label",V("dlc.refresh"));const r=ke("button","sp-dlc__toggle","▾");r.type="button",r.dataset.spDlcToggle="",r.setAttribute("aria-expanded","true"),r.title=V("dlc.collapse"),r.setAttribute("aria-label",V("dlc.collapse")),t.append(n,o,a,r),e.appendChild(t);const s=ke("p","sp-dlc__hint","");s.dataset.spDlcHint="",s.hidden=true,e.appendChild(s);const i=ke("div","sp-dlc__body");return i.dataset.spDlcBody="",e.appendChild(i),e}();ss(n,true===t.collapsed),dr(n,cr(t.position))?(gs={appid:e,root:n,controller:new AbortController,rows:[],pendingIds:[],loaded:0,detailsStarted:false,loggedIn:false,truncated:false,sort:t.sort,updatedAt:0},ys(e,n)):M(P,"no anchor for add-on content",{appid:e,url:location.href});}(t):hs();}let ks=false;const Cs="sp_region_cache_v1";let _s=null;function Ss(e){const t=ye().region;return t&&false!==t.enabled&&function(e=location.href){try{const t=new URL(String(e));return !!/^(store\.steampowered\.com|steamcommunity\.com)$/i.test(t.hostname)&&Oo.test(t.pathname)}catch(t){return false}}(e)?null!==_s&&e===_s?{show:true,reloaded:!Ho()}:!ba()&&Ho()?{show:true,reloaded:false}:{show:false,reloaded:false}:{show:false,reloaded:false}}function xs(e){null!==_s&&e!==_s&&(_s=null);const{show:t,reloaded:n}=Ss(e);Wo(t,{reloaded:n}),t&&Ho()&&!ba()&&("manual"!==ye().region.mode?va():function(){const e=$o();if(!e||e.querySelector(".sp-region-offer"))return;const t=ke("div","sp-region-offer");t.setAttribute("role","status"),t.appendChild(ke("div","sp-region-offer__text",V("region.offer")));const n=ke("button","sp-button sp-region-offer__button",V("region.offerButton"));n.type="button",n.addEventListener("click",()=>va()),t.appendChild(n),e.appendChild(t);}());}let Ds=false,zs=false;const qs='form[action*="/search"]';function Ps(e){Oa()||Ha(e);}function As(e){if(!(e instanceof HTMLFormElement))return;if("1"===e.dataset.spSearchBox)return;const t=e.querySelector('input[name="term"]');if(!t||!e.parentElement)return;if(e.querySelectorAll("input, select, textarea").length>4)return;e.dataset.spSearchBox="1",e.dataset.spSearchDisplay=e.style.display||"",e.style.display="none";const n=ke("div","sp-searchbox"),o=ke("input","sp-searchbox__input");o.type="text",o.autocomplete="off",o.spellcheck=false,o.placeholder=t.placeholder||V("search.placeholder"),o.setAttribute("aria-label",V("search.title"));const a=ke("button","sp-searchbox__go");a.type="button",a.setAttribute("aria-label",V("search.title")),a.innerHTML='';const r=()=>Ps(o.value.trim());o.addEventListener("focus",()=>Ps(o.value.trim())),o.addEventListener("input",()=>{Oa()||Ps(o.value.trim());}),o.addEventListener("keydown",e=>{"Enter"===e.key&&(e.preventDefault(),r());}),a.addEventListener("click",r),n.appendChild(o),n.appendChild(a),e.parentElement.insertBefore(n,e);}function Ls(e=document){"store.steampowered.com"===location.hostname&&function(){const e=ye().region;return false!==(null==e?void 0:e.enabled)&&false!==(null==e?void 0:e.searchEnabled)}()&&(e instanceof HTMLFormElement&&e.matches(qs)&&As(e),(null==e?void 0:e.querySelectorAll)&&_e(e.querySelectorAll(qs),e=>As(e)));}function Es(e=document){const t=e instanceof Element||e instanceof Document?e:document;_e(t.querySelectorAll(".sp-searchbox"),e=>e.remove()),_e(t.querySelectorAll('form[data-sp-search-box="1"]'),e=>{delete e.dataset.spSearchBox,e.style.display=e.dataset.spSearchDisplay||"",delete e.dataset.spSearchDisplay;});}function Ts(e){try{return "store.steampowered.com"===new URL(String(e)).hostname}catch(t){return false}}function js(){const e=ye().region;return false!==(null==e?void 0:e.enabled)&&false!==(null==e?void 0:e.searchEnabled)}function Rs(e){var t,n,o;"/"!==e.key||e.ctrlKey||e.altKey||e.metaKey||Ts(location.href)&&js()&&!Oa()&&((o=e.target)instanceof HTMLInputElement||o instanceof HTMLTextAreaElement||o instanceof Element&&(o.isContentEditable||"SELECT"===o.tagName)||(e.preventDefault(),Ls(document),null==(n=null==(t=document.querySelector(".sp-searchbox__input"))?void 0:t.focus)||n.call(t)));}let Ms=false;Mn({id:"gameDescription",labelKey:"scope.gameDescription",selector:"#game_area_description, .game_description_snippet"}),Mn({id:"gameReviews",labelKey:"scope.gameReviews",selector:"._1zbKizfCRpoX2D_zOLQes0._3QloCWvWesFo3QI7yfd8sL._3cl9mzgp8WIVuj1VCw9yi0, .review_text, .apphub_CardTextContent, div:has(> h1:first-child)",placeButton:function(e,t){const n=function(e){let t=e.parentElement;for(let n=0;n<4&&t instanceof Element;n+=1){const n=t.querySelector("div:has(> button + button)");if(n&&!n.contains(e)&&!xe(n))return n;t=t.parentElement;}return null}(t);n?(e.classList.add("sp-translate-btn--actions"),n.insertBefore(e,n.firstChild)):(e.classList.add("sp-translate-btn--above"),t.insertAdjacentElement("beforebegin",e));}}),Mn({id:"profileComments",labelKey:"scope.profileComments",selector:".commentthread_comment_text"}),Mn({id:"gameNews",labelKey:"scope.gameNews",selector:".eventspage_content_body, .eventText, .news_event_summary, .blotter_daily_rollup_line .blotter_content"}),Mn({id:"newsArticle",labelKey:"scope.newsArticle",grouped:true,selector:"div:has(+ .EventDetail) > div:last-child, .EventDetailsBody"}),Mn({id:"guides",labelKey:"scope.guides",grouped:true,selector:".guideTop .workshopItemTitle, .guideTopDescription, .subSectionTitle, .subSectionDesc"});const Bs=[1e3,3e3];function Ns(e){return new Promise(t=>setTimeout(t,e))}function Is(e,t){const n=new URL("https://translate.googleapis.com/translate_a/single");return n.searchParams.set("client","gtx"),n.searchParams.set("sl","auto"),n.searchParams.set("tl",t),n.searchParams.set("dt","t"),n.searchParams.set("q",e),new Promise((o,a)=>{GM_xmlhttpRequest({method:"GET",url:n.toString(),timeout:15e3,onload:n=>{if(200===n.status)try{const r=JSON.parse(n.responseText);if(function(e,t){return !("string"!=typeof e||!e)&&e.toLowerCase().split("-")[0]===String(t).toLowerCase().split("-")[0]}(null==r?void 0:r[2],t))return void o(e);const s=(Array.isArray(null==r?void 0:r[0])?r[0]:[]).map(e=>Array.isArray(e)?e[0]:"").join("");if(!s)return void a(E(b,"Google Translate returned no text",{provider:"google-free",to:t,chars:e.length}));o(s);}catch(r){a(E(b,"Google Translate returned an unparsable payload",{provider:"google-free",to:t,chars:e.length},r));}else a(E(m,`Google Translate HTTP ${n.status}`,{provider:"google-free",status:n.status,to:t,chars:e.length}));},onerror:()=>a(E(m,"Google Translate network error",{provider:"google-free",to:t,chars:e.length})),ontimeout:()=>a(E(m,"Google Translate timed out",{provider:"google-free",to:t,chars:e.length}))});})}function Os(e,t,n){const o=e.lastIndexOf(t,l);return o>=2e3?o+n:-1}!function(e){if(!e||!e.id||"function"!=typeof e.translate)throw new Error("[Steam Plus] invalid translation provider");Ne.set(e.id,e);}({id:"google-free",labelKey:"provider.google-free",translate:async function(e,{to:t}){return await Promise.all(e.map(async e=>{const n=function(e){if(e.length<=l)return [e];const t=[];let n=e;for(;n.length>l;){let e=Os(n,"\n",1);if(e<0&&(e=Math.max(Os(n,". ",2),Os(n,"! ",2),Os(n,"? ",2))),e<0){e=l;const t=n.lastIndexOf(" ",e);t>e-40&&t>0&&(e=t+1);}e=Je(n,e),(e<=0||e>=n.length)&&(e=Math.min(l,n.length-1)),t.push(n.slice(0,e)),n=n.slice(e);}return n&&t.push(n),t}(e),o=await Promise.all(n.map(e=>async function(e,t){var n;for(let a=0;;a+=1)try{return await Is(e,t)}catch(o){if((null==o?void 0:o.code)!==m||429!==(null==(n=null==o?void 0:o.details)?void 0:n.status)||a>=Bs.length)throw o;B("provider",`rate-limited, retrying in ${Bs[a]}ms`,{provider:"google-free",to:t,chars:e.length,attempt:a+1}),await Ns(Bs[a]);}}(e,t)));return o.join("")}))}});const Hs='';function Us(e){const t=ke("button","sp-translate-btn");t.id=`${e}-btn`,t.type="button";const n=ke("span","sp-translate-btn__icon");n.setAttribute("aria-hidden","true"),n.innerHTML=Hs;const o=ke("span","sp-translate-btn__label",V("translate.button"));return t.append(n,o),{button:t,label:o}}function $s(e,t){null==e||e.classList.toggle("is-loading",t);const n=null==e?void 0:e.querySelector(".sp-translate-btn__icon");n&&(n.innerHTML=t?'':Hs);}const Gs=class e{constructor(t){this.element=t,this.id="sp-node-"+ ++e.autoId,this.scopeId=null,this.blocks=[],this.originalText="",this.translatedBlocks=null,this.translatedTo=null,this.translatedProvider=null,this.state="idle",this.button=null,this.labelNode=null,this.translationBox=null,this.settings=null,this.visible=false,this.attached=false,this.destroyed=false,this.grouped=false,this.group=null;}get blockTexts(){return this.blocks.map(e=>e.text)}attach(e,t){if(this.attached)return;const{blocks:n,plainText:o}=function(e){const t={prefix:"__SP",nextId:0,blocks:[],anon:null};try{t.prefix=function(e){const t=String(e||"");for(const n of We)if(Ve(n).lastIndex=0,!Ve(n).test(t))return n;return We[We.length-1]}(e.textContent||""),st(e,null,t),tt(t);}catch(a){t.blocks.length=0,t.anon=null;}let n=t.blocks.filter(e=>function(e,t){const n=String(e).replace(Ve(t),"").trim();return n.length>0&&/\p{L}/u.test(n)}(e.text,e.prefix));if(n.length)if(1===n.length&&null===n[0].element)n[0].element=e,n[0].tag=(e.tagName||"p").toLowerCase(),n[0].originalNodes=Ye(e),n[0].parent=null,n[0].liveNodes=[];else for(const r of n)r.element&&(r.originalNodes=Ye(r.element));else {const o=String(e.textContent||"").replace(/\s+/g," ").trim();if(!o)return {blocks:[],plainText:""};n=[{element:e,tag:(e.tagName||"p").toLowerCase(),listKind:null,parent:null,liveNodes:[],originalNodes:Ye(e),tokens:new Map,parts:[],prefix:t.prefix,text:o,rendered:[],translated:null}];}const o=n.map(e=>Ze(e.text)).join("\n\n");return {blocks:n,plainText:o}}(this.element);n.length&&(this.blocks=n,this.originalText=o,this.attached=true,this.translateFn=t,this.settings=e,this.button=this.createButton(this.id),this.button.classList.add("sp-translate-btn--pending"),this.grouped||this.positionButton());}positionButton(){this.button&&!this.grouped&&(this.button.classList.remove("sp-translate-btn--replace","sp-translate-btn--actions","sp-translate-btn--above"),"replace"===this.settings.display?(this.button.classList.add("sp-translate-btn--replace"),this.element.insertBefore(this.button,this.element.firstChild)):"function"==typeof this.placeButton?this.placeButton(this.button,this.element):(this.button.classList.add("sp-translate-btn--above"),this.element.insertAdjacentElement("beforebegin",this.button)));}setVisible(){var e;this.visible=true,null==(e=this.button)||e.classList.remove("sp-translate-btn--pending");}createButton(e){const{button:t,label:n}=Us(e);return this.labelNode=n,t.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),this.onButtonClick();}),t}setLoading(e){$s(this.button,e);}onButtonClick(){switch(this.state){case "idle":case "error":this.translate();break;case "done":"replace"===this.settings.display?"true"===this.element.dataset.spTranslated?this.renderOriginal():this.renderTranslation():(this.removeTranslationBox(),this.state="idle",this.setButtonLabel(V("translate.button")));}this.notifyGroup();}setButtonLabel(e){this.labelNode&&(this.labelNode.textContent=e);}notifyGroup(){var e;try{null==(e=this.group)||e.update();}catch(t){}}currentTargetLanguage(){try{return De(this.settings.targetLanguage)}catch(e){return ""}}async translate(){var e,t,n,o,a,r;if("loading"!==this.state){this.state="loading",null==(e=this.button)||e.classList.remove("sp-translate-btn--error"),this.setButtonLabel(V("translate.loadingShort")),this.setLoading(true);try{const e=await this.translateFn(this.blockTexts);if(this.destroyed)return;this.blocks.forEach((t,n)=>{var o;t.translated=null!=(o=e[n])?o:"";}),this.translatedBlocks=this.blocks.map(e=>e.translated),this.translatedTo=this.currentTargetLanguage(),this.translatedProvider=this.settings.provider,this.state="done",this.setLoading(!1),this.renderTranslation(),this.notifyGroup();}catch(s){if(this.destroyed)return;this.state="error",this.setLoading(false),this.setButtonLabel(V("translate.retry")),null==(t=this.button)||t.classList.add("sp-translate-btn--error"),R("SP-1201","translation failed",{scope:this.scopeId,provider:null==(n=null==s?void 0:s.details)?void 0:n.provider,to:null==(o=null==s?void 0:s.details)?void 0:o.to,blocks:this.blocks.length,chars:null!=(r=null==(a=this.originalText)?void 0:a.length)?r:0,preview:T(this.originalText),cause:null==s?void 0:s.code,error:s}),this.notifyFailure(s),this.notifyGroup();}}}notifyFailure(e){var t,n;const o={label:V("translate.retry"),tone:"primary",onClick:()=>{this.destroyed||this.translate();}};(null==e?void 0:e.code)!==h?429!==(null==(t=null==e?void 0:e.details)?void 0:t.status)?Ot({type:"error",title:V("toast.translateFailed"),message:V("toast.translateFailedDesc"),key:`sp-translate-failed-${null!=(n=this.scopeId)?n:"block"}`,actions:[o]}):Ot({type:"warning",title:V("toast.rateLimited"),message:V("toast.rateLimitedDesc"),key:"sp-translate-throttled",actions:[o]}):Ot({type:"error",title:V("toast.unknownProvider"),message:V("toast.unknownProviderDesc"),key:"sp-translate-provider"});}renderTranslation(){var e;null==(e=this.button)||e.classList.remove("sp-translate-btn--error"),"replace"===this.settings.display?(this.element.dataset.spTranslated="true",this.renderReplace(),this.setButtonLabel(V("translate.original"))):(this.removeTranslationBox(),this.translationBox=this.renderMirror(),this.element.insertAdjacentElement("afterend",this.translationBox),this.setButtonLabel(V("translate.original")));}renderMirror(){const e=ke("div","sp-translation sp-translation-rich");e.id=`${this.id}-translation`;const t=this.currentTargetLanguage();t&&e.setAttribute("lang",t);let n=null,o=null;const a=()=>{n&&e.append(n),n=null,o=null;};return this.blocks.forEach((t,r)=>{var s,i,l;const c=null!=(l=null!=(i=null==(s=this.translatedBlocks)?void 0:s[r])?i:t.translated)?l:"";if(t.listKind&&"li"===t.tag){n&&o===t.listKind||(a(),o=t.listKind,n=ke("ol"===t.listKind?"ol":"ul","sp-translation__list"));const e=ke("li");return e.append(it(t,c)),void n.append(e)}a();const d=ke((u=t.tag,$e.has(String(u).toUpperCase())?String(u).toLowerCase():"p"));var u;d.append(it(t,c)),e.append(d);}),a(),e}renderReplace(){var e,t,n;for(const o of this.blocks){const a=it(o,null!=(e=o.translated)?e:"");if(null==(t=o.element)?void 0:t.isConnected){const e=o.element;[...e.childNodes].forEach(e=>{e!==this.button&&e.remove();}),e.append(a);}else if(null==(n=o.parent)?void 0:n.isConnected){const e=this.anonAnchor(o);for(const n of o.liveNodes)n.parentNode===o.parent&&n.remove();const t=Se(a.childNodes);o.parent.insertBefore(a,e),o.rendered=t;}}}anonAnchor(e){const t=e.liveNodes[e.liveNodes.length-1];return (null==t?void 0:t.isConnected)&&t.parentNode===e.parent?t.nextSibling:null}restoreBlock(e){var t,n,o;const a=()=>{var t;return (null!=(t=e.originalNodes)?t:[]).map(e=>e.cloneNode(true))};if(null==(t=e.element)?void 0:t.isConnected){const t=e.element;[...t.childNodes].forEach(e=>{e!==this.button&&e.remove();});const o=document.createDocumentFragment();for(const e of a())o.append(e);t===this.element&&(null==(n=this.button)?void 0:n.parentNode)===t?this.button.insertAdjacentElement("afterend",o):t.append(o),e.rendered=[];}else if(null==(o=e.parent)?void 0:o.isConnected){for(const o of e.rendered)o.parentNode===e.parent&&o.remove();const t=this.anonAnchor(e),n=document.createDocumentFragment();for(const e of a())n.append(e);e.parent.insertBefore(n,t),e.rendered=[];}}restoreOriginalDom(){for(const t of this.blocks)try{this.restoreBlock(t);}catch(e){}delete this.element.dataset.spTranslated;}renderOriginal(){"replace"===this.settings.display?(this.restoreOriginalDom(),this.setButtonLabel(V("translate.button"))):(this.removeTranslationBox(),this.setButtonLabel(V("translate.button")),this.state="idle");}removeTranslationBox(){var e;null==(e=this.translationBox)||e.remove(),this.translationBox=null;}onConfigChange(e){if(this.destroyed)return;const t=this.settings.trigger,n=this.settings.display;this.settings=e;let o=false;if("done"!==this.state||e.provider===this.translatedProvider&&this.currentTargetLanguage()===this.translatedTo){if(n!==e.display)return this.restoreOriginalDom(),this.removeTranslationBox(),this.positionButton(),"done"===this.state&&this.translatedBlocks?this.renderTranslation():(this.setButtonLabel(V("translate.button")),this.state="idle"),void this.notifyGroup()}else {this.restoreOriginalDom(),this.removeTranslationBox(),this.positionButton(),this.translatedBlocks=null;for(const e of this.blocks)e.translated=null;this.state="idle",this.setButtonLabel(V("translate.button")),o=true;}"idle"===this.state&&this.visible&&"auto"===e.trigger&&(o||"manual"===t)&&this.translate(),this.notifyGroup();}renderCached(e){"idle"===this.state&&(this.blocks.forEach((t,n)=>{var o;t.translated=null!=(o=e[n])?o:"";}),this.translatedBlocks=this.blocks.map(e=>e.translated),this.translatedTo=this.currentTargetLanguage(),this.state="done",this.renderTranslation(),this.notifyGroup());}destroy(){var e;this.destroyed=true;try{this.restoreOriginalDom();}catch(t){}this.removeTranslationBox(),null==(e=this.button)||e.remove(),this.notifyGroup();}};var Fs;((t,n)=>{n in t?e(t,n,{enumerable:true,configurable:true,writable:true,value:0}):t[n]=0;})(Gs,"symbol"!=typeof(Fs="autoId")?Fs+"":Fs);let Ws=Gs;const Ks=new WeakMap,Vs=new Set;let Zs=false;const Js=[];let Qs=0;function Xs(e){return new Promise((t,n)=>{Js.push({task:e,resolve:t,reject:n}),Ys();})}function Ys(){for(;Qs<3&&Js.length>0;){const{task:e,resolve:t,reject:n}=Js.shift();Qs+=1,e().then(t,n).finally(()=>{Qs-=1,Ys();});}}function ei(e){return Ie(e)}function ti(e){const{translation:t}=ye(),n=ei(t.provider);if(!n)return Promise.reject(E(h,`unknown translation provider "${t.provider}"`,{provider:t.provider}));const o=De(t.targetLanguage),a=new Array(e.length).fill(null),r=[],s=[];if(e.forEach((e,t)=>{const i=Te(n.id,o,e);null!==i?a[t]=i:(r.push(t),s.push(e));}),!s.length)return Promise.resolve(a);const i=[];for(let c=0;cXs(()=>n.translate(c.texts,{to:o}))).then(e=>{c.texts.forEach((t,s)=>{var i;const l=null!=(i=e[s])?i:"";a[r[c.at+s]]=l,je(n.id,o,t,l);});});return l.then(()=>a)}function ni(e,t){return false!==t.scopes[e.id]}function oi(e,t=500){try{const n=e.getBoundingClientRect(),o=window.innerHeight||0;return n.bottom>=-t&&n.top<=o+t}catch(n){return true}}function ai(e){Vs.delete(e);const t=!e.visible;e.setVisible(),t&&"idle"===e.state&&"auto"===ye().translation.trigger&&e.translate();}function ri(e){e.attached&&!e.visible&&(oi(e.element)?ai(e):Vs.add(e));}function si(){Zs||(Zs=true,requestAnimationFrame(()=>{Zs=false,function(){for(const e of [...Vs])e.element.isConnected&&!e.destroyed?oi(e.element)&&ai(e):Vs.delete(e);}();}));}const ii=new Map;function li(e){const t=[];return gi(e,e=>{const n=Ks.get(e);n&&n.attached&&!n.destroyed&&t.push(n);}),t}function ci(e){var t;null==(t=ii.get(e))||t.button.remove(),ii.delete(e);}function di(e){const t=li(e),n=ii.get(e.id);if(!t.length)return void(n&&ci(e.id));const o=null!=n?n:function(e,t){let n=ii.get(e.id);if(!n){const{button:t,label:o}=Us(`sp-group-${e.id}`);t.classList.add("sp-translate-btn--above"),t.addEventListener("click",t=>{t.preventDefault(),t.stopPropagation(),function(e){const t=li(e);if(t.length){if(!t.some(e=>"loading"===e.state)){if(t.some(e=>"done"!==e.state))for(const e of t)"idle"!==e.state&&"error"!==e.state||e.translate();else for(const e of t)e.renderOriginal();di(e);}}else ci(e.id);}(e);}),n={target:e,button:t,label:o},n.update=()=>di(e),ii.set(e.id,n);}for(const o of t)o.group||(o.group=n);return !n.button.isConnected&&t.length&&t[0].element.insertAdjacentElement("beforebegin",n.button),n}(e,t);for(const r of t)r.group||(r.group=o);o.button.isConnected||t[0].element.insertAdjacentElement("beforebegin",o.button);const a=t.some(e=>"error"===e.state);t.some(e=>"loading"===e.state)?(o.button.classList.remove("sp-translate-btn--error"),$s(o.button,true),o.label.textContent=V("translate.loadingShort")):($s(o.button,false),o.button.classList.toggle("sp-translate-btn--error",a),o.label.textContent=t.every(e=>"done"===e.state)?V("translate.original"):V(a?"translate.retry":"translate.button"));}function ui(e,t){if(!t.length)return null;const n=ei(e.provider);if(!n)return null;const o=De(e.targetLanguage),a=t.map(e=>Te(n.id,o,e));return a.every(e=>null!==e)?a:null}function pi(e){const{translation:t}=ye();if(t.enabled&&(e instanceof Element||e instanceof Document))for(const o of Bn()){if(!ni(o,t))continue;let a;try{a=e.querySelectorAll(o.selector);}catch(n){B("scan",`ignoring invalid selector for scope "${o.id}"`,{scope:o.id,selector:o.selector});continue}_e(a,e=>{var n;if(xe(e))return;if(Ks.has(e))return;const a=new Ws(e);if(a.scopeId=o.id,a.placeButton=null!=(n=o.placeButton)?n:null,a.grouped=true===o.grouped,a.attach(t,ti),a.attached)if(Ks.set(e,a),a.grouped){if(a.setVisible(),false!==t.showCached){const e=ui(t,a.blockTexts);null!==e&&a.renderCached(e);}"auto"===t.trigger&&"idle"===a.state&&a.translate();}else {if(false!==t.showCached){const e=ui(t,a.blockTexts);if(null!==e)return a.renderCached(e),void ai(a)}ri(a);}}),o.grouped&&di(o);}}function gi(e,t){let n;try{n=document.querySelectorAll(e.selector);}catch(o){return}_e(n,e=>t(e));}function hi(e){const t=Ks.get(e);t&&Vs.delete(t),null==t||t.destroy(),Ks.delete(e);}function mi(){const{translation:e}=ye();if(e.enabled){!function(){const{translation:e}=ye(),t=new Set(Bn().filter(t=>ni(t,e)).map(e=>e.id));for(const n of Bn())t.has(n.id)||(gi(n,hi),ci(n.id));}(),pi(document);for(const t of Bn())gi(t,t=>{var n;null==(n=Ks.get(t))||n.onConfigChange(e);}),t.grouped&&di(t);}else !function(){for(const e of Bn())gi(e,hi),ci(e.id);}();}let bi=false;const vi=[];let fi=false,yi=null,wi=false;const ki=Ce(function(){const e=vi.splice(0,vi.length);fi||(fi=true,e.length=0),_e(e.length?e:[document],e=>{xe(e)||(Ls(e),pi(e));}),function(){if(!document.querySelector(Go))return;const{show:e,reloaded:t}=Ss(location.href);Wo(e,{reloaded:t});}();},450);function Ci(){vi.length=0,fi=false,er(),function(){null==tr||tr.disconnect();const e=new MutationObserver(()=>{const e=document.getElementById(Ja),t=Qa();if((null==e?void 0:e.classList.contains("sp-header-btn"))&&t)return e.remove(),void er();!e&&document.querySelector("#global_actions")&&er();});tr=e,e.observe(document.documentElement,{childList:true,subtree:true});}(),nr||(nr=true,I("settings:translation",Ya),I("settings:gamepage",Ya),I("settings:prices",Ya),I("settings:language",Ya),"function"==typeof GM_registerMenuCommand&&GM_registerMenuCommand(V("menu.settings"),()=>An(true))),ir(),lr||(lr=true,I("settings:gamepage",ir),I("region:injected",ir),sr(()=>ir())),function(){let e=null;try{e=GM_getValue(a,null);}catch(t){return void M(y,"failed to read price cache",{error:t})}if(e&&"object"==typeof e)for(const[n,o]of Object.entries(e))hr(o)&&ur.set(n,o);}(),Or(),Hr||(Hr=true,I("settings:prices",Or),I("region:injected",Or),sr(()=>Or())),Wr(),Kr||(Kr=true,I("settings:links",Wr),I("region:injected",Wr),sr(()=>Wr())),function(){let e=null;try{e=GM_getValue(r,null);}catch(o){return void M(z,"failed to read add-on cache",{error:o})}if(!e||"object"!=typeof e)return;const t=e.base&&"object"==typeof e.base?e.base:{},n=e.details&&"object"==typeof e.details?e.details:{};for(const a of Object.keys(t)){const e=t[a];Co(e,c)&&fo.set(String(a),e);}for(const a of Object.keys(n)){const e=n[a];Co(e,c)&&yo.set(String(a),e);}Co(e.owned,d)&&(wo=e.owned);}(),ws(),ks||(ks=true,I("settings:dlc",ws),I("region:injected",ws),sr(()=>ws())),function(){if(!zs){zs=true;try{"function"==typeof GM_deleteValue?GM_deleteValue(Cs):GM_setValue(Cs,null);}catch(e){B("region","failed to drop legacy guest cache",{error:String(e)});}}}(),xs(location.href),Ds||(Ds=true,I("settings:region",()=>{var e;true!==ye().region.showBanner&&(null==(e=document.querySelector(".sp-region-banner"))||e.remove()),xs(location.href);}),I("region:injected",e=>{_s=(null==e?void 0:e.url)||location.href,xs(location.href);}),sr(e=>xs(e))),Ts(location.href)&&Ls(document),Ms||(Ms=true,document.addEventListener("keydown",Rs),I("settings:region",()=>{Ua(),js()&&Ts(location.href)?Ls(document):Es(document);}),I("region:injected",()=>{Ts(location.href)&&Ls(document);}),sr(e=>{Ua(),Ts(e)?Ls(document):Es(document);})),bi||(bi=true,function(){try{const e=GM_getValue(o,null);if(e&&"object"==typeof e){const t=Date.now();for(const[n,o]of Object.entries(e))o&&"string"==typeof o.text&&t-o.timepi(document)),window.addEventListener("scroll",si,{passive:true}),window.addEventListener("resize",si)),null==yi||yi.disconnect(),yi=new MutationObserver(e=>{_e(e,e=>{_e(e.addedNodes,e=>{e.nodeType===Node.ELEMENT_NODE&&(e.closest(".sp-panel-overlay, .sp-confirm-overlay, .sp-toasts, .sp-settings-btn, .sp-prices, .sp-links, .sp-dlc, .sp-viewer-overlay, .sp-region-banner, .sp-region-offer, .sp-region-status, .sp-region-loader, .sp-region-othersite-reload, .sp-search-overlay, .sp-searchbox")||vi.push(e));});}),vi.length&&ki();}),document.body&&yi.observe(document.body,{childList:true,subtree:true}),ki();}function _i(){K(ye().language),wi||(wi=true,window.addEventListener("pagehide",Ee),window.addEventListener("pagehide",mr),window.addEventListener("pagehide",Do),I("region:rewrote",e=>{!async function({viaProxy:e=false,signedIn:t=false,transplanted:n=false}={}){n||(await function(e=3e4){return new Promise(t=>{if("complete"===document.readyState)return void t();const n=()=>t();window.addEventListener("load",n,{once:true}),setTimeout(n,Math.max(e,0));})}(),function(e,{signedIn:t=false}={}){if(!t)return;const n=e.querySelector("#queueActionsCtn")||e.querySelector(".queue_actions_ctn");null==n||n.querySelectorAll(":scope > p").forEach(e=>{e.querySelector('a[href*="/login"]')&&e.remove();}),e.querySelectorAll(".banner_open_in_steam").forEach(e=>e.remove());}(document,{signedIn:t})),Ci(),true===ye().region.showBanner&&function(e,t){var n,o,a,r,s;const i=(null==e?void 0:e.querySelector)?e:document,l=(null==(n=i.querySelector)?void 0:n.call(i,"#tabletGrid"))||(null==(o=i.querySelector)?void 0:o.call(i,".tablet_grid"))||("tabletGrid"===(null==e?void 0:e.id)||(null==(a=null==e?void 0:e.classList)?void 0:a.contains("tablet_grid"))?e:null);if(l)return void l.insertBefore(t,l.firstChild);const c=(null==(r=i.querySelector)?void 0:r.call(i,".page_content_ctn"))||(null==(s=i.querySelector)?void 0:s.call(i,".game_page_background"))||i.body||i.documentElement||i;c.insertBefore(t,c.firstChild);}(document,function({viaProxy:e=false}={}){const t=ke("div","sp-region-banner");t.setAttribute("role","status");const n=ke("span","sp-region-banner__badge",V("region.bannerBadge")),o=ke("div","sp-region-banner__body");o.appendChild(ke("div","sp-region-banner__title",V("region.bannerTitle")));const a=[V("region.bannerBody")];e&&a.push(V("region.bannerViaProxy")),o.appendChild(ke("div","sp-region-banner__details",a.join(" · ")));const r=ke("button","sp-button sp-button--ghost sp-region-banner__reload",V("region.reload"));return r.type="button",r.addEventListener("click",()=>va()),t.append(n,o,r),t}({viaProxy:e})),O("region:injected",{url:location.href,viaProxy:e});}(e);})),Ci();}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",_i):_i(); })();