@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@500;600&display=swap');

:root{
  --bg:#EAEAEE; --dark:#1B1B1B; --blue:#2255FF; --muted:#66666c;
  --line:rgba(27,27,27,.14); --white:#f7f7f5;
  --serif:"Playfair Display",Georgia,serif; --sans:"DM Sans",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--dark);font-family:var(--sans);line-height:1.5}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit}
.section{padding:110px 6vw;max-width:1500px;margin:auto}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
em{font-family:var(--serif);font-weight:500}
h1,h2,h3{line-height:.98}
h1{font-size:clamp(58px,7.5vw,118px);letter-spacing:-.055em;max-width:900px}
h2{font-size:clamp(48px,6vw,86px);letter-spacing:-.055em}
h3{letter-spacing:-.03em}

/* Floating navbar */
.site-header{position:sticky;top:18px;z-index:50;width:100%;padding:0 5vw;pointer-events:none}
.nav-pill{
  pointer-events:auto;width:min(1080px,100%);min-height:72px;margin:0 auto;
  padding:10px 12px 10px 25px;display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:28px;background:rgba(255,255,255,.68);
  border:1px solid rgba(255,255,255,.85);border-radius:28px;
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  box-shadow:0 12px 40px rgba(27,27,27,.08)
}
.brand-logo{display:flex;align-items:center;width:max-content}
.logo-placeholder{
  display:inline-flex;align-items:center;min-width:92px;min-height:42px;
  color:var(--dark);font-size:10px;font-weight:700;letter-spacing:.08em;
  line-height:1;border:1px dashed rgba(27,27,27,.35);border-radius:10px;padding:8px 12px
}
.nav{display:flex;align-items:center;justify-content:center;gap:34px;font-size:15px;font-weight:500;white-space:nowrap}
.nav a{position:relative;opacity:.78;transition:opacity .25s,transform .25s}
.nav a:hover{opacity:1;transform:translateY(-1px)}
.nav a::after{content:"";position:absolute;left:50%;bottom:-7px;width:0;height:2px;background:var(--blue);transform:translateX(-50%);transition:width .25s}
.nav a:hover::after{width:16px}
.nav-cta{
  justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:14px;
  min-width:155px;padding:14px 20px;border:1px solid rgba(27,27,27,.08);
  border-radius:999px;background:rgba(255,255,255,.55);color:var(--dark);
  font-size:14px;font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
  transition:transform .25s,background .25s
}
.nav-cta:hover{transform:translateY(-2px);background:rgba(255,255,255,.9)}
.nav-cta span{font-size:18px}
.menu-toggle{display:none;border:0;background:transparent;width:42px;height:42px;cursor:pointer}
.menu-toggle span{display:block;width:23px;height:2px;background:var(--dark);margin:5px auto}

/* Hero */
.hero{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:center;padding-top:80px}
.hero-copy .eyebrow{margin-bottom:28px}
.hero-text{max-width:570px;color:var(--muted);font-size:17px;margin:30px 0}
.hero-actions{display:flex;align-items:center;gap:28px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:16px 23px;border-radius:100px;font-size:13px;font-weight:700;transition:.25s}
.button:hover{transform:translateY(-3px)}
.button-dark{background:var(--dark);color:var(--white)}
.button-blue{background:var(--blue);color:white}
.text-link{font-size:13px;font-weight:700;border-bottom:1px solid var(--dark);padding-bottom:5px}
.text-link span{margin-left:10px}
.hero-visual{position:relative;min-height:580px;display:flex;align-items:center;justify-content:center}
.main-card{width:min(430px,80%);transform:rotate(3deg);background:var(--dark);color:white;padding:13px;box-shadow:20px 25px 70px rgba(0,0,0,.15)}
.card-label{font-size:9px;letter-spacing:.16em;padding:10px 5px 12px;opacity:.65}
.fake-video{aspect-ratio:9/11;background:#111;position:relative;overflow:hidden}
.fake-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.15),transparent 35%)}
.card-footer{display:flex;justify-content:space-between;padding:12px 5px 3px;font-size:9px;letter-spacing:.1em;opacity:.6}
.floating-tag{position:absolute;right:0;bottom:13%;background:white;padding:17px 20px;font-size:12px;font-weight:700;transform:rotate(-5deg);box-shadow:8px 12px 30px rgba(0,0,0,.08)}

/* Marquee */
.marquee{overflow:hidden;background:var(--dark);color:white;padding:18px 0;white-space:nowrap}
.marquee div{display:flex;width:max-content;gap:30px;align-items:center;animation:move 24s linear infinite;font-size:11px;letter-spacing:.13em;font-weight:700}
.marquee b{color:var(--blue)}
@keyframes move{to{transform:translateX(-50%)}}

