
/* ---------------- the listening room ---------------- */
.track-card {
  display: flex; gap: 0.9rem; align-items: center; width: 100%;
  background: linear-gradient(135deg, #1c0f14 0%, #2a141c 60%, #1c0f14 100%);
  border: 1px solid rgba(212, 175, 55, 0.28); border-radius: 16px;
  padding: 0.8rem; margin-bottom: 0.8rem; text-align: left; cursor: pointer;
  color: #f5e6d3; box-shadow: 0 4px 18px rgba(0,0,0,0.5);
  transition: transform .12s ease, border-color .2s ease;
}
.track-card:active { transform: scale(0.98); }
.track-card img { width: 92px; height: 92px; object-fit: cover; border-radius: 12px; flex-shrink: 0; box-shadow: 0 2px 10px rgba(0,0,0,0.6); }
.track-card .t-body { flex: 1; min-width: 0; }
.track-card .t-title { font-family: Georgia, serif; font-size: 1.05rem; color: #ffd700; margin-bottom: 0.25rem; }
.track-card .t-teaser { font-size: 0.82rem; color: #d8b8c8; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.track-card .t-desc { font-family: Georgia, serif; font-style: italic; font-size: 0.85rem; color: #e8d5c0; line-height: 1.5; margin-top: 0.35rem; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.track-card .t-shop { display: inline-block; font-size: 0.82rem; font-weight: 700; color: #ffd700; text-decoration: none; margin-top: 0.4rem; padding: 0.2rem 0.6rem; border: 1px solid rgba(212,175,55,0.5); border-radius: 999px; background: rgba(212,175,55,0.12); }
.track-card .t-shop:hover { background: rgba(212,175,55,0.25); }
.track-hero .th-shop { display: inline-block; font-size: 0.85rem; font-weight: 700; color: #ffd700; margin-bottom: 0.5rem; padding: 0.25rem 0.7rem; border: 1px solid rgba(212,175,55,0.5); border-radius: 999px; background: rgba(212,175,55,0.12); cursor: pointer; }
.track-card .t-meta { font-size: 0.75rem; color: #a08090; margin-top: 0.3rem; display: flex; gap: 0.8rem; }
.track-card .t-play { font-size: 1.05rem; font-weight: 700; padding: 0 0.4rem; text-align: center; line-height: 1.2; }
.track-card .t-progress { height: 4px; background: rgba(255,255,255,0.12); border-radius: 2px; margin-top: 0.4rem; overflow: hidden; }
.track-card .t-progress span { display: block; height: 100%; background: linear-gradient(90deg, #d4af37, #ff6b9d); border-radius: 2px; }
.pill { display: inline-block; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.06em; padding: 0.15rem 0.5rem; border-radius: 999px; vertical-align: middle; }
.pill.green { background: rgba(46, 204, 113, 0.2); color: #7dffb0; border: 1px solid rgba(46,204,113,0.5); }
.pill.gold { background: rgba(212,175,55,0.15); color: #ffd700; border: 1px solid rgba(212,175,55,0.5); }
.pill.shield { background: rgba(110,130,220,0.18); color: #bcc9ff; border: 1px solid rgba(110,130,220,0.55); }

.player-glass {
  position: fixed; left: 0.75rem; right: 0.75rem; bottom: calc(86px + env(safe-area-inset-bottom));
  display: flex; gap: 0.8rem; align-items: center;
  background: rgba(28, 14, 20, 0.82);
  -webkit-backdrop-filter: blur(22px) saturate(1.6); backdrop-filter: blur(22px) saturate(1.6);
  border: 1px solid rgba(212, 175, 55, 0.4); border-radius: 20px;
  padding: 0.8rem; z-index: 60;
  box-shadow: 0 12px 40px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.12);
}
.player-glass .p-cover { width: 64px; height: 64px; border-radius: 14px; object-fit: cover; flex-shrink: 0; box-shadow: 0 2px 12px rgba(0,0,0,0.6); }
.player-glass .p-cover.spinning { animation: pPulse 2.4s ease-in-out infinite; }
@keyframes pPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(255,107,157,0.5);} 50% { box-shadow: 0 0 0 8px rgba(255,107,157,0);} }
.player-glass .p-main { flex: 1; min-width: 0; }
.player-glass .p-title { font-family: Georgia, serif; color: #ffd700; font-size: 0.95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.player-glass .p-seek { display: flex; align-items: center; gap: 0.5rem; font-size: 0.72rem; color: #a08090; margin: 0.3rem 0; }
.player-glass .p-seek input[type=range] { flex: 1; accent-color: #ff6b9d; height: 24px; }
.player-glass .p-controls { display: flex; gap: 0.5rem; align-items: center; }
.p-btn { background: rgba(255,255,255,0.08); border: 1px solid rgba(212,175,55,0.3); border-radius: 999px; color: #fff; font-size: 1.1rem; width: 42px; height: 42px; cursor: pointer; }
.p-btn:active { transform: scale(0.92); }
.p-btn.p-big { width: 52px; height: 52px; font-size: 1.4rem; background: linear-gradient(135deg, #d4af37, #ff6b9d); border: none; }
.p-btn.p-small { font-size: 0.75rem; font-weight: 700; width: 44px; }
.player-glass .p-close { background: none; border: none; color: #a08090; font-size: 1rem; cursor: pointer; align-self: flex-start; padding: 0.2rem; }
@media (prefers-reduced-motion: reduce) { .player-glass .p-cover.spinning { animation: none; } }

/* ---------------- listening room hero + shelf ---------------- */
.track-hero {
  display: flex; gap: 1rem; align-items: center; width: 100%;
  background: linear-gradient(135deg, #2a141c 0%, #3d1a26 55%, #1c0f14 100%);
  border: 1px solid rgba(212, 175, 55, 0.5); border-radius: 20px;
  padding: 1rem; margin-bottom: 1.2rem; text-align: left; cursor: pointer; color: #f5e6d3;
  box-shadow: 0 8px 30px rgba(0,0,0,0.55), 0 0 24px rgba(255,107,157,0.12);
}
.track-hero:active { transform: scale(0.98); }
.track-hero img { width: 128px; height: 128px; object-fit: cover; border-radius: 14px; flex-shrink: 0; box-shadow: 0 4px 16px rgba(0,0,0,0.6); }
.track-hero .th-body { flex: 1; min-width: 0; }
.track-hero .th-kicker { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #ff6b9d; margin-bottom: 0.3rem; }
.track-hero .th-title { font-family: Georgia, serif; font-size: 1.35rem; color: #ffd700; margin-bottom: 0.35rem; }
.track-hero .th-teaser { font-size: 0.85rem; color: #d8b8c8; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 0.5rem; }
.track-hero .th-meta { display: flex; gap: 0.7rem; align-items: center; font-size: 0.78rem; color: #a08090; margin-bottom: 0.6rem; }
.track-hero .th-cta { display: inline-block; background: linear-gradient(135deg, #d4af37, #ff6b9d); color: #1c0f14; font-weight: 700; font-size: 0.9rem; padding: 0.55rem 1.3rem; border-radius: 999px; }
.shelf-h { font-family: Georgia, serif; color: #d4af37; font-size: 1.05rem; margin: 0.4rem 0 0.8rem; letter-spacing: 0.04em; }

/* ---------------- kanawa: the tasting menu ---------------- */
.k-game { position: relative; max-width: 760px; margin: 0 auto; padding: 1rem 1rem 6rem; }
.k-cinema { min-height: 92vh; }
.k-film-wrap { position: fixed; inset: 0; z-index: -2; overflow: hidden; background: #0d0a18; }
.k-film-wrap video { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; }
.k-film-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,6,18,0.55) 0%, rgba(10,6,18,0.25) 40%, rgba(10,6,18,0.78) 100%); }
.k-film-fallback { position: fixed; inset: 0; z-index: -2; background: radial-gradient(ellipse at 50% 20%, #241a3f 0%, #120c22 55%, #0a0714 100%); }
.k-letterbox { position: fixed; left: 0; right: 0; height: 7vh; background: #000; z-index: 5; }
.k-letterbox.top { top: 0; } .k-letterbox.bot { bottom: 0; }
.k-title-art { text-align: center; padding: 9vh 1rem 2rem; position: relative; }
.k-title-art h1 { font-family: Georgia, serif; font-size: 3.4rem; letter-spacing: 0.28em; color: #f3e9d2; margin: 0.4rem 0; text-shadow: 0 0 30px rgba(212,175,55,0.4); text-indent: 0.28em; }
.k-moon { width: 74px; height: 74px; margin: 0 auto; border-radius: 50%; background: radial-gradient(circle at 38% 35%, #f7efda, #d9c491 70%); box-shadow: 0 0 44px rgba(240,226,188,0.5); }
.k-sub { color: #d4af37; letter-spacing: 0.12em; font-size: 0.85rem; }
.k-by { color: #8a7599; font-style: italic; font-size: 0.8rem; margin-top: 0.4rem; }
.k-intro { background: rgba(20,12,28,0.72); border: 1px solid rgba(212,175,55,0.3); border-radius: 16px; padding: 1.1rem 1.2rem; margin: 1.4rem 0; color: #e8dcc8; line-height: 1.65; backdrop-filter: blur(6px); }
.k-intro .dim { color: #9a8aa8; font-size: 0.88rem; }
.k-big { display: block; width: 100%; margin: 0.6rem 0; padding: 0.9rem; font-size: 1.02rem; }
.k-note { text-align: center; color: #8a7599; font-size: 0.78rem; margin-top: 1.2rem; }
.k-course-head { text-align: center; padding: 8vh 1rem 1.6rem; }
.k-titlecard { animation: kCardIn 2.2s ease both; }
@keyframes kCardIn { from { opacity: 0; transform: translateY(14px); letter-spacing: 0.3em; } to { opacity: 1; transform: none; } }
.k-kicker { color: #ff6b9d; text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.72rem; margin-bottom: 0.6rem; }
.k-course-head h2 { font-family: Georgia, serif; font-size: 2.1rem; color: #f3e9d2; margin: 0 0 0.4rem; }
.k-course-n { color: #8a7599; font-size: 0.82rem; letter-spacing: 0.1em; }
.k-course-tag { display: inline-block; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: #d4af37; border: 1px solid rgba(212,175,55,0.4); border-radius: 999px; padding: 0.3rem 0.9rem; margin-bottom: 1rem; background: rgba(10,6,18,0.6); }
.k-prose { background: rgba(14,9,24,0.78); border: 1px solid rgba(212,175,55,0.22); border-radius: 16px; padding: 1.2rem 1.25rem; color: #e8dcc8; line-height: 1.75; font-size: 1.0rem; backdrop-filter: blur(8px); }
.k-prose p { margin: 0 0 1em; } .k-prose p:last-child { margin-bottom: 0; }
.k-prose .her { color: #ffb3cd; font-style: italic; }
.k-prose.narrator { border-color: rgba(143,123,216,0.45); }
.k-choices { display: flex; flex-direction: column; gap: 0.7rem; margin-top: 1.2rem; }
.k-choice { text-align: left; background: rgba(30,18,44,0.85); border: 1px solid rgba(212,175,55,0.35); color: #f3e9d2; border-radius: 14px; padding: 0.95rem 1.1rem; font-size: 0.98rem; line-height: 1.5; cursor: pointer; transition: transform .1s, border-color .2s; backdrop-filter: blur(6px); }
.k-choice:active { transform: scale(0.98); border-color: #ff6b9d; }
.k-meters { display: flex; flex-direction: column; gap: 0.35rem; margin: 1.2rem 0; background: rgba(14,9,24,0.7); border-radius: 12px; padding: 0.8rem 1rem; }
.k-meter { display: flex; align-items: center; gap: 0.6rem; font-size: 0.78rem; color: #b9a8cc; }
.k-meter span { width: 92px; flex-shrink: 0; }
.k-meter .k-track { flex: 1; height: 6px; background: rgba(255,255,255,0.1); border-radius: 3px; overflow: hidden; }
.k-meter .k-track i { display: block; height: 100%; background: linear-gradient(90deg, #d4af37, #ff6b9d); border-radius: 3px; transition: width .6s ease; }
.k-meter b { width: 30px; text-align: right; color: #f3e9d2; }
.k-sense { display: flex; gap: 0.6rem; margin-top: 1.2rem; }
.k-sbtn { flex: 1; background: rgba(30,18,44,0.85); border: 1px solid rgba(143,123,216,0.4); color: #cbb8ee; border-radius: 999px; padding: 0.6rem; font-size: 0.85rem; cursor: pointer; }
.k-sbtn.on { border-color: #ff6b9d; color: #ffb3cd; box-shadow: 0 0 14px rgba(255,107,157,0.25); }
.k-game-title { font-family: Georgia, serif; color: #ffd700; font-size: 1.5rem; margin: 0.2rem 0 0.4rem; }
.k-hint { color: #9a8aa8; font-size: 0.88rem; line-height: 1.55; margin-bottom: 1rem; }
.k-stage { background: rgba(10,6,18,0.85); border: 1px solid rgba(212,175,55,0.3); border-radius: 18px; padding: 0.8rem; box-shadow: 0 10px 40px rgba(0,0,0,0.5); }
.k-gmsg { min-height: 1.6em; text-align: center; color: #ffb3cd; font-style: italic; margin-top: 0.7rem; font-size: 0.92rem; }
.k-score { font-family: Georgia, serif; font-size: 3rem; color: #ffd700; text-align: center; margin: 0; }
.k-score span { font-size: 1.2rem; color: #8a7599; }
/* shun */
.k-seasons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; margin-bottom: 0.9rem; }
.k-season { background: rgba(30,18,44,0.9); border: 1px solid rgba(143,123,216,0.35); border-radius: 12px; padding: 0.7rem 0.3rem; color: #e8dcc8; cursor: pointer; font-size: 0.8rem; }
.k-season .se { font-size: 1.6rem; }
.k-season .k-placed { min-height: 1.4em; font-size: 1.1rem; margin-top: 0.3rem; }
.k-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
.k-card { background: rgba(42,24,58,0.9); border: 1px solid rgba(212,175,55,0.3); border-radius: 12px; padding: 0.7rem 0.5rem; color: #f3e9d2; cursor: pointer; }
.k-card .ce { font-size: 1.8rem; } .k-card .ch { font-size: 0.7rem; color: #9a8aa8; margin-top: 0.3rem; line-height: 1.4; }
.k-card.sel { border-color: #ff6b9d; box-shadow: 0 0 16px rgba(255,107,157,0.35); }
.k-card.done { opacity: 0.35; }
/* arrangement */
.k-tray { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin-top: 0.8rem; }
.k-dish { background: rgba(42,24,58,0.92); border: 1px solid rgba(212,175,55,0.4); border-radius: 12px; padding: 0.55rem 0.7rem; cursor: grab; color: #f3e9d2; display: flex; flex-direction: column; align-items: center; gap: 0.15rem; }
.k-dish span { font-size: 1.7rem; } .k-dish small { font-size: 0.62rem; color: #b9a8cc; }
.k-dish.sel { border-color: #ff6b9d; box-shadow: 0 0 16px rgba(255,107,157,0.4); }
.k-dish.done { opacity: 0.3; }
/* patron */
.k-patron .kp-e { font-size: 2.6rem; text-align: center; margin-bottom: 0.5rem; }
.k-patron .kp-v { color: #d8c8e8; line-height: 1.7; font-size: 0.95rem; margin-bottom: 1rem; }
.k-patron .kp-q { font-family: Georgia, serif; color: #ffd700; font-size: 1.05rem; margin-bottom: 0.8rem; font-style: italic; }
/* ending */
.k-endbooks { margin: 1.4rem 0; display: flex; flex-direction: column; gap: 0.6rem; }
.k-locked { background: rgba(20,12,28,0.8); border: 1px dashed rgba(143,123,216,0.4); border-radius: 12px; padding: 0.9rem 1rem; color: #9a8aa8; }
.k-locked span { display: block; font-size: 0.78rem; margin-top: 0.2rem; }
@media (prefers-reduced-motion: reduce) { .k-titlecard { animation: none; } }

/* ---------------- listening room: now playing ---------------- */
#nowPlaying { position: fixed; inset: 0; z-index: 90; display: none; overflow: hidden; background: #0a0612; }
#nowPlaying.open { display: block; animation: npIn .35s ease both; }
@keyframes npIn { from { opacity: 0; transform: translateY(4%); } to { opacity: 1; transform: none; } }
.np-blur { position: absolute; inset: -40px; background-size: cover; background-position: center; filter: blur(38px) brightness(0.42) saturate(1.2); }
.np-card { position: relative; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: calc(1rem + env(safe-area-inset-top)) 1.4rem calc(1.6rem + env(safe-area-inset-bottom)); text-align: center; overflow-y: auto; }
.np-close { position: absolute; top: calc(0.8rem + env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: #fff; border-radius: 999px; width: 44px; height: 30px; font-size: 1.1rem; cursor: pointer; }
/* Build .24: the player view's way back, dressed as the close pill beside it. */
.np-backbtn { position: absolute; top: calc(0.8rem + env(safe-area-inset-top)); left: 1rem; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: #fff; border-radius: 999px; min-height: 30px; padding: 0 12px; font-size: 0.85rem; cursor: pointer; }
.np-kicker { color: #d4af37; letter-spacing: 0.2em; text-transform: uppercase; font-size: 0.68rem; margin-bottom: 1rem; }
.np-cover { width: min(68vw, 300px); aspect-ratio: 1; object-fit: cover; border-radius: 22px; box-shadow: 0 18px 60px rgba(0,0,0,0.7), 0 0 44px rgba(212,175,55,0.18); margin-bottom: 1.2rem; }
.np-cover.playing { animation: npGlow 3.2s ease-in-out infinite; }
@keyframes npGlow { 0%,100% { box-shadow: 0 18px 60px rgba(0,0,0,0.7), 0 0 30px rgba(255,107,157,0.15); } 50% { box-shadow: 0 18px 60px rgba(0,0,0,0.7), 0 0 60px rgba(255,107,157,0.4); } }
.np-title { font-family: Georgia, serif; font-size: 1.7rem; color: #f3e9d2; margin-bottom: 0.4rem; }
.np-teaser { color: #b9a8cc; font-size: 0.85rem; line-height: 1.55; max-width: 34rem; margin-bottom: 1.2rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.np-seek { display: flex; align-items: center; gap: 0.7rem; width: 100%; max-width: 26rem; font-size: 0.78rem; color: #a08090; margin-bottom: 1.1rem; }
.np-seek input[type=range] { flex: 1; accent-color: #ff6b9d; height: 28px; }
.np-controls { display: flex; gap: 1rem; align-items: center; margin-bottom: 0.9rem; }
.np-big { width: 76px; height: 76px; font-size: 2rem; background: linear-gradient(135deg, #d4af37, #ff6b9d); border: none; }
.np-big:active { transform: scale(0.94); }
.p-btn small { font-size: 0.6rem; display: block; line-height: 1; opacity: 0.8; }
.np-row { display: flex; gap: 0.7rem; margin-bottom: 1rem; }
.np-hint { color: #8a7599; font-size: 0.72rem; letter-spacing: 0.04em; }
@media (prefers-reduced-motion: reduce) { #nowPlaying.open, .np-cover.playing { animation: none; } }


/* ---------------- souls astir: the wall of the awake ---------------- */
.wall-head { text-align: center; margin: 18px 0 22px; }
.wall-head h1 { font-size: 2rem; margin: 6px 0; letter-spacing: 0.02em; }
.wall {
  column-count: 3; column-gap: 16px;
}
@media (max-width: 900px) { .wall { column-count: 2; } }
@media (max-width: 560px) { .wall { column-count: 2; column-gap: 10px; } }
.wall-card {
  break-inside: avoid; margin-bottom: 16px;
  background: linear-gradient(165deg, #1c1226 0%, #120b1a 100%);
  border: 1px solid #3d2b52; border-radius: 14px; overflow: hidden;
  box-shadow: 0 4px 22px rgba(0,0,0,.5), inset 0 0 30px rgba(120,70,180,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.wall-card:hover { transform: translateY(-3px); border-color: #c9a227; box-shadow: 0 8px 30px rgba(0,0,0,.6), 0 0 24px rgba(201,162,39,.18); }
.wall-photo {
  display: block; position: relative; overflow: hidden; width: 100%; aspect-ratio: 3/3.4;
  background-size: cover; background-position: center;
  background-color: #241a33;
}
.wall-initial {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 3.2rem; color: #c9a227; font-family: Georgia, serif; text-shadow: 0 2px 12px rgba(0,0,0,.7);
}
.wall-pulse {
  position: absolute; top: 10px; right: 10px; width: 14px; height: 14px; border-radius: 50%;
  background: #4ade80; box-shadow: 0 0 0 0 rgba(74,222,128,.7);
  animation: wallPulse 2s infinite;
}
@keyframes wallPulse {
  0% { box-shadow: 0 0 0 0 rgba(74,222,128,.7); }
  70% { box-shadow: 0 0 0 10px rgba(74,222,128,0); }
  100% { box-shadow: 0 0 0 0 rgba(74,222,128,0); }
}
.wall-seal {
  position: absolute; top: 8px; left: 10px; color: #c9a227; font-size: 1.1rem;
  text-shadow: 0 1px 6px rgba(0,0,0,.8);
}
.wall-body { padding: 12px 14px 14px; }
.wall-name { font-size: 1.05rem; font-weight: 700; color: #f0e6d2; text-decoration: none; }
.wall-name:hover { color: #c9a227; }
/* The rank beside every name (public/js/rank.js) — quiet, smaller,
   letter-spaced, in the house gold; never louder than the name. */
.rn-rank { font-size: .78em; font-weight: 600; letter-spacing: .04em; color: #c9a227; white-space: nowrap; }
.rn-vip { font-size: .78em; font-weight: 700; letter-spacing: .05em; color: #e8c95a; white-space: nowrap; text-shadow: 0 0 8px rgba(232,201,90,.45); }
.msg-who { display: block; font-size: .68rem; font-weight: 600; opacity: .75; margin-bottom: 2px; }
.wall-status { font-size: .85rem; color: #b9a8d0; font-style: italic; margin-top: 4px; }
.wall-meta { font-size: .75rem; color: var(--dim); margin-top: 6px; }
.wall-actions { display: flex; gap: 8px; margin-top: 10px; }
.wall-actions .btn { flex: 1; }
.online-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #4ade80; margin-right: 4px; box-shadow: 0 0 6px rgba(74,222,128,.8); }

/* ============ LISTENING ROOM v8 — the player, dressed (2026-10-15) ============ */
.p-seek input[type=range], .np-seek input[type=range] { -webkit-appearance: none; appearance: none; background: transparent; cursor: pointer; }
.p-seek input[type=range]::-webkit-slider-runnable-track, .np-seek input[type=range]::-webkit-slider-runnable-track {
  height: 6px; border-radius: 3px;
  background: linear-gradient(90deg, #d4af37 0%, #ff6b9d var(--p, 0%), rgba(255,255,255,0.14) var(--p, 0%));
}
.p-seek input[type=range]::-webkit-slider-thumb, .np-seek input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; width: 15px; height: 15px; border-radius: 50%; margin-top: -4.5px;
  background: #ffe9a8; border: 2px solid #d4af37; box-shadow: 0 0 10px rgba(212,175,55,0.55);
}
.p-seek input[type=range]::-moz-range-track, .np-seek input[type=range]::-moz-range-track { height: 6px; border-radius: 3px; background: rgba(255,255,255,0.14); }
.p-seek input[type=range]::-moz-range-progress, .np-seek input[type=range]::-moz-range-progress { height: 6px; border-radius: 3px; background: linear-gradient(90deg, #d4af37, #ff6b9d); }
.p-seek input[type=range]::-moz-range-thumb, .np-seek input[type=range]::-moz-range-thumb { width: 13px; height: 13px; border-radius: 50%; background: #ffe9a8; border: 2px solid #d4af37; box-shadow: 0 0 10px rgba(212,175,55,0.55); }
.track-card.playing { border-color: rgba(255,107,157,0.75); box-shadow: 0 4px 22px rgba(0,0,0,0.5), 0 0 18px rgba(255,107,157,0.25); }
.track-card.playing .t-title { color: #ffb3cd; }
.eq { display: inline-flex; align-items: flex-end; gap: 3px; height: 22px; }
.eq i { width: 4px; border-radius: 2px; background: linear-gradient(180deg, #ffd700, #ff6b9d); transform-origin: bottom; animation: eqBounce 0.9s ease-in-out infinite; }
.eq i:nth-child(1) { height: 60%; }
.eq i:nth-child(2) { height: 100%; animation-delay: 0.18s; }
.eq i:nth-child(3) { height: 45%; animation-delay: 0.36s; }
@keyframes eqBounce { 0%, 100% { transform: scaleY(0.45); } 50% { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .eq i { animation: none; } }

/* ============ LISTENING ROOM v9 — the full library: folders + played (2026-10-21) ============ */
.pill.played { background: rgba(212,175,55,0.18); color: #ffe9a8; border: 1px solid rgba(212,175,55,0.55); }
.track-card { font-family: inherit; }
.track-card.played { border-color: rgba(212,175,55,0.55); background: linear-gradient(135deg, #22140f 0%, #2e1c14 60%, #1c0f14 100%); }
.track-card.played img { box-shadow: 0 2px 10px rgba(0,0,0,0.6), 0 0 12px rgba(212,175,55,0.25); }
.track-card .t-side { display: flex; flex-direction: column; align-items: center; gap: 0.45rem; flex-shrink: 0; }
.t-played-btn {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(212,175,55,0.35); color: #d8b8c8;
  border-radius: 999px; padding: 0.32rem 0.7rem; font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.04em; cursor: pointer; white-space: nowrap; transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.t-played-btn:active { transform: scale(0.94); }
.t-played-btn.on { background: rgba(212,175,55,0.2); border-color: #d4af37; color: #ffe9a8; }
.listen-sub { max-width: 34rem; margin: 0 auto 1rem; text-align: center; }
.folder-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-bottom: 1.4rem; }
@media (min-width: 640px) { .folder-grid { grid-template-columns: 1fr 1fr; } }
.folder-card {
  display: flex; flex-direction: column; width: 100%; text-align: left; cursor: pointer; color: #f5e6d3;
  background: linear-gradient(160deg, #241222 0%, #170a18 70%);
  border: 1px solid rgba(212,175,55,0.32); border-radius: 18px; overflow: hidden; padding: 0;
  box-shadow: 0 6px 24px rgba(0,0,0,0.5); transition: transform .14s ease, border-color .2s ease, box-shadow .2s ease;
}
.folder-card:hover { border-color: rgba(212,175,55,0.7); box-shadow: 0 10px 32px rgba(0,0,0,0.6), 0 0 20px rgba(255,107,157,0.12); }
.folder-card:active { transform: scale(0.98); }
.folder-card .f-art { width: 100%; aspect-ratio: 16/8; object-fit: cover; display: block; }
.folder-card .f-art-fallback { display: flex; align-items: center; justify-content: center; font-size: 3rem; background: radial-gradient(ellipse at 50% 30%, #3d1a26, #170a18); }
.folder-card .f-body { padding: 0.95rem 1.05rem 1.05rem; display: flex; flex-direction: column; gap: 0.3rem; }
.f-kicker { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: #ff6b9d; }
.f-title { font-family: Georgia, serif; font-size: 1.3rem; color: #ffd700; line-height: 1.2; }
.f-theme { font-family: Georgia, serif; font-style: italic; font-size: 0.95rem; color: #f3e9d2; }
.f-blurb { font-size: 0.82rem; color: #d8b8c8; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.f-meta { display: flex; justify-content: space-between; gap: 0.8rem; font-size: 0.75rem; color: #a08090; margin-top: 0.35rem; }
.f-meta .f-prog-label { color: #ffe9a8; font-weight: 700; }
.f-progress { height: 5px; background: rgba(255,255,255,0.12); border-radius: 3px; overflow: hidden; margin-top: 0.15rem; }
.f-progress span { display: block; height: 100%; background: linear-gradient(90deg, #d4af37, #ff6b9d); border-radius: 3px; transition: width .4s ease; }
.f-cta { margin-top: 0.5rem; font-size: 0.8rem; font-weight: 700; color: #ffd700; letter-spacing: 0.03em; }
.listen-back { margin-bottom: 0.9rem; }
.folder-head {
  display: flex; gap: 1rem; align-items: center; margin-bottom: 1.2rem;
  background: linear-gradient(135deg, #2a141c 0%, #1c0f14 100%);
  border: 1px solid rgba(212,175,55,0.4); border-radius: 18px; padding: 1rem;
  box-shadow: 0 8px 26px rgba(0,0,0,0.5);
}
.folder-head .fh-art { width: 110px; height: 110px; object-fit: cover; border-radius: 14px; flex-shrink: 0; box-shadow: 0 4px 16px rgba(0,0,0,0.6); }
.folder-head .fh-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.fh-title { font-family: Georgia, serif; font-size: 1.5rem; color: #ffd700; margin: 0; line-height: 1.2; }
.fh-blurb { font-size: 0.85rem; color: #d8b8c8; line-height: 1.55; margin: 0; }
.np-played { width: auto; padding: 0 0.9rem; }
.np-played.on { border-color: #d4af37; color: #ffe9a8; background: rgba(212,175,55,0.2); }

/* ================= NOCTURNE: Mood Doors & Velvet Doors ================= */
.mood-doors{margin:18px 0 6px}
.mood-chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}
.mood-chip{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:inherit;cursor:pointer;font-size:.88rem;transition:box-shadow .25s ease,border-color .25s ease}
.mood-chip:hover{border-color:rgba(232,179,75,.55)}
.mood-chip.on{background:linear-gradient(180deg,var(--candle-hi),var(--candle));color:#17100a;border-color:var(--candle);font-weight:700;box-shadow:0 0 16px rgba(232,179,75,.3)}
.mood-entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.mood-entry{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg, rgba(18,8,29,.65), rgba(10,5,16,.8));color:inherit;cursor:pointer;transition:transform .2s ease, box-shadow .3s ease, border-color .25s ease}
.mood-entry:hover{transform:translateY(-3px)}
.mood-entry.dread:hover{border-color:#8f9bb3;box-shadow:0 14px 30px rgba(0,0,0,.55),0 0 24px rgba(70,90,140,.3)}
.mood-entry.desire:hover{border-color:var(--blood2,#e5383b);box-shadow:0 14px 30px rgba(0,0,0,.55),0 0 24px rgba(229,56,59,.28)}
.me-kicker{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.me-title{font-family:var(--serif);font-size:1.3rem;color:#f6ead0}
.me-sub{font-size:.84rem;color:var(--dim)}
.pill.mood{border:1px solid rgba(201,162,39,.35)}
.pill.mood-dread{background:rgba(40,50,80,.5)}
.pill.mood-desire{background:rgba(125,22,38,.5)}
.pill.mood-both{background:rgba(91,42,134,.45)}
.track-card.velvet-door{border:1px dashed rgba(201,162,39,.55);background:linear-gradient(180deg, rgba(74,14,24,.22), rgba(18,8,29,.5))}
.track-card.velvet-door .t-play{filter:drop-shadow(0 0 8px rgba(232,179,75,.5))}
.t-door-line{margin-top:6px;font-size:.82rem;font-style:italic;color:var(--candle-hi)}
.t-door-panel{margin-top:8px;padding:10px 12px;border:1px solid var(--candle-hi);border-radius:10px;background:rgba(0,0,0,.25);font-size:.88rem}
.t-door-panel p{margin:0 0 8px}
.vp-overlay{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.66);display:flex;align-items:center;justify-content:center;padding:18px}
.vp-card{max-width:520px;width:100%;padding:20px 22px}
.vp-card h3{margin-top:0}
.mp{position:relative;display:inline-block;min-width:220px}
.mp .input{width:100%}
.mp-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:900;background:#1b1420;border:1px solid var(--line);border-radius:10px;max-height:260px;overflow:auto;box-shadow:0 12px 30px rgba(0,0,0,.5);padding:4px}
.mp-row{display:flex;gap:8px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:6px 8px;border-radius:8px;color:inherit;cursor:pointer;font:inherit}
.mp-row:hover{background:rgba(255,255,255,.07)}
.mp-row img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.mp-noimg{font-size:1.1rem}
.mp-who{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-none{padding:8px;font-size:.85rem;opacity:.75}
.candle-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;box-shadow:0 0 8px currentColor;vertical-align:baseline}
.pf-frame-gilded{box-shadow:0 0 0 3px #d4a017,0 0 16px rgba(212,160,23,.6)}
.pf-frame-rose{box-shadow:0 0 0 3px #a12b43,0 0 16px rgba(214,69,102,.55)}
.pf-frame-moon{box-shadow:0 0 0 3px #b9c4d6,0 0 16px rgba(185,196,214,.55)}
.pf-frame-velvet{box-shadow:0 0 0 3px #7a1030,0 0 0 5px #e8b33c,0 0 18px rgba(224,53,95,.65)}
.profile-frame-frame-velvet{box-shadow:0 0 0 3px #7a1030,0 0 0 5px #e8b33c,0 0 18px rgba(224,53,95,.65)}
.vanity-shelf{margin-top:14px}
.vanity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:8px}
.vanity-item{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.02)}
.vanity-item p{margin:6px 0 8px;font-size:.86rem}
.vanity-name{font-weight:600}
.listen-next{margin:0 0 16px}

/* ---------- THE COURTS (2026-10-28) ---------- */
.courts-purse{font-weight:700;color:var(--candle-hi,#e8b44b)}
.photo-gone{display:flex;align-items:center;justify-content:center;min-height:120px;padding:16px;text-align:center;font-style:italic;color:var(--dim);background:rgba(20,10,16,.6);border:1px dashed rgba(201,162,39,.4);border-radius:12px}
.photo-fallback-cell{width:100%;height:100%;min-height:100%;border-radius:0}
.photo-fallback-avatar{display:flex!important;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#5b2a86,#241238);color:#ffe9a8;font-family:Georgia,serif}
.dossier-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);flex-shrink:0}
.dossier-avatar-fallback{font-size:2.4rem}
.avatar-photo,.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph-initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:5rem;color:#ffe9a8;text-shadow:0 2px 18px rgba(0,0,0,.8)}
.profile-card.gilded{border:1px solid rgba(201,162,39,.85);box-shadow:0 0 0 1px rgba(201,162,39,.35),0 14px 34px rgba(0,0,0,.55),0 0 26px rgba(201,162,39,.22)}
.velvet-seal{color:#e8b44b;font-size:.72rem;letter-spacing:.08em;border:1px solid rgba(201,162,39,.6);border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.courts-booth .fn-path{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.fn-candle{opacity:.45;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:.82rem}
.fn-candle.lit{opacity:1;border-color:rgba(201,162,39,.7);color:var(--candle-hi,#e8b44b)}
.fn-title{width:100%;font-weight:700}
.fn-hint,.fn-done{font-size:.82rem;color:var(--dim)}
.tonight-chapter,.seance-box,.lottery-box{border:1px solid rgba(201,162,39,.35);border-radius:12px;padding:12px 14px;margin:10px 0;background:rgba(24,12,20,.5)}
.tc-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--candle-hi,#e8b44b);margin-bottom:6px}
.tc-title{font-family:var(--serif);font-size:1.15rem;margin-bottom:8px}
.tc-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.courts-spend{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.courts-listen-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.ballot-opt{display:block;margin:4px 0;font-size:.92rem}
.lounge-post{border-top:1px solid var(--line);padding:8px 0}
.lounge-post p{margin:4px 0}
.letter-box{border:1px solid rgba(201,162,39,.35);border-radius:12px;padding:12px 14px;margin:10px 0;background:rgba(24,12,20,.5)}

/* ---------- ADMIN LEVELS + GRANT PANEL (2026-10-28) ---------- */
.grant-layout{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:16px;align-items:start}
@media(max-width:900px){.grant-layout{grid-template-columns:1fr}}
.grant-search-card{position:sticky;top:12px}
@media(max-width:900px){.grant-search-card{position:static}}
.grant-result{display:flex;width:100%;gap:12px;align-items:center;text-align:left;margin:0 0 10px;padding:11px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);color:inherit;cursor:pointer}
.grant-result:hover,.grant-result.selected{border-color:rgba(201,162,39,.75);background:rgba(201,162,39,.07)}
.grant-avatar{width:76px;height:76px;border-radius:50%;object-fit:cover;border:2px solid rgba(201,162,39,.65);flex-shrink:0}
.grant-avatar.small{width:48px;height:48px}
.grant-avatar-fallback{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#5b2a86,#241238);color:#ffe9a8;font-family:Georgia,serif;font-size:1.7rem}
.grant-avatar-fallback.small{font-size:1.15rem}
.grant-result-main{display:flex;flex:1;flex-direction:column;min-width:0}
.grant-result-main span,.grant-result-side span{color:var(--dim);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grant-result-side{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.grant-power-note{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding-top:13px;color:var(--dim);font-size:.84rem;line-height:1.45}
.grant-member-head{display:flex;gap:16px;align-items:center}
.grant-member-title{flex:1;min-width:0}
.grant-member-title h2{margin:0 0 4px}
.grant-pills{margin-top:9px}
.grant-standing{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-top:16px;padding:13px 15px;border:1px solid rgba(201,162,39,.4);border-radius:12px;background:rgba(201,162,39,.06)}
.grant-standing span{color:var(--dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.grant-level-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px;padding:13px 15px;border:1px dashed rgba(201,162,39,.45);border-radius:12px}
.grant-level-box h3{margin:0}
.grant-level-box .sub{margin:3px 0 0}
.grant-history{display:flex;flex-direction:column}
.grant-history-row{display:flex;gap:12px;align-items:center;padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}
.grant-history-row:first-child{border-top:0}
.grant-days{min-width:58px;color:#ffe9a8;font-weight:800}
.grant-history-main{display:flex;flex:1;flex-direction:column;min-width:0}
.grant-history-main span,.grant-by{color:var(--dim);font-size:.78rem}
.grant-history-main em{color:var(--muted);font-size:.83rem}
.grant-presets{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.grant-review{border:1px solid rgba(201,162,39,.45);background:rgba(201,162,39,.07);border-radius:12px;padding:13px 15px;line-height:1.55;margin:12px 0}
button:disabled{opacity:.45;cursor:not-allowed}

/* ---- in-page confirm (Sanctum actions, replaces native confirm()) ---- */
.confirm-veil {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(10, 6, 4, .72);
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.confirm-card {
  max-width: 420px; width: 100%;
  padding: 22px 22px 18px;
  text-align: center;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .55);
}
.confirm-msg { font-size: 1.02rem; line-height: 1.5; margin: 0 0 18px; }
.confirm-actions { display: flex; gap: 10px; justify-content: center; }

/* ---- THE OPENED SEAL, DRESSED (build 2026.11.02.8) ----
   The Keeper's chamber as a real menu: film cards with posters
   and honest-word chips, dossiers that open inside their card,
   a screening room at the top, the ledger kept as a guestbook.
   Mobile-first; one thumb, half-awake, 2 a.m. */
.seal-screen{margin:16px 0 6px}
.seal-screen-frame{position:relative;aspect-ratio:16/9;background:#000;border:1px solid var(--line-gold);border-radius:14px;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.seal-video{width:100%;height:100%;display:block;background:#000;object-fit:contain;border:0}
.seal-fs{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-gold);background:rgba(7,4,9,.72);color:var(--candle);font-size:1.05rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3}
.seal-fs:hover{border-color:var(--gold);color:#ffe9b0}
.seal-screen-cap{margin:9px 2px 0;color:var(--muted);font-size:.88rem;line-height:1.5}
.seal-screen-cap strong{color:var(--txt)}
.seal-filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 14px}
.seal-filter{min-height:44px;padding:9px 15px;border-radius:999px;border:1px solid var(--line);background:rgba(0,0,0,.3);color:var(--muted);font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;cursor:pointer}
.seal-filter .n{color:var(--dim);font-weight:500;margin-left:2px}
.seal-filter.on{border-color:var(--gold);color:#ffe9b0;background:rgba(201,162,39,.1)}
.seal-cards{display:flex;flex-direction:column;gap:12px}
.seal-film{background:rgba(0,0,0,.3);border:1px solid var(--line);border-radius:14px;padding:14px}
.seal-film-top{display:flex;gap:13px;align-items:flex-start}
.seal-poster{position:relative;width:76px;height:76px;flex:0 0 76px;border-radius:10px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#2a1030,#0e0716 75%);border:1px solid var(--line-gold)}
.seal-poster-init{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Cinzel Decorative',serif;font-weight:700;font-size:1.25rem;color:var(--candle);letter-spacing:1px}
.seal-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.seal-film-head{flex:1;min-width:0}
.seal-film-title{font-weight:600;font-size:1.02rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seal-film-by{color:var(--muted);font-size:.84rem;margin-top:2px}
.seal-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.seal-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.seal-chip-live{border-color:rgba(201,162,39,.65);color:#ffe9b0;background:rgba(201,162,39,.1)}
.seal-chip-price{color:var(--candle)}
.seal-chip-ward{border-color:rgba(160,90,200,.5);color:#d9b8f0}
.seal-chip-down{border-color:rgba(229,56,59,.45);color:#ff9a9a}
.seal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.seal-act{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.seal-dossier{margin-top:13px;border-top:1px solid var(--line);padding-top:11px}
.seal-row{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:1px solid rgba(163,22,33,.14);font-size:.9rem}
.seal-row .k{color:var(--dim);flex:0 0 auto}
.seal-row .val{text-align:right;color:var(--txt)}
.seal-purge{margin-top:12px;border:1px solid rgba(229,56,59,.55);border-radius:12px;padding:14px;background:rgba(229,56,59,.06)}
.seal-book{display:flex;flex-direction:column}
.seal-book-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid rgba(163,22,33,.16);font-size:.9rem}
.seal-book-row:last-child{border-bottom:none}
.seal-book-when{color:var(--dim);white-space:nowrap;font-size:.8rem;padding-top:2px}
@media(max-width:640px){
  .seal-poster{width:62px;height:62px;flex-basis:62px}
  .seal-actions .seal-act{flex:1 1 40%}
  .seal-row{flex-direction:column;gap:1px}
  .seal-row .val{text-align:left}
  .seal-book-row{flex-direction:column;gap:1px}
}

/* BUILD .25 — THE IN-DEPTH PORTRAIT: the profile's facts gathered
   into named sections, in the page's own dress. */
.portrait-presence{margin:8px 0 2px}
.portrait-sec{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.portrait-sec h3{font-family:'Cormorant Garamond',serif;font-size:1.18rem;margin:0 0 8px;color:var(--candle)}
.portrait-sec .sub{margin:4px 0}
