/* Version 5 production-readiness and formatting refinements. */

/* Use the supplied Nicholas Lukas mark for the browser icon and header brand. */
.brand-avatar{
  width:46px;
  height:46px;
  border-radius:10px;
  object-fit:contain;
  background:#fff;
}

/* Balanced, color-coded disciplines under the hero name. */
.v5-disciplines{
  display:inline-grid;
  grid-template-columns:auto auto auto;
  align-items:center;
  margin:27px 0 0;
  font-size:clamp(1.16rem,2vw,1.58rem);
  font-weight:780;
  line-height:1.1;
  letter-spacing:-.015em;
}
.v5-disciplines span{padding:0 25px;white-space:nowrap}
.v5-disciplines span:first-child{padding-left:0}
.v5-disciplines span:last-child{padding-right:0}
.v5-disciplines span+span{border-left:1px solid rgba(255,255,255,.48)}
.v5-disciplines .finance{color:var(--v4-green)}
.v5-disciplines .strategy{color:var(--v4-cyan)}
.v5-disciplines .automation{color:var(--v4-gold)}

/* Recruiter card: clear audience callout and a single concise description. */
.v4-role-card{grid-template-columns:58px minmax(0,1fr) auto}
.v4-role-copy h2{font-size:1.42rem;margin:0 0 5px}
.v4-role-copy p{font-size:.82rem;white-space:nowrap}
.v4-role-copy>span{display:none}

/* Project cards use one centered grid and a consistent footprint. */
.v5-project-page-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:22px;
}
.v5-project-page-grid .v4-project-card{
  flex:0 1 360px;
  width:min(100%,360px);
  height:448px;
}
.v5-project-page-grid .v4-project-image{height:220px;flex:0 0 220px}
.v5-project-page-grid .v4-project-copy{min-height:228px}
.v5-project-page-grid .v4-project-copy p{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}

/* Project skill chips intentionally share one visual treatment. */
.v4-tags span,
.v4-tags span:first-child,
.tag,
.tag.ai,
.tag.private{
  background:#e8f1f3;
  color:#3f6070;
  border:0;
}

