/* Redesign preserve: DESIGN_VARIANCE 7, MOTION_INTENSITY 8, VISUAL_DENSITY 4.
   Layers: header 50, menu native top layer, media controls 4, mobile contact 40.
   Photographs lead the page. Brand gold, fonts and chosen hero are preserved. */
:root{--black:#0b0b0c;--gray:#a1a1a6;--gray-2:#b4b4ba;--paper:var(--black);--paper-card:#1d1d1f;--paper-ink:var(--white);--paper-gray:var(--gray-2);--paper-line:var(--line);--paper-accent:var(--amber);--max:1360px;--r:22px}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-padding-top:76px}
button,input,select,textarea{font-family:var(--text)}
button,a{touch-action:manipulation}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;top:8px;left:16px;z-index:100;transform:translateY(-160%);background:var(--amber);color:var(--on-amber);padding:12px 18px;border-radius:8px}
.skip:focus{transform:none}
.section{padding-block:clamp(56px,8vw,112px)}
.h-l{font-size:clamp(34px,4.5vw,68px);line-height:1.09}
.h-m{font-size:clamp(28px,3.5vw,48px)}
.lead{font-size:clamp(18px,1.55vw,22px);line-height:1.5;max-width:720px}
.lnav{top:0;background:rgba(17,17,19,.9)}
.lnav-in{height:64px}
.lnav .brand{display:flex;align-items:center;gap:12px;line-height:1.1}
.brand-mark{width:42px;height:32px;flex-shrink:0;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.brand:hover .brand-mark{transform:translateY(-2px) rotate(-3deg)}
.brand-name{letter-spacing:-.035em}
.lnav nav{gap:22px;font-size:14px}
.lnav nav a{padding:12px 0}
.lnav nav .pill{color:var(--on-amber);padding:0 16px}
.pill{min-height:46px;white-space:nowrap;padding-inline:22px}
.pill.sm{min-height:40px;font-size:14px}
.lnav nav .langb{display:inline-flex;align-items:center;justify-content:center;min-width:44px}
.nav-services{position:relative}
.nav-services summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;color:var(--gray-2)}
.nav-services summary::-webkit-details-marker{display:none}
.nav-pop{position:absolute;top:48px;left:-24px;display:flex;flex-direction:column;min-width:220px;padding:12px 22px;background:var(--card-2);border:1px solid var(--line);border-radius:16px}
.nav-pop a{min-height:44px}
.menu{border:0;color:var(--white);width:100%;max-width:none;max-height:100dvh;height:100dvh;inset:0;padding:80px var(--g) 24px;background:#111113;margin:0;overflow-y:auto}
.menu:not([open]){display:none}
.menu[open]{display:block}
.menu::backdrop{background:rgba(0,0,0,.65)}
.menu nav{display:flex;flex-direction:column;gap:4px}
.menu a{font-size:clamp(24px,5vw,34px);min-height:44px;padding:6px 0}
.menu-close{position:absolute;right:var(--g);top:16px;background:none;border:0;color:var(--white);min-height:44px;font-size:16px;cursor:pointer}
.footer-links{display:flex;gap:12px 26px;flex-wrap:wrap;padding-block:10px 28px}
.footer-links a{min-height:44px;display:flex;align-items:center;color:var(--gray-2)}
.foot{font-size:14px}
.s-hero{height:auto;position:relative}
.s-hero .stick{position:relative;height:auto;overflow:clip}
.hero-copy{padding-top:clamp(36px,5svh,64px);padding-bottom:32px}
.hero-copy .eyebrow{font-size:clamp(14px,1.35vw,18px)}
.hero-copy .slogan{font-size:clamp(36px,6.1vw,82px);line-height:1.06}
.hero-copy .lead{max-width:620px;margin-top:18px}
.hero-copy .cta-row{margin-top:22px}
.hero-media{position:relative;inset:auto;transform:none;width:calc(100% - 2 * var(--g));height:64svh;margin:0 auto}
.hm-in{border-radius:var(--r)}
.hm-in img{height:100%;object-position:50% 66%;transform:none}
.hero-say{display:none}
html.hero-motion .s-hero{height:176svh}
html.hero-motion .s-hero .stick{position:sticky;top:0;height:100svh}
html.hero-motion .hero-media{position:absolute;inset:0;width:100%;height:100%;margin:0}
html.hero-motion .hero-media{transform:translateY(72svh) scale(.62)}
html.hero-motion .hero-say{display:block}
.hero-say .say{font-size:clamp(28px,4.9vw,66px)}
.services{padding-block:64px 80px;scroll-margin-top:64px;overflow:clip}
.services .h{margin-bottom:30px}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.service-card{display:flex;flex-direction:column;min-width:0;text-decoration:none;background:var(--card);border-radius:var(--r);overflow:hidden}
.service-image{aspect-ratio:4/4.5;overflow:hidden}
.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.service-card:hover .service-image img{transform:scale(1.035)}
.service-copy{padding:20px;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:10px}
.service-copy h3{font:600 clamp(20px,2vw,26px) var(--sans);margin:0}
.service-copy p{font-size:15px;line-height:1.5;color:var(--gray-2);margin:0}
.service-price{font-size:15px;margin-top:auto}
.service-go{font-size:15px;color:var(--link)}
.services.services-motion{height:240svh;padding-block:0}
.services-motion .services-stage{position:sticky;top:64px;height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center;gap:28px;overflow:clip;padding-block:24px}
.services-motion .h{margin:0}
.services-motion .service-card{height:min(58svh,570px);min-height:0;will-change:transform}
.services-motion .service-image{aspect-ratio:auto;flex:1;min-height:120px}
.services-motion .service-copy{flex:0}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px 8vw;margin-top:56px}
.story-image{display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.story-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.story-image:hover img{transform:scale(1.025)}
.story-feature:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr;gap:8vw;align-items:center}
.story-feature:first-child .story-image{aspect-ratio:5/4}
.story-feature:last-child{margin-top:100px}
.story-copy h3{font:600 clamp(28px,3.2vw,46px)/1.12 var(--sans);margin:24px 0 16px;max-width:16ch}
.story-copy p{font-size:clamp(17px,1.55vw,21px);line-height:1.55;color:var(--gray-2);max-width:460px;margin:0 0 22px}
.story-copy .more{font-size:17px}
.stories .lead{margin-top:32px}
.s-price{color-scheme:dark;padding-block:80px;background:var(--black)}
.seg{background:var(--card-2)}
.seg button{color:var(--white);min-height:44px}
.seg button[aria-selected=true]{background:var(--white);color:#111113;box-shadow:none}
.plan{border:1px solid var(--line);padding:28px;align-items:flex-start;text-align:left;gap:12px;background:var(--card)}
.plan h3{font-size:clamp(22px,2vw,30px);line-height:1.2}
.plan .plan-for{font-size:16px;line-height:1.5;color:var(--gray-2);min-height:48px;margin:0}
.plan .pr{font-size:20px;margin:0}
.plan ul{gap:12px;margin:8px 0 0;padding-top:18px}
.plan li{display:list-item;list-style:none;text-align:left;line-height:1.5}
.plan li::before{content:"+";margin-right:10px;color:var(--amber)}
.plan .pill{font-size:15px;padding-inline:16px}
.plans{margin-top:32px}
.price-service{color:var(--gray-2);margin:18px 0 0}
.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:36px 0 0;padding:0;list-style:none}
.process-grid li{border-top:1px solid var(--line);padding-top:20px}
.process-grid h3{font:600 22px var(--sans);margin:0 0 14px}
.process-grid p{color:var(--gray-2);font-size:16px;line-height:1.6;margin:0}
.process-links{display:flex;flex-wrap:wrap;gap:18px 32px}
.simple-process .lead{margin:24px 0}
.s-me{padding-block:72px}
.me{background:transparent}
.me figure{min-height:360px;max-height:480px;border-radius:var(--r);overflow:hidden}
.me .txt{padding-right:0}
.gallery-invitation{background:var(--card);border-radius:var(--r);margin-block:32px;text-align:center}
.faq{max-width:960px;margin-top:30px}
.faq summary{font:600 clamp(18px,1.8vw,24px) var(--sans);padding-block:22px;min-height:44px}
.faq p{font-size:17px;line-height:1.7;color:var(--gray-2)}
.service-hero{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-block:64px 80px;min-height:min(840px,calc(100svh - 64px))}
.service-hero .cta-row{justify-content:flex-start;gap:14px 24px}
.service-hero figure{margin:0;aspect-ratio:4/4.5;border-radius:var(--r);overflow:hidden}
.service-hero figure img{width:100%;height:100%;object-fit:cover}
.service-kicker{font:500 17px var(--sans);color:var(--gray-2);line-height:1.5;margin:0 0 20px}
.service-hero .lead{margin-top:24px}
.wide-photo{display:block;margin-block:28px;border-radius:var(--r);overflow:hidden;aspect-ratio:16/9}
.wide-photo img{width:100%;height:100%;object-fit:cover}
.service-example .lead{margin-top:24px}
.story-hero .lead{margin-top:28px}
.story-photos{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.story-photos figure{margin:0}
.story-photos figure:first-child{grid-column:1/-1}
.story-photos img{width:100%;height:auto;border-radius:var(--r)}
figcaption{font-size:14px;color:var(--gray-2);margin-top:14px;line-height:1.6}
.story-photos+section .pill{margin-top:24px}
.s-contact{padding-block:72px 100px}
.s-contact>.lead{margin:24px auto 0}
.fl{display:flex;flex-direction:column;gap:8px}
.fl>span{position:static;color:var(--white);font-size:15px}
.fl .fe span{position:static;font-size:inherit;color:inherit;pointer-events:auto}
.fl .fe{display:none}
.fl.bad .fe{display:block}
.fl input,.fl textarea{padding:14px 16px;min-height:50px}
.fl textarea{padding-bottom:22px}
.fl textarea::placeholder{color:#a1a1a6;opacity:1}
.f-foot small,.form-privacy{color:var(--gray-2);font-size:14px;line-height:1.6}
.form-privacy{margin:0}
.form-privacy a{color:var(--link)}
.mail a{font-size:17px}
.selection{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--card-2)}
.selection img{width:64px;height:76px;object-fit:cover;border-radius:8px}
.selection div{flex:1;min-width:0}
.selection strong{font-size:16px}
.selection p{font-size:14px;color:var(--gray-2);margin:6px 0 0}
.selection button{flex:none}
.thanks #thxP{margin:24px auto}
.mobile-contact{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:16px;right:16px;z-index:40;display:none;pointer-events:none}
.mobile-contact .pill{box-shadow:0 8px 32px rgba(0,0,0,.4);width:100%;pointer-events:auto}
body.form-focus .mobile-contact{display:none!important}
.print-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 24px;margin-top:32px}
.print-card{text-decoration:none}
.print-card img{height:380px;width:100%;object-fit:contain;background:var(--card);border-radius:var(--r);padding:18px}
.print-card h3{font:600 20px var(--sans);line-height:1.4;margin:18px 0 8px}
.print-card .more{font-size:16px}
.print-config{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;margin-top:32px;align-items:start}
.room{position:relative;margin:0}
.room picture{display:block;overflow:hidden;border-radius:var(--r)}
.room-background{width:100%;height:auto}
.wall-print{position:absolute;top:35%;left:50%;width:calc(var(--print-w) / 300 * 100%);aspect-ratio:var(--print-w) / var(--print-h);transform:translate(-50%,-50%);padding:3px;background:#171719;box-shadow:4px 5px 10px rgba(0,0,0,.5)}
.wall-print img{width:100%;height:100%;object-fit:contain;background:#efeff1;padding:6%}
.print-options{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.print-options label,.field-heading{font-weight:600;margin:0}
.print-options select{width:100%;min-height:50px;padding:12px;background:var(--card-2);border:1px solid var(--line);border-radius:12px;color:var(--white);font-size:16px}
.print-options>p:not(.print-price):not(.field-heading){font-size:15px;color:var(--gray-2);line-height:1.6}
.print-price{font:600 28px var(--sans);margin:0}
.g-hero{padding-top:70px}
.g-hero .lead{margin:24px auto 0}
.filters{top:64px;background:rgba(11,11,12,.94);padding-block:12px}
.gallery-count{font-size:14px;color:var(--gray-2);margin-block:24px 0}
.lb{border:0;color:var(--white);width:100%;height:100dvh;max-width:none;max-height:none;margin:0;grid-template-rows:auto minmax(0,1fr) auto auto;background:#0b0b0c}
.lb:not([open]){display:none}
.lb[open]{display:grid}
.lb-context{padding:12px var(--g);text-align:center}
.lb-context h2{font-size:18px;margin:0}
.lb-context p{font-size:14px;color:var(--gray-2);margin:8px auto;max-width:700px}
.lb-context .more{font-size:15px}
.lb-bot{justify-content:center}
.lb .ib{flex:none;font-size:26px}
.lb .pill{white-space:normal;text-align:center;font-size:15px}
.legal{max-width:960px}
.legal h2{font:600 28px var(--sans);margin:48px 0 18px}
.legal p{color:var(--gray-2);line-height:1.8;max-width:760px}
.video-control{position:absolute;right:24px;bottom:24px;z-index:4;background:var(--card-2);color:var(--white);border:1px solid var(--line);border-radius:999px;min-height:44px;padding:10px 20px;cursor:pointer}
.s-mask{height:180svh}
.s-rise{height:180svh;margin-top:0}
.scene-result{padding-block:32px}
.scene-result p{max-width:740px;color:var(--gray-2);font-size:15px}
.scene-skip{display:flex;justify-content:center;padding-bottom:24px}
.drone-story{isolation:isolate;position:relative}
.scene-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s-mask{height:220svh}
.s-rise{height:240svh;margin-top:-60svh}
.scene-note{font-size:clamp(15px,1.6vw,20px);max-width:600px;line-height:1.5;margin:18px auto 0;color:var(--gray-2)}
.scene-result{text-align:center;padding-block:28px 48px}.scene-result .more{display:inline-flex;align-items:center;min-height:44px;margin-top:12px}
.rise-cap .more{display:inline-flex;margin-top:20px;min-height:44px;align-items:center}
.mask-copy{background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.08));padding-bottom:88px}
.rise-cap{bottom:clamp(80px,9vh,110px)}
.rise-cap::before{content:"";position:absolute;inset:-80px 0 -120px;background:linear-gradient(0deg,rgba(0,0,0,.65),transparent);pointer-events:none}
.rise-cap .h{position:relative;font-size:clamp(34px,4.4vw,64px);max-width:23ch;line-height:1.12;padding:0;background:none;text-shadow:0 2px 26px rgba(0,0,0,.45)}
@media (max-width:1000px){.lnav nav{gap:14px}.lnav nav .desktop-link,.nav-services{display:none}.burger{display:block;width:auto;min-width:52px;font-size:14px}.service-hero{gap:32px}.service-grid{gap:12px}.service-copy{padding:16px}.plan .pill{white-space:normal;text-align:center}}
@media (min-width:701px) and (max-width:1000px){
 .service-grid{grid-template-columns:1fr 1fr}
 .services.services-motion{height:265svh}
 .services-motion .services-stage{padding-block:24px 32px;justify-content:flex-start;gap:20px}
 .services-motion .service-grid{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr)}
 .services-motion .service-card{height:auto;min-height:0}
 .services-motion .service-image{min-height:80px}
}
@media (max-width:700px){
 .lnav-in{padding-inline:16px;gap:8px}.lnav .name{font-size:18px}.lnav nav{gap:8px}.lnav nav .langb{display:inline-flex}
 .lnav .brand{gap:9px;font-size:15px}.brand-mark{width:34px;height:26px}.brand-name span{display:block}
 .section{padding-block:52px}.h-l{font-size:36px}.hero-copy .lead{font-size:17px;max-width:340px}.hero-copy .slogan{font-size:38px}.hero-copy .cta-row{gap:12px 22px}.hero-copy .pill,.hero-copy .more{font-size:15px}
 html.hero-motion .s-hero{height:168svh}.hero-say{top:96px}.hero-say .say{font-size:30px}
 html.hero-motion .hero-media{transform:translateY(72svh) scale(.88)}
 .services{padding-block:40px 48px}.service-grid{grid-template-columns:1fr 1fr;gap:12px}.service-image{aspect-ratio:4/3.8}.service-copy{padding:14px;gap:8px}.service-copy h3{font-size:19px}.service-copy p{font-size:13px}.service-price,.service-go{font-size:13px}
 .services.services-motion{height:265svh}.services-motion .services-stage{padding-block:22px 80px;gap:18px;justify-content:flex-start}.services-motion .service-grid{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr)}.services-motion .service-card{height:auto;min-height:0}.services-motion .service-image{min-height:64px}.services-motion .service-copy{padding:12px;gap:5px}.services-motion .service-copy h3{font-size:18px}.services-motion .service-copy p{font-size:12.5px;line-height:1.3}.services-motion .service-price,.services-motion .service-go{font-size:13.5px}
 .story-grid{grid-template-columns:1fr;gap:48px;margin-top:32px}.story-feature:first-child{display:block;grid-column:auto}.story-feature:last-child{margin-top:0}.story-grid .story-image,.story-grid article:first-child .story-image{aspect-ratio:4/3}.story-copy h3{font-size:30px;margin-top:22px}.story-copy p{font-size:17px}
 .plans{grid-template-columns:1fr;max-width:none}.plan .plan-for{min-height:0}.plan .pill{white-space:nowrap}.s-price{padding-block:48px}.seg button{padding-inline:14px;font-size:14px}
 .process-grid{grid-template-columns:1fr 1fr;gap:28px 20px}.process-grid h3{font-size:20px}.process-grid p{font-size:15px}
 .me .txt{padding:8px 0 24px}.me figure{max-height:420px}
 .gallery-invitation{border-radius:0}.gallery-invitation .h{font-size:32px}
 .service-hero{grid-template-columns:1fr;padding-block:36px 48px;gap:30px;min-height:0}.service-hero figure{aspect-ratio:4/3}.service-hero .h-l{font-size:40px}.service-hero .lead{margin-top:20px;font-size:18px}.service-kicker{font-size:15px;margin-bottom:14px}
 .service-hero .cta-row{margin-top:20px}
 .story-photos{grid-template-columns:1fr;gap:28px}.story-photos figure:first-child{grid-column:auto}.wide-photo{aspect-ratio:4/3}
 .mobile-contact{display:flex}
 .s-contact{padding-block:52px 72px}.form-card{padding:22px;margin-top:28px}.two{grid-template-columns:1fr}.selection{flex-wrap:wrap}.selection .copy{margin-left:auto}.f-foot .send{width:100%}
 .print-grid{grid-template-columns:1fr 1fr;gap:28px 16px}.print-card img{height:240px;padding:12px}.print-card h3{font-size:17px}
 .print-config{grid-template-columns:1fr;gap:30px}.print-options .pill{width:100%}
 .g-hero{padding-top:48px}.filters .seg button{font-size:13px;padding-inline:12px}.masonry{columns:2 140px;column-gap:12px;padding-bottom:64px}.gtile{margin-bottom:12px}
 .lb-context h2{font-size:16px}.lb-context p{font-size:13px}.lb .pill{padding:10px 14px;max-width:240px}
 .s-mask{height:190svh}.s-rise{height:210svh;margin-top:-45svh}
 .video-control{top:84px;bottom:auto;right:16px}
 .s-mask .h-l,.rise-cap .h{font-size:34px}
}
@media (max-width:360px){.lnav .name{font-size:16px}.service-copy{padding:12px}.service-copy h3{font-size:17px}.hero-copy .slogan{font-size:34px}.chip{padding-inline:13px}.print-card img{height:200px}.lb-context p{display:none}}
@media (prefers-reduced-motion:reduce){
 html.hero-motion .s-hero,.s-hero{height:auto!important}
 html.hero-motion .s-hero .stick,.s-hero .stick{position:relative;height:auto!important}
 html.hero-motion .hero-media,.hero-media{position:relative!important;inset:auto!important;width:calc(100% - 2 * var(--g))!important;height:60svh!important;margin:0 auto!important;transform:none!important}
 .hero-copy{opacity:1!important;transform:none!important}
 .hero-say{display:none!important}.hm-in{border-radius:var(--r)!important}.hm-in img{transform:none!important}
 .s-mask,.s-rise{height:auto!important;min-height:60svh;margin-top:0!important}
 .s-mask .stick,.s-rise .stick{height:65svh;position:relative}
 .mask-copy{opacity:1;transform:none}.s-mask canvas{display:none}
 .rise-cap .r1{display:none}.rise-cap .r2{opacity:1}
}
html:not(.js) .s-mask{height:65svh}
html:not(.js) .s-mask .stick{position:relative;height:65svh}
html:not(.js) .s-mask canvas{display:none}
html:not(.js) .mask-copy{opacity:1}
html:not(.js) .s-rise{display:none}
.static-drone .s-mask,.static-drone .s-rise{height:auto;min-height:60svh;margin-top:0}
.static-drone .s-mask .stick,.static-drone .s-rise .stick{height:65svh;position:relative}
.static-drone .mask-copy{opacity:1;transform:none}
.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}

