{"id":24565,"date":"2026-11-02T16:22:58","date_gmt":"2026-11-02T16:22:58","guid":{"rendered":"https:\/\/iit.ac.rs\/?page_id=24565"},"modified":"2026-11-02T16:30:17","modified_gmt":"2026-11-02T16:30:17","slug":"vestacka-inteligencijau-svakodnevnom-radu","status":"publish","type":"page","link":"https:\/\/iit.ac.rs\/en\/vestacka-inteligencijau-svakodnevnom-radu\/","title":{"rendered":"\u0412\u0435\u0448\u0442\u0430\u0447\u043a\u0430 \u0438\u043d\u0442\u0435\u043b\u0438\u0433\u0435\u043d\u0446\u0438\u0458\u0430 \u0443 \u0441\u0432\u0430\u043a\u043e\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0440\u0430\u0434\u0443"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"24565\" class=\"elementor elementor-24565\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e92be1a e-flex e-con-boxed e-con e-parent\" data-id=\"e92be1a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55ece7b elementor-widget elementor-widget-html\" data-id=\"55ece7b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html>\r\n<html lang=\"sr-Latn\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\">\r\n<title>Ve\u0161ta\u010dka inteligencija u svakodnevnom radu<\/title>\r\n<meta name=\"claude:viewport-fit-sides\" content=\"cover\">\r\n<meta name=\"description\" content=\"Program interne obuke Instituta za informacione tehnologije Kragujevac: osam termina u 16 sedmica, od prvog zadatka AI agentu do sopstvenog projekta.\">\r\n<meta name=\"theme-color\" content=\"#e5e8ed\">\r\n<link rel=\"icon\" type=\"image\/svg+xml\" href=\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 -24 221 221'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%233d3781'\/%3E%3Cstop offset='1' stop-color='%233861a6'\/%3E%3C\/linearGradient%3E%3C\/defs%3E%3Cg fill='url(%23g)'%3E%3Cpath d='M2 171V19Q2 11.4 9 12.8L40 19.2V116.6Z'\/%3E%3Cpath d='M47 20L63 23.2V83.6L47 106.9Z'\/%3E%3Cpath d='M47 120.4L84 66.5V172H54Q47 172 47 165Z'\/%3E%3Cpath d='M92 54.5L107 32.7V172H92Z'\/%3E%3Cpath d='M109.8 31L125.9 7Q130.5 .4 138.2 2.5L219 24.5V50.2L188 45V121.6L153 172V38.4Z'\/%3E%3Cpath d='M161.7 172L188 133.9V166Q188 172 182 172Z'\/%3E%3C\/g%3E%3C\/svg%3E\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&family=Unbounded:wght@300;400;500;600;700&display=swap\">\r\n<script>document.documentElement.classList.add('js');<\/script>\r\n<style>\r\n\/* Layout: one centred 1180px column of full-bleed bands; brushed-metal plates only for objects (profiles, agents, sessions). *\/\r\n:root {\r\n  --f-display: \"Unbounded\", \"Segoe UI\", system-ui, sans-serif;\r\n  --f-body: \"IBM Plex Sans\", \"Segoe UI\", system-ui, -apple-system, sans-serif;\r\n  --f-mono: \"IBM Plex Mono\", ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\r\n  --maxw: 1180px;\r\n  --ease: cubic-bezier(.2, .7, .2, 1);\r\n\r\n  \/* Brushed aluminium, with the logo's indigo and blue as accents *\/\r\n  --bg: #e5e8ed;\r\n  --bg-2: #dadee5;\r\n  --panel-a: #fafbfc;\r\n  --panel-b: #dde1e8;\r\n  --line: rgba(28, 38, 60, .15);\r\n  --fg: #111726;\r\n  --muted: #4a5468;\r\n  --t1: #556073;\r\n  --t2: #111726;\r\n  --t3: #7d889b;\r\n  --accent: #2f52b0;\r\n  --accent-2: #4a3f9e;\r\n  --on-accent: #ffffff;\r\n  --glow: rgba(47, 82, 176, .28);\r\n  --hi: rgba(255, 255, 255, .95);\r\n  --shadow: rgba(30, 40, 70, .22);\r\n  --spec: rgba(255, 255, 255, .75);\r\n  --sheen: rgba(255, 255, 255, .95);\r\n  --groove: rgba(20, 30, 50, .05);\r\n  --l1: #6c66d6;\r\n  --l2: #3d3781;\r\n  --l3: #9fbaf2;\r\n  --l4: #3861a6;\r\n  --term-acc: #9db4ff;\r\n  --brush: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='640' height='320'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.003 .9' numOctaves='2' seed='4' stitchTiles='stitch'\/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0 0 0 -.025'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23b)'\/%3E%3C\/svg%3E\");\r\n  color-scheme: light;\r\n}\r\n\r\n\/* ---------- base ---------- *\/\r\n*, *::before, *::after { box-sizing: border-box; }\r\nhtml { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-text-size-adjust: 100%; overflow-x: clip; }\r\nbody {\r\n  margin: 0; background: var(--bg); color: var(--fg);\r\n  font: 400 1.0625rem\/1.65 var(--f-body);\r\n  -webkit-font-smoothing: antialiased; overflow-x: clip;\r\n}\r\nbody::before {\r\n  content: \"\"; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px);\r\n  z-index: 60; background: var(--bg);\r\n}\r\nsvg { max-width: 100%; }\r\na { color: inherit; }\r\np { margin: 0; }\r\nh1, h2, h3, h4 { margin: 0; font-family: var(--f-display); text-wrap: balance; }\r\nul, ol { margin: 0; padding: 0; }\r\nb, strong { font-weight: 600; }\r\n::selection { background: var(--accent); color: var(--on-accent); }\r\n:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; }\r\n.defs { position: absolute; width: 0; height: 0; overflow: hidden; }\r\n\r\n.atmos, .spot { position: fixed; inset: 0; pointer-events: none; }\r\n.atmos {\r\n  z-index: -2;\r\n  background:\r\n    radial-gradient(1100px 620px at 88% -8%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 62%),\r\n    radial-gradient(900px 640px at -12% 45%, color-mix(in srgb, var(--accent-2) 9%, transparent), transparent 60%);\r\n}\r\n.spot {\r\n  z-index: -1;\r\n  background: radial-gradient(560px circle at var(--mx, 70%) var(--my, 20%), color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%);\r\n}\r\n\r\n\/* ---------- shared pieces ---------- *\/\r\n.band {\r\n  position: relative;\r\n  padding-block: clamp(80px, 11vw, 150px);\r\n  padding-left: max(20px, env(safe-area-inset-left, 0px));\r\n  padding-right: max(20px, env(safe-area-inset-right, 0px));\r\n}\r\n.band.alt {\r\n  background: var(--brush), color-mix(in srgb, var(--bg-2) 78%, transparent);\r\n  border-block: 1px solid var(--line);\r\n}\r\n.wrap { max-width: var(--maxw); margin-inline: auto; }\r\n\r\n.chrome {\r\n  background-image:\r\n    linear-gradient(100deg, transparent 38%, var(--sheen) 50%, transparent 62%),\r\n    linear-gradient(180deg, var(--t1) 0%, var(--t2) 46%, var(--t3) 53%, var(--t2) 76%, var(--t1) 100%);\r\n  background-size: 320% 100%, 100% 100%;\r\n  background-position: 100% 0, 0 0;\r\n  background-repeat: no-repeat;\r\n  -webkit-background-clip: text; background-clip: text;\r\n  -webkit-text-fill-color: transparent; color: transparent;\r\n  -webkit-box-decoration-break: clone; box-decoration-break: clone;\r\n}\r\n@keyframes sweep { from { background-position: 100% 0, 0 0; } to { background-position: 0% 0, 0 0; } }\r\n.in .chrome, .chrome.in, h1 .chrome { animation: sweep 2s var(--ease) .25s both; }\r\n\r\n.kicker {\r\n  display: flex; align-items: center; gap: 12px;\r\n  font: 500 .75rem\/1.3 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent);\r\n}\r\n.kicker::before { content: \"\"; width: 36px; height: 1px; flex: none; background: linear-gradient(90deg, var(--accent), transparent); }\r\n.sec-head { display: grid; gap: 20px; max-width: 880px; margin-bottom: clamp(44px, 6vw, 80px); }\r\nh2 { font-weight: 600; font-size: clamp(1.9rem, 1.05rem + 3vw, 3.3rem); line-height: 1.08; letter-spacing: -.025em; }\r\n.h3 { font-weight: 600; font-size: clamp(1.2rem, 1rem + .9vw, 1.6rem); line-height: 1.25; letter-spacing: -.015em; }\r\n.lead { font-size: clamp(1.06rem, 1rem + .35vw, 1.25rem); color: var(--muted); max-width: 62ch; }\r\n.muted { color: var(--muted); }\r\n.small { font-size: .9rem; }\r\n.label {\r\n  font: 500 .7rem\/1.3 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent);\r\n}\r\n.sub-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-top: clamp(64px, 8vw, 104px); }\r\n\r\n.plate {\r\n  position: relative; isolation: isolate; overflow: hidden;\r\n  border-radius: 18px; border: 1px solid var(--line);\r\n  background: var(--brush), linear-gradient(165deg, var(--panel-a), var(--panel-b));\r\n  box-shadow: inset 0 1px 0 var(--hi), inset 0 -1px 0 rgba(0, 0, 0, .22), 0 24px 48px -28px var(--shadow);\r\n}\r\n.plate::after {\r\n  content: \"\"; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;\r\n  background: radial-gradient(420px circle at var(--px, 50%) var(--py, 0%), var(--spec), transparent 48%);\r\n  opacity: 0; transition: opacity .45s;\r\n}\r\n.plate:hover::after { opacity: 1; }\r\n\r\n.rivets::before {\r\n  content: \"\"; position: absolute; inset: 0; pointer-events: none; z-index: -1;\r\n  background:\r\n    radial-gradient(circle at 14px 14px, var(--t1) 0 1px, var(--t3) 2.6px, transparent 3.6px),\r\n    radial-gradient(circle at calc(100% - 14px) 14px, var(--t1) 0 1px, var(--t3) 2.6px, transparent 3.6px),\r\n    radial-gradient(circle at 14px calc(100% - 14px), var(--t1) 0 1px, var(--t3) 2.6px, transparent 3.6px),\r\n    radial-gradient(circle at calc(100% - 14px) calc(100% - 14px), var(--t1) 0 1px, var(--t3) 2.6px, transparent 3.6px);\r\n  opacity: .7;\r\n}\r\n\r\n.ic {\r\n  width: 52px; height: 52px; flex: none; border-radius: 14px; display: grid; place-items: center;\r\n  color: var(--accent); border: 1px solid var(--line);\r\n  background: linear-gradient(160deg, var(--panel-a), var(--panel-b));\r\n  box-shadow: inset 0 1px 0 var(--hi), 0 8px 18px -10px var(--shadow);\r\n}\r\n.ic svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }\r\n\r\n.chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }\r\n.chips li {\r\n  font: 500 .8rem\/1 var(--f-mono); padding: 9px 12px; border-radius: 999px;\r\n  border: 1px solid var(--line); background: linear-gradient(180deg, var(--panel-a), var(--panel-b));\r\n  box-shadow: inset 0 1px 0 var(--hi);\r\n}\r\n\r\n.btn {\r\n  position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 10px;\r\n  padding: 15px 24px; border-radius: 999px; text-decoration: none;\r\n  font: 600 .95rem\/1 var(--f-body); color: var(--on-accent);\r\n  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 62%, white) 0%, var(--accent) 52%, color-mix(in srgb, var(--accent) 78%, black) 100%);\r\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -1px 0 rgba(0, 0, 0, .25), 0 12px 30px -12px var(--glow);\r\n  transition: transform .25s var(--ease), box-shadow .25s;\r\n}\r\n.btn::after {\r\n  content: \"\"; position: absolute; inset: 0;\r\n  background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, .55) 50%, transparent 65%);\r\n  transform: translateX(-120%); transition: transform .8s var(--ease);\r\n}\r\n.btn:hover { transform: translateY(-2px); }\r\n.btn:hover::after { transform: translateX(120%); }\r\n.btn.ghost {\r\n  color: var(--fg); border: 1px solid var(--line);\r\n  background: linear-gradient(180deg, var(--panel-a), var(--panel-b));\r\n  box-shadow: inset 0 1px 0 var(--hi), 0 10px 26px -16px var(--shadow);\r\n}\r\n.btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }\r\n\r\n\/* ---------- reveal on scroll ---------- *\/\r\n.rv [data-r] { transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0ms); }\r\n.rv [data-r]:not(.in) { opacity: 0; transform: translateY(28px); }\r\n.rv [data-r=\"l\"]:not(.in) { transform: translateX(-56px); }\r\n.rv [data-r=\"r\"]:not(.in) { transform: translateX(56px); }\r\n.rv [data-r=\"s\"]:not(.in) { transform: scale(.92); }\r\n\r\n\/* ---------- header ---------- *\/\r\n.top {\r\n  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50;\r\n  background: color-mix(in srgb, var(--bg) 76%, transparent);\r\n  -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);\r\n  border-bottom: 1px solid var(--line);\r\n}\r\n.top-in {\r\n  max-width: calc(var(--maxw) + 40px); margin-inline: auto;\r\n  display: flex; align-items: center; gap: 20px; padding-block: 10px;\r\n  padding-left: max(20px, env(safe-area-inset-left, 0px));\r\n  padding-right: max(20px, env(safe-area-inset-right, 0px));\r\n}\r\n.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: 0; }\r\n.brand svg { width: 38px; height: 30px; flex: none; }\r\n.brand-txt { font: 500 .68rem\/1.35 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }\r\n.brand-txt b { display: block; color: var(--fg); font-weight: 500; }\r\n.nav { display: flex; gap: 2px; margin-left: auto; }\r\n.nav a {\r\n  padding: 8px 13px; border-radius: 999px; text-decoration: none;\r\n  font-size: .88rem; font-weight: 500; color: var(--muted); transition: color .2s, background-color .2s;\r\n}\r\n.nav a:hover { color: var(--fg); }\r\n.nav a.on { color: var(--fg); background: var(--hi); box-shadow: inset 0 0 0 1px var(--line); }\r\n.progress {\r\n  position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; transform-origin: 0 50%; transform: scaleX(0);\r\n  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--t1));\r\n  box-shadow: 0 0 10px var(--glow);\r\n}\r\n@media (max-width: 1040px) { .nav { display: none; } }\r\n\r\n\/* ---------- hero ---------- *\/\r\n.hero { padding-top: clamp(40px, 7vw, 100px); padding-bottom: clamp(72px, 9vw, 120px); overflow: hidden; }\r\n.hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 5vw, 72px); align-items: center; }\r\n.eyebrow {\r\n  display: flex; flex-wrap: wrap; gap: 6px 14px;\r\n  font: 500 .74rem\/1.5 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted);\r\n}\r\n.eyebrow b { color: var(--accent); font-weight: 500; }\r\nh1 { margin-top: 22px; font-weight: 600; font-size: clamp(2.05rem, .8rem + 4.3vw, 4.3rem); line-height: 1.04; letter-spacing: -.03em; }\r\nh1 .l2 { display: block; margin-top: .12em; font-weight: 300; font-size: .62em; letter-spacing: -.01em; color: var(--fg); }\r\n.hero .lead { margin-top: 26px; }\r\n.cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }\r\n\r\n.stage { position: relative; width: min(100%, 440px); aspect-ratio: 1; justify-self: center; display: grid; place-items: center; }\r\n.disc {\r\n  position: absolute; inset: 5%; border-radius: 50%;\r\n  background:\r\n    repeating-radial-gradient(circle at 50% 50%, var(--groove) 0 1px, transparent 1px 3px),\r\n    conic-gradient(from 0deg,\r\n      var(--panel-b) 0deg, color-mix(in srgb, var(--t2) 30%, var(--panel-a)) 45deg, var(--panel-b) 90deg,\r\n      color-mix(in srgb, var(--t2) 18%, var(--panel-a)) 135deg, var(--panel-b) 180deg,\r\n      color-mix(in srgb, var(--t2) 30%, var(--panel-a)) 225deg, var(--panel-b) 270deg,\r\n      color-mix(in srgb, var(--t2) 18%, var(--panel-a)) 315deg, var(--panel-b) 360deg);\r\n  box-shadow: inset 0 0 0 1px var(--line), inset 0 2px 1px var(--hi), inset 0 -18px 40px rgba(0, 0, 0, .25), 0 50px 90px -50px var(--shadow);\r\n}\r\n.disc::after {\r\n  content: \"\"; position: absolute; inset: 14%; border-radius: 50%;\r\n  box-shadow: inset 0 0 0 1px var(--line), 0 0 0 1px var(--hi);\r\n}\r\n.halo { position: absolute; inset: 18%; border-radius: 50%; background: radial-gradient(closest-side, var(--glow), transparent); filter: blur(30px); opacity: .55; }\r\n.hero-mark {\r\n  position: relative; width: 60%; overflow: visible;\r\n  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));\r\n  transition: transform .6s var(--ease);\r\n  filter: drop-shadow(0 18px 22px var(--shadow));\r\n}\r\n.pc { transform-box: view-box; }\r\n.js .pc { animation: piece-in 1.2s var(--ease) both; animation-delay: calc(var(--i) * 90ms + 150ms); }\r\n@keyframes piece-in { from { opacity: 0; transform: translate(var(--dx), var(--dy)); } }\r\n.glint { animation: glint 7s var(--ease) 1.3s infinite both; }\r\n@keyframes glint { 0% { transform: translateX(-120px) skewX(-20deg); } 24%, 100% { transform: translateX(300px) skewX(-20deg); } }\r\n\r\n.js .hero-copy > * { animation: rise 1s var(--ease) both; }\r\n.js .hero-copy > :nth-child(2) { animation-delay: .08s; }\r\n.js .hero-copy > :nth-child(3) { animation-delay: .18s; }\r\n.js .hero-copy > :nth-child(4) { animation-delay: .28s; }\r\n.js .facts { animation: rise 1s var(--ease) .45s both; }\r\n@keyframes rise { from { opacity: 0; transform: translateY(24px); } }\r\n\r\n.facts { margin-top: clamp(48px, 7vw, 88px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }\r\n.fact { padding: 30px 30px 28px; display: grid; gap: 6px; align-content: start; border-left: 1px solid var(--line); }\r\n.fact:first-child { border-left: 0; }\r\n.fact .n { font: 600 clamp(2.4rem, 1.5rem + 2.6vw, 3.6rem)\/1 var(--f-display); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }\r\n.fact .u { margin-top: 6px; font: 500 .74rem\/1.4 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; }\r\n.fact .s { font-size: .92rem; color: var(--muted); }\r\n@media (max-width: 900px) {\r\n  .hero-grid { grid-template-columns: minmax(0, 1fr); }\r\n  .stage { order: -1; width: min(76vw, 320px); }\r\n}\r\n@media (max-width: 760px) {\r\n  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }\r\n  .fact { padding: 24px 20px; }\r\n  .fact:nth-child(3) { border-left: 0; }\r\n  .fact:nth-child(n+3) { border-top: 1px solid var(--line); }\r\n}\r\n\r\n\/* ---------- goals ---------- *\/\r\n.list-intro { margin-bottom: 18px; }\r\n.outcomes { list-style: none; border-top: 1px solid var(--line); }\r\n.oc {\r\n  position: relative; display: grid; grid-template-columns: 52px minmax(0, 17rem) minmax(0, 1fr);\r\n  gap: 6px 32px; align-items: center; padding-block: 26px; border-bottom: 1px solid var(--line);\r\n}\r\n.oc::after {\r\n  content: \"\"; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;\r\n  background: linear-gradient(90deg, transparent, var(--accent), transparent);\r\n  transform: scaleX(0); transition: transform .8s var(--ease);\r\n}\r\n.oc:hover::after { transform: scaleX(1); }\r\n.oc:hover .ic { color: var(--t1); box-shadow: inset 0 1px 0 var(--hi), 0 0 24px -4px var(--glow); }\r\n.oc .verb { font: 600 clamp(1.3rem, 1rem + 1.1vw, 1.8rem)\/1.15 var(--f-display); letter-spacing: -.02em; }\r\n.oc p { color: var(--muted); font-size: 1.05rem; max-width: 60ch; }\r\n@media (max-width: 760px) {\r\n  .oc { grid-template-columns: 44px minmax(0, 1fr); gap: 6px 18px; align-items: start; }\r\n  .oc .ic { width: 44px; height: 44px; grid-row: span 2; border-radius: 12px; }\r\n  .oc .ic svg { width: 22px; height: 22px; }\r\n}\r\n\r\n.anatomy { margin-top: clamp(64px, 8vw, 104px); }\r\n.an-track { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 32px; }\r\n.an-line {\r\n  position: absolute; left: 9px; right: 9px; top: 8px; height: 2px; border-radius: 2px;\r\n  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--t2));\r\n  transform-origin: left; transition: transform 1.6s var(--ease) .25s;\r\n}\r\n.rv .anatomy:not(.in) .an-line { transform: scaleX(0); }\r\n.an-step { position: relative; padding-top: 38px; display: grid; gap: 10px; align-content: start; }\r\n.an-dot {\r\n  position: absolute; top: 0; left: 0; width: 18px; height: 18px; border-radius: 50%;\r\n  background: radial-gradient(circle at 35% 30%, var(--t1), var(--accent) 60%, var(--t3));\r\n  box-shadow: 0 0 0 5px var(--bg), 0 0 16px var(--glow);\r\n}\r\n.an-step:nth-child(3) .an-dot { left: calc(50% - 9px); }\r\n.an-step:nth-child(4) .an-dot { left: auto; right: 0; }\r\n.an-step:nth-child(4) { text-align: right; justify-items: end; }\r\n.an-step:nth-child(3) { text-align: center; justify-items: center; }\r\n.an-step p { font-size: 1.06rem; }\r\n.an-step .chips { justify-content: center; margin-top: 6px; }\r\n@media (max-width: 760px) {\r\n  .an-track { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-left: 36px; }\r\n  .an-line { left: 8px; right: auto; top: 8px; bottom: 8px; width: 2px; height: auto; transform-origin: top; }\r\n  .rv .anatomy:not(.in) .an-line { transform: scaleY(0); }\r\n  .an-step, .an-step:nth-child(3), .an-step:nth-child(4) { padding-top: 0; text-align: left; justify-items: start; }\r\n  .an-step .an-dot, .an-step:nth-child(3) .an-dot, .an-step:nth-child(4) .an-dot { left: -36px; right: auto; top: 3px; }\r\n  .an-step .chips { justify-content: flex-start; }\r\n}\r\n\r\n\/* ---------- audience ---------- *\/\r\n.profiles { display: grid; grid-template-columns: minmax(0, 1fr) 210px minmax(0, 1fr); align-items: center; }\r\n.profile { padding: clamp(24px, 3vw, 40px); display: grid; gap: 18px; align-content: start; height: 100%; }\r\n.profile h3 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); font-weight: 600; letter-spacing: -.02em; }\r\n.profile dl { margin: 0; display: grid; gap: 18px; }\r\n.profile dt { margin-bottom: 6px; }\r\n.profile dd { margin: 0; }\r\n.profile .note { margin-top: 12px; font-size: .95rem; color: var(--muted); font-style: italic; }\r\n.joint { position: relative; z-index: 1; display: grid; justify-items: center; gap: 10px; text-align: center; padding: 12px 0; }\r\n.joint svg { width: 210px; overflow: visible; }\r\n.joint p { font: 500 .72rem\/1.45 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); max-width: 17em; }\r\n.joint p b { display: block; color: var(--fg); font-weight: 500; }\r\n.venn circle { fill: none; stroke: var(--accent); stroke-width: 1.5; transition: transform 1.1s var(--ease) .2s; }\r\n.venn .lens { fill: color-mix(in srgb, var(--accent) 38%, transparent); stroke: none; transition: opacity .7s 1s; }\r\n.venn .wire { stroke: var(--line); stroke-width: 1.5; stroke-dasharray: 3 4; }\r\n.rv .joint:not(.in) .va { transform: translateX(-30px); }\r\n.rv .joint:not(.in) .vb { transform: translateX(30px); }\r\n.rv .joint:not(.in) .lens { opacity: 0; }\r\n@media (max-width: 920px) {\r\n  .profiles { grid-template-columns: minmax(0, 1fr); }\r\n  .joint { padding: 24px 0; }\r\n}\r\n\r\n.prereq {\r\n  display: flex; align-items: center; gap: 18px; margin-top: 24px; padding: 18px 22px;\r\n  border-radius: 16px; border: 1px dashed color-mix(in srgb, var(--accent) 45%, transparent);\r\n  background: color-mix(in srgb, var(--bg) 50%, transparent);\r\n}\r\n.prereq .ic { width: 44px; height: 44px; border-radius: 12px; }\r\n.prereq .ic svg { width: 22px; height: 22px; }\r\n\r\n.bridges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin-top: 32px; }\r\n.bridge { display: grid; gap: 14px; align-content: start; padding-top: 24px; border-top: 1px solid var(--line); }\r\n.bridge h4 { font-size: 1.12rem; font-weight: 600; letter-spacing: -.01em; }\r\n.bridge p { color: var(--muted); }\r\n@media (max-width: 860px) { .bridges { grid-template-columns: minmax(0, 1fr); } }\r\n\r\n\/* ---------- format ---------- *\/\r\n.rhythm-scroll { overflow-x: auto; padding: 6px 2px 10px; margin-inline: -2px; scrollbar-width: thin; }\r\n.rhythm, .ph-row { min-width: 720px; display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: 6px; }\r\n.wk {\r\n  position: relative; height: 78px; border-radius: 12px; display: grid; place-items: center;\r\n  font: 600 .95rem\/1 var(--f-display);\r\n}\r\n.wk-n { position: absolute; top: 7px; left: 8px; font: 500 .62rem\/1 var(--f-mono); color: var(--muted); letter-spacing: .04em; }\r\n.wk.x { border: 1px dashed var(--line); background: repeating-linear-gradient(135deg, var(--line) 0 1.5px, transparent 1.5px 7px); }\r\n.wk.e { border: 1px dashed var(--line); opacity: .55; }\r\n.wk.t {\r\n  appearance: none; cursor: pointer; color: var(--fg); padding: 0;\r\n  border: 1px solid var(--line);\r\n  background: var(--brush), linear-gradient(170deg, color-mix(in srgb, var(--t2) 22%, var(--panel-a)), var(--panel-b));\r\n  box-shadow: inset 0 1px 0 var(--hi), 0 10px 20px -14px var(--shadow);\r\n  transition: border-color .25s, box-shadow .25s, color .25s;\r\n}\r\n.wk.t .wk-l { position: relative; }\r\n.wk.t:hover, .wk.t.on { border-color: var(--accent); box-shadow: inset 0 1px 0 var(--hi), 0 0 0 1px var(--accent), 0 0 26px -6px var(--glow); }\r\n.wk.t.on .wk-n { color: var(--accent); }\r\n.rv .rhythm-scroll:not(.in) .wk { opacity: 0; }\r\n.rhythm-scroll.in .wk { animation: pop .7s var(--ease) both; animation-delay: calc(var(--i) * 45ms + 150ms); }\r\n@keyframes pop { from { opacity: 0; transform: translateY(14px) scale(.85); } }\r\n.ph-row { margin-top: 12px; }\r\n.ph-row span {\r\n  padding-top: 9px; border-top: 2px solid var(--accent);\r\n  font: 500 .66rem\/1.3 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted);\r\n}\r\n.ph-row span:nth-child(2) { border-color: var(--accent-2); }\r\n.ph-row span:nth-child(3) { border-color: var(--t2); }\r\n.ph-row span:nth-child(4) { border-color: var(--accent); }\r\n.rh-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 28px; margin-top: 18px; }\r\n.rh-cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-height: 1.7em; }\r\n.rh-cap b { font-family: var(--f-display); font-weight: 600; }\r\n.rh-cap span { font: 500 .72rem\/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }\r\n.legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: .85rem; color: var(--muted); }\r\n.legend span { display: inline-flex; align-items: center; gap: 8px; }\r\n.legend i { width: 16px; height: 16px; border-radius: 5px; border: 1px solid var(--line); }\r\n.legend i.t { background: linear-gradient(170deg, color-mix(in srgb, var(--t2) 30%, var(--panel-a)), var(--panel-b)); }\r\n.legend i.x { border-style: dashed; background: repeating-linear-gradient(135deg, var(--line) 0 1.5px, transparent 1.5px 5px); }\r\n\r\n.workload { margin-top: 28px; padding: clamp(22px, 3vw, 36px); display: grid; gap: 22px; }\r\n.wl-top { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }\r\n.seg {\r\n  display: inline-flex; padding: 4px; border-radius: 999px; border: 1px solid var(--line);\r\n  background: var(--bg); box-shadow: inset 0 2px 5px rgba(0, 0, 0, .28);\r\n}\r\n.seg button {\r\n  appearance: none; border: 0; background: none; cursor: pointer; color: var(--muted);\r\n  font: 600 .88rem\/1 var(--f-body); padding: 11px 16px; border-radius: 999px;\r\n  transition: color .25s, background-color .25s, box-shadow .25s;\r\n}\r\n.seg button[aria-checked=\"true\"] {\r\n  color: var(--on-accent);\r\n  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 62%, white), var(--accent) 55%, color-mix(in srgb, var(--accent) 80%, black));\r\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 4px 14px -4px var(--glow);\r\n}\r\n.meter { position: relative; padding-top: 30px; }\r\n.m-tags { position: absolute; inset: 0 0 auto; height: 22px; font: 600 .74rem\/22px var(--f-mono); }\r\n.m-tags span { position: absolute; top: 0; white-space: nowrap; transition: opacity .5s; }\r\n.m-tags .tb { left: 0; color: var(--accent); }\r\n.m-tags .ta { left: 50%; padding-left: 10px; color: var(--accent-2); opacity: 0; }\r\n.workload[data-level=\"napredni\"] .m-tags .ta { opacity: 1; transition-delay: .4s; }\r\n.m-track {\r\n  position: relative; height: 30px; border-radius: 999px; overflow: hidden;\r\n  background: var(--bg); border: 1px solid var(--line); box-shadow: inset 0 2px 6px rgba(0, 0, 0, .3);\r\n}\r\n.m-track > span { position: absolute; top: 0; bottom: 0; transform-origin: left; }\r\n.m-base {\r\n  left: 0; width: 50%;\r\n  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 55%, white), var(--accent) 50%, color-mix(in srgb, var(--accent) 70%, black));\r\n  transition: transform 1.1s var(--ease) .2s;\r\n}\r\n.m-adv {\r\n  left: 50%; width: 37.5%; transform: scaleX(0);\r\n  background: linear-gradient(180deg, color-mix(in srgb, var(--accent-2) 55%, white), var(--accent-2) 50%, color-mix(in srgb, var(--accent-2) 70%, black));\r\n  transition: transform .8s var(--ease);\r\n}\r\n.m-rng {\r\n  left: 87.5%; width: 12.5%; transform: scaleX(0);\r\n  background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 75%, transparent) 0 4px, transparent 4px 8px);\r\n  transition: transform .6s var(--ease) .55s;\r\n}\r\n.workload[data-level=\"napredni\"] .m-adv, .workload[data-level=\"napredni\"] .m-rng { transform: scaleX(1); }\r\n.rv .workload:not(.in) .m-base { transform: scaleX(0); }\r\n.m-ticks { position: relative; height: 18px; margin-top: 8px; font: 500 .72rem\/18px var(--f-mono); color: var(--muted); font-variant-numeric: tabular-nums; }\r\n.m-ticks span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }\r\n.m-ticks span:first-child { transform: none; }\r\n.m-ticks span:last-child { transform: translateX(-100%); }\r\n.wl-sum { font-size: 1.05rem; }\r\n.workload:not([data-level=\"napredni\"]) [data-show=\"napredni\"], .workload[data-level=\"napredni\"] [data-show=\"osnovni\"] { display: none; }\r\n\r\n.between { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin-top: clamp(40px, 5vw, 60px); }\r\n.bt { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: start; }\r\n.bt .ic { width: 44px; height: 44px; border-radius: 12px; }\r\n.bt .ic svg { width: 22px; height: 22px; }\r\n.bt h4 { font-size: 1.05rem; font-weight: 600; margin-bottom: 6px; }\r\n.bt p { color: var(--muted); font-size: .98rem; }\r\n.org-note { margin-top: clamp(36px, 4vw, 48px); padding-top: 20px; border-top: 1px solid var(--line); font-size: .95rem; color: var(--muted); }\r\n@media (max-width: 860px) { .between { grid-template-columns: minmax(0, 1fr); } }\r\n\r\n\/* ---------- tools ---------- *\/\r\n.agent-def { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }\r\n.def-q { font: 400 clamp(1.25rem, .95rem + 1.15vw, 1.85rem)\/1.42 var(--f-display); letter-spacing: -.015em; }\r\n.def-q em { font-style: normal; color: var(--accent); }\r\n.def-q + p { margin-top: 22px; }\r\n.loop { width: 100%; max-width: 500px; justify-self: center; }\r\n.loop svg { width: 100%; height: auto; display: block; overflow: visible; }\r\n.loop text { font-family: var(--f-body); }\r\n.loop .ring { fill: none; stroke: var(--line); stroke-width: 2; }\r\n.loop .arrow { fill: var(--accent); opacity: .8; }\r\n.loop .pill { fill: var(--panel-a); stroke: var(--line); stroke-width: 1.5; }\r\n.loop .pill-t { fill: var(--fg); font-size: 15px; font-weight: 500; }\r\n.loop .hub { fill: var(--panel-b); stroke: var(--line); stroke-width: 1.5; }\r\n.loop .hub-ring { fill: none; stroke: var(--accent); stroke-width: 1; stroke-dasharray: 2 5; opacity: .6; }\r\n.loop .hub-t1 { fill: var(--fg); font: 600 19px var(--f-display); }\r\n.loop .hub-t2 { fill: var(--muted); font-size: 14px; }\r\n.loop .gate { fill: var(--bg); stroke: var(--accent); stroke-width: 1.5; }\r\n.loop .gate-i { fill: none; stroke: var(--accent); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }\r\n.loop .gate-t { fill: var(--muted); font: 500 12px var(--f-mono); letter-spacing: .06em; }\r\n.loop .dot-glow { fill: var(--accent); opacity: .25; }\r\n.loop .dot { fill: var(--t1); stroke: var(--accent); stroke-width: 2; }\r\n.orbit { transform-box: view-box; transform-origin: 240px 220px; animation: orbit 8s linear infinite paused; }\r\n.node-g .pill { animation: node-on 8s linear infinite paused; animation-delay: calc(var(--k) * 2s - .3s); }\r\n.gate-g .gate { animation: gate-on 8s linear infinite paused; animation-delay: 2.7s; }\r\n.loop.in .orbit, .loop.in .node-g .pill, .loop.in .gate-g .gate { animation-play-state: running; }\r\n@keyframes orbit { to { transform: rotate(360deg); } }\r\n@keyframes node-on {\r\n  0% { stroke: var(--line); fill: var(--panel-a); }\r\n  4%, 19% { stroke: var(--accent); fill: color-mix(in srgb, var(--accent) 22%, var(--panel-a)); }\r\n  27%, 100% { stroke: var(--line); fill: var(--panel-a); }\r\n}\r\n@keyframes gate-on {\r\n  0% { fill: var(--bg); }\r\n  4%, 12% { fill: color-mix(in srgb, var(--accent) 40%, var(--bg)); }\r\n  20%, 100% { fill: var(--bg); }\r\n}\r\n@media (max-width: 900px) { .agent-def { grid-template-columns: minmax(0, 1fr); } }\r\n\r\n.agents { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); margin-top: 28px; }\r\n.agent { padding: 28px; display: flex; flex-direction: column; gap: 14px; }\r\n.ag-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }\r\n.ag-top .ic { width: 46px; height: 46px; border-radius: 12px; background: var(--bg); box-shadow: inset 0 2px 5px rgba(0, 0, 0, .28); }\r\n.ag-top .ic svg { width: 23px; height: 23px; }\r\n.badge {\r\n  font: 500 .66rem\/1 var(--f-mono); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap;\r\n  padding: 7px 10px; border-radius: 999px; color: var(--accent);\r\n  border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);\r\n}\r\n.agent h4 { font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; }\r\n.agent h4 a { text-decoration: none; }\r\n.agent h4 a:hover { color: var(--accent); }\r\n.agent h4 small { display: block; margin-top: 6px; font: 500 .72rem\/1.4 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }\r\n.agent > p { color: var(--muted); font-size: .98rem; }\r\n.role { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); }\r\n.role p { margin-top: 8px; font-weight: 500; }\r\n.ext { font-size: .8em; color: var(--accent); }\r\n@media (max-width: 900px) { .agents { grid-template-columns: minmax(0, 1fr); } }\r\n\r\n.term-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 4vw, 56px); align-items: center; margin-top: clamp(48px, 6vw, 80px); }\r\n.term-copy { display: grid; gap: 14px; align-content: start; }\r\n.mode-list { list-style: none; display: grid; gap: 12px; margin-top: 4px; }\r\n.mode-list li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 12px; align-items: baseline; }\r\n.mode-list b { font: 600 .78rem\/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }\r\n.term {\r\n  border-radius: 16px; overflow: hidden; background: #090b11; color: #dfe5f0;\r\n  border: 1px solid var(--line);\r\n  box-shadow: 0 30px 60px -30px var(--shadow), inset 0 1px 0 rgba(255, 255, 255, .06);\r\n  font: 400 .86rem\/1.65 var(--f-mono);\r\n}\r\n.term-bar { display: flex; align-items: center; gap: 12px; padding: 9px 10px 9px 16px; background: linear-gradient(180deg, #1c2029, #12151d); border-bottom: 1px solid rgba(255, 255, 255, .08); }\r\n.dots { display: flex; gap: 7px; flex: none; }\r\n.dots i { width: 11px; height: 11px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #f4f6fa, #6b7180 60%, #2a2e37); }\r\n.term-title { flex: 1; min-width: 0; color: #8b93a7; font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\r\n.term-tabs { display: flex; flex: none; padding: 3px; border-radius: 9px; background: #06070b; border: 1px solid rgba(255, 255, 255, .08); }\r\n.term-tabs button {\r\n  appearance: none; border: 0; background: none; cursor: pointer; color: #8b93a7;\r\n  font: 600 .76rem\/1 var(--f-mono); letter-spacing: .04em; padding: 8px 12px; border-radius: 6px;\r\n  transition: background-color .25s, color .25s;\r\n}\r\n.term-tabs button[aria-selected=\"true\"] { background: var(--term-acc); color: #06070b; }\r\n.term-tabs button.nudge { animation: nudge 1.6s ease-in-out infinite; }\r\n@keyframes nudge { 50% { box-shadow: 0 0 0 2px var(--term-acc); color: #fff; } }\r\n.term-body { padding: 18px 20px 22px; min-height: 340px; }\r\n.ln { white-space: pre-wrap; overflow-wrap: anywhere; }\r\n.ln.p { color: #ffffff; margin-bottom: 10px; }\r\n.ln .pr { color: var(--term-acc); }\r\n.ln.s { color: var(--term-acc); }\r\n.ln.m { color: #8b93a7; }\r\n.ln.ok { color: #84e2ad; }\r\n.ln.q { color: #f3c86b; }\r\n.ln.in { padding-left: 2ch; }\r\n.ln.gap { margin-top: 10px; }\r\n.ln code { color: #ffffff; }\r\n.caret { display: inline-block; width: .6em; height: 1.1em; vertical-align: -.2em; background: var(--term-acc); animation: blink 1s steps(1) infinite; }\r\n@keyframes blink { 50% { opacity: 0; } }\r\n.term-body.play .ln { animation: ln-in .45s var(--ease) both; animation-delay: calc(var(--i) * 320ms); }\r\n@keyframes ln-in { from { opacity: 0; transform: translateY(5px); } }\r\n.term-note { padding: 10px 20px 12px; border-top: 1px solid rgba(255, 255, 255, .07); color: #6f778b; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }\r\n@media (max-width: 900px) { .term-wrap { grid-template-columns: minmax(0, 1fr); } .term-body { min-height: 0; } }\r\n\r\n.models { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(16px, 2vw, 24px); margin-top: 28px; }\r\n.model { padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 16px; }\r\n.model h4 { font-size: 1.3rem; font-weight: 600; letter-spacing: -.01em; }\r\n.model h4 a { text-decoration: none; }\r\n.model h4 a:hover { color: var(--accent); }\r\n.model > p { color: var(--muted); }\r\n.inset {\r\n  padding: 20px; border-radius: 14px; display: grid; gap: 14px;\r\n  border: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 55%, transparent);\r\n  box-shadow: inset 0 2px 6px rgba(0, 0, 0, .18);\r\n}\r\n.inset .pv { font-weight: 600; }\r\n.stamp {\r\n  justify-self: start; padding: 8px 12px; border-radius: 6px; transform: rotate(-2deg);\r\n  font: 600 .68rem\/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--accent);\r\n  border: 1.5px solid var(--accent); opacity: .9;\r\n}\r\n.plans { display: grid; gap: 12px; }\r\n.plan ul { list-style: none; display: grid; gap: 6px; margin-top: 10px; }\r\n.plan li { position: relative; padding-left: 22px; }\r\n.plan li::before { content: \"\"; position: absolute; left: 2px; top: .62em; width: 9px; height: 5px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg); }\r\n.plan.plus { border-color: color-mix(in srgb, var(--accent) 50%, transparent); }\r\n@media (max-width: 900px) { .models { grid-template-columns: minmax(0, 1fr); } }\r\n\r\n.gantt { margin-top: 28px; }\r\n.g-head, .g-row { display: grid; grid-template-columns: minmax(0, 21rem) minmax(0, 1fr); gap: 10px 32px; align-items: center; }\r\n.g-head { padding-bottom: 8px; border-bottom: 1px solid var(--line); }\r\n.g-head > span { font: 500 .7rem\/1 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }\r\n.g-cols { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 2px; }\r\n.g-col {\r\n  appearance: none; border: 0; background: none; cursor: pointer; color: var(--muted);\r\n  font: 600 .76rem\/1 var(--f-mono); letter-spacing: .06em; padding: 10px 0; border-radius: 8px;\r\n  transition: color .2s, background-color .2s;\r\n}\r\n.g-col:hover, .g-col.on { color: var(--fg); background: var(--hi); box-shadow: inset 0 0 0 1px var(--line); }\r\n.g-rows { list-style: none; }\r\n.g-row { padding-block: 14px; border-bottom: 1px solid var(--line); transition: opacity .3s; }\r\n.g-row.dim { opacity: .28; }\r\n.g-lab b { display: block; font-size: .98rem; }\r\n.g-lab span { display: block; color: var(--muted); font-size: .88rem; }\r\n.g-track { position: relative; height: 26px; background: repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 12.5%); }\r\n.g-bar {\r\n  position: absolute; top: 6px; bottom: 6px; left: calc((var(--from) - 1) * 12.5% + 6px); right: 0;\r\n  border-radius: 999px; transform-origin: left;\r\n  background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 18%, transparent));\r\n  transition: transform 1.1s var(--ease); transition-delay: calc(var(--k) * 90ms + 200ms);\r\n}\r\n.g-pin {\r\n  position: absolute; left: -6px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%;\r\n  background: radial-gradient(circle at 35% 30%, var(--t1), var(--accent) 55%, var(--t3));\r\n  box-shadow: 0 0 0 3px var(--bg), 0 0 14px var(--glow);\r\n}\r\n.rv .gantt:not(.in) .g-bar { transform: scaleX(0); }\r\n.g-cap { margin-top: 16px; min-height: 1.6em; color: var(--muted); }\r\n.g-cap b { color: var(--fg); }\r\n@media (max-width: 760px) {\r\n  .g-head, .g-row { grid-template-columns: minmax(0, 1fr); }\r\n  .g-head > span { display: none; }\r\n}\r\n\r\n\/* ---------- program timeline ---------- *\/\r\n.tl-intro { display: grid; gap: 14px; max-width: 920px; margin-bottom: clamp(48px, 6vw, 84px); }\r\n.tl-big { font: 600 clamp(1.45rem, 1rem + 2vw, 2.45rem)\/1.2 var(--f-display); letter-spacing: -.02em; text-wrap: balance; }\r\n.tl { --ph-w: 260px; --rx: calc(var(--ph-w) + 28px); --ix: calc(var(--ph-w) + 56px); position: relative; display: grid; gap: clamp(44px, 5vw, 68px); }\r\n.tl-rail { position: absolute; left: var(--rx); top: 0; bottom: 0; width: 2px; margin-left: -1px; border-radius: 2px; background: var(--line); }\r\n.tl-fill {\r\n  position: absolute; inset: 0 0 auto; height: calc(var(--fill, 0) * 100%); border-radius: inherit;\r\n  background: linear-gradient(180deg, var(--accent-2), var(--accent)); box-shadow: 0 0 12px var(--glow);\r\n}\r\n.tl-fill::after {\r\n  content: \"\"; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%;\r\n  background: var(--t1); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 18px var(--accent);\r\n}\r\n.phase { display: grid; grid-template-columns: var(--ph-w) minmax(0, 1fr); column-gap: 56px; }\r\n.ph-label { position: sticky; top: 104px; align-self: start; display: grid; gap: 8px; padding-top: 20px; }\r\n.ph-label h3 { font-size: 1.35rem; font-weight: 600; letter-spacing: -.015em; }\r\n.ph-label .muted { font-size: .92rem; }\r\n.ph-items { list-style: none; display: grid; gap: 16px; }\r\n.ti { position: relative; }\r\n.ti .node {\r\n  position: absolute; left: calc(var(--rx) - var(--ix) - 8px); top: 30px; width: 16px; height: 16px; border-radius: 50%;\r\n  background: var(--bg); border: 2px solid var(--line); transition: background-color .4s, border-color .4s, box-shadow .4s;\r\n}\r\n.ti.lit .node { border-color: var(--accent); background: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent), 0 0 18px var(--glow); }\r\n.tcard { padding: 22px 26px; display: grid; gap: 8px; }\r\n.tc-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font: 500 .7rem\/1.2 var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }\r\n.tc-meta b { color: var(--accent); font-weight: 500; }\r\n.tcard h4 { font-size: clamp(1.08rem, 1rem + .5vw, 1.35rem); font-weight: 600; letter-spacing: -.01em; }\r\n.tcard p { color: var(--muted); }\r\n.ti.final .tcard {\r\n  border-color: color-mix(in srgb, var(--accent) 60%, transparent);\r\n  box-shadow: inset 0 1px 0 var(--hi), 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent), 0 24px 60px -24px var(--glow);\r\n}\r\n.ti.ping .tcard { animation: ping 1.4s var(--ease); }\r\n@keyframes ping { 0%, 40% { box-shadow: 0 0 0 2px var(--accent), 0 0 40px -6px var(--glow); } }\r\n@media (max-width: 860px) {\r\n  .tl { --ph-w: 0px; --rx: 11px; --ix: 40px; }\r\n  .phase { grid-template-columns: minmax(0, 1fr); row-gap: 16px; column-gap: 0; padding-left: var(--ix); }\r\n  .ph-label { position: static; padding-top: 0; }\r\n  .tcard { padding: 20px; }\r\n}\r\n\r\n\/* ---------- footer ---------- *\/\r\n.foot { padding-block: clamp(64px, 8vw, 110px) 40px; border-top: 1px solid var(--line); background: var(--brush), color-mix(in srgb, var(--bg-2) 80%, transparent); }\r\n.foot-grid { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px 48px; align-items: center; }\r\n.foot-mark { width: 120px; height: 95px; overflow: visible; }\r\n.foot-title { font: 600 clamp(1.1rem, 1rem + .8vw, 1.5rem)\/1.25 var(--f-display); letter-spacing: -.015em; }\r\n.foot-title + p { margin-top: 8px; }\r\n.foot-meta {\r\n  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: 52px; padding-top: 22px;\r\n  border-top: 1px solid var(--line); font: 500 .74rem\/1.5 var(--f-mono); letter-spacing: .06em; color: var(--muted);\r\n}\r\n.foot-meta a { text-decoration: none; }\r\n.foot-meta a:hover { color: var(--accent); }\r\n@media (max-width: 760px) {\r\n  .foot-grid { grid-template-columns: minmax(0, 1fr); }\r\n  .foot-mark { width: 96px; height: 76px; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }\r\n  html { scroll-behavior: auto; }\r\n  .glint { display: none; }\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"atmos\" aria-hidden=\"true\"><\/div>\r\n<div class=\"spot\" aria-hidden=\"true\"><\/div>\r\n\r\n<svg class=\"defs\" aria-hidden=\"true\" focusable=\"false\">\r\n  <defs>\r\n    <linearGradient id=\"mg\" gradientUnits=\"userSpaceOnUse\" x1=\"0\" y1=\"0\" x2=\"221\" y2=\"174\">\r\n      <stop offset=\"0\" style=\"stop-color: var(--l1)\"\/>\r\n      <stop offset=\".34\" style=\"stop-color: var(--l2)\"\/>\r\n      <stop offset=\".5\" style=\"stop-color: var(--l3)\"\/>\r\n      <stop offset=\".6\" style=\"stop-color: var(--l4)\"\/>\r\n      <stop offset=\".86\" style=\"stop-color: var(--l2)\"\/>\r\n      <stop offset=\"1\" style=\"stop-color: var(--l4)\"\/>\r\n    <\/linearGradient>\r\n    <linearGradient id=\"sh\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\r\n      <stop offset=\"0\" stop-color=\"#fff\" stop-opacity=\"0\"\/>\r\n      <stop offset=\".5\" stop-color=\"#fff\" stop-opacity=\".85\"\/>\r\n      <stop offset=\"1\" stop-color=\"#fff\" stop-opacity=\"0\"\/>\r\n    <\/linearGradient>\r\n    <radialGradient id=\"hubg\" cx=\".4\" cy=\".3\" r=\".8\">\r\n      <stop offset=\"0\" style=\"stop-color: var(--panel-a)\"\/>\r\n      <stop offset=\"1\" style=\"stop-color: var(--panel-b)\"\/>\r\n    <\/radialGradient>\r\n    <clipPath id=\"mark-clip\">\r\n      <path d=\"M2 171V19Q2 11.4 9 12.8L40 19.2V116.6Z\"\/>\r\n      <path d=\"M47 20L63 23.2V83.6L47 106.9Z\"\/>\r\n      <path d=\"M47 120.4L84 66.5V172H54Q47 172 47 165Z\"\/>\r\n      <path d=\"M92 54.5L107 32.7V172H92Z\"\/>\r\n      <path d=\"M109.8 31L125.9 7Q130.5 .4 138.2 2.5L219 24.5V50.2L188 45V121.6L153 172V38.4Z\"\/>\r\n      <path d=\"M161.7 172L188 133.9V166Q188 172 182 172Z\"\/>\r\n    <\/clipPath>\r\n    <symbol id=\"iit-mark\" viewBox=\"0 0 221 174\">\r\n      <g fill=\"url(#mg)\">\r\n        <path d=\"M2 171V19Q2 11.4 9 12.8L40 19.2V116.6Z\"\/>\r\n        <path d=\"M47 20L63 23.2V83.6L47 106.9Z\"\/>\r\n        <path d=\"M47 120.4L84 66.5V172H54Q47 172 47 165Z\"\/>\r\n        <path d=\"M92 54.5L107 32.7V172H92Z\"\/>\r\n        <path d=\"M109.8 31L125.9 7Q130.5 .4 138.2 2.5L219 24.5V50.2L188 45V121.6L153 172V38.4Z\"\/>\r\n        <path d=\"M161.7 172L188 133.9V166Q188 172 182 172Z\"\/>\r\n      <\/g>\r\n    <\/symbol>\r\n  <\/defs>\r\n<\/svg>\r\n\r\n<header class=\"top\">\r\n  <div class=\"top-in\">\r\n    <a class=\"brand\" href=\"#vrh\" aria-label=\"Na vrh stranice\">\r\n      <svg viewBox=\"0 0 221 174\" aria-hidden=\"true\"><use href=\"#iit-mark\"\/><\/svg>\r\n      <span class=\"brand-txt\"><b>Institut za informacione tehnologije<\/b>Kragujevac<\/span>\r\n    <\/a>\r\n    <nav class=\"nav\" aria-label=\"Sekcije\">\r\n      <a href=\"#ciljevi\">Ciljevi<\/a>\r\n      <a href=\"#polaznici\">Polaznici<\/a>\r\n      <a href=\"#format\">Format<\/a>\r\n      <a href=\"#alati\">Alati<\/a>\r\n      <a href=\"#program\">Program<\/a>\r\n    <\/nav>\r\n  <\/div>\r\n  <div class=\"progress\" aria-hidden=\"true\"><\/div>\r\n<\/header>\r\n\r\n<main>\r\n<!-- ============ HERO ============ -->\r\n<section class=\"hero band\" id=\"vrh\">\r\n  <div class=\"wrap hero-grid\">\r\n    <div class=\"hero-copy\">\r\n      <p class=\"eyebrow\"><b>Program obuke<\/b><span>Institut za informacione tehnologije Kragujevac<\/span><\/p>\r\n      <h1><span class=\"chrome\">Ve\u0161ta\u010dka inteligencija<\/span> <span class=\"l2\">u svakodnevnom radu<\/span><\/h1>\r\n      <p class=\"lead\">Interna obuka koja zaposlene osposobljava da alate ve\u0161ta\u010dke inteligencije koriste u svakodnevnom radu, bezbedno i sa razumevanjem. Za 16 sedmica: od prvog zadatka AI agentu do sopstvenog projekta.<\/p>\r\n      <div class=\"cta\">\r\n        <a class=\"btn\" href=\"#program\">Pogledaj program\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 5v14M6 13l6 6 6-6\"\/><\/svg><\/a>\r\n        <a class=\"btn ghost\" href=\"#polaznici\">Kome je namenjena<\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"stage\" aria-hidden=\"true\">\r\n      <div class=\"disc\"><\/div>\r\n      <div class=\"halo\"><\/div>\r\n      <svg class=\"hero-mark\" viewBox=\"0 0 221 174\">\r\n        <g fill=\"url(#mg)\">\r\n          <path class=\"pc\" style=\"--i:0; --dx:-36px; --dy:0px\" d=\"M2 171V19Q2 11.4 9 12.8L40 19.2V116.6Z\"\/>\r\n          <path class=\"pc\" style=\"--i:2; --dx:22px; --dy:-32px\" d=\"M47 20L63 23.2V83.6L47 106.9Z\"\/>\r\n          <path class=\"pc\" style=\"--i:3; --dx:-22px; --dy:32px\" d=\"M47 120.4L84 66.5V172H54Q47 172 47 165Z\"\/>\r\n          <path class=\"pc\" style=\"--i:1; --dx:0px; --dy:44px\" d=\"M92 54.5L107 32.7V172H92Z\"\/>\r\n          <path class=\"pc\" style=\"--i:4; --dx:30px; --dy:-26px\" d=\"M109.8 31L125.9 7Q130.5 .4 138.2 2.5L219 24.5V50.2L188 45V121.6L153 172V38.4Z\"\/>\r\n          <path class=\"pc\" style=\"--i:5; --dx:-22px; --dy:32px\" d=\"M161.7 172L188 133.9V166Q188 172 182 172Z\"\/>\r\n        <\/g>\r\n        <g clip-path=\"url(#mark-clip)\">\r\n          <rect class=\"glint\" x=\"0\" y=\"-20\" width=\"70\" height=\"214\" fill=\"url(#sh)\"\/>\r\n        <\/g>\r\n      <\/svg>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"wrap facts plate rivets\">\r\n    <div class=\"fact\"><span class=\"n chrome\" data-count=\"16\">16<\/span><span class=\"u\">sedmica<\/span><span class=\"s\">trajanje programa<\/span><\/div>\r\n    <div class=\"fact\"><span class=\"n chrome\" data-count=\"8\">8<\/span><span class=\"u\">termina<\/span><span class=\"s\">na svake dve sedmice<\/span><\/div>\r\n    <div class=\"fact\"><span class=\"n chrome\" data-count=\"4\">4<\/span><span class=\"u\">faze<\/span><span class=\"s\">od AI agenata do zavr\u0161nog projekta<\/span><\/div>\r\n    <div class=\"fact\"><span class=\"n chrome\" data-count=\"2\">2<\/span><span class=\"u\">nivoa zadataka<\/span><span class=\"s\">osnovni za sve, napredni za tehni\u010dki profil<\/span><\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ============ CILJEVI ============ -->\r\n<section class=\"band alt\" id=\"ciljevi\">\r\n  <div class=\"wrap\">\r\n    <div class=\"sec-head\">\r\n      <p class=\"kicker\" data-r>Po zavr\u0161etku obuke<\/p>\r\n      <h2 data-r style=\"--d:80ms\"><span class=\"chrome\">Ciljevi obuke<\/span><\/h2>\r\n      <p class=\"lead\" data-r style=\"--d:160ms\">Institut za informacione tehnologije Kragujevac organizuje internu obuku koja zaposlene osposobljava da alate ve\u0161ta\u010dke inteligencije (AI) koriste u svakodnevnom radu, bezbedno i sa razumevanjem.<\/p>\r\n    <\/div>\r\n\r\n    <p class=\"label list-intro\" data-r>Po zavr\u0161etku obuke polaznici \u0107e umeti da:<\/p>\r\n    <ul class=\"outcomes\">\r\n      <li class=\"oc\" data-r>\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2.5\"\/><path d=\"M3 8.5h18\"\/><path d=\"M10 12.5 7.8 14.7 10 17M14 12.5l2.2 2.2L14 17\"\/><\/svg><\/span>\r\n        <span class=\"verb\">razviju<\/span>\r\n        <p>male aplikacije uz pomo\u0107 AI agenata, polaze\u0107i od jasno napisane specifikacije;<\/p>\r\n      <\/li>\r\n      <li class=\"oc\" data-r style=\"--d:60ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M20 12a8 8 0 0 1-13.7 5.6\"\/><path d=\"M4 12a8 8 0 0 1 13.7-5.6\"\/><path d=\"M18 2.8v3.9h-3.9\"\/><path d=\"M6 21.2v-3.9h3.9\"\/><\/svg><\/span>\r\n        <span class=\"verb\">automatizuju<\/span>\r\n        <p>ponavljaju\u0107e radne procese, kao \u0161to su obrada fajlova, izrada izve\u0161taja i prikupljanje podataka;<\/p>\r\n      <\/li>\r\n      <li class=\"oc\" data-r style=\"--d:120ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M3 9.5h18M3 14.8h18M9 4v16\"\/><\/svg><\/span>\r\n        <span class=\"verb\">o\u010diste i pripreme<\/span>\r\n        <p>podatke i primene gotove, unapred obu\u010dene modele za predvi\u0111anje na tabelarnim podacima i vremenskim serijama;<\/p>\r\n      <\/li>\r\n      <li class=\"oc\" data-r style=\"--d:180ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 4v16h16\"\/><path d=\"M7.5 15l3.8-4.6 3 3 4.9-6\"\/><circle cx=\"19.2\" cy=\"7.4\" r=\"1.2\"\/><\/svg><\/span>\r\n        <span class=\"verb\">izrade<\/span>\r\n        <p>vizuelizacije za nau\u010dne radove, prezentacije i projektne izve\u0161taje;<\/p>\r\n      <\/li>\r\n      <li class=\"oc\" data-r style=\"--d:240ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M7 19h10.5a4 4 0 0 0 .6-7.95A6 6 0 0 0 6.6 9.3 4.9 4.9 0 0 0 7 19z\"\/><path d=\"M10 12.5h4v3.5h-4z\"\/><\/svg><\/span>\r\n        <span class=\"verb\">razumeju<\/span>\r\n        <p>osnove pakovanja re\u0161enja u Docker kontejnere i njihovog pokretanja u AWS servisima.<\/p>\r\n      <\/li>\r\n    <\/ul>\r\n\r\n    <div class=\"anatomy\" data-r>\r\n      <h3 class=\"h3\">Kako je gra\u0111en svaki termin<\/h3>\r\n      <div class=\"an-track\">\r\n        <span class=\"an-line\" aria-hidden=\"true\"><\/span>\r\n        <div class=\"an-step\">\r\n          <span class=\"an-dot\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"label\">Po\u010detak termina<\/span>\r\n          <p><b>Osnovni pojmovi<\/b>, obja\u0161njeni bez stru\u010dnog \u017eargona<\/p>\r\n        <\/div>\r\n        <div class=\"an-step\">\r\n          <span class=\"an-dot\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"label\">Primeri iz istra\u017eiva\u010dke prakse Instituta<\/span>\r\n          <ul class=\"chips\">\r\n            <li>laboratorijska merenja<\/li>\r\n            <li>eksperimentalni podaci<\/li>\r\n            <li>publikacije<\/li>\r\n            <li>projektna dokumentacija<\/li>\r\n          <\/ul>\r\n        <\/div>\r\n        <div class=\"an-step\">\r\n          <span class=\"an-dot\" aria-hidden=\"true\"><\/span>\r\n          <span class=\"label\">Kraj termina<\/span>\r\n          <p><b>Zadaci<\/b> koje polaznici re\u0161avaju samostalno<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ============ POLAZNICI ============ -->\r\n<section class=\"band\" id=\"polaznici\">\r\n  <div class=\"wrap\">\r\n    <div class=\"sec-head\">\r\n      <p class=\"kicker\" data-r>Dva profila, jedan program<\/p>\r\n      <h2 data-r style=\"--d:80ms\"><span class=\"chrome\">Kome je obuka namenjena<\/span><\/h2>\r\n      <p class=\"lead\" data-r style=\"--d:160ms\">Obuka je namenjena svim zaposlenima koji \u017eele da AI uklju\u010de u svoj rad, bez obzira na to da li programiraju. Svi polaznici prate isti program i iste termine, a razlikuje se samo dubina zadataka.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"profiles\">\r\n      <article class=\"plate profile\" data-r=\"l\">\r\n        <span class=\"label\">Grupa polaznika<\/span>\r\n        <h3>Netehni\u010dki profil<\/h3>\r\n        <dl>\r\n          <div><dt class=\"label\">Ko su<\/dt><dd>Istra\u017eiva\u010di iz oblasti u kojima se ne programira<\/dd><\/div>\r\n          <div>\r\n            <dt class=\"label\">\u0160ta dobijaju od obuke<\/dt>\r\n            <dd>AI kao pomo\u0107nik u:\r\n              <ul class=\"chips\" style=\"margin-top:10px\">\r\n                <li>pisanju<\/li><li>analizi dokumenata<\/li><li>radu sa tabelama<\/li><li>jednostavnim automatizacijama<\/li><li>izradi grafikona<\/li>\r\n              <\/ul>\r\n              <p class=\"note\">Bez znanja programiranja.<\/p>\r\n            <\/dd>\r\n          <\/div>\r\n        <\/dl>\r\n      <\/article>\r\n\r\n      <div class=\"joint\" data-r=\"s\" style=\"--d:200ms\">\r\n        <svg class=\"venn\" viewBox=\"0 0 210 120\" aria-hidden=\"true\">\r\n          <defs><clipPath id=\"venn-a\"><circle cx=\"80\" cy=\"60\" r=\"48\"\/><\/clipPath><\/defs>\r\n          <line class=\"wire\" x1=\"0\" y1=\"60\" x2=\"32\" y2=\"60\"\/>\r\n          <line class=\"wire\" x1=\"178\" y1=\"60\" x2=\"210\" y2=\"60\"\/>\r\n          <circle class=\"lens\" cx=\"130\" cy=\"60\" r=\"48\" clip-path=\"url(#venn-a)\"\/>\r\n          <circle class=\"va\" cx=\"80\" cy=\"60\" r=\"48\"\/>\r\n          <circle class=\"vb\" cx=\"130\" cy=\"60\" r=\"48\"\/>\r\n        <\/svg>\r\n        <p><b>Isti program, isti termini<\/b>razlikuje se samo dubina zadataka<\/p>\r\n      <\/div>\r\n\r\n      <article class=\"plate profile\" data-r=\"r\">\r\n        <span class=\"label\">Grupa polaznika<\/span>\r\n        <h3>Tehni\u010dki profil<\/h3>\r\n        <dl>\r\n          <div><dt class=\"label\">Ko su<\/dt><dd>Istra\u017eiva\u010di koji programiraju, in\u017eenjeri, programeri<\/dd><\/div>\r\n          <div>\r\n            <dt class=\"label\">\u0160ta dobijaju od obuke<\/dt>\r\n            <dd>\r\n              <ul class=\"chips\" style=\"margin-top:4px\">\r\n                <li>br\u017ei razvoj softvera<\/li><li>primena savremenih modela ma\u0161inskog u\u010denja<\/li><li>postavljanje re\u0161enja u AWS<\/li>\r\n              <\/ul>\r\n            <\/dd>\r\n          <\/div>\r\n        <\/dl>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"prereq\" data-r>\r\n      <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"12\" rx=\"2\"\/><path d=\"M8 20h8M12 16v4\"\/><\/svg><\/span>\r\n      <p><b>Jedini preduslov je osnovno kori\u0161\u0107enje ra\u010dunara:<\/b> instalacija programa i rad sa fajlovima i folderima.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"sub-head\" data-r><h3 class=\"h3\">Program povezuje obe grupe na tri na\u010dina<\/h3><\/div>\r\n    <div class=\"bridges\">\r\n      <div class=\"bridge\" data-r>\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"13.5\" width=\"16\" height=\"6\" rx=\"1.5\"\/><rect x=\"7\" y=\"4.5\" width=\"10\" height=\"6\" rx=\"1.5\"\/><\/svg><\/span>\r\n        <h4>Dva nivoa zadataka<\/h4>\r\n        <p>Ve\u017ebe izme\u0111u termina imaju osnovni nivo, obavezan za sve, i napredni nivo, preporu\u010den polaznicima tehni\u010dkog profila.<\/p>\r\n      <\/div>\r\n      <div class=\"bridge\" data-r style=\"--d:100ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><circle cx=\"7\" cy=\"8.5\" r=\"3\"\/><circle cx=\"17\" cy=\"8.5\" r=\"3\"\/><path d=\"M2.5 19.5c.8-3 2.4-4.5 4.5-4.5s3.7 1.5 4.5 4.5M12.5 19.5c.8-3 2.4-4.5 4.5-4.5s3.7 1.5 4.5 4.5\"\/><\/svg><\/span>\r\n        <h4>Rad u me\u0161ovitim parovima<\/h4>\r\n        <p>Tokom ve\u017ebi polaznik tehni\u010dkog i polaznik netehni\u010dkog profila rade zajedno: jedan donosi znanje o alatima, drugi poznavanje problema iz prakse.<\/p>\r\n      <\/div>\r\n      <div class=\"bridge\" data-r style=\"--d:200ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 5h16v10H9.5L4 19.5z\"\/><path d=\"M8 9h8M8 12h5\"\/><\/svg><\/span>\r\n        <h4>Zadatak se opisuje re\u010dima<\/h4>\r\n        <p>Polaznici netehni\u010dkog profila ne moraju da pi\u0161u kod: zadatak opisuju svojim re\u010dima, a AI agent pi\u0161e kod i obja\u0161njava svaki korak.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ============ FORMAT ============ -->\r\n<section class=\"band alt\" id=\"format\">\r\n  <div class=\"wrap\">\r\n    <div class=\"sec-head\">\r\n      <p class=\"kicker\" data-r>Na svake dve sedmice<\/p>\r\n      <h2 data-r style=\"--d:80ms\"><span class=\"chrome\">Format i organizacija<\/span><\/h2>\r\n      <p class=\"lead\" data-r style=\"--d:160ms\">Termini se odr\u017eavaju na svake dve sedmice i traju par sati. Izme\u0111u dva termina polaznici rade ve\u017ebe i prate tutorijale, koje je potrebno zavr\u0161iti pre slede\u0107eg termina.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"rhythm-scroll\" data-r>\r\n      <div class=\"rhythm\">\r\n        <button class=\"wk t\" style=\"--i:0\" data-t=\"1\" data-w=\"1\" data-title=\"Osnove generativne AI i radno okru\u017eenje\"><span class=\"wk-n\">S1<\/span><span class=\"wk-l\">T1<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:1\"><span class=\"wk-n\">S2<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:2\" data-t=\"2\" data-w=\"3\" data-title=\"Razvoj vo\u0111en specifikacijom\"><span class=\"wk-n\">S3<\/span><span class=\"wk-l\">T2<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:3\"><span class=\"wk-n\">S4<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:4\" data-t=\"3\" data-w=\"5\" data-title=\"\u010ci\u0161\u0107enje podataka i nau\u010dne vizuelizacije\"><span class=\"wk-n\">S5<\/span><span class=\"wk-l\">T3<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:5\"><span class=\"wk-n\">S6<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:6\" data-t=\"4\" data-w=\"7\" data-title=\"Tabelarni podaci i AutoML\"><span class=\"wk-n\">S7<\/span><span class=\"wk-l\">T4<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:7\"><span class=\"wk-n\">S8<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:8\" data-t=\"5\" data-w=\"9\" data-title=\"Vremenske serije\"><span class=\"wk-n\">S9<\/span><span class=\"wk-l\">T5<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:9\"><span class=\"wk-n\">S10<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:10\" data-t=\"6\" data-w=\"11\" data-title=\"Grafovske baze podataka\"><span class=\"wk-n\">S11<\/span><span class=\"wk-l\">T6<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:11\"><span class=\"wk-n\">S12<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:12\" data-t=\"7\" data-w=\"13\" data-title=\"Postavljanje re\u0161enja u oblak\"><span class=\"wk-n\">S13<\/span><span class=\"wk-l\">T7<\/span><\/button>\r\n        <div class=\"wk x\" style=\"--i:13\"><span class=\"wk-n\">S14<\/span><\/div>\r\n        <button class=\"wk t\" style=\"--i:14\" data-t=\"8\" data-w=\"15\" data-title=\"Zavr\u0161ni projekti\"><span class=\"wk-n\">S15<\/span><span class=\"wk-l\">T8<\/span><\/button>\r\n        <div class=\"wk e\" style=\"--i:15\"><span class=\"wk-n\">S16<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"ph-row\" aria-hidden=\"true\">\r\n        <span style=\"grid-column: span 4\">Rad sa AI agentima<\/span>\r\n        <span style=\"grid-column: span 6\">Podaci i modeli<\/span>\r\n        <span style=\"grid-column: span 4\">Grafovi i oblak<\/span>\r\n        <span style=\"grid-column: span 2\">Zavr\u0161etak<\/span>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"rh-foot\">\r\n      <p class=\"rh-cap\" aria-live=\"polite\"><span>Termin 1 \u00b7 Sedmica 1<\/span><b>Osnove generativne AI i radno okru\u017eenje<\/b><\/p>\r\n      <div class=\"legend\"><span><i class=\"t\"><\/i>Termin<\/span><span><i class=\"x\"><\/i>Ve\u017ebe i tutorijali do slede\u0107eg termina<\/span><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sub-head\" data-r>\r\n      <h3 class=\"h3\">Rad izme\u0111u termina<\/h3>\r\n    <\/div>\r\n\r\n    <div class=\"plate workload\" data-level=\"osnovni\" data-r>\r\n      <div class=\"wl-top\">\r\n        <span class=\"label\">Vreme za ve\u017ebe izme\u0111u dva termina<\/span>\r\n        <div class=\"seg\" role=\"radiogroup\" aria-label=\"Nivo zadataka\">\r\n          <button role=\"radio\" aria-checked=\"true\" data-level=\"osnovni\">Osnovni nivo<\/button>\r\n          <button role=\"radio\" aria-checked=\"false\" data-level=\"napredni\" tabindex=\"-1\">Napredni nivo<\/button>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"meter\" aria-hidden=\"true\">\r\n        <div class=\"m-tags\"><span class=\"tb\">osnovni \u2248 4 h<\/span><span class=\"ta\">+ 3 do 4 h napredni<\/span><\/div>\r\n        <div class=\"m-track\"><span class=\"m-base\"><\/span><span class=\"m-adv\"><\/span><span class=\"m-rng\"><\/span><\/div>\r\n        <div class=\"m-ticks\"><span style=\"left:0%\">0 h<\/span><span style=\"left:25%\">2 h<\/span><span style=\"left:50%\">4 h<\/span><span style=\"left:75%\">6 h<\/span><span style=\"left:100%\">8 h<\/span><\/div>\r\n      <\/div>\r\n      <p class=\"wl-sum\">\r\n        <span data-show=\"osnovni\"><b>Osnovni nivo je obavezan za sve.<\/b> Za njega je predvi\u0111eno oko 4 sata rada.<\/span>\r\n        <span data-show=\"napredni\"><b>Napredni nivo je preporu\u010den za tehni\u010dki profil.<\/b> Tra\u017ei jo\u0161 3 do 4 sata, pored osnovnog nivoa.<\/span>\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <div class=\"between\">\r\n      <div class=\"bt\" data-r>\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M10 6h10M10 12h10M10 18h10\"\/><path d=\"M3.5 6l1.3 1.3L7.3 4.8M3.5 12l1.3 1.3 2.5-2.5M3.5 18l1.3 1.3 2.5-2.5\"\/><\/svg><\/span>\r\n        <div><h4>Ve\u017ebe<\/h4><p>Imaju osnovni nivo, obavezan za sve, i napredni nivo, preporu\u010den za tehni\u010dki profil.<\/p><\/div>\r\n      <\/div>\r\n      <div class=\"bt\" data-r style=\"--d:100ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 4.5h13v13H7a2 2 0 0 0-2 2z\"\/><path d=\"M5 19.5a2 2 0 0 0 2 2h11v-4\"\/><\/svg><\/span>\r\n        <div><h4>Tutorijali<\/h4><p>Besplatni zvani\u010dni materijali proizvo\u0111a\u010da alata, kao \u0161to su dokumentacija i onlajn kursevi. Navedeni su uz svaki termin.<\/p><\/div>\r\n      <\/div>\r\n      <div class=\"bt\" data-r style=\"--d:200ms\">\r\n        <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M3.5 4.5h12v8.5H8l-4.5 3.5z\"\/><path d=\"M8.5 16v1h8l4 3.5V11h-2\"\/><\/svg><\/span>\r\n        <div><h4>Podr\u0161ka<\/h4><p>Zajedni\u010dki onlajn kanal za pitanja, na koji odgovaraju predava\u010d i drugi polaznici.<\/p><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <p class=\"org-note\" data-r>Datumi termina, prostorija i broj polaznika po grupi utvr\u0111uju se pre po\u010detka obuke.<\/p>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ============ ALATI ============ -->\r\n<section class=\"band\" id=\"alati\">\r\n  <div class=\"wrap\">\r\n    <div class=\"sec-head\">\r\n      <p class=\"kicker\" data-r>OpenCode \u00b7 Codex \u00b7 Claude Code<\/p>\r\n      <h2 data-r style=\"--d:80ms\"><span class=\"chrome\">Radno okru\u017eenje i alati<\/span><\/h2>\r\n      <p class=\"lead\" data-r style=\"--d:160ms\">Glavni alat obuke je OpenCode, a uz njega se koristi Codex i Claude Code.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"agent-def\">\r\n      <div data-r>\r\n        <p class=\"def-q\">Agent je program koji na osnovu zadatka opisanog re\u010dima sam <em>\u010dita fajlove<\/em>, <em>pi\u0161e kod<\/em>, <em>pokre\u0107e komande<\/em> i <em>proverava rezultat<\/em>, uz odobrenje korisnika.<\/p>\r\n      <\/div>\r\n      <div class=\"loop\" data-r=\"s\">\r\n        <svg viewBox=\"0 0 480 440\" role=\"img\" aria-label=\"Ciklus rada agenta: \u010dita fajlove, pi\u0161e kod, uz odobrenje korisnika pokre\u0107e komande, proverava rezultat, pa ponovo.\">\r\n          <circle class=\"ring\" cx=\"240\" cy=\"220\" r=\"150\"\/>\r\n          <path class=\"arrow\" transform=\"translate(346 114) rotate(45)\" d=\"M-6-6 6 0-6 6z\"\/>\r\n          <path class=\"arrow\" transform=\"translate(134 326) rotate(225)\" d=\"M-6-6 6 0-6 6z\"\/>\r\n          <path class=\"arrow\" transform=\"translate(134 114) rotate(315)\" d=\"M-6-6 6 0-6 6z\"\/>\r\n          <g class=\"orbit\">\r\n            <circle class=\"dot-glow\" cx=\"240\" cy=\"70\" r=\"15\"\/>\r\n            <circle class=\"dot\" cx=\"240\" cy=\"70\" r=\"6\"\/>\r\n          <\/g>\r\n          <circle class=\"hub\" cx=\"240\" cy=\"220\" r=\"82\" fill=\"url(#hubg)\"\/>\r\n          <circle class=\"hub-ring\" cx=\"240\" cy=\"220\" r=\"94\"\/>\r\n          <text class=\"hub-t1\" x=\"240\" y=\"214\" text-anchor=\"middle\">Zadatak<\/text>\r\n          <text class=\"hub-t2\" x=\"240\" y=\"240\" text-anchor=\"middle\">opisan re\u010dima<\/text>\r\n          <g class=\"gate-g\">\r\n            <circle class=\"gate\" cx=\"346\" cy=\"326\" r=\"17\"\/>\r\n            <path class=\"gate-i\" d=\"M340 325h12v8h-12zM342.5 325v-3a3.5 3.5 0 0 1 7 0v3\"\/>\r\n            <text class=\"gate-t\" x=\"368\" y=\"352\">odobrenje<\/text>\r\n            <text class=\"gate-t\" x=\"368\" y=\"368\">korisnika<\/text>\r\n          <\/g>\r\n          <g class=\"node-g\" style=\"--k:0\"><rect class=\"pill\" x=\"156\" y=\"49\" width=\"168\" height=\"42\" rx=\"21\"\/><text class=\"pill-t\" x=\"240\" y=\"75\" text-anchor=\"middle\">\u010dita fajlove<\/text><\/g>\r\n          <g class=\"node-g\" style=\"--k:1\"><rect class=\"pill\" x=\"306\" y=\"199\" width=\"168\" height=\"42\" rx=\"21\"\/><text class=\"pill-t\" x=\"390\" y=\"225\" text-anchor=\"middle\">pi\u0161e kod<\/text><\/g>\r\n          <g class=\"node-g\" style=\"--k:2\"><rect class=\"pill\" x=\"156\" y=\"349\" width=\"168\" height=\"42\" rx=\"21\"\/><text class=\"pill-t\" x=\"240\" y=\"375\" text-anchor=\"middle\">pokre\u0107e komande<\/text><\/g>\r\n          <g class=\"node-g\" style=\"--k:3\"><rect class=\"pill\" x=\"6\" y=\"199\" width=\"168\" height=\"42\" rx=\"21\"\/><text class=\"pill-t\" x=\"90\" y=\"225\" text-anchor=\"middle\">proverava rezultat<\/text><\/g>\r\n        <\/svg>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sub-head\" data-r><h3 class=\"h3\">AI agenti<\/h3><\/div>\r\n    <div class=\"agents\">\r\n      <article class=\"plate agent\" data-r>\r\n        <div class=\"ag-top\">\r\n          <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2.5\"\/><path d=\"M7 9.5l3 2.5-3 2.5M12.5 15h4.5\"\/><\/svg><\/span>\r\n          <span class=\"badge\">Glavni alat<\/span>\r\n        <\/div>\r\n        <h4><a href=\"https:\/\/opencode.ai\/download\" target=\"_blank\" rel=\"noopener\">OpenCode <span class=\"ext\">\u2197<\/span><small>terminal<\/small><\/a><\/h4>\r\n        <p>Agent koji radi u terminalu. Ima dva re\u017eima: Plan, koji samo predla\u017ee re\u0161enje i ne menja fajlove, i Build, koji izvr\u0161ava izmene.<\/p>\r\n        <div class=\"role\"><span class=\"label\">Uloga na obuci<\/span><p>Glavni alat za tehni\u010dke polaznike i za razvoj vo\u0111en specifikacijom<\/p><\/div>\r\n      <\/article>\r\n      <article class=\"plate agent\" data-r style=\"--d:100ms\">\r\n        <div class=\"ag-top\">\r\n          <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2.5\"\/><path d=\"M3 9h18\"\/><path d=\"M6 6.5h.01M8.5 6.5h.01\"\/><path d=\"M7 13h6M7 16h9\"\/><\/svg><\/span>\r\n          <span class=\"badge\">Glavni alat<\/span>\r\n        <\/div>\r\n        <h4><a href=\"https:\/\/opencode.ai\/download\" target=\"_blank\" rel=\"noopener\">OpenCode Desktop <span class=\"ext\">\u2197<\/span><small>Windows \u00b7 macOS \u00b7 Linux<\/small><\/a><\/h4>\r\n        <p>Isti agent sa grafi\u010dkim interfejsom, za Windows, macOS i Linux.<\/p>\r\n        <div class=\"role\"><span class=\"label\">Uloga na obuci<\/span><p>Glavni alat za polaznike koji ne rade u terminalu<\/p><\/div>\r\n      <\/article>\r\n      <article class=\"plate agent\" data-r style=\"--d:200ms\">\r\n        <div class=\"ag-top\">\r\n          <span class=\"ic\"><svg viewBox=\"0 0 24 24\"><path d=\"M8.5 4C6.5 4 5.5 5 5.5 7v2c0 1.5-1 2.5-2 3 1 .5 2 1.5 2 3v2c0 2 1 3 3 3M15.5 4c2 0 3 1 3 3v2c0 1.5 1 2.5 2 3-1 .5-2 1.5-2 3v2c0 2-1 3-3 3\"\/><\/svg><\/span>\r\n          <span class=\"badge\">Drugi agent<\/span>\r\n        <\/div>\r\n        <h4><a href=\"https:\/\/help.openai.com\/en\/articles\/11369540-using-codex-with-your-chatgpt-plan\" target=\"_blank\" rel=\"noopener\">Codex <span class=\"ext\">\u2197<\/span><small>ChatGPT desktop \u00b7 VS Code<\/small><\/a><\/h4>\r\n        <p>OpenAI agent za programiranje, dostupan kao Codex re\u017eim u ChatGPT desktop aplikaciji i kao ekstenzija za VS Code.<\/p>\r\n        <div class=\"role\"><span class=\"label\">Uloga na obuci<\/span><p>Drugi agent, za pore\u0111enje re\u0161enja i rad sa OpenAI modelima<\/p><\/div>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"term-wrap\">\r\n      <div class=\"term-copy\" data-r>\r\n        <h3 class=\"h3\">Dva re\u017eima OpenCode-a<\/h3>\r\n        <ul class=\"mode-list\">\r\n          <li><b>Plan<\/b><span>samo predla\u017ee re\u0161enje i ne menja fajlove<\/span><\/li>\r\n          <li><b>Build<\/b><span>izvr\u0161ava izmene<\/span><\/li>\r\n        <\/ul>\r\n        <p class=\"muted small\">Prebacite re\u017eim u prozoru pored i pogledajte razliku na primeru iz laboratorije.<\/p>\r\n      <\/div>\r\n      <div class=\"term\" data-mode=\"plan\" data-r>\r\n        <div class=\"term-bar\">\r\n          <span class=\"dots\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/span>\r\n          <span class=\"term-title\">opencode \u00b7 ~\/merenja<\/span>\r\n          <div class=\"term-tabs\" role=\"tablist\" aria-label=\"Re\u017eim agenta\">\r\n            <button role=\"tab\" aria-selected=\"true\" data-mode=\"plan\">Plan<\/button>\r\n            <button role=\"tab\" aria-selected=\"false\" data-mode=\"build\">Build<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"term-body\" data-pane=\"plan\" role=\"tabpanel\">\r\n          <div class=\"ln p\" style=\"--i:0\"><span class=\"pr\">\u203a <\/span>U folderu merenja\/ su CSV fajlovi iz laboratorije. Spoji ih u jednu tabelu i nacrtaj prose\u010dnu temperaturu po danu.<\/div>\r\n          <div class=\"ln s\" style=\"--i:1\">\u25cf \u010citam folder merenja\/<\/div>\r\n          <div class=\"ln m in\" style=\"--i:2\">12 CSV fajlova, iste kolone: vreme, senzor, temperatura<\/div>\r\n          <div class=\"ln gap\" style=\"--i:3\">Predlog plana (fajlovi se ne menjaju):<\/div>\r\n          <div class=\"ln in\" style=\"--i:4\">1. Spojiti 12 fajlova u jednu tabelu i ukloniti duplikate<\/div>\r\n          <div class=\"ln in\" style=\"--i:5\">2. Napisati skriptu analiza.py (pandas + matplotlib)<\/div>\r\n          <div class=\"ln in\" style=\"--i:6\">3. Izra\u010dunati prose\u010dnu temperaturu po danu<\/div>\r\n          <div class=\"ln in\" style=\"--i:7\">4. Sa\u010duvati grafikon kao temperatura_po_danu.png<\/div>\r\n          <div class=\"ln m gap\" style=\"--i:8\">Prebacite u Build re\u017eim da izvr\u0161im plan. <span class=\"caret\"><\/span><\/div>\r\n        <\/div>\r\n        <div class=\"term-body\" data-pane=\"build\" role=\"tabpanel\" hidden>\r\n          <div class=\"ln p\" style=\"--i:0\"><span class=\"pr\">\u203a <\/span>Izvr\u0161i plan.<\/div>\r\n          <div class=\"ln s\" style=\"--i:1\">\u270e Pravim analiza.py (+38 linija)<\/div>\r\n          <div class=\"ln q gap\" style=\"--i:2\">? Pokrenuti komandu <code>uv run analiza.py<\/code>?  [dozvoli \/ odbij]<\/div>\r\n          <div class=\"ln ok in\" style=\"--i:3\">\u2713 dozvoljeno<\/div>\r\n          <div class=\"ln s gap\" style=\"--i:4\">\u25cf Pokre\u0107em uv run analiza.py<\/div>\r\n          <div class=\"ln m in\" style=\"--i:5\">spojeno 4 380 redova, uklonjeno 12 duplikata<\/div>\r\n          <div class=\"ln ok\" style=\"--i:6\">\u2713 Sa\u010duvano: temperatura_po_danu.png<\/div>\r\n          <div class=\"ln gap\" style=\"--i:7\">Proveravam rezultat: grafikon pokriva 30 dana, bez praznih vrednosti. <span class=\"caret\"><\/span><\/div>\r\n        <\/div>\r\n        <p class=\"term-note\">Ilustrativni primer<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"sub-head\" data-r><h3 class=\"h3\">Modeli i besplatni krediti<\/h3><\/div>\r\n    <div class=\"models\">\r\n      <article class=\"plate model\" data-r>\r\n        <span class=\"label\">Krediti i besplatni modeli<\/span>\r\n        <h4><a href=\"https:\/\/opencode.ai\/docs\/zen\/\" target=\"_blank\" rel=\"noopener\">OpenCode Console (Zen) <span class=\"ext\">\u2197<\/span><\/a><\/h4>\r\n        <p>Polaznici koriste besplatne kredite i besplatne modele koje OpenCode nudi kroz svoj servis OpenCode Console (Zen). Besplatni modeli su dostupni samo u ograni\u010denom periodu i njihov spisak se menja, pa se konkretan model bira na prvom terminu.<\/p>\r\n        <div class=\"inset\">\r\n          <p class=\"small muted\">Kod dela besplatnih modela podaci mogu da se koriste za unapre\u0111enje modela.<\/p>\r\n          <p class=\"pv\">Na obuci prednost imaju modeli \u010diji provajder ne \u010duva podatke i ne koristi ih za treniranje:<\/p>\r\n          <ul class=\"chips\">\r\n            <li>GLM-5.3-Flash Free<\/li>\r\n            <li>DeepSeek V4.1 Flash Free<\/li>\r\n            <li>MiniMax M3.1 Flash Free<\/li>\r\n            <li>LongCat 2.5 Preview Free<\/li>\r\n          <\/ul>\r\n          <span class=\"stamp\">Stanje 20. oktobra 2026.<\/span>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"plate model\" data-r style=\"--d:120ms\">\r\n        <span class=\"label\">Codex uz ChatGPT nalog<\/span>\r\n        <h4><a href=\"https:\/\/help.openai.com\/en\/articles\/11369540-using-codex-with-your-chatgpt-plan\" target=\"_blank\" rel=\"noopener\">Codex i ChatGPT planovi <span class=\"ext\">\u2197<\/span><\/a><\/h4>\r\n        <div class=\"plans\">\r\n          <div class=\"inset plan\">\r\n            <span class=\"label\">Besplatni nalog<\/span>\r\n            <ul>\r\n              <li>Codex radi u desktop aplikaciji<\/li>\r\n              <li>Model GPT-6 Luna<\/li>\r\n              <li>Ograni\u010den obim kori\u0161\u0107enja<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n          <div class=\"inset plan plus\">\r\n            <span class=\"label\">Plus \u00b7 20 USD mese\u010dno<\/span>\r\n            <ul>\r\n              <li>Codex i ekstenzija za VS Code navedeni su tek u ovom planu<\/li>\r\n            <\/ul>\r\n          <\/div>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"sub-head\" data-r>\r\n      <h3 class=\"h3\">Ostali alati, po terminima<\/h3>\r\n      <p class=\"muted small\">Svi alati se instaliraju zajedni\u010dki, na terminu na kome se prvi put koriste.<\/p>\r\n    <\/div>\r\n    <div class=\"gantt\" data-r>\r\n      <div class=\"g-head\">\r\n        <span>Alat i namena<\/span>\r\n        <div class=\"g-cols\" role=\"group\" aria-label=\"Izaberite termin\">\r\n          <button class=\"g-col\" data-c=\"1\">T1<\/button><button class=\"g-col\" data-c=\"2\">T2<\/button><button class=\"g-col\" data-c=\"3\">T3<\/button><button class=\"g-col\" data-c=\"4\">T4<\/button>\r\n          <button class=\"g-col\" data-c=\"5\">T5<\/button><button class=\"g-col\" data-c=\"6\">T6<\/button><button class=\"g-col\" data-c=\"7\">T7<\/button><button class=\"g-col\" data-c=\"8\">T8<\/button>\r\n        <\/div>\r\n      <\/div>\r\n      <ul class=\"g-rows\">\r\n        <li class=\"g-row\" data-from=\"1\" style=\"--from:1; --k:0\"><div class=\"g-lab\"><b>Git i GitHub nalog<\/b><span>\u010cuvanje verzija rada i predaja ve\u017ebi<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 1\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"1\" style=\"--from:1; --k:1\"><div class=\"g-lab\"><b>Python sa alatom uv<\/b><span>Pokretanje skripti i instalacija biblioteka<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 1\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"1\" style=\"--from:1; --k:2\"><div class=\"g-lab\"><b>VS Code (preporu\u010deno)<\/b><span>Pregled fajlova, koda i rezultata<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 1\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"3\" style=\"--from:3; --k:3\"><div class=\"g-lab\"><b>pandas, matplotlib, seaborn, plotly<\/b><span>Rad sa tabelama i izrada grafikona<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 3\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"4\" style=\"--from:4; --k:4\"><div class=\"g-lab\"><b>AutoGluon i fundamentalni modeli za tabele<\/b><span>Automatsko ma\u0161insko u\u010denje<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 4\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"5\" style=\"--from:5; --k:5\"><div class=\"g-lab\"><b>Fundamentalni modeli za vremenske serije<\/b><span>Chronos 2, TimesFM 3 i Timestral: predvi\u0111anje vremenskih serija<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 5\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"6\" style=\"--from:6; --k:6\"><div class=\"g-lab\"><b>Neo4j Desktop<\/b><span>Grafovska baza<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 6\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n        <li class=\"g-row\" data-from=\"7\" style=\"--from:7; --k:7\"><div class=\"g-lab\"><b>Docker Desktop i AWS Free nalog<\/b><span>Kontejneri i cloud servis<\/span><\/div><div class=\"g-track\" aria-label=\"od termina 7\"><span class=\"g-bar\"><span class=\"g-pin\"><\/span><\/span><\/div><\/li>\r\n      <\/ul>\r\n      <p class=\"g-cap\" aria-live=\"polite\">Izaberite termin iznad grafikona da vidite koji se alati tada instaliraju.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ============ PROGRAM ============ -->\r\n<section class=\"band alt\" id=\"program\">\r\n  <div class=\"wrap\">\r\n    <div class=\"sec-head\">\r\n      <p class=\"kicker\" data-r>8 termina \u00b7 4 faze<\/p>\r\n      <h2 data-r style=\"--d:80ms\"><span class=\"chrome\">Pregled programa<\/span><\/h2>\r\n      <p class=\"lead\" data-r style=\"--d:160ms\">Program ima \u010detiri faze: rad sa AI agentima, podaci i modeli, grafovi i oblak, i zavr\u0161ni projekat.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"tl-intro\" data-r>\r\n      <p class=\"tl-big\"><span class=\"chrome\">Za 16 sedmica:<\/span> od prvog zadatka AI agentu do sopstvenog projekta<\/p>\r\n      <p class=\"muted\">Osam jednodnevnih termina na svake dve sedmice, sa ve\u017ebama izme\u0111u termina.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"tl\">\r\n      <div class=\"tl-rail\" aria-hidden=\"true\"><div class=\"tl-fill\"><\/div><\/div>\r\n\r\n      <section class=\"phase\" aria-labelledby=\"ph1\">\r\n        <div class=\"ph-label\" data-r>\r\n          <span class=\"label\">Faza 1<\/span>\r\n          <h3 id=\"ph1\">Rad sa AI agentima<\/h3>\r\n          <span class=\"muted\">Termini 1\u20132<\/span>\r\n        <\/div>\r\n        <ol class=\"ph-items\">\r\n          <li class=\"ti\" id=\"t1\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 1<\/b><span>Sedmica 1<\/span><\/p><h4>Osnove generativne AI i radno okru\u017eenje<\/h4><p>OpenCode, OpenCode Desktop i Codex<\/p><\/article><\/li>\r\n          <li class=\"ti\" id=\"t2\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 2<\/b><span>Sedmica 3<\/span><\/p><h4>Razvoj vo\u0111en specifikacijom<\/h4><p>Od specifikacije do male aplikacije<\/p><\/article><\/li>\r\n        <\/ol>\r\n      <\/section>\r\n\r\n      <section class=\"phase\" aria-labelledby=\"ph2\">\r\n        <div class=\"ph-label\" data-r>\r\n          <span class=\"label\">Faza 2<\/span>\r\n          <h3 id=\"ph2\">Podaci i modeli<\/h3>\r\n          <span class=\"muted\">Termini 3\u20135<\/span>\r\n        <\/div>\r\n        <ol class=\"ph-items\">\r\n          <li class=\"ti\" id=\"t3\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 3<\/b><span>Sedmica 5<\/span><\/p><h4>\u010ci\u0161\u0107enje podataka i nau\u010dne vizuelizacije<\/h4><p>pandas, matplotlib, seaborn, plotly<\/p><\/article><\/li>\r\n          <li class=\"ti\" id=\"t4\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 4<\/b><span>Sedmica 7<\/span><\/p><h4>Tabelarni podaci i AutoML<\/h4><p>AutoGluon i fundamentalni modeli (TabPFN)<\/p><\/article><\/li>\r\n          <li class=\"ti\" id=\"t5\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 5<\/b><span>Sedmica 9<\/span><\/p><h4>Vremenske serije<\/h4><p>Chronos-2 i prognoze bez treniranja<\/p><\/article><\/li>\r\n        <\/ol>\r\n      <\/section>\r\n\r\n      <section class=\"phase\" aria-labelledby=\"ph3\">\r\n        <div class=\"ph-label\" data-r>\r\n          <span class=\"label\">Faza 3<\/span>\r\n          <h3 id=\"ph3\">Grafovi i oblak<\/h3>\r\n          <span class=\"muted\">Termini 6\u20137<\/span>\r\n        <\/div>\r\n        <ol class=\"ph-items\">\r\n          <li class=\"ti\" id=\"t6\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 6<\/b><span>Sedmica 11<\/span><\/p><h4>Grafovske baze podataka<\/h4><p>Neo4j, Cypher i GraphRAG<\/p><\/article><\/li>\r\n          <li class=\"ti\" id=\"t7\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 7<\/b><span>Sedmica 13<\/span><\/p><h4>Postavljanje re\u0161enja u oblak<\/h4><p>Docker i AWS<\/p><\/article><\/li>\r\n        <\/ol>\r\n      <\/section>\r\n\r\n      <section class=\"phase\" aria-labelledby=\"ph4\">\r\n        <div class=\"ph-label\" data-r>\r\n          <span class=\"label\">Faza 4<\/span>\r\n          <h3 id=\"ph4\">Zavr\u0161etak<\/h3>\r\n          <span class=\"muted\">Termin 8<\/span>\r\n        <\/div>\r\n        <ol class=\"ph-items\">\r\n          <li class=\"ti final\" id=\"t8\" data-r=\"r\"><span class=\"node\" aria-hidden=\"true\"><\/span>\r\n            <article class=\"plate tcard\"><p class=\"tc-meta\"><b>Termin 8<\/b><span>Sedmica 15<\/span><\/p><h4>Zavr\u0161ni projekti<\/h4><p>Prezentacije, evaluacija i potvrde<\/p><\/article><\/li>\r\n        <\/ol>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<\/main>\r\n\r\n<footer class=\"foot band\">\r\n  <div class=\"wrap\">\r\n    <div class=\"foot-grid\">\r\n      <svg class=\"foot-mark\" viewBox=\"0 0 221 174\" aria-hidden=\"true\">\r\n        <use href=\"#iit-mark\"\/>\r\n        <g clip-path=\"url(#mark-clip)\"><rect class=\"glint\" x=\"0\" y=\"-20\" width=\"70\" height=\"214\" fill=\"url(#sh)\" style=\"animation-delay: 3.5s\"\/><\/g>\r\n      <\/svg>\r\n      <div>\r\n        <p class=\"foot-title\">Institut za informacione tehnologije Kragujevac<\/p>\r\n        <p class=\"muted\">Program obuke: Ve\u0161ta\u010dka inteligencija u svakodnevnom radu<\/p>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"foot-meta\">\r\n      <span>Interna obuka \u00b7 8 termina \u00b7 16 sedmica<\/span>\r\n      <a href=\"#vrh\">Na vrh \u2191<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/footer>\r\n\r\n<script>\r\n(() => {\r\n  const root = document.documentElement;\r\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n  const fine = matchMedia('(hover: hover) and (pointer: fine)').matches;\r\n  const $ = (s, c = document) => c.querySelector(s);\r\n  const $$ = (s, c = document) => [...c.querySelectorAll(s)];\r\n\r\n  \/* ---- reveal on scroll ---- *\/\r\n  const reveal = $$('[data-r]');\r\n  if ('IntersectionObserver' in window && !reduce) {\r\n    root.classList.add('rv');\r\n    const io = new IntersectionObserver(entries => entries.forEach(en => {\r\n      if (!en.isIntersecting) return;\r\n      en.target.classList.add('in');\r\n      io.unobserve(en.target);\r\n      en.target.dispatchEvent(new CustomEvent('reveal'));\r\n    }), { rootMargin: '0px 0px -8% 0px', threshold: 0.12 });\r\n    reveal.forEach(el => io.observe(el));\r\n  } else {\r\n    reveal.forEach(el => el.classList.add('in'));\r\n  }\r\n\r\n  \/* ---- hero counters ---- *\/\r\n  if (!reduce) $$('[data-count]').forEach((el, i) => {\r\n    const to = +el.dataset.count;\r\n    el.textContent = '0';\r\n    setTimeout(() => {\r\n      const t0 = performance.now();\r\n      const tick = t => {\r\n        const k = Math.min(1, (t - t0) \/ 1300);\r\n        el.textContent = Math.round(to * (1 - Math.pow(1 - k, 3)));\r\n        if (k < 1) requestAnimationFrame(tick);\r\n      };\r\n      requestAnimationFrame(tick);\r\n    }, 650 + i * 120);\r\n  });\r\n\r\n  \/* ---- active section in nav ---- *\/\r\n  const links = $$('.nav a');\r\n  if ('IntersectionObserver' in window) {\r\n    const nio = new IntersectionObserver(es => es.forEach(en => {\r\n      if (en.isIntersecting) links.forEach(a => a.classList.toggle('on', a.hash === '#' + en.target.id));\r\n    }), { rootMargin: '-45% 0px -50% 0px' });\r\n    links.forEach(a => { const s = $(a.hash); if (s) nio.observe(s); });\r\n    nio.observe($('#vrh'));\r\n  }\r\n\r\n  \/* ---- scroll-linked: progress bar, lathe disc, timeline rail ---- *\/\r\n  const prog = $('.progress'), disc = $('.disc'), tl = $('.tl'), items = $$('.ti');\r\n  let sTick = false;\r\n  function onScroll() {\r\n    if (sTick) return;\r\n    sTick = true;\r\n    requestAnimationFrame(() => {\r\n      sTick = false;\r\n      const max = root.scrollHeight - innerHeight;\r\n      if (prog) prog.style.transform = `scaleX(${max > 0 ? Math.min(1, scrollY \/ max) : 0})`;\r\n      if (disc && !reduce) disc.style.rotate = `${(scrollY * 0.06).toFixed(2)}deg`;\r\n      if (tl) {\r\n        const r = tl.getBoundingClientRect(), mark = innerHeight * 0.6;\r\n        tl.style.setProperty('--fill', Math.min(1, Math.max(0, (mark - r.top) \/ r.height)).toFixed(4));\r\n        items.forEach(it => {\r\n          const n = it.firstElementChild.getBoundingClientRect();\r\n          it.classList.toggle('lit', n.top + 8 < mark);\r\n        });\r\n      }\r\n    });\r\n  }\r\n  addEventListener('scroll', onScroll, { passive: true });\r\n  addEventListener('resize', onScroll);\r\n  onScroll();\r\n\r\n  \/* ---- pointer: spotlight, specular plates, hero tilt ---- *\/\r\n  if (fine && !reduce) {\r\n    const spot = $('.spot'), stage = $('.stage'), mark = $('.hero-mark');\r\n    let x = 0, y = 0, pend = false;\r\n    addEventListener('pointermove', e => {\r\n      x = e.clientX; y = e.clientY;\r\n      const pl = e.target.closest ? e.target.closest('.plate') : null;\r\n      if (pl) {\r\n        const b = pl.getBoundingClientRect();\r\n        pl.style.setProperty('--px', `${x - b.left}px`);\r\n        pl.style.setProperty('--py', `${y - b.top}px`);\r\n      }\r\n      if (pend) return;\r\n      pend = true;\r\n      requestAnimationFrame(() => {\r\n        pend = false;\r\n        spot.style.setProperty('--mx', `${x}px`);\r\n        spot.style.setProperty('--my', `${y}px`);\r\n        const b = stage.getBoundingClientRect();\r\n        if (b.bottom > 0) {\r\n          const dx = (x - (b.left + b.width \/ 2)) \/ innerWidth, dy = (y - (b.top + b.height \/ 2)) \/ innerHeight;\r\n          mark.style.setProperty('--ry', `${(dx * 24).toFixed(2)}deg`);\r\n          mark.style.setProperty('--rx', `${(-dy * 18).toFixed(2)}deg`);\r\n        }\r\n      });\r\n    }, { passive: true });\r\n  }\r\n\r\n  \/* ---- 16-week rhythm ---- *\/\r\n  const cap = $('.rh-cap');\r\n  const weeks = $$('.wk.t');\r\n  const showWeek = b => {\r\n    weeks.forEach(w => w.classList.toggle('on', w === b));\r\n    const meta = document.createElement('span');\r\n    meta.textContent = `Termin ${b.dataset.t} \u00b7 Sedmica ${b.dataset.w}`;\r\n    const title = document.createElement('b');\r\n    title.textContent = b.dataset.title;\r\n    cap.replaceChildren(meta, title);\r\n  };\r\n  weeks.forEach(b => {\r\n    b.addEventListener('mouseenter', () => showWeek(b));\r\n    b.addEventListener('focus', () => showWeek(b));\r\n    b.addEventListener('click', () => {\r\n      showWeek(b);\r\n      const card = document.getElementById('t' + b.dataset.t);\r\n      if (!card) return;\r\n      card.scrollIntoView({ behavior: reduce ? 'auto' : 'smooth', block: 'center' });\r\n      card.classList.remove('ping'); void card.offsetWidth; card.classList.add('ping');\r\n    });\r\n  });\r\n  if (weeks[0]) showWeek(weeks[0]);\r\n\r\n  \/* ---- workload toggle ---- *\/\r\n  const wl = $('.workload');\r\n  if (wl) {\r\n    const opts = $$('[role=\"radio\"]', wl);\r\n    const choose = b => {\r\n      wl.dataset.level = b.dataset.level;\r\n      opts.forEach(o => { const on = o === b; o.setAttribute('aria-checked', String(on)); o.tabIndex = on ? 0 : -1; });\r\n    };\r\n    opts.forEach((b, i) => {\r\n      b.addEventListener('click', () => choose(b));\r\n      b.addEventListener('keydown', e => {\r\n        if (!['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) return;\r\n        e.preventDefault();\r\n        const n = opts[(i + 1) % opts.length];\r\n        choose(n); n.focus();\r\n      });\r\n    });\r\n  }\r\n\r\n  \/* ---- terminal: Plan \/ Build ---- *\/\r\n  const term = $('.term');\r\n  if (term) {\r\n    const tabs = $$('[role=\"tab\"]', term), panes = $$('.term-body', term);\r\n    const buildTab = tabs.find(t => t.dataset.mode === 'build');\r\n    let nudgeTimer;\r\n    const play = mode => {\r\n      clearTimeout(nudgeTimer);\r\n      buildTab.classList.remove('nudge');\r\n      panes.forEach(p => {\r\n        const on = p.dataset.pane === mode;\r\n        p.hidden = !on;\r\n        if (on && !reduce) { p.classList.remove('play'); void p.offsetWidth; p.classList.add('play'); }\r\n      });\r\n      tabs.forEach(t => t.setAttribute('aria-selected', String(t.dataset.mode === mode)));\r\n      term.dataset.mode = mode;\r\n      if (mode === 'plan') nudgeTimer = setTimeout(() => buildTab.classList.add('nudge'), 3600);\r\n    };\r\n    tabs.forEach(t => t.addEventListener('click', () => play(t.dataset.mode)));\r\n    term.addEventListener('reveal', () => play('plan'), { once: true });\r\n  }\r\n\r\n  \/* ---- tools by session ---- *\/\r\n  const gantt = $('.gantt');\r\n  if (gantt) {\r\n    const rows = $$('.g-row', gantt), cols = $$('.g-col', gantt), gcap = $('.g-cap', gantt);\r\n    const hint = gcap.textContent;\r\n    const pick = c => {\r\n      cols.forEach(b => b.classList.toggle('on', b.dataset.c === c));\r\n      rows.forEach(r => r.classList.toggle('dim', !!c && r.dataset.from !== c));\r\n      if (!c) { gcap.textContent = hint; return; }\r\n      const names = rows.filter(r => r.dataset.from === c).map(r => r.querySelector('b').textContent);\r\n      const head = document.createElement('b');\r\n      head.textContent = `Termin ${c}: `;\r\n      gcap.replaceChildren(head, names.length ? `instalira se ${names.join(', ')}.` : 'nema novih alata za instalaciju.');\r\n    };\r\n    cols.forEach(b => {\r\n      b.addEventListener('mouseenter', () => pick(b.dataset.c));\r\n      b.addEventListener('focus', () => pick(b.dataset.c));\r\n      b.addEventListener('click', () => pick(b.dataset.c));\r\n    });\r\n    gantt.addEventListener('mouseleave', () => pick(null));\r\n  }\r\n})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ve\u0161ta\u010dka inteligencija u svakodnevnom radu Institut za informacione tehnologijeKragujevac Ciljevi Polaznici Format Alati Program Program obukeInstitut za informacione tehnologije Kragujevac Ve\u0161ta\u010dka inteligencija u svakodnevnom radu Interna obuka koja zaposlene osposobljava da alate ve\u0161ta\u010dke inteligencije koriste u svakodnevnom radu, bezbedno i sa razumevanjem. Za 16 sedmica: od prvog zadatka AI agentu do sopstvenog projekta. Pogledaj program&#8230;<\/p>","protected":false},"author":158,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-24565","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/pages\/24565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/users\/158"}],"replies":[{"embeddable":true,"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/comments?post=24565"}],"version-history":[{"count":8,"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/pages\/24565\/revisions"}],"predecessor-version":[{"id":24573,"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/pages\/24565\/revisions\/24573"}],"wp:attachment":[{"href":"https:\/\/iit.ac.rs\/en\/wp-json\/wp\/v2\/media?parent=24565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}