/* A bounded, device-pixel-aligned dot plane: panning composites a transform instead of repainting the viewport background. */
html[data-theme] .asset-infinite-viewport{background-image:none!important}
html[data-theme] .asset-infinite-viewport::before{content:'';position:absolute;inset:-40px;z-index:0;pointer-events:none;contain:strict;background-size:inherit;background-repeat:repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='1' fill='%2366527f'/%3E%3C/svg%3E");transform:translate3d(var(--canvas-grid-x,0px),var(--canvas-grid-y,0px),0);will-change:transform}
html[data-theme=light] .asset-infinite-viewport::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='1' fill='%23b6a8ca'/%3E%3C/svg%3E")}
:root,html[data-theme]{--brand-accent-gradient:linear-gradient(115deg,#98b828 0%,#accb40 36%,#c5ed3a 100%)}
html[data-theme] .stage-file-icon{background:var(--brand-accent-gradient)!important;color:#fff!important}
html[data-theme] .stage-file-icon svg{color:inherit!important}
