/* ================================================================== */
/* KEYNETIC: kinetic HUD skin                                          */
/* Layered on top of built.css. Everything here keys off               */
/* --cl-accent (electric blue) and --kn-cyan (secondary accent), both  */
/* set from theme settings in layouts/master.njk.                      */
/* ================================================================== */

@property --kn-angle {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

:root {
  /* Official KEYNETIC wordmark (white on transparent), used as a mask */
  --kn-wordmark: url("data:image/webp;base64,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");
}

.kn {
  --kn-grad: linear-gradient(100deg, rgb(var(--kn-cyan)) 0%, rgb(var(--cl-accent)) 42%, rgb(var(--kn-deep)) 100%);
  --kn-grad-soft: linear-gradient(135deg, rgba(var(--kn-cyan), 0.16), rgba(var(--cl-accent), 0.06));
  --kn-glass: linear-gradient(180deg, rgba(var(--cl-surface-raised), 0.78), rgba(var(--cl-surface), 0.62));
  --kn-edge: rgba(var(--cl-accent), 0.16);
  --kn-edge-hot: rgba(var(--cl-accent), 0.55);
  --kn-chamfer: 10px;
  letter-spacing: -0.005em;
  counter-reset: kn-sec;
}

.kn h1,
.kn h2 {
  letter-spacing: -0.035em;
}

.kn h3 {
  letter-spacing: -0.015em;
}

::selection {
  background: rgba(var(--cl-accent), 0.4);
  color: #fff;
}

html {
  scrollbar-color: rgba(var(--cl-accent), 0.55) rgb(var(--cl-background));
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: rgb(var(--cl-background));
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(rgb(var(--kn-cyan)), rgb(var(--cl-accent)));
  border: 3px solid rgb(var(--cl-background));
  border-radius: 10px;
}

/* Film grain over the whole page: breaks up flat gradients */

.kn-noise {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.055;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ */
/* Page backgrounds (kn_background setting)                            */
/* ------------------------------------------------------------------ */

.kn-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

/* Blades: angled light streaks at the logo's blade angle, sliding slowly */

.kn-bg--blades {
  background:
    radial-gradient(ellipse 60% 45% at 85% 0%, rgba(var(--cl-accent), 0.16), transparent 70%),
    radial-gradient(ellipse 50% 40% at 0% 100%, rgba(var(--kn-deep), 0.22), transparent 70%);
}

/* Each blade is a static rotated track; its ::before streak slides along it
   with transform only, so the animation stays on the compositor. */
.kn-blade {
  position: absolute;
  left: -30%;
  width: 160%;
  height: var(--h, 2px);
  top: var(--y, 50%);
  transform: rotate(-27deg);
  overflow: visible;
}

.kn-blade::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 35%;
  opacity: var(--o, 0.5);
  border-radius: 9999px;
  background: linear-gradient(90deg, transparent, rgba(var(--kn-cyan), 0.9) 45%, rgba(var(--cl-accent), 1) 60%, rgba(var(--kn-deep), 0.5) 85%, transparent);
  filter: blur(var(--b, 0px));
  transform: translateX(-100%);
  will-change: transform;
  animation: kn-blade-slide var(--d, 18s) linear infinite;
  animation-delay: var(--delay, 0s);
}

/* A few wide, soft blades read as the logo's shapes; thin ones as light streaks */
.kn-blade-1 { --y: 8%;  --h: 90px;  --o: 0.09; --d: 34s; --b: 20px; }
.kn-blade-2 { --y: 22%; --h: 2px;   --o: 0.7;  --d: 14s; --delay: -3s; }
.kn-blade-3 { --y: 34%; --h: 1px;   --o: 0.55; --d: 19s; --delay: -11s; }
.kn-blade-4 { --y: 47%; --h: 140px; --o: 0.07; --d: 42s; --delay: -20s; --b: 34px; }
.kn-blade-5 { --y: 58%; --h: 2px;   --o: 0.65; --d: 16s; --delay: -7s; }
.kn-blade-6 { --y: 70%; --h: 1px;   --o: 0.5;  --d: 22s; --delay: -15s; }
.kn-blade-7 { --y: 82%; --h: 60px;  --o: 0.08; --d: 30s; --delay: -9s; --b: 16px; }
.kn-blade-8 { --y: 92%; --h: 2px;   --o: 0.6;  --d: 17s; --delay: -5s; }
.kn-blade-9 { --y: 15%; --h: 1px;   --o: 0.45; --d: 25s; --delay: -18s; }

@keyframes kn-blade-slide {
  from { transform: translateX(-100%); }
  to { transform: translateX(460%); }
}

/* Aurora: large blurred ribbons of brand blue drifting slowly */

.kn-aurora {
  position: absolute;
  border-radius: 50%;
  opacity: 0.9;
  will-change: transform;
  animation: kn-aurora-drift var(--d, 26s) ease-in-out infinite alternate;
}

.kn-aurora-1 {
  --d: 28s;
  top: -12%;
  left: -12%;
  width: 80vw;
  height: 60vh;
  background: radial-gradient(closest-side, rgba(var(--cl-accent), 0.5), rgba(var(--cl-accent), 0.12) 60%, transparent);
  transform: rotate(-18deg);
}

.kn-aurora-2 {
  --d: 34s;
  top: 0%;
  right: -18%;
  width: 65vw;
  height: 55vh;
  background: radial-gradient(closest-side, rgba(var(--kn-cyan), 0.32), rgba(var(--kn-cyan), 0.08) 60%, transparent);
  transform: rotate(12deg);
  animation-delay: -12s;
}

.kn-aurora-3 {
  --d: 40s;
  bottom: -20%;
  left: 15%;
  width: 80vw;
  height: 60vh;
  background: radial-gradient(closest-side, rgba(var(--kn-deep), 0.75), rgba(var(--kn-deep), 0.2) 60%, transparent);
  animation-delay: -20s;
}

@keyframes kn-aurora-drift {
  0% { translate: 0 0; }
  50% { translate: 6vw 4vh; }
  100% { translate: -4vw 2vh; }
}

/* Constellation: canvas drawn by the script in master.njk */

.kn-constellation {
  position: absolute;
  inset: 0;
  -webkit-mask-image: radial-gradient(ellipse 90% 80% at 50% 30%, #000 30%, transparent 85%);
  mask-image: radial-gradient(ellipse 90% 80% at 50% 30%, #000 30%, transparent 85%);
}

@media (prefers-reduced-motion: reduce) {
  .kn-blade::before,
  .kn-aurora {
    animation: none !important;
  }
}

/* ------------------------------------------------------------------ */
/* Brand mark + wordmark                                               */
/* ------------------------------------------------------------------ */

.kn-mark {
  display: inline-flex;
}

.kn-mark svg {
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 10px rgba(var(--cl-accent), 0.45));
}

/* On hover the two blue blades slide out from the K, like a key turning */
.kn-mark polygon {
  transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

a:hover > .kn-mark .kn-mark-top {
  transform: translate(60px, -46px);
}

a:hover > .kn-mark .kn-mark-bot {
  transform: translate(-52px, 46px);
}

/* Official logotype: aspect ratio of the cropped wordmark is 1895 x 202 */
.kn-logotype {
  display: inline-block;
  flex-shrink: 0;
  aspect-ratio: 1895 / 202;
  height: 0.95rem;
  background: rgb(var(--cl-t-primary));
  -webkit-mask: var(--kn-wordmark) center / contain no-repeat;
  mask: var(--kn-wordmark) center / contain no-repeat;
}

.kn-logotype--nav {
  height: 0.9rem;
}

.kn-logotype--footer {
  height: 1.05rem;
}

@media (max-width: 380px) {
  .kn-logotype--nav {
    display: none;
  }
}

.kn-brand:hover .kn-logotype {
  background: linear-gradient(90deg, rgb(var(--cl-t-primary)) 0%, rgb(var(--kn-cyan)) 50%, rgb(var(--cl-t-primary)) 100%) 0 0 / 200% 100%;
  animation: kn-sheen 1.2s ease forwards;
}

@keyframes kn-sheen {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

.kn-wordmark {
  font-family: var(--ff-heading);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ------------------------------------------------------------------ */
/* Typography accents                                                  */
/* ------------------------------------------------------------------ */

.hl-gradient .mk {
  background: var(--kn-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 0 22px rgba(var(--cl-accent), 0.35));
}

.kn .sa-section-eyebrow,
.kn p.sa-hero-eyebrow {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* Auto-numbered HUD marker above every section title: "── // 03 ──" */

.kn .sa-section-header {
  counter-increment: kn-sec;
}

.kn-sec-marker {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  color: rgb(var(--cl-accent));
}

.kn-sec-marker-num::before {
  content: '// ' counter(kn-sec, decimal-leading-zero);
}

.kn-sec-marker-line {
  width: 30px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(var(--cl-accent), 0.9));
}

.kn-sec-marker-line:last-child {
  background: linear-gradient(90deg, rgba(var(--cl-accent), 0.9), transparent);
}

.text-left > .kn-sec-marker .kn-sec-marker-line:first-child,
.text-right > .kn-sec-marker .kn-sec-marker-line:last-child {
  display: none;
}

.kn .sa-section-title {
  font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* Buttons: chamfered primary, glass secondary                         */
/* ------------------------------------------------------------------ */

.kn .sa-btn {
  position: relative;
  overflow: hidden;
  font-family: var(--ff-heading);
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: transform var(--dur) ease, box-shadow var(--dur) ease, background-color var(--dur) ease, border-color var(--dur) ease, color var(--dur) ease;
}

.kn .sa-btn:active {
  transform: translateY(1px) scale(0.99);
}

/* Chamfered primary buttons.
   The fill lives in ::before with a clip-path, and the glow is a drop-shadow
   filter on the button itself, so the shadow follows the angled outline
   instead of showing a rectangle behind the cut corners. */
.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart) {
  --kn-btn: rgb(var(--cl-accent));
  --kn-cut: polygon(var(--kn-chamfer) 0, 100% 0, 100% calc(100% - var(--kn-chamfer)), calc(100% - var(--kn-chamfer)) 100%, 0 100%, 0 var(--kn-chamfer));
  position: relative;
  isolation: isolate;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  font-family: var(--ff-heading);
  font-weight: 600;
  filter: drop-shadow(0 6px 14px rgba(var(--cl-accent), 0.45));
  transition: transform var(--dur) ease, filter var(--dur) ease;
}

.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart)::before,
.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart)::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  -webkit-clip-path: var(--kn-cut);
  clip-path: var(--kn-cut);
  pointer-events: none;
}

.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart)::before {
  background: var(--kn-btn);
  transition: background-color var(--dur) ease;
}

/* Shine sweep, clipped to the same outline */
.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart)::after {
  background: linear-gradient(110deg, transparent 40%, rgba(255, 255, 255, 0.3) 50%, transparent 60%) 150% 0 / 250% 100% no-repeat;
}

