/* 新KAKU診断（#view-lab の中だけに効くスタイル）。公開サイトのPERSONAL BOOKに合わせた、ダークの単一トーン。
   サイト全体（style.css）には影響しないよう、すべて #view-lab の中に閉じています。 */
#view-lab {
  color-scheme: dark;
  /* 共通デザイン（kaku-theme.css）のトークンを使う */
  --panel: var(--k-card); --panel-2: var(--k-card-2);
  --text: var(--k-text); --soft: var(--k-soft); --faint: var(--k-faint);
  --line: var(--k-line); --line-2: var(--k-line-2);
  --gold: var(--k-gold); --glow: var(--k-gold-hi); --vivid: var(--k-gold-lo); --vivid-2: var(--k-gold);
  --warn-bg: rgba(200,169,107,.10); --warn-line: rgba(200,169,107,.42); --warn-text: #EBD9AE;
  --ok: var(--k-ok); --low: var(--k-warn); --accent: var(--k-gold-hi);
  --jp: var(--k-sans); --serif: var(--k-serif); --mono: var(--k-mono);
  --r: var(--r-card);
}
#view-lab, #view-lab *, #view-lab *::before, #view-lab *::after { box-sizing: border-box; }
#view-lab {
  color: var(--text); font-family: var(--jp); font-size: 15px; line-height: 1.85;
  -webkit-text-size-adjust: 100%; min-height: 70vh;
}
#view-lab[hidden] { display: none; }
#view-lab .k-app { max-width: 560px; margin: 0 auto; padding: 0 16px 72px; min-height: 70vh; }
.k-app h1, .k-app h2, .k-app h3, .k-app p, .k-app ul { margin: 0; padding: 0; }
.k-app p + p { margin-top: 10px; }
.k-app img { display: block; max-width: 100%; }
:where(#view-lab) button { font-family: inherit; color: inherit; }
.k-hidden { display: none !important; }

/* 上部バー */
.k-top { position: sticky; top: var(--kaku-header-h, 0px); z-index: 20; margin: 0 -16px 12px; padding: 10px 16px 8px;
  background: rgba(11,16,32, .94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line-2); }
.k-top-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.k-logo { font-weight: 800; letter-spacing: .08em; font-size: 16px; }
.k-logo small { font-family: var(--mono); font-weight: 600; font-size: 10px; letter-spacing: .12em; color: var(--gold);
  margin-left: 8px; border: 1px solid var(--warn-line); border-radius: 999px; padding: 1px 8px; vertical-align: 2px; }
.k-link { background: none; border: 0; color: var(--soft); font-size: 12px; padding: 8px; min-height: 40px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.k-progress { margin-top: 6px; }
.k-progress-label { font-size: 12px; color: var(--soft); display: flex; justify-content: space-between; gap: 8px; }
.k-progress-label b { color: var(--text); font-weight: 700; }
.k-bar { height: 4px; background: rgba(255,255,255,.1); border-radius: 999px; overflow: hidden; margin-top: 4px; }
.k-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--vivid), var(--vivid-2)); border-radius: 999px; }

