/* NOCTILUCA（アイドル育成）— 画面。2026-09-24 */
:root {
  --nc-bg: #0b1530; --nc-bg2: #13224a; --nc-ink: #fff; --nc-ink2: #c9d4f2; --nc-teal: #2dd4bf; --nc-teal2: #0e9f8f;
  --nc-gold: #f5c451; --nc-gold2: #d99a1c; --nc-pink: #ff7aa8; --nc-red: #ef4444; --nc-panel: rgba(255,255,255,.94); --nc-dark: #1c2440;
  --nc-vo: #22b8c9; --nc-da: #f08a24; --nc-vi: #a57ee8; --nc-ch: #ff6fa0; --nc-me: #42b86a;
  --nc-font: "Hiragino Maru Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Meiryo", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html, body.ncb { margin: 0; height: 100%; background: #050a18; overflow: hidden; overscroll-behavior: none; }
body.ncb { font-family: var(--nc-font); color: var(--nc-ink); -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; }
button { font-family: inherit; }
.nc { position: relative; margin: 0 auto; width: 100%; max-width: 480px; height: 100dvh; height: 100vh; background: var(--nc-bg); overflow: hidden; user-select: none; -webkit-user-select: none; }
@supports (height: 100dvh) { .nc { height: 100dvh; } }
.nc-boot { position: absolute; inset: 0; display: grid; place-items: center; font-size: 28px; letter-spacing: .3em; color: var(--nc-teal); }
.nc-scr { position: absolute; inset: 0; display: flex; flex-direction: column; }
.nc-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #1a2d63, #0b1530 70%); background-size: cover; background-position: center; z-index: 0; }
.nc-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nc-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,10,24,.15), rgba(5,10,24,0) 30%, rgba(5,10,24,.2) 70%, rgba(5,10,24,.55)); pointer-events: none; }
.nc-layer { position: relative; z-index: 2; }

