/* =========================================================
   BISON DEMOLITION & DECONSTRUCTION — concept demo
   Rugged / industrial. Flat fills, hard edges, real photos.
   Accent: safety yellow #FFC400 (machine-yellow / hi-vis).
   NOTE: the --red / .red / .btn--red names are kept as
   structural tokens; they now carry the yellow accent value.
   ========================================================= */
:root{
  --red:#FFC400;
  --red-d:#caa000;
  --on-accent:#0a0a0a; /* text/icon colour to use ON the yellow fill */
  --black:#0a0a0a;
  --ink:#0d0d0d;
  --steel:#151515;
  --steel-2:#1c1c1c;
  --line:#2b2b2b;
  --line-2:#3a3a3a;
  --white:#f4f4f4;
  --grey:#9a9a9c;
  --grey-d:#6e6e72;
  --head:'Anton',Impact,'Arial Narrow Bold',sans-serif;
  --cond:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Inter',system-ui,sans-serif;
  --maxw:1280px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:#141414;color:var(--white);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
section{position:relative}
::selection{background:var(--red);color:var(--on-accent)}

/* film grain — grit, not gradient */
.grain{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* =========================================================
   WALLPAPER-TEAR INTRO (three.js canvas overlay)
   ========================================================= */
#tear{position:absolute;inset:0;z-index:2;pointer-events:none}      /* scoped to hero, BEHIND the hero text */
#tear canvas{width:100%!important;height:100%!important;display:block}
#tear.gone{display:none}

/* ---- legacy curtain styles (unused; kept dormant) ---- */
.curtain{position:fixed;inset:0;z-index:9000;overflow:hidden;pointer-events:none}
.curtain.gone{display:none}
.wall{position:absolute;inset:0;background:url("assets/img/work-8.webp") center/cover;filter:grayscale(.85) brightness(.62) contrast(1.3);will-change:transform;transition:transform 1.25s cubic-bezier(.66,0,.34,1)}
.wall::after{content:"";position:absolute;inset:0;background:rgba(12,12,12,.4);
  box-shadow:inset 0 0 220px 30px rgba(0,0,0,.72)}
.wall::before{content:"NO EXCUSES. NO DELAYS.";position:absolute;top:50%;width:200vw;transform:translateY(-50%);
  font-family:var(--head);font-size:6vw;letter-spacing:.04em;color:rgba(255,255,255,.08);white-space:nowrap;text-align:center}
.wall--l{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2040%20100'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,0%20L19.13,0.00%20L10.50,2.46%20L15.71,4.96%20L17.35,7.36%20L16.83,8.21%20L23.13,10.04%20L20.50,11.54%20L20.95,13.25%20L19.00,14.20%20L17.78,15.26%20L15.02,16.81%20L21.36,17.93%20L22.91,19.49%20L7.24,20.24%20L21.59,21.10%20L18.04,23.15%20L19.30,24.65%20L21.97,26.33%20L13.17,28.42%20L17.67,29.80%20L25.46,30.61%20L23.17,32.80%20L10.74,34.62%20L18.48,36.57%20L25.07,38.45%20L21.58,40.99%20L17.67,42.38%20L18.77,44.53%20L23.72,45.93%20L20.45,47.71%20L21.22,49.67%20L22.65,50.97%20L21.36,51.83%20L32.32,53.43%20L22.87,55.49%20L21.48,57.32%20L20.81,58.87%20L14.88,60.79%20L13.81,61.83%20L18.87,62.87%20L26.94,64.19%20L31.84,66.44%20L14.52,67.51%20L25.28,68.43%20L16.23,69.31%20L12.28,70.09%20L19.22,71.31%20L21.22,73.10%20L17.44,75.36%20L22.06,76.69%20L10.90,78.09%20L20.98,79.34%20L17.48,80.62%20L22.81,82.79%20L18.11,84.54%20L22.99,85.73%20L17.75,86.63%20L23.15,88.82%20L20.51,90.86%20L19.01,93.14%20L15.08,94.29%20L31.42,96.03%20L22.05,98.47%20L16.93,100.00%20L0,100%20Z'%20fill='%23fff'/%3E%3C/svg%3E") left center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2040%20100'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,0%20L19.13,0.00%20L10.50,2.46%20L15.71,4.96%20L17.35,7.36%20L16.83,8.21%20L23.13,10.04%20L20.50,11.54%20L20.95,13.25%20L19.00,14.20%20L17.78,15.26%20L15.02,16.81%20L21.36,17.93%20L22.91,19.49%20L7.24,20.24%20L21.59,21.10%20L18.04,23.15%20L19.30,24.65%20L21.97,26.33%20L13.17,28.42%20L17.67,29.80%20L25.46,30.61%20L23.17,32.80%20L10.74,34.62%20L18.48,36.57%20L25.07,38.45%20L21.58,40.99%20L17.67,42.38%20L18.77,44.53%20L23.72,45.93%20L20.45,47.71%20L21.22,49.67%20L22.65,50.97%20L21.36,51.83%20L32.32,53.43%20L22.87,55.49%20L21.48,57.32%20L20.81,58.87%20L14.88,60.79%20L13.81,61.83%20L18.87,62.87%20L26.94,64.19%20L31.84,66.44%20L14.52,67.51%20L25.28,68.43%20L16.23,69.31%20L12.28,70.09%20L19.22,71.31%20L21.22,73.10%20L17.44,75.36%20L22.06,76.69%20L10.90,78.09%20L20.98,79.34%20L17.48,80.62%20L22.81,82.79%20L18.11,84.54%20L22.99,85.73%20L17.75,86.63%20L23.15,88.82%20L20.51,90.86%20L19.01,93.14%20L15.08,94.29%20L31.42,96.03%20L22.05,98.47%20L16.93,100.00%20L0,100%20Z'%20fill='%23fff'/%3E%3C/svg%3E") left center/100% 100% no-repeat}
.wall--l::before{left:0}
.wall--r{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2040%20100'%20preserveAspectRatio='none'%3E%3Cpath%20d='M40,0%20L19.13,0.00%20L10.50,2.46%20L15.71,4.96%20L17.35,7.36%20L16.83,8.21%20L23.13,10.04%20L20.50,11.54%20L20.95,13.25%20L19.00,14.20%20L17.78,15.26%20L15.02,16.81%20L21.36,17.93%20L22.91,19.49%20L7.24,20.24%20L21.59,21.10%20L18.04,23.15%20L19.30,24.65%20L21.97,26.33%20L13.17,28.42%20L17.67,29.80%20L25.46,30.61%20L23.17,32.80%20L10.74,34.62%20L18.48,36.57%20L25.07,38.45%20L21.58,40.99%20L17.67,42.38%20L18.77,44.53%20L23.72,45.93%20L20.45,47.71%20L21.22,49.67%20L22.65,50.97%20L21.36,51.83%20L32.32,53.43%20L22.87,55.49%20L21.48,57.32%20L20.81,58.87%20L14.88,60.79%20L13.81,61.83%20L18.87,62.87%20L26.94,64.19%20L31.84,66.44%20L14.52,67.51%20L25.28,68.43%20L16.23,69.31%20L12.28,70.09%20L19.22,71.31%20L21.22,73.10%20L17.44,75.36%20L22.06,76.69%20L10.90,78.09%20L20.98,79.34%20L17.48,80.62%20L22.81,82.79%20L18.11,84.54%20L22.99,85.73%20L17.75,86.63%20L23.15,88.82%20L20.51,90.86%20L19.01,93.14%20L15.08,94.29%20L31.42,96.03%20L22.05,98.47%20L16.93,100.00%20L40,100%20Z'%20fill='%23fff'/%3E%3C/svg%3E") right center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2040%20100'%20preserveAspectRatio='none'%3E%3Cpath%20d='M40,0%20L19.13,0.00%20L10.50,2.46%20L15.71,4.96%20L17.35,7.36%20L16.83,8.21%20L23.13,10.04%20L20.50,11.54%20L20.95,13.25%20L19.00,14.20%20L17.78,15.26%20L15.02,16.81%20L21.36,17.93%20L22.91,19.49%20L7.24,20.24%20L21.59,21.10%20L18.04,23.15%20L19.30,24.65%20L21.97,26.33%20L13.17,28.42%20L17.67,29.80%20L25.46,30.61%20L23.17,32.80%20L10.74,34.62%20L18.48,36.57%20L25.07,38.45%20L21.58,40.99%20L17.67,42.38%20L18.77,44.53%20L23.72,45.93%20L20.45,47.71%20L21.22,49.67%20L22.65,50.97%20L21.36,51.83%20L32.32,53.43%20L22.87,55.49%20L21.48,57.32%20L20.81,58.87%20L14.88,60.79%20L13.81,61.83%20L18.87,62.87%20L26.94,64.19%20L31.84,66.44%20L14.52,67.51%20L25.28,68.43%20L16.23,69.31%20L12.28,70.09%20L19.22,71.31%20L21.22,73.10%20L17.44,75.36%20L22.06,76.69%20L10.90,78.09%20L20.98,79.34%20L17.48,80.62%20L22.81,82.79%20L18.11,84.54%20L22.99,85.73%20L17.75,86.63%20L23.15,88.82%20L20.51,90.86%20L19.01,93.14%20L15.08,94.29%20L31.42,96.03%20L22.05,98.47%20L16.93,100.00%20L40,100%20Z'%20fill='%23fff'/%3E%3C/svg%3E") right center/100% 100% no-repeat}
.wall--r::before{right:0}
/* center crack flash */
.curtain__crack{position:absolute;top:0;bottom:0;left:50%;width:3px;transform:translateX(-50%) scaleY(0);transform-origin:top;background:#fff;box-shadow:0 0 24px 6px rgba(255,196,0,.9),0 0 60px 16px rgba(255,196,0,.5);opacity:0}
.curtain.cracking .curtain__crack{animation:crack .42s var(--ease) forwards}
@keyframes crack{0%{opacity:0;transform:translateX(-50%) scaleY(0)}40%{opacity:1}100%{opacity:.9;transform:translateX(-50%) scaleY(1)}}
.curtain.torn .curtain__crack{opacity:0;transition:opacity .3s}
/* dust at the rip */
.curtain__dust{position:absolute;inset:0;opacity:0;background:
  radial-gradient(3px 3px at 49% 20%,#cfcfcf 40%,transparent),radial-gradient(2px 2px at 51% 35%,#bdbdbd 40%,transparent),
  radial-gradient(2px 2px at 48% 55%,#dedede 40%,transparent),radial-gradient(3px 3px at 52% 70%,#bbb 40%,transparent),
  radial-gradient(2px 2px at 50% 85%,#cccccc 40%,transparent)}
.curtain.torn .curtain__dust{animation:wdust 1.1s ease-out forwards}
@keyframes wdust{0%{opacity:.85;transform:translateY(0) scaleX(1)}100%{opacity:0;transform:translateY(60px) scaleX(2.4)}}
/* the rip */
.curtain.cracking .wall{animation:wshake .42s var(--ease)}
@keyframes wshake{25%{transform:translateX(-3px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.curtain.torn .wall--l{transform:translateX(-103%) rotate(-2deg)}
.curtain.torn .wall--r{transform:translateX(103%) rotate(2deg)}

/* ---------- type helpers ---------- */
.kicker{display:flex;align-items:center;gap:.7rem;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;color:var(--grey);margin-bottom:1.1rem}
.kicker__bar{width:34px;height:3px;background:var(--red);flex:none}
.red{color:var(--red)}
.section-title{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:clamp(2.2rem,5.6vw,4.4rem);line-height:.92;letter-spacing:.005em}
.section-head{max-width:780px;margin:0 auto clamp(2.4rem,5vw,3.6rem)}
.section-lead{color:var(--grey);margin-top:1.1rem;font-size:1.06rem;max-width:620px}
.section-lead code{font-family:var(--cond);font-size:1.08em;color:#fff;background:#1d1d1d;border:1px solid var(--line);padding:.02em .4em}

/* container widths */
.nav__inner,.trust,.services,.about,.charity,.clients,.projects,.locations,.reviews,.quote__inner{width:min(92%,var(--maxw));margin-inline:auto}

/* ---------- buttons (blocky / stamped) ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.98rem;padding:.85em 1.5em;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .15s var(--ease),background .15s,color .15s,border-color .15s;border-radius:0}
.btn--red{background:var(--red);color:var(--on-accent);border-color:var(--red)}
.btn--red:hover{background:#fff;color:#000;border-color:#fff;transform:translate(-2px,-2px)}
.btn--steel{background:transparent;color:#fff;border-color:var(--line-2)}
.btn--steel:hover{background:#fff;color:#000;border-color:#fff;transform:translate(-2px,-2px)}
.btn--lg{font-size:1.08rem;padding:1em 1.9em}
.btn--sm{font-size:.84rem;padding:.6em 1.05em}
.dot{width:8px;height:8px;background:#37d35a;flex:none;box-shadow:0 0 0 0 rgba(55,211,90,.7);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(55,211,90,.6)}70%{box-shadow:0 0 0 7px rgba(55,211,90,0)}100%{box-shadow:0 0 0 0 rgba(55,211,90,0)}}

/* =========================================================
   NAV
   ========================================================= */
.nav{position:fixed;inset:0 0 auto;z-index:100;transition:background .3s,border-color .3s,padding .3s;border-bottom:2px solid transparent}
.nav.scrolled{background:rgba(10,10,10,.94);border-color:var(--line)}
.nav__inner{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 0}
.nav__left{display:flex;align-items:center;gap:1.6rem}
.nav.scrolled .nav__inner{padding:.65rem 0}
.brand img{height:92px;width:auto;display:block}
.nav.scrolled .brand img{height:72px}
.footer__brand .brand img{height:140px}
.nav__links{display:flex;gap:2rem}
.nav__links a{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.98rem;color:#d6d6d6;position:relative;padding:.2em 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--red);transition:width .25s var(--ease)}
.nav__links a:hover{color:#fff}.nav__links a:hover::after{width:100%}
.nav__cta{display:flex;align-items:center;gap:1.1rem}
.nav__phone{display:flex;align-items:center;gap:.5rem;font-family:var(--cond);font-weight:700;letter-spacing:.04em;font-size:1rem;color:#fff}
.nav__quote{padding:.5em 1.1em;font-size:.92rem}
/* hamburger + overlay menu — hidden on desktop, shown on mobile */
.nav__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:48px;height:40px;padding:0 10px;background:transparent;border:2px solid var(--line-2);cursor:pointer;flex:none}
.nav__burger span{display:block;width:100%;height:2px;background:#fff;transition:transform .3s var(--ease),opacity .2s}
.nav__burger:hover{border-color:#fff}
.nav__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger.is-open span:nth-child(2){opacity:0}
.nav__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.navmenu{position:fixed;inset:0;z-index:95;background:rgba(8,8,8,.98);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:2rem;opacity:0;visibility:hidden;transition:opacity .3s var(--ease)}
.navmenu.open{opacity:1;visibility:visible}
.navmenu a{font-family:var(--head);text-transform:uppercase;font-size:clamp(1.9rem,6vw,3rem);line-height:1.15;color:#fff;transition:color .2s,transform .2s}
.navmenu a:hover{color:var(--red);transform:translateX(8px)}
.navmenu__cta{color:var(--red)!important;margin-top:1.2rem;border:2px solid var(--red);padding:.25em .9em}

/* =========================================================
   HERO
   ========================================================= */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:150px 0 70px}
.hero__media{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0a0a0a}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:grayscale(.25) contrast(1.08) brightness(.82)}
.hero__scrim{position:absolute;inset:0;z-index:1;background:rgba(8,8,8,.58)}
.hero__scrim::after{content:"";position:absolute;left:0;top:0;bottom:0;right:auto;width:60%;background:rgba(8,8,8,.4)}
.hero__inner{position:relative;z-index:3;width:min(92%,var(--maxw));margin-inline:auto}
.hero__title{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,7.6vw,6.4rem);line-height:1.0;margin:.3rem 0 0;letter-spacing:.005em}
.hero__title span{display:block}
.hero__title .red{text-shadow:0 0 1px var(--red)}
.hero__sub{max-width:560px;color:#dadada;font-size:clamp(1rem,1.5vw,1.2rem);margin-top:1.5rem}
.hero__cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.2rem}
.hero__slogan{margin-top:2.1rem;font-family:var(--head);font-size:clamp(1.2rem,2.2vw,1.7rem);letter-spacing:.02em;color:#fff}
.hero__slogan sup{color:var(--red);font-size:.5em}
.hero__scroll{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--cond);letter-spacing:.3em;font-size:.74rem;color:var(--grey);animation:bob 1.8s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,6px)}}

/* ---- hover before/after reveal (desktop only) ---- */
.hero__before{display:none}
@media(min-width:821px){
  /* image is the star: kill the full scrim, keep only a bottom band for legibility */
  .hero{justify-content:flex-end;padding:150px 0 48px}
  .hero__scrim{display:none}
  .hero__media img{filter:contrast(1.04)}
  .hero__media::after{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;z-index:2;pointer-events:none;
    background:linear-gradient(to top,rgba(8,8,8,.88) 0%,rgba(8,8,8,.55) 40%,transparent 100%)}

  /* "before" layer sits on top of the "after", revealed through a torn hole that follows
     the cursor — an SVG mask (blurred circle + animated turbulence displacement) whose
     circle (#tearHole) is driven from script.js */
  .hero__before{display:block;position:absolute;inset:0;z-index:1;
    -webkit-mask:url(#tearMask);mask:url(#tearMask)}
  .hero__before img{width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:contrast(1.04)}

  /* headline bar across the bottom */
  .hero__inner{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(2rem,4vw,4rem)}
  .hero__lockup{flex:0 1 auto}
  .hero__side{flex:0 1 460px}
  .hero__title{font-size:clamp(1.9rem,3.5vw,3.4rem)}
  .hero__sub{font-size:1rem;margin-top:0;max-width:none}
  .hero__cta{margin-top:1.4rem}
  .hero__cta .btn--lg{padding:.85em 1.5em;font-size:.95rem}
  .hero__slogan{display:none}
}

/* =========================================================
   STATS — TEAR
   ========================================================= */
.stats{background:var(--black);padding:clamp(3rem,7vw,6rem) 0}
.rip{position:relative;width:min(94%,1180px);margin-inline:auto;height:clamp(220px,30vw,300px);overflow:hidden}
/* revealed band underneath — stat box (yellow text, no fill) */
.rip__band{position:absolute;inset:0;display:grid;place-items:center;background:transparent}
/* original brush-band image behind the stats */
.rip__brush{position:absolute;inset:50% 2% auto;transform:translateY(-50%);z-index:0}
.rip__brush img{width:100%;height:auto}
.rip__grid{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:0 clamp(1rem,4vw,3rem)}
.stat{text-align:center}
.stat__num{display:block;font-family:var(--head);font-size:clamp(2.4rem,6.2vw,4.4rem);line-height:1;color:var(--red)}
.stat__label{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(.78rem,1.4vw,1rem);margin-top:.4rem;color:var(--red)}
/* torn concrete slab covers */
.rip__cover{position:absolute;inset:0;z-index:3;background-image:url("assets/img/work-8.webp");background-size:cover;background-position:center;filter:grayscale(.6) brightness(.5) contrast(1.1);transition:transform 1.05s var(--ease),opacity 1.05s var(--ease);will-change:transform}
.rip__cover::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.55)}
.rip__cover--top{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%2040'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,0%20H100%20V18.88%20L100.00,18.88%20L99.37,17.68%20L98.58,22.16%20L97.54,17.37%20L96.73,8.85%20L94.76,18.47%20L92.43,18.73%20L91.23,20.52%20L90.47,22.72%20L89.39,22.41%20L87.39,21.47%20L85.65,14.85%20L84.92,18.82%20L83.61,17.22%20L81.24,23.97%20L79.80,21.48%20L77.56,17.49%20L76.58,20.96%20L75.98,21.08%20L73.85,21.36%20L71.53,14.36%20L70.23,23.54%20L68.11,20.72%20L66.79,18.25%20L64.81,21.84%20L64.08,17.25%20L62.96,22.34%20L61.95,22.44%20L60.78,30.20%20L58.91,19.57%20L56.80,22.00%20L54.40,18.43%20L52.01,10.63%20L50.91,22.96%20L49.48,17.08%20L47.69,20.61%20L46.19,11.44%20L44.44,30.18%20L42.90,17.64%20L40.79,22.99%20L39.40,17.76%20L37.96,27.69%20L37.31,18.11%20L36.27,19.43%20L35.33,20.59%20L34.62,17.03%20L33.07,14.82%20L32.44,19.11%20L31.56,22.93%20L29.85,25.97%20L28.07,25.29%20L25.74,18.42%20L23.37,21.49%20L22.69,19.16%20L20.85,18.96%20L18.79,19.09%20L18.03,14.44%20L16.88,28.84%20L16.11,10.09%20L14.08,18.52%20L12.35,26.20%20L10.83,27.73%20L9.90,17.21%20L8.24,19.55%20L6.72,23.13%20L5.29,21.00%20L3.02,21.47%20L1.41,19.07%20L0.00,19.10%20L0,0%20Z'%20fill='%23fff'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%2040'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,0%20H100%20V18.88%20L100.00,18.88%20L99.37,17.68%20L98.58,22.16%20L97.54,17.37%20L96.73,8.85%20L94.76,18.47%20L92.43,18.73%20L91.23,20.52%20L90.47,22.72%20L89.39,22.41%20L87.39,21.47%20L85.65,14.85%20L84.92,18.82%20L83.61,17.22%20L81.24,23.97%20L79.80,21.48%20L77.56,17.49%20L76.58,20.96%20L75.98,21.08%20L73.85,21.36%20L71.53,14.36%20L70.23,23.54%20L68.11,20.72%20L66.79,18.25%20L64.81,21.84%20L64.08,17.25%20L62.96,22.34%20L61.95,22.44%20L60.78,30.20%20L58.91,19.57%20L56.80,22.00%20L54.40,18.43%20L52.01,10.63%20L50.91,22.96%20L49.48,17.08%20L47.69,20.61%20L46.19,11.44%20L44.44,30.18%20L42.90,17.64%20L40.79,22.99%20L39.40,17.76%20L37.96,27.69%20L37.31,18.11%20L36.27,19.43%20L35.33,20.59%20L34.62,17.03%20L33.07,14.82%20L32.44,19.11%20L31.56,22.93%20L29.85,25.97%20L28.07,25.29%20L25.74,18.42%20L23.37,21.49%20L22.69,19.16%20L20.85,18.96%20L18.79,19.09%20L18.03,14.44%20L16.88,28.84%20L16.11,10.09%20L14.08,18.52%20L12.35,26.20%20L10.83,27.73%20L9.90,17.21%20L8.24,19.55%20L6.72,23.13%20L5.29,21.00%20L3.02,21.47%20L1.41,19.07%20L0.00,19.10%20L0,0%20Z'%20fill='%23fff'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.rip__cover--bottom{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%2040'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,40%20V19.10%20L0.00,19.10%20L1.41,19.07%20L3.02,21.47%20L5.29,21.00%20L6.72,23.13%20L8.24,19.55%20L9.90,17.21%20L10.83,27.73%20L12.35,26.20%20L14.08,18.52%20L16.11,10.09%20L16.88,28.84%20L18.03,14.44%20L18.79,19.09%20L20.85,18.96%20L22.69,19.16%20L23.37,21.49%20L25.74,18.42%20L28.07,25.29%20L29.85,25.97%20L31.56,22.93%20L32.44,19.11%20L33.07,14.82%20L34.62,17.03%20L35.33,20.59%20L36.27,19.43%20L37.31,18.11%20L37.96,27.69%20L39.40,17.76%20L40.79,22.99%20L42.90,17.64%20L44.44,30.18%20L46.19,11.44%20L47.69,20.61%20L49.48,17.08%20L50.91,22.96%20L52.01,10.63%20L54.40,18.43%20L56.80,22.00%20L58.91,19.57%20L60.78,30.20%20L61.95,22.44%20L62.96,22.34%20L64.08,17.25%20L64.81,21.84%20L66.79,18.25%20L68.11,20.72%20L70.23,23.54%20L71.53,14.36%20L73.85,21.36%20L75.98,21.08%20L76.58,20.96%20L77.56,17.49%20L79.80,21.48%20L81.24,23.97%20L83.61,17.22%20L84.92,18.82%20L85.65,14.85%20L87.39,21.47%20L89.39,22.41%20L90.47,22.72%20L91.23,20.52%20L92.43,18.73%20L94.76,18.47%20L96.73,8.85%20L97.54,17.37%20L98.58,22.16%20L99.37,17.68%20L100.00,18.88%20V40%20Z'%20fill='%23fff'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%2040'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,40%20V19.10%20L0.00,19.10%20L1.41,19.07%20L3.02,21.47%20L5.29,21.00%20L6.72,23.13%20L8.24,19.55%20L9.90,17.21%20L10.83,27.73%20L12.35,26.20%20L14.08,18.52%20L16.11,10.09%20L16.88,28.84%20L18.03,14.44%20L18.79,19.09%20L20.85,18.96%20L22.69,19.16%20L23.37,21.49%20L25.74,18.42%20L28.07,25.29%20L29.85,25.97%20L31.56,22.93%20L32.44,19.11%20L33.07,14.82%20L34.62,17.03%20L35.33,20.59%20L36.27,19.43%20L37.31,18.11%20L37.96,27.69%20L39.40,17.76%20L40.79,22.99%20L42.90,17.64%20L44.44,30.18%20L46.19,11.44%20L47.69,20.61%20L49.48,17.08%20L50.91,22.96%20L52.01,10.63%20L54.40,18.43%20L56.80,22.00%20L58.91,19.57%20L60.78,30.20%20L61.95,22.44%20L62.96,22.34%20L64.08,17.25%20L64.81,21.84%20L66.79,18.25%20L68.11,20.72%20L70.23,23.54%20L71.53,14.36%20L73.85,21.36%20L75.98,21.08%20L76.58,20.96%20L77.56,17.49%20L79.80,21.48%20L81.24,23.97%20L83.61,17.22%20L84.92,18.82%20L85.65,14.85%20L87.39,21.47%20L89.39,22.41%20L90.47,22.72%20L91.23,20.52%20L92.43,18.73%20L94.76,18.47%20L96.73,8.85%20L97.54,17.37%20L98.58,22.16%20L99.37,17.68%20L100.00,18.88%20V40%20Z'%20fill='%23fff'/%3E%3C/svg%3E") center/100% 100% no-repeat}
/* ripped state */
.rip.ripped .rip__cover--top{transform:translateY(-104%) rotate(-1.2deg)}
.rip.ripped .rip__cover--bottom{transform:translateY(104%) rotate(1.2deg)}
.rip.ripped{animation:shake .5s var(--ease)}
@keyframes shake{10%{transform:translate(-2px,1px)}20%{transform:translate(3px,-2px)}30%{transform:translate(-3px,2px)}40%{transform:translate(2px,1px)}50%{transform:translate(-1px,-1px)}100%{transform:none}}
.rip__hint{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:4;text-align:center;font-family:var(--cond);letter-spacing:.3em;text-transform:uppercase;font-size:.8rem;color:rgba(255,255,255,.65);transition:opacity .4s}
.rip.ripped .rip__hint{opacity:0}
/* falling dust on rip */
.rip__dust{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0}
.rip.ripped .rip__dust{opacity:1;animation:dust 1.1s ease-out forwards}
.rip__dust::before,.rip__dust::after{content:"";position:absolute;top:46%;left:0;right:0;height:10px;background:radial-gradient(2px 2px at 10% 0,#c9c9c9 40%,transparent),radial-gradient(2px 2px at 30% 4px,#bbb 40%,transparent),radial-gradient(2px 2px at 55% 1px,#ddd 40%,transparent),radial-gradient(2px 2px at 78% 5px,#bbb 40%,transparent),radial-gradient(2px 2px at 92% 2px,#ccc 40%,transparent);filter:blur(.3px)}
@keyframes dust{0%{opacity:.9;transform:translateY(0)}100%{opacity:0;transform:translateY(40px)}}

/* =========================================================
   SERVICES
   ========================================================= */
.services{padding:clamp(4rem,8vw,7rem) 0}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:2px solid var(--line);border-right:0;border-bottom:0}
.svc{position:relative;border-right:2px solid var(--line);border-bottom:2px solid var(--line);background:var(--ink);overflow:hidden;display:flex;flex-direction:column;transition:background .25s}
.svc__img{position:relative;aspect-ratio:16/10;overflow:hidden}
.svc__img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.5) contrast(1.05) brightness(.78);transition:transform .6s var(--ease),filter .4s}
.svc:hover .svc__img img{transform:scale(1.06);filter:grayscale(0) brightness(.9)}
.svc__img::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.25)}
.svc__body{padding:1.6rem 1.5rem 1.7rem;flex:1;display:flex;flex-direction:column}
.svc__no{font-family:var(--head);font-size:.95rem;color:var(--red);letter-spacing:.1em}
.svc h3{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.5rem;line-height:1;margin:.5rem 0 .7rem}
.svc p{color:var(--grey);font-size:.96rem;flex:1}
.svc__go{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;margin-top:1.1rem;color:#fff;transition:color .2s,letter-spacing .2s}
.svc:hover .svc__go{color:var(--red);letter-spacing:.12em}
.svc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);z-index:2}
.svc:hover::before{transform:scaleY(1)}
.svc--cta{background:var(--red);overflow:hidden}
.svc--cta::before{display:none}
.svc--cta__arrow{position:absolute;right:-1.3rem;top:-3rem;font-family:var(--head);font-size:12rem;line-height:1;color:rgba(0,0,0,.13);pointer-events:none;z-index:0}
.svc--cta .svc__body{justify-content:center;position:relative;z-index:1}
.svc--cta .svc__no{color:rgba(0,0,0,.5)}
.svc--cta h3{font-size:2rem;margin-top:.3rem;color:var(--on-accent)}
.svc--cta p{color:rgba(10,10,10,.78)}
.svc--cta__btn{display:inline-flex;align-items:center;gap:.5em;align-self:flex-start;margin-top:1.4rem;background:#fff;color:#0a0a0a;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.95rem;padding:.8em 1.4em;border:2px solid #fff;transition:transform .15s var(--ease),background .15s,color .15s,border-color .15s}
.svc--cta:hover .svc--cta__btn{background:#0a0a0a;color:#fff;border-color:#0a0a0a;transform:translate(-2px,-2px)}

/* =========================================================
   ABOUT
   ========================================================= */
.about{padding:clamp(4rem,8vw,7rem) 0;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;position:relative;overflow:hidden}
/* giant BISON marquee behind the about media */
.about__marq{position:absolute;inset:0;z-index:0;display:flex;align-items:center;overflow:hidden;pointer-events:none}
.about__marq-track{display:flex;white-space:nowrap;will-change:transform}
.about__marq-track span{font-family:var(--head);font-size:clamp(7rem,19vw,17rem);line-height:1;color:#fff;opacity:.05;letter-spacing:.02em}
@keyframes aboutmarq{to{transform:translateX(-50%)}}
.about__media,.about__body{position:relative;z-index:1}
.about__media{position:relative}
.about__media img{width:100%;aspect-ratio:4/4.6;object-fit:cover;border:2px solid var(--line);filter:grayscale(.3) contrast(1.05)}
.about__stamp{position:absolute;right:-14px;bottom:-14px;background:var(--red);color:var(--on-accent);padding:1rem 1.2rem;display:flex;align-items:center;gap:.7rem;border:2px solid #000}
.about__stamp b{font-family:var(--head);font-size:3rem;line-height:.8}
.about__stamp b i{font-style:normal;font-size:.5em;vertical-align:super}
.about__stamp span{font-family:var(--cond);font-weight:700;text-transform:uppercase;line-height:1;letter-spacing:.04em;font-size:.86rem}
.about__body p{color:#cfcfcf;margin-top:1.1rem}
.about__body .section-title{margin-bottom:.3rem}
.about__tms{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.7rem}
.about__tms span{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;color:#fff;border:2px solid var(--line-2);padding:.4em 1em}

/* hazard divider */
.hazard{height:14px;background:repeating-linear-gradient(45deg,var(--red) 0 24px,#0a0a0a 24px 48px);opacity:.9}

/* =========================================================
   PROJECTS
   ========================================================= */
.projects{padding:clamp(4rem,8vw,7rem) 0}
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:.7rem}
.proj{position:relative;overflow:hidden;border:2px solid var(--line);display:flex;align-items:flex-end;cursor:pointer}
.proj img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.55) brightness(.7) contrast(1.08);transition:transform .6s var(--ease),filter .4s}
.proj:hover img{transform:scale(1.07);filter:grayscale(0) brightness(.85)}
.proj::after{content:"";position:absolute;inset:0;background:rgba(10,10,10,.35);box-shadow:inset 0 -80px 60px -40px rgba(0,0,0,.95)}
.proj:hover{border-color:var(--red)}
.proj--tall{grid-row:span 2}.proj--wide{grid-column:span 2}
.proj figcaption{position:relative;z-index:1;padding:1.1rem;font-family:var(--head);text-transform:uppercase;font-size:1.05rem;line-height:1.05}
.proj figcaption span{display:block;font-family:var(--cond);font-weight:700;font-size:.72rem;letter-spacing:.2em;color:var(--red);margin-bottom:.3rem}

/* =========================================================
   LOCATIONS
   ========================================================= */
.locations{padding:clamp(4rem,8vw,7rem) 0;text-align:center;position:relative;isolation:isolate}
/* black & white demolition backdrop — full-bleed viewport width, fades in from transparent at the very top */
.locations::before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:100vw;z-index:-1;pointer-events:none;
  background:url("assets/img/locations-bg.jpg") center/cover no-repeat;
  filter:grayscale(1) contrast(1.05);opacity:.18;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 35%,#000 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 35%,#000 100%)}
.locations .section-head{margin-left:auto;margin-right:auto}
.locations .section-lead{margin-inline:auto}
.locations .section-head{margin-bottom:clamp(.6rem,1.6vw,1rem)}
.loc-stage{position:relative;width:min(92%,var(--maxw));margin-inline:auto;margin-top:0;height:clamp(330px,40vw,560px);overflow:hidden}
.loc-chips{position:absolute;inset:0;z-index:1;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;gap:.7rem;max-width:820px;margin:0 auto;padding:clamp(1rem,3vw,2rem) 1.5rem}
.chip{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.06em;border:2px solid rgba(255,255,255,.35);padding:.6em 1.25em;font-size:1rem;color:#dadada;transition:all .18s var(--ease)}
.chip::before{content:"▸ ";color:var(--red)}
.chip:hover{background:var(--red);border-color:var(--red);color:var(--on-accent);transform:translate(-2px,-2px)}

/* =========================================================
   REVIEWS
   ========================================================= */
.reviews{padding:clamp(4rem,8vw,7rem) 0;overflow:hidden}
.reviews .section-head{text-align:center;margin-inline:auto}
.reviews .kicker{justify-content:center}
.reviews__badges{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:1.3rem}
.reviews__badges img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.reviews__badges .reviews__stars{height:20px;filter:none;opacity:1}
.rev-marquee{position:relative;width:100vw;left:50%;margin-left:-50vw;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.rev-track{display:flex;gap:1.2rem;width:max-content;padding:1rem 0;animation:revscroll 80s linear infinite;will-change:transform;backface-visibility:hidden}
.rev-marquee:hover .rev-track{animation-play-state:paused}
@keyframes revscroll{to{transform:translateX(-50%)}}
.rev-card{width:380px;flex:0 0 380px;background:var(--ink);border:2px solid var(--line);padding:1.7rem;display:flex;flex-direction:column;gap:1rem;transition:border-color .2s,transform .2s}
.rev-card:hover{border-color:var(--red);transform:translateY(-4px)}
.rev-card__src{height:18px;width:auto;align-self:flex-start}
.rev-card p{color:#d6d6d6;font-size:.97rem;line-height:1.55;flex:1}
.rev-card__by{display:flex;align-items:center;gap:.8rem}
.rev-card__by span{width:42px;height:42px;background:var(--red);color:var(--on-accent);display:grid;place-items:center;font-family:var(--head);font-size:1.2rem;flex:none}
.rev-card__by strong{display:block;font-size:.95rem}
.rev-card__by small{color:var(--grey-d);font-size:.8rem}

/* =========================================================
   QUOTE
   ========================================================= */
.quote{padding:clamp(4rem,8vw,7rem) 0;background:var(--steel);border-top:2px solid var(--line);border-bottom:2px solid var(--line)}
.quote__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.quote__pitch p{color:#cfcfcf}
.quote__list{list-style:none;margin:1.6rem 0;display:flex;flex-direction:column;gap:.7rem}
.quote__list li{position:relative;padding-left:1.8rem;color:#eee}
.quote__list li::before{content:"✓";position:absolute;left:0;color:var(--red);font-weight:700}
.quote__call{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--cond);font-size:1.1rem;color:#cfcfcf}
.quote__call strong{color:#fff}
.qform{background:var(--ink);border:2px solid var(--line);padding:2rem;position:relative;min-width:0;max-width:100%}
.qform::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,var(--red) 0 14px,#0a0a0a 14px 28px)}
.qform__bar{height:5px;background:#262626;overflow:hidden;margin:.6rem 0 1.8rem}
.qform__bar span{display:block;height:100%;background:var(--red);transition:width .4s var(--ease)}
.qstep{border:0;display:none;animation:fadeStep .4s var(--ease)}
.qstep.is-active{display:block}
@keyframes fadeStep{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.qstep legend{font-family:var(--head);text-transform:uppercase;font-size:1.4rem;margin-bottom:1.2rem}
.qopts{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.qopts input,.qsegment input{position:absolute;opacity:0}
.qopts span,.qsegment span{display:block;text-align:center;padding:.85em 1em;border:2px solid var(--line);font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.03em;transition:all .15s var(--ease);font-size:.95rem;cursor:pointer}
.qopts label:hover span,.qsegment label:hover span{border-color:#fff}
.qopts input:checked+span,.qsegment input:checked+span{background:var(--red);border-color:var(--red);color:var(--on-accent)}
.qfield{display:block;margin-bottom:1.05rem}
.qfield>span{display:block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;color:var(--grey);margin-bottom:.4rem}
.qfield>span small{text-transform:none;letter-spacing:0;color:var(--grey-d)}
.qfield input,.qfield select,.qfield textarea{width:100%;min-width:0;max-width:100%;background:#0a0a0a;border:2px solid var(--line);padding:.85em 1em;color:#fff;font-family:var(--body);font-size:1rem;border-radius:0;transition:border-color .2s}
.qfield input:focus,.qfield select:focus,.qfield textarea:focus{outline:none;border-color:var(--red)}
.qsegment{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.qroute{font-family:var(--cond);font-size:.95rem;color:var(--grey);background:#0a0a0a;border:2px dashed var(--line);padding:.7em 1em;margin-bottom:1.05rem}
.qroute strong{color:var(--red)}
.qnav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.2rem}
.qnav .qnext{margin-left:auto}
.qdone{text-align:center;padding:2rem 1rem}
.qdone__check{width:70px;height:70px;background:var(--red);color:var(--on-accent);display:grid;place-items:center;font-size:2.2rem;margin:0 auto 1.2rem;animation:pop .4s var(--ease)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.qdone h3{font-family:var(--head);text-transform:uppercase;font-size:1.8rem}
.qdone p{color:var(--grey);margin-top:.6rem}
.qdone small{color:var(--grey-d)}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{background:#070707;border-top:2px solid var(--red);padding:clamp(3rem,6vw,5rem) 0 1.5rem}
.footer__top{width:min(92%,var(--maxw));margin-inline:auto;display:grid;grid-template-columns:1.6fr 1fr;gap:2.5rem;align-items:start}
.footer__brand img{height:40px;margin-bottom:1rem}
.footer__brand p{color:var(--grey);font-size:.92rem;max-width:300px}
.footer__tm{font-family:var(--cond);letter-spacing:.04em;color:var(--grey-d)!important;font-size:.82rem!important;margin-top:.7rem}
.footer__col h4,.footer__contact h4{font-family:var(--cond);text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;margin-bottom:1.1rem}
.footer__col a,.footer__contact a{display:block;color:var(--grey);font-size:.95rem;padding:.28rem 0;transition:color .2s}
.footer__col a:hover,.footer__contact a:hover{color:var(--red)}
.footer__contact address{color:var(--grey);font-style:normal;font-size:.95rem;margin:.4rem 0 1rem}
.footer__bar{width:min(92%,var(--maxw));margin:3rem auto 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;border-top:1px solid var(--line);padding-top:1.5rem;color:var(--grey-d);font-size:.82rem}
.footer__credit{color:var(--grey-d)}
.footer__credit a{color:var(--red);font-weight:600}
.footer__credit a:hover{text-decoration:underline}

/* mobile sticky cta */
.mobicta{position:fixed;inset:auto 0 0;z-index:90;display:none;gap:.5rem;padding:.55rem;background:rgba(10,10,10,.96);border-top:2px solid var(--line)}
.mobicta a{flex:1;text-align:center;padding:.9em;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;justify-content:center;gap:.5rem}
.mobicta__call{border:2px solid var(--line-2);color:#fff}
.mobicta__quote{background:var(--red);color:var(--on-accent)}

/* =========================================================
   REVEALS
   ========================================================= */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* headline word-by-word reveal — words snap in confidently, no movement */
.section-title .wd{display:inline-block;opacity:0;transition:opacity .22s ease}
.section-title.lit .wd{opacity:1}

/* construction / deconstruction — pieces assemble in view, break apart when scrolled past.
   JS drives transform+opacity per element each frame (see script.js). */
.build{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s);will-change:transform,opacity;backface-visibility:hidden}
.build.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .build{opacity:1!important;transform:none!important}
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1000px){.svc-grid{grid-template-columns:repeat(2,1fr)}.footer__top{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  /* collapse inline nav into the hamburger overlay */
  .nav__links,.nav__quote{display:none}
  .nav__burger{display:flex}
  .about{grid-template-columns:1fr}.about__media{max-width:430px}
  .quote__inner{grid-template-columns:minmax(0,1fr)}
  .proj-grid{grid-template-columns:repeat(2,1fr)}.proj--wide{grid-column:span 2}
  /* stacked stats: drop the brush, bigger numbers, red labels */
  .rip{height:auto;overflow:visible}
  .rip__band{position:static;padding:1rem 0}
  .rip__brush{display:none}
  .rip__grid{grid-template-columns:1fr;gap:1.8rem}
  .stat__num{font-size:clamp(3rem,13vw,4.6rem)}
  .stat__label{color:var(--red);font-size:1.1rem}
  /* let the city chips flow so none get cut off */
  .loc-stage{height:auto;padding:2.5rem 0}
  .loc-chips{position:relative;inset:auto;max-width:100%;padding:1rem}
  .hero__sub{font-size:1.05rem}
}
@media(max-width:680px){
  body{font-size:16px}
  .section-title{line-height:1.06}.hero__title{line-height:1.08}
  /* iOS: masks on animated marquees cause jank / dropouts */
  .marquee,.rev-marquee{-webkit-mask-image:none;mask-image:none}
  .nav__phone{display:none}.mobicta{display:flex}.footer{padding-bottom:5rem}
  .footer__top{grid-template-columns:1fr 1fr;gap:1.8rem}
  .qopts{grid-template-columns:1fr}
  .qform{padding:1.5rem}
  .qnav{flex-direction:column}
  .qnav .btn{width:100%;justify-content:center}
  .qnav .qnext{margin-left:0}
  .hero__cta{width:100%}.hero__cta .btn{flex:1;justify-content:center}
  .proj-grid{grid-auto-rows:160px}
}
@media(max-width:480px){
  .svc-grid{grid-template-columns:1fr}
  .proj-grid{grid-template-columns:1fr;grid-auto-rows:200px}.proj--wide,.proj--tall{grid-column:auto;grid-row:auto}
  .footer__top{grid-template-columns:1fr}.rev-card{width:300px;flex-basis:300px}
}

/* =========================================================
   PITCH / PROPOSAL PAGE
   ========================================================= */
.pp .kicker__bar{width:34px;height:3px;background:var(--red);flex:none}
.pp-wrap,.pp-sec{width:min(92%,1080px);margin-inline:auto}
.pp-sec{padding:clamp(3rem,6vw,5rem) 0;border-top:1px solid var(--line)}
.pp-sec .section-title{margin:.2rem 0 0}
.pp-sec__lead{color:#cfcfcf;font-size:1.1rem;margin-top:1.1rem;max-width:760px}
.pp-sec__lead a,.pp-ilink{color:var(--red)}
.pp-sec__note{color:var(--grey);margin-top:1.4rem;font-size:.98rem;border-left:3px solid var(--line);padding-left:1rem}
.pp-sec__note code{font-family:var(--cond);color:#fff;background:#000;border:1px solid var(--line);padding:.02em .35em}

/* hero */
.pp-hero{padding:150px 0 clamp(3rem,6vw,5rem)}
.pp-title{font-family:var(--head);text-transform:uppercase;font-size:clamp(3.4rem,13vw,9rem);line-height:.9;margin:.2rem 0 0}
.pp-lead{color:#dadada;max-width:660px;font-size:1.2rem;margin-top:1.4rem;border-left:3px solid var(--red);padding-left:1.2rem}
.pp-hero__meta{display:flex;flex-wrap:wrap;gap:2.5rem;margin-top:2.4rem}
.pp-hero__meta b{display:block;font-family:var(--cond);font-weight:600;font-size:2rem;line-height:1;color:#fff}
.pp-hero__meta span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:var(--red)}
.pp-hero__cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.4rem}

/* understanding — four outcomes */
.pp-four{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.2rem}
.pp-four__item{border:2px solid var(--line);background:var(--ink);padding:1.4rem 1.3rem}
.pp-four__item span{font-family:var(--head);color:var(--red);font-size:.9rem}
.pp-four__item b{display:block;font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.3rem;margin:.3rem 0 .5rem}
.pp-four__item p{color:var(--grey);font-size:.92rem}

/* workstreams */
.ws{border:2px solid var(--line);background:var(--ink);padding:1.7rem;margin-top:1.4rem}
.ws__head{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:1.1rem;margin-bottom:1.1rem}
.ws__tag{display:inline-block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--on-accent);background:var(--red);padding:.25em .7em;margin-bottom:.6rem}
.ws__head h3{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.7rem;line-height:1}
.ws__price{text-align:right;flex:none}
.ws__price b{display:block;font-family:var(--head);font-size:2.4rem;line-height:1;color:var(--red)}
.ws__price span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;color:var(--grey)}
.ws__list{list-style:none;display:flex;flex-direction:column;gap:.8rem}
.ws__list li{position:relative;padding-left:1.5rem;color:#cfcfcf;font-size:.99rem}
.ws__list li::before{content:"▸";position:absolute;left:0;color:var(--red)}
.ws__list b{color:#fff}

/* two options */
.pp-two{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2rem}
.pp-opt{border:2px solid var(--line);background:var(--ink);padding:1.6rem}
.pp-opt--rec{border-color:var(--red)}
.pp-opt__tag{display:inline-block;font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;color:var(--grey)}
.pp-opt--rec .pp-opt__tag{color:var(--on-accent);background:var(--red);padding:.25em .7em}
.pp-opt h3{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.5rem;margin:.7rem 0 .6rem}
.pp-opt p{color:var(--grey);font-size:.96rem}
.pp-opt b{color:#fff}

/* included / excluded */
.pp-incex{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2rem}
.pp-incex__col{border:2px solid var(--line);background:var(--ink);padding:1.6rem}
.pp-incex__col--in{border-color:rgba(55,211,90,.4)}
.pp-incex__col--ex{border-color:rgba(255,196,0,.45)}
.pp-incex h4{font-family:var(--cond);text-transform:uppercase;letter-spacing:.08em;font-size:1rem;margin-bottom:1rem}
.pp-incex__col--in h4{color:#5fd37a}.pp-incex__col--ex h4{color:#ef6a6a}
.pp-incex ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}
.pp-incex li{color:#cfcfcf;font-size:.95rem}
.pp-incex b{color:#fff}
.pp-incex code{font-family:var(--cond);color:#fff;background:#000;border:1px solid var(--line);padding:.02em .35em;font-size:1em}
.pp-incex__note{margin-top:1.1rem;color:var(--grey);font-size:.95rem;border-top:1px solid var(--line);padding-top:1rem}

/* generic bullets */
.pp-bullets{list-style:none;display:flex;flex-direction:column;gap:.8rem;margin-top:1.6rem}
.pp-bullets li{position:relative;padding-left:1.6rem;color:#cfcfcf}
.pp-bullets li::before{content:"▸";position:absolute;left:0;color:var(--red)}
.pp-bullets b{color:#fff}

/* cost table */
.pp-table,.pp-sum{width:100%;border-collapse:collapse;margin-top:1.8rem}
.pp-table td,.pp-sum td{border:1px solid var(--line);padding:1rem 1.1rem;vertical-align:top}
.pp-table td:first-child,.pp-sum td:first-child{font-family:var(--cond);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fff;width:55%}
.pp-table td:last-child,.pp-sum td:last-child{font-family:var(--head);color:var(--red);font-size:1.2rem}
.pp-table td span,.pp-sum td span{display:block;font-family:var(--body);font-weight:400;text-transform:none;letter-spacing:0;color:var(--grey);font-size:.82rem;margin-top:.2rem}

/* timeline */
.pp-time{display:flex;flex-direction:column;margin-top:1.8rem;border-top:1px solid var(--line)}
.pp-time__row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;padding:1rem 0;border-bottom:1px solid var(--line)}
.pp-time__row b{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.25rem;color:#fff}
.pp-time__row span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;color:var(--grey);font-size:.85rem}

/* relevant work */
.pp-work{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.8rem}
.pp-work__item{border:2px solid var(--line);background:var(--ink);padding:1.3rem 1.4rem;transition:border-color .2s,transform .2s}
.pp-work__item:hover{border-color:var(--red);transform:translateY(-3px)}
.pp-work__item b{display:block;font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.35rem;color:#fff}
.pp-work__item span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.05em;color:var(--red);font-size:.82rem}

/* exclusions */
.pp-ex{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin-top:1.6rem}
.pp-ex li{position:relative;padding-left:1.7rem;color:#cfcfcf}
.pp-ex li::before{content:"✗";position:absolute;left:0;color:var(--red);font-weight:700}
.pp-ex b{color:#fff}

/* terms */
.pp-terms{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1.8rem}
.pp-terms__item{border:2px solid var(--line);background:var(--ink);padding:1.5rem}
.pp-terms__item b{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.3rem;color:#fff}
.pp-terms__item p{color:var(--grey);margin-top:.5rem}

/* about */
.pp-about{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
.pp-about__media{text-align:center}
.pp-about__media img{width:100%;max-width:320px;aspect-ratio:1/1;object-fit:cover;border-radius:50%;filter:grayscale(1) contrast(1.05);border:3px solid var(--line)}
.pp-about__body>p{color:#cfcfcf;margin-top:1.1rem;font-size:1.05rem}
.pp-about__body b{color:#fff}
.pp-bring{display:flex;flex-direction:column;gap:.9rem;margin-top:1.6rem}
.pp-bring>div{border-left:3px solid var(--red);padding-left:1rem}
.pp-bring b{display:block;font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.2rem;color:#fff}
.pp-bring p{color:var(--grey);font-size:.95rem;margin-top:.2rem}

/* pricing summary + cta */
.pp-pricing{border-top:2px solid var(--red)}
.pp-sum td:last-child{font-size:1.4rem}
.pp-sum__total td{border-color:var(--red);background:rgba(255,196,0,.10)}
.pp-sum__total td:first-child{font-family:var(--head);text-transform:uppercase;font-size:1.4rem;color:#fff}
.pp-sum__total td:last-child{font-size:2rem}
.pp-cta{text-align:center;margin-top:3rem;padding:clamp(2rem,5vw,3.5rem);border:2px solid var(--line);background:var(--ink)}
.pp-cta h3{font-family:var(--head);text-transform:uppercase;font-size:clamp(1.4rem,3vw,2.2rem)}
.pp-cta p{color:var(--grey);margin-top:.6rem}
.pp-contact{font-family:var(--cond);text-transform:uppercase;letter-spacing:.06em;color:#fff!important;margin-top:1.4rem!important}
.pp-contact a{color:var(--red)}

@media(max-width:820px){
  .pp-four,.pp-two,.pp-incex,.pp-work,.pp-terms{grid-template-columns:1fr}
  .pp-about{grid-template-columns:1fr}.pp-about__media{max-width:360px}
  .pp-hero__meta{gap:1.5rem}
}
@media(max-width:680px){
  .ws__head{flex-direction:column;gap:.5rem}
  .ws__price{text-align:left}
}

/* =========================================================
   CHARITY / GIVING BACK
   ========================================================= */
.charity{padding:clamp(4rem,8vw,7rem) 0;display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.charity__media img{width:100%;aspect-ratio:4/3.3;object-fit:cover;border:2px solid var(--line)}
.charity__content>p{color:#cfcfcf;margin:1rem 0 1.7rem;max-width:560px}
.charity__items{display:grid;grid-template-columns:1fr;gap:.9rem;margin-bottom:1.9rem}
.charity__item{border-left:3px solid var(--red);padding:.15rem 0 .15rem 1rem}
.charity__item b{display:block;font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.2rem;line-height:1.05;color:#fff}
.charity__item span{color:var(--grey);font-size:.95rem}
.charity__logos{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.charity__logos span{font-family:var(--cond);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--grey-d)}
.charity__logos img{height:42px;width:auto;filter:brightness(0) invert(1);opacity:.85}
.charity__std{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.92rem;color:var(--white);border:1px solid var(--line-2);padding:.45em .9em}
.charity__more{margin-top:1.9rem}

/* =========================================================
   WHO WE WORK WITH
   ========================================================= */
.clients{padding:clamp(4rem,8vw,7rem) 0}
.clients-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.client{position:relative;background:var(--ink);border:2px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s}
.client:hover{border-color:var(--red)}
.client__icon{padding:2.4rem 1.6rem .3rem;color:var(--red);transition:transform .3s var(--ease)}
.client__icon svg{width:58px;height:58px;display:block}
.client:hover .client__icon{transform:translateY(-4px)}
.client__body{padding:.8rem 1.6rem 2.1rem;flex:1}
.client__no{font-family:var(--head);font-size:.95rem;color:var(--red);letter-spacing:.1em}
.client h3{font-family:var(--head);font-weight:400;text-transform:uppercase;font-size:1.6rem;line-height:1;margin:.5rem 0 .7rem}
.client p{color:var(--grey);font-size:.97rem}
@media(max-width:820px){.charity{grid-template-columns:1fr}.charity__media{max-width:480px}.clients-grid{grid-template-columns:1fr}}
