/* Lazzzy Hustler, parallel-lane card map, shared by the inline toggle (learn) and full-screen (map.html). */
.lh-mapmount { position: relative; width: 100%; height: min(78vh, 740px); border: 1px solid #1b2236; border-radius: 18px; overflow: hidden; background: radial-gradient(900px 600px at 25% 15%, #0d1426, #070912 62%); }
.lh-mapctrl { position: absolute; right: 14px; bottom: 14px; z-index: 5; display: flex; gap: 8px; }
.lh-mapbtn { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #222a40; background: rgba(13,18,32,.9); color: #dfe6f5; border-radius: 10px; font-size: 18px; cursor: pointer; font-family: inherit; }
.lh-mapbtn:hover { background: #10172a; border-color: #33405e; }
.lh-mapfull { position: absolute; left: 14px; bottom: 14px; z-index: 5; font-family: var(--display,'Archivo',sans-serif); font-weight: 800; font-size: 12px; color: #cdd5ea; background: rgba(13,18,32,.9); border: 1px solid #222a40; border-radius: 999px; padding: 8px 14px; text-decoration: none; }
.lh-mapfull:hover { background: #10172a; }
.lh-mapcount { position: absolute; left: 14px; top: 14px; z-index: 5; font-family: var(--display,'Archivo',sans-serif); font-weight: 800; font-size: 12px; color: #c7cfe4; background: rgba(13,18,32,.85); border: 1px solid #222a40; border-radius: 999px; padding: 7px 13px; }

/* the graph itself */
svg.lhmap { width: 100%; height: 100%; display: block; touch-action: none; cursor: grab; }
svg.lhmap.grabbing { cursor: grabbing; }
.lhmap-dot { fill: rgba(170, 185, 220, 0.10); }
.lhmap-band { fill: var(--c); opacity: .05; stroke: var(--c); stroke-opacity: .22; stroke-width: 1.2; }
.lhmap-spine { opacity: .85; }
.lhmap-lane { font-family: var(--display,'Archivo',sans-serif); font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: 16px; }
.lhmap-lanemeta { font-family: var(--display,'Archivo',sans-serif); font-weight: 700; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; fill: #7c86a3; }
.lhmap-edge { fill: none; stroke-width: 2; opacity: .38; stroke-linecap: round; stroke-dasharray: 1 7; }

/* card nodes */
.lhmap-node { cursor: pointer; }
.lhmap-cardg { transition: transform .16s cubic-bezier(.2,.7,.3,1); animation: lhmap-in .5s cubic-bezier(.2,.7,.3,1) both; animation-delay: calc(var(--i, 0) * 22ms); }
@keyframes lhmap-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.lhmap-node:hover .lhmap-cardg { transform: translateY(-3px); }
.lhmap-card { fill: #0e1424; stroke: #232c47; stroke-width: 1.4; transition: stroke .15s, fill .2s; filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); }
.lhmap-node:hover .lhmap-card { stroke: var(--c); }
.lhmap-chip { fill: none; stroke: var(--c); stroke-width: 2; }
.lhmap-label { font-family: var(--display,'Archivo',sans-serif); font-weight: 700; font-size: 13px; fill: #d7ddef; }
.lhmap-min { font-family: var(--display,'Archivo',sans-serif); font-weight: 700; font-size: 10.5px; fill: #67718f; }
.lhmap-num { font-family: var(--display,'Archivo',sans-serif); font-weight: 900; font-size: 12.5px; fill: var(--c); text-anchor: middle; dominant-baseline: central; }
.lhmap-check { fill: none; stroke: #fff; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
svg.lhmap.no-labels .lhmap-label, svg.lhmap.no-labels .lhmap-min { display: none; }

/* done state: the card fills with the lane color */
.lhmap-node.is-done .lhmap-card { fill: var(--c); stroke: var(--c); }
.lhmap-node.is-done .lhmap-chip { stroke: rgba(255,255,255,.75); }
.lhmap-node.is-done .lhmap-label { fill: #fff; }
.lhmap-node.is-done .lhmap-min { fill: rgba(255,255,255,.75); }

@media (prefers-reduced-motion: reduce) {
  .lhmap-cardg { animation: none; transition: none; }
}

/* tooltip (fixed, appended to body) */
.lhmap-tip { position: fixed; z-index: 60; pointer-events: none; background: #0c1120; border: 1px solid #2a3350; border-radius: 12px; padding: 9px 12px; max-width: 240px; opacity: 0; transform: translateY(4px); transition: opacity .14s, transform .14s; box-shadow: 0 18px 40px rgba(0,0,0,.5); }
.lhmap-tip.show { opacity: 1; transform: translateY(0); }
.lhmap-tip small { font-size: 11px; color: #9aa3bd; text-transform: uppercase; letter-spacing: .05em; font-family: var(--display,'Archivo',sans-serif); font-weight: 700; }
.lhmap-tip b { display: block; font-family: var(--display,'Archivo',sans-serif); font-weight: 800; font-size: 14px; color: #fff; margin: 2px 0; }
.lhmap-tip p { margin: 4px 0 0; font-size: 12px; color: #c2cadf; }
.lhmap-tip .go { color: #7aa2ff; }