.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart:enabled):hover {
  --kn-btn: color-mix(in srgb, rgb(var(--cl-accent)), rgb(var(--kn-cyan)) 22%);
  filter: drop-shadow(0 8px 20px rgba(var(--cl-accent), 0.65));
  transform: translateY(-1px);
}

.kn :is(.sa-btn--primary.sa-btn--solid, .sa-faq-support-card-link, .sa-add-to-cart:enabled):hover::after {
  background-position: -50% 0;
  transition: background-position 0.7s ease;
}

.kn .sa-btn--secondary {
  background-color: rgba(var(--cl-t-primary), 0.035);
  border-color: var(--kn-edge);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.kn .sa-btn--secondary:hover {
  border-color: var(--kn-edge-hot);
  background-color: rgba(var(--cl-accent), 0.08);
  color: rgb(var(--cl-t-primary));
}

/* ------------------------------------------------------------------ */
/* Cards: glass, cursor spotlight, targeting-bracket corners on hover  */
/* ------------------------------------------------------------------ */

.kn .sa-product-card,
.kn .sa-features-item.rounded-card,
.kn .sa-stats-item.rounded-card,
.kn .sa-stats-items.rounded-card,
.kn .sa-categories-item,
.kn .sa-feedback-card,
.kn .sa-faq-item,
.kn .sa-page-faq-item {
  position: relative;
  isolation: isolate;
  background: var(--kn-glass);
  border-color: var(--kn-edge);
  transition: transform calc(var(--dur) * 1.5) ease, border-color calc(var(--dur) * 1.5) ease, box-shadow calc(var(--dur) * 1.5) ease;
}

/* Cursor spotlight (position fed by the pointermove script in master.njk) */
.kn .sa-product-card::before,
.kn .sa-features-item.rounded-card::before,
.kn .sa-stats-item.rounded-card::before,
.kn .sa-categories-item::before,
.kn .sa-feedback-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(280px circle at var(--kn-mx, 50%) var(--kn-my, 0%), rgba(var(--cl-accent), 0.16), transparent 65%);
  opacity: 0;
  transition: opacity calc(var(--dur) * 2) ease;
  pointer-events: none;
}

