/* Bautwin: tokeny marki. Opis zasad: marka/ksiega-znaku.html */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;font-stretch:100%;
  src:url(fonts/bricolage-lat.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:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;font-stretch:100%;
  src:url(fonts/bricolage-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  /* Kolory */
  --zatrzask:#00c261;      /* przyciski, przełączniki; napisy na nim tylko ciemne */
  --zatrzask-dol:#00733a;  /* spód klawisza */
  --glebia:#08261b;        /* ciemne sekcje, tekst na jasnym */
  --czern:#04170f;         /* tekst na Zatrzasku */
  --papier:#f1f5ee;        /* jasne sekcje */
  --biel:#ffffff;          /* karty, pola formularzy */
  --zielen-tekst:#00733a;  /* linki na jasnym, 5,4:1 */
  --zielen-glebia:#2de38a; /* linki na ciemnym, 9,6:1 */
  --szary:#47635a;         /* tekst drugorzędny na jasnym, 6:1 */
  --szary-glebia:#9dbbac;  /* tekst drugorzędny na ciemnym, 7,8:1 */
  --linia:#b9cbbf;         /* linie ozdobne, nie dla tekstu */
  --krawedz:#5f7c6f;       /* obrysy pól */
  --linia-glebia:#2c5745;
  /* Typografia */
  --font:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;
  /* Kształty */
  --r-s:10px;--r-m:22px;--r-l:32px;
  /* Ruch */
  --t-nacisk:.08s;
  --t-zatrzask:.46s;
  --t-krok:45ms;
  /* Dithering: rozmiar piksela pasa na styku sekcji */
  --d-px:6px;
  --sprezyna:cubic-bezier(.28,1.9,.45,.9);
  --spokojnie:cubic-bezier(.2,.9,.3,1);
}
/* Bautwin: style strony. Tokeny są w marka/tokens.css. */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--glebia);font:400 17px/1.5 var(--font);overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
.wrap{width:100%;max-width:1240px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.dk{background:var(--glebia);color:var(--papier);--sub:var(--szary-glebia);--acc:var(--zielen-glebia);--rule:var(--linia-glebia);--self:var(--glebia);--foc:var(--papier)}
.lt{background:var(--papier);color:var(--glebia);--sub:var(--szary);--acc:var(--zielen-tekst);--rule:var(--linia);--self:var(--papier);--foc:var(--glebia)}
.gr{background:var(--zatrzask);color:var(--czern);--sub:#07391f;--acc:var(--czern);--rule:#008a45;--self:var(--zatrzask);--foc:var(--czern)}
.d1{font-weight:800;font-size:clamp(46px,9vw,124px);line-height:.96;letter-spacing:-.04em;text-wrap:balance}
.d2{font-weight:800;font-size:clamp(34px,5.4vw,72px);line-height:1;letter-spacing:-.035em;text-wrap:balance}
.d3{font-weight:800;font-size:clamp(24px,3vw,34px);line-height:1.05;letter-spacing:-.025em}
.lead{font-size:clamp(18px,1.9vw,23px);line-height:1.35;color:var(--sub);max-width:42em}
.schemat{font-size:14px;color:var(--sub);margin-top:14px}
.skip{position:absolute;left:-999px;top:8px;z-index:50;background:var(--biel);color:var(--glebia);padding:8px 14px;border-radius:var(--r-s)}
.skip:focus{left:12px}
:focus-visible{outline:3px solid var(--foc,var(--glebia));outline-offset:3px}
.ph{background:#ffe14d;color:#231c00;padding:0 .3em;border-radius:4px;font-weight:600;font-size:.9em;white-space:normal}
.ph-b{margin:0 0 24px}
.chip{display:inline-block;background:var(--czern);color:var(--papier);padding:3px 11px;border-radius:99px;font-size:13.5px;font-weight:600}

/* Gradient z ditheringiem: pas na górze sekcji w kolorze sekcji poprzedniej. */
:root{--d-px:6px}
.lt+.dk,.gr+.dk,.dk+.lt,.gr+.lt,.dk+.gr,.lt+.gr,.foot{position:relative}
.lt+.dk{--prev:var(--papier)}.gr+.dk{--prev:var(--zatrzask)}
.dk+.lt{--prev:var(--glebia)}.gr+.lt{--prev:var(--zatrzask)}
.dk+.gr{--prev:var(--glebia)}.lt+.gr{--prev:var(--papier)}
main:has(>.lt:last-child)+.foot{--prev:var(--papier)}
main:has(>.gr:last-child)+.foot{--prev:var(--zatrzask)}
.lt+.dk::before,.gr+.dk::before,.dk+.lt::before,.gr+.lt::before,.dk+.gr::before,.lt+.gr::before,main:has(>.lt:last-child)+.foot::before,main:has(>.gr:last-child)+.foot::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:calc(var(--d-px) * 24);background:var(--prev);pointer-events:none;z-index:1;
  -webkit-mask:url(dither.svg) 0 0/calc(var(--d-px) * 8) 100% repeat-x;mask:url(dither.svg) 0 0/calc(var(--d-px) * 8) 100% repeat-x}
.lt+.dk>.wrap,.gr+.dk>.wrap,.dk+.lt>.wrap,.gr+.lt>.wrap,.dk+.gr>.wrap,.lt+.gr>.wrap{position:relative;z-index:2}

/* Klawisz */
.key{display:inline-block;position:relative;appearance:none;border:0;background:none;padding:0;font:inherit;text-decoration:none;cursor:pointer;--d:9px;margin-top:var(--d);--f:var(--zatrzask);--u:var(--zatrzask-dol);--c:var(--czern);-webkit-tap-highlight-color:transparent}
.key::before{content:"";position:absolute;inset:0;background:var(--u);border-radius:18px}
.key span{display:block;position:relative;background:var(--f);color:var(--c);font-weight:800;font-size:clamp(18px,1.6vw,21px);line-height:1.15;padding:17px 26px;border-radius:18px;transform:translateY(calc(var(--d) * -1));transition:transform var(--t-zatrzask) var(--sprezyna)}
.key:hover span{transform:translateY(calc(var(--d) * -1.3))}
.key:active span{transform:translateY(0);transition-duration:var(--t-nacisk)}
.key-d{--f:var(--czern);--u:#00733a;--c:var(--papier)}
.key-s{--d:5px}.key-s::before,.key-s span{border-radius:12px}.key-s span{font-size:15.5px;padding:9px 14px}
.lnk{font-weight:600;color:var(--acc);text-underline-offset:4px;text-decoration-thickness:2px}
.lnk:hover{text-decoration-thickness:4px}
.cta-r{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:26px}

/* Pasek */
.bar{position:sticky;top:max(10px,env(safe-area-inset-top,0px));z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(1240px,calc(100% - 24px));margin:10px auto -72px;padding:7px 10px 7px 14px;background:var(--papier);color:var(--glebia);border-radius:18px;box-shadow:0 0 0 1px var(--linia)}
.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:21px;letter-spacing:-.03em;text-decoration:none}
.znak{width:30px;height:30px;overflow:visible;flex:none}
.znak path{transition:fill .12s,transform var(--t-zatrzask) var(--sprezyna);transform-box:fill-box}
.logo:hover .z-a{fill:transparent;transform:translateY(-3px)}
.logo:hover .z-b{fill:currentColor;transform:translateY(3px)}
.bar nav{display:flex;align-items:center;gap:6px 22px}
.bar nav>a:not(.key){font-weight:600;text-decoration:none;padding:6px 2px;background:linear-gradient(var(--zatrzask),var(--zatrzask)) 0 100%/0 3px no-repeat;transition:background-size .3s var(--spokojnie)}
.bar nav>a:not(.key):hover,.bar nav>a[aria-current]{background-size:100% 3px}
.menu-t{display:none;align-items:center;gap:8px;appearance:none;border:0;background:none;padding:6px;font:600 16px var(--font);color:inherit;cursor:pointer}
.menu-t i{display:block;width:44px;height:26px;border-radius:13px;background:var(--linia);position:relative;transition:background .15s}
.menu-t i::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--glebia);transition:transform var(--t-zatrzask) var(--sprezyna)}
.menu-t[aria-expanded=true] i{background:var(--zatrzask)}
.menu-t[aria-expanded=true] i::after{transform:translateX(18px)}

