@charset "UTF-8";
/* 支給データ nedaly-chart.zip（2026-10-08）の nedaly-chart.css。
   サイト側で変えた点：SP ジオメトリへの切り替えを 767px → 960px（サイトの SP・TAB と同じ）。2か所
   置き場所・余白・フォントの上書きは css/style.css の「NEDALY の概念図」 */

/* ==========================================================================
   NEDALY Platform Chart  —  nedaly-chart.css
   One stage, two geometries (PC 1280×800 / SP 390×720).
   Every length is  calc(N * var(--nc-k))  where --nc-k = 1px at the design
   width, so the whole chart scales with its container (container units).
   ========================================================================== */

.nc {
  --nc-ink: #1c1b19;
  --nc-ink-2: #3f3d39;
  --nc-ink-3: #5d5a55;
  --nc-ground: #e9e6e1;
  --nc-warm: #c9a4be;
  --nc-warm-core: #b98aad;
  --nc-cool: #9cb4c5;
  --nc-cool-core: #86a3b8;
  --nc-accent: rgba(211, 217, 138, 0.9);
  --nc-line: rgba(28, 27, 25, 0.9);
  --nc-dots: rgba(28, 27, 25, 0.2);
  --nc-orbit-media: 22s;
  --nc-orbit-community: 28s;
  --nc-font-sans: 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
  --nc-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  container-type: inline-size;
  width: 100%;
  color: var(--nc-ink);
  font-family: var(--nc-font-sans);
  font-weight: 300;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.nc *,
.nc *::before,
.nc *::after { box-sizing: border-box; }

.nc button {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.nc__stage {
  --nc-k: calc(100cqw / 1280);
  position: relative;
  width: 100%;
  aspect-ratio: 1280 / 800;
  overflow: hidden;
  background: var(--nc-ground);
}

/* ---- background: dot grid (fades out from the centre) + film grain ------ */

.nc__grid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(var(--nc-dots) calc(1 * var(--nc-k)), transparent calc(1.4 * var(--nc-k)));
  background-size: calc(20 * var(--nc-k)) calc(20 * var(--nc-k));
  background-position: calc(10 * var(--nc-k)) calc(10 * var(--nc-k));
  -webkit-mask-image: radial-gradient(ellipse 52% 55% at 52% 44%, #000 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.12) 80%, transparent 100%);
          mask-image: radial-gradient(ellipse 52% 55% at 52% 44%, #000 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.12) 80%, transparent 100%);
  pointer-events: none;
}

.nc__grain {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: .12;
  mix-blend-mode: multiply;
  pointer-events: none;
}

/* ---- the two markets as drifting colour fields (amoeba) ---------------- */

.nc__blob {
  position: absolute;
  mix-blend-mode: multiply;
  pointer-events: none;
  will-change: transform, border-radius;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.nc__blob--wa {
  left: calc(110 * var(--nc-k)); top: calc(50 * var(--nc-k));
  width: calc(620 * var(--nc-k)); height: calc(500 * var(--nc-k));
  border-radius: 60% 40% 55% 45% / 55% 60% 40% 45%;
  background: radial-gradient(farthest-side, var(--nc-warm) 0%, color-mix(in srgb, var(--nc-warm) 75%, transparent) 45%, transparent 100%);
  filter: blur(calc(34 * var(--nc-k)));
  opacity: .8;
  animation-name: nc-drift-wa; animation-duration: 28s;
}
.nc__blob--wb {
  left: calc(300 * var(--nc-k)); top: calc(210 * var(--nc-k));
  width: calc(260 * var(--nc-k)); height: calc(220 * var(--nc-k));
  border-radius: 52% 48% 60% 40% / 58% 42% 58% 42%;
  background: radial-gradient(farthest-side, var(--nc-warm-core) 0%, color-mix(in srgb, var(--nc-warm-core) 70%, transparent) 50%, transparent 100%);
  filter: blur(calc(16 * var(--nc-k)));
  opacity: .6;
  animation-name: nc-drift-wb; animation-duration: 17s;
}
.nc__blob--ca {
  left: calc(640 * var(--nc-k)); top: calc(150 * var(--nc-k));
  width: calc(600 * var(--nc-k)); height: calc(480 * var(--nc-k));
  border-radius: 45% 55% 60% 40% / 50% 42% 58% 50%;
  background: radial-gradient(farthest-side, var(--nc-cool) 0%, color-mix(in srgb, var(--nc-cool) 75%, transparent) 45%, transparent 100%);
  filter: blur(calc(34 * var(--nc-k)));
  opacity: .8;
  animation-name: nc-drift-ca; animation-duration: 31s;
}
.nc__blob--cb {
  left: calc(850 * var(--nc-k)); top: calc(320 * var(--nc-k));
  width: calc(240 * var(--nc-k)); height: calc(200 * var(--nc-k));
  border-radius: 58% 42% 48% 52% / 44% 58% 42% 56%;
  background: radial-gradient(farthest-side, var(--nc-cool-core) 0%, color-mix(in srgb, var(--nc-cool-core) 70%, transparent) 50%, transparent 100%);
  filter: blur(calc(16 * var(--nc-k)));
  opacity: .6;
  animation-name: nc-drift-cb; animation-duration: 21s;
}

@keyframes nc-drift-wa {
  0%   { transform: translate(0, 0) rotate(0deg); border-radius: 60% 40% 55% 45% / 55% 60% 40% 45%; }
  50%  { transform: translate(calc(150 * var(--nc-k)), calc(70 * var(--nc-k))) rotate(14deg); border-radius: 42% 58% 46% 54% / 60% 38% 62% 40%; }
  100% { transform: translate(calc(280 * var(--nc-k)), calc(-40 * var(--nc-k))) rotate(-9deg); border-radius: 55% 45% 38% 62% / 44% 56% 60% 40%; }
}
@keyframes nc-drift-wb {
  0%   { transform: translate(0, 0) rotate(0deg); border-radius: 52% 48% 60% 40% / 58% 42% 58% 42%; }
  50%  { transform: translate(calc(90 * var(--nc-k)), calc(-50 * var(--nc-k))) rotate(-18deg); border-radius: 40% 60% 45% 55% / 50% 50% 62% 38%; }
  100% { transform: translate(calc(200 * var(--nc-k)), calc(40 * var(--nc-k))) rotate(10deg); border-radius: 62% 38% 50% 50% / 42% 60% 40% 58%; }
}
@keyframes nc-drift-ca {
  0%   { transform: translate(0, 0) rotate(0deg); border-radius: 45% 55% 60% 40% / 50% 42% 58% 50%; }
  50%  { transform: translate(calc(-170 * var(--nc-k)), calc(-50 * var(--nc-k))) rotate(-12deg); border-radius: 58% 42% 44% 56% / 38% 62% 40% 60%; }
  100% { transform: translate(calc(-300 * var(--nc-k)), calc(40 * var(--nc-k))) rotate(9deg); border-radius: 40% 60% 55% 45% / 60% 44% 56% 40%; }
}
@keyframes nc-drift-cb {
  0%   { transform: translate(0, 0) rotate(0deg); border-radius: 58% 42% 48% 52% / 44% 58% 42% 56%; }
  50%  { transform: translate(calc(-110 * var(--nc-k)), calc(60 * var(--nc-k))) rotate(16deg); border-radius: 46% 54% 62% 38% / 56% 40% 60% 44%; }
  100% { transform: translate(calc(-220 * var(--nc-k)), calc(-30 * var(--nc-k))) rotate(-11deg); border-radius: 60% 40% 42% 58% / 50% 56% 44% 50%; }
}

/* ---- ellipses ----------------------------------------------------------- */

.nc__ellipse {
  position: absolute;
  border: 1px solid var(--nc-line);
  border-radius: 50%;
  pointer-events: none;
}
.nc__ellipse--media     { left: calc(198 * var(--nc-k)); top: calc(118 * var(--nc-k)); width: calc(432 * var(--nc-k)); height: calc(164 * var(--nc-k)); transform: rotate(-5deg); }
.nc__ellipse--nedaly    { left: calc(345 * var(--nc-k)); top: calc(198 * var(--nc-k)); width: calc(606 * var(--nc-k)); height: calc(228 * var(--nc-k)); transform: rotate(-3deg); }
.nc__ellipse--community { left: calc(681 * var(--nc-k)); top: calc(357 * var(--nc-k)); width: calc(430 * var(--nc-k)); height: calc(162 * var(--nc-k)); transform: rotate(-5deg); }

/* ---- text ----------------------------------------------------------------- */

.nc__t {
  position: absolute;
  margin: 0;
  font-size: calc(11 * var(--nc-k));
  line-height: 1.5;
  color: var(--nc-ink-2);
}
.nc__t--mono {
  font-family: var(--nc-font-mono);
  font-size: calc(10 * var(--nc-k));
  letter-spacing: .1em;
  color: var(--nc-ink);
}
.nc__t--name {
  font-weight: 500;
  letter-spacing: .1em;
  color: var(--nc-ink);
  text-align: center;
}
.nc__t--center { text-align: center; }

.nc__label-media         { left: calc(238 * var(--nc-k)); top: calc(128 * var(--nc-k)); }
.nc__sub-media           { left: calc(314 * var(--nc-k)); top: calc(156 * var(--nc-k)); width: calc(200 * var(--nc-k)); }
.nc__name-mag            { left: calc(306 * var(--nc-k)); top: calc(190 * var(--nc-k)); width: calc(80 * var(--nc-k)); }
.nc__name-book           { left: calc(436 * var(--nc-k)); top: calc(190 * var(--nc-k)); width: calc(80 * var(--nc-k)); }
.nc__label-community     { left: calc(1028 * var(--nc-k)); top: calc(352 * var(--nc-k)); }
.nc__name-club           { left: calc(856 * var(--nc-k)); top: calc(428 * var(--nc-k)); width: calc(80 * var(--nc-k)); }
.nc__sub-community       { left: calc(776 * var(--nc-k)); top: calc(456 * var(--nc-k)); width: calc(240 * var(--nc-k)); }
.nc__copy                { left: calc(500 * var(--nc-k)); top: calc(314 * var(--nc-k)); width: calc(320 * var(--nc-k)); }

.nc__logo {
  position: absolute;
  left: calc(585 * var(--nc-k)); top: calc(268 * var(--nc-k));
  width: calc(150 * var(--nc-k));
  color: var(--nc-ink);
}
.nc__logo svg { display: block; width: 100%; height: auto; fill: currentColor; }

/* LIVE / ROOM / FES (tappable words) */
.nc__real {
  position: absolute;
  top: calc(346 * var(--nc-k));
  width: calc(80 * var(--nc-k));
  height: calc(32 * var(--nc-k));
  font-size: calc(11 * var(--nc-k));
  font-weight: 500;
  letter-spacing: .1em;
  color: var(--nc-ink-2);
  transition: color .2s;
}
.nc__real--live { left: calc(505 * var(--nc-k)); }
.nc__real--room { left: calc(620 * var(--nc-k)); }
.nc__real--fes  { left: calc(735 * var(--nc-k)); }
.nc__real.is-active,
.nc__real:hover { color: var(--nc-ink); }
.nc__real-desc {
  position: absolute;
  left: calc(480 * var(--nc-k)); top: calc(386 * var(--nc-k)); width: calc(360 * var(--nc-k));
  margin: 0;
  text-align: center;
  font-size: calc(10 * var(--nc-k));
  color: var(--nc-ink-3);
  opacity: 0;
  transition: opacity .25s;
  pointer-events: none;
}
.nc__real-desc.is-open { opacity: 1; }

/* ---- markets ------------------------------------------------------------- */

.nc__market {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--nc-k));
  margin: 0;
}
.nc__market--02 { left: calc(1020 * var(--nc-k)); top: calc(70 * var(--nc-k)); width: calc(230 * var(--nc-k)); }
.nc__market--01 { left: calc(86 * var(--nc-k)); top: calc(494 * var(--nc-k)); width: calc(260 * var(--nc-k)); }
.nc__market-no    { font-family: var(--nc-font-mono); font-size: calc(10 * var(--nc-k)); letter-spacing: .1em; color: var(--nc-ink); }
.nc__market-title { font-size: calc(16 * var(--nc-k)); line-height: 1.6; font-weight: 400; color: var(--nc-ink); margin: 0; }
.nc__market-desc  { font-size: calc(11 * var(--nc-k)); line-height: 1.8; color: var(--nc-ink-2); margin: 0; }

/* ---- journal ------------------------------------------------------------- */

.nc__vline {
  position: absolute;
  left: calc(660 * var(--nc-k)); top: calc(432 * var(--nc-k));
  width: 0; height: calc(236 * var(--nc-k));
  border-left: 1px solid rgba(28,27,25,.7);
}
.nc__journal {
  position: absolute;
  left: calc(484 * var(--nc-k)); top: calc(680 * var(--nc-k));
  display: flex; gap: calc(24 * var(--nc-k)); align-items: baseline;
  margin: 0;
  font-size: calc(11 * var(--nc-k));
}
.nc__journal b { font-weight: 500; letter-spacing: .1em; color: var(--nc-ink); }
.nc__journal span { color: var(--nc-ink-2); }

/* ---- orbiting dots ------------------------------------------------------- */
/* An axis-aligned spinner is scaled to the ellipse; each dot counter-rotates
   and inverse-scales so it stays a perfect circle while riding the ellipse. */

.nc__orbit {
  position: absolute;
  width: calc(200 * var(--nc-k)); height: calc(200 * var(--nc-k));
  pointer-events: none;
}
.nc__orbit--media     { left: calc(314 * var(--nc-k)); top: calc(100 * var(--nc-k)); transform: rotate(-5deg) scale(2.16, .82); }
.nc__orbit--community { left: calc(796 * var(--nc-k)); top: calc(338 * var(--nc-k)); transform: rotate(-5deg) scale(2.15, .81); }

.nc__spinner {
  position: absolute; inset: 0;
  animation: nc-spin linear infinite;
  pointer-events: none;
}
.nc__orbit--media .nc__spinner     { animation-duration: var(--nc-orbit-media); }
.nc__orbit--community .nc__spinner { animation-duration: var(--nc-orbit-community); animation-direction: reverse; }

.nc__dot {
  position: absolute;
  width: calc(28 * var(--nc-k)); height: calc(28 * var(--nc-k));
  display: flex; align-items: center; justify-content: center;
  pointer-events: auto;
  animation: nc-unspin linear infinite;
}
.nc__orbit--media .nc__dot     { --nc-sx: .463; --nc-sy: 1.22;  animation-duration: var(--nc-orbit-media); }
.nc__orbit--community .nc__dot { --nc-sx: .465; --nc-sy: 1.235; animation-duration: var(--nc-orbit-community); animation-direction: reverse; }

/* dot positions on the unit circle (angles 186/253/308 and 117/45/329 deg) */
.nc__orbit--media .nc__dot:nth-child(1)     { left: calc(-13 * var(--nc-k)); top: calc(76 * var(--nc-k)); }
.nc__orbit--media .nc__dot:nth-child(2)     { left: calc(57 * var(--nc-k));  top: calc(-10 * var(--nc-k)); }
.nc__orbit--media .nc__dot:nth-child(3)     { left: calc(148 * var(--nc-k)); top: calc(7 * var(--nc-k)); }
.nc__orbit--community .nc__dot:nth-child(1) { left: calc(41 * var(--nc-k));  top: calc(175 * var(--nc-k)); }
.nc__orbit--community .nc__dot:nth-child(2) { left: calc(157 * var(--nc-k)); top: calc(157 * var(--nc-k)); }
.nc__orbit--community .nc__dot:nth-child(3) { left: calc(172 * var(--nc-k)); top: calc(35 * var(--nc-k)); }

.nc__dot i {
  display: block;
  width: calc(10 * var(--nc-k)); height: calc(10 * var(--nc-k));
  border-radius: 50%;
  border: 1px solid var(--nc-ink);
  background: var(--nc-ink);
  transition: background .2s, transform .2s;
}
.nc__dot:hover i { transform: scale(1.25); }
.nc__dot.is-active i { background: var(--nc-accent); }

.nc__orbit.is-paused .nc__spinner,
.nc__orbit.is-paused .nc__dot { animation-play-state: paused; }

@keyframes nc-spin   { from { transform: rotate(0deg); }   to { transform: rotate(360deg); } }
@keyframes nc-unspin { from { transform: rotate(0deg) scale(var(--nc-sx), var(--nc-sy)); } to { transform: rotate(-360deg) scale(var(--nc-sx), var(--nc-sy)); } }

/* ---- detail cards --------------------------------------------------------- */

.nc__hint {
  position: absolute;
  left: calc(86 * var(--nc-k)); top: calc(300 * var(--nc-k));
  margin: 0;
  font-family: var(--nc-font-mono);
  font-size: calc(8.5 * var(--nc-k));
  letter-spacing: .14em;
  color: var(--nc-ink-3);
  transition: opacity .2s;
}
.nc__hint.is-hidden { opacity: 0; }

.nc__card {
  position: absolute;
  width: calc(250 * var(--nc-k));
  padding: calc(14 * var(--nc-k)) calc(16 * var(--nc-k)) calc(12 * var(--nc-k));
  display: flex; flex-direction: column; gap: calc(8 * var(--nc-k));
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.9);
  border-radius: calc(8 * var(--nc-k));
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
  box-shadow: 0 8px 24px rgba(28,27,25,.08);
  opacity: 0;
  transform: translateY(calc(8 * var(--nc-k)));
  visibility: hidden;
  transition: opacity .25s, transform .25s, visibility 0s .25s;
  z-index: 2;
}
.nc__card.is-open { opacity: 1; transform: none; visibility: visible; transition: opacity .25s, transform .25s; }
.nc__card--media     { left: calc(86 * var(--nc-k));  top: calc(300 * var(--nc-k)); }
.nc__card--community { left: calc(940 * var(--nc-k)); top: calc(540 * var(--nc-k)); }

.nc__card-head { display: flex; justify-content: space-between; align-items: center; }
.nc__card-no   { font-family: var(--nc-font-mono); font-size: calc(8.5 * var(--nc-k)); letter-spacing: .14em; color: var(--nc-ink-3); }
.nc__card-close {
  width: calc(22 * var(--nc-k)); height: calc(22 * var(--nc-k));
  border: 1px solid rgba(28,27,25,.5); border-radius: 50%;
  font-size: calc(11 * var(--nc-k)); line-height: 1;
}
.nc__card-title { margin: 0; font-size: calc(14 * var(--nc-k)); font-weight: 500; letter-spacing: .08em; color: var(--nc-ink); }
.nc__card-key   { margin: 0; font-size: calc(11 * var(--nc-k)); color: var(--nc-ink-2); }
.nc__card-via {
  margin: 0; padding-top: calc(8 * var(--nc-k));
  border-top: 1px solid rgba(28,27,25,.18);
  font-family: var(--nc-font-mono); font-size: calc(8.5 * var(--nc-k)); letter-spacing: .1em; color: var(--nc-ink-3);
}

/* ==========================================================================
   SP geometry  (≤ 960px)   —  390 × 720
   ========================================================================== */

@media (max-width: 960px) {
  .nc__stage { --nc-k: calc(100cqw / 390); aspect-ratio: 390 / 720; }

  .nc__grid {
    background-size: calc(18 * var(--nc-k)) calc(18 * var(--nc-k));
    background-position: calc(9 * var(--nc-k)) calc(9 * var(--nc-k));
    -webkit-mask-image: radial-gradient(ellipse 60% 48% at 50% 48%, #000 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.12) 80%, transparent 100%);
            mask-image: radial-gradient(ellipse 60% 48% at 50% 48%, #000 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.12) 80%, transparent 100%);
  }

  .nc__blob--wa { left: calc(-120 * var(--nc-k)); top: calc(90 * var(--nc-k));  width: calc(480 * var(--nc-k)); height: calc(400 * var(--nc-k)); filter: blur(calc(28 * var(--nc-k))); animation-name: nc-drift-wa-sp; }
  .nc__blob--wb { left: calc(40 * var(--nc-k));   top: calc(190 * var(--nc-k)); width: calc(200 * var(--nc-k)); height: calc(170 * var(--nc-k)); filter: blur(calc(14 * var(--nc-k))); animation-name: nc-drift-wb-sp; }
  .nc__blob--ca { left: calc(30 * var(--nc-k));   top: calc(250 * var(--nc-k)); width: calc(480 * var(--nc-k)); height: calc(400 * var(--nc-k)); filter: blur(calc(28 * var(--nc-k))); animation-name: nc-drift-ca-sp; }
  .nc__blob--cb { left: calc(180 * var(--nc-k));  top: calc(370 * var(--nc-k)); width: calc(200 * var(--nc-k)); height: calc(170 * var(--nc-k)); filter: blur(calc(14 * var(--nc-k))); animation-name: nc-drift-cb-sp; }

  .nc__ellipse--media     { left: calc(25 * var(--nc-k));  top: calc(182 * var(--nc-k)); width: calc(250 * var(--nc-k)); height: calc(96 * var(--nc-k));  transform: rotate(-6deg); }
  .nc__ellipse--nedaly    { left: calc(25 * var(--nc-k));  top: calc(272 * var(--nc-k)); width: calc(340 * var(--nc-k)); height: calc(136 * var(--nc-k)); transform: rotate(-3deg); }
  .nc__ellipse--community { left: calc(120 * var(--nc-k)); top: calc(397 * var(--nc-k)); width: calc(250 * var(--nc-k)); height: calc(96 * var(--nc-k));  transform: rotate(-6deg); }

  .nc__t { font-size: calc(9.5 * var(--nc-k)); }
  .nc__t--mono { font-size: calc(8.5 * var(--nc-k)); }

  .nc__label-media     { left: calc(40 * var(--nc-k));  top: calc(166 * var(--nc-k)); }
  .nc__sub-media       { left: calc(60 * var(--nc-k));  top: calc(206 * var(--nc-k)); width: calc(180 * var(--nc-k)); }
  .nc__name-mag        { left: calc(80 * var(--nc-k));  top: calc(232 * var(--nc-k)); width: calc(60 * var(--nc-k)); }
  .nc__name-book       { left: calc(160 * var(--nc-k)); top: calc(232 * var(--nc-k)); width: calc(60 * var(--nc-k)); }
  .nc__label-community { left: calc(290 * var(--nc-k)); top: calc(498 * var(--nc-k)); }
  .nc__name-club       { left: calc(215 * var(--nc-k)); top: calc(432 * var(--nc-k)); width: calc(60 * var(--nc-k)); }
  .nc__sub-community   { left: calc(145 * var(--nc-k)); top: calc(456 * var(--nc-k)); width: calc(200 * var(--nc-k)); font-size: calc(8.5 * var(--nc-k)); }
  .nc__copy            { left: calc(75 * var(--nc-k));  top: calc(334 * var(--nc-k)); width: calc(240 * var(--nc-k)); font-size: calc(9 * var(--nc-k)); }

  .nc__logo { left: calc(140 * var(--nc-k)); top: calc(304 * var(--nc-k)); width: calc(110 * var(--nc-k)); }

  .nc__real { top: calc(354 * var(--nc-k)); width: calc(60 * var(--nc-k)); height: calc(28 * var(--nc-k)); font-size: calc(9.5 * var(--nc-k)); }
  .nc__real--live { left: calc(90 * var(--nc-k)); }
  .nc__real--room { left: calc(165 * var(--nc-k)); }
  .nc__real--fes  { left: calc(240 * var(--nc-k)); }
  .nc__real-desc  { left: calc(55 * var(--nc-k)); top: calc(386 * var(--nc-k)); width: calc(280 * var(--nc-k)); font-size: calc(8.5 * var(--nc-k)); }

  .nc__market { gap: calc(6 * var(--nc-k)); }
  .nc__market--02 { left: calc(146 * var(--nc-k)); top: calc(40 * var(--nc-k));  width: calc(220 * var(--nc-k)); align-items: flex-end; text-align: right; }
  .nc__market--01 { left: calc(80 * var(--nc-k));  top: calc(520 * var(--nc-k)); width: calc(230 * var(--nc-k)); }
  .nc__market-no    { font-size: calc(8.5 * var(--nc-k)); }
  .nc__market-title { font-size: calc(13 * var(--nc-k)); }
  .nc__market-desc  { font-size: calc(9.5 * var(--nc-k)); line-height: 1.7; }

  .nc__vline   { left: calc(60 * var(--nc-k)); top: calc(383 * var(--nc-k)); height: calc(253 * var(--nc-k)); }
  .nc__journal { left: calc(24 * var(--nc-k)); top: calc(646 * var(--nc-k)); width: calc(342 * var(--nc-k)); gap: calc(14 * var(--nc-k)); font-size: calc(9 * var(--nc-k)); }
  .nc__journal b { font-size: calc(9.5 * var(--nc-k)); }

  .nc__orbit--media     { left: calc(50 * var(--nc-k));  top: calc(130 * var(--nc-k)); transform: rotate(-6deg) scale(1.25, .48); }
  .nc__orbit--community { left: calc(145 * var(--nc-k)); top: calc(345 * var(--nc-k)); transform: rotate(-6deg) scale(1.25, .48); }
  .nc__orbit--media .nc__dot,
  .nc__orbit--community .nc__dot { --nc-sx: .8; --nc-sy: 2.083; }
  .nc__dot i { width: calc(9 * var(--nc-k)); height: calc(9 * var(--nc-k)); }

  .nc__hint { left: calc(24 * var(--nc-k)); top: calc(690 * var(--nc-k)); font-size: calc(7.5 * var(--nc-k)); }

  /* on SP both cards become one bottom sheet, fixed to the viewport */
  .nc__card,
  .nc__card--media,
  .nc__card--community {
    position: fixed;
    left: 16px; right: 16px; bottom: 16px; top: auto;
    width: auto;
    padding: 14px 16px 12px;
    gap: 8px;
    border-radius: 10px;
    transform: translateY(12px);
    z-index: 50;
  }
  .nc__card.is-open { transform: none; }
  .nc__card-no    { font-size: 8px; }
  .nc__card-close { width: 24px; height: 24px; font-size: 12px; }
  .nc__card-title { font-size: 14px; }
  .nc__card-key   { font-size: 11px; }
  .nc__card-via   { font-size: 8px; padding-top: 8px; }

  @keyframes nc-drift-wa-sp {
    0%   { transform: translate(0, 0) rotate(0deg); border-radius: 60% 40% 55% 45% / 55% 60% 40% 45%; }
    50%  { transform: translate(calc(60 * var(--nc-k)), calc(40 * var(--nc-k))) rotate(14deg); border-radius: 42% 58% 46% 54% / 60% 38% 62% 40%; }
    100% { transform: translate(calc(110 * var(--nc-k)), calc(-20 * var(--nc-k))) rotate(-9deg); border-radius: 55% 45% 38% 62% / 44% 56% 60% 40%; }
  }
  @keyframes nc-drift-wb-sp {
    0%   { transform: translate(0, 0) rotate(0deg); border-radius: 52% 48% 60% 40% / 58% 42% 58% 42%; }
    50%  { transform: translate(calc(40 * var(--nc-k)), calc(-30 * var(--nc-k))) rotate(-18deg); border-radius: 40% 60% 45% 55% / 50% 50% 62% 38%; }
    100% { transform: translate(calc(80 * var(--nc-k)), calc(30 * var(--nc-k))) rotate(10deg); border-radius: 62% 38% 50% 50% / 42% 60% 40% 58%; }
  }
  @keyframes nc-drift-ca-sp {
    0%   { transform: translate(0, 0) rotate(0deg); border-radius: 45% 55% 60% 40% / 50% 42% 58% 50%; }
    50%  { transform: translate(calc(-70 * var(--nc-k)), calc(-30 * var(--nc-k))) rotate(-12deg); border-radius: 58% 42% 44% 56% / 38% 62% 40% 60%; }
    100% { transform: translate(calc(-120 * var(--nc-k)), calc(20 * var(--nc-k))) rotate(9deg); border-radius: 40% 60% 55% 45% / 60% 44% 56% 40%; }
  }
  @keyframes nc-drift-cb-sp {
    0%   { transform: translate(0, 0) rotate(0deg); border-radius: 58% 42% 48% 52% / 44% 58% 42% 56%; }
    50%  { transform: translate(calc(-50 * var(--nc-k)), calc(40 * var(--nc-k))) rotate(16deg); border-radius: 46% 54% 62% 38% / 56% 40% 60% 44%; }
    100% { transform: translate(calc(-90 * var(--nc-k)), calc(-20 * var(--nc-k))) rotate(-11deg); border-radius: 60% 40% 42% 58% / 50% 56% 44% 50%; }
  }
}

/* ---- accessibility -------------------------------------------------------- */

.nc__dot:focus-visible i,
.nc__real:focus-visible,
.nc__card-close:focus-visible { outline: 2px solid var(--nc-ink); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  .nc__blob, .nc__spinner, .nc__dot { animation: none; }
  .nc__orbit--media .nc__dot     { transform: scale(.463, 1.22); }
  .nc__orbit--community .nc__dot { transform: scale(.465, 1.235); }
  @media (max-width: 960px) {
    .nc__orbit--media .nc__dot,
    .nc__orbit--community .nc__dot { transform: scale(.8, 2.083); }
  }
}
