:root{
  --bg:#0b0b0f;
  --bg2:#0f1016;
  --card:#11131a;
  --stroke:rgba(255,255,255,.10);
  --stroke2:rgba(255,255,255,.16);
  --text:rgba(255,255,255,.88);
  --muted:rgba(255,255,255,.62);
  --muted2:rgba(255,255,255,.44);
  --accent-rgb: 255, 42, 200;
  --accent2-rgb: 255, 110, 220;
  --accent-alpha: 0.34;
  --accent-alpha-strong: 0.64;
  --pink: rgb(var(--accent-rgb));
  --pink2: rgb(var(--accent2-rgb));
  --grey:#8d8f98;
  --shadow: 0 30px 80px rgba(0,0,0,.55);
  --radius: 22px;
  --radius2: 30px;
  --max: 1160px;
}

@media (color-gamut: p3){
  :root{
    --accent-rgb: 255, 0, 168;
    --accent2-rgb: 255, 74, 195;
    --accent-alpha: 0.26;
    --accent-alpha-strong: 0.55;
  }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background: var(--bg);
  color:var(--text);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  overflow-x:hidden;
  position:relative;
}

main{position:relative; z-index:1;}

/* Shared layout wrapper */
.wrap{max-width:var(--max); margin:0 auto; padding:0 22px}

/* Animated site background canvas */
.bgCanvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:-2;
  pointer-events:none;
  opacity:.95;
}

a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}

.cursor, .cursorDot{position:fixed; left:0; top:0; pointer-events:none; z-index:9999; mix-blend-mode:screen}
.cursor{width:42px; height:42px; border:1px solid rgba(var(--accent-rgb),.45); border-radius:999px; transform:translate(-50%,-50%); backdrop-filter: blur(6px);}
.cursorDot{width:8px; height:8px; background:rgba(var(--accent-rgb),.95); border-radius:999px; transform:translate(-50%,-50%)}
@media (pointer:coarse){.cursor,.cursorDot{display:none}}

.topbar{
  position:fixed;
  left:0; right:0; top:0;
  max-width:100vw;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  /* keep hamburger / content away from iOS safe-area + avoid "off screen" icon */
  padding: 14px max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left));
  background: rgba(11,11,15,.46);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(18px);
}

.brand{display:flex; gap:10px; align-items:center}
.brandLogo{width:40px; height:40px; object-fit:cover; border-radius:12px; border:1px solid rgba(255,255,255,.12)}
.brandWordmark{display:flex; flex-direction:column; line-height:1}
.brandWordmarkTop{font-family:"Space Grotesk", Inter, sans-serif; font-weight:700; letter-spacing:.10em}
.brandWordmarkBottom{font-size:12px; color:var(--muted2); letter-spacing:.18em; text-transform:uppercase; margin-top:4px}

.nav{display:flex; align-items:center; gap:18px}
.navLink{font-size:13px; color:var(--muted); padding:8px 10px; border-radius:999px; transition: .2s ease}
.navLink:hover{background:rgba(255,255,255,.06); color:rgba(255,255,255,.90)}
.navCta{position:relative; font-size:13px; padding:10px 14px; border-radius:999px; border:1px solid rgba(var(--accent-rgb),.35); background:linear-gradient(180deg, rgba(var(--accent-rgb),.18), rgba(0,0,0,0));}
.navCtaPulse{position:absolute; inset:-2px; border-radius:999px; border:1px solid rgba(var(--accent-rgb),.35); filter:blur(.2px); animation:pulse 1.9s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1); opacity:.5}50%{transform:scale(1.06); opacity:.95}}

.menuBtn{display:none; background:transparent; border:0; padding:10px; border-radius:12px}
.menuBtn{position:relative; z-index:2; margin-left:auto;}
.menuBtn span{display:block; width:22px; height:2px; background:rgba(255,255,255,.85); margin:5px 0; border-radius:10px; transition:.2s}

@media (max-width: 980px){
  .nav{display:none}
  .menuBtn{display:block}
}

.menu{position:fixed; inset:0; z-index:80; background:rgba(8,8,12,.72); backdrop-filter: blur(22px); opacity:0; pointer-events:none; transition:.25s ease}
.menu.open{opacity:1; pointer-events:auto}
.menuInner{max-width: 760px; margin: 0 auto; padding: 90px 22px 30px}
.menuHeader{display:flex; align-items:center; justify-content:space-between}
.menuTitle{font-family:"Space Grotesk"; font-size:18px; letter-spacing:.10em; text-transform:uppercase; color:rgba(255,255,255,.75)}
.menuClose{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.88); width:44px; height:44px; border-radius:14px; cursor:pointer}
.menuGrid{display:grid; grid-template-columns:1fr; gap:10px; margin-top:22px}
.menuLink{font-family:"Space Grotesk"; font-size:30px; padding:18px 18px; border-radius:18px; border:1px solid rgba(255,255,255,.10); background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));}
.menuLink:hover{border-color:rgba(var(--accent-rgb),.35); box-shadow:0 20px 70px rgba(0,0,0,.45)}

/* Mobile menu: reduce oversized buttons */
@media (max-width: 520px){
  .menuInner{padding-top: 78px;}
  .menuLink{font-size:22px; padding:14px 14px; border-radius:16px;}
  .menuClose{width:40px; height:40px; border-radius:12px;}
}
.menuMeta{margin-top:22px; padding:18px; border-radius:18px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.20)}
.menuPhone,.menuEmail{display:block; padding:10px 0; color:rgba(255,255,255,.84)}
.menuSocial{display:flex; gap:14px; flex-wrap:wrap; padding-top:10px; color:rgba(255,255,255,.65)}