/* Targeting brackets: eight 1.5px strokes forming four corner Ls */
.kn .sa-product-card::after,
.kn .sa-features-item.rounded-card::after,
.kn .sa-categories-item::after {
  --c: rgb(var(--kn-cyan));
  --l: 14px;
  --w: 1.5px;
  content: '';
  position: absolute;
  inset: -5px;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(var(--c), var(--c)) left top / var(--l) var(--w),
    linear-gradient(var(--c), var(--c)) left top / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) right top / var(--l) var(--w),
    linear-gradient(var(--c), var(--c)) right top / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) left bottom / var(--l) var(--w),
    linear-gradient(var(--c), var(--c)) left bottom / var(--w) var(--l),
    linear-gradient(var(--c), var(--c)) right bottom / var(--l) var(--w),
    linear-gradient(var(--c), var(--c)) right bottom / var(--w) var(--l);
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity calc(var(--dur) * 1.5) ease, transform calc(var(--dur) * 1.5) ease;
}

.kn .sa-product-card:hover,
.kn .sa-features-item.rounded-card:hover,
.kn .sa-categories-item:hover,
.kn .sa-feedback-card:hover {
  border-color: var(--kn-edge-hot);
  box-shadow: 0 24px 60px -28px rgba(var(--cl-accent), 0.75);
}