/* Services */
.services{background:var(--dark);color:white;max-width:none}
.services .section-intro{max-width:700px}
.services .eyebrow{color:#a8a8ae;margin-bottom:25px}
.service-grid{margin-top:70px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.2)}
.service{position:relative;min-height:260px;padding:30px 28px 30px 0;border-bottom:1px solid rgba(255,255,255,.2);border-right:1px solid rgba(255,255,255,.2)}
.service:nth-child(3n){border-right:0;padding-left:28px}
.service:nth-child(3n+2){padding-left:28px}
.service-number{color:#8d8d93;font-size:11px}
.service h3{font-size:29px;margin:50px 0 14px}
.service p{color:#a8a8ae;font-size:14px;max-width:310px}
.service-arrow{position:absolute;right:28px;top:30px;font-size:22px;color:var(--blue)}

/* Work */
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px}
.heading-note{max-width:300px;color:var(--muted);font-size:14px}
.filters{display:flex;flex-wrap:wrap;gap:9px;margin:55px 0 30px}
.filter{background:transparent;border:1px solid var(--line);border-radius:100px;padding:9px 15px;cursor:pointer;font-size:12px}
.filter.active,.filter:hover{background:var(--dark);color:white}
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:55px 25px}
.project-image{position:relative;aspect-ratio:1.2/1;display:flex;align-items:flex-end;padding:28px;overflow:hidden}
.project-image span{font-size:clamp(28px,4vw,56px);line-height:.87;letter-spacing:-.05em;font-weight:700;position:relative;z-index:2}
.project-image i{position:absolute;top:20px;right:20px;font-size:11px;font-style:normal;z-index:2}
.project-four{background:linear-gradient(135deg,#2255ff,#111 60%);color:white}
.project-five{background:linear-gradient(135deg,#f4b6d8,#2255ff 58%,#1b1b1b 58%);color:white}
.project-meta{display:flex;justify-content:space-between;align-items:flex-start;padding-top:13px}
.project-meta h3{font-size:17px}
.project-meta p{color:var(--muted);font-size:12px;margin-top:3px}
.project-meta>span,.project-meta>a{font-size:20px}

/* Portfolio cover + modal */
.project-cover{position:relative;display:block;width:100%;aspect-ratio:1.2/1;padding:0;border:0;overflow:hidden;cursor:pointer;background:#111}
.project-cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s,filter .45s}
.project-cover::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.08);transition:background .3s}
.project-cover:hover img{transform:scale(1.045);filter:brightness(.82)}
.project-cover:hover::after{background:rgba(0,0,0,.2)}
.project-play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;display:grid;place-items:center;padding-left:3px;background:rgba(255,255,255,.95);color:var(--dark);font-size:16px;box-shadow:0 12px 35px rgba(0,0,0,.2);transition:transform .3s}
.project-cover:hover .project-play{transform:translate(-50%,-50%) scale(1.08)}
.video-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:5vw}
.video-modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}
.modal-content{position:relative;z-index:2;width:min(1000px,94vw)}
.modal-video{position:relative;aspect-ratio:16/9;background:#000;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.modal-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.modal-close{position:absolute;z-index:3;right:-16px;top:-16px;width:42px;height:42px;border:0;border-radius:50%;background:white;color:var(--dark);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 8px 25px rgba(0,0,0,.25)}

/* Process */
.process{background:#dfe0e5;max-width:none}
.process-list{margin-top:65px;border-top:1px solid var(--line)}
.process-row{display:grid;grid-template-columns:70px 1fr 30px;align-items:start;gap:25px;padding:31px 0;border-bottom:1px solid var(--line)}
.process-row>span{font-size:11px;font-weight:700}
.process-row h3{font-size:25px;margin-bottom:8px}
.process-row p{color:var(--muted);font-size:14px;max-width:600px}
.process-row b{color:var(--blue)}

/* About / CTA / Footer */
.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.about-visual{aspect-ratio:1;background:var(--dark);color:white;padding:40px;display:flex;flex-direction:column;justify-content:space-between;font-size:12px;letter-spacing:.08em}
.about-visual strong{color:var(--blue);font-size:clamp(60px,8vw,120px);line-height:.8;letter-spacing:-.08em}
.about-visual div{font-size:10px;opacity:.55}
.about-copy .eyebrow{margin-bottom:25px}
.about-copy>p:not(.eyebrow){max-width:530px;color:var(--muted);font-size:16px;margin:25px 0}
.about-copy .text-link{display:inline-block;margin-top:12px}
.cta{max-width:none;text-align:center;background:var(--blue);color:white;padding:140px 6vw}
.cta .eyebrow{opacity:.75;margin-bottom:25px}
.cta h2{margin-bottom:38px}
.cta .button{background:white;color:var(--dark)}
.small-note{margin:25px auto 0;font-size:12px;opacity:.75;max-width:420px}
footer{background:var(--dark);color:white;padding:55px 6vw 25px}
.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;padding-bottom:70px}
.footer-top p{color:#9d9da3;font-size:13px}
.socials{display:flex;flex-direction:column;gap:8px;font-size:13px;align-items:flex-end}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:18px;display:flex;justify-content:space-between;color:#77777e;font-size:10px}

@media(max-width:900px){
  .section{padding:80px 6vw}
  .hero{grid-template-columns:1fr;padding-top:65px}
  .hero-visual{min-height:480px}
  .service-grid{grid-template-columns:1fr}
  .service,.service:nth-child(3n),.service:nth-child(3n+2){padding:28px 0;border-right:0;min-height:210px}
  .work-grid{grid-template-columns:1fr}
  .section-heading,.about{grid-template-columns:1fr;display:grid}
  .about{gap:50px}
  .footer-top{grid-template-columns:1fr}
  .socials{align-items:flex-start}
}
@media(max-width:700px){
  .site-header{top:10px;padding:0 4vw}
  .nav-pill{min-height:64px;padding:8px 10px 8px 18px;border-radius:22px;grid-template-columns:1fr auto}
  .nav{display:none;position:absolute;top:76px;left:4vw;right:4vw;padding:20px;flex-direction:column;align-items:stretch;gap:20px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.8);border-radius:22px;box-shadow:0 15px 40px rgba(27,27,27,.12)}
  .nav.open{display:flex}
  .nav a{padding:5px 0}
  .nav-cta{display:none}
  .menu-toggle{display:block}
}
@media(min-width:701px){.menu-toggle{display:none}}
@media(max-width:500px){
  h1{font-size:55px}
  h2{font-size:46px}
  .hero-text{font-size:15px}
  .hero-visual{min-height:390px}
  .main-card{width:85%}
  .floating-tag{right:-5px}
  .project-image,.project-cover{aspect-ratio:1/1}
  .process-row{grid-template-columns:40px 1fr 20px;gap:12px}
  .modal-close{right:-5px;top:-50px}
  .modal-video{aspect-ratio:9/16}
}

/* ---------- Motion + card treatment ---------- */

.floating-card {
  animation: creativeFloat 3.8s ease-in-out infinite;
  will-change: transform;
}

@keyframes creativeFloat {
  0%, 100% { transform: translateY(0) rotate(3deg); }
  50% { transform: translateY(-13px) rotate(1.5deg); }
}

/* The whole sections sit inside soft cards */
.work {
  margin: 70px 5vw;
  padding: 80px 5vw;
  max-width: none;
  border-radius: 36px;
  background: #f4d95f;
  border: 1px solid rgba(27,27,27,.08);
  box-shadow: 0 25px 70px rgba(27,27,27,.08);
}

.services {
  margin: 70px 5vw;
  padding: 80px 5vw;
  max-width: none;
  border-radius: 36px;
  box-shadow: 0 25px 70px rgba(27,27,27,.14);
}

/* Individual service cards */
.service-grid {
  border: 0;
  gap: 18px;
}

.service,
.service:nth-child(3n),
.service:nth-child(3n+2) {
  min-height: 270px;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 24px;
  background: rgba(255,255,255,.055);
  overflow: hidden;
  transition: transform .35s ease, background .35s ease, border-color .35s ease;
}

.service:hover {
  transform: translateY(-7px);
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.28);
}

