/* ==========================================================================
   Homepage · pohybová verzia (GSAP + ScrollTrigger, Lenis)
   Statický stav je úplný a čitateľný aj bez JavaScriptu. Pohyb zapína trieda
   .motion (early.js), ak návštevník nežiada obmedzenie pohybu; home.js ho
   choreografuje podľa šírky a výšky okna.
   ========================================================================== */

/* ---------- Plynulé posúvanie (Lenis) ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}

/* ---------- Rozdelený text (vizuálna kópia je aria-hidden, text číta .sr-only) ---------- */
.split-visual{display:inline}
/* Maska slova siaha aj nad riadok: pri tesnom riadkovaní by inak odrezala diakritiku nad veľkými písmenami
   („Štyri“ sa zobrazovalo ako „Styri“). Záporný okraj vyrovná výplň, takže sa rozloženie textu nemení. */
.w-mask{display:inline-block;overflow:hidden;vertical-align:top;padding:.24em .08em .16em;margin:-.24em -.08em -.16em}
.w-in{display:inline-block}
section[tabindex="-1"]:focus{outline:none}

/* Sekcie sa pri posúvaní vysúvajú ponad úvod (aj keď ich ScrollTrigger pri pripnutí obalí). */
main section:not(.hero){position:relative;z-index:1;overflow-x:clip}

/* ---------- Úvod ---------- */
.hero{position:relative;z-index:0;height:100svh;min-height:660px;max-height:1000px;overflow:hidden;isolation:isolate;background:#050505;color:var(--on-dark)}
.hero-media{position:absolute;inset:0;overflow:hidden;transform-origin:62% 46%}
.hero-art,.hero-haze{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:60% center}
/* Zhmotnenie obrazu: kým úvod nezačne (a kým obraz nedorazí), vidno iba hmlistú predstavu – rozostrenú
   malú verziu. Ostrý obraz z nej potom vystúpi zmenou priehľadnosti (hero.js); bez pohybu sa ukáže hneď. */
.motion .hero-art{will-change:opacity}
.motion .hero:not(.is-ready) .hero-art,.hero.is-art-pending .hero-art{opacity:0}
.hero-score-field{position:absolute;z-index:1;inset:-2% -3% -2% auto;width:67%;overflow:hidden;pointer-events:none}
.hero-score{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:right center;mix-blend-mode:screen}
/* Tmavé pozadie obrázka stmaví architektúru už pred jeho načítaním – presne ako čierne pozadie obrázka
   a neskôr vrstva pod živými strunami. Bez neho bol obraz vpravo prvé okamihy jasnejší a potom stmavol. */
.hero-score-front{opacity:.34;filter:saturate(.88) contrast(.94);background:#080808}
.hero-shade{position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(5,5,5,.97) 0%,rgba(5,5,5,.88) 28%,rgba(5,5,5,.42) 58%,rgba(5,5,5,.08) 100%),linear-gradient(180deg,rgba(5,5,5,.6) 0%,rgba(5,5,5,0) 20%),linear-gradient(0deg,rgba(5,5,5,.66) 0%,rgba(5,5,5,0) 38%)}
.hero-dim{position:absolute;z-index:1;inset:0;background:#050505;opacity:0;pointer-events:none}
.hero-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--header-h) + 32px);padding-bottom:88px}
.hero .eyebrow{color:var(--yellow);margin-bottom:clamp(24px,3vw,36px)}
.hero h1{font-weight:400}
.hero-line{display:block}
.hero-line--content{font-family:var(--display);font-size:clamp(50px,7.6vw,120px);line-height:1;letter-spacing:-.022em}
.hero-line--form{margin-top:.04em;font-family:var(--sans);font-style:normal;font-weight:500;font-size:clamp(42px,6.85vw,108px);line-height:1.04;letter-spacing:-.045em;color:var(--yellow)}
.hero-lead{max-width:31em;margin-top:clamp(28px,3vw,40px);font-family:var(--serif);font-size:clamp(18px,1.5vw,22px);line-height:1.55;color:rgba(243,240,232,.8);text-wrap:pretty}
.hero-candidate{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:30px;font-size:15px;line-height:1.4}
.hero-candidate strong{font-weight:500}
.hero-candidate span{padding-left:18px;border-left:1px solid rgba(243,240,232,.32);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,240,232,.66)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(32px,3.6vw,44px)}
.hero .button--ghost{--btn-bd:rgba(243,240,232,.38);background:rgba(5,5,5,.24)}
.hero .button--ghost:hover{background:var(--on-dark)}
.scroll-cue{position:absolute;z-index:3;left:50%;bottom:26px;display:flex;align-items:center;gap:14px;min-height:44px;transform:translateX(-50%);color:rgba(243,240,232,.6);font-size:11px;font-weight:500;letter-spacing:.18em;text-decoration:none;text-transform:uppercase}
.scroll-cue i{position:relative;display:block;width:40px;height:1px;overflow:hidden;background:rgba(243,240,232,.25)}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--yellow);transform:translateX(-100%);animation:cue 2.8s var(--ease) infinite}
@keyframes cue{0%{transform:translateX(-100%)}55%,100%{transform:translateX(100%)}}

/* Úvodná choreografia: „forma“ sa pred očami mení z klasickej antikvy na modernú grotesku. */
.motion .hero:not(.is-ready) :is(.hero-kicker,.hero-title,.hero-lead,.hero-candidate,.hero-depth,.scroll-cue){opacity:0}
.hero-title-visual{display:block}
.hero-form-wrap{--x:0px;position:relative;display:inline-block;vertical-align:top;max-width:100%}
.hero-form-wrap .hero-line--form{clip-path:inset(-30% calc(100% - var(--x)) -30% -2%)}
.hero-form-ghost{position:absolute;left:0;top:50%;transform:translateY(-50%);font-family:var(--display);font-size:clamp(50px,7.6vw,120px);line-height:1;letter-spacing:-.022em;color:var(--on-dark);clip-path:inset(-30% -4% -30% var(--x));pointer-events:none}
.hero-form-head{position:absolute;top:-10%;bottom:-6%;left:0;width:2px;margin-left:-1px;background:var(--coral);box-shadow:0 0 22px 2px rgba(255,84,99,.6);transform:translateX(var(--x));opacity:var(--head,0);pointer-events:none}

/* Živá partitúra v úvode (canvas zo zlatých vlákien) */
.hero .hero-fluid-tone{position:absolute;inset:0;display:none;background:#080808;pointer-events:none}
.hero[data-hero-fluid-ready] .hero-fluid-tone{display:block}
.hero .hero-fluid-canvas{position:absolute;inset:0;display:none;width:100%;height:100%;max-width:none;pointer-events:none;mix-blend-mode:screen}
.hero[data-hero-fluid-ready] .hero-fluid-canvas{display:block}
.hero[data-hero-fluid-ready] .hero-score-front{visibility:hidden}

/* ---------- Spoločná hlavička sekcie ---------- */
.section-head{margin-bottom:var(--head-gap)}
.section-head-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.46fr);gap:clamp(32px,7vw,120px);align-items:start}
.section-head-grid .lede{max-width:28em;padding-top:.5em}
.section-head--stack .display{max-width:15em}
.eyebrow::before{transform:scaleX(var(--rule,1));transform-origin:left}