.service-hero figure picture{display:block;width:100%;height:100%}

/* The chosen Załamanie ribbon. Static identity is available before animation. */
.lnav .brand-mark{width:48px;height:23px;object-fit:contain}
.lnav .brand-name{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:23px;letter-spacing:-.025em}
.brand:hover .brand-mark{transform:translateY(-1px)}
html.hero-motion .brand-mark{animation:brand-arrive 1.65s cubic-bezier(.16,1,.3,1) both}
@keyframes brand-arrive{from{opacity:.1;transform:perspective(300px) rotateX(65deg) rotateY(-25deg)}to{opacity:1;transform:perspective(300px) rotateX(0) rotateY(0)}}
.signature-stage{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 24px 62px;margin:0 0 64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 50% 47%,rgba(242,169,59,.025),transparent 62%);isolation:isolate}
.signature-stage>.eyebrow{font-size:13px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;color:var(--gray-2)}
.signature-object{position:relative;width:min(100%,700px);aspect-ratio:1200/630}
.signature-object canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.signature-static{position:absolute;left:10.4167%;top:14.127%;width:79.1667%;height:71.746%;object-fit:contain}
.signature-active canvas{opacity:1}.signature-active .signature-static{opacity:0}
.signature-name{width:min(100%,430px);margin:10px 0 0;line-height:1}
.signature-name img{width:100%;height:auto}
.signature-caption{font-size:11px!important;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--gray-2);margin:5px 0 0}
.signature-control{position:absolute;bottom:8px;right:0;min-height:44px;padding:10px 14px;border:0;background:transparent;color:var(--gray-2);font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.signature-control:hover{color:var(--white)}
.footer-brand{display:inline-flex;align-items:center;gap:20px;text-decoration:none;margin:12px 0 36px;max-width:100%}
.footer-brand>img{width:76px;height:36px;object-fit:contain}
.footer-brand>span{font-family:Georgia,'Times New Roman',serif;font-size:26px;line-height:1.3;letter-spacing:-.02em}
.footer-brand small{display:block;font-family:var(--text);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-2);margin-top:5px}
@media(max-width:700px){
 .lnav .brand-name{font-size:17px}.lnav .brand-mark{width:45px;height:22px}
 .signature-stage{padding:32px 0 60px;margin-bottom:40px}.signature-stage>.eyebrow{font-size:11px;margin-bottom:12px}
 .signature-name{width:min(85%,320px);margin-top:16px}.signature-caption{font-size:9px!important;letter-spacing:.18em;margin-top:8px}
 .signature-control{right:-10px;font-size:11px}.footer-brand{gap:16px}.footer-brand>img{width:62px;height:30px}.footer-brand>span{font-size:23px}
}
@media(prefers-reduced-motion:reduce){.brand-mark{animation:none!important}}
.reduced-motion .brand-mark{animation:none!important}