/* Główna: otwarcie */
.hero{padding-block:clamp(120px,15vw,190px) clamp(30px,5vw,60px)}
.hero .lead{margin-top:24px;color:var(--szary-glebia)}
.hero em{font-style:normal;color:var(--zatrzask);display:inline-block}

/* Panele produktów */
.prod-b{padding-block:0 clamp(60px,8vw,100px)}
.panels{display:flex;gap:14px}
.panel{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:12px;padding:clamp(20px,2.4vw,30px);border-radius:var(--r-l);text-decoration:none;min-height:clamp(480px,48vw,600px);overflow:hidden;transition:flex-grow var(--t-zatrzask) var(--sprezyna),transform var(--t-zatrzask) var(--sprezyna);position:relative}
.panel-gr{background:var(--zatrzask);color:var(--czern);--bud:var(--czern);--top:var(--papier);--kres:var(--zatrzask)}
.panel-pa{background:var(--papier);color:var(--glebia)}
.panel:hover{flex-grow:1.35}
.panel:active{transform:scale(.985)}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.panel h2{font-size:clamp(44px,6vw,84px);font-weight:800;line-height:1;letter-spacing:-.04em}
.nr{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.panel-vis{flex:1;display:flex;align-items:center;justify-content:center;min-height:240px}
.panel p{font-size:18px;line-height:1.35;max-width:32em}
.panel-go{font-weight:800;font-size:19px}
.panel-go i{display:inline-block;font-style:normal;transition:transform var(--t-zatrzask) var(--sprezyna)}
.panel:hover .panel-go i{transform:translateX(10px)}

/* Budynek z pięter */
.iso{perspective:1200px;width:100%;height:280px;display:flex;align-items:center;justify-content:center}
.bldg{position:relative;width:150px;height:150px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(45deg) translateZ(-50px)}
.fl{position:absolute;inset:0;border-radius:8px;background:var(--bud,var(--glebia));transform:translateZ(calc(var(--i) * 24px));transition:transform .6s var(--sprezyna);transition-delay:calc(var(--i) * var(--t-krok));transform-style:preserve-3d}
.fl.top{background:var(--top,var(--zatrzask))}
.fl b{position:absolute;background:var(--kres,var(--papier))}
.fl b:first-child{left:50%;top:0;bottom:0;width:3px}
.fl b:last-child{top:50%;left:0;right:0;height:3px}
.fl.top b{background:var(--bud)}
.panel:hover .fl,.panel.in .fl{transform:translateZ(calc(var(--i) * 58px))}

/* Szafa z przodu */
.szafa{perspective:900px;display:flex;justify-content:center}
.sz-c{display:flex;gap:5px;padding:8px;background:var(--glebia);border-radius:7px;width:min(270px,70vw);height:230px;transform-style:preserve-3d}
.sz-m{flex:1;position:relative;background:#dfe7da;transform-style:preserve-3d}
.sz-m>i{position:absolute;left:0;right:0;height:4px;background:var(--krawedz)}
.sz-m>i:first-child{top:33%}.sz-m>i:nth-child(2){top:66%}
.sz-m b{position:absolute;inset:0;background:var(--zatrzask);transform-origin:left center;transition:transform .6s var(--sprezyna);transition-delay:calc(var(--n) * var(--t-krok))}
.sz-m b::after{content:"";position:absolute;right:6px;top:45%;width:5px;height:24px;border-radius:3px;background:var(--czern)}
.panel:hover .sz-m b,.panel.in .sz-m b{transform:rotateY(-72deg)}

/* Demo */
.demo-b{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,120px)}
.sec-h{display:grid;gap:14px;margin-bottom:clamp(24px,3vw,40px)}
.demo-f img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-l)}
.demo-f figcaption{margin-top:12px;font-size:15px;color:var(--sub)}

