/* Темну тему вимкнено (30.09.2026): сайт завжди світлий, у кольорах Дрогобича.
   Колишні блоки @media (prefers-color-scheme:dark) лишено як @media not all. */
:root{color-scheme:only light}
:root{
  --synii:#123a7a; --synii-2:#2a63c4; --synii-m:#e8f0fc;
  --zoloto:#c8962f; --zoloto-2:#e9c46a;
  --tekst:#141c2b; --tykho:#586379; --liniia:#dfe5ee; --tlo:#fbfcfe; --tlo-2:#f2f5fa; --panel:#fff;
  --tin:0 24px 60px rgba(18,58,122,.14);
  --serif:Fraunces,Georgia,serif; --sans:Manrope,system-ui,"Segoe UI",Roboto,sans-serif;
  --r:24px;
}
@media not all{:root{
  --synii:#a8c6ff; --synii-2:#6ea0ff; --synii-m:#16213a; --zoloto:#e2b556;
  --tekst:#e9edf5; --tykho:#9aa6bd; --liniia:#253049; --tlo:#0a0f1e; --tlo-2:#0e1528; --panel:#121a30;
  --tin:0 24px 60px rgba(0,0,0,.5)}}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{margin:0;background:var(--tlo);color:var(--tekst);font:17px/1.65 var(--sans)}
a{color:var(--synii-2)}
:focus-visible{outline:3px solid var(--zoloto);outline-offset:3px;border-radius:8px}
.w{max-width:1180px;margin:0 auto;padding:0 22px}
.mitka{display:inline-block;font:700 12.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--zoloto)}
h1,h2,h3{font-family:var(--serif);line-height:1.02;margin:0;color:var(--synii)}
h2{font-size:clamp(38px,6vw,82px);font-weight:800;letter-spacing:-.03em;margin:12px 0 26px}
.propusk{position:absolute;left:-9999px}.propusk:focus{left:12px;top:12px;z-index:99;background:var(--panel);padding:10px 14px}

/* прогрес прокручування і світіння за курсором */
#prohres{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:50;
  background:linear-gradient(90deg,var(--zoloto),var(--synii-2))}
#svitlo{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;translate:-50% -50%;left:-999px;top:-999px;
  background:radial-gradient(circle,color-mix(in srgb,var(--zoloto-2) 18%,transparent),transparent 65%);transition:left .12s linear,top .12s linear}

/* шапка */
.shapka{position:fixed;inset:0 0 auto;z-index:40;transition:background .35s,box-shadow .35s}
.shapka.skrol{background:color-mix(in srgb,var(--tlo) 80%,transparent);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 1px 0 var(--liniia)}
.shapka .w{display:flex;align-items:center;gap:16px;min-height:74px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--synii)}
.logo b{font:800 17px/1.1 var(--serif);display:block}
.logo small{font-size:12px;color:var(--tykho)}
.shapka nav{margin-left:auto;display:flex;gap:4px}
.shapka nav a{padding:9px 15px;border-radius:999px;text-decoration:none;color:var(--tekst);font-weight:600;font-size:15px;transition:background .2s}
.shapka nav a:hover{background:var(--synii-m)}

/* ===== перший екран ===== */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;isolation:isolate;perspective:1200px}
.shar{position:absolute;inset:-12%;pointer-events:none;will-change:transform}
.s-tlo{background:radial-gradient(55% 50% at 80% 20%,color-mix(in srgb,var(--synii-2) 40%,transparent),transparent 70%),
  radial-gradient(50% 45% at 10% 90%,color-mix(in srgb,var(--zoloto-2) 45%,transparent),transparent 70%),
  radial-gradient(40% 40% at 50% 50%,color-mix(in srgb,var(--synii-m) 60%,transparent),transparent 70%),var(--tlo)}
.shar svg{position:absolute;width:100%;height:100%}
.atom{position:absolute;right:6%;top:50%;width:min(46vw,560px);aspect-ratio:1;translate:0 -50%;z-index:1;transform-style:preserve-3d;will-change:transform}
.atom .orb{position:absolute;inset:0;border:1.5px solid color-mix(in srgb,var(--synii-2) 45%,transparent);border-radius:50%;animation:ob 14s linear infinite}
.atom .orb:nth-child(2){transform:rotateX(70deg) rotateY(20deg);animation-duration:9s}
.atom .orb:nth-child(3){transform:rotateY(70deg) rotateX(-25deg);animation-duration:11s;animation-direction:reverse}
.atom .orb:nth-child(1){transform:rotateX(60deg) rotateY(-50deg)}
.atom .orb::before{content:"";position:absolute;top:-8px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--zoloto-2);box-shadow:0 0 22px 4px var(--zoloto-2)}
.atom .yadro{position:absolute;inset:40%;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,var(--synii-2) 45%,var(--synii) 80%);
  box-shadow:0 0 60px color-mix(in srgb,var(--synii-2) 70%,transparent);animation:puls 3.2s ease-in-out infinite}