.kn .sa-product-card:hover,
.kn .sa-categories-item:hover {
  transform: translateY(-4px);
}

.kn .sa-product-card:hover::before,
.kn .sa-features-item.rounded-card:hover::before,
.kn .sa-stats-item.rounded-card:hover::before,
.kn .sa-categories-item:hover::before,
.kn .sa-feedback-card:hover::before {
  opacity: 1;
}

.kn .sa-product-card:hover::after,
.kn .sa-features-item.rounded-card:hover::after,
.kn .sa-categories-item:hover::after {
  opacity: 1;
  transform: scale(1);
}

.kn .sa-product-card-title {
  font-family: var(--ff-heading);
  font-weight: 600;
}

.kn .sa-product-card-price {
  font-family: var(--ff-mono);
  font-weight: 600;
  color: rgb(var(--kn-cyan));
}

.kn .sa-product-card-status,
.kn .sa-product-card-stock {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.kn .sa-product-card-status {
  text-transform: uppercase;
}

.kn .sa-product-card-media img {
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.6s ease;
}

.kn .sa-product-card:hover .sa-product-card-media img {
  transform: scale(1.05);
  filter: saturate(1.15);
}

/* Placeholder media for products without an image */

.kn-media-ph {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 80% at 50% 110%, rgba(var(--cl-accent), 0.35), transparent 70%),
    linear-gradient(rgba(var(--cl-accent), 0.08) 1px, transparent 1px) 0 0 / 22px 22px,
    linear-gradient(90deg, rgba(var(--cl-accent), 0.08) 1px, transparent 1px) 0 0 / 22px 22px,
    rgb(var(--cl-background));
}

