:root{--sat: env(safe-area-inset-top);--sar: env(safe-area-inset-right);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color-scheme:light dark;color:#213547;background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: light){:root{color:#213547;background-color:var(--bg-color)}}#root,#canvas-container{position:relative;width:100%;height:100%;margin:0;padding:0;overflow:hidden}canvas{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}#vision-debug-text{position:absolute;z-index:20;background-color:#000000b3;color:#fff;padding:15px 10px;border-radius:5px;cursor:"pointer";user-select:text;-webkit-touch-callout:text;-webkit-user-select:text}.dev-stats-right #vision-debug-text{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:0;left:calc(env(safe-area-inset-left) + 64px);max-width:calc(100vw - env(safe-area-inset-left) - 64px);z-index:130}.dev-stats-right .stats{left:auto!important;right:80px!important}.dev-stats-right #vision-debug-text-title{text-align:left}#vision-debug-text-title{user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;font-weight:700;margin-bottom:8px}#loader-screen{height:100dvh;width:100%;display:flex;justify-content:center;align-items:center;z-index:20}button{border:none}button:focus,button:focus-visible{border:none;outline:none}.scan-button{background-color:var(--fg-color);color:var(--btn-color);width:100px;height:100px;position:absolute;font-size:20px;border-radius:50%;opacity:0;transition:opacity .3s ease-in-out;z-index:20}.full-experience-popup{position:relative;background-color:var(--fg-color);color:#fff;padding:0;border-radius:8px;font-size:14px;gap:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(95px);transition:opacity .4s ease,transform .4s ease,max-height .4s ease,padding .4s ease;box-shadow:0 4px 12px #0000004d;z-index:20;white-space:nowrap;pointer-events:none;max-height:0;overflow:hidden}.full-experience-popup.visible{opacity:1;transform:translateY(0);pointer-events:auto;max-height:100px;padding:10px 15px}.full-experience-icon{display:inline-block;vertical-align:middle}.qr-experience-popup{position:absolute;top:calc(env(safe-area-inset-top) + 10px);left:50%;background-color:#fbd606;color:#000;padding:10px 15px;border-radius:8px;font-size:14px;gap:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translate(-50%) translateY(-20px);transition:opacity .4s ease,transform .4s ease;box-shadow:0 4px 12px #0000004d;z-index:20;white-space:nowrap;pointer-events:none}.qr-experience-popup.visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.same-experience-popup,.recording-error-popup{position:relative;background-color:var(--fg-color);color:#fff;padding:0;border-radius:8px;font-size:14px;gap:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(95px);transition:opacity .4s ease,transform .4s ease,max-height .4s ease,padding .4s ease;box-shadow:0 4px 12px #0000004d;z-index:20;white-space:nowrap;pointer-events:none;max-height:0;overflow:hidden}.same-experience-popup.visible,.recording-error-popup.visible{opacity:1;transform:translateY(0);pointer-events:none;max-height:100px;padding:10px 15px}.full-experience-popup,.same-experience-popup,.recording-error-popup,.qr-experience-popup{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.toast-stack{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 85px);left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:10px;z-index:20;pointer-events:none}.record-button-wrap{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 8px);transform:translate(-50%);z-index:15;opacity:0;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:opacity .1s linear}.record-button-wrap.record-button-visible{opacity:1}.record-button-wrap.record-button-interactive{pointer-events:auto}.record-button{position:relative;width:60px;height:60px;border-radius:50%;border:none;background:transparent;background-color:transparent;box-shadow:none;display:grid;align-items:center;justify-content:center;place-items:center;padding:0;cursor:pointer;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.record-button,.record-button:hover,.record-button:focus,.record-button:focus-visible,.record-button:active,.record-button.record-button-recording{border:none;background:transparent;background-color:transparent;box-shadow:none;outline:none}.record-button:before{position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid #ffffff;border-radius:50%;box-sizing:border-box;content:"";pointer-events:none}.record-button:disabled{cursor:default}.record-button.record-button-stopping:before{border-color:#fff9}.record-button.record-button-stopping .record-button-inner{opacity:.5}.record-button-inner{width:48px;height:48px;border-radius:50%;background:#dc2626;transform:scale(1);transition:transform .3s ease,border-radius .3s ease}.record-button.record-button-recording .record-button-inner{border-radius:12px;transform:scale(.4166667)}.record-button.record-button-recording:active .record-button-inner{transform:scale(.35)}.recording-indicator{position:fixed;top:calc(env(safe-area-inset-top) + 12px);left:50%;transform:translate(-50%);background:#dc2626;color:#fff;border-radius:8px;padding:10px 17px;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;z-index:45}.recording-preview{--recording-preview-viewport-height: 100vh;--recording-preview-padding-top: calc(env(safe-area-inset-top) + 56px) ;--recording-preview-padding-right: calc(env(safe-area-inset-right) + 16px) ;--recording-preview-padding-bottom: calc(env(safe-area-inset-bottom) + 24px) ;--recording-preview-padding-left: calc(env(safe-area-inset-left) + 16px) ;--recording-preview-action-height: 44px;--recording-preview-action-gap: 16px;--recording-preview-message-height: 0px;--recording-preview-video-max-height: max( 96px, calc( var(--recording-preview-viewport-height) - var(--recording-preview-padding-top) - var(--recording-preview-padding-bottom) - var(--recording-preview-action-height) - var(--recording-preview-action-gap) - var(--recording-preview-message-height) ) );position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:120;view-transition-name:recording-preview;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:var(--recording-preview-padding-top);padding-right:var(--recording-preview-padding-right);padding-bottom:var(--recording-preview-padding-bottom);padding-left:var(--recording-preview-padding-left);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@supports (height: 100dvh){.recording-preview{--recording-preview-viewport-height: 100dvh}}.recording-preview-has-message{--recording-preview-message-height: 48px}.recording-preview-has-upload-link{--recording-preview-action-height: 64px}::view-transition-group(recording-preview){animation-duration:.18s;animation-timing-function:ease-in-out}.recording-preview-close{position:absolute;top:calc(env(safe-area-inset-top) + 12px);left:calc(env(safe-area-inset-left) + 12px);width:44px;height:44px;border:none;border-radius:8px;background:#ffffff2e;color:#fff;display:grid;place-items:center;padding:0;line-height:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.recording-preview-video{width:auto;height:auto;max-width:min(100%,480px);max-height:var(--recording-preview-video-max-height);min-height:0;flex-shrink:0;margin-top:auto;border-radius:8px;background:#000;object-fit:contain;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease-in-out}.recording-preview-actions{min-height:var(--recording-preview-action-height);flex-shrink:0;margin-top:var(--recording-preview-action-gap);display:flex;gap:10px;justify-content:center;margin-bottom:auto;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease-in-out}.recording-preview-ready .recording-preview-video,.recording-preview-ready .recording-preview-actions{opacity:1;visibility:visible;pointer-events:auto}.recording-preview-action{min-width:128px;min-height:44px;border:none;border-radius:8px;background:#f8fafc;color:#111;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;line-height:1;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.recording-preview-action:disabled{opacity:.6;cursor:default}.recording-preview-download-actions{display:inline-flex;flex-direction:column;align-items:center;gap:8px}.recording-preview-upload-link{border:none;background:transparent;color:#ffffffc7;font:inherit;font-size:13px;line-height:1.2;text-decoration:underline;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.recording-preview-upload-link:disabled{opacity:.6;cursor:default}.recording-preview-action-icon{display:block;flex-shrink:0}.recording-preview-has-message .recording-preview-actions{margin-bottom:0}.recording-preview-message{margin:10px 0 auto;color:#ffffffb8;font-size:13px;line-height:1.35;text-align:center;max-width:min(100%,320px)}.artwork-info-button{position:absolute;top:calc(env(safe-area-inset-top) + 16px);right:calc(env(safe-area-inset-right) + 16px);width:44px;height:44px;border-radius:50%;background-color:#0009;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:20;transition:background-color .2s ease}.artwork-info-button:hover,.artwork-info-button:active{background-color:#000c}.artwork-info-button img{filter:invert(1)}.artwork-info-popup-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.artwork-info-popup{background-color:#000000d9;border-radius:16px;width:85%;max-width:400px;max-height:min(70vh,500px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0000004d;color:#fff}.artwork-info-popup-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px}.artwork-info-popup-header.has-content-below{padding-bottom:12px}.artwork-info-popup-spacer{width:32px;flex-shrink:0}.artwork-info-popup-titles{flex:1;min-width:0;text-align:center}.artwork-info-popup-title{font-size:20px;font-weight:600;color:#fff;margin:0;overflow-wrap:anywhere;word-break:break-word}.artwork-info-popup-artist{font-size:14px;color:#ffffffb3;margin:4px 0 0;overflow-wrap:anywhere;word-break:break-word}.artwork-info-popup-close{background:none;border:none;padding:0 4px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.artwork-info-popup-close img{opacity:.6;transition:opacity .2s ease;filter:invert(1)}.artwork-info-popup-close:hover img{opacity:1}.artwork-info-popup-content{padding:0 20px 16px;overflow-y:auto;flex:1;text-align:center}.artwork-info-popup-description{font-size:14px;line-height:1.5;color:#ffffffe6;margin:0;white-space:pre-wrap}.artwork-info-popup-expand{background:none;border:none;padding:0;margin-top:8px;font-size:14px;color:#fff9;cursor:pointer;text-decoration:underline}.artwork-info-popup-expand:hover{color:#fff}.artwork-info-popup-social{display:flex;gap:16px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.15);justify-content:center}.artwork-info-social-link{display:flex;align-items:center;justify-content:center}.artwork-info-social-link img{opacity:.6;transition:opacity .2s ease;filter:invert(1)}.artwork-info-social-link:hover img{opacity:1}.corner{position:absolute;width:17px;height:17px;box-shadow:none}.top-left{top:-10px;left:-10px;border-left:3px solid #FBD606;border-top:3px solid #FBD606;border-top-left-radius:40%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.top-right{top:-10px;right:-10px;border-right:3px solid #FBD606;border-top:3px solid #FBD606;border-top-right-radius:40%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.bottom-left{bottom:-10px;left:-10px;border-left:3px solid #FBD606;border-bottom:3px solid #FBD606;border-bottom-left-radius:40%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.bottom-right{bottom:-10px;right:-10px;border-right:3px solid #FBD606;border-bottom:3px solid #FBD606;border-bottom-right-radius:40%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.watermark-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none}.watermark-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(/watermark.png);background-repeat:repeat;background-size:35%;opacity:.7}.views-limit-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(/views-limit.png);background-repeat:repeat;background-size:50%;opacity:.8}#loader-screen.initialized .scan-button,#loader-screen.preparingCanvas .scan-button{opacity:1;cursor:pointer;animation:pulse 2s infinite}#loader-screen.error .error-circle{opacity:1;transition:opacity .3s ease-in-out}#loader-screen.initialized #spinner,#loader-screen.preparingCanvas #spinner,#loader-screen.error #spinner{opacity:0;transition:opacity .3s ease-in-out}@keyframes pulse{0%{box-shadow:0 0 #000000b3}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}#spinner{width:120px;height:120px;transform:rotate(-90deg);stroke-linecap:round;stroke-width:4;fill:none;position:absolute}.internal-circle,.external-circle{stroke:var(--fg-color);stroke-dashoffset:0;transform-origin:center}.internal-circle{stroke-dasharray:187;animation:internal 2s ease-in-out infinite}.external-circle{stroke-dasharray:312;animation:external 2s linear infinite}@keyframes internal{0%{stroke-dashoffset:187}25%{stroke-dashoffset:80}to{stroke-dashoffset:187;transform:rotate(360deg)}}@keyframes external{0%{stroke-dashoffset:312;transform:rotate(70deg)}60%{stroke-dashoffset:-312}to{stroke-dashoffset:-312;transform:rotate(450deg)}}.error-circle{width:100px;height:100px;background-color:#ff4136;border-radius:50%;display:flex;justify-content:center;align-items:center;color:#fff;font-size:14px;text-align:center;padding:10px;box-sizing:border-box;opacity:0}.error-message{word-wrap:break-word;overflow-wrap:break-word}@media (max-width: 600px){.scan-button,.error-circle{width:100px;height:100px}}.gallery{display:flex;height:100vh;background-color:var(--bg-color);margin:0}.info-panel{width:320px;background-color:var(--bg-color);border-right:1px solid var(--border-color);display:flex;flex-direction:column;flex-shrink:0;text-align:left;user-select:text;-webkit-touch-callout:text;-webkit-user-select:text}.info-panel-content{flex:1;overflow-y:auto;padding:24px}.info-panel-footer{padding:calc(var(--logo-info-panel-padding) * 1px);border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.logo-link{text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.artwork-title-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.artwork-title{font-size:24px;font-weight:500;color:var(--fg-color);margin:0;overflow-wrap:anywhere;word-break:break-word}.artwork-title-row .artwork-info-button{position:static;width:32px;height:32px;flex-shrink:0}.artwork-author{font-size:14px;color:var(--desktop-fg-color);margin-bottom:24px;overflow-wrap:anywhere;word-break:break-word}.artwork-description{color:#4b5563;margin-bottom:24px}.step{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.step-header{display:flex;align-items:center;gap:12px}.step-number{width:32px;height:32px;border-radius:50%;background-color:var(--fg-color);color:var(--btn-color);display:flex;align-items:center;justify-content:center}.step-header-text{color:var(--fg-color);font-weight:400}.step-description{color:var(--desktop-fg-color)}#qr-code{display:flex;align-items:center;flex-direction:column;max-width:120px}.about-button{width:100%;padding:8px 16px;background-color:#e5e7eb;border:none;border-radius:4px;color:#4b5563;font-size:16px;cursor:pointer}.about-button:hover{background-color:#d1d5db}.example-desktop-img{width:100%;border-radius:8px}.image-grid-container{flex:1;overflow-y:auto;padding:24px}.image-grid{display:flex;flex-direction:column;gap:24px;width:100%;max-width:800px;margin:0 auto}.spacer{height:calc(50vh - 350px);min-height:24px}.image-button{position:relative;width:100%;padding-top:75%;overflow:hidden;border-radius:8px;border:none;cursor:pointer;transition:transform .2s;max-height:600px;background-color:var(--fg-color)}.image-button:hover,.image-button:focus,.image-button.selected{transform:scale(1.03)}.image-button:focus{box-shadow:0 0 5px #213547;outline:none;outline-color:unset}.image-button img,.image-button-img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}@media (min-width: 2560px){.info-panel{width:500px}.image-grid{max-width:1200px;gap:35px}.image-button{max-height:900px}.spacer{height:calc(50vh - 450px)}}@media (min-width: 3500px){.info-panel{width:750px}.image-grid{max-width:1600px;gap:50px}.image-button{max-height:1200px}.spacer{height:calc(50vh - 650px)}}.error-container{min-height:100vh;display:flex;justify-content:center;align-items:center}.error-content{text-align:center;padding:2rem;max-width:600px}.error-title{font-size:6rem;color:var(--fg-color);margin:0;line-height:1;font-weight:400}.error-message{font-size:1.5rem;color:var(--fg-color);margin:1rem 0 2rem}.error-details{margin-bottom:2rem;text-align:left}.error-details-title{font-size:1.2rem;color:var(--fg-color);margin-bottom:1rem}.error-steps-list{list-style-type:none;padding:0;counter-reset:error-step-counter;display:flex;flex-direction:column}.error-step{color:var(--fg-color);margin-bottom:1rem;font-size:1rem;display:flex;align-items:center}.error-step-number{background-color:var(--fg-color);color:var(--btn-color);width:24px;height:24px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;margin-right:10px;flex-shrink:0;font-size:.875rem}.error-step-non-number{background-color:var(--fg-color);color:var(--bg-color);width:8px;height:8px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;margin-right:10px;flex-shrink:0;font-size:.875rem}.error-button{background-color:var(--fg-color);color:var(--bg-color);border:none;padding:1rem 2rem;border-radius:2rem;font-size:1rem;cursor:pointer;transition:opacity .2s ease}.error-button:hover{opacity:.9}.error-button:focus{outline:none;box-shadow:0 0 0 2px var(--bg-color),0 0 0 4px var(--fg-color)}.artwork-drawer{position:absolute;left:0;right:0;bottom:0;background-color:#000000b3;color:#fff;background-image:radial-gradient(circle,#0000001a,#0006);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 12px #0003;transition:transform .3s ease-out,background-color .3s ease-in-out;z-index:15;top:100%;padding-bottom:env(safe-area-inset-bottom)}.artwork-drawer-handler{width:100%;height:36px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none}.artwork-drawer-handler:active{cursor:grabbing}.artwork-drawer-handler-line{width:40px;height:4px;background-color:#5c5c5c;border-radius:4px;margin-top:4px}.artwork-drawer-content{overflow-y:hidden;margin-top:8px}.artwork-image-grid{overflow-x:auto;display:flex;gap:16px;height:100%;align-items:center;padding-left:16px;padding-right:16px}.artwork-image-container{flex:0 0 auto;width:120px;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a;line-height:0}.artwork-drawer-text-caption{margin-top:4px;font-size:14px}.artwork-image{width:100%;max-height:120px;background-color:var(--fg-color);object-fit:contain}.mute-icon{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 16px);right:calc(env(safe-area-inset-right) + 16px);width:44px;height:44px;padding:10px;box-sizing:border-box;border-radius:50%;background-color:#0009;cursor:pointer;z-index:30}.support-email{color:var(--href-color)}#root{text-align:center}
