/* Fonty hostowane lokalnie (bez CDN). Polskie znaki są w podzbiorze latin-ext. */
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-400-normal.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:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-latin-ext-400-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-latin-500-normal.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:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-latin-ext-500-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-latin-700-normal.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:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-latin-ext-700-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Lora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/lora-latin-600-normal.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:Lora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/lora-latin-ext-600-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Tokeny z design-system/styles.css (jasny i ciemny motyw) */
:root{
  --deep:#1E4A35; --deep-2:#173B2A; --green:#2B6347; --green-ink:#2B6347; --cream:#FBF5E8; --ink:#1D2420; --muted:#4B5650;
  --yellow:#FFC857; --yellow-ink:#1D2420; --surface:#FFFDF8; --surface-2:#F6EEDD; --line:#E6DCC8; --mint:#DCEBDD; --on-mint:#12392A;
  --red:#C0262D; --red-soft:#FBE3E4; --on-red-soft:#7A1117; --amber-soft:#FFF1CC; --on-amber-soft:#5C3D00;
  --hero-ink:#FBF5E8; --hero-muted:#DCE8DF; --frame:#1D2420;
  --shadow:0 18px 50px rgb(27 31 39 / .14), 0 3px 10px rgb(27 31 39 / .07);
  --shadow-sm:0 6px 18px rgb(27 31 39 / .09);
  --ease:cubic-bezier(.2,0,0,1); --ease-emph:cubic-bezier(.3,0,0,1); --ease-spring:cubic-bezier(.34,1.4,.5,1);
  --r-md:16px; --r-lg:24px; --r-xl:32px;
  --font-display:Lora,Georgia,"Times New Roman",serif;
  --font-body:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:72rem;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --deep:#12271C; --deep-2:#0C1A13; --green:#8FD0AB; --green-ink:#8FD0AB; --cream:#0F1411; --ink:#E6EBE7; --muted:#B3BDB5;
    --surface:#161C18; --surface-2:#1A211C; --line:#3A453D; --mint:#235F42; --on-mint:#D6F0DF;
    --red:#FF9EA2; --red-soft:#4A1418; --on-red-soft:#FFDAD9; --amber-soft:#3B2C06; --on-amber-soft:#FFEBB8;
    --hero-ink:#F1EDE2; --hero-muted:#C9D6CD; --frame:#050806;
    --shadow:0 18px 50px rgb(0 0 0 / .45), 0 3px 10px rgb(0 0 0 / .3);
    --shadow-sm:0 6px 18px rgb(0 0 0 / .35);
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1rem}
button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--deep);color:var(--ink);font-family:var(--font-body);font-size:1.1875rem;line-height:1.6;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.12;margin:0;letter-spacing:-.01em;text-wrap:balance}
p{margin:0}
a{color:inherit}
.wrap{width:min(100% - 2.5rem, var(--wrap));margin-inline:auto}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.i{width:1.5em;height:1.5em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:10px}
.light-bg :focus-visible{outline-color:var(--green)}
.skip{position:absolute;left:1rem;top:-10rem;z-index:50;background:var(--yellow);color:var(--yellow-ink);font-weight:700;padding:.8rem 1.2rem;border-radius:12px;text-decoration:none}
.skip:focus{top:1rem}

/* Pasek postępu przewijania (tylko gdy przeglądarka zna animacje sterowane przewijaniem) */
.progress{display:none}
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion: no-preference){
    :root:not(.calm) .progress{display:block;position:fixed;inset:0 0 auto 0;height:4px;z-index:40;background:var(--yellow);transform-origin:0 50%;transform:scaleX(0);animation:grow linear both;animation-timeline:scroll(root)}
  }
}
@keyframes grow{to{transform:scaleX(1)}}