.kn-media-ph-mark {
  display: inline-flex;
  width: 3.75rem;
  height: 3.4rem;
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.kn-media-ph-mark .kn-mark svg {
  filter: drop-shadow(0 0 18px rgba(var(--cl-accent), 0.75));
}

.kn .sa-product-card:hover .kn-media-ph-mark {
  transform: scale(1.1);
}

.kn .sa-product-card:hover .kn-media-ph-mark .kn-mark-top {
  transform: translate(60px, -46px);
}

.kn .sa-product-card:hover .kn-media-ph-mark .kn-mark-bot {
  transform: translate(-52px, 46px);
}

.kn-media-ph-key {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  padding: 0.8rem;
  border-radius: calc(var(--radius-input) + 4px);
  color: #fff;
  background: var(--kn-grad);
  box-shadow: 0 0 0 6px rgba(var(--cl-accent), 0.1), 0 0 40px -4px rgba(var(--cl-accent), 0.9);
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.kn .sa-product-card:hover .kn-media-ph-key {
  transform: rotate(-12deg) scale(1.08);
}

.kn-media-ph-name {
  max-width: 85%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--ff-mono);
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--cl-t-primary), 0.55);
}

/* Feature icon tiles */

.kn .sa-features-item [class*="bg-accent-500/10"] {
  position: relative;
  color: rgb(var(--kn-cyan));
  background: var(--kn-grad-soft);
  box-shadow: inset 0 0 0 1px rgba(var(--cl-accent), 0.35), 0 0 26px -6px rgba(var(--cl-accent), 0.65);
}

/* Stats: gradient numerals */

.kn .sa-stats-item .text-h2 {
  font-weight: 700;
  background: var(--kn-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.kn .sa-stats-item .text-t-muted {
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Steps: glowing numbered nodes */

.kn .sa-steps-item > span:first-child,
.kn .sa-steps-icon {
  color: #fff;
  border-color: rgba(var(--cl-accent), 0.6);
  background: var(--kn-grad);
  box-shadow: 0 0 0 5px rgba(var(--cl-accent), 0.1), 0 0 28px -4px rgba(var(--cl-accent), 0.8);
  font-family: var(--ff-mono);
}

.kn .sa-steps--timeline .absolute.w-px {
  background: linear-gradient(rgb(var(--kn-cyan)), rgba(var(--cl-accent), 0.1));
}

/* FAQ */

.kn .sa-faq-item:hover,
.kn .sa-page-faq-item:hover {
  border-color: rgba(var(--cl-accent), 0.35);
}

/* Inputs */

.kn .input:focus,
.kn .input:focus-visible,
.kn .input-stepper:focus-within {
  box-shadow: 0 0 0 3px rgba(var(--cl-accent), 0.18), 0 0 22px -6px rgba(var(--cl-accent), 0.7);
}

/* Announcement bar: gradient instead of flat accent */

.kn .sa-announcement--accent {
  background: var(--kn-grad) !important;
  color: #fff;
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
}

/* ------------------------------------------------------------------ */
/* Navbar: "keynetic" floating HUD bar                                 */
/* ------------------------------------------------------------------ */

.kn-nav {
  position: relative;
  border: 1px solid var(--kn-edge);
  border-radius: calc(var(--radius-card) + 6px);
  background: rgba(var(--cl-background), 0.72);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  box-shadow: 0 18px 50px -26px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

/* Scanning light along the bottom edge */
.kn-nav::after {
  content: '';
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--kn-cyan)), rgb(var(--cl-accent)), transparent) no-repeat;
  background-size: 35% 100%;
  animation: kn-scan 7s ease-in-out infinite;
  pointer-events: none;
}

@keyframes kn-scan {
  0%, 100% { background-position: 0% 0; }
  50% { background-position: 100% 0; }
}

.kn-nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.8rem;
  border-radius: var(--radius-input);
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(var(--cl-t-muted));
  transition: color var(--dur) ease, background-color var(--dur) ease;
}

.kn-nav-link:hover {
  color: rgb(var(--cl-t-primary));
  background: rgba(var(--cl-t-primary), 0.04);
}

.kn-nav-idx {
  font-family: var(--ff-mono);
  font-size: 0.6rem;
  color: rgba(var(--cl-accent), 0.85);
  transition: color var(--dur) ease;
}

