.nx-contact{
  --navy:#181526;
  --deep:#131020;
  --violet:#2b1e51;
  --purple:#9e7bb7;
  --glow:#c9a3ea;
  --light:#e9eff9;
  --muted:#9b91b3;
  --rose:#ef7f95;

  --line:rgba(158,123,183,.22);
  --line-soft:rgba(158,123,183,.12);
  --line-strong:rgba(158,123,183,.5);
  --panel:rgba(233,239,249,.022);

  --max:1160px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);

  position:relative;width:100%;overflow:hidden;isolation:isolate;
  background:var(--navy);color:var(--light);
  -webkit-font-smoothing:antialiased;
}
.nx-contact *,.nx-contact *::before,.nx-contact *::after{box-sizing:border-box}
.nx-contact h1,.nx-contact h2,.nx-contact h3,.nx-contact p{margin:0}
.nx-contact canvas{display:block}

.nx-contact .nx-ct-section{position:relative;padding:clamp(72px,9vw,120px) 0}
.nx-contact .nx-ct-section[id]{scroll-margin-top:110px}
.nx-contact .nx-ct-inner{width:min(var(--max),calc(100% - 48px));margin:0 auto;position:relative;z-index:2}

.nx-contact .nx-ct-label{
  display:inline-flex;align-items:center;gap:var(--nx-eyebrow-gap);padding:var(--nx-eyebrow-pad);
  border:1px solid var(--nx-eyebrow-border);border-radius:999px;
  color:var(--nx-eyebrow-color);background:var(--nx-eyebrow-bg);
  font:var(--nx-badge-font);letter-spacing:var(--nx-eyebrow-tracking);text-transform:uppercase;
}
.nx-contact .nx-ct-label::before{
  content:"";width:var(--nx-eyebrow-dot);height:var(--nx-eyebrow-dot);border-radius:50%;
  background:var(--nx-eyebrow-dot-color);box-shadow:var(--nx-eyebrow-dot-glow);
}
.nx-contact .nx-ct-label.nx-in-view::before,
.nx-contact .nx-in-view .nx-ct-label::before{animation:nxDotBreath 2.1s var(--ease-soft) .35s 2}

.nx-contact .nx-ct-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;
  min-height:52px;padding:0 28px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line-strong);text-decoration:none;
  font-size:14px;font-weight:600;color:var(--light);
  transition:transform .35s var(--ease),background .35s var(--ease),
             border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.nx-contact .nx-ct-btn:hover{transform:translateY(-2px)}
.nx-contact .nx-ct-btn:active{transform:translateY(0)}
.nx-contact .nx-ct-btn-primary{
  background:linear-gradient(110deg,var(--violet),var(--purple));
  border-color:rgba(158,123,183,.6);box-shadow:0 12px 30px rgba(0,0,0,.2);
}
.nx-contact .nx-ct-btn-primary:hover{box-shadow:0 14px 34px rgba(158,123,183,.24)}
.nx-contact .nx-ct-btn-ghost{background:transparent}
.nx-contact .nx-ct-btn-ghost:hover{border-color:var(--purple);background:rgba(158,123,183,.1)}
.nx-contact .nx-ct-arrow{font-size:15px;transition:transform .35s var(--ease)}
.nx-contact .nx-ct-btn:hover .nx-ct-arrow{transform:translateX(4px)}

.nx-contact .nx-ct-hero{
  min-height:min(760px,100svh);
  padding:150px 0 110px;
  display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(180deg,var(--deep) 0%,var(--navy) 78%);
}
.nx-contact .nx-ct-signal{
  position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 76%,transparent);
          mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 76%,transparent);
}
.nx-contact .nx-ct-hero::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(52% 48% at 50% 44%,rgba(43,30,81,.5),transparent 74%),
    linear-gradient(180deg,transparent 0%,transparent 64%,var(--navy) 100%);
}
.nx-contact .nx-ct-hero-inner{max-width:860px;margin:0 auto;text-align:center}

