/* ============================================================
   NanoKappa — institutional site
   Dark, minimal, visionary. Mobile first.
   ============================================================ */

:root {
  --navy:        #05070d;
  --navy-soft:   #0a0e18;
  --navy-card:   #0d121f;
  --border:      #1b2334;
  --blue:        #0099ff;
  --purple:      #7c3aed;
  --gold:        #f5b944;
  --text:        #e8ecf3;
  --text-dim:    #99a3b5;
  --text-faint:  #66708a;

  --max:   1160px;
  --pad:   1.5rem;
  --round: 14px;

  --ease: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--navy);
  color: var(--text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--blue); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: #4db8ff; }

:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 4px;
}

.container {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--pad);
}

.accent-blue   { color: var(--blue); }
.accent-purple { color: var(--purple); }
.accent-gold   { color: var(--gold); }

/* ---------- HEADER ---------- */

.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(5, 7, 13, .82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  gap: 1rem;
}

.logo {
  font-size: 1.28rem;
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--text);
  flex-shrink: 0;
}
.logo:hover { color: var(--text); }
.logo__nano  { color: var(--text); }
.logo__kappa { color: var(--blue); }

.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 0 9px;
  background: none;
  border: 1px solid var(--border);
  border-radius: 9px;
  cursor: pointer;
}
.menu-toggle span {
  display: block;
  height: 2px;
  width: 100%;
  background: var(--text);
  border-radius: 2px;
  transition: transform .3s var(--ease), opacity .2s;
}
.menu-toggle--open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle--open span:nth-child(2) { opacity: 0; }
.menu-toggle--open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  flex-direction: column;
  padding: .5rem var(--pad) 1.25rem;
  background: rgba(5, 7, 13, .97);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
}
.nav--open { display: flex; }

.nav__link {
  padding: .8rem 0;
  color: var(--text-dim);
  font-size: .95rem;
  font-weight: 500;
  border-bottom: 1px solid var(--border);
}
.nav__link:last-child { border-bottom: none; }
.nav__link:hover,
.nav__link--active { color: var(--text); }

@media (min-width: 860px) {
  .menu-toggle { display: none; }
  .nav {
    display: flex;
    position: static;
    flex-direction: row;
    align-items: center;
    gap: 2.1rem;
    padding: 0;
    background: none;
    border: none;
    backdrop-filter: none;
  }
  .nav__link {
    position: relative;
    padding: 0;
    border: none;
  }
  .nav__link::after {
    content: '';
    position: absolute;
    left: 0; bottom: -7px;
    height: 2px; width: 0;
    background: var(--blue);
    transition: width .28s var(--ease);
  }
  .nav__link:hover::after,
  .nav__link--active::after { width: 100%; }
}

/* ---------- HERO ---------- */

.hero {
  position: relative;
  padding: 5.5rem 0 5rem;
  overflow: hidden;
  text-align: center;
}

.hero__inner { position: relative; z-index: 2; }

.hero__badge {
  display: inline-block;
  margin-bottom: 1.7rem;
  padding: .42rem 1rem;
  background: rgba(0, 153, 255, .09);
  border: 1px solid rgba(0, 153, 255, .3);
  border-radius: 100px;
  color: var(--blue);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.hero__title {
  margin: 0 0 1.5rem;
  font-size: clamp(2.4rem, 8vw, 4.6rem);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -.035em;
}

.hero__sub {
  max-width: 620px;
  margin: 0 auto 2.6rem;
  color: var(--text-dim);
  font-size: clamp(1rem, 2.4vw, 1.19rem);
  line-height: 1.72;
}
.hero__sub em { color: var(--text); font-style: italic; }

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .9rem;
}

.hero__glow {
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  filter: blur(130px);
  opacity: .17;
  pointer-events: none;
  z-index: 1;
}
.hero__glow--blue   { top: -170px; left: -110px; background: var(--blue); }
.hero__glow--purple { bottom: -230px; right: -110px; background: var(--purple); }

/* ---------- PAGE HERO (inner pages) ---------- */

