/* Long enumerations and mind maps.  Classes are deliberately lm-* to avoid
   competing with the older .sem-item rules in semantic.css. */
#stage#stage#stage #content .semantic.lm-long{--lm-ink:var(--ink,#fff);--lm-hl:var(--hl,#ffc93c);--lm-card:var(--card,rgba(17,22,36,.76));--lm-cardink:var(--cardink,var(--ink,#fff));width:min(1750px,100%);min-height:450px;max-height:none;color:var(--lm-ink);font-weight:750;letter-spacing:-.02em;line-height:1.08;position:relative}
#stage#stage#stage #content .semantic.lm-long *{box-sizing:border-box}
#stage#stage#stage #content .semantic.lm-long.lm-still,#stage#stage#stage #content .semantic.lm-long.lm-still *{transition:none!important;animation:none!important}
#stage#stage#stage #content .semantic.lm-long .lm-entering{transition:none!important}
#stage#stage#stage #content .lm-long .lm-item{position:relative;display:flex;align-items:center;gap:17px;min-width:0;padding:20px 22px;border:2px solid color-mix(in srgb,var(--lm-ink) 19%,transparent);border-radius:23px;background:var(--lm-card);color:var(--lm-cardink);box-shadow:0 16px 40px rgba(0,0,0,.16);transition:opacity .22s,visibility .22s,filter .22s,border-color .22s,box-shadow .22s}
#stage#stage#stage #content .lm-long .lm-item:not(.lm-revealed){opacity:0;visibility:hidden;pointer-events:none}
#stage#stage#stage #content .lm-long .lm-item.lm-prior{opacity:.78;filter:saturate(.76)}
#stage#stage#stage #content .lm-long .lm-item.lm-active{opacity:1;filter:none;border-color:var(--lm-hl);box-shadow:0 0 0 4px color-mix(in srgb,var(--lm-hl) 31%,transparent),0 20px 48px rgba(0,0,0,.23)}
#stage#stage#stage #content .lm-long .lm-n{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border:2px solid currentColor;border-radius:50%;font-size:23px;font-weight:900;opacity:.74}
#stage#stage#stage #content .lm-long .lm-icon{display:grid;place-items:center;flex:0 0 auto;width:57px;height:57px;border-radius:17px;color:var(--lm-hl);background:color-mix(in srgb,var(--lm-hl) 23%,transparent);font-size:31px;line-height:1}
#stage#stage#stage #content .lm-long .lm-copy{min-width:0}
#stage#stage#stage #content .lm-long .lm-t{font-size:35px;font-weight:900;line-height:1.02}
#stage#stage#stage #content .lm-long .lm-s{margin-top:8px;font-size:25px;font-weight:650;line-height:1.15;opacity:.79}

/* Two columns: the DOM already receives the first half top-to-bottom. */
#stage#stage#stage #content .lm-cols-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
#stage#stage#stage #content .lm-cols-grid .lm-col{display:flex;flex-direction:column;gap:15px;min-width:0}
#stage#stage#stage #content .lm-cols-grid .lm-col-item{min-height:104px}

/* Paged list: all panels are layered rather than removed from the DOM. */
#stage#stage#stage #content .lm-pages-deck{position:relative;height:550px;overflow:hidden}
#stage#stage#stage #content .lm-page{position:absolute;inset:0;display:flex;flex-direction:column;gap:16px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s,visibility .22s}
#stage#stage#stage #content .lm-page.lm-page-current{opacity:1;visibility:visible;pointer-events:auto}
#stage#stage#stage #content .semantic.lm-long .lm-page .lm-item.lm-page-item{min-height:81px;padding:14px 20px}
#stage#stage#stage #content .semantic.lm-long .lm-page .lm-item.lm-page-item .lm-t{font-size:33px}
#stage#stage#stage #content .semantic.lm-long .lm-page .lm-item.lm-page-item .lm-s{font-size:23px;margin-top:5px}
#stage#stage#stage #content .semantic.lm-long .lm-page .lm-item.lm-page-item .lm-icon{width:48px;height:48px;border-radius:14px;font-size:26px}
#stage#stage#stage #content .semantic.lm-long .lm-page .lm-item.lm-page-item .lm-n{width:36px;height:36px;font-size:20px}
#stage#stage#stage #content .lm-page-indicator{position:absolute;right:0;bottom:-4px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--lm-card) 75%,transparent);font-size:21px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.02em}