/* Enquiry story: one stage owns both image and copy, with space to read. */
.process-nav{display:none}
.process-scenes{list-style:none;padding:0;margin:0;display:grid;gap:64px}
.process-scene{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
.process-scene .mock{position:relative;inset:auto;opacity:1;transform:none;height:420px;pointer-events:auto}
.process-copy h3{font:600 clamp(26px,3vw,42px)/1.1 var(--sans);letter-spacing:-.03em;margin:16px 0}
.process-copy p{font-size:clamp(16px,1.5vw,19px);line-height:1.55;color:var(--gray-2);margin:0;max-width:440px}
.process-copy .more{display:inline-flex;min-height:44px;align-items:center;margin-top:12px}
.process-scene .m-mail .ln,.process-scene .mg-grid>*{opacity:1;transform:none}
.process-motion .process-track{height:480svh;position:relative;margin-top:32px}
.process-motion .process-pin{position:sticky;top:64px;height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center;gap:30px;padding-block:24px}
.process-motion .process-nav{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.process-nav button{border:1px solid var(--line);border-radius:999px;min-height:44px;background:transparent;color:var(--gray-2);font:500 14px var(--text);padding:9px 16px;cursor:pointer}
.process-nav button[aria-current]{background:var(--white);color:var(--black);border-color:var(--white)}
.process-motion .process-scenes{display:grid;gap:0}
.process-motion .process-scene{grid-area:1/1;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(12px);transition:none}
.process-motion .process-scene.is-current{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:opacity .22s,transform .3s}
.process-motion .process-scene .mock{height:min(58svh,480px)}
.process-motion .m-mail:not(.play) .ln,.process-motion .m-gal:not(.play) .mg-grid>*{opacity:0;transform:translateY(8px)}
@media(max-width:900px){
 .process-scene{grid-template-columns:1fr;gap:22px}.process-scene .mock{height:360px}
 .process-motion .process-track{height:560svh}
 .process-motion .process-pin{justify-content:center;gap:18px;padding-block:16px}
 .process-motion .process-scenes{flex:none;min-height:0}
 .process-motion .process-scene{gap:20px}
 .process-motion .process-scene .mock{height:clamp(240px,38svh,360px)}
 .process-nav{gap:6px}.process-nav button{padding:8px 11px;font-size:12px}
 .process-copy h3{font-size:27px;margin:10px 0}.process-copy p{font-size:16px}
 .process-copy .eyebrow{font-size:11px}.process-copy{min-height:190px}
 .process-motion .m-form{gap:8px;padding:18px}.process-motion .mf-chips i{font-size:11px;padding:5px 9px}
 .process-motion .mf-chips{padding-right:50px}.process-motion .mf-row b{font-size:13px}.process-motion .mf-row{padding:6px 10px}.process-motion .mf-send{height:34px;font-size:13px}
 .process-motion .m-mail{padding:20px}.process-motion .mm-subj{margin:12px 0 8px;font-size:18px}.process-motion .m-mail .ln{font-size:14px;line-height:1.4;margin-bottom:8px}
}
@media(max-height:600px){.process-motion .process-track{height:auto}.process-motion .process-pin{position:static;height:auto}.process-motion .process-nav{display:none}.process-motion .process-scenes{gap:64px}.process-motion .process-scene{grid-area:auto;visibility:visible;opacity:1;transform:none;pointer-events:auto}.process-motion .process-scene .mock{height:320px}}
@media(prefers-reduced-motion:reduce){.process-motion .process-track{height:auto}.process-motion .process-pin{position:static;height:auto}.process-motion .process-nav{display:none}.process-motion .process-scenes{gap:64px}.process-motion .process-scene{grid-area:auto;visibility:visible;opacity:1;transform:none;pointer-events:auto}}

/* A continuous aerial chapter, with one sticky surface and one clock. */
.drone-chapter{height:440svh;position:relative}
.drone-stage{position:sticky;top:0;height:100svh;overflow:clip;isolation:isolate;background:#0b0b0c}
.drone-stage>.s-mask,.drone-stage>.s-rise{position:absolute;inset:0;height:100%;margin:0}
.drone-stage>.s-mask{z-index:1}.drone-stage>.s-rise{z-index:2;pointer-events:none}
.drone-stage .stick{position:relative;top:auto;height:100%;width:100%}
.static-drone .drone-chapter{height:auto}.static-drone .drone-stage{position:static;height:auto;overflow:visible}
.static-drone .drone-stage>.s-mask,.static-drone .drone-stage>.s-rise{position:relative;inset:auto;height:65svh;opacity:1}
.static-drone .drone-stage .stick{height:65svh}
@media(max-width:700px){.drone-chapter{height:490svh}}
html:not(.js) .drone-chapter{height:auto}html:not(.js) .drone-stage{position:static;height:65svh}
html:not(.js) .drone-stage>.s-mask{position:relative;height:65svh}
@media(prefers-reduced-motion:reduce){.drone-chapter{height:auto}.drone-stage{position:static;height:auto}.drone-stage>.s-mask,.drone-stage>.s-rise{position:relative;height:65svh}.drone-stage .stick{height:65svh}}

@media(max-width:900px){.process-motion .process-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:6px}.process-nav button{padding:8px 3px;min-width:0;white-space:nowrap}}
@media(max-width:900px) and (max-height:760px){.process-motion .process-scene .mock{height:clamp(190px,30svh,240px)}.process-copy{min-height:160px}.process-copy h3{font-size:24px}.process-copy p{font-size:14px}.process-motion .m-form{padding:14px;gap:5px}.process-motion .mf-chips{display:none}.process-motion .m-mail .ln{font-size:12px}.process-motion .mm-subj{font-size:16px;margin:8px 0}.process-motion .mm-head{padding-bottom:8px}.process-motion .mg-grid{gap:5px}.process-motion .mg-dl{font-size:12px;padding:6px 10px}}
.m-mail .tag{top:auto;bottom:12px;right:14px}
@media(max-width:360px){.process-nav button{font-size:10.5px;padding-inline:1px}.process-motion .m-mail{padding:14px}.process-motion .mm-head b{font-size:13px}.process-motion .mm-head small{font-size:11px}.process-motion .mm-head .av{width:32px;height:32px;font-size:12px}.process-motion .m-mail .ln{font-size:11.5px;line-height:1.3;margin-bottom:6px}.process-motion .m-mail .ln:nth-of-type(4){display:none}}

.drone-phase-anchor{position:absolute;top:calc(54% - 54svh);width:1px;height:1px;pointer-events:none}.static-drone .drone-phase-anchor{top:65svh}

/* Full-screen scenes stay together while the document scrolls naturally. */
.process-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.process-progress,.process-hint{display:none}
.process-motion.s-proc{padding-block:48px 0;margin-bottom:64px}
.process-motion .process-track{height:560svh;margin-top:0}
.process-motion .process-pin{position:sticky;top:64px;height:calc(100svh - 80px);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:22px;padding:20px 0;justify-content:normal}
.process-motion .process-heading .eyebrow,.process-motion .proc-lead{display:none}
.process-motion .process-heading .h{font-size:clamp(26px,3.2vw,42px);line-height:1.08;margin:0}
.process-motion .process-progress{display:flex;justify-content:center;gap:28px;list-style:none;padding:0;margin:0}
.process-progress li{color:var(--gray-2);font:500 14px var(--text);padding-bottom:8px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.process-progress li[aria-current]{color:var(--white);border-bottom-color:var(--amber)}
.process-motion .process-scenes,.process-motion .process-scene{height:100%;min-height:0}
.process-motion .process-scene .mock{height:100%;min-height:0;max-height:520px}
.process-motion .process-hint{display:block;font-size:12px;line-height:1.4;color:var(--gray-2);margin:0}
.process-motion .ln,.process-motion .mg-grid>*,.process-motion .m-shoot img,.process-motion .vf-af{transition:none!important;animation:none!important}
body.process-reading .mobile-contact{display:none!important}
@media(max-width:900px){
 .process-motion .process-track{height:660svh}
 .process-motion .process-pin{gap:16px;padding-block:16px}
 .process-motion .process-heading .h{font-size:clamp(24px,6vw,30px)}
 .process-motion .process-scene{grid-template-rows:minmax(0,1fr) auto;gap:16px}
 .process-motion .process-copy{min-height:0}.process-motion .process-copy .eyebrow{display:none}
 .process-motion .process-copy h3{font-size:25px;margin:0 0 8px}
 .process-motion .process-copy p{font-size:15px;line-height:1.45}
 .process-motion .process-copy .more{display:none}
 .process-motion .process-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}
 .process-progress li{font-size:12px;text-align:center;white-space:nowrap;padding-bottom:8px}
 .process-motion .m-mail .ln:nth-of-type(4){display:block}
}
@media(max-width:900px) and (max-height:760px){.process-motion .process-pin{gap:12px;padding-block:12px}.process-motion .process-copy h3{font-size:23px}.process-motion .process-copy p{font-size:14px}.process-motion .process-hint{font-size:11px}.process-motion .mf-chips{display:flex}}
@media(max-width:360px){.process-progress li{font-size:10.5px}.process-motion .process-copy h3{font-size:22px}}

/* Poprawki Claude 2026-10-06 */

/* 1. Znak w nagłówku: jedna linia, ten sam podpis co w sekcji „Za obiektywem” zamiast Georgii */
.lnav .brand-name{display:flex;align-items:center;font-size:0;line-height:0}
.lnav .brand-name .brand-sign{display:block;height:18px;width:auto}
.footer-brand>span{display:flex;flex-direction:column;align-items:flex-start;font-size:0}
.footer-brand .brand-sign{display:block;height:20px;width:auto}
.footer-brand small{font-size:10px!important}
@media(max-width:700px){.lnav .brand-name .brand-sign{height:15px}.lnav .brand{gap:10px}}
@media(max-width:350px){.lnav .brand-name .brand-sign{height:13px}}

/* 3. „Za obiektywem”: mniej pustego miejsca, szybciej do zdjęcia i tekstu */
.signature-stage{padding:36px 24px 40px;margin-bottom:48px}
.signature-object{width:min(100%,520px)}
.signature-name{width:min(100%,340px)}
@media(max-width:700px){.signature-stage{padding:24px 0 32px;margin-bottom:32px}.signature-object{width:min(100%,360px)}}

/* 4. Zaproszenie do galerii: wyraźny przycisk zamiast pustej szarej planszy */
.gallery-invitation{background:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding-block:56px}
.gallery-invitation>div{display:grid;grid-template-columns:1fr auto;grid-template-areas:"e a" "h a" "l c";gap:6px 48px;align-items:center;text-align:left}
.gallery-invitation .eyebrow{grid-area:e;margin:0}
.gallery-invitation h2{grid-area:h;margin:0}
.gallery-invitation .gi-lead{grid-area:l;color:var(--gray-2);font-size:17px;margin:6px 0 0;max-width:520px}
.gallery-invitation .gi-open{grid-area:a;justify-self:end}
.gallery-invitation .chips-row{grid-area:c;justify-content:flex-end;margin:0}
.gallery-invitation .chips-row a{min-height:40px;font-size:14px;padding:0 16px}
@media(max-width:800px){
 .gallery-invitation{padding-block:44px}
 .gallery-invitation>div{grid-template-columns:1fr;grid-template-areas:"e" "h" "l" "a" "c";gap:8px}
 .gallery-invitation .gi-open{justify-self:start;margin-top:16px}
 .gallery-invitation .chips-row{justify-content:flex-start;margin-top:12px}
}

/* 5. Karty usług na telefonie: czytelniejszy opis */
@media(max-width:700px){.services-motion .service-copy p,.service-copy p{font-size:13.5px;line-height:1.35}}

/* 6. Przycisk „Zapytaj o wycenę” na telefonie nie zasłania scen z drona */
body.scene-reading .mobile-contact{opacity:0;transform:translateY(16px);pointer-events:none}
.mobile-contact{transition:opacity .35s ease,transform .35s ease}
body.scene-reading .mobile-contact .pill{pointer-events:none}

/* 7. Po scenie wznoszenia krótszy odstęp przed historiami */
.scene-result{padding-block:24px 8px}

/* 9. Mniej przewijania (Michał 6.10: „za dużo jest tego przewijania”). Wzór: Apple i nagradzane strony fotografów,
   czyli krótkie rozdziały, praca na górze, animacja tylko tam, gdzie coś opowiada. */
@media(prefers-reduced-motion:no-preference){
 html.hero-motion .s-hero{height:160svh}
 .services.services-motion{height:190svh}
 .drone-chapter{height:300svh}
}
@media(max-width:900px) and (prefers-reduced-motion:no-preference){
 html.hero-motion .s-hero{height:160svh}
 .services.services-motion{height:180svh} /* 7.10: krócej, po wjechaniu kart od razu dalej */
 .drone-chapter{height:330svh}
}

/* 10. Portfolio na górze: „Wybrane prace” */
.s-portfolio{padding-block:clamp(72px,10vw,120px) clamp(48px,6vw,80px)}
.pf-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.pf-head .eyebrow{margin:0 0 10px}
.pf-head .h{margin:0}
.pf-head .lead{margin:14px 0 0;max-width:560px;color:var(--gray-2)}
.pf-head .pill{flex:none}
.pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:36px}
.pf-tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);background:var(--card)}
.pf-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.pf-tile:hover img,.pf-tile:focus-visible img{transform:scale(1.04)}
.pf-cat{position:absolute;left:12px;bottom:12px;font:500 12px var(--text);padding:6px 11px;border-radius:999px;background:rgba(11,11,12,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--white)}
.pf-chips{justify-content:flex-start;margin-top:20px}
.pf-chips a{min-height:40px;font-size:14px;padding:0 16px}
@media(max-width:700px){
 .pf-head{display:block}
 .pf-head .pill{margin-top:20px}
 .pf-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:28px calc(-1*var(--g)) 0;padding:0 var(--g) 4px;scrollbar-width:none;overscroll-behavior-x:contain}
 .pf-grid::-webkit-scrollbar{display:none}
 .pf-tile{flex:0 0 78%;scroll-snap-align:start}
 .pf-chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1*var(--g));padding-inline:var(--g);scrollbar-width:none}
 .pf-chips::-webkit-scrollbar{display:none}
 .pf-chips a{flex:none}
}

