@import"https://fonts.googleapis.com/css2?family=neue+haas+grotesk&display=swap";@import"https://fonts.googleapis.com/css2?family=ibm+plex+mono&display=swap";*{box-sizing:border-box}body{overflow:hidden;margin:0;height:100vh;width:100vw;font-family:IBM Plex Mono,monospace}#app-container{width:100vw;height:100vh;position:relative}#viewer-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}#viewer-controls{position:absolute;top:10px;left:10px;z-index:1000;display:flex;gap:10px}#header-container{position:absolute;top:0;left:0;right:0;color:#000;padding:20px;display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;z-index:900}#header-title{margin:0 0 5px;font-size:24px}#header-subtitle{margin:0;font-size:14px;text-align:right;white-space:pre-line}#gallery-container{position:absolute;bottom:0;left:0;right:0;margin:16px;height:120px;border-width:2px;border-style:solid;border-color:#e0e0e04d;border-radius:6px;background:#d6d6d633;overflow-x:auto;overflow-y:hidden;z-index:900;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}@media (max-width: 768px){#header-container{padding:15px;flex-direction:column;align-items:flex-start;gap:5px}#header-title{font-size:20px;line-height:1.2}#header-subtitle{font-size:12px;text-align:left;line-height:1.3}#gallery-container{height:100px}}@media (max-width: 480px){#header-container{padding:10px}#header-title{font-size:18px;line-height:1.1}#header-subtitle{font-size:11px;line-height:1.2}#gallery-container{height:90px}}@media (max-width: 320px){#header-container{padding:8px}#header-title{font-size:16px}#header-subtitle{font-size:10px}#gallery-container{height:80px}}.gallery-strip{display:flex;height:100%;padding:10px;gap:10px;align-items:center;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.gallery-strip .loading,.gallery-strip .error-message{color:#fff}.gallery-item{cursor:pointer;border:2px solid transparent;border-radius:4px;transition:border-color .3s ease;overflow:hidden;height:100px;width:100px;flex-shrink:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}.gallery-item:hover{border-color:#555}.gallery-item.selected,.gallery-item.selected:hover{border-color:#007cba}@media (max-width: 768px){.gallery-item{height:80px;width:80px}}@media (max-width: 480px){.gallery-strip{padding:8px;gap:8px}.gallery-item{height:70px;width:70px}}@media (max-width: 320px){.gallery-strip{padding:6px;gap:6px}.gallery-item{height:60px;width:60px}}a,body{color:#000}#info{z-index:100;position:absolute;top:10px;left:15px}h1{margin:0;font-weight:400;font-family:IBM Plex Mono,monospace}h3{margin:5px 0}p{margin:5px 0;font-size:small;font-family:IBM Plex Mono,monospace}.cube-wrapper{transform-style:preserve-3d}.cube{transform-style:preserve-3d;transform:rotateX(45deg) rotate(45deg);animation:rotation 2s infinite}.cube-faces{transform-style:preserve-3d;height:80px;width:80px;position:relative;transform-origin:0 0;transform:translate(0) translateY(0) translateZ(-40px)}.cube-face{position:absolute;top:0;right:0;bottom:0;left:0;background:#101010;border:solid 1px #ffffff}.cube-face.top{transform:translateZ(80px)}.cube-face.front{transform-origin:0 50%;transform:rotateY(-90deg)}.cube-face.back{transform-origin:0 50%;transform:rotateY(-90deg) translateZ(-80px)}.cube-face.right{transform-origin:50% 0;transform:rotateX(-90deg) translateY(-80px)}.cube-face.left{transform-origin:50% 0;transform:rotateX(-90deg) translateY(-80px) translateZ(80px)}@keyframes rotation{0%{transform:rotateX(45deg) rotateY(0) rotate(45deg);animation-timing-function:cubic-bezier(.17,.84,.44,1)}50%{transform:rotateX(45deg) rotateY(0) rotate(225deg);animation-timing-function:cubic-bezier(.76,.05,.86,.06)}to{transform:rotateX(45deg) rotateY(0) rotate(405deg);animation-timing-function:cubic-bezier(.17,.84,.44,1)}}.scene,#message{position:absolute;display:flex;top:0;right:0;left:0;bottom:0;z-index:2;height:100%;width:100%;align-items:center;justify-content:center}#message{font-weight:700;font-size:large;color:red;pointer-events:none}details{font-size:small}#progress{position:fixed;top:0;left:0;height:4px;background:linear-gradient(90deg,#007cba,#0099e6,#007cba);background-size:200% 100%;z-index:9999;transition:width .3s ease-out,opacity .3s ease;animation:shimmer 2s infinite;box-shadow:0 2px 4px #007cba4d}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}#progress.hidden{opacity:0;pointer-events:none}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:1;transition:opacity .5s ease}.loading-overlay.hidden{opacity:0;pointer-events:none}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.2);border-top:4px solid #007cba;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:#fff;font-family:IBM Plex Mono,monospace;font-size:16px;margin-bottom:10px;text-align:center}.loading-progress{color:#ffffffb3;font-family:IBM Plex Mono,monospace;font-size:12px;text-align:center}@media (max-width: 768px){.loading-spinner{width:45px;height:45px;border-width:3px}.loading-text{font-size:14px}.loading-progress{font-size:11px}}#quality{position:absolute;bottom:10px;z-index:999;right:10px}#caminfo{position:absolute;top:10px;z-index:999;right:10px}#canvas{display:block;position:absolute;top:0;left:0;width:100%;height:100%;touch-action:none}#instructions{background:#0009;white-space:pre-wrap;padding:10px;border-radius:10px;font-size:x-small}body.nohf .nohf{display:none}body.nohf #progress,body.nohf .cube-face{background:#ff9d0d}.gallery{display:flex;flex-wrap:wrap;gap:1em;margin:56px}.thumb{cursor:pointer;width:160px;text-align:center;background:#181818;border-radius:8px;box-shadow:0 2px 8px #0002;padding:.5em;transition:box-shadow .2s}.thumb:hover{box-shadow:0 4px 16px #0005}.thumb img{width:100%;border-radius:8px;background:#222}#viewer-controls{position:fixed;top:10px;left:10px;z-index:1000;display:flex;gap:10px}.control-btn{padding:8px 16px;background:#000000b3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.control-btn:hover{background:#000000e6}.control-btn.primary{background:#0064c8cc}
