/* ===== リザルト・名前入力・ランキング画面（js/result.js・js/ranking-ui.js） =====
   見た目の言語は game.css と同じ：3px のインク線＋真下の硬い影、ぷっくり、生成りの地。ピンクは「萌え・自分・特別」だけ（docs/design/visual.md 1・6・7 章） */
#result [hidden], #ranking [hidden] { display: none !important; }
/* 演出中は粒（#fx）をリザルトの上に出す（名前入力シートを開いている間は下に戻す） */
body:has(#result:not([hidden])) #fx { z-index: 9; }
body:has(#nameSheet:not([hidden])) #fx, body:has(#ranking:not([hidden])) #fx { z-index: 7; }

/* ===== リザルト ===== */
#result { justify-content: flex-start; gap: clamp(6px, 1.5vh, 12px); padding: calc(var(--top) + 2px) 14px var(--bot); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; }
#result > * { flex-shrink: 0; }
.rs-pre { opacity: 0; }
#result.rs-lock .rs-acts, #result.rs-lock .rs-info { pointer-events: none; }

/* ミニロゴ（リボン＋萌え萌えお給仕タイム） */
.rs-logo { display: flex; flex-direction: column; align-items: center; line-height: 1; font-family: var(--logo-font); }
.rs-rib { position: relative; z-index: 1; margin-bottom: -2px; padding: 3px 12px 4px; font-size: 11px; color: #fff; background: var(--pink); border: 2.5px solid var(--ink); border-radius: 8px; box-shadow: 0 3px 0 var(--ink); transform: rotate(-3deg); -webkit-text-stroke: 3px var(--ink); paint-order: stroke; }
.rs-nm { font-size: 24px; color: #fff; letter-spacing: -.01em; -webkit-text-stroke: 5px var(--ink); paint-order: stroke; text-shadow: 0 2.5px 0 var(--ink); }
.rs-nm em { font-style: normal; color: var(--pink); }
.rs-nm em.y { color: var(--yellow); }

/* 伝票カード */
.rs-card { position: relative; width: min(100%, 360px); padding: 12px 16px 10px; display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--paper); border: 3px solid var(--ink); border-radius: 20px; box-shadow: 0 6px 0 var(--ink), var(--puffy); }
.rs-card::before { content: ''; position: absolute; inset: 6px; border: 2px dashed rgba(58, 42, 34, .16); border-radius: 14px; pointer-events: none; }
.rs-card p { margin: 0; line-height: 1.3; }
.rs-meta { display: flex; justify-content: center; gap: 10px; font-size: 11px; font-weight: 800; opacity: .65; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rs-hello { margin: 2px 0 0 !important; font-size: 20px !important; line-height: 1.3 !important; }
.rs-lbl { margin-top: 2px !important; font-size: 12px; font-weight: 800; opacity: .6; }
.rs-sales { line-height: 1.15 !important; }
.rs-sales b { display: inline-block; font-size: clamp(40px, 12.5vw, 52px); font-weight: 900; color: var(--yellow); letter-spacing: .01em; font-variant-numeric: tabular-nums; -webkit-text-stroke: 8px var(--ink); paint-order: stroke; text-shadow: 0 5px 0 var(--ink); }
.rs-sales b[data-len="9"], .rs-sales b[data-len="10"], .rs-sales b[data-len="11"] { font-size: clamp(34px, 10.5vw, 44px); }   /* 1,234,567 から */
.rs-sales b.drum { opacity: .55; animation: rsJit .1s steps(2, jump-none) infinite; }
@keyframes rsJit { from { transform: translate(-1px, 1px); } to { transform: translate(1px, -1px); } }

/* 称号のはんこ ＋ 称号の名前 */
.rs-title-row { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 4px; max-width: 100%; }
.rs-seal { position: relative; flex: none; width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%; border: 3px solid var(--ink); box-shadow: 0 4px 0 var(--ink); background: radial-gradient(circle, #fff 0 56%, transparent 57%), var(--seal, #D9CFC4); transform: rotate(-12deg); }
.rs-seal::before { content: ''; position: absolute; inset: 7px; border: 2px dashed #fff; border-radius: 50%; pointer-events: none; }
.rs-seal span { font-family: var(--logo-font); font-size: 20px; line-height: 1; color: var(--seal-fg, var(--ink)); }
.rs-title { min-width: 0; text-align: left; }
.rs-title b { display: block; font-family: var(--logo-font); font-weight: 400; font-size: 21px; line-height: 1.25; color: var(--pink-d); white-space: nowrap; }
.rs-title small { display: block; margin-top: 2px; font-size: 12px; font-weight: 800; }

/* 順位の札・自己ベストの札 */
.rs-tags { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 8px; min-height: 8px; margin-top: 2px; }
.rs-rank { position: relative; overflow: hidden; display: inline-flex; align-items: baseline; gap: 2px; padding: 2px 12px 3px; border-radius: 12px; background: var(--pink); color: #fff; border: 3px solid var(--ink); box-shadow: 0 3px 0 var(--ink); font-weight: 900; white-space: nowrap; -webkit-text-stroke: 3px var(--ink); paint-order: stroke; }
.rs-rank .pre, .rs-rank .post { font-size: 11px; }
.rs-rank .pre { margin-right: 3px; }
.rs-rank .post { margin-left: 5px; }
.rs-rank .unit { font-size: 13px; }
.rs-rank b { font-size: 22px; line-height: 1.1; font-variant-numeric: tabular-nums; -webkit-text-stroke: 5px var(--ink); }
.rs-rank.gold { box-shadow: 0 3px 0 var(--ink), 0 0 0 3px #FFF1B8; }
.rs-rank.shine::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .85) 50%, transparent 60%) 120% 0 / 250% 100% no-repeat; animation: rsShine .7s ease-out forwards; pointer-events: none; }
@keyframes rsShine { to { background-position: -30% 0; } }
.rs-best { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 900; white-space: nowrap; background: var(--paper); border: 2px solid var(--ink); }
.rs-best b { margin-left: 3px; font-size: 12px; }
.rs-best.up { background: var(--yellow); transform: rotate(4deg); box-shadow: 0 2px 0 var(--ink); }

/* 数字のタイル（3 列 × 2 段） */
.rs-tiles { list-style: none; margin: 6px 0 0; padding: 0; width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.rs-tiles li { position: relative; padding: 5px 2px 4px; border-radius: 12px; background: #fff; border: 2px solid var(--ink); line-height: 1.2; }
.rs-tiles small { display: block; font-size: 10px; font-weight: 800; opacity: .6; white-space: nowrap; }
.rs-tiles b { display: block; font-size: 18px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rs-tiles b i { font-style: normal; font-size: 11px; font-weight: 800; margin-left: 1px; }

/* 足元：ゲーム名と URL */
.rs-foot { width: 100%; display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: 6px !important; padding: 6px 2px 0; border-top: 2px dashed var(--line); }
.rs-game { font-family: var(--logo-font); font-size: 11px; white-space: nowrap; }
.rs-url { font-size: 11px; font-weight: 800; color: var(--pink-d); white-space: nowrap; }

/* 状態の行（順位を確認中・通信できない・お休み中など） */
.rs-info { width: min(100%, 360px); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.rs-info p { margin: 0; line-height: 1.45; }
.rs-status { font-size: 11.5px; font-weight: 800; opacity: .75; }
.rs-reload { margin-left: 4px; padding: 1px 10px; border: 2px solid var(--ink); border-radius: 999px; background: var(--paper); font-size: 11px; font-weight: 900; color: var(--ink); box-shadow: 0 2px 0 var(--ink); }
.rs-reload:active { transform: translateY(1px); box-shadow: 0 1px 0 var(--ink); }
/* ミニランキング（自分の上下 2 人ずつ）。縦に余裕のある画面だけ */
.rs-mini { display: none; list-style: none; margin: 4px 0 0; padding: 0; width: 100%; }
.rs-mini li { display: grid; grid-template-columns: 44px 1fr auto; gap: 8px; padding: 1px 10px; font-size: 12px; font-weight: 800; text-align: left; border-radius: 8px; }
.rs-mini li b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; }
.rs-mini li span:first-child { opacity: .6; text-align: right; font-variant-numeric: tabular-nums; }
.rs-mini li span:last-child { font-variant-numeric: tabular-nums; }
.rs-mini li.you { background: var(--pink-l); color: var(--pink-d); font-weight: 900; }
@media (min-height: 860px) { .rs-mini:not(:empty) { display: block; } }

/* ボタン：主ボタンは下に寄せる。「もう一度開店する」はいつも 1 タップ */
.rs-acts { width: min(100%, 360px); margin-top: auto; display: flex; flex-direction: column; gap: 8px; padding-top: 4px; }
.rs-acts .big { width: 100%; padding: 12px 16px; }
.rs-acts .big.pulse { animation: rsPulse 1.2s ease-in-out infinite alternate; }
@keyframes rsPulse { to { transform: scale(1.03); } }
.rs-reg2 { width: 100%; padding: 9px 12px; background: var(--pink-l); color: var(--pink-d); font-weight: 900; }
.rs-subs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.rs-subs .sub { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 9px 2px; font-size: 14px; white-space: nowrap; letter-spacing: -.02em; }

/* 背の低い画面（375×667 など）：見出しを隠して詰める */
@media (max-height: 700px) {
  .rs-hello { display: none; }
  .rs-nm { font-size: 19px; }
  .rs-card { padding-top: 10px; }
  .rs-seal { width: 64px; height: 64px; }
  .rs-seal::before { inset: 6px; }
  .rs-seal span { font-size: 17px; }
  .rs-tiles li { padding: 3px 2px; }
  .rs-tiles b { font-size: 16px; }
  .rs-acts .big { padding: 10px 16px; }
  .rs-subs .sub { padding: 8px 2px; }
  /* 375×667 で下の段のボタンまで 1 画面に収める（約 35px 詰める） */
  #result { gap: 6px; }
  .rs-sales { font-size: 40px; line-height: 1.15; }
  .rs-tiles { margin-top: 3px; }
  .rs-foot { margin-top: 3px; }
  .rs-acts .rs-reg { padding-top: 7px; padding-bottom: 7px; }
  .rs-title-row, .rs-tags { margin-top: 0; }
  .rs-acts { gap: 6px; }
  .rs-acts .big { padding-top: 8px; padding-bottom: 8px; }
}

/* ===== 名前入力シート（リザルトの上に下から出る） ===== */
.ns { position: fixed; inset: 0; z-index: 5; display: flex; align-items: flex-end; justify-content: center; text-align: left; }
.ns-bg { position: absolute; inset: 0; background: rgba(58, 42, 34, .32); animation: fadeIn .15s ease-out; }
.ns-card { position: relative; width: min(100%, 420px); max-height: calc(100% - var(--top) - 6px); overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; margin: 0; padding: 14px 16px calc(var(--bot) + 6px); display: flex; flex-direction: column; gap: 8px; background: var(--paper); border: 3px solid var(--ink); border-bottom: 0; border-radius: 22px 22px 0 0; }
.ns-card h3 { margin: 0; font-family: var(--logo-font); font-weight: 400; font-size: 19px; line-height: 1.3; text-align: center; }
.ns-card h3 small { margin-left: 4px; font-family: "M PLUS Rounded 1c", sans-serif; font-size: 13px; font-weight: 900; color: var(--pink-d); }
/* 注意表示：安心 → お願い 2 つ。お願いの 2 つ（個人情報・なりすまし）はピンクの枠で目立たせる。赤はエラーに取っておく */
.ns-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ns-notes li { padding: 7px 12px; border-radius: 12px; border: 2px solid var(--mint); background: #EAF7F1; font-size: 13.5px; font-weight: 900; line-height: 1.4; }
.ns-notes li.ng { border-color: var(--pink); background: var(--pink-l); }
.ns-lbl { margin-top: 2px; font-size: 12px; font-weight: 900; }
.ns-field { position: relative; }
.ns-field input { width: 100%; padding: 10px 58px 10px 12px; font: inherit; font-size: 18px; font-weight: 800; color: var(--ink); background: #fff; border: 3px solid var(--ink); border-radius: 14px; outline: none; user-select: text; -webkit-user-select: text; }
.ns-field input:focus { border-color: var(--pink-d); box-shadow: 0 0 0 3px var(--pink-l); }
.ns-field input::placeholder { color: rgba(58, 42, 34, .35); }
.ns-count { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 12px; font-weight: 800; opacity: .6; font-variant-numeric: tabular-nums; pointer-events: none; }
.ns-count.over { color: var(--bad); opacity: 1; }
.ns-err { min-height: 1.4em; margin: -2px 0 0 !important; font-size: 12.5px; font-weight: 800; line-height: 1.4 !important; color: var(--bad); }
.ns-err.hint { color: var(--ink); opacity: .8; }
/* 同じ名前の人がいるときの確認（禁止ではないので、色はエラーの赤にしない） */
.ns-same { padding: 10px 12px 12px; border-radius: 14px; background: #FFF1B8; border: 2px solid var(--ink); text-align: center; }
.ns-same p { margin: 0 0 8px; font-size: 14px; font-weight: 900; line-height: 1.5; }
.ns-same-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ns-same-btns .big { width: 100%; padding: 8px 12px; font-size: 18px; }
.ns-same-btns .sub { width: 100%; padding: 8px 12px; font-size: 16px; }
.ns-acts { display: flex; align-items: center; gap: 10px; }
.ns-acts .big { flex: 1; padding: 12px 10px; font-size: 19px; }
.ns-cancel { flex: none; padding: 10px 8px; border: 0; background: none; color: var(--ink); font-size: 15px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

/* ===== ランキング画面 ===== */
#ranking { z-index: 10; justify-content: flex-start; gap: 6px; padding: calc(var(--top) + 2px) 12px 0; background-color: var(--cream); }
.rk-head { width: min(100%, 460px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; }
.rk-head h2 { font-size: 22px !important; white-space: nowrap; }
.sub.rk-back { justify-self: start; padding: 5px 12px; font-size: 13px; white-space: nowrap; }
.rk-top { justify-self: end; padding: 2px 9px; border-radius: 999px; background: var(--ink); color: var(--yellow); font-size: 11px; font-weight: 900; }
.rk-note { margin-top: -4px !important; font-size: 12px; font-weight: 800; opacity: .65; }
.rk-list { position: relative; width: min(100%, 460px); flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; padding: 12px 4px calc(var(--bot) + 12px); text-align: left; }
#ranking.from-result .rk-list { padding-bottom: 12px; }
.rk-foot { width: min(100%, 460px); flex-shrink: 0; padding: 8px 4px var(--bot); }
.rk-foot .big { width: 100%; padding: 12px 16px; }

.rk-rows { display: flex; flex-direction: column; }
.rk-rows.stale { opacity: .55; }
.rk-row { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.rk-who { min-width: 0; display: flex; flex-direction: column; }
.rk-name { display: flex; align-items: center; min-width: 0; }
.rk-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk-you { flex: none; margin-right: 6px; padding: 1px 7px; border-radius: 999px; background: var(--pink); color: #fff; font-style: normal; font-size: 10px; font-weight: 900; line-height: 1.5; }
.rk-sub { display: flex; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 800; opacity: .65; white-space: nowrap; overflow: hidden; }
.rk-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--ink); }
.rk-pend { font-size: 10px; font-weight: 800; color: var(--pink-d); }
.rk-score { font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rk-no { position: relative; display: grid; place-items: center; font-variant-numeric: tabular-nums; }
/* 1〜3 位：金銀銅のカード（表彰台の横並びにはしない） */
.rk-row.podium { min-height: 64px; margin-bottom: 9px; padding: 6px 14px 6px 10px; border: 3px solid var(--ink); border-radius: 16px; box-shadow: 0 5px 0 var(--ink), var(--puffy); }
.rk-row.podium .rk-no { width: 42px; height: 42px; border-radius: 50%; border: 3px solid var(--ink); }
.rk-row.podium .rk-no b { font-size: 20px; font-weight: 900; }
.rk-row.podium .rk-nm { font-family: var(--logo-font); font-size: 17px; line-height: 1.3; }
.rk-row.podium .rk-score { font-size: 20px; }
.rk-row.r1 { min-height: 72px; margin-top: 8px; background: linear-gradient(180deg, #FFF3C4, #FFE08A); }
.rk-row.r1 .rk-no { width: 48px; height: 48px; background: radial-gradient(circle at 35% 30%, #FFF6C8, #FFD23A 55%, #E0A800); }
.rk-row.r1 .rk-no b { font-size: 24px; }
.rk-row.r1 .rk-no svg { position: absolute; top: -14px; left: 50%; margin-left: -11px; }
.rk-row.r1 .rk-nm { font-size: 18px; }
.rk-row.r1 .rk-score { font-size: 22px; }
.rk-row.r2 { background: linear-gradient(180deg, #F6F8FB, #E3E8EF); }
.rk-row.r2 .rk-no { background: radial-gradient(circle at 35% 30%, #FFFFFF, #D5DCE6 55%, #A9B3C2); }
.rk-row.r3 { background: linear-gradient(180deg, #FDF0E4, #F6D2B3); }
.rk-row.r3 .rk-no { background: radial-gradient(circle at 35% 30%, #FFE3C8, #E9A56E 55%, #C07A43); }
/* 1 位だけ、4 秒ごとに光の帯が通る */
.rk-row.r1::after { content: ''; position: absolute; inset: 0; border-radius: 13px; pointer-events: none; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .7) 50%, transparent 60%) 120% 0 / 250% 100% no-repeat; animation: rkShine 4s ease-out 1s infinite; }
@keyframes rkShine { 0% { background-position: 120% 0; } 22%, 100% { background-position: -30% 0; } }
/* 4〜20 位：標準の行 */
.rk-row.top { min-height: 48px; margin-bottom: 7px; padding: 4px 12px 4px 8px; background: var(--paper); border: 2px solid var(--ink); border-radius: 14px; box-shadow: 0 3px 0 var(--ink); }
.rk-row.top .rk-no { width: 30px; height: 30px; border-radius: 50%; background: var(--ink); }
.rk-row.top .rk-no b { font-size: 15px; font-weight: 900; color: var(--yellow); }
.rk-row.top .rk-nm { font-size: 15px; font-weight: 800; }
.rk-row.top .rk-score { font-size: 17px; }
/* ここまで TOP 20 */
.rk-div { display: flex; align-items: center; gap: 8px; margin: 8px 0 6px; }
.rk-div::before, .rk-div::after { content: ''; flex: 1; border-top: 2px dashed var(--line); }
.rk-div span { padding: 2px 12px; border-radius: 999px; background: var(--pink-l); border: 2px solid var(--ink); font-size: 12px; font-weight: 900; white-space: nowrap; }
/* 21〜100 位：詰めた行 */
.rk-row.low { grid-template-columns: 36px minmax(0, 1fr) auto; min-height: 36px; padding: 0 6px 0 0; border-bottom: 1px dashed var(--line); }
.rk-row.low .rk-no { justify-items: end; }
.rk-row.low .rk-no b { font-size: 13px; font-weight: 800; opacity: .6; }
.rk-row.low .rk-nm { font-size: 14px; font-weight: 500; }
.rk-row.low .rk-score { font-size: 14px; font-weight: 800; }
/* 自分の行：どの区分でもピンク */
.rk-row.me { background: var(--pink-l); border-color: var(--pink); }
.rk-row.top.me { border-width: 3px; }
.rk-row.low.me { min-height: 40px; margin: 3px 0; border: 2px solid var(--pink); border-radius: 10px; }
.rk-row.me.glow { animation: rkGlow .7s ease-out 2; }
@keyframes rkGlow { 0% { outline: 0 solid rgba(255, 127, 166, .35); } 50% { outline: 6px solid rgba(255, 127, 166, .35); } 100% { outline: 0 solid rgba(255, 127, 166, 0); } }
.rk-left { margin: 12px 0 0 !important; text-align: center; font-size: 12px; font-weight: 800; opacity: .6; }
/* 画面の外にある自分の行へ飛ぶ帯 */
.rk-jump { position: sticky; bottom: 4px; z-index: 2; width: 100%; margin-top: 10px; display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 14px; background: var(--pink-l); border: 3px solid var(--pink); box-shadow: 0 3px 0 var(--ink); color: var(--ink); font-size: 14px; font-weight: 800; text-align: left; }
.rk-jump b { font-size: 17px; font-weight: 900; }
.rk-jump .rk-js { font-variant-numeric: tabular-nums; }
.rk-jump i { margin-left: auto; font-style: normal; font-weight: 900; }
/* 自分の記録を消す（2 段階） */
/* 読み込み中・読めない・0 件・止まっている */
.rk-skel { height: 48px; margin-bottom: 7px; border-radius: 14px; background: #F3E7D8; animation: rkSkel 1.2s ease-in-out infinite alternate; }
.rk-skel.big { height: 64px; margin-bottom: 9px; border-radius: 16px; }
@keyframes rkSkel { to { background: #FBF3E8; } }
.rk-msg { margin: 8px 0 12px; padding: 14px; border-radius: 16px; background: var(--paper); border: 3px solid var(--ink); box-shadow: 0 4px 0 var(--ink); text-align: center; }
.rk-msg p { margin: 0 0 10px; font-size: 14px; font-weight: 800; line-height: 1.6; }
.rk-msg:not(:has(button)) p { margin: 0; }
.rk-msg.small { padding: 10px; }
.rk-msg.small p { font-size: 12px; margin-bottom: 8px; }
.rk-msg .sub { padding: 6px 18px; font-size: 14px; }
.rk-state { margin: 0 0 8px !important; text-align: center; font-size: 12px; font-weight: 800; opacity: .7; }
.rk-empty { padding: 28px 8px; display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.rk-empty p { font-size: 15px; font-weight: 800; }
.rk-empty b { display: block; margin-top: 4px; font-family: var(--logo-font); font-weight: 400; font-size: 19px; color: var(--pink-d); }
/* 登録直後などのお知らせ */
.rk-toast { position: absolute; z-index: 3; left: 50%; top: calc(var(--top) + 64px); transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); padding: 9px 16px; border-radius: 14px; background: var(--paper); border: 3px solid var(--ink); box-shadow: 0 4px 0 var(--ink); text-align: center; pointer-events: none; }
.rk-toast p { margin: 0; font-size: 14px; font-weight: 800; line-height: 1.5; }
.rk-toast b { color: var(--pink-d); font-weight: 900; }
.rk-toast small { display: block; margin-top: 2px; font-size: 11px; font-weight: 800; opacity: .75; }

/* ===== 動きを減らす設定 ===== */
@media (prefers-reduced-motion: reduce) {
  .rs-acts .big.pulse, .rs-sales b.drum, .rs-rank.shine::after, .rk-row.r1::after, .rk-row.me.glow, .rk-skel, .ns-bg { animation: none !important; }
}