.hero{min-height:100vh; padding-top:88px; position:relative; overflow:hidden}
.heroGrid{position:absolute; inset:0; width:100%; height:100%; opacity:.55}
.heroNoise{position:absolute; inset:-20%; background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="260" height="260"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/></filter><rect width="260" height="260" filter="url(%23n)" opacity="0.26"/></svg>'); mix-blend-mode:overlay; opacity:.14; transform:rotate(7deg);}

/* Hero photo (v14) */
.heroPhoto{position:absolute; inset:0; background-image:url('../img/brand/hero-modern.jpeg'); background-size:cover; background-position:center right; opacity:.32; filter:saturate(1.05) contrast(1.05);}
.hero--photo:before{content:""; position:absolute; inset:0; background: radial-gradient(900px 600px at 20% 30%, rgba(0,0,0,.10), rgba(0,0,0,.78)), linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 55%, rgba(0,0,0,.55) 100%); pointer-events:none;}
.hero--photo .heroInner{grid-template-columns:1fr; align-items:flex-start; padding-top: 34px;}
.hero--photo .heroLeft{max-width: 760px;}
@media (max-width: 980px){.hero--photo .heroInner{padding-top: 18px;}}


.heroInner{max-width:var(--max); margin:0 auto; padding: 22px 22px 0; display:grid; grid-template-columns: 1.15fr .85fr; gap:26px; align-items:center; position:relative}
@media (max-width: 980px){.heroInner{grid-template-columns:1fr; gap:18px; padding-top:14px}}

.kicker{display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.65); font-size:12px; letter-spacing:.16em; text-transform:uppercase}
.kickerDot{width:10px; height:10px; border-radius:999px; background:var(--pink); box-shadow:0 0 0 8px rgba(var(--accent-rgb),.04), 0 0 60px rgba(var(--accent-rgb),.55)}

.heroTitle{font-family:"Space Grotesk"; font-weight:700; font-size: clamp(40px, 4.3vw, 62px); line-height:1.02; margin:16px 0 12px; letter-spacing:-.02em}
.pink{color:rgba(var(--accent-rgb),.92); text-shadow:0 0 40px rgba(var(--accent-rgb),.35)}
.heroSub{color:rgba(255,255,255,.68); font-size: 16px; line-height:1.7; max-width: 54ch; margin:0}

.heroActions{display:flex; gap:12px; margin-top:18px; flex-wrap:wrap}
.btn{line-height:1; display:inline-flex; align-items:center; gap:10px; border-radius:999px; padding:12px 16px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:rgba(255,255,255,.88); cursor:pointer; user-select:none; transition:.22s ease; position:relative; overflow:hidden}
.btn .btnIcon{font-family:"Space Grotesk"; opacity:.85}
.btn:hover{transform:translateY(-1px); border-color:rgba(255,255,255,.24)}
.btn.primary{border-color:rgba(var(--accent-rgb),.35); background:linear-gradient(180deg, rgba(var(--accent-rgb),.26), rgba(255,255,255,.06)); box-shadow: 0 25px 80px rgba(var(--accent-rgb),.04)}
.btn.primary:hover{border-color:rgba(var(--accent-rgb),.55)}
.btn.ghost{background:transparent}

.heroStats{display:grid; grid-template-columns: repeat(3, 1fr); gap:10px; margin-top:22px}
@media (max-width: 680px){.heroStats{grid-template-columns:1fr;}}
.stat{padding:14px 14px; border-radius:18px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18)}
.statNum{font-family:"Space Grotesk"; font-size:18px; letter-spacing:.04em}
.statLabel{font-size:12px; color:rgba(255,255,255,.55); margin-top:4px}

.heroCard{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.14)); box-shadow: var(--shadow); overflow:hidden; transform-style:preserve-3d}
.heroCardTop{display:flex; justify-content:space-between; align-items:center; padding:14px 14px}
.badge{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.70)}
.chip{font-size:12px; padding:6px 10px; border-radius:999px; border:1px solid rgba(var(--accent-rgb),.30); color:rgba(255,255,255,.82); background:rgba(var(--accent-rgb),.04)}
.heroMedia{position:relative; aspect-ratio: 4/3; overflow:hidden}
.heroMedia img{width:100%; height:100%; object-fit:cover; transform:scale(1.05)}
.heroMediaOverlay{position:absolute; left:0; right:0; bottom:0; padding:14px; background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.76));}
.overlayTitle{font-family:"Space Grotesk"; font-size:16px}
.overlayMeta{font-size:12px; color:rgba(255,255,255,.62); margin-top:4px}

.heroCardBottom{display:grid; grid-template-columns: 1fr 1fr; gap:12px; padding:14px; border-top:1px solid rgba(255,255,255,.10)}
.miniTitle{font-size:11px; color:rgba(255,255,255,.55); letter-spacing:.12em; text-transform:uppercase}
.miniValue{display:block; margin-top:6px; font-weight:600; color:rgba(255,255,255,.86)}
.miniRow{display:flex; gap:8px; margin-top:7px}
.miniPill{padding:7px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05); font-size:12px}
.miniPill:hover{border-color:rgba(var(--accent-rgb),.40)}

.floatingNote{position:absolute; right: 22px; bottom: 18px; display:flex; align-items:center; gap:10px; opacity:.85; pointer-events:none}
.floatingLine{width:36px; height:1px; background:rgba(var(--accent-rgb),.65)}
.floatingText{font-size:12px; color:rgba(255,255,255,.70); letter-spacing:.12em; text-transform:uppercase}
@media (max-width: 980px){.floatingNote{display:none}}

.heroMarquee{margin-top:34px; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.18); overflow:hidden}
.marqueeTrack{display:flex; gap:42px; padding:14px 0; white-space:nowrap; animation:mar 24s linear infinite}
.marqueeTrack span{font-size:12px; color:rgba(255,255,255,.62); letter-spacing:.18em; text-transform:uppercase}
@keyframes mar{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.section{padding: 86px 0; position:relative}
.sectionHead{max-width:var(--max); margin:0 auto; padding: 0 22px 24px}
.eyebrow{display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.62)}
.eyebrow:before{content:""; width:26px; height:1px; background:rgba(var(--accent-rgb),.60)}
.h2{font-family:"Space Grotesk"; font-size: clamp(28px, 3vw, 40px); line-height:1.08; margin:14px 0 12px}
.lead{color:rgba(255,255,255,.66); max-width: 72ch; line-height:1.7; margin:0}

