:root{--bg:#faf8ff;--bg-soft:#f0eafb;--bg-dark:#4a2b78;--text:#241637;--text-light:#ffffff;--muted:#655775;--line:#d8c9ed;--accent:#9370DB;--accent-dark:#7046b5;--accent-soft:#e8ddf7;--white:#fff;--container:1240px;--radius:22px;--radius-sm:12px;--shadow:0 20px 60px rgba(80,48,125,.14);--transition:.22s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea{font:inherit}button{border:0}.container{width:min(calc(100% - 48px),var(--container));margin-inline:auto}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;color:var(--accent-dark);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}.section-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.display{margin:0;font-size:clamp(54px,7vw,104px);line-height:.93;letter-spacing:-.075em}.display span,.accent{color:var(--accent)}.lead{max-width:650px;margin:30px 0 0;color:var(--muted);font-size:18px;line-height:1.7}.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:999px;font-size:13px;font-weight:800;transition:transform var(--transition),background var(--transition),color var(--transition),border-color var(--transition)}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{border:1px solid rgba(112,70,181,.34);background:#eee7fa;color:var(--accent-dark)}.btn-secondary:hover{border-color:var(--accent);background:#e4d8f6}.header-contact{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--accent);border-radius:999px;font-size:13px;font-weight:700;transition:background var(--transition),color var(--transition),transform var(--transition)}.header-contact:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.site-header{position:relative;z-index:20;border-bottom:1px solid var(--line);background:rgba(240,234,251,.96);backdrop-filter:blur(14px)}.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px}.logo{font-size:20px;font-weight:800;letter-spacing:-.05em}.main-nav{display:flex;align-items:center;gap:30px}.main-nav a{position:relative;color:var(--muted);font-size:14px;transition:color var(--transition)}.main-nav a:hover,.main-nav a.active{color:var(--text)}.main-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-31px;height:2px;background:var(--accent)}.menu-toggle{display:none;width:44px;height:44px;border-radius:999px;background:var(--text);color:#fff;cursor:pointer}.hero{padding:88px 0 118px;overflow:hidden;background:linear-gradient(180deg,#f0eafb 0%,#faf8ff 58%,#ffffff 100%)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(420px,.94fr);gap:88px;align-items:center}.hero-copy{max-width:720px}.hero-meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:48px}.hero-meta span{padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;font-weight:700}.hero-photo-wrap{position:relative}.hero-photo-glow{position:absolute;top:-35px;right:-20px;width:240px;height:240px;border-radius:50%;background:var(--accent);opacity:.20;filter:blur(8px)}.hero-photo{position:relative;min-height:680px;overflow:hidden;border-radius:var(--radius);background:var(--accent-soft);border:6px solid rgba(147,112,219,.32);box-shadow:var(--shadow)}.hero-photo img{width:100%;height:680px;object-fit:cover}.hero-photo-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0) 65%)}.hero-photo-caption{position:absolute;right:28px;bottom:28px;left:28px;color:#fff}.hero-photo-caption span{display:block;margin-bottom:9px;opacity:.7;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.hero-photo-caption strong{display:block;max-width:470px;font-size:28px;line-height:1.08;letter-spacing:-.035em}.dark-section{padding:110px 0;background:linear-gradient(135deg,#9370DB 0%,#7046b5 100%);color:#fff}.dark-section .section-label{color:rgba(255,255,255,.72)}.dark-grid{display:grid;grid-template-columns:.62fr 1.38fr;gap:90px}.dark-grid h2{max-width:880px;margin:0;font-size:clamp(44px,5.2vw,76px);line-height:.97;letter-spacing:-.065em}.dark-grid h2 span{color:var(--accent)}.dark-grid p{max-width:680px;margin:28px 0 0;color:rgba(255,255,255,.82);font-size:18px;line-height:1.75}.service-section{padding:110px 0;background:#ffffff}.service-list{margin-top:56px;border-top:2px solid rgba(147,112,219,.28)}.service{display:grid;grid-template-columns:70px 1fr 1.08fr;gap:38px;padding:34px 24px;border-bottom:1px solid var(--line);background:#f5f0fc}.service-number{color:var(--muted);font-size:13px}.service h3{margin:0;font-size:28px;line-height:1.05;letter-spacing:-.035em}.service p{max-width:540px;margin:0;color:var(--muted);line-height:1.7}.blog-preview{padding:110px 0;background:#eee7fa}.section-head-row{display:flex;align-items:end;justify-content:space-between;gap:30px}.section-head-row h2{margin:10px 0 0;font-size:clamp(42px,5vw,72px);line-height:.98;letter-spacing:-.06em}.text-link{font-size:13px;font-weight:800}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}.post-card{min-height:390px;display:flex;flex-direction:column;padding:26px;border:1px solid rgba(112,70,181,.18);border-radius:var(--radius);background:#faf8ff;transition:transform var(--transition),background var(--transition)}.post-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.4)}.post-meta{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.post-card h3{margin:auto 0 0;font-size:29px;line-height:1.08;letter-spacing:-.04em}.post-card p{margin:16px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.cta{padding:125px 0;background:linear-gradient(135deg,#7046b5 0%,#4a2b78 100%);color:#fff}.cta-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:70px;align-items:end}.cta h2{margin:0;max-width:880px;font-size:clamp(58px,7vw,102px);line-height:.91;letter-spacing:-.075em}.cta p{max-width:450px;margin:0;font-size:17px;line-height:1.7;opacity:.85}.cta .btn{margin-top:30px;background:#fff;color:var(--text)}.page-intro{padding:88px 0 70px}.page-intro-grid{display:grid;grid-template-columns:.55fr 1.45fr;gap:70px;align-items:end}.page-intro h1{margin:0;max-width:920px;font-size:clamp(56px,7vw,102px);line-height:.94;letter-spacing:-.075em}.page-intro p{max-width:650px;margin:24px 0 0;color:var(--muted);font-size:18px}.about-section,.projects,.blog-list-section,.contact-section{padding:0 0 110px}.about-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:88px}.about-photo{position:sticky;top:30px;min-height:520px;overflow:hidden;border-radius:var(--radius);background:#e8ddf7;border:5px solid rgba(147,112,219,.24)}.about-photo img{width:100%;height:520px;object-fit:cover}.about-copy p{max-width:720px;margin:0 0 26px;color:#2d2140;font-size:19px;line-height:1.8}.fact-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:50px}.fact{padding:20px;border:1px solid var(--line);border-radius:var(--radius-sm)}.fact strong{display:block;margin-bottom:7px;font-size:13px}.fact span{color:var(--muted);font-size:14px}.project-list{display:grid;gap:26px}.project{display:grid;grid-template-columns:1.2fr .8fr;overflow:hidden;border:1px solid rgba(112,70,181,.22);border-radius:var(--radius);background:#f7f2fd}.project-media{min-height:460px;background:#e8ddf7}.project-media img{width:100%;height:100%;min-height:460px;object-fit:cover}.project-copy{display:flex;flex-direction:column;justify-content:space-between;padding:38px}.project-copy .tag{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.project-copy h2{margin:60px 0 18px;font-size:42px;line-height:1;letter-spacing:-.05em}.project-copy p{margin:0;color:var(--muted);line-height:1.7}.project-link{margin-top:35px;font-size:13px;font-weight:800}.blog-list{border-top:1px solid var(--line)}.blog-item{display:grid;grid-template-columns:150px 1fr 210px;gap:38px;padding:30px 0;border-bottom:1px solid var(--line)}.blog-item-date{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.blog-item h2{margin:0;font-size:34px;line-height:1.05;letter-spacing:-.045em}.blog-item p{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.65}.blog-item-link{align-self:center;justify-self:end;font-size:13px;font-weight:800}.article{padding:10px 0 110px}.article-head{padding:45px 0 70px}.article-head .meta{display:flex;gap:14px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.article-head h1{max-width:1000px;margin:24px 0 0;font-size:clamp(56px,7vw,106px);line-height:.93;letter-spacing:-.075em}.article-intro{max-width:760px;margin:28px 0 0;color:var(--muted);font-size:19px;line-height:1.75}.article-body{width:min(calc(100% - 48px),820px);margin-inline:auto}.article-body p,.article-body li{font-size:18px;line-height:1.85}.article-body h2{margin:56px 0 18px;font-size:34px;line-height:1.05;letter-spacing:-.045em}.article-body ul{padding-left:24px}.article-image{margin:42px 0;overflow:hidden;border-radius:var(--radius-sm);background:#e8ddf7;border:1px solid rgba(147,112,219,.22)}.article-image img{width:100%}.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:80px}.contact-box h2{margin:0;font-size:clamp(42px,5vw,72px);line-height:.97;letter-spacing:-.06em}.contact-box p{max-width:510px;margin:26px 0 0;color:var(--muted);line-height:1.75}.contact-details{margin-top:38px;display:grid;gap:10px}.contact-details a{font-size:18px;font-weight:700}.field textarea{min-height:180px;resize:vertical}.site-footer{padding:28px 0;background:#38205c;color:rgba(255,255,255,.68)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-inner span,.footer-inner a{font-size:11px}.footer-links{display:flex;gap:24px}.footer-links a:hover{color:#fff}.text-link:hover,.project-link:hover,.dark-link:hover{color:var(--accent-dark)}@media(max-width:1000px){.sponsors-head{grid-template-columns:1fr;gap:18px}.hero-grid,.dark-grid,.about-grid,.cta-grid,.contact-grid{grid-template-columns:1fr;gap:52px}.hero-photo{min-height:600px}.hero-photo img{height:600px}.service{grid-template-columns:60px 1fr}.service p{grid-column:2}.post-grid{grid-template-columns:1fr}.project{grid-template-columns:1fr}.project-media,.project-media img{min-height:380px;height:380px}.blog-item{grid-template-columns:110px 1fr}.blog-item-link{grid-column:2;justify-self:start}.page-intro-grid{grid-template-columns:1fr;gap:24px}.about-photo{position:static}}@media(max-width:700px){.container,.article-body{width:min(calc(100% - 32px),var(--container))}.header-inner{min-height:72px}.main-nav{position:fixed;inset:72px 0 0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:20px 16px 40px;background:#eee7fa}.main-nav.open{display:flex}.main-nav a{padding:18px 0;border-bottom:1px solid var(--line);font-size:20px}.main-nav a.active:after{display:none}.header-contact{display:none}.menu-toggle{display:inline-flex;align-items:center;justify-content:center}.hero{padding:62px 0 80px}.display,.page-intro h1,.article-head h1{font-size:clamp(50px,15vw,78px)}.lead,.article-intro{font-size:17px}.hero-photo,.hero-photo img{min-height:470px;height:470px}.hero-photo-caption strong{font-size:23px}.dark-section,.service-section,.blog-preview,.cta{padding:82px 0}.dark-grid h2,.section-head-row h2,.contact-box h2{font-size:48px}.service{grid-template-columns:1fr;gap:12px}.service p{grid-column:auto}.fact-list{grid-template-columns:1fr}.project-copy{padding:28px}.project-copy h2{margin-top:40px;font-size:34px}.blog-item{grid-template-columns:1fr;gap:12px}.blog-item-link{grid-column:auto}.article-head{padding:30px 0 50px}.article-body p,.article-body li{font-size:17px}.footer-inner{align-items:flex-start;flex-direction:column}}

/* Projects preview */
.projects-preview {
  padding: 110px 0;
}

.mini-project-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  grid-template-rows: repeat(2, 290px);
  gap: 18px;
  margin-top: 50px;
}