.service-arrow {
  right: 24px;
  top: 24px;
}

/* Portfolio items are proper cards */
.project {
  padding: 14px;
  border-radius: 28px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(27,27,27,.1);
  box-shadow: 0 16px 45px rgba(27,27,27,.08);
  transition: transform .35s ease, box-shadow .35s ease;
}

.project:hover {
  transform: translateY(-8px);
  box-shadow: 0 25px 60px rgba(27,27,27,.14);
}

.project-cover,
.project-image {
  border-radius: 20px;
}

.project-meta {
  padding: 16px 6px 5px;
}

/* Scroll reveal */
.reveal-section .section-intro,
.reveal-section .section-heading,
.reveal-section .filters,
.reveal-section .project,
.reveal-section .service,
.reveal-section .process-row,
.about .about-visual,
.about .about-copy {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1);
}

.reveal-section.is-visible .section-intro,
.reveal-section.is-visible .section-heading,
.reveal-section.is-visible .filters,
.reveal-section.is-visible .project,
.reveal-section.is-visible .service,
.reveal-section.is-visible .process-row,
.about.is-visible .about-visual,
.about.is-visible .about-copy {
  opacity: 1;
  transform: translateY(0);
}

.reveal-section.is-visible .project:nth-child(2),
.reveal-section.is-visible .service:nth-child(2),
.reveal-section.is-visible .process-row:nth-child(2) { transition-delay: .08s; }

.reveal-section.is-visible .project:nth-child(3),
.reveal-section.is-visible .service:nth-child(3),
.reveal-section.is-visible .process-row:nth-child(3) { transition-delay: .16s; }

.reveal-section.is-visible .project:nth-child(4),
.reveal-section.is-visible .service:nth-child(4),
.reveal-section.is-visible .process-row:nth-child(4) { transition-delay: .24s; }

.reveal-section.is-visible .project:nth-child(5),
.reveal-section.is-visible .service:nth-child(5) { transition-delay: .32s; }

.reveal-section.is-visible .project:nth-child(6),
.reveal-section.is-visible .service:nth-child(6) { transition-delay: .40s; }

.reveal-section.is-visible .project:nth-child(7) { transition-delay: .48s; }

@media (prefers-reduced-motion: reduce) {
  .floating-card { animation: none; }
  .reveal-section .section-intro,
  .reveal-section .section-heading,
  .reveal-section .filters,
  .reveal-section .project,
  .reveal-section .service,
  .reveal-section .process-row,
  .about .about-visual,
  .about .about-copy {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width: 850px) {
  .work,
  .services {
    margin: 45px 4vw;
    padding: 65px 5vw;
    border-radius: 28px;
  }

  .service-grid {
    grid-template-columns: 1fr;
  }

  .floating-card {
    animation-duration: 4.2s;
  }
}

/* How It Works: large card + 2x2 step cards */
.process {
  margin: 70px 5vw;
  padding: 80px 5vw;
  max-width: none;
  border-radius: 36px;
  background: #dfe0e5;
  border: 1px solid rgba(27,27,27,.08);
  box-shadow: 0 25px 70px rgba(27,27,27,.08);
}

.process-list {
  margin-top: 55px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  border: 0;
}

.process-row {
  position: relative;
  min-height: 245px;
  display: block;
  padding: 28px;
  border: 1px solid rgba(27,27,27,.1);
  border-radius: 24px;
  background: rgba(255,255,255,.62);
  box-shadow: 0 12px 30px rgba(27,27,27,.06);
  transition: transform .35s ease, box-shadow .35s ease, background .35s ease;
}

.process-row:hover {
  transform: translateY(-7px);
  background: rgba(255,255,255,.9);
  box-shadow: 0 20px 45px rgba(27,27,27,.1);
}

.process-row > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--dark);
  color: white;
  font-size: 11px;
}

.process-row h3 {
  margin: 55px 0 12px;
  font-size: 27px;
}

.process-row p {
  color: var(--muted);
  font-size: 14px;
  max-width: 420px;
}

.process-row b {
  position: absolute;
  right: 25px;
  top: 25px;
  color: var(--blue);
  font-size: 20px;
}

@media (max-width: 850px) {
  .process {
    margin: 45px 4vw;
    padding: 65px 5vw;
    border-radius: 28px;
  }

  .process-list {
    grid-template-columns: 1fr;
  }

  .process-row {
    min-height: 220px;
  }
}

