*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#fff;--color-text:#1a1a1a;--color-text-muted:#666;--color-accent:#e30026;--color-accent-soft:#e3002614;--color-border:#e5e5e5;--color-surface:#f5f5f5;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}html,body{height:100%;font-family:var(--font);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#app{flex-direction:column;height:100dvh;display:flex}header{border-bottom:1px solid var(--color-border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.logo{width:auto;height:20px}.title{color:var(--color-text);letter-spacing:-.01em;font-size:.95rem;font-weight:600}main{flex:1;min-height:0;position:relative}model-viewer{--poster-color:transparent;width:100%;height:100%}.ar-button{font-family:var(--font);color:#fff;background:var(--color-accent);cursor:pointer;z-index:5;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:.85rem;font-weight:600;transition:transform .15s,opacity .15s;display:inline-flex;position:absolute;bottom:16px;right:16px;box-shadow:0 2px 16px #e300264d}.ar-button svg{flex-shrink:0}.ar-button:active{transform:scale(.96)}.progress-bar{background:var(--color-border);width:100%;height:3px;transition:opacity .4s;position:absolute;bottom:0;left:0}.progress-bar.hide{opacity:0}.update-bar{background:var(--color-accent);width:0;height:100%;transition:width .15s}.info-bar{border-top:1px solid var(--color-border);background:var(--color-bg);z-index:10;flex-shrink:0}.info-toggle{width:100%;font-family:var(--font);color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;font-weight:500;display:flex}.info-toggle .chevron{flex-shrink:0;transition:transform .2s}.info-toggle[aria-expanded=true] .chevron{transform:rotate(180deg)}.info-content{padding:0 16px 14px}.info-content p{color:var(--color-text-muted);max-width:640px;font-size:.8rem;line-height:1.55}@media (width<=600px){header{padding:10px 12px}.logo{height:16px}.title{font-size:.85rem}.ar-button{padding:8px 14px;font-size:.8rem;bottom:12px;right:12px}.info-toggle{padding:8px 12px;font-size:.75rem}.info-content{padding:0 12px 10px}.info-content p{font-size:.75rem}}