/* ---------- Vízia ---------- */
.vision{background:var(--paper)}
.has-curtain .vision{box-shadow:0 -36px 90px -12px rgba(0,0,0,.55)}
.vision-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.vision-head{grid-column:1/span 10}
.vision-head .display{font-size:clamp(40px,5.4vw,80px)}
.vision-quote{position:relative;grid-column:3/span 9;margin-top:clamp(36px,4.2vw,64px);padding-left:clamp(24px,3vw,44px)}
.vision-quote::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--yellow);transform:scaleY(var(--draw,1));transform-origin:top}
.vision-quote p{font-family:var(--display);font-style:italic;font-size:clamp(24px,2.45vw,36px);line-height:1.4;letter-spacing:-.008em;text-wrap:pretty}
.vision-pairs{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--block-gap);border-top:1px solid var(--rule-strong)}
.vision-pairs p{display:flex;flex-direction:column;gap:12px;padding:30px 28px 6px 0}
.vision-pairs p+p{padding-left:28px;border-left:1px solid var(--rule)}
.vision-pairs p>span{font-size:15px;color:var(--fg-3)}
.vision-pairs strong{font-family:var(--display);font-size:clamp(26px,2.4vw,36px);font-weight:400;line-height:1.12;letter-spacing:-.012em}
.vision-pairs .pair-ink{padding-bottom:.03em;color:var(--fg);background:linear-gradient(var(--yellow),var(--yellow)) 0 96%/var(--u,100%) .12em no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ---------- O kandidátovi ---------- */
.candidate-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(48px,7vw,120px);align-items:start}
/* Portrét ostáva pri čítaní textu na mieste (na desktope). */
.candidate-media{position:sticky;top:calc(var(--header-h) + 48px);padding:0 clamp(56px,7vw,112px) clamp(56px,6vw,96px) 0}
.candidate-media::before{content:"";position:absolute;z-index:2;left:-16px;top:28px;width:2px;height:112px;background:var(--yellow);transform:scaleY(var(--draw,1));transform-origin:top}
.candidate-portrait,.candidate-recital{overflow:hidden;background:#151412}
.candidate-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.candidate-recital{position:absolute;right:0;bottom:0;width:56%;outline:10px solid var(--bg)}
.candidate-recital img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.candidate-name{font-size:clamp(36px,3.9vw,58px)}
.candidate-roles{max-width:34em;margin-top:18px;font-size:15px;font-weight:500;line-height:1.55;color:var(--yellow)}
.candidate-subhead{margin:clamp(32px,3.2vw,44px) 0 0;font-size:12px;font-weight:500;line-height:1.35;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3)}
.candidate-statement p{max-width:34em;margin-top:14px;font-family:var(--serif);font-size:clamp(19px,1.5vw,22px);line-height:1.6;color:var(--fg);text-wrap:pretty}
.candidate-statement p+p{margin-top:.75em}
.candidate-profile p{max-width:40em;margin-top:14px;font-size:15.5px;line-height:1.7;color:var(--fg-2);text-wrap:pretty}
.candidate-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:40em;margin:clamp(30px,3.4vw,44px) 0 0;border-top:1px solid var(--rule-strong)}
.candidate-fact{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:10px;padding:20px 18px 0 0}
.candidate-fact+.candidate-fact{padding-left:18px;border-left:1px solid var(--rule)}
.candidate-fact dd{margin:0;font-size:clamp(24px,2.2vw,32px);font-weight:300;line-height:1;letter-spacing:-.03em;color:var(--fg)}
.candidate-fact dt{font-size:13px;line-height:1.45;color:var(--fg-3)}
.candidate-link{margin-top:24px}

/* ---------- Jadro programu: päť rovnocenných oblastí; pri čítaní sa „postaví“ ich mriežka ---------- */
.manifesto{overflow:hidden;padding-top:clamp(72px,8vw,128px)}
.manifesto.is-stage{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--header-h) + 24px)}
/* Partitúra má vlastnú priehľadnosť (bez mix-blend-mode, ktorý pri pripnutej sekcii blikal). */
.manifesto-score{position:absolute;z-index:0;top:4%;right:-6%;width:66%;height:70%;max-width:none;object-fit:cover;opacity:.5;pointer-events:none}
.manifesto-inner{position:relative;z-index:1}
.manifesto-copy{max-width:23em;font-family:var(--display);font-size:clamp(28px,3.25vw,48px);line-height:1.22;letter-spacing:-.016em;text-wrap:pretty}
.manifesto-values{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(48px,5.5vw,88px)}
.manifesto-values::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--ink);transform:scaleX(var(--draw,1));transform-origin:left}
.manifesto-values li{position:relative;display:flex;flex-direction:column;min-height:226px;padding:24px 22px 32px 0}
.manifesto-values li+li{padding-left:22px}
.manifesto-values li+li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--rule-strong);opacity:.45;transform:scaleY(var(--draw,1));transform-origin:top}
.mv-num{margin-top:auto;padding-top:24px;font-size:13px;font-weight:600;letter-spacing:.08em}
.manifesto-values strong{margin-top:10px;font-size:clamp(15px,1.25vw,18px);font-weight:500;line-height:1.3;letter-spacing:-.005em}
/* Ikony piatich oblastí: zložené metafory v tušovej linke; kreslenie čiar cez pathLength = 1. */
.mv-icon{display:block;width:clamp(64px,6.2vw,92px);height:clamp(64px,6.2vw,92px);margin-left:-4px;color:var(--ink)}
:is(.mv-icon,.area-icon,.support-icon) svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
:is(.mv-icon,.area-icon) .i-vein{stroke-width:1.1}
:is(.mv-icon,.area-icon) .i-bay{fill:none;stroke-width:1.3}
:is(.mv-icon,.area-icon) .i-meridian{fill:none}
:is(.mv-icon,.area-icon) .i-bgc{fill:var(--bg);stroke:none}
/* Čiarkovanie 1 : 2 – pri posune 1,05 je čiara celá v medzere (vzor 1 : 1 by ukázal jej koniec ako bodku). */
:is(.mv-icon,.area-icon,.support-icon) .i-draw{stroke-dasharray:1 2}
:is(.mv-icon,.area-icon,.support-icon) .i-fill{fill:currentColor;stroke:none}
/* Kľúč v Pilieroch a v „HTF v roku 2031“: tá istá ikona menšia, pod číslom; hrubšia linka kvôli mierke. */
.area-icon{display:block;width:44px;height:44px;margin:14px 0 0 -4px;color:var(--accent-ink)}
.area-icon svg{stroke-width:2}
.area-icon .i-vein{stroke-width:1.4}
.area-icon .i-bay{stroke-width:1.6}

/* ---------- Východiská: počítadlá a bodové polia ---------- */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule)}
.data-point{display:flex;flex-direction:column;min-height:240px;padding:32px 28px 28px 0}
.data-point+.data-point{padding-left:28px;border-left:1px solid var(--rule)}
.data-point strong{font-size:clamp(64px,7.4vw,112px);font-weight:300;line-height:.9;letter-spacing:-.055em;font-variant-numeric:tabular-nums}
.data-point>span{margin-top:24px;font-size:17px;font-weight:500;line-height:1.4}
.data-dots{display:block;width:100%;margin-top:26px}
.data-point small{margin-top:auto;padding-top:24px;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.data-source{max-width:62em;margin-top:20px;font-size:13px;line-height:1.6;color:var(--fg-3)}
.context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(40px,5vw,64px)}
.context-grid p{padding-right:28px;font-family:var(--serif);font-size:18px;line-height:1.62;color:var(--fg-2);text-wrap:pretty}
.context-grid p+p{padding-left:28px;border-left:1px solid var(--rule)}