.nx-contact .nx-ct-title{
  margin:26px auto 0;max-width:17ch;
  font-size:clamp(38px,5.6vw,64px);line-height:1.1;letter-spacing:-.035em;font-weight:700;
  text-wrap:balance;
}
.nx-contact .nx-ct-title .nx-word{
  display:inline-block;opacity:0;transform:translateY(.42em);
  animation:nxWordIn .82s var(--ease-soft) forwards;
  animation-delay:calc(var(--nx-w,0) * .055s + .18s);
}
.nx-contact .nx-ct-focal{font-style:normal;color:var(--glow)}
.nx-contact .nx-ct-focal .nx-word{
  background:linear-gradient(100deg,var(--purple) 0%,#efe4fb 46%,var(--glow) 62%,var(--purple) 100%);
  background-size:260% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.nx-contact .nx-ct-title.nx-is-split .nx-ct-focal .nx-word{
  animation:nxWordIn .82s var(--ease-soft) forwards,
            nxCtTune 1.5s var(--ease-soft) both;
  animation-delay:calc(var(--nx-w,0) * .055s + .18s),var(--nx-focal,1s);
}
@keyframes nxCtTune{
  0%  {background-position:100% 0;filter:blur(7px)}
  55% {filter:blur(0)}
  100%{background-position:0 0;filter:blur(0) drop-shadow(0 0 13px rgba(201,163,234,.42))}
}

.nx-contact .nx-ct-sub{
  margin:24px auto 0;max-width:54ch;
  font-size:clamp(15px,1.5vw,17px);line-height:1.75;color:var(--muted);text-wrap:pretty;
}
.nx-contact .nx-ct-actions{
  margin-top:38px;display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
}

.nx-contact .nx-ct-strip{
  margin-top:52px;display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:0 18px;
  font:var(--nx-eyebrow-font);letter-spacing:.16em;text-transform:uppercase;
  color:#7d7592;
}
.nx-contact .nx-ct-strip a{
  display:inline-flex;align-items:center;gap:8px;padding:6px 2px;
  text-decoration:none;color:inherit;transition:color .35s var(--ease);
}
.nx-contact .nx-ct-strip a::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--line-strong);
  transition:background .35s var(--ease),box-shadow .35s var(--ease);
}
.nx-contact .nx-ct-strip a:hover{color:var(--light)}
.nx-contact .nx-ct-strip a:hover::before{background:var(--glow);box-shadow:0 0 9px var(--glow)}
.nx-contact .nx-ct-strip i{width:1px;height:11px;background:var(--line-soft);display:block}

.nx-contact .nx-ct-intro{padding-top:0;padding-bottom:clamp(30px,5vw,54px);text-align:center}
.nx-contact .nx-ct-intro-inner{max-width:820px;margin:0 auto}
.nx-contact .nx-ct-h2{
  font-size:var(--nx-h2-size);line-height:var(--nx-h2-line);
  letter-spacing:var(--nx-h2-tracking);font-weight:var(--nx-h2-weight);
  margin:0 auto;max-width:18ch;text-wrap:balance;
}
.nx-contact .nx-ct-accent{
  background:linear-gradient(96deg,var(--glow),var(--purple));
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.nx-contact .nx-ct-intro-copy{
  margin:22px auto 0;max-width:58ch;font-size:15px;line-height:1.8;color:var(--muted);text-wrap:pretty;
}

.nx-contact .nx-ct-form-section{padding-top:clamp(24px,4vw,44px)}
.nx-contact .nx-ct-form-card{
  position:relative;overflow:hidden;isolation:isolate;
  max-width:960px;margin:0 auto;
  border:1px solid var(--line);border-radius:26px;
  padding:clamp(28px,4vw,46px);
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(43,30,81,.5),transparent 68%),
    rgba(24,21,38,.62);
  transition:border-color .6s var(--ease);
}
.nx-contact .nx-ct-form-card:hover{border-color:rgba(158,123,183,.34)}
.nx-contact .nx-ct-form-card::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity .5s var(--ease);
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,40%),rgba(201,163,234,.09),transparent 62%);
}
.nx-contact .nx-ct-form-card.nx-is-lit::after{opacity:1}
.nx-contact .nx-ct-form-card > *{position:relative;z-index:1}

