/* 感覚テスト — 計測器のティール */
:root { --accent: #0d7f7b; --accent-soft: #d9f1ef; --go: #1fa463; --wait: #c94b4b; --dot: #1b1a17; --dotbg: #ffffff; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --accent: #5fd8cf; --accent-soft: #143634; --go: #3fcf86; --wait: #e06666; --dot: #eef0f7; --dotbg: #181c2e; }
}
:root[data-theme="dark"] { --accent: #5fd8cf; --accent-soft: #143634; --go: #3fcf86; --wait: #e06666; --dot: #eef0f7; --dotbg: #181c2e; }

.kt-hero { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.kt-hero-radar svg { display: block; width: 150px; height: auto; }
.kt-hero-radar .kt-rshape { animation: kt-breathe 2.4s ease-in-out infinite alternate; transform-origin: 85px 85px; }
@keyframes kt-breathe { from { transform: scale(.82); } to { transform: scale(1); } }
@media (max-width: 420px) { .kt-hero { grid-template-columns: 1fr; } .kt-hero-radar { justify-self: center; } }
.kt-rgrid { fill: none; stroke: var(--line); stroke-width: 1.2; }
.kt-rshape { fill: var(--accent); fill-opacity: .28; stroke: var(--accent); stroke-width: 2.5; stroke-linejoin: round; }
.kt-rdot { fill: var(--accent); }
.kt-rlabel { font-size: 13px; font-weight: 700; fill: var(--text-sub); }
.kt-radar { max-width: 100%; height: auto; }
.kt-radar-wrap svg { display: block; margin: 0 auto; width: min(280px, 100%); }

.kt-icon { display: inline-grid; place-items: center; color: var(--accent); flex: none; }
.kt-evlist { display: grid; gap: 6px; }
.kt-ev { display: flex; gap: 12px; align-items: center; padding: 8px 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.kt-intro .kt-icon svg { width: 56px; height: 56px; }
.kt-intro p { text-align: left; }

.kt-pad { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 160px; border-radius: 20px; border: 0; font-size: 24px; font-weight: 900; cursor: pointer; background: var(--accent); color: var(--accent-ink); touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.kt-pad.is-go { background: var(--text); color: var(--bg); }
.kt-pad:disabled { opacity: .7; cursor: default; font-size: 18px; }
.kt-react { min-height: 260px; background: var(--surface-2); color: var(--text); }
.kt-react.is-wait { background: var(--wait); color: #fff; }
.kt-react.is-go { background: var(--go); color: #fff; }
.kt-react.is-false { background: var(--warn-soft); color: var(--warn); font-size: 18px; }
.kt-clock { font-size: 64px; font-weight: 900; text-align: center; font-variant-numeric: tabular-nums; color: var(--accent); letter-spacing: .02em; }

.kt-timebar > i { transition: width 5s linear; }
.kt-grid { display: grid; gap: 6px; width: min(100%, 360px); margin: 0 auto; }
.kt-cell { aspect-ratio: 1; border: 0; border-radius: 10px; cursor: pointer; padding: 0; }
.kt-cell.is-reveal { outline: 4px solid var(--text); outline-offset: -4px; }

.kt-len-q { font-size: 20px; }
.kt-len-q b { color: var(--accent); font-size: 30px; }
.kt-len-frame { position: relative; height: 34px; border: 2px solid var(--text-sub); border-radius: 6px; overflow: hidden; background: var(--surface); }
.kt-len-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--accent); }
.kt-len-target { position: absolute; top: -2px; bottom: -2px; width: 3px; margin-left: -1px; background: var(--bad); }

.kt-dotbox { position: relative; width: min(100%, 340px); aspect-ratio: 1; margin: 0 auto; background: var(--dotbg); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; display: grid; place-items: center; }
.kt-dots { position: absolute; inset: 0; width: 100%; height: 100%; fill: var(--dot); }
.kt-dot-cover { font-size: 22px; font-weight: 900; color: var(--text-sub); }
.kt-dot-ans { position: absolute; left: 8px; right: 8px; bottom: 8px; background: var(--surface); border-radius: 8px; padding: 4px 8px; font-weight: 700; text-align: center; }
.kt-slider { width: 100%; accent-color: var(--accent); height: 36px; }
.kt-val { font-size: 32px; font-weight: 900; color: var(--accent); font-variant-numeric: tabular-nums; }
.kt-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.kt-steps .mn-btn { padding: 8px 4px; min-height: 44px; }

.kt-result .mn-big small { font-size: 24px; color: var(--text-sub); }
.kt-age { font-size: 20px; margin: 4px 0 0; }
.kt-age b { color: var(--accent); font-size: 30px; }
.kt-title { font-weight: 900; font-size: 20px; margin: 2px 0; }
.kt-top { font-size: 18px; margin: 4px 0; }
.kt-top b { color: var(--accent); font-size: 26px; }
.kt-rows { display: grid; gap: 8px; }
.kt-row { display: flex; gap: 10px; align-items: center; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.kt-row-score { text-align: right; flex: none; }
.kt-chips { display: flex; flex-wrap: wrap; gap: 6px; }
[hidden] { display: none !important; }
