{"id":4420,"date":"2025-12-25T18:07:02","date_gmt":"2025-12-25T16:07:02","guid":{"rendered":"https:\/\/science.knu.ua\/new\/?page_id=4420"},"modified":"2026-01-09T10:35:50","modified_gmt":"2026-01-09T08:35:50","slug":"menedzhment-danyh-vidkryta-nauka","status":"publish","type":"page","link":"https:\/\/science.knu.ua\/new\/?page_id=4420","title":{"rendered":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u0438\u0445, \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0430 \u043d\u0430\u0443\u043a\u0430"},"content":{"rendered":"<!-- START OF KNU OPEN SCIENCE LANDING PAGE (Final Version) -->\r\n\r\n<!-- 1. External Libraries -->\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&display=swap\" rel=\"stylesheet\">\r\n<!-- Loading Lucide Icons -->\r\n<script src=\"https:\/\/unpkg.com\/lucide@latest\"><\/script>\r\n<!-- QR Code Generator -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/qrcodejs\/1.0.0\/qrcode.min.js\"><\/script>\r\n\r\n<!-- 2. CSS Styles (Protected Scope) -->\r\n<style>\r\n    \/* Scoping Wrapper - Forces Base Font Size for WP *\/\r\n    #knu-os-container {\r\n        font-family: 'Montserrat', sans-serif;\r\n        color: #1a1a1a;\r\n        line-height: 1.6;\r\n        max-width: 1200px;\r\n        margin: 0 auto;\r\n        padding: 20px 0;\r\n        box-sizing: border-box;\r\n        \/* Base size is 16px (1rem) *\/\r\n        font-size: 16px; \r\n    }\r\n\r\n    #knu-os-container * { box-sizing: border-box; }\r\n\r\n    \/* Color Variables *\/\r\n    :root {\r\n        --knu-red: #b80000;\r\n        --knu-blue: #0b5394;\r\n        --knu-blue-hover: #094276;\r\n        --knu-bg-light: #f8f9fa;\r\n        --knu-border: #e2e8f0;\r\n    }\r\n\r\n    \/* Typography Utilities *\/\r\n    .knu-text-red { color: var(--knu-red); }\r\n    .knu-text-blue { color: var(--knu-blue); }\r\n    .knu-bold { font-weight: 700; }\r\n\r\n    \/* Hero Section *\/\r\n    .knu-card {\r\n        background: #fff; border: 1px solid var(--knu-border);\r\n        border-radius: 16px; padding: 35px;\r\n        box-shadow: 0 4px 6px rgba(0,0,0,0.03); margin-bottom: 30px;\r\n    }\r\n\r\n    .knu-hero-section {\r\n        border-left: 6px solid var(--knu-red);\r\n        \/* Block\/Float layout to allow text wrapping *\/\r\n        display: block; \r\n    }\r\n\r\n    \/* Clearfix for floated content *\/\r\n    .knu-clearfix::after {\r\n        content: \"\";\r\n        clear: both;\r\n        display: table;\r\n    }\r\n\r\n    \/* Video Wrapper (16:9) *\/\r\n    .knu-video-block { \r\n        \/* Float right to allow text to wrap around it *\/\r\n        float: right; \r\n        width: 42%; \r\n        margin-left: 40px; \r\n        margin-bottom: 20px;\r\n        display: flex; flex-direction: column; gap: 10px; \r\n    }\r\n    \r\n    .knu-hero-text { \r\n        display: block; \r\n    }\r\n\r\n    .knu-video-title { font-size: 1.2rem; font-weight: 700; color: #333; display: flex; align-items: center; gap: 8px; }\r\n    .knu-video-wrapper {\r\n        position: relative; width: 100%; padding-bottom: 56.25%; height: 0;\r\n        overflow: hidden; border-radius: 12px; background: #000;\r\n        box-shadow: 0 10px 20px rgba(0,0,0,0.15);\r\n    }\r\n    .knu-video-wrapper iframe {\r\n        position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;\r\n    }\r\n\r\n    .knu-title-main { \r\n        font-size: 2rem; margin: 0 0 20px 0; color: var(--knu-blue); \r\n        line-height: 1.3; font-weight: 800; \r\n    }\r\n    \/* Intro P changed from 1.05rem to 1.05rem (already > 1rem) *\/\r\n    .knu-intro-p { font-size: 1.05rem; color: #333; margin: 0; text-align: justify; }\r\n    \r\n    \/* The Reference Font Size (1rem) *\/\r\n    .knu-intro-ul { margin: 10px 0 15px 0; padding-left: 20px; color: #444; font-size: 1rem;}\r\n    .knu-intro-ul li { margin-bottom: 8px; }\r\n\r\n    \/* Task Box *\/\r\n    .knu-task-box {\r\n        font-size: 1.05rem; color: #2c3e50; \r\n        background: #f0f7ff; \r\n        padding: 15px 20px; border-radius: 8px; \r\n        border-left: 4px solid var(--knu-blue);\r\n        margin-top: 20px;\r\n        display: block; \r\n        width: 100%;\r\n        clear: both; \/* Forces the box to sit below the video *\/\r\n    }\r\n\r\n    \/* Stats (Anchors) *\/\r\n    .knu-stats-container { display: flex; flex-wrap: wrap; gap: 20px; margin: 30px 0; }\r\n    \r\n    .knu-stat-box {\r\n        flex: 1 1 220px; background: var(--knu-blue); \r\n        \/* Enforce White Text for Readability on Colored Backgrounds *\/\r\n        color: #ffffff !important;\r\n        padding: 25px; border-radius: 12px; text-align: center;\r\n        display: flex; flex-direction: column; align-items: center; justify-content: center;\r\n        text-decoration: none; transition: all 0.25s ease; cursor: pointer;\r\n        box-shadow: 0 4px 10px rgba(11, 83, 148, 0.2);\r\n    }\r\n    \/* Ensure icon inside stat box is also white *\/\r\n    .knu-stat-box svg { color: #ffffff !important; stroke: #ffffff !important; }\r\n\r\n    .knu-stat-box:hover {\r\n        transform: translateY(-5px); box-shadow: 0 12px 20px rgba(11, 83, 148, 0.3);\r\n    }\r\n    .knu-stat-box.red-bg { background-color: var(--knu-red); box-shadow: 0 4px 10px rgba(184, 0, 0, 0.2); }\r\n    .knu-stat-box.red-bg:hover { box-shadow: 0 12px 20px rgba(184, 0, 0, 0.3); }\r\n    \r\n    .knu-stat-label { font-size: 1.2rem; font-weight: 700; margin: 10px 0 5px 0; color: #ffffff; }\r\n    \/* UPDATED: Increased from 0.95rem to 1rem *\/\r\n    .knu-stat-sub { font-size: 1rem; opacity: 0.9; font-weight: 400; color: #f0f0f0; }\r\n\r\n    \/* Resource List *\/\r\n    .knu-section-title {\r\n        font-size: 1.6rem; margin: 40px 0 20px 0; color: #1a1a1a; font-weight: 700;\r\n        display: flex; align-items: center; gap: 10px;\r\n    }\r\n\r\n    .knu-resource-list { display: grid; grid-template-columns: 1fr; gap: 30px; }\r\n    \r\n    .knu-resource-item {\r\n        scroll-margin-top: 20px; display: grid;\r\n        grid-template-columns: 90px 1fr; \/* Icon | Content *\/\r\n        gap: 30px; align-items: start; padding: 35px;\r\n        border: 1px solid var(--knu-border); border-radius: 16px;\r\n        background: #fff; transition: all 0.3s ease;\r\n    }\r\n    .knu-resource-item:hover {\r\n        box-shadow: 0 15px 30px rgba(0,0,0,0.06); border-color: var(--knu-blue);\r\n    }\r\n\r\n    .knu-res-icon-box {\r\n        width: 90px; height: 90px; background: var(--knu-bg-light);\r\n        color: var(--knu-blue); border-radius: 50%;\r\n        display: flex; align-items: center; justify-content: center; flex-shrink: 0;\r\n    }\r\n\r\n    .knu-res-content { display: flex; flex-direction: column; height: 100%; }\r\n    .knu-res-title { margin: 0 0 15px 0; font-size: 1.6rem; color: var(--knu-blue); font-weight: 700; }\r\n    \/* Darkened description text for readability *\/\r\n    .knu-res-desc { margin: 0 0 25px 0; color: #333333; font-size: 1.05rem; flex-grow: 1; line-height: 1.7; }\r\n\r\n    \/* Link List *\/\r\n    .knu-link-list {\r\n        list-style: none; padding: 0; margin: 0 0 25px 0;\r\n        border-radius: 8px; border: 1px solid #eee; overflow: hidden;\r\n    }\r\n    .knu-link-item {\r\n        display: flex; align-items: center; justify-content: space-between;\r\n        padding: 14px 20px; border-bottom: 1px solid #eee;\r\n        background: #fafafa; transition: background 0.2s;\r\n    }\r\n    .knu-link-item:last-child { border-bottom: none; }\r\n    .knu-link-item:hover { background: #fff; }\r\n    \r\n    .knu-link-left { display: flex; align-items: center; gap: 12px; flex-grow: 1; margin-right: 15px; }\r\n    .knu-link-a {\r\n        text-decoration: none; color: #333; font-weight: 600; font-size: 1rem;\r\n        transition: color 0.2s;\r\n    }\r\n    .knu-link-a:hover { color: var(--knu-blue); text-decoration: underline; }\r\n\r\n    \/* Enhanced QR Button *\/\r\n    .knu-qr-btn {\r\n        background: #fff; border: 1px solid #ccc; border-radius: 6px;\r\n        padding: 6px 10px; display: flex; align-items: center; justify-content: center;\r\n        color: #555; cursor: pointer; transition: all 0.2s; flex-shrink: 0;\r\n        \/* UPDATED: Increased from 0.8rem to 1rem *\/\r\n        font-size: 1rem; font-weight: 600; gap: 6px;\r\n    }\r\n    .knu-qr-btn:hover { \r\n        border-color: var(--knu-red); color: var(--knu-red); \r\n        background: #fff5f5; box-shadow: 0 2px 4px rgba(184,0,0,0.1);\r\n    }\r\n\r\n    \/* Main Action Button (Primary) *\/\r\n    .knu-btn-primary {\r\n        align-self: flex-start;\r\n        display: inline-flex; align-items: center; \r\n        background: var(--knu-blue); \/* Fallback *\/\r\n        background: linear-gradient(135deg, var(--knu-blue) 0%, #084075 100%);\r\n        color: #fff !important; \r\n        text-decoration: none !important; \r\n        padding: 14px 28px; \r\n        border-radius: 8px; font-weight: 600; \r\n        font-size: 1.05rem; margin-top: 20px;\r\n        transition: all 0.2s;\r\n        box-shadow: 0 4px 6px rgba(11, 83, 148, 0.25);\r\n        border: none;\r\n    }\r\n    .knu-btn-primary:hover {\r\n        transform: translateY(-2px); \r\n        box-shadow: 0 6px 12px rgba(11, 83, 148, 0.35);\r\n        background: linear-gradient(135deg, #0e64b0 0%, #0a4b87 100%);\r\n    }\r\n\r\n    \/* MODAL OVERLAY *\/\r\n    .knu-overlay {\r\n        position: fixed; top: 0; left: 0; width: 100%; height: 100%;\r\n        background: rgba(0,0,0,0.7); z-index: 99999; \/* High Z-index for WP *\/\r\n        display: none; align-items: center; justify-content: center;\r\n        backdrop-filter: blur(4px);\r\n    }\r\n    .knu-overlay.active { display: flex; animation: fadeInOverlay 0.2s ease-out; }\r\n\r\n    .knu-modal-box {\r\n        background: #fff; padding: 40px; border-radius: 16px;\r\n        max-width: 90%; width: 420px; text-align: center;\r\n        box-shadow: 0 20px 50px rgba(0,0,0,0.3); position: relative;\r\n    }\r\n    \r\n    .knu-close-btn {\r\n        position: absolute; top: 15px; right: 15px;\r\n        background: transparent; border: none; cursor: pointer;\r\n        color: #999; padding: 5px;\r\n    }\r\n    .knu-close-btn:hover { color: var(--knu-red); }\r\n\r\n    .knu-modal-title { font-size: 1.3rem; font-weight: 700; margin-bottom: 20px; color: var(--knu-blue); line-height: 1.3;}\r\n    .knu-qr-canvas-wrapper { margin: 0 auto 20px auto; display: inline-block; padding: 15px; border: 1px solid #eee; border-radius: 12px; box-shadow: 0 4px 8px rgba(0,0,0,0.05); }\r\n    \/* UPDATED: Increased from 0.95rem to 1rem *\/\r\n    .knu-modal-link { display: inline-block; margin-top: 10px; color: var(--knu-blue); font-size: 1rem; text-decoration: underline; word-break: break-all; font-weight: 500;}\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 850px) {\r\n        .knu-hero-section { display: flex; flex-direction: column; gap: 20px;}\r\n        .knu-hero-text { order: 1; }\r\n        \/* Disable float on mobile *\/\r\n        .knu-video-block { order: 2; width: 100%; float: none; margin-left: 0; }\r\n        \r\n        .knu-resource-item { grid-template-columns: 1fr; text-align: center; gap: 20px; padding: 25px; }\r\n        .knu-res-icon-box { margin: 0 auto; }\r\n        .knu-link-item { flex-direction: column; gap: 10px; align-items: center; text-align: center; }\r\n        .knu-link-left { margin-right: 0; justify-content: center; width: 100%; }\r\n        .knu-btn-primary { width: 100%; justify-content: center; }\r\n        .knu-stat-box { flex: 1 1 100%; }\r\n    }\r\n\r\n    @keyframes fadeInOverlay { from { opacity: 0; } to { opacity: 1; } }\r\n<\/style>\r\n\r\n<!-- 3. HTML Structure (Mount Points) -->\r\n<div id=\"knu-os-container\">\r\n\r\n    <!-- HERO & STATS -->\r\n    <div id=\"knu-hero-mount\"><\/div>\r\n    <div id=\"knu-stats-mount\"><\/div>\r\n    \r\n    <h3 class=\"knu-section-title\">\r\n        <i data-lucide=\"layout-grid\" class=\"knu-text-red\"><\/i> \u0420\u0435\u0441\u0443\u0440\u0441\u0438 \u0442\u0430 \u043a\u043e\u0440\u0438\u0441\u043d\u0456 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f\r\n    <\/h3>\r\n    \r\n    <div id=\"knu-resource-mount\" class=\"knu-resource-list\"><\/div>\r\n\r\n<\/div>\r\n\r\n<!-- QR MODAL OVERLAY -->\r\n<div id=\"knuQRModal\" class=\"knu-overlay\" onclick=\"closeKnuQR(event)\">\r\n    <div class=\"knu-modal-box\" onclick=\"event.stopPropagation()\">\r\n        <button class=\"knu-close-btn\" onclick=\"closeKnuQR(event)\">\r\n            <i data-lucide=\"x\" size=\"28\"><\/i>\r\n        <\/button>\r\n        <div id=\"knuModalTitle\" class=\"knu-modal-title\">QR Code<\/div>\r\n        <div class=\"knu-qr-canvas-wrapper\">\r\n            <div id=\"knuModalCanvas\"><\/div>\r\n        <\/div>\r\n        <!-- UPDATED: Inline font-size increased from 0.9rem to 1rem -->\r\n        <p style=\"font-size: 1rem; color: #666; margin: 0;\">\u0412\u0456\u0434\u0441\u043a\u0430\u043d\u0443\u0439\u0442\u0435, \u0449\u043e\u0431 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0456<\/p>\r\n        <a id=\"knuModalLink\" href=\"#\" target=\"_blank\" class=\"knu-modal-link\"><\/a>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- 4. JavaScript Logic & Configuration -->\r\n<script>\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n\r\n        \/\/ =================================================================\r\n        \/\/ CONFIGURATION AREA\r\n        \/\/ =================================================================\r\n        const KNU_CONFIG = {\r\n            hero: {\r\n                title: \"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0430 \u043d\u0430\u0443\u043a\u0430 \u0442\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0456\u043d\u043d\u044f \u0434\u0430\u043d\u0438\u043c\u0438\",\r\n                icon: \"university\", \r\n                \/\/ Detailed, academic, yet interesting definition with bullet points\r\n                introText: `\r\n                    <strong>\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0430 \u043d\u0430\u0443\u043a\u0430 (Open Science)<\/strong> \u2014 \u0446\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0438\u0439 \u0440\u0443\u0445 \u0437\u0430 \u043f\u0440\u043e\u0437\u043e\u0440\u0456\u0441\u0442\u044c, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0456\u0441\u0442\u044c \u0442\u0430 \u0434\u043e\u0431\u0440\u043e\u0447\u0435\u0441\u043d\u0456\u0441\u0442\u044c \u043d\u0430\u0443\u043a\u043e\u0432\u0438\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u044c. \u0426\u0435 \u0437\u043c\u0456\u043d\u0430 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0438 \u0432\u0456\u0434 \u043f\u0440\u043e\u0441\u0442\u043e\u0457 \u043f\u0443\u0431\u043b\u0456\u043a\u0430\u0446\u0456\u0457 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0456\u0432 \u0434\u043e \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e\u0433\u043e \u043e\u0431\u043c\u0456\u043d\u0443 \u0437\u043d\u0430\u043d\u043d\u044f\u043c\u0438 \u043d\u0430 \u0432\u0441\u0456\u0445 \u0435\u0442\u0430\u043f\u0430\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u043d\u0438\u0446\u044c\u043a\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0443.\r\n                    <ul class=\"knu-intro-ul\">\r\n                        <li><strong>\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f (Open Access):<\/strong> \u0412\u0456\u043b\u044c\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u043d\u0430\u0443\u043a\u043e\u0432\u0438\u0445 \u043f\u0443\u0431\u043b\u0456\u043a\u0430\u0446\u0456\u0439 \u0434\u043b\u044f \u0441\u0432\u0456\u0442\u043e\u0432\u043e\u0457 \u0441\u043f\u0456\u043b\u044c\u043d\u043e\u0442\u0438.<\/li>\r\n                        <li><strong>\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0456 \u0434\u0430\u043d\u0456 (Open Data):<\/strong> \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0456\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0438\u043d\u043d\u0438\u0445 \u0434\u0430\u043d\u0438\u0445, \u0449\u043e \u0434\u043e\u0437\u0432\u043e\u043b\u044f\u0454 \u0432\u0456\u0434\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0442\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0438.<\/li>\r\n                        <li><strong>\u0410\u043a\u0430\u0434\u0435\u043c\u0456\u0447\u043d\u0430 \u0434\u043e\u0431\u0440\u043e\u0447\u0435\u0441\u043d\u0456\u0441\u0442\u044c:<\/strong> \u0417\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0435\u043d\u043d\u044f \u043f\u0440\u043e\u0437\u043e\u0440\u043e\u0441\u0442\u0456 \u043c\u0435\u0442\u043e\u0434\u0456\u0432 \u0442\u0430 \u0432\u0438\u0441\u043e\u043a\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0456\u0432 \u0440\u0435\u0446\u0435\u043d\u0437\u0443\u0432\u0430\u043d\u043d\u044f.<\/li>\r\n                    <\/ul>\r\n                    \r\n                    <!-- Force the break so the next paragraph is full width below the video -->\r\n                    <div style=\"clear: both;\"><\/div>\r\n\r\n                    <p style=\"margin-top: 15px; margin-bottom: 0;\">\u041d\u0430\u0443\u043a\u043e\u0432\u0430 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u0456\u043c. \u041c. \u041c\u0430\u043a\u0441\u0438\u043c\u043e\u0432\u0438\u0447\u0430 \u043d\u0430\u0434\u0430\u0454 \u043f\u043e\u0432\u043d\u0443 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u043a\u0443 \u0434\u043e\u0441\u043b\u0456\u0434\u043d\u0438\u043a\u0430\u043c \u041a\u041d\u0423 \u0443 \u0432\u043f\u0440\u043e\u0432\u0430\u0434\u0436\u0435\u043d\u043d\u0456 \u0446\u0438\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0456\u0432, \u0434\u043e\u043f\u043e\u043c\u0430\u0433\u0430\u044e\u0447\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u0442\u0438 \u0457\u0445 \u0443 \u0449\u043e\u0434\u0435\u043d\u043d\u0443 \u043d\u0430\u0443\u043a\u043e\u0432\u0443 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443 \u0434\u043b\u044f \u043f\u0456\u0434\u0432\u0438\u0449\u0435\u043d\u043d\u044f \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0456 \u0442\u0430 \u0446\u0438\u0442\u043e\u0432\u0430\u043d\u043e\u0441\u0442\u0456 \u0440\u043e\u0431\u0456\u0442.<\/p>\r\n                `,\r\n                mainTask: \"\u0417\u0430\u0432\u0434\u0430\u043d\u043d\u044f: \u0417\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0435\u043d\u043d\u044f \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0434\u043e \u043d\u0430\u0443\u043a\u043e\u0432\u0438\u0445 \u043d\u0430\u0434\u0431\u0430\u043d\u044c \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0443.\",\r\n                buttonText: \"\u0427\u0438\u0442\u0430\u0442\u0438 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u0456\u0448\u0435 \u043f\u0440\u043e \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0443 \u043d\u0430\u0443\u043a\u0443\",\r\n                buttonUrl: \"https:\/\/library.knu.ua\/vidkryta-nauka\",\r\n                videoEmbedUrl: \"https:\/\/www.youtube.com\/embed\/videoseries?list=PL8xhfo7f044HxhWu4teHJoo4zW-QhkiFG\", \r\n                videoLinkUrl: \"https:\/\/www.youtube.com\/playlist?list=PL8xhfo7f044HxhWu4teHJoo4zW-QhkiFG\"\r\n            },\r\n            stats: [\r\n                { icon: \"book-open\", val: \"Open Science\", label: \"\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430\", red: false, targetId: \"knu-res-library\" },\r\n                { icon: \"database\", val: \"eKNUTSHIR\", label: \"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u0430\u0440\u0456\u0439\", red: false, targetId: \"knu-res-repo\" },\r\n                \/\/ Added 4th Stat Card with Anchor to new Resource Card\r\n                { icon: \"megaphone\", val: \"\u041d\u0430\u0443\u043a\u043e\u0432\u0456 \u043f\u043e\u0434\u0456\u0457\", label: \"\u0414\u0438\u0441\u0435\u043c\u0456\u043d\u0430\u0446\u0456\u044f\", red: false, targetId: \"knu-res-events\" },\r\n                { icon: \"layers\", val: \"\u0406\u043d\u0448\u0456 \u043c\u043e\u0436\u043b\u0438\u0432\u043e\u0441\u0442\u0456\", label: \"\u041a\u043e\u0440\u0438\u0441\u043d\u0456 \u0440\u0435\u0441\u0443\u0440\u0441\u0438\", red: false, targetId: \"knu-res-other\" }\r\n            ],\r\n            \/\/ RESOURCES LIST\r\n            resources: [\r\n                {\r\n                    id: \"knu-res-library\",\r\n                    title: \"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0430 \u043d\u0430\u0443\u043a\u0430 (\u0411\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430)\",\r\n                    desc: \"\u041e\u0441\u043d\u043e\u0432\u043d\u0438\u0439 \u0456\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u0439\u043d\u0438\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u041d\u0430\u0443\u043a\u043e\u0432\u043e\u0457 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438. \u041c\u0456\u0441\u0442\u0438\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0443 \u0431\u0430\u0437\u0443, \u043f\u043e\u043b\u0456\u0442\u0438\u043a\u0443 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u041a\u041d\u0423, \u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0456\u0432 \u0442\u0430 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0456 \u043d\u043e\u0432\u0438\u043d\u0438 \u0441\u0444\u0435\u0440\u0438 Open Access. \u041e\u0442\u0440\u0438\u043c\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0456\u044e \u0449\u043e\u0434\u043e \u043f\u043b\u0430\u043d\u0456\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0456\u043d\u043d\u044f \u0434\u0430\u043d\u0438\u043c\u0438 (DMP).\",\r\n                    icon: \"library\",\r\n                    iconColor: \"\",\r\n                    keywords: \"open science \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0441\u043b\u0443\u0433\u0438 \u043f\u043e\u0434\u0456\u0457 mon\",\r\n                    mainUrl: \"https:\/\/library.knu.ua\/vidkryta-nauka\",\r\n                    mainBtnText: \"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438\",\r\n                    links: [\r\n                        { label: \"\u041f\u0440\u043e \u0437\u0430\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043d\u043d\u044f \u043d\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0443 \u0449\u043e\u0434\u043e \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e\u0457 \u043d\u0430\u0443\u043a\u0438\", url: \"https:\/\/zakon.rada.gov.ua\/laws\/show\/892-2022-%D1%80#Text\", icon: \"scale\" }, \r\n                        { label: \"\u041a\u043e\u043d\u0446\u0435\u043f\u0446\u0456\u044f \u0440\u0435\u0430\u043b\u0456\u0437\u0430\u0446\u0456\u0457 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u043e\u0457 \u043d\u0430\u0443\u043a\u0438 \u0432 \u0423\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0456\", url: \"https:\/\/library.knu.ua\/vidkryta-nauka\", icon: \"scroll-text\" }, \r\n                        { label: \"\u041c\u043e\u0436\u043b\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043b\u044f \u043e\u0444\u0444\u043b\u0430\u0439\u043d-\u0437\u0430\u0445\u043e\u0434\u0456\u0432 open science\", url: \"https:\/\/library.knu.ua\/poslugy\/zamovyty-prymishhennya\", icon: \"map-pin\" } \r\n                    ]\r\n                },\r\n                {\r\n                    id: \"knu-res-repo\",\r\n                    title: \"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0456\u0439 eKNUTSHIR\",\r\n                    desc: \"\u0415\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0438\u0439 \u0430\u0440\u0445\u0456\u0432 \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. \u0417\u0430\u0431\u0435\u0437\u043f\u0435\u0447\u0443\u0454 \u043d\u0430\u043a\u043e\u043f\u0438\u0447\u0435\u043d\u043d\u044f, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0456\u044e \u0442\u0430 \u0437\u0431\u0435\u0440\u0456\u0433\u0430\u043d\u043d\u044f \u043d\u0430\u0443\u043a\u043e\u0432\u0438\u0445 \u043f\u0443\u0431\u043b\u0456\u043a\u0430\u0446\u0456\u0439, \u0434\u0438\u0441\u0435\u0440\u0442\u0430\u0446\u0456\u0439 \u0442\u0430 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b\u0456\u0432. \u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u0441\u0432\u0456\u0442\u043e\u0432\u043e\u0457 \u0441\u043f\u0456\u043b\u044c\u043d\u043e\u0442\u0438.\",\r\n                    icon: \"server\", \r\n                    iconColor: \"\",\r\n                    keywords: \"\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0456\u0439 eknutshir \u0430\u0440\u0445\u0456\u0432 \u043f\u043e\u0448\u0443\u043a scientist\",\r\n                    mainUrl: \"https:\/\/ir.library.knu.ua\/home\",\r\n                    mainBtnText: \"\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0456\u0439 eKNUTSHIR\",\r\n                    links: [\r\n                        { label: \"\u0414\u043e\u0432\u0456\u0434\u043a\u0430 \u0442\u0430 \u0406\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457\", url: \"https:\/\/ir.library.knu.ua\/search?spc.page=1&configuration=site&f.itemtype=%D0%9D%D0%B0%D0%B2%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B5%20%D0%B2%D1%96%D0%B4%D0%B5%D0%BE%20eKNUTSHIR,equals\", icon: \"life-buoy\" }, \r\n                        { label: \"\u041f\u0440\u043e\u0444\u0456\u043b\u044c \u043d\u0430\u0443\u043a\u043e\u0432\u0446\u044f\", url: \"https:\/\/ir.library.knu.ua\/login\", icon: \"id-card\" }, \r\n                        { label: \"\u041f\u0440\u0438\u043a\u043b\u0430\u0434 \u0441\u043a\u043b\u0430\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0448\u0443\u043a\u0443\", url: \"https:\/\/ir.library.knu.ua\/search?spc.page=1&query=%D0%9F%D1%80%D0%B8%D0%BA%D0%BB%D0%B0%D0%B4%20%D0%B4%D0%B5%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D0%BE%D1%88%D1%83%D0%BA%D1%83&configuration=site&f.subject=%D1%88%D1%82%D1%83%D1%87%D0%BD%D0%B8%D0%B9%20%D1%96%D0%BD%D1%82%D0%B5%D0%BB%D0%B5%D0%BA%D1%82,equals&f.subject=artificial%20intelligence,equals&f.subject=machine%20learning,equals\", icon: \"scan-search\" } \r\n                    ]\r\n                },\r\n                {\r\n                    id: \"knu-res-events\",\r\n                    title: \"\u0417\u0430\u0445\u043e\u0434\u0438 \u0434\u043b\u044f \u0434\u0438\u0441\u0435\u043c\u0456\u043d\u0430\u0446\u0456\u0457 \u043d\u0430\u0443\u043a\u0438 \u0432 \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0456\",\r\n                    desc: \"\u0429\u043e\u0440\u0456\u0447\u043d\u0456 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u0456 \u043f\u043e\u0434\u0456\u0457 \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0443, \u0449\u043e \u043e\u0431'\u0454\u0434\u043d\u0443\u044e\u0442\u044c \u043d\u0430\u0443\u043a\u043e\u0432\u0446\u0456\u0432, \u0430\u0441\u043f\u0456\u0440\u0430\u043d\u0442\u0456\u0432 \u0442\u0430 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0456\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0456\u0457 \u0434\u043e\u0441\u044f\u0433\u043d\u0435\u043d\u044c \u0442\u0430 \u043e\u0431\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043d\u044f \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432 \u0440\u043e\u0437\u0432\u0438\u0442\u043a\u0443 \u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u0457 \u043d\u0430\u0443\u043a\u0438.\",\r\n                    icon: \"megaphone\",\r\n                    iconColor: \"#b80000\",\r\n                    keywords: \"\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0456\u044f \u043c\u0430\u0440\u0430\u0444\u043e\u043d \u0434\u043d\u0456 \u043d\u0430\u0443\u043a\u0438 \u043f\u043e\u0434\u0456\u0457\",\r\n                    mainUrl: \"https:\/\/science.knu.ua\/\", \r\n                    mainBtnText: \"\u0412\u0441\u0456 \u043d\u0430\u0443\u043a\u043e\u0432\u0456 \u043f\u043e\u0434\u0456\u0457\",\r\n                    links: [\r\n                        { label: \"\u041c\u0430\u0440\u0430\u0444\u043e\u043d \\\"\u041e\u0431'\u0454\u0434\u043d\u0430\u043d\u0456 \u043d\u0430\u0443\u043a\u043e\u044e\\\"\", url: \"https:\/\/science.knu.ua\/\", icon: \"trophy\" },\r\n                        { label: \"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0456\u044f \\\"\u041e\u0431'\u0454\u0434\u043d\u0430\u043d\u0456 \u043d\u0430\u0443\u043a\u043e\u044e\\\"\", url: \"https:\/\/science.knu.ua\/\", icon: \"users\" },\r\n                        { label: \"\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0456\u044f \\\"\u0414\u043d\u0456 \u043d\u0430\u0443\u043a\u0438\\\"\", url: \"https:\/\/science.knu.ua\/\", icon: \"calendar-range\" }\r\n                    ]\r\n                },\r\n                {\r\n                    id: \"knu-res-other\", \r\n                    title: \"\u0406\u043d\u0448\u0456 \u043c\u043e\u0436\u043b\u0438\u0432\u043e\u0441\u0442\u0456\",\r\n                    desc: \"\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u0438\u0439 \u043d\u0430\u0431\u0456\u0440 \u0434\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u0438\u0445 \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432 \u0442\u0430 \u043e\u0441\u0432\u0456\u0442\u043d\u0456\u0445 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b\u0456\u0432. \u0426\u0435\u0439 \u0440\u043e\u0437\u0434\u0456\u043b \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u0432\u0456\u0434\u0435\u043e\u0456\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0456\u0457, \u043a\u043e\u0440\u0438\u0441\u043d\u0456 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u043c\u0456\u0436\u043d\u0430\u0440\u043e\u0434\u043d\u0456 \u0431\u0430\u0437\u0438 \u0434\u0430\u043d\u0438\u0445, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0438 \u0434\u043b\u044f \u0456\u0434\u0435\u043d\u0442\u0438\u0444\u0456\u043a\u0430\u0446\u0456\u0457 \u0430\u0432\u0442\u043e\u0440\u0456\u0432 \u0442\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u0438 \u0434\u043b\u044f \u043f\u0456\u0434\u0432\u0438\u0449\u0435\u043d\u043d\u044f \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0456 \u0432\u0430\u0448\u0438\u0445 \u0434\u043e\u0441\u043b\u0456\u0434\u0436\u0435\u043d\u044c.\",\r\n                    icon: \"layers\", \r\n                    iconColor: \"\", \r\n                    keywords: \"youtube video playlist google events tools databases\",\r\n                    mainUrl: \"https:\/\/library.knu.ua\",\r\n                    mainBtnText: \"\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0434\u043e \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0456\u0457 \u0437 \u0431\u043e\u0442\u043e\u043c-\u043f\u043e\u043c\u0456\u0447\u043d\u0438\u043a\u043e\u043c \u043d\u0430 \u0456\u043c'\u044f \u043f\u0430\u043d \u041c\u0438\u0445\u0430\u0439\u043b\u043e\",\r\n                    links: [\r\n                        { label: \"\u0426\u0438\u0444\u0440\u043e\u0432\u0456 \u043a\u043e\u043f\u0456\u0457 \u043c\u0430\u0442\u0435\u0440\u0456\u0430\u043b\u0456\u0432 \u0443 \u0444\u043e\u043d\u0434\u0430\u0445 \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a \u0441\u0432\u0456\u0442\u0443\", url: \"https:\/\/library.knu.ua\/elektronnyj-mizhnarodnyj-mizhbibliotechnyj-abonement-rapid-ill-exlibris\", icon: \"unlock\" },\r\n                        { label: \"Facebook \u0456\u0437 \u0437\u0430\u0445\u043e\u0434\u0430\u043c\u0438 \u0434\u0438\u0441\u0435\u043c\u0456\u043d\u0430\u0446\u0456\u0457 \u043d\u0430\u0443\u043a\u0438\", url: \"https:\/\/www.facebook.com\/MaksymovychScientificLibrary\", icon: \"facebook\" },\r\n\t\t\t\t\t\t{ label: \"\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440 \u043f\u043e\u0434\u0456\u0439 \u0443\u043d\u0456\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442\u0443\", url: \"https:\/\/knu.ua\/ua\/knu-callendar\", icon: \"calendar-days\" },\r\n                    ]\r\n                }\r\n            ]\r\n        };\r\n        \/\/ =================================================================\r\n\r\n        \/\/ 1. RENDER FUNCTIONS\r\n        function renderHero() {\r\n            const h = KNU_CONFIG.hero;\r\n            \/\/ Structure: Video Block (floated right), then Text Block wraps around it\r\n            const html = `\r\n            <div class=\"knu-card knu-hero-section knu-clearfix\">\r\n                \r\n                <!-- Video Block (Floated Right) -->\r\n                <div class=\"knu-video-block\">\r\n                    <div class=\"knu-video-title\">\r\n                        <i data-lucide=\"play-circle\" class=\"knu-text-red\"><\/i> \u0412\u0456\u0434\u0435\u043e-\u043e\u0433\u043b\u044f\u0434\r\n                    <\/div>\r\n                    <div class=\"knu-video-wrapper\">\r\n                        <iframe src=\"${h.videoEmbedUrl}\" title=\"Video\" allowfullscreen><\/iframe>\r\n                    <\/div>\r\n                    <div style=\"text-align: right;\">\r\n                        <!-- UPDATED: Inline font-size increased from 0.9rem to 1rem -->\r\n                        <a href=\"${h.videoLinkUrl}\" target=\"_blank\" style=\"font-size: 1rem; color: #666; text-decoration: underline; font-weight: 600;\">\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u043f\u043e\u0432\u043d\u0438\u0439 \u043f\u043b\u0435\u0439\u043b\u0438\u0441\u0442<\/a>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Text Content (Wraps around video) -->\r\n                <div class=\"knu-hero-text\">\r\n                    <h1 class=\"knu-title-main\">\r\n                        <i data-lucide=\"${h.icon}\" style=\"vertical-align: middle; margin-right:10px;\" class=\"knu-text-red\"><\/i>${h.title}\r\n                    <\/h1>\r\n                    <!-- introText now contains a clear:both div to force the last paragraph to drop below -->\r\n                    <div class=\"knu-intro-p\">${h.introText}<\/div>\r\n                    \r\n                    <div class=\"knu-task-box\">\r\n                        <strong>${h.mainTask}<\/strong>\r\n                    <\/div>\r\n                    <br>\r\n                    <a href=\"${h.buttonUrl}\" target=\"_blank\" class=\"knu-btn-primary\">\r\n                        ${h.buttonText} <i data-lucide=\"external-link\" size=\"18\" style=\"margin-left:10px;\"><\/i>\r\n                    <\/a>\r\n                <\/div>\r\n\r\n            <\/div>`;\r\n            document.getElementById('knu-hero-mount').innerHTML = html;\r\n        }\r\n\r\n        function renderStats() {\r\n            let html = '<div class=\"knu-stats-container\">';\r\n            KNU_CONFIG.stats.forEach(s => {\r\n                html += `\r\n                <a href=\"#${s.targetId}\" class=\"knu-stat-box ${s.red ? 'red-bg' : ''}\">\r\n                    <i data-lucide=\"${s.icon}\" style=\"margin-bottom: 12px;\" size=\"42\"><\/i>\r\n                    <span class=\"knu-stat-label\">${s.val}<\/span>\r\n                    <span class=\"knu-stat-sub\">${s.label}<\/span>\r\n                <\/a>`;\r\n            });\r\n            html += '<\/div>';\r\n            document.getElementById('knu-stats-mount').innerHTML = html;\r\n        }\r\n\r\n        function renderResources() {\r\n            let html = '';\r\n            KNU_CONFIG.resources.forEach(r => {\r\n                const colorStyle = r.iconColor ? `style=\"color: ${r.iconColor};\"` : '';\r\n                \r\n                \/\/ Build inner list of links with Specific Icons and Better QR buttons\r\n                let linksHtml = '<ul class=\"knu-link-list\">';\r\n                r.links.forEach(link => {\r\n                    const linkIcon = link.icon || 'link'; \/\/ fallback\r\n                    linksHtml += `\r\n                    <li class=\"knu-link-item\">\r\n                        <div class=\"knu-link-left\">\r\n                            <i data-lucide=\"${linkIcon}\" size=\"18\" class=\"knu-text-blue\" style=\"flex-shrink:0;\"><\/i>\r\n                            <a href=\"${link.url}\" target=\"_blank\" class=\"knu-link-a\">\r\n                                ${link.label}\r\n                            <\/a>\r\n                        <\/div>\r\n                        <button class=\"knu-qr-btn\" title=\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0438 QR-\u043a\u043e\u0434\" onclick=\"openKnuQR('${link.url}', '${link.label}')\">\r\n                            <i data-lucide=\"qr-code\" size=\"16\"><\/i> QR\r\n                        <\/button>\r\n                    <\/li>`;\r\n                });\r\n                linksHtml += '<\/ul>';\r\n\r\n                \/\/ Render Card\r\n                html += `\r\n                <div id=\"${r.id}\" class=\"knu-resource-item\" data-keywords=\"${r.keywords}\">\r\n                    <div class=\"knu-res-icon-box\" ${colorStyle}>\r\n                        <i data-lucide=\"${r.icon}\" size=\"44\"><\/i>\r\n                    <\/div>\r\n                    <div class=\"knu-res-content\">\r\n                        <h3 class=\"knu-res-title\">${r.title}<\/h3>\r\n                        <p class=\"knu-res-desc\">${r.desc}<\/p>\r\n                        ${linksHtml}\r\n                        <a href=\"${r.mainUrl}\" target=\"_blank\" class=\"knu-btn-primary\">\r\n                            ${r.mainBtnText} <i data-lucide=\"arrow-right\" size=\"20\" style=\"margin-left:10px;\"><\/i>\r\n                        <\/a>\r\n                    <\/div>\r\n                <\/div>`;\r\n            });\r\n            document.getElementById('knu-resource-mount').innerHTML = html;\r\n        }\r\n\r\n        \/\/ 2. MODAL LOGIC\r\n        window.openKnuQR = function(url, title) {\r\n            const modal = document.getElementById('knuQRModal');\r\n            const canvasDiv = document.getElementById('knuModalCanvas');\r\n            const titleDiv = document.getElementById('knuModalTitle');\r\n            const linkDiv = document.getElementById('knuModalLink');\r\n\r\n            \/\/ Clear previous\r\n            canvasDiv.innerHTML = '';\r\n            \r\n            \/\/ Set Content\r\n            titleDiv.innerText = title;\r\n            linkDiv.href = url;\r\n            linkDiv.innerText = url.length > 50 ? url.substring(0, 50) + '...' : url;\r\n\r\n            \/\/ Generate QR\r\n            new QRCode(canvasDiv, {\r\n                text: url,\r\n                width: 220,\r\n                height: 220,\r\n                colorDark : \"#0b5394\",\r\n                colorLight : \"#ffffff\",\r\n                correctLevel : QRCode.CorrectLevel.H\r\n            });\r\n\r\n            \/\/ Show\r\n            modal.classList.add('active');\r\n            document.body.style.overflow = 'hidden'; \/\/ prevent bg scroll\r\n        };\r\n\r\n        window.closeKnuQR = function(e) {\r\n            document.getElementById('knuQRModal').classList.remove('active');\r\n            document.body.style.overflow = ''; \/\/ restore bg scroll\r\n        };\r\n\r\n        \/\/ 3. INIT PAGE\r\n        renderHero();\r\n        renderStats();\r\n        renderResources();\r\n\r\n        \/\/ Init Icons\r\n        if (window.lucide) {\r\n            window.lucide.createIcons();\r\n        } else {\r\n            setTimeout(() => window.lucide?.createIcons(), 500);\r\n        }\r\n    });\r\n<\/script>\r\n<!-- END OF KNU OPEN SCIENCE LANDING PAGE -->\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4420","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4420","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=4420"}],"version-history":[{"count":2,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4420\/revisions"}],"predecessor-version":[{"id":4898,"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=\/wp\/v2\/pages\/4420\/revisions\/4898"}],"wp:attachment":[{"href":"https:\/\/science.knu.ua\/new\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}