.nx-contact .nx-ct-form-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid var(--line-soft);
}
.nx-contact .nx-ct-form-title{
  font-size:clamp(21px,2.4vw,27px);font-weight:700;letter-spacing:-.02em;line-height:1.2;
}
.nx-contact .nx-ct-form-note{
  margin-top:7px;font:500 11px/1.5 'JetBrains Mono',monospace;letter-spacing:.11em;
  text-transform:uppercase;color:#7d7592;
}
.nx-contact .nx-ct-meter{display:flex;align-items:center;gap:12px;flex:none}
.nx-contact .nx-ct-meter-track{
  position:relative;width:104px;height:2px;border-radius:2px;background:var(--line-soft);overflow:hidden;
}
.nx-contact .nx-ct-meter-fill{
  position:absolute;left:0;top:0;height:100%;width:0;border-radius:2px;
  background:linear-gradient(90deg,var(--purple),var(--glow));
  box-shadow:0 0 10px rgba(201,163,234,.5);
  transition:width .5s var(--ease);
}
.nx-contact .nx-ct-meter-count{
  font:var(--nx-eyebrow-font);letter-spacing:.1em;color:var(--muted);
  min-width:36px;text-align:right;
}

.nx-contact .nx-ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.nx-contact .nx-ct-field{display:flex;flex-direction:column;gap:9px;position:relative}
.nx-contact .nx-ct-field-wide{grid-column:1 / -1}

.nx-contact .nx-ct-field-label{
  display:flex;align-items:center;gap:10px;
  font:var(--nx-eyebrow-font);letter-spacing:.14em;text-transform:uppercase;
  color:#8a819f;transition:color .35s var(--ease);
}
.nx-contact .nx-ct-field-index{
  color:var(--purple);opacity:.7;transition:opacity .35s var(--ease),color .35s var(--ease);
}
.nx-contact .nx-ct-optional{
  margin-left:auto;color:#8a819f;letter-spacing:.1em;text-transform:none;font-size:11px;
}
.nx-contact .nx-ct-field.nx-is-focus .nx-ct-field-label{color:var(--light)}
.nx-contact .nx-ct-field.nx-is-focus .nx-ct-field-index{color:var(--glow);opacity:1}

.nx-contact .nx-ct-input,
.nx-contact .nx-ct-select,
.nx-contact .nx-ct-textarea{
  width:100%;min-height:54px;padding:15px 17px;
  border:1px solid var(--line);border-radius:13px;
  background:rgba(20,17,32,.55);
  color:var(--light);font-family:'Montserrat',sans-serif;font-size:14.5px;line-height:1.6;
  transition:border-color .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease);
  -webkit-appearance:none;appearance:none;
}
.nx-contact .nx-ct-input::placeholder,
.nx-contact .nx-ct-textarea::placeholder{color:var(--muted)}
.nx-contact .nx-ct-input:hover,
.nx-contact .nx-ct-select:hover,
.nx-contact .nx-ct-textarea:hover{border-color:rgba(158,123,183,.38)}
.nx-contact .nx-ct-input:focus,
.nx-contact .nx-ct-select:focus,
.nx-contact .nx-ct-textarea:focus{
  outline:none;
  border-color:rgba(201,163,234,.75);
  background:rgba(28,23,45,.72);
  box-shadow:0 0 0 3px rgba(158,123,183,.13),0 0 22px -6px rgba(201,163,234,.5);
}
.nx-contact .nx-ct-textarea{min-height:150px;resize:vertical}