/* Przyciski */
.btn{--bg:var(--yellow);--fg:var(--yellow-ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.5rem;padding:.75rem 1.5rem;border-radius:999px;border:2px solid transparent;background:var(--bg);color:var(--fg);font:700 1.125rem/1.2 var(--font-body);text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .18s var(--ease),box-shadow .25s var(--ease),background-color .25s var(--ease)}
.btn .i{width:1.35em;height:1.35em;transition:transform .25s var(--ease-spring)}
@media (hover:hover){.btn:hover{box-shadow:0 8px 22px rgb(0 0 0 / .18)}}
@media (hover:hover){.btn:hover .arrow{transform:translateX(4px)}}
.btn:active{transform:scale(.97)}
.btn.solid{--bg:var(--green);--fg:#fff}
@media (prefers-color-scheme: dark){.btn.solid{--fg:#0B3320}}
.btn.ghost{--bg:transparent;--fg:currentColor;border-color:currentColor}
@media (hover:hover){.btn.ghost:hover{background:color-mix(in srgb, currentColor 10%, transparent)}}
.btn.shine::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgb(255 255 255 / .55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
@media (hover:hover){.btn.shine:hover::after{transform:translateX(120%)}}

/* Nagłówek strony */
.top{position:relative;z-index:3;color:var(--hero-ink)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.25rem}
.brand{display:inline-flex;align-items:center;min-height:3rem;gap:.6rem;font-size:clamp(1.5rem,1.2rem + 1.2vw,1.9rem);letter-spacing:-.02em;text-decoration:none;line-height:1.1;white-space:nowrap}
.brand b{font-weight:700}.brand span{font-weight:400}.tm{font-size:.38em;font-weight:400;vertical-align:super;margin-left:.15em;line-height:0}
.heart{width:1.1em;height:1.1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform-origin:50% 60%}
.top nav .short{display:none}
.top nav ul{display:flex;flex-wrap:wrap;gap:.25rem .5rem;list-style:none;margin:0;padding:0}
.top nav a{display:inline-flex;align-items:center;min-height:3rem;padding:.25rem .9rem;border-radius:999px;text-decoration:none;font-weight:500;color:var(--hero-muted);transition:background-color .2s,color .2s}
@media (hover:hover){.top nav a:hover{background:rgb(255 255 255 / .1);color:var(--hero-ink)}}

/* Hero */
.hero{position:relative;background:var(--deep);color:var(--hero-ink);isolation:isolate;overflow-x:clip;clip-path:inset(-40rem 0 0 0)}
main > section, footer{background:var(--cream)}
main > section.join{background:var(--surface-2)}
main > section.soon{background:var(--deep)}
.hero .blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.hero .b1{width:34rem;height:34rem;left:-10rem;top:-12rem;background:radial-gradient(circle,#2F7A52,transparent 70%)}
.hero .b2{width:30rem;height:30rem;right:-8rem;bottom:-12rem;background:radial-gradient(circle,#C9A23A,transparent 70%);opacity:.28}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,4vw,4rem);align-items:center;padding-block:clamp(2rem,5vw,4.5rem) clamp(3rem,7vw,6rem)}
.pill{display:inline-flex;align-items:center;gap:.55rem;background:var(--yellow);color:var(--yellow-ink);font-weight:700;font-size:1.25rem;padding:.45rem 1.25rem;border-radius:999px;position:relative;overflow:hidden}
.pill .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgb(43 99 71 / .5)}
@media (prefers-color-scheme: dark){.pill .dot{background:#1E4A35}}
.hero h1{font-size:clamp(2.4rem,1.6rem + 3.6vw,4.4rem);margin:1.25rem 0 1.1rem;line-height:1.06}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u svg{position:absolute;left:-2%;bottom:-.16em;width:104%;height:.32em;overflow:visible}
.hero h1 .u path{fill:none;stroke:var(--yellow);stroke-width:7;stroke-linecap:round}
.hero .lead{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem);color:var(--hero-muted);max-width:32em}
.hero .ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2rem}
.hero .note{margin-top:1.25rem;font-size:1.0625rem;color:var(--hero-muted)}

/* Telefon w hero */
.stage{position:relative;justify-self:center;width:min(100%,21rem);perspective:1200px}
.device{position:relative;border-radius:2.6rem;padding:.7rem;background:var(--frame);box-shadow:var(--shadow),inset 0 0 0 2px rgb(255 255 255 / .08);transition:background-color .5s var(--ease)}
.device::before{content:"";position:absolute;left:50%;top:1.2rem;width:3.6rem;height:.95rem;border-radius:999px;background:#1D2420;transform:translateX(-50%);z-index:4}
.screen{position:relative;aspect-ratio:1/2.08;border-radius:2rem;overflow:hidden;background:#F7F3E9}
.screen img{position:absolute;left:0;right:0;top:1.75rem;width:100%;height:calc(100% - 1.75rem);object-fit:cover;object-position:top}
@media (prefers-color-scheme: dark){.screen img{filter:brightness(.93)}}
.hero .device{transform-style:preserve-3d;transition:transform .5s var(--ease)}
.chip{position:absolute;display:flex;align-items:center;gap:.6rem;max-width:15rem;padding:.7rem 1rem;border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:1rem;line-height:1.3;font-weight:500}
.chip .ic{display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:50%;flex:none;background:var(--mint);color:var(--on-mint)}
.chip .ic .i{width:1.2rem;height:1.2rem;stroke-width:2.4}
.chip small{display:block;color:var(--muted);font-size:.9rem;font-weight:400}
.chip.c1{left:-4.5rem;top:18%}
.chip.c2{right:-4rem;top:52%}
.chip.c3{left:-2.5rem;bottom:8%}
.chip.c3 .ic{background:var(--amber-soft);color:var(--on-amber-soft)}

/* Sekcje */
section{padding-block:clamp(3.5rem,8vw,6.5rem)}
.eyebrow{display:inline-block;font-weight:700;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green-ink);margin-bottom:.75rem}
.sec-h{font-size:clamp(2rem,1.5rem + 2.2vw,3.1rem);max-width:20em}
.sec-p{margin-top:1rem;font-size:clamp(1.1875rem,1.1rem + .3vw,1.3rem);color:var(--muted);max-width:36em}

/* Pokaz aplikacji */
.demo{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"phone tabs" "phone panels";column-gap:clamp(2rem,5vw,5rem);align-items:start;margin-top:2.75rem}
.demo .tabs{grid-area:tabs}
.demo-side{grid-area:panels}
.demo-phone{grid-area:phone;position:sticky;top:1.5rem;margin:0}
.who{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.9rem;font-weight:700;color:var(--green-ink);min-height:2rem}
.who .i{width:1.3em;height:1.3em}
.demo .device[data-who="family"]{background:var(--green)}
@media (prefers-color-scheme: dark){.demo .device[data-who="family"]{background:#235F42}}
.demo .screen img{opacity:0;transform:translateX(8%) scale(.98);transition:opacity .45s var(--ease),transform .55s var(--ease-emph);will-change:opacity,transform}
.demo .screen img.on{opacity:1;transform:none}
.demo .screen img.off{opacity:0;transform:translateX(-8%) scale(.98)}
.toast{position:absolute;left:.6rem;right:.6rem;top:2.3rem;z-index:3;display:flex;gap:.6rem;align-items:center;padding:.65rem .8rem;border-radius:16px;background:rgb(255 253 248 / .96);color:#1D2420;box-shadow:0 10px 30px rgb(0 0 0 / .25);font-size:.95rem;line-height:1.3;transform:translateY(-140%);opacity:0;transition:transform .55s var(--ease-spring),opacity .3s var(--ease)}
.toast.show{transform:none;opacity:1}
.toast .ic{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:10px;background:#1E4A35;color:#FBF5E8;flex:none}
.toast .ic .i{width:1.1rem;height:1.1rem}
.toast b{display:block;font-size:.85rem;color:#4B5650;font-weight:500}
.screen{touch-action:pan-y}
.hot{position:absolute;z-index:2;border:0;padding:0;background:transparent;cursor:pointer;border-radius:16px;display:none;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.hot.show{display:block}
.hot::after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:3px solid #FFC857;opacity:0}
.hot.round{border-radius:50%}
.dots{display:flex;justify-content:center;gap:.5rem;margin-top:.9rem}
.dots span{width:.6rem;height:.6rem;border-radius:999px;background:var(--line);transition:width .35s var(--ease-emph),background-color .35s}
.dots span.on{width:1.6rem;background:var(--green)}
.swipe{display:none;margin-top:.4rem;text-align:center;font-size:1rem;color:var(--muted)}
@media (pointer:coarse){.js .swipe{display:block}}
.phone-say{margin-top:1rem;min-height:3.2em;text-align:center;font-size:1.0625rem;color:var(--muted)}

.tabs{display:flex;flex-wrap:wrap;gap:.5rem;padding:.4rem;border-radius:22px;background:var(--surface-2);position:relative;isolation:isolate}
.tabs .ind{position:absolute;z-index:-1;left:0;top:0;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--green),var(--shadow-sm);transition:transform .45s var(--ease-emph),width .45s var(--ease-emph),height .45s var(--ease-emph);display:none}
.tab{flex:1 1 auto;min-height:3.5rem;padding:.6rem 1.1rem;border:0;border-radius:16px;background:transparent;color:var(--muted);font:700 1.125rem/1.2 var(--font-body);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:color .25s}
.tab .i{width:1.3em;height:1.3em}
.tab:active{transform:scale(.97)}
.tab[aria-selected="true"]{color:var(--green-ink)}
.no-ind .tab[aria-selected="true"],html:not(.js) .tab[aria-selected="true"]{background:var(--surface);box-shadow:inset 0 0 0 2px var(--green),var(--shadow-sm)}
.panel{margin-top:1.75rem;display:flex;flex-direction:column;align-items:flex-start}
.panel[hidden]{display:none}
.panel h3{font-size:clamp(1.65rem,1.4rem + 1vw,2.2rem)}
.panel p{margin-top:.8rem;color:var(--muted);max-width:32em}
.panel .act{display:none;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.js .panel .act{display:flex}
.panel .hint{margin-top:1rem;font-size:1.0625rem;color:var(--muted);display:none}
.js .panel .hint{display:block}
.panel .warn{display:flex;gap:.8rem;margin-top:1.5rem;padding:1rem 1.2rem;border-radius:var(--r-md);background:var(--amber-soft);color:var(--on-amber-soft);font-size:1.0625rem}
.panel .warn .i{color:inherit;margin-top:.15rem}
.panel-in{animation:panelIn .5s var(--ease-emph) both}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}}

/* Przycisk przytrzymania SOS */
.hold{--p:0;--bg:#C0262D;--fg:#fff;padding-left:1rem;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
@media (prefers-color-scheme: dark){.hold{--bg:#B3242A}}
.hold .ring{width:2.4rem;height:2.4rem;flex:none;transform:rotate(-90deg)}
.hold .ring circle{fill:none;stroke-width:4}
.hold .ring .bg{stroke:rgb(255 255 255 / .35)}
.hold .ring .fg{stroke:#fff;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p) * 100)}
.hold.done{--bg:#2B6347}

/* Karty „dla kogo” */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.25rem;margin-top:2.5rem}
.card{position:relative;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-lg);padding:1.75rem;transition:transform .35s var(--ease-emph),box-shadow .35s var(--ease),border-color .35s}
@media (hover:hover){.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}}
.card .badge{display:grid;place-items:center;width:3.6rem;height:3.6rem;border-radius:18px;background:var(--mint);color:var(--on-mint);margin-bottom:1.1rem;transition:transform .45s var(--ease-spring)}
@media (hover:hover){.card:hover .badge{transform:rotate(-8deg) scale(1.08)}}
.card h3{font-size:1.6rem;color:var(--green-ink)}
.card p{margin-top:.6rem;color:var(--muted)}

/* Jak dołącza rodzina */
.join{background:var(--surface-2)}
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:2.75rem;list-style:none;padding:0;counter-reset:s}
.steps::before{content:"";position:absolute;left:2rem;right:2rem;top:2rem;height:3px;border-radius:3px;background:var(--line)}
.steps::after{content:"";position:absolute;left:2rem;right:2rem;top:2rem;height:3px;border-radius:3px;background:var(--green);transform-origin:0 50%;transform:scaleX(1)}
.step{position:relative;counter-increment:s}
.step .num{position:relative;z-index:1;display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;background:var(--green);color:#fff;font:600 1.6rem/1 var(--font-display);box-shadow:0 0 0 8px var(--surface-2)}
@media (prefers-color-scheme: dark){.step .num{color:#0B3320}}
.step h3{margin-top:1.1rem;font-size:1.45rem}
.step p{margin-top:.5rem;color:var(--muted)}
.ways{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}
.ways span{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:999px;background:var(--surface);border:1.5px solid var(--line);font-size:1rem;font-weight:500}
.ways .i{width:1.15rem;height:1.15rem}

/* Filmy */
.reels-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.25rem}
.arrows{display:flex;gap:.6rem}
.arrows button{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:transform .2s var(--ease),border-color .2s,background-color .2s}
@media (hover:hover){.arrows button:hover{border-color:var(--green);transform:scale(1.06)}}
.arrows button:active{transform:scale(.95)}
.arrows button:disabled{opacity:.4;cursor:default;transform:none}
.track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(15rem,19rem);gap:1.25rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:0;padding:.5rem .25rem 1.5rem;margin:2rem -.25rem 0;list-style:none;scrollbar-width:thin}
.reel{scroll-snap-align:start;margin:0}
.vid{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#12271C;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-emph),box-shadow .35s}
@media (hover:hover){.reel:hover .vid{transform:translateY(-5px);box-shadow:var(--shadow)}}
.vid video{width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;background:#12271C}
.vid.wide video{aspect-ratio:16/9}
.play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:.6rem;padding:1.25rem;border:0;background:linear-gradient(to top,rgb(10 25 18 / .85),rgb(10 25 18 / .05) 55%);color:#fff;font:700 1.125rem/1.25 var(--font-body);text-align:center;cursor:pointer}
.play .pb{display:grid;place-items:center;width:4.5rem;height:4.5rem;border-radius:50%;background:#FFC857;color:#1D2420;box-shadow:0 10px 30px rgb(0 0 0 / .35);transition:transform .3s var(--ease-spring)}
.play .pb svg{width:1.8rem;height:1.8rem;fill:currentColor;margin-left:.2rem}
@media (hover:hover){.play:hover .pb{transform:scale(1.1)}}
.play .len{font-weight:500;font-size:1rem;opacity:.92}
.vid.playing .play{display:none}
.reel figcaption{margin-top:.9rem}
.reel h3{font-size:1.35rem}
details{margin-top:.6rem}
summary{display:inline-flex;align-items:center;gap:.4rem;min-height:3rem;cursor:pointer;font-weight:700;color:var(--green-ink);list-style:none;border-radius:10px}
summary::-webkit-details-marker{display:none}
summary::before{content:"";width:.55rem;height:.55rem;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(-45deg);transition:transform .25s var(--ease);margin-right:.35rem}
details[open] summary::before{transform:rotate(45deg)}
details p{color:var(--muted);font-size:1.0625rem;margin-top:.3rem}
.spot{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;margin-top:3.5rem}
.ai{margin-top:1.5rem;font-size:1.0625rem;color:var(--muted)}

/* Uczciwie */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;margin-top:2.5rem;list-style:none;padding:0}
.fact{display:flex;gap:1rem;align-items:flex-start;padding:1.4rem;border-radius:var(--r-lg);background:var(--surface);border:1.5px solid var(--line)}
.fact .i{color:var(--green-ink);margin-top:.15rem}
.fact b{display:block;font-size:1.2rem}
.fact span{display:block;margin-top:.3rem;color:var(--muted);font-size:1.0625rem}
.fact.alarm .i{color:var(--red)}

/* Wkrótce */
.soon{background:var(--deep);color:var(--hero-ink);position:relative;overflow:hidden;isolation:isolate;text-align:center}
.soon .blob{position:absolute;z-index:-1;width:40rem;height:40rem;left:50%;top:50%;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgb(255 200 87 / .22),transparent 65%)}
.soon h2{font-size:clamp(2.2rem,1.6rem + 3vw,3.8rem)}
.soon p{margin:1rem auto 0;color:var(--hero-muted);max-width:30em;font-size:1.3rem}
.soon .pill{color:var(--yellow-ink);font-size:1.5rem;padding:.6rem 1.6rem;margin-bottom:1.5rem}
.soon .btn{margin-top:2rem;max-width:100%;overflow-wrap:anywhere;text-align:center}
.soon .follow{margin-top:2.5rem;font-size:1.15rem}
.social{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;list-style:none;padding:0;margin:1rem 0 0}
.social a{display:inline-flex;align-items:center;gap:.55rem;min-height:3rem;padding:.6rem 1.25rem;border-radius:999px;border:2px solid rgb(255 255 255 / .35);color:var(--hero-ink);font-weight:700;font-size:1.0625rem;text-decoration:none;transition:background-color .2s var(--ease),border-color .2s var(--ease)}
.social a .i{width:1.4em;height:1.4em}
@media (hover:hover){.social a:hover{background:rgb(255 255 255 / .1);border-color:rgb(255 255 255 / .7)}}
.social a:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}

footer{padding-block:2.5rem 3rem;font-size:1.0625rem;color:var(--muted)}
footer .wrap{display:grid;gap:.8rem}
footer .brand{color:var(--ink);font-size:1.5rem}
footer .links{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center}
footer a{color:var(--green-ink);font-weight:700;display:inline-flex;align-items:center;min-height:3rem}
.motion-toggle{display:none;align-items:center;gap:.5rem;min-height:3rem;padding:.4rem 1rem;border-radius:999px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:500 1rem/1.2 var(--font-body);cursor:pointer}
.js .motion-toggle{display:inline-flex}
.js.os-calm .motion-toggle{display:none}

/* Układ na węższych ekranach */
@media (max-width: 60rem){
  .hero-grid{grid-template-columns:1fr}
  .stage{margin-top:1rem;width:min(78%,19rem)}
  .chip.c1{left:-3.5rem}.chip.c2{right:-3rem}.chip.c3{left:-2rem}
  .demo{grid-template-columns:minmax(0,15rem) minmax(0,1fr);column-gap:2rem}
  .spot{grid-template-columns:1fr}
}
@media (max-width: 44rem){
  .demo{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"tabs" "phone" "panels"}
  .demo-phone{position:static;justify-self:center;margin-top:1.5rem;width:min(100%,18rem,max(13rem,calc((100vh - 19.5rem) / 2.2)));width:min(100%,18rem,max(13rem,calc((100svh - 19.5rem) / 2.2)))}
}
@media (max-width: 44rem){
  .steps{grid-template-columns:1fr;gap:2rem}
  .steps::before,.steps::after{left:2rem;right:auto;top:2rem;bottom:2rem;width:3px;height:auto}
  .steps::after{transform-origin:50% 0}
  .step{display:grid;grid-template-columns:4rem 1fr;column-gap:1.25rem}
  .step .num{grid-row:span 3}
  .step h3{margin-top:.6rem}
  .chip{font-size:.95rem;max-width:12.5rem;padding:.55rem .8rem}
  .chip .ic{width:2rem;height:2rem}
  .chip.c1{left:-2.2rem}.chip.c2{right:-2.2rem}.chip.c3{left:-1.6rem}
  .top .wrap{padding-block:.75rem;row-gap:.25rem}
  .top nav{width:calc(100% + 1.8rem);margin-inline:-.9rem}
  .top nav ul{flex-wrap:nowrap;gap:0;overflow-x:auto;scrollbar-width:none}
  .top nav .long{display:none}.top nav .short{display:inline}
  .tabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
  .tabs .tab:last-child{grid-column:1 / -1}
  .tab{padding:.55rem .6rem;font-size:1.0625rem;text-align:center;line-height:1.15}
  .tab .i{width:1.2em;height:1.2em}
  .who{margin-bottom:.6rem}
  .demo-phone .phone-say{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;min-height:0}
  .swipe{font-size:1rem;line-height:1.35}
  .panel{margin-top:1rem}
  .panel h3{order:1}
  .panel .act{order:2;margin-top:1rem;width:100%}
  .panel .act .btn{flex:1 1 12rem}
  .panel .hint{order:3}
  .panel p:not(.hint):not(.warn){order:4}
  .panel .warn{order:5}
  .hero-grid{padding-top:1rem}
  .hero h1{margin-top:1rem}
}
@media (max-width: 26rem){
  .chip.c2{display:none}
  .hero .ctas .btn{width:100%}
}

@media (max-width: 60rem) and (orientation: landscape) and (max-height: 32rem){
  .hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr)}
  .stage{width:min(100%,12rem);margin-top:0}
  .chip{display:none}
  .demo{grid-template-columns:minmax(0,12rem) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"phone tabs" "phone panels";column-gap:2rem}
  .demo-phone{width:12rem;margin-top:0;justify-self:start}
}

/* Ruch: tylko gdy system pozwala i użytkownik go nie wyłączył */
@media (prefers-reduced-motion: no-preference){
  :root:not(.calm) .hero .b1{animation:drift1 22s ease-in-out infinite alternate}
  :root:not(.calm) .hero .b2{animation:drift2 26s ease-in-out infinite alternate}
  :root:not(.calm) .top .heart{animation:beat 1.6s var(--ease) .4s 2 both}
  :root:not(.calm) .top .brand:hover .heart{animation:beat 1.2s var(--ease) infinite}
  :root:not(.calm) .hero h1 .u path{stroke-dasharray:420;stroke-dashoffset:420;animation:draw 1.1s var(--ease-emph) .55s forwards}
  :root:not(.calm) .hero .rise{animation:rise .8s var(--ease-emph) both;animation-delay:calc(var(--d,0) * 110ms)}
  :root:not(.calm) .stage{animation:rise 1s var(--ease-emph) .25s both}
  :root:not(.calm) .stage .device{animation:float 7s ease-in-out 1.3s infinite}
  :root:not(.calm) .chip{animation:chipIn .7s var(--ease-spring) both,float 6s ease-in-out infinite;animation-delay:calc(.9s + var(--d,0) * .25s),calc(1.6s + var(--d,0) * .8s)}
  :root:not(.calm) .pill .dot{animation:ping 2.2s var(--ease) infinite}
  :root:not(.calm) .hot.show::after{animation:hint 2s var(--ease) 1s infinite}
  :root:not(.calm).js .rv{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .9s var(--ease-emph);transition-delay:calc(var(--d,0) * 100ms)}
  :root:not(.calm).js .rv.in{opacity:1;transform:none}
  :root:not(.calm) .tabs .ind{display:block}
  @supports (animation-timeline: view()){
    :root:not(.calm) .steps::after{transform:scaleX(0);animation:grow linear both;animation-timeline:view();animation-range:entry 40% cover 55%}
    :root:not(.calm) .hero .stage-inner{animation:tilt linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
  }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 44rem){
  @supports (animation-timeline: view()){
    :root:not(.calm) .steps::after{transform:scaleY(0);animation-name:growY}
  }
}
@keyframes growY{to{transform:scaleY(1)}}
@keyframes drift1{to{transform:translate(8rem,6rem) scale(1.15)}}
@keyframes drift2{to{transform:translate(-6rem,-5rem) scale(1.2)}}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(.96)}45%{transform:scale(1.12)}60%{transform:scale(1)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes chipIn{from{opacity:0;scale:.6}}
@keyframes ping{0%{box-shadow:0 0 0 0 rgb(43 99 71 / .55)}80%,100%{box-shadow:0 0 0 .7rem rgb(43 99 71 / 0)}}
@keyframes hint{0%{opacity:.9;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.12)}}
@keyframes tilt{to{transform:translateY(-3rem) rotate(-4deg) scale(.94);opacity:.4}}
/* Wyłączony ruch: wszystko od razu na miejscu */
html.calm{scroll-behavior:auto}
.calm *,.calm *::before,.calm *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
@media (forced-colors: active){
  .btn,.tab,.arrows button,.motion-toggle{border:2px solid ButtonText}
  .tab[aria-selected="true"]{outline:3px solid Highlight}
}

/* Opóźnienia wejścia (dawniej style="--d:N"; CSP nie pozwala na atrybuty style) */
.d0{--d:0}.d1{--d:1}.d2{--d:2}.d3{--d:3}.d4{--d:4}
.m0{margin:0}
.pt0{padding-top:0}
.h-spot{font-size:clamp(1.7rem,1.4rem + 1.2vw,2.3rem)}