/* ---------- Päť pilierov: reflektor sleduje čítaný pilier ---------- */
.pillars-stage{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6.5vw,112px);align-items:start}
.pillars-visual{position:sticky;top:calc(var(--header-h) + 36px)}
.pillars-scene{--sx:50%;position:relative;overflow:hidden;aspect-ratio:4/3;background:#151412}
.pillars-art{width:100%;height:100%;object-fit:cover}
.pillars-score{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:.3}
.pillars-spot{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse 12% 52% at var(--sx) 50%,rgba(5,5,5,0) 0,rgba(5,5,5,0) 58%,rgba(5,5,5,.68) 100%);transition:opacity .9s var(--ease)}
.pillars-counter{position:absolute;left:clamp(16px,2vw,28px);bottom:clamp(12px,1.6vw,22px);display:flex;align-items:baseline;gap:10px;margin:0;opacity:0;transition:opacity .9s var(--ease)}
.pillars-counter-mask{display:block;height:1em;overflow:hidden;font-size:clamp(40px,4vw,64px);font-weight:300;line-height:1;letter-spacing:-.045em;color:var(--yellow)}
.pillars-counter-strip{display:block}
.pillars-counter-strip span{display:block;height:1em}
.pillars-counter-total{font-size:13px;font-weight:600;letter-spacing:.08em;color:rgba(243,240,232,.72)}
.is-tracking .pillars-spot,.is-tracking .pillars-counter{opacity:1}
.pillars-visual figcaption{margin-top:16px;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.pillar-list-wrap{position:relative}
.pillar-rail{position:absolute;top:0;bottom:0;left:calc(-1 * clamp(20px,2.6vw,44px));display:none;width:1px;background:var(--rule)}
.pillar-rail i{position:absolute;inset:0;background:rgba(247,185,30,.38);transform:scaleY(0);transform-origin:top}
.is-tracking .pillar-rail{display:block}
.pillar-list{border-top:1px solid var(--rule-strong)}
.pillar{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:clamp(30px,3.4vw,46px) 0;border-bottom:1px solid var(--rule)}
.pillar-num{padding-top:.6em;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--yellow)}
.pillar-n{display:block}
.pillar-title{font-family:var(--display);font-size:clamp(26px,2.35vw,35px);font-weight:400;line-height:1.15;letter-spacing:-.012em;text-wrap:balance}
.pillar-text{max-width:34em;margin-top:16px;font-family:var(--serif);font-size:19px;line-height:1.6;color:var(--fg-2)}
.pillar-key{margin-bottom:12px;font-size:12px;font-weight:600;line-height:1.35;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.pillar .text-link{color:var(--yellow)}
.pillar .text-link-label{text-decoration-color:rgba(247,185,30,.45)}
.pillar .text-link:hover .text-link-label{text-decoration-color:var(--yellow)}
/* Pri čítaní: riadok ≈ obsah + 2 × 5vh (predtým 2 × 10vh – polovica riadku bola prázdna); vo výhľade sú 2 – 3 piliere. */
/* 12. 10. 2026: neaktívne piliere sa už nestmievajú (text bol pri .28 ťažko čitateľný).
   13. 10. 2026: fokus sa vrátil bez stmievania textu. Ostatné piliere majú text v bežnej sivej (ako dovtedy telo
   textu), čítaný pilier sa rozjasní; pri ňom svieti žltý pás na koľajnici (pillar-focus, posúva ho home.js; bez
   svetla rozliateho pod text – to sa nepáčilo) a rozsvieti sa jeho číslo a ikona. Prechody sú v CSS iba na vnútorných prvkoch – stĺpec s číslom
   (pillar-num) pri príchode animuje GSAP a prechod nepriehľadnosti na ňom by ho nechal neviditeľný. */
.is-tracking .pillar{padding-block:clamp(36px,5vh,52px)}
.is-tracking .pillar-list{position:relative;z-index:1}
.pillar-focus{position:absolute;z-index:0;top:0;left:calc(-1 * clamp(20px,2.6vw,44px));width:2px;height:0;margin-left:-.5px;pointer-events:none;background:var(--yellow);box-shadow:0 0 6px rgba(247,185,30,.3)}
.is-tracking .pillar :is(.pillar-n,.area-icon){opacity:.42;transition:opacity .7s var(--ease)}
.is-tracking .pillar .pillar-key{opacity:.55;transition:opacity .7s var(--ease)}
.is-tracking .pillar :is(.pillar-title,.pillar-text,.pillar-directions){transition:color .8s var(--ease)}
.is-tracking .pillar .pillar-title{color:var(--fg-2)}
.is-tracking .pillar:is(.is-active,:focus-within) :is(.pillar-n,.area-icon,.pillar-key){opacity:1}
.is-tracking .pillar:is(.is-active,:focus-within) .pillar-title{color:var(--fg)}
.is-tracking .pillar:is(.is-active,:focus-within) :is(.pillar-text,.pillar-directions){color:rgba(243,240,232,.9)}

/* ---------- Odkazy na kapitoly ---------- */
/* Štítky: iniciatíva je aj verejným záväzkom alebo výstupom prvého roka; odkaz vedie priamo na položku. */

.is-horizontal .section-head{margin-bottom:0}
/* Nízke okná (700 – 760 px): karty so štítkami musia vojsť celé. */
/* ---------- Riadenie ---------- */
.governance-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(40px,7vw,120px);align-items:start}
.governance-lead{position:sticky;top:calc(var(--header-h) + 36px)}
.governance-lead .lede{max-width:24em;margin-top:28px}
.principles{border-top:1px solid var(--rule-strong)}
.principle{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;padding:28px 0 30px;border-bottom:1px solid var(--rule)}
.principle>span{padding-top:5px;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--accent-ink)}
.governance-risk{max-width:24em;margin-top:24px;padding-top:18px;border-top:1px solid var(--rule);font-size:15px;line-height:1.6;color:var(--fg-2)}
.governance-risk span{display:block;margin-bottom:6px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.governance-lead .chapter-ref{margin-top:18px}
.principle h3{font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.01em}
.principle p{max-width:36em;margin-top:8px;font-size:15.5px;line-height:1.62;color:var(--fg-2)}
.governance-quote{margin-top:var(--block-gap)}
/* Vedenie fakulty (8.1): organigram. Hore dekan, pod ním štyria prodekani a tajomník/čka. Čiary (org-trunk,
   org-bus, org-drop) kreslí home.js cez --draw; bez pohybu stoja hotové. Pod 900 px sa organigram zmení na zvislý
   strom s chrbtom vľavo. Dve nové odborné pozície sú zámerne mimo schémy, v tichom zozname pod ňou (org-support). */
.governance-team{margin-top:var(--block-gap)}
.governance-team-label{margin-bottom:22px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.org{--gap:clamp(12px,1.3vw,18px);--drop:34px;position:relative}
.org-node{position:relative;display:flex;flex-direction:column;gap:8px;padding:18px 18px 20px;border:1px solid var(--rule);border-top:2px solid var(--ink);background:var(--paper)}
.org-node span{font-size:11.5px;font-weight:600;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink)}
.org-node strong{font-size:17px;font-weight:500;line-height:1.3;letter-spacing:-.01em;text-wrap:balance}
.org-dean{display:flex;justify-content:center}
.org-node--dean{min-width:min(260px,100%);align-items:center;padding:20px 44px 22px;border:0;background:var(--ink);color:var(--on-dark)}
.org-node--dean strong{font-family:var(--display);font-size:clamp(28px,2.4vw,36px);font-weight:400;line-height:1;letter-spacing:-.01em}
.org-trunk{position:absolute;left:50%;width:1.5px;margin-left:-.75px;background:var(--ink);transform:scaleY(var(--draw,1));transform-origin:top}
.org-line{position:relative;padding-top:calc(var(--drop) * 2)}
.org-trunk--low{top:0;height:var(--drop)}
.org-bus{position:absolute;top:var(--drop);left:calc((100% - 4 * var(--gap)) / 10);right:calc((100% - 4 * var(--gap)) / 10);height:1.5px;margin-top:-.75px;background:var(--ink);transform:scaleX(var(--draw,1))}
.org-line ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap)}
.org-drop{position:absolute;bottom:100%;left:50%;width:1.5px;height:var(--drop);margin-left:-.75px;background:var(--ink);transform:scaleY(var(--draw,1));transform-origin:top}
.org-support{margin-top:40px;padding-top:22px;border-top:1px solid var(--rule)}
.org-support-label{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.org-support-text{max-width:44em;margin-top:10px;font-size:15px;line-height:1.6;color:var(--fg-2)}
.org-support-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px clamp(28px,4vw,64px);max-width:1000px;margin-top:20px}
.org-support-list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
.org-support-list li>div{display:flex;flex-direction:column;gap:5px;padding-top:3px}
.org-support-list strong{font-size:15.5px;font-weight:500;line-height:1.4;letter-spacing:-.005em}
/* Ikony pozícií sú zámerne malé a v sivej (nie v čiernej ako uzly organigramu); akcent je len v kontrolkách a bodkách. */
.support-icon{display:block;width:44px;height:44px;color:var(--fg-2)}
.support-icon svg{stroke-width:2}
.support-icon .i-solid{fill:var(--bg);stroke:currentColor}
.support-icon .i-accent{fill:var(--accent-ink)}
.support-kind{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;line-height:1.45;color:var(--fg-3)}
.support-change{flex:0 0 auto;width:14px;height:14px;fill:none;stroke:var(--accent-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.governance-team-note{max-width:44em;margin-top:22px;font-size:14.5px;line-height:1.6;color:var(--fg-2)}
.governance-quote blockquote{max-width:21em;font-family:var(--display);font-style:italic;font-size:clamp(28px,3.2vw,48px);line-height:1.2;letter-spacing:-.016em;text-wrap:balance}
.governance-quote blockquote::before{content:"";display:block;width:56px;height:2px;margin-bottom:clamp(28px,3vw,40px);background:var(--yellow);transform:scaleX(var(--draw,1));transform-origin:left}

/* ---------- Záväzky: sedem riadkov na jednej osi 2027 – 2031 ---------- */
/* Cieľ odkazu zo štítka sa krátko zvýrazní, aby bolo hneď vidieť, kam sa stránka posunula. */
:is(.commitment,.timeline-item){--flash:rgba(247,185,30,.3)}
.timeline-item{--flash:rgba(255,255,255,.5)}
:is(.commitment,.timeline-item):is(:target,.is-target){animation:target-flash 2s var(--ease) both}
@keyframes target-flash{0%,35%{background-color:var(--flash);box-shadow:0 0 0 14px var(--flash)}100%{background-color:transparent;box-shadow:0 0 0 14px transparent}}
/* Roky sú v hlavičke raz pre všetky riadky; os každého riadku má rovnaký stĺpec aj odsadenie (--rin), takže sa
   pruhy, bodky a termíny zarovnajú pod sebou. Zvislé čiary rokov idú cez celý riadok, termín má pod textom pozadie. */
.roadmap{--rcols:48px minmax(0,1fr) minmax(0,1.06fr);--rgap:clamp(24px,3.4vw,56px);--rin:8px}
.roadmap-head,.commitment{display:grid;grid-template-columns:var(--rcols)}
.commit-text,.roadmap-head-label{padding-right:var(--rgap)}
.roadmap-head{align-items:end;padding-bottom:14px;font-size:11.5px;font-weight:600;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.roadmap-years{position:relative;height:16px;margin-inline:var(--rin);letter-spacing:.04em;font-variant-numeric:tabular-nums;color:var(--fg)}
.roadmap-years span{position:absolute;top:0;transform:translateX(-50%)}
.roadmap-years span:nth-child(1){left:0;transform:translateX(-4px)}
.roadmap-years span:nth-child(2){left:25%}
.roadmap-years span:nth-child(3){left:50%}
.roadmap-years span:nth-child(4){left:75%}
.roadmap-years span:nth-child(5){left:100%;transform:translateX(calc(-100% + 4px))}
.roadmap-list{border-top:1px solid var(--ink)}
.commitment{align-items:start;padding:28px 0 30px;border-bottom:1px solid var(--rule)}
.commit-num{padding-top:3px;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--accent-ink)}
.commit-text h3{font-size:clamp(19px,1.5vw,21px);font-weight:500;line-height:1.3;letter-spacing:-.01em}
.commit-text p{max-width:34em;margin-top:8px;font-size:15.5px;line-height:1.6;color:var(--fg-2)}
.commit-time{position:relative;align-self:stretch;padding-inline:var(--rin)}
.commit-time::before{content:"";position:absolute;top:-28px;bottom:-30px;left:var(--rin);right:var(--rin);border-right:1px solid var(--rule);background:linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0/25% 100% repeat-x;pointer-events:none}
.commit-time .mini-horizon{position:relative;margin-top:5px}
.commit-time .mh-years{display:none}
.commitment .deadline{position:relative;margin-top:16px;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--fg-2)}
.commitment .deadline::before{margin-top:.5em;width:7px;height:7px}
.commitment .deadline span{padding-right:6px;background:var(--bg);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.commitments-note{max-width:50em;margin-top:28px;padding-left:18px;border-left:2px solid var(--yellow);font-size:14.5px;line-height:1.6;color:var(--fg-2)}
.deadline{display:inline-flex;align-items:flex-start;gap:10px;font-size:12px;font-weight:600;line-height:1.35;letter-spacing:.12em;text-transform:uppercase}
.deadline::before{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:.32em;background:var(--yellow)}
.theme-yellow .deadline::before{background:var(--ink)}
.mh-track{position:relative;height:16px}
.mh-base{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--rule-strong);opacity:.35}
.mh-bar{position:absolute;left:var(--mh-f,0%);top:50%;width:calc(var(--mh-t,100%) - var(--mh-f,0%));height:3px;margin-top:-1px;background:var(--fg);transform-origin:left}
.mh-bar--then{height:2px;background:repeating-linear-gradient(90deg,var(--fg) 0 6px,transparent 6px 11px)}
.mh-from-0{--mh-f:0%}.mh-from-1{--mh-f:25%}.mh-from-2{--mh-f:50%}.mh-from-3{--mh-f:75%}
.mh-to-1{--mh-t:25%}.mh-to-2{--mh-t:50%}.mh-to-3{--mh-t:75%}.mh-to-4{--mh-t:100%}
.mh-dot{position:absolute;top:50%;width:11px;height:11px;margin:-5px 0 0 -5.5px;border:2px solid var(--fg);border-radius:50%;background:var(--bg)}
.mh-dot--filled{background:var(--fg)}
.mh-at-0{left:0}
.mh-at-1{left:25%}
.mh-at-2{left:50%}
.mh-at-3{left:75%}
.mh-at-4{left:100%}
.mh-mark{position:absolute;top:50%;width:13px;height:13px;margin:-6px 0 0 -6.5px;border:2px solid var(--fg);background:var(--yellow);transform:rotate(45deg)}
.theme-dark .mh-mark{border-color:var(--yellow)}
.mh-years{position:relative;height:14px;margin-top:10px;font-size:11px;font-weight:500;line-height:14px;letter-spacing:.02em;color:var(--fg-3);font-variant-numeric:tabular-nums}
.mh-years span{position:absolute;top:0;transform:translateX(-50%)}
.mh-years span:nth-child(1){left:0;transform:translateX(-6px)}
.mh-years span:nth-child(2){left:25%}
.mh-years span:nth-child(3){left:50%}
.mh-years span:nth-child(4){left:75%}
.mh-years span:nth-child(5){left:100%;transform:translateX(calc(-100% + 6px))}

/* ---------- Prvý rok: termíny na osi február – december 2027 ---------- */
.gantt{--cols:56px minmax(0,1.25fr) minmax(0,1fr) 196px;position:relative}
.gantt-head,.timeline-item{display:grid;grid-template-columns:var(--cols);column-gap:28px}
.gantt-head{align-items:end;padding-bottom:12px}
.gantt-months{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));font-size:10.5px;font-weight:600;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3)}
.gantt-months li{padding-left:4px;border-left:1px solid var(--rule)}
.timeline{border-top:1px solid var(--ink)}
.timeline-item{align-items:center;padding:26px 0;border-bottom:1px solid var(--rule)}
.timeline-num{font-size:13px;font-weight:600;letter-spacing:.08em}
.timeline-text h3{font-size:clamp(18px,1.55vw,21px);font-weight:500;line-height:1.32;letter-spacing:-.01em}
.timeline-text p{margin-top:6px;font-size:15.5px;line-height:1.55;color:var(--fg-2)}
.gantt-track{position:relative;align-self:stretch;min-height:30px;background:linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0/calc(100% / 11) 100%}
.gantt-bar{position:absolute;top:50%;left:var(--from,0%);width:calc(var(--to,0%) - var(--from,0%));height:10px;margin-top:-5px;background:var(--ink);transform-origin:left}
.gantt-bar--then{height:2px;margin-top:-1px;background:repeating-linear-gradient(90deg,var(--ink) 0 6px,transparent 6px 11px)}
.gantt-mark{position:absolute;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border:2px solid var(--ink);background:var(--yellow);transform:rotate(45deg);transition:background-color .35s var(--ease)}
.gantt-mark.is-done{background:var(--ink)}
.g-to-1{--to:calc(100% / 11 * 1)}.g-to-2{--to:calc(100% / 11 * 2)}.g-to-3{--to:calc(100% / 11 * 3)}.g-to-4{--to:calc(100% / 11 * 4)}.g-to-5{--to:calc(100% / 11 * 5)}.g-to-6{--to:calc(100% / 11 * 6)}.g-to-7{--to:calc(100% / 11 * 7)}.g-to-8{--to:calc(100% / 11 * 8)}.g-to-9{--to:calc(100% / 11 * 9)}.g-to-10{--to:calc(100% / 11 * 10)}.g-to-11{--to:100%}
.g-from-1{--from:calc(100% / 11 * 1)}.g-from-2{--from:calc(100% / 11 * 2)}.g-from-3{--from:calc(100% / 11 * 3)}.g-from-4{--from:calc(100% / 11 * 4)}.g-from-5{--from:calc(100% / 11 * 5)}.g-from-6{--from:calc(100% / 11 * 6)}.g-from-7{--from:calc(100% / 11 * 7)}.g-from-8{--from:calc(100% / 11 * 8)}.g-from-9{--from:calc(100% / 11 * 9)}.g-from-10{--from:calc(100% / 11 * 10)}
.g-at-1{left:calc(100% / 11 * 1)}.g-at-2{left:calc(100% / 11 * 2)}.g-at-3{left:calc(100% / 11 * 3)}.g-at-4{left:calc(100% / 11 * 4)}.g-at-5{left:calc(100% / 11 * 5)}.g-at-6{left:calc(100% / 11 * 6)}.g-at-7{left:calc(100% / 11 * 7)}.g-at-8{left:calc(100% / 11 * 8)}.g-at-9{left:calc(100% / 11 * 9)}.g-at-10{left:calc(100% / 11 * 10)}.g-at-11{left:100%}
.timeline-item .deadline{justify-self:end;text-align:right}
.gantt-playhead{position:absolute;top:var(--ph-top,0);bottom:0;left:var(--ph-left,0);width:var(--ph-width,0);display:none;pointer-events:none}
.gantt-playhead i{position:absolute;top:-6px;bottom:0;left:0;width:1.5px;margin-left:-.75px;background:var(--ink)}
.gantt-playhead i::before{content:"";position:absolute;top:0;left:50%;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--coral)}
.has-playhead .gantt-playhead{display:block}
.section-follow{display:flex;justify-content:flex-end;margin-top:28px}
/* ---------- Odkaz na tú istú kapitolu v programovom vyhlásení aj vo vízii a zámeroch ---------- */
.chapter-ref{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:24px;margin-top:clamp(28px,3vw,40px)}
.chapter-ref-label{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3)}
.chapter-ref .text-link{font-size:14px}
.section-follow .chapter-ref{margin-top:0}
.chapter-ref--pillar{margin-top:4px}
.vision-ref{grid-column:1/-1}


