/* Cork. Light, professional, Origami-like: serif display, quiet sans, black buttons, one warm accent (cork). */
:root{
  --bg:#FAFAF8; --paper:#FFFFFF; --ink:#0B0B0C; --ink-2:#3F3F46; --dim:#71717A; --dimmer:#A1A1AA;
  --line:#E7E5E4; --line-soft:#F1EFEC; --grid:rgba(24,24,27,.045);
  --cork:#C07A3A; --cork-deep:#8F5222; --cork-soft:#F3E2CF; --cork-tint:#FBF4EC;
  --stuck:#C2410C; --moving:#18181B; --done:#A8A29E; --ok:#15803D; --ok-soft:#DCFCE7;
  --display:'Frank Ruhl Libre',Georgia,'Times New Roman',serif;
  --sans:'Inter',ui-sans-serif,system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --r:10px; --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 30px rgba(24,24,27,.07);
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.01em;margin:0;text-wrap:balance}
p{margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:8px;border:1px solid transparent;background:var(--ink);color:#fff;font-weight:500;font-size:14.5px;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,transform .05s}
.btn:hover{background:#27272A}.btn:active{transform:translateY(1px)}
.btn.ghost{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.btn.ghost:hover{background:#F4F4F5}
.btn.lg{height:48px;padding:0 22px;font-size:16px}
.btn.cork{background:var(--cork);}.btn.cork:hover{background:var(--cork-deep)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.logo{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-size:24px;font-weight:500;text-decoration:none;letter-spacing:-.01em}
.logo svg{width:22px;height:22px}
.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:12px;color:var(--ink-2);white-space:nowrap}
.chip .d{width:6px;height:6px;border-radius:50%;background:var(--ok)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}
.card.best{border-color:var(--cork-soft);box-shadow:inset 3px 0 0 var(--cork)}
.card p{font-size:13.5px;color:var(--ink-2)}
.k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}

/* ---------- map ---------- */
svg.map{display:block;width:100%;height:auto;overflow:visible}
svg.map .q{stroke:none}
svg.map .q-team{fill:#F6F1EA}svg.map .q-product{fill:#F2F3F6}svg.map .q-market{fill:#F1F5F1}svg.map .q-capital{fill:#F7F2F2}
svg.map .ring{fill:none;stroke:#D6D3D1;stroke-width:1}
svg.map .ring-do{stroke:var(--cork);stroke-opacity:.55;stroke-width:1.2}
svg.map .axis{stroke:#D6D3D1;stroke-dasharray:2 4}
svg.map .core{fill:var(--paper);stroke:var(--ink);stroke-width:1.2}
svg.map .core-t{font:600 12px var(--sans);fill:var(--ink)}
svg.map .ring-t{font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase;fill:var(--dim)}
svg.map .zone-t{font:500 20px var(--display);fill:var(--ink)}
svg.map .zone-s{font:10.5px var(--mono);letter-spacing:.05em;text-transform:uppercase;fill:var(--dim)}
svg.map .node{cursor:pointer;outline:none}
svg.map .node .dot{fill:var(--paper);stroke:var(--moving);stroke-width:1.6;transition:r .15s}
svg.map .node.st-stuck .dot{fill:var(--stuck);stroke:var(--stuck)}
svg.map .node.st-done .dot{fill:var(--done);stroke:var(--done)}
svg.map .node.st-done .lbl{fill:var(--dimmer);text-decoration:line-through}
svg.map .node .lbl{font:500 11.5px var(--sans);fill:var(--ink-2);paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:3px;stroke-linejoin:round}
svg.map .node:hover .lbl,svg.map .node:focus .lbl,svg.map .node.sel .lbl{fill:var(--ink);font-weight:600}
svg.map .node.sel .dot{stroke-width:3}
svg.map .node.best .dot{stroke:var(--cork);stroke-width:2.6}
svg.map .node.best.st-stuck .dot{fill:var(--cork)}
svg.map .pulse{fill:none;stroke:var(--cork);stroke-width:1.5;opacity:.6;transform-box:fill-box;transform-origin:center;animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{transform:scale(.7);opacity:.7}100%{transform:scale(1.5);opacity:0}}
@media (prefers-reduced-motion:reduce){svg.map .pulse{animation:none}}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--dim)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:1.5px solid var(--moving);background:var(--paper)}
.legend i.stuck{background:var(--stuck);border-color:var(--stuck)}.legend i.done{background:var(--done);border-color:var(--done)}.legend i.best{border-color:var(--cork);border-width:2.5px}
