/* Taste Map: a visual taste artifact, not a score. */
.profile-view-toggle { display:flex; gap:8px; margin:0; flex-wrap:wrap; }
.profile-view-button { min-width:88px; min-height:38px; padding:7px 12px; }
.profile-view-button[aria-pressed="true"] { background:var(--navy); color:#fff; }
.profile-view-toolbar { display:flex; justify-content:flex-end; margin:4px 0 8px; }

.taste-map-section { margin-top:10px; }
.map-intro h2 { margin:0 0 8px; }
.map-intro p { margin:0; max-width:74ch; color:var(--text2,#3f4774); line-height:1.5; }
.map-key { list-style:none; display:flex; flex-wrap:wrap; gap:8px 20px; margin:14px 0 0; padding:0; color:var(--navy); font-size:12px; font-weight:600; }
.key-swatch { display:inline-block; width:24px; height:14px; margin-right:6px; vertical-align:-2px; border:2px solid var(--navy); border-radius:999px; background:#fff; }
.map-key-strong { background:linear-gradient(135deg,#ff78c8,#ffcf5a); }
.map-key-developing { background:linear-gradient(135deg,#75d9ff,#b9a4ff); border-style:dashed; }
.key-line { display:inline-block; width:28px; margin-right:6px; vertical-align:middle; border-top:4px solid var(--navy); opacity:.45; }

.taste-map {
  position:relative;
  aspect-ratio:16 / 10;
  margin:14px 0 22px;
  overflow:hidden;
  border:2px solid var(--navy);
  border-radius:26px;
  background:
    radial-gradient(circle at 15% 20%,rgb(255 120 200 / .18),transparent 29%),
    radial-gradient(circle at 84% 22%,rgb(117 217 255 / .22),transparent 32%),
    radial-gradient(circle at 72% 82%,rgb(255 207 90 / .20),transparent 30%),
    linear-gradient(135deg,#fff8fb 0%,#f4fbff 48%,#fffaf0 100%);
  box-shadow:calc(8px * var(--hard)) calc(8px * var(--hard)) 0 var(--shadow-ink,rgb(var(--ink-rgb,17 26 75) / .12));
}
.taste-map::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:radial-gradient(circle at 1px 1px,rgb(var(--ink-rgb,17 26 75) / .09) 1px,transparent 1.5px);
  background-size:24px 24px;
  mask-image:linear-gradient(to bottom,rgb(0 0 0 / .7),transparent 85%);
}
.taste-map-lines { position:absolute; inset:0; z-index:1; width:100%; height:100%; }
.map-link { stroke:var(--navy); stroke-linecap:round; opacity:.28; }
.map-link.is-weak { stroke-width:1.5; stroke-dasharray:5 7; }
.map-link.is-some { stroke-width:3; }
.map-link.is-strong { stroke-width:5; opacity:.44; }

.map-blob { position:absolute; z-index:0; border-radius:999px; filter:blur(.2px); opacity:.8; }
.map-blob-a { width:180px; height:180px; left:-45px; bottom:-50px; background:rgb(185 164 255 / .22); }
.map-blob-b { width:150px; height:150px; right:-35px; top:-35px; background:rgb(255 120 200 / .18); }
.map-spark { position:absolute; z-index:2; font-family:var(--hand); color:var(--accent-text,var(--pink)); opacity:.65; pointer-events:none; }
.map-spark-a { left:9%; top:11%; font-size:34px; transform:rotate(-14deg); }
.map-spark-b { right:8%; bottom:9%; font-size:42px; transform:rotate(9deg); color:var(--cyan); }

.taste-map-centre {
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:118px;
  height:118px;
  display:grid;
  place-content:center;
  transform:translate(-50%,-50%) rotate(-2deg);
  text-align:center;
  color:var(--muted);
  font-family:var(--hand);
  pointer-events:none;
  border:2px solid var(--navy);
  border-radius:50%;
  background:linear-gradient(145deg,#fff 5%,#fff1f8 48%,#e9fbff);
  box-shadow:5px 6px 0 rgb(var(--ink-rgb,17 26 75) / .14);
}
.taste-map-centre span { display:block; font-size:38px; line-height:.9; color:var(--navy); }
.taste-map-centre em { display:block; margin-top:6px; font-style:normal; font-size:13px; }

.taste-map-node {
  --node-accent:#b9a4ff;
  position:absolute;
  z-index:4;
  transform:translate(-50%,-50%) rotate(var(--node-tilt,0deg));
  width:min(190px,21%);
  display:grid;
  gap:4px;
  padding:13px 15px;
  border:2px solid var(--navy);
  border-radius:18px;
  background:linear-gradient(145deg,#fff 15%,color-mix(in srgb,var(--node-accent) 18%,white));
  color:var(--ink);
  text-align:left;
  font:inherit;
  cursor:default;
  box-shadow:5px 6px 0 color-mix(in srgb,var(--node-accent) 35%,rgb(var(--ink-rgb,17 26 75) / .12));
}
.taste-map-node:nth-of-type(2n) { --node-tilt:1.2deg; }
.taste-map-node:nth-of-type(3n) { --node-tilt:-1.4deg; }
.taste-map-node.is-strong { width:min(208px,23%); padding:15px 16px; }
.taste-map-node.is-emerging { border-style:dashed; }
.taste-map-node.is-conditional { border-radius:24px 12px 24px 12px; }
.taste-map-node b { position:relative; z-index:2; font-size:clamp(14px,1.5vw,18px); line-height:1.15; }
.taste-map-node.is-strong b { font-size:clamp(16px,1.7vw,20px); }
.map-node-conf { position:relative; z-index:2; color:var(--navy); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.map-node-notes { position:relative; z-index:2; color:var(--text2,#3f4774); font-size:11px; line-height:1.3; }
.map-node-orbit { position:absolute; width:28px; height:28px; right:9px; top:8px; border:7px solid color-mix(in srgb,var(--node-accent) 55%,white); border-radius:50%; opacity:.7; }
.map-domain-movies { --node-accent:#ff78c8; }
.map-domain-tv { --node-accent:#75d9ff; }
.map-domain-read { --node-accent:#ffcf5a; }
.map-domain-play { --node-accent:#76e1a2; }
.map-domain-other { --node-accent:#b9a4ff; }

.map-columns { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.map-panel {
  padding:14px 16px;
  border:1.5px solid rgb(var(--ink-rgb,17 26 75) / .18);
  border-radius:16px;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,255,255,.7));
}
.map-panel:nth-child(4n+1) { box-shadow:inset 4px 0 0 rgb(255 120 200 / .5); }
.map-panel:nth-child(4n+2) { box-shadow:inset 4px 0 0 rgb(117 217 255 / .6); }
.map-panel:nth-child(4n+3) { box-shadow:inset 4px 0 0 rgb(255 207 90 / .7); }
.map-panel:nth-child(4n+4) { box-shadow:inset 4px 0 0 rgb(118 225 162 / .65); }
.map-panel h3 { margin:0 0 8px; font-size:16px; }
.taste-map-summary .map-panel p { margin:0; color:var(--text2,#3f4774); font-size:13px; line-height:1.5; }
.map-empty { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }

@media (max-width:1100px) {
  .map-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .profile-view-toolbar { justify-content:flex-start; }
  .profile-view-button { flex:1 1 auto; }
  .taste-map { aspect-ratio:auto; display:grid; gap:10px; padding:16px; }
  .taste-map-lines,.taste-map-centre,.map-blob,.map-spark { display:none; }
  .map-key-lines { display:none; }
  .taste-map-node {
    position:relative;
    left:auto !important;
    top:auto !important;
    transform:none;
    width:auto;
  }
  .taste-map-node.is-strong { width:auto; }
  .map-columns { grid-template-columns:1fr; }
}
