{"id":1249,"date":"2026-04-27T11:56:36","date_gmt":"2026-04-27T08:56:36","guid":{"rendered":"https:\/\/houses4autism.eu\/vr-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%98%d0%b0\/"},"modified":"2026-04-27T13:01:37","modified_gmt":"2026-04-27T10:01:37","slug":"vr-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%98%d0%b0","status":"publish","type":"page","link":"https:\/\/houses4autism.eu\/mk\/vr-%d0%b0%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%98%d0%b0\/","title":{"rendered":"VR \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1249\" class=\"elementor elementor-1249 elementor-1173\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-353aa51 e-flex e-con-boxed e-con e-parent\" data-id=\"353aa51\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5b73404 e-con-full e-flex e-con e-child\" data-id=\"5b73404\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-675e0c8 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"675e0c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<div class=\"elementor-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-home\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e7c5ffc elementor-widget elementor-widget-heading\" data-id=\"e7c5ffc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">VR \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-718d019 elementor-widget elementor-widget-heading\" data-id=\"718d019\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">eLearning<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2896da2 e-flex e-con-boxed e-con e-parent\" data-id=\"2896da2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_background&quot;:&quot;classic&quot;,&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;laptop&quot;,&quot;tablet_extra&quot;,&quot;tablet&quot;,&quot;mobile_extra&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d2f214 elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"6d2f214\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInDown&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u0412\u043e\u0434\u0438\u0447 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0458\u0430<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4eeba13 elementor-widget__width-initial elementor-widget elementor-widget-shortcode\" data-id=\"4eeba13\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n      @import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');\n      #cpv1 *{box-sizing:border-box;margin:0;padding:0}\n      #cpv1{--pv-bg:#f4f5f7;--pv-surface:#ffffff;--pv-surface-2:#edeef1;--pv-border:rgba(0,0,0,0.07);--pv-text:#1a1c24;--pv-text-muted:#6b6f7e;--pv-accent:#4f7df3;--pv-accent-glow:rgba(79,125,243,0.25);--pv-sidebar-w:210px;--pv-toolbar-h:52px;--pv-radius:12px;--pv-cover-h:720px;--pv-cover-btn-padding:12px 18px;--pv-cover-btn-radius:10px;--pv-cover-btn-justify:flex-start;--pv-cover-btn-width:auto;--pv-cover-overlay-bg:rgba(0,0,0,0.45);--pv-cover-overlay-color:#ffffff;--pv-cover-overlay-padding:18px 24px;--pv-cover-overlay-radius:0px;--pv-cover-overlay-font-size:18px;--pv-cover-overlay-font-weight:700;--pv-font:'DM Sans',sans-serif;--pv-font-display:'Instrument Serif',serif;font-family:var(--pv-font);background:var(--pv-bg);color:var(--pv-text);width:100%;max-width:100%;height:720px;display:flex;flex-direction:column;border-radius:var(--pv-radius);overflow:hidden;position:relative;border:1px solid var(--pv-border);box-shadow:0 4px 60px rgba(0,0,0,0.35),0 0 0 1px rgba(255,255,255,0.03) inset}\n      #cpv1 .pv-header{padding:24px 28px 0;background:var(--pv-surface)}\n      #cpv1 .pv-header-brand{font-family:var(--pv-font-display);font-style:italic;font-size:13px;color:var(--pv-accent);letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}\n      #cpv1 .pv-header-title{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:6px}\n      #cpv1 .pv-header-sub{font-size:13px;color:var(--pv-text-muted);line-height:1.55;max-width:640px;padding-bottom:18px}\n      #cpv1 .pv-toolbar{height:var(--pv-toolbar-h);background:var(--pv-surface);border-top:1px solid var(--pv-border);border-bottom:1px solid var(--pv-border);display:flex;align-items:center;padding:0 12px;gap:4px;flex-shrink:0;z-index:10;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}\n      #cpv1 .pv-toolbar::-webkit-scrollbar{display:none}\n      #cpv1 .pv-btn{width:34px;height:34px;border-radius:8px;border:none;background:0 0;color:var(--pv-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}\n      #cpv1 .pv-btn:hover{background:var(--pv-surface-2);color:var(--pv-text)}\n      #cpv1 .pv-btn.active{background:var(--pv-accent);color:#fff;box-shadow:0 2px 12px var(--pv-accent-glow)}\n      #cpv1 .pv-btn svg{width:17px;height:17px;stroke-width:1.8}\n      #cpv1 .pv-sep{width:1px;height:22px;background:var(--pv-border);margin:0 6px;flex-shrink:0;flex-grow:0}\n      #cpv1 .pv-spacer{flex:1;min-width:4px}\n      #cpv1 .pv-page-nav{display:flex;align-items:center;gap:2px;background:var(--pv-surface-2);border-radius:8px;padding:2px;flex-shrink:0}\n      #cpv1 .pv-page-input{width:38px;text-align:center;background:0 0;border:none;color:var(--pv-text);font-family:var(--pv-font);font-size:13px;font-weight:500;outline:none}\n      #cpv1 .pv-page-input:focus{color:var(--pv-accent)}\n      #cpv1 .pv-page-total{font-size:12px;color:var(--pv-text-muted);margin-right:4px;white-space:nowrap}\n      #cpv1 .pv-zoom-display{font-size:11px;font-weight:600;color:var(--pv-text-muted);min-width:42px;text-align:center;user-select:none;flex-shrink:0}\n      #cpv1 .pv-search-bar{position:absolute;top:0;right:16px;z-index:20;background:var(--pv-surface);border:1px solid var(--pv-border);border-radius:0 0 10px 10px;padding:8px 12px;display:none;align-items:center;gap:6px;box-shadow:0 8px 30px rgba(0,0,0,0.4)}\n      #cpv1 .pv-search-bar.open{display:flex}\n      #cpv1 .pv-search-input{background:var(--pv-surface-2);border:1px solid var(--pv-border);border-radius:6px;padding:6px 10px;color:var(--pv-text);font-family:var(--pv-font);font-size:13px;width:180px;outline:none}\n      #cpv1 .pv-search-input:focus{border-color:var(--pv-accent)}\n      #cpv1 .pv-search-info{font-size:11px;color:var(--pv-text-muted);white-space:nowrap;min-width:50px;text-align:center}\n      #cpv1 .pv-search-nav{display:flex;gap:2px}\n      #cpv1 .pv-search-nav .pv-btn{width:26px;height:26px}\n      #cpv1 .pv-search-nav .pv-btn svg{width:13px;height:13px}\n      #cpv1 .pv-body{flex:1;display:flex;overflow:hidden;position:relative}\n      #cpv1 .pv-sidebar{width:0;overflow-y:auto;overflow-x:hidden;background:var(--pv-surface);border-right:1px solid var(--pv-border);transition:width .35s cubic-bezier(.4,0,.2,1);flex-shrink:0;scrollbar-width:thin;scrollbar-color:var(--pv-surface-2) transparent}\n      #cpv1 .pv-sidebar.open{width:var(--pv-sidebar-w)}\n      #cpv1 .pv-sidebar-inner{width:var(--pv-sidebar-w);padding:12px;display:flex;flex-direction:column;gap:8px}\n      #cpv1 .pv-thumb-item{cursor:pointer;border-radius:6px;overflow:hidden;border:2px solid transparent;transition:all .2s;position:relative;background:var(--pv-surface-2)}\n      #cpv1 .pv-thumb-item:hover{border-color:rgba(255,255,255,0.1)}\n      #cpv1 .pv-thumb-item.active{border-color:var(--pv-accent);box-shadow:0 0 14px var(--pv-accent-glow)}\n      #cpv1 .pv-thumb-item canvas{width:100%;display:block}\n      #cpv1 .pv-thumb-label{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:600;color:#fff;background:rgba(0,0,0,0.6);padding:2px 8px;border-radius:4px}\n      #cpv1 .pv-canvas-wrap{flex:1;overflow:auto;display:block;padding:24px;position:relative;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--pv-accent) 4%,transparent) 0%,transparent 50%),radial-gradient(circle at 70% 80%,color-mix(in srgb,var(--pv-accent) 3%,transparent) 0%,transparent 50%),var(--pv-bg);scrollbar-width:thin;scrollbar-color:var(--pv-surface-2) transparent}\n      #cpv1 .pv-pages{display:flex;flex-direction:column;gap:18px;align-items:center;min-height:100%}\n      #cpv1 .pv-page-shell{position:relative;display:block;margin:0 auto;max-width:100%;contain:layout paint style}\n      #cpv1 .pv-page-shell canvas{display:block;border-radius:3px;box-shadow:0 4px 40px rgba(0,0,0,0.4),0 0 0 1px rgba(255,255,255,0.04);flex-shrink:0;margin:0 auto;max-width:100%}\n      #cpv1 .pv-page-shell.is-placeholder::before{content:'';position:absolute;inset:0;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,0.03) 25%,rgba(255,255,255,0.07) 37%,rgba(255,255,255,0.03) 63%);background-size:400% 100%;animation:pvShimmer 1.35s ease-in-out infinite;box-shadow:0 4px 40px rgba(0,0,0,0.18),0 0 0 1px rgba(255,255,255,0.04)}\n      #cpv1 .pv-page-shell.is-rendered::before{display:none}\n      #cpv1 .pv-page-shell .pv-page-label{position:absolute;top:10px;left:10px;z-index:3;padding:4px 8px;border-radius:999px;background:rgba(0,0,0,0.45);color:#fff;font-size:11px;line-height:1;backdrop-filter:blur(4px)}\n      #cpv1 .pv-page-shell.is-rendered .pv-page-label{opacity:0;pointer-events:none}\n      @keyframes pvShimmer{0%{background-position:100% 0}100%{background-position:0 0}}\n      #cpv1 .pv-annotation-layer{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:6;pointer-events:none}\n      #cpv1 .pv-annotation-layer .pv-link{position:absolute;display:block;pointer-events:auto;background:transparent;cursor:pointer}\n      #cpv1 .pv-annotation-layer .pv-link:hover{outline:2px solid color-mix(in srgb,var(--pv-accent) 55%,transparent);outline-offset:-2px;border-radius:2px}\n      #cpv1 .pv-cover{display:none;position:relative;flex:1;min-height:260px;background:linear-gradient(180deg,color-mix(in srgb,var(--pv-bg) 70%,transparent) 0%,var(--pv-bg) 100%);overflow:hidden}\n      #cpv1 .pv-cover-image{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;object-fit:contain}\n      #cpv1.pv-has-cover{background:transparent;border:none;box-shadow:none;border-radius:0;height:auto;overflow:visible;display:block}\n      #cpv1.pv-has-cover .pv-header,#cpv1.pv-has-cover .pv-toolbar,#cpv1.pv-has-cover .pv-search-bar,#cpv1.pv-has-cover .pv-body,#cpv1.pv-has-cover .pv-status{display:none}\n      #cpv1.pv-has-cover .pv-cover{display:block;padding:0;min-height:0;background:transparent;overflow:visible}\n      #cpv1.pv-has-cover .pv-cover-inner{position:relative;width:fit-content;max-width:100%;height:auto;display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:0;border:none;border-radius:0;background:none}\n      #cpv1.pv-has-cover .pv-cover-art{display:block;min-height:0;cursor:pointer;position:relative;width:fit-content;max-width:100%}\n      #cpv1.pv-has-cover .pv-cover-canvas{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;border-radius:0;box-shadow:none}\n      #cpv1.pv-has-cover .pv-cover-image{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;border-radius:0;box-shadow:none}\n      #cpv1 .pv-cover-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--pv-cover-overlay-padding);background:var(--pv-cover-overlay-bg);color:var(--pv-cover-overlay-color);font-size:var(--pv-cover-overlay-font-size);font-weight:var(--pv-cover-overlay-font-weight);border-radius:var(--pv-cover-overlay-radius);text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease}\n      #cpv1 .pv-cover-art:hover .pv-cover-overlay,#cpv1 .pv-cover-art:focus .pv-cover-overlay,#cpv1 .pv-cover-art:focus-within .pv-cover-overlay{opacity:1}\n      #cpv1.pv-has-cover .pv-cover-copy{display:flex;flex-direction:column;gap:0;align-items:flex-start;width:100%}\n      #cpv1.pv-has-cover .pv-cover-eyebrow,#cpv1.pv-has-cover .pv-cover-title,#cpv1.pv-has-cover .pv-cover-text,#cpv1.pv-has-cover .pv-cover-meta{display:none}\n      #cpv1 .pv-cover-canvas{display:block;max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,0.35),0 0 0 1px rgba(255,255,255,0.06)}\n      #cpv1 .pv-cover-copy{display:flex;flex-direction:column;gap:12px;align-items:flex-start}\n      #cpv1 .pv-cover-btn-wrap{width:100%;display:flex;justify-content:var(--pv-cover-btn-justify)}\n      #cpv1 .pv-cover-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pv-accent);font-weight:700}\n      #cpv1 .pv-cover-title{font-size:clamp(22px,3vw,34px);line-height:1.1;font-weight:700;letter-spacing:-.03em}\n      #cpv1 .pv-cover-text{font-size:14px;line-height:1.6;color:var(--pv-text-muted);max-width:44ch}\n      #cpv1 .pv-cover-btn{display:block;width:var(--pv-cover-btn-width);box-sizing:border-box;padding:var(--pv-cover-btn-padding);border:none;border-radius:var(--pv-cover-btn-radius);background:var(--pv-accent);color:#fff;font-family:var(--pv-font);font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 30px var(--pv-accent-glow);transition:transform .2s,filter .2s}\n      #cpv1.pv-has-cover .pv-cover-btn{box-shadow:none}\n      #cpv1 .pv-cover-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}\n      #cpv1 .pv-cover-meta{font-size:12px;color:var(--pv-text-muted)}\n      #cpv1 .pv-loader{display:none;position:absolute;inset:0;background:color-mix(in srgb,var(--pv-bg) 85%,transparent);backdrop-filter:blur(8px);z-index:30;align-items:center;justify-content:center;flex-direction:column;gap:14px}\n      #cpv1 .pv-loader.active{display:flex}\n      #cpv1 .pv-spinner{width:32px;height:32px;border:3px solid var(--pv-surface-2);border-top-color:var(--pv-accent);border-radius:50%;animation:pvSpin_cpv1 .7s linear infinite}\n      @keyframes pvSpin_cpv1{to{transform:rotate(360deg)}}\n      #cpv1 .pv-loader-text{font-size:13px;color:var(--pv-text-muted)}\n      #cpv1 .pv-error{display:none;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:40px;text-align:center}\n      #cpv1 .pv-error.active{display:flex}\n      #cpv1 .pv-error-icon{width:56px;height:56px;border-radius:16px;background:var(--pv-surface-2);display:flex;align-items:center;justify-content:center;color:#f87171}\n      #cpv1 .pv-error-icon svg{width:26px;height:26px;stroke-width:1.6}\n      #cpv1 .pv-error-title{font-size:16px;font-weight:600}\n      #cpv1 .pv-error-msg{font-size:13px;color:var(--pv-text-muted);max-width:400px;line-height:1.5}\n      #cpv1 .pv-retry-btn{margin-top:4px;padding:8px 22px;border-radius:8px;border:none;background:var(--pv-accent);color:#fff;font-family:var(--pv-font);font-size:13px;font-weight:600;cursor:pointer}\n      #cpv1 .pv-retry-btn:hover{filter:brightness(1.15)}\n      #cpv1 .pv-status{height:26px;background:var(--pv-surface);border-top:1px solid var(--pv-border);display:flex;align-items:center;padding:0 16px;font-size:10.5px;color:var(--pv-text-muted);gap:12px;flex-shrink:0}\n      #cpv1 .pv-status-dot{width:5px;height:5px;border-radius:50%;background:#34d399;box-shadow:0 0 6px rgba(52,211,153,0.4)}\n      #cpv1.fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;border-radius:0!important;z-index:999999!important}\n      #cpv1.pv-light{--pv-bg:#f4f5f7;--pv-surface:#fff;--pv-surface-2:#edeef1;--pv-border:rgba(0,0,0,0.07);--pv-text:#1a1c24;--pv-text-muted:#6b6f7e}\n      #cpv1.pv-dark{--pv-bg:#0f1117;--pv-surface:#181a22;--pv-surface-2:#22252f;--pv-border:rgba(255,255,255,0.06);--pv-text:#e8e9ed;--pv-text-muted:#8a8d9b}\n      \/* Tablet *\/\n      @media(min-width:641px) and (max-width:1024px){#cpv1{height:600px}#cpv1 .pv-canvas-wrap{padding:16px}}\n      \/* Mobile: bottom thumbnails, compact *\/\n      @media(max-width:640px){\n        #cpv1{height:480px}\n        #cpv1 .pv-header{padding:16px 16px 0}\n        #cpv1 .pv-header-title{font-size:18px}\n        #cpv1 .pv-header-sub{font-size:12px;padding-bottom:12px}\n        #cpv1 .pv-canvas-wrap{padding:10px}\n        #cpv1 .pv-toolbar{padding:0 8px;gap:2px}\n        #cpv1 .pv-sep{margin:0 3px}\n        #cpv1 .pv-body{flex-direction:column}\n        #cpv1 .pv-sidebar{width:100%!important;height:0;max-height:0;border-right:none;border-top:1px solid var(--pv-border);overflow-x:auto;overflow-y:hidden;order:2;transition:max-height .35s cubic-bezier(.4,0,.2,1);scrollbar-width:none;-webkit-overflow-scrolling:touch}\n        #cpv1 .pv-sidebar::-webkit-scrollbar{display:none}\n        #cpv1 .pv-sidebar.open{height:auto;max-height:90px}\n        #cpv1 .pv-sidebar-inner{width:auto!important;flex-direction:row;padding:8px;gap:6px;flex-wrap:nowrap}\n        #cpv1 .pv-thumb-item{flex-shrink:0;width:60px;height:auto}\n        #cpv1 .pv-thumb-item canvas{width:60px;height:auto}\n        #cpv1 .pv-thumb-label{font-size:9px;padding:1px 5px;bottom:2px}\n        #cpv1 .pv-canvas-wrap{order:1;min-height:0}\n        #cpv1 .pv-cover-inner{grid-template-columns:1fr;gap:0;padding:0}\n        #cpv1 .pv-cover-art{min-height:160px}\n        #cpv1 .pv-cover-copy{left:16px;right:16px;bottom:16px;align-items:center;text-align:center}\n      #cpv1.pv-has-cover .pv-cover-copy{left:auto;right:auto;bottom:auto;align-items:flex-start;text-align:left;width:100%}\n      }\n      \/* 3-device visibility: cpv-hd=hide desktop, cpv-ht=hide tablet, cpv-hm=hide mobile *\/\n      @media(min-width:1025px){#cpv1 .cpv-hd{display:none!important}#cpv1 .cpv-hd-sb,#cpv1 .cpv-hd-sb.open{width:0!important;overflow:hidden;border:none}}\n      @media(min-width:641px) and (max-width:1024px){#cpv1 .cpv-ht{display:none!important}#cpv1 .cpv-ht-sb,#cpv1 .cpv-ht-sb.open{width:0!important;overflow:hidden;border:none}}\n      @media(max-width:640px){#cpv1 .cpv-hm{display:none!important}#cpv1 .cpv-hm-sb,#cpv1 .cpv-hm-sb.open{max-height:0!important;height:0!important;overflow:hidden;border:none}}\n    <\/style>\n    <div id=\"cpv1\" class=\"pv-root pv-light \">\n                  <div class=\"pv-toolbar\">\n        <button class=\"pv-btn \" data-action=\"sidebar\" title=\"Thumbnails\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1.5\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1.5\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1.5\"\/><\/svg><\/button><div class=\"pv-sep\"><\/div>        <div class=\"pv-page-nav\"><button class=\"pv-btn\" data-action=\"prev\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg><\/button><input type=\"text\" class=\"pv-page-input\" data-el=\"pageInput\" value=\"1\"><span class=\"pv-page-total\" data-el=\"pageTotal\">\/ -<\/span><button class=\"pv-btn\" data-action=\"next\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"9 6 15 12 9 18\"\/><\/svg><\/button><\/div>        <div class=\"pv-sep\"><\/div><button class=\"pv-btn\" data-action=\"zoomOut\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg><\/button><span class=\"pv-zoom-display\" data-el=\"zoomDisp\">100%<\/span><button class=\"pv-btn\" data-action=\"zoomIn\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"fitWidth\" title=\"Fit to width\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"\/><polyline points=\"7 8 3 12 7 16\"\/><polyline points=\"17 8 21 12 17 16\"\/><line x1=\"3\" y1=\"4\" x2=\"3\" y2=\"20\"\/><line x1=\"21\" y1=\"4\" x2=\"21\" y2=\"20\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"fitHeight\" title=\"Fit to height\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"21\"\/><polyline points=\"8 7 12 3 16 7\"\/><polyline points=\"8 17 12 21 16 17\"\/><line x1=\"4\" y1=\"3\" x2=\"20\" y2=\"3\"\/><line x1=\"4\" y1=\"21\" x2=\"20\" y2=\"21\"\/><\/svg><\/button>        <div class=\"pv-spacer\"><\/div>\n        <button class=\"pv-btn\" data-action=\"search\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"themeToggle\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"5\"\/><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"\/><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"\/><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"\/><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"\/><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"\/><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"\/><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"\/><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"print\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"6 9 6 2 18 2 18 9\"\/><path d=\"M6 18H4a2 2 0 01-2-2v-5a2 2 0 012-2h16a2 2 0 012 2v5a2 2 0 01-2 2h-2\"\/><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"download\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path d=\"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg><\/button>        <button class=\"pv-btn\" data-action=\"fullscreen\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"15 3 21 3 21 9\"\/><polyline points=\"9 21 3 21 3 15\"\/><polyline points=\"21 3 14 10\"\/><polyline points=\"3 21 10 14\"\/><\/svg><\/button>      <\/div>\n      <div class=\"pv-search-bar\" data-el=\"searchBar\"><input type=\"text\" class=\"pv-search-input\" data-el=\"searchInput\" placeholder=\"Search in document...\"><span class=\"pv-search-info\" data-el=\"searchInfo\"><\/span><div class=\"pv-search-nav\"><button class=\"pv-btn\" data-action=\"searchPrev\" title=\"Previous\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"18 15 12 9 6 15\"\/><\/svg><\/button><button class=\"pv-btn\" data-action=\"searchNext\" title=\"Next\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/button><\/div><button class=\"pv-btn\" data-action=\"searchClose\" style=\"width:26px;height:26px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" style=\"width:13px;height:13px\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/button><\/div>      <div class=\"pv-body\">\n        <div class=\"pv-sidebar \" data-el=\"sidebar\"><div class=\"pv-sidebar-inner\" data-el=\"thumbs\"><\/div><\/div>        <div class=\"pv-canvas-wrap\" data-el=\"canvasWrap\"><div class=\"pv-pages\" data-el=\"pages\"><\/div><\/div>\n        <div class=\"pv-error\" data-el=\"error\"><div class=\"pv-error-icon\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><\/div><div class=\"pv-error-title\">Unable to load document<\/div><div class=\"pv-error-msg\" data-el=\"errorMsg\"><\/div><button class=\"pv-retry-btn\" data-action=\"retry\">Retry<\/button><\/div>\n        <div class=\"pv-loader\" data-el=\"loader\"><div class=\"pv-spinner\"><\/div><div class=\"pv-loader-text\" data-el=\"loaderText\">Loading document...<\/div><\/div>\n      <\/div>\n      <div class=\"pv-status\"><div class=\"pv-status-dot\"><\/div><span data-el=\"statusInfo\">Ready<\/span><span style=\"margin-left:auto\" data-el=\"statusPages\"><\/span><\/div>    <\/div>\n    <script>\n    (function(){\n      if(!window._cpvPdfJs){window._cpvPdfJs=true;var s=document.createElement('script');s.src='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js';s.onload=function(){pdfjsLib.GlobalWorkerOptions.workerSrc='https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js';document.dispatchEvent(new Event('cpv:ready'))};document.head.appendChild(s)}\n      function boot(){\n        var root=document.getElementById('cpv1');if(!root)return;\n        var CFG={url:\"https:\\\/\\\/houses4autism.eu\\\/wp-content\\\/uploads\\\/Simple-guide_-install-VR-app-with-SideQuest-MK.pdf\",defaultZoom:\"fit_width\",minZoom:1.2,maxZoom:5,zoomStep:0.2,startPage:1,sidebarOpen:false,errorText:\"Could not load the document. Please check the file URL.\",loadingText:\"Loading document...\",keyboard:true,hasThumbs:true,hasSearch:true,initTheme:'light',title:\"\",coverMode:false,hasCoverImage:false};\n        var S={pdf:null,page:1,total:0,scale:1.2,sidebarOpen:CFG.sidebarOpen,isFs:false,rendering:false,currentTheme:CFG.initTheme,userZoomed:false,searchResults:[],searchIdx:-1,searchQuery:'',viewerActivated:!CFG.coverMode,fitMode:(CFG.defaultZoom==='fit_height'?'height':'width'),pageMeta:{},pageDims:{},renderedPages:{},renderingPages:{},renderQueue:[],renderVersion:0,thumbsLoaded:false};\n        function el(n){return root.querySelector('[data-el=\"'+n+'\"]')}\n        var pagesCont=el('pages'),canvasWrap=el('canvasWrap'),sidebar=el('sidebar'),thumbsCont=el('thumbs'),loader=el('loader'),loaderText=el('loaderText'),errorEl=el('error'),pageInput=el('pageInput'),pageTotal=el('pageTotal'),zoomDisp=el('zoomDisp'),searchBar=el('searchBar'),searchInp=el('searchInput'),cover=el('cover'),coverCanvas=el('coverCanvas'),coverMeta=el('coverMeta');\n        var pageObserver=null,lazyObserver=null,renderPumpBusy=false;\n        var PRELOAD_AHEAD=2,UNLOAD_DISTANCE=4,MAX_CONCURRENT_RENDERS=2;\n        function showLoader(m){if(loaderText)loaderText.textContent=m;if(loader)loader.classList.add('active')}\n        function hideLoader(){if(loader)loader.classList.remove('active')}\n        function showError(m){if(errorEl){errorEl.classList.add('active');var em=el('errorMsg');if(em)em.textContent=m}if(canvasWrap)canvasWrap.style.display='none'}\n        function hideError(){if(errorEl)errorEl.classList.remove('active');if(canvasWrap)canvasWrap.style.display='block'}\n        function updatePageUi(){\n          if(pageInput)pageInput.value=S.page;\n          if(thumbsCont){\n            if(typeof thumbsCont._ensureThumbForPage==='function'){ thumbsCont._ensureThumbForPage(S.page); }\n            thumbsCont.querySelectorAll('.pv-thumb-item').forEach(function(node){\n              var n=parseInt(node.getAttribute('data-page'),10);\n              node.classList.toggle('active',n===S.page);\n            });\n          }\n        }\n        function pageNode(num){return pagesCont?pagesCont.querySelector('.pv-page-shell[data-page=\"'+num+'\"]'):null}\n        function clampPage(num){return Math.max(1,Math.min(num,S.total||1))}\n        function scrollToPage(num,behavior){\n          num=clampPage(num);\n          S.page=num;\n          updatePageUi();\n          queuePriorityWindow(num);\n          flushRenderQueue();\n          var node=pageNode(num);\n          if(node&&canvasWrap){\n            var top=node.offsetTop-12;\n            canvasWrap.scrollTo({top:Math.max(0,top),behavior:behavior||'smooth'});\n          }\n        }\n                function buildLinkService(){\n          return {\n            externalLinkTarget: 2,\n            externalLinkRel: 'noopener noreferrer',\n            getAnchorUrl: function(hash){return hash;},\n            getDestinationHash: function(dest){return '#';},\n            addLinkAttributes: function(link,url,newWindow){\n              link.href=url;\n              link.target='_blank';\n              link.rel='noopener noreferrer';\n            },\n            goToPage: function(val){\n              var n=parseInt(val,10);\n              if(!isNaN(n)) scrollToPage(n);\n            },\n            goToDestination: async function(dest){\n              try{\n                var explicitDest = Array.isArray(dest) ? dest : await S.pdf.getDestination(dest);\n                if(!explicitDest) return;\n                var pageRef = explicitDest[0];\n                var pageIndex = typeof pageRef === 'object' ? await S.pdf.getPageIndex(pageRef) : pageRef;\n                scrollToPage((pageIndex||0)+1);\n              }catch(err){console.warn('PDF internal link failed', err);}\n            }\n          };\n        }\n        function bindObserver(){\n          if(pageObserver){pageObserver.disconnect();pageObserver=null;}\n          if(!pagesCont || !window.IntersectionObserver) return;\n          pageObserver = new IntersectionObserver(function(entries){\n            var best=null;\n            entries.forEach(function(entry){\n              if(entry.isIntersecting && (!best || entry.intersectionRatio > best.intersectionRatio)) best=entry;\n            });\n            if(best){\n              var n=parseInt(best.target.getAttribute('data-page'),10);\n              if(!isNaN(n) && n!==S.page){\n                S.page=n;\n                updatePageUi();\n                queuePriorityWindow(n);\n                flushRenderQueue();\n                unloadDistantPages();\n              }\n            }\n          },{root:canvasWrap,threshold:[0.45,0.6,0.75]});\n          pagesCont.querySelectorAll('.pv-page-shell').forEach(function(node){pageObserver.observe(node);});\n        }\n        function bindLazyObserver(){\n          if(lazyObserver){lazyObserver.disconnect();lazyObserver=null;}\n          if(!pagesCont || !window.IntersectionObserver) return;\n          lazyObserver = new IntersectionObserver(function(entries){\n            entries.forEach(function(entry){\n              if(!entry.isIntersecting) return;\n              var n=parseInt(entry.target.getAttribute('data-page'),10);\n              if(isNaN(n)) return;\n              queuePageRender(n,true);\n              for(var i=1;i<=PRELOAD_AHEAD;i++){\n                queuePageRender(n+i,false);\n                queuePageRender(n-i,false);\n              }\n            });\n            flushRenderQueue();\n          },{root:canvasWrap,rootMargin:'1200px 0px 1200px 0px',threshold:0.01});\n          pagesCont.querySelectorAll('.pv-page-shell').forEach(function(node){lazyObserver.observe(node);});\n        }\n        function queuePriorityWindow(center){\n          center=clampPage(center||S.page||1);\n          queuePageRender(center,true);\n          for(var i=1;i<=PRELOAD_AHEAD;i++){\n            queuePageRender(center+i,false);\n            queuePageRender(center-i,false);\n          }\n        }\n        function queuePageRender(pageNum,priority){\n          pageNum=parseInt(pageNum,10);\n          if(!pageNum || pageNum<1 || pageNum>S.total) return;\n          if(S.renderedPages[pageNum] || S.renderingPages[pageNum]) return;\n          if(S.renderQueue.indexOf(pageNum)!==-1){\n            if(priority){\n              S.renderQueue=S.renderQueue.filter(function(n){return n!==pageNum;});\n              S.renderQueue.unshift(pageNum);\n            }\n            return;\n          }\n          if(priority) S.renderQueue.unshift(pageNum);\n          else S.renderQueue.push(pageNum);\n        }\n        async function flushRenderQueue(){\n          if(renderPumpBusy || !S.pdf) return;\n          renderPumpBusy=true;\n          try{\n            while(S.renderQueue.length){\n              var activeCount=Object.keys(S.renderingPages).length;\n              if(activeCount>=MAX_CONCURRENT_RENDERS) break;\n              var pageNum=S.renderQueue.shift();\n              if(S.renderedPages[pageNum] || S.renderingPages[pageNum]) continue;\n              S.renderingPages[pageNum]=true;\n              renderShellPage(pageNum,S.renderVersion).finally(function(){});\n            }\n          }finally{\n            renderPumpBusy=false;\n          }\n        }\n        async function renderShellPage(pageNum,version){\n          try{\n            var shell=pageNode(pageNum);\n            if(!shell || version!==S.renderVersion) return;\n            var meta=S.pageMeta[pageNum];\n            var page=await S.pdf.getPage(pageNum);\n            if(version!==S.renderVersion) return;\n            var dpr=Math.min(window.devicePixelRatio||1,2);\n            var viewport=page.getViewport({scale:S.scale});\n            var renderViewport=page.getViewport({scale:S.scale*dpr});\n\n            shell.style.width=viewport.width+'px';\n            shell.style.height=viewport.height+'px';\n\n            var canvas=document.createElement('canvas');\n            var ctx=canvas.getContext('2d',{alpha:false});\n            canvas.width=renderViewport.width;\n            canvas.height=renderViewport.height;\n            canvas.style.width=viewport.width+'px';\n            canvas.style.height=viewport.height+'px';\n\n            var renderTask=page.render({canvasContext:ctx,viewport:renderViewport});\n            await renderTask.promise;\n            if(version!==S.renderVersion) return;\n\n            var ann=document.createElement('div');\n            ann.className='pv-annotation-layer';\n            ann.style.width=viewport.width+'px';\n            ann.style.height=viewport.height+'px';\n\n            try{\n              var annotations = await page.getAnnotations({intent:'display'});\n              annotations.forEach(function(annotation){\n                if(annotation.subtype !== 'Link' || !annotation.rect) return;\n                var rect = viewport.convertToViewportRectangle(annotation.rect);\n                var x = Math.min(rect[0], rect[2]);\n                var y = Math.min(rect[1], rect[3]);\n                var w = Math.abs(rect[0] - rect[2]);\n                var h = Math.abs(rect[1] - rect[3]);\n                if(!w || !h) return;\n\n                var link = document.createElement('a');\n                link.className = 'pv-link';\n                link.style.left = x + 'px';\n                link.style.top = y + 'px';\n                link.style.width = w + 'px';\n                link.style.height = h + 'px';\n                link.setAttribute('aria-label', annotation.contents || annotation.title || ('PDF link on page ' + pageNum));\n\n                var linkUrl = annotation.url || annotation.unsafeUrl || '';\n                if(linkUrl){\n                  link.href = linkUrl;\n                  link.target = '_blank';\n                  link.rel = 'noopener noreferrer';\n                }else if(annotation.dest){\n                  link.href = '#';\n                  link.addEventListener('click', function(e){\n                    e.preventDefault();\n                    buildLinkService().goToDestination(annotation.dest);\n                  });\n                }else{\n                  return;\n                }\n                ann.appendChild(link);\n              });\n            }catch(err){\n              console.warn('Annotation layer render failed', err);\n            }\n\n            shell.innerHTML='';\n            shell.appendChild(canvas);\n            shell.appendChild(ann);\n            shell.classList.remove('is-placeholder');\n            shell.classList.add('is-rendered');\n            S.renderedPages[pageNum]=true;\n          }catch(err){\n            console.warn('Page render failed', pageNum, err);\n          }finally{\n            delete S.renderingPages[pageNum];\n            setTimeout(flushRenderQueue,0);\n          }\n        }\n        function unloadDistantPages(){\n          if(!pagesCont) return;\n          var center=S.page||1;\n          pagesCont.querySelectorAll('.pv-page-shell').forEach(function(shell){\n            var n=parseInt(shell.getAttribute('data-page'),10);\n            if(isNaN(n)) return;\n            if(Math.abs(n-center)<=UNLOAD_DISTANCE) return;\n            if(!S.renderedPages[n]) return;\n            var dims=S.pageDims[n];\n            shell.classList.remove('is-rendered');\n            shell.classList.add('is-placeholder');\n            shell.innerHTML='<span class=\"pv-page-label\">Page '+n+'<\/span>';\n            if(dims){\n              shell.style.width=dims.width+'px';\n              shell.style.height=dims.height+'px';\n            }\n            delete S.renderedPages[n];\n            delete S.renderingPages[n];\n          });\n        }\n        async function preparePageShells(){\n          if(!S.pdf || !pagesCont) return;\n          S.renderVersion++;\n          S.renderQueue=[];\n          S.renderedPages={};\n          S.renderingPages={};\n          pagesCont.innerHTML='';\n          var version=S.renderVersion;\n          var probePage=await S.pdf.getPage(S.page||1);\n          var probeVp=probePage.getViewport({scale:S.scale});\n          for(var i=1;i<=S.total;i++){\n            var shell=document.createElement('div');\n            shell.className='pv-page-shell is-placeholder';\n            shell.setAttribute('data-page',i);\n\n            var dims=S.pageMeta[i] ? {\n              width: Math.max(1,Math.round(S.pageMeta[i].width*S.scale)),\n              height: Math.max(1,Math.round(S.pageMeta[i].height*S.scale))\n            } : {width:Math.round(probeVp.width),height:Math.round(probeVp.height)};\n\n            S.pageDims[i]=dims;\n            shell.style.width=dims.width+'px';\n            shell.style.height=dims.height+'px';\n            shell.innerHTML='<span class=\"pv-page-label\">Page '+i+'<\/span>';\n            pagesCont.appendChild(shell);\n          }\n          if(version!==S.renderVersion) return;\n          bindObserver();\n          bindLazyObserver();\n          updatePageUi();\n          queuePriorityWindow(S.page||1);\n          flushRenderQueue();\n        }\n        async function collectPageMeta(){\n          if(!S.pdf) return;\n          S.pageMeta={};\n          var probeWindow=Math.min(S.total,8);\n          for(var i=1;i<=S.total;i++){\n            if(i<=probeWindow || i===S.total){\n              var page=await S.pdf.getPage(i);\n              var vp=page.getViewport({scale:1});\n              S.pageMeta[i]={width:vp.width,height:vp.height,ratio:(vp.height\/vp.width)||1.414};\n            }\n          }\n          var fallback=S.pageMeta[1]||S.pageMeta[Math.min(S.total,probeWindow)]||{width:816,height:1056,ratio:1.294};\n          for(var j=1;j<=S.total;j++){\n            if(!S.pageMeta[j]) S.pageMeta[j]={width:fallback.width,height:fallback.height,ratio:fallback.ratio};\n          }\n        }\n        async function renderAllPages(){\n          if(!S.pdf || !pagesCont || S.rendering) return;\n          S.rendering=true;\n          try{\n            await preparePageShells();\n          }finally{\n            S.rendering=false;\n          }\n        }\n        async function fitWidth(){\n          if(!S.pdf)return;\n          var page=await S.pdf.getPage(S.page||1);\n          var vp=page.getViewport({scale:1});\n          var w=Math.max(120,(canvasWrap?canvasWrap.clientWidth:800)-48);\n          S.scale=Math.max(CFG.minZoom,Math.min(w\/vp.width,CFG.maxZoom));\n          S.fitMode='width';\n          if(zoomDisp)zoomDisp.textContent=Math.round(S.scale*100)+'%';\n          await renderAllPages();\n          scrollToPage(S.page,'auto');\n        }\n        async function fitHeight(){\n          if(!S.pdf)return;\n          var page=await S.pdf.getPage(S.page||1);\n          var vp=page.getViewport({scale:1});\n          var h=Math.max(120,(canvasWrap?canvasWrap.clientHeight:600)-48);\n          S.scale=Math.max(CFG.minZoom,Math.min(h\/vp.height,CFG.maxZoom));\n          S.fitMode='height';\n          if(zoomDisp)zoomDisp.textContent=Math.round(S.scale*100)+'%';\n          await renderAllPages();\n          scrollToPage(S.page,'auto');\n        }\n        async function renderCover(){if(!coverCanvas||!S.pdf)return;var page=await S.pdf.getPage(1);var dpr=window.devicePixelRatio||1;var base=page.getViewport({scale:1});var maxW=Math.max(180,(coverCanvas.parentElement?coverCanvas.parentElement.clientWidth:320)-8);var maxH=Math.max(220,(cover?cover.clientHeight:420)-80);var scale=Math.min(maxW\/base.width,maxH\/base.height);var vp=page.getViewport({scale:scale*dpr});coverCanvas.width=vp.width;coverCanvas.height=vp.height;coverCanvas.style.width=(vp.width\/dpr)+'px';coverCanvas.style.height=(vp.height\/dpr)+'px';await page.render({canvasContext:coverCanvas.getContext('2d'),viewport:vp}).promise;if(coverMeta)coverMeta.textContent=S.total+' page'+(S.total!==1?'s':'')+' ready to open';}\n        async function renderThumbsLazy(){\nif(!thumbsCont||!CFG.hasThumbs||!S.pdf)return;\nthumbsCont.innerHTML='';\n\nconst THUMB_BATCH_SIZE = 10;\nlet nextThumbPage = 1;\nlet loadingBatch = false;\n\nasync function renderThumbCanvas(item, pageNum){\n  if(item.dataset.loaded) return;\n  item.dataset.loaded = 'loading';\n  try{\n    let page = await S.pdf.getPage(pageNum);\n    let vp = page.getViewport({scale:.35});\n    let canvas = document.createElement('canvas');\n    canvas.width = vp.width;\n    canvas.height = vp.height;\n\n    await page.render({\n      canvasContext: canvas.getContext('2d'),\n      viewport: vp\n    }).promise;\n\n    item.prepend(canvas);\n    item.dataset.loaded = '1';\n  }catch(err){\n    console.warn('Thumbnail render failed', pageNum, err);\n    item.dataset.loaded = '';\n  }\n}\n\nasync function appendThumbBatch(){\n  if(loadingBatch || nextThumbPage > S.total) return;\n  loadingBatch = true;\n\n  let startPage = nextThumbPage;\n  let end = Math.min(nextThumbPage + THUMB_BATCH_SIZE - 1, S.total);\n\n  for(let i = startPage; i <= end; i++){\n    let item = document.createElement('div');\n    item.className = 'pv-thumb-item' + (i===S.page ? ' active' : '');\n    item.setAttribute('data-page', i);\n    item.innerHTML = '<span class=\"pv-thumb-label\">'+i+'<\/span>';\n    item.addEventListener('click', function(){\n      scrollToPage(i);\n    });\n    thumbsCont.appendChild(item);\n    await renderThumbCanvas(item, i);\n  }\n\n  nextThumbPage = end + 1;\n  loadingBatch = false;\n}\n\nasync function ensureThumbForPage(pageNum){\n  while(nextThumbPage <= S.total && pageNum >= nextThumbPage - 1){\n    await appendThumbBatch();\n  }\n}\n\nfunction getThumbScrollContainer(){\n  return sidebar || thumbsCont;\n}\n\nfunction isLastThumbVisible(){\n  if(!thumbsCont) return false;\n  var items = thumbsCont.querySelectorAll('.pv-thumb-item');\n  if(!items.length) return false;\n  var lastItem = items[items.length - 1];\n  var scrollContainer = getThumbScrollContainer();\n  var containerRect = scrollContainer.getBoundingClientRect();\n  var itemRect = lastItem.getBoundingClientRect();\n  return itemRect.bottom <= containerRect.bottom + 40;\n}\n\nfunction onThumbScroll(){\n  if(!thumbsCont || loadingBatch || nextThumbPage > S.total) return;\n  if(isLastThumbVisible()){\n    appendThumbBatch();\n  }\n}\n\nvar thumbScrollContainer = getThumbScrollContainer();\nthumbsCont.onscroll = onThumbScroll;\nif(thumbScrollContainer && thumbScrollContainer !== thumbsCont){\n  thumbScrollContainer.onscroll = onThumbScroll;\n}\n\n\/\/ Load only the first batch on open.\n\/\/ Additional batches load when the user scrolls either the thumbnail area or the sidebar and the last loaded thumb becomes visible.\nawait appendThumbBatch();\nthumbsCont._ensureThumbForPage = ensureThumbForPage;\n}\n\n\nfunction setZoom(z){S.scale=Math.max(CFG.minZoom,Math.min(z,CFG.maxZoom));S.userZoomed=true;if(zoomDisp)zoomDisp.textContent=Math.round(S.scale*100)+'%';if(S.pdf){renderAllPages().then(function(){scrollToPage(S.page,'auto')})}}\n        async function activateViewer(){S.viewerActivated=true;root.classList.remove('pv-has-cover');if(cover)cover.style.display='none';if(CFG.defaultZoom==='fit'||CFG.defaultZoom==='fit_width'){await fitWidth()}else if(CFG.defaultZoom==='fit_height'){await fitHeight()}else{S.scale=Math.max(CFG.minZoom,Math.min(parseFloat(CFG.defaultZoom)||1.2,CFG.maxZoom));if(zoomDisp)zoomDisp.textContent=Math.round(S.scale*100)+'%';await renderAllPages();scrollToPage(S.page,'auto')}if(S.sidebarOpen && !S.thumbsLoaded){renderThumbsLazy();S.thumbsLoaded=true;}}\n        async function loadPDF(){hideError();if(canvasWrap)canvasWrap.style.display='block';showLoader(CFG.loadingText);try{S.pdf=await pdfjsLib.getDocument(CFG.url).promise;S.total=S.pdf.numPages;S.page=Math.min(CFG.startPage,S.total);if(pageTotal)pageTotal.textContent='\/ '+S.total;var si=el('statusInfo');if(si)si.textContent=CFG.title||'Loaded';var sp=el('statusPages');if(sp)sp.textContent=S.total+' pages';await collectPageMeta();hideLoader();if(CFG.coverMode){if(CFG.hasCoverImage){if(coverMeta)coverMeta.textContent=S.total+' page'+(S.total!==1?'s':'')+' ready to open';}else{await renderCover()}}else{await activateViewer()}}catch(e){console.error(e);hideLoader();showError(CFG.errorText+' ('+(e.message||e)+')')}}        root.addEventListener('click',function(e){var b=e.target.closest('[data-action]');if(!b)return;var a=b.getAttribute('data-action');switch(a){case'prev':scrollToPage(S.page-1);break;case'next':scrollToPage(S.page+1);break;case'zoomIn':setZoom(S.scale+CFG.zoomStep);break;case'zoomOut':setZoom(S.scale-CFG.zoomStep);break;case'fitWidth':S.userZoomed=false;fitWidth();break;case'fitHeight':S.userZoomed=false;fitHeight();break;case'openViewer':activateViewer();break;case'sidebar':\nS.sidebarOpen=!S.sidebarOpen;\nif(sidebar)sidebar.classList.toggle('open',S.sidebarOpen);\nb.classList.toggle('active',S.sidebarOpen);\nif(S.sidebarOpen && !S.thumbsLoaded){\n  renderThumbsLazy();\n  S.thumbsLoaded = true;\n}\nbreak;case'search':if(searchBar){searchBar.classList.toggle('open');if(searchBar.classList.contains('open')&&searchInp)searchInp.focus()}break;case'searchClose':if(searchBar)searchBar.classList.remove('open');clearSearch();break;case'searchPrev':searchNav(-1);break;case'searchNext':searchNav(1);break;case'themeToggle':S.currentTheme=S.currentTheme==='dark'?'light':'dark';root.classList.toggle('pv-light',S.currentTheme==='light');root.classList.toggle('pv-dark',S.currentTheme==='dark');break;case'print':if(CFG.url){var w=window.open(CFG.url);if(w)setTimeout(function(){w.print()},1e3)}break;case'download':if(CFG.url){var a2=document.createElement('a');a2.href=CFG.url;a2.download=(CFG.title||'document')+'.pdf';a2.target='_blank';a2.click()}break;case'fullscreen':S.isFs=!S.isFs;S.userZoomed=false;root.classList.toggle('fullscreen',S.isFs);if(CFG.defaultZoom==='fit'||CFG.defaultZoom==='fit_width'||CFG.defaultZoom==='fit_height')setTimeout(function(){lastW=canvasWrap?canvasWrap.clientWidth:0;if(CFG.defaultZoom==='fit_height'||S.fitMode==='height')fitHeight();else fitWidth()},400);break;case'retry':loadPDF();break}});\n        if(pageInput)pageInput.addEventListener('keydown',function(e){if(e.key==='Enter'){var n=parseInt(pageInput.value,10);if(!isNaN(n))scrollToPage(n)}});\n        async function doSearch(q){\n          S.searchQuery=q.toLowerCase();\n          S.searchResults=[];\n          S.searchIdx=-1;\n          if(!q||!S.pdf){updateSearchInfo();return}\n          var info=el('searchInfo');if(info)info.textContent='Searching...';\n          for(var i=1;i<=S.total;i++){\n            var page=await S.pdf.getPage(i);\n            var txt=await page.getTextContent();\n            txt.items.forEach(function(item){\n              var str=item.str.toLowerCase();\n              if(str.indexOf(q)!==-1) S.searchResults.push({pageNum:i});\n            });\n          }\n          if(S.searchResults.length){S.searchIdx=0;scrollToPage(S.searchResults[0].pageNum)}\n          updateSearchInfo();\n        }\n        function updateSearchInfo(){var info=el('searchInfo');if(!info)return;if(!S.searchResults.length&&S.searchQuery)info.textContent='No results';else if(S.searchResults.length)info.textContent=(S.searchIdx+1)+' \/ '+S.searchResults.length;else info.textContent=''}\n        function searchNav(dir){if(!S.searchResults.length)return;S.searchIdx=(S.searchIdx+dir+S.searchResults.length)%S.searchResults.length;var r=S.searchResults[S.searchIdx];scrollToPage(r.pageNum);updateSearchInfo()}\n        function clearSearch(){S.searchQuery='';S.searchResults=[];S.searchIdx=-1;updateSearchInfo()}\n        if(searchInp)searchInp.addEventListener('keydown',function(e){if(e.key==='Enter'&&S.pdf)doSearch(searchInp.value.trim())});\n        if(CFG.keyboard)document.addEventListener('keydown',function(e){if(!S.pdf||e.target.tagName==='INPUT'||e.target.tagName==='TEXTAREA')return;if(!root.contains(document.activeElement)&&document.activeElement!==document.body)return;if(e.key==='ArrowLeft'||e.key==='ArrowUp'){e.preventDefault();scrollToPage(S.page-1)}if(e.key==='ArrowRight'||e.key==='ArrowDown'){e.preventDefault();scrollToPage(S.page+1)}if(e.key==='+'||e.key==='=')setZoom(S.scale+CFG.zoomStep);if(e.key==='-')setZoom(S.scale-CFG.zoomStep);if(e.ctrlKey&&e.key==='f'&&CFG.hasSearch){e.preventDefault();if(searchBar){searchBar.classList.add('open');if(searchInp)searchInp.focus()}}if(e.key==='Escape'){if(searchBar){searchBar.classList.remove('open');clearSearch()}if(S.isFs){S.isFs=false;root.classList.remove('fullscreen')}}});\n        var rt,lastW=canvasWrap?canvasWrap.clientWidth:0,lastH=canvasWrap?canvasWrap.clientHeight:0;window.addEventListener('resize',function(){clearTimeout(rt);rt=setTimeout(function(){if(!S.pdf)return;if(CFG.coverMode&&!S.viewerActivated){if(!CFG.hasCoverImage)renderCover();return}if((CFG.defaultZoom!=='fit'&&CFG.defaultZoom!=='fit_width'&&CFG.defaultZoom!=='fit_height')||S.userZoomed)return;var newW=canvasWrap?canvasWrap.clientWidth:0;var newH=canvasWrap?canvasWrap.clientHeight:0;if(S.fitMode==='height'||CFG.defaultZoom==='fit_height'){if(Math.abs(newH-lastH)>40){lastH=newH;fitHeight()}}else{if(Math.abs(newW-lastW)>40){lastW=newW;fitWidth()}}},300)});\n        loadPDF();\n      }\n      if(window.pdfjsLib){boot()}else{document.addEventListener('cpv:ready',boot)}\n    })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8b89933 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"8b89933\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-shrink\" href=\"https:\/\/houses4autism.eu\/wp-content\/uploads\/Houses4Autism_19-02-2026.zip\" aria-label=\"download VR Game\" download=\"VR Game\" id=\"vr-game-downloads\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-down\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u041f\u0440\u0435\u0437\u0435\u043c\u0438 VR \u0438\u0433\u0440\u0430<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>VR \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430 eLearning \u0412\u043e\u0434\u0438\u0447 \u0437\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u0430\u0446\u0438\u0458\u0430 \u041f\u0440\u0435\u0437\u0435\u043c\u0438 VR \u0438\u0433\u0440\u0430<\/p>\n","protected":false},"author":17,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1249","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/pages\/1249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/comments?post=1249"}],"version-history":[{"count":5,"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/pages\/1249\/revisions"}],"predecessor-version":[{"id":1273,"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/pages\/1249\/revisions\/1273"}],"wp:attachment":[{"href":"https:\/\/houses4autism.eu\/mk\/wp-json\/wp\/v2\/media?parent=1249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}