/* Home work grid (structured + placeholders) */
.workGrid{max-width:var(--max); margin: 0 auto; padding: 0 22px; display:grid; grid-template-columns: repeat(12, 1fr); gap:14px}
.workItem{grid-column: span 4; border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); overflow:hidden; position:relative; padding:0; cursor:pointer}
.workItem img{width:100%; height:100%; object-fit:cover; aspect-ratio: 4/3; transition:.35s ease; filter:saturate(1.02) contrast(1.02)}
.workItem:hover img{transform:scale(1.06)}
.workItem.wide{grid-column: span 8}
.workItem.wide img{aspect-ratio: 16/7}
.workItem.placeholder{cursor:default; display:flex; align-items:center; justify-content:center; min-height:220px; background:linear-gradient(180deg, rgba(var(--accent-rgb),.08), rgba(0,0,0,.18)); border-style:dashed}
.workItem.placeholder .phInner{padding:18px 16px; text-align:center}
.workItem.placeholder .phTitle{font-family:"Space Grotesk"; letter-spacing:.04em}
.workItem.placeholder .phSub{margin-top:6px; font-size:12px; color:rgba(255,255,255,.62); letter-spacing:.14em; text-transform:uppercase}
@media (max-width: 980px){
  .workItem, .workItem.wide{grid-column: span 12}
  .workItem.wide img{aspect-ratio: 4/3}
}

.gallery{max-width:var(--max); margin: 0 auto; padding: 0 22px; display:grid; grid-template-columns: repeat(12, 1fr); gap:12px}
.workActions{max-width:var(--max); margin: 18px auto 0; padding: 0 22px; display:flex; justify-content:center}
.tile{grid-column: span 4; border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.04); overflow:hidden; position:relative; cursor:pointer; padding:0; transform:translateZ(0);}
.tile img{width:100%; height:100%; object-fit:cover; aspect-ratio: 4/3; transition:.35s ease; filter:saturate(1.02) contrast(1.02)}
.tile:hover img{transform:scale(1.06)}
.tileMeta{position:absolute; left:0; right:0; bottom:0; padding:12px; display:flex; justify-content:space-between; align-items:flex-end; background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.82))}
.tileTitle{font-family:"Space Grotesk"; font-size:14px}
.tileTag{font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.62)}
.tile.tall{grid-column: span 4; grid-row: span 2}
.tile.tall img{aspect-ratio: 4/6}
.tile.wide{grid-column: span 8}
.tile.wide img{aspect-ratio: 8/3}
@media (max-width: 980px){
  .tile, .tile.wide, .tile.tall{grid-column: span 12}
  .tile img{aspect-ratio: 4/3}
}

.split{max-width:var(--max); margin:0 auto; padding: 0 22px; display:grid; grid-template-columns: 1.25fr .75fr; gap:18px}
@media (max-width: 980px){.split{grid-template-columns:1fr}}

.cards{display:grid; gap:12px; margin-top:18px}
.card{border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(0,0,0,.16)); padding:18px; box-shadow:0 24px 70px rgba(0,0,0,.35)}
.cardTop{display:flex; align-items:baseline; gap:12px}
.cardIcon{font-family:"Space Grotesk"; color:rgba(var(--accent-rgb),.86); letter-spacing:.14em}
.card h3{margin:0; font-family:"Space Grotesk"; font-size:18px}
.card p{margin:10px 0 12px; color:rgba(255,255,255,.66); line-height:1.7}
.card ul{margin:0; padding-left:18px; color:rgba(255,255,255,.62)}
.card li{margin:6px 0}

.valueStack{display:grid; gap:12px}
.value{border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18); padding:16px}
.valueTitle{font-family:"Space Grotesk"; font-size:16px}
.valueBody{color:rgba(255,255,255,.62); line-height:1.65; margin-top:8px}

.serviceVisual{border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); overflow:hidden; position:relative; box-shadow: var(--shadow);}
.serviceVisual img{width:100%; height: 420px; object-fit:cover; transform:scale(1.03)}
.serviceVisualLabel{position:absolute; left:12px; right:12px; bottom:12px; padding:12px; border-radius:18px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.40); backdrop-filter: blur(10px)}
.svTop{font-family:"Space Grotesk"}
.svBottom{font-size:12px; color:rgba(255,255,255,.64); margin-top:4px}

.steps{max-width:var(--max); margin:0 auto; padding: 0 22px; display:grid; gap:10px; list-style:none; counter-reset: none}
.step{display:grid; grid-template-columns: 64px 1fr; gap:14px; padding:16px; border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.16));}
.stepNum{font-family:"Space Grotesk"; font-size:16px; color:rgba(var(--accent-rgb),.85);}
.stepTitle{font-family:"Space Grotesk"; font-size:18px}
.stepBody{color:rgba(255,255,255,.64); line-height:1.7; margin-top:6px}

.about{max-width:min(1320px, 94vw); margin:0 auto; padding: 0 22px; display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; align-items:start}
@media (max-width: 980px){.about{grid-template-columns:1fr}}
.mission{margin-top:18px; padding:16px; border-radius: var(--radius); border:1px solid rgba(var(--accent-rgb),.28); background:rgba(var(--accent-rgb),.08)}
.missionKicker{font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.68)}
.missionText{margin-top:10px; font-family:"Space Grotesk"; font-size:18px; line-height:1.25}

.quote{margin-top:18px; padding:18px; border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18)}
.quoteMark{font-family:"Space Grotesk"; font-size:34px; color:rgba(var(--accent-rgb),.85)}
.quoteText{font-size:16px; line-height:1.7; color:rgba(255,255,255,.70)}
.quoteBy{margin-top:10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.52)}

.aboutStack{display:grid; gap:12px; position:relative}
.aboutImg{border-radius: var(--radius2); overflow:hidden; border:1px solid rgba(255,255,255,.12); box-shadow: var(--shadow)}
.aboutImg img{width:100%; height: 320px; object-fit:cover; transform:scale(1.02)}
.aboutImg.small img{height: 200px}
.aboutPanel{border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18); padding:16px}
.panelTitle{font-family:"Space Grotesk"; font-size:16px}
.panelList{margin:10px 0 0; padding-left:18px; color:rgba(255,255,255,.62)}
.panelList li{margin:6px 0}