/* 仮の絵（絵が無いとき） */
.nc-ph { position: relative; display: grid; place-items: center; overflow: hidden; color: #fff; font-weight: 700; text-align: center; background: linear-gradient(160deg, var(--c, #3b4f8c), #0b1530); }
.nc-ph span { font-size: 12px; opacity: .9; padding: 4px; text-shadow: 0 1px 2px rgba(0,0,0,.5); }
.nc-ph--sprite { background: none; }
.nc-ph--sprite::before { content: ""; position: absolute; left: 22%; right: 22%; top: 4%; height: 26%; border-radius: 50%; background: var(--c, #3b4f8c); opacity: .9; }
.nc-ph--sprite::after { content: ""; position: absolute; left: 12%; right: 12%; top: 28%; bottom: 0; border-radius: 40% 40% 8% 8%; background: linear-gradient(180deg, var(--c, #3b4f8c), rgba(255,255,255,.2)); opacity: .85; }
.nc-ph--sprite span { position: absolute; top: 12%; z-index: 1; font-size: 14px; }
.nc-ph--chibi { border-radius: 50%; }

/* 上のバー（通貨） */
.nc-top { position: relative; z-index: 5; display: flex; gap: 6px; align-items: center; padding: calc(env(safe-area-inset-top, 0px) + 8px) 10px 6px; }
.nc-pill { display: inline-flex; align-items: center; gap: 4px; height: 28px; padding: 0 10px 0 4px; border-radius: 14px; background: rgba(11,21,48,.72); border: 1px solid rgba(255,255,255,.18); font-size: 13px; font-weight: 700; white-space: nowrap; }
.nc-pill img, .nc-pill .nc-ph { width: 22px; height: 22px; border-radius: 50%; }
.nc-pill small { font-size: 10px; color: var(--nc-ink2); font-weight: 400; }
.nc-top .nc-sp { flex: 1; }
.nc-ico { width: 28px; height: 28px; object-fit: contain; }

/* ボタン */
.nc-btn { appearance: none; border: 0; border-radius: 14px; padding: 10px 14px; font-size: 15px; font-weight: 800; color: #1c2440; background: linear-gradient(180deg, #fff, #dfe7fb); box-shadow: 0 3px 0 #9fb0d9, 0 6px 14px rgba(0,0,0,.25); cursor: pointer; }
.nc-btn:active { transform: translateY(2px); box-shadow: 0 1px 0 #9fb0d9; }
.nc-btn--gold { color: #4a2c00; background: linear-gradient(180deg, #ffe38a, var(--nc-gold) 55%, var(--nc-gold2)); box-shadow: 0 3px 0 #a36f0c, 0 6px 16px rgba(245,196,81,.35); }
.nc-btn--teal { color: #fff; background: linear-gradient(180deg, #5eead4, var(--nc-teal2)); box-shadow: 0 3px 0 #0b6f64, 0 6px 16px rgba(45,212,191,.3); }
.nc-btn--pink { color: #fff; background: linear-gradient(180deg, #ffa3c4, #f0508a); box-shadow: 0 3px 0 #b02e62; }
.nc-btn--ghost { color: #fff; background: rgba(255,255,255,.12); box-shadow: none; border: 1px solid rgba(255,255,255,.3); }
.nc-btn[disabled] { opacity: .45; pointer-events: none; }
.nc-btn--wide { width: 100%; }
.nc-btn--big { font-size: 18px; padding: 14px 18px; border-radius: 18px; }

/* パネル */
.nc-panel { background: var(--nc-panel); color: var(--nc-dark); border-radius: 18px; padding: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.nc-panel h3 { margin: 0 0 8px; font-size: 16px; }
.nc-sheet { position: absolute; left: 0; right: 0; bottom: 0; max-height: 86%; z-index: 80; display: flex; flex-direction: column; background: #f4f6fd; color: var(--nc-dark); border-radius: 22px 22px 0 0; box-shadow: 0 -10px 40px rgba(0,0,0,.45); padding-bottom: env(safe-area-inset-bottom, 0px); animation: ncUp .22s ease-out; }
.nc-sheet__head { display: flex; align-items: center; gap: 8px; padding: 14px 16px 8px; font-weight: 800; font-size: 17px; }
.nc-sheet__head .nc-sp { flex: 1; }
.nc-sheet__body { overflow-y: auto; padding: 0 14px 14px; -webkit-overflow-scrolling: touch; }
.nc-x { appearance: none; border: 0; background: #dfe5f5; width: 32px; height: 32px; border-radius: 50%; font-size: 18px; color: #334; cursor: pointer; }
.nc-dim { position: absolute; inset: 0; background: rgba(3,6,16,.55); z-index: 79; }
@keyframes ncUp { from { transform: translateY(40px); opacity: .3; } to { transform: none; opacity: 1; } }
@keyframes ncFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ncPop { 0% { transform: scale(.6); opacity: 0; } 70% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }

/* トースト */
.nc-toast { position: absolute; left: 50%; top: 18%; transform: translateX(-50%); z-index: 90; min-width: 60%; max-width: 88%; padding: 10px 16px; border-radius: 14px; background: rgba(11,21,48,.92); border: 1px solid var(--nc-teal); color: #fff; font-size: 14px; line-height: 1.6; text-align: center; animation: ncPop .25s ease-out; pointer-events: none; }
.nc-toast b { color: var(--nc-gold); }

/* タイトル */
.nc-title .nc-logo { position: absolute; left: 0; right: 0; top: 11%; z-index: 3; text-align: center; }
.nc-title .nc-logo img { width: 86%; }
.nc-logo__text { font-size: 44px; font-weight: 900; letter-spacing: .08em; background: linear-gradient(180deg, #fff, #9ff5e6 60%, var(--nc-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 12px rgba(45,212,191,.6)); }
.nc-logo__sub { margin-top: 4px; font-size: 13px; letter-spacing: .3em; color: #dff; }
.nc-tap { position: absolute; left: 0; right: 0; bottom: 14%; z-index: 3; text-align: center; font-size: 16px; font-weight: 800; letter-spacing: .25em; animation: ncBlink 1.6s infinite; text-shadow: 0 2px 8px #000; }
@keyframes ncBlink { 50% { opacity: .35; } }
.nc-title__foot { position: absolute; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom, 0px) + 12px); z-index: 3; text-align: center; font-size: 10px; color: rgba(255,255,255,.6); }

/* ホーム */
.nc-home__stage { position: relative; flex: 1; z-index: 1; }
.nc-home__idol { position: absolute; bottom: 150px; width: 58%; height: 70%; }
.nc-home__idol--l { left: -6%; }
.nc-home__idol--r { right: -6%; }
.nc-home__idol img, .nc-home__idol .nc-ph { width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
.nc-home__talk { position: absolute; left: 12px; right: 84px; bottom: 132px; z-index: 4; background: rgba(255,255,255,.95); color: var(--nc-dark); border-radius: 16px; padding: 10px 12px; font-size: 14px; line-height: 1.6; box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.nc-home__talk b { display: inline-block; margin-bottom: 2px; padding: 1px 10px; border-radius: 10px; background: var(--nc-dark); color: #fff; font-size: 12px; }
.nc-side { position: absolute; z-index: 4; display: flex; flex-direction: column; gap: 10px; }
.nc-side--l { left: 10px; top: 58px; }
.nc-side--r { right: 10px; top: 58px; }
.nc-side button { appearance: none; border: 0; background: none; padding: 0; color: #fff; font-size: 10px; font-weight: 700; text-shadow: 0 1px 3px #000; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; position: relative; }
.nc-side button .nc-sbox { width: 50px; height: 50px; border-radius: 14px; background: rgba(255,255,255,.92); display: grid; place-items: center; box-shadow: 0 3px 10px rgba(0,0,0,.3); }
.nc-side button .nc-sbox img, .nc-side button .nc-sbox .nc-ph { width: 38px; height: 38px; border-radius: 10px; }
.nc-side--r button .nc-sbox { width: 76px; height: 56px; }
.nc-side--r button { font-size: 12px; }
.nc-badge { position: absolute; top: -3px; right: -3px; width: 12px; height: 12px; border-radius: 50%; background: var(--nc-red); border: 2px solid #fff; }
.nc-home__cta { position: absolute; right: 10px; bottom: 84px; z-index: 5; }
.nc-home__cta .nc-btn { width: 150px; height: 64px; font-size: 20px; border-radius: 20px; }
.nc-nav { position: absolute; left: 0; right: 0; bottom: 0; z-index: 6; display: grid; grid-template-columns: repeat(5, 1fr); padding: 6px 6px calc(env(safe-area-inset-bottom, 0px) + 6px); background: linear-gradient(180deg, rgba(11,21,48,.75), #0b1530); border-top: 1px solid rgba(255,255,255,.12); }
.nc-nav button { appearance: none; border: 0; background: none; color: var(--nc-ink2); font-size: 10px; font-weight: 700; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 4px 0; cursor: pointer; }
.nc-nav button img, .nc-nav button .nc-ph { width: 30px; height: 30px; border-radius: 8px; }
.nc-nav button.is-on { color: var(--nc-gold); }

/* 一覧（カード・アイドル） */
.nc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.nc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.nc-grid--4 { grid-template-columns: repeat(4, 1fr); gap: 6px; }
.nc-card { position: relative; border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 5; background: #222; box-shadow: 0 3px 8px rgba(0,0,0,.25); cursor: pointer; }
.nc-card > img, .nc-card > .nc-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nc-card__frame { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.nc-card__rar { position: absolute; left: 4px; top: 4px; padding: 0 6px; border-radius: 6px; font-size: 11px; font-weight: 900; color: #fff; background: #6b7280; }
.nc-card__rar--SSR, .nc-card__rar--s3 { background: linear-gradient(90deg, #f59e0b, #ec4899, #8b5cf6); }
.nc-card__rar--SR, .nc-card__rar--s2 { background: linear-gradient(90deg, #94a3b8, #e2e8f0); color: #334; }
.nc-card__type { position: absolute; right: 4px; top: 4px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 10px; font-weight: 900; color: #fff; border: 2px solid #fff; }
.nc-card__name { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 4px 3px; font-size: 10px; font-weight: 700; color: #fff; background: linear-gradient(180deg, transparent, rgba(0,0,0,.75)); line-height: 1.3; }
.nc-card__lv { position: absolute; right: 4px; bottom: 18px; font-size: 10px; font-weight: 900; color: #fff; text-shadow: 0 1px 2px #000; }
.nc-card.is-sel { outline: 3px solid var(--nc-gold); outline-offset: -3px; }
.nc-card.is-off { opacity: .35; }
.nc-card__lb { position: absolute; left: 4px; bottom: 18px; display: flex; gap: 1px; }
.nc-card__lb i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.35); }
.nc-card__lb i.on { background: var(--nc-gold); }
.t-vo { background: var(--nc-vo); } .t-da { background: var(--nc-da); } .t-vi { background: var(--nc-vi); } .t-ch { background: var(--nc-ch); } .t-me { background: var(--nc-me); }
.c-vo { color: var(--nc-vo); } .c-da { color: var(--nc-da); } .c-vi { color: var(--nc-vi); } .c-ch { color: var(--nc-ch); } .c-me { color: var(--nc-me); }
.nc-stars { color: var(--nc-gold); letter-spacing: -1px; font-size: 12px; text-shadow: 0 1px 2px rgba(0,0,0,.6); }

/* 準備 */
.nc-steps { display: flex; gap: 6px; padding: 0 14px 8px; }
.nc-steps span { flex: 1; height: 4px; border-radius: 2px; background: #cfd7ee; }
.nc-steps span.on { background: var(--nc-teal2); }
.nc-deck { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-bottom: 12px; }
.nc-slot { aspect-ratio: 4 / 5; border-radius: 10px; border: 2px dashed #aab5d6; display: grid; place-items: center; color: #8a96ba; font-size: 22px; position: relative; overflow: hidden; }
.nc-slot .nc-card { position: absolute; inset: 0; aspect-ratio: auto; }
.nc-slot small { position: absolute; bottom: 2px; font-size: 9px; }
.nc-note { font-size: 12px; color: #5b6685; line-height: 1.6; margin: 6px 0; }
.nc-row { display: flex; gap: 8px; align-items: center; }
.nc-row--sb { justify-content: space-between; }
.nc-hallrow { display: flex; gap: 10px; align-items: center; padding: 8px; border-radius: 12px; background: #fff; margin-bottom: 8px; border: 2px solid transparent; cursor: pointer; }
.nc-hallrow.is-sel { border-color: var(--nc-gold); background: #fff9e8; }
.nc-hallrow__img { width: 52px; height: 52px; border-radius: 10px; overflow: hidden; flex: none; }
.nc-hallrow__img img, .nc-hallrow__img .nc-ph { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.nc-hallrow__main { flex: 1; min-width: 0; font-size: 12px; line-height: 1.5; }
.nc-hallrow__main b { font-size: 14px; }
.nc-rank { display: inline-grid; place-items: center; min-width: 34px; height: 34px; padding: 0 4px; border-radius: 10px; font-weight: 900; font-size: 18px; color: #fff; background: #6b7280; position: relative; }
.nc-rank img { position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); object-fit: contain; }
.nc-rank b { position: relative; z-index: 1; text-shadow: 0 1px 3px rgba(0,0,0,.6); }
.r-G, .r-F { background: #6b7280; } .r-E, .r-D { background: #b45309; } .r-C, .r-B { background: #64748b; } .r-A { background: #d97706; } .r-S { background: linear-gradient(135deg, #f59e0b, #ef4444); } .r-SS { background: linear-gradient(135deg, #f59e0b, #ec4899, #8b5cf6, #06b6d4); }
.nc-factors { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }
.nc-factor { font-size: 10px; padding: 1px 6px; border-radius: 8px; color: #fff; background: #3b82f6; }
.nc-factor--skill { background: #10b981; } .nc-factor--unique { background: linear-gradient(90deg, #f59e0b, #ec4899); }

/* 育成画面 */
.nc-run__head { position: relative; z-index: 5; padding: calc(env(safe-area-inset-top, 0px) + 6px) 10px 0; display: flex; gap: 8px; align-items: stretch; }
.nc-turn { flex: none; min-width: 106px; padding: 5px 10px; border-radius: 12px; background: rgba(11,21,48,.8); border: 1px solid rgba(255,255,255,.2); font-size: 11px; line-height: 1.35; }
.nc-turn b { display: block; font-size: 14px; }
.nc-turn em { font-style: normal; color: var(--nc-gold); font-weight: 800; }
.nc-goal { flex: 1; padding: 5px 10px; border-radius: 12px; background: rgba(11,21,48,.8); border: 1px solid rgba(245,196,81,.45); font-size: 11px; line-height: 1.35; }
.nc-goal b { color: var(--nc-gold); }
.nc-goalbar { height: 6px; border-radius: 3px; background: rgba(255,255,255,.18); margin-top: 3px; overflow: hidden; }
.nc-goalbar i { display: block; height: 100%; background: linear-gradient(90deg, var(--nc-teal), var(--nc-gold)); }
.nc-menu-btn { flex: none; width: 40px; border-radius: 12px; border: 1px solid rgba(255,255,255,.3); background: rgba(11,21,48,.8); color: #fff; font-size: 18px; cursor: pointer; }
.nc-run__mid { position: relative; flex: 1; z-index: 1; min-height: 120px; }
.nc-chibi { position: absolute; left: 50%; bottom: 6px; width: 46%; max-width: 200px; aspect-ratio: 1; transform: translateX(-50%); }
.nc-chibi img, .nc-chibi .nc-ph { width: 100%; height: 100%; object-fit: contain; }
.nc-chibi.is-bounce { animation: ncBounce .5s ease-out; }
@keyframes ncBounce { 30% { transform: translateX(-50%) translateY(-18px); } 60% { transform: translateX(-50%); } 80% { transform: translateX(-50%) translateY(-6px); } }
.nc-status { position: absolute; left: 10px; top: 8px; z-index: 3; display: flex; flex-direction: column; gap: 6px; }
.nc-hp { width: 150px; }
.nc-hp__lbl { display: flex; justify-content: space-between; font-size: 11px; font-weight: 800; text-shadow: 0 1px 2px #000; }
.nc-hp__bar { height: 12px; border-radius: 6px; background: rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.4); overflow: hidden; }
.nc-hp__bar i { display: block; height: 100%; background: linear-gradient(90deg, #f43f5e, #f59e0b 35%, #22c55e 70%); transition: width .4s; }
.nc-mood { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px 2px 2px; border-radius: 12px; background: rgba(11,21,48,.75); font-size: 12px; font-weight: 800; }
.nc-mood img, .nc-mood .nc-ph { width: 22px; height: 22px; border-radius: 50%; }
.nc-conds { display: flex; flex-wrap: wrap; gap: 4px; max-width: 170px; }
.nc-cond { font-size: 10px; padding: 1px 6px; border-radius: 8px; background: #ef4444; }
.nc-cond--good { background: #16a34a; }
.nc-gauges { position: absolute; right: 10px; top: 8px; z-index: 3; width: 88px; font-size: 9px; color: var(--nc-ink2); text-shadow: 0 1px 2px #000; }
.nc-gauge { margin-bottom: 4px; }
.nc-gauge div { height: 5px; border-radius: 3px; background: rgba(0,0,0,.4); overflow: hidden; }
.nc-gauge i { display: block; height: 100%; background: #60a5fa; }
.nc-gauge--avo i { background: #a78bfa; }
.nc-fans { position: absolute; right: 10px; top: 44px; z-index: 3; padding: 3px 10px; border-radius: 12px; background: rgba(11,21,48,.8); font-size: 12px; font-weight: 800; }
.nc-fans small { color: var(--nc-ink2); font-weight: 400; font-size: 10px; }
.nc-pts { position: absolute; right: 10px; top: 72px; z-index: 3; padding: 2px 10px; border-radius: 12px; background: rgba(11,21,48,.8); font-size: 11px; }
.nc-stats { position: relative; z-index: 5; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; padding: 6px 8px; background: rgba(255,255,255,.95); color: var(--nc-dark); }
.nc-stat { text-align: center; border-radius: 10px; padding: 3px 0 4px; background: #f1f4fb; }
.nc-stat__n { font-size: 10px; font-weight: 800; }
.nc-stat__v { font-size: 16px; font-weight: 900; line-height: 1.1; }
.nc-stat__v small { font-size: 11px; margin-right: 2px; }
.nc-stat__e { font-size: 10px; color: #5b6685; }
.nc-stat__e b { color: #0e7490; }
.nc-stat.is-up { animation: ncPop .35s; }
.nc-lessons { position: relative; z-index: 5; display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; padding: 6px 8px 4px; background: #e9eefb; }
.nc-lesson { position: relative; appearance: none; border: 0; border-radius: 14px; padding: 4px 2px 6px; background: #fff; box-shadow: 0 3px 0 #b8c3e3; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; color: var(--nc-dark); min-height: 92px; }
.nc-lesson.is-sel { background: #fff7d6; box-shadow: 0 3px 0 var(--nc-gold2), 0 0 0 3px var(--nc-gold) inset; }
.nc-lesson[disabled] { opacity: .4; }
.nc-lesson__ico { width: 34px; height: 34px; }
.nc-lesson__ico img, .nc-lesson__ico .nc-ph { width: 100%; height: 100%; border-radius: 10px; object-fit: contain; }
.nc-lesson__n { font-size: 11px; font-weight: 900; }
.nc-lesson__lv { font-size: 9px; color: #7582a8; }
.nc-lesson__faces { display: flex; justify-content: center; flex-wrap: wrap; gap: 1px; min-height: 18px; }
.nc-face { width: 18px; height: 18px; border-radius: 50%; overflow: hidden; border: 2px solid #fff; box-shadow: 0 0 0 1px #c8d0e6; position: relative; background: #ccd; }
.nc-face img, .nc-face .nc-ph { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.nc-face.is-friend { box-shadow: 0 0 0 2px var(--nc-gold); }
.nc-face.is-friend::after { content: "♪"; position: absolute; right: -2px; bottom: -3px; font-size: 9px; color: var(--nc-gold2); font-weight: 900; }
.nc-lesson__fail { position: absolute; top: -6px; right: -2px; font-size: 9px; font-weight: 900; padding: 0 5px; border-radius: 7px; background: #16a34a; color: #fff; }
.nc-lesson__fail.is-warn { background: #f59e0b; } .nc-lesson__fail.is-bad { background: #ef4444; }
.nc-bond { height: 3px; width: 18px; border-radius: 2px; background: #d7dcec; overflow: hidden; margin-top: 1px; }
.nc-bond i { display: block; height: 100%; background: #3b82f6; }
.nc-bond i.is-max { background: var(--nc-gold); }
.nc-preview { position: relative; z-index: 5; min-height: 34px; padding: 4px 10px; background: #e9eefb; color: var(--nc-dark); font-size: 12px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.nc-preview b { font-weight: 900; }
.nc-actions { position: relative; z-index: 5; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 4px 8px calc(env(safe-area-inset-bottom, 0px) + 8px); background: #e9eefb; }
.nc-act { appearance: none; border: 0; border-radius: 12px; padding: 5px 2px; background: #fff; color: var(--nc-dark); box-shadow: 0 3px 0 #b8c3e3; font-size: 11px; font-weight: 800; display: flex; flex-direction: column; align-items: center; gap: 1px; cursor: pointer; }
.nc-act img, .nc-act .nc-ph { width: 26px; height: 26px; border-radius: 8px; }
.nc-act[disabled] { opacity: .4; }
.nc-act--hot { background: linear-gradient(180deg, #fff, #ffe9f1); }

/* 能力画面 */
.nc-exp { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; margin-bottom: 10px; }
.nc-exp div { text-align: center; padding: 4px 0; border-radius: 10px; color: #fff; font-size: 10px; font-weight: 800; }
.nc-exp div b { display: block; font-size: 15px; }
.nc-srow { display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: 12px; background: #fff; margin-bottom: 6px; }
.nc-srow__n { width: 74px; font-size: 13px; font-weight: 900; }
.nc-srow__v { flex: 1; font-size: 18px; font-weight: 900; }
.nc-srow__v small { font-size: 12px; margin-left: 4px; color: #6b7280; }
.nc-srow button { appearance: none; border: 0; border-radius: 10px; padding: 6px 8px; min-width: 50px; font-size: 12px; font-weight: 900; background: #e0f2fe; color: #0369a1; cursor: pointer; line-height: 1.2; }
.nc-srow button small { display: block; font-size: 9px; font-weight: 700; color: #6b7280; }
.nc-srow button[disabled] { opacity: .35; }
.nc-skill { display: flex; gap: 8px; align-items: center; padding: 8px; border-radius: 12px; background: #fff; margin-bottom: 6px; border-left: 6px solid #3b82f6; }
.nc-skill--gold { border-left-color: var(--nc-gold); background: #fffbeb; }
.nc-skill--red { border-left-color: var(--nc-red); background: #fef2f2; }
.nc-skill--own { opacity: .7; }
.nc-skill__main { flex: 1; min-width: 0; }
.nc-skill__main b { font-size: 13px; }
.nc-skill__main p { margin: 2px 0 0; font-size: 11px; color: #5b6685; line-height: 1.45; }
.nc-skill__cost { font-size: 10px; color: #334; margin-top: 2px; }
.nc-kotsu { font-size: 10px; font-weight: 900; color: #fff; background: #0ea5e9; padding: 0 6px; border-radius: 8px; margin-left: 4px; }
.nc-skill button { flex: none; }
.nc-tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.nc-tabs button { flex: 1; appearance: none; border: 0; border-radius: 10px; padding: 8px; font-weight: 800; background: #dfe5f5; color: #334; cursor: pointer; }
.nc-tabs button.is-on { background: var(--nc-dark); color: #fff; }

/* 売店・一覧 */
.nc-item { display: flex; gap: 10px; align-items: center; padding: 8px; background: #fff; border-radius: 12px; margin-bottom: 6px; }
.nc-item__ico { width: 44px; height: 44px; flex: none; }
.nc-item__ico img, .nc-item__ico .nc-ph { width: 100%; height: 100%; border-radius: 10px; object-fit: contain; }
.nc-item__main { flex: 1; font-size: 12px; line-height: 1.45; }
.nc-item__main b { font-size: 14px; }
.nc-item__main small { color: #5b6685; }

/* 仕事 */
.nc-work { display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: 14px; background: #fff; margin-bottom: 8px; }
.nc-work__main { flex: 1; font-size: 12px; line-height: 1.5; }
.nc-work__main b { font-size: 15px; }

/* ADV（会話） */
.nc-adv { position: absolute; inset: 0; z-index: 50; background: #000; animation: ncFade .2s; }
.nc-adv .nc-bg::after { background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.35)); }
.nc-adv__stage { position: absolute; inset: 0; z-index: 1; overflow: hidden; }
.nc-spr { position: absolute; bottom: 0; width: 72%; height: 80%; transition: transform .25s, filter .25s, opacity .25s; }
.nc-spr img, .nc-spr .nc-ph { width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
.nc-spr--l { left: -14%; }
.nc-spr--r { right: -14%; }
.nc-spr--c { left: 14%; }
.nc-spr.is-dim { filter: brightness(.62); }
.nc-spr.is-talk { transform: translateY(-4px); }
.nc-still { position: absolute; inset: 0; z-index: 2; animation: ncFade .5s; }
.nc-still img, .nc-still .nc-ph { width: 100%; height: 100%; object-fit: cover; }
.nc-adv__box { position: absolute; left: 10px; right: 10px; bottom: calc(env(safe-area-inset-bottom, 0px) + 14px); z-index: 5; min-height: 132px; padding: 22px 16px 16px; border-radius: 16px; background: rgba(255,255,255,.96); color: #1c2440; font-size: 16px; line-height: 1.75; box-shadow: 0 8px 26px rgba(0,0,0,.4); border: 2px solid rgba(45,212,191,.5); }
.nc-adv__name { position: absolute; left: 14px; top: -14px; padding: 3px 16px; border-radius: 12px; background: var(--nc-dark); color: #fff; font-size: 14px; font-weight: 800; border: 2px solid var(--nc-teal); }
.nc-adv__name:empty { display: none; }
.nc-adv__next { position: absolute; right: 14px; bottom: 8px; color: var(--nc-gold2); font-size: 14px; animation: ncBlink 1s infinite; }
.nc-adv__tools { position: absolute; right: 10px; top: calc(env(safe-area-inset-top, 0px) + 10px); z-index: 6; display: flex; gap: 6px; }
.nc-adv__tools button { appearance: none; border: 1px solid rgba(255,255,255,.5); background: rgba(11,21,48,.6); color: #fff; border-radius: 10px; padding: 5px 10px; font-size: 12px; font-weight: 800; cursor: pointer; }
.nc-adv__tools button.is-on { background: var(--nc-teal2); }
.nc-choices { position: absolute; left: 24px; right: 24px; bottom: calc(env(safe-area-inset-bottom, 0px) + 170px); z-index: 7; display: flex; flex-direction: column; gap: 10px; animation: ncFade .2s; }
.nc-choices button { appearance: none; border: 2px solid #fff; border-radius: 26px; padding: 12px 16px; font-size: 15px; font-weight: 800; color: #1c2440; background: linear-gradient(180deg, #fff, #e6fbf7); box-shadow: 0 4px 14px rgba(0,0,0,.35); cursor: pointer; }
.nc-choices button small { display: block; font-size: 10px; color: #0e7490; font-weight: 700; }
.nc-log { position: absolute; inset: 0; z-index: 60; background: rgba(5,10,24,.93); overflow-y: auto; padding: 60px 18px 40px; font-size: 14px; line-height: 1.7; }
.nc-log p { margin: 0 0 12px; }
.nc-log b { color: var(--nc-teal); display: block; font-size: 12px; }

/* ライブ */
.nc-live { position: absolute; inset: 0; z-index: 40; background: #000; }
.nc-live__crowd { position: absolute; left: 0; right: 0; bottom: 0; height: 36%; z-index: 2; pointer-events: none; }
.nc-live__crowd img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.nc-live__cg { position: absolute; inset: 0; z-index: 1; }
.nc-live__cg img, .nc-live__cg .nc-ph { width: 100%; height: 100%; object-fit: cover; }
.nc-live__hud { position: absolute; left: 12px; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 12px); z-index: 5; }
.nc-live__title { font-size: 20px; font-weight: 900; text-shadow: 0 2px 8px #000; }
.nc-live__title small { display: block; font-size: 12px; color: var(--nc-gold); }
.nc-live__parts { position: absolute; left: 12px; right: 12px; bottom: calc(env(safe-area-inset-bottom, 0px) + 90px); z-index: 5; display: flex; flex-direction: column; gap: 8px; }
.nc-part { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(11,21,48,.82); border: 1px solid rgba(255,255,255,.2); animation: ncUp .3s; }
.nc-part b { font-size: 14px; width: 92px; }
.nc-part .nc-sp { flex: 1; font-size: 11px; color: var(--nc-teal); }
.nc-part em { font-style: normal; font-size: 20px; font-weight: 900; color: var(--nc-gold); }
.nc-part.is-miss em { color: #f87171; }
.nc-cutin { position: absolute; left: 0; right: 0; top: 30%; height: 150px; z-index: 8; animation: ncCut 1.1s ease-out forwards; pointer-events: none; }
.nc-cutin img, .nc-cutin .nc-ph { width: 100%; height: 100%; object-fit: cover; }
.nc-cutin__name { position: absolute; left: 12px; bottom: 8px; font-size: 18px; font-weight: 900; color: #fff; text-shadow: 0 2px 6px #000; }
@keyframes ncCut { 0% { transform: translateX(100%); } 18% { transform: translateX(0); } 80% { transform: translateX(0); opacity: 1; } 100% { transform: translateX(-100%); opacity: 0; } }
.nc-live__result { position: absolute; left: 20px; right: 20px; top: 26%; z-index: 9; text-align: center; animation: ncPop .4s; }
.nc-live__rank { font-size: 90px; font-weight: 900; line-height: 1; background: linear-gradient(180deg, #fff, var(--nc-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 16px rgba(245,196,81,.7)); }
.nc-live__rank.is-low { background: linear-gradient(180deg, #fff, #93c5fd); -webkit-background-clip: text; background-clip: text; }
.nc-live__msg { margin-top: 10px; font-size: 15px; line-height: 1.7; text-shadow: 0 2px 6px #000; }
.nc-live__btns { position: absolute; left: 20px; right: 20px; bottom: calc(env(safe-area-inset-bottom, 0px) + 20px); z-index: 9; display: flex; flex-direction: column; gap: 10px; }

/* 結果 */
.nc-result { overflow-y: auto; padding: calc(env(safe-area-inset-top, 0px) + 20px) 14px 30px; z-index: 3; }
.nc-result__rank { text-align: center; margin: 10px 0 6px; }
.nc-result__rank .nc-rank { min-width: 110px; height: 110px; font-size: 64px; border-radius: 28px; animation: ncPop .6s; }
.nc-result__score { text-align: center; font-size: 13px; color: var(--nc-ink2); margin-bottom: 12px; }
.nc-result .nc-panel { margin-bottom: 10px; }
.nc-sgrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; text-align: center; }
.nc-sgrid div { padding: 6px 0; border-radius: 10px; background: #f1f4fb; font-size: 10px; font-weight: 800; }
.nc-sgrid div b { display: block; font-size: 16px; }
.nc-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.nc-chip { font-size: 11px; padding: 3px 8px; border-radius: 10px; background: #dbeafe; color: #1e3a8a; font-weight: 700; }
.nc-chip--gold { background: #fef3c7; color: #92400e; } .nc-chip--red { background: #fee2e2; color: #991b1b; }

/* ガチャ */
.nc-gacha__banner { position: relative; margin: 8px 12px; border-radius: 16px; overflow: hidden; aspect-ratio: 2 / 1; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.nc-gacha__banner img, .nc-gacha__banner .nc-ph { width: 100%; height: 100%; object-fit: cover; }
.nc-gacha__btxt { position: absolute; left: 12px; top: 12px; right: 45%; font-size: 20px; font-weight: 900; line-height: 1.25; text-shadow: 0 2px 6px #000; }
.nc-gacha__btxt small { display: block; font-size: 11px; font-weight: 700; color: var(--nc-gold); margin-top: 6px; }
.nc-gtabs { display: flex; gap: 8px; margin: 0 12px; }
.nc-gtabs button { flex: 1; appearance: none; border: 0; border-radius: 12px 12px 0 0; padding: 10px; font-weight: 900; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; }
.nc-gtabs button.is-on { background: var(--nc-gold); color: #4a2c00; }
.nc-gacha__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 12px; }
.nc-gacha__btns .nc-btn { font-size: 14px; line-height: 1.3; }
.nc-gacha__btns .nc-btn small { display: block; font-size: 11px; }
.nc-gacha__info { margin: 0 12px; font-size: 11px; color: var(--nc-ink2); line-height: 1.7; }
.nc-gacha__info a, .nc-link { color: var(--nc-teal); text-decoration: underline; cursor: pointer; background: none; border: 0; font: inherit; padding: 0; }
.nc-reveal { position: absolute; inset: 0; z-index: 70; background: #000; display: flex; flex-direction: column; }
.nc-reveal__fx { position: absolute; inset: 0; z-index: 1; mix-blend-mode: screen; animation: ncFade .6s; }
.nc-reveal__fx img { width: 100%; height: 100%; object-fit: cover; }
.nc-reveal__fx.is-css { background: radial-gradient(circle at 50% 45%, var(--g1, #fff) 0, var(--g2, #60a5fa) 25%, transparent 60%); animation: ncGlow 1.2s ease-out; }
@keyframes ncGlow { 0% { transform: scale(.2); opacity: 0; } 50% { opacity: 1; } 100% { transform: scale(1.3); opacity: .75; } }
.nc-reveal__grid { position: relative; z-index: 3; flex: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; align-content: center; padding: 20px 12px; }
.nc-reveal__grid.is-one { grid-template-columns: 1fr; padding: 40px 60px; }
.nc-flip { perspective: 800px; aspect-ratio: 4 / 5; cursor: pointer; }
.nc-flip__in { position: relative; width: 100%; height: 100%; transition: transform .5s; transform-style: preserve-3d; }
.nc-flip.is-open .nc-flip__in { transform: rotateY(180deg); }
.nc-flip__f, .nc-flip__b { position: absolute; inset: 0; backface-visibility: hidden; border-radius: 8px; overflow: hidden; }
.nc-flip__b { transform: rotateY(180deg); }
.nc-flip__f img, .nc-flip__f .nc-ph { width: 100%; height: 100%; object-fit: cover; }
.nc-flip__f.is-ssr { box-shadow: 0 0 18px 4px rgba(245,196,81,.9); }
.nc-flip__f.is-sr { box-shadow: 0 0 12px 2px rgba(196,181,253,.8); }
.nc-flip .nc-card { width: 100%; height: 100%; aspect-ratio: auto; }
.nc-new { position: absolute; left: 50%; top: -8px; transform: translateX(-50%); z-index: 4; font-size: 10px; font-weight: 900; color: #fff; background: var(--nc-red); padding: 0 6px; border-radius: 6px; }
.nc-reveal__btns { position: relative; z-index: 3; display: flex; gap: 10px; padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 18px); }
.nc-reveal__btns .nc-btn { flex: 1; }
.nc-curtain { position: absolute; inset: 0; z-index: 72; animation: ncFade .3s; }
.nc-curtain img, .nc-curtain .nc-ph { width: 100%; height: 100%; object-fit: cover; }

/* その他 */
.nc-empty { padding: 30px 10px; text-align: center; color: #7582a8; font-size: 13px; line-height: 1.8; }
.nc-mission { display: flex; gap: 10px; align-items: center; padding: 10px; background: #fff; border-radius: 12px; margin-bottom: 8px; font-size: 13px; }
.nc-mission__main { flex: 1; }
.nc-prog { height: 6px; border-radius: 3px; background: #e5e7eb; margin-top: 4px; overflow: hidden; }
.nc-prog i { display: block; height: 100%; background: var(--nc-teal2); }
.nc-sec { font-size: 13px; font-weight: 900; margin: 14px 0 6px; color: #334; }
.nc-kv { display: flex; justify-content: space-between; font-size: 13px; padding: 4px 0; border-bottom: 1px dashed #d7dcec; }
.nc-help { font-size: 12px; line-height: 1.75; color: #334; }
.nc-help h4 { margin: 12px 0 4px; font-size: 13px; }
@media (min-width: 481px) { .nc { box-shadow: 0 0 60px rgba(0,0,0,.6); } }
@media (max-height: 640px) { .nc-lesson { min-height: 80px; } .nc-lesson__ico { width: 28px; height: 28px; } .nc-stat__v { font-size: 14px; } }

/* 2026-09-24 絵が届くまでの代用 */
.nc-crop { object-fit: cover !important; object-position: 50% 3% !important; transform: scale(2.6); transform-origin: 50% 8%; }
.nc-face { display: inline-block; vertical-align: top; }
.nc-lesson__faces > span { display: inline-flex; flex-direction: column; align-items: center; }
.nc-chibi.is-stand { width: 40%; max-width: 170px; aspect-ratio: 2 / 3; bottom: 0; }
.nc-hallrow__img .nc-crop { transform: scale(2.2); }
.nc-card__lv { bottom: auto; top: 30px; }
.nc-card__lb { bottom: auto; top: 46px; right: auto; }
.nc-card > .nc-ph span { transform: translateY(-14px); }
.nc-spr img.is-full { position: absolute; left: -48%; top: 5%; width: 196%; max-width: none; height: auto; object-fit: initial; }
.nc-spr:has(img.is-full) { height: 92%; overflow: hidden; }
.nc-home__idol img.is-full { height: 100%; object-position: bottom; }
.nc-crop--face { object-fit: cover !important; object-position: 50% 20% !important; transform: scale(1.7); transform-origin: 50% 30%; }
.nc-spr img.is-bust { position: absolute; left: -22%; top: 20%; width: 144%; max-width: none; height: auto; object-fit: initial;
  -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent 98%); mask-image: linear-gradient(180deg, #000 72%, transparent 98%); }
.nc-spr:has(img.is-bust) { height: 92%; overflow: visible; }

/* 2026-09-24 育成画面の作り込み */
.nc-lesson__gain { font-size: 13px; font-weight: 900; line-height: 1; }
.nc-lesson__pips { display: flex; gap: 2px; }
.nc-lesson__pips i { width: 6px; height: 3px; border-radius: 2px; background: #d7dcec; }
.nc-lesson__pips i.on { background: var(--nc-teal2); }
.nc-lesson__hint { position: absolute; top: -8px; left: -2px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 900; color: #fff; background: #ef4444; border: 2px solid #fff; animation: ncBob 1s ease-in-out infinite; z-index: 2; }
@keyframes ncBob { 50% { transform: translateY(-3px); } }
.nc-face.is-hint::before { content: "\FF01"; position: absolute; left: -3px; top: -5px; font-size: 9px; font-weight: 900; color: #ef4444; z-index: 1; text-shadow: 0 0 2px #fff; }
.nc-lesson.is-friend { background: linear-gradient(135deg, #fff5f5, #fffbe6, #effff4, #eef7ff, #f6efff); box-shadow: 0 3px 0 #c4b5fd, 0 0 0 2px #f9a8d4 inset; }
.nc-lesson.is-friend::after { content: ""; position: absolute; inset: 0; border-radius: 14px; background: linear-gradient(120deg, rgba(255,0,128,.12), rgba(255,200,0,.12), rgba(0,200,120,.12), rgba(0,140,255,.12), rgba(160,0,255,.12)); background-size: 300% 300%; animation: ncRainbow 2.4s linear infinite; pointer-events: none; }
@keyframes ncRainbow { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }
.nc-lesson.is-friend.is-sel { box-shadow: 0 3px 0 var(--nc-gold2), 0 0 0 3px var(--nc-gold) inset; }
.nc-stat { position: relative; }
.nc-float { position: absolute; left: 50%; top: -6px; transform: translateX(-50%); font-size: 15px; font-weight: 900; color: #16a34a; text-shadow: 0 1px 0 #fff, 0 0 6px #fff; animation: ncFloat 1.4s ease-out forwards; pointer-events: none; }
@keyframes ncFloat { 0% { opacity: 0; transform: translate(-50%, 10px) scale(.7); } 25% { opacity: 1; transform: translate(-50%, -6px) scale(1.15); } 100% { opacity: 0; transform: translate(-50%, -26px); } }
.nc-turnbanner { position: absolute; left: 0; right: 0; top: 34%; z-index: 20; padding: 14px 0; text-align: center; background: linear-gradient(90deg, transparent, rgba(11,21,48,.92) 15%, rgba(11,21,48,.92) 85%, transparent); border-top: 2px solid var(--nc-gold); border-bottom: 2px solid var(--nc-gold); animation: ncBanner 1.5s ease-out forwards; pointer-events: none; }
.nc-turnbanner small { display: block; font-size: 12px; color: var(--nc-gold); letter-spacing: .2em; }
.nc-turnbanner b { display: block; font-size: 26px; letter-spacing: .08em; }
.nc-turnbanner span { display: block; font-size: 12px; color: var(--nc-ink2); margin-top: 2px; }
@keyframes ncBanner { 0% { transform: translateX(100%); } 18% { transform: translateX(0); } 78% { transform: translateX(0); opacity: 1; } 100% { transform: translateX(-100%); opacity: 0; } }
.nc-mission.is-now { outline: 2px solid var(--nc-gold); }
.nc-goal { cursor: pointer; }
.nc-spr img.is-sprite { position: absolute; left: -34%; bottom: -9%; width: 168%; max-width: none; height: auto; object-fit: initial; }
.nc-spr:has(img.is-sprite) { overflow: visible; }

.nc-mission.is-lock { opacity: .6; background: #eef1f8; }
.nc-mission { cursor: pointer; }

/* チュートリアル */
.nc-tutmask { position: absolute; inset: 0; z-index: 85; background: rgba(3,6,16,.62); }
.nc-tut-on { position: relative; z-index: 86 !important; box-shadow: 0 0 0 3px var(--nc-gold), 0 0 24px rgba(245,196,81,.8) !important; border-radius: 12px; }
.nc-tut { position: absolute; left: 16px; right: 16px; z-index: 87; padding: 14px 16px; border-radius: 16px; background: #fff; color: var(--nc-dark); box-shadow: 0 10px 30px rgba(0,0,0,.4); border: 2px solid var(--nc-gold); animation: ncPop .25s; }
.nc-tut b { font-size: 16px; }
.nc-tut p { margin: 6px 0 10px; font-size: 13px; line-height: 1.7; }
.nc-tut p b { font-size: 13px; color: #b45309; }
.nc-tut small { float: right; margin-top: 12px; color: #7582a8; }

/* ライブ・結果・ガチャの演出 */
.nc-penlights { position: absolute; left: 0; right: 0; bottom: 0; height: 30%; z-index: 2; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(0,0,0,.75) 60%); }
.nc-penlights i { position: absolute; width: 5px; height: 26px; border-radius: 3px; box-shadow: 0 0 10px currentColor, 0 0 18px rgba(255,255,255,.35); opacity: .9; transform-origin: 50% 100%; animation: ncWave 1.1s ease-in-out infinite alternate; }
.nc-live.is-playing .nc-penlights i { animation-duration: .45s; }
@keyframes ncWave { from { transform: rotate(-18deg); } to { transform: rotate(18deg); } }
.nc-hype { position: absolute; left: 12px; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 70px); z-index: 5; font-size: 11px; font-weight: 800; color: var(--nc-gold); }
.nc-hype div { height: 10px; border-radius: 5px; background: rgba(255,255,255,.18); overflow: hidden; margin-top: 3px; border: 1px solid rgba(255,255,255,.3); }
.nc-hype i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #2dd4bf, #a78bfa, #f5c451, #fb7185); transition: width .5s; }
.nc-miss { position: absolute; right: 70px; font-size: 12px; font-weight: 900; color: #f87171; animation: ncPop .3s; }
.nc-part { position: relative; }
.nc-rays { position: absolute; left: 50%; top: 34%; width: 160vmax; height: 160vmax; margin: -80vmax 0 0 -80vmax; z-index: 8; pointer-events: none; background: repeating-conic-gradient(rgba(255,236,160,.22) 0 8deg, transparent 8deg 20deg); animation: ncSpin 12s linear infinite, ncFade .6s; border-radius: 50%; -webkit-mask-image: radial-gradient(circle, #000 0, transparent 45%); mask-image: radial-gradient(circle, #000 0, transparent 45%); }
@keyframes ncSpin { to { transform: rotate(360deg); } }
.nc-result__rank.is-hidden { visibility: hidden; }
.nc-result__score b { font-size: 18px; color: var(--nc-gold); }
.nc-shoot { position: absolute; z-index: 4; width: 14px; height: 14px; border-radius: 50%; top: 10%; left: 110%; background: #fff; box-shadow: 0 0 20px 8px #93c5fd; animation: ncShoot 1.1s ease-in forwards; }
.nc-shoot::after { content: ""; position: absolute; top: 5px; left: 10px; width: 160px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, rgba(255,255,255,.9), transparent); }
.nc-shoot--sr { box-shadow: 0 0 22px 10px #c4b5fd; }
.nc-shoot--ssr { box-shadow: 0 0 30px 14px #fbbf24, 0 0 60px 24px rgba(236,72,153,.6); }
@keyframes ncShoot { to { left: 40%; top: 45%; transform: scale(2.2); } }
.nc-reveal__grid.is-two { grid-template-columns: 1fr 1fr; gap: 16px; padding: 40px 24px; }

.nc-home__idol { cursor: pointer; }
.nc-home__idol.is-hop { animation: ncHop .4s ease-out; }
@keyframes ncHop { 40% { transform: translateY(-10px); } }
.nc-home__face { position: absolute; inset: 0; animation: ncFade .2s; }
.nc-home__face img { position: absolute; left: -10%; bottom: 0; width: 120%; height: auto; max-height: none; object-fit: initial; }
.nc-home__idol.is-thigh { bottom: 120px; width: 66%; height: 78%; overflow: visible; }
.nc-home__idol.is-thigh img { position: absolute; bottom: 0; left: -8%; width: 116%; height: auto; max-height: none; object-fit: initial; }
.nc-home__idol--l.is-thigh { left: -12%; }
.nc-home__idol--r.is-thigh { right: -12%; }
/* ホームのボタンを小さく（顔にかぶらない） */
.nc-side { gap: 6px; }
.nc-side button .nc-sbox { width: 42px; height: 42px; border-radius: 12px; }
.nc-side button .nc-sbox img, .nc-side button .nc-sbox .nc-ph { width: 32px; height: 32px; }
.nc-side--r button .nc-sbox { width: 58px; height: 44px; }
.nc-side button { font-size: 9px; }
.nc-side--r button { font-size: 10px; }
.nc-home__idol.is-thigh { bottom: 92px; width: 62%; height: 74%; }
/* ホームは1人を中央に */
.nc-home__idol--c { left: 50%; transform: translateX(-50%); width: 86%; height: 80%; bottom: 96px; }
.nc-home__idol--c.is-thigh { width: 88%; height: 80%; left: 50%; right: auto; bottom: 92px; }
.nc-home__idol--c.is-thigh img { left: -6%; width: 112%; }
.nc-home__idol--c.is-hop { animation: ncHopC .4s ease-out; }
@keyframes ncHopC { 40% { transform: translateX(-50%) translateY(-10px); } }
.nc-work.is-fes { background: linear-gradient(135deg, #fff, #fff4d6); outline: 2px solid var(--nc-gold); }
.nc-slot { cursor: pointer; }
.nc-loading { position: absolute; right: 12px; bottom: calc(env(safe-area-inset-bottom, 0px) + 76px); z-index: 95; display: flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 16px; background: rgba(11,21,48,.85); font-size: 12px; animation: ncFade .2s; }
.nc-loading i { width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(255,255,255,.3); border-top-color: var(--nc-teal); animation: ncSpin .8s linear infinite; }

/* ガチャの一覧 */
.nc-gbanners { display: flex; gap: 8px; overflow-x: auto; padding: 4px 12px 8px; scrollbar-width: none; }
.nc-gbanners::-webkit-scrollbar { display: none; }
.nc-gbtab { position: relative; flex: none; width: 96px; height: 58px; border-radius: 10px; overflow: hidden; border: 2px solid rgba(255,255,255,.25); padding: 0; background: #1c2440; cursor: pointer; }
.nc-gbtab img, .nc-gbtab .nc-ph { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.nc-gbtab span { position: absolute; left: 0; right: 0; bottom: 0; font-size: 10px; font-weight: 900; color: #fff; background: rgba(0,0,0,.55); padding: 1px 0; }
.nc-gbtab i { position: absolute; top: 2px; left: 2px; font-style: normal; font-size: 8px; font-weight: 900; background: #ef4444; color: #fff; padding: 0 4px; border-radius: 4px; }
.nc-gbtab.is-on { border-color: var(--nc-gold); box-shadow: 0 0 10px rgba(245,196,81,.7); }
.nc-gacha__banner.is-pickup img { object-position: 50% 18%; }
.nc-gacha__period { position: absolute; right: 8px; bottom: 8px; font-size: 11px; font-weight: 800; background: rgba(0,0,0,.6); padding: 2px 8px; border-radius: 8px; }
.nc-dupmark { position: absolute; right: -4px; top: -8px; z-index: 4; font-size: 10px; font-weight: 900; color: #1c2440; background: var(--nc-gold); padding: 0 6px; border-radius: 6px; }
.nc-gacha__banner::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(5,10,24,.78), rgba(5,10,24,.35) 55%, transparent 75%); pointer-events: none; }
.nc-gacha__btxt, .nc-gacha__period { z-index: 2; }
/* タイトルの読みやすさ */
.nc-title .nc-logo { top: calc(env(safe-area-inset-top, 0px) + 2%); padding: 10px 0 18px; background: linear-gradient(180deg, rgba(5,10,24,.7), rgba(5,10,24,0)); }
.nc-title .nc-logo img { width: 80%; filter: drop-shadow(0 4px 12px rgba(0,0,0,.6)); }
.nc-logo__sub { text-shadow: 0 2px 6px #000; font-weight: 800; }
.nc-tap { bottom: 9%; padding: 10px 0; background: linear-gradient(90deg, transparent, rgba(5,10,24,.7) 20%, rgba(5,10,24,.7) 80%, transparent); }

/* ===== 使い勝手（2026-09-24 夜） ===== */
.nc-grab { position: absolute; left: 50%; top: 6px; width: 44px; height: 5px; margin-left: -22px; border-radius: 3px; background: #c9d1e8; z-index: 2; }
.nc-grab::before { content: ""; position: absolute; left: -30px; right: -30px; top: -12px; bottom: -12px; }
.nc-sheet { transition: transform .15s; }
.nc-pvtag { position: absolute; right: 3px; top: 2px; font-size: 11px; font-weight: 900; color: #fff; background: #16a34a; border-radius: 8px; padding: 0 5px; animation: ncPop .2s; }
.nc-stat.is-pv { box-shadow: 0 0 0 2px #86efac inset; background: #f0fdf4; }
.nc-hp__bar { position: relative; }
.nc-hp__loss { position: absolute; top: 0; bottom: 0; background: repeating-linear-gradient(45deg, rgba(239,68,68,.85) 0 4px, rgba(239,68,68,.5) 4px 8px); animation: ncBlink 1s infinite; }
.nc-hp__gain { position: absolute; top: 0; bottom: 0; background: rgba(134,239,172,.9); animation: ncBlink 1s infinite; }
.nc-actres { position: absolute; left: 16px; right: 16px; top: 22%; z-index: 60; padding: 16px 14px 12px; border-radius: 20px; text-align: center; background: rgba(255,255,255,.97); color: var(--nc-dark); box-shadow: 0 16px 40px rgba(0,0,0,.45); animation: ncPop .28s ease-out; border: 3px solid var(--nc-teal); }
.nc-actres.is-friend { border-color: #f472b6; background: linear-gradient(135deg, #fff5f9, #fffbe6, #effff4, #eef7ff); }
.nc-actres.is-fail { border-color: #ef4444; background: #fff5f5; }
.nc-actres.is-rest { border-color: #60a5fa; }
.nc-actres__t { font-size: 24px; font-weight: 900; letter-spacing: .04em; margin-bottom: 8px; }
.nc-actres.is-friend .nc-actres__t { background: linear-gradient(90deg, #ec4899, #f59e0b, #10b981, #3b82f6, #8b5cf6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nc-actres.is-fail .nc-actres__t { color: #dc2626; }
.nc-actres__g { display: flex; justify-content: center; gap: 8px; margin-bottom: 8px; }
.nc-actres__s { min-width: 76px; padding: 6px 8px; border-radius: 12px; color: #fff; animation: ncPop .35s ease-out; }
.nc-actres__s small { display: block; font-size: 11px; font-weight: 800; }
.nc-actres__s b { font-size: 24px; }
.nc-actres__m { font-size: 13px; line-height: 1.7; }
.nc-actres__l { font-size: 11px; color: #7582a8; margin-top: 4px; }
.nc-actres__tap { font-size: 10px; color: #9aa3bf; margin-top: 8px; }
.nc-turn small { display: block; font-size: 10px; color: var(--nc-ink2); line-height: 1.2; }
.nc-turn b { font-size: 16px; line-height: 1.3; }
.nc-goal__r { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; white-space: nowrap; }
.nc-goal__r b { overflow: hidden; text-overflow: ellipsis; }
.nc-goal__r span em { font-style: normal; font-size: 16px; color: var(--nc-gold); font-weight: 900; margin: 0 1px; }
.nc-goal__r small { font-size: 10px; color: var(--nc-ink2); }
.nc-info { position: absolute; right: 3px; bottom: 20px; z-index: 3; width: 22px; height: 22px; border-radius: 50%; border: 2px solid #fff; background: rgba(28,36,64,.85); color: #fff; font-size: 12px; font-weight: 900; font-style: italic; padding: 0; cursor: pointer; }
.nc-actres-cover { position: absolute; inset: 0; z-index: 60; background: rgba(3,6,16,.25); animation: ncFade .15s; }
.nc-pvtag { top: -10px; right: 50%; transform: translateX(50%); z-index: 2; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
.nc-stats { padding-top: 12px; }

/* 画面の切り替え */
.nc-scr.is-enter { animation: ncScrIn .28s ease-out; }
.nc-scr.is-leave { animation: ncScrOut .26s ease-in forwards; pointer-events: none; z-index: 0; }
@keyframes ncScrIn { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes ncScrOut { to { opacity: 0; } }
.nc-readmark { align-self: center; font-size: 11px; font-weight: 800; color: #fff; background: rgba(14,159,143,.85); padding: 3px 8px; border-radius: 8px; }
.nc-card { -webkit-touch-callout: none; }
.nc-gacha__info { background: rgba(5,10,24,.78); padding: 10px 12px; border-radius: 14px; }
.nc-btn--ghost { background: rgba(5,10,24,.7); }
.nc-scr { z-index: 1; }
.nc-scr.is-leave { z-index: 0 !important; }
.nc-adv__box { font-size: var(--nc-fs, 16px); }

.nc-coach { position: absolute; right: 10px; bottom: 76px; white-space: nowrap; padding: 6px 12px; border-radius: 14px; background: #fff; color: var(--nc-dark); font-size: 13px; font-weight: 900; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: ncBob 1.2s ease-in-out infinite; }
.nc-coach::after { content: ""; position: absolute; right: 40px; bottom: -8px; border: 8px solid transparent; border-top-color: #fff; border-bottom: 0; }
.nc-btn.is-pulse { animation: ncPulse 1.4s ease-in-out infinite; }
@keyframes ncPulse { 50% { box-shadow: 0 3px 0 #a36f0c, 0 0 0 10px rgba(245,196,81,.25), 0 0 30px rgba(245,196,81,.7); } }
.nc-opening { position: absolute; left: 0; right: 0; top: 36%; z-index: 9; text-align: center; padding: 18px 0; background: linear-gradient(90deg, transparent, rgba(5,10,24,.88) 12%, rgba(5,10,24,.88) 88%, transparent); border-top: 2px solid var(--nc-gold); border-bottom: 2px solid var(--nc-gold); animation: ncBanner 1.3s ease-out forwards; }
.nc-opening small { display: block; font-size: 12px; color: var(--nc-teal); letter-spacing: .3em; }
.nc-opening b { display: block; font-size: 28px; letter-spacing: .06em; }
.nc-opening span { display: block; font-size: 16px; color: var(--nc-gold); letter-spacing: .6em; font-weight: 900; }
.nc-srow__n { width: 96px; line-height: 1.2; }
.nc-srow__n small { display: block; font-size: 9px; color: #7582a8; font-weight: 700; margin-top: 2px; }
.nc-linkcode { font-size: 24px; font-weight: 900; letter-spacing: .12em; text-align: center; padding: 10px; margin: 8px 0; border-radius: 12px; background: #fff; border: 2px dashed #9fb0d9; user-select: all; -webkit-user-select: all; }
.nc-input { width: 100%; padding: 12px; font-size: 18px; letter-spacing: .1em; text-align: center; border-radius: 12px; border: 2px solid #c9d1e8; font-family: inherit; }
.nc-sortbar { display: flex; gap: 6px; margin-bottom: 10px; overflow-x: auto; }
.nc-sortbar button { flex: none; appearance: none; border: 1px solid #c9d1e8; background: #fff; color: #334; border-radius: 16px; padding: 5px 12px; font-size: 12px; font-weight: 700; cursor: pointer; }
.nc-sortbar button.is-on { background: var(--nc-dark); color: #fff; border-color: var(--nc-dark); }
.nc-anim { position: absolute; pointer-events: none; z-index: 1; background: transparent; }

/* 動き（ホーム・タイトル） */
.nc-home .nc-bg img { animation: ncKen 26s ease-in-out infinite alternate; transform-origin: 60% 40%; }
.nc-bg--kv img { animation: ncKen 22s ease-in-out infinite alternate; transform-origin: 50% 35%; }
@keyframes ncKen { from { transform: scale(1.02) translate(0, 0); } to { transform: scale(1.09) translate(-1.5%, -1%); } }
.nc-motes { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.nc-motes i { position: absolute; bottom: -10px; width: var(--sz, 4px); height: var(--sz, 4px); border-radius: 50%; background: #fff; box-shadow: 0 0 8px 2px rgba(127,245,230,.8); opacity: 0; animation: ncMote 12s linear infinite; }
@keyframes ncMote { 0% { transform: translate(0, 0); opacity: 0; } 10% { opacity: .9; } 50% { transform: translate(18px, -50vh); } 90% { opacity: .7; } 100% { transform: translate(-12px, -100vh); opacity: 0; } }
.nc-home__stage { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .nc-home .nc-bg img, .nc-bg--kv img, .nc-motes i { animation: none; } }
.nc-spr img.is-npc { left: -92%; top: 3%; width: 284%; }

/* ===== ミニゲーム・音ゲー（js/nc-mini.js） ===== */
.ncm { position: absolute; inset: 0; z-index: 75; display: flex; flex-direction: column; background: radial-gradient(circle at 50% 35%, #1d3d74, #050a18 75%); animation: ncFade .2s; user-select: none; -webkit-user-select: none; touch-action: none; }
.ncm.is-out { animation: ncScrOut .25s forwards; }
.ncm__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .35; filter: blur(2px) saturate(1.2); }
.ncm__head { position: relative; z-index: 2; text-align: center; padding: calc(env(safe-area-inset-top, 0px) + 18px) 16px 6px; }
.ncm__head b { display: block; font-size: 22px; font-weight: 900; letter-spacing: .06em; text-shadow: 0 2px 10px #000; background: linear-gradient(180deg, #fff, #9ff5e6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ncm__head small { display: block; font-size: 12px; color: var(--nc-gold); margin-top: 2px; }
.ncm__stage { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 0; }
.ncm__skip { position: absolute; z-index: 3; right: 12px; top: calc(env(safe-area-inset-top, 0px) + 12px); appearance: none; border: 1px solid rgba(255,255,255,.4); background: rgba(5,10,24,.6); color: #fff; border-radius: 14px; padding: 5px 12px; font-size: 12px; font-weight: 800; cursor: pointer; }
.ncm__hint { position: absolute; bottom: calc(env(safe-area-inset-bottom, 0px) + 14px); left: 0; right: 0; text-align: center; font-size: 12px; color: var(--nc-ink2); }
.ncm__count { position: absolute; z-index: 5; font-size: 90px; font-weight: 900; color: #fff; text-shadow: 0 0 30px var(--nc-teal); animation: ncPop .5s; }
.ncm__result { position: absolute; z-index: 6; left: 0; right: 0; top: 38%; text-align: center; animation: ncPop .35s; }
.ncm__result b { display: block; font-size: 52px; font-weight: 900; letter-spacing: .06em; background: linear-gradient(180deg, #fff, var(--nc-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 16px rgba(245,196,81,.8)); }
.ncm__result--perfect b { background: linear-gradient(90deg, #f472b6, #f5c451, #34d399, #60a5fa, #a78bfa); -webkit-background-clip: text; background-clip: text; }
.ncm__result--miss b { background: linear-gradient(180deg, #fff, #93c5fd); -webkit-background-clip: text; background-clip: text; }
.ncm__result small { font-size: 16px; color: #fff; font-weight: 800; }
/* 音ゲー */
.ncm-r { position: relative; width: 100%; max-width: 420px; height: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 0 10px; }
.ncm-r__lane { position: relative; overflow: hidden; border-radius: 14px; background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.08)); border: 1px solid rgba(255,255,255,.12); cursor: pointer; }
.ncm-r__lane.is-hit { background: linear-gradient(180deg, rgba(255,255,255,.02), color-mix(in srgb, var(--c) 45%, transparent)); }
.ncm-r__key { position: absolute; left: 8%; right: 8%; top: 84%; height: 10px; margin-top: -5px; border-radius: 6px; background: var(--c); box-shadow: 0 0 14px var(--c); }
.ncm-r__note { position: absolute; left: 12%; right: 12%; top: 0; height: 24px; border-radius: 12px; background: linear-gradient(180deg, #fff, var(--c)); box-shadow: 0 0 12px var(--c); will-change: transform; }
.ncm-r__judge { position: absolute; left: 0; right: 0; top: 60%; text-align: center; font-size: 26px; font-weight: 900; opacity: 0; pointer-events: none; }
.ncm-r__judge.is-on { animation: ncJ .45s ease-out; }
.ncm-r__judge.is-p { color: var(--nc-gold); } .ncm-r__judge.is-g { color: #9ff5e6; } .ncm-r__judge.is-m { color: #fca5a5; }
@keyframes ncJ { 0% { opacity: 0; transform: scale(.6); } 30% { opacity: 1; transform: scale(1.15); } 100% { opacity: 0; transform: translateY(-18px); } }
.ncm-r__combo { position: absolute; left: 0; right: 0; top: 44%; text-align: center; font-size: 18px; font-weight: 900; color: #fff; text-shadow: 0 0 10px var(--nc-teal); pointer-events: none; }
.ncm-r__face { position: absolute; z-index: -1; bottom: 0; left: 50%; transform: translateX(-50%); height: 70%; opacity: .45; pointer-events: none; }
/* タイミング */
.ncm-t { position: relative; width: 88%; max-width: 380px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.ncm-t__face { width: 62%; max-height: 42vh; object-fit: contain; transition: transform .05s linear; }
.ncm-t.is-photo { border: 3px solid rgba(255,255,255,.7); border-radius: 12px; padding: 14px; overflow: hidden; }
.ncm-t.is-photo::before { content: ""; position: absolute; left: 50%; top: 20px; width: 46%; height: 50%; transform: translateX(-50%); border: 2px dashed rgba(245,196,81,.9); border-radius: 10px; pointer-events: none; z-index: 2; }
.ncm-t.is-flash::after { content: ""; position: absolute; inset: 0; background: #fff; animation: ncFlash .35s forwards; pointer-events: none; z-index: 3; }
@keyframes ncFlash { from { opacity: .9; } to { opacity: 0; } }
.ncm-t__bar { position: relative; width: 100%; height: 22px; border-radius: 12px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3); }
.ncm-t__zone { position: absolute; left: 40%; width: 20%; top: 0; bottom: 0; border-radius: 12px; background: linear-gradient(90deg, rgba(245,196,81,.2), rgba(245,196,81,.8), rgba(245,196,81,.2)); }
.ncm-t__mark { position: absolute; top: -8px; width: 6px; height: 38px; margin-left: -3px; border-radius: 3px; background: #fff; box-shadow: 0 0 10px #9ff5e6; }
.ncm-t__btn { appearance: none; border: 0; border-radius: 30px; padding: 16px 40px; font-size: 20px; font-weight: 900; color: #4a2c00; background: linear-gradient(180deg, #ffe38a, #f5c451 55%, #d99a1c); box-shadow: 0 4px 0 #a36f0c; cursor: pointer; }
.ncm-t__btn:active { transform: translateY(3px); box-shadow: 0 1px 0 #a36f0c; }
.ncm-t__info { font-size: 14px; font-weight: 800; color: var(--nc-ink2); margin-top: 8px; }
.ncm-t__j { position: absolute; left: 0; right: 0; top: 30%; text-align: center; font-size: 30px; font-weight: 900; color: var(--nc-gold); text-shadow: 0 2px 10px #000; animation: ncJ .6s forwards; pointer-events: none; z-index: 4; }
/* 深呼吸 */
.ncm-b { position: relative; width: 260px; height: 260px; cursor: pointer; }
.ncm-b__ring { position: absolute; left: 50%; top: 50%; width: 180px; height: 180px; margin: -90px 0 0 -90px; border-radius: 50%; border: 4px solid rgba(66,184,106,.9); box-shadow: 0 0 20px rgba(66,184,106,.6); }
.ncm-b__orb { position: absolute; left: 50%; top: 50%; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.9), rgba(66,184,106,.35) 60%, transparent 72%); transform: translate(-50%,-50%) scale(.2); }
/* ファンサ */
.ncm-h { position: relative; width: 92%; max-width: 420px; height: 62vh; border-radius: 18px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.15); }
.ncm-h__heart { position: absolute; width: 58px; height: 58px; margin: -29px 0 0 -29px; border: 0; background: none; font-size: 40px; cursor: pointer; animation: ncPop .25s; filter: drop-shadow(0 0 10px rgba(255,111,160,.8)); }
.ncm-h__heart.is-got { animation: ncGot .3s forwards; }
@keyframes ncGot { to { transform: scale(1.8); opacity: 0; } }
/* ライブ前の選択 */
.nc-live__btns .nc-btn small { display: block; font-size: 11px; font-weight: 700; }
.nc-perf { font-size: 13px; color: var(--nc-gold); font-weight: 900; }

.nc-vs { flex: 1; display: grid; grid-template-columns: 1fr auto 1fr; align-content: center; gap: 12px 10px; padding: 20px; text-align: center; }
.nc-vs__side { padding: 18px 8px; border-radius: 16px; background: rgba(5,10,24,.75); border: 2px solid rgba(255,255,255,.2); }
.nc-vs__side.is-win { border-color: var(--nc-gold); box-shadow: 0 0 24px rgba(245,196,81,.6); }
.nc-vs__side small { display: block; font-size: 12px; letter-spacing: .1em; color: var(--nc-ink2); }
.nc-vs__side b { display: block; font-size: 28px; font-weight: 900; }
.nc-vs__mid { align-self: center; font-size: 26px; font-weight: 900; color: var(--nc-gold); text-shadow: 0 0 12px rgba(245,196,81,.8); }
.nc-vs__res { grid-column: 1 / -1; font-size: 54px; font-weight: 900; background: linear-gradient(180deg, #fff, var(--nc-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; animation: ncPop .4s; }
.nc-vs__msg { grid-column: 1 / -1; font-size: 14px; line-height: 1.8; background: rgba(5,10,24,.7); border-radius: 12px; padding: 8px; }
.nc-vs .nc-btn { grid-column: 1 / -1; }

/* 愛着MBTIの札 */
.nc-type { display: inline-flex; align-items: baseline; gap: 2px; padding: 2px 8px; border-radius: 10px; background: var(--tc); color: #fff; font-size: 11px; font-weight: 900; line-height: 1.5; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.nc-type i { font-style: normal; opacity: .75; font-size: 10px; }
.nc-type em { font-style: normal; }
.nc-type--big { font-size: 14px; padding: 3px 12px; border-radius: 12px; }
.nc-home__type { position: absolute; z-index: 4; left: 64px; top: 58px; appearance: none; border: 1px solid rgba(255,255,255,.35); border-radius: 14px; padding: 6px 10px 7px; background: rgba(11,21,48,.72); color: #fff; text-align: left; line-height: 1.35; cursor: pointer; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); max-width: 60%; }
.nc-home__type small { display: block; font-size: 9px; color: var(--nc-gold); letter-spacing: .1em; }
.nc-home__type b { display: block; font-size: 14px; margin-bottom: 2px; }
.nc-home__type span:last-child { display: block; font-size: 10px; color: var(--nc-ink2); margin-top: 2px; }
.nc-typebox { margin: 10px 0 4px; padding: 12px; border-radius: 14px; background: #fff; border: 2px solid var(--tc); }
.nc-typebox small { font-size: 10px; font-weight: 900; color: var(--tc); letter-spacing: .1em; }
.nc-typebox__row { display: flex; align-items: center; gap: 8px; margin: 4px 0; }
.nc-typebox__row b { font-size: 17px; }
.nc-typebox p { margin: 4px 0 0; font-size: 13px; line-height: 1.6; color: #334; }
.nc-typebox__sub { font-size: 11px; color: #7582a8; margin-top: 2px; }
.nc-card__type64 { position: absolute; left: 4px; top: 24px; z-index: 2; font-size: 9px; font-weight: 900; color: #fff; background: var(--tc); padding: 0 5px; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.nc-spr:has(img.is-npc), .nc-spr:has(img.is-full) { overflow: visible; }

.nc-beta { position: absolute; z-index: 4; right: 14px; top: calc(env(safe-area-inset-top, 0px) + 14px); padding: 3px 12px; border-radius: 12px; background: linear-gradient(180deg, #5eead4, #0e9f8f); color: #fff; font-size: 13px; font-weight: 900; letter-spacing: .1em; box-shadow: 0 2px 10px rgba(0,0,0,.4); }
.nc-textarea { width: 100%; min-height: 120px; padding: 10px; border-radius: 12px; border: 2px solid #c9d1e8; font-family: inherit; font-size: 14px; line-height: 1.6; resize: vertical; box-sizing: border-box; }

/* タッグ・賭け・ランキング・名前（2026-09-25） */
.nc-lesson__tag { position: absolute; top: -9px; right: -4px; z-index: 3; padding: 1px 6px; border-radius: 9px; background: linear-gradient(90deg, #f472b6, #fb923c); color: #fff; font-size: 10px; font-weight: 900; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.25); animation: ncBob 1.2s ease-in-out infinite; }
.nc-lesson.is-tag { box-shadow: 0 3px 0 #f472b6, 0 0 0 2px #fb923c inset; }
.nc-pvhint { flex-basis: 100%; font-size: 11px; color: #b45309; font-weight: 700; }
.nc-actres__tag { display: inline-block; margin: 2px 0 6px; padding: 2px 14px; border-radius: 12px; background: linear-gradient(90deg, #f472b6, #fb923c); font-size: 14px; font-weight: 900; color: #fff; letter-spacing: .08em; }
.nc-choices .nc-gamble { display: block; margin-top: 3px; font-size: 11px; font-weight: 800; color: #b45309; line-height: 1.5; }
.nc-input { width: 100%; box-sizing: border-box; padding: 12px; border-radius: 12px; border: 2px solid #c9d1e8; font-family: inherit; font-size: 16px; }
.nc-rankpanel .nc-row { gap: 8px; }
.nc-rkme { display: flex; align-items: center; gap: 8px; padding: 10px 12px; margin: 6px 0 10px; border-radius: 14px; background: linear-gradient(135deg, #0b1530, #1d3d74); color: #fff; }
.nc-rkme small { font-size: 11px; color: var(--nc-gold); }
.nc-rkme b { font-size: 20px; }
.nc-rkme span:last-child { margin-left: auto; font-weight: 900; }
.nc-rkme.is-none { display: block; font-size: 12px; line-height: 1.6; }
.nc-rkrow { display: flex; align-items: center; gap: 8px; padding: 6px 8px; margin-bottom: 6px; border-radius: 12px; background: #fff; border: 2px solid transparent; }
.nc-rkrow.is-me { border-color: var(--nc-gold); background: #fffbeb; }
.nc-rkrow__no { width: 28px; text-align: center; font-weight: 900; font-size: 15px; color: #475569; flex: none; }
.nc-rkrow.is-top1 .nc-rkrow__no { color: #d4a017; font-size: 18px; }
.nc-rkrow.is-top2 .nc-rkrow__no { color: #94a3b8; font-size: 17px; }
.nc-rkrow.is-top3 .nc-rkrow__no { color: #b87333; font-size: 16px; }
.nc-rkrow__face { width: 38px; height: 38px; border-radius: 50%; overflow: hidden; flex: none; background: #e2e8f0; position: relative; }
.nc-rkrow__face img { width: 100%; height: 100%; object-fit: cover; }
.nc-rkrow__main { flex: 1; min-width: 0; line-height: 1.3; }
.nc-rkrow__main b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nc-rkrow__main small { display: block; font-size: 10px; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nc-rkrow .nc-rank { flex: none; transform: scale(.7); }
.nc-rkrow__sc { flex: none; font-weight: 900; font-size: 13px; min-width: 42px; text-align: right; }

/* ゲーム専用コミュニティ（2026-09-25） */
.nc-beta-s { margin-left: 6px; padding: 1px 7px; border-radius: 8px; background: #0e9f8f; color: #fff; font-size: 10px; font-weight: 900; }
.nc-bp { background: #fff; border-radius: 14px; padding: 10px 12px; margin-bottom: 10px; box-shadow: 0 1px 3px rgba(15,23,42,.08); }
.nc-bp.is-mine { box-shadow: 0 0 0 2px #fde68a inset; }
.nc-bp__head { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.nc-bp__head b { max-width: 40%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nc-bp__head small { font-size: 11px; color: #94a3b8; }
.nc-bp__face { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; flex: none; background: #e2e8f0; position: relative; display: grid; place-items: center; }
.nc-bp__face img { width: 100%; height: 100%; object-fit: cover; }
.nc-bp__noface { font-weight: 900; color: #475569; font-size: 13px; }
.nc-bp__kind { font-size: 10px; font-weight: 800; padding: 1px 7px; border-radius: 8px; background: #e2e8f0; color: #334155; flex: none; }
.nc-bp__kind.k-shot { background: #fce7f3; color: #be185d; }
.nc-bp__kind.k-tips { background: #dcfce7; color: #15803d; }
.nc-bp__kind.k-idea { background: #fef3c7; color: #b45309; }
.nc-bp__more { appearance: none; border: 0; background: none; font-size: 18px; color: #94a3b8; padding: 0 4px; cursor: pointer; }
.nc-bp__body { margin: 6px 0 2px; font-size: 14px; line-height: 1.65; white-space: pre-wrap; word-break: break-word; color: #1e293b; }
.nc-bp__img { display: block; width: 100%; max-height: 420px; object-fit: contain; border-radius: 10px; margin-top: 6px; cursor: zoom-in; background: #0b1530; }
.nc-bp__foot { display: flex; justify-content: flex-end; margin-top: 4px; }
.nc-bp__like { appearance: none; border: 1px solid #fbcfe8; background: #fff; color: #db2777; border-radius: 14px; padding: 3px 12px; font-size: 13px; font-weight: 800; cursor: pointer; }
.nc-bp__like.is-on { background: #fdf2f8; }
.nc-imgview { position: absolute; inset: 0; z-index: 90; background: rgba(0,0,0,.88); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 16px; }
.nc-imgview img { max-width: 100%; max-height: 86%; object-fit: contain; border-radius: 8px; }
.nc-imgview span { color: #cbd5e1; font-size: 12px; }
.nc-bpost .nc-textarea { font-size: 16px; min-height: 100px; }
.nc-bpost__img { position: relative; margin: 8px 0; }
.nc-bpost__img img { display: block; max-width: 100%; max-height: 240px; border-radius: 10px; }
.nc-bpost__img .nc-x { position: absolute; top: 6px; left: 6px; }
.nc-bpost__favs { display: flex; gap: 6px; }
.nc-bpost__fav { appearance: none; width: 38px; height: 38px; border-radius: 50%; overflow: hidden; padding: 0; border: 2px solid transparent; background: #e2e8f0; cursor: pointer; position: relative; }
.nc-bpost__fav img { width: 100%; height: 100%; object-fit: cover; }
.nc-bpost__fav.is-on { border-color: var(--nc-gold); box-shadow: 0 0 0 2px #fde68a; }
.nc-rkprize { margin: 4px 0 8px; padding: 8px 10px; border-radius: 12px; background: #fffbeb; border: 1px solid #fde68a; font-size: 12px; line-height: 1.6; color: #78350f; }
.nc-rkprize small { color: #92400e; }
/* 実機（ブラウザの帯で画面が低い）で横のボタンが会話枠にかぶる → 高さに合わせて縮める（2026-09-25） */
.nc-side { gap: clamp(3px, 0.9svh, 8px); }
.nc-side button .nc-sbox { width: clamp(34px, 6.2svh, 46px); height: clamp(34px, 6.2svh, 46px); }
.nc-side--r button .nc-sbox { width: clamp(46px, 8svh, 60px); height: clamp(34px, 6.2svh, 46px); }
.nc-side button, .nc-side--r button { font-size: clamp(9px, 1.4svh, 11px); }
@media (max-height: 740px) { .nc-home__talk { left: 66px; } .nc-side--l, .nc-side--r { top: 52px; } }
/* 低い画面では立ち絵の頭が上の帯に隠れる → 高さに合わせて縮める */
.nc-home__idol--c.is-thigh { width: min(88%, 46svh); }
/* 愛着MBTIの札がカード絵の顔にかぶる（実機 2026-09-25）→ 名前の帯のすぐ上へ */
.nc-card__type64 { top: auto; bottom: 40px; left: 4px; }
/* 画面に埋め込んだシート（育成準備・殿堂・コミュニティ）が低い画面で下にはみ出し「次へ」が押せなかった（実機 2026-09-25 進行不能）→ 中身だけをスクロールにして、下のボタンは画面内に残す */
.nc-layer > .nc-sheet { min-height: 0; }
.nc-sheet__body { min-height: 0; }
.nc-layer > .nc-sheet > .nc-row { flex: none; }
/* 右の横長の枠でアイコンが横に伸びていた → 縦横比を守る */
.nc-side button .nc-sbox img, .nc-side button .nc-sbox .nc-ph { width: 30px; height: 30px; max-width: 30px; max-height: 30px; object-fit: contain; }
.nc-side button .nc-sbox img, .nc-side button .nc-sbox .nc-ph { width: clamp(26px, 4.6svh, 34px); height: clamp(26px, 4.6svh, 34px); max-width: clamp(26px, 4.6svh, 34px); max-height: clamp(26px, 4.6svh, 34px); }
/* 横ボタンの枠からはみ出さない（実機で絵が元の大きさで出た 2026-09-25 10:34） */
.nc-side button .nc-sbox { overflow: hidden; }
/* 2026-09-25 実機: 型の札が顔にかぶる・会話枠と育成ボタン・案内が重なる → 札は会話枠へ、会話枠は育成ボタンの上へ、案内はボタンの左へ */
.nc-home__talk { bottom: 162px; right: 12px; }
.nc-home__talk .nc-home__t64 { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 10px; background: var(--tc); color: #fff; font-size: 11px; font-weight: 900; vertical-align: 1px; cursor: pointer; }
.nc-home__talk .nc-home__t64n { margin-left: 5px; font-size: 11px; font-weight: 800; color: #6b7280; cursor: pointer; }
.nc-coach { right: calc(100% + 12px); bottom: 18px; }
.nc-coach::after { right: -8px; bottom: auto; top: 50%; margin-top: -8px; border: 8px solid transparent; border-left-color: #fff; border-right: 0; }
/* チュートリアル中は光っている所を押せない（「つぎへ」でだけ進む） */
.nc-tut-on, .nc-tut-on * { pointer-events: none !important; }
/* 顔アイコン: 太ももから上の立ち絵の真ん中を切っていて顔が見えなかった（実機 2026-09-25 11:14）→ 顔（横48%・縦15%あたり）を中心に拡大 */
img.nc-crop--face { position: absolute !important; width: 300% !important; height: auto !important; max-width: none !important; max-height: none !important; left: -94% !important; top: -18% !important; object-fit: initial !important; object-position: initial !important; transform: none !important; }

/* ノクトーク（ゲーム内の架空のメッセージアプリ）2026-09-25 */
.nc-chat { position: absolute; inset: 0; z-index: 88; display: flex; flex-direction: column; background: #0b1530; animation: ncFade .25s; }
.nc-chat__head { flex: none; display: flex; align-items: center; gap: 8px; padding: calc(env(safe-area-inset-top, 0px) + 10px) 12px 10px; background: linear-gradient(180deg, #0f1c3d, #16264f); color: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.35); }
.nc-chat__app { font-size: 10px; font-weight: 900; letter-spacing: .12em; color: #5eead4; padding: 2px 8px; border: 1px solid rgba(94,234,212,.5); border-radius: 10px; }
.nc-chat__av { width: 34px; height: 34px; border-radius: 50%; overflow: hidden; position: relative; background: #1e2d57; flex: none; }
.nc-chat__av img { width: 100%; height: 100%; object-fit: cover; }
.nc-chat__head b { font-size: 15px; }
.nc-chat__head small { font-size: 11px; color: #9fb0da; }
.nc-chat__log { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 10px 20px; background: linear-gradient(180deg, #13224a, #1b2f60) center / cover no-repeat; -webkit-overflow-scrolling: touch; }
.nc-chat__row { display: flex; align-items: flex-end; gap: 6px; margin: 8px 0; animation: ncPop .2s; }
.nc-chat__row.is-me { flex-direction: row-reverse; }
.nc-chat__row.is-sys { justify-content: center; }
.nc-chat__sys { font-size: 11px; color: #dbe3fb; background: rgba(0,0,0,.35); padding: 3px 12px; border-radius: 12px; max-width: 86%; text-align: center; line-height: 1.6; }
.nc-chat__mini { width: 30px; height: 30px; border-radius: 50%; overflow: hidden; flex: none; position: relative; background: #1e2d57; align-self: flex-start; }
.nc-chat__mini img { width: 100%; height: 100%; object-fit: cover; }
.nc-chat__b { max-width: 72%; padding: 9px 12px; border-radius: 18px 18px 18px 4px; background: #fff; color: #1c2440; font-size: 14px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.nc-chat__row.is-me .nc-chat__b { border-radius: 18px 18px 4px 18px; background: linear-gradient(135deg, #5eead4, #38bdf8); color: #06243a; }
.nc-chat__time { font-size: 9px; color: #b9c5e8; flex: none; }
.nc-chat__photo { max-width: 62%; border-radius: 14px; overflow: hidden; background: #0f1c3d; box-shadow: 0 2px 8px rgba(0,0,0,.35); }
.nc-chat__photo img { display: block; width: 100%; height: auto; }
.nc-chat__stamp { width: 120px; height: 120px; }
.nc-chat__stamp img { width: 100%; height: 100%; object-fit: contain; }
.nc-chat__nophoto { padding: 26px 18px; color: #9fb0da; font-size: 12px; background: rgba(255,255,255,.08); border-radius: 14px; }
.nc-chat__typing { display: inline-flex; gap: 4px; padding: 12px 14px; }
.nc-chat__typing i { width: 6px; height: 6px; border-radius: 50%; background: #9aa6c7; animation: ncBob .9s ease-in-out infinite; }
.nc-chat__typing i:nth-child(2) { animation-delay: .15s; }
.nc-chat__typing i:nth-child(3) { animation-delay: .3s; }
.nc-chat__foot { flex: none; padding: 10px 12px calc(env(safe-area-inset-bottom, 0px) + 12px); background: #f4f6fd; display: flex; flex-direction: column; gap: 8px; }
.nc-chat__q { font-size: 11px; font-weight: 800; color: #6b7280; text-align: center; }
.nc-chat__opt { appearance: none; border: 2px solid #c9d1e8; background: #fff; color: #1c2440; border-radius: 16px; padding: 11px 14px; font-size: 14px; font-weight: 700; text-align: left; cursor: pointer; line-height: 1.5; }
.nc-chat__opt:active { background: #eef7ff; border-color: #38bdf8; }
.nc-chat__deltas { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.nc-chat__d { font-size: 12px; font-weight: 900; padding: 2px 10px; border-radius: 10px; color: #fff; }
.nc-chat__d.is-sec { background: #16a34a; } .nc-chat__d.is-anx { background: #ec4899; } .nc-chat__d.is-avo { background: #3b82f6; }
.nc-gauge--sec i { background: linear-gradient(90deg, #86efac, #16a34a) !important; }
.nc-absent { position: relative; z-index: 3; margin: 0 10px 6px; padding: 8px 12px; border-radius: 14px; background: rgba(15,23,42,.88); color: #e2e8f0; font-size: 12px; line-height: 1.6; border: 1px solid rgba(148,163,184,.4); }
.nc-absent b { color: #fca5a5; font-size: 14px; }
.nc-absent--bind b { color: #f9a8d4; }
/* ゲージが3本（安定・不安・回避）になったので、ファンと事務所ptを下へ（2026-09-25） */
.nc-fans { top: 66px; }
.nc-pts { top: 94px; }
.nc-chat__stamp .nc-chat__nophoto { height: 100%; display: grid; place-items: center; padding: 0; }
/* いなくなっている間: 本人のミニキャラを消し、レッスン・仕事は押せない見た目に（2026-09-25） */
.nc-run.is-absent .nc-chibi { opacity: 0; }
.nc-run.is-absent .nc-lessons, .nc-run.is-absent .nc-act:not(.nc-act--hot) { opacity: .35; filter: grayscale(.6); }
/* 顔の切り抜きの枠（どこに置いても外へはみ出さない） */
.nc-facewrap { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; }
.nc-hallrow__img { position: relative; }
/* 会話の脇役（全身の絵）の頭を、メンバー（腰から上の絵）の頭の高さにそろえる。どの縦横比でもそろうよう、立ち位置の枠の幅と高さから計算（2026-09-25 PCの縦長の画面で社長が高く、蒼真が低く見えた） */
.nc-spr { container-type: size; }
.nc-spr img.is-npc { top: calc(107.8cqh - 252cqw); }

/* 2026-09-25 19:10 カードの文字が絵を隠す → 名前の帯は1行ずつ・小さく（タイプ名は詳細だけ） */
.nc-card__name { padding: 10px 4px 2px; font-size: 9px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nc-flip .nc-card__name { font-size: 10px; text-align: center; }
.nc-slot .nc-card__name { display: none; }  /* 編成の小さな枠は名前を出さない（絵が隠れる） */

/* 2026-09-26 SSR のカットイン */
.nc-ssrfx { position: absolute; inset: 0; z-index: 90; overflow: hidden; background: radial-gradient(circle at 50% 42%, #3b1d5e 0, #120a24 55%, #05030c 100%); display: flex; align-items: center; justify-content: center; cursor: pointer; animation: ncFade .2s; }
.nc-ssrfx.is-out { opacity: 0; transition: opacity .25s; }
.nc-ssrfx__flash { position: absolute; inset: 0; background: #fff; z-index: 5; pointer-events: none; animation: ncSsrFlash .7s ease-out forwards; }
@keyframes ncSsrFlash { 0% { opacity: 1; } 100% { opacity: 0; } }
.nc-ssrfx__rays { position: absolute; left: 50%; top: 42%; width: 220vmax; height: 220vmax; margin: -110vmax 0 0 -110vmax; background: repeating-conic-gradient(from 0deg, rgba(255,215,120,.34) 0 6deg, transparent 6deg 18deg, rgba(236,72,153,.22) 18deg 22deg, transparent 22deg 30deg); animation: ncSsrSpin 14s linear infinite; mix-blend-mode: screen; }
@keyframes ncSsrSpin { to { transform: rotate(360deg); } }
.nc-ssrfx__parts { position: absolute; inset: 0; pointer-events: none; }
.nc-ssrfx__parts i { position: absolute; top: -12px; width: 7px; height: 7px; border-radius: 50%; background: radial-gradient(circle, #fff 0, #ffe38a 40%, rgba(245,196,81,0) 70%); box-shadow: 0 0 8px 2px rgba(255,215,120,.8); animation: ncSsrFall 2s linear infinite; }
@keyframes ncSsrFall { 0% { transform: translateY(0) scale(.6); opacity: 0; } 12% { opacity: 1; } 100% { transform: translateY(110vh) scale(1.1); opacity: 0; } }
.nc-ssrfx__in { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 6px; width: min(86vw, 420px); padding: 0 8px; text-align: center; }
.nc-ssrfx__rar { font-size: clamp(44px, 14vw, 72px); font-weight: 900; letter-spacing: .08em; line-height: 1; background: linear-gradient(180deg, #fffbe6 0%, #ffe38a 35%, #f5c451 60%, #d97706 100%); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 12px rgba(245,196,81,.9)) drop-shadow(0 3px 0 #7c3a00); animation: ncSsrStamp .55s cubic-bezier(.2,1.6,.4,1) .55s both; }
@keyframes ncSsrStamp { 0% { transform: scale(3); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
.nc-ssrfx__card { position: relative; width: min(62vw, 280px); max-height: 52vh; max-height: 52svh; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; border: 3px solid #ffe38a; box-shadow: 0 0 0 3px rgba(236,72,153,.5), 0 0 40px 10px rgba(245,196,81,.55); animation: ncSsrCard .8s cubic-bezier(.2,1.2,.3,1) .15s both; }
.nc-ssrfx__card > img, .nc-ssrfx__card > .nc-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@keyframes ncSsrCard { 0% { transform: perspective(700px) rotateY(90deg) scale(.5); opacity: 0; } 60% { transform: perspective(700px) rotateY(-8deg) scale(1.06); opacity: 1; } 100% { transform: none; opacity: 1; } }
.nc-ssrfx__shine { position: absolute; top: -20%; left: -80%; width: 45%; height: 140%; transform: rotate(18deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent); animation: ncSsrShine 2.4s ease-in-out .9s infinite; }
@keyframes ncSsrShine { 0% { left: -80%; } 55%, 100% { left: 140%; } }
.nc-ssrfx__title { margin-top: 6px; font-size: 13px; font-weight: 800; color: #f5c451; animation: ncFade .4s .9s both; }
.nc-ssrfx__name { font-size: 22px; font-weight: 900; color: #fff; letter-spacing: .06em; text-shadow: 0 0 12px rgba(236,72,153,.8), 0 2px 4px #000; animation: ncFade .4s 1s both; }
.nc-ssrfx__line { margin-top: 4px; padding: 10px 14px; border-radius: 14px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,227,138,.45); color: #fff; font-size: 13.5px; font-weight: 700; line-height: 1.6; animation: ncFade .5s 1.2s both; }
.nc-ssrfx__tap { margin-top: 8px; font-size: 11px; font-weight: 800; color: rgba(255,255,255,.7); opacity: 0; }
.nc-ssrfx.is-ready .nc-ssrfx__tap { opacity: 1; animation: ncSsrBlink 1.4s ease-in-out infinite; }
@keyframes ncSsrBlink { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nc-ssrfx__rays, .nc-ssrfx__parts, .nc-ssrfx__shine { animation: none; display: none; } }
/* 2026-10-02 nc-imp: タイトル・ホームの「明日のごほうび」・初めての人のスターターのロゴ */
.nc-title__tmr { position: absolute; left: 16px; right: 16px; bottom: calc(9% + 58px); z-index: 3; padding: 8px 12px; border-radius: 14px; background: rgba(5,10,24,.74); border: 1px solid rgba(246,207,73,.55); color: #fff; font-size: 13px; line-height: 1.5; text-align: center; box-shadow: 0 4px 14px rgba(0,0,0,.35); }
.nc-title__tmr small { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; color: #9ff5e6; }
.nc-title__tmr b { color: #ffe08a; font-weight: 900; }
.nc-home__tmr { appearance: none; border: 0; position: absolute; left: 12px; bottom: 90px; z-index: 5; max-width: calc(100% - 184px); padding: 7px 11px; border-radius: 14px; background: rgba(255,255,255,.95); color: var(--nc-dark); font-size: 12px; font-weight: 700; line-height: 1.45; text-align: left; box-shadow: 0 4px 12px rgba(0,0,0,.3); cursor: pointer; }
.nc-home__tmr b { display: block; font-size: 11px; font-weight: 900; color: #b45309; }
.nc-starter__logo { text-align: center; margin-bottom: -4px; }
.nc-starter__logo img { width: 70%; max-width: 330px; max-height: 15vh; object-fit: contain; filter: drop-shadow(0 4px 12px rgba(0,0,0,.6)); }
.nc-starter__logo .nc-logo__sub { margin-top: 0; }
@media (max-height: 680px) { .nc-title__tmr { padding: 6px 10px; font-size: 12px; } .nc-starter__logo img { max-height: 12vh; } .nc-home__tmr { font-size: 11px; padding: 6px 9px; } }