/* ---------- Rozcestník dokumentov s obálkami PDF ---------- */
.gateway-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(40px,7vw,120px);align-items:start}
.gateway-intro{position:sticky;top:calc(var(--header-h) + 36px)}
.gateway-intro .lede{max-width:24em;margin-top:28px}
.document-stack{display:grid;gap:16px}
.document-card{display:grid;grid-template-columns:clamp(104px,10.5vw,160px) minmax(0,1fr);gap:clamp(24px,3vw,44px);align-items:start;padding:clamp(24px,3vw,44px);border:1px solid var(--rule-strong)}
.document-card:not(:has(.doc-cover-wrap)){grid-template-columns:minmax(0,1fr)}
.doc-cover-wrap{perspective:900px}
.doc-cover{width:100%;height:auto;background:#fff;box-shadow:0 26px 44px -20px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.2);transform:rotateY(-12deg) rotateX(3deg);transform-origin:0 50%}
.doc-body{display:flex;flex-direction:column;gap:20px;min-width:0}
.doc-meta{font-size:12px;font-weight:500;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.document-card h3{max-width:17em;font-family:var(--display);font-size:clamp(30px,3.1vw,46px);font-weight:400;line-height:1.06;letter-spacing:-.018em;text-wrap:balance}
.document-card p{max-width:32em;font-size:16px;line-height:1.6;color:var(--fg-3)}
.document-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;margin-top:12px}
/* Stručná brožúra: doplnok programového vyhlásenia – iba PDF, menšia a tichšia ako jeho karta. */
.doc-brochure{display:grid;grid-template-columns:clamp(52px,4.6vw,68px) minmax(0,1fr);gap:clamp(18px,2.4vw,32px);align-items:start;padding:clamp(18px,2vw,26px) clamp(24px,3vw,44px);border:1px solid var(--rule)}
.doc-brochure .doc-cover{transform:none;box-shadow:0 12px 22px -14px rgba(0,0,0,.55),0 1px 4px rgba(0,0,0,.16)}
.doc-brochure .doc-body{gap:6px}
.doc-brochure h3{font-size:17px;font-weight:600;line-height:1.35;letter-spacing:-.005em}
.doc-brochure p:not(.doc-meta){max-width:34em;font-size:15px;line-height:1.55;color:var(--fg-3)}
.doc-brochure .text-link{align-self:flex-start;margin-top:8px}
.primary-document{border-color:var(--black)}
.secondary-document h3{font-size:clamp(24px,2.2vw,31px);line-height:1.15}

/* ---------- Záver a tichá kóda motta ---------- */
.closing{position:relative;overflow:hidden;padding-top:var(--section)}
.closing-score{position:absolute;z-index:0;left:34%;right:-14%;bottom:-24%;width:auto;height:96%;max-width:none;object-fit:cover;opacity:.55;pointer-events:none}
/* Živý pás v závere (home.js): plátno v polohe obrázka; obrázok ostáva v rozložení, iba sa skryje. */
.closing-score-canvas{position:absolute;z-index:0;display:none;max-width:none;pointer-events:none}
.closing[data-score-ready] .closing-score-canvas{display:block}
.closing[data-score-ready] img.closing-score{visibility:hidden}
.closing::before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,var(--black) 38%,rgba(11,11,10,.5) 72%,rgba(11,11,10,.1)),linear-gradient(0deg,rgba(11,11,10,0) 40%,var(--black) 100%);pointer-events:none}
.closing-grid{position:relative;z-index:1}
.closing .display{max-width:14.5em;font-size:clamp(40px,4.9vw,74px)}
.closing-copy{max-width:30em;margin-top:30px;font-family:var(--serif);font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--fg-2)}
.closing-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.closing-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:22px;font-size:15px;color:var(--fg-2)}
.closing-contact span{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.closing-contact a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:5px}