/* About Me card */
.about {
  padding-top: 100px;
  padding-bottom: 100px;
}

.about-card {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) 1.1fr;
  gap: 60px;
  align-items: stretch;
  padding: 18px;
  border-radius: 36px;
  background: #f6f5f2;
  border: 1px solid rgba(27,27,27,.09);
  box-shadow: 0 25px 70px rgba(27,27,27,.08);
  overflow: hidden;
}

.about-photo {
  position: relative;
  min-height: 570px;
  border-radius: 27px;
  overflow: hidden;
  background: #dedbd5;
  animation: aboutFloat 5s ease-in-out infinite;
}

.about-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
  transition: transform .7s ease;
}

.about-card:hover .about-photo img {
  transform: scale(1.025);
}

.about-photo-tag {
  position: absolute;
  left: 20px;
  bottom: 20px;
  padding: 11px 15px;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
}

@keyframes aboutFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(.5deg); }
}

.about-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 45px 45px 45px 10px;
}

.about-copy .eyebrow {
  margin-bottom: 24px;
}

.about-copy > p:not(.eyebrow) {
  max-width: 560px;
  color: var(--muted);
  font-size: 16px;
  margin: 22px 0 0;
}

.about-copy .text-link {
  width: max-content;
  margin-top: 30px;
}

@media (max-width: 850px) {
  .about-card {
    grid-template-columns: 1fr;
    gap: 25px;
    border-radius: 28px;
    padding: 12px;
  }

  .about-photo {
    min-height: 480px;
    max-height: 600px;
  }

  .about-copy {
    padding: 30px 20px 35px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-photo { animation: none; }
}

/* Navbar: blue at the top, transparent while scrolling */
.site-header .nav-pill {
  background: var(--blue);
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 12px 40px rgba(34,85,255,.20);
  transition: background .45s ease, border-color .45s ease, box-shadow .45s ease, backdrop-filter .45s ease;
}

.site-header .nav-pill .logo-placeholder,
.site-header .nav-pill .nav a,
.site-header .nav-pill .nav-cta {
  color: #fff;
}

.site-header .nav-pill .logo-placeholder {
  border-color: rgba(255,255,255,.45);
}

.site-header .nav-pill .nav a::after {
  background: #fff;
}

.site-header .nav-pill .nav-cta {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.32);
}

.site-header .nav-pill .nav-cta:hover {
  background: rgba(255,255,255,.28);
}

.site-header .nav-pill .menu-toggle span {
  background: #fff;
}

.site-header.scrolled .nav-pill {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.48);
  box-shadow: 0 12px 40px rgba(27,27,27,.08);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.site-header.scrolled .nav-pill .logo-placeholder,
.site-header.scrolled .nav-pill .nav a,
.site-header.scrolled .nav-pill .nav-cta {
  color: var(--dark);
}

.site-header.scrolled .nav-pill .logo-placeholder {
  border-color: rgba(27,27,27,.28);
}

.site-header.scrolled .nav-pill .nav a::after {
  background: var(--blue);
}

.site-header.scrolled .nav-pill .nav-cta {
  background: rgba(255,255,255,.55);
  border-color: rgba(27,27,27,.08);
}

.site-header.scrolled .nav-pill .nav-cta:hover {
  background: rgba(255,255,255,.9);
}

.site-header.scrolled .nav-pill .menu-toggle span {
  background: var(--dark);
}

/* Fix About layout: the new card should use the full section width */
.about {
  display: block !important;
  width: 100%;
}

.about-card {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.about-copy {
  min-width: 0;
}

.about-copy h2 {
  max-width: 700px;
}

.about-copy > p {
  overflow-wrap: break-word;
}

@media (min-width: 901px) {
  .about-card {
    grid-template-columns: minmax(340px, .85fr) minmax(0, 1.15fr);
  }

  .about-photo {
    min-height: 620px;
  }

  .about-copy {
    padding: 55px 65px 55px 15px;
  }
}

/* Project enquiry popup */
.project-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 30px 20px;
}

.project-modal.open {
  display: flex;
}

.project-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 12, 15, .72);
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

.project-form-card {
  position: relative;
  z-index: 2;
  width: min(720px, 100%);
  max-height: 92vh;
  overflow-y: auto;
  padding: 42px;
  border-radius: 30px;
  background: #f7f7f5;
  color: var(--dark);
  box-shadow: 0 35px 100px rgba(0,0,0,.28);
  animation: projectModalIn .35s cubic-bezier(.2,.8,.2,1);
}

@keyframes projectModalIn {
  from { opacity: 0; transform: translateY(20px) scale(.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.project-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(27,27,27,.12);
  border-radius: 50%;
  background: white;
  color: var(--dark);
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.project-form-intro {
  max-width: 560px;
  margin-bottom: 30px;
}

.project-form-intro .eyebrow {
  margin-bottom: 16px;
}

.project-form-intro h2 {
  font-size: clamp(42px, 6vw, 65px);
  margin-bottom: 15px;
}

.project-form-intro p:last-child {
  color: var(--muted);
  font-size: 14px;
}

#projectForm {
  display: grid;
  gap: 20px;
}

#projectForm label > span:first-child {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

#projectForm input[type="text"],
#projectForm input[type="email"],
#projectForm textarea,
#projectForm select {
  width: 100%;
  border: 1px solid rgba(27,27,27,.15);
  border-radius: 14px;
  padding: 14px 15px;
  background: white;
  color: var(--dark);
  font: inherit;
  font-size: 14px;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

#projectForm textarea {
  resize: vertical;
  min-height: 120px;
}

#projectForm input:focus,
#projectForm textarea:focus,
#projectForm select:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(34,85,255,.1);
}

