:root{color:#162328;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#e7ecee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{min-width:320px;overflow:hidden}canvas{touch-action:none;display:block}.viewer{width:100%;height:100%;position:relative;overflow:hidden}.spec-card{box-sizing:border-box;color:#edf6fa;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#10131ec7;border:1px solid #b2def12e;border-radius:16px;width:min(350px,100vw - 48px);padding:20px;position:absolute;top:24px;left:24px;box-shadow:0 22px 70px #00000057}.spec-card .eyebrow{color:#88cde8;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:750}.title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.title-row h1{letter-spacing:-.04em;margin:0;font-size:28px;line-height:1.15}.instance-count{color:#a8bbc3;border:1px solid #a8bbc342;border-radius:999px;padding:4px 8px;font-size:11px}.source-tabs{background:#ffffff0d;border:1px solid #ffffff14;border-radius:11px;grid-template-columns:1fr 1fr;gap:4px;margin-top:20px;padding:4px;display:grid}.source-tabs button{color:#7f949d;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:11px;font-weight:700}.source-tabs button[aria-pressed=true]{color:#efffff;background:#5fbbbe30;box-shadow:inset 0 0 0 1px #89e7e326}.source-action{color:#e9fbfb;width:100%;min-height:38px;font:inherit;cursor:pointer;background:linear-gradient(135deg,#087f7c,#5f258d);border:1px solid #c3fcf833;border-radius:10px;place-items:center;margin-top:12px;padding:0 14px;font-size:11px;font-weight:700;display:grid;position:relative;overflow:hidden}.source-action:disabled{cursor:wait;opacity:.68}.source-action:has(input:disabled){cursor:wait;opacity:.68}.source-action input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.source-name{color:#71858e;text-overflow:ellipsis;white-space:nowrap;margin:7px 2px 0;font-size:9px;overflow:hidden}.map-preview{background:#ffffff0a;border:1px solid #ffffff17;border-radius:12px;align-items:center;gap:14px;margin-top:14px;padding:12px;display:flex}.map-preview img,.webcam-preview,.preview-placeholder{border:1px solid #ffffff1f;border-radius:8px;flex:0 0 72px;width:72px;height:72px}.map-preview img{image-rendering:pixelated}.webcam-preview{object-fit:cover;filter:grayscale();background:#090b10;transform:scaleX(-1)}.preview-placeholder{background:linear-gradient(135deg,#25353b,#151923)}.map-copy{gap:5px;display:grid}.map-copy span{color:#8499a2;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-size:10px}.map-copy strong{color:#e9f5f6;font-variant-numeric:tabular-nums;font-size:13px}.render-stats{gap:0;margin:16px 0 0;display:grid}.render-stats div{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:baseline;gap:20px;padding:8px 2px;display:flex}.render-stats dt{color:#71858e;text-transform:uppercase;font-size:10px}.render-stats dd{color:#c5d7db;margin:0;font-size:11px}.processing-error{color:#ff9e9e;margin:10px 2px 0;font-size:10px}.hint{color:#71858e;margin:18px 0 0;font-size:10px}@media (width<=600px){.spec-card{width:min(300px,100vw - 28px);padding:16px;top:14px;left:14px}.title-row h1{font-size:23px}}