/* ---------- Poradie priorít podľa rozpočtového scenára ---------- */
.priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule)}
.priority{display:flex;flex-direction:column;padding:28px 28px 34px;box-shadow:-1px 0 0 var(--rule)}
.priority:first-child{padding-left:0;box-shadow:none}
.priority-num{margin-top:22px;font-size:clamp(40px,3.6vw,56px);font-weight:300;line-height:1;letter-spacing:-.045em}
.priority h3{margin-top:18px;font-size:20px;font-weight:500;line-height:1.3;letter-spacing:-.01em}
.priority p:last-child{margin-top:12px;font-size:15.5px;line-height:1.62;color:var(--fg-2)}
/* Kóda: motto sa na konci vráti v menšej mierke; jeho dva hlasy sa pri posune zarovnajú. */
.coda{position:relative;z-index:1;margin-top:var(--block-gap);padding:clamp(32px,3.4vw,52px) 0 clamp(44px,4.6vw,72px)}
.coda::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--rule);transform:scaleX(var(--draw,1));transform-origin:left}
.coda-line{display:block}
.coda-content{font-family:var(--display);font-size:clamp(30px,3.5vw,52px);line-height:1.06;letter-spacing:-.02em;color:var(--on-dark)}
.coda-form{margin-top:.06em;font-family:var(--sans);font-size:clamp(27px,3.15vw,47px);font-weight:500;line-height:1.08;letter-spacing:-.045em;color:var(--yellow)}