.service-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.check-option {
  position: relative;
}

.check-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.check-option span {
  display: flex !important;
  align-items: center;
  min-height: 48px;
  margin: 0 !important;
  padding: 11px 13px;
  border: 1px solid rgba(27,27,27,.13);
  border-radius: 13px;
  background: white;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: .2s ease;
}

.check-option input:checked + span {
  background: var(--blue);
  border-color: var(--blue);
  color: white;
}

.form-submit {
  width: 100%;
  border: 0;
  border-radius: 999px;
  padding: 16px 22px;
  background: var(--blue);
  color: white;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}

.form-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(34,85,255,.22);
}

.form-submit span {
  margin-left: 8px;
}

.form-note {
  text-align: center;
  margin-top: -8px;
  color: var(--muted);
  font-size: 11px;
}

body.project-modal-open {
  overflow: hidden;
}

@media (max-width: 650px) {
  .project-form-card {
    padding: 34px 20px 25px;
    border-radius: 24px;
  }

  .form-grid,
  .service-options {
    grid-template-columns: 1fr;
  }

  .project-modal {
    padding: 12px;
  }
}

/* Actual Backend Bestie logo */
.brand-logo-image {
  display: block;
  width: 150px;
  height: 50px;
  object-fit: contain;
  object-position: left center;
  border-radius: 8px;
}

.brand-logo {
  min-width: 150px;
}

/* Black brand navbar at the top */
.site-header .nav-pill {
  background: var(--dark);
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 12px 40px rgba(0,0,0,.20);
}

.site-header .nav-pill .brand-logo-image {
  background: var(--dark);
}

.site-header .nav-pill .nav a,
.site-header .nav-pill .nav-cta {
  color: #fff;
}

.site-header .nav-pill .nav a::after {
  background: #fff;
}

.site-header .nav-pill .nav-cta {
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.20);
}

.site-header .nav-pill .nav-cta:hover {
  background: rgba(255,255,255,.18);
}

.site-header .nav-pill .menu-toggle span {
  background: #fff;
}

/* Transparent/glass after scrolling */
.site-header.scrolled .nav-pill {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.48);
  box-shadow: 0 12px 40px rgba(27,27,27,.08);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
}

.site-header.scrolled .nav-pill .nav a,
.site-header.scrolled .nav-pill .nav-cta {
  color: var(--dark);
}

.site-header.scrolled .nav-pill .nav a::after {
  background: var(--blue);
}

.site-header.scrolled .nav-pill .nav-cta {
  background: rgba(255,255,255,.55);
  border-color: rgba(27,27,27,.08);
}

.site-header.scrolled .nav-pill .menu-toggle span {
  background: var(--dark);
}

/* Selected work footer CTA */
.see-more-works {
  display: flex;
  justify-content: center;
  margin-top: 55px;
}

.see-more-works .button {
  min-width: 180px;
}