.page-hero {
  position: relative;
  padding: 4.2rem 0 3.4rem;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.page-hero .container { position: relative; z-index: 2; }

.page-hero__title {
  margin: .7rem 0 .9rem;
  font-size: clamp(2.1rem, 6.5vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -.03em;
}

.page-hero__sub {
  max-width: 640px;
  margin: 0;
  color: var(--text-dim);
  font-size: clamp(1rem, 2.2vw, 1.14rem);
}

/* ---------- SECTIONS ---------- */

.section { padding: 4.5rem 0; }
.section--dark  { background: var(--navy); }
.section--mid   { background: var(--navy-soft); border-block: 1px solid var(--border); }
.section--stats { background: var(--navy-soft); border-top: 1px solid var(--border); }

.section--cta {
  background: linear-gradient(160deg, var(--navy-soft) 0%, #0b1020 100%);
  border-top: 1px solid var(--border);
  text-align: center;
}

.section__header { max-width: 720px; margin-bottom: 3.2rem; }

.label {
  display: inline-block;
  margin-bottom: .85rem;
  color: var(--blue);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.section__title {
  margin: 0 0 1.1rem;
  font-size: clamp(1.75rem, 4.6vw, 2.6rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.028em;
}

.section__lead {
  margin: 0 0 1.15rem;
  color: var(--text-dim);
  font-size: 1.045rem;
  line-height: 1.78;
}

/* ---------- BUTTONS ---------- */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .82rem 1.75rem;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: .935rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: transform .2s var(--ease), box-shadow .25s var(--ease),
              background .2s, border-color .2s, color .2s;
}

.btn--primary {
  background: var(--blue);
  color: #04121f;
  box-shadow: 0 6px 26px rgba(0, 153, 255, .26);
}
.btn--primary:hover {
  background: #38b0ff;
  color: #04121f;
  transform: translateY(-2px);
  box-shadow: 0 10px 34px rgba(0, 153, 255, .38);
}

.btn--ghost {
  background: transparent;
  border-color: var(--border);
  color: var(--text);
}
.btn--ghost:hover {
  border-color: var(--blue);
  color: var(--blue);
  transform: translateY(-2px);
}

.btn--lg { padding: 1rem 2.2rem; font-size: 1rem; }
.btn--sm { padding: .6rem 1.25rem; font-size: .85rem; margin-top: 1.4rem; }
.btn--submit { width: 100%; margin-top: .6rem; padding: 1rem; }

/* ---------- PILLARS ---------- */

.pillars {
  display: grid;
  gap: 1.4rem;
  grid-template-columns: 1fr;
}

.pillar {
  padding: 2.1rem 1.75rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-radius: var(--round);
  transition: transform .3s var(--ease), border-color .3s;
}
.pillar:hover { transform: translateY(-4px); border-color: rgba(0, 153, 255, .38); }

.pillar__icon {
  margin-bottom: 1.15rem;
  color: var(--blue);
  font-size: 1.5rem;
  line-height: 1;
}
.pillar__icon--purple { color: var(--purple); }
.pillar__icon--gold   { color: var(--gold); }

.pillar__title {
  margin: 0 0 .7rem;
  font-size: 1.17rem;
  font-weight: 700;
  letter-spacing: -.015em;
}

.pillar__body { margin: 0; color: var(--text-dim); font-size: .95rem; line-height: 1.72; }

@media (min-width: 780px) {
  .pillars { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- SPLIT ---------- */

.split {
  display: grid;
  gap: 2.6rem;
  grid-template-columns: 1fr;
  align-items: center;
}
.split--centered { max-width: 760px; }

@media (min-width: 900px) {
  .split { grid-template-columns: 1.05fr .95fr; gap: 4rem; }
}

.platform-card {
  padding: 2.6rem 2.1rem;
  background: linear-gradient(150deg, rgba(124, 58, 237, .1), rgba(0, 153, 255, .07));
  border: 1px solid rgba(124, 58, 237, .3);
  border-radius: var(--round);
}

.platform-card__quote {
  margin: 0 0 1.3rem;
  font-size: 1.28rem;
  font-weight: 600;
  font-style: italic;
  line-height: 1.55;
  letter-spacing: -.015em;
}

.platform-card__src {
  color: var(--text-faint);
  font-size: .8rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* ---------- QUOTE BLOCK ---------- */

.quote-block {
  max-width: 880px;
  margin-inline: auto;
  padding: 2.8rem 1.9rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-left: 3px solid var(--purple);
  border-radius: var(--round);
}

.quote-block__text {
  margin: 0 0 1.5rem;
  font-size: clamp(1.08rem, 2.7vw, 1.42rem);
  font-weight: 500;
  line-height: 1.68;
  letter-spacing: -.014em;
}

.quote-block__cite {
  color: var(--text-faint);
  font-size: .8rem;
  font-style: normal;
  letter-spacing: .08em;
  text-transform: uppercase;
}

@media (min-width: 700px) { .quote-block { padding: 3.2rem 3rem; } }

/* ---------- FEATURES ---------- */

.features {
  display: grid;
  gap: 1.4rem;
  grid-template-columns: 1fr;
}

.feature {
  padding: 2rem 1.75rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-radius: var(--round);
}

.feature__num {
  margin-bottom: .9rem;
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: -.02em;
}

.feature__title { margin: 0 0 .7rem; font-size: 1.13rem; font-weight: 700; }
.feature__body  { margin: 0; color: var(--text-dim); font-size: .95rem; line-height: 1.75; }

@media (min-width: 800px) { .features { grid-template-columns: repeat(2, 1fr); } }

/* ---------- PRODUCTS ---------- */

.products {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: 1fr;
}

.product-card {
  padding: 2.2rem 1.85rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: transform .3s var(--ease), border-color .3s;
}
.product-card:hover { transform: translateY(-4px); border-color: rgba(0, 153, 255, .34); }
.product-card--active { border-color: rgba(0, 153, 255, .3); }
.product-card__art { display:block; width:100%; height:150px; object-fit:contain; object-position:center; margin:.35rem 0 .7rem; border-radius:8px; filter:drop-shadow(0 12px 22px rgba(25,125,255,.16)); }

.product-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1.2rem;
}

.product-card__status {
  padding: .3rem .8rem;
  border-radius: 100px;
  font-size: .71rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.product-card__status--live {
  background: rgba(0, 153, 255, .13);
  border: 1px solid rgba(0, 153, 255, .38);
  color: var(--blue);
}
.product-card__status--dev {
  background: rgba(245, 185, 68, .12);
  border: 1px solid rgba(245, 185, 68, .36);
  color: var(--gold);
}
.product-card__status--soon {
  background: rgba(124, 58, 237, .13);
  border: 1px solid rgba(124, 58, 237, .38);
  color: #a97dfa;
}

.product-card__market { color: var(--text-faint); font-size: .82rem; }

.product-card__name {
  margin: 0 0 .45rem;
  font-size: 1.72rem;
  font-weight: 800;
  letter-spacing: -.028em;
}

.product-card__tagline {
  margin: 0 0 1.1rem;
  color: var(--text);
  font-size: 1.03rem;
  font-weight: 500;
}

.product-card__body {
  margin: 0 0 1.4rem;
  color: var(--text-dim);
  font-size: .95rem;
  line-height: 1.76;
}

.product-card__facts { margin: 0; padding: 0; list-style: none; }
.product-card__facts li {
  position: relative;
  padding: .42rem 0 .42rem 1.4rem;
  color: var(--text-dim);
  font-size: .9rem;
  border-top: 1px solid var(--border);
}
.product-card__facts li::before {
  content: '';
  position: absolute;
  left: 0; top: .95rem;
  width: 5px; height: 5px;
  background: var(--blue);
  border-radius: 50%;
}

@media (min-width: 900px) { .products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- PRODUCT CORE RADIAL ---------- */
.core-radial { position:relative; min-height:420px; max-width:900px; margin:0 auto; border:1px solid var(--border); border-radius:8px; overflow:hidden; background:radial-gradient(circle at center,rgba(39,142,255,.14),transparent 34%),linear-gradient(145deg,rgba(12,23,48,.82),rgba(5,9,20,.92)); }
.core-radial:before,.core-radial:after { content:''; position:absolute; left:50%; top:50%; border:1px solid rgba(51,177,255,.24); border-radius:50%; transform:translate(-50%,-50%); }
.core-radial:before { width:38%; height:54%; }.core-radial:after { width:62%; height:82%; border-color:rgba(132,88,255,.2); transform:translate(-50%,-50%) rotate(35deg); }
.core-radial__center,.core-radial__node { position:absolute; z-index:2; display:grid; gap:.25rem; text-align:center; }
.core-radial__center { left:50%; top:50%; width:190px; padding:1.25rem 1rem; transform:translate(-50%,-50%); border:1px solid rgba(70,190,255,.58); border-radius:8px; background:#0b1b39; box-shadow:0 0 30px rgba(41,157,255,.24); }
.core-radial__center strong { color:#eaf8ff; font-size:1.05rem; }.core-radial__center small,.core-radial__node small { color:var(--text-faint); font-size:.68rem; }
.core-radial__node { width:150px; padding:.9rem .7rem; border:1px solid var(--border); border-radius:8px; background:rgba(8,16,34,.93); }.core-radial__node strong { font-size:.92rem; }.core-radial__node--fox { left:8%; top:15%; }.core-radial__node--koala { right:8%; top:15%; }.core-radial__node--kanvas { left:8%; bottom:15%; }.core-radial__node--kronos { right:8%; bottom:15%; }
.core-radial__line { position:absolute; z-index:1; left:50%; top:50%; width:31%; height:1px; background:linear-gradient(90deg,rgba(46,190,255,.72),rgba(137,92,255,.6)); transform-origin:left center; }.core-radial__line--one { transform:rotate(-149deg); }.core-radial__line--two { transform:rotate(-31deg); }.core-radial__line--three { transform:rotate(149deg); }.core-radial__line--four { transform:rotate(31deg); }
.product-card__headline { margin:0 0 1rem; color:var(--text); font-size:1.04rem; line-height:1.45; font-weight:600; }
@media (max-width:600px) { .core-radial { min-height:520px; }.core-radial__node { width:128px; }.core-radial__node--fox,.core-radial__node--kanvas { left:3%; }.core-radial__node--koala,.core-radial__node--kronos { right:3%; }.core-radial__line { width:25%; } }

/* ---------- MODEL GRID ---------- */

.model-grid {
  display: grid;
  gap: 1.4rem;
  grid-template-columns: 1fr;
}

.model-item {
  padding: 1.95rem 1.7rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-radius: var(--round);
}

.model-item__icon { margin-bottom: .95rem; font-size: 1.1rem; line-height: 1; }
.model-item__title { margin: 0 0 .65rem; font-size: 1.11rem; font-weight: 700; }
.model-item__body { margin: 0; color: var(--text-dim); font-size: .94rem; line-height: 1.74; }

@media (min-width: 800px) { .model-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- STATS ---------- */

.stats {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
  text-align: center;
}

.stat__value {
  font-size: clamp(2.4rem, 7vw, 3.6rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
}

.stat__label {
  margin-top: .6rem;
  color: var(--text-dim);
  font-size: .85rem;
  letter-spacing: .02em;
}

/* ---------- CTA ---------- */

.cta__inner { max-width: 640px; margin-inline: auto; }

.cta__title {
  margin: 0 0 .9rem;
  font-size: clamp(1.6rem, 4.4vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -.028em;
}

.cta__sub { margin: 0 0 2rem; color: var(--text-dim); font-size: 1.03rem; }

/* Narrative flow diagrams used by Platform and Services. */
.flow { display:flex; align-items:stretch; justify-content:center; gap:.7rem; flex-wrap:wrap; }
.flow > div { flex:1 1 130px; min-width:118px; padding:1.2rem 1rem; background:var(--navy-card); border:1px solid var(--border); border-radius:var(--round); }
.flow b { display:block; color:var(--blue); font-size:.72rem; letter-spacing:.1em; }
.flow strong { display:block; margin:.45rem 0 .25rem; font-size:1rem; }
.flow span { display:block; color:var(--text-dim); font-size:.8rem; line-height:1.45; }
.flow i { align-self:center; color:var(--purple); font-style:normal; font-size:1.3rem; }
.flow--wide > div { min-width:110px; }
@media (max-width:700px) { .flow { display:grid; grid-template-columns:1fr 1fr; } .flow i { display:none; } .flow--wide { grid-template-columns:1fr; } }

/* Vision and Services editorial systems. */
.vision-pillars { grid-template-columns:repeat(5,1fr); }
.economics-layout { display:grid; gap:2rem; }
.economics-chart { min-width:0; margin:0; display:grid; gap:.65rem; padding:.55rem; border:1px solid var(--border); border-radius:var(--round); background:linear-gradient(145deg,#0c1830,#080d19); overflow:hidden; cursor:zoom-in; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.economics-chart:hover,.economics-chart:focus-visible { border-color:rgba(61,160,255,.7); box-shadow:0 16px 44px rgba(0,153,255,.16); transform:translateY(-2px); outline:none; }
.economics-chart img { display:block; width:100%; height:auto; border-radius:calc(var(--round) - 4px); }
.economics-chart figcaption { min-width:0; padding:.15rem .45rem .35rem; color:var(--text-faint); font-size:.72rem; line-height:1.45; overflow-wrap:anywhere; }
.economics-chart__hint { color:#8ed4ff; }
.chart-modal[hidden] { display:none; }
.chart-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:clamp(1rem,4vw,3rem); }
.chart-modal__backdrop { position:absolute; inset:0; background:rgba(1,4,12,.86); backdrop-filter:blur(8px); }
.chart-modal__panel { position:relative; width:min(1100px,100%); max-height:calc(100vh - 2rem); padding:clamp(.8rem,2vw,1.4rem); overflow:auto; border:1px solid rgba(107,170,255,.45); border-radius:var(--round); background:linear-gradient(145deg,#0c1830,#060a14); box-shadow:0 30px 100px rgba(0,0,0,.55); }
.chart-modal__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.chart-modal__header h2 { margin:0; color:var(--text); font-size:clamp(1rem,2vw,1.35rem); }
.chart-modal__close { display:grid; place-items:center; width:2.25rem; height:2.25rem; padding:0; border:1px solid var(--border); border-radius:50%; color:var(--text); background:rgba(255,255,255,.05); font-size:1.6rem; line-height:1; cursor:pointer; }
.chart-modal__close:hover,.chart-modal__close:focus-visible { border-color:var(--blue); color:#fff; outline:none; }
.chart-modal__image { display:block; width:100%; height:auto; border-radius:calc(var(--round) - 4px); }
.chart-axis { color:var(--text-faint); font-size:.68rem; letter-spacing:.04em; }
.chart-axis--y { writing-mode:vertical-rl; transform:rotate(180deg); display:flex; align-items:center; justify-content:center; }
.chart-grid { position:relative; flex:1; min-height:260px; border-left:1px solid #33415d; border-bottom:1px solid #33415d; background:repeating-linear-gradient(to bottom,transparent 0 24%,rgba(126,153,201,.12) 24.4% 25%); }
.chart-line { position:absolute; left:7%; right:5%; height:3px; border-radius:3px; transform-origin:left center; }
.chart-line--fixed { top:55%; background:var(--gold); transform:rotate(-3deg); box-shadow:0 0 12px rgba(245,185,68,.4); }
.chart-line--variable { top:82%; background:linear-gradient(90deg,var(--blue),var(--purple)); transform:rotate(-25deg); box-shadow:0 0 14px rgba(0,153,255,.45); }
.chart-label { position:absolute; right:4%; padding:.2rem .4rem; background:#0b1427; font-size:.68rem; }
.chart-label--fixed { top:42%; color:var(--gold); }.chart-label--variable { top:12%; color:#66cfff; }
.chart-axis--x { position:absolute; right:1%; bottom:-2rem; }
.comparison-table,.maturity-table { display:grid; border:1px solid var(--border); border-radius:var(--round); overflow:hidden; }
.comparison-row,.maturity-row { display:grid; grid-template-columns:.75fr 1fr 1fr; border-top:1px solid var(--border); }
.comparison-row:first-child,.maturity-row:first-child { border-top:0; }
.comparison-row > *, .maturity-row > * { margin:0; padding:.8rem .9rem; color:var(--text-dim); font-size:.78rem; }
.comparison-row > :first-child,.maturity-row > :first-child { color:var(--text); font-weight:600; }
.comparison-row--head,.maturity-row--head { background:rgba(29,51,91,.35); }.comparison-row--head > *, .maturity-row--head > * { color:var(--text); font-size:.7rem; letter-spacing:.03em; text-transform:uppercase; }
.service-pillars { grid-template-columns:repeat(3,1fr); }.service-pillars .feature { min-height:170px; }
.funnel-flow { display:grid; gap:.55rem; max-width:780px; margin:0 auto 3rem; }
.funnel-flow div { margin-inline:auto; width:100%; padding:.9rem 1rem; text-align:center; color:var(--text); border:1px solid rgba(61,160,255,.35); border-radius:8px; background:linear-gradient(90deg,rgba(22,86,149,.28),rgba(69,41,143,.28)); }
.funnel-flow div:nth-child(2){width:90%}.funnel-flow div:nth-child(3){width:80%}.funnel-flow div:nth-child(4){width:70%}.funnel-flow div:nth-child(5){width:60%}.funnel-flow div:nth-child(6){width:50%;border-color:rgba(245,185,68,.5)}
.governance-loop { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; max-width:920px; margin:auto; }
.governance-loop div { position:relative; padding:1.3rem 1rem; border:1px solid var(--border); border-radius:50%; aspect-ratio:1; display:flex; flex-direction:column; justify-content:center; text-align:center; background:radial-gradient(circle,rgba(36,123,220,.2),rgba(9,15,30,.9) 66%); }
.governance-loop div:nth-child(2),.governance-loop div:nth-child(4){background:radial-gradient(circle,rgba(124,58,237,.2),rgba(9,15,30,.9) 66%)}
.governance-loop b { color:var(--text); }.governance-loop span { margin-top:.35rem; color:var(--text-faint); font-size:.68rem; line-height:1.35; }
.services-economics { max-width:720px; margin:2rem auto 0; text-align:center; }.services-economics strong { color:var(--text); }
@media (min-width:900px) { .economics-layout { grid-template-columns:.9fr 1.1fr; align-items:center; } }
@media (max-width:900px) { .vision-pillars { grid-template-columns:repeat(2,1fr); }.service-pillars { grid-template-columns:repeat(2,1fr); }.governance-loop { grid-template-columns:repeat(2,1fr); max-width:560px; } }
@media (max-width:620px) { .vision-pillars,.service-pillars { grid-template-columns:1fr; }.comparison-row,.maturity-row { grid-template-columns:1fr; }.comparison-row--head,.maturity-row--head { display:none; }.comparison-row > *, .maturity-row > * { padding:.45rem .8rem; }.comparison-row > * + *, .maturity-row > * + * { padding-top:0; }.comparison-row > :before,.maturity-row > :before { content:attr(data-label); }.funnel-flow div,.funnel-flow div:nth-child(n) { width:100%; }.governance-loop { gap:.7rem; }.governance-loop div { padding:.8rem .5rem; } }

/* New intelligence diagrams supplied for the corporate site. */
.platform-hero__image { width:min(100%,620px); border-radius:var(--round); }
.platform-stack-art { margin:0; overflow:hidden; border:1px solid var(--border); border-radius:var(--round); background:#030717; box-shadow:0 18px 60px rgba(0,0,0,.22); }
.platform-stack-art img { display:block; width:100%; height:auto; }
.loop-diagram--legacy { display:none; }
.core-radial { background-image:linear-gradient(rgba(3,7,23,.08),rgba(3,7,23,.08)),url('/img/nanokappa-core-architecture.png?v=20260815-architecture'); background-size:cover; background-position:center; }
.core-radial > * { visibility:hidden; }

/* ---------- CONTACT ---------- */

.contact-layout {
  display: grid;
  gap: 3rem;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .contact-layout { grid-template-columns: .85fr 1.15fr; gap: 4rem; }
}

.contact-info__title {
  margin: 0 0 1rem;
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -.028em;
}

.contact-info__body { margin: 0 0 2rem; color: var(--text-dim); line-height: 1.76; }

.contact-info__items { display: grid; gap: 1.2rem; }

.contact-info__item {
  padding-top: 1.2rem;
  border-top: 1px solid var(--border);
}

.contact-info__label {
  display: block;
  margin-bottom: .3rem;
  color: var(--blue);
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.contact-info__value { color: var(--text-dim); font-size: .93rem; }

.contact-form-wrapper {
  padding: 2.2rem 1.8rem;
  background: var(--navy-card);
  border: 1px solid var(--border);
  border-radius: var(--round);
}

@media (min-width: 700px) { .contact-form-wrapper { padding: 2.6rem 2.4rem; } }

.form-row { margin-bottom: 1.4rem; }

.form-label {
  display: block;
  margin-bottom: .5rem;
  font-size: .87rem;
  font-weight: 600;
  letter-spacing: .01em;
}
.form-label span[aria-hidden] { color: var(--blue); }
.form-label__optional { color: var(--text-faint); font-weight: 400; }

.form-input {
  width: 100%;
  padding: .82rem 1rem;
  background: var(--navy);
  border: 1px solid var(--border);
  border-radius: 9px;
  color: var(--text);
  font-family: inherit;
  font-size: .95rem;
  line-height: 1.5;
  transition: border-color .2s, box-shadow .2s;
}
.form-input::placeholder { color: var(--text-faint); }
.form-input:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(0, 153, 255, .16);
}
.form-input--error { border-color: #ef4444; }

.form-textarea { resize: vertical; min-height: 130px; }

.form-error {
  display: block;
  margin-top: .42rem;
  color: #f87171;
  font-size: .84rem;
}
.form-error--general {
  margin: 0 0 1.2rem;
  padding: .85rem 1rem;
  background: rgba(239, 68, 68, .09);
  border: 1px solid rgba(239, 68, 68, .3);
  border-radius: 9px;
}

.form-success { text-align: center; padding: 1.2rem 0; }

.form-success__icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 1.4rem;
  background: rgba(0, 153, 255, .12);
  border: 1px solid rgba(0, 153, 255, .4);
  border-radius: 50%;
  color: var(--blue);
  font-size: 1.6rem;
}

.form-success__title { margin: 0 0 .8rem; font-size: 1.5rem; font-weight: 700; }

.form-success__body {
  margin: 0 0 1.8rem;
  color: var(--text-dim);
  line-height: 1.74;
}

/* ---------- FOOTER ---------- */

.footer {
  padding: 3rem 0 2.4rem;
  background: var(--navy);
  border-top: 1px solid var(--border);
}

.footer__inner { text-align: center; }
.footer__logo { display: inline-block; margin-bottom: .9rem; }

.footer__tagline {
  margin: 0 0 1.5rem;
  color: var(--text-dim);
  font-size: .95rem;
}

.footer__copy { margin: 0; color: var(--text-faint); font-size: .83rem; }

/* ---------- MOTION ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* NanoKappa Core landing — visual system from the supplied reference */
:root { --navy:#03050d; --navy-soft:#050817; --navy-card:rgba(10,17,34,.72); --border:rgba(112,143,205,.18); --blue:#25b8ff; --purple:#8b55ff; --text:#f3f5fb; --text-dim:#9ca7bd; --max:1320px; --pad:4.3vw; }
body { background:radial-gradient(ellipse at 70% 20%,#07153a 0%,var(--navy) 38%); letter-spacing:-.01em; }
.header { position:relative; background:transparent; border:0; backdrop-filter:none; }
.header__inner { min-height:108px; }
.header__inner { width:calc(100% - 6rem); max-width:1348px; }
.logo { display:flex; flex-direction:column; align-items:flex-start; gap:0; font-weight:400; }
.logo__symbol { font-size:3.35rem; line-height:.68; font-weight:800; letter-spacing:-.2em; color:#1fbaff; text-shadow:14px 0 #7c4cff; margin-right:.4rem; }
.logo__word { color:#d7d8e7; font-size:1rem; letter-spacing:.01em; margin-left:-.02rem; }
.logo__image { width:112px; height:auto; display:block; }
.nav { gap:2.85rem; align-items:center; }
.nav__link { color:#e7e8f0; font-size:.91rem; }
.nav__link::after { background:var(--blue); }
.nav__services { position:relative; color:#e7e8f0; font-size:.91rem; }
.nav__services summary { list-style:none; cursor:pointer; padding:1rem 1.2rem; border:1px solid var(--border); border-radius:12px; }
.nav__services summary::-webkit-details-marker { display:none; }
.nav__services summary span { margin-left:1.2rem; }
.nav__services[open] summary { border-radius:12px 12px 0 0; }
.nav__services > a { position:absolute; top:100%; left:0; width:155px; padding:1rem 1.2rem; border:1px solid var(--border); border-top:0; border-radius:0 0 12px 12px; background:#0b1224; color:#dce2f0; font-size:.82rem; z-index:5; }
.nav__language { position:relative; color:#e7e8f0; font-size:.91rem; }
.nav__language summary { list-style:none; cursor:pointer; padding:1rem 1.2rem; border:1px solid var(--border); border-radius:12px; }
.nav__language summary::-webkit-details-marker { display:none; }
.nav__language summary span { margin-left:.7rem; }
.nav__language[open] summary { border-radius:12px 12px 0 0; }
.nav__language-menu { position:absolute; top:100%; right:0; min-width:100%; padding-top:1px; z-index:5; }
.nav__language-menu a { display:block; padding:.7rem 1.2rem; border:1px solid var(--border); border-top:0; background:#0b1224; color:#dce2f0; font-size:.82rem; }
.nav__language-menu a:last-child { border-radius:0 0 12px 12px; }
.nav__core { display:flex; align-items:center; gap:1.05rem; padding:1rem 1.4rem; border:1px solid var(--border); border-radius:12px; color:#eef0f7; font-size:.91rem; }
.nav__core i { width:7px; height:7px; border-radius:50%; background:#fff; box-shadow:0 0 14px 5px #397dff; }
.nk-hero { width:min(var(--max),calc(100% - 2*var(--pad))); margin:auto; min-height:470px; display:grid; grid-template-columns:.92fr 1.08fr; align-items:center; gap:2rem; }
.nk-hero__copy { padding:2.4rem 0 2rem; position:relative; z-index:2; }
.nk-kicker { color:#25c4ff; font-size:.7rem; letter-spacing:.34em; font-weight:600; margin-bottom:1rem; }
.nk-hero h1 { margin:0 0 1.45rem; font-size:clamp(2.6rem,3.55vw,3.75rem); font-weight:400; line-height:1.08; letter-spacing:-.045em; }
.nk-hero h1 span { background:linear-gradient(90deg,#20bfff,#8b56ff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.nk-hero__copy p { max-width:510px; color:#aeb5c5; font-size:.99rem; line-height:1.65; margin:0 0 2.1rem; }
.nk-actions { display:flex; align-items:center; gap:2rem; }
.nk-button,.nk-outline { display:inline-flex; align-items:center; justify-content:space-between; gap:1.8rem; padding:.88rem 1.35rem; border-radius:8px; color:white; background:linear-gradient(100deg,#079fff,#633eff); box-shadow:0 0 30px rgba(0,126,255,.24); }
.nk-button span,.nk-outline span { font-size:1.55rem; line-height:.5; }
.nk-core-link { color:#eef0f7; font-size:.84rem; }.nk-core-link i { display:inline-block; width:7px; height:7px; margin-left:1.2rem; border-radius:50%; background:#fff; box-shadow:0 0 14px 5px #397dff; }
.nk-hero__visual { min-width:0; min-height:430px; position:relative; display:grid; place-items:center; transform:scale(1.06); }
.nk-hero__visual--image { min-height:0; transform:none; }
.nk-hero__image { display:block; width:100%; height:auto; max-height:430px; object-fit:contain; border-radius:18px; box-shadow:0 20px 70px rgba(23,105,255,.22); transition:transform 700ms cubic-bezier(.2,.8,.2,1),filter 700ms ease; }
.nk-hero__visual--video { min-height:0; transform:none; }
.nk-hero__video { display:block; width:min(100%, 820px); height:auto; max-height:430px; object-fit:contain; border-radius:18px; box-shadow:0 20px 70px rgba(23,105,255,.22); }
.nk-hero__visual--animated { cursor:crosshair; }
.nk-hero__visual--animated:hover .nk-hero__image { transform:scale(1.018); filter:saturate(1.08) brightness(1.04); }
.core-glow { width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,#b9f1ff 0,#1889ff 20%,#6846ff 47%,transparent 70%); filter:blur(12px); opacity:.86; }
.core-mark { position:absolute; font-size:5.6rem; font-weight:800; color:#178dff; text-shadow:0 0 10px #b8f7ff,14px 8px 0 #5039ff; }
.nk-hero__visual--animated { isolation:isolate; overflow:visible; }
.nk-hero__visual--animated #coreCanvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; filter:saturate(1.18) contrast(1.06); }
.nk-hero__visual--animated .core-glow,.nk-hero__visual--animated .core-mark { z-index:2; }
.orbit-label { position:absolute; z-index:3; display:grid; grid-template-columns:48px auto; grid-template-rows:auto auto; column-gap:10px; align-items:center; min-width:165px; color:#fff; }
.orbit-label i { grid-row:1 / 3; width:48px; height:48px; border:1px solid rgba(94,212,255,.35); border-radius:50%; background:rgba(8,17,42,.48); box-shadow:0 0 24px rgba(62,132,255,.35), inset 0 0 22px rgba(85,54,255,.18); }
.orbit-label strong { font-size:.7rem; letter-spacing:.16em; }.orbit-label small { color:#aeb5c5; margin-top:3px; font-size:.68rem; }
.orbit-label--interface { left:8%; top:8%; }.orbit-label--analytics { right:0; top:8%; }.orbit-label--logic { left:5%; bottom:12%; }.orbit-label--evolution { right:0; bottom:12%; }
.icon-grid::before,.icon-bars::before,.icon-code::before,.icon-spiral::before { display:grid; place-items:center; height:100%; color:#c8f7ff; }
.icon-grid::before { content:"⌗"; font-size:22px; }.icon-bars::before { content:"▾"; font-size:22px; }.icon-code::before { content:"</>"; font:700 15px/1 monospace; }.icon-spiral::before { content:"◉"; font-size:20px; color:#a761ff; }
.orbit { position:absolute; width:66%; height:36%; border:1px solid rgba(77,147,255,.55); border-radius:50%; transform:rotate(26deg); box-shadow:0 0 16px #267dff; }.orbit--two{transform:rotate(-30deg);border-color:#8950ff}.orbit--three{width:55%;height:55%;transform:rotate(68deg);border-color:#24baff}
.node { position:absolute; display:flex; flex-direction:column; align-items:center; gap:.15rem; text-align:center; color:#dfe7ff; }.node b { width:58px;height:58px; display:grid;place-items:center;border:1px solid #3298ff;border-radius:50%;font-size:1.35rem;color:#e7f5ff;box-shadow:0 0 15px #167eff, inset 0 0 22px rgba(42,119,255,.35); }.node strong{font-size:.83rem;letter-spacing:.08em;font-weight:500}.node small{font-size:.74rem;color:#abb3c5}.node--top{top:2%;left:22%}.node--right{top:3%;right:8%}.node--bottom{bottom:2%;left:20%}.node--left{bottom:4%;right:10%}.node--left b{border-color:#814bff;box-shadow:0 0 18px #643cff,inset 0 0 20px #3c1c8d}
.nk-pillars { width:min(var(--max),calc(100% - 2*var(--pad))); margin:0 auto 2.1rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }.nk-pillar { position:relative; min-height:150px; padding:1.15rem 1.35rem; border:1px solid var(--border); border-radius:12px; background:linear-gradient(145deg,rgba(15,26,49,.7),rgba(4,8,18,.75)); display:grid; grid-template-columns:75px 1fr 18px; gap:.55rem; align-items:start; }.nk-pillar__number{color:#22c0ff;font-size:.72rem}.nk-pillar h2{font-size:.9rem;font-weight:500;margin:0 0 .7rem}.nk-pillar p{color:#99a3b8;font-size:.77rem;line-height:1.65;margin:0}.nk-arrow{align-self:center;font-size:1.45rem}/* A SINISTRA del testo, nella colonna del numero, e alla sua stessa altezza.
   ⚠️ Fuori dalla griglia, in posizione assoluta, DI PROPOSITO: dentro la griglia
   l'unica cella libera in colonna 1 è la riga 2, che comincia dove finisce il
   testo — quindi l'immagine cadeva sempre sotto. Piazzarla in riga 1 invece
   ruba la cella al posizionamento automatico degli altri figli (numero, testo,
   freccia) e l'intera card si scompone. L'ancora è `.nk-pillar`, che è
   position:relative. */
.mini-orb{position:absolute;left:1.35rem;top:2.9rem;width:48px;height:40px; border-radius:50%; border:1px solid #3d9fff; box-shadow:0 0 12px #277bff;}/* Immagini con sfondo pieno (non trasparente): senza `screen` il rettangolo
   scuro dell'immagine si vede dentro il cerchio e stona con gli altri orb. */
.mini-orb--photo{mix-blend-mode:screen}
.mini-orb--core{background:radial-gradient(circle,#d9ffff 0 8%,#297dff 10% 25%,transparent 27%),radial-gradient(ellipse,transparent 43%,#238eff 46% 49%,transparent 52%);}.mini-orb--wave{border-radius:50%;transform:skew(-22deg);}.mini-orb--ring{border:3px solid #5f52ff;box-shadow:0 0 10px #6f4fff}.mini-orb--sphere{border-radius:50%;background:radial-gradient(circle,#cefbff,#1e8dff 25%,transparent 27%);}
.nk-products { width:min(var(--max),calc(100% - 2*var(--pad))); margin:0 auto 1.1rem; display:grid; grid-template-columns:260px 1fr; gap:1.8rem; }.nk-products__intro h2{font-size:2rem;line-height:1.1;font-weight:400;margin:.2rem 0 .7rem}.nk-products__intro h2 span{background:linear-gradient(90deg,#1bbcff,#8956ff);-webkit-background-clip:text;background-clip:text;color:transparent}.nk-products__intro p{color:#9da6b9;font-size:.82rem;line-height:1.55;margin:0 0 1rem}.nk-outline{background:transparent;border:1px solid var(--border);box-shadow:none;padding:.55rem .85rem;font-size:.78rem;gap:2rem}.nk-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.nk-product{position:relative;min-height:182px;padding:1rem 1.15rem;border:1px solid var(--border);border-radius:11px;background:linear-gradient(150deg,rgba(12,22,44,.8),rgba(4,8,18,.8));color:#f3f5fb}.status{color:#9cadc9;font-size:.7rem}.status i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#1fbaff;margin-right:.4rem;box-shadow:0 0 8px #1fbaff}.product-art{display:block;height:78px;margin:.1rem auto .2rem;width:100%;background:radial-gradient(circle,transparent 17%,#138cff 19%,transparent 22%),radial-gradient(ellipse,transparent 30%,#1d83ff 32%,transparent 35%);filter:drop-shadow(0 0 9px #227cff)}.product-art--2{background:conic-gradient(from 45deg,transparent,#8351ff,transparent 35%),radial-gradient(circle,#b5faff 1%,#604bff 3%,transparent 4%);filter:drop-shadow(0 0 10px #6b45ff)}.product-art--3{background:repeating-radial-gradient(ellipse at center,transparent 0 8px,#168eff 9px 10px,transparent 11px)}.product-art--4{background:radial-gradient(ellipse at center,transparent 23%,#713eff 25% 28%,transparent 30%),linear-gradient(45deg,transparent 45%,#19aaff 46% 54%,transparent 55%)}.nk-product strong{display:block;font-size:.93rem;font-weight:500}.nk-product small{color:#9ba7bb;font-size:.74rem}
/* Card capofila NanoFox: illustrazione al posto dell'arte a gradienti. */
.nk-product--lead{min-height:300px;display:flex;flex-direction:column;gap:.35rem}
/* Contenitore dell'arte ad altezza fissa: le quattro illustrazioni hanno
   proporzioni diverse (l'infinito di NanoKronos è largo e basso), e senza
   un'altezza comune i nomi dei prodotti non starebbero sulla stessa riga. */
.product-art--img{height:150px;background:none;filter:none;margin:.35rem auto .55rem;display:flex;align-items:center;justify-content:center}
.product-art--img img{max-width:100%;max-height:150px;width:auto;height:auto;display:block;mix-blend-mode:screen}
.nk-product--lead .product-name{font-size:1.55rem;font-weight:600;letter-spacing:-.01em;line-height:1.1}
/* Il gradiente sta su «Fox», come nel mockup: il resto resta bianco. */
.nk-product--lead .product-name span{background:linear-gradient(90deg,#2e8bff,#7b5cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.nk-product--lead small{font-size:.92rem;background:linear-gradient(90deg,#3d9bff,#7b5cff);-webkit-background-clip:text;background-clip:text;color:transparent}
/* padding-right: la freccia è posizionata in assoluto in basso a destra e
   NanoKronos ha cinque simboli — senza riserva ci finirebbero sotto. */
.product-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.7rem;padding-right:52px}
.chip{width:30px;height:30px;border:1px solid var(--border);border-radius:8px;display:block;background-repeat:no-repeat;background-position:50%;background-size:16px 16px;opacity:.55}
.chip--brain{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M12 5a2.5 2.5 0 0 0-5 .3A2.5 2.5 0 0 0 5 9.5a2.5 2.5 0 0 0 1 4A2.5 2.5 0 0 0 9.5 19 2.5 2.5 0 0 0 12 17zM12 5a2.5 2.5 0 0 1 5 .3 2.5 2.5 0 0 1 2 4.2 2.5 2.5 0 0 1-1 4 2.5 2.5 0 0 1-3.5 5.5A2.5 2.5 0 0 1 12 17z'/%3E%3C/svg%3E")}
.chip--cube{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M12 2.8 20 7v10l-8 4.2L4 17V7z'/%3E%3Cpath d='M4 7l8 4.2L20 7M12 11.2V21'/%3E%3C/svg%3E")}
.chip--bolt{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M13 2 4.5 13.5H11l-1 8.5 9-11.5h-6.5z'/%3E%3C/svg%3E")}
.chip--shield{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M12 2.6 20 6v6c0 4.6-3.3 7.9-8 9.4C7.3 19.9 4 16.6 4 12V6z'/%3E%3Cpath d='M12 8v5m0 0-1.6-1.6M12 13l1.6-1.6'/%3E%3C/svg%3E")}
.chip--book{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M12 6.5C10.5 5.2 8.4 4.6 4.5 4.6v13c3.9 0 6 .6 7.5 1.9 1.5-1.3 3.6-1.9 7.5-1.9v-13c-3.9 0-6 .6-7.5 1.9zM12 6.5v13'/%3E%3C/svg%3E")}
.chip--cap{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M12 4.2 22 9l-10 4.8L2 9z'/%3E%3Cpath d='M6 11v4.5c0 1.4 2.7 2.6 6 2.6s6-1.2 6-2.6V11M20 10v5'/%3E%3C/svg%3E")}
.chip--people{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20c0-3.3 2.7-5.5 6-5.5s6 2.2 6 5.5'/%3E%3Cpath d='M16 5.3a3 3 0 0 1 0 5.4M17.5 14.8c2.1.7 3.5 2.5 3.5 5.2'/%3E%3C/svg%3E")}
.chip--chart{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='2.5'/%3E%3Cpath d='M8 16v-3.5M12 16V8.5M16 16v-5.5'/%3E%3C/svg%3E")}
.chip--image{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='2.5'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.5'/%3E%3Cpath d='m4 17 4.5-4.5 3.5 3.5 3-2.5L20 17'/%3E%3C/svg%3E")}
.chip--pen{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M20.5 5.5 18.5 3.5 8 14l-1 4 4-1z'/%3E%3Cpath d='M4 21h16'/%3E%3C/svg%3E")}
.chip--spark{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cpath d='M13 2.5 15 8l5.5 2-5.5 2-2 5.5-2-5.5L5.5 10 11 8z'/%3E%3Cpath d='M6 16.5 6.8 19l2.5.8-2.5.8L6 23l-.8-2.4L2.7 19.8l2.5-.8z'/%3E%3C/svg%3E")}
.chip--play{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='2.5'/%3E%3Cpath d='M10.5 8.8 15 12l-4.5 3.2z'/%3E%3C/svg%3E")}
.chip--terminal{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Crect x='3.5' y='4.5' width='17' height='15' rx='2.5'/%3E%3Cpath d='m7.5 9.5 3 2.5-3 2.5M13 15h4'/%3E%3C/svg%3E")}
.chip--database{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Cellipse cx='12' cy='6' rx='7' ry='2.8'/%3E%3Cpath d='M5 6v12c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8V6M5 12c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8'/%3E%3C/svg%3E")}
.chip--lock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cdd6e4' stroke-width='1.4'%3E%3Crect x='4.5' y='10' width='15' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10V7.5a4 4 0 0 1 8 0V10'/%3E%3C/svg%3E")}
.nk-product--lead .product-arrow{position:absolute;right:1.15rem;bottom:1rem;width:44px;height:44px;border:1px solid #3b6ff0;border-radius:50%;display:grid;place-items:center;color:#8fb6ff}.product-arrow{position:absolute;right:1rem;bottom:1rem;font-size:1.35rem}.nk-banner{width:min(var(--max),calc(100% - 2*var(--pad)));margin:0 auto 1rem;padding:1.2rem 2.5rem;display:flex;align-items:center;gap:1.7rem;border:1px solid var(--border);border-radius:14px;background:linear-gradient(100deg,rgba(7,13,28,.85),rgba(9,14,31,.6));}.nk-banner__mark{font-size:3.8rem;font-weight:800;color:#3fa9ff;text-shadow:12px 3px #764cff}.nk-banner strong{font-size:1rem;font-weight:400}.nk-banner strong span{color:#53afff}.nk-banner__line{height:45px;border-left:1px solid #52607a}.nk-banner p{flex:1;color:#9ba6b9;font-size:.78rem;line-height:1.5}.nk-signoff{white-space:nowrap!important;font-size:.78rem!important;color:#c6cad6}.nk-signoff span{color:#4c85ff;text-shadow:0 0 8px #2e83ff}
@media (max-width:950px){.nk-hero{grid-template-columns:1fr}.nk-hero__visual{min-height:350px}.nk-pillars{grid-template-columns:repeat(2,1fr)}.nk-products{grid-template-columns:1fr}.nk-product-grid{grid-template-columns:repeat(2,1fr)}.nk-banner{flex-wrap:wrap}.nk-banner p{min-width:50%}}
@media (max-width:600px){.header__inner{min-height:75px}.nk-hero{width:calc(100% - 2rem)}.nk-hero__visual{min-height:300px;transform:scale(.8);margin:-2rem}.nk-hero__visual--image,.nk-hero__visual--video{min-height:0;transform:none;margin:0}.nk-actions{gap:1rem;flex-wrap:wrap}.nk-pillars,.nk-products,.nk-banner{width:calc(100% - 2rem)}.nk-pillars,.nk-product-grid{grid-template-columns:1fr}.nk-pillar{min-height:120px}.nk-banner{padding:1.2rem}.nk-banner__line{display:none}.nk-signoff{white-space:normal!important}.nav{padding-inline:1rem}}
@media (prefers-reduced-motion:reduce){.nk-hero__image{transition:none}.nk-hero__visual--animated:hover .nk-hero__image{transform:none}}

.nk-pillar .mini-orb {
  width: 64px;
  height: 50px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  filter: drop-shadow(0 0 10px rgba(37,184,255,.45));
}
@media (max-width:859px){
  .nav__services{width:100%;border-bottom:1px solid var(--border);font-size:.95rem}
  .nav__services summary{padding:.8rem 0;border:0;border-radius:0;display:flex;justify-content:space-between;align-items:center}
  .nav__services summary span{margin-left:auto}
  .nav__services[open] summary{border-radius:0}
  .nav__services > a{position:static;display:block;width:auto;padding:.65rem 0 .8rem 1rem;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;font-size:.9rem}
  .nav__language{position:relative;width:100%;border-bottom:1px solid var(--border);font-size:.95rem}
  .nav__language summary{padding:.8rem 0;border:0;border-radius:0;display:flex;justify-content:space-between;align-items:center}
  .nav__language summary span{margin-left:auto}
  .nav__language[open] summary{border-radius:0}
  .nav__language-menu{position:absolute;top:100%;left:0;right:0;min-width:0;padding:0;background:#0b1224;z-index:10}
  .nav__language-menu a{position:static;display:block;width:auto;padding:.65rem 1rem .8rem;border:0;border-top:1px solid var(--border);border-radius:0;background:#0b1224;font-size:.9rem}
  .nav__language-menu a:last-child{border-radius:0 0 12px 12px}
  .nav__core{width:100%;justify-content:space-between;margin-top:.8rem;padding:.8rem 0;border:0;border-top:1px solid var(--border);border-radius:0}
}
@media (min-width:860px) and (max-width:1100px){
  .header__inner{width:calc(100% - 3rem)}
  .nav{gap:1.35rem}
  .nav__core{padding-inline:1rem}
  .nk-hero{gap:.5rem}
  .nk-hero__visual{transform:scale(.94)}
}

/* The banner keeps its message without the decorative K mark. */
.nk-banner__mark{display:none}

/* ---------- PLATFORM / NANOFOX ---------- */
.platform-hero { position:relative; overflow:hidden; padding:5.8rem 0 5.2rem; background:radial-gradient(circle at 75% 45%,rgba(61,77,194,.18),transparent 34%); border-bottom:1px solid var(--border); }
.platform-hero__grid { display:grid; gap:3.5rem; align-items:center; grid-template-columns:1fr; }
.platform-hero__copy { position:relative; z-index:2; max-width:590px; }
.platform-hero__title { margin:.35rem 0 .7rem; font-size:clamp(4.2rem,10vw,7.4rem); line-height:.9; letter-spacing:-.08em; font-weight:700; background:linear-gradient(110deg,#f4f6ff 25%,#28c1ff 63%,#8a5cff); -webkit-background-clip:text; background-clip:text; color:transparent; }
.platform-hero__sub { max-width:520px; margin:0 0 1.25rem; color:var(--text); font-size:clamp(1.35rem,3vw,1.85rem); line-height:1.25; letter-spacing:-.03em; }
.platform-hero__body { max-width:560px; margin:0 0 2rem; color:var(--text-dim); font-size:1rem; line-height:1.78; }
.platform-hero__actions { justify-content:flex-start; }
.platform-hero__actions .btn span { margin-left:.6rem; }
.platform-hero__visual { position:relative; z-index:1; display:grid; place-items:center; min-height:320px; }
.platform-hero__image { display:block; width:min(100%,520px); height:auto; object-fit:contain; filter:drop-shadow(0 20px 45px rgba(35,130,255,.24)); }
.platform-hero > .container .fox-system { display:none; }
.fox-system { position:relative; width:min(100%,590px); min-height:450px; margin:auto; isolation:isolate; }
.fox-system__halo { position:absolute; inset:18% 18%; border:1px solid rgba(38,184,255,.2); border-radius:50%; transform:rotate(28deg); box-shadow:0 0 50px rgba(43,116,255,.13); }
.fox-system__halo--two { inset:23% 8%; transform:rotate(-30deg); border-color:rgba(139,85,255,.26); }
.fox-system__lines { position:absolute; inset:13%; border:1px dashed rgba(96,154,255,.2); border-radius:50%; transform:rotate(-19deg); }
.fox-system__lines:after { content:''; position:absolute; inset:14%; border:1px solid rgba(57,194,255,.15); border-radius:50%; transform:rotate(54deg); }
.fox-system__core { position:absolute; left:50%; top:50%; display:grid; place-items:center; width:138px; height:138px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle at 35% 30%,#e3fdff 0,#20aaff 12%,#604cff 48%,#0a1132 72%); box-shadow:0 0 26px #268dff,0 0 90px rgba(80,75,255,.52); z-index:2; }
.fox-system__core span { font-size:4rem; line-height:1; font-weight:800; color:#fff; text-shadow:10px 5px 0 #5337de; }
.fox-system__core small { margin-top:-1.6rem; font-size:.5rem; letter-spacing:.2em; color:#d6eeff; }
.fox-node { position:absolute; z-index:3; min-width:130px; text-align:center; }
.fox-node b { display:grid; place-items:center; width:45px; height:45px; margin:0 auto .45rem; border:1px solid #29baff; border-radius:50%; color:#dffaff; background:rgba(7,19,49,.82); box-shadow:0 0 20px rgba(30,157,255,.6); font-size:.72rem; }
.fox-node strong,.fox-node small { display:block; }.fox-node strong { color:#f5f7ff; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }.fox-node small { color:var(--text-dim); font-size:.7rem; }
.fox-node--memory { left:1%; top:19%; }.fox-node--missions { right:1%; top:15%; }.fox-node--agents { right:0; bottom:17%; }.fox-node--products { left:2%; bottom:14%; }.fox-node--feedback { left:50%; top:0; transform:translateX(-50%); }.fox-node--agents b { border-color:#a264ff; box-shadow:0 0 20px rgba(133,76,255,.6); }
.platform-intro__header { max-width:680px; }
.compare-grid { display:grid; grid-template-columns:1fr; gap:1.3rem; }
.compare-card { padding:2rem; border:1px solid var(--border); border-radius:var(--round); background:var(--navy-card); }.compare-card--bright { background:linear-gradient(145deg,rgba(24,51,98,.56),rgba(30,19,68,.72)); border-color:rgba(68,166,255,.37); }.compare-card__eyebrow { color:var(--text-faint); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }.compare-card h3 { margin:.65rem 0 .6rem; font-size:1.35rem; }.compare-card p { min-height:4.8rem; margin:0 0 1.4rem; color:var(--text-dim); font-size:.92rem; line-height:1.7; }.compare-card__flow { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.65rem; padding-top:1.25rem; border-top:1px solid var(--border); color:var(--text-dim); font-size:.76rem; }.compare-card__flow i { color:var(--purple); font-style:normal; }.compare-card__chip { padding:.35rem .65rem; border:1px solid rgba(49,185,255,.4); border-radius:6px; color:#a8eaff; background:rgba(0,153,255,.1); }
.architecture-layout { display:grid; gap:2.6rem; grid-template-columns:1fr; align-items:center; }.stack-list { display:grid; gap:.7rem; }.stack-item { display:grid; grid-template-columns:42px 1fr; gap:1rem; padding:1rem 1.05rem; border:1px solid var(--border); border-radius:10px; background:rgba(7,11,24,.54); }.stack-item > span { color:var(--blue); font-size:.74rem; font-weight:700; letter-spacing:.1em; }.stack-item h3 { margin:0 0 .2rem; font-size:.96rem; }.stack-item p { margin:0; color:var(--text-dim); font-size:.82rem; line-height:1.5; }
.loop-diagram { position:relative; min-height:420px; border:1px solid var(--border); border-radius:var(--round); background:radial-gradient(circle,rgba(36,130,255,.14),transparent 48%),rgba(5,8,18,.55); overflow:hidden; }.loop-diagram:before,.loop-diagram:after { content:''; position:absolute; inset:18% 15%; border:1px solid rgba(48,167,255,.26); border-radius:50%; transform:rotate(25deg); }.loop-diagram:after { inset:24% 8%; border-color:rgba(134,82,255,.27); transform:rotate(-32deg); }.loop-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); text-align:center; }.loop-center span { display:block; color:#e9f8ff; font-size:1.1rem; font-weight:700; letter-spacing:.18em; }.loop-center small { color:var(--text-dim); font-size:.68rem; }.loop-node { position:absolute; z-index:2; text-align:center; }.loop-node b { display:grid; place-items:center; width:42px; height:42px; margin:0 auto .35rem; border-radius:50%; border:1px solid #2cbcff; color:#dff9ff; background:#0a1836; font-size:.68rem; }.loop-node strong { font-size:.75rem; }.loop-node--memory{left:13%;top:15%}.loop-node--mission{right:11%;top:13%}.loop-node--agent{right:6%;bottom:15%}.loop-node--action{left:42%;bottom:6%}.loop-node--feedback{left:7%;bottom:23%}.loop-line { position:absolute; z-index:1; width:35px; height:1px; background:linear-gradient(90deg,#2bbcff,#8658ff); transform-origin:left center; }.loop-line--one { left:29%; top:25%; width:37%; transform:rotate(-2deg); }.loop-line--two { right:23%; top:29%; width:29%; transform:rotate(74deg); }.loop-line--three { left:27%; bottom:33%; width:47%; transform:rotate(12deg); }
.platform-features { grid-template-columns:1fr; }.platform-cultivation { background:linear-gradient(135deg,#090d19,#0e1530); border-block:1px solid var(--border); }.cultivation-grid { display:grid; gap:2rem; grid-template-columns:1fr; }.cultivation-lead { margin:0 0 1.5rem; font-size:clamp(1.35rem,3vw,2rem); line-height:1.35; letter-spacing:-.03em; }.cultivation-lead em { color:#48c6ff; font-style:normal; }.cultivation-copy ul { display:grid; gap:.85rem; margin:0; padding:0; list-style:none; }.cultivation-copy li { position:relative; padding-left:1.4rem; color:var(--text-dim); line-height:1.6; }.cultivation-copy li:before { content:'✦'; position:absolute; left:0; color:var(--purple); }
.mockup-grid { display:grid; grid-template-columns:1fr; gap:1rem; }.mockup { min-height:170px; padding:1.1rem; border:1px solid var(--border); border-radius:12px; background:#091020; box-shadow:0 12px 35px rgba(0,0,0,.18); }.mockup--wide { grid-column:auto; }.mockup__top { display:flex; justify-content:space-between; gap:.5rem; margin-bottom:1rem; color:#dce8ff; font-size:.78rem; font-weight:600; }.mockup__top em { color:#36bcff; font-size:.57rem; font-style:normal; letter-spacing:.1em; }.mockup__rows { display:grid; gap:.5rem; }.mockup__rows > div { display:grid; grid-template-columns:1fr auto; gap:.2rem .7rem; padding:.55rem .65rem; border:1px solid rgba(117,145,199,.16); border-radius:7px; }.mockup__rows b { font-size:.72rem; font-weight:500; }.mockup__rows span { color:var(--text-faint); font-size:.62rem; }.mockup__rows i { grid-row:1 / 3; grid-column:2; align-self:center; color:#53c9ff; font-size:.68rem; font-style:normal; }.lifecycle { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:.35rem; min-height:90px; color:var(--text-dim); font-size:.62rem; }.lifecycle span { padding:.5rem .55rem; border:1px solid rgba(96,146,220,.32); border-radius:6px; }.lifecycle span:last-child { color:#9c83ff; border-color:rgba(143,102,255,.5); }.lifecycle i { color:var(--blue); font-style:normal; }.boundary { display:grid; grid-template-columns:auto 1fr; gap:.6rem .7rem; align-items:center; min-height:95px; }.boundary__dot { width:8px; height:8px; border-radius:50%; background:#37c4ff; box-shadow:0 0 10px #37c4ff; }.boundary b,.boundary small { display:block; }.boundary b { font-size:.72rem; }.boundary small { margin-top:.15rem; color:var(--text-faint); font-size:.62rem; }.boundary__line { width:1px; height:26px; margin-left:3px; background:linear-gradient(#38c5ff,#9b69ff); }.boundary__line + div b { color:#bba8ff; }
@media (min-width:760px) { .compare-grid { grid-template-columns:repeat(2,1fr); }.platform-features { grid-template-columns:repeat(2,1fr); }.cultivation-grid { grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }.mockup-grid { grid-template-columns:1.25fr 1fr; }.mockup--wide { grid-row:span 2; }.platform-hero__grid { grid-template-columns:.9fr 1.1fr; }.architecture-layout { grid-template-columns:.95fr 1.05fr; } }
@media (min-width:1050px) { .platform-features { grid-template-columns:repeat(3,1fr); }.mockup-grid { grid-template-columns:1.35fr 1fr; }.platform-hero { padding-top:6.8rem; padding-bottom:6rem; } }
@media (max-width:650px) { .platform-hero__actions { align-items:stretch; flex-direction:column; }.platform-hero__actions .btn { width:100%; }.fox-system { min-height:360px; transform:scale(.88); transform-origin:center top; margin-bottom:-40px; }.fox-node { min-width:100px; }.fox-node small { font-size:.62rem; }.loop-diagram { min-height:350px; transform:scale(.96); transform-origin:center; margin-inline:-.5rem; }.loop-node--memory{left:6%}.loop-node--mission{right:5%}.loop-node--feedback{left:2%} }

/* ---------- COOKIE BANNER ---------- */
/* Ancorato con `inset` e non con `width:100%`: a 390px una larghezza piena
   sommata al padding manderebbe la pagina in scroll orizzontale. */
.cookie-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 300;
  padding: 0 var(--pad) max(var(--pad), env(safe-area-inset-bottom));
  transform: translateY(115%);
  transition: transform .28s var(--ease);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner--in { transform: translateY(0); }

.cookie-banner__inner {
  display: grid;
  gap: 1.1rem;
  max-width: var(--max);
  margin: 0 auto;
  padding: 1.35rem 1.5rem;
  border: 1px solid var(--border);
  border-radius: var(--round);
  background: rgba(8, 12, 24, .93);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .55);
  backdrop-filter: blur(10px);
}

.cookie-banner__title { margin: 0 0 .35rem; font-size: .98rem; font-weight: 700; color: var(--text); }
.cookie-banner__text { margin: 0; max-width: 62ch; color: var(--text-dim); font-size: .855rem; line-height: 1.6; }

.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
/* `.btn--sm` porta un margin-top pensato per le card: qui lo azzera. */
.cookie-banner__btn { margin-top: 0; padding: .62rem 1.15rem; font-size: .855rem; white-space: nowrap; }

@media (min-width: 860px) {
  .cookie-banner__inner { grid-template-columns: 1fr auto; align-items: center; gap: 2rem; }
  .cookie-banner__actions { flex-wrap: nowrap; }
}
/* Sotto i 430px i tre pulsanti in colonna mangiavano mezzo schermo: la scelta
   principale resta a tutta larghezza, le altre due si dividono la riga. */
@media (max-width: 430px) {
  .cookie-banner__inner { padding: 1.1rem 1.15rem; }
  .cookie-banner__text { font-size: .82rem; }
  .cookie-banner__btn { flex: 1 1 0; padding: .62rem .5rem; }
  .cookie-banner__btn[data-consent="all"] { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .cookie-banner { transition: none; }
}