/* Moving focus: exact 3×150px window, stack only moves via y transform. */
#stage#stage#stage #content .lm-focus-context{height:48px;display:flex;align-items:center;justify-content:flex-end;font-size:25px;font-weight:900;font-variant-numeric:tabular-nums;opacity:.76}
#stage#stage#stage #content .lm-focus-viewport{height:450px;overflow:hidden;position:relative;mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 90%,transparent 100%)}
#stage#stage#stage #content .lm-focus-stack{position:absolute;left:0;right:0;top:0;will-change:transform}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row{position:absolute;left:0;right:0;top:calc(var(--lm-row) * 150px);height:150px;padding:21px 28px;transition:opacity .2s,visibility .2s,filter .2s,border-color .2s,box-shadow .2s}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row .lm-t{font-size:35px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row .lm-s{font-size:22px;margin-top:7px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row .lm-copy{transition:opacity .16s,visibility .16s}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row:not(.lm-revealed){opacity:.25;visibility:visible;background:color-mix(in srgb,var(--lm-card) 28%,transparent);border-color:transparent;box-shadow:none}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row:not(.lm-revealed) .lm-copy{opacity:0;visibility:hidden}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row.lm-active{padding:23px 30px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row.lm-active .lm-t{font-size:40px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-focus-row.lm-active .lm-s{font-size:22px}

/* Radial map.  SVG is underneath, hub is above spokes, and node positions never drift. */
#stage#stage#stage #content .lm-map{height:580px;position:relative;isolation:isolate}
#stage#stage#stage #content .lm-map-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:1;pointer-events:none}
#stage#stage#stage #content .lm-spoke{fill:none;stroke:var(--lm-hl);stroke-width:3.5;stroke-linecap:round;opacity:0;visibility:hidden}
#stage#stage#stage #content .lm-spoke.lm-revealed{opacity:.48;visibility:visible}
#stage#stage#stage #content .lm-spoke.lm-active{opacity:.92;stroke-width:5}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node{position:absolute;z-index:2;margin-left:calc(var(--lm-node-w) / -2);margin-top:calc(var(--lm-node-h) / -2);width:var(--lm-node-w);height:var(--lm-node-h);justify-content:center;text-align:center;padding:12px 14px;gap:8px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node.lm-prior{opacity:.9;filter:saturate(.9)}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-copy{min-width:0;max-width:100%}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-t{font-size:var(--lm-node-font);line-height:1.03;overflow-wrap:anywhere}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-t .fx-w,#stage#stage#stage #content .lm-map-hub .fx-w,#stage#stage#stage #content .lm-map-summary .fx-w{white-space:normal!important}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-s{position:absolute;opacity:0;visibility:hidden;pointer-events:none}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-icon{position:absolute;right:7px;bottom:7px;width:25px;height:25px;min-width:25px;border-radius:9px;font-size:15px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node .lm-n{position:absolute;top:-13px;left:-13px;width:31px;height:31px;border:0;background:var(--lm-hl);color:#191919;font-size:17px;opacity:1;box-shadow:0 5px 14px rgba(0,0,0,.2)}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node.lm-map-pill{border-radius:999px}
#stage#stage#stage #content .semantic.lm-long .lm-item.lm-map-node.lm-map-rect{border-radius:12px}
#stage#stage#stage #content .lm-map-hub{position:absolute;z-index:3;translate:-50% -50%;display:grid;place-items:center;width:var(--lm-hub-w);height:var(--lm-hub-h);padding:19px 24px;border-radius:50%;background:var(--lm-hl);color:#161616;text-align:center;font:900 36px/1 var(--tfont,var(--font));letter-spacing:-.04em;box-shadow:0 17px 42px rgba(0,0,0,.28)}
#stage#stage#stage #content .lm-map-context{position:relative;z-index:4;width:min(810px,78%);min-height:60px;margin:8px auto 0;padding:13px 22px;border-left:5px solid var(--lm-hl);border-radius:10px;background:color-mix(in srgb,var(--lm-card) 76%,transparent);text-align:center}
#stage#stage#stage #content .lm-map-summary{position:absolute;inset:13px 22px;opacity:0;visibility:hidden;pointer-events:none;font-size:24px;line-height:1.12;font-weight:700;transition:opacity .18s,visibility .18s}
#stage#stage#stage #content .lm-map-summary.lm-revealed{opacity:1;visibility:visible;pointer-events:auto}
#stage#stage#stage #content .lm-map-summary-n{margin-right:10px;color:var(--lm-hl);font-weight:900}
#stage#stage#stage #content .lm-map-summary-s{opacity:.88}

/* Dense maps stay readable; the stage's fit pass handles the rare long title. */
#stage#stage#stage #content .lm-mindmap:has(.lm-map-node:nth-of-type(9)) .lm-map-hub{font-size:31px}