/* ---------- Responzivita ---------- */
@media (max-width:1180px){
  /* Názvy oblastí sa tu lámu do dvoch riadkov: rovnaká výška názvu drží čísla 01 – 05 v jednej línii. */
  .manifesto-values strong{min-height:2.6em}
  .gantt{--cols:52px minmax(0,1fr) minmax(0,1fr)}
  .gantt-head>span:last-child{display:none}
  .timeline-item .deadline{grid-column:3;justify-self:start;text-align:left;margin-top:10px}
  /* Termín je tu pod pruhom: bežec časovej osi prejde za ním, nie cez text. */
  .has-playhead .timeline-item .deadline{position:relative;z-index:1;padding-right:6px;background:var(--bg)}
}

@media (max-width:900px){
  .candidate-layout{grid-template-columns:1fr}
  .candidate-media{position:relative;top:auto;width:min(100%,560px);padding:0 16% 56px 0}
  .section-head-grid{grid-template-columns:1fr;gap:22px}
  .section-head-grid .lede{padding-top:0}
  .vision-head,.vision-quote{grid-column:1/-1}
  .context-grid{grid-template-columns:1fr}
  .context-grid p,.context-grid p+p{padding:22px 0;border-left:0;border-top:1px solid var(--rule)}
  .pillars-stage{grid-template-columns:1fr}
  .pillars-visual{position:relative;top:auto}
  .governance-layout,.gateway-layout{grid-template-columns:1fr}
  .governance-lead,.gateway-intro{position:static}
  .closing-score{left:-20%;right:-40%;height:70%;opacity:.38}
  .gantt{--cols:44px minmax(0,1fr)}
  .gantt-head>span:nth-child(2){display:none}
  .timeline-item{align-items:start;row-gap:14px}
  .timeline-text,.gantt-track,.timeline-item .deadline{grid-column:2}
  .gantt-track{min-height:24px}
  .timeline-item .deadline{margin-top:0}
}

@media (max-width:640px){
  .hero{min-height:620px;max-height:none}
  .hero-art{object-position:66% center}
  .hero-score-field{inset:0 -12% 0 auto;width:78%;opacity:.42}
  .hero-shade{background:linear-gradient(90deg,rgba(5,5,5,.95),rgba(5,5,5,.66) 72%,rgba(5,5,5,.3)),linear-gradient(180deg,rgba(5,5,5,.6),rgba(5,5,5,0) 22%),linear-gradient(0deg,rgba(5,5,5,.72),rgba(5,5,5,0) 50%)}
  .hero-inner{justify-content:flex-end;padding-bottom:48px}
  .hero-candidate{gap:6px 14px}
  .hero-candidate span{flex-basis:100%;padding-left:0;border-left:0}
  .hero-actions{flex-direction:column;align-items:stretch}
  .scroll-cue{display:none}
  .vision-quote{padding-left:20px}
  .vision-pairs{grid-template-columns:1fr}
  .vision-pairs p,.vision-pairs p+p{padding:22px 0;border-left:0}
  .vision-pairs p+p{border-top:1px solid var(--rule)}
  .manifesto-values{grid-template-columns:1fr;margin-top:clamp(56px,14vw,80px)}
  .manifesto-values li,.manifesto-values li+li{flex-direction:row;align-items:center;gap:16px;min-height:0;padding:14px 0}
  .mv-icon{flex:0 0 auto;width:52px;height:52px;margin-left:-4px}
  .mv-num{width:22px;margin-top:0;padding-top:0}
  .manifesto-values li+li::before{right:0;bottom:auto;width:auto;height:1px;transform:scaleX(var(--draw,1));transform-origin:left}
  .manifesto-values strong{margin-top:0;min-height:0}
  .manifesto-score{top:auto;bottom:30%;right:-60%;width:150%;height:40%;opacity:.4}
  .candidate-media{padding:0 12% 48px 0}
  .candidate-media::before{left:-10px}
  .candidate-recital{width:62%;outline-width:6px}
  .candidate-facts{grid-template-columns:1fr}
  .candidate-fact,.candidate-fact+.candidate-fact{padding:16px 0;border-left:0}
  .candidate-fact+.candidate-fact{border-top:1px solid var(--rule)}
  .stats{grid-template-columns:1fr}
  .data-point,.data-point+.data-point{min-height:0;padding:28px 0;border-left:0}
  .data-point+.data-point{border-top:1px solid var(--rule)}
  .data-point small{padding-top:14px}
  .pillar{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:26px 0}
  .area-icon{width:32px;height:32px;margin-top:10px;margin-left:-3px}
  .pillar-text{font-size:18px}
  .principle{grid-template-columns:40px minmax(0,1fr)}
  .priority-grid{grid-template-columns:1fr}
  .priority,.priority:first-child{padding:28px 0 30px;box-shadow:none}
  .priority+.priority{border-top:1px solid var(--rule)}
  .gantt-months{font-size:9px;letter-spacing:0}
  .gantt-months li{padding-left:2px}
  .section-follow{justify-content:flex-start}
  .document-card{grid-template-columns:minmax(0,1fr)}
  .document-card .doc-cover-wrap{width:112px}
  .document-actions{flex-direction:column;align-items:stretch}
  .document-actions .text-link{justify-content:space-between}
  .doc-brochure{grid-template-columns:44px minmax(0,1fr);gap:16px;padding:20px}
  .closing-actions{flex-direction:column;align-items:stretch}
}

