.graph-background{--body-background:var(--background);--texture-background-color:color-mix(in oklch, var(--background) 96%, transparent);--texture-pattern-color:color-mix(in oklch, var(--foreground) 35%, transparent);--texture-pattern-opacity:45%;--texture-secondary-color:color-mix(in oklch, var(--foreground) 20%, transparent);--texture-secondary-opacity:30%;--texture-scale:1;transition:background-color .2s ease-out}.graph-background.faded-gradient{background:linear-gradient(135deg, oklch(55% .12 330/.6) 0%, oklch(45% .15 290/.5) 25%, oklch(50% .1 250/.45) 50%, oklch(55% .08 200/.4) 75%, oklch(50% .06 170/.35) 100%),linear-gradient(315deg, oklch(40% .09 260/.4) 0%, oklch(50% .12 220/.35) 40%, oklch(45% .1 180/.3) 100%),var(--body-background);background-size:300% 300%,200% 200%,100% 100%;height:100%;animation:25s infinite faded-gradient-drift}@keyframes faded-gradient-drift{0%{background-position:0%,100% 0,50%}33%{background-position:100% 25%,0 100%,50%}66%{background-position:50% 100%,50%,50%}to{background-position:0%,100% 0,50%}}.graph-background.texture-dots{background-color:var(--texture-background-color);background-image:radial-gradient(circle at 1px 1px, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 1px, transparent 0);background-size:calc(8px*var(--texture-scale)) calc(8px*var(--texture-scale))}.graph-background.texture-grid{background-color:var(--texture-background-color);background-image:linear-gradient(color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 1px, transparent 1px),linear-gradient(90deg, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 1px, transparent 1px);background-size:calc(12px*var(--texture-scale)) calc(12px*var(--texture-scale))}.graph-background.texture-noise{background-color:var(--texture-background-color);background-image:radial-gradient(circle at 2px 2px, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 1px, transparent 0);background-size:calc(6px*var(--texture-scale)) calc(6px*var(--texture-scale))}.graph-background.texture-crosshatch{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(45deg, transparent, transparent calc(2px * var(--texture-scale)), color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(2px * var(--texture-scale)), color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(4px * var(--texture-scale))),repeating-linear-gradient(-45deg, transparent, transparent calc(2px * var(--texture-scale)), color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) calc(2px * var(--texture-scale)), color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) calc(4px * var(--texture-scale)))}.graph-background.texture-diagonal{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(-45deg, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 0, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(1px * var(--texture-scale)), transparent calc(1px * var(--texture-scale)), transparent calc(6px * var(--texture-scale)))}.graph-background.texture-scattered-dots{background-color:var(--texture-background-color);background-image:radial-gradient(circle at calc(3px * var(--texture-scale)) calc(7px * var(--texture-scale)), color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(1px * var(--texture-scale)), transparent 0),radial-gradient(circle at calc(11px * var(--texture-scale)) calc(2px * var(--texture-scale)), color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) calc(1px * var(--texture-scale)), transparent 0),radial-gradient(circle at calc(7px * var(--texture-scale)) calc(12px * var(--texture-scale)), color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(1px * var(--texture-scale)), transparent 0);background-size:calc(16px*var(--texture-scale)) calc(16px*var(--texture-scale))}.graph-background.texture-halftone{background-color:var(--texture-background-color);background-image:radial-gradient(circle, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 25%, transparent 25%),radial-gradient(circle, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 25%, transparent 25%);background-size:calc(10px*var(--texture-scale)) calc(10px*var(--texture-scale));background-position:0 0,calc(5px*var(--texture-scale)) calc(5px*var(--texture-scale))}.graph-background.texture-triangular{background-color:var(--texture-background-color);background-image:conic-gradient(from 0deg at 50% 50%, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 0deg 120deg, transparent 120deg 240deg, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 240deg 360deg),conic-gradient(from 0deg at 50% 50%, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 0deg 120deg, transparent 120deg 240deg, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 240deg 360deg);background-size:calc(8px*var(--texture-scale)) calc(8px*var(--texture-scale));background-position:0 0,calc(4px*var(--texture-scale)) calc(4px*var(--texture-scale))}.graph-background.texture-chevron{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(45deg, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 0, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(2px * var(--texture-scale)), transparent calc(2px * var(--texture-scale)), transparent calc(8px * var(--texture-scale))),repeating-linear-gradient(-45deg, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 0, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) calc(2px * var(--texture-scale)), transparent calc(2px * var(--texture-scale)), transparent calc(8px * var(--texture-scale)))}.graph-background.texture-paper-grain{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(0deg, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 0, transparent calc(1px * var(--texture-scale)), transparent calc(3px * var(--texture-scale))),repeating-linear-gradient(90deg, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 0, transparent calc(1px * var(--texture-scale)), transparent calc(4px * var(--texture-scale))),repeating-linear-gradient(45deg, color-mix(in oklch, var(--texture-pattern-color) calc(var(--texture-pattern-opacity) / 2), transparent) 0, transparent calc(1px * var(--texture-scale)), transparent calc(5px * var(--texture-scale)))}.graph-background.texture-horizontal-lines{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(0deg, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 0, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) calc(1px * var(--texture-scale)), transparent calc(1px * var(--texture-scale)), transparent calc(4px * var(--texture-scale)))}.graph-background.texture-vertical-lines{background-color:var(--texture-background-color);background-image:repeating-linear-gradient(90deg, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 0, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) calc(1px * var(--texture-scale)), transparent calc(1px * var(--texture-scale)), transparent calc(4px * var(--texture-scale)))}.graph-background.texture-spotlight{background-color:var(--texture-background-color);background-image:radial-gradient(ellipse 55% 60% at 50% 48%, color-mix(in oklch, var(--texture-secondary-color) var(--texture-secondary-opacity), transparent) 0%, transparent 72%),radial-gradient(ellipse 120% 105% at 50% 50%, transparent 32%, color-mix(in oklch, var(--texture-pattern-color) var(--texture-pattern-opacity), transparent) 100%)}.graph-background.plasma{background-color:#0000}.graph-background.floating-orbs{--orbs-color-1:#8b5cf6;--orbs-color-2:#ec4899;--orbs-color-3:#38bdf8;--orbs-color-4:#34d399;font:var(--orbs-size,52px)/1.3 Serif;color:#0000}.graph-background.floating-orbs:before,.graph-background.floating-orbs:after{content:".";mix-blend-mode:normal;width:156px;height:156px;animation:floating-orbs-move var(--orbs-duration,44s) calc(var(--orbs-duration,44s)*-.61) infinite ease-in-out alternate;animation-play-state:var(--orbs-play-state,running);position:absolute;top:50%;left:50%}.graph-background.floating-orbs:before{text-shadow:.52px 18.3529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),58.24px 111.647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),115.96px 47.4118px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),16.12px -16.8235px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),73.84px 76.4706px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),-26px 12.2353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),31.72px 105.529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),89.44px 41.2941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),-10.4px -22.9412px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),47.32px 70.3529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),105.04px 6.11765px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),5.2px 99.4118px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),62.92px 35.1765px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),120.64px 128.471px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),20.8px 64.2353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),78.52px 0px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),-21.32px 93.2941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),36.4px 29.0588px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),94.12px 122.353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),-5.72px 58.1176px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),52px -6.11765px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),109.72px 87.1765px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),9.88px 22.9412px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),67.6px 116.235px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),125.32px 52px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),25.48px -12.2353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),83.2px 81.0588px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),-16.64px 16.8235px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),41.08px 110.118px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),98.8px 45.8824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),-1.04px -18.3529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),56.68px 74.9412px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),114.4px 10.7059px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),14.56px 104px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),72.28px 39.7647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),130px -24.4706px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),30.16px 68.8235px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),87.88px 4.58824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),-11.96px 97.8824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),45.76px 33.6471px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),103.48px 126.941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent)}.graph-background.floating-orbs:after{text-shadow:27.04px 62.7059px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),84.76px -1.52941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),-15.08px 91.7647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),42.64px 27.5294px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),100.36px 120.824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),.52px 56.5882px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),58.24px -7.64706px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),115.96px 85.6471px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),16.12px 21.4118px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),73.84px 114.706px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),-26px 50.4706px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),31.72px -13.7647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),89.44px 79.5294px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),-10.4px 15.2941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),47.32px 108.588px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),105.04px 44.3529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),5.2px -19.8824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),62.92px 73.4118px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),120.64px 9.17647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),20.8px 102.471px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),78.52px 38.2353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),-21.32px -26px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),36.4px 67.2941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),94.12px 3.05882px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),-5.72px 96.3529px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),52px 32.1176px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),109.72px 125.412px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),9.88px 61.1765px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),67.6px -3.05882px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),125.32px 90.2353px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),25.48px 26px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),83.2px 119.294px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),-16.64px 55.0588px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),41.08px -9.17647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),98.8px 84.1176px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),-1.04px 19.8824px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),56.68px 113.176px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent),114.4px 48.9412px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-2) 90%, transparent),14.56px -15.2941px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-3) 90%, transparent),72.28px 78px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-4) 90%, transparent),130px 13.7647px var(--orbs-blur,7px) color-mix(in srgb, var(--orbs-color-1) 90%, transparent);animation-duration:calc(var(--orbs-duration,44s)*.98);animation-delay:calc(var(--orbs-duration,44s)*-.73)}@media (prefers-reduced-motion:reduce),print{.graph-background.floating-orbs:before,.graph-background.floating-orbs:after{animation:none;transform:rotate(120deg)scale(14)translate(-8px)}}@keyframes floating-orbs-move{0%{transform:rotate(0)scale(12)translate(-20px)}to{transform:rotate(360deg)scale(18)translate(20px)}}.graph-background.custom-background{background-color:var(--graph-background-color)}.graph-background.conic-pointer-gradient{background-color:var(--body-background)}.ambient-glow-orbs{position:absolute;inset:0}.ambient-glow-orb{filter:blur(120px);will-change:transform;pointer-events:none;border-radius:50%;position:absolute}.ambient-glow-orb-1{background:radial-gradient(circle at 40% 40%, var(--glow-c0) 0%, transparent 70%);opacity:.55;width:55%;height:55%;animation:ambient-drift-1 var(--glow-duration) ease-in-out infinite alternate;top:-10%;left:-8%}.ambient-glow-orb-2{background:radial-gradient(circle at 60% 60%, var(--glow-c1) 0%, transparent 70%);opacity:.45;width:50%;height:50%;animation:ambient-drift-2 var(--glow-duration) ease-in-out infinite alternate-reverse;bottom:-8%;right:-5%}.ambient-glow-orb-3{background:radial-gradient(circle at 50% 50%, var(--glow-c2) 0%, transparent 70%);opacity:.3;width:40%;height:40%;animation:ambient-drift-3 calc(var(--glow-duration)*1.4) ease-in-out infinite alternate;bottom:10%;left:30%}@keyframes ambient-drift-1{0%{transform:translate(0)scale(1)}to{transform:translate(6%,8%)scale(1.08)}}@keyframes ambient-drift-2{0%{transform:translate(0)scale(1)}to{transform:translate(-5%,-6%)scale(1.06)}}@keyframes ambient-drift-3{0%{transform:translate(0)scale(1)}to{transform:translate(4%,-5%)scale(1.1)}}.ambient-glow-grain,.grain-overlay:after{pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;position:absolute;inset:0}.grain-overlay:after{content:"";opacity:var(--grain-opacity,.06)}