.kn-nav-link:hover .kn-nav-idx,
.kn-nav-link.is-active .kn-nav-idx {
  color: rgb(var(--kn-cyan));
}

.kn-nav-link.is-active {
  color: rgb(var(--cl-t-primary));
}

.kn-nav-link.is-active::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -9px;
  width: 22px;
  height: 2px;
  margin-left: -11px;
  border-radius: 2px;
  background: var(--kn-grad);
  box-shadow: 0 0 12px rgb(var(--cl-accent));
}

.kn-nav-status {
  align-items: center;
  gap: 0.5rem;
  margin-right: 0.4rem;
  padding: 0.35rem 0.75rem;
  border: 1px solid rgba(var(--cl-success), 0.28);
  border-radius: 9999px;
  background: rgba(var(--cl-success), 0.07);
  color: rgb(var(--cl-success));
  font-family: var(--ff-mono);
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color var(--dur) ease;
}

.kn-nav-status:hover {
  background: rgba(var(--cl-success), 0.14);
}

.kn-live-dot {
  position: relative;
  display: inline-block;
  width: 7px;
  height: 7px;
  flex-shrink: 0;
  border-radius: 9999px;
  background: rgb(var(--cl-success));
  animation: kn-ping 1.8s ease-out infinite;
}

@keyframes kn-ping {
  0% { box-shadow: 0 0 0 0 rgba(var(--cl-success), 0.65); }
  80%, 100% { box-shadow: 0 0 0 7px rgba(var(--cl-success), 0); }
}

/* ------------------------------------------------------------------ */
/* Hero: "keynetic" variant                                            */
/* ------------------------------------------------------------------ */