.contact{max-width:var(--max); margin:0 auto; padding: 0 22px; display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:start}
@media (max-width: 980px){.contact{grid-template-columns:1fr}}

.contactCards{display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:14px}
@media (max-width: 520px){.contactCards{grid-template-columns:1fr}}
.contactCard{display:block; padding:16px; border-radius: var(--radius); border:1px solid rgba(255,255,255,.10); background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.18));}
.contactCard:hover{border-color:rgba(var(--accent-rgb),.38); transform:translateY(-1px)}
.ccLabel{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.ccValue{margin-top:10px; font-family:"Space Grotesk"; font-size:20px}
.ccHint{margin-top:8px; font-size:12px; color:rgba(255,255,255,.55)}

.socialRow{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px}
.socialIcon{display:inline-flex; align-items:center; gap:10px; padding:10px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:rgba(255,255,255,.75)}
.socialIcon:hover{border-color:rgba(var(--accent-rgb),.35)}
.socialDot{width:8px; height:8px; border-radius:999px; background:rgba(var(--accent-rgb),.85)}
.fineprint{margin-top:16px; color:rgba(255,255,255,.55); line-height:1.7}

.form{position:relative; border-radius: var(--radius2); border:1px solid rgba(255,255,255,.12); background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.18)); padding:18px; box-shadow: var(--shadow); overflow:hidden}
.form label{display:block; margin-top:12px}
.form label > span{display:block; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:8px}
.form input, .form textarea{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.28);
  color:rgba(255,255,255,.86);
  padding:12px 12px;
  outline:none;
}
.form input:focus, .form textarea:focus{border-color:rgba(var(--accent-rgb),.40); box-shadow:0 0 0 4px rgba(var(--accent-rgb),.04)}
.formRow{display:grid; grid-template-columns:1fr 1fr; gap:10px}
@media (max-width: 520px){.formRow{grid-template-columns:1fr}}
.formActions{display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-top:14px}
.formNote{text-align:left}
.formNote{font-size:12px; color:rgba(255,255,255,.55)}

.contactBackdrop{position:absolute; inset:-60%; background:radial-gradient(closest-side, rgba(var(--accent-rgb),.26), transparent 60%); opacity:.35; filter:blur(2px); pointer-events:none}

.footer{border-top:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.20); padding: 28px 0}
.footerInner{max-width:var(--max); margin:0 auto; padding: 0 22px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap}
.footerBrand{display:flex; gap:12px; align-items:center}
.footerBrand img{width:44px; height:44px; object-fit:cover; border-radius:14px; border:1px solid rgba(255,255,255,.12)}
.footerName{font-family:"Space Grotesk"; font-size:16px}
.footerTag{font-size:12px; color:rgba(255,255,255,.56)}
.footerSmall{margin-top:12px; font-size:12px; color:rgba(255,255,255,.50)}
.footerTop{display:inline-block; padding:10px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04)}
.footerLinks{display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; color:rgba(255,255,255,.60)}
.footerLinks a:hover{color:rgba(255,255,255,.86)}

.lightbox{position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.78); backdrop-filter: blur(14px); display:grid; place-items:center; opacity:0; pointer-events:none; transition:.22s ease}
.lightbox.open{opacity:1; pointer-events:auto}
.lightboxInner{width:min(1100px, 92vw); border-radius: 26px; border:1px solid rgba(255,255,255,.14); background:rgba(10,10,14,.55); box-shadow: var(--shadow); padding: 16px; position:relative}
.lightboxInner img{width:100%; height:auto; border-radius: 18px}
.lightboxClose{position:absolute; right:14px; top:14px; width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:rgba(255,255,255,.88); cursor:pointer}
.lbClose{position:absolute; right:14px; top:14px; width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:rgba(255,255,255,.88); cursor:pointer}
.lbImg{width:min(1100px, 92vw); max-height: 84vh; object-fit: contain; border-radius: 18px; border:1px solid rgba(255,255,255,.14)}
.lightboxHint{margin-top:10px; font-size:12px; color:rgba(255,255,255,.55); text-align:center}

/* subtle reveal defaults */
[data-reveal]{opacity:0; transform:translateY(18px)}



/* --- v3 polish --- */
.srOnly{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}
.socSvg{width:18px; height:18px; display:inline-block; vertical-align:middle; color:rgba(255,255,255,.86)}
.miniPill .socSvg{width:16px; height:16px}
.menuSocial a{display:inline-flex; align-items:center; gap:10px}
.menuSocial a .socSvg{color:rgba(255,255,255,.82)}
.footer{margin-top:70px; border-top:1px solid rgba(255,255,255,.08); background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,0))}
.footerInner{display:grid; grid-template-columns: 1.2fr 1fr 1.2fr; gap:24px; padding:34px 0}
.footerBrand{display:flex; align-items:center; gap:14px}
.footerLogo{width:44px; height:44px; border-radius:14px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.25); object-fit:cover}
.footerName{font-family:"Space Grotesk"; letter-spacing:.04em}
.footerLoc{color:rgba(255,255,255,.62); font-size:13px; margin-top:2px}
.footerLinks{display:flex; flex-wrap:wrap; gap:12px 18px; align-content:flex-start}
.footerLinks a{color:rgba(255,255,255,.74); font-size:14px; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.16)}
.footerLinks a:hover{border-color:rgba(var(--accent-rgb),.28); color:rgba(255,255,255,.90)}
.footerContact{display:flex; flex-direction:column; gap:16px; align-items:flex-end}
.footPill{display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:999px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18); color:rgba(255,255,255,.88)}
.footPill:hover{border-color:rgba(var(--accent-rgb),.28)}
.footerSocial{display:flex; gap:10px; margin-top:4px}
.socialIcon{width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18)}
.socialIcon:hover{border-color:rgba(var(--accent-rgb),.28)}
.footerBar{border-top:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.24)}
.footerBarInner{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 0; color:rgba(255,255,255,.65); font-size:13px}
.backTop{appearance:none; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18); color:rgba(255,255,255,.86); padding:10px 14px; border-radius:999px; cursor:pointer; display:inline-flex; align-items:center; gap:10px}
.backTop:hover{border-color:rgba(var(--accent-rgb),.28)}
.workMore{margin-top:16px}
@media (max-width: 920px){
  .footerInner{grid-template-columns:1fr; align-items:flex-start}
  .footerContact{align-items:flex-start}
  .footerBarInner{flex-direction:column; align-items:center; text-align:center; padding:22px 0; gap:16px}
}


