:root{
  --accent:#d51f26;
  --accent-2:#b71920;
}

::selection{background:#d51f26;color:#fff}

/* BCT palette: white / black / red */
.bct-brand__mark{color:var(--accent-2)}
.business-home__badge{color:var(--accent-2)}
.business-card__body .own-word{color:var(--ink)}
.news-tag{background:#fdebed;color:#99171d}
.page-hero:after{background:linear-gradient(90deg,#e86a70,var(--accent));opacity:.66}

/* First view: abstract architectural 3D construction */
.hero--construct{
  min-height:640px;
  background:#fff;
  border-bottom:1px solid #111;
  padding:86px 6vw 92px;
  overflow:hidden;
  isolation:isolate;
}
.hero--construct:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 31%,rgba(255,255,255,.82) 48%,rgba(255,255,255,0) 70%);
}
.hero--construct .hero__inner{
  position:relative;
  z-index:4;
  width:54%;
  text-align:left;
}
.hero--construct .hero__eyebrow{
  color:var(--accent-2);
  margin-bottom:28px;
}
.hero--construct h1{
  margin:0;
  max-width:730px;
  font-size:clamp(48px,5.45vw,86px);
  line-height:1.18;
  letter-spacing:-.055em;
}
.hero--construct .hero__news{left:6vw;z-index:5}

.hero-construct{
  position:absolute;
  z-index:0;
  right:-2vw;
  top:50%;
  width:min(56vw,820px);
  height:520px;
  transform:translateY(-50%);
  pointer-events:none;
}
.hero-construct__camera{
  position:absolute;
  inset:0;
  perspective:1100px;
  perspective-origin:56% 48%;
}
.hero-construct__stage{
  position:absolute;
  left:50%;
  top:50%;
  width:500px;
  height:380px;
  transform-style:preserve-3d;
  transform:translate(-50%,-50%) rotateX(-7deg) rotateY(-12deg);
  animation:bct-stage-breathe 9s ease-in-out 2.4s infinite alternate;
}
.construct-slot{
  position:absolute;
  left:50%;
  top:50%;
  transform-style:preserve-3d;
}
.construct-part{
  display:block;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
  opacity:0;
  animation:bct-panel-assemble 1.35s cubic-bezier(.18,.78,.22,1) forwards;
}
.construct-part--red{background:#d51f26}
.construct-part--red-dark{background:#a9151b}
.construct-part--glass{
  background:rgba(213,31,38,.08);
  border:1px solid rgba(213,31,38,.52);
  backdrop-filter:blur(2px);
}
.construct-part--frame{
  background:transparent;
  border:2px solid #111;
}
.construct-part--line{
  background:repeating-linear-gradient(90deg,#111 0 1px,transparent 1px 20px);
  border-top:1px solid #111;
  border-bottom:1px solid #111;
}
.construct-part--floor{
  background:linear-gradient(rgba(213,31,38,.1),rgba(213,31,38,.02)),repeating-linear-gradient(90deg,rgba(17,17,17,.18) 0 1px,transparent 1px 34px),repeating-linear-gradient(0deg,rgba(17,17,17,.18) 0 1px,transparent 1px 34px);
  border:1px solid rgba(17,17,17,.2);
}
.construct-part--pillar{background:#111}

.construct-slot--frame-a{
  width:310px;height:220px;
  transform:translate3d(-168px,-122px,-45px) rotateY(10deg);
}
.construct-slot--frame-a .construct-part{--sx:-160px;--sy:-80px;--sz:160px;--srx:-22deg;--sry:30deg;animation-delay:.08s}
.construct-slot--red-a{
  width:178px;height:246px;
  transform:translate3d(6px,-134px,54px) rotateY(-18deg);
}
.construct-slot--red-a .construct-part{--sx:190px;--sy:-90px;--sz:120px;--srx:12deg;--sry:-52deg;animation-delay:.22s}
.construct-slot--glass-a{
  width:196px;height:162px;
  transform:translate3d(-122px,-36px,118px) rotateY(23deg);
}
.construct-slot--glass-a .construct-part{--sx:-90px;--sy:110px;--sz:180px;--srx:38deg;--sry:26deg;animation-delay:.38s}
.construct-slot--line-a{
  width:272px;height:84px;
  transform:translate3d(-82px,72px,84px) rotateX(70deg) rotateZ(-5deg);
}
.construct-slot--line-a .construct-part{--sx:140px;--sy:110px;--sz:-110px;--srx:52deg;--sry:-18deg;animation-delay:.5s}
.construct-slot--red-b{
  width:136px;height:184px;
  transform:translate3d(154px,-82px,-34px) rotateY(-58deg);
}
.construct-slot--red-b .construct-part{--sx:190px;--sy:90px;--sz:-90px;--srx:-16deg;--sry:64deg;animation-delay:.62s}
.construct-slot--glass-b{
  width:238px;height:108px;
  transform:translate3d(-8px,92px,-18px) rotateX(73deg) rotateZ(3deg);
}
.construct-slot--glass-b .construct-part{--sx:-130px;--sy:150px;--sz:120px;--srx:40deg;--sry:-14deg;animation-delay:.74s}
.construct-slot--floor{
  width:386px;height:250px;
  transform:translate3d(-166px,64px,-92px) rotateX(77deg) rotateZ(-1deg);
}
.construct-slot--floor .construct-part{--sx:0px;--sy:160px;--sz:-180px;--srx:58deg;--sry:0deg;animation-delay:.86s}
.construct-slot--pillar{
  width:18px;height:260px;
  transform:translate3d(112px,-110px,128px) rotateZ(1deg);
}
.construct-slot--pillar .construct-part{--sx:120px;--sy:-160px;--sz:100px;--srx:0deg;--sry:36deg;animation-delay:1s}

.construct-node{
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 7px rgba(213,31,38,.08);
  opacity:0;
  animation:bct-node-in .7s ease forwards,bct-node-pulse 3.2s ease-in-out 2s infinite;
}
.construct-node--one{left:112px;top:50px;animation-delay:1.28s,2s}
.construct-node--two{left:348px;top:192px;animation-delay:1.42s,2.3s}
.construct-node--three{left:220px;top:326px;animation-delay:1.56s,2.6s}

@keyframes bct-panel-assemble{
  0%{opacity:0;transform:translate3d(var(--sx),var(--sy),var(--sz)) rotateX(var(--srx)) rotateY(var(--sry)) scale(.88)}
  72%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) rotateX(0) rotateY(0) scale(1)}
}
@keyframes bct-stage-breathe{
  0%{transform:translate(-50%,-50%) rotateX(-7deg) rotateY(-12deg) translate3d(0,0,0)}
  100%{transform:translate(-50%,-50%) rotateX(-3deg) rotateY(-4deg) translate3d(0,-10px,0)}
}
@keyframes bct-node-in{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes bct-node-pulse{0%,100%{box-shadow:0 0 0 7px rgba(213,31,38,.08)}50%{box-shadow:0 0 0 15px rgba(213,31,38,0)}}

/* Replace SmartHR-like section bars with simple headings */
.section-kicker{
  height:auto;
  border:0;
  padding:58px 7vw 0;
  display:block;
  font-size:14px;
  line-height:1.4;
  font-weight:700;
  letter-spacing:.02em;
}
.section-kicker:before{display:none}
.section-kicker span{margin:0}
.mission{padding-top:42px}
.business-home{padding-top:42px}
.news-home{padding-top:42px}

/* About: text only, left aligned */
.mission--left{
  min-height:430px;
  padding:42px 7vw 92px;
}
.mission--left .mission__grid{
  display:block;
  margin-top:22px;
}
.mission--left .mission__copy{
  grid-column:auto;
  max-width:760px;
}
.mission--left h2{
  font-size:clamp(34px,4.2vw,60px);
  line-height:1.35;
  margin-bottom:34px;
}
.mission--left p{max-width:720px}
.mission__ghost,.mission__ribbon{display:none}

/* Seamless image conveyor */
.image-rail{
  overflow:hidden;
  padding:10px 0 90px;
  background:#fff;
}
.image-rail__track{
  display:flex;
  width:max-content;
  animation:bct-image-loop 38s linear infinite;
  will-change:transform;
}
.image-rail__set{
  display:flex;
  gap:16px;
  padding-right:16px;
}
.image-rail figure{
  position:relative;
  margin:0;
  flex:0 0 clamp(280px,31vw,460px);
  height:300px;
  overflow:hidden;
  background:#f1f1f1;
}
.image-rail img{
  width:100%;
  height:100%;
  object-fit:cover;
}
@keyframes bct-image-loop{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Remove SmartHR-like image card treatment from the old footer links */
.feature-card__label:before{display:none}
.feature-card__label span:first-child{padding-left:0}

/* Numbered navigation replacing the two photo cards */
.number-nav{
  margin:40px 7vw 110px;
  border-top:1px solid #111;
}
.number-nav a{
  display:grid;
  grid-template-columns:110px 1fr 42px;
  align-items:center;
  min-height:104px;
  border-bottom:1px solid #d7dbe0;
  transition:background .22s ease,color .22s ease,padding .22s ease;
}
.number-nav__num{
  color:var(--accent-2);
  font-size:18px;
  font-weight:800;
  letter-spacing:.03em;
}
.number-nav__label{
  font-size:clamp(22px,2.8vw,38px);
  font-weight:650;
  letter-spacing:-.035em;
}
.number-nav__arrow{
  width:36px;
  height:36px;
  border:1px solid #111;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:16px;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}
.number-nav a:hover{
  background:#fff6f6;
  padding-left:14px;
}
.number-nav a:hover .number-nav__arrow{
  background:var(--accent-2);
  border-color:var(--accent-2);
  color:#fff;
}

@media(max-width:900px){
  .section-kicker{padding:44px 24px 0;font-size:13px}
  .mission{padding-top:30px}
  .business-home{padding-top:30px}
  .news-home{padding-top:30px}
  .mission--left{padding:30px 24px 68px;min-height:0}
  .mission--left .mission__grid{margin-top:16px}
  .mission--left h2{font-size:34px}
  .image-rail{padding-bottom:64px}
  .image-rail figure{flex-basis:74vw;height:260px}
  .number-nav{margin:24px 24px 78px}
  .number-nav a{grid-template-columns:62px 1fr 38px;min-height:88px}
  .number-nav__num{font-size:14px}
  .number-nav__label{font-size:24px}

  .hero--construct{min-height:590px;padding:72px 24px 88px}
  .hero--construct:after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 40%,rgba(255,255,255,.72) 65%,rgba(255,255,255,.12) 100%)}
  .hero--construct .hero__inner{width:72%}
  .hero--construct h1{font-size:clamp(38px,8vw,62px);line-height:1.26}
  .hero--construct .hero__news{left:24px;right:24px}
  .hero-construct{right:-24%;width:78vw;height:450px;opacity:.74}
  .hero-construct__stage{transform:translate(-50%,-50%) scale(.8) rotateX(-7deg) rotateY(-12deg)}
  @keyframes bct-stage-breathe{
    0%{transform:translate(-50%,-50%) scale(.8) rotateX(-7deg) rotateY(-12deg)}
    100%{transform:translate(-50%,-50%) scale(.8) rotateX(-3deg) rotateY(-4deg) translate3d(0,-8px,0)}
  }
}

@media(max-width:600px){
  .image-rail figure{flex-basis:82vw;height:230px}
  .number-nav__label{font-size:21px}
  .hero--construct{min-height:540px}
  .hero--construct .hero__inner{width:84%}
  .hero--construct h1{font-size:clamp(36px,10vw,48px)}
  .hero--construct:after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 52%,rgba(255,255,255,.5) 78%,rgba(255,255,255,.08) 100%)}
  .hero-construct{right:-52%;width:100vw;opacity:.48}
}

@media(prefers-reduced-motion:reduce){
  .image-rail__track{animation:none}
  .hero-construct__stage,.construct-part,.construct-node{animation:none!important}
  .construct-part,.construct-node{opacity:1}
  .construct-part{transform:none}
}