/* ---------- Úvod: tri úrovne čítania (web → brožúra → úplný program) ---------- */
.hero-depth{max-width:900px;margin-top:clamp(30px,3.4vw,42px)}
.hero-depth-label{margin-bottom:12px;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,240,232,.62)}
.hero-depth ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.depth-link{display:flex;align-items:center;gap:14px;height:100%;min-height:66px;padding:12px 16px;border:1px solid rgba(243,240,232,.34);background:rgba(5,5,5,.3);color:var(--on-dark);text-decoration:none;transition:background-color .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}
.depth-link:hover{background:var(--on-dark);border-color:var(--on-dark);color:var(--ink)}
.depth-link--here{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.depth-link--here:hover{background:var(--yellow-hi);border-color:var(--yellow-hi)}
.depth-num{min-width:.7em;font-size:26px;font-weight:300;line-height:1;letter-spacing:-.04em}
.depth-text{display:flex;flex:1 1 auto;flex-direction:column;gap:3px;min-width:0}
.depth-text strong{font-size:14.5px;font-weight:500;line-height:1.25}
.depth-text small{font-size:12px;line-height:1.35;opacity:.74}
.depth-link .icon{transition:transform .4s var(--ease)}
.depth-link:hover .icon{transform:translateX(3px)}
.depth-link:hover .icon-arrow--down{transform:translateY(3px)}

/* ---------- Program v skratke: prínosy pre študentov, pedagógov a fakultu ---------- */
.brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-strong)}
.brief-group{padding:30px 28px 8px 0}
.brief-group+.brief-group{padding-left:28px;border-left:1px solid var(--rule)}
.brief-group h3{font-family:var(--display);font-size:clamp(25px,2.2vw,33px);font-weight:400;line-height:1.12;letter-spacing:-.012em}
.brief-group ul{margin-top:22px}
.brief-group li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:start;padding:16px 0;border-top:1px solid var(--rule)}
.brief-key{display:block;color:var(--accent-ink)}
.brief-key .area-icon{width:34px;height:34px;margin:0 0 0 -3px}
.brief-group p{font-size:15.5px;line-height:1.6;color:var(--fg-2);text-wrap:pretty}
.brief-follow{display:flex;flex-wrap:wrap;gap:10px 34px;margin-top:clamp(26px,3vw,40px)}
.brief-follow .text-link{font-size:14px}

/* ---------- Kandidát: výsledky z textu programu, celý profil po rozbalení ---------- */
.candidate-results ul{max-width:40em;margin-top:16px;border-top:1px solid var(--rule)}
.candidate-results li{position:relative;padding:14px 0 14px 26px;border-bottom:1px solid var(--rule);font-size:15.5px;line-height:1.6;color:var(--fg-2);text-wrap:pretty}
.candidate-results li::before{content:"";position:absolute;left:2px;top:calc(14px + .62em);width:7px;height:7px;background:var(--yellow);transform:rotate(45deg)}
:is(.candidate-profile,.first-year-all)>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;padding:12px 0;border-bottom:1px solid var(--rule-strong);cursor:pointer;list-style:none;font-size:12.5px;font-weight:600;line-height:1.35;letter-spacing:.14em;text-transform:uppercase;transition:color .25s}
:is(.candidate-profile,.first-year-all)>summary::-webkit-details-marker{display:none}
summary .icon-plus{transition:transform .4s var(--ease)}
details[open]>summary .icon-plus{transform:rotate(45deg)}
.candidate-profile{max-width:40em;margin-top:clamp(28px,3vw,40px)}
.candidate-profile>summary:hover{color:var(--yellow)}
.candidate-profile[open]>summary{margin-bottom:6px}

/* ---------- Pilier: smery do diskusie ---------- */
.pillar-directions{max-width:34em;margin-top:16px;padding-left:16px;border-left:2px solid var(--yellow);font-size:15.5px;line-height:1.6;color:var(--fg-2)}
.manifesto-values a{display:flex;flex:1 1 auto;flex-direction:column;color:inherit;text-decoration:none}
.manifesto-values a:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}

/* ---------- Prvý rok: štyri míľniky na osi február – december 2027, všetky výstupy po rozbalení ---------- */
/* Riadok = text míľnika vľavo, os vpravo. Os sa natiahne cez celý riadok (aj cez jeho odsadenie), takže čiary
   mesiacov idú súvisle pod sebou; pruh je vo zvislom strede riadku. Bežec (home.js) prechádza iba stĺpcom osi. */
.gantt--milestones{--cols:minmax(0,.92fr) minmax(0,1.08fr);--mgap:clamp(28px,3.6vw,60px);--kpad:24px}
.gantt--milestones .gantt-head{grid-template-columns:var(--cols);column-gap:var(--mgap)}
.milestone{display:grid;grid-template-columns:var(--cols);column-gap:var(--mgap);padding:26px 0 28px;border-bottom:1px solid var(--rule)}
.milestone-when{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.milestone h3{margin-top:10px;font-family:var(--display);font-size:clamp(24px,2vw,30px);font-weight:400;line-height:1.14;letter-spacing:-.01em;text-wrap:balance}
.milestone ul{margin-top:12px}
.milestone li{position:relative;padding:4px 0 4px 18px;font-size:15px;line-height:1.5;color:var(--fg-2)}
.milestone li::before{content:"";position:absolute;left:1px;top:calc(4px + .55em);width:6px;height:6px;background:var(--ink);transform:rotate(45deg)}
.milestone .gantt-track{margin:-26px 0 -28px}
.gantt-mark--minor{width:10px;height:10px;margin:-5px 0 0 -5px}
.milestone--key{--rule:rgba(243,240,232,.16);margin-inline:calc(var(--kpad) * -1);padding-inline:var(--kpad);border-bottom-color:var(--ink);background:var(--ink);color:var(--on-dark)}
.milestone--key .milestone-when{color:var(--yellow)}
.milestone--key li{color:rgba(243,240,232,.82)}
.milestone--key li::before{background:var(--yellow)}
.milestone--key .gantt-bar{background:var(--yellow)}
.milestone--key .gantt-mark{border-color:var(--yellow);background:var(--ink)}
.milestone--key .gantt-mark.is-done{background:var(--yellow)}
.gantt--milestones .gantt-playhead i{background:var(--coral)}
.first-year-all{margin-top:clamp(28px,3vw,44px)}
.first-year-all>summary{border-top:1px solid var(--ink);border-bottom-color:var(--ink)}
.first-year-all>summary:hover span{text-decoration:underline;text-underline-offset:.22em}
.first-year-all .gantt{margin-top:28px}
.first-year .section-follow{margin-top:clamp(28px,3vw,40px)}

/* ---------- HTF v roku 2031: päť oblastí a letopočet, ktorý sa pretočí z 2027 na 2031 ---------- */
.outcomes-layout{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(40px,7vw,120px);align-items:start}
.outcomes-head{position:sticky;top:calc(var(--header-h) + 36px)}
.outcomes-layout .display{max-width:9.5em}
.year-roller{height:1em;margin-top:clamp(28px,3.4vw,52px);overflow:hidden;font-size:clamp(72px,9.4vw,152px);font-weight:300;line-height:1;letter-spacing:-.06em;color:var(--gold-ink);font-variant-numeric:tabular-nums}
.year-strip{display:block;transform:translateY(-80%)}
.year-strip span{display:block;height:1em}
.outcome-track{border-top:1px solid var(--rule-strong)}
.outcome{display:grid;grid-template-columns:56px minmax(0,.72fr) minmax(0,1fr);gap:20px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--rule)}
.outcome>span{font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--accent-ink)}
.outcome h3{font-size:19px;font-weight:500;line-height:1.32;letter-spacing:-.01em}
.outcome p{font-size:15.5px;line-height:1.62;color:var(--fg-3)}