/* Work page */
.workHero{padding-top:120px}
.workFilters{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px}
.filterBtn{appearance:none; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.18); color:rgba(255,255,255,.78); padding:10px 14px; border-radius:999px; cursor:pointer; font-size:14px}
.filterBtn:hover{border-color:rgba(var(--accent-rgb),.28); color:rgba(255,255,255,.90)}
.filterBtn.isActive{border-color:rgba(var(--accent-rgb),.40); background:linear-gradient(180deg, rgba(var(--accent-rgb),.18), rgba(0,0,0,.12)); color:rgba(255,255,255,.92)}

/* New Work showcase layout */
.workShowcase{padding-top:120px}

/* Work page: featured hero placeholder */
.showcaseHero{display:grid; grid-template-columns: 1.25fr 1fr; gap:18px; align-items:stretch; margin-bottom:18px}
.showcaseHeroText .lead{max-width:52ch}
.showcaseHeroMedia{position:relative; border-radius:26px; border:1px solid rgba(255,255,255,.12); background:linear-gradient(180deg, rgba(var(--accent-rgb),.10), rgba(0,0,0,.22)); overflow:hidden; min-height:240px; display:flex; flex-direction:column; justify-content:flex-end; padding:18px; gap:10px}
.heroPhBadge{align-self:flex-start; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.70); border:1px solid rgba(255,255,255,.14); background:rgba(0,0,0,.18); padding:8px 10px; border-radius:999px}
.heroPhTitle{font-family:"Space Grotesk"; font-size:20px; letter-spacing:.04em}
.heroPhSub{font-size:12px; color:rgba(255,255,255,.62); letter-spacing:.14em; text-transform:uppercase}

.showcaseHead{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:6px}
.showcaseStats{display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-end}
.sStat{min-width:170px; border-radius:18px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.16); padding:12px 14px}
.sNum{font-family:"Space Grotesk"; letter-spacing:.04em}
.sLab{margin-top:4px; font-size:12px; color:rgba(255,255,255,.62)}

.showcaseGrid{margin-top:18px; display:grid; grid-template-columns: repeat(12, 1fr); gap:14px}
.showcaseCard{grid-column: span 4; border-radius:22px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.18); overflow:hidden; position:relative; padding:0; cursor:pointer; min-height:240px}
.showcaseCard img{width:100%; height:100%; object-fit:cover; aspect-ratio: 4/3; display:block; filter:saturate(1.04) contrast(1.02); transition:transform .45s ease}
.showcaseCard:hover{border-color:rgba(var(--accent-rgb),.28)}
.showcaseCard:hover img{transform:scale(1.06)}
.showcaseCard.feature{grid-column: span 8}
.showcaseCard.feature img{aspect-ratio: 16/8}
.showcaseMeta{position:absolute; left:0; right:0; bottom:0; padding:14px; display:flex; justify-content:space-between; align-items:flex-end; background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.84))}
.showcaseTitle{font-family:"Space Grotesk"; letter-spacing:.04em}
.showcaseTag{font-size:12px; color:rgba(255,255,255,.70); letter-spacing:.14em; text-transform:uppercase}

.showcaseCard.placeholder{cursor:default; padding:18px; display:flex; flex-direction:column; justify-content:flex-end; gap:10px; background:linear-gradient(180deg, rgba(var(--accent-rgb),.10), rgba(0,0,0,.22)); border-style:dashed; min-height:380px;}
.showcaseCard.placeholder .phBadge{align-self:flex-start; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.70); border:1px solid rgba(255,255,255,.14); background:rgba(0,0,0,.18); padding:8px 10px; border-radius:999px}
.showcaseCard.placeholder .phBig{font-family:"Space Grotesk"; font-size:18px; letter-spacing:.04em}
.showcaseCard.placeholder .phSmall{font-size:12px; color:rgba(255,255,255,.62); letter-spacing:.14em; text-transform:uppercase}

.showcaseCta{margin-top:20px; display:flex; justify-content:center}

@media (max-width: 980px){
  .showcaseHero{grid-template-columns:1fr;}
  .showcaseHead{flex-direction:column; align-items:flex-start}
  .showcaseStats{justify-content:flex-start}
  .showcaseCard, .showcaseCard.feature{grid-column: span 12}
  .showcaseCard.feature img{aspect-ratio: 4/3}
}
.filmstrip{display:flex; gap:14px; overflow:auto; padding:14px 4px 6px; margin-top:22px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch}
.filmstrip::-webkit-scrollbar{height:10px}
.stripCard{position:relative; flex:0 0 340px; height:210px; border-radius:22px; border:1px solid rgba(255,255,255,.12); background:rgba(0,0,0,.18); overflow:hidden; scroll-snap-align:start; cursor:pointer; transform:translateZ(0)}
.stripCard img{width:100%; height:100%; object-fit:cover; filter:saturate(1.05) contrast(1.03)}
.stripCard:before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,.75));}
.stripMeta{position:absolute; left:14px; right:14px; bottom:12px; display:flex; justify-content:space-between; align-items:flex-end}
.stripTitle{font-family:"Space Grotesk"; letter-spacing:.04em}
.stripTag{font-size:12px; color:rgba(255,255,255,.70)}
.stripCard:hover{border-color:rgba(var(--accent-rgb),.28); transform:translateY(-2px)}
.masonry{column-count:3; column-gap:14px; margin-top:22px}
.mTile{break-inside:avoid; width:100%; margin:0 0 14px; border-radius:22px; border:1px solid rgba(255,255,255,.12); overflow:hidden; background:rgba(0,0,0,.18); cursor:pointer; display:block; padding:0}
.mTile img{width:100%; height:auto; display:block; transform:scale(1.02); transition:transform .4s ease}
.mTile:hover{border-color:rgba(var(--accent-rgb),.28)}
.mTile:hover img{transform:scale(1.06)}
@media (max-width: 980px){ .masonry{column-count:2} .stripCard{flex-basis:300px}}
@media (max-width: 640px){ .masonry{column-count:1} .stripCard{flex-basis:84vw} .workHero{padding-top:98px}}