/* Creative flyer project */
.project-flyer {
  background:
    radial-gradient(circle at 25% 25%, rgba(255,255,255,.85) 0 7%, transparent 8%),
    linear-gradient(135deg, #2255FF 0 42%, #1B1B1B 42% 68%, #EAEAEE 68%);
  color: #fff;
}

@media (max-width: 850px) {
  .brand-logo-image {
    width: 125px;
    height: 44px;
  }

  .brand-logo {
    min-width: 125px;
  }
}

/* =========================================================
   MOBILE RESPONSIVE PASS
   ========================================================= */

html {
  overflow-x: hidden;
}

body {
  overflow-x: hidden;
}

img,
video,
iframe {
  max-width: 100%;
}

/* Tablet */
@media (max-width: 900px) {
  .section {
    padding: 80px 5vw;
  }

  .hero {
    grid-template-columns: 1fr;
    gap: 45px;
    min-height: auto;
    padding-top: 75px;
  }

  .hero-copy {
    max-width: 760px;
  }

  .hero-visual {
    min-height: 480px;
  }

  .section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 25px;
  }

  .work-grid {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }

  .about-card {
    grid-template-columns: 1fr;
  }

  .about-photo {
    min-height: 520px;
  }

  .about-copy {
    padding: 35px 25px 40px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile */
@media (max-width: 650px) {
  .section {
    padding: 65px 5vw;
  }

  h1 {
    font-size: clamp(45px, 14vw, 68px);
    line-height: .92;
  }

  h2 {
    font-size: clamp(40px, 12vw, 58px);
    line-height: .95;
  }

  .site-header {
    top: 9px;
    padding: 0 4vw;
  }

  .nav-pill {
    width: 100%;
    min-height: 62px;
    padding: 8px 9px 8px 15px;
    border-radius: 21px;
  }

  .brand-logo {
    min-width: 0;
  }

  .brand-logo-image {
    width: 118px;
    height: 42px;
  }

  .menu-toggle {
    width: 40px;
    height: 40px;
  }

  .nav {
    top: 72px;
    left: 0;
    right: 0;
    width: 100%;
    padding: 18px 20px 22px;
    border-radius: 20px;
  }

  .hero {
    padding-top: 55px;
    gap: 30px;
  }

  .hero .eyebrow {
    font-size: 9px;
    letter-spacing: .12em;
  }

  .hero-text {
    font-size: 14px;
    line-height: 1.6;
    margin: 22px 0;
  }

  .hero-actions {
    flex-wrap: wrap;
    gap: 18px;
  }

  .button {
    padding: 14px 19px;
  }

  .hero-visual {
    min-height: 420px;
  }

  .main-card {
    width: min(330px, 86vw);
  }

  .floating-tag {
    right: -2px;
    bottom: 7%;
    font-size: 10px;
    padding: 13px 15px;
  }

  .marquee div {
    gap: 20px;
    font-size: 9px;
  }

  .work,
  .services,
  .process {
    margin: 38px 4vw;
    padding: 55px 5vw;
    border-radius: 25px;
  }

  .section-intro .eyebrow,
  .section-heading .eyebrow {
    font-size: 9px;
  }

  .heading-note {
    font-size: 13px;
  }

  .filters {
    gap: 7px;
    margin: 35px 0 24px;
  }

  .filter {
    padding: 8px 12px;
    font-size: 10px;
  }

  .work-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .project {
    padding: 10px;
    border-radius: 22px;
  }

  .project-cover,
  .project-image {
    border-radius: 16px;
  }

  .project-play {
    width: 55px;
    height: 55px;
    font-size: 14px;
  }

  .project-meta {
    padding: 13px 4px 4px;
  }

  .project-meta h3 {
    font-size: 15px;
  }

  .project-meta p {
    font-size: 11px;
  }

  .service-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .service,
  .service:nth-child(3n),
  .service:nth-child(3n+2) {
    min-height: 205px;
    padding: 23px;
    border-radius: 20px;
  }

  .service h3 {
    font-size: 25px;
    margin: 42px 0 11px;
  }

  .service p {
    font-size: 13px;
    line-height: 1.55;
  }

  .process-list {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 38px;
  }

  .process-row {
    min-height: 205px;
    padding: 23px;
    border-radius: 20px;
  }

  .process-row h3 {
    font-size: 24px;
    margin-top: 42px;
  }

  .process-row p {
    font-size: 13px;
    line-height: 1.55;
  }

  .about {
    padding-top: 65px;
    padding-bottom: 65px;
  }

  .about-card {
    gap: 12px;
    padding: 10px;
    border-radius: 25px;
  }

  .about-photo {
    min-height: 480px;
    height: 65vh;
    max-height: 620px;
    border-radius: 18px;
  }

  .about-photo img {
    object-position: center top;
  }

  .about-copy {
    padding: 28px 15px 32px;
  }

  .about-copy h2 {
    font-size: 43px;
  }

  .about-copy > p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.65;
  }

  .cta {
    padding: 85px 7vw;
  }

  .cta h2 {
    font-size: 48px;
  }

  .footer-top {
    grid-template-columns: 1fr;
    gap: 25px;
    padding-bottom: 45px;
  }

  .socials {
    align-items: flex-start;
  }

  .footer-bottom {
    gap: 10px;
    flex-direction: column;
  }

  /* Video modal on phones */
  .video-modal {
    padding: 15px;
  }

  .modal-content {
    width: 100%;
  }

  .modal-video {
    aspect-ratio: 9 / 16;
    max-height: 82vh;
  }

  .modal-close {
    right: 0;
    top: -50px;
  }

  /* Project enquiry form on phones */
  .project-modal {
    padding: 10px;
  }

  .project-form-card {
    width: 100%;
    max-height: 94vh;
    padding: 30px 17px 22px;
    border-radius: 23px;
  }

  .project-form-intro h2 {
    font-size: 43px;
  }

  .form-grid,
  .service-options {
    grid-template-columns: 1fr;
  }

  #projectForm input[type="text"],
  #projectForm input[type="email"],
  #projectForm textarea,
  #projectForm select {
    font-size: 16px; /* prevents iOS zoom */
  }

  .check-option span {
    min-height: 45px;
  }

  .form-submit {
    min-height: 52px;
  }

  .see-more-works {
    margin-top: 35px;
  }
}

/* Very small phones */
@media (max-width: 380px) {
  .section {
    padding-left: 4vw;
    padding-right: 4vw;
  }

  h1 {
    font-size: 43px;
  }

  h2 {
    font-size: 38px;
  }

  .hero-visual {
    min-height: 360px;
  }

  .main-card {
    width: 88vw;
  }

  .about-photo {
    height: 560px;
  }

  .cta h2 {
    font-size: 41px;
  }
}

/* Accessibility: reduce motion when the user requests it */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Latest Creative: dedicated card */
.hero-visual {
  position: relative;
  padding: 28px;
  border-radius: 34px;
  background: rgba(255,255,255,.48);
  border: 1px solid rgba(27,27,27,.08);
  box-shadow: 0 25px 70px rgba(27,27,27,.10);
  overflow: visible;
}

.hero-visual .main-card {
  width: min(430px, 88%);
  margin: auto;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 18px 25px 60px rgba(0,0,0,.18);
}

@media (max-width: 650px) {
  .hero-visual {
    padding: 18px;
    border-radius: 27px;
  }

  .hero-visual .main-card {
    width: 92%;
  }
}

/* Floating WhatsApp contact button */
.whatsapp-float {
  position: fixed;
  right: 24px;
  bottom: 90px;
  z-index: 999;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #fff;
  animation: whatsappFloat 3.2s ease-in-out infinite;
}

.whatsapp-float-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 12px 30px rgba(0,0,0,.2);
  transition: transform .25s ease, box-shadow .25s ease;
}

.whatsapp-float-icon svg {
  width: 29px;
  height: 29px;
  fill: #fff;
}

