/*
 * Blue Line Systems Consulting
 * V101 Flagship Refinement
 * Surgical visual layer loaded after blueline-v100-flagship.css
 */

body.bl101{
  --v101-electric:#21b8ff;
  --v101-ice:#bdeaff;
  --v101-deep:#020d19;
  --v101-panel:#071d35;
  --v101-paper:#f5f8fc;
  --v101-orange:#ff7139;
  --v101-purple:#7638a9;
  --v101-green:#26b968;
  --v101-radius:28px;
}

/* ---------- Global finish ---------- */
body.bl101::after{
  opacity:.2;
  background:
    radial-gradient(circle at 78% 10%,rgba(33,184,255,.085),transparent 31%),
    radial-gradient(circle at 12% 72%,rgba(14,165,255,.04),transparent 28%);
  background-size:100% 100%;
  mask-image:none;
}

.bl101 .site-header{
  border-bottom-color:rgba(120,211,255,.18);
  background:linear-gradient(180deg,rgba(3,17,31,.92),rgba(3,17,31,.76));
  box-shadow:0 1px 0 rgba(255,255,255,.025),0 16px 44px rgba(0,0,0,.09);
}
.bl101 .site-header::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-1px;
  left:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent 5%,rgba(33,184,255,.62) 38%,rgba(189,234,255,.25) 63%,transparent 95%);
  opacity:.54;
}
.bl101 .brand img{
  border:1px solid rgba(120,211,255,.18);
  box-shadow:0 0 0 5px rgba(14,165,255,.035),0 16px 38px rgba(14,165,255,.2);
}
.bl101 .header-cta{
  background:linear-gradient(135deg,rgba(14,165,255,.16),rgba(120,211,255,.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.bl101 .bl100-button{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.bl101 .bl100-button::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  transform:translateX(-110%) skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  transition:transform .62s var(--ease);
}
.bl101 .bl100-button:hover::before{transform:translateX(110%) skewX(-18deg)}
.bl101 .bl100-button-primary{
  border-color:rgba(255,255,255,.18);
  background:linear-gradient(135deg,#8ae0ff 0%,#27baff 52%,#0a9cf0 100%);
  box-shadow:0 20px 48px rgba(14,165,255,.28),inset 0 1px 0 rgba(255,255,255,.45);
}
.bl101 .bl100-button-primary:hover{box-shadow:0 25px 66px rgba(14,165,255,.38),inset 0 1px 0 rgba(255,255,255,.5)}
.bl101 .bl100-text-link{position:relative;padding-bottom:3px}
.bl101 .bl100-text-link::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:1px;
  transform:scaleX(.2);
  transform-origin:left;
  background:currentColor;
  opacity:.4;
  transition:transform .3s var(--ease),opacity .3s ease;
}
.bl101 .bl100-text-link:hover::after{transform:scaleX(1);opacity:.8}

/* ---------- Hero system ---------- */
.bl101 .bl100-home-hero,
.bl101 .bl100-page-hero{
  isolation:isolate;
}
.bl101 .bl100-home-hero::after,
.bl101 .bl100-page-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:radial-gradient(circle at 78% 34%,rgba(14,165,255,.14),transparent 30%);
}
.bl101 .bl100-hero-copy h1,
.bl101 .bl100-page-hero-copy h1{
  text-wrap:balance;
  text-shadow:0 18px 60px rgba(0,0,0,.18);
}
.bl101 .bl100-hero-copy h1 span:nth-child(2){
  color:rgba(210,239,255,.72);
  -webkit-text-stroke:1px rgba(255,255,255,.03);
}
.bl101 .bl100-hero-stage{
  min-height:clamp(490px,42vw,665px);
}
.bl101 .bl100-hero-main-image{
  top:4%;
  left:0;
  width:100%;
  overflow:hidden;
  border:1px solid rgba(120,211,255,.24);
  border-radius:4px 44px 4px 4px;
  background:#061830;
  box-shadow:0 50px 120px rgba(0,0,0,.44),0 0 0 1px rgba(255,255,255,.025) inset;
}
.bl101 .bl100-hero-main-image::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  z-index:3;
  height:30px;
  border-bottom:1px solid rgba(120,211,255,.12);
  background:
    radial-gradient(circle at 17px 15px,#ff6b6b 0 4px,transparent 4.5px),
    radial-gradient(circle at 34px 15px,#ffc857 0 4px,transparent 4.5px),
    radial-gradient(circle at 51px 15px,#4fd17a 0 4px,transparent 4.5px),
    linear-gradient(180deg,#0b2948,#071d35);
}
.bl101 .bl100-hero-main-image::after{
  content:"LIVE SYSTEMS / V101";
  position:absolute;
  top:8px;
  right:16px;
  bottom:auto;
  left:auto;
  width:auto;
  height:auto;
  z-index:4;
  box-shadow:none;
  color:rgba(189,234,255,.72);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.14em;
  pointer-events:none;
}
.bl101 .bl100-hero-main-image picture,
.bl101 .bl100-hero-main-image img{height:100%}
.bl101 .bl100-hero-main-image img{
  padding-top:30px;
  object-fit:cover;
  object-position:center;
  background:#061830;
}
.bl101 .bl100-hero-float-curio{display:none}
.bl101 .bl100-hero-note{
  right:auto;
  bottom:1%;
  left:-5%;
  width:min(330px,56%);
  padding:18px 20px;
  border:1px solid rgba(120,211,255,.28);
  border-radius:3px 20px 3px 3px;
  background:linear-gradient(140deg,rgba(4,22,40,.96),rgba(8,42,73,.91));
  box-shadow:0 26px 70px rgba(0,0,0,.42);
  backdrop-filter:blur(14px);
}
.bl101 .bl100-hero-note::before{
  content:"";
  position:absolute;
  top:-1px;
  left:-1px;
  width:44%;
  height:2px;
  background:linear-gradient(90deg,var(--v101-electric),transparent);
}
.bl101 .bl100-hero-index{
  right:-10px;
  bottom:-25px;
  color:rgba(120,211,255,.12);
  font-size:clamp(3.8rem,6vw,7rem);
  letter-spacing:-.08em;
}
.bl101 .bl100-hero-proofline{
  position:relative;
  gap:0;
  margin-top:40px;
  border:1px solid rgba(120,211,255,.16);
  border-radius:18px 3px 18px 3px;
  background:linear-gradient(90deg,rgba(255,255,255,.045),rgba(14,165,255,.055),rgba(255,255,255,.025));
  box-shadow:0 28px 70px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.035);
  overflow:hidden;
}
.bl101 .bl100-hero-proofline>div{
  min-height:88px;
  padding:18px 26px;
  border-right:1px solid rgba(120,211,255,.13);
}
.bl101 .bl100-hero-proofline>div:last-child{border-right:0}
.bl101 .bl100-hero-proofline strong{color:#a9e7ff;text-shadow:0 0 36px rgba(14,165,255,.25)}

.bl101 .bl100-page-hero-media{
  border-color:rgba(120,211,255,.27);
  border-radius:4px 42px 4px 4px;
  box-shadow:0 44px 105px rgba(0,0,0,.42),0 0 0 1px rgba(255,255,255,.025) inset;
}
.bl101 .bl100-page-hero-media::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  z-index:3;
  height:28px;
  pointer-events:none;
  border-bottom:1px solid rgba(120,211,255,.12);
  background:
    radial-gradient(circle at 16px 14px,#ff6b6b 0 3.5px,transparent 4px),
    radial-gradient(circle at 31px 14px,#ffc857 0 3.5px,transparent 4px),
    radial-gradient(circle at 46px 14px,#4fd17a 0 3.5px,transparent 4px),
    linear-gradient(180deg,rgba(11,41,72,.96),rgba(7,29,53,.96));
}
.bl101 .bl100-page-hero-media picture,
.bl101 .bl100-page-hero-media>img{padding-top:28px}
.bl101 .bl100-page-hero-media figcaption{
  right:16px;
  bottom:14px;
  left:auto;
  width:max-content;
  max-width:calc(100% - 32px);
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(2,13,25,.82);
  color:rgba(239,250,255,.82);
  backdrop-filter:blur(12px);
}
.bl101 .bl100-portfolio-hero-media img{object-fit:cover;object-position:center}

/* ---------- Section hierarchy ---------- */
.bl101 .bl100-section-intro,
.bl101 .bl100-work-heading{
  position:relative;
}
.bl101 .bl100-section-intro::after,
.bl101 .bl100-work-heading::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-24px;
  left:0;
  height:1px;
  background:linear-gradient(90deg,currentColor 0 7%,transparent 7% 100%);
  opacity:.14;
}
.bl101 .bl100-section-intro h2,
.bl101 .bl100-work-heading h2{
  text-wrap:balance;
}
.bl101 .bl100-capabilities{
  background:
    radial-gradient(circle at 94% 7%,rgba(14,165,255,.11),transparent 28%),
    linear-gradient(180deg,#f8fbfe,#edf3f9);
}
.bl101 .bl100-capability-list{
  border-top-color:rgba(6,24,48,.22);
}
.bl101 .bl100-capability{
  margin:0 -16px;
  padding-inline:16px;
  border-bottom-color:rgba(6,24,48,.14);
  border-radius:3px 18px 3px 3px;
}
.bl101 .bl100-capability::before{
  inset:3px 0;
  border-radius:3px 18px 3px 3px;
  background:linear-gradient(120deg,#061830,#0a2c50);
  box-shadow:0 20px 50px rgba(3,17,31,.14);
}
.bl101 .bl100-capability:hover,
.bl101 .bl100-capability.is-active{padding-inline:22px}
.bl101 .bl100-capability.is-active::after{
  content:"";
  position:absolute;
  top:18px;
  bottom:18px;
  left:0;
  z-index:2;
  width:3px;
  border-radius:99px;
  background:var(--v101-electric);
  box-shadow:0 0 20px rgba(14,165,255,.65);
}
.bl101 .bl100-capability-visual{
  border:1px solid rgba(14,165,255,.2);
  border-radius:4px 36px 4px 4px;
  background:linear-gradient(145deg,#061830,#0a294c);
  box-shadow:0 42px 88px rgba(3,17,31,.24);
}
.bl101 .bl100-capability-visual::before{
  content:"SELECTED CAPABILITY";
  position:absolute;
  top:14px;
  right:16px;
  z-index:2;
  padding:6px 10px;
  border:1px solid rgba(120,211,255,.18);
  border-radius:999px;
  background:rgba(3,17,31,.74);
  color:rgba(189,234,255,.72);
  font-size:.55rem;
  font-weight:800;
  letter-spacing:.13em;
}
.bl101 .bl100-capability-visual img{padding:28px 18px 18px}
.bl101 .bl100-capability-visual figcaption{
  border-color:rgba(120,211,255,.2);
  background:linear-gradient(130deg,rgba(3,17,31,.94),rgba(9,38,70,.9));
}

/* ---------- Home proof ---------- */
.bl101 .bl100-work{
  background:
    radial-gradient(circle at 15% 18%,rgba(14,165,255,.12),transparent 25%),
    radial-gradient(circle at 84% 56%,rgba(120,211,255,.075),transparent 26%),
    linear-gradient(180deg,#061830,#03111f 58%,#020c17);
}
.bl101 .bl100-work::before{display:none}
.bl101 .bl100-home-case{
  --project-accent:var(--v101-electric);
  align-items:center;
}
.bl101 .bl100-home-case-1660{--project-accent:var(--v101-orange)}
.bl101 .bl100-home-case-curio{--project-accent:#b45bd4}
.bl101 .bl100-home-case-jwill{--project-accent:var(--v101-green)}
.bl101 .bl100-case-image{
  overflow:visible;
  border:1px solid color-mix(in srgb,var(--project-accent) 34%,transparent);
  border-radius:4px 32px 4px 4px;
  background:#061830;
  box-shadow:0 42px 100px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.025) inset;
}
.bl101 .bl100-case-image::before{
  content:"LIVE / PRODUCTION";
  position:absolute;
  top:-15px;
  left:20px;
  z-index:3;
  padding:7px 12px;
  border:1px solid color-mix(in srgb,var(--project-accent) 52%,transparent);
  border-radius:999px;
  background:#03111f;
  color:color-mix(in srgb,var(--project-accent) 76%,white);
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.12em;
  box-shadow:0 12px 30px rgba(0,0,0,.28);
}
.bl101 .bl100-case-image img{
  border-radius:inherit;
  object-fit:cover;
  background:#061830;
}
.bl101 .bl100-home-case-curio .bl100-case-image{transform:translateX(-2.25%)}
.bl101 .bl100-home-case-1660 .bl100-case-image,
.bl101 .bl100-home-case-jwill .bl100-case-image{transform:translateX(2.25%)}
.bl101 .bl100-case-copy{
  position:relative;
  padding:26px 0 26px 28px;
  border-left:2px solid color-mix(in srgb,var(--project-accent) 72%,transparent);
}
.bl101 .bl100-home-case-jwill .bl100-case-copy{
  padding-right:28px;
  padding-left:0;
  border-right:2px solid color-mix(in srgb,var(--project-accent) 72%,transparent);
  border-left:0;
}
.bl101 .bl100-case-copy::before{
  content:"";
  position:absolute;
  top:0;
  left:-2px;
  width:36px;
  height:2px;
  background:linear-gradient(90deg,var(--project-accent),transparent);
}
.bl101 .bl100-home-case-jwill .bl100-case-copy::before{
  right:-2px;
  left:auto;
  background:linear-gradient(270deg,var(--project-accent),transparent);
}
.bl101 .bl100-case-copy h3{text-wrap:balance}
.bl101 .bl100-process-bridge{
  position:relative;
  padding-inline:26px;
  border:1px solid rgba(120,211,255,.16);
  border-radius:4px 24px 4px 4px;
  background:linear-gradient(120deg,rgba(255,255,255,.035),rgba(14,165,255,.035));
  box-shadow:0 28px 70px rgba(0,0,0,.13);
}

/* ---------- Portfolio ---------- */
.bl101 .bl100-portfolio-cases{background:var(--v101-paper)}
.bl101 .bl100-case-study{
  --project-accent:var(--v101-electric);
  --project-tint:rgba(14,165,255,.08);
  position:relative;
  overflow:hidden;
}
.bl101 .bl100-case-study::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  width:min(1380px,calc(100% - 64px));
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,var(--project-accent),transparent 34%,rgba(6,24,48,.14));
}
.bl101 .bl100-case-study::after{
  content:"";
  position:absolute;
  top:7%;
  right:-12vw;
  width:38vw;
  height:38vw;
  border:1px solid color-mix(in srgb,var(--project-accent) 20%,transparent);
  border-radius:50%;
  box-shadow:inset 0 0 0 7vw color-mix(in srgb,var(--project-accent) 3%,transparent),inset 0 0 0 14vw color-mix(in srgb,var(--project-accent) 2%,transparent);
  pointer-events:none;
}
.bl101 .bl100-case-study-1660{--project-accent:var(--v101-orange);--project-tint:rgba(255,113,57,.07)}
.bl101 .bl100-case-study-curio{--project-accent:#9a4cc4;--project-tint:rgba(118,56,169,.075)}
.bl101 .bl100-case-study-jwill{--project-accent:var(--v101-green);--project-tint:rgba(38,185,104,.075)}
.bl101 .bl100-case-study-1660{background:linear-gradient(145deg,#fff 0%,#fff8f5 100%)}
.bl101 .bl100-case-study-curio{background:linear-gradient(145deg,#f4f7fb 0%,#f9f3fb 100%)}
.bl101 .bl100-case-study-jwill{background:linear-gradient(145deg,#041426 0%,#02101c 100%)}
.bl101 .bl100-1660-case-head,
.bl101 .bl100-case-study-grid{position:relative;z-index:2}
.bl101 .bl100-1660-case-head h3,
.bl101 .bl100-case-study-copy h3{text-wrap:balance}
.bl101 .bl100-1660-case-media,
.bl101 .bl100-case-study-media{
  position:relative;
  z-index:2;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--project-accent) 32%,rgba(6,24,48,.12));
  border-radius:4px 34px 4px 4px;
  box-shadow:0 42px 92px rgba(3,17,31,.18);
}
.bl101 .bl100-1660-case-media::before,
.bl101 .bl100-case-study-media::before{
  content:"LIVE SYSTEM";
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  padding:7px 11px;
  border:1px solid color-mix(in srgb,var(--project-accent) 48%,transparent);
  border-radius:999px;
  background:rgba(3,17,31,.88);
  color:color-mix(in srgb,var(--project-accent) 72%,white);
  font-size:.56rem;
  font-weight:850;
  letter-spacing:.12em;
  box-shadow:0 12px 28px rgba(0,0,0,.2);
}
.bl101 .bl100-1660-case-media img,
.bl101 .bl100-case-study-media img{object-fit:cover;background:#061830}
.bl101 .bl100-1660-case-media figcaption,
.bl101 .bl100-case-study-media figcaption{
  position:relative;
  z-index:2;
  padding:15px 18px;
  border-top:1px solid color-mix(in srgb,var(--project-accent) 24%,transparent);
  background:#061830;
  color:rgba(223,245,255,.72);
}
.bl101 .bl100-case-facts{
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--project-accent) 22%,rgba(6,24,48,.14));
  border-radius:4px 22px 4px 4px;
  background:color-mix(in srgb,var(--project-tint) 58%,white);
  box-shadow:0 22px 52px rgba(3,17,31,.07);
}
.bl101 .bl100-case-facts>div{padding-inline:18px}
.bl101 .bl100-case-outcome{
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--project-accent) 38%,transparent);
  border-radius:3px 18px 3px 3px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--project-accent) 14%,white),rgba(255,255,255,.72));
  box-shadow:0 20px 44px rgba(3,17,31,.08);
}
.bl101 .bl100-case-study-jwill .bl100-case-facts{background:rgba(255,255,255,.045);border-color:rgba(80,215,137,.22)}
.bl101 .bl100-case-study-jwill .bl100-case-outcome{background:linear-gradient(135deg,rgba(38,185,104,.15),rgba(255,255,255,.04))}
.bl101 .bl100-case-study-jwill .bl100-case-facts dt,
.bl101 .bl100-case-study-jwill .bl100-case-outcome span{color:#75e5a6}
.bl101 .bl100-delivery-index{
  background:
    radial-gradient(circle at 82% 15%,rgba(14,165,255,.11),transparent 24%),
    linear-gradient(180deg,#eff5fa,#fff);
}
.bl101 .bl100-sample-list{
  overflow:hidden;
  border:1px solid rgba(6,24,48,.14);
  border-radius:4px 28px 4px 4px;
  background:#fff;
  box-shadow:0 30px 80px rgba(3,17,31,.09);
}
.bl101 .bl100-sample-list a{padding-inline:24px}
.bl101 .bl100-sample-list a:hover{background:linear-gradient(90deg,rgba(14,165,255,.08),transparent)}

/* ---------- Services ---------- */
.bl101 .bl100-service-paths{
  background:linear-gradient(180deg,#f7fafc,#edf3f8);
}
.bl101 .bl100-service-chapter::after{
  content:"";
  position:absolute;
  top:12%;
  right:-9vw;
  width:31vw;
  height:31vw;
  border:1px solid currentColor;
  border-radius:50%;
  opacity:.055;
  pointer-events:none;
}
.bl101 .bl100-service-number{
  position:relative;
  width:max-content;
  color:transparent;
  -webkit-text-stroke:1px rgba(14,165,255,.28);
  text-shadow:0 18px 60px rgba(14,165,255,.09);
}
.bl101 .bl100-service-number::after{
  content:"/ 04";
  position:absolute;
  bottom:-21px;
  left:5px;
  color:#087fc2;
  -webkit-text-stroke:0;
  font-family:var(--body);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.14em;
}
.bl101 .bl100-service-chapter-dark .bl100-service-number::after,
.bl101 .bl100-service-chapter-blue .bl100-service-number::after{color:rgba(255,255,255,.72)}
.bl101 .bl100-service-copy{
  position:relative;
  z-index:2;
}
.bl101 .bl100-outcome{
  padding:13px 15px;
  border:1px solid currentColor;
  border-radius:3px 14px 3px 3px;
  background:rgba(14,165,255,.04);
}
.bl101 .bl100-service-image{
  position:relative;
  z-index:2;
  border:1px solid rgba(14,165,255,.2);
  border-radius:4px 34px 4px 4px;
  box-shadow:0 38px 86px rgba(3,17,31,.2);
}
.bl101 .bl100-service-image::before{
  content:"SELECTED DELIVERY";
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  padding:6px 10px;
  border:1px solid rgba(120,211,255,.24);
  border-radius:999px;
  background:rgba(3,17,31,.82);
  color:rgba(223,245,255,.75);
  font-size:.53rem;
  font-weight:850;
  letter-spacing:.12em;
}
.bl101 .bl100-service-chapter-paper{background:linear-gradient(145deg,#fff,#f7fafc)}
.bl101 .bl100-service-chapter-dark{background:linear-gradient(145deg,#03111f,#071d35)}
.bl101 .bl100-service-chapter-blue{background:linear-gradient(135deg,#0877ba 0%,#0ca7fb 48%,#4bc5ff 100%)}

/* ---------- Process ---------- */
.bl101 .bl100-process-sequence{
  background:
    radial-gradient(circle at 10% 8%,rgba(14,165,255,.11),transparent 26%),
    linear-gradient(180deg,#f7fafc,#edf3f8);
}
.bl101 .bl100-process-steps{border-top:0}
.bl101 .bl100-process-steps article{
  margin-bottom:12px;
  padding:44px 34px;
  border:1px solid rgba(6,24,48,.13);
  border-radius:4px 24px 4px 4px;
  background:rgba(255,255,255,.58);
  box-shadow:0 20px 55px rgba(3,17,31,.045);
  transition:transform .35s var(--ease),border-color .35s ease,background .35s ease,box-shadow .35s ease;
}
.bl101 .bl100-process-steps article.is-active{
  transform:translateX(-12px);
  border-color:rgba(14,165,255,.42);
  background:#fff;
  box-shadow:0 30px 78px rgba(3,17,31,.11);
}
.bl101 .bl100-step-number{
  position:relative;
  color:rgba(6,24,48,.12);
  -webkit-text-stroke:1px rgba(14,165,255,.2);
}
.bl101 .bl100-process-steps article.is-active .bl100-step-number{text-shadow:0 0 36px rgba(14,165,255,.22)}
.bl101 .bl100-process-assurance{
  gap:14px;
  border:0;
}
.bl101 .bl100-process-assurance>div{
  min-height:175px;
  border:1px solid rgba(6,24,48,.13);
  border-radius:4px 20px 4px 4px;
  background:#fff;
  box-shadow:0 20px 55px rgba(3,17,31,.06);
}

/* ---------- About ---------- */
.bl101 .bl100-about-story{
  background:
    radial-gradient(circle at 90% 10%,rgba(14,165,255,.1),transparent 25%),
    linear-gradient(180deg,#f8fbfd,#eef4f9);
}
.bl101 .bl100-about-story-grid{
  position:relative;
  padding-bottom:34px;
  border-bottom:1px solid rgba(6,24,48,.13);
}
.bl101 .bl100-experience-landscape{
  gap:18px;
  padding:0;
  border:0;
}
.bl101 .bl100-experience-landscape>div{
  min-height:230px;
  align-content:end;
  padding:30px;
  border:1px solid rgba(6,24,48,.13);
  border-radius:4px 24px 4px 4px;
  background:rgba(255,255,255,.72);
  box-shadow:0 24px 64px rgba(3,17,31,.065);
}
.bl101 .bl100-experience-landscape>div:first-child{
  background:linear-gradient(145deg,#061830,#0a2c50);
}
.bl101 .bl100-experience-landscape>div:first-child span{color:rgba(223,245,255,.7)}
.bl101 .bl100-experience-landscape strong{
  color:#159ee9;
  text-shadow:0 18px 50px rgba(14,165,255,.14);
}
.bl101 .bl100-experience-landscape>div:first-child strong{color:#9fe4ff}
.bl101 .bl100-working-style{
  background:linear-gradient(145deg,#03111f,#061a31);
}
.bl101 .bl100-working-style-list{border-top:0}
.bl101 .bl100-working-style-list article{
  margin-bottom:12px;
  padding:30px;
  border:1px solid rgba(120,211,255,.14);
  border-radius:4px 22px 4px 4px;
  background:rgba(255,255,255,.025);
  transition:transform .3s var(--ease),border-color .3s ease,background .3s ease;
}
.bl101 .bl100-working-style-list article:hover{
  transform:translateX(8px);
  border-color:rgba(120,211,255,.32);
  background:rgba(14,165,255,.055);
}

/* ---------- Quote ---------- */
.bl101 .bl100-quote-form-section{
  background:
    radial-gradient(circle at 14% 12%,rgba(14,165,255,.1),transparent 24%),
    linear-gradient(180deg,#f7fafc,#edf3f8);
}
.bl101 .bl100-next-step{
  padding:24px;
  border:1px solid rgba(6,24,48,.13);
  border-radius:4px 20px 4px 4px;
  background:rgba(255,255,255,.72);
  box-shadow:0 20px 50px rgba(3,17,31,.06);
}
.bl101 .bl100-form{
  position:relative;
  overflow:hidden;
  border-color:rgba(14,165,255,.22);
  border-radius:4px 32px 4px 4px;
  box-shadow:0 42px 100px rgba(3,17,31,.16);
}
.bl101 .bl100-form::before{
  content:"PROJECT INTAKE / DIRECT TO BLUE LINE";
  display:block;
  margin:calc(clamp(28px,4vw,52px) * -1) calc(clamp(28px,4vw,52px) * -1) 28px;
  padding:12px clamp(28px,4vw,52px);
  border-bottom:1px solid rgba(120,211,255,.14);
  background:linear-gradient(90deg,#061830,#0a2b4e);
  color:rgba(189,234,255,.75);
  font-size:.6rem;
  font-weight:850;
  letter-spacing:.14em;
}
.bl101 .bl100-form input,
.bl101 .bl100-form select,
.bl101 .bl100-form textarea{
  border-radius:4px 13px 4px 4px;
  background:#f2f6fa;
}
.bl101 .bl100-choice-grid label{
  border-radius:4px 13px 4px 4px;
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}
.bl101 .bl100-choice-grid label:hover{
  transform:translateY(-1px);
  border-color:rgba(14,165,255,.36);
  background:rgba(14,165,255,.055);
}

/* ---------- CTA + footer ---------- */
.bl101 .bl100-cta{
  background:linear-gradient(135deg,#92e3ff 0%,#32bcff 46%,#0ea5ff 100%);
  background-size:100% 100%;
}
.bl101 .bl100-cta::after{
  content:"START HERE";
  position:absolute;
  right:4vw;
  bottom:-.12em;
  color:rgba(3,17,31,.07);
  font-family:var(--display);
  font-size:clamp(4rem,12vw,13rem);
  font-weight:800;
  line-height:.8;
  letter-spacing:-.08em;
  white-space:nowrap;
  pointer-events:none;
}
.bl101 .footer{
  background:linear-gradient(180deg,#020d19,#010912);
}
.bl101 .bl100-footer-grid{
  position:relative;
}
.bl101 .bl100-footer-grid::before{
  content:"";
  position:absolute;
  top:-1px;
  right:0;
  left:0;
  height:1px;
  background:linear-gradient(90deg,var(--v101-electric),transparent 42%);
  opacity:.5;
}
.bl101 .widget-trigger{
  border-color:rgba(255,255,255,.5);
  background:linear-gradient(135deg,#8ce2ff,#15adf8);
  box-shadow:0 18px 50px rgba(14,165,255,.38);
}

/* ---------- Tablet ---------- */
@media(max-width:1180px){
  .bl101 .bl100-hero-stage{min-height:520px}
  .bl101 .bl100-hero-note{left:-2%;width:min(310px,62%)}
  .bl101 .bl100-home-case-curio .bl100-case-image,
  .bl101 .bl100-home-case-1660 .bl100-case-image,
  .bl101 .bl100-home-case-jwill .bl100-case-image{transform:none}
  .bl101 .bl100-process-steps article.is-active{transform:translateX(-6px)}
}

@media(max-width:900px){
  .bl101 .bl100-home-hero::after,
  .bl101 .bl100-page-hero::after{background:radial-gradient(circle at 78% 25%,rgba(14,165,255,.12),transparent 30%)}
  .bl101 .bl100-hero-stage{min-height:0}
  .bl101 .bl100-hero-main-image{
    position:relative;
    top:auto;
    left:auto;
    width:100%;
    aspect-ratio:16/10;
  }
  .bl101 .bl100-hero-note{
    right:18px;
    bottom:18px;
    left:18px;
    width:auto;
  }
  .bl101 .bl100-hero-index{right:4px;bottom:-40px}
  .bl101 .bl100-hero-proofline{margin-top:34px}
  .bl101 .bl100-hero-proofline>div{padding:16px 20px}
  .bl101 .bl100-capability{margin-inline:0}
  .bl101 .bl100-capability-visual::before{top:10px;right:10px}
  .bl101 .bl100-home-case,
  .bl101 .bl100-home-case-1660{gap:28px}
  .bl101 .bl100-case-copy,
  .bl101 .bl100-home-case-jwill .bl100-case-copy{
    padding:22px 0 0;
    border-top:2px solid color-mix(in srgb,var(--project-accent) 72%,transparent);
    border-right:0;
    border-left:0;
    text-align:left;
    justify-items:start;
  }
  .bl101 .bl100-case-copy::before,
  .bl101 .bl100-home-case-jwill .bl100-case-copy::before{display:none}
  .bl101 .bl100-process-bridge{padding-inline:22px}
  .bl101 .bl100-case-study::after{width:62vw;height:62vw}
  .bl101 .bl100-process-steps article,
  .bl101 .bl100-process-steps article.is-active{transform:none;padding:34px 26px}
  .bl101 .bl100-experience-landscape>div{min-height:190px}
  .bl101 .bl100-working-style-list article:hover{transform:none}
}

/* ---------- Mobile ---------- */
@media(max-width:640px){
  body.bl101{--v101-radius:22px}
  .bl101 .site-header::after{opacity:.35}
  .bl101 .brand img{box-shadow:0 0 0 4px rgba(14,165,255,.03),0 12px 28px rgba(14,165,255,.16)}
  .bl101 .bl100-home-hero-grid{gap:34px}
  .bl101 .bl100-hero-copy h1,
  .bl101 .bl100-page-hero-copy h1{text-wrap:pretty}
  .bl101 .bl100-hero-main-image{
    aspect-ratio:4/5;
    border-radius:4px 28px 4px 4px;
  }
  .bl101 .bl100-hero-main-image img{object-position:center}
  .bl101 .bl100-hero-main-image::after{content:"V101 / LIVE WORK";font-size:.52rem}
  .bl101 .bl100-hero-note{
    right:10px;
    bottom:10px;
    left:10px;
    padding:14px 15px;
    border-radius:3px 16px 3px 3px;
  }
  .bl101 .bl100-hero-note strong{font-size:.78rem}
  .bl101 .bl100-hero-index{display:none}
  .bl101 .bl100-hero-proofline{
    display:grid;
    grid-template-columns:1fr;
    border-radius:4px 18px 4px 4px;
  }
  .bl101 .bl100-hero-proofline>div{
    min-height:auto;
    padding:14px 16px;
    border-right:0;
    border-bottom:1px solid rgba(120,211,255,.13);
  }
  .bl101 .bl100-hero-proofline>div:last-child{border-bottom:0}
  .bl101 .bl100-page-hero-media{border-radius:4px 28px 4px 4px}
  .bl101 .bl100-page-hero-media figcaption{
    right:10px;
    bottom:10px;
    left:10px;
    width:auto;
    max-width:none;
    border-radius:3px 13px 3px 3px;
    text-align:left;
  }
  .bl101 .bl100-section-intro::after,
  .bl101 .bl100-work-heading::after{bottom:-18px}
  .bl101 .bl100-capability{
    padding:22px 14px;
    border-radius:3px 15px 3px 3px;
  }
  .bl101 .bl100-capability:hover,
  .bl101 .bl100-capability.is-active{padding-inline:14px}
  .bl101 .bl100-capability::before{inset:2px 0}
  .bl101 .bl100-capability-visual{border-radius:4px 24px 4px 4px}
  .bl101 .bl100-case-image{
    aspect-ratio:4/3;
    border-radius:4px 22px 4px 4px;
  }
  .bl101 .bl100-case-image::before{top:-12px;left:12px;padding:6px 9px;font-size:.51rem}
  .bl101 .bl100-case-copy,
  .bl101 .bl100-home-case-jwill .bl100-case-copy{padding-top:18px}
  .bl101 .bl100-process-bridge{padding:24px 16px;border-radius:4px 18px 4px 4px}
  .bl101 .bl100-case-study::before{left:20px;width:calc(100% - 40px);transform:none}
  .bl101 .bl100-case-study::after{display:none}
  .bl101 .bl100-1660-case-media,
  .bl101 .bl100-case-study-media{border-radius:4px 22px 4px 4px}
  .bl101 .bl100-1660-case-media::before,
  .bl101 .bl100-case-study-media::before{top:10px;right:10px;padding:6px 9px;font-size:.49rem}
  .bl101 .bl100-case-facts{border-radius:4px 18px 4px 4px}
  .bl101 .bl100-service-number::after{bottom:-16px}
  .bl101 .bl100-service-image{border-radius:4px 22px 4px 4px}
  .bl101 .bl100-process-steps article,
  .bl101 .bl100-process-steps article.is-active{padding:28px 20px;border-radius:4px 18px 4px 4px}
  .bl101 .bl100-process-assurance>div{min-height:0;padding:24px 20px}
  .bl101 .bl100-experience-landscape>div{min-height:0;padding:24px 20px}
  .bl101 .bl100-working-style-list article{padding:24px 20px;border-radius:4px 18px 4px 4px}
  .bl101 .bl100-next-step{padding:20px;border-radius:4px 17px 4px 4px}
  .bl101 .bl100-form{border-radius:4px 22px 4px 4px}
  .bl101 .bl100-form::before{
    margin:calc(clamp(28px,4vw,52px) * -1) calc(clamp(28px,4vw,52px) * -1) 24px;
    padding:11px 20px;
    font-size:.52rem;
  }
  .bl101 .bl100-cta::after{right:-2vw;font-size:4.6rem}
}

@media(prefers-reduced-motion:reduce){
  .bl101 .bl100-button::before{display:none}
  .bl101 .bl100-home-case-curio .bl100-case-image,
  .bl101 .bl100-home-case-1660 .bl100-case-image,
  .bl101 .bl100-home-case-jwill .bl100-case-image,
  .bl101 .bl100-process-steps article.is-active{transform:none}
}

/* Fallback for browsers without color-mix support. */
@supports not (color:color-mix(in srgb,white,black)){
  .bl101 .bl100-case-image,
  .bl101 .bl100-1660-case-media,
  .bl101 .bl100-case-study-media{border-color:rgba(120,211,255,.26)}
  .bl101 .bl100-case-image::before,
  .bl101 .bl100-1660-case-media::before,
  .bl101 .bl100-case-study-media::before{border-color:rgba(120,211,255,.36);color:var(--sky)}
  .bl101 .bl100-case-facts{background:#fff;border-color:rgba(6,24,48,.14)}
  .bl101 .bl100-case-outcome{background:#eef7fd;border-color:rgba(14,165,255,.24)}
}

/* ========================================================================== 
   BLUE LINE V101.1 - VISUAL CLEANUP + THEME DISCIPLINE
   Removes decorative grids, normalizes project framing, and replaces off-theme
   accent callouts while preserving the V101 composition and functionality.
   ========================================================================== */
body.bl101{
  --v101-orange:var(--v101-electric);
  --v101-purple:#159ee9;
  --v101-green:#64d0ff;
}

/* One Blue Line frame language around every project. */
.bl101 .bl100-home-case,
.bl101 .bl100-home-case-1660,
.bl101 .bl100-home-case-curio,
.bl101 .bl100-home-case-jwill,
.bl101 .bl100-case-study,
.bl101 .bl100-case-study-1660,
.bl101 .bl100-case-study-curio,
.bl101 .bl100-case-study-jwill{
  --project-accent:var(--v101-electric);
  --project-tint:rgba(14,165,255,.075);
}
.bl101 .bl100-case-study-1660{
  background:linear-gradient(145deg,#fff 0%,#f3f8fc 100%);
}
.bl101 .bl100-case-study-curio{
  background:linear-gradient(145deg,#f4f8fb 0%,#eef5fa 100%);
}
.bl101 .bl100-case-study-jwill{
  background:linear-gradient(145deg,#041426 0%,#02101c 100%);
}
.bl101 .bl100-case-study::after{display:none}
.bl101 .bl100-case-study::before{
  background:linear-gradient(90deg,var(--v101-electric),transparent 34%,rgba(6,24,48,.14));
}

/* Clean, on-brand project cards and labels. */
.bl101 .bl100-case-image,
.bl101 .bl100-1660-case-media,
.bl101 .bl100-case-study-media{
  border-color:rgba(33,184,255,.34);
}
.bl101 .bl100-case-image::before,
.bl101 .bl100-1660-case-media::before,
.bl101 .bl100-case-study-media::before{
  border-color:rgba(120,211,255,.36);
  background:rgba(3,17,31,.92);
  color:#bdeaff;
}
.bl101 .bl100-case-copy{
  border-color:rgba(33,184,255,.72);
}
.bl101 .bl100-home-case-jwill .bl100-case-copy{
  border-color:rgba(33,184,255,.72);
}
.bl101 .bl100-case-copy::before,
.bl101 .bl100-home-case-jwill .bl100-case-copy::before{
  background:linear-gradient(90deg,var(--v101-electric),transparent);
}
.bl101 .bl100-home-case-jwill .bl100-case-copy::before{
  background:linear-gradient(270deg,var(--v101-electric),transparent);
}

/* Neutral fact panels; live-product colors stay in the screenshots, not the site chrome. */
.bl101 .bl100-case-facts{
  border-color:rgba(6,24,48,.14);
  background:rgba(255,255,255,.82);
  box-shadow:0 22px 52px rgba(3,17,31,.065);
}
.bl101 .bl100-case-facts dt{color:#087fc2}
.bl101 .bl100-case-study-jwill .bl100-case-facts{
  border-color:rgba(120,211,255,.2);
  background:rgba(255,255,255,.045);
}
.bl101 .bl100-case-study-jwill .bl100-case-facts dt{color:#8edfff}

/* Replace outlined accent boxes with one premium Blue Line callout component. */
.bl101 .bl100-case-outcome{
  gap:9px;
  padding:20px 22px 21px;
  border:1px solid rgba(120,211,255,.32);
  border-left:4px solid var(--v101-electric);
  border-radius:4px 18px 4px 4px;
  background:linear-gradient(135deg,#061830,#0a294c);
  color:#fff;
  box-shadow:0 22px 50px rgba(3,17,31,.14);
}
.bl101 .bl100-case-outcome span,
.bl101 .bl100-case-study-jwill .bl100-case-outcome span{
  color:#8edfff;
}
.bl101 .bl100-case-outcome strong{color:#fff}
.bl101 .bl100-case-study-jwill .bl100-case-outcome{
  border-color:rgba(120,211,255,.28);
  border-left-color:var(--v101-electric);
  background:linear-gradient(135deg,#08213b,#0b3157);
}

.bl101 .bl100-outcome{
  padding:15px 17px 15px 19px;
  border:1px solid rgba(120,211,255,.34);
  border-left:4px solid var(--v101-electric);
  border-radius:4px 15px 4px 4px;
  background:linear-gradient(135deg,#061830,#0a294c);
  color:#fff;
  box-shadow:0 18px 42px rgba(3,17,31,.12);
}
.bl101 .bl100-service-chapter-dark .bl100-outcome{
  border-color:rgba(120,211,255,.28);
  border-left-color:var(--v101-electric);
  background:rgba(14,165,255,.09);
  color:#dff5ff;
}
.bl101 .bl100-service-chapter-blue .bl100-outcome{
  border-color:rgba(255,255,255,.46);
  border-left-color:#fff;
  background:rgba(3,17,31,.2);
  color:#fff;
}

/* Browser chrome stays because it worked; the home label now reflects this cleanup release. */
.bl101 .bl100-hero-main-image::after{content:"LIVE SYSTEMS / V101.1"}
@media(max-width:640px){
  .bl101 .bl100-hero-main-image::after{content:"V101.1 / LIVE WORK"}
  .bl101 .bl100-case-outcome{padding:17px 18px 18px}
  .bl101 .bl100-outcome{padding:14px 15px 14px 17px}
}


/* ========================================================================== 
   BLUE LINE V101.2 - INTERACTION + MOTION POLISH
   Adds a restrained response layer without changing the approved V101.1
   composition, palette, content, or layout at rest.
   ========================================================================== */
body.bl101{
  --bl102-fast:190ms;
  --bl102-component:330ms;
  --bl102-editorial:720ms;
  --bl102-ease:cubic-bezier(.2,.78,.2,1);
}

/* Release identifier only; the approved V101.1 artwork remains unchanged. */
.bl101 .bl100-hero-main-image::after{content:"LIVE SYSTEMS / V101.2"}
@media(max-width:640px){
  .bl101 .bl100-hero-main-image::after{content:"V101.2 / LIVE WORK"}
}

/* ---------- Navigation tracker ---------- */
.bl101 .bl100-nav-links{position:relative}
html.bl102-js .bl101 .bl100-nav-links a::after{
  opacity:0;
  transform:scaleX(0);
}
.bl101 .bl102-nav-track{
  --bl102-nav-x:0px;
  --bl102-nav-width:12px;
  --bl102-nav-opacity:0;
  position:absolute;
  bottom:6px;
  left:0;
  width:var(--bl102-nav-width);
  height:1px;
  pointer-events:none;
  opacity:var(--bl102-nav-opacity);
  transform:translate3d(var(--bl102-nav-x),0,0);
  transform-origin:left;
  background:linear-gradient(90deg,var(--sky),rgba(189,234,255,.7));
  box-shadow:0 0 14px rgba(33,184,255,.45);
  transition:transform var(--bl102-component) var(--bl102-ease),width var(--bl102-component) var(--bl102-ease),opacity var(--bl102-fast) ease;
}
.bl101 .bl102-nav-track.is-immediate{transition:none}

/* ---------- Buttons, links, and press feedback ---------- */
.bl101 .bl100-button>span[aria-hidden="true"],
.bl101 .header-cta>span[aria-hidden="true"],
.bl101 .bl100-text-link>span[aria-hidden="true"]{
  display:inline-block;
  transition:translate var(--bl102-fast) var(--bl102-ease),transform var(--bl102-fast) var(--bl102-ease);
}
.bl101 .bl100-button:hover>span,
.bl101 .header-cta:hover>span,
.bl101 .bl100-text-link:hover>span{translate:4px 0}
.bl101 .bl102-direction-down:hover>span{translate:0 3px}
.bl101 .bl102-direction-up:hover>span{translate:3px -3px}
.bl101 .bl102-direction-diagonal:hover>span{translate:3px 3px}
.bl101 .bl100-button:active,
.bl101 .header-cta:active{
  transform:translateY(0) scale(.985);
  transition-duration:90ms;
}
.bl101 .bl100-button:focus-visible,
.bl101 .header-cta:focus-visible,
.bl101 .bl100-text-link:focus-visible{
  outline:3px solid rgba(142,223,255,.8);
  outline-offset:4px;
}
.bl101 .header-cta{
  transition:translate var(--bl102-fast) var(--bl102-ease),transform var(--bl102-fast) var(--bl102-ease),border-color var(--bl102-fast) ease,background var(--bl102-fast) ease,box-shadow var(--bl102-fast) ease;
}
.bl101 .header-cta:hover{
  translate:0 -1px;
  border-color:rgba(142,223,255,.54);
  background:linear-gradient(135deg,rgba(14,165,255,.25),rgba(120,211,255,.1));
  box-shadow:0 14px 34px rgba(14,165,255,.16),inset 0 1px 0 rgba(255,255,255,.12);
}
.bl101 .footer-nav a,
.bl101 .footer-contact a,
.bl101 .widget-actions a{
  transition:color var(--bl102-fast) ease,translate var(--bl102-fast) var(--bl102-ease),border-color var(--bl102-fast) ease,background var(--bl102-fast) ease;
}
.bl101 .footer-nav a:hover,
.bl101 .footer-contact a:hover{translate:3px 0;color:#fff}
.bl101 .widget-actions a:hover{translate:3px 0;border-color:rgba(142,223,255,.42);background:rgba(14,165,255,.08)}

/* ---------- Editorial reveal language ---------- */
html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal]{
  transition-property:opacity,translate;
  transition-duration:var(--bl102-editorial);
  transition-timing-function:var(--bl102-ease);
  transition-delay:var(--bl102-reveal-delay,0ms);
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal].bl102-reveal-media{
  transition-property:opacity,translate,scale,filter;
  opacity:0;
  translate:28px 0;
  scale:.985;
  filter:saturate(.92);
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 .bl100-case-study-curio [data-v100-reveal].bl102-reveal-project-media{
  translate:-28px 0;
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal].bl102-reveal-media.is-visible{
  opacity:1;
  translate:0 0;
  scale:1;
  filter:none;
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal] .bl100-kicker::before{
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 520ms var(--bl102-ease) calc(var(--bl102-reveal-delay,0ms) + 90ms);
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal].is-visible .bl100-kicker::before{
  transform:scaleX(1);
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 .bl102-reveal-cta{
  translate:0 22px;
}
html.bl102-js:not(.bl102-reduced-motion) body.bl101 .bl102-reveal-cta.is-visible{
  translate:0 0;
}

/* ---------- Capability transition polish ---------- */
.bl101 .bl100-capability .bl100-cap-num,
.bl101 .bl100-capability .bl100-cap-outcome{
  transition:translate var(--bl102-component) var(--bl102-ease),color var(--bl102-fast) ease,opacity var(--bl102-fast) ease;
}
.bl101 .bl100-capability:hover .bl100-cap-num,
.bl101 .bl100-capability:focus-visible .bl100-cap-num{translate:3px 0}
.bl101 .bl100-capability:hover .bl100-cap-outcome,
.bl101 .bl100-capability:focus-visible .bl100-cap-outcome{translate:-3px 0}
.bl101 .bl100-capability-visual img{
  transition:opacity 230ms ease,transform 390ms var(--bl102-ease),filter 300ms ease,translate 180ms ease;
}
.bl101 .bl100-capability-visual figcaption{
  transition:opacity 260ms ease,translate 300ms var(--bl102-ease),border-color 260ms ease;
}
.bl101 .bl100-capability-visual.is-changing img{
  opacity:0;
  transform:translateX(var(--bl102-capability-exit-x,-16px)) scale(.99);
  filter:blur(2px) saturate(.82);
}
.bl101 .bl100-capability-visual.is-changing figcaption{
  opacity:.42;
  translate:0 5px;
}
.bl101 .bl100-capability-visual.is-entering img{
  opacity:0;
  transform:translateX(var(--bl102-capability-enter-x,16px)) scale(.99);
  filter:blur(2px) saturate(.82);
  transition:none;
}
.bl101 .bl100-capability-visual.is-entering figcaption{
  opacity:.42;
  translate:0 5px;
  transition:none;
}

/* ---------- Project section focus ---------- */
.bl101 .bl100-case-study::before{
  opacity:.34;
  scale:.28 1;
  transform-origin:left;
  transition:scale 680ms var(--bl102-ease),opacity 420ms ease,box-shadow 420ms ease;
}
.bl101 .bl100-case-study.is-current::before{
  opacity:.9;
  scale:1 1;
  box-shadow:0 0 24px rgba(33,184,255,.26);
}
/* ---------- Responsive media depth ---------- */
@media(hover:hover) and (pointer:fine) and (min-width:981px) and (prefers-reduced-motion:no-preference){
  .bl101 .bl102-interactive-media{
    --bl102-image-x:0px;
    --bl102-image-y:0px;
  }
  .bl101 .bl102-interactive-media picture img,
  .bl101 .bl102-interactive-media>img{
    translate:var(--bl102-image-x) var(--bl102-image-y);
    transition:translate 180ms ease,transform .8s var(--ease),filter 320ms ease,opacity 230ms ease;
  }
  .bl101 .bl100-1660-case-media.is-pointer-active img,
  .bl101 .bl100-case-study-media.is-pointer-active img{
    transform:scale(1.012);
  }
  .bl101 .bl102-interactive-media figcaption{
    transition:translate 260ms var(--bl102-ease),border-color 260ms ease,background 260ms ease;
  }
  .bl101 .bl102-interactive-media.is-pointer-active figcaption{
    translate:0 -2px;
    border-color:rgba(142,223,255,.24);
  }
  .bl101 .bl100-case-image::before,
  .bl101 .bl100-1660-case-media::before,
  .bl101 .bl100-case-study-media::before,
  .bl101 .bl100-service-image::before{
    transition:translate 260ms var(--bl102-ease),border-color 260ms ease,box-shadow 260ms ease,color 260ms ease;
  }
  .bl101 .bl100-case-image.is-pointer-active::before,
  .bl101 .bl100-1660-case-media.is-pointer-active::before,
  .bl101 .bl100-case-study-media.is-pointer-active::before,
  .bl101 .bl100-service-image.is-pointer-active::before{
    translate:0 -2px;
    border-color:rgba(142,223,255,.5);
    box-shadow:0 16px 36px rgba(0,0,0,.28),0 0 18px rgba(33,184,255,.12);
  }
  .bl101 .bl100-hero-note{
    translate:var(--bl102-note-x,0px) var(--bl102-note-y,0px);
    transition:translate 260ms ease,border-color 260ms ease,box-shadow 260ms ease;
  }
  .bl101 .bl100-hero-stage:hover .bl100-hero-note{
    border-color:rgba(142,223,255,.4);
    box-shadow:0 32px 78px rgba(0,0,0,.46),0 0 30px rgba(33,184,255,.08);
  }

  .bl101 .bl100-experience-landscape>div,
  .bl101 .bl100-next-step,
  .bl101 .bl100-case-facts{
    transition:translate var(--bl102-component) var(--bl102-ease),border-color var(--bl102-component) ease,background var(--bl102-component) ease,box-shadow var(--bl102-component) ease;
  }
  .bl101 .bl100-experience-landscape>div:hover,
  .bl101 .bl100-next-step:hover,
  .bl101 .bl100-case-facts:hover{
    translate:0 -4px;
    border-color:rgba(33,184,255,.32);
    box-shadow:0 28px 68px rgba(3,17,31,.11);
  }

  .bl101 .bl100-marquee:hover>div{animation-play-state:paused}
}

/* ---------- Form response ---------- */
.bl101 .bl100-form input,
.bl101 .bl100-form select,
.bl101 .bl100-form textarea{
  transition:border-color var(--bl102-fast) ease,background var(--bl102-fast) ease,box-shadow var(--bl102-fast) ease,translate var(--bl102-fast) var(--bl102-ease);
}
.bl101 .bl100-form input:focus,
.bl101 .bl100-form select:focus,
.bl101 .bl100-form textarea:focus{translate:0 -1px}
.bl101 .bl100-form label>span{
  transition:color var(--bl102-fast) ease,translate var(--bl102-fast) var(--bl102-ease);
}
.bl101 .bl100-form label:focus-within>span{color:#087fc2;translate:2px 0}
.bl101 .bl100-choice-grid label:focus-within>span{translate:0 -1px}

@media(max-width:900px){
  html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal].bl102-reveal-media,
  html.bl102-js:not(.bl102-reduced-motion) body.bl101 .bl100-case-study-curio [data-v100-reveal].bl102-reveal-project-media{
    translate:0 20px;
    scale:.99;
  }
  html.bl102-js:not(.bl102-reduced-motion) body.bl101 [data-v100-reveal].bl102-reveal-media.is-visible{
    translate:0 0;
    scale:1;
  }
}

@media(prefers-reduced-motion:reduce){
  .bl101 .bl102-nav-track,
  .bl101 .bl100-button>span,
  .bl101 .header-cta>span,
  .bl101 .bl100-text-link>span,
  .bl101 .bl100-capability-visual img,
  .bl101 .bl100-capability-visual figcaption,
  .bl101 .bl100-case-study::before,
  .bl101 .bl100-form input,
  .bl101 .bl100-form select,
  .bl101 .bl100-form textarea{
    transition:none!important;
  }
  .bl101 .bl102-interactive-media img,
  .bl101 .bl100-hero-note,
  .bl101 .bl100-process-steps article,
  .bl101 .bl100-process-assurance>div,
  .bl101 .bl100-experience-landscape>div,
  .bl101 .bl100-working-style-list article,
  .bl101 .bl100-next-step,
  .bl101 .bl100-case-facts,
  .bl101 .bl100-process-bridge{
    translate:0 0!important;
    scale:1!important;
  }
  .bl101 .bl100-marquee>div{animation-play-state:paused!important}
}

/* ========================================================================== 
   BLUE LINE V101.2.1 - HOME HERO CLARITY FIX
   Removes the oversized decorative release watermark and uses clean hero
   artwork without scanline / moire texture. No layout or interaction drift.
   ========================================================================== */
.bl101 .bl100-home-hero .bl100-hero-index{display:none}
.bl101 .bl100-hero-main-image::after{content:"LIVE SYSTEMS / V101.2.1"}
@media(max-width:640px){
  .bl101 .bl100-hero-main-image::after{content:"V101.2.1 / LIVE WORK"}
}

/* ========================================================================== 
   BLUE LINE V101.2.2 - PORTFOLIO HERO CROP FIX
   Lets the approved 16:9 / 6:5 artwork determine its own height beneath the
   browser chrome so no meaningful artwork is clipped at any breakpoint.
   ========================================================================== */
.bl101 .bl100-portfolio-hero-media{
  aspect-ratio:auto;
}
.bl101 .bl100-portfolio-hero-media picture{
  display:block;
  width:100%;
  height:auto;
  padding-top:28px;
}
.bl101 .bl100-portfolio-hero-media picture img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:center;
}
@media(hover:hover) and (pointer:fine) and (min-width:981px) and (prefers-reduced-motion:no-preference){
  .bl101 .bl100-portfolio-hero-media:hover picture img,
  .bl101 .bl100-portfolio-hero-media.bl102-interactive-media picture img{
    transform:none;
    translate:0 0;
  }
}
@media(max-width:760px){
  .bl101 .bl100-portfolio-hero-media figcaption{
    position:relative;
    right:auto;
    bottom:auto;
    left:auto;
    width:auto;
    max-width:none;
    margin:0;
    border:0;
    border-top:1px solid rgba(120,211,255,.14);
    border-radius:0;
    background:rgba(2,13,25,.96);
    backdrop-filter:none;
  }
}

/* ========================================================================== 
   BLUE LINE V102 - SERVICES & COMMERCIAL POSITIONING
   Content-fit rules only. No hero, palette, media, or motion redesign.
   ========================================================================== */
.bl100-services .bl102-service-jumps{
  display:flex;
  flex-wrap:wrap;
  align-content:end;
  gap:12px 22px;
}
.bl100-services .bl102-service-jumps a{
  color:var(--ink);
  font-size:.9rem;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.bl100-services .bl102-service-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 22px;
  margin-top:22px;
}
.bl100-services .bl102-service-links a{
  margin:0;
  min-height:44px;
}
.bl100-services .bl100-service-copy .bl102-search-note{
  margin:18px 0 0;
  font-size:.84rem;
  line-height:1.65;
  color:var(--slate);
}
/* The shorter four-step copy does not need the legacy 380px minimum. */
.bl100-process .bl100-process-steps article{min-height:0}
