.report-canvas{--bg:#0a0a0f;--surface:#12121a;--surface-2:#1a1a26;--border:#1f1f2e;--green:#22c55e;--green-dim:#22c55e26;--green-glow:#22c55e66;--blue:#3b82f6;--blue-dim:#3b82f626;--amber:#f59e0b;--amber-dim:#f59e0b26;--purple:#a78bfa;--purple-dim:#a78bfa26;--red:#ef4444;--red-dim:#ef444426;--cyan:#06b6d4;--pink:#ec4899;--text:#e4e4e7;--text-dim:#71717a;--text-muted:#3f3f46;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;background:var(--bg);color:var(--text);font-family:var(--font-sans);scroll-snap-type:y mandatory;scroll-behavior:smooth;z-index:50;line-height:1.5;position:fixed;inset:0;overflow:hidden auto}.report-canvas *{box-sizing:border-box}.report-canvas .page{scroll-snap-align:start;scroll-snap-stop:normal;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:60px 40px;display:flex;position:relative;overflow:hidden}.report-canvas .page-inner{text-align:center;z-index:2;flex-direction:column;align-items:center;gap:32px;width:100%;max-width:900px;display:flex}.report-canvas .page-question{font-family:var(--font-sans);letter-spacing:-.03em;background:linear-gradient(135deg, var(--text) 0%, #a1a1aa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(28px,5vw,52px);font-weight:800;line-height:1.15}.report-canvas .page-subtitle{color:var(--text-dim);max-width:600px;margin:0;font-size:clamp(13px,1.8vw,18px);font-weight:400}.report-canvas .progress-dots{z-index:1000;flex-direction:column;gap:10px;display:flex;position:fixed;top:50%;right:20px;transform:translateY(-50%)}.report-canvas .progress-dot{background:var(--text-muted);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .3s}.report-canvas .progress-dot:hover{background:var(--text-dim);transform:scale(1.3)}.report-canvas .progress-dot.active{background:var(--green);box-shadow:0 0 8px var(--green-glow);transform:scale(1.4)}.report-canvas .anim-fade-up{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(40px)}.report-canvas .anim-scale-in{opacity:0;transition:opacity .6s cubic-bezier(.34,1.56,.64,1),transform .6s cubic-bezier(.34,1.56,.64,1);transform:scale(.85)}.report-canvas .anim-slide-right{opacity:0;transition:opacity .7s ease-out,transform .7s ease-out;transform:translate(60px)}.report-canvas .visible{opacity:1!important;transform:none!important}.report-canvas .bg-glow-green{background:radial-gradient(at 50% 80%,#22c55e0f 0%,#0000 60%)}.report-canvas .bg-glow-blue{background:radial-gradient(at 50% 80%,#3b82f60f 0%,#0000 60%)}.report-canvas .bg-glow-purple{background:radial-gradient(at 50% 80%,#a78bfa0f 0%,#0000 60%)}.report-canvas .bg-glow-amber{background:radial-gradient(at 50% 80%,#f59e0b0f 0%,#0000 60%)}.report-canvas .bg-glow-red{background:radial-gradient(at 50% 80%,#ef44440f 0%,#0000 60%)}.report-canvas .glass-card{-webkit-backdrop-filter:blur(16px);background:#12121ab3;border:1px solid #ffffff0f;border-radius:16px;padding:32px}.report-canvas .hero-badge{background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);border-radius:100px;align-items:center;gap:8px;padding:8px 16px;font-size:11px;display:inline-flex}.report-canvas .hero-badge .dot{background:var(--green);border-radius:50%;width:6px;height:6px;animation:2s infinite pm-pulse}@keyframes pm-pulse{0%,to{opacity:1;box-shadow:0 0 0 0 var(--green-glow)}50%{opacity:.6;box-shadow:0 0 0 6px #0000}}.report-canvas .hero-title{letter-spacing:-.04em;background:linear-gradient(135deg,#fff 0%,#a1a1aa 50%,#71717a 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(48px,9vw,96px);font-weight:800;line-height:.95}.report-canvas .hero-counters{flex-wrap:wrap;justify-content:center;gap:clamp(20px,4vw,60px);margin-top:24px;display:flex}.report-canvas .hero-counter{flex-direction:column;align-items:center;gap:4px;display:flex}.report-canvas .hero-counter .num{font-family:var(--font-mono);letter-spacing:-.02em;font-size:clamp(32px,5vw,56px);font-weight:700;line-height:1}.report-canvas .hero-counter .label{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);font-size:11px}.report-canvas .yoy-chip{font-family:var(--font-mono);letter-spacing:.05em;color:var(--green);background:#22c55e1f;border:1px solid #22c55e40;border-radius:100px;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.report-canvas .color-green{color:var(--green)}.report-canvas .color-blue{color:var(--blue)}.report-canvas .color-amber{color:var(--amber)}.report-canvas .color-purple{color:var(--purple)}.report-canvas .color-red{color:var(--red)}.report-canvas .color-cyan{color:var(--cyan)}.report-canvas .color-pink{color:var(--pink)}.report-canvas .scroll-hint{color:var(--text-dim);font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;flex-direction:column;align-items:center;gap:6px;font-size:10px;animation:2.5s infinite pm-bounce;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.report-canvas .scroll-hint svg{width:16px;height:16px;stroke:var(--text-dim)}@keyframes pm-bounce{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,8px)}}.report-canvas .page-answer{color:var(--green);background:#22c55e14;border:1px solid #22c55e33;border-radius:100px;align-items:center;gap:8px;padding:12px 20px;font-size:13px;font-weight:500;display:inline-flex}.report-canvas .page-answer .answer-icon{stroke:currentColor;width:14px;height:14px}.report-canvas .peak-badge{color:var(--green);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;background:#22c55e1a;border:1px solid #22c55e40;border-radius:100px;align-items:center;gap:6px;padding:6px 14px;font-size:11px;font-weight:600;display:inline-flex}.report-canvas .map-container{border:1px solid var(--border);background:var(--surface);border-radius:16px;width:100%;height:55vh;position:relative;overflow:hidden}.report-canvas .map-svg{background:linear-gradient(160deg,#0c1b2a 0%,#0a0a0f 100%);width:100%;height:100%;display:block}.report-canvas .map-grid line{stroke:#ffffff0a;stroke-width:.5px}.report-canvas .map-pin{cursor:pointer;transition:transform .2s}.report-canvas .map-pin:hover{transform-origin:50%;transform:scale(1.15)}.report-canvas .map-pin-label{font-family:var(--font-mono);fill:var(--text);text-anchor:middle;pointer-events:none;text-shadow:0 1px 2px #000c;font-size:9px}.report-canvas .chart-container{border-bottom:1px solid #ffffff0d;align-items:flex-end;gap:12px;width:100%;height:320px;padding:24px 0 8px;display:flex}.report-canvas .chart-col{flex-direction:column;flex:1;align-items:center;gap:8px;height:100%;display:flex}.report-canvas .chart-bar{border-radius:6px 6px 0 0;width:100%;height:0;transition:height 1.2s cubic-bezier(.22,1,.36,1);position:relative}.report-canvas .chart-bar.animate{height:var(--bar-h,0%)}.report-canvas .chart-col-label{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.report-canvas .chart-col-value{font-family:var(--font-mono);color:var(--text);font-size:13px;font-weight:600}.report-canvas .price-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;max-width:600px;display:grid}.report-canvas .price-cards-wrap{width:100%;max-width:600px}.report-canvas .dist-bar-wrap{width:100%;max-width:720px}.report-canvas .revenue-headline{font-family:var(--font-mono);letter-spacing:-.04em;background:linear-gradient(135deg,#f59e0b 0%,#ec4899 60%,#a78bfa 100%);-webkit-text-fill-color:transparent;text-align:center;-webkit-background-clip:text;background-clip:text;font-size:clamp(80px,16vw,200px);font-weight:800;line-height:.95}.report-canvas .revenue-formula{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:18px 22px;display:flex}.report-canvas .formula-cell{flex-direction:column;align-items:center;gap:2px;min-width:70px;display:flex}.report-canvas .formula-num{font-family:var(--font-mono);color:var(--text);font-size:clamp(18px,2.5vw,26px);font-weight:700}.report-canvas .formula-label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);font-size:9px}.report-canvas .formula-op{font-family:var(--font-mono);color:var(--text-muted);font-size:22px;font-weight:600}.report-canvas .price-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;align-items:center;padding:24px 16px;display:flex}.report-canvas .price-card .price{font-family:var(--font-mono);font-size:clamp(28px,4vw,40px);font-weight:700}.report-canvas .price-card .price-label{font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-top:6px;font-size:10px}.report-canvas .distribution-bar{border:1px solid var(--border);border-radius:8px;width:100%;max-width:720px;height:36px;display:flex;overflow:hidden}.report-canvas .dist-segment{font-family:var(--font-mono);color:#000000d9;letter-spacing:.05em;cursor:default;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:relative}.report-canvas .dist-tooltip{color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;background:#000;border-radius:4px;padding:4px 8px;font-size:10px;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.report-canvas .dist-segment:hover .dist-tooltip{opacity:1}.report-canvas .bar-ranking,.report-canvas .artist-leaderboard{flex-direction:column;gap:10px;width:100%;display:flex}.report-canvas .bar-row{grid-template-columns:140px 1fr 60px;align-items:center;gap:16px;display:grid}.report-canvas .bar-name{text-align:left;color:var(--text);font-size:14px;font-weight:600}.report-canvas .bar-fill-container{background:var(--surface);border-radius:6px;height:28px;position:relative;overflow:hidden}.report-canvas .bar-fill{border-radius:6px;width:0;height:100%;transition:width 1.2s cubic-bezier(.22,1,.36,1)}.report-canvas .bar-fill.animate{width:var(--bar-width,0%)}.report-canvas .bar-value{font-family:var(--font-mono);text-align:right;font-size:14px;font-weight:700}.report-canvas .artist-row{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:12px;grid-template-columns:36px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.report-canvas .artist-rank{background:var(--surface-2);width:36px;height:36px;font-family:var(--font-mono);color:var(--text-dim);border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:flex}.report-canvas .artist-name{font-size:14px;font-weight:600}.report-canvas .artist-venues-detail{color:var(--text-dim);margin-top:2px;font-size:11px}.report-canvas .artist-count{font-family:var(--font-mono);color:var(--purple);font-size:18px;font-weight:700}.report-canvas .artist-count-label{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.report-canvas .donut-wrapper{justify-content:center;align-items:center;width:280px;height:280px;display:flex;position:relative}.report-canvas .donut-center-text{text-align:center;opacity:0;transition:opacity .5s;position:absolute}.report-canvas .donut-center-text.show{opacity:1}.report-canvas .donut-center-text .genre-name{font-family:var(--font-mono);color:var(--green);font-size:22px;font-weight:700}.report-canvas .donut-center-text .genre-sub{color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.report-canvas .donut-svg{width:100%;height:100%;transform:rotate(-90deg)}.report-canvas .donut-arc{fill:none;stroke-width:28px;transition:stroke-dashoffset 1.5s cubic-bezier(.22,1,.36,1)}.report-canvas .genre-legend{flex-wrap:wrap;justify-content:center;gap:10px 18px;display:flex}.report-canvas .legend-item{font-family:var(--font-mono);color:var(--text-dim);align-items:center;gap:8px;font-size:12px;display:inline-flex}.report-canvas .legend-dot{border-radius:3px;width:10px;height:10px}.report-canvas .day-bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:12px;width:100%;max-width:720px;height:280px;display:grid}.report-canvas .day-bar-col{flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.report-canvas .day-count{font-family:var(--font-mono);color:var(--text);font-size:12px;font-weight:600}.report-canvas .day-bar{border-radius:6px 6px 0 0;width:100%;height:0;transition:height 1s cubic-bezier(.22,1,.36,1)}.report-canvas .day-bar.animate{height:var(--bar-height,0%)}.report-canvas .day-label{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.report-canvas .tag-cloud{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.report-canvas .tag-pill{font-family:var(--font-mono);letter-spacing:.05em;border:1px solid;border-radius:100px;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.report-canvas .tag-pill.tier-1{padding:14px 22px;font-size:18px}.report-canvas .tag-pill.tier-2{font-size:14px}.report-canvas .tag-pill.tier-3{opacity:.8;font-size:12px}.report-canvas .tag-pct{opacity:.7}.report-canvas .big-stat{flex-direction:column;align-items:center;gap:12px;display:flex}.report-canvas .circle-progress{position:relative}.report-canvas .circle-bg{fill:none;stroke:var(--surface-2);stroke-width:16px}.report-canvas .circle-fill{fill:none;stroke-width:16px;stroke-linecap:round;stroke-dasharray:565;stroke-dashoffset:565px;transition:stroke-dashoffset 2s cubic-bezier(.22,1,.36,1)}.report-canvas .circle-fill.animate{stroke-dashoffset:var(--offset,0)}.report-canvas .big-number{font-family:var(--font-mono);font-size:clamp(56px,9vw,88px);font-weight:800}.report-canvas .big-label{color:var(--text-dim);max-width:380px;font-size:14px}.report-canvas .progress-bars{flex-direction:column;gap:18px;width:100%;max-width:600px;display:flex}.report-canvas .progress-item{width:100%}.report-canvas .progress-header{font-family:var(--font-mono);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.report-canvas .progress-label{color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase}.report-canvas .progress-track{background:var(--surface);border-radius:100px;width:100%;height:10px;overflow:hidden}.report-canvas .progress-fill{border-radius:100px;width:0;height:100%;transition:width 1.4s cubic-bezier(.22,1,.36,1)}.report-canvas .progress-fill.animate{width:var(--fill-width,0%)}.report-canvas .opportunity-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:100%;max-width:760px;display:grid}.report-canvas .opp-card{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex;border-color:#ef444440!important}.report-canvas .opp-name{color:var(--text);font-size:18px;font-weight:700}.report-canvas .opp-followers{font-family:var(--font-mono);color:var(--red);margin-top:6px;font-size:30px;font-weight:800}.report-canvas .opp-followers-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-dim);text-transform:uppercase;font-size:10px}.report-canvas .opp-events{font-family:var(--font-mono);color:var(--text-dim);margin-top:12px;font-size:22px;font-weight:700}.report-canvas .opp-events-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-dim);text-transform:uppercase;font-size:10px}.report-canvas .lead-row{grid-template-columns:120px 1fr 50px;align-items:center;gap:14px;width:100%;display:grid}.report-canvas .lead-label{font-family:var(--font-mono);color:var(--text-dim);text-align:left;font-size:12px}.report-canvas .lead-value{font-family:var(--font-mono);color:var(--cyan);text-align:right;font-size:14px;font-weight:700}.report-canvas .crossover-grid{background:var(--surface);border:1px solid var(--border);font-family:var(--font-mono);border-radius:16px;gap:4px;padding:16px;font-size:10px;display:inline-grid}.report-canvas .crossover-cell{width:36px;height:36px;color:var(--text);background:var(--surface-2);border-radius:4px;justify-content:center;align-items:center;display:flex}.report-canvas .crossover-head{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:10px}.report-canvas .cta-logo{font-family:var(--font-mono);letter-spacing:6px;color:var(--text-dim);font-size:14px}.report-canvas .cta-button{background:var(--green);color:#06210d;letter-spacing:.02em;box-shadow:0 0 0 1px var(--green-glow), 0 8px 32px #22c55e40;border-radius:100px;align-items:center;gap:10px;padding:16px 28px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .2s;display:inline-flex}.report-canvas .cta-button:hover{box-shadow:0 0 0 1px var(--green-glow), 0 14px 40px #22c55e66;transform:translateY(-2px)}.report-canvas .cta-footer{font-family:var(--font-mono);color:var(--text-dim);font-size:11px}.report-canvas .report-back{z-index:1100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:#12121ab3;border-radius:100px;align-items:center;gap:8px;padding:8px 14px;font-size:11px;text-decoration:none;display:inline-flex;position:fixed;top:16px;left:16px}.report-canvas .report-back:hover{color:var(--green);border-color:#22c55e59}@media (max-width:720px){.report-canvas .page{padding:48px 20px}.report-canvas .bar-row{grid-template-columns:96px 1fr 48px;gap:10px}.report-canvas .map-container{height:45vh}.report-canvas .crossover-cell{width:26px;height:26px}.report-canvas .progress-dots{right:8px}}@media (max-width:480px){.report-canvas .price-cards{grid-template-columns:1fr}.report-canvas .dist-segment{font-size:9px}}.report-leaflet-tip.leaflet-tooltip{color:#e4e4e7;background:#0a0a0ff2;border:1px solid #1f1f2e;box-shadow:0 8px 24px #00000080}.report-leaflet-tip.leaflet-tooltip-top:before{border-top-color:#1f1f2e}