.sa-hero--keynetic .sa-hero-title {
  font-size: clamp(2.6rem, 5.6vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
  font-weight: 700;
}

.sa-hero--keynetic .sa-hero-subtitle {
  max-width: 34rem;
  font-size: 1.125rem;
  line-height: 1.65;
}

.sa-hero--keynetic div.sa-hero-eyebrow {
  border-color: rgba(var(--cl-accent), 0.3);
  background: rgba(var(--cl-accent), 0.07);
  color: rgb(var(--cl-t-primary));
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sa-hero--keynetic div.sa-hero-eyebrow > span:first-child {
  background: var(--kn-grad);
}

.kn-hero-copy .sa-hero-actions + div {
  font-family: var(--ff-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.kn-hero-visual {
  position: relative;
  padding: 1.5rem 0.5rem;
}

.kn-hero-visual::before {
  content: '';
  position: absolute;
  inset: 10% 5%;
  z-index: -1;
  border-radius: 9999px;
  background: radial-gradient(circle, rgba(var(--cl-accent), 0.45), rgba(var(--kn-cyan), 0.12) 45%, transparent 70%);
  filter: blur(60px);
}

.kn-orbit {
  position: absolute;
  inset: -6% -4%;
  z-index: -1;
  pointer-events: none;
}

.kn-orbit span {
  position: absolute;
  inset: 0;
  border: 1px dashed rgba(var(--cl-accent), 0.22);
  border-radius: 9999px;
  animation: kn-spin 60s linear infinite;
}

.kn-orbit span + span {
  inset: 12% 10%;
  border-style: solid;
  border-color: rgba(var(--kn-cyan), 0.1);
  border-top-color: rgba(var(--kn-cyan), 0.55);
  animation-duration: 14s;
  animation-direction: reverse;
}

@keyframes kn-spin {
  to { transform: rotate(360deg); }
}

.kn-hero-k {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  width: 118%;
  aspect-ratio: 12 / 11;
  transform: translate(-50%, -50%);
  opacity: 0.07;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, transparent);
  mask-image: radial-gradient(closest-side, #000 40%, transparent);
}

.kn-hero-k .kn-mark svg {
  filter: none;
}

.kn-console {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(var(--cl-accent), 0.25);
  border-radius: calc(var(--radius-card) + 8px);
  background: linear-gradient(180deg, rgba(var(--cl-surface-raised), 0.94), rgba(var(--cl-surface), 0.94));
  box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.95), 0 0 70px -20px rgba(var(--cl-accent), 0.5);
  transform: perspective(1400px) rotateY(-8deg) rotateX(3deg);
  transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.kn-console:hover {
  transform: perspective(1400px) rotateY(0deg) rotateX(0deg);
}

/* Travelling light around the console border */
.kn-console::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 3;
  padding: 1px;
  border-radius: inherit;
  background: conic-gradient(from var(--kn-angle), transparent 0 68%, rgb(var(--kn-cyan)) 80%, rgb(var(--cl-accent)) 88%, transparent 97%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: kn-angle 6s linear infinite;
  pointer-events: none;
}

.kn-console::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: radial-gradient(320px circle at var(--kn-mx, 70%) var(--kn-my, 20%), rgba(var(--cl-accent), 0.12), transparent 65%);
  pointer-events: none;
}

@keyframes kn-angle {
  to { --kn-angle: 360deg; }
}

.kn-console-bar,
.kn-console-body {
  position: relative;
  z-index: 1;
}

.kn-console-bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--cl-border);
  background: rgba(0, 0, 0, 0.18);
}

.kn-console-dots {
  display: inline-flex;
  gap: 6px;
}

.kn-console-dots i {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background: rgba(var(--cl-t-primary), 0.14);
}

.kn-console-dots i:first-child {
  background: rgb(var(--cl-accent));
  box-shadow: 0 0 10px rgb(var(--cl-accent));
}

.kn-console-title {
  flex: 1;
  text-align: center;
  font-family: var(--ff-mono);
  font-size: 0.72rem;
  color: rgb(var(--cl-t-muted));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kn-console-live {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--ff-mono);
  font-size: 0.6rem;
  letter-spacing: 0.16em;
  color: rgb(var(--cl-success));
}

.kn-console-body {
  padding: 1.25rem 1.25rem 1.4rem;
  font-family: var(--ff-mono);
  font-size: 0.8rem;
  line-height: 1.95;
}

.kn-line {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  overflow: hidden;
  color: rgb(var(--cl-t-primary));
}

.kn-prompt {
  color: rgb(var(--kn-cyan));
}

.kn-arg {
  color: rgb(var(--cl-accent));
}

.kn-dim {
  color: rgb(var(--cl-t-muted));
}

.kn-chev {
  color: rgba(var(--cl-accent), 0.9);
}

.kn-leader {
  flex: 1;
  min-width: 1rem;
  margin-bottom: 0.35em;
  border-bottom: 1px dotted rgba(var(--cl-t-muted), 0.35);
}

.kn-ok {
  color: rgb(var(--cl-t-muted));
  font-weight: 600;
  transition: color 0.3s ease;
}

.kn-line.is-done .kn-ok {
  color: rgb(var(--cl-success));
}

.kn-keybox {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  row-gap: 0.2rem;
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border: 1px dashed rgba(var(--cl-accent), 0.45);
  border-radius: calc(var(--radius-input) + 2px);
  background: rgba(var(--cl-accent), 0.06);
}

.kn-keybox-label {
  grid-column: 1 / -1;
  font-size: 0.6rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgb(var(--cl-t-muted));
}

.kn-keybox-key {
  font-size: clamp(1rem, 2.1vw, 1.35rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  white-space: nowrap;
  background: var(--kn-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.kn-keybox-copy {
  width: 1.1rem;
  height: 1.1rem;
  color: rgb(var(--cl-t-muted));
}

.kn-progress {
  height: 3px;
  margin-top: 0.9rem;
  overflow: hidden;
  border-radius: 9999px;
  background: rgba(var(--cl-t-primary), 0.08);
}

.kn-progress span {
  display: block;
  height: 100%;
  background: var(--kn-grad);
  box-shadow: 0 0 12px rgb(var(--cl-accent));
  transition: width 0.5s ease;
}

.kn-console-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.6rem;
  margin-top: 1rem;
}

.kn-console-stat {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--cl-border);
  border-radius: var(--radius-input);
  background: rgba(var(--cl-t-primary), 0.02);
  line-height: 1.4;
}

.kn-console-stat-label {
  font-size: 0.58rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgb(var(--cl-t-muted));
}

.kn-console-stat-value {
  font-family: var(--ff-heading);
  font-size: 0.95rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kn-tone-success { color: rgb(var(--cl-success)); }
.kn-tone-warning { color: rgb(var(--cl-warning)); }
.kn-tone-error { color: rgb(var(--cl-error)); }
.kn-tone-accent { color: rgb(var(--kn-cyan)); }

.kn-float-badge {
  position: absolute;
  left: -0.5rem;
  bottom: -0.25rem;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.95rem 0.5rem 0.5rem;
  border: 1px solid rgba(var(--cl-accent), 0.3);
  border-radius: calc(var(--radius-card) + 4px);
  background: rgba(var(--cl-surface-raised), 0.92);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.9);
  font-size: 0.8rem;
  font-weight: 600;
  animation: kn-float 6s ease-in-out infinite;
}

.kn-float-badge-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-input);
  background: var(--kn-grad);
  color: #fff;
  font-size: 0.8rem;
}