.mini-project {
  position: relative;
  min-height: 290px;
  overflow: hidden;
  border-radius: var(--radius);
  background: #e8ddf7;
  border: 2px solid rgba(147,112,219,.24);
}

.mini-project-large {
  grid-row: 1 / span 2;
}

.mini-project img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.mini-project:hover img {
  transform: scale(1.035);
}

.mini-project-overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 28px;
  color: #fff;
  background: linear-gradient(to top, rgba(32,23,42,.82), rgba(32,23,42,0) 82%);
}

.mini-project-overlay span {
  display: block;
  margin-bottom: 7px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .72;
}

.mini-project-overlay strong {
  display: block;
  max-width: 420px;
  font-size: 22px;
  line-height: 1.08;
  letter-spacing: -.035em;
}

/* Sponsors / partners marquee */
.sponsors-section{padding:86px 0 78px;background:#ebe3f8;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sponsors-head{display:grid;grid-template-columns:.55fr 1.45fr;gap:60px;align-items:end;margin-bottom:42px}
.sponsors-head p{max-width:660px;margin:0;color:var(--muted);font-size:15px;line-height:1.7}
.sponsor-marquee{width:100%;overflow:hidden}
.sponsor-track{display:flex;width:max-content;gap:18px;will-change:transform;}
.sponsor-item{width:150px;height:100px;display:grid;place-items:center;flex:0 0 auto;padding:15px;border:1px solid rgba(112,70,181,.20);border-radius:16px;background:#faf8ff;box-shadow:0 8px 28px rgba(93,67,130,.06)}
.sponsor-item img{width:100%;height:100%;object-fit:contain;opacity:.82;transition:opacity .25s ease,transform .25s ease}
.sponsor-item:hover img{opacity:1;transform:scale(1.04)}

.dark-link {
  display: inline-block;
  margin-top: 28px;
  color: var(--text-light);
}

@media (prefers-reduced-motion: reduce) {
  .mini-project img,
  .sponsor-item img {
    transition: none;
  }
}

@media (max-width: 1000px) {
  .mini-project-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 340px 340px;
  }

  .mini-project-large {
    grid-row: auto;
    grid-column: 1 / -1;
  }

  .sponsors-head {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

@media (max-width: 700px) {
  .mini-project-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .mini-project,
  .mini-project-large {
    min-height: 300px;
    grid-column: auto;
    grid-row: auto;
  }

  .sponsors-section {
    padding: 72px 0 66px;
  }

  .sponsor-item {
    width: 120px;
    height: 84px;
    padding: 12px;
  }
}


/* Purple-first visual system */
:root{
  --page-purple:#7650b8;
  --page-purple-2:#5c3695;
  --page-purple-dark:#45256f;
  --page-purple-deep:#321952;
  --purple-line:rgba(255,255,255,.18);
  --beige:#eadfc8;
  --beige-soft:#f3ecdf;
  --white:#ffffff;
  --on-purple:rgba(255,255,255,.82);
  --on-purple-soft:rgba(255,255,255,.66);
  --beige-text:#39264f;
}
html,body{background:var(--page-purple);color:#fff}
body{background:var(--page-purple)}
.site-header{background:rgba(69,37,111,.96);border-bottom:1px solid var(--purple-line)}
.logo{display:flex;align-items:center}
.logo img{display:block;width:auto;height:38px;max-width:180px;object-fit:contain}
.main-nav a,.header-contact,.section-label,.eyebrow,.lead,.service p,.post-meta,.post-card p,.page-intro p,.about-copy p,.fact span,.project-copy p,.project-copy .tag,.blog-item-date,.blog-item p,.contact-box p,.sponsors-head p,.article-intro,.article-body,.article-head .meta{color:var(--on-purple)}
.main-nav a:hover,.main-nav a.active{color:#fff}
.main-nav a.active:after{background:var(--beige)}
.header-contact{border-color:var(--beige);color:#fff}
.header-contact:hover{background:var(--beige);color:var(--beige-text)}
.menu-toggle{background:var(--beige);color:var(--beige-text)}
.eyebrow{color:var(--beige)}
.eyebrow:before{background:var(--beige)}
.display span,.accent{color:var(--beige)}
.hero{background:linear-gradient(180deg,var(--page-purple) 0%,var(--page-purple-2) 100%);color:#fff}
.hero-meta span{border-color:var(--purple-line);color:var(--on-purple);background:rgba(255,255,255,.05)}
.btn-primary{background:var(--beige);color:var(--beige-text)}
.btn-primary:hover{background:#f5ecdb}
.btn-secondary{border-color:var(--purple-line);background:rgba(255,255,255,.08);color:#fff}
.btn-secondary:hover{background:rgba(255,255,255,.16);border-color:var(--beige)}
.hero-photo{background:var(--page-purple-dark);border-color:rgba(234,223,200,.34)}
.hero-photo-glow{background:var(--beige);opacity:.18}
.dark-section{background:linear-gradient(135deg,var(--page-purple-2) 0%,var(--page-purple-dark) 100%)}
.dark-grid h2 span{color:var(--beige)}
.service-section,.projects-preview,.page-intro,.about-section,.projects,.blog-list-section,.contact-section,.article{background:var(--page-purple);color:#fff}
.service-section{background:var(--page-purple)}
.service-list{border-top-color:var(--purple-line)}
.service{background:rgba(255,255,255,.065);border-bottom-color:var(--purple-line)}
.service-number{color:var(--beige)}
.section-head-row h2,.page-intro h1,.article-head h1,.contact-box h2,.service h3,.project-copy h2,.blog-item h2,.article-body h2{color:#fff}
.projects-preview{background:var(--page-purple-2)}
.mini-project{background:var(--page-purple-dark);border-color:rgba(234,223,200,.26)}
.blog-preview{background:var(--page-purple-2)}
.post-card{background:var(--beige);border-color:rgba(234,223,200,.5);color:var(--beige-text)}
.post-card h3{color:var(--beige-text)}
.post-card p,.post-meta{color:#67556f}
.post-card:hover{background:var(--beige-soft)}
.cta{background:linear-gradient(135deg,var(--page-purple-dark) 0%,var(--page-purple-deep) 100%)}
.cta .btn{background:var(--beige);color:var(--beige-text)}
.about-photo{background:var(--page-purple-dark);border-color:rgba(234,223,200,.28)}
.fact{border-color:var(--purple-line);background:rgba(255,255,255,.055)}
.fact strong{color:var(--beige)}
.project{border-color:var(--purple-line);background:rgba(255,255,255,.055)}
.project-media{background:var(--page-purple-dark)}
.blog-list{border-top-color:var(--purple-line)}
.blog-item{border-bottom-color:var(--purple-line)}
.blog-item-date{color:var(--beige)}
.article-image{background:var(--page-purple-dark);border-color:var(--purple-line)}
.sponsors-section{background:var(--page-purple-2);border-color:var(--purple-line)}
.sponsors-head .section-label{color:var(--beige)}
.sponsor-item{background:var(--beige);border-color:rgba(234,223,200,.35);box-shadow:0 8px 28px rgba(40,20,68,.20)}
.sponsor-item img{opacity:.92}
.footer-brand{display:inline-flex;align-items:center}
.footer-brand img{height:42px;width:auto;max-width:220px;object-fit:contain}
.site-footer{background:var(--page-purple-deep);color:rgba(255,255,255,.72);border-top:1px solid var(--purple-line)}
.footer-links a:hover{color:var(--beige)}
.text-link,.project-link{color:var(--beige)}
.text-link:hover,.project-link:hover,.dark-link:hover{color:#fff}

/* Partners: four visible cards, continuous loop to the right */
.sponsor-marquee{width:100%;overflow:hidden;padding-inline:24px}
.sponsor-track{display:flex;gap:18px;width:max-content;will-change:transform;}
.sponsor-item{width:calc((100vw - 132px)/4);max-width:300px;min-width:210px;height:108px;flex:0 0 calc((100vw - 132px)/4)}
@media(max-width:1000px){.sponsor-item{width:calc((100vw - 96px)/3);flex-basis:calc((100vw - 96px)/3);min-width:190px}}
@media(max-width:700px){
  .sponsor-marquee{padding-inline:16px}
  .sponsor-item{width:calc((100vw - 50px)/2);flex-basis:calc((100vw - 50px)/2);min-width:150px;height:92px}
  .logo img{height:32px;max-width:155px}
  .footer-brand img{height:34px;max-width:190px}
  .main-nav{background:var(--page-purple-dark)}
  .main-nav a{border-bottom-color:var(--purple-line)}
}


/* =========================
   Purple motion / interaction layer
   ========================= */
:root{
  --page-purple:#7047ad;
  --page-purple-2:#8158bd;
  --page-purple-dark:#4c2775;
  --page-purple-deep:#2f174d;
  --purple-line:rgba(255,255,255,.18);
  --beige:#eadfc8;
  --beige-soft:#f4eddf;
  --white:#ffffff;
  --on-purple:rgba(255,255,255,.84);
  --on-purple-soft:rgba(255,255,255,.68);
  --beige-text:#382548;
}

html{background:var(--page-purple)}
body{background:var(--page-purple);overflow-x:hidden}

.site-header{
  background:rgba(47,23,77,.92);
  border-bottom-color:rgba(234,223,200,.17);
  box-shadow:0 10px 40px rgba(30,10,50,.12);
}

.hero{
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 88% 16%, rgba(234,223,200,.19) 0 8%, transparent 26%),
    radial-gradient(circle at 13% 80%, rgba(255,255,255,.08) 0 8%, transparent 30%),
    linear-gradient(135deg,#7d53bd 0%,#7047ad 44%,#4f2a7a 100%);
}
.hero::before{
  content:"";
  position:absolute;
  inset:-15%;
  z-index:-1;
  background:linear-gradient(115deg,transparent 34%,rgba(255,255,255,.07) 44%,transparent 56%);
  transform:translateX(-35%) rotate(4deg);
  animation:hero-sheen 8s ease-in-out infinite;
  pointer-events:none;
}

.hero-copy{
  animation:hero-copy-in .8s cubic-bezier(.2,.78,.18,1) both;
}
.hero-photo-wrap{
  animation:hero-photo-in 1.05s cubic-bezier(.16,.78,.15,1) .08s both;
}
.hero-photo-glow{
  animation:hero-glow-float 5.5s ease-in-out .45s infinite alternate;
}
.hero-photo{
  box-shadow:0 28px 80px rgba(39,16,65,.34),0 0 0 1px rgba(255,255,255,.06);
}
.hero-photo::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(234,223,200,.14),transparent 32%,rgba(255,255,255,.04) 68%,transparent);
  mix-blend-mode:screen;
}

.btn,.header-contact,.hero-meta span,.post-card,.service,.fact,.project,.mini-project,.sponsor-item{
  transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .3s ease,border-color .3s ease,box-shadow .3s ease,opacity .3s ease;
}
.btn-primary:hover{box-shadow:0 12px 28px rgba(234,223,200,.18)}
.btn-secondary:hover{box-shadow:0 12px 28px rgba(20,8,35,.12)}
.hero-meta span:hover{transform:translateY(-3px);background:rgba(255,255,255,.1);border-color:rgba(234,223,200,.34)}

.dark-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 24%,rgba(234,223,200,.12),transparent 25%),
    linear-gradient(135deg,#8158bd 0%,#4c2775 72%);
}
.dark-section::after,
.cta::after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-140px;
  top:-120px;
  border-radius:50%;
  border:1px solid rgba(234,223,200,.16);
  box-shadow:0 0 0 38px rgba(234,223,200,.035),0 0 0 76px rgba(234,223,200,.02);
  animation:ring-float 7s ease-in-out infinite alternate;
  pointer-events:none;
}
.dark-section .container,.cta .container{position:relative;z-index:1}

.service-section,
.projects-preview,
.blog-preview,
.page-intro,
.about-section,
.projects,
.blog-list-section,
.contact-section,
.article{
  background:var(--page-purple) !important;
  color:#fff;
}

.service-list{border-top-color:rgba(234,223,200,.26)}
.service{background:rgba(255,255,255,.065);border-bottom-color:rgba(255,255,255,.14)}
.service:hover{transform:translateX(7px);background:rgba(255,255,255,.10);box-shadow:16px 16px 36px rgba(37,13,62,.12)}

.projects-preview{background:linear-gradient(180deg,#7047ad 0%,#62409c 100%) !important}
.mini-project{background:#4c2775;border-color:rgba(234,223,200,.28)}
.mini-project:hover{transform:translateY(-7px);box-shadow:0 26px 50px rgba(34,10,58,.22)}

.blog-preview{background:#65419f !important}
.post-card{background:var(--beige);color:var(--beige-text);border-color:rgba(255,255,255,.22)}
.post-card:hover{transform:translateY(-9px) rotate(-.25deg);background:var(--beige-soft);box-shadow:0 24px 50px rgba(35,10,58,.2)}

.cta{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 20%,rgba(234,223,200,.14),transparent 28%),
    linear-gradient(135deg,#4c2775 0%,#2f174d 100%);
}
.cta .btn:hover{transform:translateY(-4px) scale(1.02)}

.project{background:rgba(255,255,255,.055)}
.project:hover{transform:translateY(-6px);box-shadow:0 24px 55px rgba(33,10,57,.18)}
.fact{background:rgba(255,255,255,.05)}
.fact:hover{background:rgba(255,255,255,.09);transform:translateY(-4px)}

.article-image,.about-photo{box-shadow:0 22px 50px rgba(31,9,53,.18)}

/* Partner row: edge fade + continuous movement */
.sponsors-section{
  position:relative;
  background:#543183 !important;
  border-color:rgba(234,223,200,.16);
}
.sponsor-marquee{
  position:relative;
  padding-inline:24px;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
}
.sponsor-item{background:var(--beige);border-color:rgba(255,255,255,.24)}
.sponsor-item:hover{transform:translateY(-5px);box-shadow:0 18px 34px rgba(28,7,47,.24)}

.site-footer{background:#2f174d}

/* Scroll reveal. JS adds .reveal-ready to body. */
body.reveal-ready .reveal{
  opacity:0;
  transform:translateY(36px) scale(.985);
  filter:blur(5px);
  transition:opacity .8s cubic-bezier(.2,.78,.18,1),transform .8s cubic-bezier(.2,.78,.18,1),filter .8s ease;
}
body.reveal-ready .reveal.is-visible{
  opacity:1;
  transform:none;
  filter:none;
}
body.reveal-ready .reveal.delay-1{transition-delay:.08s}
body.reveal-ready .reveal.delay-2{transition-delay:.16s}
body.reveal-ready .reveal.delay-3{transition-delay:.24s}

@keyframes hero-copy-in{
  from{opacity:0;transform:translateX(-46px) translateY(18px);filter:blur(7px)}
  to{opacity:1;transform:none;filter:none}
}
@keyframes hero-photo-in{
  0%{opacity:0;transform:translateX(105px) rotate(2deg) scale(.92);filter:blur(9px)}
  72%{opacity:1;transform:translateX(-7px) rotate(-.4deg) scale(1.015);filter:blur(0)}
  100%{opacity:1;transform:none}
}
@keyframes hero-glow-float{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-22px,18px,0) scale(1.12)}
}
@keyframes hero-sheen{
  0%,100%{transform:translateX(-35%) rotate(4deg);opacity:0}
  28%{opacity:1}
  58%{transform:translateX(48%) rotate(4deg);opacity:.65}
}
@keyframes ring-float{
  from{transform:translate3d(0,0,0) rotate(0deg)}
  to{transform:translate3d(-20px,24px,0) rotate(8deg)}
}

@media(max-width:700px){
  .hero-photo-wrap{animation-duration:.9s}
  .sponsor-marquee{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%)}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  body.reveal-ready .reveal{opacity:1;transform:none;filter:none}
}

/* =========================================================
   ART-DIRECTED COLOR + MOTION PASS
   Purple remains the lead color; sand, ivory, coral and lilac
   are used as controlled accents.
   ========================================================= */
:root{
  --violet:#7651d6;
  --violet-2:#916fe5;
  --violet-3:#c9b7fa;
  --violet-deep:#40226f;
  --violet-night:#26133f;
  --sand:#eadfc8;
  --ivory:#fffaf2;
  --coral:#ff8d72;
  --ink:#271838;
  --line-soft:rgba(255,255,255,.16);
}

body{
  background:
    radial-gradient(circle at 18% 10%, rgba(255,141,114,.11), transparent 24%),
    radial-gradient(circle at 90% 72%, rgba(201,183,250,.12), transparent 28%),
    var(--violet-deep);
}

.site-header{
  background:rgba(38,19,63,.80);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  border-bottom:1px solid rgba(255,255,255,.10);
}

.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--coral),var(--violet-3),transparent);
  opacity:.75;
  transform:scaleX(.35);
  transform-origin:center;
  animation:header-line-breathe 5s ease-in-out infinite;
}

.hero{
  min-height:clamp(720px,88vh,920px);
  overflow:hidden;
  background:
    radial-gradient(circle at 76% 20%, rgba(255,141,114,.26) 0 5%, transparent 23%),
    radial-gradient(circle at 12% 82%, rgba(201,183,250,.05) 0 8%, transparent 31%),
    linear-gradient(126deg,#7952c7 0%,#7249cf 45%,#4a277d 100%);
}

.hero::after{
  content:"";
  position:absolute;
  width:44vw;
  height:44vw;
  max-width:620px;
  max-height:620px;
  right:-13vw;
  top:18%;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 0 0 30px rgba(255,255,255,.025),0 0 0 62px rgba(255,141,114,.035);
  animation:orb-float 9s ease-in-out infinite alternate;
  pointer-events:none;
}

.hero-copy .eyebrow{
  color:#fff;
  text-shadow:0 0 22px rgba(255,141,114,.16);
}

.hero-copy .display span{
  color:var(--sand);
  position:relative;
  display:inline-block;
}

.hero-copy .display span::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:5px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--coral),var(--sand));
  transform:scaleX(.08);
  transform-origin:left;
  animation:underline-grow 1.1s .85s cubic-bezier(.2,.8,.2,1) forwards;
}

.hero-photo-wrap{perspective:1200px}
.hero-photo-glow{
  background:linear-gradient(135deg,var(--coral),var(--violet-3)) !important;
  opacity:.26 !important;
}
.hero-photo{
  border-color:rgba(255,250,242,.34);
  box-shadow:0 30px 100px rgba(27,11,47,.34),0 0 50px rgba(255,141,114,.09);
  transform-style:preserve-3d;
}
.hero-photo::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
  z-index:2;
}

.hero-meta span:nth-child(2n){
  background:rgba(255,141,114,.10);
  border-color:rgba(255,141,114,.28);
}
.hero-meta span:nth-child(3n){
  background:rgba(201,183,250,.10);
  border-color:rgba(201,183,250,.26);
}

.btn-primary{
  background:linear-gradient(135deg,var(--sand),#fff5dd);
  box-shadow:0 10px 30px rgba(234,223,200,.13);
}
.btn-primary:hover{box-shadow:0 16px 36px rgba(255,141,114,.18)}

.dark-section{
  background:
    radial-gradient(circle at 14% 40%,rgba(255,141,114,.13),transparent 25%),
    radial-gradient(circle at 84% 26%,rgba(201,183,250,.13),transparent 28%),
    linear-gradient(135deg,#7c53c4 0%,#452470 78%);
}

.dark-section h2 span,
.section-head-row h2 span,
.accent{color:var(--sand)}

.service-section{
  background:
    radial-gradient(circle at 76% 12%,rgba(255,141,114,.10),transparent 24%),
    linear-gradient(180deg,#7049bf 0%,#5a3696 100%) !important;
}

.service-list{gap:10px;border-top:0}
.service{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.035));
}
.service::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg,transparent 0 42%,rgba(255,255,255,.09) 50%,transparent 58%);
  transform:translateX(-120%);
  transition:transform .8s ease;
}
.service:hover::before{transform:translateX(120%)}
.service-number{color:var(--coral)}
.service:nth-child(2n) .service-number{color:var(--sand)}
.service:nth-child(3n) .service-number{color:var(--violet-3)}

.projects-preview{
  background:
    radial-gradient(circle at 8% 28%,rgba(201,183,250,.16),transparent 22%),
    radial-gradient(circle at 92% 68%,rgba(255,141,114,.10),transparent 25%),
    linear-gradient(145deg,#6540a7 0%,#42236e 100%) !important;
}

.mini-project,
.project-media{
  overflow:hidden;
}
.mini-project img,
.project-media img{
  transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .8s ease;
}
.mini-project:hover img,
.project:hover .project-media img{
  transform:scale(1.055);
  filter:saturate(1.08) contrast(1.03);
}

.mini-project-overlay{
  background:linear-gradient(180deg,transparent 25%,rgba(24,10,42,.82) 100%);
}

.blog-preview{
  background:
    linear-gradient(145deg,#7650c8 0%,#5a3895 100%) !important;
}

.post-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,var(--ivory),var(--sand));
}
.post-card::before{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  right:-58px;
  top:-58px;
  border-radius:50%;
  background:rgba(255,141,114,.14);
  transition:transform .45s ease;
}
.post-card:hover::before{transform:scale(1.45)}

.cta{
  background:
    radial-gradient(circle at 74% 25%,rgba(255,141,114,.20),transparent 22%),
    radial-gradient(circle at 12% 82%,rgba(201,183,250,.16),transparent 28%),
    linear-gradient(135deg,#4d287d 0%,#26133f 100%);
}

.sponsors-section{
  background:
    radial-gradient(circle at 10% 40%,rgba(255,141,114,.10),transparent 20%),
    linear-gradient(180deg,#6944ad 0%,#4c287d 100%) !important;
}

.sponsors-head .section-label{color:var(--sand)}
.sponsor-marquee{
  padding:10px 0 22px;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 4%,#000 96%,transparent 100%);
}
.sponsor-track{
  gap:18px;
  will-change:transform;
}
.sponsor-item{
  width:clamp(190px,18vw,250px);
  min-width:clamp(190px,18vw,250px);
  height:132px;
  flex:0 0 clamp(190px,18vw,250px);
  padding:18px 20px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:linear-gradient(145deg,#fffdf8,#eadfc8);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 16px 36px rgba(25,8,43,.18);
  transform-origin:center;
}
.sponsor-item::after{
  content:"";
  position:absolute;
  width:84px;
  height:84px;
  border-radius:50%;
  background:rgba(255,141,114,.08);
  filter:blur(3px);
  pointer-events:none;
}
.sponsor-item img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:82px;
  max-width:190px;
  max-height:82px;
  object-fit:contain;
  object-position:center;
  opacity:1;
  filter:contrast(1.04) saturate(.98);
  transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .42s ease;
}
.sponsor-item:hover img{transform:scale(1.06);filter:contrast(1.08) saturate(1.06)}

/* Stronger reveal choreography */
body.reveal-ready .service.reveal,
body.reveal-ready .mini-project.reveal,
body.reveal-ready .post-card.reveal,
body.reveal-ready .project.reveal,
body.reveal-ready .fact.reveal{
  transform:translateY(46px) rotate(.8deg) scale(.97);
}
body.reveal-ready .service.reveal.is-visible,
body.reveal-ready .mini-project.reveal.is-visible,
body.reveal-ready .post-card.reveal.is-visible,
body.reveal-ready .project.reveal.is-visible,
body.reveal-ready .fact.reveal.is-visible{
  transform:none;
}

.service,
.mini-project,
.post-card,
.project,
.fact{
  animation:none;
}

.service:nth-child(1){--float-delay:.15s}
.service:nth-child(2){--float-delay:.35s}
.service:nth-child(3){--float-delay:.55s}
.service:nth-child(4){--float-delay:.75s}

.service.is-visible .service-number{
  animation:number-pop .7s var(--float-delay) cubic-bezier(.2,.8,.2,1) both;
}

.section-label{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.section-label::after{
  content:"";
  width:28px;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--coral),var(--sand));
  transform:scaleX(.2);
  transform-origin:left;
  transition:transform .65s cubic-bezier(.2,.8,.2,1);
}
.reveal.is-visible + .section-label::after,
.section-label:hover::after{transform:scaleX(1)}

@keyframes number-pop{
  0%{opacity:0;transform:translateY(10px) scale(.72);filter:blur(4px)}
  65%{opacity:1;transform:translateY(-2px) scale(1.08);filter:none}
  100%{opacity:1;transform:none}
}
@keyframes orb-float{
  from{transform:translate3d(0,0,0) rotate(0deg)}
  to{transform:translate3d(-30px,20px,0) rotate(8deg)}
}
@keyframes underline-grow{to{transform:scaleX(1)}}
@keyframes header-line-breathe{0%,100%{transform:scaleX(.25);opacity:.35}50%{transform:scaleX(.7);opacity:1}}

@media(max-width:1000px){
  .sponsor-item{width:clamp(185px,27vw,230px);min-width:clamp(185px,27vw,230px);flex-basis:clamp(185px,27vw,230px)}
}

@media(max-width:700px){
  .hero{min-height:unset}
  .hero::after{width:78vw;height:78vw;right:-30vw;top:30%}
  .sponsor-marquee{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 2%,#000 98%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 2%,#000 98%,transparent 100%)}
  .sponsor-item{width:clamp(160px,43vw,195px);min-width:clamp(160px,43vw,195px);flex-basis:clamp(160px,43vw,195px);height:108px;padding:13px 15px}
  .sponsor-item img{height:68px;max-height:68px}
}

@media(prefers-reduced-motion:reduce){
  .site-header::after,
  .hero::after,
  .service.is-visible .service-number,
  .hero-copy .display span::after{animation:none !important}
  .sponsor-track{animation:none !important}
}

/* Partner carousel: 300x300 slots, 4 visible on desktop, no duplicated DOM items. */
.sponsor-marquee{
  width:min(calc(100% - 48px),1240px);
  margin:0 auto;
  overflow:hidden;
  position:relative;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%);
}
.sponsor-track{
  display:flex;
  gap:12px;
  width:max-content;
  transform:translate3d(0,0,0);
  will-change:transform;
  animation:none !important;
  transition:none;
}
.sponsor-item{
  width:300px;
  height:300px;
  flex:0 0 300px;
  display:grid;
  place-items:center;
  padding:20px;
  overflow:hidden;
  border:1px solid rgba(234,223,200,.42);
  border-radius:22px;
  background:var(--beige);
  box-shadow:0 18px 45px rgba(40,20,68,.18);
}
.sponsor-item img{
  width:100%;
  height:100%;
  max-width:260px;
  max-height:260px;
  object-fit:contain;
  object-position:center;
  opacity:1;
  transition:transform .22s ease;
}
.sponsor-item:hover img{transform:scale(1.035)}
@media (max-width:1100px){
  .sponsor-item{width:300px;height:300px;flex-basis:300px}
}
@media (max-width:700px){
  .sponsor-marquee{width:min(calc(100% - 32px),616px)}
  .sponsor-item{width:300px;height:300px;flex-basis:300px}
}
@media (max-width:470px){
  .sponsor-marquee{width:300px;max-width:calc(100% - 32px)}
}
@media (prefers-reduced-motion:reduce){
  .sponsor-track{transition:none !important}
  .sponsor-item img{transition:none}
}


/* =========================================================
   DOPRACOWANIE: dostępność, czytelność, wydajność
   Paleta i układ sekcji pozostają bez zmian.
   ========================================================= */

/* Narzędzia dostępności */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-90px;z-index:100;padding:12px 20px;border-radius:999px;background:var(--beige);color:var(--beige-text);font-size:14px;font-weight:800;transition:top .2s}
.skip-link:focus{top:12px}
main:focus{outline:none}
picture{display:block}
.mini-project picture,.project-media picture{height:100%}
html{scroll-padding-top:16px}

/* Widoczny fokus klawiatury (dwie obwódki: działa na fiolecie i na beżu) */
a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px rgba(47,23,77,.92);border-radius:6px}
.btn:focus-visible,.header-contact:focus-visible,.menu-toggle:focus-visible,.marquee-toggle:focus-visible,.skip-link:focus-visible{border-radius:999px}

/* Czytelność: minimalny rozmiar 12 px, sensowniejszy rytm tekstu */
.eyebrow{font-size:13px}
.section-label{font-size:12px}
.post-meta,.blog-item-date,.article-head .meta,.project-copy .tag{font-size:12px}
.mini-project-overlay span{font-size:12px;opacity:1}
.hero-photo-caption span{font-size:12px;opacity:1}
.hero-meta span{font-size:13px}
.main-nav a{font-size:15px}
.btn,.header-contact{font-size:14px}
.text-link,.project-link,.blog-item-link{font-size:14px}
.post-card p{font-size:15px}
.blog-item p{font-size:16px}
.fact strong{font-size:14px}
.fact span{font-size:15px}
.sponsors-head p{font-size:16px}
.footer-inner span,.footer-inner a{font-size:13px}
.lead,.about-copy p,.article-body p,.article-intro,.dark-grid p{text-wrap:pretty}
.article-body{max-width:820px}
.article-body ul{margin:0 0 1.4em}
.article-body li{margin-bottom:.4em}
.article-body a{color:var(--beige);text-decoration:underline;text-underline-offset:3px}
.article-body a:hover{color:#fff}
.article-body p,.article-body li{color:#fff}
.article-image{margin:42px 0}
.article-image img{height:auto}

/* Cele dotykowe min. 44 px */
.logo{min-height:44px}
.main-nav a{display:inline-flex;align-items:center;min-height:44px}
.main-nav a.active:after{bottom:-20px}
.header-contact{min-height:44px}
.text-link,.project-link,.blog-item-link{display:inline-flex;align-items:center;gap:.4em;min-height:44px}
.dark-link{margin-top:20px}
.footer-links{flex-wrap:wrap;gap:0 18px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px}
.contact-details{gap:2px}
.contact-details a{display:inline-flex;align-items:center;min-height:44px}
.footer-inner{flex-wrap:wrap}

/* Kontrast tekstu (WCAG AA) bez zmiany palety */
.hero .lead,.hero-meta span,.btn-secondary,.dark-section .section-label,.dark-grid p{color:#fff}
.hero-meta span{background:rgba(47,23,77,.22)}
.hero .btn-secondary{background:rgba(47,23,77,.16)}
.hero .btn-secondary:hover{background:rgba(47,23,77,.3)}
.footer-brand{min-height:44px}
.section-label,.sponsors-head .section-label{color:#fff}
.service-number{font-size:20px;font-weight:800;color:#ffaa94}
.service:nth-child(2n) .service-number{color:var(--sand)}
.service:nth-child(3n) .service-number{color:var(--violet-3)}
.fact strong,.text-link,.project-link{color:#f4ecdc}
.hero-photo-overlay{background:linear-gradient(to top,rgba(26,10,44,.86) 0%,rgba(26,10,44,.64) 26%,rgba(26,10,44,0) 66%)}
.mini-project-overlay{padding-top:64px;background:linear-gradient(180deg,rgba(24,10,42,0) 0,rgba(24,10,42,.8) 46%,rgba(24,10,42,.93) 100%)}
.post-card .text-link{color:var(--beige-text);text-decoration:underline;text-underline-offset:4px}
.post-card .text-link:hover{color:#6a3fb0}
.text-link:hover,.project-link:hover,.dark-link:hover{color:#fff}
.post-card .text-link:hover{color:#4c2775}
.menu-toggle span{font-size:20px;line-height:1}

/* Formularz */

/* Karuzela partnerów: przycisk pauzy (WCAG 2.2.2) i lista bez punktorów */
.marquee-toggle{margin-top:14px;min-height:44px;padding:0 20px;border:1px solid var(--purple-line);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s}
.marquee-toggle:hover{background:rgba(255,255,255,.16);border-color:var(--beige)}
.sponsor-track{margin:0;padding:0;list-style:none}

/* Preferencja ograniczenia ruchu: logotypy przewijane ręcznie zamiast ukrytych poza kadrem */
@media (prefers-reduced-motion:reduce){
  .sponsor-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding-bottom:16px}
  .marquee-toggle{display:none}
}

@media (max-width:700px){
  .main-nav a{min-height:0}
  .footer-links{gap:0 14px}
}

/* Zdjęcie w hero: po najechaniu lekko rośnie i obraca się o 3° (tylko urządzenia z myszką).
   Efekt wywołuje wrapper (sam się nie obraca), więc narożniki nie "uciekają" spod kursora. */
.hero-photo-glow{pointer-events:none}
@media (hover:hover) and (pointer:fine){
  .hero-photo{transition:transform .65s cubic-bezier(.22,.7,.26,1),box-shadow .65s ease;will-change:transform}
  .hero-photo-wrap:hover .hero-photo{
    transform:scale(1.04) rotate(3deg);
    box-shadow:0 38px 110px rgba(27,11,47,.42),0 0 60px rgba(255,141,114,.14);
  }
}
@media (hover:hover) and (pointer:fine) and (max-width:1300px){
  .hero-photo-wrap:hover .hero-photo{transform:scale(1.02) rotate(2deg)}
}
@media (prefers-reduced-motion:reduce){
  .hero-photo,.hero-photo-wrap:hover .hero-photo{transform:none !important;transition:none}
}

/* Stopka zawsze na dole okna, także na krótkich podstronach */
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
main{flex:1 0 auto}
.site-footer{flex-shrink:0}

.contact-grid.contact-single{grid-template-columns:1fr}.contact-grid.contact-single .contact-box{max-width:720px}

/* --- v4: kontrolki karuzeli pod logotypami, sticky header, karty bloga --- */
.sponsors-section{padding-bottom:56px}
.sponsor-marquee{margin-bottom:0}
.marquee-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:30px}
.marquee-status{color:#fff;font-size:15px}
.marquee-controls .marquee-toggle{margin:0;flex:none}
html{scroll-padding-top:96px}
.site-header{position:sticky;top:0}
.card-link{color:inherit}
.card-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.post-card,.blog-item{position:relative}
.card-link:focus-visible{outline:3px solid #fff;outline-offset:4px}
.post-card .card-link:focus-visible{outline-color:#2f174d}
.blog-item{padding:30px 16px;margin-inline:-16px;border-radius:var(--radius-sm);transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
.blog-item:hover,.blog-item:focus-within{background:rgba(255,255,255,.1);box-shadow:inset 3px 0 0 var(--beige,#eadfc8)}
.blog-item:hover h2{color:var(--beige,#eadfc8)}
.blog-item-link{transition:transform .25s ease}
.blog-item:hover .blog-item-link{transform:translateX(5px)}
.post-card:hover .text-link,.post-card:focus-within .text-link{color:var(--accent-dark)}
.post-card:hover,.post-card:focus-within{box-shadow:0 18px 40px rgba(20,8,40,.28)}
@media(max-width:700px){.blog-item{margin-inline:-8px;padding-inline:8px}.marquee-controls{flex-direction:column;gap:12px}}
@media (prefers-reduced-motion:reduce){.marquee-controls{display:none}}

/* kontakt: karty */
.contact-heading{margin:0 0 36px;font-size:clamp(34px,4.4vw,56px);line-height:1;letter-spacing:-.05em;color:#fff}
.contact-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.contact-card{position:relative;display:flex;flex-direction:column;gap:10px;min-height:190px;height:100%;padding:28px;border:1px solid rgba(234,223,200,.5);border-radius:var(--radius);background:var(--beige,#eadfc8);color:var(--beige-text,#2f174d);transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.contact-card:hover,.contact-card:focus-visible{transform:translateY(-4px);background:var(--beige-soft,#f3ecdc);box-shadow:0 18px 40px rgba(20,8,40,.28)}
.contact-card:focus-visible{outline:3px solid #fff;outline-offset:3px}
.contact-card-label{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#67556f}
.contact-card-value{font-size:clamp(22px,2.6vw,32px);font-weight:800;line-height:1.1;letter-spacing:-.03em;overflow-wrap:anywhere}
.contact-card-cta{margin-top:auto;font-size:13px;font-weight:800;color:var(--accent-dark)}
@media(max-width:700px){.contact-cards{grid-template-columns:1fr}.contact-card{min-height:150px;padding:22px}}
.contact-card-note{font-size:15px;line-height:1.5;font-style:italic;color:#4a2b78;padding-left:12px;border-left:3px solid var(--accent,#9370DB)}
.contact-card:hover .contact-card-note{border-left-color:var(--accent-dark,#7046b5)}

/* --- v5: spójne nagłówki sekcji i proces współpracy --- */
.sec-head{display:grid;grid-template-columns:.55fr 1.45fr;gap:60px;align-items:start;margin-bottom:56px}
.sec-head .section-label{padding-top:14px}
.sec-head h2{margin:0;font-size:clamp(40px,5vw,68px);line-height:1;letter-spacing:-.06em;color:#fff}
.sec-head p{max-width:620px;margin:20px 0 0;font-size:18px;line-height:1.65;color:var(--on-purple,#efe6fb)}
.sec-head .text-link{display:inline-block;margin-top:22px}
.service-list{margin-top:0}
.process-section{padding:110px 0;background:var(--page-purple-2,#5a3590);border-top:1px solid var(--purple-line,rgba(234,223,200,.25))}
.process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:none}
.step{display:flex;flex-direction:column;gap:12px;padding:28px;border:1px solid rgba(234,223,200,.5);border-radius:var(--radius);background:var(--beige,#eadfc8);color:var(--beige-text,#2f174d)}
.step-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--accent-dark,#7046b5);color:#fff;font-weight:800;font-size:16px}
.step h3{margin:14px 0 0;font-size:26px;letter-spacing:-.03em;color:var(--beige-text,#2f174d)}
.step p{margin:0;font-size:16px;line-height:1.6;color:#4a3a55}
.sponsors-head{margin-bottom:42px}
@media(max-width:1000px){.sec-head{grid-template-columns:1fr;gap:18px;margin-bottom:40px}.sec-head .section-label{padding-top:0}.process-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.sec-head h2{font-size:42px}.sec-head p{font-size:17px}.process-section{padding:82px 0}.process-list{grid-template-columns:1fr}.step{padding:22px}}
.dark-grid{grid-template-columns:.55fr 1.45fr;gap:60px}
.dark-grid h2{font-size:clamp(40px,5vw,68px);line-height:1;letter-spacing:-.06em}
.dark-grid .section-label{display:block;padding-top:14px}
@media(max-width:1000px){.dark-grid{grid-template-columns:1fr;gap:18px}.dark-grid .section-label{padding-top:0}}
.process-section{background:#4f2d82}
.process-section .sec-head p{color:#fff}

/* --- v6: etykiety sekcji nad nagłówkiem, mały przycisk karuzeli po prawej --- */
.sec-head,.dark-grid,.sponsors-head,.page-intro-grid{display:block}
.sec-head,.dark-grid{margin-bottom:0}
.sec-head{margin-bottom:48px}
.sec-head .section-label,.dark-grid .section-label,.sponsors-head .section-label,.page-intro-grid .section-label{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;padding-top:0;color:#fff;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.sec-head .section-label::before,.dark-grid .section-label::before,.sponsors-head .section-label::before,.page-intro-grid .section-label::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sand,#eadfc8)}
.sec-head .section-label::after,.dark-grid .section-label::after,.sponsors-head .section-label::after,.page-intro-grid .section-label::after{display:none}
.sponsors-head p{margin:0;max-width:620px}
.dark-grid p:first-of-type{margin-top:24px}
.marquee-row{display:flex;align-items:center;gap:14px;width:min(calc(100% - 48px),1240px);margin:0 auto}
.marquee-row .sponsor-marquee{flex:1 1 auto;min-width:0;width:auto;max-width:none;margin:0}
.marquee-toggle{flex:none;position:relative;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:1px solid var(--purple-line,rgba(234,223,200,.4));border-radius:50%;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.marquee-icon{position:absolute;inset:0;display:block}
.marquee-icon::before,.marquee-icon::after{content:"";position:absolute;top:14px;width:4px;height:16px;border-radius:2px;background:#fff}
.marquee-icon::before{left:15px}.marquee-icon::after{right:15px}
.marquee-toggle.is-paused .marquee-icon::before{left:17px;top:13px;width:0;height:0;border-radius:0;background:none;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
.marquee-toggle.is-paused .marquee-icon::after{display:none}
@media(max-width:700px){.marquee-row{flex-direction:column;align-items:flex-end;gap:12px;width:min(calc(100% - 32px),616px)}.marquee-row .sponsor-marquee{width:100%;align-self:stretch}}
@media(max-width:470px){.marquee-row .sponsor-marquee{width:100%;max-width:100%}}
@media (prefers-reduced-motion:reduce){.marquee-toggle{display:none}}

/* --- v7: panel marki w hero, akcenty kolorystyczne --- */
:root{--c-coral:#ff8d72;--c-teal:#5ee0d2;--c-sun:#ffd166;--c-lilac:#cdbbf5;--c-ink:#2a1240;--c-deep-teal:#0f4a57}
.hero-brand{position:relative;display:flex;flex-direction:column;justify-content:center;gap:40px;min-height:520px;padding:56px 48px;border:6px solid rgba(255,255,255,.18);border-radius:var(--radius);background:linear-gradient(150deg,#5a2f93 0%,#3a1c63 100%);box-shadow:var(--shadow);overflow:hidden}
.hero-brand::before{content:"";position:absolute;top:-70px;right:-60px;width:240px;height:240px;border-radius:50%;background:var(--c-coral);opacity:.35;filter:blur(6px)}
.hero-brand::after{content:"";position:absolute;bottom:-90px;left:-70px;width:220px;height:220px;border-radius:50%;background:var(--c-teal);opacity:.22;filter:blur(8px)}
.hero-brand>*{position:relative;z-index:1}
.hero-brand img{width:min(100%,420px);height:auto}
.hero-tags{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.hero-tags li{padding:14px 16px;border-radius:14px;font-weight:800;font-size:15px;color:var(--c-ink);background:var(--c-lilac)}
.hero-tags .tag-coral{background:var(--c-coral)}
.hero-tags .tag-teal{background:var(--c-teal)}
.hero-tags .tag-sun{background:var(--c-sun)}
.hero-tags .tag-lilac{background:var(--c-lilac)}
.hero .display span{color:var(--c-sun)}
.hero .display span::after{background:var(--c-coral)}
.eyebrow::before{background:var(--c-coral)}
.sec-head .section-label::before,.dark-grid .section-label::before,.sponsors-head .section-label::before,.page-intro-grid .section-label::before{background:var(--c-sun)}
.service:nth-child(3n+1) .service-number{color:var(--c-coral)}
.service:nth-child(3n+2) .service-number{color:var(--c-sun)}
.service:nth-child(3n+3) .service-number{color:var(--c-teal)}
.process-section{background:var(--c-deep-teal)}
.step:nth-child(1) .step-number{background:var(--c-coral);color:var(--c-ink)}
.step:nth-child(2) .step-number{background:var(--c-sun);color:var(--c-ink)}
.step:nth-child(3) .step-number{background:var(--c-teal);color:var(--c-ink)}
.step:nth-child(4) .step-number{background:var(--c-lilac);color:var(--c-ink)}
.post-card{border-top:6px solid var(--c-coral)}
.post-card:nth-child(2){border-top-color:var(--c-teal)}
.post-card:nth-child(3){border-top-color:var(--c-sun)}
.contact-cards li:nth-child(1) .contact-card{border-top:6px solid var(--c-coral)}
.contact-cards li:nth-child(2) .contact-card{border-top:6px solid var(--c-teal)}
.contact-cards li:nth-child(3) .contact-card{border-top:6px solid var(--c-sun)}
.contact-cards li:nth-child(4) .contact-card{border-top:6px solid var(--c-lilac)}
.cta{background:linear-gradient(135deg,#ff8d72 0%,#ffb86b 100%);color:var(--c-ink)}
.cta h2,.cta p{color:var(--c-ink);opacity:1}
.cta .btn{background:var(--c-ink);color:#fff}
@media(max-width:1000px){.hero-brand{min-height:0;padding:40px 28px}}
@media(max-width:700px){.hero-tags{grid-template-columns:1fr 1fr}.hero-brand{gap:28px}}
.service-number{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;font-weight:800;font-size:14px;color:var(--c-ink)!important}
.service:nth-child(3n+1) .service-number{background:var(--c-coral)}
.service:nth-child(3n+2) .service-number{background:var(--c-sun)}
.service:nth-child(3n+3) .service-number{background:var(--c-teal)}

/* --- v8: jeden beżowy akcent zamiast kolorów --- */
:root{--c-coral:#eadfc8;--c-teal:#eadfc8;--c-sun:#eadfc8;--c-lilac:#eadfc8;--c-deep-teal:#4f2d82}
.hero-brand::before{background:#eadfc8;opacity:.18}
.hero-brand::after{background:#cdbbf5;opacity:.18}
.step-number{background:#4a2b78!important;color:#fff!important}
.post-card,.contact-cards li .contact-card{border-top:1px solid rgba(234,223,200,.5)!important}
.cta{background:linear-gradient(135deg,#7046b5 0%,#4a2b78 100%);color:#fff}
.cta h2,.cta p{color:#fff}
.cta .btn{background:#fff;color:#241637}

/* --- v9: realizacje bez drżenia, pasek kontaktu --- */
.project:hover{transform:none;box-shadow:0 24px 55px rgba(20,6,40,.35)}
.project,.mini-project{transform:none!important}
.project-media img,.mini-project img{backface-visibility:hidden;will-change:transform}
.contact-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:40px;padding-top:28px;border-top:1px solid var(--purple-line,rgba(234,223,200,.35))}
.contact-strip-label{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;width:100%}
.contact-strip a{display:inline-flex;align-items:center;min-height:44px;font-size:18px;font-weight:700;color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(234,223,200,.6)}
.contact-strip a:hover,.contact-strip a:focus-visible{text-decoration-color:#fff}
.contact-strip-cta{margin-top:28px;padding-top:22px;border-top-color:rgba(255,255,255,.35)}
.fact a{display:inline-block;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(234,223,200,.6);padding-block:4px}
.fact a:hover,.fact a:focus-visible{text-decoration-color:#fff}

/* --- v10: wydajność przy najeżdżaniu (bez rozmycia tła nagłówka, bez filtrów na zdjęciach) --- */
.site-header{background:rgba(38,19,63,.98);-webkit-backdrop-filter:none;backdrop-filter:none}
.site-header::after{animation:none;transform:scaleX(.5);opacity:.6}
.project{transition:border-color .25s ease,background-color .25s ease;contain:layout paint}
.project:hover{box-shadow:none;border-color:rgba(234,223,200,.6);background:rgba(255,255,255,.09)}
.project-media{contain:paint}
.project-media img,.mini-project img{filter:none!important;will-change:auto;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.project:hover .project-media img,.mini-project:hover img{transform:scale(1.04);filter:none}
/* Współpraca: okienka lekko reagują na kursor */
.step{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.step:hover{box-shadow:0 18px 40px rgba(10,4,22,.35)}
