*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--kd-surface-page);color:var(--kd-text-primary);font-family:var(--kd-font-text);font-size:var(--kd-size-md);line-height:var(--kd-leading-normal);font-weight:var(--kd-weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--kd-text-link);text-decoration:none;text-underline-offset:3px;transition:color var(--kd-dur-fast) var(--kd-ease-out)}
a:hover{color:var(--kd-text-link-hover);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--kd-focus-ring);outline-offset:2px}
::selection{background:var(--kd-cyan-100);color:var(--kd-graphite-900)}
[data-kd-theme="dark"] ::selection{background:rgba(92,223,245,.32);color:var(--kd-fog-050)}
hr{border:0;border-top:1px solid var(--kd-border-subtle);margin:var(--kd-space-32) 0}
code,kbd,samp,pre{font-family:var(--kd-font-mono);font-size:0.92em}
img,svg,video{display:block;max-width:100%}
button{font-family:inherit}

/* ── Brand surfaces ─────────────────────────────────────────────── */
.kd-void{background:var(--kd-graphite-900);color:var(--kd-fog-050)}
/* Orbit field: the standard dark backdrop. Two off-centre light sources, no banding. */
.kd-orbit-field{background:radial-gradient(110% 85% at 14% -12%,rgba(92,223,245,.13) 0%,rgba(92,223,245,0) 56%),radial-gradient(80% 70% at 94% 6%,rgba(84,214,140,.07) 0%,rgba(84,214,140,0) 60%),var(--kd-graphite-900)}
/* Grid: hairline engineering graph, always under 6% alpha. */
.kd-grid-field{background-image:linear-gradient(to right,var(--kd-alpha-fog-06) 1px,transparent 1px),linear-gradient(to bottom,var(--kd-alpha-fog-06) 1px,transparent 1px);background-size:32px 32px}
.kd-grid-field--light{background-image:linear-gradient(to right,var(--kd-alpha-graphite-04) 1px,transparent 1px),linear-gradient(to bottom,var(--kd-alpha-graphite-04) 1px,transparent 1px);background-size:32px 32px}
/* Horizon rule: the one decorative divider in the system. */
.kd-horizon{height:1px;border:0;margin:0;background:linear-gradient(to right,transparent,var(--kd-border-default) 18%,var(--kd-border-default) 82%,transparent)}
.kd-glass{background:var(--kd-alpha-fog-06);backdrop-filter:blur(var(--kd-blur-glass));-webkit-backdrop-filter:blur(var(--kd-blur-glass));border:1px solid var(--kd-border-subtle)}

/* ── Motion primitives ──────────────────────────────────────────── */
@keyframes kd-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes kd-fade{from{opacity:0}to{opacity:1}}
@keyframes kd-spin{to{transform:rotate(360deg)}}
@keyframes kd-sweep{0%{transform:translateX(-100%)}100%{transform:translateX(320%)}}
@keyframes kd-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.kd-anim-rise{animation:kd-rise var(--kd-dur-slow) var(--kd-ease-out) both}
.kd-anim-fade{animation:kd-fade var(--kd-dur-base) var(--kd-ease-out) both}
@media (prefers-reduced-motion:reduce){*{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
