/* カート（試作 v0）2026-10-16 — 全画面のゲーム画面。接頭辞 kt- */
:root { --kt-ink: #1d1a3a; --kt-cream: #fff6dc; --kt-pink: #ff7aa8; --kt-mint: #7ff3e1; --kt-yel: #f6cf49; --kt-blue: #56c8ff; --kt-or: #ffa64d; --kt-panel: rgba(29, 26, 58, 0.72); }
html, body { margin: 0; height: 100%; background: #1d1a3a; overflow: hidden; overscroll-behavior: none; }
.ktb { font-family: "M PLUS Rounded 1c", system-ui, sans-serif; color: var(--kt-cream); -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; touch-action: none; }
.kt { position: fixed; inset: 0; }
.kt-cv { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.kt-ui { position: absolute; inset: 0; pointer-events: none; }
.kt-ui button, .kt-ui input, .kt-ui a, .kt-layer { pointer-events: auto; }
.kt-boot { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.kt-boot b { font-size: 30px; font-weight: 900; color: var(--kt-yel); }
.kt-boot span { font-size: 15px; text-align: center; line-height: 1.7; }
.kt-boot a { color: var(--kt-mint); }

/* ---- HUD ---- */
.kt-hud { position: absolute; inset: 0; padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
.kt-tl { position: absolute; top: max(10px, env(safe-area-inset-top)); left: max(12px, env(safe-area-inset-left)); display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.kt-lap { background: var(--kt-panel); border-radius: 14px; padding: 4px 12px 4px 10px; display: flex; align-items: baseline; gap: 2px; border: 2px solid rgba(255, 246, 220, 0.25); }
.kt-lap small { font-size: 13px; font-weight: 800; margin-right: 4px; opacity: 0.85; }
.kt-lap b { font-size: 28px; font-weight: 900; line-height: 1; color: var(--kt-yel); }
.kt-lap i { font-style: normal; font-size: 16px; font-weight: 800; opacity: 0.85; }
.kt-time { background: var(--kt-panel); border-radius: 10px; padding: 3px 10px; font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.kt-map { width: 110px; height: 110px; opacity: 0.95; }
.kt-tr { position: absolute; top: max(10px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.kt-slot { width: 78px; height: 78px; border-radius: 22px; background: rgba(29, 26, 58, 0.6); border: 3px solid rgba(255, 246, 220, 0.85); box-shadow: 0 0 0 3px rgba(255, 122, 168, 0.55), inset 0 0 14px rgba(127, 243, 225, 0.35); position: relative; display: flex; align-items: center; justify-content: center; overflow: visible; }
.kt-slot svg { width: 58px; height: 58px; }
.kt-slot em { position: absolute; right: -6px; bottom: -6px; background: var(--kt-pink); color: #fff; font-style: normal; font-weight: 900; font-size: 14px; border-radius: 10px; padding: 1px 6px; }
.kt-slot span { position: absolute; top: 100%; right: 0; margin-top: 6px; white-space: nowrap; font-size: 12px; font-weight: 800; background: var(--kt-panel); padding: 2px 8px; border-radius: 8px; }
.kt-slot.is-roll { overflow: hidden; }
.kt-rollw { display: flex; flex-direction: column; animation: ktRoll 0.36s linear infinite; position: absolute; top: 0; }
.kt-rollw svg { width: 58px; height: 58px; margin: 7px 0; flex: none; }
@keyframes ktRoll { from { transform: translateY(0); } to { transform: translateY(-216px); } }
.kt-rank { margin-top: 26px; display: flex; align-items: baseline; text-shadow: 0 3px 0 var(--kt-ink), 0 0 10px rgba(29, 26, 58, 0.8); transition: transform 0.2s; }
.kt-rank b { font-size: 64px; font-weight: 900; line-height: 0.9; -webkit-text-stroke: 3px var(--kt-ink); paint-order: stroke fill; }
.kt-rank small { font-size: 22px; font-weight: 900; -webkit-text-stroke: 2px var(--kt-ink); paint-order: stroke fill; }
.kt-rank.r1 b, .kt-rank.r1 small { color: #ffd84a; }
.kt-rank.r2 b, .kt-rank.r2 small { color: #e3e8f5; }
.kt-rank.r3 b, .kt-rank.r3 small { color: #f0a46a; }
.kt-rank.r4 b, .kt-rank.r4 small { color: #c8bfff; }
.kt-rank.is-bump { transform: scale(1.25); }
.kt-menu { position: absolute; top: max(10px, env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); width: 44px; height: 44px; border-radius: 14px; border: 2px solid rgba(255, 246, 220, 0.5); background: var(--kt-panel); color: var(--kt-cream); font-weight: 900; font-size: 15px; }
.kt-center { position: absolute; left: 0; right: 0; top: 30%; text-align: center; opacity: 0; transform: scale(0.6); transition: opacity 0.18s, transform 0.18s; pointer-events: none; }
.kt-center.is-on { opacity: 1; transform: scale(1); }
.kt-center b { display: inline-block; font-weight: 900; color: #fff; -webkit-text-stroke: 4px var(--kt-ink); paint-order: stroke fill; text-shadow: 0 5px 0 var(--kt-ink); }
.kt-cd { font-size: 110px; color: var(--kt-yel) !important; }
.kt-go { font-size: 64px; color: var(--kt-mint) !important; }
.kt-lapb { font-size: 44px; }
.kt-final { font-size: 46px; color: var(--kt-pink) !important; }
.kt-fin { font-size: 72px; color: var(--kt-yel) !important; display: block !important; }
.kt-finp { display: block; font-size: 40px; font-weight: 900; color: #fff; -webkit-text-stroke: 3px var(--kt-ink); paint-order: stroke fill; margin-top: 4px; }
.kt-pop { position: absolute; left: 50%; top: 18%; transform: translate(-50%, 8px); opacity: 0; transition: opacity 0.15s, transform 0.15s; font-weight: 900; font-size: 20px; padding: 6px 16px; border-radius: 999px; background: var(--kt-panel); white-space: nowrap; pointer-events: none; }
.kt-pop.is-on { opacity: 1; transform: translate(-50%, 0); }
.kt-pop.is-bl { color: var(--kt-blue); }
.kt-pop.is-or { color: var(--kt-or); }
.kt-pop.is-hit { color: #ffb3c9; }
.kt-pop.is-good { color: var(--kt-mint); }
.kt-pop.is-tip { color: var(--kt-yel); font-size: 15px; }
.kt-dbg { position: absolute; left: 50%; bottom: 4px; transform: translateX(-50%); font-size: 11px; opacity: 0.7; background: rgba(0, 0, 0, 0.35); padding: 1px 6px; border-radius: 6px; }

/* ---- 操作のボタン ---- */
.kt-ctl { position: absolute; left: 0; right: 0; bottom: 0; height: 0; }
.kt-b { border: 3px solid rgba(255, 246, 220, 0.9); color: #fff; font-family: inherit; font-weight: 900; border-radius: 999px; touch-action: none; box-shadow: 0 5px 0 rgba(29, 26, 58, 0.55); transition: transform 0.05s; -webkit-text-stroke: 0; }
.kt-b.is-on { transform: scale(0.92) translateY(3px); box-shadow: 0 2px 0 rgba(29, 26, 58, 0.55); }
.kt-lpad { position: absolute; left: max(14px, env(safe-area-inset-left)); bottom: max(16px, env(safe-area-inset-bottom)); display: flex; gap: 14px; }
.kt-b--l, .kt-b--r { width: 84px; height: 84px; font-size: 32px; background: rgba(255, 246, 220, 0.28); color: var(--kt-cream); border-radius: 26px; }
.kt-swipe { display: none; width: 46vw; max-width: 320px; height: 110px; border-radius: 24px; border: 3px dashed rgba(255, 246, 220, 0.5); background: rgba(29, 26, 58, 0.25); align-items: center; justify-content: center; font-size: 13px; font-weight: 800; color: rgba(255, 246, 220, 0.85); pointer-events: auto; touch-action: none; }
.kt-lpad.is-swipe .kt-b--l, .kt-lpad.is-swipe .kt-b--r, .kt-lpad.is-tilt .kt-b--l, .kt-lpad.is-tilt .kt-b--r { display: none; }
.kt-lpad.is-swipe .kt-swipe { display: flex; }
.kt-rpad { position: absolute; right: max(14px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 210px; height: 190px; }
.kt-b--drift { position: absolute; right: 0; bottom: 0; width: 108px; height: 108px; font-size: 17px; background: radial-gradient(circle at 35% 30%, #ff9cc0, #e8457f); }
.kt-b--item { position: absolute; right: 116px; bottom: 34px; width: 84px; height: 84px; font-size: 15px; background: radial-gradient(circle at 35% 30%, #a8fff0, #2fbfa6); }
.kt-b--brake { position: absolute; right: 8px; bottom: 120px; width: 70px; height: 50px; font-size: 13px; background: rgba(120, 132, 170, 0.75); border-radius: 18px; }
.kt-b--accel { position: absolute; right: 118px; bottom: 124px; width: 80px; height: 56px; font-size: 14px; background: radial-gradient(circle at 35% 30%, #ffe27a, #e9a923); border-radius: 18px; }
.kt-ctl.is-watch .kt-rpad { display: none; }
.kt-hud.is-done .kt-ctl, .kt-hud.is-done .kt-menu, .kt-hud.is-done .kt-center, .kt-hud.is-done .kt-pop { display: none; }
.kt-b--item, .kt-b--drift, .kt-b--brake, .kt-b--accel { padding: 0; letter-spacing: -0.04em; }
/* 縦向き: ボタンを少し小さく・地図を小さく */
.is-port .kt-map { width: 84px; height: 84px; }
.is-port .kt-b--l, .is-port .kt-b--r { width: 76px; height: 76px; }
.is-port .kt-rpad { width: 196px; }
.is-port .kt-b--drift { width: 100px; height: 100px; }
.is-port .kt-b--item { right: 108px; width: 78px; height: 78px; }
.is-port .kt-rank b { font-size: 54px; }
/* 低い画面（横向きのスマホ）: 全体を詰める */
@media (max-height: 430px) {
	.kt-map { width: 78px; height: 78px; }
	.kt-slot { width: 64px; height: 64px; border-radius: 18px; }
	.kt-slot svg { width: 46px; height: 46px; }
	.kt-rollw svg { width: 46px; height: 46px; margin: 9px 0; }
	@keyframes ktRoll { from { transform: translateY(0); } to { transform: translateY(-192px); } }
	.kt-rank { margin-top: 20px; }
	.kt-rank b { font-size: 48px; }
	.kt-b--l, .kt-b--r { width: 76px; height: 76px; }
	.kt-rpad { height: 160px; }
	.kt-b--drift { width: 96px; height: 96px; }
	.kt-b--item { right: 104px; bottom: 24px; width: 74px; height: 74px; }
	.kt-b--brake { bottom: 104px; }
	.kt-b--accel { right: 104px; bottom: 104px; }
	.kt-cd { font-size: 84px; }
	.kt-fin { font-size: 54px; }
}

/* ---- 画面（タイトル・シート） ---- */
.kt-layer { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; overflow-y: auto; }
.kt-layer--dim { background: rgba(18, 14, 40, 0.55); }
.kt-title { flex-direction: column; gap: 22px; background: linear-gradient(180deg, rgba(18, 14, 40, 0.25), rgba(18, 14, 40, 0.75)); }
.kt-logo { text-align: center; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.kt-logo b { font-size: clamp(42px, 11vw, 76px); font-weight: 900; line-height: 1.05; color: var(--kt-yel); -webkit-text-stroke: 5px var(--kt-ink); paint-order: stroke fill; text-shadow: 0 6px 0 var(--kt-ink), 0 0 30px rgba(255, 122, 168, 0.6); letter-spacing: 0.02em; }
.kt-logo span { font-size: clamp(15px, 3.6vw, 20px); font-weight: 900; color: #fff; -webkit-text-stroke: 3px var(--kt-ink); paint-order: stroke fill; }
.kt-logo em { font-style: normal; font-size: 12px; font-weight: 800; background: var(--kt-pink); color: #fff; padding: 2px 10px; border-radius: 999px; }
.kt-title__btns { display: flex; flex-direction: column; gap: 10px; width: min(360px, 100%); }
.kt-back { color: var(--kt-cream); font-size: 14px; font-weight: 800; text-decoration: none; padding: 10px; }
.kt-btn { font-family: inherit; font-weight: 900; font-size: 16px; min-height: 48px; padding: 8px 18px; border-radius: 16px; border: 3px solid var(--kt-ink); background: var(--kt-cream); color: var(--kt-ink); box-shadow: 0 4px 0 var(--kt-ink); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.kt-btn small { font-size: 12px; font-weight: 700; opacity: 0.8; }
.kt-btn:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--kt-ink); }
.kt-btn[disabled] { opacity: 0.55; }
.kt-btn--main { background: var(--kt-yel); }
.kt-btn--big { min-height: 64px; font-size: 20px; }
.kt-btn--ghost { background: rgba(255, 246, 220, 0.15); color: var(--kt-cream); border-color: rgba(255, 246, 220, 0.6); box-shadow: none; }
.kt-sheet { background: #fff8e6; color: var(--kt-ink); border: 4px solid var(--kt-ink); border-radius: 24px; box-shadow: 0 8px 0 var(--kt-ink); padding: 18px 18px 16px; width: min(440px, 100%); max-height: calc(100% - 8px); overflow-y: auto; box-sizing: border-box; margin: auto; }
.kt-sheet--wide { width: min(620px, 100%); }
.kt-sheet h2 { margin: 0 0 12px; font-size: 22px; font-weight: 900; text-align: center; }
.kt-sub { text-align: center; font-weight: 700; font-size: 14px; margin: 0 0 12px; }
.kt-note { font-size: 12px; text-align: center; opacity: 0.75; margin: 10px 0 0; word-break: break-all; }
.kt-res__btns { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 14px; }
.kt-res__btns > .kt-btn { flex: 1 1 140px; }
.kt-col { flex-direction: column; }
.kt-col > .kt-btn { flex: none; width: 100%; box-sizing: border-box; }
.kt-chars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.kt-char { font-family: inherit; border: 3px solid transparent; border-radius: 16px; background: #fff; padding: 4px 2px 6px; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; cursor: pointer; box-shadow: 0 3px 0 rgba(29, 26, 58, 0.2); }
.kt-char img { width: 100%; max-width: 92px; aspect-ratio: 1; object-fit: contain; }
.kt-char span { font-size: 11px; font-weight: 800; line-height: 1.25; text-align: center; color: var(--kt-ink); word-break: keep-all; overflow-wrap: anywhere; }
.kt-char.is-on { border-color: var(--kt-ink); background: var(--c); box-shadow: 0 3px 0 var(--kt-ink); }
@media (min-width: 560px) { .kt-chars { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.kt-res__head { text-align: center; margin-bottom: 10px; }
.kt-res__head b { display: block; font-size: 52px; font-weight: 900; line-height: 1; color: var(--kt-pink); -webkit-text-stroke: 3px var(--kt-ink); paint-order: stroke fill; }
.kt-res__head span { font-weight: 800; font-size: 15px; }
.kt-res__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.kt-res__list li { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 14px; padding: 4px 10px 4px 6px; border: 2px solid rgba(29, 26, 58, 0.15); }
.kt-res__list li.is-me { border-color: var(--kt-ink); background: #fff1b8; }
.kt-res__list li b { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 900; color: #fff; background: #8b84b8; flex: none; }
.kt-res__list li b.p1 { background: #e9b10f; } .kt-res__list li b.p2 { background: #9aa3b8; } .kt-res__list li b.p3 { background: #d27a3e; }
.kt-res__list li img { width: 40px; height: 40px; object-fit: contain; flex: none; }
.kt-res__list li span { flex: 1; min-width: 0; font-weight: 800; font-size: 15px; display: flex; flex-direction: column; }
.kt-res__list li span small { font-size: 11px; opacity: 0.7; }
.kt-res__list li i { font-style: normal; font-weight: 800; font-variant-numeric: tabular-nums; font-size: 15px; }
.kt-set { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.kt-set__row { display: flex; align-items: center; gap: 8px; justify-content: space-between; flex-wrap: wrap; }
.kt-set__row > span { font-weight: 800; font-size: 14px; }
.kt-seg { display: flex; gap: 4px; }
.kt-seg button { font-family: inherit; font-weight: 800; font-size: 13px; min-height: 44px; min-width: 56px; padding: 4px 10px; border-radius: 12px; border: 2px solid var(--kt-ink); background: #fff; color: var(--kt-ink); }
.kt-seg button.is-on { background: var(--kt-ink); color: var(--kt-yel); }
.kt-how { margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.7; font-weight: 600; }
.kt-how li { margin-bottom: 4px; }
.kt-how em { font-style: normal; font-weight: 900; }
.c-bl { color: #1b8fd0; } .c-or { color: #e07a12; }
.kt-in { font-family: inherit; font-size: 16px; font-weight: 800; padding: 8px 10px; border-radius: 12px; border: 2px solid var(--kt-ink); width: 9em; min-height: 44px; box-sizing: border-box; text-align: center; }
.kt-join { display: flex; gap: 8px; align-items: stretch; }
.kt-join .kt-in { flex: 1; min-width: 0; text-transform: uppercase; letter-spacing: 0.15em; }
.kt-code { font-size: 30px; letter-spacing: 0.15em; color: var(--kt-pink); -webkit-text-stroke: 2px var(--kt-ink); paint-order: stroke fill; }
.kt-plist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.kt-plist li { display: flex; align-items: center; gap: 6px; background: #fff; border-radius: 12px; padding: 4px 8px; border: 2px solid rgba(29, 26, 58, 0.15); min-height: 48px; font-weight: 800; font-size: 14px; }
.kt-plist li.is-me { border-color: var(--kt-ink); background: #fff1b8; }
.kt-plist li.is-cpu { opacity: 0.55; justify-content: center; border-style: dashed; }
.kt-plist img { width: 38px; height: 38px; object-fit: contain; }
.kt-plist em { font-style: normal; font-size: 11px; background: var(--kt-pink); color: #fff; padding: 1px 6px; border-radius: 6px; }
.kt-plist em.w { background: #8b84b8; }

/* 観戦の帯 */
.kt-watch { position: absolute; left: 50%; top: calc(max(10px, env(safe-area-inset-top)) + 54px); transform: translateX(-50%); background: var(--kt-panel); border: 2px solid rgba(255, 246, 220, 0.4); border-radius: 14px; padding: 4px 12px; font-weight: 800; font-size: 14px; text-align: center; white-space: nowrap; }
.kt-watch b { color: var(--kt-ink); background: var(--kt-mint); border-radius: 8px; padding: 0 6px; margin-right: 6px; }
.kt-watch small { display: block; font-size: 11px; opacity: 0.8; }
/* 低い画面（横向きのスマホ）: シートを詰める */
@media (max-height: 460px) {
	.kt-sheet { padding: 10px 14px; border-radius: 18px; }
	.kt-sheet h2 { font-size: 18px; margin-bottom: 6px; }
	.kt-sub { margin-bottom: 6px; font-size: 13px; }
	.kt-plist { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.kt-plist li { min-height: 44px; font-size: 12px; padding: 2px 6px; }
	.kt-plist img { width: 30px; height: 30px; }
	.kt-res__btns { margin-top: 8px; gap: 8px; }
	.kt-btn { min-height: 44px; font-size: 15px; padding: 4px 12px; }
	.kt-res__head b { font-size: 36px; }
	.kt-res { width: min(560px, 100%); }
	.kt-res__head { margin-bottom: 4px; }
	.kt-res__head b { display: inline; font-size: 30px; margin-right: 8px; }
	.kt-res__list { gap: 3px; }
	.kt-res__list li { padding: 1px 10px 1px 6px; }
	.kt-res__list li b { width: 26px; height: 26px; font-size: 14px; }
	.kt-res__list li img { width: 28px; height: 28px; }
	.kt-res__list li span { flex-direction: row; align-items: baseline; gap: 8px; font-size: 14px; }
	.kt-note { margin-top: 6px; }
	.kt-title { gap: 10px; }
	.kt-logo b { font-size: 44px; }
	.kt-title__btns { flex-direction: row; flex-wrap: wrap; width: min(640px, 100%); }
	.kt-title__btns .kt-btn { flex: 1 1 200px; }
	.kt-btn--big { min-height: 56px; font-size: 18px; }
	.kt-chars { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.kt-char img { max-width: 60px; }
	.kt-char span { font-size: 10px; }
}

/* シートの中の控えめなボタン（クリームの地に読める色） */
.kt-sheet .kt-btn--ghost { background: transparent; color: var(--kt-ink); border-color: rgba(29, 26, 58, 0.45); }
/* 縦向き: アイテムはドリフトの上、ブレーキはドリフトの左（左手のボタンと重ならない） */
.is-port .kt-rpad { width: 190px; height: 210px; }
.is-port .kt-b--drift { right: 0; bottom: 0; width: 100px; height: 100px; }
.is-port .kt-b--item { right: 12px; bottom: 112px; width: 76px; height: 76px; }
.is-port .kt-b--brake { right: 110px; bottom: 0; width: 66px; height: 48px; font-size: 12px; }
.is-port .kt-b--accel { right: 110px; bottom: 58px; width: 66px; height: 52px; }
.is-port .kt-lpad { gap: 10px; }
.is-port .kt-b--l, .is-port .kt-b--r { width: 72px; height: 72px; }

.kt-res__list li span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.kt-title .kt-btn--ghost { background: rgba(29, 26, 58, 0.62); }

/* ---- 点検（10/16）の直し ---- */
.kt-center { top: 22%; }
@media (max-height: 460px) { .kt-center { top: 12%; } .kt-cd { font-size: 72px; } }
.kt-b--brake { font-size: 14px; }
.kt-slot span { font-size: 14px; }
.kt-slot__hint { font-style: normal; font-size: 13px; font-weight: 800; line-height: 1.3; text-align: center; opacity: 0.85; }
.kt-char span { font-size: 13px; }
.kt-note { font-size: 13px; }
.kt-pop.is-tip { font-size: 15px; white-space: normal; width: max-content; max-width: min(92vw, 560px); text-align: center; }
/* 縦向き: ブレーキはアイテムの上（▶ から離す） */
.is-port .kt-rpad { height: 252px; }
.is-port .kt-b--brake { right: 16px; bottom: 198px; width: 68px; height: 46px; font-size: 14px; }
.is-port .kt-b--accel { right: 108px; bottom: 0; width: 58px; height: 58px; }
/* シートのボタンの段は下に貼りつける（下にまだあると分かる） */
.kt-sheet > .kt-res__btns { position: sticky; bottom: -16px; background: linear-gradient(rgba(255, 248, 230, 0), #fff8e6 14px); padding: 14px 0 8px; margin-bottom: -8px; }
@media (max-height: 460px) { .kt-sheet > .kt-res__btns { bottom: -10px; } }

/* 観戦の帯は下（左右のボタンの上）。観戦中はアイテムの枠を出さない */
.kt-watch { top: auto; bottom: calc(max(16px, env(safe-area-inset-bottom)) + 96px); max-width: calc(100vw - 24px); white-space: normal; }
.kt-hud.is-watching .kt-slot { display: none; }
.kt-hud.is-watching .kt-rank { margin-top: 0; }

/* ---- 再点検（10/16）の直し ---- */
.kt-pop.is-tip { white-space: nowrap; width: auto; max-width: none; font-size: 15px; }
.is-port .kt-pop { top: 34%; }
@media (max-width: 380px) { .kt-pop.is-tip { font-size: 14px; } }
.kt-sheet > .kt-res__btns.kt-col { position: static; background: none; padding: 0; margin-bottom: 0; }
.kt-watch__n { display: block; white-space: nowrap; }
.kt-watch small { font-size: 13px; }
.kt-res__list li span small { font-size: 13px; }
.kt-plist em { font-size: 13px; }
.kt-btn small { font-size: 13px; }
/* 横向きの一時停止: ボタン3つを1行に、設定はその下 */
@media (max-height: 460px) {
	.kt-col { flex-direction: row; flex-wrap: wrap; }
	.kt-col > .kt-btn { flex: 1 1 28%; width: auto; }
	.kt-col > .kt-set { order: 5; }
	.kt-set { gap: 4px; }
	.kt-sheet h2 + .kt-col { margin-top: 0; }
}

/* ---- 届いた絵（10/16）: has-art のときだけ ---- */
.has-art .kt-title { background: linear-gradient(180deg, rgba(18, 14, 40, 0.05) 0%, rgba(18, 14, 40, 0.15) 45%, rgba(18, 14, 40, 0.7) 100%), var(--kt-u-kv) center / cover no-repeat; }
.has-art .kt-slot { background: var(--kt-u-slot) center / 100% 100% no-repeat; border: 0; box-shadow: none; }
.has-art .kt-slot img, .has-art .kt-rollw img { width: 58px; height: 58px; object-fit: contain; display: block; }
.has-art .kt-rollw img { margin: 7px 0; flex: none; }
.has-art .kt-rank { width: 96px; height: 96px; justify-content: center; align-items: center; background: var(--kt-u-rn) center / contain no-repeat; margin-top: 26px; }
.has-art .kt-rank.r1 { background-image: var(--kt-u-r1); } .has-art .kt-rank.r2 { background-image: var(--kt-u-r2); } .has-art .kt-rank.r3 { background-image: var(--kt-u-r3); }
.has-art .kt-rank b { font-size: 46px; }
.has-art .kt-rank small { font-size: 18px; }
.has-art .kt-lap { background: var(--kt-u-panel) center / 100% 100% no-repeat; border: 0; padding: 6px 16px 6px 34px; }
.kt-b--l, .kt-b--r { position: relative; }
.has-art .kt-b--drift, .has-art .kt-b--item, .has-art .kt-b--accel, .has-art .kt-b--brake, .has-art .kt-b--l, .has-art .kt-b--r { background: transparent; border: 0; box-shadow: none; }
.has-art .kt-b::before { content: ''; position: absolute; inset: 0; background: center / contain no-repeat; filter: drop-shadow(0 4px 0 rgba(29, 26, 58, 0.5)); }
.has-art .kt-b--drift::before { background-image: var(--kt-u-drift); }
.has-art .kt-b--item::before { background-image: var(--kt-u-item); }
.has-art .kt-b--accel::before { background-image: var(--kt-u-accel); }
.has-art .kt-b--brake::before { background-image: var(--kt-u-brake); }
.has-art .kt-b--l::before { background-image: var(--kt-u-left); }
.has-art .kt-b--r::before { background-image: var(--kt-u-left); transform: scaleX(-1); }
.has-art .kt-b__a { display: none; }
.has-art .kt-b__l { position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%); z-index: 1; font-size: 13px; line-height: 1; padding: 3px 8px; border-radius: 999px; background: rgba(29, 26, 58, 0.85); color: #fff6dc; white-space: nowrap; }
.has-art .kt-b--brake, .has-art .kt-b--accel { width: 60px; height: 60px; }
.has-art .kt-b--brake .kt-b__l, .has-art .kt-b--accel .kt-b__l { bottom: -10px; }
.has-art .kt-b.is-on::before { filter: brightness(1.15); }
.kt-cdimg { display: block; width: min(300px, 70vw); margin: 0 auto 6px; }
.kt-cdimg.is-go { filter: hue-rotate(0deg) brightness(1.1); }
.kt-finimg { display: block; width: min(560px, 92vw); margin: 0 auto -54px; }
.kt-layer--art { background-size: cover; background-position: center; }
.kt-courses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.kt-course { font-family: inherit; border: 3px solid transparent; border-radius: 16px; background: #fff; padding: 6px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; min-width: 0; box-shadow: 0 3px 0 rgba(29, 26, 58, 0.2); }
.kt-course img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; }
.kt-course span { font-weight: 900; font-size: 14px; color: var(--kt-ink); }
.kt-course.is-on { border-color: var(--kt-ink); background: var(--kt-yel); box-shadow: 0 3px 0 var(--kt-ink); }
@media (max-width: 520px) { .kt-courses { grid-template-columns: 1fr; } .kt-course { flex-direction: row; align-items: center; } .kt-course img { width: 46%; } }
@media (max-height: 460px) { .has-art .kt-rank { width: 76px; height: 76px; margin-top: 20px; } .has-art .kt-rank b { font-size: 38px; } .kt-cdimg { width: 220px; } .kt-finimg { width: 420px; margin-bottom: -40px; } }

/* 絵のボタン: 名札は丸の下の内側・左右の段を少し上げる */
.has-art .kt-b__l { bottom: -2px; }
.has-art .kt-lpad, .has-art .kt-rpad { bottom: calc(max(16px, env(safe-area-inset-bottom)) + 8px); }
.has-art .kt-slot__hint { background: rgba(29, 26, 58, 0.75); border-radius: 8px; padding: 2px 4px; }

/* 結果・部屋の顔: 運転の絵の帯の7コマ目（喜ぶ） */
.kt-face { display: block; flex: none; width: 36px; height: 45px; background-size: 700% 100%; background-position: 100% 0; background-repeat: no-repeat; }
.kt-plist .kt-face { width: 32px; height: 40px; }

/* KART_REVIEW_1017 voice controls stay separate from steering and acceleration. */
.kt-course-select{display:grid;gap:6px;margin:12px 0;font-size:14px;font-weight:700}.kt-course-select select{font:inherit;min-height:44px;padding:8px;border:2px solid #393353;border-radius:10px;background:#fff8e6;color:#1d1a3a}
.kt-voice{position:fixed;z-index:100;top:max(10px,env(safe-area-inset-top));right:12px;max-width:calc(100vw - 24px);font-size:14px;color:#fff8e6;background:#1d1a3a;border:1px solid #d6c3f1;border-radius:14px;box-shadow:0 4px 18px #0005}
.kt-voice[hidden]{display:none}.kt-voice summary{padding:10px 12px;cursor:pointer;font-weight:700}.kt-voice>div{padding:0 12px 12px;max-width:280px}.kt-voice p{line-height:1.6;margin:0 0 10px}.kt-voice button{min-height:44px;padding:8px 12px;background:#fff8e6;color:#1d1a3a;border:0;border-radius:10px;font:inherit;margin:3px}.kt-voice.is-racing{top:max(62px,calc(env(safe-area-inset-top) + 52px));right:50%;transform:translateX(50%)}
.kt-online .kt-layer{padding-top:66px}.kt-join{flex-wrap:wrap}.kt-join .kt-in{min-width:0;flex:1 1 150px}

/* One-thumb drift steering, explicit charge/release feedback. */
.kt-b.kt-b--drift,.is-port .kt-b.kt-b--drift{width:146px;height:82px;border:3px solid #fff4e8;background:linear-gradient(120deg,#e968a0,#c9397f);border-radius:25px;box-shadow:0 5px #63244f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;letter-spacing:0;color:white}
.has-art .kt-b--drift::before{display:none}.kt-b--drift .kt-drift-arrows{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:24px;font-weight:900}.kt-drift-arrows i{font-size:14px;font-style:normal}.kt-b--drift small{font-size:11px;font-weight:700}.kt-b--drift.is-on{background:linear-gradient(120deg,#ff88b9,#dd4d90);box-shadow:0 2px #63244f}
.kt-rpad .kt-b--item{right:6px;bottom:99px;width:76px;height:76px}.kt-rpad .kt-b--brake{right:89px;bottom:106px;width:64px;height:52px}.kt-rpad .kt-b--accel{right:91px;bottom:172px;width:72px;height:54px}
.kt-drive{position:absolute;bottom:calc(128px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:152px;pointer-events:none;text-align:center;color:#fff5de;filter:drop-shadow(0 2px 3px #170b36b3)}.kt-speed{display:flex;justify-content:center;align-items:baseline;gap:4px;line-height:1.1}.kt-speed b{font-size:28px;font-variant-numeric:tabular-nums;font-weight:900}.kt-speed small{font-size:11px;font-weight:800}.kt-charge{height:11px;border:2px solid #fff5de99;border-radius:12px;background:#241a40b3;overflow:hidden;position:relative;margin-top:6px}.kt-charge i{display:block;height:100%;background:#c58bff;width:0;transition:width .06s linear}.kt-charge em{position:absolute;left:48%;top:0;bottom:0;border-left:2px solid #fff6}.kt-drive>span{display:block;font-size:12px;font-weight:800;margin-top:5px;white-space:nowrap}.kt-drive.is-blue .kt-charge i{background:#62ceff;box-shadow:0 0 14px #67d3ff}.kt-drive.is-blue{color:#a8e6ff}.kt-drive.is-orange .kt-charge i{background:#ffb74e}.kt-drive.is-orange{color:#ffd082}.kt-drive.is-boost .kt-charge i{background:#8aefdf}.kt-drive.is-boost{color:#b0fff2}.kt-hud.is-done .kt-drive{display:none}.kt-race-summary{display:flex;flex-direction:column;gap:6px;padding:12px 16px;background:#fff4d912;border:1px solid #fff4d933;border-radius:14px;margin:14px 0;color:#ffe39d;text-align:center}.kt-race-summary span{font-size:13px;color:#fff3db}
.kt-pop.is-tip{white-space:normal;max-width:min(90vw,540px);width:max-content;text-align:center;line-height:1.5}
@media(orientation:portrait){.kt-drive{bottom:calc(127px + env(safe-area-inset-bottom));left:37%;width:146px}.is-port .kt-rpad .kt-b--item{right:0;bottom:100px}.is-port .kt-rpad .kt-b--brake{right:82px;bottom:103px;width:62px;height:48px}.is-port .kt-rpad .kt-b--accel{right:85px;bottom:162px}.is-port .kt-b--l,.is-port .kt-b--r{width:68px;height:72px}.is-port .kt-lpad{gap:8px}.is-port .kt-rpad{width:154px}.kt-b.kt-b--drift{width:140px;height:80px}}
@media(orientation:landscape) and (max-height:500px){.kt-drive{bottom:18px;left:50%}.kt-rpad{height:172px}.kt-rpad .kt-b--item{bottom:93px;right:0;width:68px;height:68px}.kt-rpad .kt-b--brake{bottom:100px;right:81px}.kt-rpad .kt-b--accel{bottom:22px;right:162px;width:64px;height:50px}.kt-b.kt-b--drift{height:76px}.kt-map{height:72px;width:72px}.kt-pop.is-tip{font-size:13px;max-width:50vw}}

/* Keep every result reachable without covering it with sticky actions. */
.kt-sheet.kt-res{display:flex;flex-direction:column;height:min(680px,calc(100dvh - 40px));overflow:hidden;gap:10px;min-height:0}
.kt-res .kt-res__head{flex:none;margin:0}.kt-res .kt-res__list{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding-right:3px;scrollbar-width:thin}.kt-res .kt-res__list li{flex:none}
.kt-res .kt-race-summary{flex:none;margin:0;padding:10px;background:#fff0bb;border:1px solid #e3c878;color:#634618}.kt-res .kt-race-summary span{color:#493b30;font-size:13px}
.kt-sheet.kt-res>.kt-res__btns{position:static;flex:none;margin:0;padding:0;background:none;gap:8px}.kt-res>.kt-note{display:none}.kt-res__btns>.kt-btn{min-height:44px;padding:9px 12px}
@media(orientation:landscape) and (max-height:500px){.kt-sheet.kt-res{display:grid;grid-template-columns:170px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:10px 14px;width:min(740px,100%);height:calc(100dvh - 28px);padding:14px}.kt-res .kt-res__head{grid-column:1;grid-row:1;align-self:end}.kt-res .kt-res__head b{display:block;font-size:48px;margin:0 0 8px}.kt-res .kt-res__head span{font-size:13px;display:block}.kt-res .kt-race-summary{grid-column:1;grid-row:2;align-self:start;padding:10px 5px}.kt-res .kt-race-summary span{line-height:1.6}.kt-res .kt-res__list{grid-column:2;grid-row:1 / 3;align-self:stretch}.kt-sheet.kt-res>.kt-res__btns{grid-column:1 / 3;grid-row:3}.kt-res__list li span small{display:none}.kt-res__list li{min-height:34px}}

@media(orientation:landscape) and (max-height:500px){.kt-res .kt-res__list{display:grid;grid-auto-rows:minmax(34px,1fr);gap:3px}.kt-res .kt-res__list li{padding:1px 8px;line-height:1.15;min-height:34px}.kt-res .kt-res__list li img{width:26px;height:26px}.kt-res .kt-res__list li b{width:26px;height:26px;font-size:14px}.kt-res .kt-res__list li span,.kt-res .kt-res__list li i{font-size:14px}.kt-res .kt-race-summary span{font-size:12px}}

/* Race information is grouped at the corners; the road remains the focal point. */
.kt-hud{--race-accent:#89e6e0;font-family:system-ui,'Yu Gothic',sans-serif}
.kt-hud:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-conic-gradient(from 12deg at 50% 42%,transparent 0deg 11deg,#ddffff33 12deg 12.4deg,transparent 13deg 25deg);mask-image:radial-gradient(ellipse,transparent 35%,#000 100%);transition:opacity .2s}
.kt-hud.is-turbo:before{opacity:.55}.kt-hud.is-turbo{--race-accent:#a2ffe8}
.kt-tl{gap:5px}.kt-lap{background:#18213ce6!important;border:1px solid #fff4!important;border-radius:12px!important;padding:8px 10px!important;box-shadow:0 3px 10px #1117;font-style:normal;min-width:83px}.kt-lap:before,.kt-lap:after{display:none!important}.kt-lap b{font-size:27px}.kt-lap small{font-size:11px}.kt-lap i{font-size:15px}
.kt-time{font-size:12px;background:#17203bd9;padding:5px 9px;letter-spacing:.05em;border-radius:8px}
.kt-tr{flex-direction:column;gap:12px}.kt-rank,.has-art .kt-rank{order:-1;display:flex;align-items:baseline;justify-content:center;gap:2px;width:84px!important;height:58px!important;background:#18213ce8!important;border:1px solid #fff6;border-radius:15px;box-shadow:0 3px 10px #1116;text-shadow:none!important;padding:7px 9px!important;transform:none;color:#fff!important}
.kt-rank:before,.kt-rank:after,.has-art .kt-rank:before{display:none!important}.kt-rank b{font-size:40px!important;line-height:1!important;position:static!important;color:#ffe08a!important;-webkit-text-stroke:0!important;text-shadow:none!important}.kt-rank small{font-size:12px!important;position:static!important}.kt-rank .kt-rank-total{font-size:10px;opacity:.6}
.kt-slot,.has-art .kt-slot{width:62px;height:62px;border:2px solid #e9e5ff99;background:#17203bd9!important;border-radius:16px;box-shadow:0 3px 10px #1116;margin-right:4px}.kt-slot:before,.has-art .kt-slot:before{display:none!important}.kt-slot svg{width:46px;height:46px}.kt-slot__hint{font-size:10px;font-style:normal;color:#cad3e8}.kt-slot span{font-size:11px;max-width:130px;white-space:normal;line-height:1.3;text-align:right}
.kt-menu{left:50%;right:auto;transform:translateX(-50%);width:42px;height:42px;font-size:18px;border-radius:12px;background:#17203bd9;border:1px solid #fff5}
.kt-map{width:94px;height:94px;padding:5px;background:#19223a80;border:1px solid #fff2;border-radius:14px;box-sizing:border-box}
.kt-route{position:absolute;left:50%;transform:translateX(-50%);top:calc(60px + env(safe-area-inset-top));min-width:85px;text-align:center;background:#19223ad9;border:1px solid #fff3;padding:7px 11px;border-radius:12px;color:#f2eddc}
.kt-route b{font-size:22px;display:block;line-height:1.2;color:#fce3a2}.kt-route span{display:block;font-size:10px;line-height:1.4;margin-top:3px}.kt-route.is-warning{border-color:#ffbc7d;background:#543239e8}.kt-gap{font-size:11px;color:#e5edfa;margin-top:5px;font-weight:600;max-width:125px;background:#17203bbd;border-radius:8px;padding:5px 8px}
.kt-drive{background:#17203bdc;border:1px solid #ffffff40;border-radius:14px;padding:8px 10px;width:140px;filter:none}.kt-speed b{font-size:25px}.kt-speed small{font-size:10px}.kt-drive>span{font-size:10px;letter-spacing:.02em}.kt-charge{height:8px;border-width:1px;margin-top:5px}
.kt-pop{top:31%;font-size:20px;border-radius:30px;padding:9px 18px;background:#152642e6;box-shadow:0 3px 14px #151c4a44;color:#b3fff0}.kt-pop.is-hit{color:#ffbdaf}.kt-pop.is-pass{color:#ffe3a4;border:1px solid #ffe3a466}.kt-pop.is-tip{font-size:12px;top:32%;padding:8px 12px}
.kt-b,.has-art .kt-b{background:#202c48db!important;border:2px solid #ffffff8c!important;box-shadow:0 4px 0 #14203980!important;border-radius:50%!important;color:#fff!important;filter:none!important}
.kt-b:before,.has-art .kt-b:before{display:none!important}.kt-b .kt-b__a{font-size:24px!important;color:white!important;text-shadow:none!important}.kt-b__l{position:static!important;background:none!important;display:block;font-size:11px!important;text-shadow:none!important;line-height:1.3}
.kt-b.kt-b--drift,.is-port .kt-b.kt-b--drift{background:linear-gradient(145deg,#4d9fa7,#256774)!important;border-color:#b8f2ed!important;border-radius:22px!important;box-shadow:0 4px #174450!important;width:140px;height:78px}
.kt-b.kt-b--drift.is-on{background:linear-gradient(145deg,#70c9cb,#348e98)!important;box-shadow:0 1px #174450!important}.kt-drift-arrows{font-size:22px!important}.kt-drift-arrows i{font-size:13px!important}.kt-b--drift small{font-size:10px!important}
.kt-b--item .kt-b__l:before{content:'✦';display:block;font-size:27px;color:#ffe1a0;line-height:1.1}.kt-b--brake .kt-b__l:before{content:'Ⅱ';display:block;font-size:20px;line-height:1.1;color:#d6e3ef}.kt-b--item{background:#394267e6!important}.kt-b--brake{border-radius:15px!important}
@media(orientation:portrait){.kt-drive{left:28%;bottom:calc(115px + env(safe-area-inset-bottom));width:122px}.kt-rpad .kt-b--item,.is-port .kt-rpad .kt-b--item{bottom:96px;right:0;width:62px;height:62px}.kt-rpad .kt-b--brake,.is-port .kt-rpad .kt-b--brake{bottom:101px;right:74px;width:56px;height:50px}.kt-rpad .kt-b--accel,.is-port .kt-rpad .kt-b--accel{bottom:162px;right:75px;width:58px;height:50px}.is-port .kt-b--l,.is-port .kt-b--r{width:62px;height:62px}.is-port .kt-lpad{gap:7px}.kt-route{top:65px}.kt-slot{margin-top:2px}.kt-map{width:85px;height:85px}.kt-gap{font-size:10px}}
@media(orientation:landscape) and (max-height:500px){.kt-map{width:76px;height:76px}.kt-drive{bottom:12px;left:50%;width:130px;padding:7px 9px}.kt-route{top:15px;left:calc(50% - 105px);min-width:74px;padding:5px 8px}.kt-route b{font-size:18px}.kt-tr{gap:9px}.kt-rank,.has-art .kt-rank{height:47px!important;width:75px!important}.kt-rank b{font-size:32px!important}.kt-slot{width:53px;height:53px}.kt-slot svg{width:40px;height:40px}.kt-pop{top:31%;font-size:18px}.kt-b--item{width:61px!important;height:61px!important}.kt-rpad .kt-b--brake{right:76px;bottom:100px}.kt-gap{max-width:120px}}
@media(prefers-reduced-motion:reduce){.kt-hud:before{display:none}.kt-rank{animation:none!important}.kt-hud *{transition:none!important}}

.has-art .kt-b__a{display:block!important}.has-art .kt-b__l{transform:none!important;left:auto!important;bottom:auto!important;text-align:center!important;width:100%}.kt-rank,.has-art .kt-rank{margin-top:0!important}.kt-b--brake,.kt-b--item,.kt-b--accel{display:flex!important;align-items:center!important;justify-content:center!important}

/* Single-player modes and a cup that keeps progress between races. */
.kt-modes{display:grid;gap:10px}.kt-mode{display:flex;flex-direction:column;gap:7px;text-align:left;background:#fff;border:2px solid #ded8cd;border-radius:16px;padding:16px 18px;color:#20223e;min-height:80px;cursor:pointer}.kt-mode:hover,.kt-mode:focus-visible{border-color:#347e86;background:#eaf7f3}.kt-mode b{font-size:18px}.kt-mode span{font-size:13px;line-height:1.5;color:#59616a}.kt-cup-resume{width:100%;margin-top:13px}.kt-cup-route{padding:0;list-style:none;display:flex;gap:10px;margin:16px 0}.kt-cup-route li{flex:1;min-width:0;border:1px solid #d8d3c9;background:#fff;border-radius:12px;overflow:hidden}.kt-cup-route img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.kt-cup-route span{display:block;padding:8px;font-size:11px;color:#6e6254}.kt-cup-route b{display:block;font-size:13px;margin-top:4px;color:#26233d}
.kt-cup-sheet{height:min(720px,calc(100dvh - 30px));display:flex;flex-direction:column;gap:13px;overflow:hidden}.kt-cup-head{text-align:center;flex:none}.kt-cup-head>span{font-size:12px;color:#665a47}.kt-cup-head h2{margin:6px 0;font-size:24px}.kt-cup-head>strong{font-size:36px;color:#94712b}.kt-cup-head small{font-size:11px}.kt-cup-standings{list-style:none;padding:0;margin:0;overflow-y:auto;min-height:0;flex:1;display:flex;flex-direction:column;gap:6px}.kt-cup-standings li{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #ddd5c8;padding:9px;border-radius:12px;min-height:50px;flex:none}.kt-cup-standings li.is-me{background:#e5f3ec;border-color:#347e86}.kt-cup-standings li>b{width:20px;text-align:center}.kt-cup-standings li>span{flex:1;font-size:13px}.kt-cup-standings small{display:block;font-size:10px;color:#70675b;margin-top:3px}.kt-cup-standings li>strong{font-size:22px;text-align:right}.kt-cup-sheet>.kt-res__btns{flex:none;margin:0;gap:8px}.kt-res__btns .kt-btn{word-break:keep-all;overflow-wrap:anywhere}
@media(orientation:landscape) and (max-height:500px){.kt-modes{grid-template-columns:repeat(3,1fr)}.kt-mode{padding:12px;min-height:100px}.kt-mode b{font-size:16px}.kt-mode span{font-size:11px}.kt-cup-route{margin:8px 0}.kt-cup-route img{height:64px;aspect-ratio:auto}.kt-cup-sheet{display:grid;grid-template-columns:180px 1fr;grid-template-rows:1fr auto;gap:10px;height:calc(100dvh - 24px);width:min(760px,100%)}.kt-cup-head{align-self:center}.kt-cup-head h2{font-size:22px}.kt-cup-standings{height:100%;grid-column:2;grid-row:1}.kt-cup-standings li{min-height:38px;padding:5px}.kt-cup-standings .kt-face{width:30px;height:30px}.kt-cup-standings small{font-size:9px}.kt-cup-sheet>.kt-res__btns{grid-column:1/3;grid-row:2}}

.kt-music-credit{font-size:11px;line-height:1.65;text-align:center;color:#706754;margin:7px 0 0}.kt-music-credit a{color:#376e76;text-decoration:underline}.kt-rank.is-time-trial,.has-art .kt-rank.is-time-trial{flex-direction:column;align-items:center;justify-content:center;gap:4px}.kt-rank.is-time-trial b,.has-art .kt-rank.is-time-trial b{font-size:15px!important;letter-spacing:.04em}.kt-rank.is-time-trial small{font-size:10px!important;letter-spacing:.12em}
/* REV1023 6コース・2つのグランプリ */
@media (max-width: 520px) { .kt-courses { grid-template-columns: repeat(2, minmax(0, 1fr)); } .kt-course { flex-direction: column; align-items: stretch; } .kt-course img { width: 100%; } .kt-course span { font-size: 13px; } }
@media(orientation:landscape) and (max-height:500px){.kt-modes{grid-template-columns:repeat(4,1fr)}.kt-courses{grid-template-columns:repeat(6,minmax(0,1fr))}.kt-course span{font-size:11px}}
.kt-mode--new b::after{content:'NEW';margin-left:6px;font-size:11px;padding:1px 6px;border-radius:8px;background:#ff7aa8;color:#fff;vertical-align:middle}