/* Home gallery: less generic collage feel */
.gallery{perspective:1200px}
.tile{transform:translateZ(0); transition:transform .45s ease, border-color .25s ease}
.tile:hover{transform:translateY(-3px) rotateX(2deg) rotateY(-2deg)}
/* Keep the layout tidy (no big staggered offsets) */
.tile:nth-child(2){transform:translateY(-4px)}
.tile:nth-child(4){transform:translateY(4px)}
.tile:nth-child(5){transform:translateY(-2px)}
@media (max-width: 860px){
  .tile:nth-child(2), .tile:nth-child(4), .tile:nth-child(5){transform:none}
}


/* ---- v4 polish ---- */
:root{
  --pink:#ff20c8;
  --pink2:#ff00a8;
}

/* Scrollbar */
html{scrollbar-color: var(--pink) rgba(255,255,255,.06); scrollbar-width: thin;}
::-webkit-scrollbar{width:12px}
::-webkit-scrollbar-track{background: rgba(255,255,255,.04)}
::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, rgba(255,32,200,.92), rgba(var(--accent-rgb),.62));
  border-radius: 20px;
  border: 3px solid rgba(0,0,0,.55);
}
::-webkit-scrollbar-thumb:hover{background: linear-gradient(180deg, rgba(255,32,200,1), rgba(var(--accent-rgb),.78))}

/* Contact social icons */
.socialRow{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:14px}
.socialIconBtn{
  width:44px; height:44px; border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  display:grid; place-items:center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.socialIconBtn img{
  width:18px; height:18px;
  filter: invert(1) brightness(.95);
  opacity:.92;
}
.socialIconBtn:hover{
  transform: translateY(-1px) scale(1.03);
  border-color: rgba(255,32,200,.38);
  box-shadow: 0 10px 28px rgba(var(--accent-rgb),.14), 0 0 0 4px rgba(var(--accent-rgb),.06);
}
.socialIconBtn:hover img{filter: invert(1) brightness(1) drop-shadow(0 0 10px rgba(var(--accent-rgb),.55));}

/* Hero marquee stroke */
.heroMarquee{
  border-top:1px solid rgba(255,32,200,.22);
  border-bottom:1px solid rgba(255,32,200,.14);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb),.06);
}
.marqueeTrack span{
  color: rgba(255,255,255,.70);
  text-shadow: 0 0 14px rgba(var(--accent-rgb),.22);
}

/* Sections: keep the content clean; background flow comes from the site canvas */
.section::before,
.section::after{display:none !important; content:none !important;}

/* Contact backdrop tuned for nicer flow */
.contactBackdrop{opacity:.26; filter:blur(4px);}

/* Footer: match header vibe (grid + subtle embers), not a big pink slab */
.footer{position:relative; overflow:hidden; background: rgba(11,11,15,.46); border-top:1px solid rgba(255,255,255,.08); backdrop-filter: blur(18px);}
.footerGrid{position:absolute; inset:0; width:100%; height:100%; opacity:.55; pointer-events:none; z-index:0;}
.footerInner, .footerBar{position:relative; z-index:1;}
.footerBar{margin-top:18px;}
.footerInner{
  display:grid;
  grid-template-columns: 1.1fr 1.3fr 1.1fr;
  align-items:start;
}
.footerNav{display:flex; flex-wrap:wrap; gap:10px; justify-content:center}
.footerRight{display:flex; flex-direction:column; align-items:flex-end; gap:10px}
@media (max-width: 860px){
  .footerInner{grid-template-columns:1fr; gap:18px}
  .footerNav{justify-content:flex-start}
  .footerRight{align-items:flex-start}
  .footerBar{margin-top:22px;}
}

/* ---------------- v5 updates ---------------- */

/* Shared max-width wrapper used by footer + work page */
.wrap{max-width:var(--max); margin:0 auto; padding:0 22px;}

/* One big animated canvas behind all content */
.bgCanvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:-1;
  pointer-events:none;
  opacity:.92;
}

/* The old section gradients were stacking and making the background feel messy */
.section::before,
.section::after{display:none !important;}

/* ---------- Placeholders / media frames ---------- */
.phMedia{
  position:relative;
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(900px 600px at 25% 25%, rgba(var(--accent-rgb), var(--accent-alpha)) 0%, rgba(0,0,0,0) 60%),
    linear-gradient(135deg, rgba(27,19,32,1) 0%, rgba(11,11,15,1) 100%);
  box-shadow: 0 25px 90px rgba(0,0,0,.45);
  overflow:hidden;
  min-height: 160px;
  cursor:pointer;
  transform: translateZ(0);
}
.phMedia::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 72px 72px;
  opacity:.22;
}
.phMedia::after{
  content:"";
  position:absolute;
  inset:-40%;
  background: radial-gradient(closest-side, rgba(var(--accent-rgb), .18), rgba(0,0,0,0) 65%);
  transform: translate3d(-18%, -14%, 0);
  filter: blur(18px);
  opacity:.7;
}
.phMedia .phLabel{
  position:absolute;
  left:14px;
  bottom:12px;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.65);
  padding:8px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.20);
  backdrop-filter: blur(10px);
}
.phMedia:hover{transform: translate3d(0,-2px,0) scale(1.01); border-color: rgba(var(--accent-rgb), .42)}
.phMedia:hover::after{opacity:1}
.phMedia.sm{min-height:140px}

