/* BBB alive v1 */
/* hero: real banner moves slower than the page, leans away from the pointer */
.gcc-hero{background:#051D25!important;overflow:hidden;isolation:isolate}
.gcc-hero::before{content:"";position:absolute;inset:-10% -4%;z-index:-1;
  background:linear-gradient(90deg,rgba(5,29,37,.97) 0%,rgba(5,29,37,.92) 55%,rgba(5,29,37,.80) 100%),url('/img/work/npp-building-banner.webp') center/cover no-repeat;
  transform:translate3d(calc(var(--mx,0) * -14px),calc(var(--py,0px) * -1),0) scale(1.08);will-change:transform}
.gcc-hero>*{position:relative;z-index:1}
.hero-line{display:block;width:min(420px,80vw);height:22px;margin:-8px 0 22px;overflow:visible}
.hero-line path{fill:none;stroke:#F77F00;stroke-width:3;stroke-linecap:round}
/* signature: the sketch draws and the board wipes in as you scroll (no timer) */
.sk .sk-stage path,.sk .sk-stage circle,.sk .sk-stage rect,.sk .sk-stage line{animation:none!important;stroke-dashoffset:calc(1 - clamp(0, (var(--p,1) - .16) * 4.2, 1))!important}
.sk .sk-board{animation:none!important;clip-path:inset(0 calc(100% - clamp(0%, (var(--p,1) - .42) * 650%, 100%)) 0 0)!important}
.sk .sk-tag{transition:none!important;opacity:clamp(0, (var(--p,1) - .57) * 12, 1)!important}
.sk-lens{position:absolute;inset:0;z-index:3;pointer-events:none;background:var(--paper,#E6ECEE);
  background-image:linear-gradient(rgba(62,74,82,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(62,74,82,.12) 1px,transparent 1px);background-size:24px 24px;
  -webkit-mask-image:radial-gradient(circle calc(var(--on,0) * 96px) at var(--lx,50%) var(--ly,50%),#000 96%,transparent 100%);
          mask-image:radial-gradient(circle calc(var(--on,0) * 96px) at var(--lx,50%) var(--ly,50%),#000 96%,transparent 100%)}
.sk-lens svg{position:absolute;inset:0;width:100%;height:100%}
.sk-lens svg *{fill:none;stroke:#3E4A52;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.sk-lens svg .hot{stroke:#F77F00}
.sk-stage{touch-action:pan-y;cursor:crosshair}
.sk-hint{font-size:15px;color:#B9C4C8;margin:0}
.sk-hint b{color:#F2F4F3}
/* real work: images answer the pointer */
.work-grid figure{overflow:hidden;border-radius:2px}
.work-grid img{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.work-grid figure:hover img{transform:scale(1.05)}
.card{transition:transform .25s ease,box-shadow .25s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(0,0,0,.7)}
.card-img{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-img{transform:scale(1.04)}
.video-card .play-btn{transition:transform .2s ease}
.video-card:hover .play-btn{transform:translate(-50%,-50%) scale(1.12)}
@media (prefers-reduced-motion:reduce){.gcc-hero::before{transform:none}}
/* round 2: orange highlighter draws under the key line */
.card .short{display:inline;background-image:linear-gradient(transparent 60%,rgba(247,127,0,.42) 60%,rgba(247,127,0,.42) 92%,transparent 92%);background-repeat:no-repeat;background-size:0% 100%;transition:background-size .4s cubic-bezier(.2,.7,.2,1)}
.card:hover .short,.card:focus-within .short{background-size:100% 100%}
@media (hover:none){.card .short{background-size:100% 100%}}
@media (prefers-reduced-motion:reduce){.card .short{transition:none}}

/* sentence case: every rule that forced ALL CAPS (generated) */
.author-info h4{text-transform:none!important;letter-spacing:.01em!important}
.author-info span{text-transform:none!important;letter-spacing:.01em!important}
.back{text-transform:none!important;letter-spacing:.01em!important}
.bbbm-ok{text-transform:none!important;letter-spacing:.01em!important}
.btn{text-transform:none!important;letter-spacing:.01em!important}
.btn-ghost{text-transform:none!important;letter-spacing:.01em!important}
.btn-primary{text-transform:none!important;letter-spacing:.01em!important}
.card h3{text-transform:none!important;letter-spacing:.01em!important}
.ex .tag{text-transform:none!important;letter-spacing:.01em!important}
.gcc-links a{text-transform:none!important;letter-spacing:.01em!important}
.gcc-trust p{text-transform:none!important;letter-spacing:.01em!important}
.kicker{text-transform:none!important;letter-spacing:.01em!important}
.nav .links a{text-transform:none!important;letter-spacing:.01em!important}
.pill{text-transform:none!important;letter-spacing:.01em!important}
.score .row{text-transform:none!important;letter-spacing:.01em!important}
.section-title{text-transform:none!important;letter-spacing:.01em!important}
.type{text-transform:none!important;letter-spacing:.01em!important}
.video-meta h4{text-transform:none!important;letter-spacing:.01em!important}
h1{text-transform:none!important;letter-spacing:.01em!important}
h2{text-transform:none!important;letter-spacing:.01em!important}
h3{text-transform:none!important;letter-spacing:.01em!important}