.nx-contact .nx-ct-select-wrap{position:relative}
.nx-contact .nx-ct-select{padding-right:44px;cursor:pointer}
.nx-contact .nx-ct-select option{background:#1c1730;color:var(--light)}
.nx-contact .nx-ct-select-wrap::after{
  content:"";position:absolute;right:18px;top:50%;width:7px;height:7px;
  border-right:1.5px solid var(--purple);border-bottom:1.5px solid var(--purple);
  transform:translateY(-70%) rotate(45deg);pointer-events:none;
  transition:border-color .35s var(--ease);
}
.nx-contact .nx-ct-field.nx-is-focus .nx-ct-select-wrap::after{border-color:var(--glow)}

.nx-contact .nx-ct-form-foot{
  display:flex;align-items:center;justify-content:flex-end;gap:20px;flex-wrap:wrap;
  margin-top:30px;padding-top:26px;border-top:1px solid var(--line-soft);
}
.nx-contact .nx-ct-form-foot .nx-ct-btn{min-width:200px}

.nx-contact .nx-ct-privacy{
  margin:16px 0 0;
  font:400 12.5px/1.65 'Montserrat',sans-serif;color:var(--muted);
}
.nx-contact .nx-ct-privacy a{
  color:var(--glow);text-decoration:underline;text-underline-offset:2px;
  transition:color .25s var(--ease);
}
.nx-contact .nx-ct-privacy a:hover{color:var(--light)}
.nx-contact .nx-ct-privacy a:focus-visible{
  outline:2px solid var(--purple);outline-offset:3px;border-radius:2px;
}

.nx-contact .nx-ct-hp{
  position:absolute !important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
  left:-9999px;top:auto;pointer-events:none;
}

.nx-contact .nx-ct-error{
  margin:0;font:500 11.5px/1.45 'Montserrat',sans-serif;color:var(--rose);
  min-height:0;transition:opacity .25s var(--ease);
}
.nx-contact .nx-ct-error:empty{display:none}

.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-input,
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-select,
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-textarea{
  border-color:rgba(232,101,127,.62);
  background:rgba(44,20,29,.4);
}
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-input:focus,
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-select:focus,
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-textarea:focus{
  border-color:rgba(232,101,127,.85);
  box-shadow:0 0 0 3px rgba(232,101,127,.14),0 0 22px -6px rgba(232,101,127,.45);
}
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-field-index{color:var(--rose);opacity:1}
.nx-contact .nx-ct-field.nx-is-invalid .nx-ct-select-wrap::after{border-color:var(--rose)}

.nx-contact .nx-ct-status{
  order:-1;margin:0 auto 0 0;flex:1 1 240px;
  font:500 12.5px/1.5 'Montserrat',sans-serif;color:var(--muted);
}
.nx-contact .nx-ct-status:empty{display:none}
.nx-contact .nx-ct-status.nx-is-error{color:var(--rose)}
.nx-contact .nx-ct-status.nx-is-success{color:var(--glow)}
.nx-contact .nx-ct-status a{color:inherit;text-decoration:underline}

.nx-contact .nx-ct-btn[disabled]{opacity:.55;cursor:default;pointer-events:none}
.nx-contact .nx-ct-form-card.nx-is-sending .nx-ct-btn .nx-ct-arrow{
  animation:nxCtArrow 1s var(--ease-soft) infinite;
}

.nx-contact .nx-ct-form-card.nx-is-sent .nx-ct-input,
.nx-contact .nx-ct-form-card.nx-is-sent .nx-ct-select,
.nx-contact .nx-ct-form-card.nx-is-sent .nx-ct-textarea{
  opacity:.55;cursor:default;border-color:var(--line-soft);
}
.nx-contact .nx-ct-form-card.nx-is-sent .nx-ct-meter-fill{
  background:linear-gradient(90deg,var(--glow),var(--glow));
}

.nx-contact .nx-ct-channels{padding-bottom:clamp(80px,10vw,130px)}
.nx-contact .nx-ct-channels-head{text-align:center;margin-bottom:clamp(34px,4vw,52px)}
.nx-contact .nx-ct-channels-head .nx-ct-label{margin-bottom:20px}

.nx-contact .nx-ct-bus{position:relative}
.nx-contact .nx-ct-bus::before{
  content:"";position:absolute;left:0;right:0;top:64px;height:1px;
  background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent);
  transform:scaleX(0);transform-origin:center;
  transition:transform 1.2s var(--ease) .1s;
}
.nx-contact .nx-ct-bus.nx-in-view::before{transform:scaleX(1)}

.nx-contact .nx-ct-channel-grid{
  position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
}
.nx-contact .nx-ct-channel{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  padding:30px 26px 28px;
  border:1px solid var(--line);border-radius:20px;
  background:var(--panel);
  text-decoration:none;color:inherit;
  transition:border-color .45s var(--ease),transform .45s var(--ease),
             background .45s var(--ease),box-shadow .45s var(--ease);
}
.nx-contact .nx-ct-channel::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  transition:opacity .45s var(--ease);
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(201,163,234,.12),transparent 64%);
}
.nx-contact .nx-ct-channel:hover{
  border-color:rgba(201,163,234,.44);transform:translateY(-3px);
  background:rgba(233,239,249,.038);
  box-shadow:0 20px 44px -28px rgba(201,163,234,.6);
}
.nx-contact .nx-ct-channel:hover::after{opacity:1}
.nx-contact .nx-ct-channel > *{position:relative;z-index:1}