/* When a real photo is present inside a placeholder frame */
.phMedia.hasImg{background: linear-gradient(135deg, rgba(27,19,32,1) 0%, rgba(11,11,15,1) 100%)}
.phMedia.hasImg::before{opacity:.14}
.phMedia.hasImg::after{opacity:.55}
.phMedia.hasImg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.03);
  transition:transform .7s ease;
}
.phMedia.hasImg:hover img{transform:scale(1.08)}

/* Subtle image zoom on hover (used for hero/services/about images) */
.zoomMedia{overflow:hidden}
.zoomMedia img{transition: transform .7s ease; transform-origin:center}
.zoomMedia:hover img{transform: scale(1.06)}

/* ---------- Contact form upgrades ---------- */
.form .field{position:relative}
.labelRow{display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:8px; min-height:38px}
.reqDot{width:5px; height:5px; border-radius:999px; background:rgba(var(--accent-rgb), .92); box-shadow:0 0 0 5px rgba(var(--accent-rgb), .06), 0 0 26px rgba(var(--accent-rgb), .18)}
.reqDotCorner{position:absolute; right:16px; top: 34px;}
@media (max-width: 520px){.reqDotCorner{top: 32px; right:14px;}}

/* Keep inputs on-theme even when browser autofills */
.form input:-webkit-autofill,
.form input:-webkit-autofill:hover,
.form input:-webkit-autofill:focus,
.form textarea:-webkit-autofill,
.form textarea:-webkit-autofill:hover,
.form textarea:-webkit-autofill:focus{
  -webkit-text-fill-color: rgba(255,255,255,.88);
  caret-color: rgba(255,255,255,.90);
  transition: background-color 9999s ease-in-out 0s;
  -webkit-box-shadow: 0 0 0px 1000px rgba(0,0,0,.28) inset;
  box-shadow: 0 0 0px 1000px rgba(0,0,0,.28) inset;
}
.formRow.three{grid-template-columns: repeat(3, 1fr)}
.formRow.three .field{display:flex; flex-direction:column}
/* A little more breathing room between email and the dropdown row */
.formRow.three{margin-top:16px}
@media (max-width: 980px){.formRow.three{grid-template-columns:1fr}}

.select{position:relative}
.selectBtn{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding: 14px 14px;
  min-height: 50px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  color:rgba(255,255,255,.88);
  cursor:pointer;
  transition:.18s ease;
}
.selectBtn:hover{border-color: rgba(var(--accent-rgb), .40)}
.selectBtn:focus{outline:none; box-shadow:0 0 0 3px rgba(var(--accent-rgb), .18)}
.selectChevron{opacity:.65; font-size:14px}
.selectList{
  position:absolute;
  left:0; right:0;
  top: calc(100% + 10px);
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(7,7,10,.86);
  backdrop-filter: blur(18px);
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
  padding: 8px;
  display:none;
  z-index:20;
}
.select.open .selectList{display:block; animation: pop .16s ease}
.selectOpt{
  width:100%;
  text-align:left;
  border:0;
  background: transparent;
  color:rgba(255,255,255,.86);
  padding: 12px 12px;
  border-radius: 12px;
  cursor:pointer;
}
.selectOpt:hover{background: rgba(255,255,255,.06)}
.select.hasValue .selectValue{color:rgba(255,255,255,.92)}

/* Fix "Send enquiry" text vertical alignment */
.btn .btnText{display:inline-flex; align-items:center; line-height:1}

/* ---------- Reviews ---------- */
.reviewsGrid{display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; margin-top: 22px; align-items:start}
@media (max-width: 980px){.reviewsGrid{grid-template-columns:1fr}}

.reviewCard{border:1px solid rgba(255,255,255,.10); background: rgba(0,0,0,.18); border-radius: 22px; overflow:hidden; transition:.2s ease; position:relative; align-self:start}
.reviewCard:hover{border-color: rgba(var(--accent-rgb), .30); transform: translate3d(0,-2px,0)}
.reviewTop{width:100%; display:flex; align-items:center; gap:12px; padding:16px; border:0; background:transparent; cursor:pointer; color:inherit}
.reviewPfp{width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.18); object-fit:cover}
.reviewMeta{flex:1; text-align:left}
.reviewName{font-weight:600}
.reviewStars{letter-spacing:.12em; color:rgba(var(--accent-rgb), .95); text-shadow:0 0 30px rgba(var(--accent-rgb), .22)}
.reviewWhen{font-size:12px; color:rgba(255,255,255,.50); margin-top:2px}
.reviewToggleIcon{width:34px; height:34px; display:grid; place-items:center; border-radius:12px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06)}

.reviewSnippet{padding: 0 16px 16px}
.reviewSnippet .reviewText{margin:0; color:rgba(255,255,255,.68); line-height:1.6}
.reviewCard.open .reviewSnippet{display:none}

.reviewBody{padding:0 16px 16px; display:none}
.reviewCard.open .reviewBody{display:block}
.reviewText{color:rgba(255,255,255,.70); line-height:1.7; margin: 12px 0 0}
.reviewTextFull{display:none}
.reviewCard.open .reviewTextShort{display:none}
.reviewCard.open .reviewTextFull{display:block}
.reviewMedia{display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:14px}
.reviewActions{margin-top:14px}

/* ---------- Work (more work page) ---------- */
.workShowcase{padding-top:108px}
.workShowcaseInner{display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:stretch}
@media (max-width: 980px){.workShowcaseInner{grid-template-columns:1fr}}
.showcaseCopy{padding:18px 0}
.showcaseTitle{font-family:"Space Grotesk"; font-weight:700; font-size: clamp(36px, 4vw, 54px); line-height:1.02; margin: 10px 0 10px}
.showcaseLead{color:rgba(255,255,255,.65); line-height:1.7; max-width:58ch}

