
/* ISOFT V2.1 — Global clean native effects */
:root{
  --fx-blue:#0f67dc;
  --fx-cyan:#23b6e9;
  --fx-navy:#07376f;
  --fx-line:#d9e8f5;
  --fx-shadow:0 18px 50px rgba(7,55,111,.12);
}
html{scroll-behavior:smooth}
body{overflow-x:hidden}

/* header depth */
.header,.site-header{
  transition:box-shadow .28s ease,background-color .28s ease,backdrop-filter .28s ease;
}
body.fx-scrolled .header,
body.fx-scrolled .site-header{
  box-shadow:0 8px 30px rgba(4,38,77,.10);
  backdrop-filter:saturate(140%) blur(10px);
}

/* native cards */
.nd-card,.nd-case,.nd-logo-card,.office,.project,.archive-card,.core-card,.about-stat{
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.nd-card:hover,.nd-case:hover,.nd-logo-card:hover,.office:hover,.project:hover,.archive-card:hover,.core-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(7,55,111,.14);
}

/* colored icon lift */
.nd-icon,.nd-step-icon,.nd-tool-icon,.nd-team-icon{
  transition:transform .25s ease,box-shadow .25s ease,filter .25s ease;
}
.nd-card:hover .nd-icon,
.nd-step:hover .nd-step-icon,
.nd-tool:hover .nd-tool-icon,
.nd-team:hover .nd-team-icon{
  transform:translateY(-2px) scale(1.05);
  filter:saturate(1.12);
}

/* buttons */
.btn,.nd-btn,.cta a{
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.btn:hover,.nd-btn:hover,.cta a:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(15,103,220,.18);
}

/* section/card reveal — fail-safe: content is visible unless JS explicitly enables motion */
.fx-reveal{
  opacity:1;
  transform:none;
  transition:opacity .58s ease,transform .58s cubic-bezier(.2,.65,.2,1);
}
body.fx-motion-ready .fx-reveal:not(.fx-in){opacity:0;transform:translateY(16px)}
.fx-reveal.fx-in{opacity:1;transform:none}

/* subtle gradient text accent */
.nd-h1 span,.nd-h2 span{
  background:linear-gradient(90deg,var(--fx-blue),var(--fx-cyan));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent!important;
}

/* logo wall — no inner borders / separator lines */
.nd-logo-card{
  border:1px solid rgba(214,230,244,.9)!important;
  background:#fff!important;
  overflow:hidden;
}
.nd-logo-visual{
  height:142px!important;
  padding:18px!important;
  background:linear-gradient(180deg,#fff,#f8fbfe)!important;
  border:0!important;
}
.nd-logo-visual img{
  width:min(100%,420px)!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.nd-logo-meta{
  border:0!important;
  border-top:0!important;
  padding:16px 18px 18px!important;
}
.nd-logo-card:before,.nd-logo-card:after{display:none!important}

/* native section composition */
.nd-section{
  isolation:isolate;
}
.nd-section:where(.nd-soft)::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 15% 20%,rgba(35,182,233,.06),transparent 30%),
    radial-gradient(circle at 85% 75%,rgba(15,103,220,.05),transparent 32%);
  z-index:-1;
}

/* project/case images */
.nd-case img,.project img,.archive-card img{
  transition:transform .45s ease,filter .35s ease;
}
.nd-case:hover img,.project:hover img,.archive-card:hover img{
  transform:scale(1.025);
}

/* decorative sheen on cards */
.nd-card,.nd-case,.nd-logo-card{
  position:relative;
}
/* Removed cross-card sheen: it could wash out text and fight page-specific pseudo-elements. */
.nd-card::after,.nd-case::before{display:none!important}

@media(max-width:620px){
  .nd-logo-visual{height:118px!important;padding:14px!important}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .fx-reveal{opacity:1!important;transform:none!important}
}


/* V2.5 stability: dark contrast + crisp media */
.ar-dark .nd-h1,.ar-dark .nd-h2{color:#fff}
.ar-dark .nd-lead{color:rgba(255,255,255,.88)!important;opacity:1}
.ar-dark .nd-h1 span,.ar-dark .nd-h2 span{background:none!important;color:#86e2ff!important;-webkit-text-fill-color:#86e2ff}
img{image-rendering:auto}
.nd-logo-visual img,.brand img,.footer-logo{transform:none!important;filter:none}