.nx-contact .nx-ct-channel-top{display:flex;align-items:center;gap:14px;width:100%}
.nx-contact .nx-ct-channel-icon{
  width:44px;height:44px;border-radius:13px;flex:none;
  display:grid;place-items:center;
  border:1px solid var(--line);background:rgba(24,21,38,.9);
  color:var(--purple);
  transition:color .45s var(--ease),border-color .45s var(--ease),background .45s var(--ease);
}
.nx-contact .nx-ct-channel-icon svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.nx-contact .nx-ct-channel:hover .nx-ct-channel-icon{
  color:var(--light);border-color:rgba(201,163,234,.5);
  background:linear-gradient(135deg,var(--violet),var(--purple));
}
.nx-contact .nx-ct-channel-index{
  margin-left:auto;font:var(--nx-eyebrow-font);letter-spacing:.14em;color:#8a819f;
  transition:color .45s var(--ease);
}
.nx-contact .nx-ct-channel:hover .nx-ct-channel-index{color:var(--purple)}

.nx-contact .nx-ct-channel-label{
  font:var(--nx-eyebrow-font);letter-spacing:.14em;text-transform:uppercase;color:#8a819f;
}
.nx-contact .nx-ct-channel-value{
  font-size:16px;font-weight:600;letter-spacing:-.01em;line-height:1.45;color:var(--light);
}
.nx-contact .nx-ct-channel-go{
  display:inline-flex;align-items:center;gap:8px;margin-top:2px;
  font:600 11px/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
  color:var(--glow);opacity:0;transform:translateY(4px);
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.nx-contact .nx-ct-channel:hover .nx-ct-channel-go{opacity:1;transform:translateY(0)}

@media(max-width:1040px){
  .nx-contact .nx-ct-channel-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:960px){
  .nx-contact .nx-ct-hero{min-height:0;padding:132px 0 96px}
  .nx-contact .nx-ct-channel-grid{grid-template-columns:1fr;gap:14px}
  .nx-contact .nx-ct-bus::before{display:none}
}
@media(max-width:720px){
  .nx-contact .nx-ct-inner{width:calc(100% - 34px)}
  .nx-contact .nx-ct-grid{grid-template-columns:1fr;gap:19px}
  .nx-contact .nx-ct-form-head{align-items:flex-start;flex-direction:column;gap:16px}
  .nx-contact .nx-ct-form-foot{align-items:stretch}
  .nx-contact .nx-ct-form-foot .nx-ct-btn{width:100%}
  .nx-contact .nx-ct-input,
  .nx-contact .nx-ct-select,
  .nx-contact .nx-ct-textarea{font-size:16px}
}
@media(max-width:620px){
  .nx-contact .nx-ct-inner{width:calc(100% - 30px)}
  .nx-contact .nx-ct-hero{padding:116px 0 78px}
  .nx-contact .nx-ct-title{max-width:14ch}
  .nx-contact .nx-ct-actions{display:grid;grid-template-columns:1fr}
  .nx-contact .nx-ct-strip{margin-top:38px;gap:0 12px;font-size:11px}
  .nx-contact .nx-ct-form-card{border-radius:20px}
  .nx-contact .nx-ct-channel{padding:24px 20px}
}

@media(prefers-reduced-motion:reduce){
  .nx-contact *,.nx-contact *::before,.nx-contact *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;transition-delay:0s!important;
  }
  .nx-contact [data-reveal]{opacity:1;transform:none}
  .nx-contact .nx-ct-title .nx-word{opacity:1;transform:none}
  .nx-contact .nx-ct-focal .nx-word{background-position:0 0;filter:none}
  .nx-contact .nx-ct-bus::before{transform:scaleX(1)}
}

@keyframes nxCtArrow{
  0%,100%{transform:translateX(0);opacity:.75}
  50%    {transform:translateX(4px);opacity:1}
}