/* Model demo: bez WebGL lub przy ograniczeniu ruchu zostaje nieruchomy obraz */
.mdl-canvas,.mdl-labels{display:none}
.mdl-t,.mdl-still,.mdl-b{position:relative;z-index:2}
.mdl-t{margin-bottom:clamp(24px,3vw,40px)}
.mdl-t .lead{margin-top:14px}
.mdl-b{margin-top:14px}
.mdl-note{font-size:15px;color:var(--sub);max-width:46em}
.demo-b.live{height:320vh;padding-block:0}
.live .mdl-st{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.live .mdl-still{display:none}
.live .mdl-canvas{display:block;position:absolute;inset:0;opacity:0;transition:opacity .5s}
.live.ready .mdl-canvas{opacity:1}
.mdl-canvas canvas{display:block}
.live .mdl-labels{display:block;position:absolute;inset:0;pointer-events:none;z-index:1}
.mdl-floor{position:absolute;left:0;top:0;opacity:0;text-align:right;line-height:1.15;will-change:transform}
.mdl-floor b{display:block;font-weight:800;font-size:clamp(17px,1.9vw,24px);letter-spacing:-.02em}
.mdl-floor span{font-size:14px;color:var(--sub)}
.live .mdl-t{padding-top:clamp(120px,17vh,160px);margin:0;max-width:1240px}
.live .mdl-t .d2{max-width:min(46vw,9.5em)}
.live .mdl-t .lead{max-width:min(21em,44vw)}
.live .mdl-b{position:absolute;left:0;right:0;margin-inline:auto;bottom:clamp(16px,3vh,32px);margin-top:0}
.live .mdl-note{max-width:26em;font-size:14px}
.live .cta-r{margin-top:10px}

/* Gdzie projekt traci czas */
.czas{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,110px)}
.czas .lead{margin-top:12px;margin-bottom:clamp(20px,3vw,36px)}
.droga{border-radius:var(--r-l);padding:clamp(20px,2.6vw,36px);margin-top:14px;--sub:var(--szary);background:var(--papier);color:var(--glebia)}
.droga-b{background:var(--zatrzask);color:var(--czern);--sub:#07391f}
.droga-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.droga h3{font-size:clamp(34px,5vw,64px);font-weight:800;letter-spacing:-.035em;line-height:1}
.droga-b h3{color:inherit}
.droga dl{display:flex;gap:clamp(18px,3vw,44px);margin:0}
.droga dl div{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:2px}
.droga dt{font-size:clamp(14px,1.3vw,17px);font-weight:600;color:var(--sub)}
.droga dd{margin:0;font-size:clamp(38px,5.4vw,72px);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:.95;display:inline-block;min-width:1.1ch}
.droga dd.bump{animation:bump .45s var(--sprezyna)}
.droga-b dl{align-items:flex-end}
.droga-b dd[data-done]{color:var(--biel);font-size:clamp(76px,11vw,148px);line-height:.85}
@keyframes bump{0%{transform:scale(1.5)}100%{transform:scale(1)}}
.tor{display:block;width:100%;margin-top:clamp(4px,1vw,12px)}
.tor-dzis{height:clamp(210px,23vw,290px)}
.tor-bt{height:clamp(90px,10vw,130px)}
.stacje{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:clamp(8px,1vw,14px)}
.stacje b{display:block;font-size:clamp(22px,2.3vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-bottom:6px}
.stacje span{display:block;font-size:clamp(16px,1.45vw,19px);line-height:1.32;color:var(--sub)}
.czas .schemat{font-size:15px;margin-top:16px}

/* Pytania */
.obj{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,120px)}
.acc{margin-top:clamp(20px,3vw,36px);border-bottom:1px solid var(--rule)}
.acc-i{border-top:1px solid var(--rule)}
.acc h3{margin:0}
.acc button{appearance:none;width:100%;background:none;border:0;padding:20px 2px;display:flex;align-items:center;justify-content:space-between;gap:18px;font:800 clamp(21px,2.6vw,32px)/1.12 var(--font);letter-spacing:-.025em;color:inherit;text-align:left;cursor:pointer}
.acc button i{flex:none;width:62px;height:34px;border-radius:17px;background:var(--linia);position:relative;transition:background .15s}
.acc button i::after{content:"";position:absolute;left:4px;top:4px;width:26px;height:26px;border-radius:50%;background:var(--glebia);transition:transform var(--t-zatrzask) var(--sprezyna),width .1s}
.acc button:active i::after{width:32px}
.acc-i.open button i{background:var(--zatrzask)}
.acc-i.open button i::after{transform:translateX(28px);background:var(--czern)}
.acc-b{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--spokojnie)}
.acc-b>div{overflow:hidden;min-height:0}
.acc-b p{padding:0 80px 24px 2px;font-size:clamp(17px,1.7vw,20px);line-height:1.4;max-width:44em;visibility:hidden;transition:visibility .42s}
.acc-i.open .acc-b{grid-template-rows:1fr}
.acc-i.open .acc-b p{visibility:visible}
html:not(.js) .acc-b{grid-template-rows:1fr}html:not(.js) .acc-b p{visibility:visible}

