{"id":4463,"date":"2025-12-25T18:33:11","date_gmt":"2025-12-25T16:33:11","guid":{"rendered":"https:\/\/science.knu.ua\/new\/?page_id=4463"},"modified":"2026-02-21T16:13:39","modified_gmt":"2026-02-21T14:13:39","slug":"naczionalne-nadbannya","status":"publish","type":"page","link":"https:\/\/science.knu.ua\/new\/?page_id=4463","title":{"rendered":"\u041d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0435 \u043d\u0430\u0434\u0431\u0430\u043d\u043d\u044f"},"content":{"rendered":"<h1 style=\"color: #b80000\"><u>\u0421\u0422\u041e\u0420\u0406\u041d\u041a\u0410 \u0423 \u041f\u0420\u041e\u0426\u0415\u0421\u0406 \u0420\u041e\u0417\u0420\u041e\u0411\u041a\u0418<\/u><\/h1>\n<!DOCTYPE html>\r\n<html lang=\"uk\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <title>\u041d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0435 \u043d\u0430\u0434\u0431\u0430\u043d\u043d\u044f \u041a\u041d\u0423 \u0456\u043c\u0435\u043d\u0456 \u0422\u0430\u0440\u0430\u0441\u0430 \u0428\u0435\u0432\u0447\u0435\u043d\u043a\u0430<\/title>\r\n    <!-- Fonts -->\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n    <!-- Icons (Lucide) -->\r\n    <script src=\"https:\/\/unpkg.com\/lucide@latest\"><\/script>\r\n    <!-- 3D Model Viewer -->\r\n    <script type=\"module\" src=\"https:\/\/ajax.googleapis.com\/ajax\/libs\/model-viewer\/3.4.0\/model-viewer.min.js\"><\/script>\r\n    <!-- QR Code Library -->\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/qrcodejs\/1.0.0\/qrcode.min.js\"><\/script>\r\n    <style>\r\n        :root{--primary-red:#b80000;--primary-blue:#0b5394;--primary-green:#198754;--youtube-red:#FF0000;--text-black:#1a1a1a;--bg-light:#f4f6f9;--card-bg:#ffffff;--shadow:0 10px 30px rgba(0,0,0,0.05);--radius:20px;--font-main:'Montserrat',sans-serif;--hint-bg:#f1f5f9;--hint-text:#64748b;--hint-border:#cbd5e1}\r\n        body{margin:0;padding:0;font-family:var(--font-main);background:var(--bg-light);color:var(--text-black);line-height:1.6}\r\n        #knu-heritage-app{max-width:1200px;margin:0 auto;padding:2rem 1.5rem;box-sizing:border-box;font-size:18px}\r\n        #knu-heritage-app *{box-sizing:border-box}\r\n        .hero-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:2.5rem;padding:3rem;display:flex;align-items:center;gap:1.5rem;position:relative;border-left:8px solid var(--primary-red);overflow:hidden}\r\n        .hero-content{flex:1;z-index:2}\r\n        .hero-content h1{color:var(--text-black);font-size:2.4rem;line-height:1.25;margin:0 0 1rem;font-weight:800}\r\n        .hero-content h1 span{color:var(--primary-red)}\r\n        .hero-desc{color:#333;font-size:1.35rem;width:100%;line-height:1.6;font-weight:500;margin:0}\r\n        .visual-group{position:relative;flex-shrink:0;width:180px;height:180px}\r\n        .visual-circle{position:absolute;width:110px;height:110px;border-radius:50%;overflow:hidden;background:#fff;border:4px solid var(--primary-blue);box-shadow:0 4px 12px rgba(0,0,0,.1);transition:all .35s cubic-bezier(.175,.885,.32,1.275);cursor:pointer}\r\n        .visual-circle img, .visual-circle model-viewer{width:100%;height:100%}\r\n        .visual-circle img{object-fit:cover;}\r\n        .visual-circle img.fade-img{position:absolute;top:0;left:0;opacity:0;transition:opacity 1.2s ease-in-out;z-index:2;pointer-events:none;}\r\n        .photo-hint-icon{position:absolute;bottom:8px;right:8px;color:#fff;background:rgba(0,0,0,.15);border-radius:50%;padding:6px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:3;transition:all .3s ease;}\r\n        .photo-hint-icon i, .photo-hint-icon svg{width:16px;height:16px;opacity:.5;transition:opacity .3s ease;}\r\n        .vc-photo:hover .photo-hint-icon{opacity:0.1;}\r\n        .visual-circle model-viewer{--poster-color:transparent;background:#f0f4f8;cursor:grab}\r\n        .visual-circle model-viewer:active{cursor:grabbing}\r\n        @keyframes gentle-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}\r\n        model-viewer.interactive-3d{animation:gentle-float 5s ease-in-out infinite}\r\n        model-viewer.user-controlled{animation:none!important}\r\n        .vc-3d{top:0;left:0;z-index:2}\r\n        .vc-photo{bottom:0;right:0;z-index:1}\r\n        .vc-centered{top:35px;left:35px;z-index:2}\r\n        .visual-circle:hover{z-index:100!important;box-shadow:0 20px 40px rgba(0,0,0,.25);border-color:var(--primary-red)}\r\n        .vc-3d:hover{transform:translate(35px,35px) scale(1.5)}\r\n        .vc-photo:hover{transform:translate(-35px,-35px) scale(1.5)}\r\n        .vc-centered:hover{transform:scale(1.5)}\r\n        .visual-hint{position:absolute;background:var(--hint-bg);padding:1px 4px;border-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.05);display:flex;align-items:center;gap:3px;font-size:8px!important;font-weight:700;color:var(--hint-text);z-index:0;pointer-events:none;border:1px solid var(--hint-border);transition:opacity .3s;text-transform:uppercase;letter-spacing:.5px}\r\n        .visual-hint i, .visual-hint svg{width:8px;height:8px}\r\n        .hint-3d{top:12px;right:-5px}\r\n        .hint-photo{bottom:12px;left:-5px}\r\n        .hint-3d::after,.hint-3d::before,.hint-photo::after,.hint-photo::before{content:'';position:absolute;top:50%;transform:translateY(-50%);border:3px solid transparent}\r\n        .hint-3d::after{left:-4px;border-right-color:var(--hint-bg)}\r\n        .hint-3d::before{left:-5px;border-right-color:var(--hint-border)}\r\n        .hint-photo::after{right:-4px;border-left-color:var(--hint-bg)}\r\n        .hint-photo::before{right:-5px;border-left-color:var(--hint-border)}\r\n        .visual-group:hover .visual-hint{opacity:.3}\r\n        .controls-area{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2.5rem;align-items:center;justify-content:space-between}\r\n        .search-box{flex:1;min-width:300px;position:relative}\r\n        .search-box input{width:100%;padding:1.2rem 1.2rem 1.2rem 3.5rem;font-family:inherit;font-size:1.3rem;border:none;background:#fff;border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.03);transition:box-shadow .3s}\r\n        .search-box input:focus{outline:none;box-shadow:0 4px 20px rgba(11,83,148,.15)}\r\n        .search-icon{position:absolute;left:1.2rem;top:50%;transform:translateY(-50%);color:#a0aec0;width:24px;height:24px}\r\n        .main-qr-btn{background:var(--primary-blue);color:#fff;border:none;padding:1rem 1.5rem;border-radius:12px;cursor:pointer;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.8rem;transition:all .2s;box-shadow:0 4px 10px rgba(11,83,148,.2);text-decoration:none}\r\n        .main-qr-btn:hover{transform:translateY(-2px);background:#094276;color:#fff}\r\n        .main-qr-btn.outline{background:transparent;border:2px solid #cbd5e1;color:#475569;box-shadow:none}\r\n        .main-qr-btn.outline:hover{background:#f0f7ff;border-color:var(--primary-blue);color:var(--primary-blue);transform:translateY(-2px)}\r\n        .main-qr-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:10000;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}\r\n        .main-qr-overlay.active{display:flex;opacity:1}\r\n        .main-qr-content{position:relative;background:#fff;padding:2.5rem;border-radius:16px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.2);max-width:90%;width:360px}\r\n        .close-qr-btn{position:absolute;top:15px;right:15px;background:#f1f5f9;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .2s}\r\n        .close-qr-btn:hover{background:#e2e8f0;color:#0f172a}\r\n        .masonry-wrapper{display:flex;gap:2rem;align-items:flex-start}\r\n        .masonry-col{flex:1;display:flex;flex-direction:column;gap:2rem;min-width:0}\r\n        .heritage-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;display:flex;flex-direction:column;position:relative;transition:transform .3s ease;border:1px solid #cbd5e1}\r\n        .heritage-card:hover{transform:translateY(-5px)}\r\n        .sub-item{position:relative;display:flex;flex-direction:column;margin-bottom:2.5rem}\r\n        .sub-item:last-child{margin-bottom:0}\r\n        .connector-line{position:absolute;right:-10px;top:45px;bottom:-50px;width:3px;background:linear-gradient(to bottom,#dbe4ef 40%,transparent 0) right\/3px 10px repeat-y;z-index:0}\r\n        .sub-item:last-child .connector-line{display:none}\r\n        .item-top-split{display:flex;flex-direction:row;gap:2rem;margin-bottom:1.5rem;align-items:flex-start;width:100%}\r\n        .item-text-content{flex:1;display:flex;flex-direction:column;gap:.8rem;min-width:0}\r\n        .sub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.2rem;margin-bottom:0;position:relative;z-index:2;flex-direction:row-reverse}\r\n        .item-icon-circle{width:55px;height:55px;background:#eef4fb;color:var(--primary-blue);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px #fff;flex-shrink:0;margin-top:-6px}\r\n        .item-icon-circle i, .item-icon-circle svg{width:35px;height:35px}\r\n        .title-wrapper{flex:1;position:relative;text-align:center;cursor:help}\r\n        .item-title-short{font-size:1.9rem;font-weight:700;color:var(--text-black);margin:0;line-height:1.3;border-bottom:2px dotted #a0aec0;display:inline-block}\r\n        .item-title-full{visibility:hidden;opacity:0;position:absolute;top:100%;left:50%;transform:translate(-50%,10px);width:320px;background:#2d3748;color:#fff;text-align:center;padding:12px;border-radius:8px;font-size:1rem;font-weight:500;box-shadow:0 5px 15px rgba(0,0,0,.2);z-index:1000;pointer-events:none;transition:all .2s ease-in-out}\r\n        .item-title-full::after{content:\"\";position:absolute;bottom:100%;left:50%;margin-left:-8px;border:8px solid transparent;border-bottom-color:#2d3748}\r\n        .title-wrapper:hover .item-title-full{visibility:visible;opacity:1;transform:translate(-50%,5px)}\r\n        .item-desc{font-size:1.45rem;color:#4a4a4a;line-height:1.6;font-weight:500;display:inline;}\r\n        \/* Text Dropdown specific styles *\/\r\n        .item-desc-wrapper { display: block; position: relative; width: 100%; }\r\n        .text-toggle-overlay { position: absolute; right: -2px; bottom: 0; height: 1.8em; display: flex; align-items: flex-end; justify-content: flex-end; padding-left: 55px; background: linear-gradient(to right, transparent, var(--card-bg) 45%, var(--card-bg)); pointer-events: none; z-index: 5; transition: background 0.3s ease; }\r\n        .text-toggle-overlay.expanded-overlay { background: transparent; }\r\n        .text-toggle-overlay .icon-toggle-btn { pointer-events: auto; width: 28px; height: 28px; margin-bottom: -1px; }\r\n        .text-toggle-overlay .icon-toggle-btn i, .text-toggle-overlay .icon-toggle-btn svg { width: 16px; height: 16px; }\r\n        \/* Animated Dropdowns Wrapper for Text & Extra Details *\/\r\n        .text-dropdown-wrapper, .extra-details-wrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.4s ease-out; width: 100%; }\r\n        .text-dropdown-wrapper.expanded, .extra-details-wrapper.expanded { grid-template-rows: 1fr; }\r\n        .text-dropdown-inner, .extra-details-inner { min-height: 0; overflow: hidden; display: block; }\r\n        \/* Flexbox animation classes for Extra Details rows *\/\r\n        .toggle-container { gap: 0.8rem; }\r\n        .toggle-container.col-inactive { gap: 0; }\r\n        .toggle-container.exp-inactive { gap: 0; }\r\n        .toggle-btn-wrap { width: 32px; opacity: 1; transition: width 0.3s ease, opacity 0.3s ease; display: flex; justify-content: flex-end; overflow: hidden; flex-shrink: 0; }\r\n        .col-inactive .col-btn-wrap { width: 0; opacity: 0; pointer-events: none; }\r\n        .exp-inactive .exp-btn-wrap { width: 0; opacity: 0; pointer-events: none; }\r\n        \/* Minimalist Toggle Button Base *\/\r\n        .icon-toggle-btn { background: #fff; border: 1px solid #cbd5e1; color: #64748b; border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; padding: 0; box-shadow: 0 2px 5px rgba(0,0,0,0.05); flex-shrink: 0; }\r\n        .icon-toggle-btn:hover { background: #f8fafc; color: var(--primary-blue); border-color: var(--primary-blue); transform: translateY(-1px); }\r\n        .icon-toggle-btn i, .icon-toggle-btn svg { transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); width: 18px; height: 18px; }\r\n        .icon-toggle-btn[data-state=\"expanded\"] i, .icon-toggle-btn[data-state=\"expanded\"] svg { transform: rotate(180deg); }\r\n        .item-full-details{width:100%}\r\n        .details-box{display:flex;flex-wrap:wrap;gap:.8rem;width:100%}\r\n        .info-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}\r\n        .info-row.half{flex:0 0 calc(50% - .4rem)}\r\n        .info-row.full{flex:0 0 100%}\r\n        .info-label{color:#64748b;font-weight:600;font-size:1.1rem;margin-right:10px}\r\n        .info-val{font-weight:700;text-align:right;color:#2d3748;font-size:1.1rem}\r\n        .info-link{text-decoration:none;color:var(--primary-blue);border-bottom:1px dashed var(--primary-blue);transition:all .2s}\r\n        .info-link:hover{background:rgba(11,83,148,.1);border-bottom-style:solid}\r\n        \/* Tooltip style for Holder *\/\r\n        .holder-wrapper { position: relative; display: inline-flex; justify-content: flex-end; cursor: help; align-items: center;}\r\n        .holder-short { display: inline-block; line-height: 1.2; }\r\n        .holder-full {\r\n            visibility: hidden; opacity: 0; position: absolute;\r\n            bottom: calc(100% + 8px); right: -10px; width: max-content; max-width: 260px;\r\n            background: #2d3748; color: #fff; text-align: center; padding: 10px;\r\n            border-radius: 8px; font-size: 0.95rem; font-weight: 500;\r\n            box-shadow: 0 5px 15px rgba(0,0,0,.2); z-index: 1000;\r\n            pointer-events: none; transition: all .2s ease-in-out;\r\n            white-space: normal;\r\n        }\r\n        .holder-full::after {\r\n            content: \"\"; position: absolute; top: 100%; right: 20px;\r\n            border: 8px solid transparent; border-top-color: #2d3748;\r\n        }\r\n        .holder-wrapper:hover .holder-full { visibility: visible; opacity: 1; transform: translateY(-5px); }\r\n        .action-row{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap; margin-top: 1rem;}\r\n        .btn-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s ease;border:1px solid transparent;flex:1}\r\n        .btn-action.primary{background:var(--primary-blue);color:#fff;box-shadow:0 2px 5px rgba(11,83,148,.2)}\r\n        .btn-action.primary:hover{background:#094276;transform:translateY(-1px)}\r\n        .btn-action.news-btn{background:var(--primary-green);color:#fff;box-shadow:0 2px 5px rgba(25,135,84,.2)}\r\n        .btn-action.news-btn:hover{background:#146c43;transform:translateY(-1px)}\r\n        .btn-action.youtube-btn{background:var(--youtube-red);color:#fff;box-shadow:0 2px 5px rgba(255,0,0,.2)}\r\n        .btn-action.youtube-btn:hover{background:#cc0000;transform:translateY(-1px)}\r\n        .btn-action.secondary{background:transparent;border-color:#cbd5e1;color:#475569;}\r\n        .btn-action.secondary:hover{background:#f0f7ff;border-color:var(--primary-blue);color:var(--primary-blue)}\r\n        \/* Floating Tooltip QR Styles *\/\r\n        .qr-btn-container { position: relative; display: flex; flex: 0 0 auto; }\r\n        .qr-btn-container .btn-action { flex: 1; }\r\n        .qr-popup { display: none; position: absolute; bottom: calc(100% + 14px); right: -10px; background: #fff; z-index: 50; border-radius: 16px; box-shadow: 0 10px 35px rgba(0,0,0,0.15); border: 1px solid #cbd5e1; opacity: 0; transition: all 0.3s ease; transform: translateY(10px) scale(0.95); transform-origin: bottom right; padding: 1.2rem; flex-direction: column; width: 220px; cursor: default; }\r\n        .qr-popup.show { display: flex; opacity: 1; transform: translateY(0) scale(1); }\r\n        .qr-popup::after { content: ''; position: absolute; bottom: -7px; right: 38px; width: 12px; height: 12px; background: #fff; border-bottom: 1px solid #cbd5e1; border-right: 1px solid #cbd5e1; transform: rotate(45deg); }\r\n        .close-card-qr-btn { position: absolute; top: -12px; right: -12px; background: #fff; border: 1px solid #cbd5e1; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #64748b; transition: all 0.2s; box-shadow: 0 4px 10px rgba(0,0,0,0.1); z-index: 51; }\r\n        .close-card-qr-btn:hover { background: var(--primary-red); color: #fff; border-color: var(--primary-red); transform: scale(1.1); }\r\n        .qr-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; border-bottom: 1px solid #eee; padding-bottom: 8px; }\r\n        .qr-title { font-size: 0.95rem; font-weight: 700; color: var(--text-black); text-transform: uppercase; }\r\n        .qr-arrow { cursor: pointer; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #f8fafc; color: var(--primary-blue); transition: all 0.2s; }\r\n        .qr-arrow:hover { background: var(--primary-blue); color: #fff; transform: scale(1.1); }\r\n        .qr-canvas-container { display: flex; justify-content: center; align-items: center; min-height: 140px; background: #fff; border-radius: 8px; }\r\n        \/* Video Embed Styles *\/\r\n        .card-primary-content { transition: opacity 0.3s ease; opacity: 1; display: block; }\r\n        .card-video-content { transition: opacity 0.3s ease; opacity: 0; display: none; width: 100%; }\r\n        .video-header-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; border-bottom: 1px solid #e2e8f0; padding-bottom: 1rem; gap: 1rem; }\r\n        .video-responsive-wrapper{position:relative;padding-bottom:56.25%;height:0;background:#000;border-radius:12px;overflow:hidden}\r\n        .video-responsive-wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:none}\r\n        @media (max-width:850px){\r\n            .hero-section{flex-direction:column-reverse;text-align:center;padding:2rem;gap:2rem}\r\n            .hero-content h1{font-size:2.2rem}\r\n            .visual-group{margin:0 auto}\r\n            .hero-desc{margin:0 auto;font-size:1.3rem;text-align:left}\r\n            .masonry-wrapper{flex-direction:column;gap:2rem}\r\n            .item-top-split{flex-direction:column;align-items:center;gap:1.5rem}\r\n            .item-text-content{width:100%}\r\n            .connector-line{display:none}\r\n            .info-row.half{flex:0 0 100%}\r\n            .info-label{font-size:1.05rem}\r\n            .info-val{font-size:1.25rem}\r\n            .item-title-full{width:260px}\r\n            .btn-action{width:100%;flex:100%}\r\n            .qr-btn-container { flex: 100%; width: 100%; justify-content: center; }\r\n            .qr-btn-container .btn-action { width: 100%; }\r\n            .qr-popup { right: auto; left: 50%; transform: translateX(-50%) translateY(10px) scale(0.95); transform-origin: bottom center; }\r\n            .qr-popup.show { transform: translateX(-50%) translateY(0) scale(1); }\r\n            .qr-popup::after { right: auto; left: 50%; margin-left: -6px; }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n<body>\r\n<div id=\"knu-heritage-app\">\r\n    <!-- HEADER -->\r\n    <header class=\"hero-section\">\r\n        <div class=\"hero-content\">\r\n            <h1>\u041a\u0438\u0457\u0432\u0441\u044c\u043a\u0438\u0439 \u043d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0438\u0439 \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442<br><span>\u0456\u043c\u0435\u043d\u0456 \u0422\u0430\u0440\u0430\u0441\u0430 \u0428\u0435\u0432\u0447\u0435\u043d\u043a\u0430<\/span><\/h1>\r\n            <p class=\"hero-desc\">\r\n                \u0423\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u0454 \u0443\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0456 \u043d\u0430\u0443\u043a\u043e\u0432\u0456, \u0456\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u0456 \u0442\u0430 \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0456 \u043e\u0431'\u0454\u043a\u0442\u0438, \u044f\u043a\u0438\u043c \u043d\u0430\u0434\u0430\u043d\u043e \u0441\u0442\u0430\u0442\u0443\u0441 <b>\u041d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0434\u0431\u0430\u043d\u043d\u044f \u0423\u043a\u0440\u0430\u0457\u043d\u0438<\/b>.\r\n            <\/p>\r\n        <\/div>\r\n        <div class=\"visual-group\">\r\n            <div class=\"visual-hint hint-3d\"><i data-lucide=\"box\"><\/i> 3D<\/div>\r\n            <div class=\"visual-hint hint-photo\"><i data-lucide=\"camera\"><\/i> \u0424\u043e\u0442\u043e<\/div>\r\n            <div class=\"visual-circle vc-3d\">\r\n                <model-viewer \r\n                    id=\"hero-model\"\r\n                    class=\"interactive-3d\"\r\n                    camera-controls \r\n                    disable-zoom\r\n                    disable-pan\r\n                    interaction-prompt=\"none\"\r\n                    interpolation-decay=\"200\"\r\n                    shadow-intensity=\"1\"\r\n                    field-of-view=\"25deg\"\r\n                    environment-image=\"neutral\"\r\n                ><\/model-viewer>\r\n            <\/div>\r\n            <div class=\"visual-circle vc-photo\" onclick=\"cyclePhoto(this)\" data-index=\"0\" data-photos=\"[]\">\r\n                <img decoding=\"async\" id=\"hero-photo\" class=\"base-img\" src=\"\" alt=\"Real Photo Main Building\">\r\n                <div class=\"photo-hint-icon\"><i data-lucide=\"mouse-pointer-click\"><\/i><\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/header>\r\n    <!-- Toolbar -->\r\n    <div class=\"controls-area\">\r\n        <div class=\"search-box\">\r\n            <i data-lucide=\"search\" class=\"search-icon\"><\/i>\r\n            <input type=\"text\" id=\"searchInput\" placeholder=\"\u041f\u043e\u0448\u0443\u043a \u0443 \u0440\u0435\u0454\u0441\u0442\u0440\u0456...\">\r\n        <\/div>\r\n        <div style=\"display: flex; gap: 1rem; flex-wrap: wrap;\">\r\n            <a href=\"https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%9A%D0%B8%D1%97%D0%B2%D1%81%D1%8C%D0%BA%D0%B8%D0%B9%20%D0%BD%D0%B0%D1%86%D1%96%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%B9%20%D1%83%D0%BD%D1%96%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82%20%D1%96%D0%BC%D0%B5%D0%BD%D1%96%20%D0%A2%D0%B0%D1%80%D0%B0%D1%81%D0%B0%20%D0%A8%D0%B5%D0%B2%D1%87%D0%B5%D0%BD%D0%BA%D0%B0&count=50\" target=\"_blank\" class=\"main-qr-btn\">\r\n                <i data-lucide=\"external-link\"><\/i>\r\n                \u0420\u0435\u0454\u0441\u0442\u0440\r\n            <\/a>\r\n            <button class=\"main-qr-btn outline\" onclick=\"toggleMainQR()\">\r\n                <i data-lucide=\"qr-code\"><\/i>\r\n                QR\r\n            <\/button>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- Global QR Overlay Modal -->\r\n    <div id=\"main-qr-overlay\" class=\"main-qr-overlay\" onclick=\"if(event.target === this) toggleMainQR()\">\r\n        <div class=\"main-qr-content\">\r\n            <button class=\"close-qr-btn\" onclick=\"toggleMainQR()\">\r\n                <i data-lucide=\"x\"><\/i>\r\n            <\/button>\r\n            <p style=\"margin-bottom: 1.5rem; font-weight: 700; font-size: 1.3rem; color: var(--text-black);\">\r\n                \u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0440\u0435\u0454\u0441\u0442\u0440 \u043d\u0430\u0434\u0431\u0430\u043d\u044c\r\n            <\/p>\r\n            <div id=\"qrcode-main\" style=\"display: flex; justify-content: center; margin-bottom: 1rem;\"><\/div>\r\n            <small style=\"color: #64748b; font-family: monospace; font-size: 1rem;\">registry.nauka.gov.ua<\/small>\r\n        <\/div>\r\n    <\/div>\r\n    <!-- Automatic Masonry Grid -->\r\n    <div id=\"masonryContainer\" class=\"masonry-wrapper\"><\/div>\r\n<\/div>\r\n<!-- DATA SOURCE BLOCK (HUMAN READABLE LISTS) -->\r\n<div id=\"heritage-data-source\" style=\"display:none;\">\r\n=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=[1]\r\n1a. \u041a\u043e\u0440\u043e\u0442\u043a\u0430 \u0442\u0430 \u043f\u043e\u0432\u043d\u0430 \u043d\u0430\u0437\u0432\u0438: \u041f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 \u041a\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u043e\u0433\u043e \u0437\u0430\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u043a\u0430 (\u0413\u0435\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0438\u0439 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442 \u0442\u0430 \u0440\u043e\u0441\u043b\u0438\u043d\u043d\u043e-\u0442\u0432\u0430\u0440\u0438\u043d\u043d\u0438\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 \u041a\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u0438\u0445 \u0434\u0438\u0441\u043b\u043e\u043a\u0430\u0446\u0456\u0439 \u0443 \u043c\u0435\u0436\u0430\u0445 \u041a\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u043e\u0433\u043e \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u043a\u0430 \u043d\u0430\u0432\u0447\u0430\u043b\u044c\u043d\u043e-\u043d\u0430\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u201c\u0406\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u0431\u0456\u043e\u043b\u043e\u0433\u0456\u0457 \u0442\u0430 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0438\u201d \u041a\u0438\u0457\u0432\u0441\u044c\u043a\u043e\u0433\u043e \u043d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0443 \u0456\u043c\u0435\u043d\u0456 \u0422\u0430\u0440\u0430\u0441\u0430 \u0428\u0435\u0432\u0447\u0435\u043d\u043a\u0430) | kaniv | mountain-snow\r\n2a. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u043f\u0438\u0441: \u0413\u0435\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0437\u0456 \u0437\u043c\u0456\u0449\u0435\u043d\u0438\u043c\u0438 (\u0434\u0438\u0441\u043b\u043e\u043a\u043e\u0432\u0430\u043d\u0438\u043c\u0438) \u043c\u0435\u0437\u043e\u0437\u043e\u0439\u0441\u044c\u043a\u0438\u043c\u0438 \u0442\u0430 \u043a\u0430\u0439\u043d\u043e\u0437\u043e\u0439\u0441\u044c\u043a\u0438\u043c\u0438 \u043e\u0441\u0430\u0434\u043e\u0432\u0438\u043c\u0438 \u043f\u043e\u0440\u043e\u0434\u0430\u043c\u0438 \u043d\u0430 \u0434\u043e\u043a\u0435\u043c\u0431\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0445 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u0456\u0447\u043d\u0438\u0445 \u0443\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f\u0445; \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0438\u0439 \u0442\u0430 \u0443\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0434\u043b\u044f \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457 \u0423\u043a\u0440\u0430\u0457\u043d\u0438 \u0456 \u0432\u0441\u0456\u0454\u0457 \u0421\u0445\u0456\u0434\u043d\u043e\u0457 \u0404\u0432\u0440\u043e\u043f\u0438 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 \u0433\u0435\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0438\u0445 \u0456 \u0433\u0435\u043e\u043c\u043e\u0440\u0444\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0438\u0445 \u0443\u0442\u0432\u043e\u0440\u0435\u043d\u044c \u0456\u0437 \u0432\u0438\u0445\u043e\u0434\u0430\u043c\u0438 \u043d\u0430 \u0434\u0435\u043d\u043d\u0443 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u044e \u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0438\u0445 \u0434\u043b\u044f \u0432\u0438\u0432\u0447\u0435\u043d\u043d\u044f \u043c\u0435\u0437\u043e\u0437\u043e\u0439\u0441\u044c\u043a\u0438\u0445 \u0456 \u043a\u0430\u0439\u043d\u043e\u0437\u043e\u0439\u0441\u044c\u043a\u0438\u0445 \u043f\u043e\u0440\u0456\u0434, \u043c\u0435\u0445\u0430\u043d\u0456\u0437\u043c \u0432\u0438\u043d\u0438\u043a\u043d\u0435\u043d\u043d\u044f \u0442\u0430 \u0444\u043e\u0440\u043c\u0443\u0432\u0430\u043d\u043d\u044f \u044f\u043a\u0438\u0445, \u0434\u043e\u043d\u0438\u043d\u0456 \u043d\u0435 \u0434\u043e \u043a\u0456\u043d\u0446\u044f \u0432\u0438\u0432\u0447\u0435\u043d\u0438\u0439; \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u044f \u043c\u0430\u0454 \u0432\u0438\u0441\u043e\u043a\u0438\u0439 \u0440\u0456\u0432\u0435\u043d\u044c \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442\u043d\u043e\u0433\u043e \u0442\u0430 \u0431\u0456\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u043e\u0433\u043e \u0440\u0456\u0437\u043d\u043e\u043c\u0430\u043d\u0456\u0442\u0442\u044f; \u0434\u043e\u0431\u0440\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0456 \u0439 \u0434\u043e\u043d\u0438\u043d\u0456 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0444\u043b\u043e\u0440\u0438\u0441\u0442\u0438\u0447\u043d\u043e \u0431\u0430\u0433\u0430\u0442\u0456 \u0441\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0456 \u0448\u0438\u0440\u043e\u043a\u043e\u043b\u0438\u0441\u0442\u044f\u043d\u0456 \u043b\u0456\u0441\u0438 \u0437 \u0443\u0447\u0430\u0441\u0442\u044e \u0440\u0435\u043b\u0456\u043a\u0442\u043e\u0432\u0438\u0445 \u0432\u0438\u0434\u0456\u0432 \u0441\u0443\u0434\u0438\u043d\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d \u0440\u0456\u0437\u043d\u0438\u0445 \u0437\u0430 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0456\u0454\u044e \u0442\u0430 \u0447\u0430\u0441\u043e\u043c \u043c\u0456\u0433\u0440\u0430\u0446\u0456\u0457 \u0446\u0435\u043d\u043e\u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u0456\u0432 \u0456\u0437 \u0437\u0440\u043e\u0441\u0442\u0430\u043d\u043d\u044f\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0446\u0456\u0439 19 \u0432\u0438\u0434\u0456\u0432 \u0441\u043e\u0437\u043e\u0444\u0456\u0442\u0456\u0432, \u0449\u043e \u043c\u0430\u044e\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043e\u0445\u043e\u0440\u043e\u043d\u044e\u0432\u0430\u043d\u0438\u0445 \u043d\u0430 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u043e\u0434\u0435\u0440\u0436\u0430\u0432\u043d\u043e\u043c\u0443 \u0442\u0430 \u043c\u0456\u0436\u043d\u0430\u0440\u043e\u0434\u043d\u043e\u043c\u0443 \u0440\u0456\u0432\u043d\u0456; \u0432\u0435\u043b\u0438\u043a\u0430 \u043a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0432\u0438\u0434\u0456\u0432 \u0440\u043e\u0441\u043b\u0438\u043d, \u0433\u0440\u0438\u0431\u0456\u0432 \u0456 \u0442\u0432\u0430\u0440\u0438\u043d, \u0437\u0430\u043d\u0435\u0441\u0435\u043d\u0438\u0445 \u0434\u043e \u0427\u0435\u0440\u0432\u043e\u043d\u043e\u0457 \u043a\u043d\u0438\u0433\u0438 \u0423\u043a\u0440\u0430\u0457\u043d\u0438: \u0441\u0443\u0434\u0438\u043d\u043d\u0456 \u0440\u043e\u0441\u043b\u0438\u043d\u0438 \u2013 15, \u0433\u0440\u0438\u0431\u0438 \u2013 10, \u0445\u0440\u0435\u0431\u0435\u0442\u043d\u0456 \u0442\u0432\u0430\u0440\u0438\u043d\u0438 \u2013 52, \u0431\u0435\u0437\u0445\u0440\u0435\u0431\u0435\u0442\u043d\u0456 \u0442\u0432\u0430\u0440\u0438\u043d\u0438 \u2013 33; \u0454 \u0430\u0440\u0445\u0435\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u0456 \u043f\u0430\u043c\u2019\u044f\u0442\u043a\u0438 \u2013 \u043f\u043e\u0441\u0435\u043b\u0435\u043d\u043d\u044f \u0447\u0430\u0441\u0456\u0432 \u0441\u043a\u0456\u0444\u0441\u044c\u043a\u043e\u0457 \u0434\u043e\u0431\u0438 \u0442\u0430 \u0440\u0435\u0448\u0442\u043a\u0438 \u043b\u0456\u0442\u043e\u043f\u0438\u0441\u043d\u043e\u0433\u043e \u043c\u0456\u0441\u0442\u0430 \u0420\u043e\u0434\u0435\u043d\u044c.\r\n3a. \u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447: \u0417\u0430\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u043a | \u041a\u0430\u043d\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0439 \u0437\u0430\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u043a | https:\/\/www.facebook.com\/kaniv.nature.reserve\/\r\n4a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0440\u0435\u0454\u0441\u0442\u0440: https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%93%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3%D1%96%D1%87%D0%BD%D0%B8%D0%B9%20%D0%BB%D0%B0%D0%BD%D0%B4%D1%88%D0%B0%D1%84%D1%82%20%D1%82%D0%B0%20%D1%80%D0%BE%D1%81%D0%BB%D0%B8%D0%BD%D0%BD%D0%BE-%D1%82%D0%B2%D0%B0%D1%80%D0%B8%D0%BD%D0%BD%D0%B8%D0%B9%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%81&count=50\r\n5a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u043e\u0432\u0438\u043d\u0430: https:\/\/www.golos.com.ua\/article\/366352\r\n6a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f Youtube: https:\/\/www.youtube.com\/watch?v=rzCKtgU0l0M\r\n7a. \u041b\u043e\u043a\u0430\u0446\u0456\u044f: \u041a\u0430\u043d\u0456\u0432 (\u0427\u0435\u0440\u043a\u0430\u0441\u044c\u043a\u0430 \u043e\u0431\u043b.) | https:\/\/maps.app.goo.gl\/M519zB5shWRqY2Ft6\r\n8a. \u041d\u041f\u0410: \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u041a\u041c\u0423 \u21161243 \u0432\u0456\u0434 04.10.2022 \u0440\u043e\u043a\u0443 | https:\/\/zakon.rada.gov.ua\/laws\/show\/1243-2022-%D0%BF\r\n9a. \u041d\u0430\u043f\u0440\u044f\u043c: \u041e\u0431\u2019\u0454\u043a\u0442\u0438, \u0449\u043e \u0437\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0443\u044e\u0442\u044c \u0440\u043e\u0437\u0432\u0438\u0442\u043e\u043a \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0438\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u044c \u0456 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0431\u0456\u043e\u0440\u0456\u0437\u043d\u043e\u043c\u0430\u043d\u0456\u0442\u0442\u044f\r\n10a. \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c: \u041f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0456 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u0438, \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457 \u0442\u0430 \u043e\u0431\u2019\u0454\u043a\u0442\u0438\r\n-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\r\n1a. \u041a\u043e\u0440\u043e\u0442\u043a\u0430 \u0442\u0430 \u043f\u043e\u0432\u043d\u0430 \u043d\u0430\u0437\u0432\u0438: \u0424\u043e\u043d\u0434 \u0441\u0442\u0430\u0440\u043e\u0434\u0440\u0443\u043a\u0456\u0432 \u0442\u0430 \u0446\u0456\u043d\u043d\u0438\u0445 \u0437\u0456\u0431\u0440\u0430\u043d\u044c (\u0424\u043e\u043d\u0434 \u0441\u0442\u0430\u0440\u043e\u0434\u0440\u0443\u043a\u043e\u0432\u0430\u043d\u0438\u0445, \u0440\u0456\u0434\u043a\u0456\u0441\u043d\u0438\u0445 \u0442\u0430 \u0446\u0456\u043d\u043d\u0438\u0445 \u043a\u043d\u0438\u0436\u043a\u043e\u0432\u0438\u0445 \u0437\u0456\u0431\u0440\u0430\u043d\u044c \u041d\u0430\u0443\u043a\u043e\u0432\u043e\u0457 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438 \u0456\u043c\u0435\u043d\u0456 \u041c. \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432\u0438\u0447\u0430) | library | book-open-check\r\n2a. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u043f\u0438\u0441: \u0424\u043e\u043d\u0434 \u043d\u0430\u0440\u0430\u0445\u043e\u0432\u0443\u0454 \u0431\u043b\u0438\u0437\u044c\u043a\u043e 21 \u0442\u0438\u0441\u044f\u0447 \u043e\u0434\u0438\u043d\u0438\u0446\u044c \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f. \u0414\u043e \u0441\u043a\u043b\u0430\u0434\u0443 \u0444\u043e\u043d\u0434\u0443 \u0432\u0445\u043e\u0434\u044f\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0434\u0440\u0443\u043a\u043e\u0432\u0430\u043d\u0456, \u0440\u0456\u0434\u043a\u0456\u0441\u043d\u0456 \u0442\u0430 \u0446\u0456\u043d\u043d\u0456 \u0432\u0438\u0434\u0430\u043d\u043d\u044f XV\u2013XXI \u0441\u0442\u043e\u043b\u0456\u0442\u044c. \u041e\u0441\u043e\u0431\u043b\u0438\u0432\u043e\u044e \u043a\u043e\u0448\u0442\u043e\u0432\u043d\u0456\u0441\u0442\u044e \u0444\u043e\u043d\u0434\u0443 \u0441\u0442\u0430\u0440\u043e\u0434\u0440\u0443\u043a\u0456\u0432 \u0454 \u0456\u043d\u043a\u0443\u043d\u0430\u0431\u0443\u043b\u0430, \u0449\u043e \u0441\u043a\u043b\u0430\u0434\u0430\u0454\u0442\u044c\u0441\u044f \u0437 \u0434\u0432\u043e\u0445 \u0432\u0438\u0434\u0430\u043d\u044c - \u0442\u0432\u043e\u0440\u0438 \u0414\u0436\u043e\u0432\u0430\u043d\u043d\u0456 \u0411\u043e\u043a\u043a\u0430\u0447\u0447\u043e \u0442\u0430 \u0421\u0432\u0456\u0442\u043e\u043d\u0456\u044f \u0422\u0440\u0430\u043d\u043a\u0432\u0456\u043b\u043b\u0430 (\u0412\u0435\u043d\u0435\u0446\u0456\u044f, 1497, 1500).\r\n3a. \u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447: \u041d\u0430\u0443\u043a\u043e\u0432\u0430 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 | \u041d\u0430\u0443\u043a\u043e\u0432\u0430 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0456\u043c\u0435\u043d\u0456 \u041c. \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432\u0438\u0447\u0430 | https:\/\/library.knu.ua\/\r\n4a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0440\u0435\u0454\u0441\u0442\u0440: https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%A4%D0%BE%D0%BD%D0%B4%20%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B4%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%85,%20%D1%80%D1%96%D0%B4%D0%BA%D1%96%D1%81%D0%BD%D0%B8%D1%85%20%D1%82%D0%B0%20%D1%86%D1%96%D0%BD%D0%BD%D0%B8%D1%85%20%D0%BA%D0%BD%D0%B8%D0%B6%D0%BA%D0%BE%D0%B2%D0%B8%D1%85%20%D0%B7%D1%96%D0%B1%D1%80%D0%B0%D0%BD%D1%8C%20%D0%9D%D0%B0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D1%97%20%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B8%20%D1%96%D0%BC%D0%B5%D0%BD%D1%96&count=50\r\n5a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u043e\u0432\u0438\u043d\u0430: https:\/\/knu.ua\/news\/11944\r\n6a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f Youtube: https:\/\/www.youtube.com\/watch?v=K9bUmPShPTU\r\n7a. \u041b\u043e\u043a\u0430\u0446\u0456\u044f: \u041a\u0438\u0457\u0432, \u0432\u0443\u043b. \u0412\u043e\u043b\u043e\u0434\u0438\u043c\u0438\u0440\u0441\u044c\u043a\u0430, 58 | https:\/\/maps.app.goo.gl\/6USEqdGbhbzP6jDM6\r\n8a. \u041d\u041f\u0410: \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u041a\u041c\u0423 \u21161206 \u0432\u0456\u0434 10.11.2021 \u0440\u043e\u043a\u0443 | https:\/\/zakon.rada.gov.ua\/laws\/show\/1206-2021-%D0%BF#Text\r\n9a. \u041d\u0430\u043f\u0440\u044f\u043c: \u041e\u0431\u2019\u0454\u043a\u0442\u0438, \u044f\u043a\u0456 \u0432\u0438\u0437\u043d\u0430\u0447\u0430\u044e\u0442\u044c \u0441\u043e\u0446\u0456\u043e\u043a\u0443\u043b\u044c\u0442\u0443\u0440\u043d\u0438\u0439 \u0440\u043e\u0437\u0432\u0438\u0442\u043e\u043a \u043b\u044e\u0434\u0441\u0442\u0432\u0430 \u0456 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u044e\u0442\u044c \u0439\u043e\u0433\u043e \u0434\u0443\u0445\u043e\u0432\u043d\u0456 \u0446\u0456\u043d\u043d\u043e\u0441\u0442\u0456\r\n10a. \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c: \u041d\u0430\u0443\u043a\u043e\u0432\u0456 \u0442\u0430 \u0456\u0441\u0442\u043e\u0440\u0438\u0447\u043d\u0456 \u0444\u043e\u043d\u0434\u0438, \u0440\u0443\u043a\u043e\u043f\u0438\u0441\u0438, \u0441\u0442\u0430\u0440\u043e\u0434\u0440\u0443\u043a\u0438, \u0443\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0456 \u0437\u0456\u0431\u0440\u0430\u043d\u043d\u044f, \u0456\u043d\u0448\u0456 \u043f\u0430\u043c\u2019\u044f\u0442\u043a\u0438 \u0456\u0441\u0442\u043e\u0440\u0456\u0457 \u0442\u0430 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0438\r\n-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\r\n1a. \u041a\u043e\u0440\u043e\u0442\u043a\u0430 \u0442\u0430 \u043f\u043e\u0432\u043d\u0430 \u043d\u0430\u0437\u0432\u0438: \u041a\u043e\u043b\u0435\u043a\u0446\u0456\u044f \u0442\u0440\u043e\u043f\u0456\u0447\u043d\u0438\u0445 \u0456 \u0441\u0443\u0431\u0442\u0440\u043e\u043f\u0456\u0447\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d (\u041a\u043e\u043b\u0435\u043a\u0446\u0456\u044f \u0442\u0440\u043e\u043f\u0456\u0447\u043d\u0438\u0445 \u0456 \u0441\u0443\u0431\u0442\u0440\u043e\u043f\u0456\u0447\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u043e\u0433\u043e \u0441\u0430\u0434\u0443 \u0456\u043c\u0435\u043d\u0456 \u0430\u043a\u0430\u0434\u0435\u043c\u0456\u043a\u0430 \u041e.\u0412. \u0424\u043e\u043c\u0456\u043d\u0430) | greenhouse | flower\r\n2a. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u043f\u0438\u0441: \u0412 \u043a\u043e\u043b\u0435\u043a\u0446\u0456\u0457 \u0437\u0456\u0431\u0440\u0430\u043d\u043e \u043f\u043e\u043d\u0430\u0434 4 200 \u0432\u0438\u0434\u0456\u0432 \u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0456\u0448\u043d\u044c\u043e\u0432\u0438\u0434\u043e\u0432\u0438\u0445 \u0442\u0430\u043a\u0441\u043e\u043d\u0456\u0432 \u0440\u043e\u0441\u043b\u0438\u043d \u0437 \u0443\u0441\u0456\u0445 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442\u0456\u0432 \u043f\u043b\u0430\u043d\u0435\u0442\u0438, \u0449\u043e \u0440\u043e\u0431\u0438\u0442\u044c \u0457\u0457 \u043e\u0434\u043d\u0456\u0454\u044e \u0437 \u043d\u0430\u0439\u0431\u0456\u043b\u044c\u0448\u0438\u0445 \u0432 \u0423\u043a\u0440\u0430\u0457\u043d\u0456. \u0421\u0435\u0440\u0435\u0434 \u043d\u0438\u0445 \u0431\u043b\u0438\u0437\u044c\u043a\u043e 1 000 \u0432\u0438\u0434\u0456\u0432, \u0449\u043e \u0437\u0430\u043d\u0435\u0441\u0435\u043d\u0456 \u0434\u043e \u043c\u0456\u0436\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u0456\u0432 \u0440\u0456\u0434\u043a\u0456\u0441\u043d\u0438\u0445 \u0442\u0430 \u0437\u043d\u0438\u043a\u0430\u044e\u0447\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d.\r\n3a. \u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447: \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u0438\u0439 \u0441\u0430\u0434 | \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u0438\u0439 \u0441\u0430\u0434 \u0456\u043c\u0435\u043d\u0456 \u0430\u043a\u0430\u0434\u0435\u043c\u0456\u043a\u0430 \u041e.\u0412. \u0424\u043e\u043c\u0456\u043d\u0430 | https:\/\/biomed.knu.ua\/institute-activity\/scientific\/conferences\/shevchenko-spring\/sektsiia-zahalna-biolohiia-dlia-shkoliariv\/322-about-the-institute\/botanichnyi-sad-im-akad-o-v-fomina.html\r\n4a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0440\u0435\u0454\u0441\u0442\u0440: https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%9A%D0%BE%D0%BB%D0%B5%D0%BA%D1%86%D1%96%D1%8F%20%D1%82%D1%80%D0%BE%D0%BF%D1%96%D1%87%D0%BD%D0%B8%D1%85%20%D1%96%20%D1%81%D1%83%D0%B1%D1%82%D1%80%D0%BE%D0%BF%D1%96%D1%87%D0%BD%D0%B8%D1%85%20%D1%80%D0%BE%D1%81%D0%BB%D0%B8%D0%BD%20%D0%91%D0%BE%D1%82%D0%B0%D0%BD%D1%96%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B0%D0%B4%D1%83%20%D1%96%D0%BC%D0%B5%D0%BD%D1%96%20%D0%B0%D0%BA%D0%B0%D0%B4%D0%B5%D0%BC%D1%96%D0%BA%D0%B0%20%D0%9E.%D0%92.%20%D0%A4%D0%BE%D0%BC%D1%96%D0%BD%D0%B0&count=50\r\n5a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u043e\u0432\u0438\u043d\u0430: https:\/\/google.com\r\n6a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f Youtube: https:\/\/www.youtube.com\/watch?v=vLNk7pL_GxM\r\n7a. \u041b\u043e\u043a\u0430\u0446\u0456\u044f: \u041a\u0438\u0457\u0432, \u0432\u0443\u043b. \u0421. \u041f\u0435\u0442\u043b\u044e\u0440\u0438, 1 | https:\/\/maps.app.goo.gl\/yKiM8HA16khozWP1A\r\n8a. \u041d\u041f\u0410: \u0420\u043e\u0437\u043f\u043e\u0440\u044f\u0434\u0436\u0435\u043d\u043d\u044f \u041a\u041f\u0423 \u211659-\u0440 \u0432\u0456\u0434 28.01.2015 \u0440\u043e\u043a\u0443 | https:\/\/zakon.rada.gov.ua\/laws\/show\/59-2015-%D1%80#Text\r\n9a. \u041d\u0430\u043f\u0440\u044f\u043c: \u041e\u0431\u2019\u0454\u043a\u0442\u0438, \u0449\u043e \u0437\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0443\u044e\u0442\u044c \u0440\u043e\u0437\u0432\u0438\u0442\u043e\u043a \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0438\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u044c \u0456 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0431\u0456\u043e\u0440\u0456\u0437\u043d\u043e\u043c\u0430\u043d\u0456\u0442\u0442\u044f\r\n10a. \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c: \u041a\u043e\u043b\u0435\u043a\u0446\u0456\u0457 \u043d\u0435\u0436\u0438\u0432\u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0456\u0437\u043c\u0456\u0432 \u0442\u0430 \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0456 \u043c\u0443\u0437\u0435\u0439\u043d\u0456 \u0444\u043e\u043d\u0434\u0438\r\n-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\r\n1a. \u041a\u043e\u0440\u043e\u0442\u043a\u0430 \u0442\u0430 \u043f\u043e\u0432\u043d\u0430 \u043d\u0430\u0437\u0432\u0438: \u041a\u043e\u043b\u0435\u043a\u0446\u0456\u044f \u0434\u0435\u0440\u0435\u0432\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d (\u041a\u043e\u043b\u0435\u043a\u0446\u0456\u044f \u0434\u0435\u0440\u0435\u0432\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u043e\u0433\u043e \u0441\u0430\u0434\u0443 \u0456\u043c. \u0430\u043a\u0430\u0434. \u041e.\u0412. \u0424\u043e\u043c\u0456\u043d\u0430 \u043d\u0430\u0432\u0447\u0430\u043b\u044c\u043d\u043e-\u043d\u0430\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0446\u0435\u043d\u0442\u0440\u0443 \u0406\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u0431\u0456\u043e\u043b\u043e\u0433\u0456\u0457 \u0442\u0430 \u043c\u0435\u0434\u0438\u0446\u0438\u043d\u0438) | greenhouse | trees\r\n2a. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u043f\u0438\u0441: \u041a\u043e\u043b\u0435\u043a\u0446\u0456\u044f \u0444\u043e\u0440\u043c\u0443\u0432\u0430\u043b\u0430\u0441\u044f \u0432\u043f\u0440\u043e\u0434\u043e\u0432\u0436 180 \u0440\u043e\u043a\u0456\u0432 \u0456 \u043d\u0438\u043d\u0456 \u043d\u0430\u0440\u0430\u0445\u043e\u0432\u0443\u0454 2 250 \u0442\u0430\u043a\u0441\u043e\u043d\u0438 (\u0432\u0438\u0434\u0438, \u0440\u0456\u0437\u043d\u043e\u0432\u0438\u0434\u0438, \u0444\u043e\u0440\u043c\u0438 \u0442\u0430 \u0441\u043e\u0440\u0442\u0438) \u0434\u0435\u0440\u0435\u0432\u043d\u0438\u0445 \u0440\u043e\u0441\u043b\u0438\u043d, \u0449\u043e \u043d\u0430\u043b\u0435\u0436\u0430\u0442\u044c \u0434\u043e \u043f\u2019\u044f\u0442\u0438 \u043a\u043b\u0430\u0441\u0456\u0432 \u0442\u0430 \u043c\u0430\u0439\u0436\u0435 220-\u0442\u0438 \u0440\u043e\u0434\u0456\u0432, \u044f\u043a\u0456 \u043f\u043e\u0445\u043e\u0434\u044f\u0442\u044c \u0437 \u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u043e\u0433\u043e, \u0410\u0437\u0456\u0439\u0441\u044c\u043a\u043e\u0433\u043e \u0442\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442\u0456\u0432 \u0442\u0430 \u0454 \u043d\u0430\u0439\u0431\u0456\u043b\u044c\u0448\u043e\u044e \u0434\u0435\u043d\u0434\u0440\u043e\u043b\u043e\u0433\u0456\u0447\u043d\u043e\u044e \u043a\u043e\u043b\u0435\u043a\u0446\u0456\u0454\u044e \u0432 \u0423\u043a\u0440\u0430\u0457\u043d\u0456.\r\n3a. \u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447: \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u0438\u0439 \u0441\u0430\u0434 | \u0411\u043e\u0442\u0430\u043d\u0456\u0447\u043d\u0438\u0439 \u0441\u0430\u0434 \u0456\u043c\u0435\u043d\u0456 \u0430\u043a\u0430\u0434\u0435\u043c\u0456\u043a\u0430 \u041e.\u0412. \u0424\u043e\u043c\u0456\u043d\u0430 | https:\/\/biomed.knu.ua\/institute-activity\/scientific\/conferences\/shevchenko-spring\/sektsiia-zahalna-biolohiia-dlia-shkoliariv\/322-about-the-institute\/botanichnyi-sad-im-akad-o-v-fomina.html\r\n4a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0440\u0435\u0454\u0441\u0442\u0440: https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%9A%D0%BE%D0%BB%D0%B5%D0%BA%D1%86%D1%96%D1%8F%20%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BD%D0%B8%D1%85%20%D1%80%D0%BE%D1%81%D0%BB%D0%B8%D0%BD%20%D0%91%D0%BE%D1%82%D0%B0%D0%BD%D1%96%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B0%D0%B4%D1%83%20%D1%96%D0%BC.%20%D0%B0%D0%BA%D0%B0%D0%B4.%20%D0%9E.%D0%92.%20%D0%A4%D0%BE%D0%BC%D1%96%D0%BD%D0%B0%20%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE-%D0%BD%D0%B0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%20%D1%86%D0%B5%D0%BD%D1%82%D1%80%D1%83&count=50\r\n5a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u043e\u0432\u0438\u043d\u0430: https:\/\/knu.ua\/news\/11944\r\n6a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f Youtube: https:\/\/www.youtube.com\/watch?v=vLNk7pL_GxM\r\n7a. \u041b\u043e\u043a\u0430\u0446\u0456\u044f: \u041a\u0438\u0457\u0432, \u0432\u0443\u043b. \u0421. \u041f\u0435\u0442\u043b\u044e\u0440\u0438, 1 | https:\/\/maps.app.goo.gl\/yKiM8HA16khozWP1A\r\n8a. \u041d\u041f\u0410: \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u041a\u041c\u0423 \u21161206 \u0432\u0456\u0434 10.11.2021 \u0440\u043e\u043a\u0443 | https:\/\/zakon.rada.gov.ua\/laws\/show\/1206-2021-%D0%BF#Text\r\n9a. \u041d\u0430\u043f\u0440\u044f\u043c: \u041e\u0431\u2019\u0454\u043a\u0442\u0438, \u0449\u043e \u0437\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0443\u044e\u0442\u044c \u0440\u043e\u0437\u0432\u0438\u0442\u043e\u043a \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0438\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u044c \u0456 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0431\u0456\u043e\u0440\u0456\u0437\u043d\u043e\u043c\u0430\u043d\u0456\u0442\u0442\u044f\r\n10a. \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c: \u041f\u0440\u0438\u0440\u043e\u0434\u043d\u0438\u0447\u0456 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u0438, \u043f\u0440\u0438\u0440\u043e\u0434\u043d\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457 \u0442\u0430 \u043e\u0431\u2019\u0454\u043a\u0442\u0438\r\n-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\r\n1a. \u041a\u043e\u0440\u043e\u0442\u043a\u0430 \u0442\u0430 \u043f\u043e\u0432\u043d\u0430 \u043d\u0430\u0437\u0432\u0438: \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u043e\u043d\u044f\u0447\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0441\u043a\u043e\u043f (\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u0441\u043e\u043d\u044f\u0447\u043d\u0438\u0439 \u0442\u0435\u043b\u0435\u0441\u043a\u043e\u043f \u0410\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u043e\u0457 \u043e\u0431\u0441\u0435\u0440\u0432\u0430\u0442\u043e\u0440\u0456\u0457) | telescope | telescope\r\n2a. \u041a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043e\u043f\u0438\u0441: \u0423\u043d\u0456\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u043d\u0430\u0443\u043a\u043e\u0432\u0438\u0439 \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043d\u0430 \u044f\u043a\u043e\u043c\u0443 \u0437 1950-\u0445 \u0440\u043e\u043a\u0456\u0432 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u043d\u044f \u0437 \u0444\u0456\u0437\u0438\u043a\u0438 \u0421\u043e\u043d\u0446\u044f \u0442\u0430 \u0441\u043e\u043d\u044f\u0447\u043d\u043e\u0457 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0456. \u0413\u0421\u0422 \u0410\u041e \u0423\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0443 \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u0438\u0439 \u0435\u0448\u0435\u043b\u044c\u043d\u0438\u043c \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0433\u0440\u0430\u0444\u043e\u043c, \u044f\u043a\u0438\u0439 \u0434\u043e\u0437\u0432\u043e\u043b\u044f\u0454 \u043e\u0434\u043d\u043e\u0447\u0430\u0441\u043d\u043e \u0440\u0435\u0454\u0441\u0442\u0440\u0443\u0432\u0430\u0442\u0438 \u0441\u043f\u0435\u043a\u0442\u0440 \u043c\u0430\u0439\u0436\u0435 \u0432\u0441\u0456\u0454\u0457 \u0432\u0438\u0434\u0438\u043c\u043e\u0457 \u043e\u0431\u043b\u0430\u0441\u0442\u0456 \u0421\u043e\u043d\u0446\u044f.\r\n3a. \u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447: \u041e\u0431\u0441\u0435\u0440\u0432\u0430\u0442\u043e\u0440\u0456\u044f | \u0410\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u0430 \u043e\u0431\u0441\u0435\u0440\u0432\u0430\u0442\u043e\u0440\u0456\u044f | https:\/\/observ.knu.ua\/obs\/\r\n4a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0440\u0435\u0454\u0441\u0442\u0440: https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%93%D0%BE%D1%80%D0%B8%D0%B7%D0%BE%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%B9%20%D1%81%D0%BE%D0%BD%D1%8F%D1%87%D0%BD%D0%B8%D0%B9%20%D1%82%D0%B5%D0%BB%D0%B5%D1%81%D0%BA%D0%BE%D0%BF%20%D0%90%D1%81%D1%82%D1%80%D0%BE%D0%BD%D0%BE%D0%BC%D1%96%D1%87%D0%BD%D0%BE%D1%97&count=50\r\n5a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u043e\u0432\u0438\u043d\u0430: https:\/\/knu.ua\/news\/11944\r\n6a. \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f Youtube: https:\/\/www.youtube.com\/watch?v=vhlukTIOf5c\r\n7a. \u041b\u043e\u043a\u0430\u0446\u0456\u044f: \u041a\u0438\u0457\u0432, \u0432\u0443\u043b. \u041e\u0431\u0441\u0435\u0440\u0432\u0430\u0442\u043e\u0440\u043d\u0430, 3 | https:\/\/maps.app.goo.gl\/XAqcEGDJTQZMvqcf8\r\n8a. \u041d\u041f\u0410: \u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 \u041a\u041c\u0423 \u21161206 \u0432\u0456\u0434 10.11.2021 \u0440\u043e\u043a\u0443 | https:\/\/zakon.rada.gov.ua\/laws\/show\/1206-2021-%D0%BF#Text\r\n9a. \u041d\u0430\u043f\u0440\u044f\u043c: \u041e\u0431\u2019\u0454\u043a\u0442\u0438, \u044f\u043a\u0456 \u0441\u043f\u0440\u0438\u044f\u044e\u0442\u044c \u0440\u043e\u0437\u0432\u0438\u0442\u043a\u0443 \u041d\u0430\u0443\u043a\u043e\u0432\u043e-\u0442\u0435\u0445\u043d\u0456\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0443\r\n10a. \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c: \u0410\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u0456 \u0442\u0430 \u0440\u0430\u0434\u0456\u043e\u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0456\u0447\u043d\u0456 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u0438 \u0437\u043e\u043d\u0434\u0443\u0432\u0430\u043d\u043d\u044f\r\n=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=\/=[2]\r\n<\/div>\r\n<script>\r\n    \/\/ ==========================================\r\n    \/\/ DATA CONFIGURATION\r\n    \/\/ ==========================================\r\n    const generalRegistryUrl = \"https:\/\/registry.nauka.gov.ua\/registry\/natcnadbania\/search\/?q=%D0%9A%D0%B8%D1%97%D0%B2%D1%81%D1%8C%D0%BA%D0%B8%D0%B9%20%D0%BD%D0%B0%D1%86%D1%96%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%B9%20%D1%83%D0%BD%D1%96%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82%20%D1%96%D0%BC%D0%B5%D0%BD%D1%96%20%D0%A2%D0%B0%D1%80%D0%B0%D1%81%D0%B0%20%D0%A8%D0%B5%D0%B2%D1%87%D0%B5%D0%BD%D0%BA%D0%B0&count=50\";\r\n    const modelsDB = {\r\n        \"main\": {\r\n            url: \"https:\/\/nd4s.github.io\/science_knu_ua_new_files\/3d_models\/comp_tsnuk.glb\",\r\n            photos:[\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_korpus.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_korpus_2.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_korpus_3.png\"\r\n            ],\r\n            orbit: \"-90deg 65deg 105%\" \r\n        },\r\n        \"kaniv\": {\r\n            url: \"https:\/\/nd4s.github.io\/science_knu_ua_new_files\/3d_models\/comp_kaniv.glb\",\r\n            photos:[\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_kaniv.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_kaniv_2.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_kaniv_3.png\"\r\n            ],\r\n            orbit: \"150deg 65deg 105%\"\r\n        },\r\n        \"library\": {\r\n            url: \"https:\/\/nd4s.github.io\/science_knu_ua_new_files\/3d_models\/comp_starodruk.glb\",\r\n            photos:[\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/03\/foto_starodruk.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/03\/foto_starodruk_2.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/03\/foto_starodruk_3.png\"\r\n            ],\r\n            orbit: \"-30deg 65deg 105%\"\r\n        },\r\n        \"greenhouse\": {\r\n            url: \"https:\/\/nd4s.github.io\/science_knu_ua_new_files\/3d_models\/comp_greenhouse.glb\",\r\n            photos:[\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_oranzhereya.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_oranzhereya_2.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_oranzhereya_3.png\"\r\n            ],\r\n            orbit: \"-30deg 65deg 105%\"\r\n        },\r\n        \"telescope\": {\r\n            url: \"https:\/\/nd4s.github.io\/science_knu_ua_new_files\/3d_models\/comp_telescope.glb\",\r\n            photos:[\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_teleskop.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_teleskop_2.png\",\r\n                \"https:\/\/science.knu.ua\/new\/wp-content\/uploads\/2026\/02\/foto_teleskop_3.png\"\r\n            ],\r\n            orbit: \"-30deg 65deg 105%\"\r\n        }\r\n    };\r\n    \/\/ --- PARSER FUNCTION ---\r\n    function parseHeritageItems() {\r\n        const rawEl = document.getElementById('heritage-data-source');\r\n        if (!rawEl) return[];\r\n        let content = rawEl.innerText.trim();\r\n        content = content.replace(\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\\/=\\[\\d+\\]\/g, '');\r\n        const itemsArr = content.split('-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-');\r\n        return itemsArr.map((itemStr, index) => {\r\n            const lines = itemStr.split('\\n').filter(l => l.trim() !== '');\r\n            if (lines.length < 5) return null;\r\n            const obj = { id: index + 2 }; \r\n            const getValue = (prefix) => {\r\n                const line = lines.find(l => l.trim().startsWith(prefix));\r\n                if (!line) return '';\r\n                const parts = line.split(':');\r\n                if (parts.length < 2) return '';\r\n                return parts.slice(1).join(':').trim();\r\n            };\r\n            const line1 = getValue('1a.');\r\n            const parts1 = line1.split('|');\r\n            const titlePart = parts1[0].trim();\r\n            const titleMatch = titlePart.match(\/^(.*?)\\s*\\((.*)\\)$\/);\r\n            if (titleMatch) {\r\n                obj.shortTitle = titleMatch[1].trim();\r\n                obj.title = titleMatch[2].trim();\r\n            } else {\r\n                obj.shortTitle = titlePart;\r\n                obj.title = titlePart;\r\n            }\r\n            obj.modelId = parts1[1] ? parts1[1].trim() : '';\r\n            obj.icon = parts1[2] ? parts1[2].trim() : 'box';\r\n            obj.description = getValue('2a.');\r\n            const holderRaw = getValue('3a.');\r\n            const holderParts = holderRaw.split('|');\r\n            obj.holderShort = holderParts[0] ? holderParts[0].trim() : '';\r\n            obj.holderFull = holderParts[1] ? holderParts[1].trim() : obj.holderShort;\r\n            obj.holderUrl = holderParts[2] ? holderParts[2].trim() : '#';\r\n            obj.url = getValue('4a.');\r\n            obj.newsUrl = getValue('5a.');\r\n            const ytUrl = getValue('6a.');\r\n            const ytMatch = ytUrl.match(\/(?:v=|\\\/)([0-9A-Za-z_-]{11})\/);\r\n            obj.youtubeId = ytMatch ? ytMatch[1] : '';\r\n            const locRaw = getValue('7a.');\r\n            const locParts = locRaw.split('|');\r\n            obj.location = locParts[0].trim();\r\n            obj.locUrl = locParts[1] ? locParts[1].trim() : '#';\r\n            const npaRaw = getValue('8a.');\r\n            const npaParts = npaRaw.split('|');\r\n            obj.npa = npaParts[0].trim();\r\n            obj.npaUrl = npaParts[1] ? npaParts[1].trim() : '#';\r\n            obj.topic = getValue('9a.');\r\n            obj.subtopic = getValue('10a.');\r\n            return obj;\r\n        }).filter(x => x !== null);\r\n    }\r\n    const heritageItems = parseHeritageItems();\r\n    \/\/ ==========================================\r\n    \/\/ LOGIC & RENDERING\r\n    \/\/ ==========================================\r\n    const masonryContainer = document.getElementById('masonryContainer');\r\n    const searchInput = document.getElementById('searchInput');\r\n    function getOrbitalLimits(orbitString) {\r\n        if(!orbitString) return { min: '-30deg 50deg auto', max: '110deg 100deg auto' };\r\n        const parts = orbitString.split(' ');\r\n        const theta = parseFloat(parts[0]); \r\n        const range = 75; \r\n        return {\r\n            min: `${theta - range}deg 50deg auto`,\r\n            max: `${theta + range}deg 100deg auto`\r\n        };\r\n    }\r\n    function initHero() {\r\n        const heroData = modelsDB['main'];\r\n        if (heroData) {\r\n            const mv = document.getElementById('hero-model');\r\n            const img = document.getElementById('hero-photo');\r\n            if (mv) {\r\n                const limits = getOrbitalLimits(heroData.orbit);\r\n                mv.src = heroData.url;\r\n                mv.cameraOrbit = heroData.orbit;\r\n                mv.minCameraOrbit = limits.min;\r\n                mv.maxCameraOrbit = limits.max;\r\n                mv.dataset.defaultOrbit = heroData.orbit;\r\n            }\r\n            if (img && heroData.photos && heroData.photos.length > 0) {\r\n                img.src = heroData.photos[0];\r\n                const vcPhoto = img.closest('.vc-photo');\r\n                if (vcPhoto) {\r\n                    vcPhoto.setAttribute('data-photos', JSON.stringify(heroData.photos));\r\n                }\r\n            }\r\n        }\r\n    }\r\n    function renderBoard(filterText = '') {\r\n        masonryContainer.innerHTML = '';\r\n        const colCount = window.innerWidth > 850 ? 2 : 1;\r\n        const columns =[];\r\n        for(let i=0; i<colCount; i++) {\r\n            const col = document.createElement('div');\r\n            col.className = 'masonry-col';\r\n            masonryContainer.appendChild(col);\r\n            columns.push({ element: col, currentHeight: 0 });\r\n        }\r\n        const lowerFilter = filterText.toLowerCase();\r\n        const filtered = heritageItems.filter(item => \r\n            item.title.toLowerCase().includes(lowerFilter) || \r\n            item.description.toLowerCase().includes(lowerFilter) ||\r\n            item.topic.toLowerCase().includes(lowerFilter)\r\n        );\r\n        if(filtered.length === 0) {\r\n            columns[0].element.innerHTML = `<div style=\"color:#888; font-size:1.5rem;\">\u041d\u0456\u0447\u043e\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e.<\/div>`;\r\n            return;\r\n        }\r\n        const grouped = {};\r\n        filtered.forEach(item => {\r\n            const key = item.modelId ? item.modelId : `nomodel_${item.id}`;\r\n            if(!grouped[key]) grouped[key] =[];\r\n            grouped[key].push(item);\r\n        });\r\n        const cardObjects = Object.keys(grouped).map(key => {\r\n            const items = grouped[key];\r\n            const hasModel = (items[0].modelId && modelsDB[items[0].modelId]);\r\n            let modelData = hasModel ? modelsDB[items[0].modelId] : null;\r\n            let itemsHtml = '';\r\n            items.forEach((item, index) => {\r\n                const isFirst = index === 0;\r\n                let visualHtml = '';\r\n                if (isFirst && hasModel) {\r\n                    const limits = getOrbitalLimits(modelData.orbit);\r\n                    const mvTemplate = `\r\n                        <model-viewer \r\n                            class=\"interactive-3d\"\r\n                            src=\"${modelData.url}\" \r\n                            camera-controls disable-zoom disable-pan\r\n                            interaction-prompt=\"none\" interpolation-decay=\"200\"\r\n                            camera-orbit=\"${modelData.orbit}\" \r\n                            min-camera-orbit=\"${limits.min}\" max-camera-orbit=\"${limits.max}\"\r\n                            shadow-intensity=\"1\" field-of-view=\"25deg\" environment-image=\"neutral\"\r\n                            data-default-orbit=\"${modelData.orbit}\"\r\n                        ><\/model-viewer>\r\n                    `;\r\n                    if(modelData.photos && modelData.photos.length > 0) {\r\n                        const photosEscaped = JSON.stringify(modelData.photos).replace(\/\"\/g, \"&quot;\");\r\n                        visualHtml = `\r\n                            <div class=\"visual-group\">\r\n                                <div class=\"visual-hint hint-3d\"><i data-lucide=\"box\"><\/i> 3D<\/div>\r\n                                <div class=\"visual-hint hint-photo\"><i data-lucide=\"camera\"><\/i> \u0424\u043e\u0442\u043e<\/div>\r\n                                <div class=\"visual-circle vc-3d\">\r\n                                    ${mvTemplate}\r\n                                <\/div>\r\n                                <div class=\"visual-circle vc-photo\" onclick=\"cyclePhoto(this)\" data-index=\"0\" data-photos=\"${photosEscaped}\">\r\n                                    <img decoding=\"async\" class=\"base-img\" src=\"${modelData.photos[0]}\" alt=\"Real Photo\">\r\n                                    <div class=\"photo-hint-icon\"><i data-lucide=\"mouse-pointer-click\"><\/i><\/div>\r\n                                <\/div>\r\n                            <\/div>`;\r\n                    } else {\r\n                        visualHtml = `\r\n                            <div class=\"visual-group\">\r\n                                <div class=\"visual-circle vc-centered\">\r\n                                    ${mvTemplate}\r\n                                <\/div>\r\n                            <\/div>`;\r\n                    }\r\n                }\r\n                \/\/ Description truncation logic with totally smooth grid animation and overlay\r\n                let descHtml = '';\r\n                const descLimit = 300;\r\n                if (item.description.length > descLimit) {\r\n                    let breakPoint = item.description.lastIndexOf(' ', descLimit);\r\n                    if (breakPoint === -1) breakPoint = descLimit;\r\n                    const visibleText = item.description.substring(0, breakPoint);\r\n                    const hiddenText = item.description.substring(breakPoint);\r\n                    descHtml = `\r\n                        <div class=\"item-desc-wrapper\">\r\n                            <div class=\"item-desc\" id=\"desc-${item.id}\">\r\n                                <span class=\"desc-visible\">${visibleText}<\/span>\r\n                                <div class=\"text-dropdown-wrapper\" id=\"hidden-desc-wrapper-${item.id}\">\r\n                                    <div class=\"text-dropdown-inner\">\r\n                                        <span class=\"desc-hidden\">${hiddenText}<\/span><span style=\"display:inline-block; width: 40px; height: 1px;\"><\/span>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div class=\"text-toggle-overlay\" id=\"overlay-${item.id}\">\r\n                                <button class=\"icon-toggle-btn\" onclick=\"toggleDesc('${item.id}')\" id=\"btn-desc-${item.id}\" data-state=\"collapsed\" title=\"\u0427\u0438\u0442\u0430\u0442\u0438 \u0434\u0430\u043b\u0456\">\r\n                                    <i data-lucide=\"chevron-down\"><\/i>\r\n                                <\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    `;\r\n                } else {\r\n                    descHtml = `<div class=\"item-desc-wrapper\"><div class=\"item-desc\">${item.description}<\/div><\/div>`;\r\n                }\r\n                \/\/ Dynamic Expanding Extra Details Structure\r\n                const detailsHtml = `\r\n                    <div class=\"info-row half\">\r\n                        <span class=\"info-label\">\u0423\u0442\u0440\u0438\u043c\u0443\u0432\u0430\u0447:<\/span>\r\n                        <div class=\"holder-wrapper\">\r\n                            <a href=\"${item.holderUrl}\" target=\"_blank\" class=\"info-val info-link holder-short\">${item.holderShort}<\/a>\r\n                            <div class=\"holder-full\">${item.holderFull}<\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                    <div class=\"info-row half\"><span class=\"info-label\">\u041c\u0456\u0441\u0446\u0435:<\/span><a href=\"${item.locUrl}\" target=\"_blank\" class=\"info-val info-link\">${item.location}<\/a><\/div>\r\n                    <div style=\"display: flex; align-items: center; width: 100%; transition: gap 0.3s ease;\" id=\"npa-container-${item.id}\" class=\"toggle-container\">\r\n                        <div class=\"info-row full\" style=\"flex: 1; min-width: 0;\">\r\n                            <span class=\"info-label\">\u041d\u041f\u0410 \/ \u0432\u0456\u0434 \u043a\u043e\u043b\u0438 \u0441\u0442\u0430\u0442\u0443\u0441:<\/span><a href=\"${item.npaUrl}\" target=\"_blank\" class=\"info-val info-link\">${item.npa}<\/a>\r\n                        <\/div>\r\n                        <div class=\"toggle-btn-wrap col-btn-wrap\">\r\n                            <button class=\"icon-toggle-btn\" onclick=\"toggleDetails('${item.id}')\" id=\"btn-col-${item.id}\" data-state=\"collapsed\" title=\"\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456 \u0432\u0456\u0434\u043e\u043c\u043e\u0441\u0442\u0456\">\r\n                                <i data-lucide=\"chevron-down\"><\/i>\r\n                            <\/button>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n                let youtubeButton = '';\r\n                if (item.youtubeId) {\r\n                    youtubeButton = `\r\n                        <button class=\"btn-action youtube-btn\" onclick=\"openCardVideo('${item.id}', '${item.youtubeId}')\">\r\n                            <i data-lucide=\"youtube\" width=\"16\"><\/i> Youtube\r\n                        <\/button>\r\n                    `;\r\n                }\r\n                \/\/ Compile QR Array dynamically\r\n                let qrDataArr =[{ title: '\u0420\u0435\u0454\u0441\u0442\u0440', url: item.url }];\r\n                if (item.newsUrl) qrDataArr.push({ title: '\u041d\u043e\u0432\u0438\u043d\u0430', url: item.newsUrl });\r\n                if (item.youtubeId) qrDataArr.push({ title: 'Youtube', url: `https:\/\/www.youtube.com\/watch?v=${item.youtubeId}` });\r\n                const qrDataStr = JSON.stringify(qrDataArr).replace(\/\"\/g, '&quot;');\r\n                itemsHtml += `\r\n                    <div class=\"sub-item\" id=\"item-${item.id}\">\r\n                        <div class=\"connector-line\"><\/div>\r\n                        <div class=\"card-primary-content\" id=\"primary-${item.id}\">\r\n                            <div class=\"item-top-split\">\r\n                                ${visualHtml}\r\n                                <div class=\"item-text-content\">\r\n                                    <div class=\"sub-header\">\r\n                                        <div class=\"item-icon-circle\">\r\n                                            <i data-lucide=\"${item.icon}\"><\/i>\r\n                                        <\/div>\r\n                                        <div class=\"title-wrapper\">\r\n                                            <h3 class=\"item-title-short\">${item.shortTitle}<\/h3>\r\n                                            <div class=\"item-title-full\">${item.title}<\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                    ${descHtml}\r\n                                <\/div>\r\n                            <\/div>\r\n                            <div class=\"item-full-details\">\r\n                                <div class=\"details-box\" style=\"margin-bottom: 0;\">${detailsHtml}<\/div>\r\n                                <div id=\"extra-details-${item.id}\" class=\"extra-details-wrapper\">\r\n                                    <div class=\"extra-details-inner\" style=\"padding-top: 0.8rem;\">\r\n                                        <div class=\"details-box\" style=\"margin-bottom: 0;\">\r\n                                            <div class=\"info-row full\"><span class=\"info-label\">\u041d\u0430\u043f\u0440\u044f\u043c:<\/span><span class=\"info-val\" style=\"text-align: right;\">${item.topic}<\/span><\/div>\r\n                                            <div style=\"display: flex; align-items: center; width: 100%; transition: gap 0.3s ease;\" id=\"sub-container-${item.id}\" class=\"toggle-container exp-inactive\">\r\n                                                <div class=\"info-row full\" style=\"flex: 1; min-width: 0;\">\r\n                                                    <span class=\"info-label\">\u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c:<\/span><span class=\"info-val\" style=\"text-align: right;\">${item.subtopic}<\/span>\r\n                                                <\/div>\r\n                                                <div class=\"toggle-btn-wrap exp-btn-wrap\">\r\n                                                    <button class=\"icon-toggle-btn\" onclick=\"toggleDetails('${item.id}')\" id=\"btn-exp-${item.id}\" data-state=\"collapsed\" title=\"\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438\">\r\n                                                        <i data-lucide=\"chevron-down\"><\/i>\r\n                                                    <\/button>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                                <div class=\"action-row\">\r\n                                    <a href=\"${item.url}\" target=\"_blank\" class=\"btn-action primary\">\r\n                                        <i data-lucide=\"external-link\" width=\"16\"><\/i> \u0420\u0435\u0454\u0441\u0442\u0440\r\n                                    <\/a>\r\n                                    <a href=\"${item.newsUrl}\" target=\"_blank\" class=\"btn-action news-btn\">\r\n                                        <i data-lucide=\"newspaper\" width=\"16\"><\/i> \u041d\u043e\u0432\u0438\u043d\u0430\r\n                                    <\/a>\r\n                                    ${youtubeButton}\r\n                                    <!-- LOCAL QR CONTAINER AND POPUP -->\r\n                                    <div class=\"qr-btn-container\">\r\n                                        <button class=\"btn-action secondary\" onclick=\"toggleCardQR('qr-${item.id}')\">\r\n                                            <i data-lucide=\"qr-code\" width=\"16\"><\/i> QR\r\n                                        <\/button>\r\n                                        <div id=\"qr-${item.id}\" class=\"qr-popup\" data-qr='${qrDataStr}' data-current=\"0\">\r\n                                            <button class=\"close-card-qr-btn\" onclick=\"toggleCardQR('qr-${item.id}')\" aria-label=\"\u0417\u0430\u043a\u0440\u0438\u0442\u0438\">\r\n                                                <i data-lucide=\"x\"><\/i>\r\n                                            <\/button>\r\n                                            <div class=\"qr-header\">\r\n                                                <div class=\"qr-arrow left\" onclick=\"switchQR('qr-${item.id}', -1)\">\r\n                                                    <i data-lucide=\"chevron-left\"><\/i>\r\n                                                <\/div>\r\n                                                <span class=\"qr-title\" id=\"title-qr-${item.id}\">\u0420\u0435\u0454\u0441\u0442\u0440<\/span>\r\n                                                <div class=\"qr-arrow right\" onclick=\"switchQR('qr-${item.id}', 1)\">\r\n                                                    <i data-lucide=\"chevron-right\"><\/i>\r\n                                                <\/div>\r\n                                            <\/div>\r\n                                            <div id=\"canvas-qr-${item.id}\" class=\"qr-canvas-container\"><\/div>\r\n                                        <\/div>\r\n                                    <\/div>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n                        <!-- \u0412\u0456\u0434\u0435\u043e\u043f\u043b\u0435\u0454\u0440 (\u0437\u0430 \u0437\u0430\u043c\u043e\u0432\u0447\u0443\u0432\u0430\u043d\u043d\u044f\u043c \u043f\u0440\u0438\u0445\u043e\u0432\u0430\u043d\u0438\u0439) -->\r\n                        <div class=\"card-video-content\" id=\"video-${item.id}\">\r\n                            <div class=\"video-header-bar\">\r\n                                <div class=\"item-icon-circle\" style=\"width: 45px; height: 45px; margin: 0; box-shadow: none; border: 2px solid #fff;\">\r\n                                    <i data-lucide=\"${item.icon}\" style=\"width: 24px; height: 24px;\"><\/i>\r\n                                <\/div>\r\n                                <h3 style=\"flex: 1; margin: 0; text-align: left; font-size: 1.3rem; font-weight: 700;\">${item.shortTitle}<\/h3>\r\n                                <button class=\"btn-action secondary\" onclick=\"closeCardVideo('${item.id}')\" style=\"padding: 8px 12px; flex: none;\">\r\n                                    <i data-lucide=\"arrow-left\" width=\"16\"><\/i> \u041d\u0430\u0437\u0430\u0434\r\n                                <\/button>\r\n                            <\/div>\r\n                            <div class=\"video-responsive-wrapper\">\r\n                                <iframe id=\"iframe-${item.id}\" src=\"\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                `;\r\n            });\r\n            const cardEl = document.createElement('div');\r\n            cardEl.className = 'heritage-card';\r\n            cardEl.innerHTML = itemsHtml;\r\n            const weight = 50 + (hasModel ? 180 : 0) + (items.length * 420); \r\n            return { element: cardEl, weight: weight };\r\n        });\r\n        cardObjects.sort((a, b) => b.weight - a.weight);\r\n        cardObjects.forEach(cardObj => {\r\n            columns.sort((colA, colB) => colA.currentHeight - colB.currentHeight);\r\n            const target = columns[0];\r\n            target.element.appendChild(cardObj.element);\r\n            target.currentHeight += cardObj.weight;\r\n        });\r\n        lucide.createIcons();\r\n        initPhotoInteractions();\r\n    }\r\n    \/\/ ==========================================\r\n    \/\/ EVENTS & INTERACTIONS\r\n    \/\/ ==========================================\r\n    \/\/ Toggle Description Function with Smooth Grid Expansion\r\n    window.toggleDesc = function(id) {\r\n        const hiddenWrapper = document.getElementById(`hidden-desc-wrapper-${id}`);\r\n        const overlay = document.getElementById(`overlay-${id}`);\r\n        const btn = document.getElementById(`btn-desc-${id}`);\r\n        if (!hiddenWrapper || !btn) return;\r\n        if (btn.dataset.state === 'collapsed') {\r\n            hiddenWrapper.classList.add('expanded');\r\n            overlay.classList.add('expanded-overlay');\r\n            btn.dataset.state = 'expanded';\r\n            btn.title = '\u0417\u0433\u043e\u0440\u043d\u0443\u0442\u0438';\r\n        } else {\r\n            hiddenWrapper.classList.remove('expanded');\r\n            overlay.classList.remove('expanded-overlay');\r\n            btn.dataset.state = 'collapsed';\r\n            btn.title = '\u0427\u0438\u0442\u0430\u0442\u0438 \u0434\u0430\u043b\u0456';\r\n        }\r\n    }\r\n    \/\/ Toggle Extra Details (\u041d\u0430\u043f\u0440\u044f\u043c \/ \u041f\u0456\u0434\u043d\u0430\u043f\u0440\u044f\u043c) Function\r\n    window.toggleDetails = function(id) {\r\n        const extra = document.getElementById(`extra-details-${id}`);\r\n        const npaCont = document.getElementById(`npa-container-${id}`);\r\n        const subCont = document.getElementById(`sub-container-${id}`);\r\n        const btnCol = document.getElementById(`btn-col-${id}`);\r\n        const btnExp = document.getElementById(`btn-exp-${id}`);\r\n        if (!extra || !btnCol) return;\r\n        const isExpanded = extra.classList.contains('expanded');\r\n        if (isExpanded) {\r\n            extra.classList.remove('expanded');\r\n            npaCont.classList.remove('col-inactive');\r\n            subCont.classList.add('exp-inactive');\r\n            btnCol.dataset.state = 'collapsed';\r\n            if(btnExp) btnExp.dataset.state = 'collapsed';\r\n            btnCol.title = '\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0456 \u0432\u0456\u0434\u043e\u043c\u043e\u0441\u0442\u0456';\r\n        } else {\r\n            extra.classList.add('expanded');\r\n            npaCont.classList.add('col-inactive');\r\n            subCont.classList.remove('exp-inactive');\r\n            btnCol.dataset.state = 'expanded';\r\n            if(btnExp) btnExp.dataset.state = 'expanded';\r\n            if(btnExp) btnExp.title = '\u041f\u0440\u0438\u0445\u043e\u0432\u0430\u0442\u0438';\r\n        }\r\n    }\r\n    \/\/ Smooth Crossfade Image Function\r\n    window.crossfadePhoto = function(el, newSrc, newIndex, onComplete) {\r\n        if (el.dataset.isAnimating === 'true') return;\r\n        el.dataset.isAnimating = 'true';\r\n        const oldImg = el.querySelector('img.base-img');\r\n        if (!oldImg) {\r\n            el.dataset.isAnimating = 'false';\r\n            if(onComplete) onComplete();\r\n            return;\r\n        }\r\n        const existingFade = el.querySelector('.fade-img');\r\n        if (existingFade) existingFade.remove();\r\n        const newImg = new Image();\r\n        newImg.className = 'fade-img';\r\n        newImg.onload = () => {\r\n            el.appendChild(newImg);\r\n            el.setAttribute('data-index', newIndex);\r\n            void newImg.offsetWidth;\r\n            newImg.style.opacity = '1';\r\n            setTimeout(() => {\r\n                if (el.contains(newImg)) {\r\n                    oldImg.src = newSrc;\r\n                    newImg.remove();\r\n                }\r\n                el.dataset.isAnimating = 'false';\r\n                if(onComplete) onComplete();\r\n            }, 1200);\r\n        };\r\n        newImg.onerror = () => {\r\n            el.dataset.isAnimating = 'false';\r\n            if(onComplete) onComplete();\r\n        };\r\n        newImg.src = newSrc;\r\n    }\r\n    window.startAutoCycle = function(el, photos) {\r\n        if(el._autoCycleTimer) clearTimeout(el._autoCycleTimer);\r\n        const scheduleNext = () => {\r\n            let cur = parseInt(el.getAttribute('data-index') || '0');\r\n            let delay = (cur === 0) ? 300000 : 8000; \r\n            el._autoCycleTimer = setTimeout(() => {\r\n                let current = parseInt(el.getAttribute('data-index') || '0');\r\n                let next = (current + 1) % photos.length;\r\n                window.crossfadePhoto(el, photos[next], next, () => {\r\n                    scheduleNext();\r\n                });\r\n            }, delay);\r\n        };\r\n        scheduleNext();\r\n    }\r\n    window.cyclePhoto = function(el) {\r\n        if (el.dataset.isAnimating === 'true') return;\r\n        const photosStr = el.getAttribute('data-photos');\r\n        if(!photosStr) return;\r\n        try {\r\n            const photos = JSON.parse(photosStr);\r\n            if(photos.length <= 1) return;\r\n            if(el._autoCycleTimer) clearTimeout(el._autoCycleTimer);\r\n            let current = parseInt(el.getAttribute('data-index') || '0');\r\n            let next = (current + 1) % photos.length;\r\n            window.crossfadePhoto(el, photos[next], next, () => {\r\n                if (el.dataset.hovered !== \"true\") {\r\n                    window.startAutoCycle(el, photos);\r\n                }\r\n            });\r\n        } catch(e) {\r\n            console.error(\"\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0443 \u0444\u043e\u0442\u043e\", e);\r\n        }\r\n    }\r\n    function initPhotoInteractions() {\r\n        document.querySelectorAll('.vc-photo').forEach(el => {\r\n            if(el._autoCycleTimer) clearTimeout(el._autoCycleTimer);\r\n        });\r\n        const photoEls = document.querySelectorAll('.vc-photo');\r\n        photoEls.forEach(el => {\r\n            const img = el.querySelector('img:not(.fade-img)');\r\n            if (img && !img.classList.contains('base-img')) img.classList.add('base-img');\r\n            const photosStr = el.getAttribute('data-photos');\r\n            if (!photosStr) return;\r\n            const photos = JSON.parse(photosStr);\r\n            if (photos.length <= 1) return;\r\n            window.startAutoCycle(el, photos);\r\n            if (!el.dataset.interactionInit) {\r\n                el.dataset.interactionInit = \"true\";\r\n                el.addEventListener('mouseenter', () => {\r\n                    el.dataset.hovered = \"true\";\r\n                    if(el._autoCycleTimer) clearTimeout(el._autoCycleTimer);\r\n                });\r\n                el.addEventListener('mouseleave', () => {\r\n                    el.dataset.hovered = \"false\";\r\n                    window.startAutoCycle(el, photos);\r\n                });\r\n            }\r\n        });\r\n        lucide.createIcons();\r\n    }\r\n    \/\/ Global Registry QR Overlay Modal\r\n    window.toggleMainQR = function() {\r\n        const overlay = document.getElementById('main-qr-overlay');\r\n        if(!overlay.classList.contains('active')) {\r\n            overlay.style.display = 'flex';\r\n            void overlay.offsetWidth;\r\n            overlay.classList.add('active');\r\n            if(document.getElementById('qrcode-main').querySelector('canvas') === null) {\r\n                new QRCode(document.getElementById(\"qrcode-main\"), {text:generalRegistryUrl, width:180, height:180});\r\n            }\r\n        } else {\r\n            overlay.classList.remove('active');\r\n            setTimeout(() => overlay.style.display = 'none', 300);\r\n        }\r\n    }\r\n    \/\/ ==========================================\r\n    \/\/ FLOATING CARD QR LOGIC (ATTACHED TO BUTTON)\r\n    \/\/ ==========================================\r\n    window.toggleCardQR = function(id) {\r\n        const pop = document.getElementById(id);\r\n        if(pop.classList.contains('show')) {\r\n            pop.classList.remove('show');\r\n            setTimeout(() => {\r\n                if(!pop.classList.contains('show')) {\r\n                    pop.style.display = 'none';\r\n                }\r\n            }, 300);\r\n        } else {\r\n            \/\/ \u0417\u0430\u043a\u0440\u0438\u0432\u0430\u0454\u043c\u043e \u0432\u0441\u0456 \u0456\u043d\u0448\u0456 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0456 QR \u0442\u0443\u043b\u0442\u0438\u043f\u0438, \u0449\u043e\u0431 \u043d\u0435 \u043f\u0435\u0440\u0435\u043a\u0440\u0438\u0432\u0430\u043b\u0438\u0441\u044f\r\n            document.querySelectorAll('.qr-popup.show').forEach(openPop => {\r\n                if(openPop.id !== id && openPop.id !== 'main-qr-overlay') {\r\n                    openPop.classList.remove('show');\r\n                    setTimeout(() => openPop.style.display = 'none', 300);\r\n                }\r\n            });\r\n            pop.style.display = 'flex';\r\n            void pop.offsetWidth; \/\/ trigger reflow\r\n            pop.classList.add('show');\r\n            const qrData = JSON.parse(pop.getAttribute('data-qr'));\r\n            const leftArrow = pop.querySelector('.qr-arrow.left');\r\n            const rightArrow = pop.querySelector('.qr-arrow.right');\r\n            if(qrData.length <= 1) {\r\n                leftArrow.style.display = 'none';\r\n                rightArrow.style.display = 'none';\r\n            } else {\r\n                leftArrow.style.display = 'flex';\r\n                rightArrow.style.display = 'flex';\r\n            }\r\n            renderQR(id, 0);\r\n        }\r\n    }\r\n    window.switchQR = function(id, direction) {\r\n        const pop = document.getElementById(id);\r\n        const qrData = JSON.parse(pop.getAttribute('data-qr'));\r\n        if(qrData.length <= 1) return;\r\n        let current = parseInt(pop.getAttribute('data-current'));\r\n        let nextIndex = current + direction;\r\n        if (nextIndex >= qrData.length) nextIndex = 0;\r\n        if (nextIndex < 0) nextIndex = qrData.length - 1;\r\n        renderQR(id, nextIndex);\r\n    }\r\n    function renderQR(id, index) {\r\n        const pop = document.getElementById(id);\r\n        const canvasContainer = document.getElementById('canvas-'+id);\r\n        const titleEl = document.getElementById('title-'+id);\r\n        const qrData = JSON.parse(pop.getAttribute('data-qr'));\r\n        pop.setAttribute('data-current', index);\r\n        titleEl.textContent = qrData[index].title;\r\n        canvasContainer.innerHTML = ''; \r\n        new QRCode(canvasContainer, {\r\n            text: qrData[index].url, \r\n            width: 140, \r\n            height: 140\r\n        });\r\n    }\r\n    \/\/ ==========================================\r\n    \/\/ YOUTUBE VIDEO LOGIC (IN-CARD)\r\n    \/\/ ==========================================\r\n    window.openCardVideo = function(itemId, youtubeId) {\r\n        const primary = document.getElementById(`primary-${itemId}`);\r\n        const videoCt = document.getElementById(`video-${itemId}`);\r\n        const iframe = document.getElementById(`iframe-${itemId}`);\r\n        if(!primary || !videoCt || !iframe) return;\r\n        primary.style.opacity = '0';\r\n        setTimeout(() => {\r\n            primary.style.display = 'none';\r\n            videoCt.style.display = 'block';\r\n            iframe.src = `https:\/\/www.youtube.com\/embed\/${youtubeId}?autoplay=1`;\r\n            void videoCt.offsetWidth;\r\n            videoCt.style.opacity = '1';\r\n        }, 300);\r\n    }\r\n    window.closeCardVideo = function(itemId) {\r\n        const primary = document.getElementById(`primary-${itemId}`);\r\n        const videoCt = document.getElementById(`video-${itemId}`);\r\n        const iframe = document.getElementById(`iframe-${itemId}`);\r\n        if(!primary || !videoCt || !iframe) return;\r\n        videoCt.style.opacity = '0';\r\n        setTimeout(() => {\r\n            videoCt.style.display = 'none';\r\n            iframe.src = ''; \r\n            primary.style.display = 'block';\r\n            void primary.offsetWidth;\r\n            primary.style.opacity = '1';\r\n        }, 300);\r\n    }\r\n    let resizeTimer;\r\n    searchInput.addEventListener('input', (e) => renderBoard(e.target.value));\r\n    window.addEventListener('resize', () => {\r\n        clearTimeout(resizeTimer);\r\n        resizeTimer = setTimeout(() => { renderBoard(searchInput.value); }, 200); \r\n    });\r\n    \/\/ ==========================================\r\n    \/\/ INTERACTION HANDLERS (Sway Control)\r\n    \/\/ ==========================================\r\n    const handleInputStart = (e) => {\r\n        if (e.target.tagName !== 'MODEL-VIEWER') return;\r\n        const mv = e.target;\r\n        mv.classList.add('user-controlled');\r\n        if(mv.resumeTimeout) {\r\n            clearTimeout(mv.resumeTimeout);\r\n            mv.resumeTimeout = null;\r\n        }\r\n    };\r\n    const handleInputEnd = (e) => {\r\n        if (e.target.tagName !== 'MODEL-VIEWER') return;\r\n        const mv = e.target;\r\n        mv.resumeTimeout = setTimeout(() => {\r\n            mv.classList.remove('user-controlled');\r\n        }, 3000);\r\n    };\r\n    const animateModelOrbits = () => {\r\n        const models = document.querySelectorAll('model-viewer.interactive-3d');\r\n        const time = Date.now();\r\n        models.forEach(mv => {\r\n            if(mv.classList.contains('user-controlled')) return;\r\n            const baseOrbit = mv.dataset.defaultOrbit;\r\n            if(!baseOrbit) return;\r\n            const parts = baseOrbit.split(' ');\r\n            const baseTheta = parseFloat(parts[0]);\r\n            const phi = parts[1];\r\n            const radius = parts[2];\r\n            const offset = Math.sin(time \/ 4000) * 35;\r\n            const newTheta = baseTheta + offset;\r\n            mv.cameraOrbit = `${newTheta}deg ${phi} ${radius}`;\r\n        });\r\n        requestAnimationFrame(animateModelOrbits);\r\n    };\r\n    document.addEventListener('mousedown', handleInputStart, true);\r\n    document.addEventListener('touchstart', handleInputStart, true);\r\n    document.addEventListener('mouseup', handleInputEnd, true);\r\n    document.addEventListener('touchend', handleInputEnd, true);\r\n    document.addEventListener('DOMContentLoaded', () => {\r\n        initHero(); \r\n        renderBoard(); \r\n        requestAnimationFrame(animateModelOrbits);\r\n    });\r\n<\/script>\r\n<\/body>\r\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u0422\u041e\u0420\u0406\u041d\u041a\u0410 \u0423 \u041f\u0420\u041e\u0426\u0415\u0421\u0406 \u0420\u041e\u0417\u0420\u041e\u0411\u041a\u0418<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4463","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4463"}],"version-history":[{"count":3,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4463\/revisions"}],"predecessor-version":[{"id":5497,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4463\/revisions\/5497"}],"wp:attachment":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}