/* アズホース — 小さく、静かに、洗練。オフホワイト基調、アクセントはブロンズ1色。 */
:root{--bg:#faf8f2;--panel:#fff;--line:#e6e0d2;--ink:#171713;--sub:#8a8578;--accent:#b07d2b;--accent-soft:#f3e9d2;--danger:#c0392b}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;min-height:100dvh}
#app{max-width:480px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
.screen{display:none;animation:fadein .45s cubic-bezier(.22,1,.36,1)}
.screen.active{display:block}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.kicker{font-size:11px;letter-spacing:.5em;color:var(--accent);font-weight:700;text-align:center}
.title-wrap{text-align:center;padding:9dvh 0 30px}
.horse-mark{width:110px;margin:18px auto 6px;opacity:.92}
.horse-mark svg{width:100%;height:auto;display:block;filter:drop-shadow(0 7px 7px rgba(23,23,19,.13))}
.title-logo{font-size:54px;line-height:1.1;margin:4px 0 0;font-weight:800;letter-spacing:.06em}
.title-en{font-size:11px;letter-spacing:.55em;color:var(--sub);margin:6px 0 0}
.title-catch{color:var(--sub);font-size:14px;margin:18px 0 22px;letter-spacing:.04em}
.best-row{display:flex;gap:10px;justify-content:center;margin:0 auto 26px;max-width:320px}
.best-row>div{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 8px;box-shadow:0 1px 3px rgba(23,23,19,.05),inset 0 1px 0 #fff}
.label{display:block;font-size:10px;color:var(--sub);letter-spacing:.14em;margin-bottom:2px}
.num{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15}
.btn-primary{background:var(--ink);color:#fff;font-weight:700;border-radius:999px;padding:13px 28px;font-size:16px;letter-spacing:.06em;transition:transform .25s cubic-bezier(.22,1,.36,1),opacity .25s}
.btn-primary:active{transform:scale(.97)}
.btn-primary.big{font-size:18px;padding:15px 56px}
.btn-primary.full{width:100%}
.btn-ghost{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:12px 22px;font-size:14px;width:100%}
.hint{color:var(--sub);font-size:12px;margin-top:16px}
.title-links{margin-top:26px;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}
.link-btn{color:var(--sub);font-size:13px;text-decoration:underline;text-underline-offset:3px;padding:6px 4px}
.link-btn.center{display:block;margin:10px auto 0}
.sep{color:var(--line)}
.user-line{font-size:12.5px;color:var(--sub);margin-top:10px;min-height:1.4em}
.title-foot{color:#b8b2a2;font-size:11px;letter-spacing:.18em;margin-top:7dvh;line-height:2}
.title-foot a{color:var(--sub)}
.subbar{display:flex;align-items:center;gap:10px;padding:16px 0 8px}
.subbar h2{font-size:18px;margin:0;letter-spacing:.06em}
.back{font-size:18px;color:var(--sub);width:34px;height:34px;border-radius:50%;background:var(--panel);border:1px solid var(--line);line-height:1;flex:none}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px 20px;margin-top:12px}
.seg{display:flex;background:#f1ede1;border-radius:999px;padding:4px;margin-bottom:20px}
.seg-btn{flex:1;padding:9px;border-radius:999px;color:var(--sub);font-weight:600;font-size:14px}
.seg-btn.on{background:#fff;color:var(--ink);box-shadow:0 1px 6px rgba(0,0,0,.08)}
.fld{display:block;margin-bottom:14px}
.fld span{display:block;font-size:11.5px;color:var(--sub);margin-bottom:6px}
.fld input{width:100%;background:#fbfaf6;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:16px;padding:12px 14px;outline:none}
.fld input:focus{border-color:var(--accent)}
.err{color:var(--danger);font-size:13px;margin:8px 0}
[hidden]{display:none !important}
.chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--sub);margin:2px 0 12px}
.chk input{width:16px;height:16px}
.sep-line{border:none;border-top:1px solid var(--line);margin:20px 0}
.note{color:var(--sub);font-size:12px;line-height:1.7;margin-top:14px}
.note.center{text-align:center}
.game-head{display:flex;align-items:center;gap:10px;padding:14px 0 8px}
.hud{display:flex;gap:8px;flex:1}
.hud-item{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:7px 8px;text-align:center;box-shadow:0 1px 3px rgba(23,23,19,.05),inset 0 1px 0 #fff}
.hud-item .num{font-size:19px}
#stage-wrap{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#fdfcf8,#f4efe2);box-shadow:inset 0 14px 26px rgba(255,255,255,.55),inset 0 -20px 30px rgba(176,125,43,.06),0 2px 10px rgba(23,23,19,.05)}
#game-canvas{display:block;width:100%;height:auto;aspect-ratio:720/420;touch-action:none}
.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(250,248,242,.72);text-align:center;padding:20px;transition:opacity .35s}
.overlay.hidden{opacity:0;pointer-events:none}
.overlay-main{font-size:20px;font-weight:800;margin:0;letter-spacing:.04em}
.overlay-sub{color:var(--sub);font-size:13px;margin:8px 0 0}
.jump-btn{width:100%;margin-top:14px;background:linear-gradient(180deg,#23231e,var(--ink));color:#fff;border-radius:16px;padding:18px;font-size:18px;font-weight:800;letter-spacing:.2em;transition:transform .15s;box-shadow:0 3px 10px rgba(23,23,19,.18),inset 0 1px 0 rgba(255,255,255,.14)}
.jump-btn:active{transform:scale(.985)}
.game-hint{text-align:center;color:var(--sub);font-size:12px;margin-top:10px}
.rank-list{display:grid;gap:8px;margin-top:12px}
.rank-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:12px 15px}
.rank-row.me{border-color:var(--accent)}
.rank-no{font-size:18px;font-weight:800;width:32px;text-align:center;font-variant-numeric:tabular-nums}
.rank-no.top{color:var(--accent)}
.rank-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-score{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}
.empty-note{color:var(--sub);text-align:center;padding:32px 0;font-size:13.5px;line-height:1.9}
.rank-me{margin-top:12px}
.shop-list{display:grid;gap:10px;margin-top:12px}
.shop-card{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:15px 17px}
.shop-name{font-weight:700;font-size:15px}
.shop-sub{color:var(--sub);font-size:12px;margin-top:2px}
.soon{font-size:11px;color:var(--sub);border:1px solid var(--line);border-radius:999px;padding:4px 12px;white-space:nowrap}
.modal{position:fixed;inset:0;background:rgba(23,23,19,.48);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.modal[hidden]{display:none}
.modal-card{background:#fff;border-radius:20px;padding:26px 22px;width:100%;max-width:400px;animation:fadein .35s cubic-bezier(.22,1,.36,1);box-shadow:0 18px 44px rgba(23,23,19,.22),inset 0 1px 0 #fff}
.modal-kicker{font-size:10px;letter-spacing:.4em;color:var(--accent);font-weight:700;text-align:center;margin:0}
.modal-card h3{font-size:22px;text-align:center;margin:8px 0 4px}
.best-badge{text-align:center;color:var(--accent);font-weight:800;font-size:13px;letter-spacing:.14em;margin:4px 0}
.result-rows{display:grid;gap:7px;margin:18px 0 6px}
.result-rows .row{display:flex;justify-content:space-between;background:#fbfaf6;border:1px solid var(--line);border-radius:11px;padding:10px 14px;font-size:14px}
.result-rows .row b{font-variant-numeric:tabular-nums}
.result-rows .row.muted{color:var(--sub)}
.modal-btns{display:grid;gap:9px;margin-top:16px}
.sound-btn{font-size:16px;color:var(--ink);width:38px;height:38px;border-radius:50%;background:var(--panel);border:1px solid var(--line);line-height:1;flex:none;transition:opacity .25s}
.sound-btn.off{color:var(--sub);opacity:.55;text-decoration:line-through}
.result-comment{text-align:center;color:var(--sub);font-size:13.5px;line-height:1.8;margin:8px 4px 0;letter-spacing:.03em}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:999px;padding:11px 22px;font-size:13.5px;z-index:60;white-space:nowrap}
.toast[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.screen,.modal-card{animation:none}}

/* ===== Webアプリ化 2026-10-28（body.game-app スコープ＝本編のみ。ガイド/規約は app.css を読まない） ===== */
html { overscroll-behavior: none; }
body.game-app { position: fixed; inset: 0; width: 100%; height: 100dvh; overflow: hidden; overscroll-behavior: none; touch-action: manipulation; }
body.game-app #app { height: 100%; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; touch-action: pan-y; -webkit-overflow-scrolling: touch; padding-top: env(safe-area-inset-top, 0px); }
body.game-app .modal-card, body.game-app .sheet { overscroll-behavior: contain; touch-action: pan-y; }
body.game-app #game-canvas { touch-action: none; }

/* ================= 再点検 2026-10-29（新条件一式・加算分） ================= */

/* ---- 長押しポップアップ全廃（プレイ面）: コールアウト・選択を止める。
        入力欄（input/textarea）の長押しペーストだけは対象外に残す。 ---- */
body.game-app #app, body.game-app #modal {
  -webkit-touch-callout: none;
  user-select: none; -webkit-user-select: none;
}
body.game-app input, body.game-app textarea {
  user-select: text; -webkit-user-select: text; -webkit-touch-callout: default;
}
#game-canvas, #stage-wrap, #stage-wrap *, .jump-btn, .hud, .hud *,
.shop-card, .rank-row, .overlay, .overlay * {
  -webkit-touch-callout: none !important;
  user-select: none !important; -webkit-user-select: none !important;
}

/* ---- CENTERチップ被りの本作側回避（共通キットは無変更） ----
   ゲーム画面（没入プレイ）ではチップ＋展開メニューを隠し、右上の音ボタンに
   被らないようにする。app.js の show() が body.game-active を付け外しする。
   :has は保険。それ以外の画面ではチップは右上に操作要素がなく被らない。 */
body.game-active #azc-chip, body.game-active #azc-menu { display: none !important; }
body:has(#scr-game.active) #azc-chip, body:has(#scr-game.active) #azc-menu { display: none !important; }
/* それ以外の画面では上部38pxの帯を確保し、チップ（右上固定・高さ約32px＋余白）が
   静止状態の操作要素・価格表示に被らないようにする（TOWN再点検と同方式）。 */
body.game-app #app { padding-top: calc(env(safe-area-inset-top, 0px) + 38px); }

/* ---- ゲーム画面の再編（縮小ではなく再編で大きく） ----
   画面いっぱいの縦フレックスにし、ステージは左右フルブリード（358→390px幅、
   高さ 209.7→227.5px に拡大）。JUMPは親指の届く下部へ置く。 */
#scr-game.active { display: flex; flex-direction: column; height: 100%; }
#scr-game .game-head { flex: none; }
#scr-game #stage-wrap { flex: none; margin: 0 -16px; border-left: none; border-right: none; border-radius: 0; }
.game-meta { display: flex; align-items: baseline; gap: 6px; justify-content: center; margin-top: 13px; }
.game-meta .label { margin-bottom: 0; }
.game-meta .num { font-size: 17px; }
.game-meta .meta-sep { width: 20px; }
.game-spacer { flex: 1; min-height: 12px; }
.game-spacer.top { flex: 0.55; }
#scr-game .jump-btn { flex: none; padding: 21px; font-size: 19px; }
#scr-game .game-hint { flex: none; margin-bottom: 2px; }

/* ---- ショップカタログ（アズコイン販売中） ---- */
.shop-cat-note {
  font-size: 11.5px; color: #8a5f14; line-height: 1.7;
  background: rgba(176,125,43,.07); border: 1px solid rgba(176,125,43,.18);
  padding: 8px 12px; border-radius: 12px; margin: 12px 0 2px;
}
.shop-cat-head { font-size: 12px; font-weight: 800; letter-spacing: .1em; color: var(--sub); margin: 16px 2px 0; }
.shop-card .s-main { flex: 1; min-width: 0; }
.shop-ic-wrap { width: 34px; height: 34px; flex: none; display: flex; align-items: center; justify-content: center; background: #fbfaf6; border: 1px solid var(--line); border-radius: 10px; margin-right: 11px; }
.swatch { width: 20px; height: 20px; border-radius: 50%; border: 1px solid rgba(23,23,19,.18); display: block; }
.shop-ic { width: 22px; height: 22px; display: block; }
.shop-badge-design {
  display: inline-block; font-size: 10px; font-weight: 800; color: var(--accent);
  border: 1px solid rgba(176,125,43,.45); border-radius: 999px; padding: 1px 7px;
  margin-left: 7px; vertical-align: 2px; background: var(--accent-soft); white-space: nowrap;
}
.shop-card .s-price { font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; margin: 0 10px; white-space: nowrap; }
.shop-card .s-tax { font-size: 10px; color: var(--sub); font-weight: 700; margin-left: 3px; }
.catalog-btn { font: inherit; background: none; }
.catalog-btn:disabled { opacity: .8; cursor: default; }
.ref-card { opacity: .72; }

/* ---- ネイティブアプリ級の演出＋離さなさ（表現のみ） ----
   イージングは全て cubic-bezier(.22,1,.36,1) の静かな「スッ」。バウンス・
   ドカーンは使わない。登場演出は transform と競合しないよう translate /
   scale プロパティで組む。 */
@keyframes riseIn { from { opacity: 0; translate: 0 7px; } to { opacity: 1; translate: 0 0; } }
#scr-title.active .horse-mark { animation: riseIn .42s cubic-bezier(.22,1,.36,1) both; }
#scr-title.active .title-logo, #scr-title.active .title-en { animation: riseIn .42s cubic-bezier(.22,1,.36,1) .04s both; }
#scr-title.active .title-catch { animation: riseIn .42s cubic-bezier(.22,1,.36,1) .08s both; }
#scr-title.active .best-row { animation: riseIn .42s cubic-bezier(.22,1,.36,1) .12s both; }
#scr-title.active #btn-start { animation: riseIn .42s cubic-bezier(.22,1,.36,1) .16s both; }
#scr-game.active .hud-item { animation: riseIn .34s cubic-bezier(.22,1,.36,1) both; }
#scr-game.active .hud-item:nth-child(2) { animation-delay: .03s; }
#scr-game.active .hud-item:nth-child(3) { animation-delay: .06s; }
#scr-game.active #stage-wrap { animation: riseIn .4s cubic-bezier(.22,1,.36,1) .05s both; }
#scr-game.active .game-meta { animation: riseIn .36s cubic-bezier(.22,1,.36,1) .1s both; }
#scr-shop.active .shop-card, #scr-ranking.active .rank-row { animation: riseIn .34s cubic-bezier(.22,1,.36,1) both; }
.modal-card { animation: modalIn .38s cubic-bezier(.22,1,.36,1); }
@keyframes modalIn { from { opacity: 0; translate: 0 10px; scale: .97; } to { opacity: 1; translate: 0 0; scale: 1; } }
.toast { animation: toastIn .3s cubic-bezier(.22,1,.36,1); }
@keyframes toastIn { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
/* 取得の手応え: HUDアイテムの小さな弾み */
@keyframes hudBump { 0% { scale: 1; } 35% { scale: 1.07; } 100% { scale: 1; } }
.hud-item.bump { animation: hudBump .32s cubic-bezier(.22,1,.36,1); }
/* JUMPボタンの静かな呼吸（ブロンズのグローがそっと明滅するだけ） */
@keyframes jumpGlow {
  from { box-shadow: 0 3px 10px rgba(23,23,19,.18), inset 0 1px 0 rgba(255,255,255,.14), 0 0 0 0 rgba(176,125,43,0); }
  to { box-shadow: 0 3px 10px rgba(23,23,19,.18), inset 0 1px 0 rgba(255,255,255,.14), 0 0 18px 2px rgba(176,125,43,.20); }
}
#scr-game.active .jump-btn { animation: jumpGlow 2.8s ease-in-out infinite alternate; }
#scr-game.active .jump-btn:active { animation: none; }
/* NEW BEST の静かなグロー */
@keyframes badgeGlow { from { text-shadow: 0 0 0 rgba(176,125,43,0); } to { text-shadow: 0 0 12px rgba(176,125,43,.45); } }
.best-badge { animation: badgeGlow 1.6s ease-in-out infinite alternate; }
/* 押下の沈み込み（scale プロパティ＝既存 transform 演出と競合しない） */
.shop-card, .rank-row { transition: scale .16s cubic-bezier(.22,1,.36,1); }
.shop-card:active, .rank-row:active { scale: .985; }

@media (prefers-reduced-motion: reduce) {
  #scr-title.active .horse-mark, #scr-title.active .title-logo, #scr-title.active .title-en,
  #scr-title.active .title-catch, #scr-title.active .best-row, #scr-title.active #btn-start,
  #scr-game.active .hud-item, #scr-game.active #stage-wrap, #scr-game.active .game-meta,
  #scr-shop.active .shop-card, #scr-ranking.active .rank-row,
  .modal-card, .toast, .hud-item.bump, #scr-game.active .jump-btn, .best-badge { animation: none; }
}

/* === アイテムショップ大型化（ITEM-SHOP-SPEC・フラッグシップ選択欄の文法） === */
.azs-balance{display:flex;align-items:baseline;gap:10px;margin:12px 0 4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.azs-balance-label{font-size:11px;letter-spacing:.08em;color:var(--sub);font-weight:700}
.azs-balance-num{font-size:20px;font-variant-numeric:tabular-nums}
.azs-balance-link{margin-left:auto;font-size:12px;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line)}
.azs-guest{margin-top:14px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 16px}
.azs-guest p{font-size:13.5px;line-height:1.7;margin-bottom:14px}
.azs-stage{display:flex;align-items:center;gap:4px;margin-top:16px}
.azs-arrow{appearance:none;border:none;background:none;font-size:30px;line-height:1;color:var(--sub);cursor:pointer;padding:10px 6px;flex:none;transition:transform .25s cubic-bezier(.22,.8,.3,1),color .25s;-webkit-tap-highlight-color:transparent}
.azs-arrow:active{transform:scale(.9);color:var(--ink)}
.azs-focus{flex:1;height:218px;border-radius:20px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:background .45s cubic-bezier(.22,.8,.3,1)}
.azs-focus .shop-ic{width:132px;height:132px;animation:azsIn .5s cubic-bezier(.22,.8,.3,1) both}
.azs-focus .swatch{width:118px;height:118px;border-radius:50%;animation:azsIn .5s cubic-bezier(.22,.8,.3,1) both}
@keyframes azsIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.azs-info{text-align:center;margin-top:16px}
.azs-kind{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--sub)}
.azs-name{font-size:22px;letter-spacing:.03em;margin-top:4px}
.azs-effect{font-size:13px;color:#55524b;line-height:1.7;margin-top:8px;min-height:2.6em}
.azs-price{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:6px}
.azs-price-unit{font-size:13px;font-weight:700;color:var(--sub)}
.azs-owned{font-size:12.5px;color:var(--accent);font-weight:700;min-height:1.4em;margin-top:4px}
.azs-action{width:100%;margin-top:10px}
.azs-action:disabled{opacity:.45;cursor:default}
.azs-note{font-size:11.5px;color:var(--sub);margin-top:10px}
.azs-note a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line)}
.azs-dots{display:flex;justify-content:center;gap:6px;margin-top:16px}
.azs-dot{width:6px;height:6px;border-radius:99px;background:var(--line);transition:background .3s,width .3s cubic-bezier(.22,.8,.3,1)}
.azs-dot.on{background:var(--ink);width:18px}
.azs-strip{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.azs-thumb{position:relative;appearance:none;width:52px;height:52px;border-radius:14px;border:1px solid var(--line);background:#fffdf8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.22,.8,.3,1),border-color .25s;-webkit-tap-highlight-color:transparent;padding:0}
.azs-thumb .shop-ic{width:30px;height:30px}
.azs-thumb .swatch{width:26px;height:26px}
.azs-thumb.on{border-color:var(--ink);transform:translateY(-2px)}
.azs-thumb-owned{position:absolute;right:3px;bottom:3px;font-size:9px;font-weight:700;color:#fff;background:var(--accent);border-radius:99px;padding:1px 5px}
.azs-sheet-wrap{position:fixed;inset:0;z-index:80}
.azs-sheet-backdrop{position:absolute;inset:0;background:rgba(23,23,19,.42);animation:azsFade .25s ease both}
.azs-sheet{position:absolute;left:0;right:0;bottom:0;background:var(--panel);border-radius:20px 20px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));max-width:480px;margin:0 auto;animation:azsSheet .38s cubic-bezier(.22,.8,.3,1) both}
@keyframes azsFade{from{opacity:0}to{opacity:1}}
@keyframes azsSheet{from{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}
.azs-sheet-kind{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--sub)}
.azs-sheet-name{font-size:19px;margin-top:3px}
.azs-sheet-rows{margin-top:14px;border-top:1px solid var(--line)}
.azs-sheet-rows>div{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.azs-sheet-rows b{font-size:16px;font-variant-numeric:tabular-nums}
.azs-sheet-note{font-size:11.5px;color:var(--sub);margin-top:12px}
.azs-sheet-note a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--line)}
.azs-sheet-error{font-size:13px;color:#b3402a;margin-top:10px}
.azs-sheet-actions{display:flex;flex-direction:column;gap:9px;margin-top:16px}
/* 進行アイテム */
.item-qty{font-weight:700;color:var(--accent)}
.btn-item{display:block;margin:10px auto 0;background:var(--panel);border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:700}
.btn-item:active{transform:scale(.97)}
/* 復活プロンプト（ステージ内のボトムシート） */
.revive-prompt{position:absolute;left:12px;right:12px;bottom:12px;background:rgba(250,248,242,.97);border:1px solid var(--line);border-radius:16px;padding:16px;text-align:center;box-shadow:0 14px 30px rgba(23,23,19,.18);animation:azsSheet .38s cubic-bezier(.22,.8,.3,1) both;z-index:5}
.revive-title{font-size:17px;font-weight:800;letter-spacing:.04em}
.revive-note{font-size:12.5px;color:var(--sub);margin-top:5px;line-height:1.6}
.revive-btns{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.revive-btns .btn-ghost{width:auto}
/* コース選択（タイトル） */
.course-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px}
.course-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--sub)}
.course-chip{appearance:none;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:700;color:var(--sub);cursor:pointer;transition:all .25s cubic-bezier(.22,.8,.3,1)}
.course-chip.on{border-color:var(--ink);color:var(--ink);background:#fff}

/* アズサバイバル3D 宣伝バナー（自社広告・2026-10-30）。タイトル画面下部の帯。
   フロー内に置き、帯の高さ分レイアウトが伸びる＝操作要素と被らない。 */
.azs-banner{display:block;margin:30px 0 2px;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-radius:0;overflow:hidden;line-height:0;aspect-ratio:4/1;background:#16222e;transition:transform .12s ease}
.azs-banner img{display:block;width:100%;height:100%;object-fit:cover}
.azs-banner:active{transform:scale(.99)}

/* === ノースクロール是正 (2026-11-01 FIX1): タイトル画面を 375×812 に収める ===
   構造のみの是正（文言・導線・世界観は不変）。 */
#app { padding-top: 12px; }
#scr-title .horse-mark { margin-top: 10px; }
#scr-title .horse-mark svg, #scr-title .horse-mark img { height: 48px; width: auto; }
#scr-title .title-logo { font-size: 30px; line-height: 1.2; }
#scr-title .title-catch { margin-top: 10px; }
#scr-title .best-row { padding-top: 8px; padding-bottom: 8px; }
#scr-title .hint { margin-top: 10px; }
#scr-title .title-links { margin-top: 12px; }
#scr-title .title-foot { margin-top: 14px; line-height: 1.5; }
#scr-title .azs-banner { margin-top: 10px; height: 38px; aspect-ratio: auto; }
#scr-title .azs-banner img { object-position: center 42%; }
.azi-strip { padding-top: 10px !important; padding-bottom: 10px !important; }
.azi-strip-title { line-height: 1.35 !important; }
.azi-strip-sub { line-height: 1.4 !important; }

/* === ノースクロール是正 調整2 (2026-11-01 FIX1): #app 上パディング追加を取り消し ===
   元の #app は上パディング0で、認証等の周辺画面の高さを増やさないため。 */
#app { padding-top: 0; }

/* === BUG-SWEEP 2026-11-02: ホーム追加カード(.azip-card, z-index 900)が本編操作を覆う欠陥の修正 ===
   再現: カード表示後に (1)ゲーム画面の JUMP (2)認証画面の「ゲストで走る」
   (3)結果モーダルの「ランキングを見る」(667pxでは「タイトルへ」も) がカードに覆われて押せなかった。
   原因: カードは一度出すと閉じるまで全画面に居座り、結果モーダル(z50)・購入シート(z80)より前面。
   対処: カードはタイトル/ランキング/ショップでのみ出し、本編・認証系・モーダル・シートの前面には出さない。
   (アズメモリーが 2026-11-01 に play/end 画面で行った扱いと同方針。本作は画面構成に合わせ :has で判定) */
body:has(#scr-game.active) .azip-card,
body:has(#scr-auth.active) .azip-card,
body:has(#scr-reset.active) .azip-card,
body:has(#scr-passchange.active) .azip-card,
body:has(#modal:not([hidden])) .azip-card,
body:has(#azs-sheet-wrap:not([hidden])) .azip-card { display: none !important; }
/* 帯(.azi-strip)とカードの二重表示では帯のボタンがカードに覆われるため、カード表示中は帯を畳む */
body:has(.azip-card) .azi-strip { display: none !important; }
/* 同・タイトル画面(375x667): カードがガイドリンク/バナーを覆うため、カード表示中だけ
   #app の下余白を足し、末尾までカードの上へスクロールできるようにする(カードを閉じれば余白も消える) */
body:has(#scr-title.active):has(.azip-card.open) #app { padding-bottom: 160px; }