/* Zakończenie */
.final{padding-block:clamp(170px,16vw,230px) clamp(70px,9vw,120px)}
.final .lead{margin-block:22px 8px;color:var(--sub)}
.foot{padding-block:clamp(170px,14vw,210px) 40px}
.foot-g{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:30px;position:relative;z-index:2}
.foot h2{font-size:14px;font-weight:600;color:var(--szary-glebia);margin-bottom:10px}
.foot a:not(.logo){display:block;text-decoration:none;margin-bottom:8px;font-weight:500}
.foot a:not(.logo):hover{color:var(--zielen-glebia)}
.foot-m p{margin-top:12px;color:var(--szary-glebia);max-width:20em}
.foot .logo{font-size:30px}.foot .znak{width:42px;height:42px}

/* Bęben „tygodnia” */
.bb{--h:1.12em;display:inline-block;position:relative;vertical-align:top;height:var(--h);color:var(--papier);margin-block:-.04em;cursor:pointer;user-select:none;transition:width .25s var(--sprezyna);-webkit-tap-highlight-color:transparent}
.bb-t::after{content:"";position:absolute;left:0;right:0;top:0;height:var(--h);border-radius:.16em;pointer-events:none;background:linear-gradient(var(--czern),transparent 22%,transparent 78%,var(--czern));opacity:0;transition:opacity .15s}
.bb.kreci .bb-t::after{opacity:1}
.bb{overflow:visible;clip-path:none}
.bb-t{display:block;height:var(--h);padding-inline:.14em;background:var(--czern);border-radius:.16em;overflow:hidden;clip-path:inset(0 round .16em)}
.bb-t>span{display:block;height:var(--h);line-height:var(--h);white-space:nowrap;transform:translateY(calc(var(--n) * var(--h) * -1 + var(--y,0em) * 1));will-change:transform}
.bb-k{color:var(--papier)}
.bb-k i{display:inline-block;font-style:normal;transform-origin:50% 90%}
.js .bb.reset .bb-t>span{--y:calc(var(--n) * var(--h));transition:none}
.js .bb.kreci .bb-t>span{--y:0em;transition:transform 2.1s cubic-bezier(.16,.8,.2,1.04);filter:blur(.012em)}
.bb.uderz{animation:bb-uderz .55s var(--sprezyna)}
@keyframes bb-uderz{0%{transform:scale(1.32) rotate(-4deg)}35%{transform:scale(.9) rotate(2.5deg)}70%{transform:scale(1.05) rotate(-1deg)}100%{transform:none}}
.bb.uderz .bb-k i,.bb:hover .bb-k i{animation:bb-lit .62s var(--sprezyna) backwards;animation-delay:calc(var(--l) * 42ms)}
.bb.fala .bb-k i{animation:bb-fala .7s cubic-bezier(.3,1.5,.5,1) backwards;animation-delay:calc(var(--l) * 70ms)}
@keyframes bb-fala{0%{transform:none}40%{transform:translateY(-.11em) scale(1.1,1.04);color:var(--zatrzask)}70%{transform:translateY(.03em) scaleY(.94);color:var(--zatrzask)}100%{transform:none}}
@keyframes bb-lit{0%{transform:translateY(-.13em) rotate(-6deg) scale(1.08);color:var(--zatrzask)}55%{transform:translateY(.03em) scaleY(.88)}100%{transform:none}}
.bb-s{position:absolute;right:-.42em;top:-.5em;z-index:2;font-size:.27em;font-weight:800;line-height:1;letter-spacing:-.01em;white-space:nowrap;padding:.42em .62em;color:var(--czern);background:var(--papier);border-radius:.5em;box-shadow:0 0 0 .14em var(--czern);transform:rotate(9deg);pointer-events:none}
.js .bb .bb-s{opacity:0;transform:rotate(9deg) scale(2.6)}
.js .bb.gotowe .bb-s{opacity:1;transform:rotate(9deg);transition:transform .28s cubic-bezier(.3,1.7,.5,1),opacity .08s}
.bb-h.wstrzas{animation:bb-wstrzas .5s linear}
@keyframes bb-wstrzas{0%{transform:translate(0,0)}12%{transform:translate(-11px,7px) rotate(-.7deg)}24%{transform:translate(10px,-8px) rotate(.6deg)}38%{transform:translate(-8px,-4px) rotate(-.4deg)}52%{transform:translate(6px,5px) rotate(.3deg)}68%{transform:translate(-3px,2px)}84%{transform:translate(2px,-1px)}100%{transform:none}}
.bb-burst{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
@media (prefers-reduced-motion:reduce){.bb{cursor:default}.bb-t>span{--y:0em!important;filter:none!important}.js .bb .bb-s{opacity:1;transform:rotate(9deg)}}

/* Etaga */
.et-hero{background:var(--glebia);color:var(--papier);--sub:var(--szary-glebia);--acc:var(--zielen-glebia);--foc:var(--papier)}
.et-l{position:relative;aspect-ratio:16/10;max-height:96vh;width:100%;overflow:hidden}
.et-bg,.et-cut{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%}
.et-w{position:absolute;left:0;right:0;top:7%;text-align:center;font-weight:800;font-size:21vw;line-height:.85;letter-spacing:-.05em;color:var(--papier)}
.et-chip{position:absolute;left:20px;bottom:20px}
.et-t{padding-block:clamp(30px,5vw,60px) clamp(60px,8vw,90px)}
.et-t .lead{margin-top:16px}
.prz{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,110px)}
.prz-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:clamp(16px,3vw,36px);align-items:stretch}
.prz-b{display:flex;flex-direction:column;gap:5px;min-width:0}
.dach{height:40px;background:var(--glebia);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);margin-left:84px}
.kond{display:grid;grid-template-columns:78px minmax(0,1fr);gap:6px;align-items:center}
.kond>span{font-size:14px;font-weight:600;color:var(--sub)}
.kond>div{display:flex;gap:5px;min-width:0}
.kond button{appearance:none;min-width:0;border:0;height:clamp(58px,6.5vw,84px);background:var(--glebia);color:var(--papier);font:800 clamp(15px,1.8vw,22px) var(--font);font-variant-numeric:tabular-nums;border-radius:8px;cursor:pointer;transition:transform var(--t-zatrzask) var(--sprezyna),background .12s,color .12s}
.kond button:hover{transform:translateY(-6px)}
.kond button:active{transform:translateY(2px);transition-duration:var(--t-nacisk)}
.kond button[aria-pressed=true]{background:var(--zatrzask);color:var(--czern);transform:translateY(-6px) scale(1.03)}
.prz-k{background:var(--biel);border-radius:var(--r-m);box-shadow:inset 0 0 0 1px var(--linia);display:flex;flex-direction:column;align-self:start;position:sticky;top:84px;overflow:hidden}
.prz-3d{height:clamp(200px,20vw,250px);position:relative;background:var(--papier);border-bottom:1px solid var(--linia);opacity:0;transition:opacity .5s}
.prz-3d.ready{opacity:1}
.prz-3d canvas{display:block}
.prz-d{padding:18px 22px 20px;display:flex;flex-direction:column}
.prz-d>b{font-size:clamp(56px,6vw,80px);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;margin-block:4px 16px;display:inline-block}
.prz-d>b.bump{animation:bump .45s var(--sprezyna);transform-origin:left center}
.prz-k dl{display:grid;gap:8px;margin-top:auto}
.prz-k dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--linia);padding-top:9px}
.prz-k dt{color:var(--szary)}.prz-k dd{white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
/* Szuflada z rzutem */
.szuf{scroll-margin:84px 0 16px;display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--spokojnie);margin-left:84px}
.szuf.open{grid-template-rows:1fr}
.szuf-o{overflow:hidden;min-height:0}
.szuf-i{position:relative;background:var(--biel);box-shadow:inset 0 0 0 1px var(--linia);border-radius:var(--r-m);margin-block:9px 4px;padding:16px;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(170px,1fr);gap:18px;align-items:center}
.szuf-n{position:absolute;top:-1px;width:18px;height:9px;margin-left:-9px;background:var(--zatrzask);clip-path:polygon(0 0,100% 0,50% 100%);transition:left var(--t-zatrzask) var(--sprezyna)}
.rz-w{min-width:0}
.rz-w svg{display:block;width:100%;height:auto;max-height:340px}
.rz-bal{fill:var(--papier);stroke:var(--krawedz);stroke-width:.03;stroke-dasharray:.1 .08}
.rz-room{fill:#e7ede2;cursor:pointer;transition:fill .12s}
.rz-room.on{fill:var(--zatrzask)}
.rz-meb{fill:none;stroke:var(--krawedz);stroke-width:.018;opacity:.55;pointer-events:none}
.rz-wall{fill:var(--glebia);stroke:var(--glebia);stroke-width:.02;pointer-events:none}
.rz-a{font:700 .34px var(--font);fill:var(--glebia);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#e7ede2;stroke-width:.07}
.rz-a.on{stroke:var(--zatrzask)}
.rz-l{min-width:0;font-size:15.5px}
.rz-l ul{display:grid}
.rz-l li{border-top:1px solid var(--linia)}
.rz-l li:first-child{border-top:0}
.rz-l button{appearance:none;background:none;border:0;width:100%;display:flex;justify-content:space-between;gap:12px;padding:7px 8px;margin-inline:-8px;width:calc(100% + 16px);border-radius:8px;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background .12s,transform var(--t-zatrzask) var(--sprezyna)}
.rz-l button.on{background:var(--zatrzask);color:var(--czern);transform:translateX(4px)}
.rz-l b{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.rz-bl{display:flex;justify-content:space-between;gap:12px;padding-block:7px;color:var(--szary)}
.rz-l .schemat{margin-top:8px;font-size:13px}
.nowy .rz-wall{stroke-dasharray:1;animation:rysuj .75s var(--spokojnie) backwards}
@keyframes rysuj{0%{stroke-dashoffset:1;fill-opacity:0;stroke-width:.05}70%{fill-opacity:0}100%{stroke-dashoffset:0;fill-opacity:1}}
.nowy .rz-room{transform-box:fill-box;transform-origin:center;animation:wskocz .5s var(--sprezyna) backwards;animation-delay:calc(.12s + var(--i) * var(--t-krok))}
@keyframes wskocz{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:none}}
.nowy .rz-a,.nowy .rz-meb{animation:poj .35s .45s backwards}
@keyframes poj{0%{opacity:0}}
.nowy .rz-l li{animation:wjedz .45s var(--sprezyna) backwards;animation-delay:calc(.08s + var(--i) * var(--t-krok))}
@keyframes wjedz{0%{opacity:0;transform:translateX(16px)}100%{opacity:1;transform:none}}
.co{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,120px)}
.co-l{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,60px);margin-top:clamp(20px,3vw,40px)}
.co-l li{border-top:1px solid var(--rule);padding-block:18px 26px}
.co-l h3{font-size:clamp(24px,3vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:6px}
.co-l p{color:var(--sub);max-width:30em}
.kol{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,100px)}
.kol-g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:start}
.kol-g img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-m)}
.k1{grid-column:1/8;aspect-ratio:16/10}.k2{grid-column:8/13;aspect-ratio:4/5;margin-top:70px}
.kol .schemat{margin-top:64px;position:relative}
.k3{grid-column:1/6;aspect-ratio:1;margin-top:-70px}.k5{grid-column:1/8;aspect-ratio:16/10;margin-top:14px}.k6{grid-column:8/13;aspect-ratio:4/5;margin-top:70px}.k4{grid-column:6/13;aspect-ratio:16/10;margin-top:14px}
.kroki{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,110px)}
.kr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:clamp(20px,3vw,40px)}
.kr li{background:var(--czern);color:var(--papier);border-radius:var(--r-m);padding:20px;display:flex;flex-direction:column;gap:8px}
.kr span{font-size:clamp(44px,5vw,68px);font-weight:800;line-height:1;color:var(--zatrzask);font-variant-numeric:tabular-nums}
.kr h3{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.kr p{font-size:16px;line-height:1.35;color:var(--szary-glebia)}
.cena{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,90px)}
.cena-g{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px}
.cena .lead{margin-top:10px}