/* 共通部品 */
.k-kicker { font-family: var(--serif); font-size: 12px; letter-spacing: .26em; color: var(--gold); font-weight: 700; margin: 8px 0 6px; }
.k-title { font-family: var(--serif); font-size: 24px; line-height: 1.5; font-weight: 700; letter-spacing: .02em; text-wrap: balance; }
.k-q { font-family: var(--serif); font-size: 19px; line-height: 1.6; font-weight: 700; text-wrap: balance; margin: 10px 0 4px; }
.k-sub { color: var(--soft); font-size: 13.5px; margin-top: 8px; }
.k-h2 { font-family: var(--serif); font-size: 18px; font-weight: 700; margin: 34px 0 10px; letter-spacing: .02em; }
.k-h3 { font-size: 14px; font-weight: 700; margin: 18px 0 6px; color: var(--glow); letter-spacing: .04em; }
.k-soft { color: var(--soft); font-size: 13px; }
.k-faint { color: var(--faint); font-size: 12px; }
.k-card { background: rgba(22,28,48, .88); border: 1px solid var(--line); border-radius: var(--r); padding: 16px; margin: 12px 0; }
.k-card.plain { border-color: var(--line-2); }
.k-note { font-size: 12.5px; line-height: 1.7; color: var(--warn-text); background: var(--warn-bg); border: 1px solid var(--warn-line); border-radius: var(--r-sm); padding: 9px 12px; margin: 12px 0; }
.k-note.info { color: var(--soft); background: rgba(255,255,255,.05); border-color: var(--line-2); }
.k-note b { color: var(--text); }
.k-btn:focus-visible, .k-choice:focus-visible, .k-dcard:focus-visible, .k-link:focus-visible, .k-chip:focus-visible { outline: 3px solid var(--glow); outline-offset: 2px; }
.k-btn.ghost { padding-left: 12px; padding-right: 12px; font-weight: 500; }
.k-btn[disabled] { opacity: .38; cursor: not-allowed; box-shadow: none; }
.k-btn.block { display: flex; width: 100%; }
.k-stack { display: flex; flex-direction: column; gap: 10px; }
.k-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.k-between { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.k-tag { display: inline-block; font-family: var(--mono); font-size: 10.5px; letter-spacing: .06em; padding: 1px 9px; border-radius: 999px; border: 1px solid var(--line); color: var(--glow); }
.k-tag.gold { color: var(--gold); border-color: var(--warn-line); background: var(--warn-bg); }
.k-tag.dim { color: var(--soft); border-color: var(--line-2); }
.k-foot { margin-top: 28px; }
.k-list { padding-left: 1.2em; }
.k-list li { margin: 4px 0; }

/* 設問：上下2枚のカード＋5つのボタン */
.k-pair { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.k-side { background: rgba(22,28,48, .92); border: 1px solid var(--line-2); border-radius: var(--r); padding: 14px 16px; font-size: 16px; line-height: 1.7; position: relative; }
.k-side::before { content: attr(data-label); display: inline-block; font-family: var(--mono); font-size: 11px; letter-spacing: .1em; color: var(--faint); margin-right: 10px; }
.k-side.lit { border-color: var(--glow); box-shadow: 0 0 0 1px rgba(200,169,107,.4); }
.k-choices { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.k-choice { text-align: center; min-height: 50px; padding: 10px 14px; border-radius: var(--r); border: 1px solid var(--line-2); background: rgba(255,255,255,.05); font-size: 15px; cursor: pointer; }
.k-choice:hover { background: rgba(255,255,255,.1); }
.k-choice.on { background: linear-gradient(135deg, rgba(200,169,107,.8), rgba(227,204,149,.7)); border-color: transparent; color: #fff; font-weight: 700; }
.k-choice small { display: block; font-size: 11.5px; color: var(--faint); line-height: 1.4; margin-top: 2px; }
.k-choice.on small { color: rgba(255,255,255,.85); }
.k-back { margin-top: 10px; }

/* 価値観カード */
.k-dgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; }
.k-dcard { text-align: left; padding: 12px 12px 10px; min-height: 92px; border-radius: var(--r); border: 1px solid var(--line-2); background: rgba(22,28,48, .9); cursor: pointer; display: flex; flex-direction: column; gap: 3px; }
.k-dcard b { font-size: 15px; line-height: 1.4; }
.k-dcard span { font-size: 11.5px; line-height: 1.5; color: var(--soft); }
.k-dcard.on { border-color: var(--glow); background: linear-gradient(160deg, rgba(200,169,107,.38), rgba(227,204,149,.22)); box-shadow: 0 0 0 1px rgba(200,169,107,.5); }
.k-dcard.off { opacity: .35; cursor: not-allowed; }
.k-count { font-family: var(--mono); font-size: 13px; color: var(--glow); letter-spacing: .06em; }
.k-sticky { position: sticky; bottom: 0; margin: 0 -16px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(180deg, rgba(11,16,32,0), rgba(11,16,32,.96) 30%); }
.k-sum { display: flex; flex-wrap: wrap; gap: 6px; }
.k-chip { display: inline-block; padding: 3px 12px; border-radius: 999px; border: 1px solid var(--line); font-size: 13px; background: rgba(200,169,107,.08); }
.k-chip.top { border-color: var(--gold); color: var(--gold); background: rgba(200,169,107,.12); }
.k-chip.less { border-color: var(--line-2); color: var(--soft); background: rgba(255,255,255,.04); }
.k-period { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.k-period .k-choice { flex: 1 1 28%; min-height: 44px; padding: 8px; }
.k-input { width: 100%; min-height: 46px; padding: 8px 12px; border-radius: var(--r-sm); border: 1px solid var(--line); background: rgba(255,255,255,.06); color: var(--text); font: inherit; font-size: 16px; }
textarea.k-input { min-height: 96px; resize: vertical; line-height: 1.7; }

/* 結果 */
.k-hero { text-align: center; padding: 6px 0 4px; }
.k-hero-img { width: min(54vw, 210px); aspect-ratio: 2 / 3; margin: 6px auto 8px; border-radius: 22px; overflow: hidden; border: 2px solid var(--tc, var(--line)); box-shadow: 0 10px 40px rgba(0,0,0,.45), 0 0 40px color-mix(in srgb, var(--tc, #5EC8F2) 35%, transparent); background: #0e1226; }
.k-hero-img img { width: 100%; height: 100%; object-fit: cover; }
.k-core-mark { width: min(50vw, 190px); aspect-ratio: 1 / 1; margin: 10px auto; border-radius: 50%; border: 2px solid var(--gold); display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 64px; font-weight: 700; color: var(--gold); background: radial-gradient(circle, rgba(200,169,107,.16), rgba(200,169,107,0) 70%); }
.k-typename { font-family: var(--serif); font-size: 20px; font-weight: 700; margin-top: 4px; }
.k-typename small { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; color: var(--soft); margin-left: 8px; font-weight: 500; }
.k-typecap { font-size: 12px; color: var(--soft); margin-top: 2px; }
.k-portrait { margin-top: 18px; text-align: left; }
.k-portrait .lead { font-family: var(--serif); font-size: 21px; line-height: 1.75; font-weight: 700; text-wrap: pretty; }
.k-portrait .lead + .lead { margin-top: 8px; font-size: 18px; }
.k-scene { display: flex; gap: 10px; margin-top: 10px; }
.k-scene b { flex: 0 0 5.5em; font-size: 13px; color: var(--gold); padding-top: 2px; }
.k-scene p { flex: 1; min-width: 0; font-size: 14.5px; }
.k-rows { display: flex; flex-direction: column; gap: 10px; }
.k-rowitem { display: flex; gap: 10px; align-items: flex-start; }
.k-rowitem .nm { flex: 0 0 8em; font-weight: 700; font-size: 14px; }
.k-rowitem .tx { flex: 1; min-width: 0; font-size: 14px; }
.k-st { display: inline-block; font-size: 12px; padding: 0 9px; border-radius: 999px; border: 1px solid var(--line-2); margin-left: 6px; }
.k-st.good { color: var(--ok); border-color: rgba(127,214,177,.5); }
.k-st.mid { color: var(--soft); }
.k-st.low { color: var(--low); border-color: rgba(242,178,122,.55); }
.k-st.high { color: var(--ok); border-color: rgba(127,214,177,.5); }
.k-star { color: var(--gold); font-size: 12px; margin-right: 2px; }
.k-line { padding: 8px 0; border-bottom: 1px dashed var(--line-2); font-size: 14.5px; }
.k-line:last-child { border-bottom: 0; }
.k-line.big { color: var(--gold); }
details.k-det { border: 1px solid var(--line-2); border-radius: var(--r); background: rgba(255,255,255,.03); margin: 10px 0; }
details.k-det summary { cursor: pointer; padding: 12px 16px; font-weight: 700; font-size: 14px; list-style: none; min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
details.k-det summary::-webkit-details-marker { display: none; }
details.k-det summary::after { content: "＋"; color: var(--glow); }
details.k-det[open] summary::after { content: "－"; }
details.k-det .in { padding: 0 16px 14px; font-size: 13.5px; }
.k-ax { padding: 10px 0; border-top: 1px dashed var(--line-2); }
.k-ax:first-child { border-top: 0; }
.k-axbar { position: relative; height: 8px; background: rgba(255,255,255,.1); border-radius: 999px; margin: 8px 4px 4px; }
.k-axbar i { position: absolute; top: -3px; width: 4px; height: 14px; background: var(--glow); border-radius: 2px; transform: translateX(-2px); }
.k-axbar::before { content: ""; position: absolute; left: 50%; top: -2px; width: 1px; height: 12px; background: var(--faint); }
.k-axends { display: flex; justify-content: space-between; font-size: 11.5px; color: var(--soft); }
.k-mono { font-family: var(--mono); font-size: 12px; color: var(--soft); word-break: break-all; }

/* PERSONAL BOOK */
.k-cover { text-align: center; padding: 24px 12px 28px; border: 1px solid var(--warn-line); border-radius: 16px; margin-top: 6px;
  background: radial-gradient(120% 90% at 50% 0%, rgba(200,169,107,.14), rgba(22,28,48,.95) 60%); box-shadow: inset 0 0 0 5px rgba(200,169,107,.07); }
.k-cover .ttl { font-family: var(--serif); font-size: 22px; font-weight: 700; letter-spacing: .06em; margin-top: 10px; text-wrap: balance; }
.k-cover .for { font-size: 13px; color: var(--soft); margin-top: 8px; }
.k-chaps { display: flex; gap: 6px; overflow-x: auto; padding: 4px 0 8px; margin: 0 -16px; padding-left: 16px; padding-right: 16px; scrollbar-width: none; }
.k-chaps::-webkit-scrollbar { display: none; }
.k-chap { flex: 0 0 auto; font-size: 12.5px; padding: 6px 12px; min-height: 36px; border-radius: 999px; border: 1px solid var(--line-2); background: rgba(255,255,255,.04); color: var(--soft); cursor: pointer; white-space: nowrap; }
.k-chap.on { color: var(--gold); border-color: var(--warn-line); background: var(--warn-bg); font-weight: 700; }
.k-page { background: linear-gradient(180deg, rgba(24, 30, 60, .95), rgba(14, 18, 38, .95)); border: 1px solid var(--warn-line); border-left-width: 5px; border-radius: 6px 14px 14px 6px; padding: 22px 18px 20px; margin-top: 8px;
  box-shadow: 0 10px 34px rgba(0,0,0,.35); }
.k-page .chno { font-family: var(--serif); font-size: 12px; letter-spacing: .24em; color: var(--gold); font-weight: 700; }
.k-page .pt { font-family: var(--serif); font-size: 21px; line-height: 1.5; font-weight: 700; margin: 6px 0 12px; text-wrap: balance; }
.k-page .pl { font-family: var(--serif); font-size: 17.5px; line-height: 1.85; font-weight: 700; padding: 0 0 14px; border-bottom: 1px solid var(--line-2); margin-bottom: 14px; color: #fff; }
.k-page .bd p { font-size: 15px; line-height: 1.95; }
.k-page .bd h3 { font-family: var(--serif); font-size: 15px; color: var(--gold); margin: 18px 0 4px; }
.k-page .bd ul { padding-left: 1.2em; }
.k-page .bd li { margin: 8px 0; font-size: 15px; line-height: 1.9; }
.k-kv { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line-2); }
.k-kv b { flex: 0 0 7.5em; font-size: 13px; color: var(--gold); }
.k-kv span { flex: 1; min-width: 0; font-size: 14.5px; line-height: 1.8; }
.k-pager { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 14px; }
.k-pager .pn { font-family: var(--mono); font-size: 12px; color: var(--soft); }
.k-next { font-size: 12.5px; color: var(--soft); text-align: center; margin-top: 12px; }

@media (min-width: 640px) {
  .k-app { padding-bottom: 96px; }
  .k-choices { flex-direction: column; }
}
@media (max-width: 360px) {
  .k-dgrid { grid-template-columns: 1fr; }
  .k-title { font-size: 21px; }
  .k-rowitem { flex-direction: column; gap: 2px; }
  .k-rowitem .nm { flex: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .k-view { animation: kfade .22s ease-out; }
  @keyframes kfade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}

/* ============ 設問画面（36問・追加質問）：質問1行＋A/B＋5択 ============ */
body.kaku-focus .site-header, body.kaku-focus .site-footer { display: none; }
.k-logo-btn { background: none; border: 0; padding: 6px 0; cursor: pointer; font-family: var(--serif); font-size: 17px; font-weight: 800; letter-spacing: .1em; color: var(--text); min-height: 40px; }
.k-logo-btn span { font-weight: 500; color: var(--glow); }
.k-top--flow { padding-bottom: 6px; }
.k-top--flow .k-top-row { gap: 10px; }
.k-top--flow .k-top-row .k-logo-btn { margin-right: auto; }
.k-stepchip { font-size: 12px; letter-spacing: .08em; color: var(--soft); border: 1px solid var(--line); border-radius: 999px; padding: 2px 10px; white-space: nowrap; }
.k-stepchip b { color: var(--text); font-size: 13px; }
.k-info { width: 28px; height: 28px; min-width: 28px; border-radius: 50%; border: 1px solid var(--line-2); background: none; color: var(--faint); font-family: var(--serif); font-style: italic; font-weight: 700; font-size: 14px; cursor: pointer; padding: 0; }
.k-top--flow .k-bar { margin-top: 2px; height: 5px; }
.k-top--flow .k-bar i { transition: width .45s cubic-bezier(.2,.7,.2,1); }
.k-qcount { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12px; color: var(--soft); margin-top: 5px; }
.k-qcount span:last-child { font-family: var(--mono); letter-spacing: .06em; white-space: nowrap; }
.k-qcount b { color: var(--text); font-size: 15px; }

.k-q2 { font-family: var(--serif); font-size: 22px; line-height: 1.5; font-weight: 700; text-wrap: balance; margin: 14px 0 12px; letter-spacing: .01em; }
/* ============ 1つの文 ＋ 横並び5段階（CORE36 / 追加質問） ============ */
.k-qlead { margin: 14px 0 0; font-size: 12px; letter-spacing: .14em; color: var(--k-gold); font-family: var(--k-sans); }
.k-qlead + .k-q2 { min-height: 4.5em; margin-top: 6px; word-break: auto-phrase; }   /* 3行ぶんの高さを確保（問いによらず回答ボタンの位置をそろえる） */
.k-lkread { min-height: 24px; margin: 0 0 12px; font-size: 14px; font-weight: 700; color: var(--k-faint); text-align: center; letter-spacing: .04em; }
.k-lkread.set { color: var(--k-gold-hi); }
.k-lk { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 6px; }
.k-lkb { position: relative; min-width: 0; height: 60px; padding: 0; border-radius: 14px; border: 1px solid var(--k-line-2); background: var(--k-card);
  color: var(--k-soft); font-family: var(--k-serif); font-size: 21px; font-weight: 700; cursor: pointer; line-height: 1;
  transition: background .12s, border-color .12s, transform .12s, box-shadow .12s; -webkit-tap-highlight-color: transparent; }
.k-lkb.st2 { border-color: var(--k-line); color: var(--k-text); }
.k-lkb:active { transform: scale(.95); }
.k-lkb.on { background: linear-gradient(135deg, var(--k-gold-hi), var(--k-gold)); border-color: transparent; color: var(--k-ink);
  box-shadow: 0 0 0 1px rgba(227,204,149,.6), var(--glow-gold); }
.k-lkb.on::after { content: "✓"; position: absolute; right: 5px; top: 3px; font-size: 11px; font-weight: 800; font-family: var(--k-sans); }
.k-lkb:focus-visible { outline: 3px solid rgba(227,204,149,.55); outline-offset: 2px; }
@media (hover: hover) { .k-lkb:hover:not(.on) { background: var(--k-card-2); border-color: var(--k-gold); } }
.k-lkcap { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 0 6px; margin-top: 8px; font-size: 11px; line-height: 1.4; color: var(--k-soft); }
.k-lkcap span { min-width: 0; text-align: center; }
.k-lkcap .adv { font-weight: 700; white-space: nowrap; }
.k-lkcap .tl { color: var(--k-faint); }
.k-lkcap .hit { color: var(--k-gold-hi); }
.k-lkcap .tl.hit { color: var(--k-gold-hi); }
@media (prefers-reduced-motion: no-preference) {
  .k-lkb.on { animation: kpop .18s ease-out; }
  @keyframes kpop { 0% { transform: scale(.97); } 60% { transform: scale(1.015); } 100% { transform: scale(1); } }
  .k-view { animation: ksl-in .2s ease-out; }
  .k-view.back { animation: ksl-back .2s ease-out; }
  @keyframes ksl-in { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
  @keyframes ksl-back { from { opacity: 0; transform: translateX(-16px); } to { opacity: 1; transform: none; } }
}
.k-back { margin-top: 14px; }
.k-back .k-btn { min-height: 44px; padding: 8px 18px; font-size: 14px; }
@media (max-height: 740px) {
  .k-q2 { font-size: 20px; margin: 8px 0 8px; }
  .k-lkb { height: 54px; } .k-qlead { margin-top: 8px; }
}
@media (max-width: 340px) {
  .k-stepchip { padding: 2px 7px; font-size: 11px; }
  .k-logo-btn { font-size: 15px; letter-spacing: .06em; }
  .k-lk, .k-lkcap { column-gap: 4px; } .k-lkb { font-size: 19px; }
  .k-lkcap { font-size: 10px; letter-spacing: 0; }
  .k-q2 { font-size: 19px; }
}
#view-lab { overflow-x: clip; }
body.kaku-focus, html:has(body.kaku-focus) { background: #0A0D1C; }
.k-q2 { margin-bottom: 16px; }
@media (max-height: 740px) { .k-q2 { margin-bottom: 12px; } }

/* ============ 共通デザインに合わせた仕上げ（診断開始・RESULT・PERSONAL BOOK） ============ */
#view-lab .k-app { padding-bottom: var(--s6); }
#view-lab h1, #view-lab h2, #view-lab h3 { text-wrap: balance; }
.k-card { background: var(--k-card); border-color: var(--k-line-2); border-radius: var(--r-card); padding: var(--s2) 18px; box-shadow: var(--shadow-card); }
.k-card.plain { background: rgba(22,28,48,.6); box-shadow: none; }
.k-note { border-radius: var(--r-sm); }
.k-list { color: var(--k-soft); }
.k-kicker { font-family: var(--k-serif); color: var(--k-gold); letter-spacing: .3em; font-size: 12px; margin: var(--s3) 0 var(--s1); }
.k-kicker--c { text-align: center; margin-top: var(--s2); }
.k-title { font-size: 24px; }
.k-title--xl { font-size: 30px; line-height: 1.5; letter-spacing: .04em; }
.k-sub { color: var(--k-soft); line-height: 2; }
.k-h2 { display: flex; align-items: center; gap: 12px; font-size: 18px; margin: var(--s5) 0 var(--s2); }
.k-h2::before { content: ""; width: 4px; height: 1.1em; background: linear-gradient(180deg, var(--k-gold-hi), var(--k-gold-lo)); border-radius: 2px; flex: 0 0 auto; }
.k-h3 { color: var(--k-gold-hi); font-family: var(--k-serif); letter-spacing: .06em; }
.k-ornament, .k-orn { display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--k-gold); margin: var(--s2) auto; max-width: 220px; }
.k-orn i { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--k-gold)); } .k-orn i:last-child { background: linear-gradient(90deg, var(--k-gold), transparent); }
.k-orn b { font-size: 9px; font-weight: 400; }

/* 上部（設問以外）：現在地 */
.k-top--page { position: static; background: none; border: 0; padding: 12px 0 0; margin: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
.k-crumb { font-family: var(--k-serif); font-size: 12px; letter-spacing: .26em; color: var(--k-faint); text-transform: uppercase; }
.k-top--page .k-link { font-size: 11.5px; }
.k-link { color: var(--k-soft); }
.k-fine { font-size: 12px; line-height: 1.8; color: var(--k-faint); margin-top: var(--s2); text-align: center; }
.k-meta { text-align: center; font-size: 12.5px; letter-spacing: .08em; color: var(--k-soft); margin: var(--s2) 0 var(--s3); }

/* 診断開始 */
.k-introhead { text-align: center; padding: var(--s3) 0 var(--s1); }
.k-introhead .k-kicker { margin-top: var(--s1); }
.k-introhead .k-sub { max-width: 22em; margin: 12px auto 0; }
.k-steps { list-style: none; margin: var(--s3) 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; counter-reset: none; }
.k-steps li { display: flex; align-items: center; gap: var(--s2); padding: 14px 16px; border-radius: var(--r-card); background: var(--k-card); border: 1px solid var(--k-line-2); }
.k-steps .no { flex: 0 0 auto; font-family: var(--k-serif); font-size: 26px; font-weight: 700; color: var(--k-gold); width: 2em; text-align: center; letter-spacing: .02em; border-right: 1px solid var(--k-line); padding-right: 12px; margin-right: 0; }
.k-steps .tx { display: flex; flex-direction: column; min-width: 0; }
.k-steps .tx b { font-size: 15.5px; line-height: 1.5; }
.k-steps .tx i { font-style: normal; font-size: 12.5px; color: var(--k-soft); line-height: 1.6; }
.k-btn--lg { min-height: 56px; font-size: 16px; }

/* 設問の上部をサイトの色に */
.k-top--flow { background: rgba(11,16,32,.94); border-bottom: 1px solid var(--k-line); }
.k-logo-btn span { color: var(--k-gold); }
.k-stepchip { border-color: var(--k-line); }
.k-bar { background: var(--k-line-2); }
.k-bar i { background: linear-gradient(90deg, var(--k-gold-lo), var(--k-gold-hi)); box-shadow: 0 0 10px rgba(200,169,107,.45); }
.k-q2 { font-family: var(--k-serif); }
.k-dcard { background: var(--k-card); }
.k-dcard.on { background: linear-gradient(160deg, rgba(200,169,107,.28), rgba(200,169,107,.10)); border-color: var(--k-gold); box-shadow: 0 0 0 1px rgba(200,169,107,.5), var(--glow-gold); }
.k-dcard b { font-family: var(--k-serif); }
.k-count { color: var(--k-gold-hi); }
.k-chip { background: rgba(200,169,107,.08); }
.k-input { background: var(--k-card); border-color: var(--k-line-2); border-radius: var(--r-sm); }
.k-input:focus { outline: none; border-color: var(--k-gold); box-shadow: 0 0 0 3px rgba(200,169,107,.2); }
.k-choice.on { background: linear-gradient(135deg, var(--k-gold-hi), var(--k-gold)); color: var(--k-ink); }
.k-choice { background: rgba(245,240,232,.04); border-radius: var(--r-sm); }
.k-sticky { background: linear-gradient(180deg, rgba(11,16,32,0), rgba(11,16,32,.96) 32%); }
details.k-det { background: rgba(22,28,48,.55); border-color: var(--k-line-2); border-radius: var(--r-sm); }
details.k-det summary::after { color: var(--k-gold); }

/* RESULT：人物像とキャラクターを主役に */
.k-hero { position: relative; padding: var(--s2) 0 var(--s1); }
.k-hero::before { content: ""; position: absolute; left: 50%; top: 4%; width: 120%; height: 78%; transform: translateX(-50%); z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 50% 50% at 50% 46%, rgba(200,169,107,.28), rgba(200,169,107,.06) 55%, transparent 72%); }
.k-hero > * { position: relative; z-index: 1; }
.k-hero-img { width: min(58vw, 224px); border-radius: 20px; padding: 0; border: 1px solid var(--k-gold); background: var(--k-card);
  box-shadow: 0 0 0 6px rgba(11,16,32,.9), 0 0 0 7px rgba(200,169,107,.4), 0 24px 56px -12px rgba(0,0,0,.75), 0 0 56px color-mix(in srgb, var(--tc, #C8A96B) 38%, transparent); }
.k-typename { font-size: 26px; margin-top: var(--s2); letter-spacing: .08em; color: var(--k-text); }
.k-typename small { display: block; margin: 4px 0 0; letter-spacing: .32em; color: var(--k-gold); font-size: 11px; }
.k-typecap { font-size: 12px; letter-spacing: .14em; color: var(--k-soft); margin-top: 6px; }
.k-core-mark { border-color: var(--k-gold); color: var(--k-gold); box-shadow: var(--glow-gold); }
.k-portrait { margin-top: var(--s2); padding: var(--s3) 20px; border-radius: var(--r-card); background: linear-gradient(180deg, rgba(28,36,64,.7), rgba(22,28,48,.7)); border: 1px solid var(--k-line); position: relative; }
.k-portrait::before { content: "“"; position: absolute; top: -6px; left: 14px; font-family: var(--k-serif); font-size: 56px; line-height: 1; color: var(--k-gold); opacity: .65; }
.k-portrait .lead { font-size: 21px; line-height: 1.8; color: var(--k-text); letter-spacing: .02em; }
.k-portrait .lead + .lead { font-size: 17px; color: var(--k-soft); font-weight: 600; }
.k-scene b { color: var(--k-gold-hi); font-family: var(--k-serif); }
.k-line.big { color: var(--k-gold-hi); }
.k-star { color: var(--k-gold-hi); }
.k-st.good, .k-st.high { color: var(--k-ok); } .k-st.low { color: var(--k-warn); }
.k-tag { color: var(--k-gold-hi); } .k-tag.gold { color: var(--k-gold-hi); }
.k-axbar i { background: var(--k-gold-hi); }
@media (prefers-reduced-motion: no-preference) {
  .k-result .k-kicker--c, .k-result .k-hero-img, .k-result .k-typename, .k-result .k-typecap, .k-result .k-orn, .k-result .k-portrait { animation: kreveal .7s cubic-bezier(.2,.7,.2,1) both; }
  .k-result .k-hero-img { animation-delay: .12s; animation-name: kreveal-img; animation-duration: .9s; }
  .k-result .k-typename { animation-delay: .5s; } .k-result .k-typecap { animation-delay: .62s; } .k-result .k-orn { animation-delay: .72s; } .k-result .k-portrait { animation-delay: .85s; }
  @keyframes kreveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes kreveal-img { from { opacity: 0; transform: scale(.92); filter: brightness(.6); } to { opacity: 1; transform: none; filter: none; } }
}

/* PERSONAL BOOK：表紙 */
.k-cover { padding: 6px; border-radius: 22px; margin-top: var(--s2); border: 1px solid var(--k-gold);
  background: linear-gradient(160deg, #161C30, #0B1020 70%); box-shadow: 0 28px 60px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(200,169,107,.15); }
.k-cover-in { text-align: center; padding: 28px 16px 24px; border-radius: 17px; border: 1px solid var(--k-line);
  background: radial-gradient(120% 70% at 50% 0%, rgba(200,169,107,.18), transparent 62%); }
.k-cover-kicker { font-family: var(--k-serif); font-size: 13px; letter-spacing: .5em; color: var(--k-gold-hi); margin-right: -.5em; }
.k-cover-img { width: min(46vw, 176px); margin: var(--s2) auto; }
.k-cover .ttl { font-family: var(--k-serif); font-size: 26px; line-height: 1.55; letter-spacing: .12em; font-weight: 700; margin-top: var(--s1); }
.k-cover .for { font-size: 12.5px; letter-spacing: .2em; color: var(--k-soft); margin-top: var(--s1); }
.k-cover .cmark { font-family: var(--k-serif); font-size: 12px; letter-spacing: .4em; color: var(--k-gold); margin-top: var(--s3); }
/* PERSONAL BOOK：ページ（スマホで読みやすく・本らしく） */
.k-chaps { margin-top: var(--s1); }
.k-chap { background: rgba(22,28,48,.8); border-color: var(--k-line-2); }
.k-chap.on { color: var(--k-ink); background: linear-gradient(135deg, var(--k-gold-hi), var(--k-gold)); border-color: transparent; }
.k-page { position: relative; margin-top: var(--s1); padding: 28px 22px 20px; border-radius: 4px 18px 18px 4px; border: 1px solid var(--k-line); border-left: 6px solid var(--k-gold);
  background: linear-gradient(180deg, #1A2140 0%, #141A33 100%); box-shadow: 0 22px 50px -22px rgba(0,0,0,.85), inset 0 0 0 4px rgba(11,16,32,.35); }
.k-page::after { content: ""; position: absolute; right: 12px; top: 12px; width: 28px; height: 28px; border-top: 1px solid var(--k-gold); border-right: 1px solid var(--k-gold); border-radius: 0 8px 0 0; opacity: .55; }
.k-page .chno { display: flex; align-items: baseline; gap: 12px; }
.k-page .chno .n { font-family: var(--k-serif); font-size: 34px; line-height: 1; color: var(--k-gold); opacity: .8; letter-spacing: .02em; }
.k-page .chno .t { font-family: var(--k-serif); font-size: 12px; letter-spacing: .22em; color: var(--k-soft); }
.k-page .pt { font-size: 23px; line-height: 1.55; margin: var(--s2) 0 var(--s2); letter-spacing: .03em; }
.k-page .pl { font-size: 17px; line-height: 1.95; color: var(--k-gold-hi); border-bottom: 0; padding: 0 0 0 14px; margin: 0 0 var(--s3); border-left: 2px solid var(--k-gold); font-weight: 600; }
.k-page .bd p { font-size: 16px; line-height: 2.05; color: var(--k-text); letter-spacing: .015em; }
.k-page .bd p + p { margin-top: 14px; }
.k-page .bd h3 { color: var(--k-gold-hi); font-size: 15.5px; margin: var(--s3) 0 6px; letter-spacing: .06em; }
.k-page .bd li { font-size: 16px; line-height: 2; }
.k-page .bd li::marker { color: var(--k-gold); }
.k-kv b { color: var(--k-gold-hi); font-family: var(--k-serif); }
.k-page .pfoot { display: flex; justify-content: space-between; margin-top: var(--s4); padding-top: 12px; border-top: 1px solid var(--k-line-2); font-family: var(--k-serif); font-size: 11px; letter-spacing: .28em; color: var(--k-faint); }
.k-pager .k-btn { min-height: 48px; padding: 10px 22px; }
.k-pager .pn { color: var(--k-soft); }
.k-next { color: var(--k-faint); letter-spacing: .06em; }
@media (prefers-reduced-motion: no-preference) {
  .k-bookview .k-page { animation: kpage .32s cubic-bezier(.2,.7,.2,1); transform-origin: left center; }
  @keyframes kpage { from { opacity: 0; transform: translateX(18px) rotateY(-4deg); } to { opacity: 1; transform: none; } }
}
@media (max-width: 360px) {
  .k-title--xl { font-size: 26px; } .k-page { padding: 24px 16px 16px; } .k-page .pt { font-size: 21px; }
}

#view-lab .k-btn { margin: 0; }
#view-lab .k-btn.block { width: 100%; }
#view-lab .k-q2 { margin-bottom: var(--s2); }
@media (max-height: 740px) { #view-lab .k-q2 { margin-bottom: 12px; } }
#view-lab .k-meta { margin: var(--s2) 0 var(--s3); }
#view-lab .k-fine { margin-top: var(--s2); }
#view-lab .k-sub { margin-top: 12px; }
#view-lab .k-stack { gap: 12px; }
#view-lab .k-typecap { margin-top: 8px; }
#view-lab .k-h2 { margin: var(--s5) 0 var(--s2); }
#view-lab .k-h3 { margin: var(--s3) 0 8px; }
#view-lab .k-soft, #view-lab .k-faint { margin-top: 8px; }
#view-lab .k-card .k-soft:first-child, #view-lab .k-card p:first-child { margin-top: 0; }
#view-lab .k-foot { margin-top: var(--s4); }
#view-lab .k-portrait .lead + .lead { margin-top: 8px; }
#view-lab .k-next { margin-top: 16px; }

/* ============ RESULT：CORE6（6つの軸の回答傾向） ============ */
.k-core6 { padding: var(--s2); }
.k-ax6 { padding: 14px 0; border-top: 1px dashed var(--k-line-2); }
.k-ax6:first-child { border-top: 0; padding-top: 4px; } .k-ax6:last-child { padding-bottom: 4px; }
.k-axhead { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.k-axhead b { font-family: var(--k-serif); font-size: 17px; }
.k-axhead .en { font-size: 11px; letter-spacing: .18em; color: var(--k-faint); }
.k-axread { margin: 2px 0 0; font-size: 14px; font-weight: 700; color: var(--k-gold-hi); overflow-wrap: anywhere; }
.k-axread.mid { color: var(--k-soft); }
.k-ax6 .k-axbar { height: 8px; margin: 14px 4px 8px; background: rgba(245,240,232,.1); }
.k-ax6 .k-axbar i { top: -5px; width: 8px; height: 18px; border-radius: 4px; transform: translateX(-4px); background: linear-gradient(180deg, var(--k-gold-hi), var(--k-gold)); box-shadow: 0 0 10px rgba(200,169,107,.55); }
.k-ax6 .k-axends { font-size: 12px; font-weight: 700; }
.k-axmeas { margin: 6px 0 0; font-size: 12px; line-height: 1.6; color: var(--k-faint); }
.k-line.top { font-family: var(--k-serif); font-size: 16px; line-height: 1.85; font-weight: 700; color: var(--k-text); padding: 4px 0 16px; border-bottom: 1px solid var(--k-line); }
.k-line.top + .k-line { padding-top: 14px; }

/* ============ KAKU GAP（ズレと変化） ============ */
.k-gaphero { margin: 10px 0 14px; padding: 18px 16px; border-radius: var(--r-card); border: 1px solid var(--k-gold); background: linear-gradient(160deg, rgba(200,169,107,.20), rgba(200,169,107,.05)); box-shadow: var(--glow-gold); }
.k-gaphero.ok { border-color: rgba(143,211,180,.55); background: linear-gradient(160deg, rgba(143,211,180,.14), rgba(143,211,180,.03)); box-shadow: none; }
.k-gaphero.shift { padding: 14px 16px; }
.k-gapkick { margin: 0 0 6px; font-size: 11px; letter-spacing: .24em; color: var(--k-gold-hi); font-weight: 700; }
.k-gaplead { margin: 0; font-family: var(--k-serif); font-size: 18px; line-height: 1.75; font-weight: 700; color: var(--k-text); overflow-wrap: anywhere; }
.k-gaphero.shift .k-gaplead { font-size: 15.5px; }
.k-gapsub { margin: 10px 0 0; font-size: 14px; line-height: 1.75; color: var(--k-soft); }
.k-gapstep { margin: 12px 0 0; padding-top: 10px; border-top: 1px dashed var(--k-line); font-size: 13.5px; line-height: 1.7; color: var(--k-text); }
.k-gapstep b { display: block; font-size: 11px; letter-spacing: .2em; color: var(--k-gold-hi); margin-bottom: 2px; }
.k-gaprows { display: flex; flex-direction: column; gap: 10px; }
.k-gaprow { padding: 12px 14px; border-radius: var(--r-sm); background: var(--k-card); border: 1px solid var(--k-line-2); }
.k-gaprow.low { border-color: rgba(232,185,138,.5); }
.k-gaphd { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.k-gaphd b { font-family: var(--k-serif); font-size: 16px; min-width: 0; overflow-wrap: anywhere; }
.k-gapchip { flex: 0 0 auto; font-size: 11.5px; font-weight: 700; padding: 1px 9px; border-radius: 999px; border: 1px solid var(--k-line-2); color: var(--k-soft); white-space: nowrap; }
.k-gapchip.low { color: var(--k-warn); border-color: rgba(232,185,138,.6); }
.k-gapchip.high { color: var(--k-ok); border-color: rgba(143,211,180,.5); }
.k-gb { display: grid; grid-template-columns: 4.6em minmax(0, 1fr) 3.4em; align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--k-soft); }
.k-gb .val { text-align: right; font-variant-numeric: tabular-nums; }
.k-gb .bar { position: relative; display: block; height: 12px; border-radius: 999px; background: rgba(245,240,232,.07); overflow: hidden; }
.k-gb .bar i { position: absolute; top: 0; bottom: 0; left: 0; display: block; }
.k-gb .bar i.imp { background: linear-gradient(90deg, var(--k-gold-lo), var(--k-gold)); opacity: .55; }
.k-gb .bar i.ful { background: linear-gradient(90deg, var(--k-gold), var(--k-gold-hi)); }
.k-gb .bar i.gap { background: repeating-linear-gradient(135deg, rgba(232,185,138,.0) 0 4px, rgba(232,185,138,.55) 4px 6px); border-left: 2px solid var(--k-warn); }
.k-gaprow.high .k-gb .bar i.gap { border-left-color: var(--k-ok); }
.k-shift { display: grid; grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr); gap: 6px; align-items: start; margin: 10px 0 12px; }
.k-shift .col { display: flex; flex-direction: column; gap: 8px; }
.k-shift .hd { margin: 0 0 2px; font-size: 12px; line-height: 1.5; letter-spacing: .08em; color: var(--k-soft); font-weight: 700; text-align: center; }
.k-shift .arr { align-self: center; text-align: center; color: var(--k-gold); font-size: 20px; padding-top: 28px; }
.k-chip6 { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-height: 58px; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--k-line-2); background: var(--k-card); text-align: center; }
.k-chip6 .nm { font-family: var(--k-serif); font-size: 14.5px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.k-chip6 .tg { font-size: 10.5px; letter-spacing: .1em; color: var(--k-faint); }
.k-chip6.kept { border-color: var(--k-line); } .k-chip6.kept .tg { color: var(--k-soft); }
.k-chip6.new { background: linear-gradient(135deg, var(--k-gold-hi), var(--k-gold)); border-color: transparent; color: var(--k-ink); box-shadow: var(--glow-gold); } .k-chip6.new .tg { color: var(--k-ink); font-weight: 800; }
.k-chip6.gone { opacity: .62; border-style: dashed; }

/* ============ PERSONAL BOOKへの案内（RESULTのいちばん下） ============ */
.k-bookban { position: relative; margin: var(--s5) 0 var(--s3); padding: 28px 18px 22px; text-align: center; border-radius: 20px; border: 1px solid var(--k-gold);
  background: radial-gradient(120% 90% at 50% 0%, rgba(200,169,107,.24), rgba(200,169,107,0) 62%), linear-gradient(180deg, #151B34, #0F1630); box-shadow: 0 0 0 1px rgba(227,204,149,.18) inset, 0 24px 60px -28px rgba(0,0,0,.8), var(--glow-gold); }
.k-bbkick { margin: 0; font-family: var(--k-serif); font-size: 12px; letter-spacing: .34em; color: var(--k-gold-hi); font-weight: 700; }
.k-bookban .k-orn { margin: 10px auto 14px; }
.k-bbtitle { margin: 0; font-family: var(--k-serif); font-size: 24px; line-height: 1.5; font-weight: 700; color: var(--k-text); text-wrap: balance; }
.k-bbsub { margin: 10px 0 0; font-family: var(--k-serif); font-size: 16px; color: var(--k-gold-hi); font-weight: 700; letter-spacing: .06em; }
.k-bbtext { margin: 14px 0 0; font-size: 14px; line-height: 1.85; color: var(--k-soft); text-align: left; }
.k-bbchaps { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; text-align: left; }
.k-bbchaps li { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(245,240,232,.05); border: 1px solid var(--k-line-2); }
.k-bbchaps .no { flex: 0 0 auto; font-family: var(--k-serif); font-size: 18px; font-weight: 700; color: var(--k-gold); width: 1.8em; }
.k-bbchaps .tx { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.k-bbchaps b { font-size: 14.5px; color: var(--k-text); overflow-wrap: anywhere; }
.k-bbchaps small { font-size: 12px; line-height: 1.5; color: var(--k-soft); overflow-wrap: anywhere; }
.k-bbhook { margin: 14px 0 0; padding: 10px 12px; border-radius: var(--r-sm); background: rgba(200,169,107,.12); border: 1px solid var(--k-line); font-size: 13.5px; line-height: 1.75; color: var(--k-text); text-align: left; }
.k-bbbtn { margin-top: 18px; min-height: 56px; font-size: 16.5px; letter-spacing: .06em; }
.k-endops { margin-top: var(--s3); }
@media (max-width: 340px) { .k-bbtitle { font-size: 21px; } .k-gaplead { font-size: 16.5px; } .k-gb { grid-template-columns: 4.2em minmax(0, 1fr) 3em; gap: 6px; } .k-chip6 .nm { font-size: 13.5px; } }

/* ---- 人物像（魅力の読み物） ---- */
.k-pt { margin-top: var(--s2); padding: 26px 20px 20px; border-radius: var(--r-card); background: linear-gradient(180deg, rgba(28,36,64,.78), rgba(22,28,48,.78)); border: 1px solid var(--k-line); text-align: left; display: flex; flex-direction: column; gap: 14px; }
.k-pt > * { margin: 0; }
.k-pt-kick { font-size: 12px; letter-spacing: .18em; color: var(--k-gold); text-align: center; }
.k-pt-title { font-family: var(--k-serif); font-size: 26px; line-height: 1.5; font-weight: 700; text-align: center; color: var(--k-gold-hi); letter-spacing: .02em; display: flex; flex-direction: column; align-items: center; gap: 0; }
.k-pt-t { white-space: nowrap; }
.k-pt-x { font-size: 18px; color: var(--k-gold); opacity: .8; line-height: 1.2; }
.k-pt-epi { margin-top: 6px; font-family: var(--k-serif); font-size: 18px; line-height: 1.85; font-weight: 700; color: var(--k-text); text-wrap: pretty; }
.k-pt-praise { font-size: 15.5px; line-height: 1.9; color: var(--k-soft); text-wrap: pretty; }
.k-pt-h { margin-top: 14px; font-family: var(--k-serif); font-size: 15px; letter-spacing: .06em; color: var(--k-gold); display: flex; align-items: center; gap: 10px; }
.k-pt-h::after { content: ""; flex: 1; height: 1px; background: var(--k-line); }
.k-pt-cards { display: flex; flex-direction: column; gap: 12px; }
.k-pt-cards, .k-pt-fans { margin: 0; }
.k-pt-card { padding: 16px; border-radius: 14px; background: rgba(11,16,32,.55); border: 1px solid var(--k-line); display: flex; flex-direction: column; gap: 8px; }
.k-pt-hd { display: flex; align-items: center; gap: 10px; }
.k-pt-no { flex: 0 0 28px; height: 28px; border-radius: 50%; background: var(--k-gold); color: var(--k-ink); font-weight: 800; display: flex; align-items: center; justify-content: center; font-size: 14px; }
.k-pt-card h4 { margin: 0; font-family: var(--k-serif); font-size: 18px; line-height: 1.5; color: var(--k-text); }
.k-pt-card p { margin: 0; font-size: 14.5px; line-height: 1.9; color: var(--k-soft); text-wrap: pretty; }
.k-pt-twist { font-size: 14.5px; line-height: 1.85; color: var(--k-soft); padding: 12px 14px; border-left: 3px solid var(--k-gold); background: rgba(200,169,107,.08); border-radius: 0 10px 10px 0; text-wrap: pretty; }
.k-pt-fans { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.k-pt-fans li { font-family: var(--k-serif); font-size: 16px; line-height: 1.7; color: var(--k-text); padding: 10px 14px; border-radius: 14px 14px 14px 3px; background: rgba(200,169,107,.12); border: 1px solid rgba(200,169,107,.28); }
.k-pt-close { margin-top: 10px; font-size: 14.5px; line-height: 1.9; color: var(--k-soft); text-align: center; text-wrap: balance; }
.k-pt-note { font-size: 12px; line-height: 1.7; color: var(--k-soft); opacity: .8; text-align: center; }
@media (max-width: 360px) { .k-pt { padding-left: 14px; padding-right: 14px; } .k-pt-title { font-size: 23px; } .k-pt-card { padding: 14px; } }
@media (prefers-reduced-motion: no-preference) { .k-result .k-pt { animation: kreveal .7s cubic-bezier(.2,.7,.2,1) .85s both; } }

/* ---- 人物像カード：「あなたには〜」の一文 ---- */
.k-pt-card p.you { color: var(--k-text); font-weight: 700; font-size: 15px; line-height: 1.8; }

/* ---- 結果：CORE6（レーダー＋6軸）・6枠・GAP（以前の無料診断結果の並び） ---- */
.k-en { font-family: var(--k-sans, inherit); font-size: 11px; letter-spacing: .12em; color: var(--k-soft); opacity: .8; font-weight: 600; margin-left: 6px; }
.k-small { font-size: 12.5px; line-height: 1.75; }
.k-radarwrap { display: flex; justify-content: center; margin: 6px 0 4px; }
.k-radar { width: min(100%, 460px); height: auto; overflow: visible; }
.k-radar .rg { fill: none; stroke: rgba(255,255,255,.16); stroke-width: 1; }
.k-radar .rd { fill: rgba(200,169,107,.28); stroke: var(--k-gold); stroke-width: 2.5; }
.k-radar .rl { fill: var(--k-soft); font-size: 13px; font-weight: 700; }
.k-core6g { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.k-c6 { padding: 10px 12px 9px; border-radius: 12px; border: 1px solid var(--k-line); background: rgba(22,28,48,.6); min-width: 0; }
.k-c6h { font-size: 12.5px; line-height: 1.5; color: var(--k-soft); }
.k-c6h b { color: var(--k-text); font-size: 13.5px; }
.k-dv { position: relative; height: 6px; margin: 8px 0 5px; border-radius: 3px; background: rgba(255,255,255,.1); }
.k-dv::after { content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: rgba(255,255,255,.35); }
.k-dv i { position: absolute; top: 0; bottom: 0; background: var(--k-gold); border-radius: 3px; min-width: 3px; }
.k-c6e { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--k-soft); opacity: .85; gap: 6px; }
.k-rb { margin-top: 12px; }
.k-rb h3 { margin: 0 0 6px; font-family: var(--k-serif); font-size: 16px; color: var(--k-text); display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px; }
.k-rb p { margin: 0; font-size: 14.5px; line-height: 1.85; color: var(--k-soft); }
.k-rb p b { color: var(--k-text); }
/* GAP */
.k-gh { margin-top: 12px; padding: 14px; border-radius: 16px; border: 1px solid var(--k-line); background: linear-gradient(180deg, rgba(28,36,64,.7), rgba(22,28,48,.7)); display: flex; flex-direction: column; gap: 12px; }
.k-ghc { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: stretch; }
.k-ghb { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--k-line); background: rgba(11,16,32,.55); min-width: 0; }
.k-ghb .tag { font-size: 11px; font-weight: 700; color: var(--k-gold); margin: 0 0 4px; }
.k-ghb .tag.now { color: var(--k-gold-hi); }
.k-ghb p { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--k-text); }
.k-gha { align-self: center; color: var(--k-soft); }
.k-ghs { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: 12px; background: rgba(11,16,32,.6); }
.k-ghs .num { font-family: var(--k-serif); font-size: 40px; line-height: 1; min-width: 56px; text-align: center; font-variant-numeric: tabular-nums; }
.k-ghs .bd { min-width: 0; flex: 1; }
.k-ghs .tier { margin: 0; font-size: 14px; font-weight: 700; color: var(--k-text); }
.k-ghs .mt { height: 7px; border-radius: 4px; background: rgba(255,255,255,.1); margin: 6px 0; overflow: hidden; }
.k-ghs .mt i { display: block; height: 100%; border-radius: 4px; }
.k-ghs .cap { margin: 0; font-size: 11.5px; line-height: 1.65; color: var(--k-soft); }
.k-ghs .num.s, .k-ghs .mt i.s { color: #3FB6A0; background: none; } .k-ghs .mt i.s { background: #3FB6A0; }
.k-ghs .num.m { color: var(--k-gold); } .k-ghs .mt i.m { background: var(--k-gold); }
.k-ghs .num.l { color: #E08A4A; } .k-ghs .mt i.l { background: #E08A4A; }
.k-ghs .num.xl { color: #E0675F; } .k-ghs .mt i.xl { background: #E0675F; }
.k-ghm { margin: 0; font-size: 14.5px; line-height: 1.9; color: var(--k-soft); }
.k-ghm b { color: var(--k-text); }
.k-ghs1 { display: block; margin-top: 8px; padding: 10px 12px; border-left: 3px solid var(--k-gold); background: rgba(200,169,107,.08); border-radius: 0 10px 10px 0; font-size: 14px; }
.k-ghs1 b { display: block; font-size: 12px; color: var(--k-gold); margin-bottom: 2px; }
@media (max-width: 400px) { .k-ghc { grid-template-columns: 1fr; } .k-gha { transform: rotate(90deg); justify-self: center; } .k-ghs .num { font-size: 34px; min-width: 48px; } }
@media (max-width: 340px) { .k-core6g { grid-template-columns: 1fr; } }
.k-h2 > span { min-width: 0; flex: 1; text-wrap: pretty; word-break: auto-phrase; }
.k-h2 > span > .k-en { display: block; margin: 3px 0 0; }
.k-h2:has(> span > .k-en)::before { align-self: stretch; height: auto; }

/* ============================================================
   PERSONAL BOOK：本のデザイン（無料の結果画面＝紺の画面 と、はっきり差をつける）
   ページは「紙」。濃い紺の机の上に、クリーム色のページが乗っている見た目。
   ============================================================ */
.k-bookview { --paper: #F4EDDA; --paper-2: #EDE3C9; --ink: #2A2216; --ink-soft: #5A4D38; --ink-faint: #8C7D62; --brown: #8A6624; --brown-hi: #A57C2E; --rule: #CDBE98; }
.k-bkt { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin: 10px 4px -1px; position: relative; z-index: 2; }
.k-bkt-b { appearance: none; border: 1px solid var(--k-line); border-bottom: 0; border-radius: 8px 8px 0 0; background: rgba(22,28,48,.85); color: var(--k-soft); font-family: var(--k-serif); font-size: 12px; min-height: 36px; padding: 6px 2px 4px; cursor: pointer; letter-spacing: .04em; }
.k-bkt-b small { font-size: inherit; }
.k-bkt-b.on { background: var(--paper); color: var(--brown); border-color: var(--paper); font-weight: 700; padding-top: 9px; margin-top: -3px; }
.k-page.paper { position: relative; margin-top: 0; padding: 26px 22px 18px 30px; color: var(--ink); border: 0; border-radius: 3px 8px 8px 3px;
  background:
    linear-gradient(90deg, rgba(60,40,10,.22) 0, rgba(60,40,10,.07) 14px, rgba(60,40,10,0) 34px),
    repeating-linear-gradient(0deg, rgba(120,95,40,.035) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, var(--paper), var(--paper-2));
  box-shadow: 0 1px 0 #fff6 inset, 3px 3px 0 -1px #E5D9BC, 5px 5px 0 -1px #D3C5A3, 7px 7px 0 -1px #BFAF8A, 0 18px 40px rgba(0,0,0,.55); }
.k-page.paper::after { display: none; }
.k-page.paper * { color: inherit; }
.k-ribbon { position: absolute; top: -2px; right: 22px; width: 18px; height: 54px; background: linear-gradient(180deg, #B3322B, #8E2420); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 82%, 0 100%); box-shadow: 0 2px 3px rgba(0,0,0,.4); }
.k-run { display: flex; justify-content: space-between; gap: 8px; padding-right: 30px; font-family: var(--k-serif); font-size: 10.5px; letter-spacing: .2em; color: var(--ink-faint) !important; border-bottom: 1px solid var(--rule); padding-bottom: 7px; }
.k-run span { color: var(--ink-faint) !important; white-space: nowrap; }
.k-chop { text-align: center; padding: 22px 0 6px; position: relative; }
.k-chop .cw { font-family: var(--k-serif); font-size: 11px; letter-spacing: .5em; margin-right: -.5em; color: var(--brown) !important; }
.k-chop .cn { font-family: var(--k-serif); font-size: 52px; letter-spacing: .08em; line-height: 1.15; font-weight: 700; color: var(--brown-hi) !important; opacity: .9; margin: 2px 0 0; }
.k-page.paper .pt { font-family: var(--k-serif); font-size: 24px; line-height: 1.5; font-weight: 700; letter-spacing: .08em; margin: 2px 0 10px; color: var(--ink) !important; text-wrap: balance; }
.k-orn2 { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 8px 0 14px; color: var(--brown) !important; }
.k-orn2 i { height: 1px; width: 56px; background: linear-gradient(90deg, transparent, var(--brown)); }
.k-orn2 i:last-child { background: linear-gradient(270deg, transparent, var(--brown)); }
.k-orn2 b { font-size: 9px; color: var(--brown) !important; }
.k-page.paper .pl { font-family: var(--k-serif); font-size: 15px; line-height: 2; color: var(--ink-soft) !important; border: 0; padding: 0 4px; margin: 0 0 8px; font-weight: 500; text-align: center; text-wrap: balance; }
.k-page.paper .bd { margin-top: 10px; }
.k-sec { padding-top: 22px; margin-top: 8px; border-top: 1px solid var(--rule); }
.k-sec:first-child { border-top: 0; padding-top: 12px; }
.k-page.paper .sh { font-family: var(--k-serif); font-size: 19px; line-height: 1.55; font-weight: 700; letter-spacing: .05em; color: var(--ink) !important; margin: 0 0 6px; display: flex; gap: 10px; align-items: baseline; }
.k-page.paper .sh .sn { font-size: 12px; letter-spacing: .1em; color: var(--brown) !important; border: 1px solid var(--brown); border-radius: 3px; padding: 0 5px; line-height: 1.7; flex: 0 0 auto; transform: translateY(-2px); }
.k-page.paper .sl { font-family: var(--k-serif); font-size: 14px; line-height: 1.95; color: var(--ink-faint) !important; margin: 0 0 12px; padding-left: 12px; border-left: 2px solid var(--rule); }
.k-page.paper .bd p { font-family: var(--k-serif); font-size: 16px; line-height: 2.15; color: var(--ink) !important; letter-spacing: .03em; text-align: justify; text-wrap: pretty; }
.k-page.paper .bd p + p { margin-top: 14px; }
.k-page.paper .bd p.sl + p, .k-sec > p.sl + p::first-letter { }
.k-page.paper .bd h3 { font-family: var(--k-serif); font-size: 14px; color: var(--brown) !important; margin: 20px 0 4px; letter-spacing: .12em; display: flex; align-items: center; gap: 8px; }
.k-page.paper .bd h3::before { content: "◆"; font-size: 8px; }
.k-page.paper .bd ul { padding-left: 1.3em; margin: 6px 0 0; }
.k-page.paper .bd li { font-family: var(--k-serif); font-size: 16px; line-height: 2.05; color: var(--ink) !important; margin: 10px 0; }
.k-page.paper .bd li::marker { color: var(--brown); content: "❖  "; font-size: 12px; }
.k-page.paper .k-kv { border-bottom: 1px dotted var(--ink-faint); padding: 10px 0; }
.k-page.paper .k-kv b { color: var(--brown) !important; font-family: var(--k-serif); font-size: 13px; letter-spacing: .06em; }
.k-page.paper .k-kv span { font-family: var(--k-serif); font-size: 15px; color: var(--ink) !important; line-height: 1.9; }
.k-page.paper .pfoot { margin-top: 28px; padding-top: 10px; border-top: 1px solid var(--rule); justify-content: center; font-family: var(--k-serif); font-size: 12px; letter-spacing: .3em; color: var(--ink-faint) !important; }
.k-page.paper .pfoot span { color: var(--ink-faint) !important; }
.k-bookview .k-pager { margin-top: 22px; }
@media (prefers-reduced-motion: no-preference) { .k-bookview .k-page.paper { animation: kpage .38s cubic-bezier(.2,.7,.2,1); transform-origin: left center; } }
@media (max-width: 360px) { .k-page.paper { padding: 22px 16px 16px 24px; } .k-chop .cn { font-size: 54px; } .k-page.paper .pt { font-size: 21px; } .k-page.paper .bd p, .k-page.paper .bd li { font-size: 15px; } .k-bkt-b { font-size: 11px; } }

/* ---- PERSONAL BOOK 0.4：回答の引用／仮説／選べる提案 ---- */
.k-page.paper .bd .k-quote { margin: 14px 0 10px; padding: 12px 14px 8px; background: rgba(138,102,36,.08); border-left: 3px solid var(--brown); border-radius: 0 6px 6px 0; }
.k-page.paper .bd .k-quote .qt { font-family: var(--k-serif); font-size: 11.5px; letter-spacing: .22em; color: var(--brown) !important; margin: 0 0 4px; text-align: left; }
.k-page.paper .bd .k-quote ul { list-style: none; padding: 0; margin: 0; }
.k-page.paper .bd .k-quote li { margin: 0; padding: 7px 0; border-top: 1px dotted var(--rule); font-size: 14.5px; line-height: 1.85; display: flex; flex-direction: column; gap: 1px; }
.k-page.paper .bd .k-quote li:first-child { border-top: 0; }
.k-page.paper .bd .k-quote li::marker { content: ""; }
.k-page.paper .bd .k-quote .qx::before { content: "“"; color: var(--brown); }
.k-page.paper .bd .k-quote .qx::after { content: "”"; color: var(--brown); }
.k-page.paper .bd .k-quote .ql { font-family: var(--k-serif); font-size: 13px; color: var(--brown) !important; font-weight: 700; letter-spacing: .04em; }
.k-page.paper .bd .k-hyp { position: relative; margin: 12px 0; padding: 10px 12px 10px 12px; font-size: 15px; line-height: 2; background: rgba(90,77,56,.07); border-radius: 6px; text-align: left; }
.k-page.paper .bd .k-hyp .hl { display: inline-block; margin-right: 8px; padding: 0 7px; font-size: 11px; letter-spacing: .12em; line-height: 1.7; color: var(--ink-soft) !important; border: 1px solid var(--ink-faint); border-radius: 3px; transform: translateY(-1px); }
.k-page.paper .bd .k-choices { margin: 14px 0 8px; padding: 10px 14px 6px; border: 1px solid var(--rule); border-radius: 8px; background: rgba(255,255,255,.35); }
.k-page.paper .bd .k-choices .cl { font-family: var(--k-serif); font-size: 12.5px; letter-spacing: .1em; color: var(--brown) !important; margin: 0 0 2px; text-align: left; font-weight: 700; }
.k-page.paper .bd .k-choices ul { list-style: none; padding: 0; margin: 0; }
.k-page.paper .bd .k-choices li { margin: 0; padding: 8px 0; border-top: 1px dotted var(--rule); font-size: 15px; line-height: 1.9; display: flex; flex-direction: column; gap: 2px; }
.k-page.paper .bd .k-choices li:first-child { border-top: 0; }
.k-page.paper .bd .k-choices li::marker { content: ""; }
.k-page.paper .bd .k-choices .ctag { font-family: var(--k-serif); font-size: 11.5px; letter-spacing: .12em; color: var(--brown) !important; }
.k-page.paper .bd .k-kv { margin: 2px 0; }
.k-page.paper .k-kv b { flex-basis: 9.5em; }

/* ============ KAKU MATCHへの案内（RESULTのいちばん下・PERSONAL BOOKバナーの直下） ============ */
.k-matchban { position: relative; margin: var(--s3) 0 var(--s3); padding: 26px 18px 22px; text-align: center; border-radius: 20px; border: 1px solid var(--k-gold);
  background: linear-gradient(180deg, #131A33, #0E1429); box-shadow: 0 0 0 1px rgba(227,204,149,.10) inset, 0 20px 50px -30px rgba(0,0,0,.8); }
.k-app .k-mbkick { margin: 0; font-family: var(--k-serif); font-size: 12px; letter-spacing: .34em; color: var(--k-gold-hi); font-weight: 700; }
.k-app .k-mbring { display: block; margin: 14px auto 12px; max-width: 100%; height: auto; }
.k-app .k-mbring .ring { fill: none; stroke: var(--k-gold); stroke-width: 1.2; }
.k-app .k-mbring .lens { fill: rgba(200,169,107,.22); stroke: none; }
.k-app .k-mbtitle { margin: 0; font-family: var(--k-serif); font-size: 24px; line-height: 1.5; font-weight: 700; color: var(--k-text); text-wrap: balance; }
.k-app .k-mbsub { margin: 10px 0 0; font-family: var(--k-serif); font-size: 16px; color: var(--k-gold-hi); font-weight: 700; letter-spacing: .06em; }
.k-app .k-mbtext { margin: 14px 0 0; font-size: 14px; line-height: 1.85; color: var(--k-soft); text-align: left; }
.k-app .k-mbchaps { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; text-align: left; }
.k-app .k-mbchaps li { display: flex; gap: 12px; align-items: center; padding: 9px 12px; border-radius: var(--r-sm); background: rgba(245,240,232,.05); border: 1px solid var(--k-line-2); }
.k-app .k-mbchaps .no { flex: 0 0 auto; font-family: var(--k-serif); font-size: 18px; font-weight: 700; color: var(--k-gold); width: 1.8em; }
.k-app .k-mbchaps b { min-width: 0; font-size: 14.5px; color: var(--k-text); overflow-wrap: anywhere; }
#view-lab .k-mbbtn { margin-top: 18px; min-height: 56px; padding-left: 14px; padding-right: 14px; font-size: 15.5px; letter-spacing: .03em; border-color: var(--k-gold); color: var(--k-gold-hi); }
@media (max-width: 340px) { .k-app .k-mbtitle { font-size: 21px; } #view-lab .k-mbbtn { font-size: 15px; } }
.k-mbbtn .ar { margin-left: 8px; }

/* ============ PERSONAL BOOKバナーの余白だけを調整（共通の p / ボタンの余白リセットに消されていた分を戻す。文言・色・動作は変更なし） ============ */
.k-app .k-bbsub { margin-top: 10px; }
.k-app .k-bbtext { margin-top: 14px; }
.k-app .k-bbhook { margin-top: 14px; padding: 10px 12px; }
#view-lab .k-bbbtn { margin-top: 18px; }

/* ============ PERSONAL BOOK最終ページ：KAKU MATCHへの案内カード ============ */
.k-matchnext { margin: var(--s4) 0 var(--s3); padding: 20px 18px 18px; text-align: center; border-radius: 18px; border: 1px solid var(--k-gold);
  background: linear-gradient(180deg, #131A33, #0E1429); box-shadow: 0 0 0 1px rgba(227,204,149,.10) inset, 0 16px 40px -28px rgba(0,0,0,.8); }
.k-matchnext .k-mbring { margin: 0 auto 8px; }
.k-app .k-mnk { margin: 0; font-family: var(--k-serif); font-size: 11.5px; letter-spacing: .34em; color: var(--k-gold-hi); font-weight: 700; }
.k-app .k-mnt { margin: 8px 0 0; font-family: var(--k-serif); font-size: 21px; line-height: 1.55; font-weight: 700; color: var(--k-text); text-wrap: balance; }
.k-app .k-mntx { margin: 10px 0 0; font-size: 13.5px; line-height: 1.85; color: var(--k-soft); text-align: left; }
.k-matchnext .k-mbbtn { margin-top: 16px; }

/* ============ KAKU MATCH画面：相手のタイプと関係性を選ぶ ============ */
.k-match { padding-bottom: var(--s4); }
.k-app .k-mtitle { margin: 6px 0 0; text-align: center; font-size: 26px; line-height: 1.5; }
.k-app .k-mlead { margin: 12px 0 0; text-align: center; line-height: 1.9; }
.k-app .k-mhint { margin: 0 0 4px; font-size: 13px; line-height: 1.8; }
.k-app .k-mgrp { margin: 14px 0 6px; font-family: var(--k-serif); font-size: 12px; letter-spacing: .2em; color: var(--k-gold); font-weight: 700; }
.k-mgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.k-mt { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 60px; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--k-line-2); background: var(--k-card); color: var(--k-text); font-family: inherit; text-align: left; cursor: pointer; margin: 0; }
.k-mt img { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; object-position: top; background: #0e1226; border: 1px solid var(--k-line-2); }
.k-mt .nm { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.k-mt b { font-size: 14px; overflow-wrap: anywhere; }
.k-mt small { font-size: 10.5px; letter-spacing: .06em; color: var(--k-soft); overflow-wrap: anywhere; }
.k-mt.on { border-color: var(--k-gold-hi); background: rgba(200,169,107,.14); box-shadow: 0 0 0 1px var(--k-gold-hi) inset; }
.k-mt.on img { border-color: var(--tc, var(--k-gold)); }
.k-mt:focus-visible { outline: 3px solid var(--glow); outline-offset: 2px; }
@media (hover: hover) { .k-mt:hover:not(.on) { border-color: var(--k-gold); } }
.k-mme { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: var(--r-sm); border: 1px solid var(--k-gold); background: linear-gradient(180deg, #131A33, #0E1429); }
.k-mme img { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: top; border: 1px solid var(--tc, var(--k-gold)); background: #0e1226; }
.k-mme .tx { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.k-mme b { font-family: var(--k-serif); font-size: 18px; color: var(--k-text); }
.k-mme small { font-size: 11.5px; letter-spacing: .08em; color: var(--k-soft); }
.k-mme .nt { margin-top: 4px; font-size: 12px; line-height: 1.6; color: var(--k-gold-hi); }
.k-mchg { margin-top: 8px; }
.k-mtoint { margin-top: 12px; }
.k-mrel { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.k-mrel .k-choice { margin: 0; flex: 0 0 auto; min-width: 5.2em; padding: 10px 18px; }
.k-app .k-mrelnote { margin: 10px 0 0; font-size: 12.5px; }
.k-app .k-mkeep { margin: 8px 0 0; font-size: 12.5px; line-height: 1.7; }
.k-mwip { margin: var(--s4) 0 var(--s3); padding: 18px 16px; border-radius: 18px; border: 1px dashed var(--k-gold); background: rgba(19,26,51,.7); }
.k-mwip .hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.k-app .k-mwip .k { margin: 0; font-family: var(--k-serif); font-size: 15px; font-weight: 700; color: var(--k-gold-hi); letter-spacing: .1em; }
.k-mwip .tag { flex: 0 0 auto; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--k-gold); font-size: 11.5px; letter-spacing: .12em; color: var(--k-gold-hi); }
.k-app .k-mwip .pair { margin: 12px 0 0; font-family: var(--k-serif); font-size: 16px; line-height: 1.7; font-weight: 700; color: var(--k-text); overflow-wrap: anywhere; }
.k-mwip .pair small { display: block; margin-top: 2px; font-family: var(--k-sans); font-size: 12.5px; font-weight: 400; color: var(--k-soft); }
.k-app .k-mwip .k-soft { margin: 12px 0 0; }
.k-app .k-mwip .mid { margin: 12px 0 0; font-size: 13.5px; line-height: 1.85; color: var(--k-soft); }
.k-mwiplist { opacity: .6; }
.k-app .k-mwiplist li { padding: 8px 12px; }
.k-mwiplist em { margin-left: auto; flex: 0 0 auto; font-style: normal; font-size: 11px; letter-spacing: .1em; color: var(--k-gold-hi); }
@media (max-width: 340px) { .k-app .k-mtitle { font-size: 23px; } .k-mt b { font-size: 13px; } .k-mt img { width: 34px; height: 34px; } }
.k-minfo { margin: var(--s3) 0; padding: 18px 16px; border-radius: 18px; border: 1px solid var(--k-line); background: rgba(22,28,48,.6); }
.k-minfo .hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.k-app .k-minfo .k { margin: 0; font-family: var(--k-serif); font-size: 15px; font-weight: 700; color: var(--k-gold-hi); letter-spacing: .1em; }
.k-minfo .tag { flex: 0 0 auto; padding: 2px 10px; border-radius: 999px; border: 1px solid var(--k-gold); font-size: 11.5px; letter-spacing: .12em; color: var(--k-gold-hi); }
.k-app .k-minfo .pr { margin: 12px 0 0; font-size: 14px; color: var(--k-soft); }
.k-minfo .pr b { font-family: var(--k-serif); font-size: 26px; color: var(--k-text); margin-right: 2px; }
.k-minfo .pr span { margin-left: 10px; padding: 2px 10px; border-radius: 999px; background: rgba(200,169,107,.14); font-size: 12px; color: var(--k-gold-hi); }
.k-app .k-minfo ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.k-minfo li { position: relative; padding-left: 16px; font-size: 13.5px; line-height: 1.8; color: var(--k-soft); }
.k-minfo li::before { content: ""; position: absolute; left: 2px; top: .8em; width: 5px; height: 5px; border-radius: 50%; background: var(--k-gold); }
.k-minfo li b { color: var(--k-text); }
.k-app .k-minfo .nt { margin: 14px 0 0; padding: 9px 12px; border-radius: var(--r-sm); background: rgba(200,169,107,.12); border: 1px solid var(--k-line); font-size: 13px; line-height: 1.7; color: var(--k-text); }

/* KAKU MATCH：購入前の画面・結果表示を差し込む場所（MATCH_ENABLED が true のときだけ使う） */
.k-mslot { margin: var(--s4) 0 var(--s3); }
.k-mhost { display: block; }

/* ---- PERSONAL BOOK：目次・有料章・購入パネル・購入の確認・復旧コード ---- */
#view-lab .k-ownnote { margin: 12px 0; padding: 12px 14px; border-radius: var(--r-sm); border: 1px solid var(--k-line); background: rgba(200,169,107,.08); color: var(--k-text); font-size: 13.5px; line-height: 1.8; }
#view-lab .k-toc { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
#view-lab .k-toc-b { appearance: none; width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 12px; border-radius: var(--r-sm); background: rgba(245,240,232,.05); border: 1px solid var(--k-line-2); color: var(--k-text); font: inherit; text-align: left; cursor: pointer; min-height: 56px; }
#view-lab .k-toc-b .no { flex: 0 0 auto; font-family: var(--k-serif); font-size: 18px; font-weight: 700; color: var(--k-gold); width: 1.8em; }
#view-lab .k-toc-b .tx { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
#view-lab .k-toc-b b { font-size: 14.5px; overflow-wrap: anywhere; }
#view-lab .k-toc-b small { font-size: 12px; line-height: 1.5; color: var(--k-soft); overflow-wrap: anywhere; }
#view-lab .k-toc-b .tg { flex: 0 0 auto; font-size: 11px; letter-spacing: .06em; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--k-line-2); color: var(--k-soft); }
#view-lab .k-toc-b .tg.fr { border-color: var(--k-ok); color: var(--k-ok); }
#view-lab .k-toc-b .tg.lk { border-color: var(--k-line); color: var(--k-gold-hi); }
@media (hover: hover) { #view-lab .k-toc-b:hover { border-color: var(--k-gold); } }
#view-lab .k-bkt-b em { display: block; font-style: normal; font-size: 9.5px; line-height: 1; color: var(--k-gold-hi); margin-top: 2px; }
#view-lab .k-bkt-b.on em { color: var(--brown); }
#view-lab .k-lock { padding: 6px 0 2px; }
#view-lab .k-lock .lh { font-weight: 700; font-size: 15px; margin: 0 0 10px; }
#view-lab .k-lock .ls { font-size: 12.5px; opacity: .75; margin: 0 0 6px; }
#view-lab .k-lock ul { margin: 0; padding-left: 1.2em; }
#view-lab .k-lock li { margin: 6px 0; line-height: 1.8; }
#view-lab .k-nextbuy { margin: 16px 0 0; padding: 16px; text-align: center; border: 1px solid var(--k-line); border-radius: 16px; background: rgba(22,28,48,.7); }
#view-lab .k-nextbuy .nb-t { font-family: var(--k-serif); font-weight: 700; font-size: 16px; margin: 0 0 6px; text-wrap: balance; }
#view-lab .k-nextbuy .nb-s { font-size: 13px; color: var(--k-soft); margin: 0 0 12px; }

#view-lab .k-buy { margin: 22px 0 8px; padding: 22px 16px 18px; border: 1px solid var(--k-gold); border-radius: 20px; background: linear-gradient(180deg, rgba(200,169,107,.10), rgba(22,28,48,.85)); }
#view-lab .k-buy-kick { text-align: center; font-family: var(--k-serif); letter-spacing: .24em; font-size: 12px; color: var(--k-gold-hi); margin: 0; }
#view-lab .k-buy-t { text-align: center; font-size: 21px; margin: 6px 0 4px; }
#view-lab .k-buy-price { text-align: center; margin: 4px 0 14px; }
#view-lab .k-buy-price b { font-family: var(--k-serif); font-size: 32px; color: var(--k-gold-hi); }
#view-lab .k-buy-price span { font-size: 12.5px; color: var(--k-soft); margin-left: 6px; }
#view-lab .k-buy-in { margin: 0 0 14px; padding-left: 1.2em; font-size: 13.5px; line-height: 1.85; }
#view-lab .k-buy-in li { margin: 4px 0; }
#view-lab .k-buy-msg { margin: 8px 0; padding: 12px 14px; border-radius: var(--r-sm); background: rgba(245,240,232,.06); font-size: 13.5px; line-height: 1.8; text-align: center; }
#view-lab .k-buy-fine { margin-top: 10px; }
#view-lab .k-err { margin: 10px 0; padding: 10px 12px; border-radius: var(--r-sm); border: 1px solid var(--k-warn); color: var(--k-warn); background: rgba(232,185,138,.08); font-size: 13.5px; line-height: 1.75; overflow-wrap: anywhere; }
#view-lab .k-notice { margin: 10px 0 12px; padding: 14px; border-radius: var(--r-sm); border: 1px solid var(--k-line-2); background: rgba(11,16,32,.55); font-size: 13px; line-height: 1.85; }
#view-lab .k-notice .nh { font-weight: 700; margin: 0 0 8px; font-size: 14px; }
#view-lab .k-notice .nt { font-weight: 700; margin: 12px 0 4px; color: var(--k-gold-hi); }
#view-lab .k-notice ul { margin: 0; padding-left: 1.2em; }
#view-lab .k-notice li { margin: 5px 0; overflow-wrap: anywhere; }
#view-lab .k-chk { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; font-size: 13.5px; line-height: 1.7; cursor: pointer; }
#view-lab .k-chk input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--k-gold); }
#view-lab .k-lab { display: block; font-size: 12.5px; color: var(--k-soft); margin: 10px 0 4px; }
#view-lab .k-recov .k-input { margin-bottom: 10px; }
#view-lab .k-rc-l { font-size: 12px; color: var(--k-soft); margin: 10px 0 2px; }
#view-lab .k-rc { font-family: var(--k-mono); font-size: 16px; letter-spacing: .04em; line-height: 1.7; padding: 12px; border-radius: var(--r-sm); border: 1px dashed var(--k-gold); background: rgba(11,16,32,.7); color: var(--k-gold-hi); overflow-wrap: anywhere; user-select: all; -webkit-user-select: all; margin: 6px 0 10px; }
#view-lab .k-manage { margin-top: 18px; }
#view-lab .k-bookret .k-title { text-align: center; }
#view-lab .k-bookret .k-sub { text-align: center; }
#view-lab .k-final { margin: 12px 0 0; padding: 12px 14px; border-radius: var(--r-sm); border: 1px solid var(--k-line); background: rgba(200,169,107,.07); font-size: 13px; line-height: 1.7; }
#view-lab .k-final > div { display: flex; gap: 10px; padding: 3px 0; }
#view-lab .k-final dt { flex: 0 0 3.2em; color: var(--k-gold-hi); font-weight: 700; }
#view-lab .k-final dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