.whatsapp-float-label {
  padding: 9px 13px;
  border-radius: 999px;
  background: var(--dark, #1B1B1B);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(8px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}

.whatsapp-float:hover .whatsapp-float-icon {
  transform: scale(1.08);
  box-shadow: 0 16px 36px rgba(0,0,0,.25);
}

.whatsapp-float:hover .whatsapp-float-label {
  opacity: 1;
  transform: translateX(0);
}

@keyframes whatsappFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@media (max-width: 650px) {
  .whatsapp-float {
    right: 16px;
    bottom: 78px;
  }

  .whatsapp-float-icon {
    width: 54px;
    height: 54px;
  }

  .whatsapp-float-label {
    display: none;
  }
}

/* Redesigned footer */
footer {
  margin-top: 80px;
  padding: 70px 6vw 25px;
  background: var(--dark, #1B1B1B);
  color: #fff;
  border-radius: 40px 40px 0 0;
}

.footer-main {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1.4fr 1.3fr;
  gap: 50px;
  max-width: 1400px;
  margin: 0 auto 70px;
}

.footer-brand {
  max-width: 300px;
}

.footer-logo {
  display: inline-block;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: -.5px;
}

.footer-logo span {
  color: #2255FF;
}

.footer-brand p {
  margin-top: 18px;
  max-width: 230px;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
}

.footer-column {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-column h4 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.footer-column a {
  width: fit-content;
  color: rgba(255,255,255,.65);
  text-decoration: none;
  font-size: 14px;
  line-height: 1.5;
  transition: color .2s ease, transform .2s ease;
}

.footer-column a:hover {
  color: #fff;
  transform: translateX(3px);
}

.footer-contact > a:first-of-type {
  word-break: break-word;
}

.footer-socials {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}

.footer-socials a {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  color: #fff;
  transform: none;
}

.footer-socials a:hover {
  background: rgba(255,255,255,.1);
  transform: translateY(-3px);
}

.footer-socials svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

footer .footer-bottom {
  max-width: 1400px;
  margin: 0 auto;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: rgba(255,255,255,.45);
  font-size: 12px;
}

@media (max-width: 900px) {
  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 45px 35px;
  }
}

@media (max-width: 600px) {
  footer {
    margin-top: 55px;
    padding: 55px 24px 22px;
    border-radius: 30px 30px 0 0;
  }

  .footer-main {
    grid-template-columns: 1fr 1fr;
    gap: 40px 24px;
    margin-bottom: 45px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  footer .footer-bottom {
    flex-direction: column;
    gap: 8px;
  }
}

/* Footer Work With Me button */
.footer-work-button {
  margin-top: 24px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 19px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: #fff;
  color: #1B1B1B;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.footer-work-button span {
  font-size: 16px;
}

.footer-work-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 25px rgba(0,0,0,.2);
  background: #2255FF;
  color: #fff;
}

@media (max-width: 600px) {
  .footer-work-button {
    margin-top: 20px;
  }
}

/* Clean hero video preview */
.hero-video-trigger {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  overflow: hidden;
  cursor: pointer;
  background: #111;
  text-align: left;
}

.hero-video-trigger img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.hero-video-trigger:hover img {
  transform: scale(1.025);
}

.hero-video-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 18px;
  background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0) 58%);
}

.hero-video-title {
  max-width: 75%;
  color: #fff;
  font-size: clamp(16px, 2vw, 21px);
  font-weight: 700;
  line-height: 1.15;
}

.hero-video-play {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #1B1B1B;
  font-size: 15px;
  padding-left: 2px;
  box-shadow: 0 8px 25px rgba(0,0,0,.2);
  transition: transform .25s ease;
}

.hero-video-trigger:hover .hero-video-play {
  transform: scale(1.08);
}

@media (max-width: 650px) {
  .hero-video-overlay {
    padding: 14px;
  }

  .hero-video-play {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }
}

/* Navbar: sits comfortably below the announcement banner and stays perfectly still while scrolling */
.site-header {
  position: fixed !important;
  top: 82px !important;
  left: 0;
  right: 0;
  width: 100%;
  pointer-events: none;
  z-index: 1200;
}
.site-header .nav-pill {
  pointer-events: auto;
  animation: none !important;
  transform: none !important;
  will-change: auto;
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.site-header.scrolled .nav-pill {
  box-shadow: 0 12px 35px rgba(0, 0, 0, .12);
}

/* Keep page content clear of the fixed navbar */
main#top {
  padding-top: 95px;
}

@media (max-width: 700px) {
  .site-header {
    top: 68px !important;
  }
  main#top {
    padding-top: 80px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .nav-pill {
    animation: none !important;
    transition: none;
  }
}

/* October booking announcement banner */
.announcement-banner {
  position: relative;
  z-index: 1100;
  min-height: 54px;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #1B1B1B;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,.7);
  border-bottom: 1px solid rgba(255,255,255,.12);
  font-size: 14px;
  font-weight: 500;
  text-align: center;
}

.announcement-cta {
  border: 0;
  padding: 0;
  background: transparent;
  color: #5f8cff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s ease;
}

.announcement-cta:hover {
  color: #fff;
}

@media (max-width: 650px) {
  .announcement-banner {
    min-height: 50px;
    padding: 10px 16px;
    font-size: 12px;
    line-height: 1.4;
    flex-wrap: wrap;
    gap: 3px 6px;
  }
}

/* October urgency popup */
.urgency-popup {
  position: fixed;
  inset: 0;
  z-index: 99999 !important;
  display: grid;
  place-items: center;
  padding: 22px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s ease, visibility .3s ease;
}

.urgency-popup.open {
  display: grid !important;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.urgency-popup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,10,12,.68);
  backdrop-filter: blur(10px);
}

.urgency-popup-card {
  position: relative;
  width: min(620px, 100%);
  padding: 38px;
  border-radius: 30px;
  background: #EAEAEE;
  color: #1B1B1B;
  box-shadow: 0 30px 100px rgba(0,0,0,.28);
  transform: translateY(18px) scale(.97);
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}

.urgency-popup.open .urgency-popup-card {
  transform: translateY(0) scale(1);
}

.urgency-popup-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(27,27,27,.12);
  border-radius: 50%;
  background: rgba(255,255,255,.6);
  color: #1B1B1B;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}

.urgency-popup-close:hover {
  transform: rotate(8deg);
  background: #fff;
}