/* Kantiva */
.ka-hero{padding-block:clamp(110px,12vw,150px) clamp(60px,8vw,90px)}
.ka-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,56px);align-items:start}
.ka-t .lead{margin-top:14px}
.cfg{margin-top:24px;display:grid;gap:18px}
.typy{display:flex;flex-wrap:wrap;gap:7px}
.typy button{appearance:none;border:0;background:var(--biel);box-shadow:inset 0 0 0 1px var(--krawedz);color:inherit;font:600 16px var(--font);padding:9px 14px;border-radius:12px;cursor:pointer;transition:transform var(--t-zatrzask) var(--sprezyna),background .12s}
.typy button:hover{transform:translateY(-3px)}
.typy button:active{transform:translateY(1px);transition-duration:var(--t-nacisk)}
.typy button[aria-pressed=true]{background:var(--zatrzask);box-shadow:none;color:var(--czern);font-weight:800}
.sl label{display:flex;justify-content:space-between;font-weight:600}
.sl output{font-weight:800;font-variant-numeric:tabular-nums}
input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:42px;background:transparent;cursor:grab;margin:0;--p:50%}
input[type=range]:active{cursor:grabbing}
input[type=range]:disabled{opacity:.4;cursor:not-allowed}
input[type=range]::-webkit-slider-runnable-track{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--zatrzask) var(--p),var(--linia) var(--p))}
input[type=range]::-moz-range-track{height:10px;border-radius:5px;background:var(--linia)}
input[type=range]::-moz-range-progress{height:10px;border-radius:5px;background:var(--zatrzask)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:36px;height:36px;margin-top:-13px;border-radius:50%;background:var(--glebia);transition:transform var(--t-zatrzask) var(--sprezyna)}
input[type=range]::-moz-range-thumb{width:36px;height:36px;border:0;border-radius:50%;background:var(--glebia)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2,.85)}
.tg{display:inline-flex;gap:12px;align-items:center;cursor:pointer;font-weight:600;user-select:none}
.tg input{position:absolute;opacity:0;width:1px;height:1px}
.tg i{display:block;flex:none;width:74px;height:40px;border-radius:20px;background:var(--linia);position:relative;transition:background .15s}
.tg i::after{content:"";position:absolute;left:4px;top:4px;width:32px;height:32px;border-radius:50%;background:var(--glebia);transition:transform var(--t-zatrzask) var(--sprezyna),width .1s}
.tg:active i::after{width:40px}
.tg input:checked+i{background:var(--zatrzask)}
.tg input:checked+i::after{transform:translateX(34px);background:var(--czern)}
.tg:active input:checked+i::after{transform:translateX(26px)}
.tg input:focus-visible+i{outline:3px solid var(--foc);outline-offset:3px}
.tg-d i{background:#008a45}
.tg-d input:checked+i{background:var(--czern)}
.tg-d input:checked+i::after{background:var(--zatrzask)}
.tg-d i::after{background:var(--czern)}
.ka-v{min-width:0}
.st3{height:clamp(320px,38vw,470px);perspective:1500px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--biel);border-radius:var(--r-l);box-shadow:inset 0 0 0 1px var(--linia);cursor:grab;touch-action:pan-y;user-select:none}
.st3:active{cursor:grabbing}
.st3 canvas{display:block}
.st3.brak{padding:24px;text-align:center;cursor:default}
.parts{margin-top:12px;background:var(--glebia);color:var(--papier);border-radius:var(--r-m);padding:16px 18px}
.parts-h{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;margin-bottom:8px}
.parts-h b{font-size:28px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;display:inline-block;color:var(--zielen-glebia)}
.parts-h b.bump{animation:bump .45s var(--sprezyna)}
.parts ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 22px;font-size:15px}
.parts li.pg{grid-column:1/-1;border-top:0;padding-top:8px;font-size:13.5px;font-weight:600;color:var(--zielen-glebia)}
.parts li[data-k]{cursor:pointer;border-radius:6px;transition:background .12s,color .12s,transform var(--t-zatrzask) var(--sprezyna)}
.parts li[data-k].on{background:var(--zatrzask);color:var(--czern);box-shadow:0 0 0 4px var(--zatrzask);transform:translateX(3px)}
.parts li[data-k].on span:last-child{color:var(--czern)}
.parts li[data-k]:focus-visible{outline:2px solid var(--zielen-glebia);outline-offset:3px}
.parts li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--linia-glebia);padding-top:4px;font-variant-numeric:tabular-nums}
.parts li span:last-child{color:var(--szary-glebia);white-space:nowrap}
.droga-k{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,110px)}
.dk-l{margin-top:clamp(20px,3vw,40px)}
.dk-l li{display:flex;gap:clamp(16px,3vw,36px);align-items:baseline;border-top:1px solid var(--rule);padding-block:18px}
.dk-l span{font-size:clamp(44px,6vw,84px);font-weight:800;line-height:.9;color:var(--zatrzask);width:1.1em;flex:none;font-variant-numeric:tabular-nums}
.dk-l h3{font-size:clamp(24px,3vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.05}
.dk-l p{color:var(--sub);margin-top:4px}
.tryb{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,100px)}
.tryb-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:end}
.tryb .tg{margin-top:22px}
.tryb-t p{font-size:clamp(22px,2.7vw,34px);line-height:1.15;font-weight:600;letter-spacing:-.02em}
.dla{padding-block:clamp(170px,14vw,210px) clamp(60px,8vw,100px)}
.dla-l{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,36px);margin-top:clamp(20px,3vw,36px)}
.dla-l li{border-top:4px solid var(--glebia);padding-top:12px}
.dla-l h3{font-size:clamp(22px,2.3vw,28px);font-weight:800;letter-spacing:-.025em;line-height:1.08;margin-bottom:6px}
.dla-l p{color:var(--sub)}