.project{padding: 34px 0}
.projectHead{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:16px}
@media (max-width: 980px){.projectHead{flex-direction:column; align-items:flex-start}}
.projectTitle{font-family:"Space Grotesk"; font-weight:700; font-size: 26px; margin:0}
.projectTag{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.52)}

.projectTop{display:grid; grid-template-columns: 1fr 1fr; gap:14px}
@media (max-width: 980px){.projectTop{grid-template-columns:1fr}}

.projectSlider{margin-top:14px; display:grid; grid-template-columns: 54px 1fr 54px; gap:12px; align-items:stretch}
@media (max-width: 980px){.projectSlider{grid-template-columns:1fr; gap:10px}}
.sliderBtn{
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color:rgba(255,255,255,.85);
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:.18s ease;
}
.sliderBtn:hover{border-color: rgba(var(--accent-rgb), .40); transform: translate3d(0,-1px,0)}

.sliderViewport{overflow:hidden; border-radius: 18px}
.sliderTrack{display:grid; grid-auto-flow:column; grid-auto-columns: minmax(220px, 1fr); gap:12px; transition: transform .25s ease}
@media (max-width: 980px){
  .sliderViewport{overflow:auto; -webkit-overflow-scrolling:touch}
  .sliderTrack{grid-auto-columns: minmax(68%, 1fr)}
  .sliderBtn{display:none}
}

/* Lightbox buttons */
.lightboxNav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:48px;
  height:48px;
  border-radius: 16px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.38);
  backdrop-filter: blur(12px);
  color:rgba(255,255,255,.90);
  cursor:pointer;
}
.lightboxPrev{left: 18px}
.lightboxNext{right: 18px}
@media (max-width: 980px){.lightboxNav{width:44px;height:44px; border-radius:14px}}

/* Footer spacing tweak */
.footerBar{margin-top: 28px}
.footerBarInner{padding: 18px 0}


/* Work page width (v14) */
body.workPage{--max: 1400px;}
body.workPage .wrap{padding-left:26px; padding-right:26px;}
body.workPage .workShowcaseInner{gap:26px;}
body.workPage .sliderTrack{grid-auto-columns: minmax(260px, 1fr);}

/* Work page: before/after should feel like feature images (not skinny strips) */
body.workPage .projectTop .phMedia{min-height: 320px;}
@media (max-width: 980px){body.workPage .projectTop .phMedia{min-height: 260px;}}




/* Feature Work Grid */
.featureGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.featureGrid .feature img{aspect-ratio:4/3}
.featureGrid .workItem{max-height:420px}

@media(max-width:1024px){
.featureGrid{grid-template-columns:repeat(2,1fr)}
.featureGrid .feature:nth-child(3){grid-column:span 2}
}
@media(max-width:640px){
.featureGrid{grid-template-columns:1fr}
}

/* Match existing tag style + raise further */
.featureGrid .tileTag{
position:absolute;
top:-8px;   /* moved up again */
left:8px;
padding:6px 14px;
font-size:11px;
letter-spacing:.12em;
border-radius:999px;
background:rgba(255,255,255,.12);
backdrop-filter:blur(6px);
border:1px solid rgba(255,255,255,.25);
color:#fff;
text-transform:uppercase;
}

.moreWorkWrap{text-align:center;margin-top:24px}


.quoteBtn{
background:linear-gradient(135deg,#b21b6a,#ff3fa4);
border:none;
box-shadow:0 0 0 1px rgba(255,255,255,.15),0 10px 30px rgba(255,63,164,.35);
}

.moreWorkWrap{text-align:center;margin-top:32px}

/* Header nudge */
.sectionHead{transform:translate(-12px,24px)}

/* restore margins */
.workShowcase,.project{max-width:var(--max);margin:0 auto;padding:0 22px}



/* Work section button */
.moreWorkWrap{
display:block;
text-align:center;
margin-top:32px;
}

/* Work page spacing restored */
.workShowcase,.project{
max-width:var(--max);
margin:0 auto;
padding:0 22px;
}

.project{margin-top:48px}

/* Hero positioning (home only) */
@media(min-width:981px){
.hero--photo .heroInner{
padding-top:60px;
padding-left:24px;
}
}


/* Work page: offset content for fixed navbar */
body.workPage main{padding-top: 92px;}

.footerInner{display:flex;justify-content:space-between;align-items:flex-start;}

.reviewImgs{display:flex;gap:12px;margin-top:14px}
.reviewImgs .phMedia{flex:1}

/* Ensure review media sits as two small slots */
.reviewMedia{display:flex; gap:12px; margin-top:14px}
.reviewMedia .phMedia{flex:1}



/* About portrait: keep face/top visible */
.aboutImg.portraitTop{
  height:360px;       /* adjust if needed */
  overflow:hidden;
}

.aboutImg.portraitTop img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position: top center;
}


/* Footer center column with legal links underneath */
.footerInner{display:flex; justify-content:space-between; align-items:flex-start; gap:60px;}
.footerNavCol{display:flex; flex-direction:column; align-items:center; gap:14px; min-width: 340px;}
.footerNavCol .footerLinks{display:flex; gap:18px; flex-wrap:wrap; justify-content:center;}
.footerLegal{display:flex; gap:12px; flex-wrap:wrap; justify-content:center;}
.footerContact{display:flex; flex-direction:column; align-items:flex-end; gap:14px;}
.footerSocial{justify-content:flex-end;}

.footerLegal a{color:rgba(255,255,255,.74); font-size:14px; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.16)}

/* Header development badge: far right of hero */
.devBadge{
  position:absolute;
  bottom:22px;         /* moved to bottom-right of header */
  right:26px;
  top:auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background: rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.14);
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
  color: rgba(255,255,255,.86);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  z-index:6;
}
@media (max-width: 980px){
  .devBadge{bottom:14px; right:14px; top:auto; padding:9px 12px; font-size:11px;}
}


.devDot{
  width:8px; height:8px; border-radius:999px;
  background: var(--pink);
  box-shadow: 0 0 0 6px rgba(var(--accent-rgb),.08), 0 0 40px rgba(var(--accent-rgb),.55);
}