.urgency-popup-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 55px;
}

.urgency-popup-eyebrow {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}

.urgency-popup-spots {
  padding: 8px 12px;
  border-radius: 999px;
  background: #2255FF;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.urgency-popup-copy h2 {
  max-width: 520px;
  margin: 0;
  font-size: clamp(34px, 6vw, 58px);
  line-height: .98;
  letter-spacing: -.055em;
}

.urgency-popup-copy h2 em {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}

.urgency-popup-copy p {
  max-width: 470px;
  margin: 24px 0 0;
  color: rgba(27,27,27,.65);
  font-size: 16px;
  line-height: 1.65;
}

.urgency-popup-divider {
  height: 1px;
  margin: 35px 0 25px;
  background: rgba(27,27,27,.12);
}

.urgency-popup-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}

.urgency-popup-label {
  display: block;
  margin-bottom: 5px;
  color: rgba(27,27,27,.52);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.urgency-popup-bottom strong {
  font-size: 14px;
}

.urgency-popup-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 20px;
  border: 0;
  border-radius: 999px;
  background: #1B1B1B;
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .2s ease, background .2s ease;
}

.urgency-popup-cta:hover {
  transform: translateY(-2px);
  background: #2255FF;
}

.urgency-popup-cta span {
  font-size: 16px;
}

@media (max-width: 600px) {
  .urgency-popup {
    padding: 16px;
  }

  .urgency-popup-card {
    padding: 28px 22px 24px;
    border-radius: 24px;
  }

  .urgency-popup-top {
    margin-bottom: 40px;
  }

  .urgency-popup-copy h2 {
    font-size: 38px;
  }

  .urgency-popup-bottom {
    align-items: stretch;
    flex-direction: column;
  }

  .urgency-popup-cta {
    justify-content: center;
    width: 100%;
  }
}

/* Final floating navbar: fixed in the viewport, always visible while scrolling */
.site-header {
  position: fixed !important;
  top: 70px !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1200 !important;
}

.site-header .nav-pill {
  animation: none !important;
  transform: none !important;
  will-change: auto !important;
}

@media (max-width: 700px) {
  .site-header {
    top: 64px !important;
  }
}

/* Final fix: keep the project enquiry form above every floating element */
.project-modal {
  z-index: 6000 !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.project-modal.open {
  display: flex !important;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.project-modal-backdrop {
  z-index: 0;
}

.project-form-card {
  z-index: 2;
}

body.project-modal-open .site-header,
body.project-modal-open .announcement-banner,
body.project-modal-open .whatsapp-float {
  pointer-events: none;
}


/* Definitive floating navbar behavior */
.site-header.navbar-top {
  position: fixed !important;
  top: 72px !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 1200 !important;
  pointer-events: none !important;
}
.site-header.navbar-top .nav-pill {
  pointer-events: auto !important;
  position: relative !important;
  transform: none !important;
  animation: none !important;
}
/* Keep the floating navbar visually consistent; scrolling must not move or restyle it. */
.site-header.navbar-top.scrolled .nav-pill {
  background: var(--dark) !important;
  border-color: rgba(255,255,255,.16) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.20) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.site-header.navbar-top.scrolled .nav-pill .nav a,
.site-header.navbar-top.scrolled .nav-pill .nav-cta {
  color: #fff !important;
}
.site-header.navbar-top.scrolled .nav-pill .nav a::after {
  background: #fff !important;
}
.site-header.navbar-top.scrolled .nav-pill .nav-cta {
  background: rgba(255,255,255,.10) !important;
  border-color: rgba(255,255,255,.20) !important;
}
.site-header.navbar-top.scrolled .nav-pill .menu-toggle span {
  background: #fff !important;
}
@media (max-width: 700px) {
  .site-header.navbar-top { top: 62px !important; }
}

/* Final navbar behavior: visible at top only, scrolls away with page */
.site-header {
  position: absolute !important;
  top: 28px !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
}
@media (max-width: 768px) {
  .site-header { top: 18px !important; }
}


/* FINAL NAVBAR BEHAVIOR: visible at the top only, scrolls away naturally */
.site-header {
  position: absolute !important;
  top: 28px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1100 !important;
  transform: none !important;
}

.site-header .nav-pill {
  animation: none !important;
  transform: none !important;
}

.site-header.scrolled .nav-pill {
  box-shadow: none !important;
}

/* Definitive top-only navbar fallback */
.site-header {
  position: absolute !important;
  opacity: 1;
  visibility: visible;
}


/* Tools marquee */
.tools-marquee-section {
  overflow: hidden;
  background: #1B1B1B;
  color: #fff;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.tools-marquee-label {
  max-width: 1400px;
  margin: 0 auto 12px;
  padding: 0 32px;
  font-size: 11px;
  letter-spacing: .18em;
  font-weight: 700;
  opacity: .55;
}

.tools-marquee {
  overflow: hidden;
  width: 100%;
}

.tools-marquee-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 28px;
  white-space: nowrap;
  animation: toolsMarquee 30s linear infinite;
  will-change: transform;
}

.tools-marquee-track span {
  font-size: clamp(18px, 2.1vw, 28px);
  font-weight: 600;
  letter-spacing: -.02em;
}

.tools-marquee-track i {
  font-style: normal;
  color: #2255FF;
  font-size: 16px;
}

@keyframes toolsMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.tools-marquee-section:hover .tools-marquee-track {
  animation-play-state: paused;
}

@media (max-width: 768px) {
  .tools-marquee-section {
    padding: 18px 0;
  }
  .tools-marquee-label {
    padding: 0 20px;
  }
  .tools-marquee-track {
    gap: 20px;
    animation-duration: 24s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tools-marquee-track {
    animation: none;
  }
}