@keyframes ob{to{rotate:360deg}}
@keyframes puls{50%{scale:1.08}}
.hero .zmist{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding:110px 22px 60px;max-width:1180px;margin:0 auto}
.hero h1{font-size:clamp(52px,10vw,150px);font-weight:800;letter-spacing:-.045em;line-height:.9;max-width:9ch}
.hero h1 .l{display:inline-block;opacity:0;transform:translateY(.6em) rotate(8deg);animation:litera .9s cubic-bezier(.2,.8,.2,1) forwards}
.hero h1 em{font-style:italic;font-weight:500;background:linear-gradient(100deg,var(--zoloto),var(--zoloto-2) 40%,var(--synii-2) 80%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:perelyv 7s ease-in-out infinite alternate}
@keyframes litera{to{opacity:1;transform:none}}
@keyframes perelyv{to{background-position:100% 0}}
.hero p{font-size:clamp(17px,1.9vw,21px);color:var(--tykho);max-width:34em;margin:28px 0 34px;opacity:0;animation:litera 1s .9s forwards}
.dii{display:flex;gap:12px;flex-wrap:wrap;opacity:0;animation:litera 1s 1.1s forwards}
.kn{display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:999px;font-weight:700;text-decoration:none;border:1.5px solid var(--synii);
  transition:box-shadow .25s,background .25s;will-change:transform}
.kn.gol{background:var(--synii);color:var(--tlo)}
.kn.dr{color:var(--synii);background:color-mix(in srgb,var(--tlo) 60%,transparent);backdrop-filter:blur(6px)}
.kn:hover{box-shadow:var(--tin)}

/* біжучі рядки */
.strichky{position:relative;z-index:3;margin-top:-40px;transform:rotate(-2.5deg);padding:6px 0}
.rjad{display:flex;white-space:nowrap;overflow:hidden;padding:14px 0}
.rjad.a{background:var(--synii);color:#fff}
.rjad.b{background:var(--zoloto);color:#1a1405;transform:rotate(3deg);margin-top:-8px}
.rjad div{display:flex;gap:40px;padding-right:40px;font:italic 500 clamp(20px,2.4vw,30px) var(--serif);animation:bizh 40s linear infinite}
.rjad.b div{animation-direction:reverse}
.rjad span::after{content:"✦";margin-left:40px;opacity:.6;font-style:normal}
@keyframes bizh{to{transform:translateX(-50%)}}

/* помічник */
.pomich{padding:120px 0 40px;position:relative;z-index:2}
.karta{background:var(--panel);border:1px solid var(--liniia);border-radius:32px;box-shadow:var(--tin);padding:30px;display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start}
.karta h3{font-size:clamp(30px,3vw,42px);font-weight:800;line-height:1}
.chypy{display:flex;flex-wrap:wrap;gap:10px}
.chypy button{font:600 15px var(--sans);border:1.5px solid var(--liniia);background:var(--tlo-2);color:var(--tekst);border-radius:999px;padding:11px 18px;cursor:pointer;transition:all .2s}
.chypy button[aria-pressed="true"],.chypy button:hover{border-color:var(--synii-2);background:var(--synii-m);color:var(--synii)}
.vidpovid{grid-column:1/-1;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.vidpovid a{display:block;padding:16px 18px;border-radius:16px;background:var(--tlo-2);text-decoration:none;color:var(--tekst);font-weight:700;border:1px solid var(--liniia);
  animation:z .45s cubic-bezier(.2,.8,.2,1) both;transition:transform .2s}
.vidpovid a:hover{transform:translateX(6px)}
.vidpovid a small{display:block;color:var(--tykho);font-weight:500}
.vidpovid a:nth-child(2){animation-delay:.07s}.vidpovid a:nth-child(3){animation-delay:.14s}
@keyframes z{from{opacity:0;transform:translateY(14px) scale(.97)}}

/* маніфест: слова загоряються під час прокручування */
.manifest{padding:140px 0}
.manifest p{font:500 clamp(30px,4.6vw,64px)/1.18 var(--serif);letter-spacing:-.02em;margin:0;max-width:18ch}
.manifest .s{opacity:.14;transition:opacity .25s,color .25s}
.manifest .s.on{opacity:1}
.manifest .s.z{color:var(--zoloto)}

/* горизонтальний шлях */
.shliakh{position:relative;height:420vh;background:var(--tlo-2)}
.shliakh .lypke{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:74px}
.shliakh .zag{padding:0 max(22px,calc((100vw - 1180px)/2 + 22px))}
.strichka{display:flex;gap:28px;padding:10px max(22px,calc((100vw - 1180px)/2 + 22px));will-change:transform}
.etap{flex:0 0 min(78vw,440px);height:min(56svh,440px);border-radius:32px;padding:34px;position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--tin)}
.etap .n{position:absolute;top:18px;right:26px;font:italic 800 clamp(90px,12vw,160px)/1 var(--serif);opacity:.18}
.zag-pid{color:var(--tykho);font-size:clamp(16px,1.6vw,19px);margin:0}
.etap h3{color:#fff;font-size:clamp(28px,3vw,40px);font-weight:800}
.etap p{margin:10px 0 0;opacity:.9}
.e1{background:linear-gradient(150deg,#0e2a5c,#2a63c4)}.e2{background:linear-gradient(150deg,#123a3a,#1f8f7a)}
.e3{background:linear-gradient(150deg,#3b2a0c,#c8962f)}.e4{background:linear-gradient(150deg,#3a1240,#9b3fb0)}.e5{background:linear-gradient(150deg,#101a33,#123a7a 60%,#c8962f)}
.liniia-sh{height:4px;border-radius:4px;background:var(--liniia);margin:34px max(22px,calc((100vw - 1180px)/2 + 22px)) 0;overflow:hidden}
.liniia-sh i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--zoloto),var(--synii-2))}

/* картки */
section{padding:clamp(90px,12vw,160px) 0;position:relative}
.sitka{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.kartka{position:relative;background:var(--panel);border:1px solid var(--liniia);border-radius:var(--r);padding:30px;text-decoration:none;color:inherit;
  overflow:hidden;transition:box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.kartka::before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--zoloto-2) 24%,transparent),transparent 60%)}
.kartka:hover{box-shadow:var(--tin);border-color:color-mix(in srgb,var(--synii-2) 45%,var(--liniia))}
.kartka:hover::before{opacity:1}
.kartka .n{font:italic 800 16px var(--serif);color:var(--zoloto)}
.kartka h3{font-size:28px;margin:16px 0 8px;position:relative;transform:translateZ(30px)}
.kartka p{margin:0;color:var(--tykho);position:relative}

/* розкриття колом */
.onlain{background:linear-gradient(150deg,#0b1d42,#123a7a 55%,#1f5bb8);color:#fff;clip-path:circle(var(--kolo,8%) at 50% 50%)}
.onlain h2,.onlain .mitka{color:#fff}.onlain .mitka{color:var(--zoloto-2)}
.resursy{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.resurs{padding:32px;border-radius:var(--r);text-decoration:none;color:#fff;min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);position:relative;overflow:hidden;transition:transform .3s,background .3s}
.resurs:hover{transform:translateY(-8px);background:rgba(255,255,255,.13)}
.resurs h3{color:#fff;font-size:28px}
.resurs i{position:absolute;top:22px;right:24px;font:italic 800 64px/1 var(--serif);color:var(--zoloto-2);opacity:.35}

/* контакти */
.kontakty{display:grid;grid-template-columns:1fr 1.2fr;gap:30px}
.kontakty dl{margin:0;display:grid;gap:20px}
.kontakty dt{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--tykho)}
.kontakty dd{margin:4px 0 0;font:600 clamp(19px,2vw,24px)/1.35 var(--serif)}
.mapa{border:0;width:100%;min-height:380px;border-radius:var(--r);background:var(--synii-m)}
footer{padding:40px 0;border-top:1px solid var(--liniia);color:var(--tykho);font-size:14px}
footer .w{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

.poiava{opacity:0;transform:translateY(50px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.poiava.vydno{opacity:1;transform:none}


/* ===== вікна з фіксованим тлом: тло стоїть, текст пропливає =====
   Не background-attachment:fixed – на телефонах воно не працює.
   Контейнер обрізає clip-path, а шар .fon – position:fixed. */
.vikno{position:relative;height:120svh;clip-path:inset(0);display:grid;place-items:center;overflow:hidden}
.vikno .fon{position:fixed;inset:0;z-index:-1}
.vikno-zmist{position:relative;text-align:center}
.velyka-tsytata{font:800 clamp(48px,9vw,140px)/.95 var(--serif);letter-spacing:-.04em;margin:18px 0 0;color:#fff}
.velyka-tsytata span{display:inline-block;opacity:.25;transform:translateY(.3em);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}
.velyka-tsytata span.on{opacity:1;transform:none}
.velyka-tsytata em{font-style:italic;font-weight:500;color:var(--zoloto-2)}
.v-nebo .fon{background:radial-gradient(120% 90% at 50% 110%,#1f3f8a,#0b1733 55%,#050a18)}
.v-nebo canvas{width:100%;height:100%;display:block}
.v-nebo .tuman{position:absolute;inset:0;background:radial-gradient(40% 30% at 20% 30%,rgba(233,196,106,.16),transparent 70%),
  radial-gradient(35% 30% at 80% 70%,rgba(110,160,255,.22),transparent 70%);animation:tuman 18s ease-in-out infinite alternate}
@keyframes tuman{to{transform:translate(4%,-3%) scale(1.08)}}
.v-nebo .mitka{color:var(--zoloto-2)}
.v-misto .fon{background:linear-gradient(180deg,#0f2a5e 0%,#3a4f8c 38%,#e7a95a 78%,#f3cf88 100%)}
.v-misto .sonce{position:absolute;left:50%;bottom:18%;width:32vmin;aspect-ratio:1;translate:-50% 0;border-radius:50%;
  background:radial-gradient(circle,#fff6d8,#f6c96a 55%,rgba(246,201,106,0) 72%);animation:puls 6s ease-in-out infinite}
.v-misto .sylyet{position:absolute;inset:auto 0 0;width:100%;height:46%}
.v-misto .h3{fill:#26386b;opacity:.55}.v-misto .h2{fill:#0b1733}
.v-misto .mitka{color:#fff6d8}

/* плаваючі органічні форми в секціях */
section{isolation:isolate}
section::before{content:"";position:absolute;z-index:-1;width:38vw;max-width:520px;aspect-ratio:1;right:-8vw;top:10%;
  border-radius:43% 57% 61% 39%/45% 38% 62% 55%;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--zoloto-2) 22%,transparent),transparent 70%);
  animation:blob 16s ease-in-out infinite alternate;pointer-events:none}
section:nth-of-type(even)::before{left:-10vw;right:auto;background:radial-gradient(circle at 60% 40%,color-mix(in srgb,var(--synii-2) 18%,transparent),transparent 70%)}
.onlain::before,.rozdil-st::before{display:none}
@keyframes blob{to{border-radius:58% 42% 38% 62%/52% 60% 40% 48%;transform:translate(-4vw,6vh) rotate(25deg)}}

.shapka nav a.nav-mon{border:1.5px solid var(--synii);color:var(--synii)}
.rozdil-st{padding-top:150px;min-height:70vh}
.tykho{color:var(--tykho)}
.mapa-saitu{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.grupa{background:var(--panel);border:1px solid var(--liniia);border-radius:var(--r);padding:26px}
.grupa.mon{grid-column:span 2;border-color:color-mix(in srgb,var(--zoloto) 55%,var(--liniia))}
.grupa h3{font-size:24px;margin-bottom:12px}
.grupa ul{margin:0;padding-left:18px}.grupa.mon ul{columns:2}
.grupa li{margin:6px 0;break-inside:avoid}

/* ===== ідеї брендингу Дрогобича: цегла, астролябія, історія ===== */
:root{--tsehla:#b0512e;--tsehla-2:#d9794f}
@media not all{:root{--tsehla:#e07a52;--tsehla-2:#f09a72}}
.astrolabia svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 20px 40px rgba(18,58,122,.25))}
.al-shkala line{stroke:var(--zoloto);stroke-width:2}
.al-kilce{fill:none;stroke:color-mix(in srgb,var(--synii-2) 60%,transparent);stroke-width:2;transform-origin:200px 200px}
.al-kilce.k1{animation:ob 28s linear infinite}.al-kilce.k2{animation:ob 18s linear infinite reverse}
.al-rete{stroke:var(--tsehla);stroke-width:3;fill:var(--tsehla);transform-origin:200px 200px;animation:ob 40s linear infinite}
.al-rete path{fill:none}
.misto h2 em{font-style:italic;font-weight:500;color:var(--tsehla)}
.chas-misto{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:0;position:relative}
.chas-misto::before{content:"";position:absolute;left:clamp(90px,14vw,180px);top:0;bottom:0;width:2px;
  background:linear-gradient(var(--tsehla),var(--zoloto),var(--synii-2))}
.chas-misto li{display:grid;grid-template-columns:clamp(90px,14vw,180px) 1fr;gap:34px;padding:22px 0;align-items:baseline}
.chas-misto b{font:800 clamp(28px,4vw,52px)/1 var(--serif);color:var(--tsehla);text-align:right;padding-right:10px;position:relative}
.chas-misto b::after{content:"";position:absolute;right:-41px;top:.45em;width:14px;height:14px;border-radius:50%;background:var(--tlo);border:3px solid var(--tsehla)}
.chas-misto span{font-size:clamp(17px,1.7vw,21px);max-width:40em}
.kn.gol{background:linear-gradient(120deg,var(--synii),var(--synii-2))}
.rjad.b{background:var(--tsehla);color:#fff}
@media (max-width:600px){.chas-misto li{grid-template-columns:1fr;gap:6px}.chas-misto::before,.chas-misto b::after{display:none}.chas-misto b{text-align:left}}

/* ===== формули – живе тло першого екрана ===== */
.formuly{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.formuly span{position:absolute;bottom:-12%;white-space:nowrap;font-family:var(--serif);font-style:italic;color:var(--synii);
  animation:plyv var(--t,40s) linear var(--z,0s) infinite;will-change:transform,opacity}
.formuly span.z{color:var(--zoloto)}.formuly span.c{color:var(--tsehla)}
@keyframes plyv{
  0%{transform:translate3d(0,0,0) rotate(var(--r0,-6deg));opacity:0}
  12%{opacity:var(--o,.3)}88%{opacity:var(--o,.3)}
  100%{transform:translate3d(var(--dx,40px),-125svh,0) rotate(var(--r1,6deg));opacity:0}}
.s-tlo{animation:hmary 22s ease-in-out infinite alternate}
@keyframes hmary{to{filter:hue-rotate(-12deg) saturate(1.15);transform:scale(1.08) translate(-2%,2%)}}
.hero .zmist{z-index:3}
/* текст першого екрана – на м'якій «підкладці», щоб формули не заважали читати */
.hero h1,.hero p{text-shadow:0 0 30px var(--tlo),0 0 12px var(--tlo)}
@media (max-width:700px){
  .hero{min-height:560px}
  .hero .zmist{padding:96px 20px 48px}
  .hero h1{font-size:clamp(44px,13vw,64px)}
  .hero p{font-size:17px}
  .dii .kn{flex:1 1 100%;justify-content:center}
}
/* спокійний плин формул лишається й за «зменшити рух»: він повільний і не
   залежить від прокручування; вимикаються лише паралакс і перехоплення скролу */
@media (prefers-reduced-motion:reduce){
  .formuly span{animation:plyv var(--t,40s) linear var(--z,0s) infinite!important}
  .rjad div{animation:bizh 40s linear infinite!important}.rjad.b div{animation-direction:reverse!important}
  .s-tlo{animation:none}
}
@media (max-width:900px){.mapa-saitu{grid-template-columns:1fr}.grupa.mon{grid-column:auto}.grupa.mon ul{columns:1}}
@media (prefers-reduced-motion:reduce){.velyka-tsytata span{opacity:1;transform:none}}
@media (max-width:900px){
  .kontakty,.karta{grid-template-columns:1fr}.sitka,.resursy{grid-template-columns:1fr}
  .shapka nav{display:none}.atom{right:-20%;width:90vw;opacity:.45}#svitlo{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero h1 .l,.hero p,.dii,.poiava{opacity:1;transform:none}.manifest .s{opacity:1}
  .shliakh{height:auto}.shliakh .lypke{position:static;height:auto;padding:110px 0 80px}
  .strichka{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));transform:none!important}
  .etap{flex:none;height:auto;min-height:280px}.liniia-sh{display:none}
  .onlain{clip-path:none}
}

/* ===== кольори Дрогобича: цегла старих будівель, синій гербового щита,
   сольовий білий (сіль на гербі й у солеварні), золото – для відзнак ===== */
:root{--synii:#1d3c78;--synii-2:#2f5fae;--synii-m:#eef2f9;--tsehla:#a9472a;--tsehla-2:#cf6a45;--sil:#fbf8f2;
  --zoloto:#b98a2e;--zoloto-2:#e0b45a;--tlo:#fbf8f2;--tlo-2:#f4eee4;--liniia:#e8dfd2;--tykho:#6b6258}
@media not all{:root{--tlo:#141110;--tlo-2:#1c1816;--panel:#211c19;--liniia:#3a312b;
  --tekst:#f1ebe3;--tykho:#b3a79a;--synii:#b9cbf2;--synii-2:#8fb0ee;--tsehla:#e58a62;--tsehla-2:#f2a582;--synii-m:#232833}}
.mitka{color:var(--tsehla)}
.kn.gol{background:linear-gradient(120deg,var(--tsehla),var(--tsehla-2));border-color:var(--tsehla);color:#fff}
.kn.dr{border-color:var(--tsehla);color:var(--tsehla)}
.hero h1 em{background:linear-gradient(100deg,var(--tsehla),var(--tsehla-2) 45%,var(--zoloto-2));-webkit-background-clip:text;background-clip:text}
.s-tlo{background:radial-gradient(55% 50% at 80% 20%,color-mix(in srgb,var(--tsehla-2) 30%,transparent),transparent 70%),
  radial-gradient(50% 45% at 10% 90%,color-mix(in srgb,var(--synii-2) 26%,transparent),transparent 70%),var(--tlo)}
.rjad.a{background:var(--synii)}.rjad.b{background:var(--tsehla)}
.kartka .n,.etap .n{color:var(--tsehla)}
.manifest .s.z{color:var(--tsehla)}
#prohres{background:linear-gradient(90deg,var(--tsehla),var(--zoloto-2),var(--synii-2))}
.shapka nav a.nav-mon{border-color:var(--tsehla);color:var(--tsehla)}
.e1{background:linear-gradient(150deg,#1d3c78,#2f5fae)}.e2{background:linear-gradient(150deg,#6e2a17,#a9472a)}
.e3{background:linear-gradient(150deg,#5a4214,#b98a2e)}.e4{background:linear-gradient(150deg,#28303f,#5a6a86)}.e5{background:linear-gradient(150deg,#1d3c78,#a9472a)}
.onlain{background:linear-gradient(150deg,#15264d,#1d3c78 55%,#a9472a)}

/* ===== «Куди вам?»: чотири плитки з посиланнями одразу ===== */
.pomich{padding:110px 0 30px}
.pomich h2{margin-bottom:28px}
.plytky{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.plytka{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--liniia);border-radius:26px;padding:28px 26px 22px;
  display:flex;flex-direction:column;gap:4px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.plytka::before{content:"";position:absolute;inset:auto -40% -70% auto;width:90%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--tsehla-2) 26%,transparent),transparent 70%);transition:transform .6s;transform:scale(.5)}
.plytka:hover{transform:translateY(-8px);box-shadow:var(--tin);border-color:color-mix(in srgb,var(--tsehla) 50%,var(--liniia))}
.plytka:hover::before{transform:scale(1.3)}
.plytka .pik{width:46px;height:46px;fill:none;stroke:var(--tsehla);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:10px;
  transition:transform .4s}
.plytka:hover .pik{transform:rotate(-8deg) scale(1.12)}
.plytka h3{font-size:24px;margin-bottom:8px;position:relative}
.plytka a{position:relative;display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--liniia);
  color:var(--tekst);text-decoration:none;font-weight:600;font-size:15.5px;transition:color .2s,padding .2s}
.plytka a::after{content:"→";color:var(--tsehla);transition:transform .2s}
.plytka a:hover{color:var(--tsehla);padding-left:6px}
.plytka a:hover::after{transform:translateX(4px)}
@media (max-width:1000px){.plytky{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.plytky{grid-template-columns:1fr}}

/* ===== маніфест + колаж фото МАН ===== */
.manifest-sitka{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.kolazh{position:relative;height:clamp(380px,42vw,560px)}
.kolazh::before{content:"";position:absolute;inset:10% 5%;border-radius:50%;filter:blur(50px);
  background:radial-gradient(circle,color-mix(in srgb,var(--tsehla-2) 45%,transparent),color-mix(in srgb,var(--synii-2) 25%,transparent) 60%,transparent 75%)}
.foto{position:absolute;margin:0;background:#fff;padding:10px 10px 38px;border-radius:6px;box-shadow:0 20px 50px rgba(40,25,15,.25);
  width:clamp(170px,19vw,260px);transition:transform .5s cubic-bezier(.2,.8,.2,1),z-index 0s;will-change:transform}
.foto img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;background:var(--tlo-2)}
.foto figcaption{position:absolute;left:0;right:0;bottom:9px;text-align:center;font:italic 500 16px var(--serif);color:#3a2d24}
.foto.f1{left:2%;top:6%;rotate:-8deg}
.foto.f2{left:34%;top:24%;rotate:5deg;z-index:2}
.foto.f3{right:0;top:0;rotate:-2deg}
.kolazh:hover .foto.f1{translate:-18px 0;rotate:-12deg}
.kolazh:hover .foto.f3{translate:18px -10px;rotate:3deg}
.foto:hover{z-index:5;scale:1.06}
.foto{animation:hoidannia 7s ease-in-out infinite}.foto.f2{animation-delay:-2s}.foto.f3{animation-delay:-4s}
@media (max-width:900px){.manifest-sitka{grid-template-columns:1fr}.kolazh{height:420px;max-width:520px;margin:0 auto;width:100%}}
@media (max-width:480px){.foto{width:46vw}.foto.f2{left:26%;top:30%}}

/* ===== хронологія «Місто науки»: лінія ліворуч, рік над текстом, поява при прокручуванні ===== */
.chas-misto{margin:40px 0 0;padding:0 0 0 38px;display:grid;gap:36px;position:relative;max-width:820px}
.chas-misto::before{display:block!important;left:10px;top:10px;bottom:10px;width:3px;border-radius:3px;transform-origin:top;
  transform:scaleY(var(--rist,0));transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.chas-misto.vydno{--rist:1}
.chas-misto li{display:block;padding:0;position:relative}
.chas-misto b{display:block;text-align:left;padding:0;font-size:clamp(28px,5vw,48px);line-height:1.05;margin-bottom:8px}
.chas-misto b::after{display:block!important;left:-38px;right:auto;top:.3em;width:20px;height:20px;border-width:4px;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--tsehla) 50%,transparent)}
.chas-misto li.vydno b::after{animation:spalakh 1.2s ease-out .3s}
@keyframes spalakh{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tsehla) 60%,transparent)}100%{box-shadow:0 0 0 18px transparent}}
.chas-misto span{display:block;font-size:clamp(16px,1.6vw,20px);line-height:1.55;color:var(--tekst)}
.chas-misto li.poiava{opacity:0;transform:translateX(-30px)}
.chas-misto li.poiava.vydno{opacity:1;transform:none}
/* ===== кольори Дрогобича: + фіолетовий і золото ===== */
:root{--fiolet:#5b2a86;--fiolet-2:#8a4fc0;--fiolet-m:#f1eaf8;--zoloto:#b8892a;--zoloto-2:#e3b654}
@media not all{:root{--fiolet:#b48ae0;--fiolet-2:#cfa9f2;--fiolet-m:#2a2036}}
.rjad.a{background:linear-gradient(90deg,var(--fiolet),#3d1c5e)}
.rjad.b{background:linear-gradient(90deg,var(--zoloto),var(--zoloto-2));color:#2a1c05}
.hero h1 em{background:linear-gradient(100deg,var(--fiolet-2),var(--tsehla) 45%,var(--zoloto-2));-webkit-background-clip:text;background-clip:text}
.s-tlo{background:radial-gradient(55% 50% at 80% 20%,color-mix(in srgb,var(--fiolet-2) 26%,transparent),transparent 70%),
  radial-gradient(45% 40% at 15% 85%,color-mix(in srgb,var(--zoloto-2) 34%,transparent),transparent 70%),
  radial-gradient(40% 35% at 60% 60%,color-mix(in srgb,var(--tsehla-2) 16%,transparent),transparent 70%),var(--tlo)}
.formuly span.z{color:var(--zoloto)}.formuly span{color:var(--fiolet)}
.plytka .pik{stroke:var(--fiolet)}
.plytka:nth-child(even) .pik{stroke:var(--tsehla)}
.plytka::before{background:radial-gradient(circle,color-mix(in srgb,var(--fiolet-2) 22%,transparent),transparent 70%)}
.plytka:nth-child(even)::before{background:radial-gradient(circle,color-mix(in srgb,var(--zoloto-2) 30%,transparent),transparent 70%)}
.e4{background:linear-gradient(150deg,#3d1c5e,#8a4fc0)}.e5{background:linear-gradient(150deg,#3d1c5e,#b8892a)}.e6{background:linear-gradient(150deg,#0f3d36,#1f8f7a 60%,#c8962f)}
.onlain{background:linear-gradient(150deg,#1b1233,#3d1c5e 50%,#1d3c78 80%,#a9472a)}
.onlain .mitka{color:var(--zoloto-2)}
.manifest .s.z:nth-of-type(odd){color:var(--fiolet)}
.chas-misto::before{background:linear-gradient(var(--fiolet),var(--tsehla),var(--zoloto))}
.chas-misto b{background:linear-gradient(90deg,var(--fiolet),var(--tsehla));-webkit-background-clip:text;background-clip:text;color:transparent}
.kolazh::before{background:radial-gradient(circle,color-mix(in srgb,var(--fiolet-2) 40%,transparent),color-mix(in srgb,var(--zoloto-2) 30%,transparent) 55%,transparent 75%)}
#prohres{background:linear-gradient(90deg,var(--fiolet),var(--tsehla),var(--zoloto-2))}
.kartka .n{color:var(--fiolet)}

/* ===== «сузір'я Котермака» на нічному небі ===== */
.kotermak{position:absolute;right:4%;bottom:0;height:88%;width:auto;max-width:48vw;opacity:.9;pointer-events:none}
.kotermak .kontur{fill:none;stroke:var(--zoloto-2);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.55;
  stroke-dasharray:1400;stroke-dashoffset:1400;animation:promaliovka 7s ease-in-out .6s forwards}
.kotermak .zirky circle{fill:#fff6d8;filter:drop-shadow(0 0 6px #e3b654);animation:myhtinnia 3s ease-in-out infinite}
.kotermak .zirky circle:nth-child(3n){animation-delay:-1s}.kotermak .zirky circle:nth-child(3n+1){animation-delay:-2s}
@keyframes promaliovka{to{stroke-dashoffset:0}}
@keyframes myhtinnia{50%{opacity:.35}}
@media (max-width:760px){.kotermak{right:-18%;height:70%;max-width:none;opacity:.5}}

@media (prefers-reduced-motion:reduce){
  .kotermak .kontur{animation:promaliovka 7s ease-in-out .6s forwards!important}
  .chas-misto li.poiava{transition:opacity .7s,transform .7s!important}
  .chas-misto::before{transition:transform 1.2s!important}
  .foto{animation:none}
}

/* ===== «Шлях ліцеїста»: живі картки ===== */
.strichka{position:relative}
.etap{isolation:isolate;background-size:220% 220%!important;animation:perelyv-e 12s ease-in-out infinite alternate;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
@keyframes perelyv-e{to{background-position:100% 100%}}
.etap::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);
  transform:translateX(-120%);animation:vidblysk 7s ease-in-out infinite}
.etap:nth-child(3)::after{animation-delay:1.4s}.etap:nth-child(4)::after{animation-delay:2.8s}.etap:nth-child(5)::after{animation-delay:4.2s}.etap:nth-child(6)::after{animation-delay:5.6s}
@keyframes vidblysk{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.etap .ik{position:absolute;top:26px;left:28px;width:62px;height:62px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;
  color:#fff;opacity:.95;filter:drop-shadow(0 6px 14px rgba(0,0,0,.25));animation:hoidannia 5s ease-in-out infinite;transition:transform .4s}
.etap:nth-child(odd) .ik{animation-duration:6.2s}
@keyframes hoidannia{50%{transform:translateY(-8px) rotate(-6deg)}}
.etap .n{transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.etap:hover{transform:translateY(-10px) rotate(-.6deg);box-shadow:0 30px 60px rgba(40,20,10,.28)}
.etap:hover .n{transform:translateX(-14px) scale(1.08)}
.etap:hover .ik{transform:scale(1.18)}
.dorizhka{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.dorizhka path{fill:none;stroke:var(--tsehla);stroke-width:.5;stroke-dasharray:2 2.2;vector-effect:non-scaling-stroke;stroke-width:3;opacity:.55;
  stroke-dashoffset:0}
.etap{z-index:1}
/* поява з розворотом – коротка, тому й за «зменшити рух» */
.etap.poiava{opacity:0;transform:perspective(900px) rotateY(-24deg) translateY(40px);transform-origin:left center;
  transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.etap.poiava.vydno{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .etap{animation:perelyv-e 12s ease-in-out infinite alternate!important;transition:transform .45s,box-shadow .45s,opacity .8s!important}
  .etap::after{animation:vidblysk 7s ease-in-out infinite!important}
  .etap .ik{animation:hoidannia 5s ease-in-out infinite!important}
  .etap.poiava{opacity:0}.etap.poiava.vydno{opacity:1;transform:none}
  .dorizhka{display:none}
}

/* ===== «Шлях»: контрастні цифри й місце для піктограми ===== */
.etap .n{color:transparent!important;-webkit-text-stroke:2px rgba(255,255,255,.75);opacity:1;
  text-shadow:0 0 30px rgba(255,255,255,.15)}
.etap{padding-top:118px;min-height:300px}
.etap .ik{top:30px;left:30px}

/* ===== вікно «Дрогобич»: розмите фото ратуші ===== */
.v-misto .fon{background:#1b1233}
.v-misto .ratusha{position:absolute;inset:-4%;background:url(/resursy/foto/ratusha-blur.jpg) center/cover no-repeat;
  animation:nablyzh 30s ease-in-out infinite alternate}
.v-misto .ratusha::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,18,70,.55),rgba(91,42,134,.35) 45%,rgba(169,71,42,.55))}
@keyframes nablyzh{to{transform:scale(1.08) translate(-1%,1%)}}
.v-misto .sonce{display:none}
.v-misto .sylyet{display:none}
.avtor-foto{position:absolute;right:14px;bottom:10px;font-size:11.5px;color:rgba(255,255,255,.7);text-decoration:none}
.avtor-foto:hover{color:#fff;text-decoration:underline}
.velyka-tsytata{text-shadow:0 4px 30px rgba(20,10,40,.45)}

/* ===== цифри кроків – м'якше, під текстом ===== */
.etap .n{-webkit-text-stroke:1.4px rgba(255,255,255,.38)!important;text-shadow:none;z-index:0}
.etap h3,.etap p{position:relative;z-index:1}

/* ===== герб Дрогобича на першому екрані ===== */
.herb-hero{position:absolute;z-index:2;right:7%;top:50%;height:min(62vh,520px);translate:0 -46%;pointer-events:none;
  animation:plyve-h 9s ease-in-out infinite}
.herb-hero::before{content:"";position:absolute;inset:-18%;border-radius:50%;z-index:-1;filter:blur(40px);
  background:radial-gradient(circle,rgba(227,182,84,.55),rgba(91,42,134,.25) 55%,transparent 72%);animation:puls 5s ease-in-out infinite}
.herb-hero img{height:100%;width:auto;display:block;filter:drop-shadow(0 18px 40px rgba(46,29,135,.35))}
@keyframes plyve-h{50%{transform:translateY(-12px) rotate(-1.5deg)}}
@media (max-width:1100px){.herb-hero{right:3%;height:min(46vh,380px);opacity:.9}}
@media (max-width:760px){.herb-hero{right:-6%;top:18%;height:180px;opacity:.28;translate:0 0}}
@media (prefers-reduced-motion:reduce){.herb-hero{animation:plyve-h 9s ease-in-out infinite!important}}

/* логотип ДНЛ у шапці; маніфест без колажу – на всю ширину */
.logo-dnl{width:56px;height:56px;border-radius:12px;background:#fff;padding:2px;object-fit:contain;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.manifest-sitka{grid-template-columns:1.15fr 1fr}@media (max-width:900px){.manifest-sitka{grid-template-columns:1fr}}

/* ===== «лого науки» бренду Дрогобича на нічному небі ===== */
.brend-nauka{position:absolute;right:7%;top:50%;translate:0 -50%;width:min(24vw,280px);text-align:center;pointer-events:none;
  opacity:0;animation:zjavliaietsia 2.4s ease-out .4s forwards,plyve-h 9s ease-in-out 3s infinite}
.brend-nauka svg{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 22px rgba(227,182,84,.45))}
.brend-nauka .d{fill:#fff}
.brend-nauka .usmishka{fill:#ef8f7e}
.brend-nauka .shapochka{fill:#ef8f7e;stroke:#ef8f7e}
.brend-nauka p{margin:10px 0 0;font:800 clamp(20px,2.2vw,30px)/1.15 var(--serif);color:#fff}
.brend-nauka p span{display:block;font-weight:500;font-style:italic;color:#ef8f7e;font-size:.72em}
.brend-nauka small{display:block;margin-top:8px;font-size:11px;color:rgba(255,255,255,.55)}
@keyframes zjavliaietsia{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@media (max-width:760px){.brend-nauka{right:50%;translate:50% 0;top:auto;bottom:6%;width:150px;opacity:.9}}
@media (prefers-reduced-motion:reduce){.brend-nauka{animation:zjavliaietsia 2.4s ease-out .4s forwards!important;opacity:0}}
.brend-nauka .teh{display:block;margin-top:6px;font:700 13px/1.2 var(--sans,inherit);color:#fff;letter-spacing:.02em;opacity:.85}
footer .teh{color:var(--zoloto-2);font-weight:700}
/* лого науки – сузір'я: контур малюється, зірки мерехтять */
.brend-nauka .kontur{fill:none;stroke:var(--zoloto-2);stroke-width:.55;stroke-linejoin:round;opacity:.8;
  stroke-dasharray:1;stroke-dashoffset:1;animation:kontur-r 7s ease-in-out 1s forwards}
@keyframes kontur-r{to{stroke-dashoffset:0}}
.brend-nauka .z{fill:#fff;filter:drop-shadow(0 0 2px #fff);animation:myhtyt 3.2s ease-in-out infinite}
@keyframes myhtyt{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.brend-nauka .kontur{animation:kontur-r 7s ease-in-out 1s forwards!important}.brend-nauka .z{animation:myhtyt 3.2s ease-in-out infinite!important}}
/* лого малюється частинами по черзі, тримається, згасає – і знову */
.brend-nauka .kontur{stroke-width:.7;animation:kontur-c 16s ease-in-out infinite}
.brend-nauka .k1{animation-delay:1.2s}.brend-nauka .k2{animation-delay:2.4s}.brend-nauka .k3{animation-delay:3.6s}
@keyframes kontur-c{0%{stroke-dashoffset:1;opacity:.9}30%{stroke-dashoffset:0}80%{stroke-dashoffset:0;opacity:.9}95%,100%{stroke-dashoffset:0;opacity:0}}
@media (prefers-reduced-motion:reduce){.brend-nauka .kontur{animation:kontur-c 16s ease-in-out infinite!important}
 .brend-nauka .k1{animation-delay:1.2s!important}.brend-nauka .k2{animation-delay:2.4s!important}.brend-nauka .k3{animation-delay:3.6s!important}}
/* ===== «Навчання онлайн»: живе тло – переливи і плавучі сяйва ===== */
.onlain{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(120deg,#1b1233,#3d1c5e,#1d3c78,#6b2a6e,#a9472a,#1b1233);background-size:400% 400%;
  animation:onl-tlo 24s ease-in-out infinite alternate}
@keyframes onl-tlo{0%{background-position:0% 30%}100%{background-position:100% 70%}}
.onlain::after{content:"";position:absolute;inset:-30%;z-index:-1;pointer-events:none;
  background:radial-gradient(28% 32% at 25% 35%,rgba(227,182,84,.35),transparent 70%),
    radial-gradient(30% 34% at 75% 65%,rgba(80,140,255,.35),transparent 70%),
    radial-gradient(22% 26% at 60% 20%,rgba(239,143,126,.3),transparent 70%);
  filter:blur(30px);animation:onl-siaivo 18s ease-in-out infinite alternate}
@keyframes onl-siaivo{0%{transform:translate(-6%,4%) rotate(0)}50%{transform:translate(5%,-5%) rotate(20deg)}100%{transform:translate(-3%,-2%) rotate(-15deg)}}
.onlain .w{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.onlain{animation:onl-tlo 24s ease-in-out infinite alternate!important}.onlain::after{animation:onl-siaivo 18s ease-in-out infinite alternate!important}}
/* «Навчання онлайн»: тло статичне, рухаються лише наукові іконки в трьох шарах */
.onlain,.onlain::after{animation:none!important}
.onlain{background:linear-gradient(135deg,#1b1233,#3d1c5e 45%,#1d3c78 80%,#6b2a6e)}
.nauka-shary{position:absolute;inset:0;z-index:0;pointer-events:none}
.ik-n{position:absolute;fill:none;stroke:#fff;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;
  animation:ik-let var(--t) ease-in-out var(--z) infinite alternate}
.ik-n.h1{width:26px;opacity:.14;filter:blur(1.5px)}
.ik-n.h2{width:44px;opacity:.24;stroke:var(--zoloto-2)}
.ik-n.h3{width:72px;opacity:.3;stroke-width:1.1}
@keyframes ik-let{0%{transform:translate(0,0) rotate(-10deg)}50%{transform:translate(40px,-50px) rotate(12deg)}100%{transform:translate(-30px,30px) rotate(-4deg)}}
.ik-n.h1{animation-duration:calc(var(--t) * 1.6)}
@media (prefers-reduced-motion:reduce){.ik-n{animation:ik-let var(--t) ease-in-out var(--z) infinite alternate!important}}
/* векторні вулиці від ратуші до ліцею */
.v-misto .vulytsi{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.vulytsi .vul{fill:none;stroke:rgba(255,255,255,.35);stroke-linecap:round;stroke-linejoin:round}
.vulytsi .marshrut{fill:none;stroke:var(--zoloto-2);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 6px rgba(227,182,84,.8));animation:marshrut 9s ease-in-out infinite}
@keyframes marshrut{0%{stroke-dashoffset:1}45%,85%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.vulytsi .tochka circle{fill:var(--zoloto-2);stroke:#fff;stroke-width:2}
.vulytsi .tochka .hv{fill:none;stroke:var(--zoloto-2);animation:hvylia 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}
.vulytsi .t-l circle{fill:#ef8f7e}
@keyframes hvylia{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}
.mapa text{fill:#fff;font:700 22px/1 var(--sans,sans-serif);paint-order:stroke;stroke:rgba(20,10,40,.6);stroke-width:4px}
@media (prefers-reduced-motion:reduce){.vulytsi .marshrut{animation:marshrut 9s ease-in-out infinite!important}.vulytsi .tochka .hv{animation:hvylia 2.4s ease-out infinite!important}}
.etap:hover .n{transform:none!important}
/* «Навчання онлайн» – вікно: тло й іконки закріплені, сторінка прокручується повз */
.onlain{background:transparent!important;clip-path:inset(0)!important}
.onlain::after{display:none}
.nauka-shary{position:fixed;inset:0;z-index:-1;background:linear-gradient(135deg,#1b1233,#3d1c5e 45%,#1d3c78 80%,#6b2a6e)}
/* ===== фігурний розділювач: хвилі-синусоїди, електрони біжать один за одним ===== */
.rozdil-hvylia{height:120px;margin:-20px 0;position:relative;z-index:2;pointer-events:none}
.rozdil-hvylia svg{width:100%;height:100%;display:block;overflow:visible}
.rozdil-hvylia path{fill:none;stroke:url(#hv-g);stroke-linecap:round}
.rozdil-hvylia .hv1{stroke-width:2.4}
.rozdil-hvylia .hv2{stroke-width:1.4;opacity:.55;stroke-dasharray:2 8}
.rozdil-hvylia .hv3{stroke-width:1;opacity:.3}
.rozdil-hvylia .el{fill:#fff;stroke:var(--zoloto-2);stroke-width:2;filter:drop-shadow(0 0 6px #e3b654) drop-shadow(0 0 12px rgba(107,63,160,.8))}
.rozdil-hvylia .e2{fill:var(--zoloto-2);stroke:none}
.rozdil-hvylia .vazhka{fill:var(--zoloto-2);stroke:#fff}
.rozdil-hvylia .udar{animation:udar .45s ease-out}
/* Розділювач «Креслення» (resursy/kreslennia.js) */
.rozdil-kreslennia{height:190px;margin:0;-webkit-mask:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.rozdil-kreslennia path{stroke-linecap:butt;stroke-linejoin:miter}
.kr-sitka path{stroke:rgba(42,99,196,.09);stroke-width:1}
.rozdil-kreslennia .kr-k{fill:none;stroke:var(--synii);stroke-width:2}
.rozdil-kreslennia .kr-os{fill:none;stroke:var(--tsehla,#b5482a);stroke-width:1;stroke-dasharray:14 4 2 4;opacity:.75}
.rozdil-kreslennia .kr-r,.rozdil-kreslennia .kr-t{fill:none;stroke:var(--synii-2);stroke-width:1;opacity:.8}
.rozdil-kreslennia .kr-str{fill:var(--synii-2);stroke:none}
.rozdil-kreslennia .kr-nv{fill:none;stroke:var(--synii);stroke-width:1.2;stroke-dasharray:6 4;opacity:0}
.rozdil-kreslennia .kr-pz{fill:none;stroke:var(--synii-2);stroke-width:.8;stroke-dasharray:2 4;opacity:0}
.rozdil-kreslennia .kr-sh{fill:none;stroke:var(--synii);stroke-width:.9;opacity:.6}
.rozdil-kreslennia .kr-ploshchyna{fill:none;stroke:var(--tsehla,#b5482a);stroke-width:2;stroke-dasharray:18 5 3 5;opacity:0}
.rozdil-kreslennia .hf-os{fill:none;stroke:var(--tsehla,#b5482a);stroke-width:1;stroke-dasharray:14 4 2 4;opacity:.55}
.rozdil-faza .hf-1{fill:none;stroke:url(#hf-g1);stroke-width:1.6;opacity:.8}
.rozdil-faza .hf-2{fill:none;stroke:url(#hf-g2);stroke-width:1.6;opacity:.85}
.rozdil-faza .hf-s{fill:none;stroke:url(#hf-gs);stroke-width:2.8;stroke-linecap:round}
.hf-pidp{font:italic 600 13px var(--sans);fill:var(--synii-2)}
.kr-tekst{font:italic 600 13px var(--sans);fill:var(--synii-2);opacity:0}
.kr-pero{fill:var(--zoloto);stroke:#fff;stroke-width:1.5;opacity:0;filter:drop-shadow(0 0 4px rgba(200,150,47,.8))}
@keyframes udar{0%{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 22px #fff6d8)}100%{}}

/* ===== Учнівське самоврядування ===== */
.samovr{position:relative;overflow:hidden}
.samovr::before{content:"";position:absolute;inset:auto -10% -40% auto;width:60vmax;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(107,63,160,.14),transparent 65%);pointer-events:none}
.samovr-sitka{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.samovr h2 em{font-style:italic;color:#6b3fa0}
.samovr-kn{display:inline-flex;align-items:center;gap:10px;margin:10px 12px 14px 0}
.samovr-kn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.samovr-dopys{position:relative;display:block;border-radius:24px;overflow:hidden;color:#fff;text-decoration:none;
  box-shadow:0 30px 60px rgba(40,20,60,.25);transform:rotate(1.5deg);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.samovr-dopys:hover{transform:rotate(0) translateY(-6px)}
.samovr-dopys img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.samovr-pidpys{position:absolute;inset:auto 0 0;padding:60px 22px 20px;font-size:14px;line-height:1.45;
  background:linear-gradient(transparent,rgba(27,18,51,.92))}
.samovr-pidpys b{display:block;font:800 20px/1.2 var(--serif);color:var(--zoloto-2);margin-bottom:4px}
@media (max-width:860px){.samovr-sitka{grid-template-columns:1fr;gap:28px}.samovr-dopys{transform:none}}
.samovr-dopys,.samovr-dopys:hover{transform:none!important;rotate:none}.samovr-dopys:hover{translate:0 -6px}.samovr-dopys{transition:translate .5s cubic-bezier(.2,.8,.2,1)}

/* ===== розділювачі-обчислювачі: числа / біти й операції ===== */
.impuls-op{width:100%;height:100%;display:block;overflow:visible}
.impuls-op text{font:700 20px/1 var(--sans,system-ui);pointer-events:none}
.op-chyslo circle{fill:#fff;stroke:#6b3fa0;stroke-width:2.5;filter:drop-shadow(0 4px 8px rgba(46,29,135,.25))}
.op-chyslo text{fill:#2e1d87}
.op-chyslo.maie-op circle{stroke:var(--zoloto-2);stroke-width:3.5;filter:drop-shadow(0 0 8px rgba(227,182,84,.9))}
.op-znak circle{fill:#b5482a;stroke:#fff;stroke-width:1.5}
.op-znak text{fill:#fff;font-size:15px}
[data-typ="lohika"] .op-znak text{font-size:10px;letter-spacing:.02em}
[data-typ="lohika"] .op-chyslo text{font-family:ui-monospace,Consolas,monospace;font-size:22px}
[data-typ="lohika"] .op-znak circle{fill:#1d3c78}
.op-rez{fill:#6b3fa0;font:italic 700 22px/1 var(--serif)!important;paint-order:stroke;stroke:#faf6ef;stroke-width:5px;
  animation:op-rez 1.8s ease-out forwards}
@keyframes op-rez{0%{opacity:0;transform:translateY(8px)}15%{opacity:1;transform:none}75%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}
/* фони світлих блоків однакові – розділювачі без видимої межі */
.shliakh{background:transparent}

/* результат операції: кулька спалахує, напис більший */
.op-chyslo.maie-op circle{animation:op-spalakh 1s ease-out}
@keyframes op-spalakh{0%{filter:drop-shadow(0 0 16px #e3b654) drop-shadow(0 0 30px #fff6d8)}100%{}}
.op-rez{font-size:26px!important}

.op-znak.zariadzhenyi circle{stroke:var(--zoloto-2);stroke-width:3;filter:drop-shadow(0 0 8px rgba(227,182,84,.9))}
.op-rez{display:none}
.samovr-dopys img{object-fit:contain;background:#1b1233}

/* ===== стилі розділювачів за наукою ===== */
/* математика – графік функції в зошиті */
.grafik .gr-s{stroke:#2e1d87;stroke-width:.6;opacity:.12}
.grafik .gr-os{stroke:#2e1d87;stroke-width:1.2;opacity:.45}
.grafik .gr-pidp{fill:#2e1d87;opacity:.55;font:italic 13px/1 var(--serif)}
.grafik .gr-liniia{fill:none;stroke:#6b3fa0;stroke-width:2.2;stroke-linejoin:round}
[data-typ="chysla"] .op-chyslo circle{filter:none;stroke:#6b3fa0}
[data-typ="chysla"] .op-znak circle{fill:#2e1d87}
/* логіка – цифровий сигнал на осцилографі */
.sygnal .lg-riven{stroke:#1d3c78;stroke-width:1;stroke-dasharray:3 6;opacity:.35}
.sygnal .lg-pidp{fill:#1d3c78;opacity:.6;font:700 13px/1 ui-monospace,Consolas,monospace}
.sygnal .lg-liniia{fill:none;stroke:#1d6fb8;stroke-width:2.4;stroke-linejoin:miter}
.sygnal .lg-tin{fill:none;stroke:#3fa9f5;stroke-width:7;opacity:.18;filter:blur(3px)}
[data-typ="lohika"] .op-chyslo rect{fill:#0f1f3d;stroke:#3fa9f5;stroke-width:2;filter:drop-shadow(0 0 6px rgba(63,169,245,.6))}
[data-typ="lohika"] .op-chyslo text{fill:#7fd3ff}
[data-typ="lohika"] .op-znak rect{fill:#fff;stroke:#1d6fb8;stroke-width:1.5}
[data-typ="lohika"] .op-znak text{fill:#1d3c78}
[data-typ="lohika"] .op-chyslo.maie-op rect{animation:lg-spalakh 1s ease-out}
@keyframes lg-spalakh{0%{filter:drop-shadow(0 0 14px #7fd3ff) drop-shadow(0 0 26px #fff)}100%{}}
[data-typ="lohika"] .op-znak.zariadzhenyi rect{stroke:#3fa9f5;stroke-width:3;filter:drop-shadow(0 0 8px rgba(63,169,245,.9))}

/* нуль-таймер: кулька «тікає» пунктирним обідком */
.op-chyslo.taimer circle{stroke-dasharray:6 4;animation:taimer 1s linear infinite}
@keyframes taimer{to{stroke-dashoffset:-10}}

/* правова інформація */
.prava-riadok{flex-basis:100%;font-size:12px;opacity:.75}
.prava-riadok a{color:inherit}
.storinka-prava{padding:120px 0 80px}
.storinka-prava .vuzko{max-width:760px}
.storinka-prava h1{font:800 clamp(34px,5vw,52px)/1.1 var(--serif);color:var(--synii);margin:8px 0 24px}
.storinka-prava h2{font:800 22px/1.2 var(--serif);color:var(--synii);margin:30px 0 8px}
.storinka-prava p,.storinka-prava li{line-height:1.65}
.storinka-prava ul{padding-left:22px}
/* сенсорні екрани (Safari на iPhone не обрізає fixed по clip-path) –
   тло «Навчання онлайн» звичайне, в межах блоку */
@media (hover:none),(max-width:900px){.nauka-shary{position:absolute}}
/* ===== заставка завантаження ===== */
#zavantazhennia{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:18px;
  background:var(--tlo,#fbf8f2);transition:opacity .5s ease,visibility .5s;
  animation:zv-strakhovka 0s linear 8s forwards}   /* якщо JS не спрацював – сховати за 8 с */
#zavantazhennia img{border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(46,29,135,.15);animation:zv-puls 1.6s ease-in-out infinite}
.zv-smuha{width:180px;height:4px;border-radius:4px;background:rgba(46,29,135,.12);overflow:hidden}
.zv-smuha i{display:block;height:100%;width:40%;border-radius:4px;background:linear-gradient(90deg,#b5482a,#e3b654,#6b3fa0);
  animation:zv-bih 1.1s ease-in-out infinite}
@keyframes zv-bih{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}
@keyframes zv-puls{50%{transform:scale(1.06)}}
@keyframes zv-strakhovka{to{opacity:0;visibility:hidden}}
.zavantazheno #zavantazhennia{opacity:0;visibility:hidden;pointer-events:none}
@media (prefers-reduced-motion:reduce){.zv-smuha i{animation:zv-bih 1.1s ease-in-out infinite!important}}
/* «стає наукою»: суцільний колір замість градієнта по тексту – Chrome на
   Android не малює background-clip:text на розбитих на літери span.l, і
   слова ставали прозорими (30.09.2026, скрин з телефона) */
.hero h1 em,.hero h1 em .l{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;
  color:#b5482a!important;-webkit-text-fill-color:#b5482a!important;animation-name:litera}
.hero h1 em{animation:none!important}
.hero h1 .slovo{display:inline-block;white-space:nowrap}

/* Новини на головній */
.holovna-novyny{padding:100px 0 40px}
.hn-holova{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.hn-holova h2{font-size:clamp(34px,4.4vw,60px);font-weight:800;margin-top:12px}
.knopka-kontur{font-weight:700;text-decoration:none;padding:13px 22px;border-radius:999px;border:1.5px solid var(--synii);color:var(--synii);transition:background .2s,color .2s}
.knopka-kontur:hover{background:var(--synii);color:#fff}
/* Меню для телефона */
.mob-menu{display:none;margin-left:auto;position:relative}
.mob-menu summary{list-style:none;cursor:pointer;width:46px;height:46px;border-radius:14px;background:var(--panel);box-shadow:0 1px 0 var(--liniia),0 6px 18px rgba(18,58,122,.12);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.mob-menu summary::-webkit-details-marker{display:none}
.mob-menu summary span{width:20px;height:2px;border-radius:2px;background:var(--synii);transition:transform .25s,opacity .25s}
.mob-menu[open] summary span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mob-menu[open] summary span:nth-child(2){opacity:0}
.mob-menu[open] summary span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mob-menu nav{position:absolute;right:0;top:56px;display:flex!important;flex-direction:column;gap:2px;min-width:230px;padding:10px;background:var(--panel);border-radius:18px;box-shadow:var(--tin)}
.mob-menu nav a{padding:12px 16px;border-radius:12px;text-decoration:none;color:var(--tekst);font-weight:600}
.mob-menu nav a:hover{background:var(--synii-m)}
@media (max-width:900px){.mob-menu{display:block}.holovna-novyny{padding-top:70px}}

/* Меню важливих розділів біля маніфесту */
.pro-menu{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pro-menu a{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:64px;padding:16px 44px 16px 20px;border-radius:20px;background:var(--panel);
  text-decoration:none;box-shadow:0 1px 0 var(--liniia),0 8px 24px rgba(18,58,122,.07);transition:transform .25s,box-shadow .25s}
.pro-menu a::after{content:"→";position:absolute;right:18px;top:50%;margin-top:-.6em;color:var(--zoloto);font-weight:700;transition:transform .25s}
.pro-menu a:hover{transform:translateY(-3px);box-shadow:var(--tin)}
.pro-menu a:hover::after{transform:translateX(4px)}
.pro-menu b{font:800 17px/1.2 var(--serif);color:var(--synii)}
.pro-menu small{font-size:13.5px;color:var(--tykho)}
@media (max-width:620px){.pro-menu{grid-template-columns:1fr}}
.pro-menu a:last-child:nth-child(odd){grid-column:1/-1}

/* Розділювач-тренажер (щоразу інший: балістика, маятники…) */
.rozdil-trenazher{margin:30px 0 0;padding:58px 0 50px;overflow:hidden;background:linear-gradient(180deg,#eaf0fa,#f1f4fb);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 12C40 0 80 0 120 12S200 24 240 12V24H0Z'/%3E%3C/svg%3E") top left/240px 24px repeat-x,linear-gradient(#000,#000) center/100% calc(100% - 46px) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 12C40 24 80 24 120 12S200 0 240 12V0H0Z'/%3E%3C/svg%3E") bottom left/240px 24px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 12C40 0 80 0 120 12S200 24 240 12V24H0Z'/%3E%3C/svg%3E") top left/240px 24px repeat-x,linear-gradient(#000,#000) center/100% calc(100% - 46px) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='24' viewBox='0 0 240 24'%3E%3Cpath d='M0 12C40 24 80 24 120 12S200 0 240 12V0H0Z'/%3E%3C/svg%3E") bottom left/240px 24px repeat-x}
#trenazher{display:block;width:100%;height:340px}
@media (max-width:620px){#trenazher{height:300px}}
/* Конкурс ідей */
.konkurs{max-width:860px}
.konkurs h3{margin:46px 0 12px}
.konkurs-vstup{font-size:1.12em;line-height:1.6}
.konkurs-pryz{margin:26px 0 8px;padding:22px 26px;border-radius:18px;background:#fff6d8;border:1px solid #ecd58f}
.konkurs-pryz p{margin:8px 0}
.konkurs-strok{font-size:1.08em}
.konkurs-etapy{margin:10px 0;padding-left:22px}.konkurs-etapy li{margin:4px 0}
.konkurs-plusy{list-style:none;padding:0;margin:12px 0 14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 18px}
.konkurs-plusy li{position:relative;padding-left:26px}
.konkurs-plusy li::before{content:"✓";position:absolute;left:0;top:0;color:var(--tsehla);font-weight:800}
.konkurs-pryz-holovne{font:800 clamp(21px,3.4vw,28px)/1.25 var(--serif);color:var(--synii)}
.halereia{margin:16px 0 10px;border-radius:18px;overflow:hidden;border:1px solid rgba(0,0,0,.1);background:#fff}
.halereia-vikno{background:linear-gradient(180deg,#eaf0fa,#f1f4fb)}
.halereia-vikno iframe{display:block;width:100%;height:340px;border:0}
.halereia-pult{display:flex;align-items:center;gap:10px;padding:12px 12px;border-top:1px solid rgba(0,0,0,.08)}
.halereia-str{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--tsehla);color:#fff;font:700 28px/1 var(--sans);text-decoration:none;user-select:none}
.halereia-str:hover{filter:brightness(1.08)}
.halereia-pidpys{flex:1;min-width:0;text-align:center;display:grid;gap:2px}
.halereia-predmet{font-size:13px;color:var(--tykho);letter-spacing:.04em}
.halereia-nazva{font:700 18px/1.25 var(--serif);color:var(--synii)}
.halereia-opys{font-size:14.5px;color:var(--tekst)}
.halereia-spysok{display:grid;gap:8px;padding:14px 16px 16px;border-top:1px solid rgba(0,0,0,.08);background:#fafbfd}
.halereia-spysok div{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.halereia-spysok span{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tykho);margin-right:4px;min-width:118px}
.halereia-spysok a{padding:4px 11px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;font-size:14px;text-decoration:none;color:inherit}
.halereia-spysok a[aria-current]{background:var(--synii);border-color:var(--synii);color:#fff}
@media (max-width:600px){.halereia-vikno iframe{height:260px}.halereia-str{width:40px;height:40px;font-size:24px}.halereia-spysok span{min-width:100%}}
.konkurs-kroky{padding-left:22px}.konkurs-kroky li{margin:8px 0}
.konkurs-zrazok{margin:24px 0;padding:18px 22px;border-left:4px solid var(--tsehla);background:rgba(0,0,0,.03);border-radius:0 12px 12px 0}
.konkurs-zrazok p{margin:6px 0}
.konkurs-forma{display:grid;gap:6px;margin-top:10px}
.konkurs-forma label{font-weight:600;margin-top:14px}
.konkurs-forma label b{color:var(--tsehla)}
.konkurs-forma select,.konkurs-forma input:not([type=checkbox]),.konkurs-forma textarea{width:100%;padding:11px 13px;border:1px solid rgba(0,0,0,.2);border-radius:10px;font:inherit;background:#fff;color:inherit}
.konkurs-forma input:focus,.konkurs-forma textarea:focus{outline:2px solid var(--tsehla);border-color:transparent}
.konkurs-forma small{color:var(--tykho)}
.konkurs-forma button{justify-self:start;margin-top:18px;cursor:pointer;border:0}
.konkurs-zghoda{display:flex;gap:10px;align-items:flex-start;font-weight:400!important}
.konkurs-zghoda input{margin-top:5px}
.konkurs-pastka{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.konkurs-ok,.konkurs-pom{padding:14px 18px;border-radius:12px;border:1px solid #9bd0a6;background:#e5f4e8}
.konkurs-pom{border-color:#e6a495;background:#fbe9e5}
.konkurs-pytannia dt{font-weight:700;margin-top:14px}
.konkurs-pytannia dd{margin:4px 0 0}
/* Зворотний відлік конкурсу: цифри + «бікфордів шнур» з іскрою */
.vidlik{margin:18px 0 16px;padding:18px 20px 16px;border-radius:16px;background:#14213d;color:#f4efe4;position:relative;overflow:hidden}
.vidlik-zah{margin:0 0 8px;font:700 12.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#e2b556}
.vidlik-ch{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vidlik-ch span{display:grid;justify-items:center;min-width:0;padding:8px 6px 6px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.vidlik-ch b{font:800 clamp(30px,6vw,46px)/1 var(--serif);font-variant-numeric:tabular-nums;color:#fff}
.vidlik-ch i{font:600 11.5px/1.6 var(--sans);font-style:normal;letter-spacing:.06em;color:#b9c2d6;text-transform:uppercase}
.vidlik-shnur{position:relative;height:34px;margin:16px 4px 2px}
.vidlik-shnur::before{content:"";position:absolute;left:0;right:0;top:14px;height:5px;border-radius:3px;
  background:repeating-linear-gradient(115deg,#c9a46a 0 6px,#a8844c 6px 9px)}
.vidlik-horilo{position:absolute;left:0;top:14px;height:5px;border-radius:3px;background:#2b2b2b;
  box-shadow:0 0 0 1px #111 inset;width:0}
.vidlik-iskra{position:absolute;top:16px;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;
  background:radial-gradient(circle,#fff 0 25%,#ffd36b 35%,#ff7a1a 60%,transparent 70%);
  box-shadow:0 0 12px 4px rgba(255,170,40,.75),0 0 28px 8px rgba(255,90,20,.35);animation:vidlik-iskra .18s steps(2) infinite}
.vidlik-iskra::before,.vidlik-iskra::after{content:"";position:absolute;left:50%;top:50%;width:2px;height:2px;border-radius:50%;
  background:#ffd36b;box-shadow:-9px -7px #ffb347,7px -10px #ffe08a,-5px 8px #ff8a3d,11px 4px #ffd36b,-12px 2px #ffe08a;animation:vidlik-iskry .5s linear infinite}
.vidlik-iskra::after{animation-delay:-.25s;transform:rotate(60deg)}
.vidlik-start,.vidlik-finish{position:absolute;top:24px;font:600 11.5px/1 var(--sans);color:#8f9ab3}
.vidlik-start{left:0}.vidlik-finish{right:0;color:#e2b556}
.vidlik-pidpys{margin:8px 0 0;font-size:13.5px;color:#b9c2d6}
.vidlik-kinets .vidlik-iskra{display:none}.vidlik-kinets .vidlik-ch b{color:#8f9ab3}
@keyframes vidlik-iskra{50%{transform:scale(1.25)}}
@keyframes vidlik-iskry{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.6);opacity:0}}
@media (prefers-reduced-motion:reduce){.vidlik-iskra,.vidlik-iskra::before,.vidlik-iskra::after{animation:none}}
@media (max-width:480px){.vidlik-ch{gap:6px}}
/* Сторінка поданих ідей */
.idei-posylannia{font-size:1.05em}
.konkurs-dr{margin-left:14px;font-weight:600}
.idei-pidsumok{font-size:1.1em}
.idei-spysok{display:grid;gap:16px;margin:24px 0}
.ideia{padding:20px 22px;border-radius:16px;background:#fff;border:1px solid rgba(0,0,0,.1);scroll-margin-top:110px}
.ideia h3{margin:4px 0 2px;font:700 20px/1.3 var(--serif);color:var(--synii)}
.ideia p{margin:8px 0}
.ideia-meta{font-size:13px;letter-spacing:.04em;color:var(--tykho);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ideia-meta b{color:var(--tsehla);text-transform:uppercase}
.ideia-avtor{font-weight:600}
.ideia-stan{padding:2px 9px;border-radius:999px;background:#e8f0fc;color:var(--synii);font-weight:700}
.ideia-zrobleno{background:#e5f4e8;color:#1d6b33}
.ideia-nova{border-color:var(--tsehla);box-shadow:0 0 0 3px #f7dccf}
/* Списки колективу: адміністрація, кафедри */
.kolektyv{list-style:none;padding:0;margin:0 0 28px;columns:2 320px;column-gap:40px}
.kolektyv li{padding:7px 0;border-bottom:1px solid rgba(0,0,0,.08);break-inside:avoid}
.rozdil-st h3{margin:28px 0 10px}
/* Сторінка викладача */
.vchytel-posada{font-weight:600}
.vchytel-dani{display:grid;gap:12px;margin:22px 0 28px}
.vchytel-dani div{display:grid;grid-template-columns:180px 1fr;gap:16px}
.vchytel-dani dt{color:var(--tykho)}
.vchytel-dani dd{margin:0}
@media (max-width:560px){.vchytel-dani div{grid-template-columns:1fr;gap:2px}}
/* телефон: розділювач-обчислювач не налазить на останню картку «Шляху ліцеїста» (результати спалахують над хвилею) */
@media (max-width:900px){.shliakh + .rozdil-hvylia{margin-top:44px}}
/* досягнення в цифрах */
.tsyfry{padding:90px 0 70px}
.tsyfry-sitka{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.tsyfra{background:var(--panel);border:1px solid var(--liniia);border-radius:var(--r);padding:26px 22px}
.tsyfra b{display:block;font:800 clamp(44px,5.4vw,76px)/1 var(--serif);letter-spacing:-.03em;color:var(--synii);font-variant-numeric:tabular-nums}
.tsyfra:nth-child(2n) b{color:#b5482a}
.tsyfra span{display:block;margin-top:12px;color:var(--tykho);font-size:15px;line-height:1.45}
.tsyfry-dzherelo{margin-top:22px;color:var(--tykho);font-size:14px}
@media (max-width:1100px){.tsyfry-sitka{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.tsyfry{padding:70px 0 50px}.tsyfry-sitka{grid-template-columns:1fr 1fr}.tsyfra{padding:20px 16px}.tsyfra:last-child{grid-column:1 / -1}}
/* рядок над розділювачем: «Інтерактивний розділювач · назва» + кнопка в лабораторію */
.trenazher-shapka{position:relative;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;max-width:1180px;margin:0 auto 8px;padding:0 22px}
.trenazher-shapka{align-items:baseline}
.trenazher-shapka .mitka,.trenazher-shapka b{font:600 15px/1.4 var(--sans);letter-spacing:0;text-transform:none}
.trenazher-shapka .mitka{color:var(--tykho)}
.trenazher-shapka .mitka::after{content:'·';margin-left:14px;color:var(--tykho)}
.trenazher-shapka b{color:var(--synii)}
.trenazher-lab{margin-left:auto;align-self:center;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:var(--synii);color:#fff;font:600 14px var(--sans);text-decoration:none;box-shadow:0 6px 16px rgba(18,58,122,.22)}
.trenazher-lab:hover{background:var(--synii-2)}
@media (max-width:620px){.trenazher-lab{margin-left:0}}
/* Розділювач «Гармоніки»: три синусоїди й їхня сума */
.rozdil-harmoniky{margin-top:56px}
.harmoniky{width:100%;height:100%;display:block;overflow:visible}
.harmoniky path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.harmoniky .hm-h{stroke-width:1.2;opacity:.45}
.harmoniky .hm1{stroke:#6b3fa0}.harmoniky .hm2{stroke:#e3b654}.harmoniky .hm3{stroke:#b5482a}
.harmoniky .hm-suma{stroke:url(#hv-g);stroke-width:2.6}
/* Хвилясті краї смуги тренажера: синусоїди в ритмі маски (resursy/krai.js) */
.rozdil-trenazher{position:relative}
.krai-hvyli{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.krai-hvyli path{fill:none;stroke-linecap:round}
.krai-hvyli .kr-s{stroke-width:2;opacity:.75}
.krai-hvyli .kr-p{stroke-width:1.4;opacity:.45;stroke-dasharray:2 9;animation:krai-bih 6s linear infinite}
@keyframes krai-bih{to{stroke-dashoffset:-110}}
@media (prefers-reduced-motion:reduce){.krai-hvyli .kr-p{animation:none}}
/* Текст сторінки розділу з CMS – resursy/tekst.css (спільний з редактором адмінки) */
/* Партнери: картки з логотипом або монограмою */
.partnery{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin:26px 0 34px}
.partner{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:18px;background:var(--panel);border:1px solid var(--liniia);
  color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s}
a.partner:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(18,58,122,.12)}
.partner-logo{flex:none;height:96px;display:grid;place-items:center;border-radius:14px;background:#fff;border:1px solid var(--liniia);overflow:hidden;padding:10px 14px}
.partner-logo img{max-width:100%;max-height:76px;object-fit:contain}
.partner-mono{background:linear-gradient(135deg,#2e1d87,#6b3fa0 45%,#b5482a);border:0}
.partner-mono span{font:800 34px/1 var(--serif);color:#fff;letter-spacing:.02em}
.partner-mono span.dovha{font-size:28px;letter-spacing:.02em}
.partner-tekst{display:grid;gap:4px;min-width:0}
.partner-tekst b{font:700 18px/1.25 var(--serif);color:var(--synii)}
.partner-povna{font-size:14px;color:var(--tekst)}
.partner-opys{font-size:13.5px;color:var(--tykho)}
.partner-sait{font-size:13px;font-weight:600;color:var(--tsehla);margin-top:2px}
/* «Ми у соцмережах» у підвалі */
.my-soc{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-bottom:18px;margin-bottom:6px;border-bottom:1px solid var(--liniia)}
.my-soc .mitka{flex-basis:100%;margin:0 0 2px}
.my-soc a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid var(--liniia);background:var(--panel);color:var(--synii);font-weight:600;text-decoration:none}
.my-soc a:hover{border-color:var(--synii)}
/* Підсайт учнівського самоврядування */
.sv-hero{padding:150px 0 46px;background:radial-gradient(ellipse at 85% 0%,rgba(107,63,160,.16),transparent 60%),radial-gradient(ellipse at 0% 100%,rgba(181,72,42,.12),transparent 55%)}
.sv-haslo{font:800 clamp(38px,6vw,68px)/1.02 var(--serif);color:var(--synii);margin:12px 0 16px;max-width:14em}
.sv-opys{font-size:1.12em;max-width:40em;line-height:1.6}
.sv-menu{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.sv-menu a{padding:7px 16px;border-radius:999px;background:var(--synii);color:#fff;text-decoration:none;font-weight:600}
.sv-soc{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.sv-soc .kn{display:inline-flex;align-items:center;gap:10px}
.sv-rozdil{padding:34px 0}
.sv-rozdil h3{font:800 clamp(26px,3.4vw,36px)/1.15 var(--serif);color:var(--synii);margin:0 0 18px}
.sv-sklad{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.sv-chlen{display:grid;gap:4px;padding:18px 20px;border-radius:16px;background:var(--panel);border:1px solid var(--liniia)}
.sv-posada{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tsehla)}
.sv-chlen b{font:700 19px/1.25 var(--serif);color:var(--synii)}
/* Переглядач PDF на сторінках розділів (resursy/pdf-perehliad.js) */
.pdf-kn{margin-left:8px;padding:3px 12px;border:1px solid currentColor;border-radius:999px;background:transparent;color:var(--synii-2);font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;cursor:pointer;vertical-align:1px}
.pdf-kn:hover{background:var(--synii-2);color:#fff}
.pdf-ramka{margin:12px 0 18px;border:1px solid var(--liniia);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 6px 24px rgba(29,22,64,.08)}
.pdf-ramka iframe{display:block;width:100%;height:min(82vh,1100px);border:0}
.pdf-ramka--foto{background:var(--tlo-2);text-align:center}.pdf-ramka--foto img{display:block;max-width:100%;max-height:82vh;margin:0 auto;height:auto}
.storinka-tekst .pdf-kn{font-size:12.5px;padding:2px 11px}
/* Термінове оголошення (storinky/bloky/ogoloshennia.php) – під фіксованою шапкою, якщо стоїть першим */
.ogol{position:relative;z-index:30;color:#fff}
main>.ogol:first-child{margin-top:74px}
.ogol .w{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.ogol p{margin:0;flex:1 1 280px;font-weight:600;line-height:1.4}
.ogol-info{background:var(--synii)}.ogol-vazhlyvo{background:#9a6a07}
/* «Терміново»: червоно-помаранчевий живий градієнт, відблиск і пульс значка */
.ogol-tryvoha{background:linear-gradient(110deg,#b3160f,#e2401b 30%,#ff7a1a 50%,#e2401b 70%,#b3160f);background-size:250% 100%;
  animation:ogol-hrad 6s ease-in-out infinite;overflow:hidden;box-shadow:0 6px 24px rgba(226,64,27,.35)}
.ogol-tryvoha::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-100%);animation:ogol-blysk 3.2s ease-in-out infinite}
.ogol-tryvoha .ogol-ik{background:#fff;color:#c8250f;animation:ogol-puls 1.4s ease-out infinite}
.ogol-tryvoha p{text-shadow:0 1px 0 rgba(0,0,0,.18)}
@keyframes ogol-hrad{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes ogol-blysk{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
@keyframes ogol-puls{0%{box-shadow:0 0 0 0 rgba(255,255,255,.75)}100%{box-shadow:0 0 0 12px rgba(255,255,255,0)}}
@media (prefers-reduced-motion:reduce){.ogol-tryvoha,.ogol-tryvoha::after,.ogol-tryvoha .ogol-ik{animation:none}.ogol-tryvoha::after{display:none}}
.ogol-ik{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.2);font-weight:800;flex:none}
.ogol-kn{color:#fff;font-weight:700;padding:6px 14px;border:1px solid rgba(255,255,255,.6);border-radius:999px;text-decoration:none;white-space:nowrap}
.ogol-kn:hover{background:#fff;color:var(--tekst)}
.ogol-x{background:transparent;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;padding:4px 8px;margin-left:auto}

/* голосування (storinky/holosuvannia.php) */
.hol-spysok{display:grid;gap:12px;margin:16px 0}.hol-kartka{display:grid;gap:4px;padding:16px 18px;border-radius:16px;background:#fff;border:1px solid rgba(0,0,0,.08);text-decoration:none;color:inherit}
.hol-kartka b{font-size:1.15em}.hol-stan{font-size:.8em;text-transform:uppercase;letter-spacing:.06em}.hol-vidkryto{color:#15803d}.hol-zakryto{color:#6b7280}
.hol-pravylo{padding:12px 16px;border-radius:12px;background:#eef2fb}.hol-usogo{display:inline-block;margin-left:10px;color:#2f4bb5}
.hol-varianty{display:grid;gap:18px;margin:18px 0}.hol-variant{padding:18px 20px;border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 6px 20px rgba(20,23,31,.05)}
.hol-variant.hol-mii{border-color:#2f4bb5;box-shadow:0 0 0 3px rgba(47,75,181,.15)}
.hol-shapka{display:flex;gap:12px;align-items:flex-start}.hol-mistse{flex:0 0 auto;order:2;margin-left:auto;font-weight:800;color:#b5482a;font-size:.8em;padding:3px 9px;border:1px solid #f1c9bd;border-radius:999px;background:#fdf3ef;white-space:nowrap}.hol-nazva h3{margin:0 0 4px}.hol-avtor{margin:0;color:#586379}
.hol-model{margin:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hol-model iframe{display:block;width:100%;height:340px;border:0;border-radius:14px;background:linear-gradient(180deg,#eaf0fa,#f1f4fb);order:3}
.hol-vikno-posylannia{font-size:.9em}.hol-opys{color:#2b3340}
.hol-niz{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}.hol-smuha{flex:1 1 160px;height:10px;border-radius:5px;background:#eef2fb;overflow:hidden}.hol-smuha i{display:block;height:100%;background:linear-gradient(90deg,#2f4bb5,#5b7be8);transition:width .5s}
.hol-lich b{font-size:1.2em}.hol-kn{white-space:nowrap}
@media (max-width:640px){.hol-model iframe{height:280px}.hol-variant{padding:14px}}
