/* BitEdu — geografia: mapy, wykresy, galerie */
.gv-map,.gv-fig{display:grid;gap:10px;margin:0}
.gv-title{margin:0;font-size:1rem;font-weight:650;color:var(--lp-ink)}
.gv-loading{margin:0;padding:24px;text-align:center;color:var(--lp-muted)}
.gv-svg{width:100%;height:auto;display:block;border-radius:16px;border:1px solid var(--lp-line)}
.gv-ocean{fill:color-mix(in srgb,#2a73bd 42%,var(--lp-card-2))}
.gv-grat path{fill:none;stroke:rgba(255,255,255,.14);stroke-width:.6}.gv-grat .gv-eq{stroke:rgba(255,255,255,.35);stroke-width:1}.gv-grat .gv-tropic{stroke:rgba(255,207,74,.55);stroke-dasharray:3 4;stroke-width:.9}
.gv-c{fill:color-mix(in srgb,#8aa886 48%,var(--lp-card-2));stroke:color-mix(in srgb,var(--lp-card-2) 55%,transparent);stroke-width:.5;transition:fill .25s,opacity .25s}
.gv-c:hover{fill:color-mix(in srgb,var(--lp-accent) 55%,var(--lp-card-2))!important;cursor:pointer}.gv-c.is-hl:hover{filter:brightness(1.25)}
.gv-band{pointer-events:none}.gv-bandlbl{font:650 var(--gv-fs,16px) system-ui,sans-serif;fill:var(--lp-ink);opacity:.85;pointer-events:none}
.gv-path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.gv-flow{stroke-dasharray:var(--gv-dash,10 13);animation:gv-dash 1.1s linear infinite}@keyframes gv-dash{to{stroke-dashoffset:-60}}
.gv-pathlbl,.gv-mklbl,.gv-txt{font:650 var(--gv-fs,16px) system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:rgba(8,14,26,.85);stroke-width:calc(var(--gv-fs,16px)*.22);pointer-events:none}
.gv-dot{stroke:#0b1220;stroke-width:calc(var(--gv-fs,16px)*.08);cursor:pointer}.gv-mk:focus-visible .gv-dot{stroke:#fff;stroke-width:2}
.gv-ring{fill:none;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:gv-pulse 1.8s ease-out infinite}@keyframes gv-pulse{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}
.gv-tabs{display:flex;flex-wrap:wrap;gap:8px}.gv-tabs .is-sel{border-color:var(--lp-accent);background:color-mix(in srgb,var(--lp-accent) 22%,transparent)}
.gv-info{min-height:2.6em;padding:10px 14px;border-radius:12px;border:1px solid var(--lp-line);background:color-mix(in srgb,var(--lp-accent) 9%,transparent);font-size:.92rem}
.gv-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.84rem;color:var(--lp-muted)}.gv-legend li{display:flex;align-items:center;gap:6px}.gv-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}
.gv-src,.gv-notep{margin:0;font-size:.8rem;color:var(--lp-muted)}.gv-stats{margin:0;font-size:.92rem}
.gv-chart{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--lp-line);background:color-mix(in srgb,var(--lp-card) 80%,transparent)}
.gv-grid{stroke:rgba(255,255,255,.1);stroke-width:1}.gv-zero{stroke:rgba(255,255,255,.4);stroke-width:1.4}
.gv-ax{font:11px system-ui,sans-serif;fill:var(--lp-muted)}.gv-unit{font-weight:650}.gv-val{font:600 11px system-ui,sans-serif;fill:var(--lp-ink)}.gv-note{font:600 11px system-ui,sans-serif;fill:var(--lp-accent)}.gv-lg{fill:var(--lp-ink);font-size:12.5px}
.gv-center{font:700 22px system-ui,sans-serif;fill:var(--lp-ink)}.gv-agelbl{font-size:9px;fill:rgba(255,255,255,.75);pointer-events:none}
.gv-pm{fill:#5eb0ff}.gv-pf{fill:#ff8a5e}.gv-precip{fill:#5eb0ff;opacity:.85}.gv-area{opacity:.16}
.gv-line{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.gv-pt{stroke:#0b1220;stroke-width:1}
.gv-bar,.gv-hbar,.gv-px,.gv-slice{transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .8s}
.gv-anim .gv-bar{transform:scaleY(0)}.gv-anim.is-in .gv-bar{transform:scaleY(1)}
.gv-anim .gv-hbar{transform:scaleX(0)}.gv-anim.is-in .gv-hbar{transform:scaleX(1)}
.gv-anim .gv-px{transform:scaleX(0)}.gv-anim.is-in .gv-px{transform:scaleX(1)}
.gv-anim .gv-slice{opacity:0;transform:scale(.92);transform-origin:170px 158px}.gv-anim.is-in .gv-slice{opacity:1;transform:none}
.gv-anim .gv-line:not(.gv-static){stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s ease}.gv-anim.is-in .gv-line:not(.gv-static){stroke-dashoffset:0}
.gv-anim .gv-pt{opacity:0;transition:opacity .6s .9s}.gv-anim.is-in .gv-pt{opacity:1}
@media (prefers-reduced-motion:reduce){.gv-bar,.gv-hbar,.gv-px,.gv-slice,.gv-line,.gv-pt{transition:none!important}.gv-flow,.gv-ring{animation:none!important}}
.gv-gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.gv-gal[data-n="1"]{grid-template-columns:1fr}.gv-gal[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.gv-ph{margin:0;display:grid;gap:8px}.gv-phb{padding:0;border:0;border-radius:16px;overflow:hidden;background:var(--lp-card-2);cursor:zoom-in;aspect-ratio:3/2;display:block}
.gv-phb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.gv-phb:hover img{transform:scale(1.05)}
.gv-ph figcaption{display:grid;gap:2px;font-size:.88rem}.gv-ph small,.gv-cmp small{color:var(--lp-muted);font-size:.75rem}
.gv-lb{position:fixed;inset:0;z-index:9999;background:rgba(5,9,18,.92);display:grid;place-items:center;padding:24px}.gv-lb figure{margin:0;max-width:min(1100px,96vw);display:grid;gap:10px;color:#fff}.gv-lb img{max-width:100%;max-height:78vh;border-radius:12px;display:block;margin:0 auto}.gv-lb small{display:block;opacity:.7}
.gv-lbx{position:absolute;top:14px;right:18px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font-size:26px;cursor:pointer}
.gv-cmp{margin:0;display:grid;gap:8px}.gv-cmpbox{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:3/2;background:#000;user-select:none;touch-action:pan-y;cursor:ew-resize}
.gv-cmpbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.gv-cmp-a{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}.gv-cmp-a img{width:auto;max-width:none;height:100%}
.gv-cmp-l{position:absolute;top:10px;padding:4px 10px;border-radius:999px;background:rgba(5,9,18,.7);color:#fff;font-size:.78rem}.gv-cmp-l1{left:10px}.gv-cmp-l2{right:10px}
.gv-cmp-h{position:absolute;top:0;bottom:0;width:3px;background:#fff;transform:translateX(-50%);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.gv-cmp-h::after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-weight:700}
.gv-cmp input[type=range]{width:100%}
/* schematy animowane */
.gd{display:grid;gap:10px}.gd-svg{width:100%;height:auto;display:block;border-radius:16px;border:1px solid var(--lp-line)}
.gd-ice{fill:url(#gdice);stroke:#e9f5ff;stroke-width:1.2}.gd-firn{fill:#fff;opacity:.92}.gd-melt{fill:none;stroke:#5eb0ff;stroke-width:3;stroke-linecap:round;stroke-dasharray:4 6;animation:gv-dash .9s linear infinite}
.gd-line{stroke:#ffcf4a;stroke-width:2;stroke-dasharray:7 6}.gd-lbl{font:600 11.5px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:rgba(8,14,26,.75);stroke-width:2.6px}.gd-lblc{fill:#ffcf4a}.gd-w{fill:#fff}.gd-b{fill:#9ad8ff}
.gd-dot{fill:#2a73bd;stroke:#fff;stroke-width:.8}.gd-flake{fill:#fff;opacity:.9;animation:gd-fall 5s linear infinite}@keyframes gd-fall{from{transform:translateY(0)}to{transform:translateY(95px);opacity:0}}
.gd-ctl{display:grid;gap:6px}.gd-ctl label{display:grid;gap:6px;font-size:.92rem}.gd-out{margin:0;padding:10px 14px;border-radius:12px;border:1px solid var(--lp-line);background:color-mix(in srgb,var(--lp-accent) 9%,transparent);font-size:.92rem}
@media (prefers-reduced-motion:reduce){.gd-flake,.gd-melt{animation:none!important}}

/* ===== schemat warstw atmosfery i chmura ===== */
.ga-band{cursor:pointer;transition:opacity .25s}.ga-band rect{transition:filter .25s}.ga-band:hover rect{filter:brightness(1.25)}
.ga-name{font:700 13px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:rgba(0,0,0,.45);stroke-width:3px;letter-spacing:.05em;text-transform:uppercase}
.has-sel .ga-band:not(.on){opacity:.55}.ga-band.on rect{filter:brightness(1.3) drop-shadow(0 0 8px rgba(255,255,255,.4))}.ga-band.on .ga-name{fill:#ffd36a}
.ga-band:focus-visible{outline:none}.ga-band:focus-visible rect{stroke:#ffcf4a;stroke-width:3}
.ga-dot{fill:#d8ecff;opacity:.7;animation:ga-tw 4s ease-in-out infinite}@keyframes ga-tw{50%{opacity:.15}}
.ga-tag{font:600 11px system-ui,sans-serif;fill:#e8f4ff;paint-order:stroke;stroke:rgba(0,0,0,.6);stroke-width:3px}.ga-km{font:600 11px ui-monospace,monospace;fill:#9fb8d6}.ga-cap{font:700 11px system-ui,sans-serif;fill:#cfe0ff}
.ga-karman{stroke:#ff6d73;stroke-width:1.5;stroke-dasharray:6 5}.ga-temp{fill:none;stroke:#ff9d3a;stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(255,157,58,.7))}
.ga-aurora path{fill:none;stroke:#5dffb0;stroke-width:7;stroke-linecap:round;opacity:.55;filter:blur(2.5px);animation:ga-aur 5s ease-in-out infinite}.ga-aurora path+path{stroke:#b07dff;animation-delay:-2.2s}@keyframes ga-aur{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:.75;transform:translateY(-8px)}}
.ga-meteor line{stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-dasharray:60;stroke-dashoffset:60;animation:ga-met 5s linear infinite}.ga-meteor line+line{animation-delay:-2.4s}@keyframes ga-met{0%{stroke-dashoffset:60;opacity:1}30%{stroke-dashoffset:0;opacity:1}40%,100%{stroke-dashoffset:-60;opacity:0}}
.ga-escape{fill:#9ad8ff;animation:ga-esc 6s linear infinite}@keyframes ga-esc{from{transform:translate(0,30px);opacity:0}15%{opacity:1}to{transform:translate(30px,-60px);opacity:0}}
.ga-plane{animation:ga-fly 14s linear infinite}@keyframes ga-fly{from{transform:translateX(-30px)}to{transform:translateX(480px)}}
.ga-cloud{animation:ga-drift 22s ease-in-out infinite alternate}.ga-cloud2{animation-duration:30s}@keyframes ga-drift{to{transform:translateX(120px)}}
.ga-balloon{animation:ga-bob 6s ease-in-out infinite}@keyframes ga-bob{50%{transform:translateY(-6px)}}.ga-iss{animation:ga-bob 9s ease-in-out infinite}
.ga-tabs{display:flex;flex-wrap:wrap;gap:8px}.ga-info{padding:16px 18px;border-radius:14px;border:1px solid var(--lp-line);background:var(--lp-card-2)}
.ga-info h4{margin:0 0 10px;font-size:1.15rem}.ga-info dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 12px}.ga-info dl div{padding:9px 11px;border-radius:10px;background:rgba(255,255,255,.05)}.ga-info dt{font:600 .68rem ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;opacity:.65}.ga-info dd{margin:3px 0 0;font-weight:600}.ga-info ul{margin:0;padding-left:20px;display:grid;gap:6px}
@media(prefers-reduced-motion:reduce){.ga-plane,.ga-cloud,.ga-balloon,.ga-iss,.ga-escape,.ga-meteor line,.ga-aurora path,.ga-dot{animation:none}}

.gv-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}.gv-row .gv-cell{min-width:0}.gv-row .gv-wrap{margin:0}

.gd-tabs{margin-top:2px}.gd-tabs .is-on{border-color:var(--lp-accent,#4ea6ff);background:color-mix(in srgb,var(--lp-accent,#4ea6ff) 18%,transparent)}
.gb-heat{animation:gb-heat 2.4s ease-in-out infinite}@keyframes gb-heat{0%{transform:translateY(0);opacity:.2}50%{opacity:.85}100%{transform:translateY(-26px);opacity:0}}
.gd-ctl small{opacity:.7}
@media (prefers-reduced-motion:reduce){.gb-heat{animation:none}}
.gcv-drop{animation:gcv-drop .9s linear infinite}@keyframes gcv-drop{from{transform:translateY(-6px);opacity:1}to{transform:translateY(34px);opacity:0}}
.gcv-bolt{animation:gcv-bolt 1.6s infinite}@keyframes gcv-bolt{0%,60%,100%{opacity:0}65%,72%{opacity:1}}
@media (prefers-reduced-motion:reduce){.gcv-drop,.gcv-bolt{animation:none}}
.gso .gd-svg{max-width:620px;margin:0 auto}

/* ocean: zdjęcia stref głębokości */
.gdo-main{display:grid;grid-template-columns:1fr 130px;gap:10px;align-items:stretch}
.gdo-stage{position:relative;aspect-ratio:16/11;border-radius:18px;overflow:hidden;background:#06142c;transition:background .5s;border:1px solid var(--lp-line)}
.gdo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;transform:scale(1.04);animation:gdoKen 18s ease-in-out infinite alternate}.gdo-img.is-contain{object-fit:contain;padding:10px}.gdo-img.on{opacity:1}
@keyframes gdoKen{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
.gdo-rays{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 70% at 50% -10%,rgba(255,255,255,.22),transparent 60%),linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55))}
.gdo-hud{position:absolute;left:12px;top:10px;display:grid;gap:2px;padding:7px 11px;border-radius:12px;background:rgba(3,10,24,.62);backdrop-filter:blur(6px);color:#fff;font-size:.9rem}.gdo-hud b{font-size:1rem}.gdo-hud span{color:#9fd0f5;font-variant-numeric:tabular-nums}
.gdo-cap{position:absolute;left:12px;right:12px;bottom:10px;color:#fff;font-size:.9rem;text-shadow:0 1px 6px rgba(0,0,0,.85)}.gdo-cap small{display:block;opacity:.7;font-size:.72rem;margin-top:2px}
.gdo-b{position:absolute;bottom:-12px;width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);animation:gdoUp 9s linear infinite;pointer-events:none}
@keyframes gdoUp{from{transform:translateY(0);opacity:.7}to{transform:translateY(-330px);opacity:0}}
.gdo-gauge{width:100%;height:100%;max-height:420px}
@media(max-width:560px){.gdo-main{grid-template-columns:1fr}.gdo-gauge{display:none}}
@media(prefers-reduced-motion:reduce){.gdo-img,.gdo-b{animation:none}}

/* globus 3D */
.gg{display:grid;gap:10px}.gg-wrap{position:relative;width:min(100%,560px);margin:0 auto;aspect-ratio:1/1;border-radius:22px;background:radial-gradient(60% 60% at 50% 50%,#10294f 0%,#050b18 70%),#050b18;border:1px solid var(--lp-line);overflow:hidden}
.gg-wrap::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1.2px 1.2px at 12% 18%,#fff8,transparent),radial-gradient(1px 1px at 82% 30%,#fff7,transparent),radial-gradient(1.3px 1.3px at 30% 84%,#fff6,transparent),radial-gradient(1px 1px at 74% 78%,#fff7,transparent),radial-gradient(1px 1px at 55% 10%,#fff6,transparent)}
.gg-cv{position:relative;width:100%;height:100%;display:block;cursor:grab;touch-action:none}.gg-hint{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:4px 12px;border-radius:99px;background:rgba(3,10,24,.6);color:#bcd4f0;font-size:.78rem;pointer-events:none}
.gg-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.gg-chips:empty{display:none}

/* rzeka w 3D (przechył + cieniowany teren) */
.grv-3d{perspective:1100px;margin-top:-64px}.grv-3d .gd-svg{transform:rotateX(22deg);transform-origin:50% 100%;box-shadow:0 30px 40px -18px rgba(0,0,0,.65);border-radius:18px}
@media(prefers-reduced-motion:reduce){.grv-3d .gd-svg{transform:none}}
/* jeziora: zdjęcia + wstawka przekroju */
.glk-stage{position:relative;aspect-ratio:16/10;border-radius:18px;overflow:hidden;background:#06142c;border:1px solid var(--lp-line)}
.glk-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease;animation:gdoKen 20s ease-in-out infinite alternate}.glk-img.on{opacity:1}
.glk-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.6));pointer-events:none}
.glk-cap{position:absolute;left:12px;bottom:10px;right:42%;z-index:2;color:#fff;font-size:.9rem;text-shadow:0 1px 6px rgba(0,0,0,.85)}.glk-cap small{display:block;opacity:.7;font-size:.72rem;margin-top:2px}
.glk-inset{position:absolute;right:12px;bottom:12px;width:38%;z-index:2;border-radius:12px;border:1.5px solid rgba(255,255,255,.55);box-shadow:0 10px 24px rgba(0,0,0,.5)}
@media(max-width:560px){.glk-cap{right:12px;bottom:calc(38% * .5 + 22px)}.glk-inset{width:46%}}
