.vision-hologram{position:relative;min-width:0}.vision-stage{--vision-az: 0deg;--vision-anchor-x: 55%;--vision-anchor-y: 52%;--vision-amber: var(--status-standby);position:relative;isolation:isolate;aspect-ratio:16 / 11;min-height:420px;overflow:hidden;cursor:grab;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:1.75rem;background:radial-gradient(ellipse 60% 50% at 50% 56%,hsl(var(--primary) / .12),transparent 70%),hsl(var(--background))}.vision-stage.is-dragging{cursor:grabbing}.vision-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(hsl(var(--primary) / .05) 1px,transparent 1px),linear-gradient(90deg,hsl(var(--primary) / .05) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 55%,black,transparent);mask-image:radial-gradient(ellipse 70% 60% at 50% 55%,black,transparent)}.vision-spin,.vision-spin-frame{position:absolute;left:50%;top:50%;width:96%;max-width:none;transform:translate(-50%,-52%)}.vision-spin-frame{aspect-ratio:16 / 9;pointer-events:none}.vision-spin{height:auto;mix-blend-mode:screen;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 52% 56% at 50% 52%,black 62%,transparent);mask-image:radial-gradient(ellipse 52% 56% at 50% 52%,black 62%,transparent)}.vision-turntable{position:absolute;left:50%;top:76%;width:78%;aspect-ratio:1;transform:translate(-50%,-50%) perspective(900px) rotateX(76deg);pointer-events:none}.vision-turntable svg{width:100%;height:100%;overflow:visible;fill:none;stroke:hsl(var(--primary) / .4);stroke-width:.5}.vision-ring-faint{stroke:hsl(var(--primary) / .16);stroke-width:6}.vision-ring-dash{stroke-dasharray:1 3;stroke:hsl(var(--primary) / .3)}.vision-ring-spin{transform:rotate(var(--vision-az))}.vision-ring-spin .vision-tick-major{stroke:hsl(var(--primary));stroke-width:1.2}.vision-beam{position:absolute;top:6%;bottom:14%;left:0;width:18%;pointer-events:none;background:linear-gradient(90deg,transparent,hsl(var(--primary) / .08) 70%,hsl(var(--primary) / .5) 99%,transparent);mix-blend-mode:screen;-webkit-mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);animation:vision-beam var(--vision-scan) var(--vision-ease) infinite alternate}@keyframes vision-beam{0%{transform:translate(40%)}to{transform:translate(400%)}}.vision-brackets span{position:absolute;width:22px;height:22px;border-color:hsl(var(--primary) / .7);border-style:solid;border-width:0}.vision-brackets span:nth-child(1){left:14%;top:16%;border-top-width:1.5px;border-left-width:1.5px}.vision-brackets span:nth-child(2){right:14%;top:16%;border-top-width:1.5px;border-right-width:1.5px}.vision-brackets span:nth-child(3){left:14%;bottom:18%;border-bottom-width:1.5px;border-left-width:1.5px}.vision-brackets span:nth-child(4){right:14%;bottom:18%;border-bottom-width:1.5px;border-right-width:1.5px}.vision-flash{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse 55% 45% at 50% 52%,hsl(var(--primary) / .35),transparent 70%);transition:opacity var(--vision-transition) var(--vision-ease)}.vision-flash[data-on]{opacity:1;transition-duration:0s}.vision-damage{position:absolute;left:var(--vision-anchor-x);top:var(--vision-anchor-y);width:74px;height:52px;margin:-26px 0 0 -37px;border:1.5px solid hsl(var(--vision-amber));border-radius:6px;background:hsl(var(--vision-amber) / .12);pointer-events:none}.vision-damage:before,.vision-damage:after{content:"";position:absolute;inset:-7px;border:1px solid hsl(var(--vision-amber) / .4);border-radius:9px;animation:vision-pulse var(--vision-scan) var(--vision-ease) infinite}.vision-damage:after{animation-delay:calc(var(--vision-scan) / -2)}@keyframes vision-pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.6);opacity:0}}.vision-damage-label{position:absolute;left:50%;top:calc(100% + 10px);transform:translate(-50%);white-space:nowrap;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:600;color:hsl(var(--background));background:hsl(var(--vision-amber))}.vision-hud-top,.vision-hud-tag{position:absolute;z-index:3;top:16px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--muted-foreground));pointer-events:none}.vision-hud-top{left:18px;display:flex;flex-direction:column;gap:6px}.vision-hud-tag{right:18px}.vision-hud-live{display:inline-flex;align-items:center;gap:8px;color:hsl(var(--primary));font-weight:600}.vision-hud-dot{width:6px;height:6px;border-radius:50%;background:hsl(var(--primary));animation:vision-blink var(--vision-scan) steps(2,jump-none) infinite}@keyframes vision-blink{50%{opacity:.2}}.vision-hud-readout{font-size:22px;letter-spacing:.02em;font-weight:600;color:hsl(var(--foreground));font-variant-numeric:tabular-nums}.vision-card-slot{position:absolute;z-index:4;width:232px;pointer-events:none;transition:top var(--vision-transition) var(--vision-ease),left var(--vision-transition) var(--vision-ease)}.vision-card-slot[data-beat=capture]{top:15%;left:3%}.vision-card-slot[data-beat=compare]{top:13%;left:calc(97% - 232px)}.vision-card-slot[data-beat=review]{top:34%;left:calc(97% - 232px)}.vision-card{padding:14px 16px;border-radius:var(--radius);border:1px solid hsl(var(--primary) / .35);background:hsl(var(--background) / .82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.vision-card-label{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--primary))}.vision-card-label[data-tone=standby]{color:hsl(var(--vision-amber))}.vision-card-title{margin-top:8px;font-size:15px;font-weight:600;color:hsl(var(--foreground))}.vision-card-detail{margin-top:4px;font-size:12px;color:hsl(var(--muted-foreground))}.vision-card-meter{height:2px;margin-top:12px;background:hsl(var(--primary) / .15)}.vision-card-meter span{display:block;height:100%;background:hsl(var(--primary));transform-origin:left;transition:transform var(--vision-transition) var(--vision-ease)}.vision-compare{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.vision-compare figure{margin:0}.vision-compare figcaption{margin-top:4px;font-size:10px;color:hsl(var(--muted-foreground))}.vision-crop{position:relative;display:block;aspect-ratio:4 / 3;border-radius:6px;border:1px solid hsl(var(--primary) / .25);background-color:#000;background-image:url(/vision/spin-poster.webp);background-size:360%;background-position:66% 56%}.vision-crop[data-after]:after{content:"";position:absolute;inset:28% 24%;border:1.5px solid hsl(var(--vision-amber));border-radius:4px;background:hsl(var(--vision-amber) / .15)}.vision-card-van{aspect-ratio:2 / 1;margin-top:10px}.vision-card-actions{display:flex;gap:8px;margin-top:10px}.vision-card-actions span{flex:1 1 auto;padding-inline:8px;white-space:nowrap;padding:6px 0;text-align:center;font-size:12px;font-weight:600;border-radius:calc(var(--radius) - 2px);border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.vision-card-actions span[data-primary]{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.vision-rail{position:absolute;z-index:3;left:18px;bottom:16px;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}.vision-rail li{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));background:hsl(var(--background) / .7);transition:color var(--vision-transition) var(--vision-ease),border-color var(--vision-transition) var(--vision-ease),background-color var(--vision-transition) var(--vision-ease)}.vision-rail li[data-done]{color:hsl(var(--foreground));border-color:hsl(var(--primary) / .5)}.vision-rail li[data-done] svg{color:hsl(var(--primary))}.vision-rail li[data-live]{background:hsl(var(--primary) / .25)}.vision-controls{position:absolute;z-index:5;right:12px;bottom:10px;display:flex;align-items:center;gap:8px}.vision-drag-hint{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:hsl(var(--muted-foreground))}.vision-stage[data-still] .vision-beam,.vision-stage[data-still] .vision-hud-dot{animation:none}@media (max-width: 767px){.vision-stage{aspect-ratio:auto;min-height:0;height:520px;margin-inline:-4px}.vision-spin,.vision-spin-frame{width:118%;top:36%}.vision-turntable{top:50%;width:110%}.vision-brackets,.vision-drag-hint{display:none}.vision-card-slot,.vision-card-slot[data-beat]{top:auto;bottom:64px;left:12px;width:calc(100% - 24px)}.vision-card-van,.vision-compare{display:none}.vision-rail{left:12px;right:12px;bottom:14px;flex-wrap:nowrap;overflow:hidden}.vision-rail li{padding:4px 8px;font-size:10px}.vision-controls{top:8px;bottom:auto;right:6px}.vision-hud-tag{display:none}}@media (prefers-reduced-motion: reduce){.vision-beam,.vision-hud-dot,.vision-damage:before,.vision-damage:after{animation:none}}.vision-shutter{opacity:0;animation:vision-shutter var(--vision-shutter) var(--vision-shutter-ease) both;pointer-events:none}@keyframes vision-shutter{0%{opacity:.85}to{opacity:0}}@media (prefers-reduced-motion: reduce){.vision-shutter{animation:none}}.vision-pulse{stroke-dasharray:.14 1.2;stroke-dashoffset:.14;opacity:0}.vision-pulse[data-live=true]{animation:vision-pulse-run var(--vision-pulse) var(--vision-ease) infinite}@keyframes vision-pulse-run{0%{stroke-dashoffset:.14;opacity:0}12%,88%{opacity:1}to{stroke-dashoffset:-1;opacity:0}}.vision-ring{animation:vision-ring-spin var(--vision-ring) linear infinite}.vision-ring[data-live=false]{animation-play-state:paused}@keyframes vision-ring-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.vision-pulse,.vision-ring{animation:none}}
