.ppa-roadmap{position:fixed;inset:0;overflow:hidden;background:radial-gradient(120% 80% at 50% -10%,rgba(0,255,136,.08),transparent 60%),var(--pa-surface-deep, #0a0c0e);font-family:var(--pa-font, "Space Grotesk", monospace);color:var(--pa-text-primary, #eff4f6);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}.ppa-roadmap.is-panning{cursor:grabbing}.ppa-roadmap__viewport{position:absolute;top:0;left:0;transform-origin:0 0}.ppa-roadmap__edges{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.ppa-roadmap__edge{fill:none;stroke:var(--pa-accent-bright, #00ff88);stroke-width:1.5}.ppa-roadmap__edge--shipped{stroke-opacity:.85}.ppa-roadmap__edge--in-progress{stroke-opacity:.7;stroke-dasharray:7 5}.ppa-roadmap__edge--planned{stroke-opacity:.4;stroke-dasharray:2 6}.ppa-roadmap__edge--exploring{stroke-opacity:.22;stroke-dasharray:1 7}.ppa-roadmap__edge--trunk{stroke-opacity:.6}.ppa-roadmap__node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px;width:150px;margin-left:-75px;padding:0;background:none;border:none;color:inherit;font-family:inherit;text-align:center;cursor:pointer}.ppa-roadmap__node-dot{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:999px;background:var(--pa-surface-deep, #0a0c0e);border:1.5px solid var(--pa-accent-bright, #00ff88);color:var(--pa-accent-bright, #00ff88);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.ppa-roadmap__node-dot svg{width:24px;height:24px}.ppa-roadmap__node:hover .ppa-roadmap__node-dot,.ppa-roadmap__node:focus-visible .ppa-roadmap__node-dot{transform:scale(1.08);box-shadow:0 0 0 6px #00ff881a}.ppa-roadmap__node:focus-visible{outline:none}.ppa-roadmap__node--shipped .ppa-roadmap__node-dot{background:var(--pa-accent-bright, #00ff88);color:#04140b;box-shadow:0 0 24px #00ff8840}.ppa-roadmap__node--in-progress .ppa-roadmap__node-dot{border-style:solid;border-color:var(--pa-accent-bright, #00ff88);box-shadow:0 0 18px #00ff882e}.ppa-roadmap__node--planned .ppa-roadmap__node-dot{border-color:#00ff8880;color:#0f8c}.ppa-roadmap__node--exploring .ppa-roadmap__node-dot{border-color:#00ff8847;border-style:dashed;color:#00ff888c}.ppa-roadmap__node-label{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--pa-text-secondary, #a8b1bb)}.ppa-roadmap__node--shipped .ppa-roadmap__node-label{color:var(--pa-text-primary, #eff4f6)}.ppa-roadmap__node--exploring .ppa-roadmap__node-label{color:var(--pa-text-muted, #6a6a6a)}.ppa-roadmap__branch{position:absolute;display:flex;flex-direction:column;align-items:center;gap:10px;width:200px;margin-left:-100px;pointer-events:none}.ppa-roadmap__branch-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:999px;border:1.5px solid var(--pa-accent-bright, #00ff88);background:var(--pa-surface-base, #0f151b);color:var(--pa-accent-bright, #00ff88)}.ppa-roadmap__branch-icon svg{width:22px;height:22px}.ppa-roadmap__branch-label{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--pa-text-primary, #eff4f6)}.ppa-roadmap__root{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;width:240px;margin-left:-120px;pointer-events:none}.ppa-roadmap__root-logo{width:112px;height:112px;border-radius:26px}.ppa-roadmap__root-title{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pa-text-primary, #eff4f6)}.ppa-roadmap__popup-layer{position:fixed;inset:0;z-index:50;background:transparent}.ppa-roadmap__popup{position:fixed;width:min(360px,calc(100vw - 32px));padding:26px 28px 24px;background:#fff;color:#0a0c0e;border-radius:16px;box-shadow:0 24px 70px #0000008c;cursor:default}.ppa-roadmap__popup-status{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5b6470}.ppa-roadmap__popup-status:before{content:"";width:9px;height:9px;border-radius:999px;background:#14c46a}.ppa-roadmap__popup-status[data-status=in-progress]:before{background:#14c46a;box-shadow:0 0 0 2px #14c46a4d;opacity:.85}.ppa-roadmap__popup-status[data-status=planned]:before{background:#9aa3ad}.ppa-roadmap__popup-status[data-status=exploring]:before{background:transparent;border:1.5px dashed #9aa3ad}.ppa-roadmap__popup-title{margin:0 0 10px;font-size:22px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ppa-roadmap__popup-blurb{margin:0;font-size:15.5px;line-height:1.5;color:#2a2f36}.ppa-roadmap__popup-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.ppa-roadmap__popup-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;letter-spacing:.02em;text-decoration:none;color:#0a7d44}.ppa-roadmap__popup-link:hover{text-decoration:underline}.ppa-roadmap__popup-close{position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:#0a0c0e0f;border:none;border-radius:999px;color:#4a525c;cursor:pointer}.ppa-roadmap__popup-close:hover{background:#0a0c0e1f}.ppa-roadmap__hud{position:fixed;left:24px;bottom:24px;z-index:40;display:flex;flex-direction:column;gap:12px;align-items:stretch;touch-action:manipulation;pointer-events:auto}.ppa-roadmap__legend{padding:20px 26px 22px;background:#0c1013b8;border:1px solid var(--pa-accent-border-soft, rgba(0, 255, 136, .28));border-radius:18px;backdrop-filter:blur(8px)}.ppa-roadmap__legend-title{margin:0 0 16px;font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pa-accent-bright, #00ff88)}.ppa-roadmap__legend-row{display:flex;align-items:center;gap:13px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--pa-text-secondary, #a8b1bb)}.ppa-roadmap__legend-row+.ppa-roadmap__legend-row{margin-top:13px}.ppa-roadmap__legend-swatch{width:20px;height:20px;border-radius:999px;flex-shrink:0;box-sizing:border-box}.ppa-roadmap__legend-swatch--shipped{background:var(--pa-accent-bright, #00ff88);box-shadow:0 0 10px #0f86}.ppa-roadmap__legend-swatch--in-progress{background:transparent;border:2px solid var(--pa-accent-bright, #00ff88)}.ppa-roadmap__legend-swatch--planned{background:transparent;border:2px solid rgba(0,255,136,.5)}.ppa-roadmap__legend-swatch--exploring{background:transparent;border:2px dashed rgba(0,255,136,.32)}.ppa-roadmap__controls{display:flex;flex-direction:row;justify-content:space-between;gap:8px;width:100%}.ppa-roadmap__control{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;color:var(--pa-text-primary, #eff4f6);background:#0c1013b8;border:1px solid var(--pa-accent-border-soft, rgba(0, 255, 136, .28));border-radius:12px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(8px);transition:background .15s ease,border-color .15s ease,color .15s ease}.ppa-roadmap__control:hover{color:var(--pa-accent-bright, #00ff88);background:#00ff881a;border-color:var(--pa-accent-border-hover, rgba(0, 255, 136, .65))}.ppa-roadmap__hint{position:fixed;left:50%;bottom:24px;z-index:40;transform:translate(-50%);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pa-text-muted, #6a6a6a);pointer-events:none}@media(max-width:900px){.ppa-roadmap__hint{display:none}.ppa-roadmap__hud{left:12px;bottom:12px;gap:6px;transform:scale(clamp(.48,calc(.38 + .12 * ((100vw - 320px) / 580)),.56));transform-origin:bottom left}}body:has(.ppa-roadmap){overflow:hidden}body:has(.ppa-roadmap)>footer{display:none}.ppa-roadmap-back{position:fixed;top:18px;left:20px;z-index:45;display:inline-flex;align-items:center;padding:8px 14px;font-family:var(--pa-font, "Space Grotesk", monospace);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;color:var(--pa-text-secondary, #a8b1bb);background:#0a0c0eb3;border:1px solid rgba(255,255,255,.12);border-radius:999px;backdrop-filter:blur(6px)}.ppa-roadmap-back:hover{color:var(--pa-text-primary, #eff4f6);border-color:var(--pa-accent-border-soft, rgba(0, 255, 136, .22))}