/* ---------- Poradie priorít: skupiny pribúdajú s rozpočtovým scenárom ---------- */
/* Tlačidlo scenára k stojí nad skupinou, ktorú scenár pridáva; pruh pod tlačidlami sa vyplní po jeho stĺpec
   (--fill = k / 3) a zahrnuté skupiny sa rozsvietia. Bez JavaScriptu je prepínač skrytý a platí pevný popis skupín. */
.scenario-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;row-gap:12px}
.scenario-switch[hidden]{display:none}
.scenario-label{grid-column:1/-1;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
.scenario-buttons{display:contents}
.scenario-btn{min-height:46px;margin-right:28px;padding:10px 14px;border:1px solid var(--rule-strong);background:transparent;color:var(--fg-2);font:500 15px/1.2 var(--sans);text-align:left;cursor:pointer;transition:background-color .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease)}
.scenario-btn:last-child{margin-right:0}
.scenario-btn:hover{border-color:var(--fg);color:var(--fg)}
.scenario-btn[aria-pressed="true"]{border-color:var(--yellow);background:var(--yellow);color:var(--ink)}
.scenario-btn:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
.scenario-fill{grid-column:1/-1;position:relative;height:4px;margin-top:10px;background:var(--rule)}
.scenario-fill i{position:absolute;inset:0;background:var(--yellow);transform:scaleX(var(--fill,0));transform-origin:left;transition:transform .9s var(--ease)}
.is-interactive .priority-grid{border-top:0}
.priority-scope{font-size:11.5px;font-weight:600;line-height:1.35;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow)}
.is-interactive .priority :is(.priority-scope,.priority-num,h3,p){transition:color .5s var(--ease),opacity .5s var(--ease)}
.is-interactive .priority:not(.is-on) :is(.priority-scope,.priority-num,h3,p){color:var(--fg-3)}
.is-interactive .priority:not(.is-on) .priority-num{opacity:.6}

@media (max-width:1180px){
  .org-node{padding:16px 14px 18px}
  .org-node strong{font-size:16px}
}
@media (max-width:900px){
  .roadmap{--rcols:40px minmax(0,1fr)}
  .roadmap-head{display:none}
  .commit-text{padding-right:0}
  .commit-time{grid-column:2;margin-top:20px}
  .commit-time::before{display:none}
  .commit-time .mh-years{display:block}
  .gantt--milestones{--cols:minmax(0,1fr);--kpad:20px}
  .gantt--milestones .gantt-head>span{display:none}
  .milestone .gantt-track{grid-column:1;margin:18px 0 0;min-height:30px}
  .outcomes-layout{grid-template-columns:1fr}
  .outcomes-head{position:static}
  .outcomes-layout .display{max-width:none}
  .scenario-btn{margin-right:10px;padding:10px;font-size:14px}
  /* Organigram ako zvislý strom: chrbát vľavo od dekana po posledný uzol, každý uzol má vodorovnú odbočku. */
  .org{--spine:22px;padding-left:var(--spine)}
  .org::before{content:"";position:absolute;left:0;top:32px;bottom:39px;width:1.5px;background:var(--ink)}
  .org :is(.org-trunk,.org-bus,.org-drop){display:none}
  .org-dean{justify-content:flex-start}
  .org-node--dean{flex:1;align-items:flex-start;padding:18px 22px}
  .org-line ul{grid-template-columns:1fr;gap:10px}
  .org-support-list{grid-template-columns:1fr}
  .org-line{padding-top:10px}
  .org-node::before{content:"";position:absolute;top:50%;left:calc(var(--spine) * -1 - 1px);width:var(--spine);border-top:1.5px solid var(--ink)}
  .org-node--dean::before{top:32px}
  .hero-depth ol{grid-template-columns:1fr}
  .depth-link{min-height:56px;padding:10px 14px}
  .brief-grid{grid-template-columns:1fr}
  .brief-group,.brief-group+.brief-group{padding:28px 0 6px;border-left:0}
  .brief-group+.brief-group{border-top:1px solid var(--rule-strong)}
}
@media (max-width:640px){
  .hero{display:flex;flex-direction:column;height:auto;min-height:100svh}
  .hero-inner{flex:1 1 auto;height:auto}
  .outcome{grid-template-columns:40px minmax(0,1fr);gap:8px 12px}
  .outcome>span{grid-row:span 2}
  .outcome p{grid-column:2}
  .roadmap{--rcols:32px minmax(0,1fr)}
  .scenario-switch{column-gap:8px}
  .scenario-btn{margin-right:0;padding:9px 8px;font-size:13.5px}
}

@media (prefers-reduced-motion:reduce){
  .hero .hero-fluid-canvas,.hero .hero-fluid-tone{display:none!important}
  .hero[data-hero-fluid-ready] .hero-score-front{visibility:visible}
}

@media print{
  .chapter-ref{display:none!important}
  .candidate-recital,.candidate-media::before,
  .scroll-cue,.hero-media,.hero-dim,.hero-actions,.closing-actions,.closing-score,.closing-score-canvas,.manifesto-score,.pillars-visual,.data-dots,.gantt-head,.gantt-track,.gantt-playhead,.mini-horizon,.year-roller,.scenario-switch,.roadmap-head,.doc-cover-wrap,.coda,.pillar-rail,.hero-form-ghost,.hero-form-head{display:none!important}
  .hero{height:auto;min-height:0;max-height:none;background:#fff;color:#000}
  .hero-line--form{color:#000;clip-path:none!important}
  .hero .eyebrow{color:var(--gold-ink)}
  .hero-lead,.hero-candidate span{color:#222!important;border-color:#bbb!important}
  .hero :is(.hero-kicker,.hero-title,.hero-lead,.hero-candidate){opacity:1!important}
  .w-in{transform:none!important}
  .section{padding-block:28pt}
  .is-tracking .pillar{opacity:1!important}
  .pillar-focus{display:none!important}
  .is-tracking .pillar :is(.pillar-n,.area-icon,.pillar-key,.pillar-title,.pillar-text,.pillar-directions){opacity:1!important;color:#000!important}
  .gantt{--cols:44px minmax(0,1fr) 160px}
  .gantt--milestones{--cols:minmax(0,1fr)}
  .milestone--key{margin-inline:0;padding-inline:0;background:none;color:#000;border-bottom-color:var(--rule)}
  .milestone--key :is(.milestone-when,li){color:#222}
  .is-interactive .priority :is(.priority-scope,.priority-num,h3,p){color:#000!important;opacity:1!important}
  .org-node--dean{border:1.5px solid #000;background:none;color:#000}
  .org::before{background:none;border-left:1.5px solid #000}
}