/* Simplified skill cards in the earlier three-column visual format. */
.v5-skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.v5-skill-card{
  min-height:342px;
  padding:30px 30px 26px;
  border:1px solid var(--v4-line);
  border-radius:20px;
  background:#fff;
}
.v5-skill-card h3{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 24px;
  color:var(--v4-teal);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.v5-skill-card h3:before{content:"";width:32px;height:2px;background:var(--v4-teal);flex:0 0 auto}
.v5-skill-card ul{list-style:none;margin:0;padding:0}
.v5-skill-card li{
  min-height:59px;
  display:flex;
  align-items:center;
  border-bottom:1px solid #e5ebee;
  color:#2e5570;
  font-size:.95rem;
}
.v5-skill-card li:last-child{border-bottom:0}

/* AI request states. */
button:disabled{cursor:not-allowed;opacity:.62;transform:none!important}
.bubble.loading>div:first-child:after{
  content:"";
  display:inline-block;
  width:1em;
  margin-left:.3em;
  animation:v5-dots 1.2s steps(4,end) infinite;
}
@keyframes v5-dots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
.turnstile-slot{margin-top:10px;min-height:0}
.turnstile-slot[hidden]{display:none!important}
.drawer-note{color:#718492}
.role-result.loading{color:var(--muted)}
.role-result h4{margin:16px 0 4px;color:var(--navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.role-result h4+ul{margin-top:5px}

/* Keep the persistent AI label concise. */
.ai-fab span{white-space:nowrap}

@media(max-width:1000px){
  .v4-role-copy p{white-space:normal}
  .v5-skill-grid{grid-template-columns:1fr}
  .v5-skill-card{min-height:0}
}

@media(max-width:760px){
  .brand-avatar{width:40px;height:40px}
  .v5-disciplines{font-size:.98rem}
  .v5-disciplines span{padding:0 10px}
  .v4-role-card{grid-template-columns:46px 1fr}
  .v4-role-copy h2{font-size:1.12rem}
  .v4-role-copy p{font-size:.73rem}
  .v4-role-button{grid-column:1/-1}
  .v5-project-page-grid .v4-project-card{flex-basis:100%;width:100%;height:auto;min-height:420px}
  .v5-skill-card{padding:25px 22px}
}

@media(max-width:430px){
  .v5-disciplines{display:flex;justify-content:center;gap:0;font-size:.9rem}
  .v5-disciplines span{padding:0 8px}
}


/* Remote page captures sit above a local fallback only after a successful load. */
.v4-project-image>.v5-remote-capture:not([hidden]),
.v5-remote-case>.v5-remote-capture:not([hidden]){
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
}
.v5-remote-case{position:relative;min-height:410px}
.v5-remote-case>.capture-fallback.large{min-height:410px}


.project-filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.filter-chip{border:1px solid #d5e0e5;background:#fff;color:#28445b;border-radius:999px;padding:10px 14px;font-size:.78rem;font-weight:800;cursor:pointer}
.filter-chip:hover,.filter-chip.active{background:#eaf4fb;border-color:#9db9cc;color:#183752}
.v5-project-page-grid .v4-project-card.is-hidden{display:none}
.case-hero-shot{width:100%;height:auto;display:block;border-radius:22px;border:1px solid var(--line);background:#f7fafc}
.ea-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:4px}
.ea-gallery-item{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.ea-gallery-item img{width:100%;display:block;background:#f8fbfd}
.ea-gallery-item figcaption{padding:12px 14px;font-size:.78rem;color:#456074}
.ea-gallery-item.hero{grid-column:span 2}
.ea-collage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.ea-collage-link{display:block;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;color:inherit;text-decoration:none}
.ea-collage-link img{width:100%;display:block}
.ea-collage-link span{display:block;padding:12px 14px;font-size:.78rem;color:#456074}
@media (max-width: 900px){
  .ea-gallery-grid,.ea-collage-grid{grid-template-columns:1fr 1fr}
  .ea-gallery-item.hero{grid-column:auto}
}
@media (max-width: 640px){
  .project-filter-bar{gap:8px}
  .filter-chip{font-size:.72rem;padding:9px 12px}
  .ea-gallery-grid,.ea-collage-grid{grid-template-columns:1fr}
}


/* V7 self-contained project case studies */
.project-hero .case-copy p{max-width:650px}
.project-media-frame img{object-position:center top}
.project-jump{position:sticky;top:76px;z-index:20;background:rgba(255,255,255,.96);border-top:1px solid var(--line);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.project-jump .container{display:flex;gap:24px;overflow-x:auto;padding-top:13px;padding-bottom:13px;scrollbar-width:none}
.project-jump .container::-webkit-scrollbar{display:none}
.project-jump a{white-space:nowrap;color:#506778;font-size:.74rem;font-weight:850}
.project-jump a:hover{color:var(--teal)}
.section-summary{max-width:720px;margin:10px 0 0;color:var(--muted);font-size:.88rem;line-height:1.65}
.project-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 30px}
.project-stat{border:1px solid var(--line);border-radius:15px;padding:17px;background:#f8fbfc}
.project-stat strong{display:block;color:var(--navy);font-size:1rem;line-height:1.25}
.project-stat span{display:block;color:var(--muted);font-size:.74rem;line-height:1.45;margin-top:5px}
.process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0 28px}
.process-grid article{border:1px solid var(--line);border-radius:15px;padding:17px;background:#fff}
.process-grid article>span{display:block;color:var(--teal);font-weight:900;font-size:.66rem;letter-spacing:.09em;margin-bottom:7px}
.process-grid article strong{display:block;color:var(--navy);font-size:.93rem}
.process-grid article p{margin:6px 0 0;font-size:.74rem;line-height:1.55}
.process-grid-four{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:20px}
.question-list{margin:10px 0 24px;padding-left:22px}
.question-list li{margin:8px 0}
.project-method-section,.project-media-section,.project-demo-section{background:#fff}
.project-findings-section{padding:68px 0}
.finding-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.finding-grid article{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}
.finding-grid strong{display:block;color:var(--navy);font-size:.96rem;line-height:1.35}
.finding-grid p{margin:8px 0 0;color:var(--muted);font-size:.78rem;line-height:1.6}
.project-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.media-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 9px 26px rgba(13,42,64,.05)}
.media-card>a{display:block;background:#edf2f5;overflow:hidden}
.media-card img{width:100%;height:310px;display:block;object-fit:contain;background:#f7f8fa;transition:transform .2s ease}
.media-card:hover img{transform:scale(1.01)}
.media-card.media-wide{grid-column:1/-1}
.media-card.media-wide img{height:auto;max-height:620px}
.media-card.media-tall img{height:520px}
.media-card figcaption{display:flex;justify-content:space-between;gap:20px;padding:14px 16px}
.media-card figcaption strong{color:var(--navy);font-size:.8rem}
.media-card figcaption span{color:var(--muted);font-size:.7rem;text-align:right;max-width:55%;line-height:1.45}
.methodology-media{margin-top:26px;grid-template-columns:repeat(3,minmax(0,1fr))}
.methodology-media .media-card img{height:250px}
.project-report-section{background:#fff}
.narrow-project-copy{max-width:930px}
.report-panel{padding:30px}
.project-detail-section{padding-top:64px}
.project-next{display:flex;justify-content:flex-end;margin-top:26px}
.project-next a{display:flex;flex-direction:column;align-items:flex-end;border:1px solid var(--line);border-radius:16px;padding:15px 18px;background:#fff;min-width:250px}
.project-next span{font-size:.62rem;color:var(--teal);font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.project-next strong{color:var(--navy);font-size:.92rem;margin-top:4px}
.side-link{margin-top:12px!important}
.video-frame{background:#0b1824;border-radius:22px;padding:12px;box-shadow:var(--shadow)}
.video-frame video{display:block;width:100%;max-height:760px;border-radius:14px;background:#000}
.equation-block{overflow-x:auto;border:1px solid #ccdae0;border-radius:14px;background:#f7fafb;padding:18px;margin:20px 0}
.equation-block code{font-size:1rem;color:#193c58;white-space:nowrap}
.definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.definition-grid div{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}
.definition-grid strong{display:block;color:var(--teal)}
.definition-grid span{display:block;color:var(--muted);font-size:.73rem;margin-top:4px}
.formula-card code{display:block;margin:10px 0 12px;padding:11px;border-radius:9px;background:#f3f6f8;color:#193c58;font-size:.69rem;line-height:1.45;overflow-wrap:anywhere}
.case-panel code,.side-card code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
@media(max-width:1000px){
  .project-jump{top:0}
  .process-grid-four,.finding-grid,.methodology-media{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .project-stat-grid,.process-grid,.process-grid-four,.finding-grid,.project-media-grid,.methodology-media,.definition-grid{grid-template-columns:1fr}
  .media-card.media-wide{grid-column:auto}
  .media-card img,.media-card.media-tall img{height:auto;max-height:520px}
  .media-card figcaption{display:block}
  .media-card figcaption span{display:block;max-width:none;text-align:left;margin-top:5px}
  .project-jump .container{gap:18px}
}

/* V7 project case studies: self-contained, skimmable, and free of legacy-site dependencies. */
.project-hero-media{
  background:#f7fafc;
}
.project-hero-media img{
  object-fit:contain;
  padding:10px;
}
.project-section-heading>span{
  display:block;
  color:var(--teal);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.11em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.project-section-heading h2{
  margin:0 0 16px;
}
.project-flow{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:24px 0 10px;
}
.project-flow article{
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:10px;
  align-items:start;
  background:#f7fafb;
  border:1px solid var(--line);
  border-radius:14px;
  padding:15px;
}
.project-flow b{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:9px;
  background:#dff3f2;
  color:#0b6f75;
  font-size:.76rem;
}
.project-flow strong{
  color:var(--navy);
  font-size:.82rem;
  line-height:1.35;
}
.project-flow span{
  color:var(--muted);
  font-size:.72rem;
  line-height:1.5;
  margin-top:4px;
}
.report-findings{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:24px 0 12px;
}
.report-findings article{
  border:1px solid var(--line);
  border-radius:15px;
  background:#f8fafb;
  padding:16px;
}
.report-findings span{
  display:block;
  color:var(--teal);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.09em;
  text-transform:uppercase;
  margin-bottom:7px;
}
.report-findings strong{
  display:block;
  color:var(--navy);
  font-size:.84rem;
  line-height:1.35;
}
.report-findings p{
  font-size:.72rem;
  margin:7px 0 0;
  line-height:1.55;
}
.case-panel ol{
  padding-left:22px;
}
.case-panel pre{
  margin:14px 0 4px;
  padding:14px 16px;
  overflow:auto;
  background:#102c43;
  color:#f4f8fb;
  border-radius:12px;
  font-size:.73rem;
  line-height:1.55;
}
.project-media-section{
  padding:64px 0 80px;
  background:#fff;
}
.project-media-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.project-media-card{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 28px rgba(19,47,69,.05);
}
.project-media-card.wide{
  grid-column:1/-1;
}
.project-media-card>a{
  display:block;
  background:#f5f8fa;
}
.project-media-card img{
  display:block;
  width:100%;
  height:360px;
  object-fit:contain;
  background:#f5f8fa;
}
.project-media-card.wide img{
  height:auto;
  max-height:720px;
}
.project-media-card figcaption{
  display:grid;
  gap:4px;
  padding:14px 16px 16px;
}
.project-media-card figcaption strong{
  color:var(--navy);
  font-size:.82rem;
}
.project-media-card figcaption span{
  color:var(--muted);
  font-size:.72rem;
  line-height:1.5;
}
.project-video-card{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);
  align-items:center;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#f8fafb;
  margin-bottom:18px;
}
.project-video-card video{
  width:100%;
  display:block;
  background:#000;
  max-height:640px;
}
.project-video-card>div{
  display:grid;
  gap:7px;
  padding:24px;
}
.project-video-card strong{
  color:var(--navy);
  font-size:1rem;
}
.project-video-card span{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.6;
}
.project-media-grid.compact .project-media-card img{
  height:430px;
}

@media (max-width: 980px){
  .report-findings{
    grid-template-columns:1fr;
  }
  .project-video-card{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  .project-flow,
  .project-media-grid{
    grid-template-columns:1fr;
  }
  .project-media-card.wide{
    grid-column:auto;
  }
  .project-media-card img,
  .project-media-grid.compact .project-media-card img{
    height:auto;
    max-height:520px;
  }
  .project-video-card>div{
    padding:18px;
  }
}


/* V8 project cover system and responsive live embeds. */
.v4-project-image.project-cover,
.v5-project-page-grid .v4-project-image.project-cover{
  display:block;
  width:100%;
  height:auto;
  flex:0 0 auto;
  aspect-ratio:5 / 3;
  background:#0b2239;
  overflow:hidden;
}
.v4-project-image.project-cover>img,
.v5-project-page-grid .v4-project-image.project-cover>img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.case-media.project-cover-media{
  aspect-ratio:5 / 3;
  background:#0b2239;
}
.case-media.project-cover-media img{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
  padding:0;
}
.gallery-intro,
.live-demo-intro{
  max-width:820px;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.65;
  margin:-8px 0 22px;
}
.ea-professional-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:start;
}
.ea-professional-card{
  margin:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 28px rgba(19,47,69,.05);
}
.ea-professional-card>a{
  display:grid;
  place-items:center;
  padding:12px 12px 0;
  background:linear-gradient(180deg,#eef4ff,#f7f9ff);
}
.ea-professional-card img{
  display:block;
  width:auto;
  max-width:100%;
  height:620px;
  object-fit:contain;
  object-position:top center;
}
.ea-professional-card figcaption{
  display:grid;
  gap:4px;
  padding:14px 16px 16px;
}
.ea-professional-card figcaption strong{color:var(--navy);font-size:.82rem}
.ea-professional-card figcaption span{color:var(--muted);font-size:.71rem;line-height:1.5}
.live-demo-section{
  padding:64px 0 76px;
  background:#f7fafb;
  border-top:1px solid #e7eef1;
  border-bottom:1px solid #e7eef1;
}
.live-embed-shell{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 42px rgba(17,45,67,.08);
}
.live-embed-shell iframe{
  display:block;
  width:100%;
  border:0;
  background:#fff;
}
.live-embed-shell.powerbi{
  aspect-ratio:1300 / 850;
}
.live-embed-shell.powerbi iframe{
  height:100%;
}
.live-embed-shell.trading iframe{
  height:900px;
}
.project-media-card img,
.project-media-grid.compact .project-media-card img{
  width:100%;
  height:auto;
  min-height:0;
  max-height:560px;
  object-fit:contain;
  object-position:center;
  background:#f5f8fa;
}
.project-media-card.wide img{
  width:100%;
  height:auto;
  max-height:720px;
  object-fit:contain;
}
@media(max-width:1050px){
  .ea-professional-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ea-professional-card img{height:680px}
}
@media(max-width:720px){
  .ea-professional-grid{grid-template-columns:1fr}
  .ea-professional-card img{height:auto;max-height:720px}
  .live-embed-shell.powerbi{aspect-ratio:auto}
  .live-embed-shell.powerbi iframe{height:620px}
  .live-embed-shell.trading iframe{height:760px}
}


/* V8 final sizing safeguards */
.v4-featured-projects .v4-project-image.project-cover,
.v5-project-page-grid .v4-project-image.project-cover{
  aspect-ratio:5 / 3;
  height:auto;
  min-height:0;
  flex:0 0 auto;
  background:#0b2239;
}
.v4-featured-projects .v4-project-image.project-cover > img,
.v5-project-page-grid .v4-project-image.project-cover > img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transform:none;
}
.v4-featured-projects .v4-project-card:hover .v4-project-image.project-cover > img,
.v5-project-page-grid .v4-project-card:hover .v4-project-image.project-cover > img{transform:none}
.case-media.project-cover-media{
  aspect-ratio:5 / 3;
  min-height:0;
  display:grid;
  place-items:center;
  background:#0b2239;
}
.case-media.project-cover-media img{
  width:100%;
  height:100%;
  max-height:none;
  padding:0;
  object-fit:contain;
  object-position:center;
}
.live-demo-heading{align-items:center}
.live-demo-actions{display:flex;align-items:center;gap:10px}
.live-demo-section .project-media-grid{margin-top:20px}
.live-embed-shell.trading iframe{height:900px}
.project-media-card>a{display:grid;place-items:center;min-height:260px;padding:12px;background:#f5f8fa}
.project-media-card img,.project-media-grid.compact .project-media-card img{
  width:auto;
  max-width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
  object-position:center;
}
.project-media-card.wide img{width:auto;max-width:100%;max-height:640px}
@media(max-width:720px){
  .live-demo-heading{align-items:flex-start}
  .live-demo-actions{width:100%}
  .live-demo-actions .btn{width:100%;text-align:center}
  .live-embed-shell.trading iframe{height:760px}
  .project-media-card>a{min-height:0}
}
