/* CEX角落 · vault skin */
:root {
  --nk-void: #0b0d10;
  --nk-deep: #0e1115;
  --nk-plate: #12161c;
  --nk-plate-up: #181d25;
  --nk-rim: #252c36;
  --nk-rim-up: #364050;
  --nk-ink: #e3e8ee;
  --nk-ink-soft: #b3bcc8;
  --nk-dim: #77818f;
  --nk-blue: #5b8def;
  --nk-blue-up: #93b4f6;
  --nk-blue-glow: rgba(91, 141, 239, .55);
  --nk-amber: #d9a441;
  --nk-read: 44rem;
  --nk-lock: calc(44rem + 6rem);
  --nk-wide: 58rem;
  --nk-gut: 1.25rem;
  --nk-hero-h: clamp(520px, 68vh, 660px);
  --nk-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --nk-head: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --nk-text: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  --nk-brush:
    repeating-linear-gradient(90deg, rgba(255,255,255,.028) 0 1px, transparent 1px 3px, rgba(255,255,255,.012) 3px 4px, transparent 4px 7px),
    linear-gradient(180deg, #20262f 0%, #161b22 100%);
  --nk-rivet: radial-gradient(circle, #8a95a4 0 1.2px, #3b4450 1.8px, #1a1f26 2.6px, transparent 3.2px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body.nk-body {
  margin: 0;
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(91,141,239,.07), transparent 60%),
    var(--nk-void);
  color: var(--nk-ink);
  font: 400 1.0625rem/1.85 var(--nk-text);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::selection { background: rgba(91,141,239,.38); color: #fff; }
img { max-width: 100%; height: auto; }
a { color: var(--nk-blue-up); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: rgba(147,180,246,.45); }
a:hover { color: #c4d6fb; text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--nk-blue); outline-offset: 3px; }

.nk-skip { position: absolute; left: -999px; top: 8px; z-index: 99; background: var(--nk-blue); color: #08101e; padding: .4rem .8rem; font: 600 .875rem var(--nk-mono); text-decoration: none; }
.nk-skip:focus { left: 8px; }

/* ── top strip ───────────────────────── */
.nk-top { border-bottom: 1px solid var(--nk-rim); background: var(--nk-void); }
.nk-top-in { width: min(75rem, 100% - 2 * var(--nk-gut)); margin: 0 auto; height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nk-mark { display: inline-flex; align-items: center; gap: .7rem; color: var(--nk-ink); text-decoration: none; }
.nk-mark:hover { color: #fff; }
.nk-mark-ico { color: var(--nk-blue); flex: none; }
.nk-mark-txt { display: flex; flex-direction: column; font: 700 1.0625rem/1.15 var(--nk-head); letter-spacing: .04em; }
.nk-mark-txt small { font: 500 .6875rem/1.4 var(--nk-mono); letter-spacing: .12em; color: var(--nk-dim); }
.nk-nav { display: flex; gap: .25rem; }
.nk-nav a { position: relative; padding: .45rem .85rem; font: 500 .9375rem/1 var(--nk-head); color: var(--nk-ink-soft); text-decoration: none; }
.nk-nav a:hover { color: #fff; }
.nk-nav a[aria-current="page"],
[data-page="about"] .nk-nav a[data-k="about"],
[data-page="contact"] .nk-nav a[data-k="contact"] { color: #fff; }
.nk-nav a[aria-current="page"]::after,
[data-page="about"] .nk-nav a[data-k="about"]::after,
[data-page="contact"] .nk-nav a[data-k="contact"]::after { content: ""; position: absolute; left: .85rem; right: .85rem; bottom: -.95rem; height: 2px; background: var(--nk-blue); box-shadow: 0 0 10px var(--nk-blue-glow); }

/* ── protection gauge bar (sticky) ───── */
.nk-bar {
  position: sticky; top: 0; z-index: 40;
  background: rgba(11,13,16,.93);
  -webkit-backdrop-filter: blur(10px) saturate(1.2); backdrop-filter: blur(10px) saturate(1.2);
  border-bottom: 1px solid var(--nk-rim);
}
.nk-bar::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 5px; pointer-events: none;
  background:
    repeating-linear-gradient(90deg, rgba(91,141,239,.35) 0 1px, transparent 1px 48px) bottom / 100% 5px no-repeat,
    repeating-linear-gradient(90deg, rgba(119,129,143,.35) 0 1px, transparent 1px 8px) bottom / 100% 2px no-repeat;
}
.nk-bar-in { width: min(75rem, 100% - 2 * var(--nk-gut)); margin: 0 auto; min-height: 3.5rem; display: flex; align-items: center; gap: 1.25rem; }
.nk-gauge { flex: 1; min-width: 0; display: flex; align-items: center; gap: 1.1rem; }
.nk-gauge[hidden] { display: none; }
.nk-gauge-label { margin: 0; flex: none; font: 500 .75rem/1 var(--nk-mono); letter-spacing: .1em; color: var(--nk-dim); white-space: nowrap; }
.nk-gauge-num { font-size: 1.25rem; font-weight: 600; color: var(--nk-blue-up); margin-left: .35rem; font-variant-numeric: tabular-nums; }
.nk-gauge-label span { color: var(--nk-dim); }
.nk-level { flex: 1; min-width: 0; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 5px; }
.nk-level a {
  position: relative; display: flex; align-items: center; gap: .55rem; height: 2.25rem; padding: 0 .7rem; overflow: hidden;
  border: 1px solid var(--nk-rim); background: linear-gradient(180deg, #13171d, #0f1216);
  color: var(--nk-dim); text-decoration: none; font: 500 .8125rem/1 var(--nk-head); white-space: nowrap;
  transition: border-color .35s, color .35s, background .35s;
}
.nk-level a::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: #232a33; transition: background .35s, box-shadow .35s; }
.nk-level-no { font: 600 .6875rem/1 var(--nk-mono); letter-spacing: .06em; color: #4f5866; transition: color .35s; }
.nk-level-name { overflow: hidden; text-overflow: ellipsis; }
.nk-level a:hover { color: var(--nk-ink); border-color: var(--nk-rim-up); }
.nk-level .is-lit a { color: var(--nk-ink); background: linear-gradient(180deg, rgba(91,141,239,.16), rgba(91,141,239,.04)); border-color: rgba(91,141,239,.38); }
.nk-level .is-lit a::before { background: var(--nk-blue); box-shadow: 0 0 12px var(--nk-blue-glow); }
.nk-level .is-lit .nk-level-no { color: var(--nk-blue-up); }
.nk-level .is-here a { border-color: var(--nk-blue); color: #fff; }

.nk-index { position: relative; flex: none; margin-left: auto; }
.nk-index summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: .55rem;
  height: 2.25rem; padding: 0 .9rem; border: 1px solid var(--nk-rim-up); background: var(--nk-plate);
  font: 500 .8125rem/1 var(--nk-mono); letter-spacing: .06em; color: var(--nk-ink-soft); white-space: nowrap;
}
.nk-index summary::-webkit-details-marker { display: none; }
.nk-index summary:hover, .nk-index[open] summary { color: #fff; border-color: var(--nk-blue); }
.nk-index-ico { width: 14px; height: 10px; background: linear-gradient(currentColor, currentColor) 0 0 / 100% 2px no-repeat, linear-gradient(currentColor, currentColor) 0 4px / 70% 2px no-repeat, linear-gradient(currentColor, currentColor) 0 8px / 100% 2px no-repeat; }
.nk-index-panel {
  position: absolute; right: 0; top: calc(100% + .7rem); width: min(26rem, calc(100vw - 2 * var(--nk-gut)));
  max-height: min(78vh, 42rem); overflow: auto; padding: 1rem 0 .6rem;
  background: var(--nk-plate); border: 1px solid var(--nk-rim-up);
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.85), 0 0 0 1px #07080a;
}
.nk-index-head { margin: 0 0 .5rem; padding: 0 1.1rem .7rem; border-bottom: 1px solid var(--nk-rim); font: 500 .6875rem/1 var(--nk-mono); letter-spacing: .16em; color: var(--nk-dim); }
.nk-index-list { list-style: none; margin: 0; padding: 0; counter-reset: nk-ix; }
.nk-index-list li { counter-increment: nk-ix; }
.nk-index-list a { display: grid; grid-template-columns: 2.2rem 1fr; gap: .4rem; padding: .55rem 1.1rem; font: 400 .875rem/1.55 var(--nk-text); color: var(--nk-ink-soft); text-decoration: none; border-left: 2px solid transparent; }
.nk-index-list a::before { content: counter(nk-ix, decimal-leading-zero); font: 500 .75rem/1.9 var(--nk-mono); color: #525c6a; }
.nk-index-list a:hover { background: var(--nk-plate-up); color: #fff; }
.nk-index-list a.is-here { color: #fff; border-left-color: var(--nk-blue); background: rgba(91,141,239,.08); }
.nk-index-list a.is-here::before { color: var(--nk-blue-up); }

/* ── hero ─────────────────────────────── */
.nk-main { position: relative; }
.nk-door { position: absolute; left: 0; right: 0; top: 0; height: var(--nk-hero-h); overflow: hidden; }
.nk-door img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 72% 50%; }
.nk-door::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(11,13,16,.97) 0%, rgba(11,13,16,.82) 34%, rgba(11,13,16,.15) 60%, rgba(11,13,16,0) 75%),
    linear-gradient(180deg, rgba(11,13,16,0) 62%, var(--nk-void) 100%);
}
.nk-doc { position: relative; counter-reset: nk-sec nk-fig nk-q; }
.nk-doc > header[data-part="hero"] {
  position: relative; z-index: 1;
  width: min(75rem, 100% - 2 * var(--nk-gut)); min-height: var(--nk-hero-h); margin: 0 auto;
  display: flex; flex-direction: column; justify-content: center; padding: 3rem 0 4.5rem;
}
header[data-part="hero"] > * { max-width: 38rem; }
[data-part="kicker"] {
  display: inline-flex; align-self: flex-start; align-items: center; gap: .6rem; margin: 0 0 1.6rem;
  padding: .45rem .8rem; border: 1px solid var(--nk-rim-up); background: rgba(14,17,21,.7);
  font: 500 .78rem/1 var(--nk-mono); letter-spacing: .12em; color: var(--nk-blue-up);
}
[data-part="kicker"]::before { content: ""; width: 7px; height: 7px; background: var(--nk-blue); box-shadow: 0 0 8px var(--nk-blue-glow); }
header[data-part="hero"] h1 {
  margin: 0 0 1.4rem; font: 700 clamp(2.1rem, 1.2rem + 2.6vw, 3.35rem)/1.22 var(--nk-head);
  letter-spacing: .01em; color: #f4f7fb; text-wrap: balance;
}
[data-part="dek"] { margin: 0 0 1.9rem; font-size: 1.15rem; line-height: 1.85; color: var(--nk-ink-soft); }
[data-part="meta"] {
  margin: 0; align-self: flex-start; padding: .7rem 1rem .7rem .9rem;
  border: 1px solid var(--nk-rim); border-left: 3px solid var(--nk-blue);
  background: rgba(14,17,21,.78); font: 500 .8125rem/1.6 var(--nk-mono); letter-spacing: .03em; color: var(--nk-ink-soft);
}

/* ── reading column ───────────────────── */
.nk-doc > section, .nk-doc > aside { width: min(var(--nk-read), 100% - 2 * var(--nk-gut)); margin: 0 auto; scroll-margin-top: 5.5rem; }
.nk-doc > section { counter-increment: nk-sec; margin-top: 5.5rem; }
.nk-doc > section:not([data-lock])::before {
  content: ""; display: block; height: 12px; margin-bottom: 1.6rem;
  background:
    repeating-linear-gradient(90deg, var(--nk-rim-up) 0 1px, transparent 1px 64px) left bottom / 100% 12px no-repeat,
    repeating-linear-gradient(90deg, var(--nk-rim) 0 1px, transparent 1px 8px) left bottom / 100% 6px no-repeat,
    linear-gradient(var(--nk-rim), var(--nk-rim)) left bottom / 100% 1px no-repeat;
}
.nk-doc h2 { margin: 0 0 1.5rem; font: 700 clamp(1.5rem, 1.1rem + 1.1vw, 1.95rem)/1.38 var(--nk-head); letter-spacing: .01em; color: #f2f5f9; text-wrap: pretty; }
.nk-doc > section:not([data-lock]) > h2::before { content: "§ " counter(nk-sec, decimal-leading-zero); display: block; margin-bottom: .7rem; font: 500 .75rem/1 var(--nk-mono); letter-spacing: .16em; color: var(--nk-blue-up); }
.nk-doc h3 { margin: 2.6rem 0 1rem; font: 700 1.2rem/1.5 var(--nk-head); color: #eef2f6; display: flex; align-items: baseline; gap: .7rem; }
.nk-doc h3::before { content: ""; flex: none; width: 9px; height: 9px; border: 1.5px solid var(--nk-blue); transform: translateY(-.1em); }
.nk-doc p { margin: 0 0 1.15em; }
.nk-doc strong { color: #f4f7fb; font-weight: 600; }
.nk-doc ul { list-style: none; margin: 0 0 1.4em; padding: 0; }
.nk-doc ul > li { position: relative; padding-left: 1.5rem; margin-bottom: .7em; }
.nk-doc ul > li::before { content: ""; position: absolute; left: .2rem; top: .78em; width: 6px; height: 6px; background: var(--nk-blue); opacity: .8; }

/* tables */
.nk-doc table { width: 100%; margin: 2rem 0; border-collapse: collapse; font-size: .9375rem; line-height: 1.65; background: var(--nk-deep); border: 1px solid var(--nk-rim-up); }
.nk-doc > section:not([data-lock]) > table { width: min(var(--nk-wide), 100vw - 2 * var(--nk-gut)); margin-left: 50%; transform: translateX(-50%); }
.nk-doc thead th { padding: .85rem 1rem; text-align: left; vertical-align: bottom; background: var(--nk-brush); border-bottom: 1px solid var(--nk-blue); font: 500 .75rem/1.4 var(--nk-mono); letter-spacing: .08em; color: var(--nk-ink-soft); white-space: nowrap; }
.nk-doc td { padding: .9rem 1rem; vertical-align: top; border-bottom: 1px solid var(--nk-rim); color: var(--nk-ink-soft); }
.nk-doc tbody tr:last-child td { border-bottom: 0; }
.nk-doc tbody tr:hover td { background: rgba(91,141,239,.04); }
.nk-doc td:first-child { color: var(--nk-ink); font-weight: 500; }
#order td:first-child { font: 600 .9375rem/1.65 var(--nk-mono); color: var(--nk-blue-up); width: 4rem; }

/* definition lists */
.nk-doc dl { margin: 1.6rem 0 1.8rem; border-top: 1px solid var(--nk-rim); }
.nk-doc dt { position: relative; padding: 1rem 0 .35rem 1.4rem; font: 700 1.02rem/1.55 var(--nk-head); color: #eef2f6; }
.nk-doc dt::before { content: ""; position: absolute; left: 0; top: 1.5rem; width: 8px; height: 2px; background: var(--nk-blue); }
.nk-doc dd { margin: 0; padding: 0 0 1rem 1.4rem; border-bottom: 1px solid var(--nk-rim); color: var(--nk-ink-soft); }

/* steps → keypad keys */
.nk-doc ol[data-part="steps"] { list-style: none; margin: 1.6rem 0 2rem; padding: 0; counter-reset: nk-step; }
.nk-doc ol[data-part="steps"] > li { counter-increment: nk-step; position: relative; padding-left: 3.6rem; margin-bottom: 1.15rem; min-height: 2.5rem; }
.nk-doc ol[data-part="steps"] > li::before {
  content: counter(nk-step, decimal-leading-zero); position: absolute; left: 0; top: -.1rem;
  width: 2.5rem; height: 2.5rem; display: grid; place-items: center;
  font: 600 .875rem/1 var(--nk-mono); color: var(--nk-blue-up);
  background: linear-gradient(180deg, #252c37 0%, #171c23 100%); border: 1px solid #3c4655; border-radius: 3px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.09), inset 0 -2px 0 rgba(0,0,0,.55), 0 2px 0 #050608;
}

/* note / warn */
[data-part="note"], [data-part="warn"] { position: relative; margin: 2rem 0; padding: 1.35rem 1.5rem 1.1rem; font-size: 1rem; line-height: 1.8; }
[data-part="note"] p:last-child, [data-part="warn"] p:last-child { margin-bottom: 0; }
[data-part="note"] { background: rgba(91,141,239,.055); border: 1px solid rgba(91,141,239,.3); }
[data-part="note"]::before { content: "提示"; position: absolute; top: -.62rem; left: 1.1rem; padding: 0 .5rem; background: var(--nk-void); font: 600 .72rem/1.2rem var(--nk-mono); letter-spacing: .2em; color: var(--nk-blue-up); }
section[data-lock] [data-part="note"]::before { background: var(--nk-plate); }
[data-part="warn"] { padding-top: 2.6rem; background: rgba(217,164,65,.055); border: 1px solid rgba(217,164,65,.42); color: #e9dfcb; }
[data-part="warn"]::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: repeating-linear-gradient(-45deg, rgba(217,164,65,.85) 0 8px, transparent 8px 16px); }
[data-part="warn"]::after { content: "注意"; position: absolute; top: 1rem; left: 1.5rem; font: 600 .72rem/1 var(--nk-mono); letter-spacing: .22em; color: var(--nk-amber); }

/* screenshots */
.nk-doc figure[data-part="shot"] {
  counter-increment: nk-fig; position: relative; margin: 2.4rem 0; padding: 1rem 1rem 0;
  background:
    var(--nk-rivet) 4px 4px / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 4px) 4px / 10px 10px no-repeat,
    var(--nk-rivet) 4px calc(100% - 4px) / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 4px) calc(100% - 4px) / 10px 10px no-repeat,
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, #2a3240, #1b212a);
  border: 1px solid #4a5565;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 28px 50px -28px rgba(0,0,0,.95);
}
.nk-doc figure[data-part="shot"] img { display: block; width: 100%; height: auto; border: 1px solid #06080a; box-shadow: 0 0 0 1px #3d4757; outline: 0; background: #0d1014; }
.nk-doc figure[data-part="shot"] figcaption { display: flex; gap: .8rem; padding: .85rem .35rem .95rem; font-size: .875rem; line-height: 1.7; color: var(--nk-ink-soft); }
.nk-doc figure[data-part="shot"] figcaption::before { content: "图 " counter(nk-fig, decimal-leading-zero); flex: none; padding-top: .12rem; font: 600 .72rem/1.4 var(--nk-mono); letter-spacing: .1em; color: var(--nk-blue-up); }

/* ── lock cards ───────────────────────── */
.nk-doc > section[data-lock] {
  position: relative; width: min(var(--nk-lock), 100% - 1.5rem); margin-top: 6rem;
  padding: 5.4rem 3rem 2.6rem;
  background: linear-gradient(180deg, var(--nk-plate) 0%, #0e1115 100%);
  border: 1px solid #2b333e;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 50px 90px -60px rgba(0,0,0,1);
  transition: border-color .5s, box-shadow .5s;
}
.nk-doc > section[data-lock]::before {
  content: "0" attr(data-lock) " / 05" "   " attr(data-lock-name);
  white-space: pre; position: absolute; left: 0; right: 0; top: 0; height: 3rem;
  padding: 0 3rem; display: flex; align-items: center;
  background: var(--nk-brush); border-bottom: 1px solid #303946;
  font: 500 .75rem/1 var(--nk-mono); letter-spacing: .16em; color: var(--nk-dim);
  transition: color .5s;
}
.nk-doc > section[data-lock]::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    var(--nk-rivet) 10px 19px / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 10px) 19px / 10px 10px no-repeat,
    var(--nk-rivet) 10px calc(100% - 10px) / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 10px) calc(100% - 10px) / 10px 10px no-repeat;
}
.nk-doc > section[data-lock].is-on { border-color: rgba(91,141,239,.45); box-shadow: inset 0 1px 0 rgba(147,180,246,.12), 0 0 0 1px rgba(91,141,239,.08), 0 50px 90px -60px rgba(0,0,0,1); }
.nk-doc > section[data-lock].is-on::before { color: var(--nk-blue-up); }
.nk-doc > section[data-lock] > h2 { padding-bottom: 1.3rem; border-bottom: 1px dashed var(--nk-rim-up); }

.nk-switch { position: absolute; top: .78rem; right: 3rem; z-index: 2; display: inline-flex; align-items: center; gap: .6rem; font: 600 .72rem/1 var(--nk-mono); letter-spacing: .16em; color: var(--nk-dim); transition: color .4s; }
.nk-switch-track { position: relative; width: 2.6rem; height: 1.35rem; background: #08090c; border: 1px solid var(--nk-rim-up); border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,.8); transition: background .4s, border-color .4s; }
.nk-switch-knob { position: absolute; top: 2px; left: 2px; width: calc(1.35rem - 6px); height: calc(1.35rem - 6px); background: linear-gradient(180deg, #5d6876, #3a4350); border-radius: 1px; box-shadow: inset 0 1px 0 rgba(255,255,255,.2); transition: transform .4s cubic-bezier(.3,.7,.2,1), background .4s, box-shadow .4s; }
.is-on > .nk-switch { color: var(--nk-blue-up); }
.is-on > .nk-switch .nk-switch-track { background: rgba(91,141,239,.22); border-color: var(--nk-blue); }
.is-on > .nk-switch .nk-switch-knob { transform: translateX(1.25rem); background: linear-gradient(180deg, #b3cbfa, var(--nk-blue)); box-shadow: 0 0 10px var(--nk-blue-glow); }

/* ── CTA plate ────────────────────────── */
.nk-doc > aside[data-part="cta"] {
  position: relative; width: min(var(--nk-lock), 100% - 1.5rem); margin-top: 5rem;
  padding: 2.6rem 3rem 2rem;
  background:
    var(--nk-rivet) 10px 10px / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 10px) 10px / 10px 10px no-repeat,
    var(--nk-rivet) 10px calc(100% - 10px) / 10px 10px no-repeat,
    var(--nk-rivet) calc(100% - 10px) calc(100% - 10px) / 10px 10px no-repeat,
    repeating-linear-gradient(90deg, rgba(255,255,255,.022) 0 1px, transparent 1px 4px),
    linear-gradient(160deg, #1c232d 0%, #11151b 62%, #0f1318 100%);
  border: 1px solid #3c4757;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 0 6px var(--nk-deep), 0 0 0 7px #262e39, 0 40px 70px -40px rgba(0,0,0,.95);
}
aside[data-part="cta"] p { margin: 0 0 1.1rem; color: var(--nk-ink-soft); }
aside[data-part="cta"] > p:first-child { margin-bottom: 1.3rem; }
aside[data-part="cta"] > p:first-child strong { font: 600 clamp(1.6rem, 1.1rem + 1.6vw, 2.2rem)/1.3 var(--nk-mono); letter-spacing: .1em; color: #f4f7fb; }
.nk-code { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; }
.nk-code strong { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; }
aside[data-part="cta"] > p:first-child .nk-code-k { font: 500 .8rem/1 var(--nk-mono); letter-spacing: .2em; color: var(--nk-dim); }
.nk-code-v { display: inline-flex; gap: .32rem; }
.nk-code-v i {
  font-style: normal; display: inline-grid; place-items: center; width: 1.3em; height: 1.62em;
  background: linear-gradient(180deg, #07080a, #0d1014); border: 1px solid #3a4452; border-radius: 2px;
  box-shadow: inset 0 3px 8px rgba(0,0,0,.85), inset 0 -1px 0 rgba(255,255,255,.05), 0 1px 0 rgba(255,255,255,.04);
  letter-spacing: 0;
}
.nk-copy {
  display: inline-flex; align-items: center; gap: .5rem; height: 2.6rem; padding: 0 1rem; cursor: pointer;
  border: 1px solid var(--nk-rim-up); border-radius: 2px; background: linear-gradient(180deg, #222933, #171c23);
  color: var(--nk-ink); font: 500 .8125rem/1 var(--nk-mono); letter-spacing: .08em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
}
.nk-copy:hover { border-color: var(--nk-blue); color: #fff; }
.nk-copy::before { content: ""; width: 11px; height: 13px; border: 1.5px solid currentColor; box-shadow: 3px -3px 0 -1.5px var(--nk-plate), 3px -3px 0 0 currentColor; }
.nk-copy.is-done { border-color: var(--nk-blue); color: var(--nk-blue-up); }
aside[data-part="cta"] a[data-cta] {
  display: inline-flex; align-items: center; gap: .7rem; margin: .3rem 0 .4rem; padding: 1rem 1.8rem;
  background: linear-gradient(180deg, #78a3f4 0%, #4f80e3 100%); border: 1px solid #8fb2f7; border-radius: 3px;
  color: #06101f; text-decoration: none; font: 700 1.0625rem/1 var(--nk-head); letter-spacing: .04em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), inset 0 -2px 0 rgba(0,0,0,.18), 0 14px 30px -14px rgba(91,141,239,.85);
  transition: filter .2s, transform .2s;
}
aside[data-part="cta"] a[data-cta]::after { content: ""; width: .6rem; height: .6rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin-left: .15rem; }
aside[data-part="cta"] a[data-cta]:hover { filter: brightness(1.08); transform: translateY(-1px); color: #06101f; }
aside[data-part="cta"] > p:last-child { margin: .6rem 0 0; padding-top: 1.1rem; border-top: 1px dashed var(--nk-rim-up); font-size: .9375rem; line-height: 1.75; color: #bfc8d3; }

/* ── FAQ ──────────────────────────────── */
#faq details { counter-increment: nk-q; margin: 0 0 .6rem; border: 1px solid var(--nk-rim); background: var(--nk-plate); transition: border-color .25s; }
#faq details[open] { border-color: var(--nk-rim-up); background: linear-gradient(180deg, var(--nk-plate-up), var(--nk-plate)); }
#faq summary { position: relative; list-style: none; cursor: pointer; padding: 1.05rem 3.4rem 1.05rem 4rem; font: 500 1.02rem/1.6 var(--nk-head); color: var(--nk-ink); }
#faq summary::-webkit-details-marker { display: none; }
#faq summary::before { content: "Q" counter(nk-q, decimal-leading-zero); position: absolute; left: 1.1rem; top: 1.45rem; font: 600 .72rem/1 var(--nk-mono); letter-spacing: .06em; color: var(--nk-blue-up); }
#faq summary::after {
  content: ""; position: absolute; right: 1.1rem; top: 50%; width: 1.35rem; height: 1.35rem; margin-top: -.675rem;
  border: 1px solid var(--nk-rim-up); background:
    linear-gradient(var(--nk-ink-soft), var(--nk-ink-soft)) center / 9px 1.5px no-repeat,
    linear-gradient(var(--nk-ink-soft), var(--nk-ink-soft)) center / 1.5px 9px no-repeat;
  transition: transform .25s;
}
#faq details[open] summary::after { transform: rotate(45deg); border-color: var(--nk-blue); }
#faq summary:hover { color: #fff; }
#faq details > p { margin: 0; padding: 0 1.5rem 1.25rem 4rem; color: var(--nk-ink-soft); font-size: 1rem; }

/* ── page sheet ───────────────────────── */
.nk-main--page { padding: 3.5rem var(--nk-gut) 0; }
.nk-sheet {
  position: relative; width: min(46rem, 100%); margin: 0 auto; padding: 5rem 3.4rem 3rem;
  background: linear-gradient(180deg, var(--nk-plate), var(--nk-deep)); border: 1px solid #2b333e;
  box-shadow: 0 50px 90px -60px rgba(0,0,0,1);
}
.nk-sheet::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2.75rem; background: var(--nk-brush); border-bottom: 1px solid #303946; }
.nk-sheet::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    var(--nk-rivet) 10px 17px / 10px 10px no-repeat, var(--nk-rivet) calc(100% - 10px) 17px / 10px 10px no-repeat,
    var(--nk-rivet) 10px calc(100% - 10px) / 10px 10px no-repeat, var(--nk-rivet) calc(100% - 10px) calc(100% - 10px) / 10px 10px no-repeat;
}
.nk-sheet-tag { position: absolute; z-index: 1; left: 3.4rem; top: 0; height: 2.75rem; margin: 0; display: flex; align-items: center; gap: .8rem; font: 500 .72rem/1 var(--nk-mono); letter-spacing: .16em; color: var(--nk-dim); }
.nk-sheet-tag span + span::before { content: "/"; margin-right: .8rem; color: #4a5361; }
.nk-prose h1 { margin: 0 0 1.6rem; font: 700 clamp(1.75rem, 1.3rem + 1.4vw, 2.3rem)/1.3 var(--nk-head); color: #f4f7fb; }
.nk-prose h2 { margin: 2.4rem 0 .9rem; padding-top: 1.4rem; border-top: 1px solid var(--nk-rim); font: 700 1.25rem/1.5 var(--nk-head); color: #eef2f6; }
.nk-prose p { margin: 0 0 1.1em; color: var(--nk-ink-soft); }
.nk-prose ul { list-style: none; margin: 0 0 1.3em; padding: 0; }
.nk-prose li { position: relative; padding-left: 1.4rem; margin-bottom: .6em; color: var(--nk-ink-soft); }
.nk-prose li::before { content: ""; position: absolute; left: .15rem; top: .78em; width: 6px; height: 6px; background: var(--nk-blue); opacity: .8; }

/* ── footer ───────────────────────────── */
.nk-foot { position: relative; margin-top: 7.5rem; border-top: 1px solid var(--nk-rim); background: var(--nk-deep); }
.nk-foot::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: repeating-linear-gradient(90deg, rgba(119,129,143,.3) 0 1px, transparent 1px 8px) top / 100% 4px no-repeat, repeating-linear-gradient(90deg, rgba(91,141,239,.35) 0 1px, transparent 1px 64px) top / 100% 8px no-repeat; }
.nk-foot-in { width: min(75rem, 100% - 2 * var(--nk-gut)); margin: 0 auto; padding: 3.2rem 0 2.6rem; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.2rem 3rem; font-size: .9rem; line-height: 1.75; color: var(--nk-ink-soft); }
.nk-foot-id p { margin: .9rem 0 0; max-width: 30rem; }
.nk-mark--sm .nk-mark-txt { font-size: .98rem; }
.nk-foot-nav { display: flex; flex-wrap: wrap; align-content: flex-start; justify-content: flex-end; gap: .4rem 1.4rem; }
.nk-foot-nav a { color: var(--nk-ink-soft); text-decoration: none; font: 500 .9rem/2 var(--nk-head); }
.nk-foot-nav a:hover,
[data-page="about"] .nk-foot-nav a[data-k="about"],
[data-page="contact"] .nk-foot-nav a[data-k="contact"],
[data-page="privacy"] .nk-foot-nav a[data-k="privacy"],
[data-page="disclosure"] .nk-foot-nav a[data-k="disclosure"] { color: #fff; text-decoration: underline; text-decoration-color: var(--nk-blue); }
.nk-foot-mail, .nk-foot-risk, .nk-foot-copy { margin: 0; grid-column: 1 / -1; }
.nk-foot-mail a { font-family: var(--nk-mono); font-size: .875rem; }
.nk-foot-risk { padding: .8rem 1rem; border: 1px solid var(--nk-rim); border-left: 3px solid var(--nk-amber); color: #d6dbe2; }
.nk-foot-copy { padding-top: 1.2rem; border-top: 1px solid var(--nk-rim); font: 500 .75rem/1.6 var(--nk-mono); letter-spacing: .1em; color: var(--nk-dim); }

/* ── 404 ──────────────────────────────── */
.nk-lost { min-height: calc(100vh - 4rem - 14rem); display: grid; place-items: center; padding: 4rem var(--nk-gut); }
.nk-lost-plate { width: min(36rem, 100%); text-align: left; }
.nk-lost-code { margin: 0 0 1rem; font: 600 clamp(3.5rem, 2rem + 6vw, 6rem)/1 var(--nk-mono); letter-spacing: .08em; color: transparent; -webkit-text-stroke: 1.5px var(--nk-blue); }
.nk-lost h1 { margin: 0 0 1rem; font: 700 1.8rem/1.35 var(--nk-head); }
.nk-lost p { color: var(--nk-ink-soft); margin: 0 0 1.6rem; }
.nk-lost-go { display: inline-flex; align-items: center; height: 2.8rem; padding: 0 1.3rem; border: 1px solid var(--nk-blue); color: #fff; text-decoration: none; font: 500 .9rem/1 var(--nk-mono); letter-spacing: .06em; background: rgba(91,141,239,.12); }
.nk-lost-go:hover { background: rgba(91,141,239,.24); color: #fff; }

/* ── breakpoints ──────────────────────── */
@media (max-width: 68em) {
  .nk-level-name { font-size: .75rem; }
  .nk-level a { padding: 0 .5rem; gap: .4rem; }
}
@media (max-width: 56.25em) {
  :root { --nk-hero-h: auto; }
  .nk-door { position: relative; height: auto; aspect-ratio: 16 / 10; }
  .nk-door img { object-position: 76% 50%; }
  .nk-door::after { background: linear-gradient(180deg, rgba(11,13,16,0) 45%, var(--nk-void) 100%), linear-gradient(90deg, rgba(11,13,16,.45), rgba(11,13,16,0) 50%); }
  .nk-doc > header[data-part="hero"] { min-height: 0; margin-top: -3rem; padding: 0 0 1rem; }
  .nk-level-name { display: none; }
  .nk-level a { justify-content: center; padding: 0; }
  .nk-level-no { font-size: .75rem; }
}
@media (max-width: 47.5em) {
  :root { --nk-gut: 1.1rem; }
  body.nk-body { font-size: 1.0625rem; line-height: 1.82; }
  .nk-top-in { height: 3.5rem; }
  .nk-mark-txt small { display: none; }
  .nk-nav a { padding: .45rem .55rem; font-size: .9rem; }
  .nk-nav a[aria-current="page"]::after,
  [data-page="about"] .nk-nav a[data-k="about"]::after,
  [data-page="contact"] .nk-nav a[data-k="contact"]::after { left: .55rem; right: .55rem; bottom: -.7rem; }
  .nk-bar-in { min-height: 3.1rem; gap: .7rem; }
  .nk-gauge { gap: .6rem; }
  .nk-gauge-label { font-size: 0; letter-spacing: 0; }
  .nk-gauge-num, .nk-gauge-label span { font-size: .95rem; }
  .nk-gauge-num { margin-left: 0; }
  .nk-gauge-label span { font-size: .8rem; }
  .nk-level { gap: 3px; }
  .nk-level a { height: 2rem; }
  .nk-index summary { height: 2rem; padding: 0 .65rem; font-size: .75rem; }
  .nk-index-panel { position: fixed; left: var(--nk-gut); right: var(--nk-gut); top: 3.6rem; width: auto; }
  header[data-part="hero"] h1 { font-size: 1.85rem; line-height: 1.3; }
  [data-part="kicker"] { margin-bottom: 1.1rem; font-size: .72rem; }
  [data-part="dek"] { font-size: 1.05rem; margin-bottom: 1.3rem; }
  [data-part="meta"] { font-size: .75rem; }
  .nk-doc > section { margin-top: 4rem; scroll-margin-top: 4.2rem; }
  .nk-doc > header[data-part="hero"] + section { margin-top: 2.6rem; }
  .nk-doc > section:not([data-lock]) > table,
  .nk-doc table { display: block; width: 100%; margin-left: 0; transform: none; overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: .875rem; }
  .nk-doc th, .nk-doc td { min-width: 8.5em; }
  #order td:first-child { min-width: 3.2em; width: auto; }
  .nk-doc > section[data-lock] { width: calc(100% - 1rem); padding: 4.4rem 1.15rem 1.6rem; margin-top: 4.5rem; }
  .nk-doc > section[data-lock]::before { padding: 0 1.15rem 0 1.6rem; letter-spacing: .1em; font-size: .7rem; height: 2.75rem; }
  .nk-doc > section[data-lock]::after { background-position: 8px 17px, calc(100% - 8px) 17px, 8px calc(100% - 8px), calc(100% - 8px) calc(100% - 8px); }
  .nk-switch { right: 1.15rem; top: .68rem; gap: .45rem; font-size: .68rem; }
  .nk-doc figure[data-part="shot"] { padding: .6rem .6rem 0; margin: 1.8rem 0; }
  .nk-doc figure[data-part="shot"] figcaption { flex-direction: column; gap: .2rem; font-size: .84rem; }
  .nk-doc ol[data-part="steps"] > li { padding-left: 3rem; }
  .nk-doc ol[data-part="steps"] > li::before { width: 2.15rem; height: 2.15rem; font-size: .8rem; }
  .nk-doc > aside[data-part="cta"] { width: calc(100% - 1.4rem); padding: 2rem 1.25rem 1.5rem; }
  .nk-code-v { gap: .22rem; }
  [data-part="note"], [data-part="warn"] { padding-left: 1.1rem; padding-right: 1.1rem; }
  [data-part="warn"]::after { left: 1.1rem; }
  #faq summary { padding: .95rem 3rem .95rem 3.3rem; font-size: .98rem; }
  #faq summary::before { left: .8rem; top: 1.32rem; }
  #faq summary::after { right: .8rem; }
  #faq details > p { padding: 0 1rem 1.1rem 3.3rem; font-size: .95rem; }
  .nk-sheet { padding: 4.2rem 1.25rem 2rem; }
  .nk-sheet-tag { left: 1.6rem; }
  .nk-foot-in { grid-template-columns: 1fr; }
  .nk-foot-nav { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