/* Formularz */
.form-h{padding-block:clamp(120px,14vw,170px) clamp(40px,6vw,70px)}
.form-h .lead{margin-top:20px;color:var(--szary-glebia)}
.form-b{padding-block:clamp(170px,14vw,210px) clamp(70px,9vw,110px)}
.form-g{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(24px,5vw,70px);align-items:start}
.fmt{margin-top:14px;display:grid;gap:12px}
.fmt-sw{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;background:var(--glebia);padding:5px;border-radius:16px}
.fmt-sw button{appearance:none;background:none;border:0;color:var(--papier);font:800 16px var(--font);padding:11px 2px;border-radius:12px;cursor:pointer;transition:transform var(--t-zatrzask) var(--sprezyna),background .12s,color .12s}
.fmt-sw button:active{transform:scale(.92);transition-duration:var(--t-nacisk)}
.fmt-sw button[aria-pressed=true]{background:var(--zatrzask);color:var(--czern)}
.fmt-m{height:14px;background:var(--linia);border-radius:7px;overflow:hidden}
.fmt-m i{display:block;height:100%;width:calc(var(--v) * 25%);background:var(--zatrzask-dol);border-radius:7px;transition:width var(--t-zatrzask) var(--sprezyna)}
.fmt-t{font-size:18px;line-height:1.35;min-height:3.9em}
form{display:grid;gap:18px;min-width:0}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{font-weight:600;margin-bottom:8px;padding:0}
.segs{display:flex;flex-wrap:wrap;gap:8px}
.seg{flex:1 1 200px;cursor:pointer}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:block;background:var(--biel);box-shadow:inset 0 0 0 1px var(--krawedz);border-radius:16px;padding:12px 14px;font-weight:800;font-size:19px;transition:transform var(--t-zatrzask) var(--sprezyna),background .12s}
.seg small{display:block;font-weight:400;font-size:14.5px}
.seg:hover span{transform:translateY(-3px)}
.seg input:checked+span{background:var(--zatrzask);box-shadow:none;color:var(--czern)}
.seg input:focus-visible+span{outline:3px solid var(--glebia);outline-offset:3px}
.f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.fld{display:grid;gap:5px;min-width:0}
.fld label{font-weight:600}
.fld input,.fld textarea{width:100%;font:400 17px var(--font);color:var(--glebia);background:var(--biel);border:1px solid var(--krawedz);border-radius:var(--r-s);padding:12px 13px;transition:box-shadow .15s}
.fld input:focus,.fld textarea:focus{outline:none;box-shadow:0 0 0 3px var(--zatrzask);border-color:var(--glebia)}
.fld.bad input{border-color:#a11212;box-shadow:0 0 0 2px #a11212}
.hint{font-size:14.5px;color:var(--sub)}
.err{color:#a11212;font-weight:600;font-size:15px}
.trap{position:absolute;left:-9999px;height:1px;overflow:hidden}
.zgoda{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;cursor:pointer;font-size:15.5px;line-height:1.35}
.zgoda input{position:absolute;opacity:0;width:1px;height:1px}
.zgoda i{display:block;width:30px;height:30px;border-radius:9px;background:var(--biel);box-shadow:inset 0 0 0 1px var(--krawedz);position:relative;transition:background .12s,transform var(--t-zatrzask) var(--sprezyna)}
.zgoda input:checked+i{background:var(--zatrzask);box-shadow:none;transform:scale(1.08)}
.zgoda input:checked+i::after{content:"";position:absolute;left:10px;top:5px;width:9px;height:15px;border:solid var(--czern);border-width:0 3px 3px 0;transform:rotate(42deg)}
.zgoda input:focus-visible+i{outline:3px solid var(--glebia);outline-offset:3px}
form .key{justify-self:start}
.status{background:var(--biel);box-shadow:inset 0 0 0 2px var(--glebia);border-radius:var(--r-s);padding:12px 14px;font-weight:600}

/* Dokument */
.doc{padding-block:clamp(120px,13vw,160px) 90px}
.doc-w{max-width:800px}
.doc h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin:26px 0 6px}
.doc p{max-width:64ch}
.doc h1{margin-bottom:22px}

/* Wejście przy przewijaniu: tylko gdy działa JS, treść nigdy nie czeka ukryta bez niego. */
.js [data-in]:not(.panel):not(.et-hero){transition:transform .6s var(--sprezyna),opacity .3s;transition-delay:calc(var(--i,0) * var(--t-krok))}
.js [data-in].wait:not(.panel):not(.et-hero){transform:translateY(26px);opacity:.25}

/* Telefon */
@media (max-width:860px){
  .bar{margin-bottom:-66px}
  .menu-t{display:inline-flex}
  .bar nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--papier);box-shadow:0 0 0 1px var(--linia);border-radius:18px;padding:14px;flex-direction:column;align-items:flex-start;gap:8px}
  .bar.open nav{display:flex}
  .panels{flex-direction:column}
  .panel{flex:none;min-height:0}
  .panel:hover{flex-grow:1}
  .stacje{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prz-g,.ka-g,.tryb-g,.form-g{grid-template-columns:minmax(0,1fr)}
  .co-l,.dla-l,.f2{grid-template-columns:minmax(0,1fr)}
  .kr{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kond{grid-template-columns:minmax(0,1fr);gap:2px}
  .dach{margin-left:0}
  .szuf{margin-left:0}
  .szuf-i{grid-template-columns:minmax(0,1fr);padding:12px}
  .rz-a{font-size:.46px}
  /* Na telefonie budynek zostaje przypięty nad przekrojem, żeby było widać jego reakcję */
  .prz-k{display:contents}
  .prz-3d{height:190px;order:-1;position:sticky;top:70px;z-index:5;border-radius:var(--r-m);box-shadow:inset 0 0 0 1px var(--linia)}
  .prz-d{order:1;padding:12px 16px 14px;background:var(--biel);border-radius:var(--r-m);box-shadow:inset 0 0 0 1px var(--linia)}
  .szuf{scroll-margin:276px 0 16px}
  .prz-d>b{font-size:44px;margin-block:0 6px}
  .prz-d dl{gap:4px}
  .prz-d dl div{padding-top:4px;font-size:15px}
  .acc-b p{padding-right:0}
  .foot-g{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-m{grid-column:1/-1}
  .et-l{aspect-ratio:4/3}
  .et-w{display:none}
  .k1,.k2,.k3,.k4,.k5,.k6{grid-column:1/-1;margin-top:0;aspect-ratio:16/10}
  .parts ul{grid-template-columns:minmax(0,1fr)}
  :root{--d-px:5px}
  .tor-dzis{height:172px}.tor-bt{height:76px}
  .stacje{gap:16px}
  .droga dl{width:100%;justify-content:space-between}
}
@media (max-width:860px){
  .live .mdl-t{padding-top:128px}
  .live .mdl-t .d2{max-width:none}
  .live .mdl-t .lead{font-size:16px;line-height:1.3;max-width:none}
  .live .mdl-note{font-size:12.5px;line-height:1.3}
  .mdl-floor b{font-size:15px}.mdl-floor span{font-size:12px}
  .demo-b.live{height:280vh}
}
@media (max-width:480px){.kr{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important}
}