/* 11. Pięć usług (osobno Nieruchomości) */
.service-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
@media(max-width:1000px){
 .service-grid{grid-template-columns:1fr 1fr}
 .service-grid .service-card:last-child{grid-column:1/-1;flex-direction:row}
 .service-grid .service-card:last-child .service-image{flex:0 0 44%;aspect-ratio:auto}
 .service-grid .service-card:last-child .service-copy{flex:1}
 .services-motion .service-go{display:none}
}

/* 12. „Od zapytania do zdjęć”: krok po kroku, widać jeden etap i jego przykład; jeden ruch = jeden etap */
html.steps-lock{overflow:hidden;overscroll-behavior:none;overflow-anchor:none}
.s-steps{overflow-anchor:none;min-height:100svh;display:flex;align-items:center;padding-block:calc(64px + 2svh) 3svh;box-sizing:border-box}
.st-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,88px);align-items:center;width:100%}
.st-text .eyebrow{margin:0 0 10px}
.st-text .h{margin:0}
.st-lead{color:var(--gray-2);font-size:17px;margin:10px 0 28px}
.st-progress{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.st-progress li{display:flex;flex-direction:column;gap:8px}
.sp-bar{height:3px;border-radius:3px;background:var(--line);position:relative;overflow:hidden}
.sp-bar::after{content:"";position:absolute;inset:0;background:var(--amber);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.st-progress li.is-done .sp-bar::after,.st-progress li.is-current .sp-bar::after{transform:scaleX(1)}
.sp-lbl{font:500 12px var(--text);color:var(--gray-2);transition:color .3s}
.st-progress li.is-current .sp-lbl{color:var(--white)}
.st-steps{list-style:none;margin:0;padding:0;display:grid}
.st-step{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .45s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1),visibility 0s .45s}
.st-step.is-current{opacity:1;visibility:visible;transform:none;transition:opacity .45s cubic-bezier(.2,.7,.2,1) .08s,transform .55s cubic-bezier(.2,.7,.2,1) .08s,visibility 0s}
.st-kicker{display:block;font:600 13px var(--text);color:var(--amber);letter-spacing:.02em;margin-bottom:10px}
.st-step h3{font:600 clamp(26px,2.6vw,38px)/1.12 var(--sans);letter-spacing:-.03em;margin:0 0 14px}
.st-step p{margin:0;color:var(--gray-2);font-size:clamp(16px,1.35vw,19px);line-height:1.55;max-width:460px}
.st-hint{font-size:12px;color:var(--gray-2);margin:26px 0 0}
.st-cta{display:inline-flex;min-height:44px;align-items:center;margin-top:4px}
.st-static .st-hint{display:none}
.st-stage{list-style:none;margin:0;padding:0;position:relative;height:min(68svh,560px)}
.st-mock{position:absolute;inset:0}
.st-mock .mock{transition:opacity .5s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.st-mock .m-shoot img{transition:none}
.st-static{min-height:0;display:block;padding-block:72px}
.st-static .st-in{grid-template-columns:1fr}
.st-static .st-progress{display:none}
.st-static .st-steps{gap:22px}
.st-static .st-step{grid-area:auto;opacity:1;visibility:visible;transform:none}
.st-static .st-stage{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.st-static .st-mock{position:relative;height:340px}
@media(max-width:900px){
 .s-steps{align-items:flex-start;padding-block:calc(64px + 14px) 14px}
 .st-in{grid-template-columns:1fr;gap:18px}
 .st-text .eyebrow{display:none}
 .st-text .h{font-size:clamp(26px,7vw,34px)}
 .st-lead{font-size:14px;margin:6px 0 16px}
 .st-progress{margin-bottom:18px}
 .sp-lbl{font-size:11px}
 .st-kicker{font-size:12px;margin-bottom:6px}
 .st-step h3{font-size:24px;margin-bottom:8px}
 .st-step p{font-size:15px;line-height:1.5}
 .st-hint,.st-cta{display:none}
 .st-static .st-stage{grid-template-columns:1fr}
 .st-static .st-mock{height:300px}
 .s-steps.st-live{height:100svh;min-height:0}
 .st-live .st-in{display:flex;flex-direction:column;height:100%}
 .st-live .st-text{flex:none}
 .st-live .st-stage{flex:1;min-height:0;height:auto;max-height:480px;width:100%;align-self:stretch}
}
@media(max-width:900px) and (max-height:720px){.st-lead{display:none}.st-progress{margin-top:14px}.st-step p{font-size:14px}}

/* 13. Lenis (smooth.js) */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}


/* 14. Proces, etap 3: wizjer szuka ostrości, ramka AF zaskakuje i miga na zielono (potwierdzenie ostrości) */
.st-mock .vf-af{opacity:0;transform:scale(1.4);transition:none}
.st-mock .m-shoot.af-go .vf-af{animation:af-hunt 1.9s cubic-bezier(.2,.7,.2,1) .35s forwards}
.st-mock .m-shoot.af-done .vf-af{opacity:1;transform:none;border-color:#30D158}
@keyframes af-hunt{
 0%{opacity:0;transform:scale(1.45);border-color:rgba(255,255,255,.9)}
 22%{opacity:1;transform:scale(.9)}
 36%{transform:scale(1.07)}
 48%{transform:scale(.98)}
 56%{transform:scale(1);border-color:rgba(255,255,255,.9);box-shadow:none}
 60%{border-color:#30D158;box-shadow:0 0 0 3px rgba(48,209,88,.35)}
 68%{border-color:rgba(48,209,88,.15);box-shadow:none}
 76%{border-color:#30D158;box-shadow:0 0 0 3px rgba(48,209,88,.35)}
 84%{border-color:rgba(48,209,88,.15);box-shadow:none}
 100%{opacity:1;transform:scale(1);border-color:#30D158;box-shadow:none}
}
@media(prefers-reduced-motion:reduce){.st-mock .m-shoot.af-go .vf-af{animation:none;opacity:1;transform:none;border-color:#30D158}}

/* 15. Hero: pierwszy kadr na pełnym ekranie, ostrzenie AF, migawka, potem nagłówek */
html.hero-motion .hero-media{transform:none}
html.hero-motion .hm-in{border-radius:0;opacity:0}
html.hero-motion:not(.hero-ready) .hm-in{animation:hero-fallback .6s 3.5s forwards}
html.hero-ready .hm-in{opacity:1}
@keyframes hero-fallback{to{opacity:1}}
.hm-top{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.34) 28%,rgba(0,0,0,0) 56%)}
html:not(.hero-motion) .hm-top{display:none}
html.hero-motion .hero-copy .slogan,html.hero-motion .hero-copy .lead,html.hero-motion .hero-copy h1{text-shadow:0 2px 24px rgba(0,0,0,.35)}
html.hero-motion .hero-copy .lead{color:rgba(245,245,247,.88)}
.hero-af{position:absolute;opacity:0;pointer-events:none;border-radius:6px;border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(0,0,0,.25),inset 0 0 0 1px rgba(0,0,0,.15);transform-origin:50% 50%}
.hero-af.ok{border-color:#30D158;animation:hero-af-ok .55s steps(1) 2}
@keyframes hero-af-ok{0%{border-color:#30D158;box-shadow:0 0 0 3px rgba(48,209,88,.35)}50%{border-color:rgba(48,209,88,.15);box-shadow:none}}
.hero-flash{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}

/* 16. Wejście na stronę z logo v21 (7.10 wieczór, Michał): przy każdym wejściu i odświeżeniu, zanim pokaże się strona.
   Animacja 3D „Z ziemi w powietrze” na pełnym ekranie, potem znak przelatuje na miejsce logo w nagłówku,
   a pod spodem odsłania się hero. Bez JS, przy ograniczeniu ruchu, przy powrocie i przejściu z podstrony: brak wejścia. */
.intro{display:none}
html.intro-on .intro{display:block;position:fixed;inset:0;z-index:300;background:#0b0b0c;cursor:pointer}
html.intro-on,html.intro-on body{overflow:hidden}
.intro-stage{position:absolute;inset:0}
.intro canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.intro{--mw:min(56vw,620px)}
.intro .lo-mark{position:absolute;left:50%;top:50%;width:var(--mw);aspect-ratio:1140/546;height:auto;transform:translate(-50%,-50%);opacity:0;transform-origin:0 0}
@media(max-width:700px){.intro{--mw:78vw}}
/* Podpis pod znakiem (7.10, Michał): „Michał Nowakowski” pisze się od lewej, potem „Fotografia i film”. */
.intro .lo-name{position:absolute;left:50%;top:calc(50% + var(--mw)*.2395 + 3.5vh);width:calc(var(--mw)*.62);height:auto;transform:translateX(-50%);clip-path:inset(0 100% 0 0);transform-origin:0 0}
.intro .lo-cap{position:absolute;left:0;right:0;top:calc(50% + var(--mw)*.2395 + 3.5vh + var(--mw)*.62/6.48 + 16px);margin:0;text-align:center;font:400 clamp(11px,1vw,14px) var(--text);letter-spacing:.32em;text-transform:uppercase;color:var(--gray-2);opacity:0}
html.intro-on .lnav .brand-mark,html.intro-on .lnav .brand-sign{opacity:0;animation:none}
html.intro-done .brand-mark{animation:none!important}

/* 17. Telefon: „Co możesz zamówić” jako lista (7.10, Michał: kafelki były poucinane w przeglądarce w aplikacji).
   Pięć kart w jednym przyklejonym ekranie telefonu nie mieści zdjęcia i tekstu w siatce 2×3.
   Wiersz: miniatura po lewej, nazwa, opis (maks. 2 linie) i cena po prawej. Tekst nigdy nie jest ucięty, zmniejsza się zdjęcie. */
@media(max-width:700px){
 .services-motion .services-stage{padding-block:18px 20px;gap:14px}
 .services-motion .service-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(0,1fr);gap:10px}
 .services-motion .service-grid .service-card,.services-motion .service-grid .service-card:last-child{grid-column:auto;flex-direction:row;height:auto;min-height:0}
 .services-motion .service-grid .service-image,.services-motion .service-grid .service-card:last-child .service-image{flex:0 0 36%;aspect-ratio:auto;min-height:0}
 .services-motion .service-grid .service-copy,.services-motion .service-grid .service-card:last-child .service-copy{flex:1;justify-content:center;padding:10px 14px;gap:3px;min-width:0}
 .services-motion .service-copy h3{font-size:18px}
 .services-motion .service-copy p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .services-motion .service-price{margin-top:2px}
}
@media(max-width:700px) and (max-height:720px){.services-motion .service-copy p{-webkit-line-clamp:1}}

/* 18. Cena brutto obok netto (7.10, audyt): drobniej, w nowej linii pod kwotą. */
.pr .pr-gross{display:block;margin-top:2px;font-size:14px;color:var(--gray-2);font-weight:400}

/* 19. „Od zapytania do zdjęć” bez blokady (7.10 wieczór): wysoka sekcja, przyklejony ekran, etap z miejsca na stronie.
   Długość: ekran + 3 odcinki po 70svh (telefon 60svh). Nic nie zatrzymuje przewijania. */
.s-steps.st-live{display:block;height:calc(100svh + 3 * 70svh);min-height:0;padding-block:0;overflow:visible}
.st-live .st-in{position:sticky;top:0;height:100svh;box-sizing:border-box;padding-block:calc(64px + 2svh) 3svh;align-content:center}
@media(max-width:900px){
 .s-steps.st-live{height:calc(100svh + 3 * 60svh);padding-block:0}
 .st-live .st-in{display:flex;flex-direction:column;height:100svh;padding-block:calc(64px + 14px) 14px;align-content:normal}
}
/* 7.10: pies IMG_2516 w kafelku portfolio: kadr wyżej, żeby głowa z ringiem nie była ucięta. */
.pf-tile img[src*="pies-aport"]{object-position:50% 34%}

/* 20. „Wybrane prace” jako bento (7.10, Michał: kafelki się powtarzały: przyroda, dron, pies, przyroda, dron, pies).
   Po jednym kadrze z każdej kategorii: duży pies po lewej, czapla i dron obok, szeroki portret pod nimi. */
@media(min-width:701px){
 .pf-grid{grid-template-columns:1.1fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));height:min(74vh,660px)}
 .pf-grid .pf-tile{aspect-ratio:auto;height:100%}
 .pf-grid .pf-tile:nth-child(1){grid-row:1/3}
 .pf-grid .pf-tile:nth-child(4){grid-column:2/4}
}

/* 21. „Wróć” na podstronach (7.10): wraca w to samo miejsce, z którego ktoś przyszedł. */
.back-bar{padding-top:18px}
.back-pill{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:999px;background:rgba(245,245,247,.1);color:var(--white);text-decoration:none;font:500 14px var(--text);transition:background .2s}
.back-pill:hover,.back-pill:focus-visible{background:rgba(245,245,247,.18)}
.back-pill span{font-size:16px;line-height:1}

/* 22. „Wybrane prace” na telefonie: przypięta sekcja, kafle przesuwają się w bok przy przewijaniu w dół (home-motion.js). */
@media(max-width:700px){
 .pf-pinned .pf-grid{overflow:visible;scroll-snap-type:none;will-change:transform}
 .pf-pinned .pf-tile{transition:none;transform-origin:50% 60%}
}

/* 23. Kontakt jako scena (7.10, Michał: sekcja ma zatrzymać i zachęcić do kontaktu).
   Komputer: tekst i zachęty po lewej (przyklejone), formularz po prawej; ciepła poświata. Telefon: jedno pod drugim. */
.s-contact{position:relative;isolation:isolate;text-align:left}
.s-contact::before{content:"";position:absolute;inset:-10% -20% 0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 45% at 72% 40%,rgba(242,169,59,.09),transparent 70%),radial-gradient(ellipse 40% 40% at 15% 30%,rgba(242,169,59,.05),transparent 70%)}
.ct-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:start}
.ct-text{position:sticky;top:110px}
.ct-text .eyebrow{margin:0 0 12px}
.ct-h{margin:0;font-size:clamp(40px,5.2vw,76px);line-height:1.02}
.ct-h .w{color:rgba(245,245,247,.22);transition:color .35s}.ct-h .w.on{color:var(--white)}.ct-h .w.g.on{color:var(--amber)}
.s-contact .ct-text .lead{margin:22px 0 0;max-width:460px}
.ct-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.ct-points li{position:relative;padding-left:30px;color:var(--gray-2);font-size:16px;line-height:1.45}
.ct-points li::before{content:"";position:absolute;left:0;top:.35em;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,var(--amber) 0 3px,rgba(242,169,59,.18) 4px 100%)}
.s-contact .ct-text .mail{justify-content:flex-start;margin-top:28px}
.s-contact .form-card{margin:0;max-width:none;box-shadow:0 30px 80px -40px rgba(242,169,59,.35)}
@media(max-width:900px){
 .ct-grid{grid-template-columns:1fr;gap:28px}
 .ct-text{position:static}
 .ct-h{font-size:clamp(34px,10vw,48px)}
}

/* 24. „Wybrane prace” pod myszką (7.10, Michał: kafle mają reagować na kursor). Tylko mysz/gładzik, od 701 px.
   Kafel lekko pochyla się w stronę kursora (home-motion.js), zdjęcie przesuwa się odwrotnie (głębia),
   po kaflu przesuwa się miękkie światło, pozostałe kafle przygasają. */
@media(min-width:701px) and (hover:hover) and (pointer:fine){
 .pf-grid{perspective:1400px}
 .pf-grid .pf-tile{--mx:50%;--my:50%;--px:0px;--py:0px;transform-style:preserve-3d;transition:filter .45s ease,box-shadow .45s ease;will-change:transform}
 .pf-grid .pf-tile img{translate:var(--px) var(--py);scale:1.06;transition:translate .5s cubic-bezier(.2,.7,.2,1),scale .7s cubic-bezier(.2,.7,.2,1)}
 .pf-grid .pf-tile:hover img{scale:1.12}
 .pf-grid .pf-tile::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .45s ease;
  background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,255,255,.16),rgba(255,255,255,.04) 40%,transparent 65%)}
 .pf-grid .pf-tile:hover::after{opacity:1}
 .pf-grid .pf-tile:hover{box-shadow:0 30px 60px -24px rgba(0,0,0,.75);z-index:1}
 .pf-grid:hover .pf-tile:not(:hover){filter:brightness(.55) saturate(.75)}
 .pf-grid .pf-cat{transition:transform .45s cubic-bezier(.2,.7,.2,1),background .3s;z-index:2}
 .pf-grid .pf-tile:hover .pf-cat{transform:translateY(-4px);background:rgba(11,11,12,.75)}
}

/* 25. Kontakt: formularz ma być od razu widoczny i czytelny (Michał 7.10: „ktoś może nie zauważyć, że na dole jest formularz”).
   Karta ma nagłówek i podpis pola wyboru. Telefon: kolejność nagłówek, krótki tekst, formularz, potem zachęty i adres e-mail. */
.fc-head{margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid rgba(245,245,247,.08)}
.fc-title{margin:0;font:700 clamp(22px,2vw,28px)/1.15 var(--sans);color:var(--white);letter-spacing:-.01em}
.fc-sub{margin:8px 0 0;color:var(--gray-2);font-size:15px;line-height:1.45}
.fc-label{margin:0 0 10px;font-size:14px;font-weight:500;color:var(--white)}
.s-contact .form-card{border:1px solid rgba(242,169,59,.28);box-shadow:0 0 0 1px rgba(242,169,59,.06),0 30px 80px -40px rgba(242,169,59,.45)}
@media(max-width:900px){
 .s-contact .ct-grid{display:flex;flex-direction:column;gap:0}
 .s-contact .ct-text{display:contents}
 .s-contact .ct-text .eyebrow{order:1}
 .s-contact .ct-h{order:2}
 .s-contact .ct-text .lead{order:3}
 .s-contact .form-card{order:5;margin-top:22px}
 .s-contact .ct-points{order:6;margin-top:30px}
 .s-contact .ct-text .mail{order:7;margin-top:24px}
}
