/* KYC提示 · passport inner-page skin */
:root {
  --p-navy: #1c2541;
  --p-navy-2: #2d3a5e;
  --p-red: #9b2226;
  --p-red-ink: #8a1c20;
  --p-leaf: #f6f2e9;
  --p-leaf-hi: #fcfaf5;
  --p-rule: #d6cfbd;
  --p-rule-2: #e6e0d1;
  --p-text: #262b3d;
  --p-mute: #5b6178;
  --p-tint: #e9ecf3;
  --p-blush: #f7e9e4;
  --p-foil: #cdb882;
  --f-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --f-sans: system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --f-mono: "SF Mono", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;
  --lift: 0 1px 0 rgba(28, 37, 65, .05), 0 18px 36px -24px rgba(28, 37, 65, .45);
  --gut: clamp(1rem, 4vw, 2.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  font: 400 1.0625rem/1.85 var(--f-sans);
  color: var(--p-text);
  background: var(--p-leaf) url(/assets/paper.svg) repeat 0 0 / 320px 160px;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--p-navy); text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: rgba(155, 34, 38, .55); }
a:hover { color: var(--p-red); }
:focus-visible { outline: 2px solid var(--p-red); outline-offset: 3px; border-radius: 2px; }
strong, b { font-weight: 650; color: #161b2e; }

.kt-skip { position: absolute; left: -999px; top: .5rem; z-index: 60; background: var(--p-navy); color: #fff; padding: .4rem .9rem; border-radius: 3px; }
.kt-skip:focus { left: .75rem; }

/* —— masthead —— */
.kt-mast {
  position: relative;
  background: rgba(252, 250, 245, .82);
  border-bottom: 1px solid var(--p-rule);
}
.kt-mast::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 7px;
  background: url(/assets/band.svg) repeat-x 0 50% / 72px 7px; opacity: .55; pointer-events: none;
}
.kt-mast__in {
  max-width: 82rem; margin: 0 auto; padding: .85rem var(--gut);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.kt-brand { display: flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--p-navy); min-width: 0; }
.kt-brand__mark { flex: none; filter: drop-shadow(0 2px 3px rgba(28, 37, 65, .25)); }
.kt-brand__txt { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.kt-brand__txt b { font: 600 1.22rem/1.15 var(--f-serif); letter-spacing: .06em; color: var(--p-navy); }
.kt-brand__txt small { font-size: .74rem; color: var(--p-mute); letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kt-nav { display: flex; gap: .25rem; }
.kt-nav a {
  font: 600 .95rem/1 var(--f-serif); letter-spacing: .12em; color: var(--p-navy);
  text-decoration: none; padding: .55rem .7rem .5rem; border: 1px solid transparent; border-radius: 2px;
}
.kt-nav a:hover { border-color: var(--p-rule); background: var(--p-leaf-hi); color: var(--p-navy); }
.kt-nav a[aria-current="page"],
[data-page="about"] .kt-nav a[href="/about/"],
[data-page="contact"] .kt-nav a[href="/contact/"] {
  color: var(--p-red); border-color: rgba(155, 34, 38, .45); box-shadow: inset 0 0 0 2px var(--p-leaf), inset 0 0 0 3px rgba(155, 34, 38, .25);
}

/* —— document grid (home) —— */
.kt-doc {
  max-width: 82rem; margin: 0 auto; padding: 2.4rem var(--gut) 3rem; overflow-x: clip;
  display: grid;
  grid-template-columns: [a] 15rem [b] 3.25rem [c] minmax(0, 21rem) [d] minmax(0, 23rem) [e] minmax(0, 1fr) [f];
  counter-reset: kt-pg 1 kt-fig kt-tab kt-q;
}
.kt-datapage {
  grid-column: a / f; grid-row: 1 / 3;
  background:
    url(/assets/rosette-faint.svg) no-repeat calc(100% + 120px) -140px / 420px 420px,
    linear-gradient(180deg, rgba(255, 255, 255, .72), rgba(252, 250, 245, .9));
  border: 1px solid var(--p-rule);
  border-radius: 6px;
  box-shadow: var(--lift);
  position: relative;
}
.kt-datapage::before {
  content: "资料页 · DATA PAGE"; position: absolute; left: 2.2rem; top: -.78rem;
  font: 600 .72rem/1 var(--f-serif); letter-spacing: .3em; color: var(--p-red);
  background: var(--p-leaf); padding: .3rem .7rem; border: 1px solid rgba(155, 34, 38, .35); border-radius: 2px;
}
.kt-doc > header[data-part="hero"] { grid-column: a / d; grid-row: 1; padding: 3rem 2.2rem 1.6rem 2.6rem; position: relative; z-index: 1; }
.kt-photo { grid-column: d / f; grid-row: 1; margin: 2.4rem 2.2rem 1.4rem .4rem; position: relative; z-index: 1; align-self: center; }
.kt-photo img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border: 7px solid #fff; outline: 1px solid var(--p-rule); box-shadow: 0 10px 26px -16px rgba(28, 37, 65, .6);
}
.kt-seal {
  position: absolute; width: 7.6rem; height: 7.6rem; left: -2.6rem; bottom: -2.2rem;
  color: rgba(255, 255, 255, .6); font-family: var(--f-serif);
  filter: drop-shadow(-1px -1px 0 rgba(28, 37, 65, .28)) drop-shadow(1px 1px 0 rgba(255, 255, 255, .9));
  transform: rotate(-12deg); pointer-events: none;
}
.kt-mrz {
  grid-column: a / f; grid-row: 2; z-index: 1;
  margin: .4rem 1.2rem 1.2rem; padding: .8rem 1.4rem .7rem;
  border-top: 1px dashed var(--p-rule);
  font: 500 clamp(.62rem, 1.1vw, 1rem)/1.55 var(--f-mono); letter-spacing: .5em; color: rgba(28, 37, 65, .55);
  display: flex; flex-direction: column; overflow: hidden; white-space: nowrap; user-select: none;
}

/* hero copy */
[data-part="kicker"] {
  margin: 0 0 1rem; display: inline-flex; align-items: center; gap: .6rem;
  font: 600 .8rem/1 var(--f-serif); letter-spacing: .28em; color: var(--p-red);
}
[data-part="kicker"]::before { content: ""; width: 1.7rem; height: 1px; background: currentColor; }
[data-part="hero"] h1 {
  margin: 0 0 1.1rem; font: 600 clamp(1.6rem, 2.9vw, 2.3rem)/1.36 var(--f-serif);
  color: var(--p-navy); letter-spacing: .015em; text-wrap: pretty;
  word-break: keep-all; overflow-wrap: anywhere;
}
[data-part="dek"] { margin: 0 0 1.4rem; font-size: 1.06rem; line-height: 1.85; color: #33394d; max-width: 36em; }
[data-part="meta"] {
  margin: 0; padding-top: .9rem; border-top: 1px solid var(--p-rule-2);
  font-size: .86rem; color: var(--p-mute); letter-spacing: .02em; line-height: 1.7;
}
.kt-field { display: inline-flex; flex-direction: column; margin: 0 1.6rem .3rem 0; vertical-align: top; }
.kt-field i { font-style: normal; font: 600 .66rem/1.4 var(--f-serif); letter-spacing: .24em; color: var(--p-red); }
.kt-field span { color: var(--p-navy); font-size: .92rem; }
.kt-field--sole span { color: var(--p-mute); }

/* —— index (visa page index) —— */
.kt-index { grid-column: a / b; grid-row: 3 / span 16; margin-top: 3.2rem; }
.kt-ix { position: sticky; top: 1.4rem; }
.kt-ix__bar { display: none; }
.kt-ix__sheet {
  background: var(--p-leaf-hi); border: 1px solid var(--p-rule); border-top: 3px solid var(--p-navy);
  border-radius: 0 0 4px 4px; padding: 1rem 0 .7rem; box-shadow: var(--lift);
  max-height: calc(100vh - 3rem); overflow-y: auto; scrollbar-width: thin;
}
.kt-ix .kt-ix__head { margin: 0 1.1rem .6rem; display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px double var(--p-rule); padding-bottom: .55rem; }
.kt-ix__head span { font: 600 .95rem/1 var(--f-serif); letter-spacing: .2em; color: var(--p-navy); }
.kt-ix__head em { font: 500 .68rem/1 var(--f-mono); font-style: normal; color: var(--p-mute); letter-spacing: .08em; }
.kt-ix__list { list-style: none; margin: 0; padding: 0; counter-reset: kt-ix 1; }
.kt-ix__list li { counter-increment: kt-ix; }
.kt-ix__list a {
  display: grid; grid-template-columns: 2.4rem 1fr; gap: .35rem; align-items: start;
  padding: .34rem 1rem .34rem .7rem; text-decoration: none; color: var(--p-mute);
  font-size: .82rem; line-height: 1.48; border-left: 2px solid transparent;
}
.kt-ix__list a::before {
  content: counter(kt-ix, decimal-leading-zero);
  justify-self: center; width: 1.75rem; height: 1.75rem; display: grid; place-items: center;
  font: 600 .74rem/1 var(--f-mono); color: var(--p-navy); letter-spacing: 0;
  border: 1px solid var(--p-rule); border-radius: 50%; background: #fff; margin-top: -.12rem;
}
.kt-ix__list a.is-stage::before { border: 1.5px dashed rgba(155, 34, 38, .6); color: var(--p-red); }
.kt-ix__list a.is-stamped::before { border: 1.5px solid var(--p-red); background: var(--p-red); color: #fff; transform: rotate(-8deg); }
.kt-ix__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kt-ix__list a:hover { color: var(--p-navy); background: rgba(233, 236, 243, .55); }
.kt-ix__list a.is-here { color: var(--p-navy); font-weight: 600; background: var(--p-tint); border-left-color: var(--p-red); }
.kt-ix__list a.is-here::before { border-color: var(--p-navy); box-shadow: 0 0 0 3px rgba(28, 37, 65, .12); }

.kt-ledger { margin: .7rem 1rem 0; padding-top: .7rem; border-top: 1px dashed var(--p-rule); }
.kt-ledger[hidden] { display: none; }
.kt-ix .kt-ledger__cap { margin: 0 0 .5rem; display: flex; justify-content: space-between; font: 600 .74rem/1.2 var(--f-serif); letter-spacing: .16em; color: var(--p-navy); }
.kt-ledger__cap em { font-style: normal; font-family: var(--f-mono); color: var(--p-red); letter-spacing: .04em; }
.kt-ledger__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem; }
.kt-slot {
  appearance: none; border: 1px dashed var(--p-rule); background: rgba(255, 255, 255, .6); border-radius: 3px;
  padding: .3rem .1rem .2rem; cursor: pointer; display: grid; justify-items: center; gap: .05rem; color: var(--p-mute);
  font: 500 .64rem/1.25 var(--f-sans); white-space: nowrap;
}
.kt-slot:hover { border-color: var(--p-red); }
.kt-slot__ring { width: 2.6rem; height: 2.6rem; position: relative; }
.kt-slot__ring svg { width: 100%; height: 100%; }
.kt-slot__ghost { position: absolute; inset: 0; opacity: .32; filter: grayscale(1); }
.kt-slot__ink { position: absolute; inset: 0; opacity: 0; transform: scale(1.5) rotate(-18deg); }
.kt-slot.is-stamped { border-style: solid; border-color: rgba(155, 34, 38, .35); color: var(--p-red); }
.kt-slot.is-stamped .kt-slot__ghost { opacity: 0; }
.kt-slot.is-stamped .kt-slot__ink { animation: kt-thump .5s cubic-bezier(.2, .9, .3, 1.2) forwards; }

/* —— reading column —— */
.kt-doc > section, .kt-doc > aside, .kt-endnote { grid-column: c / e; min-width: 0; }
.kt-doc > section {
  position: relative; counter-increment: kt-pg;
  padding-top: 4.6rem; margin-top: 1.4rem; scroll-margin-top: 1rem;
}
.kt-doc > section::before {
  content: "P." counter(kt-pg, decimal-leading-zero);
  position: absolute; left: 0; top: 1.25rem; z-index: 1;
  font: 600 .76rem/1 var(--f-mono); letter-spacing: .14em; color: var(--p-red);
  background: var(--p-leaf); padding: .2rem .7rem .2rem 0;
}
.kt-doc > section[data-stage]::before {
  content: "P." counter(kt-pg, decimal-leading-zero) "  ·  第 " attr(data-stage) " 关 · " attr(data-stage-name);
  white-space: pre;
}
.kt-doc > section::after {
  content: ""; position: absolute; left: 0; right: 0; top: 1.4rem; height: 9px;
  background: url(/assets/band.svg) repeat-x 0 50% / 64px 9px; opacity: .55;
}
.kt-doc > section:first-of-type { margin-top: 3.2rem; }

.kt-doc h2 {
  margin: 0 0 1.25rem; font: 600 clamp(1.38rem, 2.2vw, 1.8rem)/1.42 var(--f-serif);
  color: var(--p-navy); letter-spacing: .01em; text-wrap: balance;
}
.kt-doc h3 {
  margin: 2.3rem 0 .75rem; font: 600 1.18rem/1.5 var(--f-serif); color: var(--p-navy);
  padding-left: 1.05rem; position: relative;
}
.kt-doc h3::before {
  content: ""; position: absolute; left: 0; top: .42em; width: .48rem; height: .48rem;
  border: 1.5px solid var(--p-red); transform: rotate(45deg);
}
.kt-doc p { margin: 0 0 1.15rem; }
.kt-doc section > p, .kt-doc dl, .kt-doc ol { max-width: 40em; }

/* stamps (signature) */
.kt-stamp {
  float: right; width: 6.6rem; margin: -.5rem 0 .2rem 1rem;
  pointer-events: none; color: var(--p-red);
}
.kt-stamp svg { width: 100%; height: auto; overflow: visible; display: block; }
.kt-stamp[data-ink="navy"] { color: var(--p-navy-2); }
.kt-js .kt-stamp { opacity: 0; transform: scale(1.55) rotate(calc(var(--tilt, -8deg) - 14deg)); }
.kt-js .kt-stamp.is-in { animation: kt-land .62s cubic-bezier(.18, .9, .32, 1.15) forwards; }
@keyframes kt-land {
  0% { opacity: 0; transform: scale(1.55) rotate(calc(var(--tilt, -8deg) - 14deg)); }
  62% { opacity: .95; transform: scale(.94) rotate(var(--tilt, -8deg)); }
  100% { opacity: .9; transform: scale(1) rotate(var(--tilt, -8deg)); }
}
@keyframes kt-thump {
  0% { opacity: 0; transform: scale(1.5) rotate(-18deg); }
  70% { opacity: 1; transform: scale(.92) rotate(-6deg); }
  100% { opacity: .92; transform: scale(1) rotate(-7deg); }
}
@media (prefers-reduced-motion: reduce) {
  .kt-js .kt-stamp, .kt-js .kt-stamp.is-in { animation: none; opacity: .9; transform: rotate(var(--tilt, -8deg)); }
  .kt-slot.is-stamped .kt-slot__ink { animation: none; opacity: .92; transform: rotate(-7deg); }
}

/* lists */
.kt-doc ol[data-part="steps"] { list-style: none; padding: 0; margin: 1.4rem 0 1.6rem; counter-reset: kt-st; }
.kt-doc ol[data-part="steps"] > li {
  counter-increment: kt-st; position: relative;
  padding: .95rem 0 .95rem 3.6rem; border-top: 1px solid var(--p-rule-2);
}
.kt-doc ol[data-part="steps"] > li:last-child { border-bottom: 1px solid var(--p-rule-2); }
.kt-doc ol[data-part="steps"] > li::before {
  content: "№" counter(kt-st, decimal-leading-zero);
  position: absolute; left: 0; top: 1.1rem; width: 2.75rem; padding: .28rem 0 .22rem; text-align: center;
  font: 600 .76rem/1 var(--f-mono); color: var(--p-navy); letter-spacing: .02em;
  border: 1px solid var(--p-navy); border-radius: 2px; background: var(--p-leaf-hi);
  box-shadow: 2px 2px 0 rgba(28, 37, 65, .12);
}
.kt-doc ol[data-part="steps"] > li > strong:first-child { display: block; font: 600 1.02rem/1.55 var(--f-serif); color: var(--p-navy); margin-bottom: .15rem; }

/* biodata-style definition list */
.kt-doc dl {
  margin: 1.3rem 0 1.6rem; padding: .3rem 1.3rem; background: rgba(252, 250, 245, .85);
  border: 1px solid var(--p-rule); border-radius: 4px; display: grid; grid-template-columns: 8.5rem 1fr;
}
.kt-doc dt, .kt-doc dd { padding: .85rem 0; border-bottom: 1px dotted var(--p-rule); margin: 0; }
.kt-doc dt { font: 600 .9rem/1.6 var(--f-serif); color: var(--p-red); letter-spacing: .06em; padding-right: 1rem; }
.kt-doc dd { font-size: 1rem; }
.kt-doc dl > dt:last-of-type, .kt-doc dl > dd:last-of-type { border-bottom: 0; }

/* visa-page tables */
.kt-visa {
  margin: 1.6rem 0 1.8rem; position: relative;
  background: var(--p-leaf-hi) url(/assets/rosette-faint.svg) no-repeat right -90px bottom -110px / 260px 260px;
  border: 1px solid var(--p-navy); border-radius: 3px; box-shadow: var(--lift);
}
.kt-visa::before {
  content: ""; position: absolute; left: -1px; top: 10px; bottom: 10px; width: 6px;
  background: radial-gradient(circle at 0 50%, var(--p-leaf) 2.2px, transparent 2.6px) 0 0 / 6px 11px repeat-y;
}
.kt-visa__cap {
  margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .55rem 1.1rem .5rem 1.4rem; border-bottom: 1px solid var(--p-navy);
  background: var(--p-navy); color: #e9e4d6;
  font: 600 .72rem/1.3 var(--f-serif); letter-spacing: .28em;
}
.kt-visa__cap em { font: 500 .7rem/1 var(--f-mono); font-style: normal; color: var(--p-foil); letter-spacing: .1em; }
.kt-visa__scroll { overflow-x: auto; }
.kt-doc table { width: 100%; border-collapse: collapse; font-size: .95rem; line-height: 1.7; }
.kt-nojs .kt-doc table { display: block; overflow-x: auto; margin: 1.4rem 0; background: var(--p-leaf-hi); border: 1px solid var(--p-navy); }
.kt-doc th {
  text-align: left; vertical-align: bottom; padding: .7rem .9rem .55rem; white-space: nowrap;
  font: 600 .8rem/1.4 var(--f-serif); letter-spacing: .14em; color: var(--p-red);
  border-bottom: 3px double var(--p-navy); background: rgba(233, 236, 243, .6);
}
.kt-doc td { padding: .75rem .9rem; vertical-align: top; border-bottom: 1px solid var(--p-rule-2); }
.kt-doc tr:last-child td { border-bottom: 0; }
.kt-doc td:first-child { font: 600 .93rem/1.6 var(--f-serif); color: var(--p-navy); min-width: 6.5rem; }
.kt-doc th:first-child, .kt-doc td:first-child { padding-left: 1.4rem; }
.kt-doc tbody tr:hover td { background: rgba(247, 233, 228, .45); }

/* notes & warnings */
.kt-doc [data-part="warn"], .kt-doc [data-part="note"] {
  position: relative; margin: 1.6rem 0 1.8rem; padding: 1.35rem 1.4rem .3rem 1.4rem; border-radius: 3px;
}
.kt-doc [data-part="warn"] { background: var(--p-blush); border: 1px solid rgba(155, 34, 38, .4); border-left: 5px solid var(--p-red); }
.kt-doc [data-part="note"] { background: var(--p-tint); border: 1px solid rgba(28, 37, 65, .22); border-left: 5px solid var(--p-navy); }
.kt-doc [data-part="warn"]::before, .kt-doc [data-part="note"]::before {
  position: absolute; top: -.72rem; left: 1rem; padding: .22rem .6rem .18rem;
  font: 600 .72rem/1 var(--f-serif); letter-spacing: .3em; background: var(--p-leaf);
  border: 1.5px solid currentColor; border-radius: 2px; transform: rotate(-2deg);
}
.kt-doc [data-part="warn"]::before { content: "须知"; color: var(--p-red); }
.kt-doc [data-part="note"]::before { content: "备注"; color: var(--p-navy); }
.kt-doc [data-part="warn"] p, .kt-doc [data-part="note"] p { margin-bottom: 1.05rem; font-size: 1rem; }

/* screenshots */
.kt-doc figure[data-part="shot"] {
  margin: 1.8rem 0 2rem; padding: .7rem .7rem .2rem; background: #fff; counter-increment: kt-fig;
  border: 1px solid var(--p-rule); box-shadow: 0 14px 28px -22px rgba(28, 37, 65, .55); position: relative;
  width: fit-content; max-width: 100%;
}
.kt-doc figure[data-part="shot"]::before, .kt-doc figure[data-part="shot"]::after {
  content: ""; position: absolute; width: 22px; height: 22px; pointer-events: none;
}
.kt-doc figure[data-part="shot"]::before { left: -5px; top: -5px; background: linear-gradient(135deg, var(--p-navy) 50%, transparent 50%); opacity: .85; }
.kt-doc figure[data-part="shot"]::after { right: -5px; bottom: -5px; background: linear-gradient(-45deg, var(--p-navy) 50%, transparent 50%); opacity: .85; }
.kt-doc figure[data-part="shot"] img { border: 1px solid var(--p-rule-2); }
.kt-doc figcaption { padding: .6rem .2rem .55rem; font-size: .84rem; line-height: 1.65; color: var(--p-mute); max-width: 52em; }
.kt-doc figcaption::before {
  content: "附图 " counter(kt-fig, decimal-leading-zero); margin-right: .6rem;
  font: 600 .72rem/1 var(--f-mono); color: var(--p-red); letter-spacing: .08em;
  padding: .16rem .4rem; border: 1px solid rgba(155, 34, 38, .45); border-radius: 2px; vertical-align: .08em;
}

/* referral: visa sticker */
.kt-doc > aside[data-part="cta"] {
  margin: 3.4rem 0 1rem; padding: 0 0 .4rem; border-radius: 12px; overflow: hidden;
  border: 1px solid rgba(28, 37, 65, .4);
  background:
    url(/assets/rosette-faint.svg) no-repeat calc(100% + 70px) 30px / 300px 300px,
    repeating-linear-gradient(115deg, rgba(155, 34, 38, .035) 0 2px, transparent 2px 9px),
    linear-gradient(160deg, #fffdf8 0%, #f7efe6 55%, #eef0f6 100%);
  box-shadow: 0 2px 0 rgba(28, 37, 65, .06), 0 26px 44px -26px rgba(28, 37, 65, .6);
  position: relative;
}
.kt-doc > aside[data-part="cta"]::before {
  content: "推荐注册 · 欧易"; display: block; padding: .62rem 1.5rem .55rem;
  background: linear-gradient(90deg, var(--p-navy), var(--p-navy-2)); color: #ece6d6;
  font: 600 .74rem/1.3 var(--f-serif); letter-spacing: .32em;
}
.kt-doc > aside[data-part="cta"] > p { margin: 0 1.5rem .9rem; max-width: none; }
.kt-doc > aside[data-part="cta"] > p:first-of-type { margin-top: 1.3rem; }
.kt-doc > aside[data-part="cta"] > p:first-of-type strong { font: 600 1.7rem/1.3 var(--f-mono); letter-spacing: .08em; color: var(--p-red); }
.kt-code { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1rem; }
.kt-code__lab { width: 100%; font: 600 .74rem/1 var(--f-serif); letter-spacing: .3em; color: var(--p-mute); }
.kt-doc > aside[data-part="cta"] .kt-code__val {
  font: 600 clamp(2rem, 5.4vw, 2.9rem)/1 var(--f-mono); letter-spacing: .14em; color: var(--p-red);
  padding: .35rem .7rem .3rem .75rem; border: 2px solid var(--p-red); border-radius: 4px; background: rgba(255, 255, 255, .7);
  box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(155, 34, 38, .3);
}
.kt-copy {
  appearance: none; cursor: pointer; font: 600 .92rem/1 var(--f-serif); letter-spacing: .14em;
  color: var(--p-navy); background: #fff; border: 1.5px solid var(--p-navy); border-radius: 3px; padding: .72rem 1.05rem .66rem;
}
.kt-copy:hover { background: var(--p-tint); }
.kt-copy.is-done { background: var(--p-navy); color: #fff; }
.kt-doc > aside[data-part="cta"] a[data-cta] {
  display: inline-flex; align-items: center; gap: .7rem; text-decoration: none;
  font: 600 1.05rem/1 var(--f-serif); letter-spacing: .12em; color: #fff;
  background: var(--p-red); padding: 1rem 1.6rem .95rem; border-radius: 4px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 10px 20px -12px rgba(155, 34, 38, .9);
}
.kt-doc > aside[data-part="cta"] a[data-cta]::after { content: "→"; font-family: var(--f-sans); }
.kt-doc > aside[data-part="cta"] a[data-cta]:hover { background: var(--p-red-ink); color: #fff; }
.kt-doc > aside[data-part="cta"] > p:last-of-type { font-size: .95rem; line-height: 1.75; color: #353b52; border-top: 1px dashed rgba(28, 37, 65, .3); padding-top: .9rem; }
.kt-sticker-mrz { margin: .2rem 1.5rem .3rem; font: 500 .74rem/1.4 var(--f-mono); letter-spacing: .3em; color: rgba(28, 37, 65, .38); white-space: nowrap; overflow: hidden; }

/* FAQ */
#faq details { border-top: 1px solid var(--p-rule); counter-increment: kt-q; background: transparent; transition: background .2s; }
#faq details:last-of-type { border-bottom: 1px solid var(--p-rule); }
#faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 1.05rem 3rem 1.05rem 3.4rem; font: 600 1.04rem/1.6 var(--f-serif); color: var(--p-navy);
}
#faq summary::-webkit-details-marker { display: none; }
#faq summary::before {
  content: "Q." counter(kt-q, decimal-leading-zero); position: absolute; left: 0; top: 1.25rem;
  font: 600 .74rem/1 var(--f-mono); color: var(--p-red); letter-spacing: .04em;
}
#faq summary::after {
  content: ""; position: absolute; right: .6rem; top: 50%; width: 1.5rem; height: 1.5rem; margin-top: -.75rem;
  border: 1.5px solid var(--p-red); border-radius: 50%;
  background: linear-gradient(var(--p-red), var(--p-red)) center / .7rem 1.5px no-repeat, linear-gradient(var(--p-red), var(--p-red)) center / 1.5px .7rem no-repeat;
  transition: transform .25s;
}
#faq details[open] summary::after { transform: rotate(45deg); background-color: var(--p-blush); }
#faq details[open] { background: rgba(252, 250, 245, .75); }
#faq details > p { margin: 0; padding: 0 3rem 1.25rem 3.4rem; font-size: 1rem; }
#faq summary:hover { color: var(--p-red); }

.kt-endnote {
  margin: 3.4rem 0 0; padding: 1.1rem 0 0; border-top: 3px double var(--p-rule);
  font-size: .88rem; color: var(--p-mute);
}
.kt-endnote a { margin-left: .5rem; }

/* —— annex pages —— */
.kt-sheet { max-width: 50rem; margin: 0 auto; padding: 3.4rem var(--gut) 3rem; }
.kt-sheet__page {
  position: relative; background: rgba(252, 250, 245, .92) url(/assets/rosette-faint.svg) no-repeat calc(100% + 110px) -120px / 360px 360px;
  border: 1px solid var(--p-rule); border-top: 3px solid var(--p-navy); border-radius: 0 0 5px 5px;
  padding: 3.2rem clamp(1.2rem, 5vw, 3.4rem) 2rem; box-shadow: var(--lift);
}
.kt-sheet__page::before {
  position: absolute; left: clamp(1.2rem, 5vw, 3.4rem); top: 1.15rem; content: "附页";
  font: 600 .74rem/1 var(--f-mono); letter-spacing: .2em; color: var(--p-red);
}
[data-page="about"] .kt-sheet__page::before { content: "附页 A · 关于本站"; }
[data-page="contact"] .kt-sheet__page::before { content: "附页 B · 联系"; }
[data-page="privacy"] .kt-sheet__page::before { content: "附页 C · 隐私"; }
[data-page="disclosure"] .kt-sheet__page::before { content: "附页 D · 推广披露"; }
.kt-sheet h1 { margin: 0 0 1.4rem; font: 600 clamp(1.6rem, 3.4vw, 2.2rem)/1.35 var(--f-serif); color: var(--p-navy); padding-bottom: 1rem; border-bottom: 1px solid var(--p-rule-2); }
.kt-sheet h2 { margin: 2.2rem 0 .7rem; font: 600 1.2rem/1.5 var(--f-serif); color: var(--p-navy); padding-left: 1.05rem; position: relative; }
.kt-sheet h2::before { content: ""; position: absolute; left: 0; top: .45em; width: .48rem; height: .48rem; border: 1.5px solid var(--p-red); transform: rotate(45deg); }
.kt-sheet p { margin: 0 0 1.1rem; }
.kt-sheet__back { margin: 1.6rem .2rem 0; font-size: .92rem; }
.kt-sheet__back a::before { content: "← "; }

/* —— back cover —— */
.kt-cover {
  margin-top: 3rem; color: #d9d4c6; position: relative; overflow: hidden;
  background: var(--p-navy) url(/assets/rosette.svg) no-repeat calc(100% + 140px) 50% / 480px 480px;
}
.kt-cover::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--p-navy) 45%, rgba(28, 37, 65, .82)); }
.kt-cover__in {
  position: relative; max-width: 82rem; margin: 0 auto; padding: 2.8rem var(--gut) 2.4rem;
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.2rem 3rem;
}
.kt-cover__id { display: flex; gap: 1rem; align-items: flex-start; color: var(--p-foil); }
.kt-cover__id svg { flex: none; }
.kt-cover__id p { margin: 0; color: #d9d4c6; font-size: .92rem; line-height: 1.75; max-width: 30em; }
.kt-cover__id b { display: block; font: 600 1.12rem/1.4 var(--f-serif); color: var(--p-foil); letter-spacing: .14em; margin-bottom: .2rem; }
.kt-cover__nav { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; align-content: start; justify-content: flex-end; }
.kt-cover a { color: #f1ead8; text-decoration-color: rgba(205, 184, 130, .6); }
.kt-cover a:hover { color: var(--p-foil); }
.kt-cover__nav a { font: 600 .92rem/1.6 var(--f-serif); letter-spacing: .1em; text-decoration: none; border-bottom: 1px solid rgba(205, 184, 130, .4); }
.kt-cover__mail, .kt-cover__risk, .kt-cover__copy { margin: 0; font-size: .86rem; }
.kt-cover__risk { grid-column: 1 / -1; padding: .9rem 0 0; border-top: 1px solid rgba(205, 184, 130, .25); color: #ece6d6; font-size: .9rem; }
.kt-cover__mail { justify-self: end; align-self: end; }
.kt-cover__copy { grid-column: 1 / -1; color: #a9a593; font-family: var(--f-mono); font-size: .78rem; letter-spacing: .08em; }

/* —— lost page —— */
.kt-lost { max-width: 46rem; margin: 0 auto; padding: 4rem var(--gut) 4.5rem; text-align: center; }
.kt-lost svg { width: 12rem; height: 12rem; margin: 0 auto 1.6rem; color: var(--p-red); transform: rotate(-9deg); opacity: .9; }
.kt-lost h1 { font: 600 clamp(1.5rem, 3.6vw, 2rem)/1.4 var(--f-serif); color: var(--p-navy); margin: 0 0 .8rem; }
.kt-lost p { color: var(--p-mute); margin: 0 0 1.6rem; }
.kt-lost a.kt-lost__go {
  display: inline-block; text-decoration: none; color: #fff; background: var(--p-navy);
  font: 600 1rem/1 var(--f-serif); letter-spacing: .14em; padding: .95rem 1.5rem; border-radius: 3px;
}
.kt-lost a.kt-lost__go:hover { background: var(--p-red); color: #fff; }

/* ========= breakpoints ========= */
@media (min-width: 80em) {
  .kt-stamp { float: none; position: absolute; left: calc(100% + 2.4rem); top: 3.9rem; width: 9.4rem; margin: 0; }
}

@media (max-width: 68.74em) {
  .kt-doc { grid-template-columns: minmax(0, 1fr); padding-top: 1.6rem; }
  .kt-datapage { grid-column: 1; grid-row: 1 / 4; }
  .kt-doc > header[data-part="hero"] { grid-column: 1; grid-row: 1; padding: 2.4rem 1.6rem 1.2rem; }
  .kt-photo { grid-column: 1; grid-row: 2; margin: 0 1.6rem 1.2rem; }
  .kt-mrz { grid-column: 1; grid-row: 3; margin: 0 .8rem .6rem; }
  .kt-doc > section, .kt-doc > aside, .kt-endnote { grid-column: 1; }
  .kt-index { grid-column: 1; grid-row: 4; margin: 1.6rem 0 0; }
  .kt-ix { position: static; }
  .kt-js .kt-index { position: sticky; top: 0; z-index: 30; margin: 1.2rem calc(var(--gut) * -1) 0; }
  .kt-js .kt-ix__bar {
    display: flex; align-items: center; gap: .7rem; cursor: pointer; list-style: none;
    padding: .62rem var(--gut); background: rgba(252, 250, 245, .96); border-top: 1px solid var(--p-rule); border-bottom: 1px solid var(--p-rule);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 8px 18px -16px rgba(28, 37, 65, .7);
  }
  .kt-js .kt-ix__bar::-webkit-details-marker { display: none; }
  .kt-ix__lab { flex: none; font: 600 .76rem/1 var(--f-serif); letter-spacing: .2em; color: #fff; background: var(--p-navy); padding: .38rem .5rem .34rem; border-radius: 2px; }
  .kt-ix__now { flex: 1; min-width: 0; font-size: .86rem; color: var(--p-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .kt-ix__now b { font: 600 .74rem/1 var(--f-mono); color: var(--p-red); margin-right: .4rem; }
  .kt-ix__dots { flex: none; display: flex; gap: .28rem; }
  .kt-ix__dots i { width: .62rem; height: .62rem; border-radius: 50%; border: 1.3px dashed rgba(155, 34, 38, .65); }
  .kt-ix__dots i.is-stamped { background: var(--p-red); border-style: solid; }
  .kt-js .kt-ix__bar::after { content: ""; flex: none; width: .5rem; height: .5rem; border-right: 1.5px solid var(--p-navy); border-bottom: 1.5px solid var(--p-navy); transform: rotate(45deg) translateY(-.15rem); transition: transform .2s; }
  .kt-js .kt-ix[open] .kt-ix__bar::after { transform: rotate(-135deg) translateY(-.1rem); }
  .kt-js .kt-ix__sheet { position: absolute; left: var(--gut); right: var(--gut); top: 100%; margin-top: .4rem; max-height: 70vh; border-radius: 4px; }
  .kt-ix__sheet { max-height: none; }
  .kt-doc > section { scroll-margin-top: 3.4rem; }
  .kt-stamp { width: 5.6rem; margin-bottom: -.4rem; }
}

@media (max-width: 47.5em) {
  body { font-size: 1rem; line-height: 1.82; }
  .kt-mast__in { padding-top: .7rem; padding-bottom: .7rem; }
  .kt-brand__txt small { display: none; }
  .kt-brand__txt b { font-size: 1.1rem; }
  .kt-nav a { padding: .5rem .5rem .45rem; font-size: .9rem; letter-spacing: .08em; }
  .kt-doc { padding-top: 1.4rem; }
  .kt-datapage { border-radius: 4px; }
  .kt-datapage::before { left: 1rem; }
  .kt-doc > header[data-part="hero"] { padding: 1.9rem 1rem 1rem; }
  .kt-photo { margin: 0 1rem 1rem; }
  .kt-photo img { border-width: 4px; }
  .kt-seal { width: 5.2rem; height: 5.2rem; left: auto; right: -.6rem; bottom: -1.4rem; }
  .kt-mrz { margin: 0 .3rem .4rem; padding: .6rem .7rem .5rem; letter-spacing: .12em; font-size: 2.1vw; }
  .kt-datapage { background-size: 240px 240px, auto; background-position: calc(100% + 110px) -100px, 0 0; }
  [data-part="dek"] { font-size: 1rem; }
  .kt-field { margin-right: 1.1rem; }
  .kt-doc > section { padding-top: 4rem; }
  .kt-doc h3 { margin-top: 2rem; }
  .kt-doc dl { grid-template-columns: 1fr; padding: .2rem 1rem; }
  .kt-doc dt { padding: .8rem 0 .1rem; border-bottom: 0; }
  .kt-doc dd { padding: 0 0 .8rem; }
  .kt-doc ol[data-part="steps"] > li { padding-left: 3.2rem; }
  .kt-doc ol[data-part="steps"] > li::before { width: 2.45rem; }
  .kt-doc [data-part="warn"], .kt-doc [data-part="note"] { padding: 1.3rem 1rem .2rem; }
  .kt-doc figure[data-part="shot"] { padding: .45rem .45rem .1rem; }
  .kt-doc figure[data-part="shot"]::before, .kt-doc figure[data-part="shot"]::after { width: 16px; height: 16px; }
  /* stacked visa rows */
  .kt-visa table, .kt-visa thead, .kt-visa tbody, .kt-visa tr, .kt-visa td { display: block; width: 100%; }
  .kt-visa thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .kt-visa tr { padding: .75rem 1rem .6rem 1.2rem; border-bottom: 1px solid var(--p-rule); }
  .kt-visa tr:last-child { border-bottom: 0; }
  .kt-visa td { padding: .15rem 0 .35rem; border: 0; }
  .kt-doc .kt-visa td:first-child { padding-left: 0; font-size: 1rem; padding-bottom: .4rem; border-bottom: 1px dotted var(--p-rule); margin-bottom: .35rem; }
  .kt-visa td[data-label]:not(:first-child)::before {
    content: attr(data-label); display: block; font: 600 .7rem/1.5 var(--f-serif); letter-spacing: .16em; color: var(--p-red);
  }
  .kt-visa tbody tr:hover td { background: none; }
  .kt-doc > aside[data-part="cta"]::before { padding-left: 1.1rem; }
  .kt-doc > aside[data-part="cta"] > p { margin-left: 1.1rem; margin-right: 1.1rem; }
  .kt-doc > aside[data-part="cta"] a[data-cta] { width: 100%; justify-content: center; }
  .kt-sticker-mrz { margin-left: 1.1rem; margin-right: 1.1rem; }
  #faq summary { padding: 1rem 2.6rem 1rem 2.7rem; font-size: 1rem; }
  #faq summary::after { right: .2rem; width: 1.35rem; height: 1.35rem; margin-top: -.675rem; }
  #faq details > p { padding: 0 .6rem 1.15rem 2.7rem; }
  .kt-cover__in { grid-template-columns: minmax(0, 1fr); }
  .kt-cover__nav { justify-content: flex-start; }
  .kt-cover__mail { justify-self: start; }
  .kt-sheet { padding-top: 2.4rem; }
}
