:root{--bg: rgb(85, 20, 180);--bg-deep: rgb(54, 10, 122);--ink: rgba(255, 255, 255, .92);--ink-dim: rgba(255, 255, 255, .55);--line: rgba(255, 255, 255, .35);--c-ma: #ffb347;--c-invention: #00e5ff;--c-regulation: #ff6fb5;--c-product: #7cffb2;--c-other: #e6d9ff}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:radial-gradient(120% 140% at 50% 0%,var(--bg) 0%,var(--bg-deep) 100%);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.topbar{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:baseline;gap:1rem;padding:1rem 1.5rem;pointer-events:none}.topbar>*{pointer-events:auto}.topbar h1{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:.04em}.topbar-sep{margin:0 .4rem;color:var(--c-invention)}.topbar-sub{margin:0;font-size:.8rem;color:var(--ink-dim);flex:1}#canvas-root{position:fixed;inset:0}#canvas-root svg{display:block;width:100%;height:100%;cursor:grab}#canvas-root svg:active{cursor:grabbing}.band rect{fill:#ffffff0d;stroke:#ffffff1f;transition:fill .3s;cursor:pointer}.band:hover rect{fill:#ffffff1a}.band.dimmed rect{fill:#0000001f}.band-label{fill:var(--ink-dim);font-size:12px;letter-spacing:.18em;text-transform:uppercase;pointer-events:none}.band-years{fill:#ffffff4d;font-size:10px;pointer-events:none}.axis-line{stroke:var(--line);stroke-width:1.5}.tick line{stroke:#ffffff2e}.tick text{fill:var(--ink-dim);font-size:10px;font-variant-numeric:tabular-nums}.event-node{cursor:pointer;opacity:0;transition:opacity .35s ease}.event-node.visible{opacity:1}.event-node .leader{stroke:#ffffff40;stroke-width:1}.event-node circle.dot{stroke:#ffffffe6;stroke-width:1.2}.event-node circle.halo{opacity:.45}.event-node:hover circle.halo{opacity:.9}.event-node .label{fill:var(--ink);font-size:12px;paint-order:stroke;stroke:#28055fd9;stroke-width:3px}.event-node .year{fill:var(--ink-dim);font-size:10px;font-variant-numeric:tabular-nums}.type-ma .dot,.type-ma .halo{fill:var(--c-ma)}.type-invention .dot,.type-invention .halo{fill:var(--c-invention)}.type-regulation .dot,.type-regulation .halo{fill:var(--c-regulation)}.type-product .dot,.type-product .halo{fill:var(--c-product)}.type-other .dot,.type-other .halo{fill:var(--c-other)}.filter-toggle{display:flex;align-items:center;gap:.5rem;padding:.45rem 1rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:#ffffff14;color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer;backdrop-filter:blur(8px)}.filter-toggle:hover{background:#ffffff29}.filter-toggle .chev{transition:transform .3s}.filter-toggle.open .chev{transform:rotate(180deg)}.filter-count{background:var(--c-invention);color:#28055f;border-radius:999px;font-size:.7rem;font-weight:700;padding:0 .45rem}.filter-panel{position:absolute;top:calc(100% + .6rem);right:0;width:min(380px,90vw);padding:1.1rem 1.2rem;border-radius:16px;border:1px solid rgba(255,255,255,.2);background:#30086ee0;backdrop-filter:blur(16px);box-shadow:0 18px 50px #14003c8c;transform-origin:top right;visibility:hidden}#filter-root{position:relative}.filter-group{margin-bottom:.9rem}.filter-group:last-child{margin-bottom:0}.filter-group h3{margin:0 0 .5rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}.chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip{padding:.3rem .75rem;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--ink-dim);font:inherit;font-size:.78rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.chip:hover{border-color:#ffffffb3;color:var(--ink)}.chip.active{background:#ffffffeb;color:#3c0c82;border-color:transparent;font-weight:600}.chip.type-chip.active{box-shadow:inset 0 0 0 2px var(--chip-color, transparent)}.card-backdrop{position:fixed;inset:0;z-index:40;background:#1e00468c;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:2rem}.event-card{width:min(430px,92vw);max-height:86vh;overflow-y:auto;border-radius:18px;border:1px solid rgba(255,255,255,.25);background:linear-gradient(180deg,#481098f7,#30086ef7);box-shadow:0 30px 80px #0a0028b3;color:var(--ink)}.event-card figure{margin:0;position:relative}.event-card img{width:100%;height:215px;object-fit:cover;display:block;border-radius:18px 18px 0 0}.card-noimage{height:120px;border-radius:18px 18px 0 0;background:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 12px,transparent 12px 24px)}.card-attribution{position:absolute;bottom:0;right:0;font-size:.6rem;color:#ffffffbf;background:#140032a6;padding:.15rem .5rem;border-radius:6px 0 0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-body{padding:1.2rem 1.4rem 1.4rem}.card-meta{display:flex;align-items:center;gap:.6rem;margin-bottom:.55rem}.card-type{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.2rem .6rem;border-radius:999px;color:#28055f;background:var(--chip-color, var(--c-other))}.card-date{font-size:.8rem;color:var(--ink-dim);font-variant-numeric:tabular-nums}.card-body h2{margin:0 0 .6rem;font-size:1.25rem;line-height:1.3}.card-body p{margin:0 0 .7rem;font-size:.88rem;line-height:1.55;color:#ffffffd9}.card-sig{border-left:3px solid var(--chip-color, var(--c-other));padding-left:.8rem;color:#ffffffb3}.card-source{display:inline-block;margin-top:.3rem;font-size:.78rem;color:var(--c-invention);text-decoration:none}.card-source:hover{text-decoration:underline}.card-close{position:absolute;top:.7rem;right:.7rem;width:2rem;height:2rem;border-radius:50%;border:none;background:#14003299;color:#fff;font-size:1rem;cursor:pointer}.card-close:hover{background:#140032e6}.loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-dim);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem}
