@import "https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#141414;--content:#f1f0f0;--content-muted:#f1f0f0a3;--primary:#456990;--accent:#fa6559;--surface-1:#141414d1;--surface-2:#f1f0f01f;--surface-3:#f1f0f03d;--shadow:0 24px 48px #00000057}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{width:100%;height:100%;margin:0}body{color:var(--content);background:radial-gradient(circle at 15% 20%, #45699033, transparent 36%), radial-gradient(circle at 85% 85%, #fa655924, transparent 30%), var(--bg);font-family:Inter,sans-serif;overflow:hidden}#landing-page{width:100%;height:100vh;position:relative}#landing-page.upload-modal-open #map-container,#landing-page.upload-modal-open #header-icon{filter:blur(7px);transition:filter .22s}#map-container,.panel-frame,#header-icon{transition:filter .22s}#header-icon{z-index:3;pointer-events:none;width:clamp(5rem,10vw,7rem);height:clamp(5rem,10vw,7rem);position:absolute;top:clamp(.75rem,1.5vw,3rem);right:clamp(.75rem,1.5vw,3rem)}#header-icon:hover{filter:drop-shadow(0 12px 28px #000000a6)}#map-container{width:100%;height:100%}#map-container .maplibregl-ctrl-attrib{display:none!important}.panel-frame{pointer-events:auto;z-index:2;width:min(390px,100%);height:100%;padding:clamp(1rem,2.2vw,1.75rem);position:absolute;top:0;left:0}.left-panel{border:1px solid var(--surface-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:100%;box-shadow:var(--shadow);-ms-overflow-style:none;scrollbar-width:none;background:linear-gradient(#141414de,#141414f2);border-radius:24px;flex-direction:column;gap:1rem;padding:clamp(1.1rem,2.4vw,1.6rem);display:flex;overflow-y:auto}.left-panel::-webkit-scrollbar{width:0;height:0}.panel-logo{letter-spacing:-.02em;margin:0;font-family:Cardo,serif;font-size:clamp(.75rem,10.5vw,50px);font-weight:400;line-height:1.05}.panel-logo .primary{color:var(--primary)}.panel-logo .accent{color:var(--accent)}.selection-stage{opacity:1;flex-direction:column;flex-shrink:0;gap:.65rem;max-height:3200px;transition:max-height .52s cubic-bezier(.22,1,.36,1),opacity .42s,transform .52s cubic-bezier(.22,1,.36,1);display:flex;overflow:visible;transform:translateY(0)}.selection-stage.is-hidden{opacity:0;pointer-events:none;max-height:0;overflow:hidden;transform:translateY(-10px)}.stage-label{text-transform:uppercase;letter-spacing:.08em;color:var(--content-muted);margin:0;font-size:.76rem;font-weight:600}.pod-list{flex-direction:column;gap:.5rem;display:flex}.pod{border:1px solid var(--surface-2);width:100%;color:var(--content);text-align:left;cursor:pointer;will-change:transform, opacity;background:#f1f0f00f;border-radius:999px;padding:.62rem .9rem;font-family:Inter,sans-serif;font-size:.89rem;font-weight:500;transition:border-color .22s,transform .28s,background-color .22s,box-shadow .28s}.pod:hover{border-color:var(--surface-3);background:#f1f0f01c;transform:translateY(-1px)}.pod:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.pod.is-selected{background:linear-gradient(90deg,#45699047,#4569901a);border-color:#456990e6;box-shadow:0 8px 18px #4569903d}#room-type-pods .pod.is-selected{background:linear-gradient(90deg,#fa65594d,#fa65591f);border-color:#fa6559e6;box-shadow:0 8px 18px #fa655947}.room-type-empty{color:var(--content-muted);margin:0;padding:.25rem .1rem;font-size:.86rem}.panel-actions{flex-direction:column;flex-shrink:0;gap:.58rem;margin-top:auto;padding-top:.7rem;display:flex}.explore-status{color:#c2d9ffcc;letter-spacing:.01em;margin:0;font-size:.85rem}.explore-status:empty{display:none}.explore-status.error{color:#ff8f95}.cta-btn,.ghost-btn{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.73rem .95rem;font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;transition:transform .14s,filter .14s,border-color .14s}.cta-btn:disabled{cursor:not-allowed;opacity:.7}.cta-btn.is-loading{border-color:var(--surface-2);filter:saturate(.92);background:#f1f0f00f}.cta-btn{border-color:var(--surface-2);color:var(--content);background:#f1f0f00f}#explore-room{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.explore-btn-spinner{border:2px solid #f1f0f06b;border-top-color:#f1f0f0;border-radius:999px;width:.95rem;height:.95rem;animation:.76s linear infinite explore-spin;display:none}#explore-room.is-loading .explore-btn-spinner{display:inline-block}.cta-btn:hover{border-color:var(--surface-3);filter:none;background:#f1f0f01a;transform:translateY(-1px)}.ghost-btn{border-color:var(--surface-2);color:var(--content);background:#f1f0f00f}.ghost-btn:hover{border-color:var(--surface-3);filter:none;background:#f1f0f01a;transform:translateY(-1px)}.cta-btn.is-hidden,.ghost-btn.is-hidden{display:none}@keyframes explore-spin{to{transform:rotate(360deg)}}.upload-modal{z-index:20;opacity:1;visibility:visible;pointer-events:auto;place-items:center;transition:opacity .22s,visibility .22s;display:grid;position:absolute;inset:0}.upload-modal.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.upload-modal-backdrop{opacity:1;background:#0a0a0a75;transition:opacity .22s;position:absolute;inset:0}.upload-modal-card{border:1px solid var(--surface-2);opacity:1;background:linear-gradient(#141414f5,#141414e6);border-radius:18px;flex-direction:column;gap:.75rem;width:min(560px,100% - 1.5rem);padding:1.2rem;transition:opacity .22s;display:flex;position:relative;box-shadow:0 24px 48px #0000006b}.upload-modal.is-hidden .upload-modal-backdrop,.upload-modal.is-hidden .upload-modal-card{opacity:0}.upload-modal-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.upload-modal-head h2{margin:0;font-family:Cardo,serif;font-size:clamp(1.2rem,2.2vw,1.45rem)}.upload-modal-close{border:1px solid var(--surface-2);width:2rem;height:2rem;color:var(--content);cursor:pointer;background:#f1f0f014;border-radius:999px;justify-content:center;align-items:center;padding:0;font-family:Inter,sans-serif;display:inline-flex;position:relative}.upload-modal-close:before,.upload-modal-close:after{content:"";background:currentColor;border-radius:2px;width:.9rem;height:1.5px;position:absolute}.upload-modal-close:before{transform:rotate(45deg)}.upload-modal-close:after{transform:rotate(-45deg)}.upload-modal-close:hover{border-color:var(--surface-3);background:#f1f0f024}.upload-modal-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.upload-modal-form{flex-direction:column;gap:.75rem;display:flex}.about-modal-card{width:min(520px,100% - 1.5rem);position:relative}.about-modal-card>.upload-modal-close{position:absolute;top:.75rem;right:.75rem}.about-modal-body{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}#about-modal-logo{transform-origin:50%;border-radius:12px;width:100%;height:auto;display:block;transform:scale(1.14)}.about-modal-logo-frame{border-radius:12px;width:400px;overflow:hidden}.about-modal-links{gap:.75rem;width:100%;display:flex}.about-modal-link{border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:background-color .14s,transform .14s;display:inline-flex}.about-modal-link:hover{transform:translateY(-1px)}.about-modal-link-icon{width:18px;height:18px}.about-modal-link-github{background:var(--surface-2);color:var(--content)}.about-modal-link-github:hover{background:var(--surface-3)}.about-modal-link-devpost{color:#fff;background:#003e53;border:1px solid #0000}.about-modal-link-devpost:hover{background:#00526e}.about-modal-description{color:var(--content-muted);text-align:left;margin:0;font-size:.94rem;line-height:1.5}.about-modal-developers{border-top:1px solid var(--surface-2);text-align:left;width:100%;padding-top:1rem}.about-modal-developer-grid{grid-template-columns:1fr 1fr;display:grid}.about-modal-developer{flex-direction:column;align-items:center;gap:.5rem;display:flex}.about-modal-developer-name{margin:0;font-size:.9rem;font-weight:600}.about-modal-developer-links{gap:.75rem;display:flex}.about-modal-developer-links a{color:var(--content-muted);transition:color .14s}.about-modal-developer-links a:hover{color:var(--content)}.about-modal-developer-links svg{width:34px;height:34px}.about-modal-developers h3{text-transform:uppercase;letter-spacing:.06em;color:var(--content-muted);text-align:center;margin:0 0 .5rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600}.about-modal-developers p{margin:0;font-size:.9rem}.no-scans-modal-card{width:min(500px,100% - 1.5rem)}.no-scans-modal-copy{color:#c2d9ffe6;margin:0;font-size:.94rem;line-height:1.45}.no-scans-modal-copy a,.no-scans-modal-copy a:visited,.no-scans-modal-copy a:hover,.no-scans-modal-copy a:active{color:var(--accent)}.upload-progress{opacity:0;max-height:0;transition:opacity .18s,max-height .18s;overflow:hidden}.upload-progress.is-visible{opacity:1;max-height:64px}.upload-progress-track{background:#f1f0f024;border-radius:999px;width:100%;height:9px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg,#456990,#fa6559);width:0;height:100%;transition:width .16s linear}.upload-progress-percent{color:var(--content-muted);margin:.45rem 0 0;font-size:.78rem}.upload-instructions{color:var(--content-muted);background:#4569901a;border:1px solid #45699040;border-radius:10px;padding:.9rem 1rem;font-size:.85rem;line-height:1.5}.upload-instructions-list{margin:0 0 .75rem;padding-left:1.25rem}.upload-instructions-list li{margin-bottom:.5rem}.upload-instructions-list li:last-child{margin-bottom:0}.upload-instructions-tips-label{color:var(--content);margin:0 0 .35rem;font-weight:600}.upload-instructions-tips-list{margin:0;padding-left:1.25rem}.upload-instructions-tips-list li{margin-bottom:.35rem}.upload-dropzone{border:1px dashed var(--surface-3);cursor:pointer;background:#f1f0f00a;border-radius:14px;align-items:center;gap:.9rem;padding:1rem;display:flex}.upload-dropzone:hover{background:#4569901a;border-color:#456990d1}.upload-dropzone.is-dragging{background:#fa65591f;border-color:#fa6559e0}.upload-dropzone input{display:none}.upload-dropzone-title{font-size:.95rem;font-weight:600}.upload-dropzone-icon{color:#f1f0f0bd;flex:none;width:3.25rem;height:3.25rem}.upload-dropzone-icon svg{width:100%;height:100%;display:block}.upload-dropzone-copy{flex-direction:column;gap:.35rem;min-width:0;display:flex}.upload-dropzone-subtitle,.upload-selected-file{color:var(--content-muted);font-size:.82rem}.viewer-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--surface-2);z-index:2;pointer-events:none;background:#141414d1;border-radius:12px;flex-direction:column;gap:.25rem;padding:.65rem .9rem;display:flex;position:absolute;bottom:clamp(.75rem,1.5vw,1.25rem);right:clamp(.75rem,1.5vw,1.25rem)}.viewer-info p{color:var(--content-muted);white-space:nowrap;margin:0;font-size:.88rem}@media (width<=600px){.panel-frame{width:100%;height:auto;max-height:62vh;padding:.75rem;top:auto;bottom:0}.left-panel{border-radius:20px 20px 0 0;gap:.8rem;padding:1rem}.pod{padding:.58rem .82rem;font-size:.86rem}.panel-actions{padding-top:.45rem}.upload-modal-card{width:calc(100% - 1rem);padding:.9rem}.upload-instructions{padding:.75rem .85rem}.upload-dropzone{padding:.9rem}}