@keyframes kn-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@media (min-width: 1024px) {
  .kn-float-badge {
    left: -2rem;
    bottom: 0.5rem;
  }
}

/* Game marquee under the hero */

.kn-marquee {
  position: relative;
  overflow: hidden;
  padding: 1rem 0;
  border-block: 1px solid var(--kn-edge);
  background: rgba(var(--cl-surface), 0.45);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.kn-marquee-track {
  display: flex;
  width: max-content;
  animation: kn-marquee 40s linear infinite;
}

.kn-marquee:hover .kn-marquee-track {
  animation-play-state: paused;
}

.kn-marquee-item {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-right: 3.25rem;
  font-family: var(--ff-heading);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgb(var(--cl-t-muted));
  transition: color var(--dur) ease;
}

.kn-marquee-item:hover {
  color: rgb(var(--cl-t-primary));
}

.kn-marquee-item i {
  font-size: 0.8em;
  color: rgb(var(--cl-accent));
}

@keyframes kn-marquee {
  to { transform: translateX(-50%); }
}

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */

.kn-footer {
  position: relative;
  overflow: hidden;
  border-top-color: var(--kn-edge);
  background: linear-gradient(180deg, transparent, rgba(var(--cl-accent), 0.05));
}

.kn-footer::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 50%;
  width: min(640px, 80%);
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, rgb(var(--kn-cyan)), rgb(var(--cl-accent)), transparent);
}

.kn-footer h3 {
  font-family: var(--ff-mono);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgb(var(--cl-accent));
}

.kn .sa-footer-link:hover {
  color: rgb(var(--kn-cyan));
}

.kn-footer-wordmark {
  overflow: hidden;
  margin-top: -0.5rem;
  line-height: 0.78;
  text-align: center;
  user-select: none;
  pointer-events: none;
}

.kn-footer-wordmark span {
  display: block;
  transform: translateY(16%);
  white-space: nowrap;
  font-family: var(--ff-heading);
  font-size: clamp(3.5rem, 16.5vw, 15rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: transparent;
  -webkit-text-stroke: 1px rgba(var(--cl-accent), 0.42);
  background: linear-gradient(180deg, rgba(var(--cl-accent), 0.26), transparent 80%);
  -webkit-background-clip: text;
  background-clip: text;
}

.kn-footer-wordmark .kn-footer-logotype {
  display: block;
  width: min(92%, 1400px);
  margin: 1.5rem auto 0;
  aspect-ratio: 1895 / 202;
  transform: translateY(22%);
  -webkit-text-stroke: 0;
  background: linear-gradient(180deg, rgba(var(--cl-accent), 0.38), rgba(var(--kn-deep), 0.05) 85%);
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-mask: var(--kn-wordmark) center / contain no-repeat;
  mask: var(--kn-wordmark) center / contain no-repeat;
}

/* ------------------------------------------------------------------ */
/* Motion safety                                                       */
/* ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
  .kn-nav::after,
  .kn-live-dot,
  .kn-orbit span,
  .kn-console::before,
  .kn-float-badge,
  .kn-marquee-track {
    animation: none !important;
  }

  .kn-console {
    transform: none;
  }
}