.viewer-shell{height:calc(100vh - 4rem);margin-top:4rem}.viewer-canvas-host{position:absolute;inset:0}.viewer-canvas-host canvas{display:block}.viewer-stage{background:radial-gradient(900px 320px at 50% 8%, color-mix(in oklch, var(--primary) 10%, transparent), transparent), var(--background)}.viewer-stage-dragover:after{content:"";border:2px dashed var(--primary);background:color-mix(in oklch, var(--primary) 6%, transparent);pointer-events:none;z-index:5;border-radius:18px;animation:1.4s ease-in-out infinite viewer-dz-pulse;position:absolute;inset:12px}@keyframes viewer-dz-pulse{0%,to{opacity:.55}50%{opacity:1}}.viewer-lb-img.grabbing{cursor:grabbing}.viewer-glass{background:var(--card);border:1px solid var(--border);box-shadow:0 2px 0 0 color-mix(in oklch, var(--navy) 8%, transparent), 0 8px 24px -12px color-mix(in oklch, var(--navy) 25%, transparent)}.viewer-checkerboard{background-image:linear-gradient(45deg, color-mix(in oklch, var(--foreground) 10%, transparent) 25%, transparent 25%), linear-gradient(-45deg, color-mix(in oklch, var(--foreground) 10%, transparent) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, color-mix(in oklch, var(--foreground) 10%, transparent) 75%), linear-gradient(-45deg, transparent 75%, color-mix(in oklch, var(--foreground) 10%, transparent) 75%);background-position:0 0,0 7px,7px -7px,-7px 0;background-size:14px 14px}
