:root{
      --blue:#AA0222;
      --blue-2:#C51A3D;
      --ink:#2B2B2D;
      --muted:#707074;
      --soft:#F6F5F5;
      --line:#E7E3E4;
      --white:#fff;
      --radius:30px;
      --shadow:0 20px 60px rgba(70,70,70,.10);
      --max:1200px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;color:var(--ink);background:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased}
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    button{font:inherit}
    .wrap{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
    .nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}
    .nav-inner{height:78px;display:flex;align-items:center;gap:24px;justify-content:space-between}
    .brand{display:flex;align-items:center;gap:16px;min-width:265px}
    .put-logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
    .put-logo-img{width:54px;height:54px;display:block;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.06))}
    .put-text{display:flex;flex-direction:column;line-height:1.02}
    .put-text strong{font-size:14px;font-weight:750;color:var(--ink);letter-spacing:-.01em}
    .put-text span{font-size:11px;color:var(--muted);font-weight:600;display:block;margin-top:3px}
    .brand-divider{width:1px;height:38px;background:rgba(70,70,70,.18);flex-shrink:0}
    .zip-logo-nav{height:60px;width:auto;display:block;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.06))}
    .nav-links{display:flex;align-items:center;gap:24px;font-size:13px;color:#3D3D3F}
    .nav-links a{transition:.2s ease}.nav-links a:hover{color:var(--blue)}
    .employee-portal{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(70,70,70,.16);border-radius:50%;background:rgba(255,255,255,.78);color:var(--ink);flex:0 0 auto;transition:.2s ease}
    .employee-portal:hover,.employee-portal:focus-visible{color:var(--blue);border-color:rgba(170,2,34,.35);background:#fff;box-shadow:0 7px 20px rgba(70,70,70,.09);outline:none;transform:translateY(-1px)}
    .employee-portal svg{width:20px;height:20px;display:block}
    .employee-portal .portal-lock{fill:var(--blue);stroke:#fff;stroke-width:1.3}
    .employee-portal:after{content:"Strefa pracownika";position:absolute;right:0;top:calc(100% + 10px);padding:7px 10px;border-radius:9px;background:var(--ink);color:#fff;font-size:11px;font-weight:650;line-height:1;white-space:nowrap;opacity:0;visibility:hidden;transform:translateY(-3px);transition:.18s ease;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.14)}
    .employee-portal:hover:after,.employee-portal:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)}
    .menu-btn{display:none;border:0;background:transparent;font-size:24px;cursor:pointer}

    .hero{min-height:calc(100vh - 64px);display:flex;align-items:center;padding:74px 0 54px;overflow:hidden;position:relative;background-image:url("../img/hero-smart-factory.webp");background-size:64% auto;background-position:right center;background-repeat:no-repeat;background-color:#F8F6F7}
    .hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.92) 30%,rgba(255,255,255,.64) 48%,rgba(255,255,255,.22) 65%,rgba(255,255,255,.04) 100%);pointer-events:none}
    .hero-grid{display:block;position:relative;z-index:1}
    .eyebrow{font-family:"Arial Narrow","Aptos Narrow","Roboto Condensed","Helvetica Neue Condensed",Arial,sans-serif;font-size:22.5px;font-stretch:condensed;font-weight:600;color:var(--blue);letter-spacing:.045em;margin-bottom:16px}
    h1{font-size:clamp(48px,6.4vw,86px);line-height:.98;letter-spacing:-.055em;margin:0 0 26px;max-width:850px}
    .hero p{font-size:clamp(19px,2vw,24px);line-height:1.35;color:var(--muted);max-width:700px;margin:0 0 32px}
    .hero-grid > div:first-child{max-width:760px}
    .actions{display:flex;gap:12px;flex-wrap:wrap}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 20px;font-size:15px;font-weight:650;transition:.25s ease;border:1px solid transparent}
    .btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:#7F011A;transform:translateY(-1px)}
    .btn.ghost{border-color:#CAC5C7;background:rgba(255,255,255,.65)}.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}

    .hero-visual{aspect-ratio:1/1;border-radius:42px;background:linear-gradient(145deg,#2F2F31,#464646 58%,#AA0222);position:relative;box-shadow:0 35px 90px rgba(170,2,34,.20);overflow:hidden}
    .factory-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent)}
    .orb{position:absolute;border-radius:50%;filter:blur(2px);background:radial-gradient(circle at 30% 30%,#F2A1B2,rgba(170,2,34,.16) 55%,transparent 70%);width:330px;height:330px;right:-55px;top:10px}
    .line{position:absolute;height:3px;background:linear-gradient(90deg,transparent,#F0A6B5,transparent);transform-origin:left center;opacity:.8}
    .line.a{width:82%;left:10%;top:33%;transform:rotate(13deg)} .line.b{width:70%;left:18%;top:58%;transform:rotate(-17deg)} .line.c{width:55%;left:20%;top:72%;transform:rotate(4deg)}
    .node{position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.12),0 0 30px #D73D5D}
    .n1{left:20%;top:29%}.n2{left:58%;top:39%}.n3{left:72%;top:61%}.n4{left:37%;top:68%}
    .visual-label{position:absolute;left:28px;right:28px;bottom:26px;padding:20px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);backdrop-filter:blur(14px);border-radius:22px;color:#fff}
    .visual-label b{font-size:18px}.visual-label span{display:block;color:rgba(255,255,255,.7);font-size:13px;margin-top:4px}

    section{padding:110px 0}
    .section-head{text-align:center;max-width:850px;margin:0 auto 56px}
    .section-head.left{text-align:left;margin-left:0}
    .kicker{color:var(--blue);font-weight:700;font-size:14px;margin-bottom:10px}
    h2{font-size:clamp(38px,5vw,64px);line-height:1.03;letter-spacing:-.045em;margin:0 0 18px}
    .section-head p{font-size:19px;color:var(--muted);margin:0}
    .soft{background:var(--soft)}

    .study-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
    .study-card{min-height:270px;border-radius:var(--radius);padding:38px 40px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:#F1EFEF;border:1px solid #E5E0E2;transition:.3s ease}
    .study-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#D9C9CD}
    .project-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 22%,rgba(0,0,0,.75) 100%);z-index:1}
    .study-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--blue);z-index:1}
    .study-art:after{content:"";position:absolute;inset:12%;border:1px solid rgba(255,255,255,.32);border-radius:18px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
    .card-copy{position:relative;z-index:2;color:var(--ink);max-width:100%}
    .card-copy h3{font-size:clamp(27px,2.5vw,34px);letter-spacing:-.035em;line-height:1.08;margin:0 0 16px;max-width:520px}
    .card-copy p{color:var(--muted);font-size:17px;line-height:1.55;margin:0 0 22px;max-width:520px}
    .text-link{font-weight:700;color:var(--blue)}.text-link:hover{text-decoration:underline}

    .research-stack{display:grid;gap:24px}
    .research{display:grid;grid-template-columns:1fr 1fr;min-height:440px;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line)}
    .research:nth-child(even) .research-visual{order:-1}
    .research-copy{padding:60px;display:flex;flex-direction:column;justify-content:center}
    .research-copy .num{font-size:13px;color:var(--blue);font-weight:800;letter-spacing:.08em;margin-bottom:18px}
    .research-copy h3{font-size:40px;line-height:1.05;letter-spacing:-.035em;margin:0 0 17px}
    .research-copy p{font-size:18px;color:var(--muted);margin:0 0 24px}
    .tags{display:flex;flex-wrap:wrap;gap:8px}.tag{font-size:12px;padding:7px 10px;border-radius:999px;background:var(--soft);border:1px solid var(--line);font-weight:650}
    .research-visual{position:relative;min-height:380px;background:#343436 center/cover no-repeat;overflow:hidden}
    .rv1{background-image:url("../img/badania-cyfryzacja-produkcji.webp")}
    .rv2{background-image:url("../img/badania-analiza-danych.webp")}
    .rv3{background-image:url("../img/badania-planowanie-sterowanie.webp")}
    .rv4{background-image:url("../img/badania-ekoprojektowanie-wyrobow.webp");background-size:cover;background-position:center center;background-repeat:no-repeat;background-color:#F2F0F1}}
    .research-visual:before{content:none;position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.38) 0 2px,transparent 3px);background-size:36px 36px;transform:perspective(500px) rotateX(58deg) rotateZ(-18deg);opacity:.7}
    .research-visual:after{content:none;position:absolute;width:170px;height:170px;border:1px solid rgba(255,255,255,.45);border-radius:28px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(18deg);box-shadow:0 0 0 35px rgba(255,255,255,.05),0 0 60px rgba(211,74,102,.22)}

    .stats{padding:70px 0;background:var(--ink);color:#fff}
    .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
    .stat b{font-size:48px;letter-spacing:-.04em}.stat span{display:block;color:#BAB6B8;font-size:14px;margin-top:4px}

    .project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
    .project-card{min-height:270px;height:auto;border-radius:var(--radius);position:relative;overflow:hidden;padding:34px 36px;display:flex;align-items:flex-end;background:#343436;transition:.3s ease}
    .project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
    .project-bg{position:absolute;inset:0;transition:.5s ease}
    .project-card:hover .project-bg{transform:scale(1.04)}
    .bg1{background:linear-gradient(145deg,#3B3B3D,#77152B)}
    .bg2{background:linear-gradient(145deg,#3B383A,#8A2740)}
    .bg3{background:linear-gradient(145deg,#333335,#AA0222)}
    .bg4{background:linear-gradient(145deg,#363638,#731529)}
    .project-copy{z-index:2;color:#fff;max-width:560px}.project-copy h3{font-size:30px;margin:0 0 8px;letter-spacing:-.03em}.project-copy p{color:rgba(255,255,255,.78);margin:0 0 14px;line-height:1.48}
    .project-open{appearance:none;border:0;background:transparent;padding:0;color:#fff;font:inherit;font-weight:700;cursor:pointer;text-align:left}.project-open:hover{text-decoration:underline}.project-open:focus-visible{outline:2px solid #fff;outline-offset:5px;border-radius:2px}
    .project-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(24,24,26,.66);backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}
    .project-modal-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
    .project-modal{width:min(780px,100%);max-height:min(84vh,820px);overflow:auto;background:#fff;border-radius:30px;box-shadow:0 30px 90px rgba(0,0,0,.28);transform:translateY(18px) scale(.985);transition:transform .25s ease;position:relative}
    .project-modal-backdrop.open .project-modal{transform:none}
    .project-modal-head{padding:34px 72px 25px 38px;border-bottom:1px solid var(--line);position:relative}
    .project-modal-head .kicker{margin-bottom:8px}.project-modal-head h3{font-size:clamp(30px,4vw,46px);line-height:1.02;letter-spacing:-.04em;margin:0 0 10px}.project-modal-subtitle{font-size:17px;color:var(--muted);margin:0}
    .project-modal-close{position:absolute;right:24px;top:24px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--soft);color:var(--ink);display:grid;place-items:center;font-size:24px;line-height:1;cursor:pointer;transition:.2s ease}.project-modal-close:hover{background:#e8e8eb;transform:rotate(5deg)}.project-modal-close:focus-visible{outline:2px solid var(--red);outline-offset:3px}
    .project-modal-body{padding:30px 38px 38px}.project-modal-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:28px}.project-meta-item{background:var(--soft);border-radius:18px;padding:16px 18px}.project-meta-item.wide{grid-column:1/-1}.project-meta-item b{display:block;font-size:11px;letter-spacing:.07em;color:var(--red);margin-bottom:4px}.project-meta-item span{font-size:15px;font-weight:650}
    .project-modal-body h4{font-size:18px;margin:26px 0 8px}.project-modal-body p{font-size:16px;color:#4f4f53;margin:0;line-height:1.65}.project-modal-body ul{margin:9px 0 0;padding-left:20px;color:#4f4f53}.project-modal-body li{margin:7px 0;line-height:1.55}.project-result{margin-top:26px;padding:20px 22px;border-left:4px solid var(--red);background:#faf5f6;border-radius:0 18px 18px 0}.project-result b{display:block;margin-bottom:5px}.project-result p{margin:0}
    body.modal-open{overflow:hidden}

    .publication-trigger{cursor:pointer}
    .publication-modal{width:min(940px,100%)}
    .publication-modal-body{padding-top:24px}
    .publication-list{display:flex;flex-direction:column;gap:14px}
    .publication-entry{display:grid;grid-template-columns:48px 1fr;gap:18px;padding:24px;border:1px solid var(--line);background:#fff;border-radius:22px}
    .publication-no{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#f7eaed;color:var(--red);font-weight:800;font-size:12px}
    .publication-entry h4{font-size:21px;line-height:1.2;letter-spacing:-.02em;margin:0 0 10px}
    .publication-authors{font-size:14px!important;color:#5f5f64!important;line-height:1.65!important;margin:0 0 12px!important}
    .publication-description{font-size:15px!important;line-height:1.65!important;margin:0 0 14px!important}
    .publication-role{color:var(--muted);font-size:13px}
    .publication-link{display:inline-flex;align-items:center;color:var(--red);font-weight:700;font-size:13px;transition:.2s ease}
    .publication-link:hover{transform:translateX(2px);color:#7F011A}


    .books-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
    .book-item{padding:22px;border-radius:24px;background:#fff;border:1px solid var(--line);transition:.25s ease}
    .book-item:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.07)}
    .book-cover{aspect-ratio:3/4;border-radius:10px;margin-bottom:20px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;box-shadow:0 15px 35px rgba(0,0,0,.15)}
    .bc1{background:linear-gradient(160deg,#272729,#464646)}.bc2{background:linear-gradient(160deg,#651228,#AA0222)}.bc3{background:linear-gradient(160deg,#333335,#6A6A6D)}.bc4{background:linear-gradient(160deg,#4A1824,#8D2039)}
    .book-cover small{font-size:10px;opacity:.75}.book-cover strong{font-size:22px;line-height:1.03;letter-spacing:-.02em}
    .book-item h4{font-size:17px;line-height:1.25;margin:0 0 7px}.book-item p{font-size:13px;color:var(--muted);margin:0}

    .team-card{border-radius:40px;background:linear-gradient(135deg,#F6F5F5,#F2E8EA);padding:70px;display:grid;grid-template-columns:1fr .85fr;gap:55px;align-items:center;overflow:hidden}
    .team-card h2{font-size:58px}.team-card p{font-size:19px;color:var(--muted);max-width:650px}
    .team-art{aspect-ratio:4/3;border-radius:30px;background:#EDEAEA url("../img/zespol-laboratorium.webp") center/cover no-repeat;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.10)}
    .team-art:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(0,0,0,.02));pointer-events:none}
    .team-art:after{content:"";display:none}

    .contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:stretch}
    .contact-copy h2{font-size:58px}.contact-copy p{font-size:18px;color:var(--muted)}
    .contact-list{margin-top:28px;display:grid;gap:17px}.contact-list b{display:block;font-size:13px;margin-bottom:3px}.contact-list span,.contact-list a{color:var(--muted)}

    .map{min-height:430px;border-radius:30px;position:relative;overflow:hidden;background:#ECE9EA;border:1px solid var(--line)}
    .google-map{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
    .map-schematic{position:absolute;inset:0;overflow:hidden;background:#EEECEE}
    .map-schematic svg{width:100%;height:100%;display:block}
    .map-info{position:absolute;left:24px;bottom:24px;max-width:310px;background:rgba(255,255,255,.96);padding:16px 18px;border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.10);backdrop-filter:blur(10px)}
    .map-info b{display:block;font-size:15px;margin-bottom:4px}.map-info span{display:block;color:var(--muted);font-size:13px;line-height:1.45}
    .map-open{position:absolute;right:24px;bottom:24px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:999px;font-size:13px;font-weight:750;box-shadow:0 10px 25px rgba(0,0,0,.13);transition:.2s ease}
    .map-open:hover{transform:translateY(-2px);background:var(--blue)}
    .river{position:absolute;width:110%;height:90px;background:#E9D5DA;transform:rotate(-21deg);left:-5%;top:45%}
    .pin{position:absolute;left:55%;top:43%;transform:translate(-50%,-100%);width:50px;height:50px;background:var(--blue);border-radius:50% 50% 50% 0;transform-origin:center;rotate:-45deg;box-shadow:0 14px 30px rgba(170,2,34,.22)}
    .pin:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:17px;top:17px}
    .map-label{position:absolute;left:24px;bottom:24px;background:#fff;padding:13px 16px;border-radius:14px;box-shadow:0 10px 25px rgba(0,0,0,.09);font-size:13px;font-weight:700}

    footer{padding:36px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
    .footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

    .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
    @media (max-width:980px){
      .hero{min-height:auto}.hero-grid,.team-card,.contact-grid{grid-template-columns:1fr}.hero-visual{max-width:620px;width:100%;margin:auto}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:rgba(255,255,255,.98);padding:20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.menu-btn{display:block}.brand{min-width:0;gap:10px}.put-text strong{font-size:12px}.put-text span{font-size:10px}.zip-logo-nav{height:42px}.brand-divider{height:28px}.study-grid{grid-template-columns:1fr}.research{grid-template-columns:1fr}.research:nth-child(even) .research-visual{order:initial}.stat-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr}.books-row{grid-template-columns:repeat(2,1fr)}
    }
    @media (max-width:620px){
      .wrap{width:min(var(--max),calc(100% - 24px))}.put-logo-img{width:38px;height:38px}.put-text strong{font-size:11px}.put-text span{font-size:9px}.zip-logo-nav{height:36px}.hero{padding-top:55px}.hero-grid{gap:38px}section{padding:78px 0}.study-card{min-height:230px;padding:30px 28px}.research-copy{padding:34px 26px}.research-copy h3{font-size:34px}.stat-grid{grid-template-columns:1fr 1fr}.stat b{font-size:36px}.books-row{grid-template-columns:1fr}.team-card{padding:34px 24px}.team-card h2,.contact-copy h2{font-size:44px}.project-card{min-height:230px;height:auto;padding:30px 28px}.nav-inner{height:64px}.nav-links{top:64px}.project-modal-backdrop{padding:12px;align-items:flex-end}.project-modal{max-height:92vh;border-radius:26px 26px 0 0}.project-modal-head{padding:28px 60px 20px 24px}.project-modal-body{padding:24px}.project-modal-meta{grid-template-columns:1fr}.project-modal-close{right:18px;top:18px}
    }
    @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}
  
    @media (max-width:980px){
      .hero{background-position:60% center}
      .hero:before{background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 58%,rgba(255,255,255,.58) 100%)}
    }

/* Language switch: added for the bilingual website. */
.lang-switch{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-left:1px solid var(--line);padding-left:13px;font-size:12px;font-weight:750;letter-spacing:.02em}
.lang-switch a{color:var(--muted)}
.lang-switch a[aria-current="page"]{color:var(--blue);pointer-events:none}
.lang-switch a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
.lang-switch span{color:#aaa}
@media (min-width:981px){.nav-links{gap:clamp(9px,1.05vw,17px)}.nav-links{font-size:12px}}
@media (min-width:981px) and (max-width:1150px){.zip-logo-nav{height:49px}.brand{gap:10px}.put-text strong{font-size:12px}.put-text span{font-size:9px}.nav-inner{gap:12px}.nav-links{gap:9px;font-size:11.5px}}
@media (max-width:980px){.lang-switch{border-left:0;border-top:1px solid var(--line);padding:12px 0 0;align-self:flex-start;margin-top:2px}}
@media (max-width:620px){
  .publication-entry{grid-template-columns:1fr;padding:20px}
  .publication-no{width:36px;height:36px}
  .publication-entry h4{font-size:19px}
}
