@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/instrument-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/instrument-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Literata';font-style:normal;font-weight:500 650;font-display:swap;src:url(fonts/literata-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Literata';font-style:normal;font-weight:500 650;font-display:swap;src:url(fonts/literata-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Układ: tematy pionowo; w każdym temacie slajdy poziomo (scroll-snap), pasek postępu i strzałki; slajd = tekst po lewej, ekran po prawej. */
:root{
  --bg:#f4f5f8; --paper:#ffffff; --ink:#18202e; --ink2:#4a5263; --ink3:#7b8292; --line:#dde1e8;
  --navy:#1E4FA3; --coral:#C0186B; --tint:#E8EEF8; --coraltint:#FCE8F2; --grad:linear-gradient(100deg,#1E4FA3,#DD1C7B);
  --display:"Literata",Georgia,serif; --body:"Instrument Sans",-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#11141a; --paper:#191e26; --ink:#e9ecf1; --ink2:#b4bac5; --ink3:#868d99; --line:#2b313b;
  --navy:#8FB0EE; --coral:#F2459A; --tint:#1E2633; --coraltint:#2D1B26; --grad:linear-gradient(100deg,#1E4FA3,#DD1C7B); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#11141a; --paper:#191e26; --ink:#e9ecf1; --ink2:#b4bac5; --ink3:#868d99; --line:#2b313b;
  --navy:#8FB0EE; --coral:#F2459A; --tint:#1E2633; --coraltint:#2D1B26; --grad:linear-gradient(100deg,#1E4FA3,#DD1C7B); color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.w{max-width:1120px;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:650;text-wrap:balance;margin:0;letter-spacing:-.01em}
p{margin:0}
.note{background:var(--coraltint);color:var(--ink2);font-size:14px;border-radius:10px;padding:10px 14px;margin:16px auto 0;max-width:1120px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .w{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:12px}
/* Zestaw jak AppLockup w mobile/lib/core/brand.dart: znak 1,05× wysokości pisma, odstęp 0,24×, jedna barwa. */
.logo{--fs:26px;display:inline-flex;align-items:center;gap:calc(var(--fs)*.24);color:var(--ink);font-family:-apple-system,"SF Pro Display",Roboto,"Segoe UI",sans-serif;font-weight:700;font-size:var(--fs);letter-spacing:calc(var(--fs)*-.015);line-height:1.15}
.logo svg{width:calc(var(--fs)*1.25);height:calc(var(--fs)*1.25);flex:none}
:root{--mark-a:#1E4FA3;--mark-b:#DD1C7B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--mark-a:#4A7BD8;--mark-b:#F2459A}}
:root[data-theme="dark"]{--mark-a:#4A7BD8;--mark-b:#F2459A}
.btn{display:inline-block;font:600 15px var(--body);border-radius:999px;padding:11px 20px;text-decoration:none;border:1.5px solid var(--navy);background:var(--navy);color:var(--paper)}
.btn.ghost{background:transparent;color:var(--navy)}
.btn:focus-visible,.arrow:focus-visible{outline:2px solid var(--coral);outline-offset:2px}

/* temat */
.topic{padding-block:40px 48px;border-bottom:1px solid var(--line)}
.topic-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--coral);font-weight:600}
.nav{display:flex;align-items:center;gap:14px}
.progress{display:flex;gap:6px}
.progress i{display:block;width:28px;height:4px;border-radius:2px;background:var(--line)}
.progress i.on{background:var(--navy)}
.count{font-size:13px;color:var(--ink3);font-variant-numeric:tabular-nums;min-width:3ch}
.arrow{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);color:var(--navy);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center}
.arrow:disabled{opacity:.35;cursor:default}
/* overflow-y:hidden: bez tego przechylony telefon robi z paska przewijak pionowy i kółko myszy nie przewija strony. */
.track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;overflow-y:hidden;padding-block:28px;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;gap:24px}
.track::-webkit-scrollbar{display:none}
@media(prefers-reduced-motion:reduce){.track{scroll-behavior:auto}}
.slide{scroll-snap-align:start;display:grid;gap:28px;align-items:center;min-width:0}
@media(min-width:880px){.slide{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px}}
.txt{display:grid;gap:16px;min-width:0}
.slide h1,.slide h2{font-size:clamp(26px,3vw,38px);line-height:1.16}
.intro{padding-block:28px 12px}
.slide p:empty{display:none}
/* Zaślepka ekranu, którego jeszcze nie wyrenderowano: kształt telefonu, opis w środku. */
.ph{width:100%;max-width:290px;aspect-ratio:9/19.5;border:2px dashed var(--line);border-radius:48px;display:grid;align-content:center;gap:8px;padding:28px;text-align:center;color:var(--ink3);font-size:14px;transform:rotateY(-14deg) rotateX(5deg) rotateZ(2deg)}
.ph span{font-weight:600;color:var(--ink2);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.intro .slide h1{font-size:clamp(32px,4.4vw,54px);line-height:1.1}
.intro .txt p{font-size:clamp(16px,1.6vw,18px)}
.slide p{color:var(--ink2);font-size:clamp(17px,2vw,19px)}
.ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.reassure{margin:0;padding:0;list-style:none;display:grid;gap:4px;color:var(--ink2);font-size:15px}
.reassure li::before{content:"✓  ";color:var(--navy);font-weight:700}
.solo{justify-self:start;font-size:13px;font-weight:600;color:var(--navy);background:var(--tint);border-radius:999px;padding:3px 10px}
.shot{display:flex;justify-content:center;gap:12px}
.shot{perspective:1400px}
/* Kołysanie bez reakcji na kursor; align-self/align-items, żeby telefon nie rozciągał się do wysokości sąsiada (czarny pas pod ekranem). */
.float{transform-style:preserve-3d;animation:sway 7s ease-in-out infinite;width:100%;max-width:290px;display:flex;justify-content:center;align-items:flex-start;align-self:center}
.shot.two .float{max-width:190px}
.shot.two .float:last-child{margin-top:56px}
@keyframes sway{0%,100%{transform:rotateY(0) rotateX(0) translateY(0)}50%{transform:rotateY(-8deg) rotateX(3deg) translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.float{animation:none}}
.phone{position:relative;width:100%;max-width:290px;padding:11px;border-radius:52px;background:linear-gradient(145deg,#2b2f36,#0d0f13 55%,#23262c);box-shadow:inset 0 0 0 1.5px #4a4f58,inset 0 0 0 3px #111,-22px 40px 70px -30px rgba(8,14,26,.6);transform:rotateY(-14deg) rotateX(5deg) rotateZ(2deg)}
.shot.two .phone{max-width:190px;padding:8px;border-radius:38px}

.phone::before{content:"";position:absolute;left:-3px;top:22%;width:3px;height:9%;border-radius:2px 0 0 2px;background:#3a3e46}
.phone::after{content:"";position:absolute;right:-3px;top:28%;width:3px;height:14%;border-radius:0 2px 2px 0;background:#3a3e46}
.screen{position:relative;border-radius:42px;overflow:hidden;background:#fff}
.shot.two .screen{border-radius:31px}
.screen::after{content:"";position:absolute;top:1.3%;left:50%;transform:translateX(-50%);width:30%;height:3.4%;border-radius:999px;background:#000}
.shot img{width:100%;display:block}
.todo{transform:rotateY(-14deg) rotateX(5deg) rotateZ(2deg)}
.stage{position:relative}
.stage .arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;font-size:24px;box-shadow:0 6px 18px -8px rgba(8,14,26,.4)}
.stage .prev{left:-8px}
.stage .next{right:-8px}
@media(min-width:1200px){.stage .prev{left:-56px}.stage .next{right:-56px}}
.arrow:disabled{visibility:hidden}
.shot.two img{max-width:180px}
/* Legenda obok ekranu: poza zrzutem, mini-kafelki w barwach z aplikacji. */
@media(min-width:880px){.slide.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}}
.hero .shot{align-items:center;gap:28px}
.legend{margin:0;padding:0;list-style:none;display:grid;gap:14px;min-width:150px;max-width:190px}
.tl{position:relative;width:46px;height:48px;display:block}
.legend .tl img{position:absolute;left:-8px;top:-8px;width:61.6px;height:64px;max-width:none}
.legend{gap:12px!important;max-width:220px!important}
.legend li{display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;font-size:14px;line-height:1.3;color:var(--ink2)}
.legend b{display:block;color:var(--ink);font-weight:600;font-size:14px}
.sw{width:30px;height:30px;border-radius:7px;position:relative;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.sw.dad{background:#1d8a80}
.sw.mom{background:#e2338a}
.sw.swap{background:linear-gradient(135deg,#1d8a80 50%,#e2338a 50%)}
.sw.req{background:repeating-linear-gradient(135deg,#e2338a 0 4px,#c9a3b6 4px 8px)}
.sw.act{background:#e2338a}
.sw.act::after{content:"";position:absolute;left:50%;bottom:4px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px #1d8a80}
.sw.fest{background:#1d8a80}
.sw.fest::after{content:"✦";position:absolute;right:3px;top:1px;color:#fff;font-size:12px;line-height:1;text-shadow:0 0 2px rgba(0,0,0,.35)}
.sw.kids{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line);display:flex;align-items:center;justify-content:center;gap:3px}
.sw.kids i{width:9px;height:9px;border-radius:50%;background:#c0396f}
.sw.kids i+i{background:#245c9e}
@media(max-width:879px){.hero .shot{flex-direction:column}.legend{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;width:100%}}
.todo{width:100%;max-width:280px;aspect-ratio:9/17;border:2px dashed var(--line);border-radius:28px;display:grid;place-items:center;text-align:center;color:var(--ink3);font-size:14px;padding:20px}
.kid{background:var(--tint);border-radius:12px;padding:16px 18px}
.kid b{display:block;font-family:var(--display);font-size:19px;margin-bottom:4px}
.quiet{padding-block:40px;border-bottom:1px solid var(--line);display:grid;gap:10px;max-width:720px}
.quiet h2{font-size:24px}
.quiet p{color:var(--ink2)}
.end{padding-block:64px;text-align:center;display:grid;gap:16px;justify-items:center}
.end h2{font-size:clamp(28px,4.4vw,40px);max-width:760px}
footer{border-top:1px solid var(--line);padding-block:24px;color:var(--ink3);font-size:14px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}

/* ── Pierwszy slajd: dwa telefony z ruchem (poz. 1026, przeniesione z makiety hero) ──
   Wszystko z prefiksem ha-, żeby nie zderzyć się z .phone/.screen/.shot reszty landingu
   (tamte są przechylone i owijane skryptem; te stoją prosto i nie mają .shot > img).
   Ekrany to prawdziwe rendery aplikacji (rodzina pokazowa, dane zmyślone). Współrzędne
   warstw są w punktach ekranu iPhone'a 393 × 852, zapisane jako procenty. */
@media(min-width:880px){.slide.ha-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}}
.ha-duo{display:flex;justify-content:center;align-items:flex-start;gap:clamp(12px,3vw,28px);width:100%;min-width:0}
.ha-dev{flex:0 1 250px;min-width:0;margin:0;display:grid;gap:10px;justify-items:center}
.ha-dev + .ha-dev{margin-top:clamp(20px,5vw,48px)}
.ha-phone{position:relative;width:100%;padding:3%;border-radius:15% / 7%;background:linear-gradient(145deg,#2b2f36,#0d0f13 55%,#23262c);
  box-shadow:inset 0 0 0 1.5px #4a4f58,inset 0 0 0 3px #111,-16px 30px 56px -28px rgba(8,14,26,.55)}
.ha-screen{position:relative;width:100%;aspect-ratio:393/852;border-radius:12.5% / 5.8%;overflow:hidden;background:#F8F7FB;isolation:isolate}
.ha-screen::after{content:"";position:absolute;z-index:9;top:1.3%;left:50%;transform:translateX(-50%);width:30%;height:3.4%;border-radius:999px;background:#000}
.ha-screen img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}
.ha-layer{position:absolute;left:0;width:100%}
.ha-base{position:absolute;inset:0}
.ha-base img{position:absolute;inset:0;height:100%}
.ha-win{overflow:hidden;background:#F8F7FB}
.ha-fab{position:absolute;left:68.575%;width:27.354%;height:5.282%;border-radius:999px;overflow:hidden;
  box-shadow:0 3px 8px -2px rgba(20,60,140,.35),0 1px 3px rgba(20,60,140,.25)}
.ha-fab img{height:100%}
/* Pochylenie i kołysanie jak przy telefonach w dalszych tematach (.phone/.float),
   żeby pierwszy ekran nie był płaski; drugi telefon kołysze się z przesunięciem. */
.ha-duo{perspective:1400px}
.ha-phone{transform:rotateY(-14deg) rotateX(5deg) rotateZ(2deg);animation:ha-sway 7s ease-in-out infinite;
  box-shadow:inset 0 0 0 1.5px #4a4f58,inset 0 0 0 3px #111,-22px 40px 70px -30px rgba(8,14,26,.6)}
.ha-dev-j .ha-phone{animation-delay:-2.3s}
.ha-phone::before{content:"";position:absolute;left:-3px;top:22%;width:3px;height:9%;border-radius:2px 0 0 2px;background:#3a3e46}
.ha-phone::after{content:"";position:absolute;right:-3px;top:28%;width:3px;height:14%;border-radius:0 2px 2px 0;background:#3a3e46}
@keyframes ha-sway{
  0%,100%{transform:rotateY(-14deg) rotateX(5deg) rotateZ(2deg) translateY(0)}
  50%{transform:rotateY(-22deg) rotateX(8deg) rotateZ(2deg) translateY(-8px)}
}
@media (prefers-reduced-motion:reduce){.ha-phone{animation:none}}
.ha-dev figcaption{font-size:13px;line-height:1.35;color:var(--ink3);text-align:center;transition:color .4s}
.ha-dev figcaption b{display:block;font-weight:600;color:var(--ink2)}

/* ── Wiersz 1, slajd 3 (poz. 1047): dwa telefony jak .shot.two ──
   Lewy (tata) statyczny: miesiąc z jego prośbą o zamianę. Prawy (mama) — ten sam
   układ .float/.phone/.screen, złożony ręcznie, bo niesie warstwy: 62 kalendarz
   z „1” przy Akceptacjach → dotknięcie → 63 lista „Do mnie” (krótko, przenikanie
   jak zmiana zakładki) → dotknięcie wniosku → 64 wniosek z czterema przyciskami
   (wjazd z prawej, jak nowy ekran), pauza, powrót. Kadry z aplikacji (rodzina
   pokazowa „zamiana”). Miejsca dotknięć z GEOM testu wiersz1_1047 (ekran
   393 × 852 pt): środek znacznika Akceptacji 347,3 × 776,2; nagłówek karty 206,5 × 134,5. */
.ws-screen .ws-k2,.ws-screen .ws-k3{position:absolute;inset:0;height:100%}
.ws-k2{opacity:0;animation:ws-k2 12s infinite}
.ws-k3{transform:translateX(100%);box-shadow:-10px 0 24px rgba(8,14,26,.18);animation:ws-k3 12s infinite}
@keyframes ws-k2{
  0%,22%{opacity:0;transform:translateX(0)}
  26%,38%{opacity:1;transform:translateX(0);animation-timing-function:cubic-bezier(.4,0,.2,1)}
  42%,93%{opacity:1;transform:translateX(-25%)}
  98%,100%{opacity:0;transform:translateX(-25%)}
}
@keyframes ws-k3{
  0%,38%{opacity:1;transform:translateX(100%);animation-timing-function:cubic-bezier(.4,0,.2,1)}
  42%,93%{opacity:1;transform:translateX(0)}
  98%,100%{opacity:0;transform:translateX(0)}
}
/* Dotknięcie palca: wyraźne kółko z obwódką i fala rozchodząca się od niego. */
.ws-tap{position:absolute;z-index:5;width:22%;aspect-ratio:1;border-radius:50%;opacity:0;pointer-events:none;
  background:rgba(255,255,255,.45);box-shadow:0 0 0 3px rgba(20,32,56,.85),0 0 0 7px rgba(255,255,255,.75),0 4px 14px rgba(8,14,26,.45);
  transform:translate(-50%,-50%) scale(.5)}
.ws-tap::after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid rgba(20,32,56,.7);opacity:0;animation:inherit;animation-name:ws-fala}
.ws-t1{left:88.37%;top:91.10%;animation:ws-t1 12s infinite}
.ws-t2{left:52.54%;top:15.79%;animation:ws-t2 12s infinite}
.ws-t1::after{animation-name:ws-fala1}
.ws-t2::after{animation-name:ws-fala2}
@keyframes ws-t1{
  0%,12%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  14.5%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  19%{opacity:1;transform:translate(-50%,-50%) scale(.8)}
  21%{opacity:1;transform:translate(-50%,-50%) scale(.85)}
  25%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.1)}
}
@keyframes ws-t2{
  0%,28%{opacity:0;transform:translate(-50%,-50%) scale(.5)}
  30.5%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  35%{opacity:1;transform:translate(-50%,-50%) scale(.8)}
  37%{opacity:1;transform:translate(-50%,-50%) scale(.85)}
  41%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.1)}
}
@keyframes ws-fala1{0%,18.5%{opacity:0;transform:scale(1)}19%{opacity:.9;transform:scale(1)}24%,100%{opacity:0;transform:scale(2.2)}}
@keyframes ws-fala2{0%,34.5%{opacity:0;transform:scale(1)}35%{opacity:.9;transform:scale(1)}40%,100%{opacity:0;transform:scale(2.2)}}
/* Bez ruchu: sam wniosek z czterema przyciskami. */
@media (prefers-reduced-motion:reduce){
  .ws-k2,.ws-k3,.ws-tap{animation:none}
  .ws-k3{transform:none;opacity:1}
  .ws-tap{display:none}
}


/* ── FILM (poz. 1053): kilka kadrów z aplikacji w jednym telefonie ──
   <div class="screen film" data-dur="sekundy"> z obrazami <img data-t="s">
   (kadr wchodzi w chwili t) i kółkami palca <i class="tap" data-t data-x data-y>
   (punkty ekranu 393 × 852 z linii GEOM wytwórni). Ruch nadaje skrypt
   (Web Animations), więc zatrzymuje go i wznawia ten sam mechanizm slajdów.
   Bez ruchu: ostatni kadr. */
.film{position:relative}
.film img+img{position:absolute;inset:0;height:100%;opacity:0}
.film.static img+img{opacity:0}
.film.static img:last-of-type{opacity:1}
.film .tap{position:absolute;z-index:5;width:22%;aspect-ratio:1;border-radius:50%;opacity:0;pointer-events:none;
  background:rgba(255,255,255,.45);box-shadow:0 0 0 3px rgba(20,32,56,.85),0 0 0 7px rgba(255,255,255,.75),0 4px 14px rgba(8,14,26,.45);
  transform:translate(-50%,-50%) scale(.5)}
.film .tap b{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(20,32,56,.7);opacity:0}
.film.static .tap{display:none}

/* Rodzic: ekran główny (miesiąc), pod siatką wycinek dzisiejszej doby y 450–637. */
.ha-r-win{top:52.817%;height:21.948%}
.ha-r-fab{top:68.075%}
/* Doba w pasie ma 897 pt; przewijamy o 520 pt (start od 7:00 — przesunięcie 259 pt — do ~14:00–19:00 i z powrotem). */
/* Przesuwamy pojemnik o znanej wysokości, nie sam obrazek: Safari liczy procent
   z transformacji raz, przy starcie animacji — gdy obraz jeszcze się nie wczytał,
   ma wysokość 0 i pas stał w miejscu (iPhone, 29.10). */
.ha-r-pas{aspect-ratio:648/1480;animation:ha-r-scroll 19s infinite}
@keyframes ha-r-scroll{
  0%,5.3%   {transform:translateY(-28.88%);animation-timing-function:cubic-bezier(.45,0,.35,1)}
  28.9%,34.2%{transform:translateY(-57.97%);animation-timing-function:cubic-bezier(.45,0,.35,1)}
  52.6%,100%{transform:translateY(-28.88%)}
}

/* Dziecko: widok dnia; strona pagera y 201–695 (od poz. 1013 pas „DZIŚ” stoi 10 pt wyżej) (pas dni i „DZIŚ” zostają w miejscu). */
.ha-j-win{top:23.592%;height:57.981%}
.ha-j-fab{top:74.413%}
.ha-j-track{display:flex;width:300%;animation:ha-j-slide 19s infinite}
.ha-j-track img{width:33.3333%;flex:none}
@keyframes ha-j-slide{
  0%,57.9%   {transform:translateX(0);animation-timing-function:cubic-bezier(.4,0,.2,1)}
  61.1%,68.4%{transform:translateX(-33.3333%);animation-timing-function:cubic-bezier(.4,0,.2,1)}
  71.6%,80%  {transform:translateX(-66.6667%);animation-timing-function:cubic-bezier(.45,0,.25,1)}
  84.2%,100% {transform:translateX(0)}
}
/* Górny wiersz z datą, pas dni (podświetlenie dnia) i „DZIŚ” zmieniają się,
   gdy strona przechodzi przez połowę ruchu — jak w aplikacji. */
.ha-j0{animation:ha-j0 19s infinite}
.ha-j1{animation:ha-j1 19s infinite;opacity:0}
.ha-j2{animation:ha-j2 19s infinite;opacity:0}
@keyframes ha-j0{0%,59%{opacity:1}60.2%,81.6%{opacity:0}82.8%,100%{opacity:1}}
@keyframes ha-j1{0%,59%{opacity:0}60.2%,69.5%{opacity:1}70.7%,100%{opacity:0}}
@keyframes ha-j2{0%,69.5%{opacity:0}70.7%,81.6%{opacity:1}82.8%,100%{opacity:0}}
/* Podpis telefonu, który się właśnie rusza, jest wyraźniejszy. */
.ha-dev-r figcaption{animation:ha-cap-r 19s infinite}
.ha-dev-j figcaption{animation:ha-cap-j 19s infinite}
@keyframes ha-cap-r{0%,54%{color:var(--ink)}56%,100%{color:var(--ink3)}}
@keyframes ha-cap-j{0%,54%{color:var(--ink3)}56%,88%{color:var(--ink)}90%,100%{color:var(--ink3)}}

/* Bez ruchu: rodzic — miesiąc i doba od 7:00 (widać przekazanie o 8:00); dziecko — dziś. */
@media (prefers-reduced-motion:reduce){
  .ha-r-pas,.ha-j-track,.ha-j0,.ha-j1,.ha-j2,.ha-dev-r figcaption,.ha-dev-j figcaption{animation:none}
  .ha-r-pas{transform:translateY(-28.88%)}
  .ha-j0{opacity:1}.ha-j1,.ha-j2{opacity:0}
}

/* --- dodatki przy przeniesieniu (1120): nawigacja nagłówka, linki stopki, ramka zamiast prywatnego zrzutu, lead sekcji końcowej --- */
.top .w{flex-wrap:wrap}
.topnav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.toplink{color:var(--ink2);text-decoration:none;font-weight:500;font-size:15px}
.toplink:hover{color:var(--navy);text-decoration:underline}
.toplink:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
.footlinks{display:flex;gap:6px 16px;flex-wrap:wrap}
footer a{color:inherit}
.end .lead{max-width:560px;margin:0;color:var(--ink2)}
.screen.wait{aspect-ratio:600/1300;display:grid;place-items:center;text-align:center;padding:24px;background:var(--line);color:var(--ink2);font-size:15px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .screen.wait{background:#2b313b}}

/* Barwy marki: przyciski główne w gradiencie znaku 116 (decyzja właściciela 8.11). */
.btn:not(.ghost){background:var(--grad);border-color:transparent;color:#fff}
