:root{--bg:oklch(97% .012 75);--surface:oklch(99% .006 75);--surface-2:oklch(94% .014 70);--surface-3:oklch(91% .018 65);--ink:oklch(20% .012 50);--ink-2:oklch(40% .01 50);--ink-3:oklch(55% .008 50);--ink-4:oklch(72% .008 60);--line:oklch(88% .01 60);--line-soft:oklch(93% .01 60);--dominicana:oklch(65% .13 75);--dominicana-soft:oklch(93% .05 75);--dominicana-tint:oklch(97% .02 75);--moderna:oklch(58% .13 38);--moderna-soft:oklch(93% .04 38);--moderna-tint:oklch(97% .018 38);--sensual:oklch(48% .11 248);--sensual-soft:oklch(93% .03 248);--sensual-tint:oklch(97% .012 248);--influence:oklch(52% .12 330);--influence-soft:oklch(93% .04 330);--influence-tint:oklch(97% .015 330);--universal:oklch(50% .012 60);--universal-soft:oklch(92% .01 60);--universal-tint:oklch(97% .006 60);--hi:oklch(82% .16 90);--hi-2:oklch(72% .18 80);--hi-soft:oklch(95% .08 90);--serif:"Instrument Serif", "Times New Roman", serif;--sans:"Geist", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--radius:10px;--radius-l:16px;--radius-s:6px;--t-fast:.12s cubic-bezier(.2,.7,.3,1);--t-med:.22s cubic-bezier(.2,.7,.3,1)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.45;overflow-x:hidden}.display{font-family:var(--serif);letter-spacing:-.01em;font-weight:400;line-height:.98}.display-it{font-family:var(--serif);letter-spacing:-.01em;font-style:italic;font-weight:400;line-height:1}.label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:11px}.meta{font-family:var(--mono);color:var(--ink-3);font-size:11px}.num{font-family:var(--serif);font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-2{background:var(--surface-2);border-radius:var(--radius)}button{font:inherit;cursor:pointer}.btn{border-radius:var(--radius-s);border:1px solid var(--ink);background:var(--ink);color:var(--surface);transition:background var(--t-fast), transform var(--t-fast), opacity var(--t-fast);align-items:center;gap:8px;padding:9px 14px;font-weight:500;display:inline-flex}.btn:hover{background:oklch(30% .012 50)}.btn:active{transform:translateY(1px)}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover{background:var(--surface-2)}.btn.soft{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.btn.soft:hover{background:var(--surface-3)}.btn.hi{background:var(--hi);border-color:var(--hi-2);color:var(--ink)}.btn.hi:hover{background:var(--hi-2)}.btn.icon{padding:8px}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;display:inline-flex}.chip.dominicana{background:var(--dominicana-tint);border-color:var(--dominicana-soft);color:var(--dominicana)}.chip.moderna{background:var(--moderna-tint);border-color:var(--moderna-soft);color:var(--moderna)}.chip.sensual{background:var(--sensual-tint);border-color:var(--sensual-soft);color:var(--sensual)}.chip.influence{background:var(--influence-tint);border-color:var(--influence-soft);color:var(--influence)}.chip.universal{background:var(--universal-tint);border-color:var(--universal-soft);color:var(--universal)}.chip.hi{background:var(--hi-soft);border-color:var(--hi);color:oklch(40% .1 70)}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot.dominicana{background:var(--dominicana)}.dot.moderna{background:var(--moderna)}.dot.sensual{background:var(--sensual)}.dot.influence{background:var(--influence)}.dot.universal{background:var(--universal)}.app{width:100%;min-height:100dvh;min-height:var(--app-h,100dvh);grid-template-rows:auto 1fr;grid-template-columns:1fr;display:grid}.topbar{height:calc(64px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-right:max(32px, env(safe-area-inset-right,0px));padding-bottom:0;padding-left:max(32px, env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);background:var(--bg);z-index:50;align-items:center;gap:24px;display:flex;position:sticky;top:0}.topbar .brand{flex-direction:column;line-height:1;display:flex}.topbar .brand__main{font-family:var(--serif);letter-spacing:-.01em;font-size:24px;line-height:1}.topbar .brand__main i{color:var(--moderna);font-style:italic}.topbar .brand__sub{font-family:var(--serif);color:var(--ink-3);letter-spacing:.01em;margin-top:3px;font-size:13px;font-style:italic;line-height:1}.topbar .nav{gap:4px;margin-left:24px;display:flex}.topbar .nav button{border-radius:var(--radius-s);font:inherit;color:var(--ink-2);transition:all var(--t-fast);background:0 0;border:0;padding:8px 14px}.topbar .nav button:hover{background:var(--surface-2);color:var(--ink)}.topbar .nav button.active{background:var(--ink);color:var(--surface)}.tab-content{width:100%;max-width:1340px;margin:0 auto;padding:28px 32px}.clickable{cursor:pointer;transition:all var(--t-fast)}.clickable:hover{background:var(--surface-2)}svg.graph{display:block}svg.graph .node-circle{transition:r var(--t-fast), stroke-width var(--t-fast)}svg.graph .node:hover .node-circle{stroke-width:3px}svg.graph .edge{transition:opacity var(--t-fast), stroke-width var(--t-fast)}.map-tab-shell{width:100%;height:calc(100vh - 64px);height:calc(100svh - 64px - env(safe-area-inset-top,0px));height:calc(100dvh - 64px - env(safe-area-inset-top,0px));height:calc(var(--app-h,100dvh) - 64px - env(safe-area-inset-top,0px));background:var(--bg);flex-direction:column;display:flex;position:relative;overflow:hidden}.map-band{padding-top:8px;padding-bottom:8px;padding-left:max(18px, env(safe-area-inset-left,0px));padding-right:max(18px, env(safe-area-inset-right,0px));border-bottom:1px solid var(--line);background:var(--bg);scrollbar-width:thin;flex-shrink:0;align-items:center;gap:16px;display:flex;overflow:auto hidden}.map-band>div:first-child{flex-shrink:0;flex-wrap:nowrap!important}.map-band__stats{flex-shrink:0;gap:22px;margin-left:auto;padding-right:4px;display:flex}.map-band__stat{flex-direction:column;align-items:flex-end;line-height:1.1;display:flex}.map-stage{background:var(--surface);flex:1;min-height:0;position:relative;overflow:hidden}.map-stage>svg.graph{touch-action:none;width:100%;height:100%;display:block}.map-zoom-controls{top:max(14px, env(safe-area-inset-top,0px) + 14px);right:max(14px, env(safe-area-inset-right,0px) + 14px);background:var(--surface);border:1px solid var(--line);z-index:5;border-radius:8px;flex-direction:column;gap:4px;padding:4px;display:flex;position:absolute;box-shadow:0 1px 3px #0000000f}.map-zoom-controls button{width:34px;height:34px;color:var(--ink);cursor:pointer;transition:background var(--t-fast);background:0 0;border:0;border-radius:6px;font-size:18px;line-height:1}.map-zoom-controls button:hover{background:var(--surface-2)}.map-zoom-controls button:active{background:var(--line-soft)}.map-legend{left:max(14px, env(safe-area-inset-left,0px) + 14px);bottom:calc(70px + env(safe-area-inset-bottom,0px));background:var(--surface);border:1px solid var(--line);z-index:4;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;max-width:calc(100% - 28px);padding:6px 12px;font-size:11px;display:flex;position:absolute}.map-hint{left:max(14px, env(safe-area-inset-left,0px) + 14px);top:max(14px, env(safe-area-inset-top,0px) + 14px);background:var(--surface);border:1px solid var(--line);color:var(--ink-3);z-index:4;border-radius:8px;max-width:calc(100% - 80px);padding:6px 10px;font-size:11px;position:absolute}.map-sheet{background:var(--surface);border-top:1px solid var(--line);transform:translateY(calc(100% - 56px - env(safe-area-inset-bottom,0px)));max-height:60dvh;max-height:calc(var(--app-h,100dvh) * .6);z-index:6;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;transition:transform .24s cubic-bezier(.2,.7,.3,1);display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 14px #0000000d}.map-sheet.expanded{transform:translateY(0)}.map-sheet__handle{cursor:pointer;border-bottom:1px solid var(--line-soft);height:56px;font:inherit;color:var(--ink);text-align:left;background:0 0;border-top:0;border-left:0;border-right:0;flex-shrink:0;align-items:center;gap:12px;width:100%;min-width:0;padding:0 18px;display:flex}.map-sheet__handle:hover{background:var(--surface-2)}.map-sheet__title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.map-sheet__chevron{color:var(--ink-3);flex-shrink:0;margin-left:auto;font-size:14px}.map-sheet__body{min-width:0;padding:18px;overflow:hidden auto}.map-sheet__body>*{min-width:0;max-width:100%}.icon-close{width:32px;height:32px;color:var(--ink-3);cursor:pointer;z-index:2;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;display:inline-flex;position:absolute;top:8px;right:8px}.icon-close:hover{background:var(--surface-2);color:var(--ink)}@media (width<=720px){.map-band{padding-top:6px;padding-bottom:6px;padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px));gap:10px}.map-band__stats>:not(:first-child){display:none}.map-zoom-controls{top:auto;bottom:calc(70px + env(safe-area-inset-bottom,0px));right:max(14px, env(safe-area-inset-right,0px) + 14px)}.map-legend,.map-hint{display:none}.map-sheet{max-height:70dvh;max-height:calc(var(--app-h,100dvh) * .7)}}@media (width<=600px){.map-sheet__body{padding:12px}.map-sheet__handle{gap:8px;padding:0 14px}}@media (width<=380px){.map-band{gap:8px;padding:6px 10px}.map-band__stats{display:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:5px}::-webkit-scrollbar-track{background:0 0}@keyframes lift{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lift{animation:.28s cubic-bezier(.2,.7,.3,1) both lift}
