:root{--yellow: #fed104;--paper: #fffdf7;--ink: #111;--muted: #4b4943;--border: #11111129;--regime: #e5e5e5}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--yellow);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{color:inherit}.appShell{background:var(--yellow);grid-template-columns:260px minmax(0,1fr) 300px;gap:12px;height:100vh;padding:12px;transition:grid-template-columns .22s;display:grid;overflow:hidden}.appShell.introCollapsed{grid-template-columns:0 minmax(0,1fr) 300px}.introPanel,.map,.detailPanel{border:1px solid var(--border);background:#fff;border-radius:14px}.introPanel{background:var(--yellow);flex-direction:column;justify-content:space-between;gap:24px;min-width:0;min-height:0;padding:22px 20px;transition:opacity .18s,transform .22s,padding .22s,border-width .22s;display:flex;position:relative;overflow:auto}.introCollapsed .introPanel{opacity:0;pointer-events:none;border-width:0;padding-left:0;padding-right:0;transform:translate(-18px)}.introOpen{z-index:120;background:var(--yellow);cursor:pointer;border:1px solid #0003;border-radius:0 12px 12px 0;width:32px;height:48px;font-size:16px;font-weight:950;position:fixed;top:50%;left:10px;transform:translateY(-50%);box-shadow:0 8px 20px #0000001f}.kicker{text-transform:uppercase;letter-spacing:.1em;margin:0 0 18px;font-size:11px;font-weight:950}.introPanel h1{letter-spacing:-.04em;margin:0 0 24px;font-size:32px;font-weight:950;line-height:1.02}.introSection h2{letter-spacing:.03em;margin:18px 0 7px;font-size:15px;font-weight:950;line-height:1.05}.introSection p{margin:0 0 9px;font-size:13px;font-weight:600;line-height:1.45}.introLinks{gap:10px;display:grid}.introButton{color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:#111;border:2px solid #111;border-radius:999px;width:100%;padding:11px 14px;font-size:11px;font-weight:950;text-decoration:none;display:block}.introButton.secondary{color:#111;background:transparent}.map{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;min-width:0;padding:14px;position:relative;overflow:hidden}.map *{-webkit-user-select:none;user-select:none}.map.isDragging{cursor:grabbing}.mapControls{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #0000001f;border-radius:999px;gap:8px;padding:6px;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 10px 24px #0000001a}.mapControls button{color:#fff;cursor:pointer;background:#111;border:0;border-radius:999px;width:34px;min-width:34px;height:34px;font-size:15px;font-weight:950}.mapControls button:nth-child(2){text-transform:uppercase;letter-spacing:.04em;width:auto;min-width:76px;padding:0 15px;font-size:11px}.mapStage{position:absolute;inset:14px;overflow:visible}.mapCanvas{transform-origin:0 0;will-change:transform;backface-visibility:hidden;flex-direction:column;gap:12px;display:flex;position:absolute;top:0;left:0}.mapSection{border:1px solid #00000026;border-radius:16px;flex:none;width:100%;margin:0;padding:18px 22px;position:relative;overflow:hidden}.landscapeSection{background:#fff;min-height:236px}.regimeSection{background:var(--regime);min-height:670px}.nicheSection{background:#fff;min-height:330px}.sectionHeader{max-width:980px;margin:0 0 14px}.sectionHeader h2{letter-spacing:-.05em;text-transform:uppercase;margin:0 0 6px;font-size:28px;font-weight:950;line-height:.92}.sectionHeader p{max-width:900px;margin:0;font-size:11px;font-weight:650;line-height:1.32}.landscapeGrid{grid-template-columns:repeat(9,minmax(0,1fr));gap:10px;display:grid}.regimeGrid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch;gap:10px;min-height:550px;display:grid}.categoryColumn{background:#ffffff80;border:1px solid #00000029;border-radius:10px;min-width:0;padding:10px 8px}.categoryColumn h3{text-transform:uppercase;overflow-wrap:anywhere;min-height:28px;margin:0 0 7px;font-size:12px;font-weight:950;line-height:1.05}.factorList{gap:6px;display:grid}.nicheGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.node{text-align:center;cursor:pointer;overflow-wrap:anywhere;background:#fff;border:1px solid #0000002e;border-radius:8px;justify-content:center;align-items:center;width:100%;min-height:42px;padding:7px 8px;font-size:10px;font-weight:820;line-height:1.12;transition:opacity .14s,border-color .14s,box-shadow .14s,transform .14s;display:flex;box-shadow:0 4px 10px #0000000a}.node.landscape{min-height:46px}.node.regime{text-align:left;justify-content:flex-start;min-height:38px;font-size:9.4px}.node.niche{min-height:48px;font-size:9.6px}.node:hover{z-index:25;border-color:#111;transform:translateY(-1px);box-shadow:0 9px 18px #0000001a}.node.active{z-index:35;border-color:#111;font-weight:950;position:relative;box-shadow:0 12px 28px #0000002e}.node.related{z-index:28;border-color:#111;font-weight:920;position:relative}.node.dim{opacity:.14}.detailPanel{background:#fff;min-width:0;padding:22px 20px;overflow:auto}.emptyDetail,.detail,.legendPanel,.contactPanel{font-family:inherit}.emptyDetail h2,.detail h2,.contactPanel h2{letter-spacing:-.025em;margin:0 0 14px;font-size:18px;font-weight:950;line-height:1.08}.emptyDetail p,.detail p,.legendPanel p,.contactPanel p,.helpList li{font-size:13px;font-weight:600;line-height:1.48}.helpList{margin:14px 0 0;padding-left:19px}.helpList li{margin:0 0 10px}.legendPanel{border-top:1px solid #0000001f;margin-top:24px;padding-top:20px}.legendPanel h3,.detail h3,.contactPanel h3{letter-spacing:.025em;text-transform:uppercase;margin:19px 0 7px;font-size:14px;font-weight:950;line-height:1.12}.detail .eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 8px;font-size:10px;font-weight:950}.chips{flex-wrap:wrap;gap:7px;margin:12px 0 20px;display:flex}.chips span{background:var(--yellow);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:850;line-height:1.1}.detail ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.detail li{background:#fff;border:1px solid #0000001f;border-radius:10px;padding:11px}.detail li strong{margin-bottom:5px;font-size:12px;line-height:1.25;display:block}.detail li span{color:#4d4a43;font-size:12px;line-height:1.4;display:block}.panelBack{cursor:pointer;background:transparent;border:0;margin:0 0 16px;padding:0;font-size:12px;font-weight:850}.contactDetails a{color:#111;text-underline-offset:3px;text-decoration-thickness:1px}.loadError{min-height:100vh;background:var(--yellow);padding:40px;font-family:inherit}.loadError h1{margin-top:0}@media(min-width:1500px){.appShell{grid-template-columns:280px minmax(0,1fr) 320px}.appShell.introCollapsed{grid-template-columns:0 minmax(0,1fr) 320px}}@media(max-width:1100px){.appShell,.appShell.introCollapsed{grid-template-rows:auto minmax(720px,80vh) auto;grid-template-columns:1fr;height:auto;min-height:100vh;overflow:auto}.introPanel,.introCollapsed .introPanel{opacity:1;pointer-events:auto;border-width:1px;padding:22px 20px;transform:none}.introOpen{display:none}.map{min-height:720px}.detailPanel{min-height:320px}}@media(max-width:760px){.appShell{gap:0;padding:0}.introPanel,.map,.detailPanel{border-radius:0}.introPanel h1{font-size:29px}.map{min-height:680px;padding:10px}.mapStage{inset:10px}}.edges{pointer-events:none;z-index:60;position:absolute;inset:0;overflow:visible}.edge{stroke:#111;stroke-width:2.2;stroke-linecap:round;opacity:.58;vector-effect:non-scaling-stroke}.node{position:relative;z-index:70}.node.active,.node.related{z-index:80}.sectionHeader,.categoryColumn h3{position:relative;z-index:75}
